
/* v3 neutral palette, extracted from reference; saturated blue only for accents. */
:root{--bg:#fbfbfb;--surface:#f4f4f4;--text:#000000;--text-secondary:#595959;--link:#313131;--action:#313131;--action-hover:#000000;--action-active:#000000;--on-action:#ffffff;--focus:#313131;--focus-gap:#fbfbfb;--border-subtle:#dedede;--border-control:#6e6e6e;--stage-blue:#f0f0f0;--accent:#A7F6F8}
.hero .display span{color:var(--text);text-decoration:none}.hero-stage{background:var(--stage-blue)}.scene-main,.scene-main .scene-label{background:white;color:var(--text)}.scene{box-shadow:0 12px 28px #00000012}.scene-label{background:#fff}.scene img{background:#fff}.case-head .title,.about .title{color:var(--text)}.project-number,.eyebrow,.entry-cta,.project-open,.nav-link:last-child{color:var(--text-secondary)}.entry-cta,.project-open{color:var(--text)}.button{background:var(--action);color:var(--on-action)}.button:hover{color:var(--on-action)}.hero a:not(.button):hover,.project-entry:hover .heading{color:var(--text);text-decoration-color:currentColor}.case-section:target h2{color:var(--text)}.cover{background:white}footer{background:var(--bg)}

/* v5: shared page edges and complete, uncropped evidence images. */
.case-section .figures{background:transparent;padding:0;border-radius:0}
figure{min-width:0}figure img{display:block;width:auto;max-width:100%;height:auto;max-height:85vh;object-fit:contain;margin-inline:auto}
figcaption{text-align:center}.project-entry:hover .heading{text-decoration:none}.project-entry .heading{text-decoration:none}
.scene,.scene-label,.scene img,.scene-main,.scene-main .scene-label,.project-image,.cover{background:var(--bg)}
@media(min-width:60rem){.figures.pair{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Compact persistent case navigation and scroll-return affordance. */
:root{--case-nav-height:88px;--nav-layer:30;--floating-layer:40}
.case-navigation{position:fixed;inset:0 0 auto;z-index:var(--nav-layer);background:var(--bg);border-bottom:1px solid var(--border-subtle);padding-block:var(--s4)}
.case-navigation-inner{display:flex;align-items:center;justify-content:space-between;gap:var(--s8)}
.home-button{display:inline-flex;align-items:center;justify-content:center;gap:var(--s2);flex-shrink:0;min-width:var(--target);min-height:var(--target);padding:var(--s2) var(--s4);background:var(--action);color:var(--on-action);border-radius:var(--radius-control);text-decoration:none}
.home-button:hover{background:var(--action-hover);color:var(--on-action)}
.chapter-navigation{display:flex;align-items:center;gap:var(--s1);max-width:100%;min-width:0;overflow-x:auto;background:var(--action);border-radius:var(--radius-control);padding:var(--s1);scrollbar-width:thin;scrollbar-color:var(--text-secondary) var(--action)}
.chapter-navigation a{flex-shrink:0;display:flex;align-items:center;min-height:var(--target);padding:var(--s2) var(--s4);color:var(--on-action);font-size:var(--size-ui);white-space:nowrap;text-decoration:none;border-radius:var(--radius-control)}
.chapter-navigation a:hover,.chapter-navigation a[aria-current="location"]{background:#4b4b4b;color:white}
.chapter-navigation a[aria-current="location"]{text-decoration:none}
.chapter-navigation a:focus-visible{outline-offset:-3px;outline-color:white;box-shadow:none}
.case-page main{padding-top:var(--case-nav-height)}
.case-page #overview,.case-page .case-section{scroll-margin-top:calc(var(--case-nav-height) + var(--s6))}
.case-head{padding-top:var(--s8)}
.back-top{position:fixed;right:var(--gutter);bottom:var(--s6);z-index:var(--floating-layer);display:inline-flex;align-items:center;gap:var(--s2);min-width:var(--target);min-height:var(--target);padding:var(--s3) var(--s4);border:0;border-radius:var(--radius-control);background:var(--accent);color:var(--text);font:inherit;font-size:var(--size-ui);cursor:pointer}
.back-top[hidden]{display:none}.back-top:hover{background:var(--accent);box-shadow:0 4px 14px #00000014}
.case-end{justify-content:flex-start}footer .footer-inner{justify-content:flex-start}
@media(max-width:47.99rem){.case-navigation-inner{gap:var(--s3)}.home-text{display:none}.home-button{padding:var(--s2)}.chapter-navigation a{padding-inline:var(--s3)}.back-top{bottom:var(--s4)}}

/* Material 3 foundations; chapter navigation is an adapted anchor-navigation component. */
:root{--md-sys-shape-corner-extra-small:4px;--md-sys-shape-corner-small:8px;--md-sys-shape-corner-medium:12px;--md-sys-shape-corner-large:16px;--md-sys-shape-corner-extra-large:28px;--md-sys-shape-corner-full:999px;--target:48px;--radius-control:var(--md-sys-shape-corner-full);--control-label-size:.875rem;--control-line:1.5rem;--state-hover:8%;--state-pressed:12%;--motion-feedback:120ms}
.case-navigation{padding-block:var(--s3)}
.chapter-navigation{padding:var(--s1);gap:var(--s1);border-radius:var(--md-sys-shape-corner-large)}
.chapter-navigation a{min-height:var(--target);padding:var(--s3) var(--s4);font-size:var(--control-label-size);line-height:var(--control-line);font-weight:500;border-radius:var(--md-sys-shape-corner-medium);transition:background-color var(--motion-feedback)}
.chapter-navigation a:hover{background:color-mix(in srgb,white var(--state-hover),var(--action))}
.chapter-navigation a[aria-current="location"]{background:#4b4b4b;text-decoration:none}
.chapter-navigation a:active{background:#595959}
.home-button,.back-top,.copy-email,.button{font-size:var(--control-label-size);line-height:var(--control-line);font-weight:500;min-height:var(--target);padding:var(--s3) var(--s6);border:0;border-radius:var(--md-sys-shape-corner-full);transition:background-color var(--motion-feedback)}
.home-button>span[aria-hidden],.back-top>span[aria-hidden]{font-size:1.5rem;line-height:1.5rem;inline-size:1.5rem;text-align:center}
.nav-link{min-height:var(--target);display:inline-flex;align-items:center}
.education{display:block;border-top:1px solid var(--border-subtle);margin-top:32px;padding-top:28px}
.education-label{font-size:var(--size-body);font-weight:400;color:var(--text-secondary);margin:0}
.education-list{display:grid;gap:0;margin-top:16px}.education-item{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:32px;padding:24px 0;border-bottom:1px solid var(--border-subtle)}.education-item .education-major{grid-column:1}.education-item .education-meta{grid-column:2;grid-row:1/3;align-self:center;font-size:15px;padding:0}
.education-item h4{font-size:var(--size-body);font-weight:600;line-height:1.6;margin:0 0 var(--s2)}
.education-item h4 span{font-weight:500}.education-item p{margin:0}.education-school span{color:var(--text-secondary)}
.education-meta{color:var(--text-secondary);padding-top:var(--s1)}
.email-row{display:flex;align-items:center;flex-wrap:wrap;gap:var(--s2);min-width:0}
.email-address{overflow-wrap:anywhere;min-height:var(--target);display:inline-flex;align-items:center;max-width:100%;text-underline-offset:.2em;text-decoration-color:var(--accent);text-decoration-thickness:3px;transition:background-color 140ms ease}.email-address:is(:hover,:focus-visible){background:var(--accent);color:var(--text)}
.copy-email{background:var(--surface);color:var(--text);cursor:pointer;font-family:inherit;opacity:0;pointer-events:none;min-width:var(--target)}
.email-row:hover .copy-email,.email-row:focus-within .copy-email{opacity:1;pointer-events:auto}
.copy-email:hover{background:#e7e7e7}.copy-email:active{background:#dedede}
.copy-status{min-height:var(--control-line);margin:0!important}
@media(hover:none){.copy-email{opacity:1;pointer-events:auto}}
@media(max-width:47.99rem){.education{grid-template-columns:1fr;gap:var(--s4)}.home-button{padding:var(--s3);width:var(--target)}.chapter-navigation a{padding-inline:var(--s3)}.back-top{padding-inline:var(--s4)}}
@media(prefers-reduced-motion:reduce){.chapter-navigation a,.home-button,.back-top,.copy-email,.button{transition:none}}
@media(max-width:47.99rem){.back-top{width:var(--target);height:var(--target);padding:var(--s3);justify-content:center}.back-top>span:last-child{display:none}footer .footer-inner{padding-right:calc(var(--target) + var(--s4))}}
/* v8: unified navigation shapes and illustrated cover */
.case-navigation-inner{min-height:64px}.home-button{width:64px;height:64px;padding:20px;border-radius:var(--md-sys-shape-corner-large)}
.chapter-navigation{padding:8px;gap:4px;border-radius:var(--md-sys-shape-corner-large)}.chapter-navigation a{border-radius:var(--md-sys-shape-corner-small);padding:8px 16px;min-height:48px}
.portrait-cover.hero{position:relative;width:100%;max-width:none;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:24px;min-height:calc(100svh - 112px);padding-block:48px 16px;overflow:visible}
.portrait-cover .marquee-label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.portfolio-marquee{position:relative;width:100%;overflow:hidden;padding-block:10px 12px}
.marquee-track{display:flex;width:max-content;animation:portfolio-scroll 36s linear infinite;color:#DDF7F8;-webkit-text-stroke:0;font-family:Arial,Helvetica,Manrope,sans-serif;font-size:clamp(40px,5.8vw,86px);font-weight:700;opacity:1;line-height:1.2;letter-spacing:.015em;word-spacing:.12em;white-space:nowrap;user-select:none}
.marquee-group{display:block;flex:none;padding-right:.38em}.portfolio-marquee:is(:hover,:focus-within,.is-offscreen) .marquee-track{animation-play-state:paused}

@keyframes portfolio-scroll{to{transform:translateX(-50%)}}
@media(prefers-reduced-motion:reduce){.marquee-track{animation:none}}
.intro-prompt{position:absolute;top:calc(90.7% + 10px);left:50%;transform:translateX(-50%);padding:6px 10px;border:0;border-radius:8px;background:transparent;color:#666;font:inherit;font-size:13px;line-height:1.5;white-space:nowrap;cursor:pointer}.intro-prompt:hover{color:#008f96}.intro-prompt:focus-visible{outline:2px solid #008f96;outline-offset:3px}.intro-prompt[hidden]{display:none}
.intro-bubble{position:fixed;z-index:30;box-sizing:border-box;width:264px;max-width:calc(100% - 64px);padding:18px;border:1.5px solid #181818;rotate:var(--sticker-angle,0deg);border-radius:22px 30px 22px 28px;background:#fff;color:#181818;box-shadow:0 0 0 6px #fff,0 0 0 8.25px #B8B8B8,0 2px 4px 6px #00000004}.intro-bubble[hidden]{display:none}.intro-card-heading{display:flex;align-items:center;gap:10px}.intro-symbol{display:grid;place-items:center;flex:0 0 38px;width:38px;height:38px;border-radius:9px;background:#A7F6F8;color:#181818}.intro-symbol svg{display:block;width:32px;height:32px}.intro-bubble strong{display:block;font-size:19px;font-weight:700;line-height:1.5}.intro-bubble p{margin:10px 0 0;font-size:16px;line-height:1.75;letter-spacing:0;text-wrap:balance}
.intro-click{position:fixed;z-index:31;width:18px;height:18px;border-radius:50%;background:#A7F6F8;pointer-events:none}.intro-click[hidden]{display:none}@media(prefers-reduced-motion:reduce){.intro-click{display:none}}
.portrait-composition{position:relative;width:min(600px,100%);aspect-ratio:1.5;display:grid;place-items:center;isolation:isolate}
.portrait-trigger{position:relative;width:56%;aspect-ratio:2492/2416;display:block;border:0;background:transparent;padding:0;cursor:pointer;z-index:2;border-radius:16px}
.portrait-trigger img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;user-select:none;-webkit-user-drag:none}
.portrait-art,.portrait-open{position:absolute;inset:0;display:block;pointer-events:none}.portrait-art{transition:transform 180ms ease-out}.portrait-open{opacity:1;transition:opacity 180ms ease}.portrait-trigger .portrait-smile{opacity:0;transition:opacity 180ms ease}.tools-visible .portrait-open{opacity:0}.tools-visible .portrait-trigger .portrait-smile{opacity:1}
@media(prefers-reduced-motion:reduce){.portrait-art,.portrait-open,.portrait-trigger .portrait-smile{transition:none}}
.portrait-eyes{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.gaze-pupil{transition:transform 90ms linear}@media(prefers-reduced-motion:reduce){.gaze-pupil{transition:none}}
.tool-orbit{position:absolute;inset:0;pointer-events:none}.tool-icon{position:absolute;left:44%;top:43%;width:12%;aspect-ratio:1;object-fit:contain;opacity:0;transform:translate(var(--x),var(--y)) scale(.94) rotate(var(--r));transition:transform 180ms ease-out,opacity 160ms ease;transition-delay:0ms}
.tool-0{--x:-173%;--y:-185%;--r:-6deg;--order:0}.tool-1{--x:-240%;--y:-60%;--r:3deg;--order:1}.tool-2{--x:-290%;--y:90%;--r:-5deg;--order:2}.tool-3{--x:173%;--y:-185%;--r:6deg;--order:0}.tool-4{--x:240%;--y:-60%;--r:-3deg;--order:1}.tool-5{--x:290%;--y:90%;--r:5deg;--order:2}
.tools-visible .tool-icon{opacity:1;transform:translate(var(--x),var(--y)) scale(1) rotate(var(--r))}
.gallery-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:40px 24px}.gallery-entry{display:block;text-decoration:none;color:var(--text)}.gallery-image{aspect-ratio:1;background:var(--surface);border-radius:28px;overflow:hidden;display:grid;place-items:center;padding:16px;transition:background-color 120ms}.gallery-image img{width:100%;height:100%;max-height:100%;object-fit:contain;min-height:0}.gallery-entry h3{font-size:20px;font-weight:600;line-height:1.5;text-align:center;margin:16px 0 4px}.gallery-entry p{text-align:center;margin:0}.gallery-entry:hover .gallery-image{background:#e9e9e9}.additional-figures{display:grid;gap:32px}.additional-figures figure{margin:0}.additional-figures figcaption{margin-top:12px}
@media(max-width:59.99rem){.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:47.99rem){.home-button{width:48px;height:48px;padding:12px}.case-navigation-inner{min-height:64px;gap:12px}.chapter-navigation a{padding-inline:12px}.portrait-cover.hero{min-height:calc(100svh - 96px);padding-block:64px 40px;gap:24px}.portrait-composition{width:100%}.gallery-grid{gap:32px 16px}.gallery-image{padding:8px;border-radius:16px}.gallery-entry h3{font-size:19px}}
@media(prefers-reduced-motion:reduce){.portrait-trigger img,.tool-icon{transition:none}}

.case-navigation{border-bottom:0}

/* Content-aware evidence scale: screenshots, boards, components, and mobile screens. */
:root{--media-screen:1040px;--media-board:1120px;--media-component-small:320px;--media-component-wide:680px;--media-mobile:280px;--media-overview:320px;--evidence-gap:48px}
.case-page figure img{width:100%;height:auto;max-height:none;object-fit:contain}
.case-page figure{width:100%;margin-inline:auto}.media-screen{max-width:var(--media-screen)}.media-board{max-width:var(--media-board)}.media-component-small{max-width:var(--media-component-small)}.media-component-wide{max-width:var(--media-component-wide)}.media-mobile{max-width:var(--media-mobile)}.media-long-overview{max-width:var(--media-overview)}
.case-section .figures.pair{grid-template-columns:1fr}.figures{gap:var(--evidence-gap)}
.material-evidence{display:grid;grid-template-columns:minmax(0,2.5fr) minmax(0,1fr);align-items:start;gap:var(--evidence-gap)}
.material-evidence>*,.mail-step>*{min-width:0}.material-evidence aside{padding-top:24px}.material-evidence aside h3{margin-top:24px}.material-evidence h3,.evidence-note h3{font-size:20px;line-height:1.5;margin-bottom:12px}.material-evidence aside p{font-size:16px;line-height:1.8}
.mail-evidence{display:grid;gap:48px}.mail-step{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:48px;align-items:center}.mail-step figure{margin-left:0}.evidence-note{max-width:400px}.evidence-note p{line-height:1.8}
.additional-figures.mobile-gallery{grid-template-columns:repeat(3,minmax(0,1fr));align-items:start;gap:48px 32px}
@media(max-width:59.99rem){.material-evidence{grid-template-columns:1fr}.material-evidence aside{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px 24px;align-items:start;padding-top:0}.material-evidence aside figure{grid-row:span 2}.material-evidence aside h3{margin-top:0;margin-bottom:0}.mail-step{grid-template-columns:1fr;gap:24px}.evidence-note{max-width:680px}.additional-figures.mobile-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:35rem){.material-evidence aside{display:block}.material-evidence aside h3{margin-top:24px;margin-bottom:12px}.additional-figures.mobile-gallery{grid-template-columns:1fr}.material-evidence,.mail-evidence,.figures{gap:32px}}
.page-evidence{margin-top:48px}.page-evidence h3{font-size:22px;line-height:1.5;margin-bottom:16px}.page-evidence>p{max-width:72ch;margin-bottom:24px}.page-evidence figure{margin-top:24px}.page-context{color:var(--text-secondary)}.detail-shots{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:32px;margin-top:32px}.detail-shots figure{margin:0;min-width:0}.detail-shots img{max-height:640px;object-fit:contain}.drawing-group{margin-top:24px}.drawing-group summary{min-height:48px;padding:16px 0;font-size:18px;font-weight:500;cursor:pointer}.drawing-group[open] summary{margin-bottom:24px}.drawing-group:focus-within{scroll-margin-top:120px}
@media(max-width:47.99rem){.detail-shots{grid-template-columns:1fr}.page-evidence{margin-top:32px}.page-evidence h3{font-size:20px}}
/* v12: full text alignment, exclusive portrait states, chapter-based drawing browser. */
.case-page .page-evidence>p,.case-page .evidence-note{max-width:none}
.drawing-reader .case-section[hidden]{display:none}.drawing-reader .case-section{padding-block:24px 48px}.drawing-reader .case-section .work{margin-top:0}
.drawing-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px}.drawing-tile{display:flex;flex-direction:column;align-items:stretch;min-width:0;padding:0;background:transparent;border:0;color:var(--text);font:inherit;text-align:left;cursor:pointer;border-radius:12px}.drawing-thumb{display:grid;place-items:center;aspect-ratio:1.42;background:var(--surface);border-radius:12px;padding:8px;overflow:hidden}.drawing-thumb img{width:100%;height:100%;object-fit:contain;min-height:0}.drawing-label{font-size:16px;font-weight:500;margin-top:12px}.drawing-tile:hover .drawing-thumb{background:#e7e7e7}.drawing-dialog{width:min(1280px,calc(100% - 32px));max-width:none;max-height:calc(100svh - 32px);padding:24px;border:0;border-radius:16px;background:var(--bg);color:var(--text)}.drawing-dialog::backdrop{background:#0009}.drawing-toolbar{display:flex;gap:8px;flex-wrap:wrap;position:sticky;top:-24px;padding-block:8px;background:var(--bg);z-index:1}.drawing-toolbar button{min-height:48px;padding:8px 16px;border:0;border-radius:12px;background:var(--surface);color:var(--text);font:inherit;cursor:pointer}.drawing-title{font-size:24px;margin:16px 0}.drawing-note{margin-bottom:24px}.drawing-full{width:100%;height:auto}
@media(max-width:59.99rem){.drawing-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:47.99rem){.drawing-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 16px}.drawing-dialog{padding:16px}.drawing-toolbar{top:-16px}.drawing-toolbar button{font-size:14px;padding-inline:12px}}



.chapter-navigation{scrollbar-width:none}.chapter-navigation::-webkit-scrollbar{display:none}


.back-top{width:48px;height:48px;min-width:48px;padding:12px;justify-content:center}.back-top>span[aria-hidden]{display:block}
