/* Centered project gallery: fixed navigation and a continuous project page. */
.cp-layout{--edge:20px;--side-space:232px;--project-width:900px;--index-width:168px;--gallery-start:calc(4.2vw + var(--index-width) + 36px);background:#fff;overflow-x:clip}
.cp-layout #xp-page{display:contents}
.cp-header{position:fixed;inset:0 0 auto;z-index:8;display:flex;align-items:baseline;gap:38px;padding:18px var(--edge);background:transparent;font:400 14px/1.3 var(--sans)}
.cp-positioning{position:fixed;top:clamp(84px,13.5svh,132px);left:4.2vw;z-index:7;margin:0;font:400 18px/1.4 var(--sans);letter-spacing:-.02em}
.cp-home{font-size:15px;letter-spacing:-.025em;white-space:nowrap}
.cp-menu,.cp-header-right{display:flex;align-items:baseline;gap:26px}
.cp-menu a,.cp-header-right>a:first-child{color:#75756f}
.cp-menu a[aria-current],.cp-menu a:hover,.cp-header-right>a:hover{color:var(--ink)}
.cp-menu a[aria-current]{text-decoration:none}
.cp-header-right{margin-left:auto;gap:28px}
.cp-contact{color:var(--ink);white-space:nowrap}
.cp-index{position:fixed;left:4.2vw;top:50svh;z-index:5;width:var(--index-width);max-height:calc(50svh - 50px);background:transparent;scrollbar-width:thin}
.cp-layout #work-index{display:flex;flex-direction:column;gap:0;padding:0;overflow:visible}
.cp-index-heading,.cp-index-link{display:grid;grid-template-columns:24px minmax(0,1fr);column-gap:9px;text-transform:uppercase;text-align:left}
.cp-index-heading{margin-bottom:12px;color:#75756f;font:300 8px/1.5 var(--mono)}
.cp-index-link{padding:1px 0;color:#75756f;font:300 11px/1.55 var(--mono)}
.cp-index-year{font-size:9px;line-height:1.9;font-variant-numeric:tabular-nums}
.cp-index-link[aria-current],.cp-index-link:hover{color:var(--ink)}
.cp-index-link[aria-current]{font-weight:300}
.cp-index-link:hover{text-decoration:underline;text-underline-offset:3px}
.cp-project-shell.xp-project{position:relative;inset:auto;width:min(var(--project-width),calc(100% - var(--side-space)*2));height:auto;max-height:none;overflow:visible;margin:0 auto 100px;padding:0;background:#fff;color:var(--ink);outline:none}
.cp-stage{position:relative;min-height:100svh;display:flex;flex-direction:column;justify-content:center;align-items:center}
.cp-stage-media{position:relative;flex:none}
.cp-stage-media.is-single{width:min(100%,56vw,calc((100svh - 220px)*var(--primary-ratio)))}
.cp-stage-media.is-multiple{width:calc(100vw - var(--gallery-start));margin-left:var(--gallery-start);--media-height:clamp(300px,54svh,520px)}
.cp-stage-footer{position:absolute;top:calc(100% + 16px);left:0;right:0;display:flex;align-items:center;justify-content:space-between;gap:20px}
.cp-stage-media.is-multiple .cp-stage-footer{left:0;right:var(--edge)}
.cp-media-rail{display:flex;gap:20px;align-items:flex-start;position:relative;width:100%;scrollbar-width:thin;scrollbar-color:#bdbdb7 transparent;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x proximity;padding:0 0 8px}
.cp-media-rail.is-multiple{padding-left:0;padding-right:var(--edge);scroll-snap-type:none}
.cp-media{flex:none;width:calc(var(--media-ratio)*var(--media-height,360px));max-width:100%;scroll-snap-align:start}
.cp-media-rail.is-single{justify-content:center;padding:0;overflow:visible}
.cp-media-rail.is-single .cp-media{width:100%;max-width:100%}
.cp-media-frame{position:relative;aspect-ratio:var(--media-ratio);background:#f2f2ef}
.cp-media-frame>img,.cp-media-frame>video{display:block;width:100%;height:100%;object-fit:contain;background:transparent}
.cp-media figcaption{display:flex;justify-content:space-between;align-items:baseline;gap:16px;margin-top:12px;font:300 11px/1.6 var(--mono);color:var(--muted)}
.cp-media-rail.is-single figcaption{display:none}
.cp-media figcaption>span:last-child{white-space:nowrap}
.cp-rail-controls{display:flex;align-items:center;gap:22px;font:300 11px/1.5 var(--mono);color:var(--muted)}
.cp-rail-controls[hidden]{display:none}
.cp-rail-controls>div{display:flex;gap:12px}
.cp-rail-controls button{font:400 20px/1 var(--sans);min-width:36px;min-height:36px;color:var(--ink)}
.cp-rail-controls button:disabled{opacity:.25;cursor:default}
.cp-scroll-cue{font:300 12px/1.5 var(--mono);color:var(--ink);white-space:nowrap}
.cp-scroll-cue:hover{color:var(--ink);text-decoration:underline;text-underline-offset:4px}
.cp-process-cue{--cue-orange:#f47316;display:inline-flex;align-items:center;gap:7px;color:var(--ink)}
.cp-cue-label{font:300 13px/1.5 var(--mono)}
.cp-cue-word{display:inline-flex;white-space:nowrap}
.cp-cue-readable{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.cp-action-cue .cp-cue-label{font:inherit;line-height:1.5}
.cp-process-cue .cp-cue-label{font:inherit}
.hs-range-label .cp-range-cue{display:inline-block}
.hs-range-label>span>.cp-range-cue{display:inline-block}
.hs-note .cp-action-cue{--cue-orange:#f47316}
.cp-cue-letter{position:relative;display:inline-block}
.cp-cue-spark{position:absolute;left:50%;top:-.12em;width:4px;height:6px;opacity:0;pointer-events:none;background:#ffab4c;clip-path:polygon(50% 0,63% 35%,100% 50%,63% 63%,50% 100%,37% 63%,0 50%,37% 35%);filter:drop-shadow(0 0 3px #ff8426);transform-origin:center}
.cp-cue-arrow{display:inline-block;will-change:transform}
.cp-process-cue:focus-visible{outline:1px solid currentColor;outline-offset:5px}
.cp-project-intro{margin:0 auto 48px;padding-top:4px;max-width:100%;scroll-margin-top:190px}
.cp-project-heading{display:flex;justify-content:space-between;align-items:baseline;gap:24px;margin-bottom:16px}
.cp-project-heading h1{font:400 32px/1.15 var(--sans);letter-spacing:-.035em}
.cp-project-heading>span{font:300 11px/1.6 var(--mono);color:var(--muted)}
.cp-project-intro .xp-project-summary{font:400 16px/1.6 var(--sans);letter-spacing:-.01em;max-width:620px;margin:0;color:var(--ink)}
.cp-project-intro .xp-project-credit{font:300 11px/1.6 var(--mono);margin-top:12px;color:var(--muted)}
.cp-project-intro .xp-project-links{font:400 14px/1.4 var(--sans);margin-top:16px}
#hyperscale-process{scroll-margin-top:90px}
.cp-project-shell.xp-project .hs-notes{--section-space:72px;margin:48px 0 0;font-family:var(--sans)}
.cp-project-shell.xp-project .hs-toolkit{grid-template-columns:130px minmax(0,1fr);gap:0 24px;margin:0 0 var(--section-space);padding-bottom:24px}
.cp-project-shell.xp-project .hs-toolkit h2{font:400 20px/1.2 var(--sans);letter-spacing:-.025em}
.cp-project-shell.xp-project .hs-tool-list{gap:4px 20px}
.cp-project-shell.xp-project .hs-tool-list button{font:300 12px/1.5 var(--mono);color:var(--ink);min-height:32px}
.cp-project-shell.xp-project .hs-intro{max-width:620px;margin:0 auto var(--section-space)}
.cp-project-shell.xp-project .hs-intro h2{font:400 28px/1.2 var(--sans);letter-spacing:-.035em;margin-bottom:16px}
.cp-project-shell.xp-project .hs-intro p{font:400 16px/1.6 var(--sans);color:var(--ink);margin:0}
.cp-project-shell.xp-project .hs-intro p+p{margin-top:16px}
.cp-project-shell.xp-project .hs-loop{margin:24px 0}
.cp-project-shell.xp-project .hs-note{display:grid;grid-template-columns:190px minmax(0,1fr);gap:0 32px;margin-bottom:var(--section-space);scroll-margin-top:30px}
.cp-project-shell.xp-project .hs-note h2{grid-column:1;grid-row:1;font:400 28px/1.2 var(--sans);letter-spacing:-.035em;margin:0 0 16px}
.cp-project-shell.xp-project .hs-note h2>span{font:300 11px/1.6 var(--mono);color:var(--muted);margin:0 0 12px}
.cp-project-shell.xp-project .hs-note>.hs-note-copy{grid-column:2;grid-row:1;font:400 16px/1.6 var(--sans);color:var(--ink);max-width:620px}
.cp-project-shell.xp-project .hs-controls button{border:0;background:transparent;box-shadow:none;padding:6px 0;font:300 12px/1.5 var(--mono);color:var(--ink);min-height:40px}
.cp-project-shell.xp-project .hs-controls{gap:8px 24px;margin-top:16px}
.cp-project-shell.xp-project .hs-tabs{grid-column:1/-1;grid-row:2;margin:24px 0 16px;gap:24px}
.cp-project-shell.xp-project .hs-tabs button{font:300 12px/1.5 var(--mono);color:var(--muted);min-height:40px;padding:8px 0 10px}
.cp-project-shell.xp-project .hs-tabs button[aria-pressed=true]{color:var(--ink);border-bottom-color:var(--ink)}
.cp-project-shell.xp-project .hs-panel{grid-column:1/-1;grid-row:3}
.cp-project-shell.xp-project .hs-note .hs-note-copy p+p{margin-top:16px}
/* Secondary notes share a quieter scale; instructions remain easy to read. */
.cp-project-shell.xp-project .hs-notes .hs-hint{font:300 12px/1.6 var(--mono);color:var(--muted);margin:12px 0 0}
.cp-project-shell.xp-project .hs-film .hs-hint{font-size:11px}
.cp-project-shell.xp-project .hs-notes .hs-tool-detail{font:300 12px/1.6 var(--mono);color:var(--muted);min-height:40px;margin:12px 0 0}
.cp-project-shell.xp-project .hs-notes .hs-tool-detail:empty{display:none}
.cp-project-shell.xp-project .hs-range-label{font:300 12px/1.6 var(--mono);color:var(--ink);margin-top:16px}
.cp-project-shell.xp-project .hs-range-label input{accent-color:var(--ink)}
.cp-project-shell.xp-project .hs-layer-key{font:300 11px/1.6 var(--mono);color:var(--muted);margin-top:16px}
.cp-project-shell.xp-project .hs-loop figcaption{font:300 11px/1.6 var(--mono);color:var(--muted)}
.cp-project-shell.xp-project .hs-studio-invitation{font:300 12px/1.6 var(--mono);color:var(--muted);margin:0 0 16px}
.cp-project-shell .hs-phone-layer{position:absolute;inset:0;width:100%;height:100%;max-height:none;object-fit:contain;transform-origin:center;backface-visibility:hidden;outline:calc(var(--spread)*1px) solid #9998;box-shadow:calc(var(--spread)*7px) calc(var(--spread)*9px) calc(var(--spread)*20px) #2221}
.cp-project-shell.xp-project .hs-embers .hs-studio{grid-row:2;margin-top:24px}
.cp-project-shell.xp-project .hs-finish{margin-bottom:0}

.cp-project-end{display:flex;justify-content:space-between;gap:20px;margin-top:72px;padding-top:24px;border-top:1px solid var(--line);font:300 12px/1.5 var(--mono)}
.cp-options{position:fixed;right:var(--edge);bottom:18px;z-index:9;background:#fff;font:300 10px/1.4 var(--mono)}
.cp-options .xp-negative-toggle{color:var(--muted);padding:8px 0}
.cp-mobile-bar{display:none}
html[data-home-negative=true] .cp-layout{background:#000}
html[data-home-negative=true] :is(.cp-header,.cp-positioning,.cp-index,.cp-project-shell,.cp-options,.cp-mobile-bar,.xp-skip){filter:invert(1)}
@media(min-width:1001px) and (max-width:1200px){
 .cp-layout{--side-space:207px;--index-width:150px}
 .cp-header{gap:28px;font-size:13px}
 .cp-menu{gap:22px}
 .cp-index-link{font-size:10px}
 .cp-project-shell.xp-project .hs-note{grid-template-columns:160px minmax(0,1fr);gap:0 24px}
}
@media(min-width:761px) and (max-width:1000px){
 .cp-layout{--side-space:180px;--edge:18px;--index-width:130px}
 .cp-header{gap:24px;font-size:12px}
 .cp-home{font-size:14px}
 .cp-menu,.cp-header-right{gap:18px}
 .cp-index-link{font-size:10px}
 .cp-project-shell.xp-project .hs-note{display:block}
 .cp-project-shell.xp-project .hs-note>.hs-note-copy{margin-bottom:24px}
 .cp-project-shell.xp-project .hs-toolkit{display:block}
 .cp-project-shell.xp-project .hs-toolkit h2{margin-bottom:16px}
}
@media(max-width:760px){
 .cp-layout{--side-space:24px;--edge:24px;--gallery-start:0px;padding-top:220px}
 .cp-header{position:fixed;inset:54px 0 auto;padding:22px var(--edge) 12px;display:grid;grid-template-columns:1fr auto;gap:22px 20px}
 .cp-home{font-size:15px}
 .cp-menu{grid-row:2;grid-column:1/-1;font-size:13px;gap:24px}
 .cp-header-right{gap:20px;font-size:12px}
 .cp-positioning{position:fixed;top:142px;left:0;right:0;margin:0;padding:16px var(--edge) 14px;font-size:17px;text-wrap:balance}
 .cp-mobile-bar{display:flex;position:fixed;top:0;left:0;right:0;height:54px;align-items:center;padding:0 var(--edge);background:transparent;z-index:10}
 #index-toggle{display:flex;align-items:center;gap:16px;min-height:44px;font:300 11px/1.3 var(--mono)}
 #mobile-project-name{color:var(--muted);max-width:130px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
 .cp-options{top:8px;bottom:auto;z-index:11;font-size:10px}
 .cp-options .xp-negative-toggle{min-height:38px}
 .cp-index{display:none;top:54px;left:0;width:100%;max-height:calc(100svh - 54px);padding:22px var(--edge) 30px;overflow-y:auto;background:#fff;box-shadow:0 8px 15px #0000000c;z-index:9}
 .cp-index-open .cp-index{display:block}
 .cp-layout #work-index{max-width:700px;margin:auto}
 .cp-index-heading{max-width:700px;margin:0 auto 8px}
 .cp-index-link{min-height:40px;align-items:center;font-size:12px}
 .cp-stage{min-height:calc(100svh - 220px);padding:45px 0 95px}
 .cp-stage-media.is-single{width:min(100%,calc((100svh - 350px)*var(--primary-ratio)))}
 .cp-stage-media.is-multiple{--media-height:clamp(260px,44svh,380px)}
 .cp-media-rail.is-multiple{padding-left:var(--edge)}
 .cp-stage-media.is-multiple .cp-stage-footer{left:var(--edge)}
 .cp-scroll-cue{font-size:12px}
 .cp-rail-controls{gap:10px}
 .cp-project-shell.xp-project{margin-bottom:60px}
 .cp-project-intro,#hyperscale-process{scroll-margin-top:240px}
 .cp-project-shell.xp-project .hs-notes{--section-space:56px;margin-top:40px}
 .cp-project-shell.xp-project .hs-note,.cp-project-shell.xp-project .hs-toolkit{display:block}
 .cp-project-shell.xp-project .hs-toolkit h2{margin-bottom:16px}
}
@media(max-width:600px){
 .cp-layout{--side-space:18px;--edge:18px;padding-top:220px}
 .cp-header{gap:20px 12px}
 .cp-home{font-size:14px}
 .cp-header-right{font-size:11px;gap:12px}
 .cp-menu{font-size:12px;gap:24px}
 .cp-stage{min-height:calc(100svh - 235px)}
 .cp-media-rail{gap:16px}
 .cp-stage-media.is-single{width:100%}
 .cp-rail-controls>span{display:none}
 .cp-project-shell.xp-project .hs-tool-list{gap:4px 20px}
 #index-toggle{gap:10px;font-size:10px}
 #mobile-project-name{max-width:105px}
 .cp-options .xp-negative-toggle{gap:7px}
}
