@font-face{font-family:'Inter Tight';src:url('assets/inter-tight-regular.ttf') format('truetype');font-weight:400;font-display:swap}
@font-face{font-family:'Inter Tight';src:url('assets/inter-tight-medium.ttf') format('truetype');font-weight:500;font-display:swap}
@font-face{font-family:'Inter Tight';src:url('assets/inter-tight-semibold.ttf') format('truetype');font-weight:600;font-display:swap}
:root{--paper:#fff;--ink:#111;--muted:#858585;--radius:4px;--gutter:32px;--ease:cubic-bezier(.22,1,.36,1)}
*{box-sizing:border-box}html{scroll-behavior:auto;scrollbar-gutter:stable}body{margin:0;background:var(--paper);color:var(--ink);font-family:'Inter Tight',Arial,sans-serif;font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;border:0;cursor:pointer}img{display:block;width:100%;height:auto}h1,h2,p,figure{margin:0}h1,h2{font-weight:500}a:focus-visible,button:focus-visible{outline:2px solid #737373;outline-offset:5px}main:focus{outline:none}::selection{background:#ddd;color:#111}.wrap{margin-inline:var(--gutter)}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip{position:fixed;left:var(--gutter);top:-80px;background:#111;color:#fff;padding:10px 16px;z-index:1000}.skip:focus{top:72px}
/* Four separate glass surfaces; the space between them stays transparent. */
.site-header{position:fixed;top:18px;left:var(--gutter);right:var(--gutter);display:grid;grid-template-columns:27.5% 31% 1fr auto;align-items:start;z-index:50;pointer-events:none;font-size:14px;line-height:18px;font-weight:500}
.header-block{color:#000;justify-self:start;pointer-events:auto;display:flex;align-items:center;min-height:37px;padding:10px 14px;border-radius:var(--radius);background:rgba(245,245,245,.86);backdrop-filter:blur(13px);-webkit-backdrop-filter:blur(13px);white-space:nowrap;transition:background-color .16s ease-out,color .2s}
.identity:hover{background:rgba(220,220,220,.94)}.navigation{gap:9px;padding:4px}.navigation a{padding:6px 10px;color:#000}.navigation a .roll-label{opacity:.65;transition:opacity .18s}.navigation a[aria-current] .roll-label,.navigation a:hover .roll-label,.navigation a:focus-visible .roll-label{opacity:1}.contact-button{justify-self:end;gap:0;background:#111;color:white;transition:gap .3s var(--ease),background .16s}.contact-button svg{width:0;opacity:0;transition:width .25s var(--ease),opacity .2s,transform .25s;transform:translateX(-4px)}.contact-button:hover{background:#303030;gap:8px}.contact-button:hover svg{width:14px;opacity:1;transform:none}svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.25;stroke-linecap:round;stroke-linejoin:round}
.home-intro{position:relative;padding-top:195px;padding-bottom:32px;display:flex;align-items:flex-end;justify-content:space-between;gap:40px}.intro-copy{width:493px;max-width:75%}.home-intro h1,.live-clock{font-size:36px;line-height:1.3;font-weight:500;letter-spacing:0}.live-clock{display:block;color:rgba(0,0,0,.3);white-space:nowrap;font-variant-numeric:tabular-nums;min-height:1.3em}.clock-colon{animation:tick 1s steps(1,end) infinite}@keyframes tick{50%{opacity:.15}}.escape-field{width:240px;height:176px;position:relative;flex:none;margin-right:-12px;margin-bottom:-62px;display:grid;place-items:center;z-index:2;pointer-events:none}.escape-button{pointer-events:auto;padding:8px 18px;min-height:32px;white-space:nowrap;background:#f0f0f0;color:#555;border-radius:4px;font-size:13px;line-height:16px;transition:transform .6s cubic-bezier(.24,1.34,.38,1),background .22s,color .22s}.escape-button[data-flee="true"]{transition:transform .16s cubic-bezier(.22,1,.36,1),background .22s,color .22s}.escape-button[data-done="true"]{background:#111;color:white}
.project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:32px;padding-bottom:64px}.project-column{display:flex;flex-direction:column;gap:32px}.project-card{display:block;min-width:0}.project-cover{border-radius:var(--radius);overflow:hidden;background:#f2f2f2}.project-cover img{transition:opacity .35s,transform .6s var(--ease)}.project-card:hover .project-cover img{opacity:.82;transform:scale(1.015)}.card-caption{padding-top:10px}.card-caption p{font-size:13px;line-height:1.4;color:#858585}.card-caption h2{font-weight:500;font-size:16px;line-height:1.3;margin-top:3px;max-width:95%}
.case-heading{padding-top:126px;position:relative;margin-bottom:45px;min-height:220px}.back-button{display:inline-flex;align-items:center;gap:10px;padding:10px 14px;background:#f2f2f2;border-radius:var(--radius);font-size:13px;font-weight:500;line-height:17px;transition:background .2s}.back-button:hover{background:#e7e7e7}.case-heading .back-button{position:absolute;left:0;top:126px}.case-heading h1{font-size:36px;font-weight:500;line-height:1.3;letter-spacing:-.025em;width:536px;max-width:60%;margin-inline:auto}.case-body{width:calc(100% - 128px);max-width:964px;margin:0 auto 70px}.case-hero{border-radius:var(--radius);overflow:hidden;background:#f3f3f3}.case-hero img{width:100%;height:auto}.case-overview{max-width:536px;margin:40px auto 48px}.case-overview .eyebrow{font-size:13px;line-height:1.4;color:#858585;margin-bottom:14px}.case-overview h2{font-size:24px;line-height:1.3;letter-spacing:-.018em;margin-bottom:26px}.case-overview>p:not(.eyebrow){font-size:16px;line-height:1.5;margin-top:20px}.case-gallery{display:flex;flex-direction:column;gap:14px}.case-image{overflow:hidden;border-radius:var(--radius);background:#f5f5f5}.case-pair{display:grid;grid-template-columns:1.18fr 1fr;gap:16px;align-items:stretch}.case-pair .case-image img{height:100%;object-fit:cover}.case-pair .case-image{aspect-ratio:1.5}.case-pair .case-image:last-child{aspect-ratio:auto}.placeholder-page{min-height:75svh;padding-top:190px;padding-bottom:160px}.placeholder-page h1{font-size:clamp(48px,6vw,88px);line-height:1.1;letter-spacing:-.045em}.placeholder-page .back-button{margin-top:32px}
/* A flat, edge-to-edge footer. Hovering a whole link group dims every other part. */
.footer{background:#0f0f0f;color:white;padding:44px var(--gutter) 48px}.footer-top{display:flex;justify-content:space-between;gap:48px;margin-bottom:62px;transition:opacity .25s}.footer-top h2{font-size:40px;line-height:1.3;letter-spacing:-.025em}.footer-info{width:28.3%;padding-top:6px;font-size:14px;line-height:1.4;color:#a2a2a2;max-width:370px}.footer-info p{max-width:286px}.footer-info a{color:#fff}.footer-info a:hover{text-decoration:underline}.copyright{margin-top:24px;color:#777}.footer-groups{display:grid;grid-template-columns:3fr 2fr 2fr;gap:12px}.footer-group{display:block;min-width:0;transition:opacity .25s}.footer-group-title{display:flex;gap:8px;align-items:center;font-size:14px;line-height:1.4;margin-bottom:16px}.footer-arrow{color:#888;transition:transform .2s,color .2s}.footer-group:hover .footer-arrow{transform:translate(2px,-2px);color:#fff}.footer-thumbnails{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;align-items:start}.footer-group-apo .footer-thumbnails{grid-template-columns:repeat(3,minmax(0,1fr))}.footer-thumbnails img{border-radius:2px}.footer:has(.footer-group:is(:hover,:focus-visible)) .footer-top,.footer:has(.footer-group:is(:hover,:focus-visible)) .footer-group:not(:hover):not(:focus-visible){opacity:.3}
.page-dim,.page-sheet{position:fixed;inset:0;pointer-events:none;visibility:hidden}.page-dim{z-index:40;background:#000;opacity:0}.page-sheet{z-index:41;background:#fff;transform:translateY(100%)}body.is-transitioning .page-dim,body.is-transitioning .page-sheet{visibility:visible;pointer-events:auto}body.is-transitioning{overflow:hidden}
@media(min-width:1800px){.home-intro{padding-top:220px}.intro-copy{width:600px}.home-intro h1,.live-clock{font-size:42px}.case-body{max-width:1120px}.case-heading h1{max-width:600px;width:600px}.case-overview{max-width:600px}}
@media(max-width:1000px){.site-header{grid-template-columns:1fr 1fr auto;gap:16px}.discipline{display:none}.navigation{justify-self:center}.home-intro{padding-top:174px}.case-heading h1{max-width:65%}.case-body{width:calc(100% - 64px)}.footer-top h2{font-size:32px}.footer-info{width:35%}.footer-groups{gap:16px}.footer-thumbnails{gap:8px}.footer-group-title{font-size:13px}.footer-top{margin-bottom:44px}}
@media(max-width:640px){:root{--gutter:20px;--radius:4px}.site-header{top:14px;grid-template-columns:1fr auto;row-gap:9px;font-size:13px}.header-block{min-height:35px;padding:9px 12px}.navigation{grid-row:2;grid-column:1/-1;justify-self:start;padding:3px;gap:7px}.navigation a{padding:6px 9px}.contact-button{grid-column:2;grid-row:1}.contact-button svg{display:none}.home-intro{padding-top:174px;display:block;padding-bottom:32px}.intro-copy{width:100%;max-width:100%}.home-intro h1,.live-clock{font-size:30px;letter-spacing:-.025em;line-height:1.3}.home-intro h1{max-width:440px}.escape-field{height:40px;width:auto;margin:22px 0 0;display:flex;justify-content:flex-end}.escape-button{font-size:12px;padding:8px 16px}.project-grid{grid-template-columns:1fr;gap:28px;padding-bottom:40px}.project-column{display:contents}.project-card{order:0}.project-column:first-child .project-card:last-child{order:2}.project-column:last-child .project-card:last-child{order:3}.card-caption h2{font-size:15px;max-width:100%}.project-cover{border-radius:4px}.case-heading{padding-top:138px;margin-bottom:32px;min-height:0}.case-heading .back-button{position:static;margin-bottom:25px}.case-heading h1{max-width:100%;width:auto;margin:0;font-size:30px;line-height:1.25}.case-body{width:calc(100% - 40px);margin-bottom:40px}.case-overview{margin:30px 0 36px}.case-overview h2{font-size:23px;margin-bottom:22px}.case-overview>p:not(.eyebrow){font-size:16px}.case-pair{gap:10px}.case-gallery{gap:10px}.footer{padding-top:32px;padding-bottom:36px}.footer-top{display:block;margin-bottom:36px}.footer-top h2{font-size:32px}.footer-info{width:100%;max-width:100%;padding:0;margin-top:28px}.footer-info p{max-width:320px}.copyright{margin-top:18px}.footer-groups{grid-template-columns:1fr 1fr;gap:28px 12px}.footer-group-apo{grid-column:1/-1}.footer-group-title{margin-bottom:12px}.footer-thumbnails,.footer-group-apo .footer-thumbnails{gap:8px}.placeholder-page{padding-top:180px;min-height:65svh;padding-bottom:100px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.project-card:hover .project-cover img{transform:none}.escape-button{transform:none!important}}

.case-page[data-project="chekov"] .case-gallery>.case-image:first-child{aspect-ratio:964/394}.case-page[data-project="chekov"] .case-gallery>.case-image:first-child img{height:100%;object-fit:cover;object-position:center}

.roll-label{display:inline-flex;overflow:hidden;line-height:1.3;white-space:pre}.roll-char{position:relative;display:inline-block;transition:transform .42s cubic-bezier(.76,0,.24,1);transition-delay:calc(var(--i)*12ms)}.roll-char::after{content:attr(data-char);position:absolute;left:0;top:100%}.header-block a:hover .roll-char,.contact-button:hover .roll-char,.footer-group:hover .roll-char,.footer-group:focus-visible .roll-char{transform:translateY(-100%)}

/* Entrance motion keeps semantic text intact and never hides content without JS. */
.motion-boot #view{opacity:0}
.reveal-word{display:inline-block;overflow:clip;vertical-align:bottom;padding-bottom:.05em;margin-bottom:-.05em}
.reveal-word-inner{display:inline-block;transform:translateY(0);opacity:1;transition:transform 1.05s cubic-bezier(.25,.8,.25,1),opacity .75s ease;transition-delay:calc(var(--heading-delay,0ms) + var(--word-delay,0ms))}
.motion-pending .reveal-word-inner{transform:translateY(110%);opacity:0;transition:none}
.reveal-block{opacity:1;transform:translateY(0);transition:opacity .9s ease,transform 1.05s cubic-bezier(.25,.8,.25,1);transition-delay:var(--reveal-delay,0ms)}
.reveal-block.motion-pending{opacity:0;transform:translateY(32px);transition:none}
/* An unobtrusive desktop pointer, with the system cursor retained for keyboard/touch use. */
.pointer-cursor{position:fixed;top:0;left:0;width:40px;height:40px;margin:-20px 0 0 -20px;pointer-events:none;z-index:10000;opacity:0;transition:opacity .15s;contain:layout style}
.pointer-cursor>span{display:block;width:100%;height:100%;border-radius:50%;background:#777;transform:scale(.32);transition:transform .46s cubic-bezier(.9,0,.1,1),opacity .3s,background .2s}
.pointer-cursor.is-link>span{transform:scale(.825);opacity:.5}
.pointer-cursor.is-pressed>span{transform:scale(.25)}
@media(hover:hover) and (pointer:fine) and (min-width:641px){html.cursor-ready,html.cursor-ready *{cursor:none!important}.cursor-ready .pointer-cursor{opacity:1}}
/* Mobile navigation is a real modal: the page below cannot scroll or receive focus. */
.menu-toggle{display:none}.mobile-menu{position:fixed;inset:0;margin:0;border:0;padding:0;width:100%;max-width:none;height:100dvh;max-height:none;background:transparent;color:#111;overflow:hidden;overscroll-behavior:contain}
.mobile-menu::backdrop{background:transparent}
.mobile-menu-panel{position:absolute;inset:0;background:#fff;overflow-y:auto;overscroll-behavior:contain;transform:translateY(-100%);transition:transform .68s cubic-bezier(.9,0,.1,1)}
.mobile-menu.is-open .mobile-menu-panel{transform:translateY(0)}
.menu-close{position:absolute;right:var(--gutter);top:14px;width:44px;height:44px;padding:0;background:rgba(245,245,245,.86);backdrop-filter:blur(13px);-webkit-backdrop-filter:blur(13px);border-radius:4px;z-index:2}
.menu-toggle span,.menu-close span{position:absolute;width:17px;height:1.5px;background:#111;left:13.5px;top:21px;transition:transform .45s cubic-bezier(.9,0,.1,1)}
.menu-toggle span:first-child,.menu-close span:first-child{transform:translateY(-3px)}.menu-toggle span:last-child,.menu-close span:last-child{transform:translateY(3px)}
.mobile-menu.is-open .menu-close span:first-child{transform:translateY(0) rotate(45deg)}.mobile-menu.is-open .menu-close span:last-child{transform:translateY(0) rotate(-45deg)}
.mobile-links{display:flex;flex-direction:column;align-items:flex-start;gap:10px;padding:84px var(--gutter) 60px}
.mobile-links a{font-size:32px;font-weight:500;line-height:1;padding:6px 0;letter-spacing:-.025em}
.mobile-link-mask{display:block;position:relative;top:.12em;padding-bottom:.1em;overflow:hidden}
.mobile-link-mask>span{display:block;opacity:0;transform:translateY(30px);transition:opacity 1.6s cubic-bezier(.9,0,.1,1),transform 1.6s cubic-bezier(.9,0,.1,1)}
.mobile-menu.is-open .mobile-link-mask>span{opacity:1;transform:translateY(0)}
.mobile-menu.is-closing .mobile-link-mask>span{transition:opacity .26s ease-out,transform .68s cubic-bezier(.9,0,.1,1)}
body.menu-open{overflow:hidden}
.menu-open .menu-toggle{visibility:hidden}
@media(max-width:640px){.site-header{grid-template-columns:1fr auto;row-gap:0}.site-header .identity{min-height:44px;padding:13px 14px;color:#000}.site-header .navigation,.site-header .contact-button{display:none}.site-header .menu-toggle{display:block;position:relative;justify-self:end;width:44px;height:44px;min-height:44px;padding:0}.escape-field{display:none}.pointer-cursor{display:none}.home-intro{padding-top:158px}.case-heading{padding-top:118px}}
@media(hover:none),(pointer:coarse){.escape-field,.pointer-cursor{display:none}}
@media(prefers-reduced-motion:reduce){.motion-pending,.motion-pending .reveal-word-inner{opacity:1;transform:none}.reveal-block{transform:none}.mobile-menu[open],.mobile-links a{animation:none}.pointer-cursor>span{transition:none}}

/* Personal pages keep a full first screen before the shared footer. */
#view>main{min-height:100svh}
.personal-page{width:calc(100% - var(--gutter)*2);margin-inline:auto;padding:140px 0 112px}
.about-page{max-width:480px}
.about-layout{display:flex;flex-direction:column;align-items:flex-start}
.about-portrait{width:160px;margin:0 0 34px}
.portrait-glass{position:relative;width:160px;aspect-ratio:1}
.portrait-fallback{width:100%;height:100%;object-fit:cover;border-radius:7.5%}
.portrait-canvas{position:absolute;width:140.90909%;height:140.90909%;left:-20.454545%;top:-20.454545%;pointer-events:none;opacity:0}
.glass-handle{display:none;position:absolute;padding:0;background:transparent;border:0;border-radius:50%;aspect-ratio:1;transform:translate(-50%,-50%);touch-action:none}
.glass-handle:focus-visible{outline:1px solid #fff;outline-offset:4px;box-shadow:0 0 0 5px #1116}
.glass-ready .portrait-fallback{opacity:0}.glass-ready .portrait-canvas{opacity:1}.glass-ready .glass-handle{display:block}
.about-copy{width:100%}.about-copy h1{font-size:20px;line-height:1.4;letter-spacing:-.015em}
.about-prose{margin-top:24px;font-size:16px;line-height:1.7;letter-spacing:0;color:#444}.about-prose p+p{margin-top:22px}
.inline-link{color:#111;text-decoration:underline;text-decoration-color:#ccc;text-underline-offset:4px;transition:text-decoration-color .2s}.inline-link:hover{text-decoration-color:#111}
.about-elsewhere{margin-top:36px;padding-top:22px;border-top:1px solid #eee;display:flex;gap:30px;font-size:13px;line-height:1.5;scroll-margin-top:100px}
.about-elsewhere>span{color:#858585}.about-elsewhere>div{display:flex;gap:22px;flex-wrap:wrap}
.text-link{display:inline-flex;align-items:center;gap:6px}.text-link>span:last-child{color:#858585}.text-link:hover .roll-char,.text-link:focus-visible .roll-char{transform:translateY(-100%)}
.play-page{max-width:1280px;padding-top:114px}
.play-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:32px;align-items:start}
.play-study-column{display:flex;flex-direction:column;gap:32px}
.play-tile{display:block;overflow:hidden;background:#f5f5f5;border-radius:4px}
.play-tile img{width:100%;height:auto;transition:opacity .35s}
.play-tile:hover img{opacity:.9}.play-tile:focus-visible{outline-offset:4px}
/* The entire footer fades, including its dark surface. */
.footer.reveal-block{transform:none;transition:opacity .7s ease;transition-delay:0s}
.footer.reveal-block.motion-pending{opacity:0;transform:none;transition:none}
/* A quiet image viewer, with the description inside rather than under each tile. */
.study-dialog{--study-viewport-gap:48px;position:fixed;inset:0;margin:auto;padding:0;border:0;width:min(900px,calc(100% - 48px));max-width:none;max-height:calc(100dvh - var(--study-viewport-gap));overflow:visible;color:#111;background:transparent;opacity:0;transform:translateY(18px) scale(.98);transition:opacity .3s ease,transform .4s var(--ease)}
.study-dialog::backdrop{background:rgb(0 0 0 / 0);transition:background .3s ease}
.study-dialog.is-open{opacity:1;transform:translateY(0) scale(1)}.study-dialog.is-open::backdrop{background:rgb(0 0 0 / .28)}
.study-dialog.is-closing{transition:opacity .2s ease,transform .22s ease;transform:translateY(10px) scale(.99)}.study-dialog.is-closing::backdrop{transition-duration:.22s}
.study-panel{position:relative;padding:20px;max-height:inherit;overflow:auto;overscroll-behavior:contain;background:#fff;border-radius:6px;box-shadow:0 24px 70px #0003,0 4px 16px #00000014}

.study-media{display:flex;align-items:center;justify-content:center;border-radius:3px;overflow:hidden}
.study-media img{width:auto;height:auto;max-width:100%;max-height:calc(100dvh - 240px);object-fit:contain}
.study-copy{padding:24px 6px 8px}#study-title:focus{outline:none}.study-kind{color:#858585;font-size:12px;line-height:1.4;margin-bottom:8px}.study-copy h2{font-size:20px;line-height:1.4;letter-spacing:-.015em}.study-copy>p:last-child{font-size:14px;line-height:1.6;color:#777;max-width:600px;margin-top:10px}
body.study-open{overflow:hidden}.site-header{transition:opacity .2s ease}.study-open .site-header{opacity:0}html.cursor-ready body.study-open,html.cursor-ready body.study-open *{cursor:auto!important}html.cursor-ready body.study-open a,html.cursor-ready body.study-open button{cursor:pointer!important}.study-open .pointer-cursor{opacity:0}
@media(min-width:1800px){.play-page{max-width:1440px}.play-grid,.play-study-column{gap:32px}}
@media(max-width:900px){.play-grid,.play-study-column{gap:24px}}
@media(max-width:640px){.personal-page{padding-top:118px;padding-bottom:80px}.about-page{max-width:440px}.about-portrait,.portrait-glass{width:140px}.about-portrait{margin-bottom:30px;margin-left:12px}.about-copy h1{font-size:20px}.about-prose{font-size:15px;line-height:1.75}.about-elsewhere{gap:20px}.about-elsewhere>div{gap:16px}.play-page{padding-top:98px}.play-grid{grid-template-columns:1fr;gap:24px}.play-study-column{gap:24px}.study-dialog{--study-viewport-gap:32px;width:calc(100% - 32px)}.study-panel{padding:12px;border-radius:4px}.study-copy{padding:20px 4px 10px}.study-copy h2{font-size:18px}.study-copy>p:last-child{font-size:14px}}
@media(prefers-reduced-motion:reduce){.footer.reveal-block{opacity:1;transform:none}.study-dialog{transition:none;transform:none}.study-dialog::backdrop{transition:none}.play-tile:hover img{transform:none}}
