@font-face{font-family:Akira;src:url('akira-expanded-demo.otf');font-display:swap}
:root{--paper:#fff;--ink:#0b0b0b;--wash:none;--nav:88px;--muted:#666;--line:#ccc;--track:#191919;--thumb:#888;color-scheme:light}*{box-sizing:border-box;scrollbar-width:thin;scrollbar-color:var(--thumb) var(--track)}::-webkit-scrollbar{width:9px;height:9px}::-webkit-scrollbar-track{background:var(--track)}::-webkit-scrollbar-thumb{background:var(--thumb);border:2px solid var(--track);border-radius:0}::-webkit-scrollbar-corner{background:var(--track)}html{scroll-behavior:smooth}body{margin:0;padding-bottom:var(--nav);background:var(--paper);color:var(--ink);font:16px/1.5 Arial,sans-serif}button,input,select,textarea{font:inherit;color:inherit;accent-color:var(--ink);border-radius:0}button{cursor:pointer;background:transparent;border:0;padding:12px 0}a{color:inherit;text-decoration:none}a:hover,button:hover{text-decoration:underline;text-underline-offset:5px}button:focus-visible,a:focus-visible,input:focus-visible,[tabindex]:focus-visible{outline:2px solid currentColor;outline-offset:5px}h1,h2,h3,p,figure{margin:0}h1,h2{font-family:Akira,Arial,sans-serif;font-weight:normal;line-height:1.06;letter-spacing:0}h3{font-size:24px;line-height:1.15;text-transform:uppercase}section{position:relative}main[hidden],[hidden]{display:none!important}.meta,.eyebrow,.caption,.rotation-controls,.gallery-tabs,.nav,.gh-source,.gh-bottom{font:11px/1.5 'Courier New',monospace;text-transform:uppercase}.eyebrow{position:absolute;left:3vw;top:24px;z-index:2}.statement{min-height:calc(100svh - var(--nav));padding:90px 3vw;display:flex;align-items:center;justify-content:center;text-align:center;background:var(--wash)}.statement h1{font-size:var(--hero-size,7vw);white-space:nowrap;line-height:1.06;width:100%}.mobile-lines,.phone-lines{display:none}.edge{position:absolute;bottom:25px;left:3vw;right:3vw;display:flex;justify-content:space-between;gap:20px}.statement .contact p{margin:30px 0}.contact{text-align:left;justify-content:flex-start}.contact h2{font-size:clamp(35px,7.5vw,130px);margin:35px 0}.contact p{margin-bottom:40px}.feature{height:calc(100svh - var(--nav));min-height:520px;background:#121212;color:white;overflow:hidden}.feature-media{position:absolute;inset:0;display:flex;align-items:center;justify-content:center}.feature-media img{width:100%;height:100%;object-fit:cover}.feature-media.pair{gap:12px;background:#111;padding:24px}.feature-media.pair img{width:auto;max-width:calc(50% - 6px);object-fit:contain}.feature-media.contain img{object-fit:contain;padding:35px}.feature-media.saga img{max-width:65%;object-fit:contain;image-rendering:pixelated}.feature:after{content:'';position:absolute;inset:40% 0 0;background:linear-gradient(transparent,#000c);pointer-events:none}.feature .eyebrow{background:#111c;padding:5px 9px}.feature-bottom{position:absolute;bottom:30px;left:3vw;right:3vw;display:flex;justify-content:space-between;align-items:end;gap:20px;z-index:2}.feature-title{font-size:clamp(36px,6.5vw,110px);margin:12px 0 18px;text-transform:uppercase}.feature-link{font:12px 'Courier New',monospace;text-decoration:underline;text-underline-offset:6px}.rotation-controls{display:flex;gap:18px;flex-shrink:0}.feature-media.changing{animation:reveal .35s ease-out}@keyframes reveal{from{opacity:.35}to{opacity:1}}.made-section{display:grid;grid-template-columns:1fr 1fr;min-height:calc(100svh - var(--nav));background:var(--wash)}.made-copy{padding:60px 4vw;display:flex;justify-content:center;flex-direction:column;gap:30px}.made-copy h2{font-size:clamp(27px,3.6vw,70px)}.made-copy a{font:12px 'Courier New',monospace;text-decoration:underline;text-underline-offset:6px}.inverse{background:#0b0b0b;color:white}.compact{height:auto;min-height:600px}.compact .feature-bottom{left:24px;right:24px;display:block}.compact .feature-title{font:28px/1.15 Arial,sans-serif;letter-spacing:0}.compact .rotation-controls{margin-top:20px}.project-preview{color:white;width:82%;padding:35px;background:#141414;border:1px solid #777;transform:rotate(-4deg)}.project-preview strong{font:clamp(24px,3vw,55px)/1.1 Akira,sans-serif;display:block;margin:30px 0}.project-preview span{font:12px 'Courier New',monospace}.project-preview em{font-style:normal;font-size:16px}.nav{position:fixed;bottom:0;left:0;right:0;z-index:30;background:#090909;color:white;height:var(--nav);display:flex;align-items:center;gap:30px;padding:0 3vw}.nav.glass{background:rgba(12,12,16,.85);backdrop-filter:blur(24px) saturate(130%);border-top:1px solid #ffffff30}.logo{flex-shrink:0;margin-right:25px;line-height:0}.logo img{width:66px;height:auto;display:block}.nav-end{margin-left:auto;display:flex;gap:24px}.menu-wrap{position:relative}.menu{position:absolute;bottom:calc(100% + 19px);left:-20px;padding:24px;background:#090909;min-width:200px;display:grid;gap:20px}.panel,.radio{position:absolute;right:20px;bottom:calc(var(--nav) + 12px);width:min(380px,calc(100vw - 40px));background:var(--paper);color:var(--ink);border:1px solid var(--line);padding:24px;max-height:calc(100svh - var(--nav) - 30px);overflow:auto;text-transform:none}.radio iframe{display:block}.panel-note{font:13px/1.5 Arial,sans-serif;color:var(--muted);margin-top:20px}.theme-options{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:20px 0}.theme-options button{padding:12px;border:1px solid var(--line);font:12px Arial,sans-serif}.theme-options button[aria-pressed=true]{background:var(--ink);color:var(--paper)}.check{display:flex;gap:12px;align-items:center;font:13px Arial,sans-serif}.check input{appearance:none;width:18px;height:18px;border:1px solid currentColor;display:grid;place-content:center}.check input:checked:after{content:'✓'}.skip{position:fixed;z-index:60;top:10px;left:10px;background:white;color:black;padding:15px;transform:translateY(-180%)}.skip:focus{transform:none}.gallery-hero{height:calc(100svh - var(--nav));position:relative;background:#111;color:white;overflow:hidden}.gallery-hero .feature-media{padding-bottom:0}.gallery-heading{position:absolute;bottom:35px;left:4vw;z-index:2;background:#090909d9;padding:20px}.gallery-heading h1{font-size:clamp(34px,6vw,100px);text-transform:uppercase}.gallery-heading p{font:12px 'Courier New',monospace;margin-bottom:12px}.gallery-tabs{display:flex;gap:25px;padding:30px 4vw;flex-wrap:wrap}.gallery-tabs a[aria-current]{text-decoration:underline;text-underline-offset:7px}.image-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:25px;padding:0 4vw 60px}.image-grid button{padding:0;width:100%;display:block;align-self:start}.image-grid img{width:100%;display:block;aspect-ratio:4/5;object-fit:cover}.image-grid.masonry{display:block;columns:3;column-gap:25px}.masonry button{break-inside:avoid;margin-bottom:25px}.masonry img{aspect-ratio:auto}.gallery-footer{padding:10px 4vw 70px}.gallery-footer button{border:1px solid var(--ink);padding:14px 30px}.project-copy{padding:65px 7vw;max-width:1100px}.project-copy h2{font-size:clamp(30px,5vw,75px);margin:20px 0 35px}.project-copy p{max-width:720px;font-size:18px;line-height:1.7;margin:20px 0}.project-copy a{text-decoration:underline;text-underline-offset:5px}.project-art{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;padding:0 7vw 60px}.project-art img{width:100%;display:block}.project-art.saga img{image-rendering:pixelated}.backlink{display:inline-block;margin-bottom:25px;font:12px 'Courier New',monospace}.build-log{padding:80px 6vw;background:#090909;color:white;min-height:calc(100svh - var(--nav));display:flex;flex-direction:column;justify-content:center;gap:32px}.build-heading h2{font-size:clamp(35px,6vw,100px);margin:24px 0}.build-heading p{color:#aaa}.gh-summary{display:flex;gap:35px;flex-wrap:wrap;color:#aaa;font:12px 'Courier New',monospace}.gh-summary strong{display:block;color:white;font:28px Arial,sans-serif;margin-bottom:8px}.gh-scroll{overflow:auto;padding:6px 0 14px}.gh-calendar{min-width:610px}.gh-months{display:grid;grid-template-columns:repeat(var(--weeks),1fr);font:11px monospace;color:#aaa;margin-bottom:10px}.gh-grid{display:grid;grid-auto-flow:column;grid-template-rows:repeat(7,1fr);grid-template-columns:repeat(var(--weeks),1fr);gap:4px}.gh-day{aspect-ratio:1;padding:0;border:0;min-width:0}.gh-level-0{background:#202020}.gh-level-1{background:#595959}.gh-level-2{background:#919191}.gh-level-3{background:#c5c5c5}.gh-level-4{background:#fff}.gh-bottom,.gh-source{display:flex;justify-content:space-between;gap:20px;color:#aaa;text-transform:none}.gh-legend{display:flex;gap:5px;align-items:center}.gh-legend i{width:11px;height:11px}.gh-source{padding-top:24px;border-top:1px solid #333}.gh-source a{color:white}.work-cards{display:grid;grid-template-columns:1fr 1fr;gap:30px;padding:0 7vw 65px}.work-cards a{background:#111;color:white;padding:30px;display:block}.work-cards h3{margin:20px 0}.work-cards p{font-size:15px}.work-cards img{width:100%;max-height:420px;object-fit:contain}dialog{position:fixed;inset:0;width:100%;max-width:none;height:100%;max-height:none;margin:0;background:#090909;color:white;border:0;padding:65px 65px 30px}dialog::backdrop{background:#090909}dialog[open]{display:flex;align-items:center;justify-content:center}dialog figure{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px}dialog img{max-width:100%;max-height:calc(100% - 35px);object-fit:contain}dialog figcaption{font:12px 'Courier New',monospace;text-align:center}.lb-close{position:absolute;right:25px;top:15px}.lb-prev,.lb-next{position:absolute;top:45%;padding:15px;font-size:25px}.lb-prev{left:10px}.lb-next{right:10px}
@media(max-width:1000px){.feature-bottom{align-items:start;flex-direction:column}.made-section{grid-template-columns:1fr}.made-copy{padding:65px 5vw}.made-copy h2{font-size:6.5vw}.compact{height:75svh}.logo{margin-right:5px}.nav{gap:23px}.nav-end{gap:18px}.image-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.image-grid.masonry{columns:2}}
@media(max-width:700px){:root{--nav:82px}.nav{gap:17px;padding:0 16px}.logo img{width:46px;height:46px;object-fit:contain}.nav-end{gap:14px}.contact-link{display:none}.statement{padding:80px 20px}.desktop-lines{display:none}.mobile-lines{display:block}.eyebrow{left:20px;top:22px}.edge{left:20px;right:20px}.feature-title{font-size:10vw}.feature-bottom{left:20px;right:20px;bottom:25px}.feature{min-height:520px}.feature-media.pair{padding:0;gap:0}.feature-media.pair img{max-width:50%;width:50%;object-fit:cover}.feature-media.saga img{max-width:100%}.image-grid{gap:12px;padding:0 16px 40px}.image-grid.masonry{column-gap:12px}.masonry button{margin-bottom:12px}.gallery-tabs{padding:25px 16px;gap:20px}.project-copy{padding:50px 20px}.project-art{gap:10px;padding:0 20px 40px}.project-copy p{font-size:16px}.work-cards{grid-template-columns:1fr;padding:0 20px 50px}.build-log{padding:65px 20px}.build-heading h2{font-size:8vw}.gh-bottom,.gh-source{flex-direction:column}.gh-summary{gap:25px}.gh-summary strong{font-size:24px}.made-copy h2{font-size:7.7vw}dialog{padding:60px 40px 25px}.menu{left:-55px}.gallery-heading{left:20px;right:20px}.gallery-heading h1{font-size:11vw}}
@media(max-width:480px){.mobile-lines{display:none}.phone-lines{display:block}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.feature-media.changing{animation:none}}
@media(max-width:700px){.feature-media.pair img{width:100%;max-width:100%;object-fit:contain}.feature-media.pair img+img{display:none}.gallery-hero .feature-media.pair{padding:20px 0 130px}.feature .feature-media.pair{padding:20px 0 155px}}
.image-grid img{height:auto}.image-grid:not(.masonry) img{aspect-ratio:4/5;object-fit:cover}.image-grid.masonry img{height:auto;aspect-ratio:auto}

/* Full-bleed editorial pairs; originals remain available in the galleries. */
.feature-media.pair,.gallery-hero .feature-media.pair,.feature .feature-media.pair{padding:0;gap:0}
.feature-media.pair img{width:50%;max-width:50%;object-fit:cover;object-position:center 35%}
.feature-media.saga{display:grid;grid-template-columns:repeat(4,1fr);grid-template-rows:repeat(2,1fr);gap:0;background:#26272b}
.feature-media.saga img{width:100%;height:100%;min-height:0;max-width:none;object-fit:cover;image-rendering:pixelated}
.project-preview{transform:none;width:92%;padding:0;overflow:hidden;border:1px solid #ffffff40;background:#191919;align-self:start;margin-top:55px;box-shadow:0 20px 60px #0004}
.project-preview span{display:block;padding:12px 18px;border-bottom:1px solid #ffffff30;color:#ccc}
.project-preview img{display:block;width:100%;height:400px;object-fit:cover;object-position:top}
.project-preview em{display:block;font:10px 'Courier New',monospace;padding:12px 18px;color:#aaa}
.calendar-link{display:flex;flex-direction:column;gap:10px;border-top:1px solid #ffffff40;padding-top:24px;line-height:1.7}
.calendar-link span{font:10px 'Courier New',monospace;letter-spacing:.14em;text-decoration:none;opacity:.7}
:root{--dark-wash:linear-gradient(135deg,#090909,#171717)}
:root[data-light=dawn]{--dark-wash:radial-gradient(ellipse at 5% 90%,#9c5f6b66,transparent 75%),linear-gradient(135deg,#2d293b,#5b3c43)}
:root[data-light=day]{--dark-wash:radial-gradient(ellipse at 95% 10%,#7d80633d,transparent 72%),linear-gradient(140deg,#18344c,#315366 65%,#3e6467)}
:root[data-light=dusk]{--dark-wash:radial-gradient(ellipse at 95% 75%,#a16a4c66,transparent 72%),linear-gradient(135deg,#332b50,#60435c)}
:root[data-light=night]{--dark-wash:url("night-stars.svg"),radial-gradient(ellipse at 10% 100%,#24243c60,transparent 75%),linear-gradient(135deg,#0c111c,#151a26 65%,#1b1b28)}
.inverse,.build-log{background:var(--dark-wash)}
.nav.glass{left:16px;right:16px;bottom:12px;height:calc(var(--nav) - 8px);border-radius:28px;border:1px solid #ffffff70;background:linear-gradient(135deg,#ffffff28,#ffffff08 40%,#ffffff18),#15151b66;backdrop-filter:blur(28px) saturate(175%);-webkit-backdrop-filter:blur(28px) saturate(175%);box-shadow:inset 0 1px 1px #ffffff80,inset 0 -1px 1px #ffffff20,0 8px 30px #0003;text-shadow:0 1px 5px #0009}
.nav.glass .menu{border-radius:20px;border:1px solid #ffffff50;background:#22232be8;box-shadow:inset 0 1px 0 #ffffff50,0 12px 40px #0005}
.nav.glass .panel,.nav.glass .radio{border-radius:24px;text-shadow:none}
@media(max-width:700px){
.feature-media.pair img{width:100%;max-width:100%;object-fit:cover;object-position:center 30%}
.feature-media.pair img+img{display:none}
.feature-media.saga{grid-template-columns:repeat(2,1fr);grid-template-rows:repeat(4,1fr)}
.feature-media.saga img{max-width:none;object-fit:cover}
.project-preview img{height:360px}
.nav.glass{left:8px;right:8px;bottom:max(8px,env(safe-area-inset-bottom));padding:0 14px;gap:13px;border-radius:24px}
.nav.glass .nav-end{gap:12px}
}
.feature-media.saga img{object-fit:contain}

/* One integrated AI feature: projects and daily practice share the stage. */
#aimade{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:32px;padding:55px 4vw;min-height:calc(100svh - var(--nav));align-content:center}
#aimade .made-copy{grid-column:1/-1;padding:0;display:grid;grid-template-columns:1fr auto;gap:16px;align-items:end}
#aimade .made-copy .meta{grid-column:1/-1}
#aimade .made-copy h2{font-size:clamp(26px,3.3vw,56px);max-width:900px}
#aimade .made-copy h2 br{display:none}
#aimade .made-copy h2 br:after{content:' '}
#ai-feature{height:auto;min-height:0;background:transparent;overflow:visible;display:flex;flex-direction:column}
#ai-feature:after{display:none}
#ai-feature .feature-media{position:relative;inset:auto;display:block}
#ai-feature .project-preview{width:100%;margin:0;box-shadow:none}
#ai-feature .project-preview img{height:clamp(190px,24vw,340px);object-fit:cover;object-position:top}
#ai-feature .project-preview em{display:none}
#ai-feature .feature-bottom{position:static;display:block;margin-top:16px}
#ai-feature .feature-title{font-size:22px;margin:6px 0 12px}
#ai-feature .rotation-controls{margin-top:12px}
#home-build-log{padding:0;min-height:0;background:none;gap:20px;justify-content:start;align-self:center}
#home-build-log .build-heading h3{margin-top:10px;font-family:Akira;font-size:clamp(18px,2vw,28px)}
#home-build-log .gh-summary{gap:24px;font-size:10px}
#home-build-log .gh-summary strong{font-size:25px}
#home-build-log .gh-calendar{min-width:0}
#home-build-log .gh-grid{gap:3px}
#home-build-log .gh-bottom,#home-build-log .gh-source{font-size:10px;gap:10px}
#home-build-log .gh-source{padding-top:14px}
.collection-intro{min-height:0;padding:70px 5vw 45px;justify-content:flex-start;text-align:left}
.collection-intro h1{font-size:clamp(26px,4vw,60px)!important;margin-top:18px}
.nav.glass{left:0;right:0;bottom:0;border-radius:0;height:var(--nav);border-left:0;border-right:0;border-bottom:0}
.nav.glass .menu,.nav.glass .panel,.nav.glass .radio{border-radius:0}
.feature-media.saga{display:grid;grid-template-columns:repeat(16,minmax(0,1fr));grid-template-rows:repeat(16,minmax(0,1fr));gap:0}
.feature-media.saga img{width:100%;height:100%;object-fit:cover;max-width:none;min-width:0}
@media(max-width:900px){#aimade{grid-template-columns:1fr;padding:40px 20px;gap:30px}#aimade .made-copy{display:flex;align-items:flex-start}#aimade .made-copy h2{font-size:clamp(24px,5vw,38px)}#home-build-log{width:100%}#ai-feature .project-preview img{height:230px}.feature-media.saga{grid-template-columns:repeat(12,minmax(0,1fr));grid-template-rows:repeat(22,minmax(0,1fr))}}
@media(max-width:500px){.feature-media.saga{grid-template-columns:repeat(8,minmax(0,1fr));grid-template-rows:repeat(32,minmax(0,1fr))}#home-build-log .gh-grid{gap:2px}#home-build-log .gh-months{font-size:9px}#home-build-log .gh-summary{gap:20px}}
#ai-feature .project-preview img{object-fit:contain;background:#080808}
.feature-media.saga{grid-template-rows:none;grid-auto-rows:calc(100vw / 16);align-content:start}
@media(max-width:900px){.feature-media.saga{grid-template-rows:none;grid-auto-rows:calc(100vw / 12)}}
@media(max-width:500px){.feature-media.saga{grid-template-rows:none;grid-auto-rows:calc(100vw / 8)}}

.physical-heading{padding:65px 4vw 35px;background:var(--wash)}
.physical-heading .backlink{display:block;margin-bottom:35px}
.physical-heading h1{font-size:clamp(44px,8vw,125px);margin:22px 0 45px}
.physical-index{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding-top:15px;font:11px 'Courier New',monospace}
.physical-gallery{columns:3;column-gap:24px;padding:24px 4vw 60px}
.physical-gallery button{display:block;width:100%;padding:0;margin:0 0 24px;break-inside:avoid;overflow:hidden}
.physical-gallery img{display:block;width:100%;height:auto}
.physical-footer{padding:0 4vw 60px;font:12px 'Courier New',monospace}
@media(max-width:1000px){.physical-gallery{columns:2;column-gap:16px}.physical-gallery button{margin-bottom:16px}}
@media(max-width:500px){.physical-heading{padding:40px 20px 24px}.physical-heading h1{font-size:12vw}.physical-gallery{padding:12px 16px 35px;column-gap:12px}.physical-gallery button{margin-bottom:12px}}

#photo-filters{scroll-margin-top:0;background:var(--paper)}.gallery-status{padding:0 4vw 24px;font:11px 'Courier New',monospace;text-transform:uppercase;color:var(--muted)}.image-grid button{background:color-mix(in srgb,var(--ink) 5%,var(--paper))}.image-grid img{content-visibility:auto}
#detail-view{overflow-anchor:none}.image-grid img{content-visibility:visible}

/* Gallery navigation stays reachable while browsing long collections. */
#photo-filters{position:sticky;top:0;z-index:20;border-bottom:1px solid var(--line)}
#photo-filters .gallery-tabs{padding:18px 4vw;gap:24px;align-items:center}
#photo-filters a{padding:8px 0}
.gallery-status{padding-top:20px}
.gallery-heading.photo-heading{right:4vw;max-width:100%;}
.gallery-heading.photo-heading h1{font-size:clamp(18px,5.8vw,90px);white-space:nowrap;line-height:1.12;letter-spacing:0}
@media(max-width:700px){.gallery-heading.photo-heading{left:16px;right:16px;padding:18px 14px}#photo-filters .gallery-tabs{gap:16px;padding:10px 16px;font-size:10px}}
@media(max-width:360px){#photo-filters .gallery-tabs{gap:12px;font-size:9px}}

#projects .feature-media.saga:after{content:'';position:absolute;inset:0;background:rgba(0,0,0,.18);pointer-events:none}
.category-statement h1{font-size:clamp(24px,6vw,96px)!important;white-space:normal!important;line-height:1.1}
.category-down{display:inline-block;margin-top:35px;font:12px 'Courier New',monospace;text-decoration:underline;text-underline-offset:6px}
.info-statement h1{font-size:clamp(28px,5.8vw,94px);white-space:normal;line-height:1.12;margin-top:25px}
.investment-grid{display:grid;grid-template-columns:1fr 1fr;margin-top:45px;border-top:1px solid var(--line);border-left:1px solid var(--line)}
.investment-grid>div{padding:50px 25px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);font-size:clamp(20px,3vw,38px);font-weight:bold}
.investment-grid span{display:block;font:11px 'Courier New',monospace;margin-top:12px}
@media(max-width:700px){.nav,.nav.glass{gap:10px;padding:0 12px;font-size:10px}.nav .logo{margin-right:0}.nav .nav-end{gap:10px}.nav .logo img{width:40px;height:40px}.investment-grid>div{padding:32px 14px}}
@media(max-width:360px){.nav,.nav.glass{gap:8px;padding:0 8px;font-size:9px}.nav .nav-end{gap:8px}}
@media(max-width:700px){.category-statement h1{font-size:7vw!important}}

.investment-logo{position:relative;display:flex;align-items:center;justify-content:center;min-height:220px;padding:45px;background:#171717;border-right:1px solid #555;border-bottom:1px solid #555}
.investment-logo img{display:block;width:100%;max-width:290px;height:95px;object-fit:contain}
.investment-logo span{position:absolute;right:18px;bottom:14px;color:white;font:18px Arial,sans-serif}
.investment-logo:hover{background:#232323}.investment-logo:focus-visible{outline-color:var(--ink)}
.press-list{margin-top:40px;border-top:1px solid var(--line)}
.press-item{display:block;padding:30px 0;border-bottom:1px solid var(--line)}
.press-item h3{font-size:clamp(22px,3vw,36px);text-transform:none;margin:15px 0;max-width:850px}
.press-date{font:12px 'Courier New',monospace;color:var(--muted)}
@media(max-width:600px){.investment-logo{padding:24px;min-height:150px}.investment-logo img{height:65px}.press-item{padding:24px 0}}
/* Monochrome investment marks follow the site's light/dark palette. */
.investment-logo{background:var(--paper);border-color:var(--line)}
.investment-logo img{filter:brightness(0)}
.investment-logo span{color:var(--ink)}
.investment-logo:hover{background:color-mix(in srgb,var(--ink) 6%,var(--paper))}
:root[data-light=night] .investment-logo img{filter:brightness(0) invert(1)}
/* Retain internal contrast in the multicolor raster marks rather than flattening their silhouettes. */
.investment-logo img{filter:grayscale(1) brightness(2) invert(1)}
:root[data-light=night] .investment-logo img{filter:grayscale(1) brightness(2)}

.about-hero{display:grid;grid-template-columns:1fr 1fr;min-height:calc(100svh - var(--nav));background:var(--wash)}
.about-hero>img{width:100%;height:calc(100svh - var(--nav));object-fit:cover;object-position:center}
.about-intro{padding:5vw 3vw;display:flex;flex-direction:column;justify-content:center;gap:35px}
.about-intro h1{font-size:clamp(30px,4.4vw,80px);line-height:1.1}
.about-bio{display:grid;grid-template-columns:1.1fr 1fr;gap:7vw;padding:90px 6vw;align-items:center}
.about-bio h2{font-size:clamp(30px,4vw,65px);margin:15px 0 35px}
.about-bio p{font-size:18px;line-height:1.7;margin:0 0 24px;max-width:620px}
.about-bio>img{width:100%;height:auto;display:block}
.about-self{padding:60px 4vw 80px;background:var(--wash)}
.about-self-heading{display:flex;align-items:end;justify-content:space-between;margin-bottom:35px}
.about-self h2{font-size:clamp(28px,4.5vw,70px)}
.about-triptych{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.about-triptych button{padding:0}.about-triptych img{display:block;width:100%;height:auto}
@media(max-width:700px){.about-hero{grid-template-columns:1fr}.about-hero>img{height:65svh;object-position:center 35%}.about-intro{padding:38px 20px;gap:22px}.about-intro h1{font-size:10vw}.about-bio{grid-template-columns:1fr;padding:50px 20px;gap:35px}.about-bio p{font-size:16px}.about-self{padding:45px 16px}.about-triptych{gap:8px}.about-self-heading{gap:20px}}

.about-bio{display:block;max-width:1100px;margin:0 auto}.about-bio>div{max-width:760px}.about-bio p{max-width:760px}
/* Keep project navigation separate from role/category metadata. */
.project-copy > .backlink{display:table;margin-bottom:24px}
.project-copy > .backlink + .meta{display:block}

.feature .photo-outgoing{pointer-events:none;will-change:opacity}

/* AI made: one project presentation above a compact, full-width activity ledger. */
#hand-feature .feature-title{font-family:Akira,Arial,sans-serif;font-size:clamp(24px,3vw,46px);line-height:1.12}
#aimade{display:block;padding:55px 5vw 50px;min-height:calc(100svh - var(--nav))}
#aimade .made-copy{display:grid;grid-template-columns:1fr auto;align-items:end;margin-bottom:35px;gap:14px}
#aimade .made-copy h2{font-size:clamp(42px,7vw,110px);line-height:1;max-width:none}
#aimade .made-copy>.meta{grid-column:1/-1}
#aimade .made-copy>a{padding-bottom:8px}
#ai-feature{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);gap:4vw;align-items:center}
#ai-feature .feature-media{min-width:0}
#ai-feature .project-preview{border:1px solid #ffffff30;background:#080808}
#ai-feature .project-preview span{font-size:10px;padding:10px 15px;background:#ffffff08;border-bottom:1px solid #ffffff20}
#ai-feature .project-preview img{width:100%;height:clamp(220px,27vw,380px);object-fit:contain}
#ai-feature .feature-bottom{margin:0;min-width:0}
#ai-feature .feature-title{font-family:Akira,Arial,sans-serif;font-size:clamp(23px,2.7vw,43px);line-height:1.14;margin:18px 0}
.build-description{font-size:15px;line-height:1.65;max-width:360px;color:#d0ced6;margin-bottom:25px}
#ai-feature .rotation-controls{margin-top:30px;padding-top:16px;border-top:1px solid #ffffff30;gap:25px}
#home-build-log{display:grid;grid-template-columns:1fr auto;gap:12px 25px;margin-top:38px;padding-top:20px;border-top:1px solid #ffffff40;align-items:center;width:100%;max-width:none}
#home-build-log .build-heading{grid-column:1}
#home-build-log .gh-summary{grid-column:2;grid-row:1;gap:22px;align-items:baseline}
#home-build-log .gh-summary span{display:flex;align-items:baseline;gap:6px;flex-wrap:wrap}
#home-build-log .gh-summary strong{font-size:17px;margin:0}
#home-build-log .gh-scroll{grid-column:1/-1;padding:0 0 5px}
#home-build-log .gh-calendar{min-width:0}
#home-build-log .gh-grid{gap:3px;grid-template-rows:repeat(7,12px)}
#home-build-log .gh-day{aspect-ratio:auto}
#home-build-log .gh-bottom{grid-column:1/-1}
#home-build-log .gh-source{grid-column:1/-1;padding-top:10px;border-top:0}
@media(max-width:900px){#aimade{padding:40px 24px}#ai-feature{grid-template-columns:1.3fr 1fr;gap:24px}#home-build-log .gh-summary{grid-column:1/-1;grid-row:auto}#home-build-log .gh-grid{grid-template-rows:repeat(7,10px)}}
@media(max-width:600px){#aimade{padding:38px 20px}#aimade .made-copy{display:block;margin-bottom:25px}#aimade .made-copy h2{font-size:12vw;margin:16px 0 22px}#ai-feature{grid-template-columns:1fr;gap:22px}#ai-feature .project-preview img{height:auto;max-height:300px}#ai-feature .feature-title{font-size:7vw}#ai-feature .rotation-controls{margin-top:20px}#home-build-log{margin-top:28px;gap:14px}#home-build-log .gh-summary{gap:12px}#home-build-log .gh-grid{gap:2px;grid-template-rows:repeat(7,8px)}}

/* Sweet Boy’s project story */
.sweets-project{--sweets-space:clamp(24px,6vw,100px)}
.sweets-project .sweets-project-links{background:var(--paper);color:var(--ink)}
.sweets-project .gallery-heading{background:transparent;text-shadow:0 2px 30px #0009}
.sweets-project .gallery-hero:after{content:'';position:absolute;inset:50% 0 0;background:linear-gradient(transparent,#0009);pointer-events:none}
.sweets-section{padding:90px var(--sweets-space);scroll-margin-top:85px}
.sweets-section h2{font-size:clamp(30px,4.8vw,80px);margin:24px 0;overflow-wrap:normal}
.sweets-section p{font-size:clamp(16px,1.45vw,21px);line-height:1.65;max-width:620px}
.sweets-story{display:grid;grid-template-columns:1.1fr 1fr;gap:8vw;align-items:center;background:var(--wash)}
.sweets-story-copy>p+p{margin-top:22px}
.sweets-story figure img{width:100%;display:block;aspect-ratio:4/5;object-fit:cover}
.sweets-story figcaption{margin-top:14px;color:var(--muted)}
.sweets-role{border-top:1px solid var(--line);margin-top:32px;padding-top:24px}
.sweets-role p{font-size:14px;margin-top:12px}
.sweets-section-heading{display:grid;grid-template-columns:1.2fr 1fr;gap:7vw;align-items:end;margin-bottom:40px}
.sweets-section-heading h2{margin-bottom:0}
.sweets-photo-grid{columns:3;column-gap:20px}
.sweets-photo{display:block;width:100%;padding:0;line-height:0;break-inside:avoid;margin-bottom:20px;overflow:hidden}
.sweets-photo img{display:block;width:100%;height:auto;transition:none}

.sweets-merch{background:var(--wash);border-block:1px solid var(--line)}
.sweets-merch-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;align-items:start}
.sweets-merch-grid .sweets-photo{margin:0}
.sweets-merch-grid .sweets-photo:first-child{grid-row:auto}
.sweets-merch-grid .sweets-photo:first-child img{aspect-ratio:4/5;object-fit:cover}
.sweets-merch-grid .sweets-photo:not(:first-child) img{aspect-ratio:4/5;object-fit:cover}
.sweets-site-preview{border:1px solid var(--line);background:#050505}
.sweets-site-preview>img{display:block;width:100%;height:auto}
.sweets-browser-label{display:flex;justify-content:space-between;gap:16px;padding:16px 20px;background:var(--paper);font:11px/1.5 'Courier New',monospace;text-transform:uppercase;border-bottom:1px solid var(--line)}
.sweets-web-details{display:grid;grid-template-columns:repeat(3,1fr);gap:35px;margin-top:36px}
.sweets-web-details p{font-size:16px;margin-top:12px}
.sweets-closing{background:var(--wash);border-top:1px solid var(--line)}
.sweets-closing>div{display:flex;justify-content:space-between;gap:28px;margin-top:40px;flex-wrap:wrap}
@media(max-width:850px){.sweets-section{padding-top:65px;padding-bottom:65px}.sweets-story{gap:35px}.sweets-section-heading{gap:30px}.sweets-photo-grid{columns:2}.sweets-web-details{gap:20px}.sweets-section{scroll-margin-top:80px}}
@media(max-width:600px){.sweets-story,.sweets-section-heading{grid-template-columns:1fr}.sweets-section h2{font-size:clamp(27px,7.6vw,45px)}.sweets-story figure{max-width:100%}.sweets-section-heading{gap:22px}.sweets-photo-grid{column-gap:12px}.sweets-photo{margin-bottom:12px}.sweets-merch-grid{gap:12px;grid-template-columns:1fr 1fr}.sweets-merch-grid .sweets-photo:first-child{grid-column:1/-1;grid-row:auto}.sweets-merch-grid .sweets-photo:first-child img{aspect-ratio:1}.sweets-merch-grid .sweets-photo:not(:first-child) img{aspect-ratio:4/5}.sweets-web-details{grid-template-columns:1fr;gap:25px}.sweets-browser-label{padding:12px;font-size:10px}.sweets-project .gallery-heading h1{font-size:9vw}}

@media(max-width:600px){.sweets-project .sweets-project-links{flex-direction:column;align-items:stretch;gap:12px;padding:14px 20px;overflow:visible}.sweets-project-links nav{margin:0;justify-content:space-between;gap:12px;font-size:11px}.sweets-project .sweets-section{scroll-margin-top:110px}}

/* Investments: editorial features with official brand and product imagery. */
.investments-hero p{margin-top:30px;font-size:clamp(16px,1.6vw,22px);line-height:1.6}
.investment-directory,.investment-outro{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:28px 5vw;border-block:1px solid var(--line)}
.investment-directory .backlink{margin:0}
.investment-feature{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);min-height:min(760px,85svh);border-bottom:1px solid var(--line)}
.investment-editorial{padding:clamp(30px,5vw,80px);display:flex;flex-direction:column;justify-content:center;align-items:flex-start;min-width:0}
.investment-feature .investment-feature-logo{border:0;background:none;padding:0;min-height:0;justify-content:flex-start;margin:38px 0;width:100%}
.investment-feature-logo img{max-width:220px;height:65px;object-position:left center}
.investment-editorial h2{font-size:clamp(24px,2.7vw,46px);line-height:1.15;margin-bottom:24px}
.investment-editorial p{max-width:520px;font-size:clamp(16px,1.3vw,20px);line-height:1.7}
.investment-feature-footer{display:flex;justify-content:space-between;align-items:center;gap:20px;width:100%;margin-top:36px;padding-top:22px;border-top:1px solid var(--line)}
.investment-feature-footer .feature-link{line-height:1.6}
.investment-visual{padding:0;display:block;width:100%;min-width:0;height:100%;background:#171a25}
.investment-visual>img{display:block;width:100%;height:100%;object-fit:cover}
.investment-visual.contain{padding:45px;background:radial-gradient(ellipse at center,#29304b,#11131d 80%)}
.investment-visual.contain>img{object-fit:contain;max-height:620px}
.investment-visual.momentum{background:radial-gradient(ellipse at center,#c7d7ff,#e8eef9 75%)}

.investment-feature:nth-of-type(odd) .investment-editorial{grid-column:2;grid-row:1}
.investment-outro{padding-block:55px;border-top:0}
@media(max-width:900px){.investment-feature{min-height:600px}.investment-editorial{padding:35px 25px}.investment-editorial h2{font-size:26px}.investment-feature-footer{align-items:flex-start;flex-direction:column;gap:14px}.investment-visual.contain{padding:25px}}
@media(max-width:650px){.investment-feature{display:flex;flex-direction:column;min-height:0}.investment-editorial{padding:45px 22px}.investment-editorial h2{font-size:clamp(25px,7vw,38px)}.investment-feature .investment-feature-logo{margin:28px 0}.investment-visual{height:auto;aspect-ratio:4/3}.investment-visual.contain{height:440px;aspect-ratio:auto;padding:30px}.investment-feature-footer{flex-direction:row;align-items:center}.investment-directory,.investment-outro{padding:25px 22px;flex-wrap:wrap}.investments-hero h1{font-size:12vw}.investment-feature-logo img{height:55px}}

/* Company index and wider editorial imagery. */
.investments-page .investment-directory{position:sticky;top:0;z-index:20;background:var(--paper);padding:20px 5vw;border-block:1px solid var(--line)}
.investment-directory nav{overflow-x:auto;min-width:0;justify-content:flex-start;gap:24px;padding:5px 0}
.investment-group{padding:32px 5vw;border-bottom:1px solid var(--line);background:var(--wash)}
.investment-feature{scroll-margin-top:90px}
.investment-media{min-width:0;display:flex;align-items:stretch}
.investment-feature:nth-of-type(odd) .investment-media{grid-column:1;grid-row:1}
.investment-feature.investment-wide{display:block;min-height:0}
.investment-wide .investment-editorial{display:grid;grid-template-columns:1fr 1fr;gap:0 6vw;padding:55px 5vw}
.investment-wide .investment-editorial>.meta,.investment-wide .investment-feature-logo,.investment-wide h2{grid-column:1}
.investment-wide .investment-editorial>p{grid-column:2;grid-row:2/4;align-self:center}
.investment-wide .investment-feature-footer{grid-column:1/-1;flex-direction:row}
.investment-wide .investment-media{display:grid;grid-template-columns:1.4fr 1fr;gap:20px;padding:0 5vw 55px;align-items:center}
.investment-wide .investment-visual{background:transparent;height:auto}
.investment-wide .investment-visual>img{height:auto;object-fit:contain;max-height:580px}
.investment-wide .investment-secondary>img{max-height:520px}
@media(max-width:900px){.investments-page .investment-directory{gap:24px}.investment-directory nav{flex-shrink:1;margin:0;gap:20px}.investment-feature{scroll-margin-top:90px}}
@media(max-width:650px){.investments-page .investment-directory{display:block;padding:12px 20px}.investment-directory .backlink{margin-bottom:8px}.investment-directory nav{display:flex;width:100%;gap:22px;white-space:nowrap}.investment-feature{scroll-margin-top:110px}.investment-wide .investment-editorial{display:flex;padding:40px 22px}.investment-wide .investment-media{grid-template-columns:1fr;padding:0 22px 40px;gap:16px}.investment-wide .investment-visual{aspect-ratio:auto}.investment-wide .investment-visual>img{max-height:none}.investment-media{display:block}.investment-group{padding:24px 22px}}

/* Full-width, fixed-frame investment slideshows. */
.investment-wide .investment-media.investment-slideshow{display:block;position:relative;padding:0;}
.investment-wide .investment-slideshow .investment-visual{position:relative;display:block;width:100%;height:clamp(340px,56.25vw,850px);aspect-ratio:auto;overflow:hidden;background:#111;}
.investment-wide .investment-slideshow .investment-visual>img{position:absolute;inset:0;width:100%;height:100%;max-height:none;object-fit:cover;opacity:0;transition:opacity 1000ms ease,transform 350ms ease;pointer-events:none;}
.investment-wide .investment-slideshow .investment-visual>img.is-current{opacity:1;}
.investment-slide-controls{position:absolute;bottom:24px;right:5vw;display:flex;align-items:center;gap:24px;padding:8px 18px;background:#111c;color:#fff;backdrop-filter:blur(12px);}
.investment-slide-controls button{font:11px/1.5 'Courier New',monospace;text-transform:uppercase;}
@media(max-width:650px){.investment-wide .investment-slideshow .investment-visual{height:65svh;min-height:340px;max-height:650px}.investment-slide-controls{bottom:16px;right:16px;left:16px;justify-content:space-between;gap:12px;padding:6px 14px}}
@media(prefers-reduced-motion:reduce){.investment-wide .investment-slideshow .investment-visual>img{transition:none}}

/* Press: a lead conversation and an editorial archive. */
.press-page .info-statement p{font-size:clamp(16px,1.6vw,22px);margin-top:30px;line-height:1.6}
.press-page-top{display:flex;justify-content:space-between;gap:24px;padding:30px 5vw;border-block:1px solid var(--line)}
.press-page-top .backlink{margin:0}
.press-lead{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:5vw;padding:65px 5vw 80px;align-items:center}
.press-visual-link{display:block;cursor:pointer;overflow:hidden}
.press-artwork{display:block;aspect-ratio:16/9;background:#111;overflow:hidden}
.press-artwork img{display:block;width:100%;height:100%;object-fit:contain;transition:transform 350ms ease}
.press-artwork.podcast-artwork{background:#181a20}
.press-lead .press-artwork{aspect-ratio:1}
.press-lead-copy>.meta{display:block}
.press-feature-label{color:var(--muted);margin-bottom:24px}
.press-lead h2{font:clamp(26px,3vw,48px)/1.17 Arial,sans-serif;letter-spacing:-.025em;margin:22px 0;font-weight:700}
.press-lead p,.press-editorial-row p{font-size:17px;line-height:1.65;max-width:650px}
.press-entry-meta{display:flex;flex-wrap:wrap;gap:14px 25px;margin:22px 0;font:11px/1.5 'Courier New',monospace;text-transform:uppercase;color:var(--muted)}
.press-entry-meta a{color:var(--ink)}
.press-archive{padding:0 5vw 70px}
.press-archive>h2{font-size:clamp(25px,3vw,44px);padding:35px 0;border-top:1px solid var(--line)}
.press-editorial-row{display:grid;grid-template-columns:minmax(0,.75fr) minmax(0,1.5fr);gap:5vw;padding:40px 0;border-top:1px solid var(--line);align-items:start}
.press-editorial-row h3{font-size:clamp(23px,2.2vw,34px);text-transform:none;line-height:1.2;margin:16px 0}
.press-visual-link:focus-visible .press-artwork img{transform:scale(1.025)}
@media(hover:hover) and (pointer:fine){.press-visual-link:hover .press-artwork img{transform:scale(1.025)}}
@media(max-width:650px){.press-page-top{padding:25px 20px;flex-wrap:wrap}.press-lead{grid-template-columns:1fr;padding:35px 20px 55px;gap:30px}.press-lead .press-artwork{aspect-ratio:4/3}.press-lead h2{font-size:28px}.press-archive{padding:0 20px 50px}.press-editorial-row{grid-template-columns:1fr;gap:25px;padding:30px 0}.press-lead p,.press-editorial-row p{font-size:16px}}
@media(prefers-reduced-motion:reduce){.press-artwork img{transition:none!important;transform:none!important}}

/* Services and the compact About invitation. */
.services-hero h1{font-size:clamp(36px,7.5vw,120px);white-space:normal}
.services-hero p{margin-top:30px;font-size:clamp(16px,1.6vw,22px)}
.services-top{display:flex;justify-content:space-between;gap:24px;flex-wrap:wrap;padding:28px 5vw;border-block:1px solid var(--line)}
.services-top .backlink{margin:0}
.service-feature{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);border-bottom:1px solid var(--line)}
.service-copy{padding:clamp(35px,5vw,85px);align-self:center}
.service-copy h2{font-size:clamp(25px,3.6vw,58px);margin:25px 0;overflow-wrap:normal}
.service-copy p{font-size:18px;line-height:1.65;max-width:600px}
.service-copy ul{list-style:none;margin:30px 0;padding:0;border-top:1px solid var(--line)}
.service-copy li{padding:13px 0;border-bottom:1px solid var(--line);font-size:14px}
.service-links{display:flex;flex-wrap:wrap;gap:24px;margin-top:32px;line-height:1.8}
.service-visual{display:block;min-width:0;overflow:hidden;cursor:pointer;background:#111;min-height:580px}
.service-visual img{display:block;width:100%;height:100%;object-fit:cover}
.service-visual.contain{display:flex;align-items:center;padding:25px}
.service-visual.contain img{height:auto;object-fit:contain}
.service-feature:nth-of-type(odd) .service-visual{grid-column:1;grid-row:1}
.service-feature:nth-of-type(odd) .service-copy{grid-column:2;grid-row:1}
.service-ending,.about-services{padding:65px 7vw;background:var(--wash)}
.service-ending h2,.about-services h2{font-size:clamp(28px,4.8vw,72px);margin:25px 0}
.service-ending p,.about-services p{max-width:650px;font-size:18px;line-height:1.65;margin-bottom:30px}
.about-services{border-top:1px solid var(--line)}
@media(max-width:900px){.service-copy{padding:40px 25px}.service-copy h2{font-size:clamp(22px,3.3vw,35px)}.service-copy p{font-size:16px}.service-visual{min-height:520px}}
@media(max-width:650px){.services-hero h1{font-size:9.5vw}.service-feature{display:flex;flex-direction:column}.service-copy{padding:45px 20px}.service-copy h2{font-size:7vw}.service-visual{min-height:0;max-height:65svh;aspect-ratio:4/5}.service-visual.contain{aspect-ratio:4/3}.service-ending,.about-services{padding:50px 20px}.service-ending p,.about-services p{font-size:16px}}
#aimade .made-copy .built-authorship{grid-column:1/-1;font:16px/1.6 Arial,sans-serif;color:#d0ced6;max-width:600px}
#aimade .made-copy>a{grid-column:2;grid-row:2}
@media(max-width:650px){#aimade .made-copy>a{grid-column:1/-1;grid-row:auto}}

/* Built: website previews with compact project notes. */
.built-showcase{padding:0 5vw 75px}
.built-project+.built-project{margin-top:75px}
.built-screen-tools{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:16px}
.built-screen-options{display:flex;gap:6px;flex-wrap:wrap}
.built-screen-options button{font:11px/1.4 'Courier New',monospace;padding:10px 14px;border:1px solid var(--line);background:transparent;color:var(--ink);cursor:pointer}
.built-screen-options button[aria-pressed="true"]{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.built-screen-options button:focus-visible,.built-preview:focus-visible{outline:2px solid var(--ink);outline-offset:4px}
button.built-preview{width:100%;padding:0;text-align:left;border-radius:0;color:inherit;font:inherit}
.built-project-caption>div{min-width:0}
.built-project-caption h3{overflow-wrap:anywhere}
.built-preview{display:block;overflow:hidden;background:#090909;border:1px solid var(--line);cursor:pointer}
.built-browser{display:flex;justify-content:space-between;gap:20px;padding:16px 22px;background:var(--paper);color:var(--ink);border-bottom:1px solid var(--line);font:11px/1.5 'Courier New',monospace;text-transform:uppercase}
.built-preview>img{display:block;width:100%;height:auto;max-height:80svh;object-fit:contain}
.built-project-caption{display:grid;grid-template-columns:1fr 1.3fr;gap:5vw;padding:28px 0 0}
.built-project-caption h3{font:clamp(24px,3vw,44px)/1.2 Akira,Arial,sans-serif;margin-top:12px}
.built-project-caption p{font-size:17px;line-height:1.6;max-width:650px;margin-bottom:20px}
.built-project-caption .meta{display:block;color:var(--muted)}
.built-project-caption .feature-link{display:inline-block;margin-top:22px}
@media(max-width:650px){.built-showcase{padding:0 20px 50px}.built-browser{padding:12px;font-size:10px}.built-project-caption{grid-template-columns:1fr;gap:20px}.built-project-caption p{font-size:16px}.built-project+.built-project{margin-top:50px}}

/* Theme-tinted glass for both contribution calendars and their legends. */
:root{--gh-tint:#d9e1e8;--gh-glint:#ffffff}
:root[data-light="dawn"]{--gh-tint:#ed9fba;--gh-glint:#ffe5bc}
:root[data-light="day"]{--gh-tint:#83cce9;--gh-glint:#d9fff0}
:root[data-light="dusk"]{--gh-tint:#b7a0e8;--gh-glint:#ffd0b8}
:root[data-light="night"]{--gh-tint:#9b9ae8;--gh-glint:#bde9ff}
.gh-level-0{--gh-strength:7%}
.gh-level-1{--gh-strength:28%}
.gh-level-2{--gh-strength:49%}
.gh-level-3{--gh-strength:73%}
.gh-level-4{--gh-strength:100%}
.gh-day,.gh-legend i{
 background:linear-gradient(145deg,#ffffff24 0%,#ffffff03 42%,#00000016 65%,color-mix(in srgb,var(--gh-glint) 22%,transparent) 100%),color-mix(in srgb,var(--gh-tint) var(--gh-strength),#17191f);
 border:1px solid color-mix(in srgb,var(--gh-glint) 20%,transparent);
 border-radius:3px;
 box-shadow:inset 0 1px 0 #ffffff32,inset 0 -1px 0 #00000030,0 1px 2px #00000035;
 transition:background .4s ease,border-color .4s ease,box-shadow .2s ease;
}
.gh-day.gh-level-0,.gh-legend .gh-level-0{border-color:#ffffff10;box-shadow:inset 0 1px 0 #ffffff0c}
.gh-day:hover,.gh-day:focus-visible{border-color:var(--gh-glint);box-shadow:inset 0 1px 0 #ffffff70,0 0 7px color-mix(in srgb,var(--gh-tint) 40%,transparent);text-decoration:none}
.gh-day:focus-visible{outline:2px solid var(--gh-glint);outline-offset:2px}
@media(prefers-reduced-motion:reduce){.gh-day,.gh-legend i{transition:none}}

/* A restrained reflected tint, separate from the softer section backgrounds. */
.nav.glass{background:linear-gradient(125deg,color-mix(in srgb,var(--gh-glint) 16%,transparent),transparent 42%,color-mix(in srgb,var(--gh-tint) 13%,transparent)),#15151b88}

/* Music drawer: one continuous frame around Spotify's hosted player. */
.radio,.nav.glass .radio{width:min(440px,calc(100vw - 32px));right:16px;padding:0;border-radius:0;box-shadow:0 18px 60px #0005;overscroll-behavior:contain;text-shadow:none}
.radio-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:22px 22px 20px;background:var(--wash);border-bottom:1px solid var(--line)}
.radio-heading .meta{font-size:9px;color:var(--muted)}
.radio-heading h2{font-size:clamp(16px,2vw,21px);line-height:1.2;margin-top:9px;letter-spacing:0}
.radio-heading button{flex:0 0 36px;height:36px;padding:0;font:26px/1 Arial,sans-serif;border:1px solid var(--line)}
.radio-heading button:hover{text-decoration:none;background:color-mix(in srgb,var(--ink) 8%,transparent)}
.radio-player{background:#121212;overflow:hidden;line-height:0}
.radio-player iframe{display:block;width:100%;height:352px;border:0;border-radius:0;margin:0;color-scheme:dark}
.radio-footer{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:17px 22px;border-top:1px solid var(--line);font:11px/1.5 'Courier New',monospace}
.radio-footer .meta{font-size:9px;color:var(--muted);text-transform:none}
.radio-footer a{white-space:nowrap}
@media(max-width:450px){.radio,.nav.glass .radio{right:8px;width:calc(100vw - 16px)}.radio-heading{padding:18px 16px}.radio-footer{padding:16px}.radio-footer .meta{max-width:120px}}
@media(max-height:620px){.radio-player iframe{height:152px}}
.radio-player{position:relative}
.radio-player::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(#1f1f1f,#1f1f1f) left top/12px 12px no-repeat,linear-gradient(#1f1f1f,#1f1f1f) right top/12px 12px no-repeat,linear-gradient(#121212,#121212) left bottom/12px 12px no-repeat,linear-gradient(#121212,#121212) right bottom/12px 12px no-repeat}

/* Match the soundtrack frame to the navigation's liquid glass treatment. */
.nav.glass .radio{
 background:linear-gradient(125deg,color-mix(in srgb,var(--gh-glint) 16%,transparent),transparent 42%,color-mix(in srgb,var(--gh-tint) 13%,transparent)),#15151b88;
 color:#fff;border:1px solid #ffffff70;
 backdrop-filter:blur(28px) saturate(175%);-webkit-backdrop-filter:blur(28px) saturate(175%);
 box-shadow:inset 0 1px 1px #ffffff80,inset 0 -1px 1px #ffffff20,0 18px 60px #0005;
}
.nav.glass .radio-heading{background:transparent;border-color:#ffffff30}
.nav.glass .radio-footer{border-color:#ffffff30}
.nav.glass .radio-heading .meta,.nav.glass .radio-footer .meta{color:#e0e3eb}
.nav.glass .radio-heading button{border-color:#ffffff40}
.nav.glass .radio-heading button:hover{background:#ffffff18}
/* Put the nav blur on its own layer so popup blur can sample the page too. */
.nav.glass{background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none;isolation:isolate}
.nav.glass::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(125deg,color-mix(in srgb,var(--gh-glint) 16%,transparent),transparent 42%,color-mix(in srgb,var(--gh-tint) 13%,transparent)),#15151b88;backdrop-filter:blur(28px) saturate(175%);-webkit-backdrop-filter:blur(28px) saturate(175%)}

/* Shared liquid glass surface for Photo, Work, and Info dropdowns. */
.nav.glass .menu{
 background:linear-gradient(125deg,color-mix(in srgb,var(--gh-glint) 16%,transparent),transparent 42%,color-mix(in srgb,var(--gh-tint) 13%,transparent)),#15151b88;
 color:#fff;border:1px solid #ffffff70;border-radius:0;
 backdrop-filter:blur(28px) saturate(175%);-webkit-backdrop-filter:blur(28px) saturate(175%);
 box-shadow:inset 0 1px 1px #ffffff80,inset 0 -1px 1px #ffffff20,0 18px 60px #0005;
 text-shadow:0 1px 4px #0005;padding:8px;gap:2px;
}
.nav.glass .menu a{display:block;padding:13px 16px;transition:background .18s ease}
.nav.glass .menu a:hover,.nav.glass .menu a:focus-visible{background:#ffffff16;text-decoration:none}
.nav.glass .menu a:focus-visible{outline:1px solid #ffffffb3;outline-offset:-1px}
@media(prefers-reduced-motion:reduce){.nav.glass .menu a{transition:none}}

/* Theme picker shares the navigation popup glass surface. */
.nav.glass #theme-panel{
 background:linear-gradient(125deg,color-mix(in srgb,var(--gh-glint) 16%,transparent),transparent 42%,color-mix(in srgb,var(--gh-tint) 13%,transparent)),#15151b88;
 color:#fff;border:1px solid #ffffff70;border-radius:0;
 backdrop-filter:blur(28px) saturate(175%);-webkit-backdrop-filter:blur(28px) saturate(175%);
 box-shadow:inset 0 1px 1px #ffffff80,inset 0 -1px 1px #ffffff20,0 18px 60px #0005;
 text-shadow:0 1px 4px #0005;
}
.nav.glass #theme-panel .panel-note{color:#e0e3eb}
.nav.glass #theme-panel .theme-options button{color:#fff;background:#ffffff06;border-color:#ffffff40;text-shadow:none}
.nav.glass #theme-panel .theme-options button:hover{background:#ffffff18;text-decoration:none}
.nav.glass #theme-panel .theme-options button[aria-pressed="true"]{background:#ffffffe6;color:#15151b;border-color:#fff;box-shadow:inset 0 1px 0 #fff}
.nav.glass #theme-panel .check input{border-color:#ffffff90;background:#ffffff0c;color:#fff}
.nav.glass #theme-panel button:focus-visible,.nav.glass #theme-panel input:focus-visible{outline-color:#fff}

/* Photo viewer controls use the same theme-tinted glass as navigation. */
#lightbox :is(.lb-close,.lb-prev,.lb-next){
 z-index:2;display:grid;place-items:center;min-width:48px;min-height:48px;padding:12px;
 background:linear-gradient(125deg,color-mix(in srgb,var(--gh-glint) 16%,transparent),transparent 42%,color-mix(in srgb,var(--gh-tint) 13%,transparent)),#15151b88;
 color:#fff;border:1px solid #ffffff70;border-radius:0;
 backdrop-filter:blur(28px) saturate(175%);-webkit-backdrop-filter:blur(28px) saturate(175%);
 box-shadow:inset 0 1px 1px #ffffff80,inset 0 -1px 1px #ffffff20,0 8px 30px #0005;
 text-shadow:0 1px 4px #0005;transition:background-color .18s ease,border-color .18s ease;
}
#lightbox .lb-close{width:48px;height:48px;padding:0;font:26px/1 Arial,sans-serif}
#lightbox :is(.lb-prev,.lb-next){top:50%;transform:translateY(-50%);font:24px/1 Arial,sans-serif}
@media(hover:hover) and (pointer:fine){#lightbox :is(.lb-close,.lb-prev,.lb-next):hover{background-color:#353943cc;border-color:#ffffffc0;text-decoration:none}}
#lightbox :is(.lb-close,.lb-prev,.lb-next):focus-visible{outline:2px solid #fff;outline-offset:4px}
@media(prefers-reduced-motion:reduce){#lightbox :is(.lb-close,.lb-prev,.lb-next){transition:none}}

/* Blur only the page behind the modal, never the displayed photograph. */
#lightbox{background:transparent}
#lightbox::backdrop{background:rgba(5,7,12,.74);backdrop-filter:blur(18px) saturate(65%);-webkit-backdrop-filter:blur(18px) saturate(65%)}
#lightbox figure{pointer-events:none}
#lightbox figure img{pointer-events:auto}
#lightbox figcaption{color:#e4e5eb;text-shadow:0 1px 5px #000}
#lightbox :is(.lb-close,.lb-prev,.lb-next){cursor:pointer;-webkit-tap-highlight-color:transparent}
#lightbox :is(.lb-close,.lb-prev,.lb-next):active{background-color:#414652dd;border-color:#fff}

/* Category-led photography headers keep the image open. */
.photography-hero::after{content:"";position:absolute;inset:35% 0 0;background:linear-gradient(180deg,transparent 0%,#00000018 40%,#00000080 100%);pointer-events:none}
.photography-hero .gallery-heading.photo-heading{background:transparent;padding:0;text-shadow:0 2px 18px #0006}
.photography-hero .photo-heading p{font-size:12px;letter-spacing:.08em;margin-bottom:14px}
.photography-hero .photo-heading h1{text-transform:uppercase;font-size:clamp(32px,7.5vw,110px)}
@media(max-width:700px){.photography-hero .gallery-heading.photo-heading{padding:0;bottom:28px}.photography-hero .photo-heading h1{font-size:8.5vw}}

/* Keep both marks mounted so breakpoint changes can crossfade. */
.nav .logo{width:66px;height:40px;transition:width 280ms ease}
.logo-transition{position:relative;display:block;width:100%;height:100%}
.nav .logo .logo-transition img{position:absolute;top:50%;left:50%;height:auto;object-fit:contain;transition:opacity 220ms ease,transform 280ms cubic-bezier(.2,.7,.2,1);pointer-events:none}
.nav .logo .logo-wide{width:66px;opacity:1;transform:translate(-50%,-50%) scale(1)}
.nav .logo .logo-mobile{width:40px;opacity:0;transform:translate(-50%,-50%) scale(.85)}
@media(max-width:700px){
 .nav .logo{width:40px}
 .nav .logo .logo-wide{opacity:0;transform:translate(-50%,-50%) scale(.85)}
 .nav .logo .logo-mobile{opacity:1;transform:translate(-50%,-50%) scale(1)}
}
@media(prefers-reduced-motion:reduce){.nav .logo,.nav .logo .logo-transition img{transition:none}}

#lightbox[open]::backdrop{animation:lightbox-backdrop-in 260ms cubic-bezier(.2,.7,.2,1) both}
#lightbox.is-closing::backdrop{animation:lightbox-backdrop-out 180ms ease both}
#lightbox.is-closing button{pointer-events:none}
@keyframes lightbox-backdrop-in{from{opacity:0}to{opacity:1}}
@keyframes lightbox-backdrop-out{from{opacity:1}to{opacity:0}}
@media(prefers-reduced-motion:reduce){#lightbox[open]::backdrop,#lightbox.is-closing::backdrop{animation:none}}

/* Stable image stage allows different aspect ratios to crossfade in place. */
#lightbox .lightbox-stage{position:relative;width:100%;flex:1;min-height:0}
#lightbox .lightbox-stage img{position:absolute;inset:0;width:100%;height:100%;max-width:100%;max-height:100%;object-fit:contain}
#lightbox .lightbox-outgoing{pointer-events:none}
#lightbox figcaption{flex-shrink:0}

/* Horizontal touch gestures navigate; preserve native pinch zoom. */
#lightbox .lightbox-stage{touch-action:pan-y pinch-zoom;user-select:none;-webkit-user-select:none}
#lightbox .lightbox-stage img{-webkit-user-drag:none}

/* Short editorial pauses between the homepage's full-height chapters. */
.archive-chapter{display:grid;grid-template-columns:1fr 2fr;gap:40px;padding:50px 7vw 100px;border-top:1px solid var(--line)}
.archive-chapter h2,.physical-artwork h2{font-size:clamp(28px,4vw,60px);margin:16px 0 24px}
.archive-chapter p,.physical-artwork p{max-width:620px;line-height:1.7;margin:20px 0}
.physical-artwork{padding:40px 4vw 60px;border-top:1px solid var(--line)}
@media(max-width:650px){.archive-chapter{grid-template-columns:1fr;padding:32px 20px 60px;gap:12px}.physical-artwork{padding:32px 20px}}
.archive-entry{display:grid;grid-template-columns:1fr 2fr;gap:40px;padding:55px 7vw;border-top:1px solid var(--line)}
.archive-entry h2{font-size:clamp(26px,4.5vw,64px);line-height:1.15;margin-bottom:24px;overflow-wrap:anywhere}
.archive-entry p{font-size:18px;line-height:1.7;max-width:620px}
@media(max-width:650px){.archive-entry{grid-template-columns:1fr;padding:35px 20px;gap:18px}.archive-entry p{font-size:16px}}

/* Older photographs retain their native proportions and modest display size. */
.legacy-gallery{columns:160px auto;column-gap:12px;max-width:1440px;margin-inline:auto}
.legacy-gallery button{width:100%;max-width:none;margin:0 0 12px;break-inside:avoid}
.legacy-gallery img{height:auto;width:100%}
.archived-hero h1{font-size:clamp(28px,7vw,110px);overflow-wrap:anywhere}
.archived-project :is(#archive-story,#archive-work){scroll-margin-top:100px}
.archive-episodes{padding:40px 7vw 80px;max-width:1000px}
.archive-episodes h3{padding:28px 0;border-bottom:1px solid var(--line);font-size:clamp(20px,3vw,32px);line-height:1.35}
.archive-episodes .feature-link,.archive-entry .feature-link{display:inline-block;margin-top:24px}
.archive-entry h2 a{text-decoration:none}
@media(max-width:600px){.legacy-gallery{columns:2;column-gap:12px}.legacy-gallery button{margin-bottom:12px}.archive-episodes{padding-inline:20px}}
.archived-project .saga-project-links{background:var(--paper);color:var(--ink)}

/* Podcast project pages use the original square artwork without cropping. */
.podcast-hero{min-height:calc(100svh - 84px);display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:6vw;padding:65px 7vw 100px;background:#080808;color:#fff}
.podcast-cover{width:100%;max-width:600px;justify-self:center}
.podcast-cover img{display:block;width:100%;height:auto}
.podcast-hero h1{font-size:clamp(28px,3.8vw,64px);line-height:1.15;margin:24px 0;overflow-wrap:anywhere}
.podcast-hero p{max-width:440px;line-height:1.7;font-size:18px;color:#d0d0d0;margin-bottom:28px}
.podcast-story{display:grid;grid-template-columns:1fr 1fr;gap:6vw;padding:90px 7vw}
.podcast-story h2,.podcast-episodes h2{font-size:clamp(26px,3.5vw,52px);line-height:1.15;margin:20px 0}
.podcast-story p{font-size:20px;line-height:1.7;max-width:620px}
.podcast-facts{margin-top:36px}
.podcast-facts>div{border-top:1px solid var(--line);padding:16px 0;display:grid;grid-template-columns:1fr 1.5fr;gap:20px;font-size:14px;line-height:1.5}
.podcast-facts dt{color:var(--muted)}.podcast-facts dd{margin:0}
.podcast-episodes{padding:40px 7vw 80px}
.podcast-episodes header{margin-bottom:40px}
.podcast-episode{display:grid;grid-template-columns:50px 1fr auto;gap:24px;padding:32px 0;border-top:1px solid var(--line);text-decoration:none;align-items:baseline;transition:opacity 200ms}
.podcast-episode:hover{opacity:.7}.podcast-episode:focus-visible{outline:2px solid var(--ink);outline-offset:6px}
.podcast-episode h3{font-size:clamp(20px,2.3vw,32px);line-height:1.3;max-width:800px}
.podcast-episode p{line-height:1.6;margin-top:12px;max-width:650px;color:var(--muted)}
.podcast-listen{white-space:nowrap;font:12px 'Courier New',monospace}
.podcast-footer{display:flex;justify-content:space-between;gap:24px;flex-wrap:wrap;padding:40px 7vw 110px;border-top:1px solid var(--line)}
@media(max-width:700px){.podcast-hero{grid-template-columns:1fr;gap:20px;padding:40px 24px 80px}.podcast-cover{max-width:340px}.podcast-hero h1{font-size:clamp(26px,7vw,44px)}.podcast-story{grid-template-columns:1fr;padding:50px 24px;gap:16px}.podcast-story p{font-size:18px}.podcast-episodes{padding:30px 24px 50px}.podcast-episode{grid-template-columns:26px 1fr;gap:12px}.podcast-listen{grid-column:2}.podcast-footer{padding-inline:24px}}

.session-section{scroll-margin-top:100px}
.session-gallery{columns:3;max-width:1400px;margin-inline:auto}
.twitch-gallery{columns:2;max-width:1300px;margin-inline:auto}
.twitch-hero{min-height:calc(100svh - 84px);position:relative;display:flex;align-items:flex-end;padding:80px 7vw;color:#fff;background:#090909;isolation:isolate}
.twitch-hero>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.twitch-hero:after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,#000c,transparent 90%);z-index:-1}
.twitch-hero h1{font-size:clamp(32px,8vw,120px);line-height:1.1;margin:24px 0 30px}
@media(max-width:800px){.session-gallery{columns:2}}
@media(max-width:500px){.twitch-gallery{columns:1}.twitch-hero{padding:50px 24px}.session-gallery{column-gap:12px}}

.twitch-emotes{scroll-margin-top:100px}
.physical-gallery.emote-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(136px,1fr));columns:auto;gap:16px;max-width:1400px;margin-inline:auto}
.physical-gallery.emote-grid button{display:flex;align-items:center;justify-content:center;width:100%;height:152px;margin:0;padding:16px;background:color-mix(in srgb,var(--ink) 5%,transparent);border:1px solid var(--line)}
.physical-gallery.emote-grid img{display:block;width:112px;height:112px;object-fit:contain;max-width:100%;flex-shrink:0}
@media(max-width:500px){.physical-gallery.emote-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.physical-gallery.emote-grid button{height:auto;aspect-ratio:1;padding:10px}.physical-gallery.emote-grid img{width:100%;height:auto;aspect-ratio:1;max-width:112px}}

.twitch-hero-deck{font-size:clamp(17px,2vw,24px);line-height:1.5;margin-bottom:28px}
.twitch-chat-study{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:6vw;padding:0 7vw 60px}
.twitch-chat-copy h3{font-size:clamp(24px,3vw,44px);line-height:1.2;margin-bottom:24px}
.twitch-chat-copy p{line-height:1.7;max-width:430px}
.chat-featured{display:flex;gap:12px;flex-wrap:wrap;margin-top:30px}
.chat-featured button{padding:6px;border:1px solid transparent;background:transparent}
.chat-featured button[aria-pressed=true]{border-color:var(--ink)}
.chat-featured img{display:block;width:64px;height:64px;object-fit:contain}
.twitch-chat{background:#16151c;color:#f1f0f4;border:1px solid #ffffff25;padding:24px;font:14px/1.5 Arial,sans-serif}
.twitch-chat header{display:flex;gap:16px;justify-content:space-between;border-bottom:1px solid #ffffff25;padding-bottom:20px;margin-bottom:24px;font:11px 'Courier New',monospace}
.twitch-chat header span:last-child{color:#aaa6b8}
.chat-line{display:flex;gap:10px;margin:20px 0;align-items:center;flex-wrap:wrap}
.chat-line b{color:#c7acf4;font-size:12px}.chat-line:nth-child(3) b{color:#9ed9d4}.chat-line:nth-child(4) b{color:#f0c5a4}
.chat-line span{display:flex;gap:5px;align-items:center;flex-wrap:wrap}.chat-line img{width:28px;height:28px;object-fit:contain}
.chat-note{font-size:12px;color:#aaa6b8;border-top:1px solid #ffffff25;padding-top:20px;margin-top:24px}
.physical-gallery.emote-grid button{background:transparent;border:none}
.twitch-setup-gallery{padding:0 7vw 70px;display:grid;grid-template-columns:1fr 1fr;gap:24px;align-items:center}
.twitch-setup-gallery button{padding:0;background:transparent;display:block;width:100%}
.twitch-setup-gallery button:first-child{grid-column:1/-1}
.twitch-setup-gallery button:last-child{grid-column:2}
.twitch-setup-gallery img{display:block;width:100%;height:auto}
@media(max-width:800px){.twitch-chat-study{grid-template-columns:1fr;padding-inline:24px;gap:32px}.twitch-setup-gallery{padding-inline:24px;gap:16px}.twitch-setup-gallery button:last-child{grid-column:1/-1}}

.twitch-setup-gallery button:nth-child(2){grid-column:2;grid-row:2}.twitch-setup-note{grid-column:1;grid-row:2;max-width:380px;line-height:1.7;padding-right:24px}.twitch-setup-note p{margin-top:20px}@media(max-width:800px){.twitch-setup-gallery button:nth-child(2){grid-column:1/-1;grid-row:auto}.twitch-setup-note{grid-column:1/-1;grid-row:auto;padding:0}}

.twitch-hero>video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.twitch-hero-controls{position:absolute;right:24px;bottom:24px;display:flex;gap:10px;margin:0}
.twitch-hero-controls button{display:grid;place-items:center;width:44px;height:44px;padding:10px;text-decoration:none;color:#fff;border:1px solid #ffffff70;background:linear-gradient(135deg,#ffffff20,#ffffff08),#15151b88;backdrop-filter:blur(28px) saturate(175%);-webkit-backdrop-filter:blur(28px) saturate(175%);box-shadow:inset 0 1px 0 #ffffff50,0 8px 24px #0003;font:12px 'Courier New',monospace;transition:background 180ms}
.twitch-hero-controls button:hover{background:#ffffff30}
.twitch-hero-controls button:focus-visible{outline:2px solid white;outline-offset:4px}

.twitch-hero-controls svg{width:22px;height:22px;display:block}

.archive-project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:64px 28px;padding:0 4vw 110px;max-width:1440px;margin-inline:auto}
.archive-project-card{display:block;text-decoration:none;min-width:0}
.archive-project-image{aspect-ratio:4/3;position:relative;overflow:hidden;background:#080808}
.archive-project-image img{display:block;width:100%;height:100%;object-fit:cover;transition:transform 350ms ease}
.archive-project-image.podcast-art{background:#000}
.archive-project-image.podcast-art img{object-fit:contain;padding:20px}
.archive-project-arrow{position:absolute;right:16px;bottom:16px;display:grid;place-items:center;width:40px;height:40px;color:#fff;background:#15151b88;border:1px solid #ffffff50;backdrop-filter:blur(20px);font-size:22px}
.archive-project-caption{padding:24px 0 0}
.archive-project-caption h2{font-size:clamp(24px,3.2vw,44px);line-height:1.15;margin:16px 0;overflow-wrap:anywhere}
.archive-project-caption p{font-size:16px;line-height:1.6;max-width:520px}
.archive-project-action{display:inline-block;margin-top:20px;font:12px 'Courier New',monospace;border-bottom:1px solid currentColor;padding-bottom:5px}
.archive-project-card:focus-visible{outline:2px solid var(--ink);outline-offset:8px}
@media(hover:hover){.archive-project-card:hover .archive-project-image img{transform:scale(1.025)}}
@media(max-width:650px){.archive-project-grid{grid-template-columns:1fr;padding-inline:20px;gap:44px}.archive-project-caption h2{font-size:clamp(24px,7vw,38px)}}
@media(prefers-reduced-motion:reduce){.archive-project-image img{transition:none}}
.archive-project-card:hover,.archive-project-card:focus{text-decoration:none}

/* Full-width archive chapters, matching the portfolio's visual rhythm. */


.archive-feature{min-height:76svh;position:relative;display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:6vw;padding:60px 6vw;isolation:isolate}
.archive-feature-copy{min-width:0}.archive-feature-copy h2{font-size:clamp(28px,4.2vw,66px);line-height:1.1;margin:22px 0;overflow-wrap:anywhere}
.archive-feature-copy p{font-size:18px;line-height:1.65;max-width:460px;margin-bottom:28px}
.archive-rottix{background:var(--wash)}
.archive-rottix-collage{display:grid;grid-template-columns:1fr 1fr;gap:12px;max-width:520px;width:100%;justify-self:center}
.archive-rottix-collage img{width:100%;height:auto;aspect-ratio:1;object-fit:cover;display:block}
.archive-podcast{background:#000;color:#fff}.archive-large-cover{display:block;max-width:540px;width:100%;justify-self:center}.archive-large-cover img{display:block;width:100%;height:auto}
.archive-missouri,.archive-twitch{color:white;background:#0b0b0e;display:flex;align-items:flex-end}
.archive-background,.archive-twitch>video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.archive-missouri:after,.archive-twitch:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#000c,#0004),linear-gradient(0deg,#0008,transparent);z-index:-1}
.archive-background{object-position:center 40%}
.archive-missouri-content{display:flex;gap:32px;align-items:flex-end;width:100%}
.archive-small-cover{width:clamp(100px,15vw,220px);height:auto;flex-shrink:0}
.archive-video-toggle{position:absolute;right:24px;bottom:24px;width:44px;height:44px;display:grid;place-items:center;border:1px solid #ffffff70;color:white;background:#15151b88;backdrop-filter:blur(28px);padding:10px;text-decoration:none}
.archive-video-toggle svg{width:22px;height:22px}.archive-video-toggle:focus-visible{outline:2px solid white;outline-offset:4px}
@media(max-width:700px){.archive-feature{grid-template-columns:1fr;gap:28px;padding:40px 24px;min-height:75svh}.archive-rottix-collage{max-width:360px}.archive-large-cover{max-width:320px}.archive-feature-copy h2{font-size:clamp(28px,7vw,48px)}.archive-feature-copy p{font-size:16px}.archive-missouri-content{display:block}.archive-small-cover{width:100px;margin-bottom:24px}.archive-twitch{padding-bottom:90px}}

.archive-feature.archive-rottix{display:flex;align-items:flex-end;min-height:76svh;overflow:hidden;background:#111;color:#fff}
.archive-rottix-wall{position:absolute;inset:0;display:grid;gap:5px;z-index:-2;overflow:hidden;pointer-events:none}
.archive-rottix-wall>div{display:flex;flex-direction:column;gap:5px;min-width:0}
.archive-rottix-wall img{display:block;width:100%;height:auto;flex:none}
.archive-rottix:after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,#000e 0%,#0009 30%,#0002 72%);z-index:-1;pointer-events:none}
.archive-rottix .archive-feature-copy{padding-top:160px}

.podcast-hero.podcast-photo-hero{position:relative;isolation:isolate;min-height:calc(100svh - 84px);display:flex;align-items:flex-end;gap:32px;padding:65px 7vw 80px}
.podcast-hero-background{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 35%;z-index:-2}
.podcast-photo-hero:after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,#000d,#0006 60%,#0002);z-index:-1}
.podcast-photo-hero .podcast-cover{width:clamp(100px,16vw,220px);flex-shrink:0;align-self:flex-end}
.podcast-photo-hero .podcast-hero-copy{min-width:0;max-width:780px}
.podcast-photo-hero h1{font-size:clamp(28px,4.5vw,72px);margin:20px 0}
.podcast-photo-hero p{color:#fff}
.rottix-work-group{scroll-margin-top:100px}
@media(max-width:700px){.podcast-hero.podcast-photo-hero{flex-direction:column;justify-content:flex-end;align-items:flex-start;gap:24px;padding:40px 24px 60px}.podcast-photo-hero .podcast-cover{align-self:flex-start;width:100px}.podcast-photo-hero h1{font-size:clamp(26px,7vw,44px)}.podcast-photo-hero p{font-size:16px;margin-bottom:20px}}

.podcast-alternative{display:inline-block;margin:16px 0 0 20px;font-size:13px}@media(max-width:500px){.podcast-alternative{display:block;margin:18px 0 0}}

/* Homepage Built: introduction and activity beside a generous live-work preview. */
#aimade{display:grid;grid-template-columns:minmax(0, .85fr) minmax(0,1.35fr);grid-template-areas:'intro preview' 'activity preview';gap:40px 5vw;padding:64px 4vw;align-content:center;align-items:start}
#aimade .made-copy{grid-area:intro;display:flex;align-items:flex-start;gap:20px;margin:0;padding:0}
#aimade .made-copy h2{font-size:clamp(48px,6.7vw,108px);margin:0;line-height:1.05}
#aimade .made-copy .built-authorship{max-width:340px;color:inherit;font-size:18px;line-height:1.55;opacity:.78}
#aimade .made-copy>a{padding:0;margin-top:4px}
#ai-feature{grid-area:preview;display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto;gap:24px;align-self:center;width:100%;min-width:0}
#ai-feature .feature-media{grid-area:1/1;position:relative;inset:auto;width:100%}
#ai-feature .photo-outgoing{grid-area:1/1;z-index:1}
#ai-feature .project-preview{border:1px solid var(--line);background:var(--paper);box-shadow:0 20px 60px #0002}
#ai-feature .project-preview span{color:var(--ink);background:transparent;border-color:var(--line);padding:12px 16px;opacity:.7}
#ai-feature .project-preview img{height:auto;aspect-ratio:16/10;max-height:none;object-fit:cover;object-position:top;background:transparent}
#ai-feature .feature-bottom{grid-area:2/1;display:block;margin:0}
#ai-feature .feature-category{opacity:.65}
#ai-feature .feature-title{font-size:clamp(21px,2.1vw,34px);margin:10px 0 12px;max-width:100%;overflow-wrap:break-word}
#ai-feature .build-description{max-width:540px;font-size:14px;line-height:1.6;margin-bottom:16px}
#ai-feature .rotation-controls{margin-top:20px;padding-top:10px;border-color:var(--line);justify-content:space-between}
#home-build-log{grid-area:activity;display:flex;flex-direction:column;align-items:stretch;gap:16px;min-width:0;margin:0;padding:22px 0 0;border-top:1px solid var(--line)}
#home-build-log .gh-summary{display:flex;gap:14px 22px;flex-wrap:wrap}
#home-build-log .gh-summary span{display:block;font-size:10px;line-height:1.5}
#home-build-log .gh-summary strong{display:block;font-size:23px;margin-bottom:3px}
#home-build-log .gh-calendar{min-width:320px}
#home-build-log .gh-grid{gap:3px;grid-template-rows:repeat(7,9px)}
#home-build-log .gh-bottom{flex-wrap:wrap;gap:10px;font-size:10px}
#home-build-log .gh-source{font-size:9px;gap:14px;padding-top:0}
@media(max-width:1000px){#aimade{grid-template-columns:minmax(0,1fr);grid-template-areas:'intro' 'preview' 'activity';gap:32px;padding:45px 5vw}#aimade .made-copy h2{font-size:clamp(48px,11vw,90px)}#aimade .made-copy .built-authorship{max-width:none}#ai-feature .project-preview img{aspect-ratio:16/9}#home-build-log .gh-grid{grid-template-rows:repeat(7,12px)}#ai-feature .feature-title{font-size:clamp(22px,4vw,34px)}}
@media(max-width:600px){#aimade{padding:38px 20px;gap:28px}#aimade .made-copy{gap:16px}#aimade .made-copy .built-authorship{font-size:16px}#ai-feature{gap:20px}#home-build-log .gh-grid{gap:2px;grid-template-rows:repeat(7,8px)}#home-build-log .gh-summary{justify-content:space-between;gap:10px}#home-build-log .gh-summary strong{font-size:20px}}
@media(min-width:1001px){#aimade{padding-top:36px;padding-bottom:36px;gap:28px 5vw}#ai-feature .project-preview img{height:clamp(220px,calc(100svh - 390px),520px);aspect-ratio:auto;object-fit:contain;background:#090909}#ai-feature .feature-title{margin:8px 0}#ai-feature .build-description{margin-bottom:12px}#ai-feature .rotation-controls{margin-top:14px;padding-top:6px}#ai-feature{gap:18px}#home-build-log{gap:12px}}
/* Instant prints are small, informal breaks between the larger galleries. */
.camera-roll{padding:55px 6vw 65px;background:var(--wash);overflow:hidden}
.camera-roll header{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:35px}
.camera-roll h2{font-size:clamp(25px,3.5vw,52px);margin-top:16px}
.camera-roll header button{flex-shrink:0}
.instax-strip{display:flex;align-items:center;justify-content:center;gap:clamp(15px,4vw,70px);padding:16px 10px 25px}
.camera-roll .instax-photo{--instax-width:clamp(130px,15vw,210px);padding:0;flex-shrink:0;transition:transform .3s ease;cursor:pointer}
.camera-roll .instax-photo:hover,.camera-roll .instax-photo:focus-visible{transform:rotate(0deg) translateY(-8px);z-index:2;text-decoration:none}
#home-camera-roll{padding-top:25px;padding-bottom:32px}
#home-camera-roll header{margin-bottom:12px}
#home-camera-roll .instax-photo{--instax-width:clamp(120px,12vw,170px)}
@media(max-width:650px){.camera-roll{padding:32px 20px 40px}.camera-roll header{margin-bottom:20px}.instax-strip{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:26px 18px;justify-items:center;padding:12px 8px}.camera-roll .instax-photo,#home-camera-roll .instax-photo{--instax-width:min(100%,160px)}#home-camera-roll .instax-strip{display:flex;justify-content:flex-start;overflow-x:auto;padding:18px 12px 28px}#home-camera-roll .instax-photo{--instax-width:130px}#home-camera-roll{padding:24px 20px}}
@media(prefers-reduced-motion:reduce){.camera-roll .instax-photo{transition:none}}
/* The home camera roll is a browsable rail, with a partial next print as a cue. */
#home-camera-roll{padding-left:0;padding-right:0}
#home-camera-roll header{padding:0 4vw;justify-content:flex-start;gap:22px}
#home-camera-roll header>div:first-child{margin-right:auto}
#home-camera-roll .instax-strip{display:flex;justify-content:flex-start;gap:30px;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x proximity;scroll-padding-left:4vw;padding:22px 4vw 30px}
#home-camera-roll .instax-photo{--instax-width:170px;scroll-snap-align:start}
.roll-arrows{display:flex;gap:8px}
.roll-arrows button{width:36px;height:36px;padding:0;border:1px solid var(--line);font-size:20px}
.roll-arrows button:disabled{opacity:.25;cursor:default;text-decoration:none}
@media(max-width:650px){#home-camera-roll .instax-photo{--instax-width:132px}#home-camera-roll .instax-strip{gap:24px;padding-left:24px;padding-right:24px;scroll-padding-left:24px}#home-camera-roll header{padding:0 20px;gap:12px}.roll-arrows{gap:6px}.roll-arrows button{width:32px;height:32px}}
/* Sweet Boy’s owns its palette while following the selected time of day. */
:root[data-project=sweets]{--dark-wash:none}
.sweets-project{background:var(--paper);color:var(--ink);--sweets-red:#b52024;--sweets-cream:#f5edcb}
.sweets-project .sweets-project-links{background:var(--paper);color:var(--ink);border-color:var(--line)}
.sweets-project .sweets-story,.sweets-project .sweets-web,.sweets-project #sweets-camera-roll{background:var(--paper);color:var(--ink)}
.sweets-project .sweets-merch,.sweets-project .sweets-closing{--paper:#b52024;--ink:#f5edcb;--muted:#f5edcbcc;--line:#f5edcb40;background:var(--paper);color:var(--ink)}
:root[data-sweets-mode=night] .sweets-project .sweets-merch{--paper:#f5edcb;--ink:#000;--muted:#39362e;--line:#0003}
.sweets-project .gallery-hero{color:#f5edcb}
.sweets-project .sweets-browser-label{color:var(--ink)}
/* Keep the camera roll scrollable without a visible scrollbar. */
#home-camera-roll .instax-strip{scrollbar-width:none}
#home-camera-roll .instax-strip::-webkit-scrollbar{display:none}
/* All camera rolls share the same non-interactive, swipeable print rail. */
.camera-roll{padding-left:0;padding-right:0}
.camera-roll header{padding-inline:4vw;justify-content:flex-start;gap:22px}
.camera-roll header>div:first-child{margin-right:auto}
.camera-roll .instax-strip{display:flex;justify-content:flex-start;gap:30px;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x proximity;scroll-padding-left:4vw;padding:22px 4vw 30px;scrollbar-width:none}
.camera-roll .instax-strip::-webkit-scrollbar{display:none}
.camera-roll .instax-photo{--instax-width:170px;scroll-snap-align:start;cursor:default;transition:none}
.camera-roll .instax-photo:hover,.camera-roll .instax-photo:focus-visible{transform:rotate(var(--instax-rotation));z-index:auto}
.camera-roll .instax-photo img{user-select:none;-webkit-user-drag:none}
@media(max-width:650px){.camera-roll .instax-photo{--instax-width:132px}.camera-roll .instax-strip{gap:24px;padding-inline:24px;scroll-padding-left:24px}.camera-roll header{padding-inline:20px;gap:12px}.camera-roll header>div:first-child{min-width:0}.camera-roll h2{font-size:clamp(20px,5vw,28px)}}
/* Continuous movement needs free scrolling rather than snapping every frame. */
.camera-roll .instax-strip.is-auto-scrolling{scroll-snap-type:none;scroll-behavior:auto}
/* Repeated prints make the loop boundary invisible, including during swipes. */
.camera-roll .instax-strip.is-looping{scroll-snap-type:none;scroll-behavior:auto}
.collected-hero h1{font-size:clamp(25px,7.2vw,125px);white-space:normal}
.collected-intro,.about-collected{padding:70px 6vw;background:var(--wash)}
.collected-intro h2,.about-collected h2{font-size:clamp(25px,4.5vw,65px);margin:20px 0}
.collected-intro p,.about-collected p{font-size:18px;line-height:1.65;max-width:620px;margin-bottom:28px}
.about-collected{border-block:1px solid var(--line)}
@media(max-width:600px){.collected-intro,.about-collected{padding:45px 20px}}
.contact-form-section{background:var(--wash);padding:70px 5vw 100px;display:grid;grid-template-columns:1fr 1.5fr;gap:7vw;scroll-margin-top:24px}
.contact-form-intro h2{font-size:clamp(30px,4vw,65px);margin:22px 0}.contact-form-intro p{max-width:350px;font-size:18px;line-height:1.65}
.contact-fields{display:grid;grid-template-columns:1fr 1fr;gap:24px}.contact-field{min-width:0}.contact-wide{grid-column:1/-1}
.contact-field>label,.contact-label{display:block;font:12px/1.5 'Courier New',monospace;text-transform:uppercase;margin-bottom:10px}.contact-field small{font-size:10px;color:var(--muted);margin-left:8px}
.contact-field>input,.contact-field textarea,.contact-select summary{width:100%;border:1px solid var(--line);padding:16px;background:color-mix(in srgb,var(--paper) 50%,transparent);color:var(--ink);border-radius:0;min-height:54px;transition:border-color .2s,background .2s;box-shadow:inset 0 1px 0 #ffffff12;font:16px/1.5 Arial,sans-serif}
.contact-field textarea{resize:vertical;min-height:170px}.contact-field input::placeholder,.contact-field textarea::placeholder{color:var(--muted);opacity:1}.contact-field input:focus,.contact-field textarea:focus{outline:2px solid var(--ink);outline-offset:3px}
.contact-select{position:relative}.contact-select summary{display:flex;justify-content:space-between;gap:12px;cursor:pointer;list-style:none}.contact-select summary::-webkit-details-marker{display:none}.contact-select[open] summary{border-color:var(--ink)}
.contact-select fieldset{position:absolute;top:calc(100% + 8px);left:0;right:0;z-index:8;margin:0;padding:8px;border:1px solid var(--line);background:color-mix(in srgb,var(--paper) 88%,transparent);backdrop-filter:blur(25px) saturate(140%);-webkit-backdrop-filter:blur(25px) saturate(140%);box-shadow:0 12px 30px #0002}
.contact-select fieldset label{display:flex;align-items:center;gap:12px;padding:12px;cursor:pointer;font-size:14px}.contact-select fieldset label:hover,.contact-select fieldset label:focus-within{background:color-mix(in srgb,var(--ink) 8%,transparent)}.contact-select input{appearance:none;width:12px;height:12px;border:1px solid var(--ink);margin:0;flex-shrink:0}.contact-select input:checked{background:var(--ink);box-shadow:inset 0 0 0 2px var(--paper)}
.field-error{display:block;min-height:16px;font-size:12px;margin-top:6px;color:var(--ink)}.contact-field [aria-invalid=true]{border:2px solid var(--ink)}
.contact-submit-row{display:flex;align-items:center;gap:24px;margin-top:28px}.contact-submit{background:var(--ink);color:var(--paper);padding:17px 28px;font:13px 'Courier New',monospace;white-space:nowrap}.contact-submit:hover{text-decoration:none;opacity:.85}.contact-submit-row p,#contact-status{font-size:13px;line-height:1.6;color:var(--muted)}#contact-status{margin-top:20px}.contact-sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
@media(max-width:850px){.contact-form-section{grid-template-columns:1fr;gap:35px}}@media(max-width:550px){.contact-form-section{padding:45px 20px 65px}.contact-fields{grid-template-columns:1fr;gap:20px}.contact-submit-row{align-items:flex-start;flex-direction:column;gap:14px}.contact-submit{width:100%}}
/* One contact section, with the invitation and form together. */
#contact.contact-form-section{padding:55px 4vw 65px;grid-template-columns:minmax(0,1fr) minmax(0,1.35fr);gap:5vw;align-items:start}
#contact .contact-form-intro h2{font-size:clamp(28px,3.6vw,58px)}
#contact .contact-fields{gap:16px 20px}
#contact .contact-field textarea{min-height:125px;height:125px}
#contact .contact-field>input,#contact .contact-select summary{padding:12px 14px;min-height:48px}
#contact .contact-submit-row{margin-top:18px}
#contact #contact-status:empty{display:none}
@media(max-width:850px){#contact.contact-form-section{grid-template-columns:1fr;padding:40px 24px;gap:26px}#contact .contact-form-intro h2{font-size:clamp(28px,6vw,48px);margin:14px 0}#contact .contact-form-intro p{max-width:560px;font-size:16px}}
@media(max-width:550px){#contact.contact-form-section{padding-inline:20px}}
/* Match every form hint and keep the chooser above the fixed navigation. */
#contact input::placeholder,#contact textarea::placeholder,#contact .contact-select summary,#contact .contact-select fieldset label{font:13px/1.5 'Courier New',monospace;text-transform:uppercase;color:var(--muted);opacity:1}
#contact .contact-select fieldset{top:auto;bottom:calc(100% + 8px);max-height:min(290px,var(--contact-menu-height,55svh));overflow-y:auto;overscroll-behavior:contain}
#contact .contact-select summary>span:last-child{transform:rotate(180deg)}
#contact .contact-select fieldset label:has(input:checked){color:var(--ink)}
/* Contact controls share the navigation's tinted liquid-glass surface. */
#contact .contact-field>input,#contact .contact-field textarea,#contact .contact-select summary,#contact .contact-select fieldset,#contact .contact-submit{
 --muted:#e0e3eb;--ink:#fff;--paper:#25252e;
 color:#fff;border:1px solid #ffffff70;border-radius:0;
 background:linear-gradient(125deg,color-mix(in srgb,var(--gh-glint,#fff) 16%,transparent),transparent 42%,color-mix(in srgb,var(--gh-tint,#bcb6e8) 13%,transparent)),#15151b88;
 backdrop-filter:blur(28px) saturate(175%);-webkit-backdrop-filter:blur(28px) saturate(175%);
 box-shadow:inset 0 1px 1px #ffffff80,inset 0 -1px 1px #ffffff20,0 8px 25px #0002;
 text-shadow:0 1px 4px #0005;transition:border-color .18s ease,box-shadow .18s ease;
}
#contact .contact-field>input::placeholder,#contact .contact-field textarea::placeholder,#contact .contact-select summary{color:#e0e3eb}
#contact .contact-field>input:hover,#contact .contact-field textarea:hover,#contact .contact-select summary:hover,#contact .contact-submit:hover{border-color:#ffffffb3;box-shadow:inset 0 1px 1px #ffffffb3,inset 0 -1px 1px #ffffff30,0 8px 25px #0003}
#contact .contact-submit:hover{opacity:1;text-decoration:none}
#contact .contact-field>input:focus,#contact .contact-field textarea:focus,#contact .contact-select summary:focus-visible,#contact .contact-submit:focus-visible{outline:2px solid var(--ink);outline-offset:4px;border-color:#fff}
#contact .contact-field [aria-invalid=true]{border:2px solid #fff;box-shadow:0 0 0 2px var(--paper)}
#contact .contact-select fieldset{box-shadow:inset 0 1px 1px #ffffff80,inset 0 -1px 1px #ffffff20,0 18px 60px #0005}
#contact .contact-select fieldset label:hover,#contact .contact-select fieldset label:focus-within{background:#ffffff16}
#contact .contact-field>input:-webkit-autofill{-webkit-text-fill-color:#fff;box-shadow:inset 0 0 0 100px #393842}
@media(prefers-reduced-motion:reduce){#contact input,#contact textarea,#contact summary,#contact .contact-submit{transition:none}}
/* Identical single-line control geometry regardless of font or element type. */
#contact .contact-field>input,#contact .contact-select summary{box-sizing:border-box;height:50px;min-height:50px;max-height:50px;padding:12px 14px;margin:0}
#contact .contact-select summary{align-items:center}
#contact .contact-select fieldset{transform-origin:bottom center}
#ai-feature a.project-preview{display:block;text-decoration:none}
#ai-feature a.project-preview:hover{border-color:var(--ink)}
.build-detail-hero h1{font-size:clamp(30px,7vw,105px);white-space:normal;text-transform:uppercase;overflow-wrap:anywhere}
.build-detail-hero>div{max-width:1200px;width:100%}
.build-detail-nav{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:30px 5vw}
.build-detail-nav .backlink{margin:0}
@media(max-width:600px){.build-detail-nav{align-items:flex-start;flex-direction:column;padding:25px 20px}}
/* Short editorial page transitions; persistent navigation stays steady. */
#home-view:not([hidden]),#detail-view:not([hidden]){view-transition-name:page-content}
.nav{view-transition-name:site-navigation}
::view-transition{pointer-events:none}
::view-transition-group(site-navigation){animation:none}
::view-transition-old(site-navigation){display:none}
::view-transition-new(site-navigation){animation:none}
::view-transition-old(root){animation:page-wash-out 220ms ease both}
::view-transition-new(root){animation:page-wash-in 300ms ease both}
::view-transition-old(page-content){animation:page-content-out 180ms cubic-bezier(.2,.7,.2,1) both}
::view-transition-new(page-content){animation:page-content-in 320ms cubic-bezier(.2,.7,.2,1) both}
@keyframes page-content-out{to{opacity:0;transform:translateY(-6px)}}
@keyframes page-content-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@keyframes page-wash-out{to{opacity:0}}
@keyframes page-wash-in{from{opacity:0}to{opacity:1}}
@media(prefers-reduced-motion:reduce){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}}
/* Keep page controls in their own layer below live glass navigation. */
#home-view,#detail-view{isolation:isolate;position:relative;z-index:0}
.nav{z-index:30}
/* Sticky filter and project labels stop at the navigation's top edge. */
#photo-filters,.saga-project-links{clip-path:inset(0 0 var(--nav-occlusion,0px) 0)}
/* Mobile review: fit complete heroes and keep controls inside the viewport. */
@media(max-width:700px){
 .about-hero{height:calc(100svh - var(--nav));min-height:0;grid-template-rows:minmax(0,1fr) auto;overflow:hidden}
 .about-hero>img{height:100%;min-height:0;width:100%;object-fit:cover;object-position:center 40%}
 .about-intro{padding:24px 20px;gap:12px;min-width:0}
 .about-intro h1{font-size:clamp(27px,9vw,58px);line-height:1.1}
 .about-intro>.meta{font-size:10px}
 #about-camera-roll header,#sweets-camera-roll header{flex-wrap:wrap}
 #about-camera-roll header>div:first-child,#sweets-camera-roll header>div:first-child{flex-basis:100%;margin-right:0}
 #about-camera-roll header .roll-arrows,#sweets-camera-roll header .roll-arrows{margin-left:auto}
}
.nav .radio,.nav.glass .radio{width:min(440px,calc(100% - 32px));right:16px}
@media(max-width:450px){.nav .radio,.nav.glass .radio{width:calc(100% - 16px);right:8px}}
.nav .menu{bottom:calc(100% + 32px);max-height:calc(100svh - var(--nav) - 28px);overflow-y:auto;overscroll-behavior:contain}
@media(max-height:500px){.nav .menu{max-height:calc(100svh - var(--nav) - 28px)}.nav.glass .menu a{padding-block:10px}}
/* Reusable status pages keep the same full-viewport statement treatment. */
.status-page{min-height:calc(100svh - var(--nav));padding:50px 4vw}
.status-page-content{width:100%;max-width:1200px;margin:auto}
.status-page h1{font-size:clamp(45px,11vw,165px);white-space:normal;line-height:1.05;margin:28px 0}
.status-page p{max-width:500px;margin:0 auto;font-size:18px;line-height:1.6}
.status-page-links{display:flex;align-items:center;justify-content:center;gap:28px;margin-top:32px;flex-wrap:wrap}
.status-home{padding:14px 22px;border:1px solid var(--line);font:12px 'Courier New',monospace;text-transform:uppercase;background:color-mix(in srgb,var(--paper) 50%,transparent);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}
.status-home:hover{background:var(--ink);color:var(--paper);text-decoration:none}
@media(max-width:600px){.status-page{padding:35px 20px}.status-page h1{font-size:clamp(40px,12vw,72px);margin:24px 0}.status-page p{font-size:16px;max-width:320px}.status-page-links{gap:22px;flex-direction:column;margin-top:26px}}
@media(max-height:450px){.status-page{padding-block:24px}.status-page h1{font-size:clamp(35px,12svh,65px);margin:16px 0}.status-page-links{margin-top:20px}.status-page p{font-size:15px}}
/* 24to105 is the photography front door inside the portfolio. */
.photo-landing-hero{height:calc(100svh - var(--nav));min-height:350px;overflow:hidden;background:#111;color:#fff;display:flex;align-items:flex-end;padding:65px 4vw 100px}
.photo-landing-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center}
.photo-landing-hero::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,#0005,transparent 35%,#000b);pointer-events:none}
.photo-landing-top{position:absolute;z-index:1;top:28px;left:4vw;right:4vw;display:flex;justify-content:space-between;gap:20px}
.photo-landing-title{position:relative;z-index:1;width:100%}
.photo-landing-title h1{font-size:clamp(40px,10.2vw,190px);line-height:1.03;letter-spacing:.015em}
.photo-landing-title p{font:clamp(14px,1.5vw,22px)/1.5 'Courier New',monospace;margin-top:18px;text-transform:uppercase}
.photo-landing-down{position:absolute;bottom:32px;left:4vw;z-index:1}
.photo-landing-intro{padding:65px 6vw;display:grid;grid-template-columns:1fr 1.5fr;gap:5vw;align-items:start;background:var(--wash)}
.photo-landing-intro p{font-size:clamp(18px,2vw,28px);line-height:1.55;max-width:760px}
.photo-category-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));scroll-margin-top:0}
.photo-category{position:relative;display:block;overflow:hidden;min-width:0;height:clamp(380px,65svh,800px);color:white;background:#111}
.photo-category>img{display:block;width:100%;height:100%;object-fit:cover;object-position:center}
.photo-category::after{content:'';position:absolute;inset:35% 0 0;background:linear-gradient(transparent,#000c);pointer-events:none}
.photo-category-copy{position:absolute;bottom:35px;left:4vw;right:4vw;z-index:1}
.photo-category h2{font-size:clamp(25px,4.4vw,80px);line-height:1.1;margin:14px 0;letter-spacing:.015em}
.photo-category p{font-size:15px;line-height:1.5;max-width:360px;margin-bottom:24px}
.photo-category:hover{text-decoration:none}
.photo-category:hover .feature-link{text-decoration-thickness:2px}
.photo-landing-contact{padding:75px 6vw;background:var(--wash)}
.photo-landing-contact h2{font-size:clamp(28px,5vw,75px);margin:24px 0}
.photo-landing-contact p{font-size:18px;line-height:1.6;max-width:550px;margin-bottom:30px}
@media(max-width:700px){.photo-landing-hero{padding:40px 20px 90px;min-height:0}.photo-landing-top{left:20px;right:20px;top:24px;font-size:10px}.photo-landing-title h1{font-size:10vw}.photo-landing-title p{font-size:13px;margin-top:14px}.photo-landing-down{left:20px;bottom:30px}.photo-landing-intro{padding:40px 20px;grid-template-columns:1fr;gap:18px}.photo-category-grid{grid-template-columns:1fr}.photo-category{height:65svh;min-height:360px}.photo-category-copy{left:20px;right:20px;bottom:28px}.photo-category h2{font-size:clamp(30px,8vw,55px)}.photo-landing-contact{padding:50px 20px}.photo-landing-contact p{font-size:16px}}
@media(max-height:450px){.photo-landing-hero{min-height:0;padding-bottom:70px}.photo-landing-title h1{font-size:clamp(32px,15svh,70px)}.photo-landing-title p{margin-top:10px}.photo-landing-top{top:18px}.photo-landing-down{bottom:24px}}
/* Work index and navigation wayfinding. */
.nav [data-current-section=true]{text-decoration:underline;text-underline-offset:7px;text-decoration-thickness:1px}
.nav .menu a[aria-current=page]{background:#ffffff16;box-shadow:inset 2px 0 currentColor;text-decoration:none}
.nav:not(.glass) .menu a[aria-current=page]{background:#ffffff16}
.nav-contact{white-space:nowrap;text-decoration:underline;text-underline-offset:5px;align-self:center}
.hero-next-step{display:inline-block;margin-top:26px}
.gallery-heading .hero-next-step{margin-top:18px}
.about-intro .hero-next-step{margin-top:4px}
.work-index-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:var(--line);scroll-margin-top:0}
.work-index-tile{position:relative;min-width:0;display:flex;flex-direction:column;background:var(--paper);color:var(--ink);overflow:hidden}
.work-index-image{height:clamp(230px,31vw,510px);overflow:hidden;background:#111}
.work-index-image img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .4s ease}
.work-tile-3 .work-index-image img{object-fit:contain}
.work-tile-4 .work-index-image{display:flex;justify-content:center;background:var(--paper)}
.work-tile-4 .work-index-image img{width:auto;max-width:100%;object-fit:contain}
.work-index-copy{padding:32px 4vw 40px}
.work-index-copy h2{font-size:clamp(23px,3.3vw,52px);margin:14px 0;overflow-wrap:normal}
.work-index-copy p{font-size:16px;line-height:1.6;max-width:470px;margin-bottom:24px}
.work-index-tile:hover{text-decoration:none}.work-index-tile:hover img{transform:scale(1.025)}
.work-current-projects{padding:70px 5vw;background:var(--wash);scroll-margin-top:0}
.work-current-projects h2{font-size:clamp(30px,5vw,76px);margin:24px 0 36px}
.work-current-projects>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}
.work-current-projects a{min-width:0}
.work-current-projects img{width:100%;height:clamp(220px,27vw,420px);object-fit:cover;display:block}
.work-current-projects a:nth-child(2) img{object-fit:contain;background:#111217;image-rendering:pixelated}
.work-current-projects h3{margin:20px 0 12px;font-size:clamp(20px,2.2vw,32px)}
.work-current-projects p{font:11px/1.6 'Courier New',monospace;text-transform:uppercase}
.page-onward{padding:60px 5vw 75px;background:var(--wash);border-top:1px solid var(--line)}
.page-onward h2{font-size:clamp(25px,4vw,60px);margin:24px 0 30px}
.page-onward>div{display:flex;gap:24px 36px;flex-wrap:wrap}
.gallery-footer{padding:0}.gallery-footer .page-onward{margin-top:30px}
.onward-contact{display:inline-block;margin:22px 24px 0 0}
/* Flex footers use gap for spacing so every link shares a baseline. */
.investment-outro,.podcast-footer{align-items:baseline;flex-wrap:wrap}
.investment-outro>.feature-link,.podcast-footer>.feature-link{margin:0;line-height:1.5}
@media(max-width:1000px){.nav-contact{display:none}}
@media(max-width:700px){.work-index-grid{grid-template-columns:1fr}.work-index-image{height:65vw;max-height:400px}.work-index-copy{padding:25px 20px 35px}.work-index-copy h2{font-size:clamp(23px,6.5vw,42px)}.work-current-projects{padding:45px 20px}.work-current-projects>div{grid-template-columns:1fr;gap:36px}.work-current-projects img{height:65vw;max-height:420px}.page-onward{padding:40px 20px 55px}.page-onward>div{gap:20px 24px}.hero-next-step{margin-top:20px}.about-intro .hero-next-step{margin:0;font-size:11px}}
@media(prefers-reduced-motion:reduce){.work-index-image img{transition:none}.work-index-tile:hover img{transform:none}}
.work-index-page>.statement h1{font-size:clamp(26px,6.5vw,110px);white-space:normal}
@media(max-width:700px){.work-index-page>.statement h1{font-size:6.3vw}.podcast-hero-copy .hero-next-step{display:block}.twitch-hero .hero-next-step{display:block;margin-top:18px}}
.about-bio .about-aliases{font:12px/1.7 'Courier New',monospace;color:var(--muted);margin-top:-20px;margin-bottom:30px}
/* Press as a readable index, without oversized third-party thumbnails. */
.press-index-toolbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px 5vw;background:var(--paper);border-block:1px solid var(--line);clip-path:inset(0 0 var(--nav-occlusion,0px) 0)}
.press-filter-options{display:flex;gap:28px;flex-wrap:wrap}
.press-filter-options button{font:11px/1.5 'Courier New',monospace;text-transform:uppercase;min-height:40px;padding:8px 0;display:flex;align-items:center;gap:10px}
.press-filter-options button>span{color:var(--muted);font-size:10px}
.press-filter-options button[aria-pressed=true]{text-decoration:underline;text-underline-offset:8px;text-decoration-thickness:1px}
.press-result-count{color:var(--muted);white-space:nowrap}
.press-index-list{padding:0 5vw 65px;background:var(--wash);scroll-margin-top:85px}
.press-story{border-bottom:1px solid var(--line);padding:44px 0 22px}
.press-story-main{display:grid;grid-template-columns:60px minmax(0,1fr) 160px;align-items:start;gap:3vw;text-decoration:none}
.press-story-mark{display:flex;flex-direction:column;align-items:flex-start;gap:25px;color:var(--muted)}
.press-story-mark svg{width:30px;height:30px;fill:none;stroke:currentColor;stroke-width:1.25;stroke-linecap:round;stroke-linejoin:round}
.press-story-copy{min-width:0;max-width:880px}
.press-story-source{display:flex;justify-content:space-between;gap:12px 24px;flex-wrap:wrap;font:11px/1.6 'Courier New',monospace;text-transform:uppercase}
.press-story-source time{color:var(--muted)}
.press-story h2{font:500 clamp(28px,3.8vw,58px)/1.12 Arial,sans-serif;letter-spacing:-.035em;text-transform:none;margin:18px 0}
.press-story-copy>p{font-size:16px;line-height:1.65;max-width:680px}
.press-original-title{display:block;color:var(--muted);font-size:12px;line-height:1.6;margin-top:18px;max-width:680px}
.press-story-action{display:flex;flex-direction:column;align-items:flex-end;text-align:right;gap:22px;padding-top:2px}
.press-story-action>.meta{color:var(--muted)}
.press-story-action>span:last-child{font:12px/1.5 'Courier New',monospace;text-transform:uppercase;text-decoration:underline;text-underline-offset:5px}
.press-story-main:hover{text-decoration:none}.press-story-main:hover h2{text-decoration:underline;text-underline-offset:6px;text-decoration-thickness:1px}
.press-story-main:focus-visible{outline:2px solid var(--ink);outline-offset:8px}
.press-story-project{margin:24px 0 0 calc(60px + 3vw);font:10px/1.6 'Courier New',monospace;text-transform:uppercase;color:var(--muted)}
@media(max-width:900px){.press-story-main{grid-template-columns:35px minmax(0,1fr);gap:22px}.press-story-action{grid-column:2;flex-direction:row;align-items:center;justify-content:space-between;text-align:left;gap:20px;padding-top:0}.press-story-project{margin-left:57px}.press-story h2{font-size:clamp(27px,4.5vw,42px)}}
@media(max-width:600px){.press-index-toolbar{padding:12px 20px;gap:12px}.press-filter-options{gap:16px}.press-filter-options button{font-size:10px;gap:5px}.press-filter-options button>span{font-size:9px}.press-result-count{display:none}.press-index-list{padding:0 20px 45px;scroll-margin-top:70px}.press-story{padding:30px 0 22px}.press-story-main{grid-template-columns:minmax(0,1fr);gap:16px}.press-story-mark{flex-direction:row;align-items:center;justify-content:space-between;gap:12px}.press-story-mark svg{width:23px;height:23px}.press-story-action{grid-column:1}.press-story h2{font-size:clamp(27px,7.5vw,40px);margin:15px 0}.press-story-source{font-size:10px;gap:8px 16px}.press-story-copy>p{font-size:15px}.press-story-project{margin-left:0}.press-original-title{font-size:11px}.press-story-action>span:last-child{font-size:11px}}
@media(max-width:360px){.press-filter-options{gap:12px}.press-filter-options button{gap:4px;font-size:9px}}

/* Shared photography density controls. */
#photo-filters{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-right:4vw}
#photo-filters .gallery-tabs{min-width:0;flex-wrap:wrap}
.gallery-density{display:flex;flex-shrink:0;align-items:center;gap:12px}
.gallery-density button{position:relative;display:flex;align-items:center;justify-content:center;width:36px;min-height:40px;padding:10px 6px;color:var(--ink);opacity:.5;font:11px 'Courier New',monospace;transition:opacity 180ms;text-decoration:none;background:none;border:0;box-shadow:none}
.gallery-density button:hover,.gallery-density button[aria-pressed="true"]{opacity:1;text-decoration:none;background:none;box-shadow:none}
.gallery-density button[aria-pressed="true"]::after{content:"";position:absolute;left:6px;right:6px;bottom:3px;height:1px;background:currentColor}
.density-icon{display:grid;grid-template-columns:repeat(var(--icon-columns),1fr);gap:2px;width:21px;height:14px}
.density-icon i{background:currentColor;opacity:.8;min-width:1px}
#detail-view .image-grid{grid-template-columns:repeat(var(--gallery-columns,3),minmax(0,1fr))}
#detail-view .image-grid.masonry{column-count:var(--gallery-columns,3)}
@media(max-width:700px){#photo-filters{flex-wrap:wrap;gap:0;padding:0 16px 10px}#photo-filters .gallery-tabs{width:100%;padding:10px 0;gap:14px}.gallery-density{margin-left:auto}.gallery-density button{min-height:40px;width:36px}}

.sweets-digital-chapter{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:7vw;align-items:center;padding-top:65px;margin-top:65px;border-top:1px solid var(--line)}
.sweets-digital-copy h3{font-family:Akira,Arial,sans-serif;font-weight:normal;font-size:clamp(24px,3vw,44px);line-height:1.15;margin:24px 0}
.sweets-digital-copy p{font-size:17px;line-height:1.7;margin:0 0 22px;max-width:44ch}
.sweets-digital-copy>.meta{display:block}.sweets-convo-shuffle{display:block;margin-top:24px;padding:8px 0}
.sweets-conversation{min-width:0;padding:30px 25px;color:var(--ink)}
.sweets-chat-messages{display:grid;grid-template-columns:minmax(0,1fr) 92px;gap:20px;align-items:start;min-height:330px;font-family:-apple-system,BlinkMacSystemFont,Arial,sans-serif}
.sweets-chat-bubble{width:fit-content;max-width:100%;padding:12px 16px;border-radius:19px;background:color-mix(in srgb,var(--ink) 10%,var(--paper));font-size:16px;line-height:1.4}
.sweets-chat-sticker{width:92px;margin-top:24px;justify-self:end}.sweets-chat-messages picture,.sweets-chat-messages img{display:block;width:100%;height:auto}
.sweets-chat-reply{position:relative;grid-column:1/-1;justify-self:end;margin-right:45px;background:#007aff;color:white}
.sweets-chat-reply picture{position:absolute;right:-48px;top:-20px;width:65px;transform:rotate(12deg)}
.sweets-conversation figcaption{margin-top:32px;opacity:.65;text-align:center}
.sweets-reaction-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.sweets-reaction-grid img{display:block;width:100%;height:auto}
.sweets-wallpaper-pair{display:flex;justify-content:center;gap:20px;align-items:center}.sweets-wallpaper-pair img{width:calc(50% - 10px);max-width:200px;height:auto;aspect-ratio:9/16;object-fit:cover;border-radius:18px;border:5px solid #151515}
@media(max-width:700px){.sweets-digital-chapter{grid-template-columns:1fr;gap:24px;margin-top:40px;padding-top:40px}.sweets-digital-copy h3{font-size:clamp(23px,6vw,34px)}.sweets-conversation{padding:20px 10px}.sweets-chat-messages{gap:18px;grid-template-columns:minmax(0,1fr) 80px}.sweets-chat-sticker{width:80px}.sweets-digital-copy p{font-size:16px}}

/* One digital presence showcase, manually navigated. */
.sweets-project .sweets-web{min-height:calc(100svh - var(--nav));display:flex;flex-direction:column;justify-content:center;padding-top:48px;padding-bottom:48px}
.sweets-web .sweets-section-heading{margin-bottom:24px}.sweets-web .sweets-section-heading h2{font-size:clamp(28px,4vw,58px)}
.sweets-digital-tabs{display:flex;gap:28px;flex-wrap:wrap;border-bottom:1px solid var(--line);margin-bottom:28px}
.sweets-digital-tabs button{position:relative;padding:12px 0;font:12px 'Courier New',monospace;text-transform:uppercase;opacity:.55;text-decoration:none;transition:opacity 180ms}
.sweets-digital-tabs button:hover,.sweets-digital-tabs button[aria-selected="true"]{opacity:1;text-decoration:none}
.sweets-digital-tabs button[aria-selected="true"]::after{content:"";position:absolute;bottom:-1px;left:0;right:0;height:2px;background:currentColor}
.sweets-digital-stage{display:grid;min-width:0;touch-action:pan-y pinch-zoom}
.sweets-digital-stage>.sweets-digital-slide{grid-area:1/1;min-width:0;visibility:hidden;opacity:0;pointer-events:none;transform:translateY(6px);transition:opacity 280ms ease,transform 280ms ease,visibility 280ms}
.sweets-digital-stage>.sweets-digital-slide.is-active{visibility:visible;opacity:1;pointer-events:auto;transform:none}
.sweets-digital-stage .sweets-digital-chapter{margin:0;padding:0;border:0;min-height:380px;gap:5vw}
.sweets-digital-stage .sweets-digital-copy h3{font-size:clamp(24px,2.7vw,40px);margin:16px 0}
.sweets-digital-stage .sweets-digital-copy p{font-size:16px;margin-bottom:16px}
.sweets-website-slide{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);align-items:center;gap:4vw}
.sweets-website-slide .sweets-web-details{display:grid;grid-template-columns:1fr;gap:18px;margin:0}
.sweets-website-slide .sweets-web-details p{margin-top:7px}
.sweets-website-slide .sweets-site-preview{min-width:0}.sweets-website-slide .sweets-site-preview>img{max-height:370px;object-fit:contain}
.sweets-digital-stage .sweets-reaction-grid{max-width:400px;justify-self:center;width:100%;gap:8px}
.sweets-digital-stage .sweets-conversation{padding:14px 20px}.sweets-digital-stage .sweets-chat-messages{min-height:285px;gap:12px}
.sweets-digital-stage .sweets-wallpaper-pair img{max-width:170px;max-height:330px}
@media(max-width:700px){.sweets-project .sweets-web{padding-top:40px;padding-bottom:40px}.sweets-web .sweets-section-heading{gap:18px}.sweets-digital-tabs{gap:22px;margin-bottom:24px}.sweets-digital-tabs button{font-size:11px;min-height:44px}.sweets-website-slide{grid-template-columns:1fr;gap:24px;align-content:start}.sweets-website-slide .sweets-web-details{gap:14px}.sweets-digital-stage .sweets-digital-chapter{grid-template-columns:1fr;align-content:start;gap:20px;min-height:0}.sweets-digital-stage .sweets-digital-copy h3{font-size:clamp(23px,6vw,34px)}.sweets-digital-stage .sweets-conversation{padding:8px 10px}.sweets-digital-stage .sweets-chat-messages{min-height:265px}.sweets-digital-stage .sweets-reaction-grid{max-width:310px}.sweets-digital-stage .sweets-wallpaper-pair img{max-width:150px}}
@media(prefers-reduced-motion:reduce){.sweets-digital-stage>.sweets-digital-slide{transition:none;transform:none}}

.sweets-merch-showcase{min-height:calc(100svh - var(--nav));display:flex;flex-direction:column;justify-content:center;padding-top:48px;padding-bottom:48px}
.sweets-merch-showcase .sweets-section-heading{margin-bottom:24px}.sweets-merch-showcase .sweets-section-heading h2{font-size:clamp(28px,4vw,58px)}
.sweets-process-photos{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:center;min-width:0}
.sweets-process-photos .sweets-photo{margin:0;min-width:0;overflow:hidden}
.sweets-process-photos .sweets-photo img{width:100%;height:340px;object-fit:cover}
.sweets-process-photos .sweets-photo:nth-child(2){margin-top:30px}
@media(max-width:700px){.sweets-merch-showcase{padding-top:40px;padding-bottom:40px}.sweets-merch-showcase .sweets-section-heading{gap:18px}.sweets-process-photos{gap:12px}.sweets-process-photos .sweets-photo img{height:auto;aspect-ratio:4/5}.sweets-process-photos .sweets-photo:nth-child(2){margin-top:0}}

/* Section navigation measures sticky toolbars in JS; native focus respects the bottom nav. */
html{scroll-padding-bottom:calc(var(--nav) + 16px)}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

.rotation-icon{display:block;width:22px;height:22px;flex-shrink:0}
.rotation-controls button,[data-roll-shuffle],.sweets-convo-shuffle,#saga-demo-shuffle{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;padding:10px;text-decoration:none}
.rotation-controls{gap:6px}
.rotation-controls button:hover,[data-roll-shuffle]:hover,.sweets-convo-shuffle:hover,#saga-demo-shuffle:hover{text-decoration:none;opacity:.7}

#home-view a.home-view-more{font:12px/1.5 'Courier New',monospace;letter-spacing:0;text-transform:none;text-decoration-line:underline;text-decoration-thickness:1px;text-underline-offset:6px;color:inherit}
#home-view a.home-view-more:hover{text-decoration-thickness:2px;text-underline-offset:6px}

@media(max-width:700px){
 .sweets-digital-stage{position:relative;display:block}
 .sweets-digital-stage>.sweets-digital-slide{position:absolute;inset:0 auto auto 0;width:100%;height:auto}
 .sweets-digital-stage>.sweets-digital-slide.is-active{position:relative}
 .sweets-web .sweets-digital-tabs,.sweets-merch-showcase .sweets-digital-tabs{position:sticky;top:var(--project-sticky-height,0px);z-index:12;background:var(--paper);padding-top:6px}
 .sweets-web,.sweets-merch-showcase{overflow:visible}
 .sweets-digital-stage{margin-bottom:16px}
}

.sweets-digital-tabs{clip-path:inset(0 0 var(--nav-occlusion,0px) 0)}
/* Desktop showcases fit between the project toolbar and fixed bottom navigation. */
@media(min-width:701px){
 .sweets-project .sweets-web,.sweets-merch-showcase{min-height:calc(100svh - var(--nav) - var(--project-sticky-height,60px))}
}
@media(min-width:701px) and (max-height:800px){
 .sweets-project .sweets-web,.sweets-merch-showcase{padding-top:24px;padding-bottom:24px}
 .sweets-web .sweets-section-heading,.sweets-merch-showcase .sweets-section-heading{margin-bottom:14px;gap:30px}
 .sweets-web .sweets-section-heading h2,.sweets-merch-showcase .sweets-section-heading h2{font-size:30px}
 .sweets-web .sweets-section-heading>p,.sweets-merch-showcase .sweets-section-heading>p{font-size:14px;line-height:1.5}
 .sweets-digital-tabs{margin-bottom:18px}.sweets-digital-tabs button{padding:10px 0}
 .sweets-digital-stage .sweets-digital-chapter{min-height:0}
 .sweets-digital-stage .sweets-digital-copy h3{font-size:25px;margin:12px 0}
 .sweets-digital-stage .sweets-digital-copy p,.sweets-website-slide .sweets-web-details p{font-size:14px;line-height:1.5;margin-bottom:12px}
 .sweets-digital-stage .sweets-digital-copy .meta{font-size:10px}
 .sweets-digital-stage .sweets-conversation{padding:8px 14px}
 .sweets-digital-stage .sweets-chat-messages{min-height:220px;gap:8px;grid-template-columns:minmax(0,1fr) 65px}
 .sweets-digital-stage .sweets-chat-sticker{width:65px;margin-top:14px}
 .sweets-digital-stage .sweets-chat-bubble{font-size:14px;padding:9px 12px}
 .sweets-digital-stage .sweets-conversation figcaption{margin-top:16px}
 .sweets-digital-stage .sweets-convo-shuffle{margin-top:10px}
 .sweets-process-photos .sweets-photo img{height:clamp(210px,34svh,270px)}
 .sweets-process-photos .sweets-photo:nth-child(2){margin-top:0}
 .sweets-digital-stage .sweets-reaction-grid{max-width:clamp(220px,36svh,280px)}
 .sweets-digital-stage .sweets-wallpaper-pair img{max-height:clamp(220px,36svh,280px);width:auto;max-width:45%}
 .sweets-website-slide .sweets-site-preview>img{max-height:clamp(220px,36svh,280px)}
 .sweets-website-slide .sweets-web-details{gap:10px}
}
@media(min-width:701px) and (min-height:801px){.sweets-project .sweets-web,.sweets-merch-showcase{padding-top:32px;padding-bottom:32px}}
@media(min-width:701px) and (max-height:650px){
 .sweets-project .sweets-web,.sweets-merch-showcase{padding-top:16px;padding-bottom:16px}
 .sweets-web .sweets-section-heading,.sweets-merch-showcase .sweets-section-heading{margin-bottom:8px}
 .sweets-web .sweets-section-heading h2,.sweets-merch-showcase .sweets-section-heading h2{font-size:25px}
 .sweets-web .sweets-section-heading>p,.sweets-merch-showcase .sweets-section-heading>p{font-size:13px;line-height:1.4}
 .sweets-digital-tabs{margin-bottom:12px}
 .sweets-digital-stage .sweets-digital-copy h3{font-size:22px;margin:8px 0}
 .sweets-digital-stage .sweets-digital-copy p{font-size:13px;line-height:1.45;margin-bottom:8px}
 .sweets-digital-stage .sweets-digital-copy .meta{font-size:9px}
 .sweets-digital-stage .sweets-convo-shuffle{margin-top:4px;min-height:36px;padding:7px}
 .sweets-digital-stage .sweets-conversation figcaption{font-size:9px;margin-top:10px}
 .sweets-digital-stage .sweets-chat-messages{min-height:205px}
 .sweets-digital-stage .sweets-digital-chapter{gap:30px}
}
@media(min-width:701px) and (max-height:650px){.sweets-web .sweets-digital-tabs,.sweets-merch-showcase .sweets-digital-tabs{position:sticky;top:var(--project-sticky-height,0px);z-index:12;background:var(--paper)}}
/* Compact landscape laptops: keep all Online slides inside the usable viewport. */
@media(min-width:701px) and (max-height:650px){
 .sweets-project .sweets-web{padding-top:12px;padding-bottom:12px}
 .sweets-web .sweets-section-heading{grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:24px;margin-bottom:6px}
 .sweets-web .sweets-section-heading h2{font-size:23px;margin-top:12px}
 .sweets-web .sweets-section-heading>p{font-size:12px;line-height:1.4}
 .sweets-web .sweets-digital-tabs{margin-bottom:10px}
 .sweets-web .sweets-digital-tabs button{padding:8px 0}
 .sweets-web .sweets-digital-stage .sweets-digital-copy h3{font-size:20px;line-height:1.1;margin:8px 0}
 .sweets-web .sweets-digital-stage .sweets-digital-copy p{font-size:12px;line-height:1.45;margin-bottom:8px}
 .sweets-web .sweets-digital-stage .sweets-digital-copy .meta{font-size:9px;line-height:1.4}
 .sweets-web .sweets-digital-stage .sweets-conversation{padding:0 12px}
 .sweets-web .sweets-digital-stage .sweets-chat-messages{min-height:185px;gap:6px;grid-template-columns:minmax(0,1fr) 58px}
 .sweets-web .sweets-digital-stage .sweets-chat-sticker{width:58px;margin-top:10px}
 .sweets-web .sweets-digital-stage .sweets-chat-bubble{font-size:12px;padding:8px 12px}
 .sweets-web .sweets-digital-stage .sweets-chat-reply picture{width:54px;right:-40px;top:-14px}
 .sweets-web .sweets-digital-stage .sweets-conversation figcaption{margin-top:8px;font-size:8px}
 .sweets-web .sweets-website-slide .sweets-web-details{gap:8px}
 .sweets-web .sweets-website-slide .sweets-web-details p{font-size:12px;line-height:1.4;margin:4px 0 0}
 .sweets-web .sweets-site-preview>img{max-height:210px}
 .sweets-web .sweets-browser-label{padding:8px 10px;font-size:9px}
 .sweets-web .sweets-digital-stage .sweets-reaction-grid{max-width:210px}
 .sweets-web .sweets-digital-stage .sweets-wallpaper-pair img{max-height:210px}
}
/* Shared finishing details. */
@property --paper{syntax:'<color>';inherits:true;initial-value:#fff}
@property --ink{syntax:'<color>';inherits:true;initial-value:#0b0b0b}
@property --muted{syntax:'<color>';inherits:true;initial-value:#666}
@property --line{syntax:'<color>';inherits:true;initial-value:#ccc}
:root{transition:--paper 420ms ease,--ink 420ms ease,--muted 420ms ease,--line 420ms ease}
.theme-background-fade{position:absolute;inset:0;z-index:-1;pointer-events:none;border-radius:inherit}
.site-footer{display:flex;align-items:baseline;justify-content:space-between;gap:24px;flex-wrap:wrap;padding:35px 4vw 45px;border-top:1px solid var(--line);background:var(--paper);color:var(--ink)}
.site-footer nav{display:flex;gap:24px;flex-wrap:wrap}.site-footer a,.site-footer button{font:12px/1.5 'Courier New',monospace}.site-footer button{padding:8px 0;min-height:40px}.site-footer .meta{font-size:10px}
.archive-timeline{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));padding:48px 5vw 60px;gap:24px;background:var(--wash);border-block:1px solid var(--line)}
.archive-timeline a{position:relative;display:flex;flex-direction:column;gap:12px;padding-top:22px;border-top:1px solid var(--line)}
.archive-timeline a:before{content:'';position:absolute;top:-4px;left:0;width:7px;height:7px;background:var(--ink);border-radius:50%}.archive-timeline span,.archive-timeline small{font:11px/1.5 'Courier New',monospace}.archive-timeline strong{font-size:18px}.archive-timeline small{opacity:.7}
.sweets-digital-stage{overflow:clip;overflow-clip-margin:7px}
.media-loading{background-color:color-mix(in srgb,currentColor 7%,transparent)}
.media-loading:after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(100deg,transparent 20%,#ffffff12 48%,transparent 75%);background-size:220% 100%;animation:media-shimmer 1.6s linear infinite}
.media-pending{opacity:0}.media-host img{transition:opacity 220ms ease}.media-failure{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:18px;background:var(--paper);color:var(--ink);font:12px/1.6 'Courier New',monospace;text-align:center;z-index:3;cursor:pointer;min-height:90px}.media-error{min-height:110px}
@keyframes media-shimmer{from{background-position:120% 0}to{background-position:-120% 0}}
@media(max-width:700px){.archive-timeline{grid-template-columns:1fr 1fr;padding:32px 20px;gap:32px 20px}.site-footer{padding:28px 20px 38px;gap:18px}.site-footer>.meta{width:100%}.site-footer nav{gap:20px}.site-footer button{margin-left:auto}}
@media(prefers-reduced-motion:reduce){:root{transition:none}.media-loading:after{animation:none}.media-host img{transition:none}}
.built-demo{position:relative;margin:16px 0 0;background:#101114;aspect-ratio:16/9;overflow:hidden}.built-demo video{width:100%;height:100%;display:block;object-fit:contain}.built-demo>.meta{position:absolute;left:16px;bottom:14px;background:#101114bb;color:#fff;padding:8px;font-size:9px;pointer-events:none}.built-demo-toggle{position:absolute;right:16px;bottom:14px;width:44px;height:44px;background:#10111499;color:white;border:1px solid #ffffff55;backdrop-filter:blur(18px);font-size:16px}.built-demo-toggle:hover{background:#101114dd}.lightbox-photo-status{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:5;padding:16px 22px;background:#16171bd9;color:white;font:12px/1.5 'Courier New',monospace;backdrop-filter:blur(15px)}.lightbox-photo-status[hidden]{display:none}
.built-preview-wrap{position:relative}.built-demo{position:absolute;inset:32px 0 0;margin:0;aspect-ratio:auto;pointer-events:none;background:transparent}.built-demo video,.built-demo>.meta{opacity:0;transition:opacity .25s}.built-demo.is-playing video,.built-demo.is-playing>.meta{opacity:1}.built-demo-toggle{pointer-events:auto;z-index:4}.built-demo video{background:#101114}.built-demo:not(.is-playing) .built-demo-toggle{bottom:14px}
/* A continuous archive spine, with each year connected to its project. */
.archive-chronology{--archive-gutter:clamp(100px,12vw,180px);--archive-spine:calc(var(--archive-gutter) - 26px);position:relative;background:var(--paper);padding-block:32px}
.archive-chronology:before{content:'';position:absolute;left:var(--archive-spine);top:0;bottom:0;width:1px;background:var(--line)}
.archive-timeline-entry{position:relative;padding-left:var(--archive-gutter)}
.archive-year-marker{position:absolute;left:0;top:48px;width:var(--archive-gutter);height:40px;display:flex;align-items:center;padding-left:20px;color:var(--muted);font:11px/1.4 'Courier New',monospace;text-decoration:none;transition:color .3s}
.archive-year-marker:before{content:'';position:absolute;left:calc(var(--archive-spine) - 3px);top:16px;width:7px;height:7px;border-radius:50%;background:var(--muted);box-shadow:0 0 0 5px var(--paper);transition:background .3s,box-shadow .3s}
.archive-year-marker:after{content:'';position:absolute;left:var(--archive-spine);right:0;top:19px;height:1px;background:var(--line)}
.archive-year-marker span{max-width:calc(var(--archive-spine) - 26px)}
.archive-timeline-entry.is-current>.archive-year-marker,.archive-year-marker:hover{color:var(--ink)}
.archive-timeline-entry.is-current>.archive-year-marker:before{background:var(--ink);box-shadow:0 0 0 5px var(--paper),0 0 0 6px var(--line)}
.archive-year-branch:before{width:5px;height:5px;left:calc(var(--archive-spine) - 2px);top:17px}
.archive-chronology .archive-feature{margin:0;min-width:0}.archive-chronology .archive-feature-copy h2{font-size:clamp(28px,4vw,66px)}
@media(max-width:700px){
 .archive-chronology{--archive-gutter:28px;--archive-spine:14px;padding-block:0}
 .archive-timeline-entry{padding-top:54px}
 .archive-year-marker{top:7px;left:0;width:100%;height:40px;padding-left:40px;font-size:11px}
 .archive-year-marker span{max-width:none;background:var(--paper);padding-right:12px;position:relative;z-index:1}
 .archive-year-marker:after{right:auto;width:14px}
 .archive-chronology .archive-feature{padding-inline:22px;min-height:70svh}
 .archive-chronology .archive-feature-copy h2{font-size:clamp(28px,7vw,46px)}
}
@media(prefers-reduced-motion:reduce){.archive-year-marker,.archive-year-marker:before{transition:none}}
/* Overlay the chronology so archive projects retain the full canvas. */
.archive-chronology{--archive-gutter:clamp(86px,9vw,130px);--archive-spine:calc(var(--archive-gutter) - 20px);padding-block:0}
.archive-chronology:before{z-index:3;background:#ffffff55;pointer-events:none}
.archive-timeline-entry{padding:0;min-height:100svh}
.archive-chronology .archive-feature{min-height:100svh;padding-left:calc(var(--archive-gutter) + 30px)}
.archive-year-marker{z-index:4;color:#ffffffb3;text-shadow:0 1px 7px #000;top:38px;padding-left:16px}
.archive-year-marker:before{background:#ffffff99;box-shadow:0 0 0 5px #11111170}
.archive-year-marker:after{background:#ffffff55}
.archive-timeline-entry.is-current>.archive-year-marker,.archive-year-marker:hover{color:white}
.archive-timeline-entry.is-current>.archive-year-marker:before{background:white;box-shadow:0 0 0 5px #11111170,0 0 0 6px #ffffff55}
.archive-year-marker span{background:#11111166;backdrop-filter:blur(8px);padding:4px;border-radius:2px;max-width:calc(var(--archive-spine) - 20px)}
@media(max-width:700px){
 .archive-chronology{--archive-gutter:28px;--archive-spine:14px}
 .archive-timeline-entry{padding:0}
 .archive-year-marker{top:18px;width:100%;padding-left:34px}
 .archive-year-marker span{max-width:none;background:#11111166;padding:4px 7px}
 .archive-year-marker:after{width:14px}
 .archive-chronology .archive-feature{min-height:100svh;padding:80px 24px 100px 40px}
}
/* Dates share the first title line rather than the top edge of the image. */
.archive-chronology{--archive-gutter:clamp(140px,12vw,180px);--archive-spine:calc(var(--archive-gutter) - 24px)}
.archive-year-marker{font:normal clamp(14px,1.4vw,21px)/1.2 Akira,Arial,sans-serif;letter-spacing:.03em;color:white;text-shadow:0 2px 8px #000}
.archive-year-marker span{max-width:calc(var(--archive-spine) - 18px);padding:7px 5px;background:#101114a6;backdrop-filter:blur(12px)}
@media(max-width:700px){
 .archive-chronology{--archive-gutter:86px;--archive-spine:73px}
 .archive-year-marker{width:var(--archive-gutter);padding-left:8px;font-size:11px}
 .archive-year-marker span{max-width:62px;padding:6px 3px}
 .archive-year-marker:after{width:13px}
 .archive-chronology .archive-feature{padding-left:100px;padding-right:20px}
 .archive-chronology .archive-feature-copy h2{font-size:clamp(24px,6.3vw,40px)}
}
/* White display type over color and photography; black stays on pure white. */
.archive-year-marker span{background:none;backdrop-filter:none;-webkit-backdrop-filter:none;border-radius:0;text-shadow:0 1px 6px #0009,0 2px 12px #0005}
:root:not([data-light="mono"]) .statement,
:root:not([data-light="mono"]) .about-hero{color:#fff}
:root:not([data-light="mono"]) .statement h1,
:root:not([data-light="mono"]) .about-hero h1,
.gallery-hero h1,.photo-landing-hero h1,.podcast-hero h1,.twitch-hero h1{color:#fff;text-shadow:0 2px 12px #00000015}
:root:not([data-light="mono"]) .statement .meta,
:root:not([data-light="mono"]) .statement .eyebrow,
:root:not([data-light="mono"]) .statement .hero-next-step,
:root:not([data-light="mono"]) .about-hero .meta,
:root:not([data-light="mono"]) .about-hero .hero-next-step{color:#fff}

/* Appearance is intentionally limited to daylight, light, and dark. */
:root[data-appearance="light"],:root[data-appearance="dark"]{--dark-wash:#0b0b0b}
.nav:not(.glass){background:#090909;color:#fff;backdrop-filter:none;-webkit-backdrop-filter:none}
.nav:not(.glass) #theme-panel{background:#090909;color:#fff;border:1px solid #ffffff40;backdrop-filter:none;-webkit-backdrop-filter:none}
.nav:not(.glass) #theme-panel .theme-options button{border-color:#ffffff55;color:#fff;background:transparent}
.nav:not(.glass) #theme-panel .theme-options button[aria-pressed="true"]{background:#fff;color:#090909;border-color:#fff}
.nav:not(.glass) #theme-panel .panel-note{color:#c9c9c9}
#theme-panel .theme-options{grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:0}
#theme-panel .theme-options button{min-height:44px}

/* Specific deliverables, with room to scan each offer. */
.services-top>p{max-width:580px;font-size:16px;line-height:1.6}
.service-deliverables-label{display:block;margin-top:28px}
.service-copy ul{margin-top:12px}
.service-copy li strong{display:block;font-size:15px;font-weight:600;margin-bottom:6px}
.service-copy li>span{display:block;font-size:14px;line-height:1.6;color:var(--muted);max-width:540px}
.entrance-pending{opacity:0!important}
@media(prefers-reduced-motion:reduce){.entrance-pending{opacity:1!important}}
