.project-header{z-index:90;background:#0000008c;border-bottom:1px solid #f0ebe10d;padding:.85rem 0;position:fixed;top:0;left:0;right:0}.project-header-inner{justify-content:space-between;align-items:center;max-width:1400px;margin:0 auto;padding:0 clamp(1.5rem,6vw,5rem);display:flex}.project-back{letter-spacing:.2em;text-transform:uppercase;color:#f0ebe166;align-items:center;gap:.65rem;font-family:Inter,sans-serif;font-size:.6rem;transition:color .3s;display:inline-flex}.project-back:hover{color:#f0ebe1d9}.project-brand{letter-spacing:.12em;color:#f0ebe14d;font-size:.95rem;text-decoration:none;transition:color .3s}.project-brand:hover{color:#f0ebe1a6}.arch-diagram{--line:color-mix(in srgb, var(--accent) 65%, #f0ebe173);border:1px solid #f0ebe112;margin:4rem 0 0;padding:3.25rem 3rem}.ad-node{background:#0d0b0999;border:1px solid #f0ebe124;flex-direction:column;gap:.35rem;min-width:0;padding:1rem 1.1rem;transition:border-color .3s,background .3s,opacity .3s;display:flex}.ad-num{letter-spacing:.2em;color:var(--line);font-family:Inter,sans-serif;font-size:.55rem}.ad-name{overflow-wrap:break-word;hyphens:auto;color:#f0ebe1e0;font-family:Cormorant Garamond,serif;font-size:1.25rem;line-height:1.2}.arch-diagram.is-tracing .ad-node:not(.is-lit){opacity:.45}.ad-node.is-lit{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 18%, #0d0b09b3)}.ad-row{align-items:center;row-gap:.5rem;display:grid}.ad-row .ad-node{grid-row:1;align-self:stretch}.ad-arrow{background:var(--line);grid-row:1;height:1px;position:relative}.ad-arrow:after{content:"";border-left:6px solid var(--line);border-top:3.5px solid #0000;border-bottom:3.5px solid #0000;position:absolute;top:-3px;right:-1px}.ad-loop{border:1px dashed var(--line);border-top:none;grid-row:2;height:1.5rem;margin:0 18%;position:relative}.ad-loop:before{content:"";border-bottom:6px solid var(--line);border-left:3.5px solid #0000;border-right:3.5px solid #0000;position:absolute;top:-4px}.ad-loop--back:before{left:-4px}.ad-loop--fwd:before{right:-4px}.ad-loop-label{white-space:nowrap;letter-spacing:.18em;text-transform:uppercase;color:var(--line);background:#0d0b09eb;padding:0 .6rem;font-family:Inter,sans-serif;font-size:.55rem;position:absolute;bottom:-.55rem;left:50%;transform:translate(-50%)}.ad-loop-note{display:none}.ad-split{grid-template-columns:minmax(0,1fr) minmax(7rem,11rem) minmax(0,1fr);align-items:center;display:grid}.ad-pole{background:#0d0b0999;border:1px solid #f0ebe124;flex-direction:column;gap:.45rem;padding:1.4rem 1.4rem 1.5rem;display:flex}.ad-pole-name{color:var(--ivoire);font-size:1.45rem}.ad-pole-desc{color:#f0ebe180;font-size:.78rem;line-height:1.6}.ad-chips{flex-wrap:wrap;gap:.45rem;margin:.7rem 0 0;padding:0;list-style:none;display:flex}.ad-node--chip{flex-direction:row;padding:.4rem .75rem}.ad-node--chip .ad-name{font-size:.98rem}.ad-bridge{justify-content:center;align-items:center;height:100%;display:flex;position:relative}.ad-bridge-line{background:var(--line);height:1px;position:absolute;top:50%;left:0;right:0}.ad-bridge-line:before,.ad-bridge-line:after{content:"";border-top:3.5px solid #0000;border-bottom:3.5px solid #0000;position:absolute;top:-3px}.ad-bridge-line:before{border-right:6px solid var(--line);left:-1px}.ad-bridge-line:after{border-left:6px solid var(--line);right:-1px}.ad-bridge-label{letter-spacing:.2em;text-transform:uppercase;color:var(--line);font-family:Inter,sans-serif;font-size:.55rem;position:relative;transform:translateY(-1.1rem)}.ad-hub{grid-template-columns:auto 3.5rem minmax(0,1fr);align-items:stretch;display:grid}.ad-sources{flex-direction:column;justify-content:space-around;margin:0;padding:0;list-style:none;display:flex}.ad-source{letter-spacing:.16em;text-transform:uppercase;color:#f0ebe180;white-space:nowrap;border:1px solid #f0ebe11a;padding:.3rem .65rem;font-family:Inter,sans-serif;font-size:.58rem}.ad-converge{width:100%;height:100%;overflow:visible}.ad-converge line{stroke:var(--line);stroke-width:1px;opacity:.7}.ad-hub .ad-row{align-self:center}@media (width<=1000px){.ad-hub{grid-template-columns:1fr;gap:1rem}.ad-sources{flex-flow:wrap;gap:.4rem}.ad-converge{display:none}}@media (width<=720px){.arch-diagram{padding:1.4rem 1.1rem}.ad-row{grid-template-columns:1fr!important}.ad-row .ad-node,.ad-row .ad-arrow{grid-row:auto;grid-column:1!important}.ad-arrow{justify-self:center;width:1px;height:1.4rem}.ad-arrow:after{border-left:3.5px solid #0000;border-right:3.5px solid #0000;border-top:6px solid var(--line);border-bottom:none;top:auto;bottom:-1px;right:-3px}.ad-loop{display:none}.ad-loop-note{letter-spacing:.16em;text-transform:uppercase;color:var(--line);margin:.8rem 0 0;font-family:Inter,sans-serif;font-size:.6rem;display:block}.ad-split{grid-template-columns:1fr}.ad-bridge{justify-content:flex-start;height:3.2rem;padding-left:calc(50% + .9rem)}.ad-bridge-line{width:1px;height:auto;inset:0 auto 0 50%}.ad-bridge-line:before,.ad-bridge-line:after{display:none}.ad-bridge-label{transform:none}}.project-bg{z-index:0;position:fixed;inset:0}.project-bg-img{object-fit:cover;object-position:center;opacity:.28;filter:contrast(1.05)brightness(.7);width:100%;height:100%;animation:.9s cubic-bezier(.16,1,.3,1) both bg-enter;position:absolute;inset:0}.project-bg-placeholder{animation:.9s cubic-bezier(.16,1,.3,1) both bg-enter;position:absolute;inset:0}.project-bg-overlay{animation:.6s ease-out .1s both fade-in;position:absolute;inset:0}.project-bg-vignette{background:radial-gradient(#0000 20%,#0000008c 100%);animation:.7s ease-out 80ms both fade-in;position:absolute;inset:0}.project-page{z-index:1;position:relative}.section-wrap{max-width:1200px;margin:0 auto}.section-kicker{align-items:center;gap:.9rem;margin:0;display:flex}.section-title{color:var(--ivoire);margin:0;font-size:clamp(2rem,3.4vw,2.9rem);font-weight:400;line-height:1.1}.rouge-bar{background:var(--rouge);flex-shrink:0;width:1.8rem;height:1px;display:inline-block}.brush{width:100%;height:60px;display:block}.brush--to-paper path{fill:var(--ivoire)}.brush--to-ink{background:var(--ivoire)}.brush--to-ink path{fill:var(--encre)}.project-intro{flex-direction:column;min-height:100svh;padding-top:5rem;display:flex}.project-title-block{text-align:center;flex-direction:column;flex-grow:1;justify-content:center;align-items:center;gap:1.75rem;padding:2.5rem clamp(1.5rem,6vw,5rem) 4.5rem;display:flex}.project-subtitle{align-items:center;gap:.9rem;margin:0;animation:.7s cubic-bezier(.25,0,0,1) .35s both fade-up;display:flex}.project-name{color:var(--ivoire);overflow-wrap:anywhere;margin:0;padding-left:.35em;font-size:clamp(2.2rem,7vw,6.5rem);line-height:1;animation:.9s cubic-bezier(.16,1,.3,1) .45s both fade-up}.project-tagline{color:#f0ebe180;margin:0;font-size:clamp(1.1rem,1.7vw,1.45rem);font-style:italic;animation:.7s cubic-bezier(.25,0,0,1) .6s both fade-up}.colophon{border-top:1px solid #f0ebe11a;grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;width:calc(100% - 2*clamp(1.5rem,6vw,5rem));max-width:1200px;margin:0 auto;animation:.7s cubic-bezier(.25,0,0,1) .75s both fade-up;display:grid}.colophon-cell{border-left:1px solid #f0ebe114;flex-direction:column;gap:.65rem;min-width:0;padding:1.4rem 1.5rem 1.6rem;display:flex}.colophon-cell:first-child{border-left:none;padding-left:0}.colophon-cell:last-child{padding-right:0}.colophon-cell dt{letter-spacing:.3em;text-transform:uppercase;color:#f0ebe152;font-family:Inter,sans-serif;font-size:.6rem;font-weight:500}.colophon-cell dd{min-width:0;margin:0}.colophon-big{color:var(--ivoire);font-size:1.5rem;line-height:1.1}.colophon-pair{flex-wrap:wrap;align-items:baseline;gap:.3rem .65rem;display:flex}.colophon-muted{color:#f0ebe161;font-size:.75rem}.colophon-text{color:#f0ebe1b3;font-size:.82rem;line-height:1.6}.colophon-links{flex-direction:column;align-items:flex-start;gap:.45rem;display:flex}.repo-sealed{letter-spacing:.22em;text-transform:uppercase;color:var(--lavis);align-items:center;gap:.45rem;font-family:Inter,sans-serif;font-size:.6rem;font-weight:500;display:inline-flex}.project-intro .brush{margin-top:2.5rem}.project-paper{background:var(--ivoire);color:var(--encre);padding:clamp(4rem,8vw,7rem) clamp(1.5rem,6vw,5rem)}.paper-inner{max-width:1200px;margin:0 auto}.paper-inner--figures{grid-template-columns:minmax(0,7fr) minmax(0,4fr);align-items:start;gap:clamp(3rem,8vw,7rem);display:grid}.paper-story{flex-direction:column;gap:1.75rem;max-width:640px;display:flex}.paper-kicker{align-items:center;gap:.9rem;margin:0;display:flex}.paper-title{color:var(--encre);margin:0;font-size:clamp(2rem,3.4vw,2.9rem);font-weight:400;line-height:1.12}.paper-title-rest{color:#0d0b098c;margin:-.6rem 0 0;font-size:clamp(1.1rem,1.6vw,1.3rem);font-style:italic;line-height:1.45}.paper-prose{color:#0d0b09a3;flex-direction:column;gap:1rem;font-size:.94rem;line-height:1.8;display:flex}.paper-prose p{margin:0}.paper-note{flex-direction:column;gap:.6rem;padding-top:.6rem;display:flex}.paper-note-label{color:#0d0b0961;margin:0}.paper-note-text{color:var(--lavis);margin:0;font-size:1.25rem;font-style:italic;line-height:1.5}.paper-figures{flex-direction:column;margin:0;display:flex}.paper-figure{border-bottom:1px solid #0d0b091a;flex-direction:column-reverse;gap:.4rem;padding:1.6rem 0;display:flex}.paper-figure:first-child{padding-top:0}.paper-figure:last-child{border-bottom:none;padding-bottom:0}.paper-figure dt{color:#0d0b096b}.paper-figure dd{color:var(--rouge);margin:0;font-size:clamp(3.2rem,5vw,4.5rem);line-height:1}.project-section{padding:clamp(4.5rem,8vw,7.5rem) clamp(1.5rem,6vw,5rem)}.project-arch,.project-related{background:var(--encre)}.project-progress{background:var(--encre-2)}.arch-head{grid-template-columns:minmax(0,5fr) minmax(0,6fr);align-items:end;gap:clamp(2rem,6vw,5rem);display:grid}.arch-head-title{flex-direction:column;gap:1.5rem;display:flex}.arch-caption{color:#f0ebe18c;margin:0;font-size:.88rem;line-height:1.85}.arch-acc{border-bottom:1px solid #f0ebe112;transition:grid-template-columns .65s cubic-bezier(.16,1,.3,1) 80ms;display:grid}.acc-card{opacity:.6;flex-direction:column;gap:.9rem;min-width:0;padding:2.75rem 1.75rem 2.5rem;transition:opacity .6s .1s;display:flex;position:relative;overflow:hidden}.acc-card:first-child{padding-left:0}.acc-card:last-child{padding-right:0}.acc-card.is-open{opacity:1}.acc-ghost{color:#8a9bae12;pointer-events:none;user-select:none;font-size:7rem;line-height:1;position:absolute;top:-.4rem;right:1.25rem}.acc-title{margin:0;position:relative}.acc-btn{letter-spacing:.3em;text-align:left;color:var(--ivoire);cursor:none;background:0 0;border:none;padding:0;font-size:.88rem}.acc-btn:focus-visible{outline:1px solid var(--accent);outline-offset:6px}.acc-group{color:#f0ebe159}.acc-reveal{grid-template-rows:0fr;transition:grid-template-rows .45s cubic-bezier(.25,.46,.45,.94);display:grid}.acc-card.is-open .acc-reveal{grid-template-rows:1fr}.acc-reveal-inner{overflow:hidden}.acc-desc{color:#f0ebe18c;opacity:0;border-top:1px solid #f0ebe114;max-width:24rem;margin:0;padding-top:1rem;font-size:.85rem;line-height:1.75;transition:opacity .5s}.acc-card.is-open .acc-desc{opacity:1;transition-delay:.18s}.acc-line{background:var(--rouge);width:0;height:1px;transition:width .7s cubic-bezier(.4,0,.2,1);position:absolute;bottom:0;left:0}.acc-card.is-open .acc-line{width:100%}.progress-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:1rem 2rem;margin-bottom:3.5rem;display:flex}.progress-checked{color:#f0ebe14d;margin:0}.progress-board{border-top:1px solid #f0ebe114;grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.progress-col{border-left:1px solid #f0ebe112;flex-direction:column;gap:1.6rem;min-width:0;padding:2.5rem 2.25rem 0;display:flex;position:relative}.progress-col:first-child{border-left:none;padding-left:0}.progress-col:last-child{padding-right:0}.progress-ghost{color:#8a9bae0f;pointer-events:none;user-select:none;font-size:7.5rem;line-height:1;position:absolute;top:.25rem;right:1.75rem}.progress-col:last-child .progress-ghost{right:0}.progress-title{letter-spacing:.3em;color:var(--ivoire);margin:0;font-size:.88rem}.progress-col--next .progress-title{color:#f0ebe199}.progress-list{color:#f0ebe1b3;flex-direction:column;gap:.8rem;margin:0;padding:0;font-size:.85rem;line-height:1.55;list-style:none;display:flex}.progress-list li{padding-left:1.3rem;position:relative}.progress-list li:before{content:"";background:var(--rouge);border-radius:50%;width:5px;height:5px;position:absolute;top:.55em;left:0}.progress-col--now .progress-list{color:#f0ebe199}.progress-col--now .progress-list li:before{border:1px solid var(--lavis);background:0 0}.progress-col--next .progress-list{color:#f0ebe16b}.progress-col--next .progress-list li:before{background:#f0ebe14d;border-radius:0;width:8px;height:1px;top:.75em}.progress-extra{grid-template-rows:0fr;margin-top:-1.6rem;transition:grid-template-rows .45s cubic-bezier(.25,.46,.45,.94);display:grid}.progress-col.is-expanded .progress-extra{grid-template-rows:1fr}.progress-extra-inner{min-height:0;overflow:hidden}.progress-list--extra{padding-top:.8rem}.progress-list--extra li{opacity:0;transition:opacity .3s,transform .3s;transform:translateY(6px)}.progress-col.is-expanded .progress-list--extra li{opacity:1;transition-duration:.45s;transition-delay:calc(.12s + var(--i,0) * 40ms);transform:none}.progress-more{color:var(--lavis);cursor:none;background:0 0;border:none;align-self:flex-start;padding:.25rem 0;transition:color .3s}.progress-more:hover{color:var(--ivoire)}.progress-empty{color:#f0ebe14d;margin:0;font-size:.82rem}.project-related .section-kicker{margin-bottom:3rem}.related-cards{grid-template-columns:repeat(auto-fill,minmax(min(100%,24rem),1fr));gap:1.5rem;display:grid}.related-card{border:1px solid #f0ebe112;border-top:1px solid var(--card);flex-direction:column;gap:1.1rem;padding:2.1rem 2.1rem 1.9rem;text-decoration:none;transition:background .4s;display:flex}a.related-card:hover{background:#f0ebe106}.related-card-head{align-items:center;gap:.9rem;display:flex}.related-card-dot{background:var(--card);width:8px;height:8px;box-shadow:0 0 12px var(--card);border-radius:50%;flex-shrink:0}.related-card-name{letter-spacing:.28em;color:var(--ivoire);font-size:1.1rem}.related-card-role{color:#f0ebe194;font-size:.88rem;line-height:1.7}.related-card-go{color:var(--lavis);transition:color .3s}a.related-card:hover .related-card-go{color:var(--ivoire)}.related-standalone{color:#f0ebe18c;max-width:640px;margin:0;font-size:.9rem;line-height:1.7}.project-nav{background:var(--encre);border-top:1px solid #f0ebe112;grid-template-columns:1fr 1fr;display:grid}.project-nav-link{flex-direction:column;gap:.45rem;padding:clamp(2rem,4vw,3rem) clamp(1.5rem,6vw,5rem);text-decoration:none;transition:background .4s;display:flex}.project-nav-link:hover{background:#f0ebe108}.project-nav-next{text-align:right;border-left:1px solid #f0ebe112;align-items:flex-end}.project-nav-dir{letter-spacing:.22em;text-transform:uppercase;color:#f0ebe14d;font-family:Inter,sans-serif;font-size:.55rem}.project-nav-name{letter-spacing:.08em;color:#f0ebe1b3;font-size:clamp(1.3rem,2.5vw,2rem);transition:color .3s}.project-nav-link:hover .project-nav-name{color:var(--ivoire)}.project-nav-sub{letter-spacing:.15em}@keyframes bg-enter{0%{opacity:.28;transform:scale(1.06)}to{opacity:.28;transform:scale(1)}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes fade-up{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.project-bg-img,.project-bg-placeholder,.project-bg-overlay,.project-bg-vignette,.project-subtitle,.project-name,.project-tagline,.colophon{animation:none}.project-bg-img{opacity:.28}.arch-acc,.acc-card,.acc-reveal,.acc-desc,.acc-line,.progress-extra,.progress-list--extra li{transition:none}}@media (width<=900px){.paper-inner--figures{grid-template-columns:1fr}.paper-figures{border-top:1px solid #0d0b091a;border-bottom:1px solid #0d0b091a;flex-direction:row}.paper-figure,.paper-figure:first-child,.paper-figure:last-child{border-bottom:none;border-left:1px solid #0d0b0914;flex:1 1 0;min-width:0;padding:1.2rem 0 1.2rem 1rem}.paper-figure:first-child{border-left:none;padding-left:0}.paper-figure dt{letter-spacing:.2em;font-size:.5rem}.paper-figure dd{font-size:2.6rem}.arch-head{grid-template-columns:1fr;gap:1.5rem}.arch-acc{border-top:1px solid #f0ebe112;border-bottom:none;grid-template-columns:1fr!important}.acc-card,.acc-card:first-child,.acc-card:last-child{border-bottom:1px solid #f0ebe112;padding:1.6rem 0 1.5rem}.acc-ghost{font-size:4.5rem;right:0}.acc-desc{max-width:none}.progress-board{border-top:none;grid-template-columns:1fr}.progress-col,.progress-col:first-child,.progress-col:last-child{border-top:1px solid #f0ebe112;border-left:none;padding:1.6rem 0 2rem}.progress-ghost,.progress-col:last-child .progress-ghost{font-size:5rem;top:.4rem;right:0}}@media (width<=720px){.colophon{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-flow:row}.colophon-cell,.colophon-cell:first-child,.colophon-cell:last-child{border-bottom:1px solid #f0ebe112;border-left:none;padding:1rem .75rem 1rem 0}.colophon-cell--stack{border-bottom:none;order:9;grid-column:1/-1}.colophon-big{font-size:1.3rem}.brush{height:36px}.project-nav{grid-template-columns:1fr}.project-nav-next{text-align:left;border-top:1px solid #f0ebe112;border-left:none;align-items:flex-start}}
