.books{width:495px}
.project-image{margin:0;padding:10px 7vw 80px}.project-image img,.federated-image img{display:block;width:100%;height:auto}.project-image a,.federated-image a{display:block}.project-image figcaption{font-size:14px;color:#62625c;margin-top:15px}.interface-pair{padding:0 7vw 70px}.interface-pair .project-image{padding:0;margin:0 0 55px}.interface-pair .project-image:first-child{width:88%}.interface-pair .project-image:last-child{width:88%;margin-left:auto}.federated-image{margin:35px 0 0}.statement a:hover{color:inherit}.pecan-contact a{display:inline-block;margin:10px 25px 0 0;font-size:18px}
.book-caption{opacity:1;font-size:15px;color:#53534e}
.reader-nav{justify-content:flex-end}
.project-hero{min-height:75svh;padding-top:clamp(40px,9vh,110px);padding-bottom:60px}
.project-hero h2{font-size:clamp(86px,19vw,280px);letter-spacing:-.035em;line-height:1.02;margin:0 0 55px}
.project-description{font-size:clamp(23px,3.1vw,44px);letter-spacing:-.035em;line-height:1.22;max-width:730px;margin:auto 0 0}
.story-intro,.story-section{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8vw;padding:100px 7vw}
.story-intro{min-height:78svh;align-items:center}
.story-intro h3,.story-section h3,.results-section>h3{font-size:clamp(32px,4.1vw,65px);letter-spacing:-.045em;line-height:1.09;font-weight:400;margin:0 0 35px;text-wrap:balance}
.story-section h3{max-width:600px}
.intro-copy p,.prose p,.detail-body p,.detail-body dd,.result p,.results-closing p{font-size:18px;line-height:1.65;letter-spacing:-.013em;margin:0 0 22px}
.intro-copy p:last-child,.prose p:last-child{margin-bottom:0}
.image-space{min-height:420px;aspect-ratio:4/5}
.prose{max-width:600px}
a{color:inherit;text-decoration-thickness:1px;text-underline-offset:.18em}a:hover{color:var(--accent,#2357bf)}a:focus-visible,summary:focus-visible,.video-select:focus-within{outline:2px solid #2357bf;outline-offset:6px}
.statement{padding:80px 7vw;min-height:90svh;display:flex;flex-direction:column;justify-content:center}
.statement .statement-number{font-size:clamp(130px,28vw,410px);line-height:.9;letter-spacing:-.065em;margin:0 0 32px;font-weight:500}
.statement .statement-caption{font-size:clamp(30px,5vw,74px);line-height:1.09;letter-spacing:-.04em;margin:0;max-width:1050px}
.statement .statement-detail{font-size:17px;letter-spacing:0;line-height:1.5;margin:55px 0 0;max-width:660px}
.quote-statement blockquote{font-size:clamp(40px,7.2vw,108px);line-height:1.09;letter-spacing:-.04em;margin:0;font-weight:400;max-width:1200px;text-wrap:balance}
.statement .winner-title{font-size:clamp(65px,12.5vw,190px);line-height:.98;letter-spacing:-.05em;margin:0;font-weight:500}
.results-section{padding:110px 7vw}
.result-list{margin-top:75px}
.result{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8vw;border-top:1px solid #deded7;padding:40px 0 50px}
.result .result-number{font-size:clamp(65px,9vw,135px);line-height:1;letter-spacing:-.06em;margin:0}
.result h4{font-size:25px;letter-spacing:-.025em;line-height:1.23;font-weight:500;margin:0 0 18px}
.result p{max-width:580px}.results-closing{max-width:610px;margin:60px 0 0 auto}
.technical-section{padding:10px 7vw 75px;max-width:1400px;margin:auto}
details{border-top:1px solid #dadad3}
details:last-child{border-bottom:1px solid #dadad3}
summary{font-size:clamp(21px,2.4vw,32px);letter-spacing:-.025em;line-height:1.3;padding:28px 48px 28px 0;cursor:pointer;list-style:none;position:relative}
summary::-webkit-details-marker{display:none}summary:after{content:'+';position:absolute;right:4px;top:25px;font-weight:300;font-size:32px}details[open]>summary:after{content:'−'}
.detail-body{max-width:790px;margin:10px 0 48px auto}
.detail-body dl{margin:0}.detail-body dt{font-size:19px;font-weight:500;margin:25px 0 8px}.detail-body dd{margin-left:0}
code{font-size:.87em;overflow-wrap:anywhere}
.formula{background:#eeeeea;padding:28px;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:15px;line-height:1.85;margin:25px 0;overflow-wrap:anywhere}.formula span{padding-left:1ch}
.closing-section{padding-top:100px;padding-bottom:130px}
.demo-section{padding:20px 7vw 100px}.video-space{width:100%;min-width:0;aspect-ratio:16/9;background:#f0f0ed;display:grid;place-items:center;position:relative;overflow:hidden}
.demo-picker{width:100%;min-width:0;text-align:center;padding:25px}.video-select{font-size:20px;cursor:pointer;border-bottom:1px solid #a9a9a1;padding:8px 0;display:inline-block}.video-select span{margin-left:14px}.demo-picker p{font-size:14px;line-height:1.5;color:#62625c;max-width:320px;margin:20px auto 0}
.video-space video{width:100%;height:100%;background:#171717;object-fit:contain;grid-area:1/1}
#demo-status{position:absolute;left:15px;bottom:7px;margin:0;max-width:calc(100% - 30px);font-size:14px;line-height:1.4;background:#fafaf9e8;overflow-wrap:anywhere}
#demo-status:not(:empty){padding:6px 10px;bottom:60px;border-radius:3px}
.video-replace{border:0;border-bottom:1px solid #aaa;background:none;font-size:15px;margin-top:18px;padding:6px 0;cursor:pointer}
.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.demo-picker:focus-within .video-select{outline:2px solid #2357bf;outline-offset:6px}
[hidden]{display:none!important}
@media(min-width:1600px){.books{width:555px}}
@media(max-width:600px){
 .books{width:350px}.book-caption{font-size:14px}
 .project-hero{padding:55px 6vw 45px;min-height:65svh}.project-hero h2{font-size:23vw;max-width:100%;margin:0 0 45px;letter-spacing:-.035em}.project-description{font-size:26px;line-height:1.25}
 .story-intro,.story-section{grid-template-columns:1fr;gap:30px;padding:65px 7vw;min-height:0}.story-intro h3,.story-section h3,.results-section>h3{font-size:36px;margin-bottom:25px}
 .image-space{min-height:150px;aspect-ratio:16/9}.intro-copy p,.prose p,.detail-body p,.detail-body dd,.result p,.results-closing p{font-size:17px;line-height:1.6}
 .statement{min-height:70svh;padding:65px 7vw}.statement .statement-number{font-size:39vw;margin-bottom:30px}.statement .statement-caption{font-size:32px}.statement .statement-detail{font-size:16px;margin-top:40px}.quote-statement blockquote{font-size:42px}.statement .winner-title{font-size:14vw}
 .results-section{padding:65px 7vw}.result-list{margin-top:45px}.result{grid-template-columns:1fr;gap:25px;padding:30px 0}.result .result-number{font-size:80px}.result h4{font-size:23px}.results-closing{margin-top:45px}
 .technical-section{padding:0 7vw 35px}.detail-body{margin-bottom:30px}summary{font-size:22px;padding-top:25px;padding-bottom:25px}.formula{font-size:13px;padding:18px}
 .demo-section{padding:0 7vw 65px}.video-space{min-height:220px}.video-select{font-size:18px}.demo-picker p{font-size:14px}.closing-section{padding-bottom:80px}
}
@media(max-height:650px) and (min-width:601px){.books{width:352px}}

/* Keep the longer personal introduction clear of the book navigation. */
.home{height:auto;min-height:100svh}
.intro{padding-top:clamp(48px,8svh,100px);padding-bottom:22px}
.home-introduction{max-width:620px;margin:25px auto 0}
.intro .home-introduction p{font-size:17px;line-height:1.55;letter-spacing:-.015em;margin:0;color:#62625e}
.intro .home-introduction p+p{margin-top:24px}
.home-introduction a{color:inherit;text-underline-offset:3px;overflow-wrap:anywhere}
.home-introduction a:focus-visible{outline:2px solid #2357bf;outline-offset:4px}
.library{flex:1 0 auto;padding-top:20px}
@media(max-width:600px){.intro{padding:48px 24px 22px}.intro .home-introduction p{font-size:16px}.home-introduction{margin-top:24px}.library{padding-top:12px}}
.results-introduction{max-width:610px;margin:0}.results-introduction+.result-list{margin-top:45px}
.video-space{aspect-ratio:1920/882;min-height:0;background:transparent}.video-space video{display:block;height:auto;aspect-ratio:1920/882}
.reader{overflow-anchor:none}
