/* Final refinements preserve the original cinematic composition. */
.project-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:44px 26px}
.project-grid>.project,.project-grid>.project:nth-child(n+4){grid-column:auto}
.project-grid .project-art{aspect-ratio:1.72;height:auto}
.about-links{display:flex;flex-wrap:wrap;gap:25px}
.achievement-evidence{display:inline-block;color:var(--gold);font-size:12px;margin-top:10px;text-decoration:underline;text-underline-offset:4px}
.achievement+.achievement{margin-top:22px}
.resume-nav{color:var(--gold)}
.hero{min-height:700px}.hero-copy{z-index:3;top:24%}.hero-bottom{z-index:4;justify-content:space-between;align-items:center;gap:20px}
.motion-toggle{font:inherit;letter-spacing:.07em;font-size:11px;color:var(--ink);background:rgba(12,14,15,.4);border:1px solid #b3b6b060;padding:10px 14px;cursor:pointer;min-height:42px;display:inline-flex;align-items:center;gap:14px;backdrop-filter:blur(8px)}
.motion-toggle:hover{border-color:var(--gold);background:#101519cc}.motion-toggle:disabled{cursor:default;color:var(--muted)}
.scroll-progress{position:fixed;left:0;right:0;top:0;height:2px;background:var(--gold);transform:scaleX(0);transform-origin:left;z-index:50;pointer-events:none}
.motion-ready [data-reveal]{transition:opacity .3s ease,transform .35s cubic-bezier(.16,1,.3,1);transition-delay:var(--reveal-delay,0ms)}
.motion-ready [data-reveal]:not(.visible){opacity:0;transform:translate3d(0,30px,0)}
.motion-ready [data-reveal].visible{opacity:1;transform:none}
.motion-paused [data-reveal]{opacity:1!important;transform:none!important;transition:none!important}
.motion-paused *,.document-hidden *{animation-play-state:paused!important}
.motion-paused .navigation,.motion-paused .intro,.motion-paused h1 span,.motion-paused h1 em{animation:none!important;opacity:1;transform:none}

.case-page .case-intro h1,.case-page .case-intro em{animation:none}
.project-art{transition:filter .6s,border-color .35s;filter:none}
.project:hover .project-art{filter:brightness(1.06)}
.case-shell{overflow-wrap:anywhere}.case-sources a:hover,.case-sidebar a:hover{color:var(--gold)}
@media(max-width:900px) and (min-width:601px){.project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.navigation nav{gap:24px}}
@media(max-width:600px){.project-grid{grid-template-columns:1fr;gap:38px}.navigation,.navigation.scrolled{padding-left:6%;padding-right:6%}.navigation .wordmark{font-size:9px;letter-spacing:.12em}.navigation nav{gap:12px;font-size:11px}.navigation nav a{padding:8px 0}.hero-bottom{font-size:9px}.motion-toggle{font-size:9px;padding:8px 10px;gap:8px}footer{gap:18px}footer .top-link{margin-left:0}.about-copy p{font-size:16px}}
@media(prefers-reduced-motion:reduce){.atmosphere{display:none}.motion-ready [data-reveal]{opacity:1!important;transform:none!important;transition:none!important}.scroll-progress{display:none}}

/* Blue-hour art direction. Layout reserves room for both hero actions. */
:root{--ink:#edf3f6;--muted:#a8b5c1;--gold:#9bcfdc;--line:#29343c;--bg:#0b1015}
.hero{height:auto;min-height:min(850px,100svh);max-height:none;display:flex;align-items:center;padding:150px 3.2% 145px}
.hero-copy{position:relative;left:auto;right:auto;top:auto;width:100%;max-width:920px}
.hero-image{animation:camera-drift 28s ease-in-out infinite alternate;transform:scale(1.045);background-position: center 52%}
@keyframes camera-drift{from{transform:scale(1.045) translate3d(-.35%,.35%,0)}to{transform:scale(1.085) translate3d(.35%,-.35%,0)}}
.atmosphere{position:absolute;inset:0;pointer-events:none;z-index:0;overflow:hidden}
.atmosphere i{position:absolute;left:var(--x);top:var(--y);width:2px;height:2px;border-radius:50%;background:#c2ecfa;opacity:0;animation:air-drift var(--duration) var(--delay) linear infinite;box-shadow:0 0 7px #96d8ed40}
.atmosphere i:nth-child(3n){width:3px;height:3px;background:#b8bce5}
@keyframes air-drift{0%{opacity:0;transform:translate3d(0,22px,0)}25%{opacity:.38}70%{opacity:.25}100%{opacity:0;transform:translate3d(-35px,-55px,0)}}
.hero-out-of-view .hero-image,.hero-out-of-view .atmosphere i{animation-play-state:paused}
.hero-bottom{bottom:30px}.hero-bottom a{padding:12px 0}
.art-lingji{background:#101929 url('/assets/lingji-cover.0f523d1eb6.webp') center/cover no-repeat}
.text-link{border-bottom-color:#668a98}.contact .eyebrow{color:#c5dde5}
.project-meta{color:#a7bdce}.project-art{border-color:#2d3b47}
@media(max-width:900px){.hero{min-height:720px;padding-top:160px;padding-bottom:140px}.hero-image{background-position:62% center}}
@media(max-width:600px){.hero{min-height:690px;padding:165px 6% 135px}.hero-copy{max-width:100%}.hero-image{background-position:65% center}.hero-bottom{gap:12px}.hero-bottom a{letter-spacing:.08em}.atmosphere i:nth-child(even){display:none}}

/* Readable case studies: content is fully visible, motion stays on the gallery. */
.case-tagline{color:#d4e2eb}.case-summary{color:#e0e7ed;max-width:68ch;font-size:22px}
.case-shell article p,.case-evidence>p:not(.eyebrow){color:#d0dbe3;max-width:70ch;line-height:1.8}
.case-shell .diagram-description,.scope-note p,.evidence-media figcaption{color:#b9c8d3;max-width:72ch}
.case-sidebar,.case-facts dd,.case-sources code,.source-date{color:#b9c8d3}
.case-facts dt{color:#a9d9e7}.case-sidebar .eyebrow,.back-link,.access-note{color:#b9cfdb}
.case-overview{display:grid;grid-template-columns:1fr 1fr;gap:32px;max-width:960px;margin:30px 0 0}
.case-overview dt{font-size:12px;text-transform:uppercase;letter-spacing:.14em;color:#a9d9e7;margin-bottom:10px}
.case-overview dd{margin:0;color:#d0dbe3;font-size:16px;line-height:1.75;max-width:48ch}
.case-first-evidence{margin:0 0 45px}.case-first-evidence .evidence-media{margin:20px 0}
.case-first-evidence .evidence-media img{max-height:580px;object-fit:contain;background:#111820;border-color:#344653}
.recorded-evidence{padding:24px 28px;background:#111a23;border:1px solid #344653;border-radius:8px;color:#d0dbe3}
.recorded-evidence p{font-size:14px;line-height:1.75;max-width:70ch}.recorded-evidence ul{padding-left:22px;line-height:2}
.case-intro{padding-bottom:24px}.case-facts{margin-bottom:48px}.case-layout article{min-width:0}
@media(max-width:900px){.case-layout{grid-template-columns:1fr}.case-sidebar{position:static;display:block;margin-bottom:12px}.case-sidebar ul{display:flex;flex-wrap:wrap;gap:8px 18px}.case-sidebar nav{display:flex;flex-wrap:wrap;gap:14px}.case-sidebar p{max-width:70ch}}
@media(max-width:600px){.case-overview{grid-template-columns:1fr;gap:22px}.case-summary{font-size:20px}.recorded-evidence{padding:18px}.case-first-evidence .evidence-media img{max-height:none}.case-shell h2{font-size:26px}}
@media(prefers-reduced-motion:reduce){.case-first-evidence img[src$=".gif"]{display:none}}

.case-shell{padding-top:110px}.case-intro{padding-top:24px}.case-intro h1{font-size:clamp(56px,6.5vw,86px);margin:12px 0}.case-tagline{font-size:clamp(26px,3vw,36px);margin:12px 0}.case-summary{margin:18px 0}.case-overview{margin-top:24px}.case-intro .case-links{margin:18px 0}.case-intro .access-note{margin:10px 0}
@media(max-width:600px){.case-shell{padding-top:100px}.case-intro{padding-top:20px}}

.hero-bottom{justify-content:flex-end}
