*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:24px;--bg:#272727;--fg:#f8f8f5;--line:#979793;--muted:#b8b8b0;--paper:#f6f6f1;--ink:#272727}html[data-theme=light]{--bg:#f4f4ee;--fg:#272727;--line:#85857e;--muted:#595952;--paper:#272727;--ink:#f5f5ed}html[data-theme=ocean]{--bg:#173d43;--fg:#f2e7cc;--line:#9bb5ae;--muted:#c2d0bd;--paper:#f2e7cc;--ink:#173d43}body{margin:0;background:var(--bg);color:var(--fg);font-family:Arial,Helvetica,sans-serif;transition:background .35s,color .35s}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer;background:none;border:0}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible{outline:2px solid var(--fg);outline-offset:6px}button:disabled{opacity:.4;cursor:default}.skip{position:fixed;top:-100px;left:20px;z-index:100;background:var(--fg);color:var(--bg);padding:12px}.skip:focus{top:12px}.frame{margin:0 3.2%;border-left:1px solid var(--line);border-right:1px solid var(--line)}.masthead{height:265px;position:relative;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;border-bottom:1px solid var(--line)}.identity,nav,.card-meta,.card-bottom,.entry-link,.intro,.title-side,.bracket-label,.about-columns,.discipline,.themes>span,.theme-options,footer,.detail-top,.detail-meta,.detail-copy,.detail-footer,.cut-picker,.detail-caption{font-family:'Geist Mono',monospace;font-size:14px;line-height:1.4;font-weight:400}.identity{font-size:15px}.identity>span{font-size:12px;color:var(--muted)}.masthead>nav{display:flex;gap:25px;position:absolute;bottom:26px;font-size:12px}.cross{position:absolute;font:30px/1 'Geist Mono',monospace;font-weight:200;color:var(--muted)}.tl{top:12px;left:20px}.tr{top:12px;right:20px}.bl{bottom:16px;left:20px}.br{bottom:16px;right:20px}.section-title{min-height:215px;padding:40px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);overflow:hidden}.section-title h1,.section-title h2{font-size:clamp(56px,7.1vw,110px);font-weight:400;letter-spacing:-5px;line-height:1;margin:0}.title-side{text-align:right;font-size:14px}.archive{position:relative;display:grid;grid-template-columns:1fr 1fr;column-gap:0;row-gap:90px;padding:80px 40px 140px}.intro{grid-column:1;grid-row:1;align-self:start;max-width:420px;background:var(--paper);color:var(--ink);padding:35px 26px;clip-path:polygon(20px 0,100% 0,100% calc(100% - 20px),calc(100% - 20px) 100%,0 100%,0 20px);margin-right:60px;line-height:1.5}.intro p{margin:18px 0}.intro-foot{display:block;font-size:11px;letter-spacing:.5px;margin-top:35px}.archive-count{position:absolute;top:25%;right:12%;font-size:100px;font-weight:400;letter-spacing:-8px;color:var(--muted);opacity:.24;pointer-events:none}.entry{min-width:0;position:relative}.entry:nth-of-type(even){grid-column:1}.entry:nth-of-type(odd){grid-column:2}.entry-1{grid-row:1}.project{display:block;text-align:left;width:100%;border:1px solid var(--line);padding:16px;position:relative;transition:border-color .3s}.project:hover{border-color:var(--fg)}.card-meta{display:flex;justify-content:space-between;font-size:12px}.card-meta>span:last-child{text-align:right}.project-visual{display:flex;position:relative;align-items:center;justify-content:center;height:410px;overflow:hidden;margin:20px 16px}.card-bottom{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;font-size:12px}.card-bottom strong{font-weight:400;font-size:16px}.status{text-align:right;color:var(--muted);font-size:11px;max-width:150px}.entry-link{display:flex;justify-content:center;align-items:center;gap:18px;padding:20px 10px;margin:0 auto}.entry-link span{font:28px/1 'Geist Mono',monospace;color:var(--muted);transition:transform .3s}.entry-link:hover span{transform:rotate(90deg)}.film-triptych{display:flex;width:100%;height:100%;align-items:center;justify-content:center;gap:10px;transform:rotate(-5deg) scale(.96)}.film-triptych img{width:30%;height:75%;object-fit:cover;filter:saturate(.75)}.film-triptych img:nth-child(2){height:93%;transform:translateY(-5px)}.site-image{width:100%;height:100%;object-fit:cover;object-position:top;transition:transform .8s cubic-bezier(.2,.8,.2,1)}.project:hover .site-image{transform:scale(1.035)}.morrow-cover{height:100%;width:100%;display:flex;flex-direction:column;align-items:center;justify-content:space-between;padding:50px 10px;background:#0d1010;color:#f6f6f0}.morrow-cover>span:first-child{font-size:24px;letter-spacing:4px}.morrow-outline{font-size:90px;letter-spacing:15px;font-weight:200;color:#a7b5ad}.morrow-cover small{font:10px 'Geist Mono',monospace;letter-spacing:1px}.drift-cover{background:#c5d6ce;display:flex;justify-content:center;align-items:center;width:100%;height:100%;padding:25px 15px}.drift-cover img{width:32%;height:85%;object-fit:contain;filter:drop-shadow(5px 15px 9px #1234)}.drift-cover img:first-child{transform:rotate(-12deg) translateY(12px)}.drift-cover img:last-child{transform:rotate(12deg) translateY(12px)}.drift-cover img:nth-child(2){z-index:1;height:95%}.tap-cover{width:100%;height:100%;background:#101811;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:40px}.tap-cover img{width:75%;max-height:200px;object-fit:contain}.tap-cover>span{font-size:45px;letter-spacing:-2px}.about{border-top:1px solid var(--line)}.about-body{padding:80px 7%}.statement{font-size:clamp(42px,6vw,90px);line-height:1.1;letter-spacing:-3.5px;margin:60px 0}.statement em{font-style:normal;color:var(--muted)}.about-columns{display:grid;grid-template-columns:1fr 1fr;gap:9%;max-width:950px;line-height:1.7}.discipline{display:flex;justify-content:space-between;border-top:1px solid var(--line);margin-top:65px;padding-top:25px;font-size:12px}.themes{padding:110px 7%;border-top:1px solid var(--line);text-align:center}.themes h2{font-size:clamp(45px,5vw,75px);line-height:1.08;letter-spacing:-3px;font-weight:400;margin:35px 0 70px}.theme-options{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--line)}.theme-options button{text-align:left;padding:20px;display:flex;align-items:center;gap:12px;border-right:1px solid var(--line);font-size:12px}.theme-options button:last-child{border-right:0}.theme-options button>span{margin-left:auto}.swatch{display:inline-block;width:22px;height:22px;border:1px solid #888}.swatch.mono{background:#272727}.swatch.light{background:#f4f4ee}.swatch.ocean{background:#173d43}footer{padding:45px 40px 25px;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap}footer p{font-size:12px;color:var(--muted)}.footer-bottom{width:100%;display:flex;justify-content:space-between;margin-top:50px;font-size:10px;color:var(--muted)}.scroll-progress{position:fixed;left:0;top:0;height:2px;background:var(--fg);width:0;z-index:20;pointer-events:none}dialog{background:var(--bg);color:var(--fg);border:1px solid var(--line);width:calc(100% - 7%);max-width:1350px;max-height:94dvh;padding:0;overscroll-behavior:contain}dialog::backdrop{background:#000b;backdrop-filter:blur(8px)}.detail-top{position:sticky;top:0;z-index:3;background:var(--bg);display:flex;align-items:center;justify-content:space-between;padding:22px 30px;border-bottom:1px solid var(--line);font-size:12px}.detail-top button{padding:8px}.detail-heading{padding:45px 30px;border-bottom:1px solid var(--line)}.detail-heading h2{font-size:clamp(35px,5vw,75px);font-weight:400;line-height:1.05;letter-spacing:-2px;margin:20px 0 0}.detail-meta{font-size:12px;display:flex;justify-content:space-between;gap:20px;color:var(--muted)}.detail-body{padding:35px 30px 60px}.detail-copy{max-width:730px;line-height:1.7;margin:0 0 30px}.detail-copy a{text-decoration:underline;text-underline-offset:4px}.detail-media{width:100%;max-height:720px;object-fit:contain;display:block}.detail-media.typography{background:white;max-width:750px;margin:25px auto}.detail-media.logos{margin:20px 0 35px}.detail-video{display:block;width:100%;height:65dvh;min-height:330px;background:#101010;object-fit:contain}.cut-picker{display:flex;flex-wrap:wrap;gap:10px;margin:20px 0}.cut-picker button{border:1px solid var(--line);padding:12px 16px;font-size:14px}.cut-picker button[aria-pressed=true]{background:var(--fg);color:var(--bg)}.detail-caption{font-size:12px;color:var(--muted);margin:16px 0}.detail-footer{display:flex;justify-content:space-between;padding:25px 30px;border-top:1px solid var(--line)}.detail-footer button{padding:10px;font-size:12px}.detail-cans{display:flex;justify-content:center;gap:20px;background:#c5d6ce;padding:50px 20px}.detail-cans img{width:28%;height:450px;object-fit:contain}@media(min-width:1700px){.frame{max-width:1600px;margin:auto}.project-visual{height:510px}}@media(max-width:760px){.frame{margin:0 12px}.masthead{height:190px}.identity{font-size:13px}.identity>span{font-size:10px}.cross{font-size:25px}.tl,.bl{left:10px}.tr,.br{right:10px}.section-title{min-height:150px;padding:24px 14px}.section-title h1,.section-title h2{font-size:47px;letter-spacing:-2.5px}.title-side{font-size:11px}.archive{display:flex;flex-direction:column;padding:38px 12px 60px;gap:40px}.intro{margin:0 35px 10px 0;max-width:none;padding:25px 20px;font-size:13px}.intro-foot{font-size:10px;margin-top:25px}.archive-count{display:none}.project{padding:12px}.card-meta{font-size:11px}.project-visual{height:330px;margin:18px 0}.card-bottom strong{font-size:14px}.card-bottom{gap:10px;font-size:11px}.status{font-size:10px;max-width:115px}.entry-link{padding:15px;font-size:13px}.about-body{padding:45px 20px}.statement{font-size:46px;letter-spacing:-2px;margin:40px 0}.about-columns{grid-template-columns:1fr;gap:5px;font-size:14px}.discipline{gap:15px;flex-wrap:wrap;font-size:11px;margin-top:40px}.themes{padding:60px 20px}.themes h2{font-size:48px;letter-spacing:-2px;margin-bottom:40px}.theme-options{grid-template-columns:1fr}.theme-options button{border-right:0;border-bottom:1px solid var(--line);font-size:14px}.theme-options button:last-child{border-bottom:0}footer{padding:30px 18px;font-size:12px;gap:30px}.footer-bottom{font-size:9px;gap:20px;line-height:1.6;margin-top:10px}dialog{width:calc(100% - 16px);max-height:96dvh}.detail-top{padding:12px;font-size:10px}.detail-heading{padding:25px 15px}.detail-heading h2{font-size:38px}.detail-meta{font-size:10px}.detail-body{padding:25px 15px}.detail-copy{font-size:14px}.detail-video{height:57dvh}.detail-cans{padding:30px 10px;gap:4px}.detail-cans img{width:32%;height:270px}.detail-footer{padding:18px 10px}.morrow-cover>span:first-child{font-size:20px}.morrow-cover small{font-size:8px}.film-triptych{gap:6px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important;animation:none!important}}

.letter{display:inline-block;transform-origin:bottom center}.motion-stage{height:85svh;min-height:500px;overflow:hidden;border-top:1px solid var(--line);border-bottom:1px solid var(--line);position:relative;background:var(--fg);color:var(--bg)}.motion-label{position:absolute;left:30px;right:30px;top:30px;display:flex;justify-content:space-between;z-index:2;font:12px 'Geist Mono',monospace}.motion-track{display:flex;width:300%;height:100%;will-change:transform}.motion-panel{width:33.3333%;height:100%;flex-shrink:0;position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden}.motion-word{font-size:clamp(90px,17vw,280px);letter-spacing:-.07em;font-weight:600;white-space:nowrap;position:absolute;z-index:1;mix-blend-mode:difference;color:#fff}.motion-panel img{height:55%;width:35%;object-fit:contain;transform:rotate(-8deg);filter:saturate(.8)}.motion-panel:nth-child(2) img{width:50%;object-fit:cover;object-position:top;transform:rotate(6deg)}.motion-panel:nth-child(3) img{transform:rotate(12deg)}.motion-note{position:absolute;bottom:35px;font:12px 'Geist Mono',monospace;letter-spacing:2px}.motion-stage.no-motion{height:auto;min-height:0}.no-motion .motion-track{width:100%;display:block}.no-motion .motion-panel{width:100%;height:450px}.no-motion .motion-label{position:relative;top:auto;padding-top:25px}@media(max-width:760px){.motion-stage{height:70svh;min-height:430px}.motion-label{left:15px;right:15px;font-size:10px;gap:15px}.motion-position{display:none}.motion-word{font-size:18vw}.motion-panel img{width:55%;height:57%}.motion-panel:nth-child(2) img{width:80%;height:42%}.motion-note{font-size:10px;letter-spacing:1px}.no-motion .motion-panel{height:350px}}

.entry-2{grid-row:2}.entry-3{grid-row:3}.entry-4{grid-row:4}.entry-5{grid-row:5}.entry-6{grid-row:6}.entry-7{grid-row:7}.morrow-study{width:70%;height:250px;object-fit:contain;background:#fff}.morrow-cover{padding:20px 10px;gap:15px}.morrow-cover>span:first-child{font-size:18px}.detail-heading h2{overflow-wrap:anywhere}@media(max-width:760px){.morrow-study{height:225px}.morrow-cover{padding:12px 10px}}
.motion-panel{background:var(--fg);isolation:isolate}
/* Case-study expansion */
.archive{row-gap:150px}.entry-8{grid-row:8;grid-column:1!important}.project-note{align-self:center;max-width:420px;justify-self:center;padding:25px 45px;z-index:1}.note-business,.note-result>span,.note-cta,.note-result small{font:12px/1.5 'SFMono-Regular',Consolas,monospace}.project-note h3{font-size:clamp(25px,2.6vw,40px);line-height:1.15;letter-spacing:-1.4px;font-weight:400;margin:30px 0}.project-note>p{color:var(--muted);font-size:16px;line-height:1.7}.note-result{border-top:1px solid var(--line);padding-top:24px;margin-top:30px}.note-result p{font-size:17px;line-height:1.5}.note-result small{display:block;color:var(--muted);font-size:11px}.note-cta{padding:16px 0;margin-top:10px;text-decoration:underline;text-underline-offset:6px}.brand-system img{height:100%;width:100%;object-fit:contain}.case-facts{display:grid;grid-template-columns:repeat(3,1fr);gap:35px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:30px 0;margin:45px 0 65px}.case-facts span,.case-section-label,.case-outcome>span,.brand-spec span{font:12px/1.5 'Geist Mono',monospace;color:var(--muted)}.case-facts p{font-size:16px;line-height:1.6;margin:10px 0 0}.case-thesis{font-size:clamp(26px,3vw,43px);line-height:1.2;letter-spacing:-1px;font-weight:400;max-width:900px;margin:0 0 55px}.case-process{margin-top:85px}.case-section-label{margin-bottom:28px}.process-row{border-top:1px solid var(--line);padding:28px 0;display:grid;grid-template-columns:50px 1fr 1.5fr;gap:25px}.process-row>span{font:13px 'Geist Mono',monospace;color:var(--muted)}.process-row h4{font-size:23px;font-weight:400;letter-spacing:-.5px;margin:0}.process-row p{font-size:16px;line-height:1.7;color:var(--muted);margin:0}.case-outcome{padding:38px;margin:45px 0 30px;border:1px solid var(--line)}.case-outcome>p{font-size:clamp(24px,3vw,38px);line-height:1.25;letter-spacing:-.7px;max-width:950px}.case-outcome small{font-size:12px;line-height:1.6;color:var(--muted);display:block;max-width:750px}.brand-showcase{display:grid;grid-template-columns:1fr 1fr;gap:45px 30px}.brand-showcase figure{margin:0}.brand-showcase video{width:100%;background:#071120;aspect-ratio:16/9}.brand-showcase figcaption{padding-top:15px;display:flex;flex-direction:column;gap:7px}.brand-showcase strong{font-size:18px;font-weight:400}.brand-showcase figcaption span{font-size:14px;color:var(--muted)}.brand-spec{display:grid;grid-template-columns:repeat(3,1fr);gap:25px;border-top:1px solid var(--line);margin-top:45px;padding-top:30px}.brand-spec p{font-size:16px;line-height:1.7}.morrow-card-preview{width:90%;border:1px solid #57655f;padding:22px;background:#ffffff08;border-radius:10px}.morrow-card-preview small,.morrow-card-preview>span{font:9px 'Geist Mono',monospace;letter-spacing:1px}.morrow-card-preview p{font-size:34px;line-height:1.1;letter-spacing:-1px}.morrow-prototype{background:#101715;color:#e5ece5;border:1px solid #45564e;padding:28px;overflow:hidden}.prototype-heading{display:flex;justify-content:space-between;gap:20px;font:11px 'Geist Mono',monospace;letter-spacing:2px;color:#adc0b4}.prototype-heading>span:first-child{font-size:15px}.prototype-scene{display:grid;grid-template-columns:1fr 80px 1.4fr;align-items:center;gap:15px;min-height:420px}.companion{background:#202c26;border:1px solid #53655a;padding:25px;border-radius:16px}.prototype-eyebrow{font:10px 'Geist Mono',monospace;letter-spacing:1px;color:#a2b7aa}.companion-note{font-size:25px;line-height:1.3;min-height:100px}.send-indicator{font:11px 'Geist Mono',monospace;color:#afc9b8}.prototype-link{display:flex;gap:10px;justify-content:center}.prototype-link i{width:4px;height:4px;border-radius:50%;background:#a4b9ad;opacity:.3}.view-field{height:340px;position:relative;border:1px solid #405349;background:radial-gradient(ellipse,#3c574746,transparent 75%);padding:60px 25px}.view-label,.view-caption{position:absolute;font:10px 'Geist Mono',monospace;letter-spacing:1.5px;color:#a1b5a8}.view-label{top:18px;left:20px}.view-caption{bottom:18px;left:20px}.hud-note{padding:23px;border:1px solid #a4bfaa88;border-radius:12px;background:#e8ffed09;opacity:0;transform:translateY(20px) scale(.95);transition:opacity .65s,transform .8s cubic-bezier(.2,.8,.2,1),filter .8s;filter:blur(6px)}.hud-note>span,.hud-note>small{font:9px 'Geist Mono',monospace;letter-spacing:1px;color:#b5cbbd}.hud-note>p{font-size:28px;line-height:1.2;letter-spacing:-.5px}.morrow-prototype[data-step="1"] .hud-note,.morrow-prototype[data-step="2"] .hud-note,.morrow-prototype[data-step="4"] .hud-note{opacity:1;transform:translateY(0) scale(1);filter:blur(0)}.morrow-prototype[data-step="2"] .hud-note{border-color:#d1e6d6}.morrow-prototype[data-step="3"] .hud-note{transform:translateY(-25px) scale(.98)}.morrow-prototype[data-step="1"] .prototype-link i,.morrow-prototype[data-step="2"] .prototype-link i,.morrow-prototype[data-step="4"] .prototype-link i{opacity:1}.prototype-state{border-top:1px solid #43554a;padding-top:22px;display:flex;align-items:center;gap:25px}.prototype-state>span{font:11px 'Geist Mono',monospace;color:#a1b5a8}.prototype-state p{font-size:17px;line-height:1.5}.prototype-controls{display:flex;flex-wrap:wrap;gap:12px;margin-top:20px}.prototype-controls button{border:1px solid #70887a;padding:12px 17px;font:12px 'Geist Mono',monospace}.prototype-controls button:first-child{background:#d5e3d8;color:#17211b}.prototype-controls button:focus-visible{outline-color:#fff}@media(max-width:760px){.archive{gap:45px}.project-note{padding:25px 12px 0;max-width:none;align-self:stretch;justify-self:stretch}.project-note h3{font-size:30px;margin:20px 0}.note-result{margin-top:22px;padding-top:20px}.project-note+.entry{margin-top:-20px}.case-facts{grid-template-columns:1fr;gap:25px;padding:25px 0;margin:30px 0 40px}.case-thesis{font-size:28px;margin-bottom:35px}.case-process{margin-top:50px}.process-row{grid-template-columns:30px 1fr;gap:16px}.process-row p{grid-column:2;font-size:15px}.process-row h4{font-size:21px}.case-outcome{padding:22px}.brand-showcase{grid-template-columns:1fr;gap:30px}.brand-spec{grid-template-columns:1fr;gap:15px}.morrow-prototype{padding:18px 12px}.prototype-heading{font-size:8px;letter-spacing:.5px}.prototype-heading>span:first-child{font-size:11px;white-space:nowrap}.prototype-scene{grid-template-columns:1fr;gap:15px;padding:25px 0}.companion{padding:20px}.companion-note{min-height:0;font-size:23px;margin:20px 0}.prototype-link{height:15px}.view-field{height:285px;padding:45px 20px}.hud-note{padding:20px}.hud-note p{font-size:25px}.prototype-state{gap:12px;align-items:flex-start}.prototype-state p{margin:0;font-size:15px}.prototype-state>span{white-space:nowrap;padding-top:3px}.prototype-controls{gap:8px}.prototype-controls button{font-size:11px;padding:12px}.case-outcome>p{font-size:25px}.morrow-card-preview p{font-size:30px}}
.portfolio-preview{height:100%;width:100%;object-fit:cover;object-position:center 45%}.project-visual.swfl{height:460px;margin:20px 35px}.preview-control{display:block;margin:0 auto;padding:10px 20px;font:11px 'Geist Mono',monospace;color:var(--muted);text-decoration:underline;text-underline-offset:5px}.named-cuts{display:grid;grid-template-columns:repeat(3,1fr)}.named-cuts button{text-align:left;line-height:1.5;display:flex;gap:12px;align-items:center}.named-cuts small{opacity:.65;font-size:10px}.breakdown-heading{display:flex;justify-content:space-between;gap:20px;font:12px/1.5 'Geist Mono',monospace;border-top:1px solid var(--line);padding-top:25px}.breakdown-heading a,.screenshot-link{text-decoration:underline;text-underline-offset:5px}.breakdown-instruction{font-size:14px;color:var(--muted);margin:20px 0}.breakdown-layout{display:grid;grid-template-columns:1.6fr 1fr;gap:35px;align-items:start}.annotated-site{position:relative;border:1px solid var(--line);align-self:start}.annotated-site>img{display:block;width:100%;height:auto}.annotation-pin{position:absolute;transform:translate(-50%,-50%);width:34px;height:34px;background:#fff;color:#171717;border:1px solid #171717;border-radius:50%;font:13px 'Geist Mono',monospace;box-shadow:0 2px 15px #0006;transition:background .2s,transform .2s}.annotation-pin[aria-pressed=true]{background:#d7ff72;transform:translate(-50%,-50%) scale(1.17)}.annotation-note{display:flex;gap:17px;text-align:left;border-top:1px solid var(--line);padding:18px 12px;width:100%;opacity:.6;transition:opacity .2s,background .2s}.annotation-note:first-child{border-top:0}.annotation-note[aria-pressed=true]{opacity:1;background:color-mix(in srgb,var(--fg) 7%,transparent)}.annotation-note>span:first-child{font:12px 'Geist Mono',monospace;line-height:1.5}.annotation-note strong{display:block;font-size:17px;line-height:1.3;font-weight:400;margin-bottom:10px}.annotation-note>span>span{display:block;font-size:14px;line-height:1.6;color:var(--muted)}.screenshot-link{display:inline-block;font:12px 'Geist Mono',monospace;margin:23px 0}.detail-caption a{text-decoration:underline;text-underline-offset:4px}@media(max-width:760px){.project-visual.swfl{height:370px;margin:18px 5px}.named-cuts{grid-template-columns:1fr 1fr}.named-cuts button{font-size:12px;padding:12px 10px;gap:7px}.breakdown-layout{grid-template-columns:1fr;gap:20px}.breakdown-heading{font-size:10px}.annotation-pin{width:28px;height:28px;font-size:11px}.annotation-note strong{font-size:18px}.annotation-note>span>span{font-size:15px}.annotation-notes{width:100%}.annotation-note{opacity:.8;padding:22px 10px}}
.entry-9{grid-column:2!important;grid-row:9}.entry-business-description{font-size:15px;line-height:1.7;color:var(--muted);margin:22px 4px 5px;max-width:560px}.business-intro{border-left:2px solid var(--line);padding:4px 0 4px 25px;margin:35px 0 45px;max-width:850px}.business-intro>span{font:11px 'Geist Mono',monospace;color:var(--muted)}.business-intro p{font-size:21px;line-height:1.5;margin:14px 0}.business-intro small{display:block;font-size:13px;line-height:1.6;color:var(--muted);margin:12px 0}.business-intro a{font:12px 'Geist Mono',monospace;text-decoration:underline;text-underline-offset:5px}.fishhouse-placeholder{display:flex;flex-direction:column;justify-content:center;align-items:flex-start;padding:25px;gap:40px;background:color-mix(in srgb,var(--fg) 3%,var(--bg));border:1px dashed var(--line)}.fishhouse-placeholder>span{font:11px 'Geist Mono',monospace;color:var(--muted)}.fishhouse-placeholder strong{font-size:clamp(26px,3vw,43px);letter-spacing:-1px;line-height:1.1;font-weight:400}.fishhouse-case-placeholder{min-height:300px;display:flex;flex-direction:column;align-items:center;justify-content:center;border:1px dashed var(--line);padding:30px}.fishhouse-case-placeholder span{font:12px 'Geist Mono',monospace;color:var(--muted)}.fishhouse-case-placeholder p{font-size:30px}.visually-hidden{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;clip-path:inset(50%)}.word-clip{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.15em;margin-bottom:-.15em;max-width:100%}.reveal-word{display:inline-block;transform-origin:left bottom;will-change:transform}.motion-text-visual{display:inline}.motion-text-visual .word-clip{white-space:nowrap}@media(max-width:760px){.business-intro p{font-size:19px}.business-intro{padding-left:18px}.entry-business-description{font-size:15px;padding:0 8px}.fishhouse-case-placeholder p{font-size:24px}.fishhouse-placeholder{padding:20px}.fishhouse-placeholder strong{font-size:30px}}
/* Grouped chapters and the horizontal-to-vertical intermission. */
#index .section-title h1{font-size:clamp(42px,6.2vw,92px)}.chapter-intro{padding:50px 40px;display:grid;grid-template-columns:1fr 1fr;gap:60px;border-bottom:1px solid var(--line)}.chapter-intro>p{font-size:24px;line-height:1.4;letter-spacing:-.5px;max-width:650px;margin:0}.chapter-nav{position:static;display:flex;flex-direction:column;justify-content:center;align-items:flex-end;gap:14px;font:12px 'Geist Mono',monospace}.chapter-nav a{padding:5px 0}.chapter-heading{padding:30px 40px;display:flex;justify-content:space-between;gap:20px;border-bottom:1px solid var(--line);border-top:1px solid var(--line);scroll-margin-top:20px}.chapter-heading h2{font:16px/1.5 'Geist Mono',monospace;margin:0}.chapter-heading>span{font:11px/1.5 'Geist Mono',monospace;color:var(--muted)}.chapter-archive{display:block;padding:70px 40px 100px}.project-row{display:grid;grid-template-columns:1.2fr 1fr;gap:65px;align-items:center;margin-bottom:120px}.project-row:last-child{margin-bottom:0}.project-row.reverse{grid-template-columns:1fr 1.2fr}.project-row.reverse .entry{order:2}.project-row.reverse .project-note{order:1}.project-row>.entry{grid-row:auto!important;grid-column:auto!important;min-width:0}.project-row>.project-note{grid-row:auto!important;grid-column:auto!important;padding:20px;max-width:480px}.webstack-cover{display:flex;flex-direction:column;align-items:flex-start!important;justify-content:space-between!important;background:#0b0e12;color:#f2f0e9;padding:30px}.webstack-cover>strong{font-size:clamp(45px,6vw,90px);line-height:.92;font-weight:500;letter-spacing:-5px}.webstack-cover>strong>span{font-weight:400}.stack-label,.stack-tags{font:10px/1.7 'Geist Mono',monospace;letter-spacing:.5px}.webstack-detail{background:#0b0e12;color:#f2f0e9;padding:55px}.webstack-detail>span{font:12px 'Geist Mono',monospace}.webstack-detail h3{font-size:clamp(40px,6vw,78px);font-weight:400;letter-spacing:-3px;line-height:1.05}.webstack-detail p{font-size:20px;line-height:1.6}.webstack-detail a{display:inline-block;border:1px solid #182118;padding:17px 22px;margin-top:25px;font:14px 'Geist Mono',monospace}.highlight-stage{position:relative;height:100svh;min-height:700px;overflow:hidden;background:var(--fg);color:var(--bg);border-top:1px solid var(--line);border-bottom:1px solid var(--line);isolation:isolate}.highlight-heading{position:absolute;left:35px;right:35px;top:28px;display:flex;justify-content:space-between;gap:20px;font:11px 'Geist Mono',monospace;z-index:4}.highlight-heading a{text-decoration:underline;text-underline-offset:5px}.highlight-stage>h2{position:absolute;left:35px;top:60px;font-size:clamp(42px,6vw,88px);letter-spacing:-4px;font-weight:500;line-height:1;margin:0;z-index:0;pointer-events:none}.highlight-instruction{position:absolute;right:35px;top:90px;font:11px/1.6 'Geist Mono',monospace;max-width:180px;text-align:right}.highlight-field{position:absolute;inset:0;perspective:1200px}.highlight-object{position:absolute;top:50%;left:50%;width:clamp(280px,31vw,430px);height:410px;transform:translate(-50%,-50%);padding:0;will-change:transform;text-align:left;transform-origin:center center}.object-art{display:flex;flex-direction:column;justify-content:space-between;align-items:flex-start;width:100%;height:100%;padding:28px;border:1px solid #0004;box-shadow:0 25px 70px #0002;will-change:transform;position:relative}.object-art>span:last-child,.object-kicker{font:10px/1.5 'Geist Mono',monospace;letter-spacing:.5px}.object-caption{display:block;font:11px/1.6 'Geist Mono',monospace;margin-top:14px;white-space:nowrap}.object-webstack .object-art{background:#0b0e12;color:#f2f0e9}.object-webstack .object-art>.object-kicker{color:#d89a3c}.object-webstack .object-art>span:last-child{color:#b1b5bd}.object-webstack strong{font-size:85px;letter-spacing:-5px;line-height:.9;font-weight:500}.object-morrow .object-art{background:#121c17;color:#e3ede4}.highlight-hud{display:block;border:1px solid #769380;border-radius:13px;width:100%;padding:25px;background:#ffffff08}.highlight-hud small{font:10px 'Geist Mono',monospace}.highlight-hud strong{display:block;font-size:35px;line-height:1.1;letter-spacing:-1px;font-weight:400;margin-top:20px}.object-drift .object-art{background:#c8dbd0;color:#234338}.object-drift img{align-self:center;object-fit:contain;width:70%;height:280px;transform:rotate(-10deg);filter:drop-shadow(12px 18px 8px #0002)}.highlight-track-status{position:absolute;bottom:25px;left:35px;right:35px;display:flex;align-items:center;gap:20px;font:10px 'Geist Mono',monospace;z-index:3}.highlight-meter{height:2px;flex:1;background:#0002;overflow:hidden}.highlight-meter i{display:block;height:100%;width:0;background:currentColor}.highlight-object:focus-visible{outline:3px solid #272727;outline-offset:8px}.portrait-reserved{float:right;width:31%;height:330px;margin:0 0 40px 45px;border:1px dashed var(--line);display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:25px}.portrait-reserved span{font:10px/1.5 'Geist Mono',monospace;color:var(--muted)}.portrait-reserved p{font-size:28px;letter-spacing:-1px}.about-body .statement{font-size:clamp(35px,4.5vw,65px)}.about-columns{clear:both}.highlight-stage.static-highlights{height:auto;min-height:0;padding:30px 25px 55px}.static-highlights .highlight-heading,.static-highlights>h2,.static-highlights .highlight-instruction,.static-highlights .highlight-track-status{position:static}.static-highlights>h2{margin:40px 0 20px}.static-highlights .highlight-instruction{text-align:left;max-width:none;margin-bottom:30px}.static-highlights .highlight-field{position:static;display:flex;gap:25px;overflow-x:auto;scroll-snap-type:x mandatory;padding:10px 5px 35px}.static-highlights .highlight-object{position:relative;left:auto;top:auto;transform:none;flex:0 0 31%;height:380px;scroll-snap-align:center}.static-highlights .highlight-track-status{margin-top:25px}.static-highlights .highlight-meter{display:none}@media(max-width:760px){.chapter-intro{padding:30px 20px;grid-template-columns:1fr;gap:25px}.chapter-intro>p{font-size:21px}.chapter-nav{align-items:flex-start;gap:10px;font-size:11px}.chapter-heading{padding:25px 15px;flex-direction:column;gap:10px}.chapter-heading h2{font-size:14px}.chapter-archive{padding:35px 12px 60px}.project-row,.project-row.reverse{display:flex;flex-direction:column;gap:15px;margin-bottom:65px;align-items:stretch}.project-row.reverse .entry,.project-row.reverse .project-note{order:initial}.project-row>.project-note{padding:15px 10px}.project-row>.entry{width:100%}.project-note+.entry{margin-top:0}.webstack-cover>strong{font-size:69px}.webstack-detail{padding:30px 22px}.portrait-reserved{float:none;width:100%;height:250px;margin:0 0 40px}.about-body .statement{font-size:39px}.highlight-stage.static-highlights{padding:25px 15px 45px}.static-highlights>h2{font-size:45px;letter-spacing:-2px}.static-highlights .highlight-heading{font-size:9px;gap:15px}.static-highlights .highlight-object{flex-basis:86%;height:360px}.object-webstack strong{font-size:75px}.object-drift img{height:230px}.highlight-track-status{font-size:9px}.static-highlights .highlight-field{gap:20px}}
@font-face{font-family:Geist;src:url('assets/fonts/geist-latin.woff2') format('woff2');font-weight:100 900;font-style:normal;font-display:swap}@font-face{font-family:'Geist Mono';src:url('assets/fonts/geist-mono-latin.woff2') format('woff2');font-weight:100 900;font-style:normal;font-display:swap}
body{font-family:Geist,Arial,sans-serif}.identity,nav,.card-meta,.card-bottom,.entry-link,.intro,.title-side,.bracket-label,.about-columns,.discipline,.themes>span,.theme-options,footer,.detail-top,.detail-meta,.detail-copy,.detail-footer,.cut-picker,.detail-caption{font-family:'Geist Mono',monospace}
[hidden]{display:none!important}.page-loader{position:fixed;inset:0;z-index:1000;background:var(--bg);color:var(--fg);display:none;align-items:center;justify-content:center;gap:5vw;pointer-events:all}.page-loader>div{display:flex;flex-direction:column;align-items:center;gap:25px}.loader-word{font-family:Geist,Arial,sans-serif;font-size:clamp(48px,10vw,160px);font-weight:500;letter-spacing:-.075em;line-height:1.1}.loader-caption{font:11px/1.5 'Geist Mono',monospace;letter-spacing:1px}.loader-cross{font-size:35px;font-weight:200;color:var(--muted)}.loader-rule{display:block;width:100%;height:1px;background:var(--line)}.case-page{display:block;min-height:65vh}.case-page .detail-top{position:static;border-bottom:1px solid var(--line);padding:25px 40px;font-size:12px}.case-page .detail-heading{padding:55px 40px 70px;overflow:hidden}.case-page .detail-heading h2{font-size:clamp(40px,6.5vw,100px);font-weight:400;letter-spacing:-.055em;margin-top:30px}.case-page .detail-body{padding:50px 40px 90px}.project-opening-note{max-width:760px;margin:0 auto 65px}.project-opening-note>span{display:block;text-align:center;font:12px 'Geist Mono',monospace;margin-bottom:30px}.project-opening-note .detail-copy{font:16px/1.75 'Geist Mono',monospace}.case-page .business-intro{max-width:900px;margin:0 auto 55px}.case-page .case-facts{margin:50px 0 70px}.case-page .case-thesis{margin:0 auto 65px;text-align:center;max-width:900px}.case-page .detail-video{max-width:720px;margin:auto;height:75vh}.case-page .named-cuts{max-width:900px;margin:25px auto 75px}.case-page .case-process{max-width:1000px;margin:100px auto 0}.case-page .case-outcome{max-width:1000px;margin:60px auto}.case-page .detail-footer{padding:65px 40px}.case-page .detail-footer a{font-size:14px;text-decoration:underline;text-underline-offset:7px}.notebook-title{display:flex;justify-content:center;align-items:center;gap:25px;text-align:center;margin:60px 0 15px}.notebook-title>span{font-size:30px;font-weight:200}.notebook-title p{font:15px/1.6 'Geist Mono',monospace}.notebook-title small{font-size:10px;color:var(--muted)}.notebook-intro{text-align:center;font-size:15px;color:var(--muted);margin-bottom:80px}.notebook-row{display:grid;grid-template-columns:1fr 2.2fr 1fr;gap:30px;align-items:start;margin-bottom:125px;position:relative}.notebook-screen{margin:0;padding:25px;border:1px solid var(--line);position:relative}.screen-slice{position:relative;overflow:hidden;background:#171717}.screen-slice img{display:block;width:100%;height:auto;position:absolute;left:0;top:0}.notebook-screen figcaption{font:10px 'Geist Mono',monospace;padding-top:18px;color:var(--muted)}.margin-note{padding-top:35px;position:relative;transform:rotate(-2deg)}.margin-note.right{padding-top:90px;transform:rotate(2deg)}.note-number{font:11px 'Geist Mono',monospace;color:var(--muted);border-bottom:1px solid var(--line);padding-bottom:8px;display:inline-block;min-width:45px}.margin-note h4{font-family:'Bradley Hand','Segoe Print',cursive;font-size:25px;line-height:1.25;font-weight:400;margin:22px 0 15px}.margin-note p{font:13px/1.7 'Geist Mono',monospace;color:var(--muted)}.note-arrow{display:block;width:100%;height:65px;color:var(--fg);margin-top:20px;overflow:visible}.note-arrow path{fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:220;stroke-dashoffset:220;transition:stroke-dashoffset 1.8s cubic-bezier(.2,.5,.3,1)}.margin-note.right .note-arrow{transform:scaleX(-1)}.screen-scribble{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;color:#eaff72}.screen-scribble path{fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-dasharray:800;stroke-dashoffset:800;transition:stroke-dashoffset 2.3s .3s ease-in-out}.ink-visible .note-arrow path,.ink-visible .screen-scribble path{stroke-dashoffset:0}.notebook-row-1 .margin-note{padding-top:75px}.notebook-final-note{max-width:420px;margin:-60px auto 50px}.notebook-final-note .note-arrow{display:none}.notebook-links{display:flex;justify-content:center;flex-wrap:wrap;gap:35px;font:12px 'Geist Mono',monospace;margin:50px 0}.notebook-links a{text-decoration:underline;text-underline-offset:6px}.case-page .brand-showcase{max-width:1000px;margin:auto}.case-page .morrow-prototype{max-width:1000px;margin:auto}.case-page .detail-cans{max-width:1000px;margin:auto}@media(max-width:950px){.notebook-row{grid-template-columns:1fr 2fr;gap:25px}.notebook-screen{grid-column:2;grid-row:1/span 2}.margin-note-spacer{display:none}.margin-note,.margin-note.right{grid-column:1;transform:none;padding-top:10px}.notebook-row .margin-note.right{grid-row:2}.margin-note h4{font-size:23px}.margin-note p{font-size:12px}.note-arrow{height:45px}}@media(max-width:650px){.loader-cross{display:none}.loader-caption{font-size:8px;letter-spacing:.4px}.loader-word{font-size:17vw}.case-page .detail-top{padding:20px 15px;font-size:10px}.case-page .detail-heading{padding:35px 15px 45px}.case-page .detail-heading h2{font-size:38px}.case-page .detail-body{padding:35px 15px 60px}.project-opening-note .detail-copy{font-size:14px}.notebook-intro{font-size:14px;line-height:1.6;margin-bottom:40px}.notebook-row{display:flex;flex-direction:column;gap:20px;margin-bottom:70px}.notebook-screen{width:100%;order:0;padding:15px}.margin-note,.margin-note.right,.notebook-row-1 .margin-note{width:100%;order:1;padding:0 10px}.margin-note p{font-size:14px}.margin-note h4{font-size:25px}.note-arrow{display:none}.notebook-title{margin-top:35px}.notebook-links{gap:20px;font-size:11px}.case-page .detail-footer{padding:40px 15px;gap:25px}.case-page .detail-footer a{font-size:12px}.case-page .detail-video{height:65vh}.case-page .case-process{margin-top:65px}.case-page .case-facts{margin-bottom:45px}}
@media(prefers-reduced-motion:reduce){.note-arrow path,.screen-scribble path{stroke-dashoffset:0}}
.section-title h1,.section-title h2{display:flex;align-items:baseline;gap:.12em}.expanding-title{display:inline-block;overflow:hidden;white-space:nowrap;vertical-align:bottom;max-width:100%}.large-index-return{display:block;text-align:center;padding:65px 20px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-size:clamp(50px,8vw,125px);letter-spacing:-.06em}.other-works-label{text-align:center;font:12px 'Geist Mono',monospace;padding-top:45px}.note-cta{display:inline-block}.highlight-object{display:block}.case-page .detail-footer a{max-width:45%}.page-loader{overflow:hidden}.case-page .detail-heading h2:focus{outline:none}.section-title{gap:20px}.entry-link{width:max-content;max-width:100%}@media(max-width:760px){#index .section-title h1{font-size:clamp(25px,5.7vw,42px);letter-spacing:-1.5px}.section-title h2{font-size:clamp(27px,6vw,45px)}.section-title{gap:12px}.large-index-return{padding:45px 15px}.title-side{flex-shrink:0}}
/* The interactive interlude owns all grabbing; project cards elsewhere stay links. */
.highlight-drag-layer{display:block;width:100%;height:100%;transform-origin:center;will-change:transform}.highlight-object.grabbable{cursor:grab;user-select:none;touch-action:pan-y}.highlight-object.is-dragging{cursor:grabbing;z-index:8}.highlight-object img{-webkit-user-drag:none}.tension-cord{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible}.tension-cord path{fill:none;stroke:currentColor;stroke-width:1.5;stroke-dasharray:4 5}.landing-notes{position:absolute;left:57%;top:42%;width:34%;max-width:420px;z-index:2}.landing-notes>span{font:11px 'Geist Mono',monospace}.landing-notes h3{font-size:clamp(30px,4vw,58px);line-height:1.05;font-weight:400;letter-spacing:-2px;margin:25px 0}.landing-notes p{font-size:16px;line-height:1.7}.landing-notes a{display:inline-block;margin-top:18px;border-bottom:1px solid;padding-bottom:8px;font:12px 'Geist Mono',monospace}.static-highlights .landing-notes{position:static;width:auto;max-width:600px;margin:45px 0 20px}.static-highlights .tension-cord{display:none}
/* Opening sequence and intact, annotated website studies. */
.opening-active{overflow:hidden}.loader-progress{display:none;width:100%;justify-content:space-between;font:12px 'Geist Mono',monospace;letter-spacing:.03em}.opening-sequence .loader-progress{display:flex}.loader-progress>span:last-child{font-size:30px;font-variant-numeric:tabular-nums}.loader-stage{align-self:center}.loader-rule{position:relative;background:var(--line);height:2px}.loader-rule i{display:block;width:100%;height:100%;background:var(--fg);transform:scaleX(0);transform-origin:left}.page-loader:not(.opening-sequence) .loader-rule i{transform:scaleX(1)!important}.chapter-intro>p{font-size:clamp(21px,2.2vw,30px);line-height:1.5;letter-spacing:-.6px}.whole-notebook-layout{display:grid;grid-template-columns:minmax(0,2.5fr) minmax(220px,1fr);gap:clamp(30px,4vw,70px);align-items:start}.whole-screen{position:sticky;top:70px;margin:0;padding:18px;border:1px solid var(--line)}.whole-screen-art{position:relative}.whole-screen-art img{display:block;width:100%;height:auto}.whole-screen figcaption{display:flex;justify-content:space-between;gap:10px;margin-top:16px;font:9px/1.5 'Geist Mono',monospace;color:var(--muted)}.whole-scribbles{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.whole-scribbles path{fill:none;stroke:#dfff73;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:1;opacity:0;filter:drop-shadow(0 1px 2px #182118);transition:stroke-dashoffset 2s cubic-bezier(.22,.6,.3,1),opacity .6s}.whole-scribbles .ink-drawn{stroke-dashoffset:0;opacity:.22}.whole-scribbles .ink-active{opacity:1}.whole-margin-notes{padding:20px 0 30vh}.whole-note{display:block;width:100%;background:none;color:inherit;border:0;text-align:left;cursor:pointer;padding:20px 0 25px;margin:0 0 90px;transition:opacity .6s}.whole-note.right{padding-top:20px;margin-left:15px;width:calc(100% - 15px)}.whole-note:last-child{margin-bottom:0}.whole-note:focus-visible{outline:1px dashed var(--fg);outline-offset:10px}.handwritten-title{display:block;font:27px/1.2 'Bradley Hand','Segoe Print',cursive;margin:22px 0 15px}.handwritten-body{display:block;font:13px/1.8 'Geist Mono',monospace;color:var(--muted)}.whole-note[aria-pressed=true] .note-number{color:var(--fg);border-color:var(--fg)}.whole-note .note-arrow{width:90px;transform:scaleX(-1);margin-top:10px}.notebook-intro small{display:inline-block;margin-top:12px;font:11px/1.6 'Geist Mono',monospace}
@media(max-width:800px){.whole-notebook-layout{grid-template-columns:1fr;gap:35px}.whole-screen{position:relative;top:auto;padding:10px}.whole-margin-notes{padding:0;display:grid;grid-template-columns:1fr 1fr;gap:35px}.whole-note,.whole-note.right{margin:0;width:100%;padding:10px;transform:none}.handwritten-title{font-size:24px}.whole-note .note-arrow{display:none}.whole-screen figcaption{font-size:8px}.loader-progress{font-size:9px}.loader-progress>span:last-child{font-size:24px}}
@media(max-width:480px){.whole-margin-notes{grid-template-columns:1fr;gap:20px}.whole-screen figcaption span{display:none}.loader-word{font-size:15vw}.page-loader>div{width:88%;gap:22px}}
@media(prefers-reduced-motion:reduce){.whole-scribbles path{transition:none}.whole-scribbles .ink-drawn{stroke-dashoffset:0}}
@media(max-width:800px){.whole-screen{position:sticky;top:12px;z-index:3;background:var(--bg)}.whole-screen-art{max-width:650px;margin:auto}.whole-note{scroll-margin-top:55vh}}
/* Detached, alternating margin notes around a single continuous image. */
.whole-notebook-layout{grid-template-columns:minmax(155px,.7fr) minmax(0,3fr) minmax(155px,.7fr);gap:28px;position:relative}.whole-screen{grid-column:2;grid-row:1;top:85px;align-self:start;padding:12px}.whole-screen-art{display:block;cursor:zoom-in}.whole-margin-notes{grid-column:1/-1;grid-row:1;display:grid;grid-template-columns:minmax(155px,.7fr) minmax(0,3fr) minmax(155px,.7fr);column-gap:28px;row-gap:80px;padding:45px 0 25vh;pointer-events:none}.whole-note{grid-column:1;pointer-events:auto;margin:0;width:100%;padding:0;align-self:start;opacity:.25;transform:translate(-22px,36px) rotate(-5deg);transition:transform 1.8s cubic-bezier(.2,.7,.2,1),opacity 1.4s ease}.whole-note:nth-child(2n){grid-column:3;transform:translate(22px,50px) rotate(5deg)}.whole-note:nth-child(1){grid-row:1}.whole-note:nth-child(2){grid-row:2}.whole-note:nth-child(3){grid-row:3}.whole-note:nth-child(4){grid-row:4}.whole-note:nth-child(5){grid-row:5}.whole-note.right{padding:0;margin:0;width:100%}.whole-note.note-revealed{opacity:1;transform:translate(0,0) rotate(-2deg)}.whole-note:nth-child(2n).note-revealed{transform:translate(0,0) rotate(2deg)}.whole-note .note-arrow{display:block;width:100%;transform:none;opacity:.7}.whole-note.right .note-arrow{transform:scaleX(-1)}.handwritten-title{font-size:25px}.handwritten-body{font-size:12px;line-height:1.8}.screen-view-links{display:flex;justify-content:space-between;gap:16px;margin-top:20px;padding-top:15px;border-top:1px solid var(--line);font:10px/1.6 'Geist Mono',monospace}.screen-view-links a{text-decoration:underline;text-underline-offset:4px}.large-index-return{padding:35px 20px;margin:65px 0 0;text-align:left;display:flex;justify-content:space-between;align-items:center;gap:25px;font-size:clamp(30px,4.5vw,65px);letter-spacing:-.05em}.large-index-return small{font:10px/1.5 'Geist Mono',monospace;letter-spacing:.08em}.large-index-return>span{white-space:nowrap}.case-index-slot+.case-process{margin-top:65px}
@media(max-width:1050px){.whole-notebook-layout{grid-template-columns:minmax(0,2.2fr) minmax(190px,1fr);gap:35px}.whole-screen{grid-column:1;grid-row:1}.whole-margin-notes{grid-column:2;grid-row:1;display:flex;flex-direction:column;gap:75px;padding:25px 0 20vh}.whole-note,.whole-note.right{width:90%;margin:0}.whole-note:nth-child(2n){align-self:flex-end}.whole-note .note-arrow{transform:scaleX(-1)}}
@media(max-width:650px){.whole-notebook-layout{display:block}.whole-screen{top:10px;z-index:3;background:var(--bg);padding:10px;margin-bottom:45px}.whole-margin-notes{display:flex;padding:0 8px 40px;gap:55px}.whole-note,.whole-note.right{width:85%}.whole-note:nth-child(2n){align-self:flex-end}.handwritten-body{font-size:13px}.whole-note .note-arrow{display:none}.screen-view-links{font-size:9px;margin-top:12px;padding-top:10px}.whole-screen figcaption{font-size:8px}.large-index-return{flex-direction:column;align-items:flex-start;gap:15px;margin-top:40px}.whole-note{scroll-margin-top:60vh}}
@media(prefers-reduced-motion:reduce){.whole-note,.whole-note:nth-child(2n){opacity:1;transform:none;transition:none}}
/* Pinned canvas + one scrollable editorial sidebar; no nested scroll trap. */
.whole-notebook-layout{display:grid;grid-template-columns:minmax(0,2.65fr) minmax(220px,1fr);gap:clamp(28px,4vw,65px);align-items:start}.whole-screen{grid-column:1;grid-row:1;position:sticky;top:24px;padding:16px;z-index:2;background:var(--bg)}.whole-screen-art{width:min(100%,calc((100svh - 225px)*1.44));margin:auto}.whole-screen figcaption{margin-top:14px}.whole-margin-notes{grid-column:2;grid-row:1;display:flex;flex-direction:column;gap:0;padding:22vh 0 30vh;pointer-events:auto}.whole-note,.whole-note.right{flex:none;width:100%;min-height:48vh;margin:0;padding:65px 5px 45px;display:flex;flex-direction:column;justify-content:center;opacity:.38;transform:translate(22px,20px) rotate(2deg);transition:transform 1.3s cubic-bezier(.2,.7,.2,1),opacity .9s}.whole-note:nth-child(2n){align-self:auto;transform:translate(12px,28px) rotate(-2deg)}.whole-note.note-revealed,.whole-note:nth-child(2n).note-revealed{opacity:1;transform:translate(0,0) rotate(0)}.whole-note .note-number{align-self:flex-start}.whole-note .note-arrow,.whole-note.right .note-arrow{display:block;transform:scaleX(-1);width:100px}.whole-note .handwritten-title{font-size:clamp(23px,2.2vw,32px)}.whole-note .handwritten-body{font-size:13px}.notebook-sections{position:static;display:flex;gap:7px;overflow-x:auto;max-width:100%;padding:0 0 16px;margin-bottom:16px;border-bottom:1px solid var(--line);scrollbar-width:thin;align-items:stretch}.notebook-sections button{flex:0 0 auto;background:transparent;color:var(--muted);border:1px solid transparent;padding:9px 11px;font:10px/1.5 'Geist Mono',monospace;cursor:pointer;white-space:nowrap}.notebook-sections button>span{opacity:.6;margin-right:5px}.notebook-sections button[aria-current=step]{color:var(--fg);border-color:var(--line);background:var(--bg)}.notebook-sections button:focus-visible{outline:2px solid var(--fg);outline-offset:-2px}.notebook-current{color:var(--fg)}
@media(max-width:900px) and (min-width:651px){.whole-notebook-layout{grid-template-columns:minmax(0,1.7fr) minmax(190px,1fr);gap:25px}.whole-screen{padding:10px}.notebook-sections button{padding:8px;font-size:9px}.whole-note .handwritten-body{font-size:12px}.screen-view-links{flex-direction:column;gap:7px}}
@media(max-width:650px){.whole-notebook-layout{display:block}.whole-screen{top:8px;padding:10px;margin-bottom:0;box-shadow:0 10px 25px var(--bg)}.whole-screen-art{width:min(100%,calc(29svh * 1.44))}.notebook-sections{margin-bottom:10px;padding-bottom:8px;gap:3px}.notebook-sections button{padding:7px;font-size:9px}.whole-screen figcaption{font-size:8px;margin-top:9px}.screen-view-links{margin-top:9px;padding-top:8px;font-size:9px}.whole-margin-notes{padding:8vh 12px 20vh;gap:0}.whole-note,.whole-note.right{min-height:47svh;width:100%;padding:35px 8px;scroll-margin-top:55svh}.whole-note .note-arrow{display:none}.whole-note .handwritten-title{font-size:25px}.whole-note .handwritten-body{font-size:13px;max-width:440px}}
@media(prefers-reduced-motion:reduce){.whole-note,.whole-note:nth-child(2n){transform:none;transition:none}.whole-scribbles path{transition:none}}
/* Pinned stages must fit the visible viewport, including short laptop windows. */
.highlight-stage:not(.static-highlights){height:100svh;min-height:560px}.highlight-stage:not(.static-highlights) .highlight-object{height:clamp(270px,48svh,410px)}.highlight-stage:not(.static-highlights) .object-art{padding:clamp(18px,2.4svh,28px)}.highlight-stage:not(.static-highlights) .object-drift img{height:min(27svh,260px);max-height:70%}.highlight-stage:not(.static-highlights) .object-webstack strong{font-size:clamp(58px,10svh,85px)}.highlight-stage:not(.static-highlights) .highlight-hud{padding:18px}.highlight-stage:not(.static-highlights) .highlight-hud strong{font-size:clamp(25px,4svh,35px)}.highlight-stage:not(.static-highlights) .landing-notes{top:40%}.highlight-stage:not(.static-highlights) .landing-notes h3{font-size:clamp(30px,5svh,58px);margin:20px 0}.highlight-stage:not(.static-highlights) .landing-notes p{font-size:14px;line-height:1.6}.notebook-sections{min-width:0;flex-wrap:nowrap;width:100%;box-sizing:border-box}.whole-screen{min-width:0}
/* Native sticky track replaces script-managed fixed pinning. */
.highlight-scroll-track{position:relative;height:620svh;overflow:visible;isolation:isolate;overflow-anchor:none}.highlight-scroll-track>.highlight-stage{position:sticky;top:0;height:100svh;min-height:0;width:100%;margin:0;box-sizing:border-box}.highlight-scroll-track .highlight-field{pointer-events:none}.highlight-scroll-track .highlight-object{pointer-events:auto}.highlight-scroll-track .highlight-heading{z-index:10}.highlight-scroll-track .highlight-track-status{pointer-events:none}.highlight-scroll-track .highlight-object:focus-visible{outline-color:currentColor}
@media(min-width:761px) and (max-height:650px){.highlight-stage>h2{font-size:44px;letter-spacing:-2px;top:60px}.highlight-stage .highlight-instruction{top:70px}.highlight-stage:not(.static-highlights) .highlight-object{height:43svh}.highlight-stage:not(.static-highlights) .object-webstack strong{font-size:54px}.highlight-stage:not(.static-highlights) .landing-notes{top:35%}.highlight-stage:not(.static-highlights) .landing-notes h3{font-size:30px;margin:12px 0}.highlight-stage:not(.static-highlights) .landing-notes p{font-size:12px}}
/* A connected bridge that hands its first card back into the archive. */
body{overflow-x:clip}.highlight-scroll-track{height:400svh;z-index:3}.highlight-scroll-track>.highlight-stage{overflow:visible;background:var(--bg);color:var(--fg);border:0}.highlight-scroll-track .highlight-field{z-index:2}.highlight-scroll-track .highlight-object{width:clamp(220px,26vw,360px);height:clamp(250px,45svh,380px)}.highlight-scroll-track .highlight-heading,.highlight-scroll-track .highlight-track-status{z-index:1}.highlight-scroll-track .tension-cord{z-index:1;overflow:visible}.tension-cord path{stroke-dasharray:none;stroke-width:1.5;stroke-linecap:round}.highlight-scroll-track .highlight-object .object-art{padding:24px}.highlight-scroll-track .highlight-object .object-webstack strong{font-size:75px}.bridge-landing{position:relative;background:var(--bg);color:var(--fg);z-index:1}.bridge-landing .chapter-archive{padding-top:80px;padding-bottom:95px}.bridge-landing .webstack-landing{display:block;height:410px;margin:20px 16px;overflow:visible}.bridge-landing .object-art{padding:24px}.bridge-landing.bridge-enhanced .webstack-landing>.object-art{visibility:hidden}.bridge-landing.bridge-landed .webstack-landing>.object-art{visibility:visible}.bridge-enhanced .card-meta,.bridge-enhanced .card-bottom,.bridge-enhanced .entry-link,.bridge-enhanced .project-note{opacity:var(--landing-copy,0)}.bridge-entry .project-visual{transform:none!important}.highlight-scroll-track .object-caption{pointer-events:none}.highlight-scroll-track .highlight-heading a{position:relative;z-index:5}.static-highlights .tension-cord{display:none}
/* Portrait deliverables stay portrait; no crop of captions or titles. */
#entry-swfl .project-visual.swfl,#entry-tap .project-visual.tap{height:auto;width:min(100% - 32px,350px);aspect-ratio:9/16;margin:24px auto;display:block}.portfolio-preview{display:block;width:100%;height:100%;object-fit:contain;object-position:center}.tap-cover{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center}.case-page .detail-video{width:min(100%,calc(76svh * 9 / 16));height:auto;max-height:76svh;aspect-ratio:9/16;object-fit:contain;display:block;margin:auto;background:#111}@media(max-width:760px){.bridge-landing .webstack-landing{height:350px}.bridge-landing .chapter-archive{padding-top:35px;padding-bottom:60px}#entry-swfl .project-visual.swfl,#entry-tap .project-visual.tap{width:min(100% - 28px,310px)}.case-page .detail-video{width:min(100%,calc(72svh * 9 / 16));max-height:72svh}}
.highlight-stage{background:var(--bg);color:var(--fg);border:0}.highlight-scroll-track>.highlight-stage .highlight-object{width:clamp(220px,26%,360px);height:clamp(250px,45svh,380px)}.highlight-scroll-track>.highlight-stage .highlight-object .object-art{padding:24px}.pending-film{aspect-ratio:9/16;width:min(100%,340px);margin:0 auto 50px;border:1px dashed var(--line);display:flex;flex-direction:column;justify-content:space-between;padding:30px}.pending-film>span{font:10px/1.6 'Geist Mono',monospace}.pending-film strong{font-size:45px;line-height:1.05;font-weight:400;letter-spacing:-2px}.pending-film p{font:12px/1.8 'Geist Mono',monospace;color:var(--muted)}
/* Match artwork precisely across the animated-to-static handoff. */
.highlight-scroll-track .highlight-object.object-webstack strong,.bridge-landing .object-webstack strong{font-size:75px;line-height:.9;letter-spacing:-5px;font-weight:500}.case-page .detail-video{min-height:0}
/* Official Morrow artwork: unmodified PNGs, framed with their supplied margins. */
.morrow-art-window{display:block;position:relative;overflow:hidden;flex:none}.morrow-art-window img{position:absolute;display:block;max-width:none!important;height:auto!important;object-fit:initial!important;margin:0!important;transform:none!important;filter:none}.morrow-final-lockup{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;gap:30px}.morrow-final-lockup .morrow-symbol{width:42%}.morrow-final-lockup .morrow-wordmark{width:86%}.project-visual.morrow .morrow-final-cover{background:#201d1d;color:#fff;width:100%;height:100%;display:flex;flex-direction:column;justify-content:space-between;padding:30px}.morrow-final-cover>small{font:10px/1.5 'Geist Mono',monospace;letter-spacing:.04em}.object-morrow .object-art.morrow-final-bridge{background:#201d1d;color:#fff}.morrow-final-bridge .morrow-final-lockup{gap:22px}.morrow-final-bridge .morrow-symbol{width:52%}.morrow-final-bridge .morrow-wordmark{width:100%}.morrow-identity{max-width:1100px;margin:80px auto 0}.identity-intro,.morrow-prototype-intro{max-width:650px;margin:0 0 60px}.identity-intro>span,.morrow-prototype-intro>span{font:11px 'Geist Mono',monospace}.identity-intro h3,.morrow-prototype-intro h3{font-size:clamp(38px,5.5vw,70px);line-height:1.04;letter-spacing:-.055em;font-weight:400;margin:25px 0}.identity-intro p,.morrow-prototype-intro p{font:15px/1.8 'Geist Mono',monospace;color:var(--muted)}.morrow-specimens{display:grid;grid-template-columns:1fr 1fr;gap:25px;align-items:stretch}.morrow-specimen{margin:0;min-height:420px;padding:28px;display:flex;flex-direction:column;justify-content:space-between;gap:35px}.morrow-specimen.on-light{background:#fff;color:#000}.morrow-specimen.on-dark{background:#201d1d;color:#fff;margin-top:0}.morrow-specimen figcaption,.specimen-label{font:9px/1.6 'Geist Mono',monospace;letter-spacing:.06em}.specimen-lockup{display:flex;flex-direction:column;align-items:center;gap:35px;padding:20px 0}.specimen-lockup .morrow-symbol{width:58%}.specimen-lockup .morrow-wordmark{width:100%}.morrow-identity-notes{display:grid;grid-template-columns:1fr 1fr;gap:60px;margin:45px 0 65px}.morrow-identity-notes p{font:13px/1.9 'Geist Mono',monospace;max-width:420px}.morrow-identity-notes span{display:block;font-size:10px;margin-bottom:15px;color:var(--muted)}.morrow-source-sheet{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:22px 0;margin:40px 0 100px}.morrow-source-sheet summary{cursor:pointer;font:12px 'Geist Mono',monospace}.morrow-source-sheet summary>span{float:right}.morrow-source-sheet img{display:block;width:min(100%,700px);height:auto;margin:30px auto 0}.morrow-prototype-intro{margin-bottom:40px}.prototype-heading .prototype-wordmark{width:180px;max-width:45%}.morrow-prototype .prototype-heading{background:#201d1d;color:#fff;align-items:center}.morrow-final-bridge .object-kicker{font-size:9px}
@media(max-width:760px){.morrow-specimens{grid-template-columns:1fr;gap:20px}.morrow-specimen{min-height:340px}.morrow-specimen.on-dark{margin-top:0}.specimen-lockup{max-width:400px;width:100%;margin:auto}.morrow-identity-notes{grid-template-columns:1fr;gap:10px;margin:30px 0 45px}.morrow-identity{margin-top:45px}.morrow-source-sheet{margin-bottom:65px}.prototype-heading .prototype-wordmark{width:130px}.project-visual.morrow .morrow-final-cover{padding:25px}}
/* Center the screenshot and reading position as one unit. Only the active note moves. */
.notebook-scroll-track{position:relative;height:auto;overflow:visible}.notebook-scroll-track.notebook-locked{height:var(--notebook-length,375svh)}.notebook-scroll-track .whole-notebook-layout{display:grid;grid-template-columns:minmax(0,2.65fr) minmax(220px,1fr);gap:clamp(28px,4vw,65px);align-items:center;min-width:0}.notebook-locked .whole-notebook-layout{position:sticky;top:0;height:100svh;box-sizing:border-box;padding:24px 0}.notebook-scroll-track .whole-screen{position:relative;top:auto;grid-column:1;grid-row:1;align-self:center;margin:0;min-width:0;box-shadow:none}.notebook-scroll-track .whole-screen-art{width:min(100%,calc((100svh - 200px)*1.44));margin:auto}.notebook-scroll-track .whole-margin-notes{position:relative;grid-column:2;grid-row:1;display:grid;grid-template-columns:1fr;align-items:center;padding:0;margin:0;gap:0;min-width:0;pointer-events:auto;align-self:center}.notebook-scroll-track .whole-margin-notes .whole-note:nth-child(n){grid-column:1;grid-row:1;align-self:center;justify-content:center;width:100%;min-height:0;height:auto;margin:0;padding:18px 0;transform:none;opacity:0;visibility:hidden;pointer-events:none;transition:none}.notebook-scroll-track .whole-margin-notes .whole-note[aria-pressed=true]{opacity:1;visibility:visible;pointer-events:auto}.notebook-scroll-track .whole-note .handwritten-title{margin-top:22px}.notebook-scroll-track .whole-note .note-arrow{margin-top:20px}.notebook-scroll-track+.notebook-links{margin:30px 0 50px}
@media(min-width:761px) and (max-width:1000px){.notebook-scroll-track .whole-notebook-layout{grid-template-columns:minmax(0,1.85fr) minmax(190px,1fr);gap:25px}.notebook-scroll-track .whole-note .handwritten-title{font-size:24px}.notebook-scroll-track .whole-note .handwritten-body{font-size:12px}}
@media(max-width:760px){.notebook-scroll-track .whole-notebook-layout{display:flex;flex-direction:column;gap:28px}.notebook-scroll-track .whole-screen{width:100%;position:relative;top:auto}.notebook-scroll-track .whole-screen-art{width:100%}.notebook-scroll-track .whole-margin-notes{width:100%;padding:0 10px}.notebook-scroll-track .whole-margin-notes .whole-note:nth-child(n){padding:12px 0 20px}.notebook-scroll-track .whole-note .handwritten-body{max-width:none}}
/* Transform-only progress avoids relaying out the bar during motion. */
.highlight-scroll-track .highlight-meter i{width:100%;transform:scaleX(0);transform-origin:left center}.highlight-scroll-track .highlight-drag-layer{backface-visibility:hidden}.highlight-scroll-track .highlight-object{backface-visibility:hidden}
.morrow-vision{margin:80px 0 100px;border-top:1px solid var(--line);padding-top:45px}.vision-heading{max-width:730px;margin-bottom:45px}.vision-heading>span{font:10px/1.6 'Geist Mono',monospace}.vision-heading h3{font-size:clamp(35px,5vw,62px);line-height:1.05;letter-spacing:-.05em;font-weight:400;margin:25px 0}.vision-heading p{font:15px/1.8 'Geist Mono',monospace;color:var(--muted)}.vision-row{display:grid;grid-template-columns:40px 1fr 1.6fr;gap:30px;padding:35px 0;border-top:1px solid var(--line);align-items:start}.vision-row>span{font:10px 'Geist Mono',monospace;color:var(--muted)}.vision-row h4{font-size:25px;line-height:1.2;font-weight:400;letter-spacing:-.6px;margin:0}.vision-row p,.vision-status{font:13px/1.9 'Geist Mono',monospace;margin:0;color:var(--muted)}.vision-status{margin-top:25px;max-width:750px;font-size:11px}@media(max-width:760px){.morrow-vision{margin:50px 0 65px}.vision-row{grid-template-columns:25px 1fr;gap:15px;padding:25px 0}.vision-row p{grid-column:2}.vision-row h4{font-size:24px}.vision-heading p{font-size:13px}}
.morrow-role{max-width:1100px;margin:70px auto 95px}.role-heading{max-width:760px}.role-heading>span,.role-responsibilities span,.morrow-project-growth>span{font:10px/1.6 'Geist Mono',monospace;letter-spacing:.04em}.role-heading h3{font-size:clamp(35px,5vw,62px);font-weight:400;line-height:1.06;letter-spacing:-.05em;margin:25px 0}.role-heading p{font:15px/1.9 'Geist Mono',monospace;color:var(--muted)}.role-responsibilities{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:35px;margin-top:45px;padding-top:25px;border-top:1px solid var(--line)}.role-responsibilities p,.morrow-project-growth p{font:13px/1.8 'Geist Mono',monospace;color:var(--muted)}.morrow-project-growth{border-top:1px solid var(--line);padding-top:25px;margin-top:30px;max-width:850px}@media(max-width:760px){.morrow-role{margin:45px auto 65px}.role-responsibilities{grid-template-columns:1fr;gap:15px}.role-heading p{font-size:13px}}
/* One body-text family throughout; headings retain their display hierarchy. */
body p,.handwritten-body,.detail-copy,.entry-business-description,.screen-view-links,.detail-caption{font-family:'Geist Mono',monospace!important;font-weight:400!important;letter-spacing:normal}.case-page .editorial-facts{grid-template-columns:1fr 1fr;max-width:1000px;margin:35px auto 60px;padding:22px 0}.editorial-facts p{font-size:13px;line-height:1.7}.case-page .project-opening-note{max-width:850px;margin-bottom:25px}.case-page .project-opening-note .detail-copy{font-size:15px;line-height:1.85}.project-opening-note>span{text-align:left!important;margin-bottom:18px!important}.case-editorial-ending{max-width:1000px;margin:45px auto 0;padding:25px 0;border-top:1px solid var(--line)}.case-editorial-ending>span{font:10px/1.6 'Geist Mono',monospace}.case-editorial-ending p{max-width:800px;font-size:14px;line-height:1.85;margin:15px 0 0}.morrow-identity{margin:50px auto 0}.identity-intro{margin-bottom:30px;max-width:800px}.identity-intro h3,.vision-heading h3,.morrow-prototype-intro h3{font-size:clamp(32px,4.2vw,54px);margin:20px 0}.morrow-sheet-link{display:inline-block;margin-top:20px;font:11px/1.7 'Geist Mono',monospace;text-decoration:underline;text-underline-offset:5px}.morrow-vision{max-width:1100px;margin:65px auto;padding-top:30px}.vision-heading{margin-bottom:25px}.vision-row{padding:25px 0}.morrow-prototype-intro{max-width:1000px;margin:0 auto 25px}.case-page .large-index-return{margin-top:45px}.webstack-guide{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:30px;border-top:1px solid #18211855;padding-top:25px}.webstack-guide span{font:10px 'Geist Mono',monospace}.webstack-guide p{font-size:14px;line-height:1.8}
@media(max-width:760px){.case-page .editorial-facts{grid-template-columns:1fr;gap:20px;margin-bottom:40px}.morrow-identity{margin-top:35px}.morrow-vision{margin:45px auto}.webstack-guide{grid-template-columns:1fr;gap:15px}.case-page .project-opening-note .detail-copy{font-size:13px}.case-editorial-ending p{font-size:13px}}

/* Weightless cards: readable larger faces, slow tilt, and a precise camera cursor. */
.highlight-scroll-track .highlight-drag-layer{transform-style:preserve-3d}
.camera-cursor{position:fixed;top:0;left:0;width:32px;height:28px;z-index:2147483647;pointer-events:none;visibility:hidden;color:#fff;mix-blend-mode:difference;will-change:transform}
.camera-cursor.is-visible{visibility:visible}
.camera-cursor svg{display:block;width:32px;height:28px;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;transition:transform .2s ease}
.camera-cursor .camera-body{fill:#fff;fill-opacity:.06}
.camera-cursor.is-link .camera-lens{fill:#fff;fill-opacity:.28}
.camera-cursor.is-grabbing svg{transform:rotate(-12deg)}
.camera-flash,.camera-shutter{position:absolute;left:15.5px;top:15.5px;opacity:0;pointer-events:none;border-radius:50%;transform:translate(-50%,-50%)}
.camera-flash{width:46px;height:46px;border:1px solid currentColor}
.camera-shutter{width:20px;height:20px;background:currentColor}
@media(hover:hover) and (pointer:fine){html.camera-pointer-active,html.camera-pointer-active *{cursor:none!important}}
@media(prefers-reduced-motion:reduce){.camera-cursor svg{transition:none}}

/* One hover language: larger work, gently lifted controls. Individual scale
   composes with existing scroll/tilt transforms without changing the layout. */
@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){
 :where(a:not(.highlight-object):not(.whole-note),button:not(.whole-note),summary){transition:scale .55s cubic-bezier(.22,1,.36,1),border-color .3s,color .3s,background-color .3s;transform-origin:center}
 :where(nav a,.identity,.detail-copy a,.detail-caption a,.detail-footer a,footer a,.notebook-links a,.screen-view-links a,.highlight-heading a){display:inline-block}
 :where(a:not(.highlight-object):not(.project):not(.whole-screen-art):not(.large-index-return):not(.skip):not(.morrow-sheet-link),button:not(:disabled):not([aria-disabled=true]):not(.whole-note),summary):is(:hover,:focus-visible){scale:1.055}
 .project:is(:hover,:focus-visible){scale:1.035;z-index:4}
 .entry:hover,.entry:focus-within{z-index:4}
 .project:is(:hover,:focus-visible) .site-image{transform:none}
 .whole-screen-art:is(:hover,:focus-visible){scale:1.025}
 .large-index-return>span,.morrow-sheet-link{transition:scale .55s cubic-bezier(.22,1,.36,1);transform-origin:left center}
 .large-index-return:is(:hover,:focus-visible)>span{scale:1.055;transform-origin:right center}
 .morrow-sheet-link:is(:hover,:focus-visible){scale:1.025}
 .notebook-scroll-track .whole-margin-notes .whole-note:nth-child(n){transition:scale .55s cubic-bezier(.22,1,.36,1);transform-origin:left center}
 .notebook-scroll-track .whole-note[aria-pressed=true]:is(:hover,:focus-visible){scale:1.035}
 .static-highlights .highlight-object{transition:scale .55s cubic-bezier(.22,1,.36,1)}
 .static-highlights .highlight-object:is(:hover,:focus-visible){scale:1.045}
 .bridge-enhanced:not(.bridge-landed) .project{scale:1}
}

/* Detached editorial notes align to the card face, not its caption/link footer. */
.entry-details{min-width:0}
.entry-details .entry-business-description{margin:0 0 12px;padding:0;max-width:52ch}
.entry-details .entry-link{padding-top:14px;padding-bottom:14px}
.project-row>.project-note{text-align:left;border:0;background:none}
@media(min-width:761px){
 .project-row,.project-row.reverse{column-gap:clamp(48px,6.5vw,110px);align-items:start;margin-bottom:clamp(100px,10vw,160px)}
 /* The note sits on the row's outer side, a small inset (--note-inset: ~58px at 1440, ~39px at 1280, ~10px at 1024) in from the
    masthead's content line, so the gap to the card grows instead of the text hugging it. One value for every row. */
 .project-row{--note-inset:clamp(8px,calc(11.5vw - 108px),64px)}
 .project-row>.project-note{width:calc(100% - var(--note-inset));max-width:390px;padding:0;justify-self:end;margin-right:var(--note-inset)}
 .project-row.reverse>.project-note{justify-self:start;margin-right:0;margin-left:var(--note-inset)}
 /* The card mirrors that inset on its own outer side, so the text + card group sits symmetrically in the row. */
 .project-row>.entry{margin-left:var(--note-inset)}
 .project-row.reverse>.entry{margin-left:0;margin-right:var(--note-inset)}
 .project-note h3{font-size:clamp(26px,2.6vw,40px);margin:24px 0;max-width:16ch}
 .project-note>p{margin:0;max-width:39ch}
 .project-note .note-result{margin-top:28px}
 .project-note .note-cta{align-self:flex-start;margin-top:28px}
 .entry-details{padding:24px 4px 0}
 @supports(grid-template-rows:subgrid){
  .project-row{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);grid-template-rows:auto auto;row-gap:0}
  .project-row.reverse{grid-template-columns:minmax(0,1fr) minmax(0,1.2fr)}
  .project-row>.entry{display:grid;grid-template-rows:subgrid;grid-row:1 / span 2!important;grid-column:1!important;align-self:stretch;order:initial}
  .project-row.reverse>.entry{grid-column:2!important;order:initial}
  .project-row>.entry>.project{grid-row:1;align-self:start}
  .project-row>.entry>.entry-details{grid-row:2;align-self:start}
  .project-row>.project-note{grid-row:1!important;grid-column:2!important;align-self:center;order:initial}
  .project-row.reverse>.project-note{grid-column:1!important;order:initial}
 }
}
@media(max-width:760px){
 .entry-details{padding:22px 4px 0}
 .project-row,.project-row.reverse{gap:32px}
 .project-row>.project-note{padding:0 8px;max-width:480px;margin:0;width:100%;align-self:flex-start}
 .project-note h3{max-width:20ch}
}

/* Stable viewport for the selected-section tour; original captures stay intact. */
.notebook-scroll-track .whole-screen-art{aspect-ratio:1440/1000;display:block;background:color-mix(in srgb,var(--fg) 4%,transparent)}
.notebook-scroll-track .whole-screen-art img{width:100%;height:100%;object-fit:contain}
.website-motion-preview{margin:0 auto 60px;max-width:1100px}
.website-motion-preview video{display:block;width:100%;max-height:68svh;background:#111;object-fit:contain}
.website-motion-preview figcaption{margin-top:14px;font:10px 'Geist Mono',monospace;color:var(--muted)}

/* Webstack: a compact, interactive component breakdown. */
.webstack-case-study{max-width:1100px;margin:auto}
.webstack-project-note{border-left:1px solid var(--line);padding:0 0 0 28px;max-width:780px;margin:20px 0 70px}
.webstack-project-note>span,.webstack-study-heading>span{font:10px/1.5 'Geist Mono',monospace}
.webstack-project-note p,.webstack-study-heading p{font-size:14px;line-height:1.8;color:var(--muted)}
.webstack-study-heading h3{font:500 clamp(32px,4vw,58px)/1.08 Geist,sans-serif;letter-spacing:-.04em;margin:22px 0}
.webstack-study-heading p{max-width:630px;margin-bottom:35px}
.webstack-study-tabs{position:static;display:flex;gap:10px;flex-wrap:wrap;border-bottom:1px solid var(--line);padding-bottom:18px;margin-bottom:28px}
.webstack-study-tabs button{border:1px solid transparent;padding:12px 16px;font:11px 'Geist Mono',monospace}
.webstack-study-tabs button[aria-pressed=true]{border-color:var(--line)}
.webstack-study-tabs button>span{color:var(--muted);margin-right:8px}
.webstack-study-layout{display:grid;grid-template-columns:minmax(0,2fr) minmax(210px,.9fr);gap:40px;align-items:center}
.webstack-study-stage{min-width:0}
.stack-demo{position:relative;min-height:430px;padding:28px;background:#f1efe7;color:#0b0d12;box-sizing:border-box}
.stack-demo[hidden],.stack-demo [hidden]{display:none!important}
.stack-demo small{font:9px/1.7 'Geist Mono',monospace}
.stack-demo-hero{background:#0b0d12;color:#f1efe7;overflow:hidden;isolation:isolate}
[data-webstack-scene]{position:absolute;inset:0 0 0 15%;z-index:-1}
[data-webstack-scene] canvas{display:block;width:100%;height:100%}
.stack-demo-hero-copy{display:flex;flex-direction:column;justify-content:space-between;min-height:350px;pointer-events:none}
.stack-demo-hero-copy>strong{font:800 clamp(38px,4.7vw,70px)/.92 Geist,sans-serif;letter-spacing:-.055em}
.stack-demo-hero-copy em{color:#d89a3c;font-style:normal;font-weight:400}
.stack-demo-hero-copy>span{font:9px 'Geist Mono',monospace}
.stack-motion-control{position:absolute;right:20px;bottom:22px;font:10px 'Geist Mono',monospace;text-decoration:underline;text-underline-offset:5px}
.stack-demo-filters{display:flex;flex-wrap:wrap;gap:8px;margin:25px 0 18px}
.stack-demo-filters button{border:1px solid;padding:9px 12px;font:10px 'Geist Mono',monospace}
.stack-demo-filters button[aria-pressed=true]{background:#0b0d12;color:#d89a3c}
[data-stack-count]{font:10px 'Geist Mono',monospace}
.stack-demo-directory details{border-bottom:1px solid #b3b3a7}
.stack-demo-directory summary{display:flex;justify-content:space-between;align-items:center;cursor:pointer;padding:17px 0;list-style:none}
.stack-demo-directory summary::-webkit-details-marker{display:none}
.stack-demo-directory summary>span:first-child{display:grid;gap:5px}
.stack-demo-directory summary strong{font:500 24px Geist,sans-serif}
.stack-demo-directory details p{font-size:12px;line-height:1.7;padding-bottom:15px}
.stack-demo-guide{display:flex;flex-direction:column;gap:22px;justify-content:center}
.stack-demo-guide>strong{font:600 36px/1 Geist,sans-serif;letter-spacing:-.03em}
.stack-demo-guide>p{font-size:12px;line-height:1.7;margin:0}
.stack-demo-guide>a{background:#0b0d12;color:#f1efe7;padding:18px;font:11px/1.5 'Geist Mono',monospace}
.stack-demo-guide ol{font:11px/1.8 'Geist Mono',monospace;margin:0;padding-left:18px}
.stack-study-caption{font-size:9px;line-height:1.7;color:var(--muted);margin:14px 0 0}
.stack-study-notes>span{font:10px 'Geist Mono',monospace}
.stack-study-notes h4{font:500 28px/1.15 Geist,sans-serif;letter-spacing:-.04em;margin:22px 0}
.stack-study-notes p{font-size:13px;line-height:1.8;color:var(--muted)}
.stack-live-link{display:inline-block;margin-top:40px;font:12px 'Geist Mono',monospace;text-decoration:underline;text-underline-offset:6px}
@media(max-width:760px){.webstack-study-layout{grid-template-columns:1fr;gap:25px}.stack-demo{min-height:360px;padding:24px}.stack-demo-hero-copy{min-height:310px}.stack-demo-hero-copy>strong{font-size:clamp(36px,8.7vw,65px)}.webstack-project-note{padding-left:18px}.webstack-study-tabs{gap:4px}.webstack-study-tabs button{padding:10px 8px;font-size:10px}.stack-motion-control{position:static;margin:22px 0 0}}

/* Keep the opening-view notes together, then move to the selected site sections. */
.notebook-sections button{display:block;line-height:1.5;text-align:left}
.notebook-sections button small{display:block;font:8px/1.5 'Geist Mono',monospace;text-transform:uppercase;color:var(--muted);margin-bottom:5px;letter-spacing:.05em}
.notebook-sections .tour-chapter-start{margin-left:14px;border-left-color:var(--line)}
.notebook-scroll-track .whole-screen-art img{object-fit:contain;object-position:center;image-rendering:auto}
@media(max-width:760px){.notebook-sections .tour-chapter-start{margin-left:6px}}

/* Real recordings share the annotated frame with the still-image tour. */
.tour-media-frame{position:relative;overflow:hidden}
.tour-media-frame .tour-still-link,.tour-media-frame video{display:block;width:100%;height:100%;object-fit:contain}
.tour-media-frame .tour-still-link[hidden],.tour-media-frame video[hidden],.tour-play-control[hidden]{display:none!important}
.tour-media-frame .whole-scribbles{z-index:2;pointer-events:none}
.tour-play-control{font:10px/1.4 'Geist Mono',monospace;text-decoration:underline;text-underline-offset:4px;padding:0;white-space:nowrap}

/* Keep source pixels inside a stable frame, including during hover. */
.tour-media-frame > .tour-still-link,.tour-media-frame > video{position:absolute;inset:0;width:100%;height:100%}
.tour-media-frame .tour-still-link:is(:hover,:focus-visible){scale:1}
.tour-media-frame{cursor:default}
.tour-still-link{cursor:zoom-in}

/* Real website recordings inside the existing project faces. */
.project-visual.website-preview-frame{position:relative;overflow:hidden}
.project-visual .website-card-video{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:contain;background:#0b0d12;pointer-events:none;z-index:1}
.website-preview-control{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:10px;margin:16px auto 0;font:10px/1.6 'Geist Mono',monospace;color:var(--muted)}
.website-preview-control button{font:inherit;text-decoration:underline;text-underline-offset:4px}
.website-preview-control span{font-size:9px}
.bridge-enhanced:not(.bridge-landed) .website-card-video{opacity:0;visibility:hidden}
.bridge-landing .website-card-video{transition:opacity .5s ease}
.bridge-enhanced:not(.bridge-landed) .website-preview-control{visibility:hidden}
@media(prefers-reduced-motion:reduce){.bridge-landing .website-card-video{transition:none}}

/* Enter in normal flow, then pin the compact player close to the top edge. */
.whole-notebook .notebook-title{margin-top:40px}
.whole-notebook .notebook-intro{margin-bottom:32px}
.notebook-locked .whole-notebook-layout{height:auto;min-height:0;top:var(--notebook-sticky-top,24px);padding:0}
@media(max-width:760px){.whole-notebook .notebook-intro{margin-bottom:24px}}

/* A compact contact sheet for future-production references. */
.morrow-concepts{max-width:1100px;margin:65px auto;border-top:1px solid var(--line);padding-top:30px}
.morrow-concepts .identity-intro{margin-bottom:24px}
.morrow-concept-status{font:10px/1.6 'Geist Mono',monospace;letter-spacing:.04em;color:var(--muted);margin:0 0 16px}
.morrow-concept-gallery{display:grid;grid-template-columns:minmax(0,1fr) 180px;gap:24px;align-items:start}
.morrow-concept-feature{margin:0;min-width:0}
.morrow-concept-feature>a{display:block;overflow:hidden;cursor:zoom-in}
.morrow-concept-feature>a:is(:hover,:focus-visible){scale:1}
.morrow-concept-feature img{display:block;width:100%;height:auto;aspect-ratio:2304/1856;object-fit:contain}
.morrow-concept-feature figcaption{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px;margin-top:14px;font:10px/1.7 'Geist Mono',monospace;color:var(--muted)}
.morrow-concept-choices{display:flex;flex-direction:column;gap:12px}
.morrow-concept-choices button{display:grid;grid-template-columns:64px minmax(0,1fr);align-items:center;gap:10px;padding:6px;border:1px solid transparent;text-align:left;font:10px/1.5 'Geist Mono',monospace}
.morrow-concept-choices button[aria-pressed=true]{border-color:var(--accent)}
.morrow-concept-choices img{display:block;width:64px;height:auto;aspect-ratio:2304/1856;object-fit:contain}
.morrow-concept-choices small{display:block;font-size:9px;color:var(--muted);margin-bottom:4px}
@media(max-width:760px){.morrow-concepts{margin:45px auto}.morrow-concept-gallery{grid-template-columns:1fr;gap:20px}.morrow-concept-choices{flex-direction:row;overflow-x:auto;padding:4px;gap:8px}.morrow-concept-choices button{display:block;flex:0 0 110px}.morrow-concept-choices img{width:100%;margin-bottom:8px}.morrow-concept-feature figcaption{font-size:9px}}

/* Shared contact destination for the index and every project. */
.portfolio-contact{width:100%;display:grid;grid-template-columns:1.3fr 1fr;gap:9%;padding:30px 0 65px;margin-bottom:35px;border-bottom:1px solid var(--line);scroll-margin-top:35px}
.contact-intro>span{font:10px 'Geist Mono',monospace;color:var(--muted)}
.contact-intro h2{font:500 clamp(42px,5.3vw,78px)/1.04 Geist,sans-serif;letter-spacing:-.055em;margin:26px 0}
.contact-intro p{font:13px/1.8 'Geist Mono',monospace;color:var(--muted)}
.contact-primary{display:inline-flex;gap:24px;align-items:center;margin-top:22px;padding-bottom:8px;border-bottom:1px solid var(--fg);font:13px 'Geist Mono',monospace}
.contact-socials{position:static;display:block;align-self:center;min-width:0}
.contact-socials a{display:flex;justify-content:space-between;align-items:center;gap:20px;border-top:1px solid var(--line);padding:22px 0;font:16px 'Geist Mono',monospace}
.contact-socials a:last-child{border-bottom:1px solid var(--line)}
.contact-socials small{display:block;margin-bottom:9px;font:9px/1.5 'Geist Mono',monospace;color:var(--muted)}
@media(max-width:760px){.portfolio-contact{grid-template-columns:1fr;gap:38px;padding:12px 0 40px;margin-bottom:0}.contact-intro h2{font-size:48px}.contact-socials a{font-size:14px}.masthead nav{flex-wrap:wrap;justify-content:center;gap:16px}}

/* Final typography pass: balanced headings and readable, resilient narrow layouts. */
.project-note h3,.detail-heading h2,.identity-intro h3,.vision-heading h3,.morrow-prototype-intro h3,.handwritten-title,.contact-intro h2{ text-wrap:balance }
.chapter-intro>p,.project-note p,.detail-copy,.case-editorial-ending p,.identity-intro p,.handwritten-body,.about-columns p{ text-wrap:pretty }
.motion-text-visual .word-clip{white-space:normal;overflow-wrap:anywhere}
.chapter-intro>*{min-width:0}
.detail-meta>span,.chapter-heading>*{min-width:0;overflow-wrap:anywhere}
.whole-screen figcaption,.screen-view-links,.notebook-links{flex-wrap:wrap}
.notebook-current{min-width:0;flex:1 1 180px;line-height:1.6}
.contact-socials a{overflow-wrap:anywhere}
@media(max-width:480px){
 .case-page .detail-heading h2{font-size:clamp(28px,8vw,38px)}
 .chapter-intro>p{font-size:20px;line-height:1.6}
 .chapter-heading{padding:24px 16px;flex-wrap:wrap;gap:10px}
 .detail-meta{flex-direction:column;gap:8px}
 .large-index-return{padding-inline:0;gap:15px;flex-wrap:wrap}
}

@media(max-width:600px){
 .section-title{flex-direction:column;align-items:flex-start;justify-content:center;gap:20px}
 .section-title .title-side{align-self:flex-end}
 #index .section-title h1{font-size:clamp(28px,7vw,42px)}
}

.motion-text-visual .word-clip.bracket-word{white-space:nowrap;overflow-wrap:normal}

/* One charcoal surface throughout Morrow's interaction study. */
.morrow-prototype,.morrow-prototype .prototype-heading{background:#201d1d;color:#f5f5f5}
.morrow-prototype{border-color:#646161}
.morrow-prototype .companion,.morrow-prototype .view-field,.morrow-prototype .hud-note{background:#201d1d;border-color:#777474}
.morrow-prototype .prototype-eyebrow,.morrow-prototype .view-label,.morrow-prototype .view-caption,.morrow-prototype .send-indicator,.morrow-prototype .prototype-state>span,.morrow-prototype .hud-note>span,.morrow-prototype .hud-note>small{color:#c4c4c4}
.morrow-prototype .prototype-link i{background:#c4c4c4}
.morrow-prototype .prototype-state{border-color:#646161}
.morrow-prototype .prototype-controls button{border-color:#929090}
.morrow-prototype .prototype-controls button:first-child{background:#dedede;color:#201d1d}
.morrow-prototype[data-step="2"] .hud-note{border-color:#ededed}
/* Composite the white artwork onto its host surface without a dark image tile. */
.morrow-art-window img[src*="-white.png"]{filter:grayscale(1) contrast(2);mix-blend-mode:screen}
.morrow-art-window img[src*="-black.png"]{filter:grayscale(1) contrast(2);mix-blend-mode:multiply}

/* Nothing may widen the page: decorative layers are clipped at the viewport. */
html,body{overflow-x:clip}
