/* 2026-09-14: one viewport, one scene. No document scrolling or section joins. */
html:has(body.home){height:100%;overflow:hidden;scroll-behavior:auto;scroll-padding:0}
body.home{height:100dvh;overflow:hidden;overscroll-behavior:none}
.home>main{position:fixed;inset:0;overflow:hidden;touch-action:none}
.home .scene{position:absolute;inset:0;width:100%;height:100dvh!important;min-height:0!important;border:0;visibility:hidden;pointer-events:none;z-index:0;overflow:hidden}
.home .scene.is-active{visibility:visible;pointer-events:auto;z-index:2}
.home .site-header{position:fixed;transition:none}
.home:not([data-scene="home"]) .site-header{visibility:hidden;pointer-events:none}
.home .scene-cover{position:fixed;inset:0;z-index:70;background:var(--paper) url('assets/snow-texture.svg');display:none;place-items:center;pointer-events:all}
.scene-cover .flame{display:none;width:min(52vw,540px);aspect-ratio:1.5}
.scene-cover[data-mode="fire"] .flame{display:block;animation:cover-flame .4s steps(3) infinite alternate}
.scene-cover[data-mode="paper"]{background-color:#e1dedf}
@keyframes cover-flame{to{transform:scale(1.15) rotate(5deg)}}
.page-controls{position:fixed;right:4%;bottom:18px;z-index:30;display:flex;align-items:center;gap:10px;background:var(--paper);padding:4px 8px;border:1px solid #4b535760;box-shadow:3px 3px #34394420}
.page-controls button{border:0;width:28px;height:30px;padding:0;font:22px var(--pixel)}
.page-controls button:hover:not(:disabled){background:var(--mint)}
.page-controls button:disabled{opacity:.25}
.page-count{font:11px var(--pixel);letter-spacing:1px}
.home .replay{right:4%;bottom:68px}
.home .back-top{right:200px;bottom:28px}
.home .hero-copy{top:21%}
.home .hero-rabbit{width:225px;height:auto;aspect-ratio:auto;right:3%;bottom:10%;object-fit:contain;clip-path:none!important;background:none;mix-blend-mode:normal;animation:none;transform:none}
.agent-avatar{width:45px;height:auto;object-fit:contain;image-rendering:pixelated;align-self:center;flex:none;mix-blend-mode:screen}
.agent-heading .agent-avatar{width:65px}
.terminal-inner{align-items:center}
.agent-heading>div:last-child>p:last-child{line-height:1.8}
.home .chase .landscape,.home .works .landscape{background-image:url('assets/snow-pixel.png');background-position:center;background-size:cover;transform:none;opacity:1;filter:none}
.home .chase:before{background:#f3efe4b3}
.home .chase .chapter-copy{max-width:none;right:6%;top:14%}
.home .chase .chapter-copy h2{font-size:clamp(22px,2.5vw,36px);line-height:1.55;font-weight:500}
.home .works-heading{top:30%}
.home .hat{transform:translateX(-50%);z-index:3}
.home .hat i{position:absolute;left:35%;top:87%;margin-top:-21px;width:84px;height:42px;padding:0;background:none!important;border:0;border-radius:0;box-shadow:none;transform-origin:0 50%;clip-path:none}
.home .hat i:nth-child(2){left:45%}.home .hat i:nth-child(3){left:55%}.home .hat i:nth-child(4){left:65%}
.hat i svg{display:block;width:100%;height:100%;overflow:visible}
.leaf-strings-v2{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:0}
.leaf-strings-v2 path{fill:none;stroke:#425542;stroke-width:1;stroke-dasharray:3 5;opacity:.55}
.home .leaf{transform:none}
.home .leaf:hover,.home .leaf:nth-child(even):hover{transform:translateY(-7px)}
.home .giant-snowball{transform:translateX(-50%);opacity:1}
.home .together{width:clamp(320px,40vw,600px);height:auto;aspect-ratio:auto;object-fit:contain;left:1%;bottom:8%;clip-path:none!important;background:none!important;transform:none;mix-blend-mode:normal}
.home .contact-copy{overflow:visible;clip-path:none}
.home .contact-copy>p strong{font-weight:500}
.wechat-qr{position:fixed;z-index:65;width:190px;padding:10px;background:#fffef7;border:1px solid var(--green);box-shadow:5px 5px #202a3433;pointer-events:none}
.wechat-qr[hidden]{display:none}
.wechat-qr img{display:block;width:100%;height:auto;image-rendering:auto}
.wechat-qr span{display:block;font:10px/1.5 var(--body);text-align:center;margin-top:6px}
[data-wechat][aria-expanded="true"]{background:#d5dfc960}
@media(max-width:1100px){.home .hero-rabbit{width:185px}.home .together{width:38vw;left:0}.home .contact-copy{left:33%;width:42%}}
@media(max-width:700px){
 .home .hero-copy{top:20%}.home .hero-rabbit{width:150px;right:0;bottom:10%}.home .buried-terminal{width:210px;left:9%;bottom:12%}
 .page-controls{right:13px;bottom:12px;gap:6px;padding:2px 5px}.page-controls button{font-size:19px;width:23px;height:26px}.page-count{font-size:9px}
 .home .scene-foot{max-width:120px}.home .scroll-cue{bottom:15px;left:43%;font-size:8px}.home .replay{right:16px;bottom:57px;font-size:11px}.home .back-top{left:7%;right:auto;bottom:23px;font-size:9px}
 .home .chase .chapter-copy{top:14%;left:8%;right:8%}.home .chase .chapter-copy .eyebrow{font-size:9px}.home .chase .chapter-copy h2{font-size:21px;line-height:1.7}
 .home .chase .scene-stamp span{font:9px var(--pixel);padding-top:4px}
 .home .works-heading{top:29%}.home .project-leaves{top:41%;left:10%;right:10%;gap:14px}.home .leaf{min-height:180px}.home .hat i{height:34px;margin-top:-17px}
 .home .contact-copy{left:7%;right:7%;width:auto;top:10%;padding:20px}.home .contact-copy h2{font-size:42px;margin-bottom:12px}.home .contact-copy>p:not(.eyebrow){font-size:11px;margin-bottom:12px}.home .copy-button{padding:10px 0}
 .home .together{left:1%;bottom:8%;width:53vw;max-width:260px}.home .poem-gift{width:190px;height:295px;right:2%;bottom:8%}.home .gift-front b{font-size:84px}.home .gift-front>span{font-size:11px}
 .home .poem-lines{font-size:10px;line-height:1.9}.home .gift-back{padding:13px 10px}.home .gift-back .tiny{font-size:8px}.wechat-qr{width:170px}
}
@media(max-height:740px) and (min-width:701px){.home .hero-copy{top:19%}.home h1{font-size:clamp(50px,5vw,76px);margin-bottom:16px}.home .hero-description{font-size:14px}.home .hero-actions{margin-top:15px}.home .hat{height:95px;width:255px;top:8%}.home .works-heading{top:29%}.home .works-heading h2{font-size:28px}.home .project-leaves{top:47%}.home .leaf{min-height:195px;padding-top:23px}.home .contact-copy{top:17%;padding:22px}.home .contact-copy h2{font-size:43px}.home .poem-gift{height:330px}.home .together{max-height:50vh;width:35vw}}
@media(max-height:740px) and (max-width:700px){.home .hero-copy{top:17%}.home h1{font-size:43px}.home .hero-description{font-size:11px;line-height:1.8}.home .hero-actions{gap:3px;margin-top:8px}.home .hero-actions .command{font-size:13px}.home .hero-actions .text-button{font-size:12px}.home .buried-terminal{width:180px;bottom:11%;max-height:112px}.home .hero-rabbit{width:130px;bottom:8%}.home .hat{top:9%;height:75px;width:200px}.home .works-heading{top:29%}.home .works-heading h2{font-size:24px}.home .project-leaves{top:41%;gap:10px}.home .leaf{min-height:150px;padding:22px 7px 8px}.home .leaf h3{font-size:17px}.home .leaf p{font-size:10px}.home .leaf svg{width:21px;height:21px;margin:0}.home .leaf .arrow{margin-top:4px}.home .contact-copy{top:10%;padding:16px 18px}.home .contact-copy h2{font-size:33px}.home .contact-copy .eyebrow{font-size:8px;margin-bottom:8px}.home .contact-copy>p:not(.eyebrow){font-size:10px;margin-bottom:6px}.home .copy-button{padding:8px 0}.home .contact-copy .copy-status{margin-top:2px;min-height:14px}.home .together{width:45vw;bottom:8%}.home .poem-gift{width:175px;height:260px;bottom:8%}.home .poem-lines{font-size:9px}.home .gift-front b{font-size:70px}}
@media(prefers-reduced-motion:reduce){.scene-cover{display:none!important}.home .scene{transform:none!important;opacity:1!important}}
.home .scene:not(.is-active){display:none}.home .scene.is-active{display:block}
/* Preserve the previous artwork until the owner authorizes scripted alpha extraction. */
.home .together.pending-cutout{aspect-ratio:1.5;height:auto;background-image:url('assets/characters.png')!important;background-size:200% 194%!important;background-position:100% 100%!important;clip-path:polygon(8% 46%,16% 36%,24% 33%,21% 24%,21% 16%,28% 8%,24% 6%,29% 0,46% 0,51% 9%,57% 10%,62% 17%,60% 27%,54% 33%,57% 42%,62% 37%,62% 26%,69% 24%,74% 32%,75% 41%,81% 47%,81% 57%,84% 60%,82% 68%,85% 74%,86% 84%,82% 90%,76% 94%,65% 97%,43% 99%,16% 96%,7% 89%,5% 77%,6% 60%)!important}

/* Owner review pass — 2026-09-14 */
.home .scene-stamp{background:rgba(43,47,58,.88);color:var(--paper);padding:8px 14px;border:1px solid rgba(243,239,228,.55);box-shadow:4px 4px 0 rgba(29,34,43,.2)}
.home .scene-stamp span{font-family:var(--pixel);font-weight:400}
.home .hero .scene-stamp{right:auto}
.home .hero:before{display:none}
.home .hero-copy{width:min(48%,590px);padding:20px 24px;background:rgba(243,239,228,.8);box-shadow:8px 8px 0 rgba(43,47,58,.12);clip-path:polygon(0 0,96% 0,100% 10%,98% 100%,0 97%)}
.home .hero-description{background:transparent;padding:0;margin-left:0}
.home .buried-terminal{left:50%;margin-left:-150px}
.home .hero-rabbit{top:50%;bottom:auto;animation:rabbit-mid 4s ease-in-out infinite}
@keyframes rabbit-mid{0%,100%{transform:translateY(-50%) rotate(-5deg)}50%{transform:translateY(calc(-50% - 8px)) rotate(2deg)}}
.home .chase:before{background:rgba(243,239,228,.8)}
.home .chase .chapter-copy h2{font-size:clamp(24px,2.7vw,38px);font-weight:700}
.home .replay{padding:7px 10px;background:rgba(243,239,228,.8);border:1px solid rgba(43,47,58,.45);box-shadow:3px 3px 0 rgba(43,47,58,.12)}
.home .works .scene-stamp span{font-size:15px;font-weight:700}
.home .together{clip-path:none!important;background:none!important;mix-blend-mode:normal;object-fit:contain}

.section-kicker{margin:0 0 10px!important;font:12px/1.5 var(--pixel)!important;letter-spacing:2px;color:var(--green)}
.case-intro:has(.case-hero-image){display:grid;grid-template-columns:minmax(0,1.55fr) minmax(260px,.65fr);gap:42px;align-items:center}
.case-hero-image{min-width:0;margin:0;align-self:stretch;display:flex;flex-direction:column;justify-content:center}
.case-hero-image button{display:block;width:100%;min-width:0;overflow:hidden;border:1px solid #777;background:#dedbd4;padding:8px;cursor:zoom-in}
.case-hero-image img{display:block;width:100%;max-height:520px;object-fit:contain}
.case-hero-image figcaption{margin-top:8px;font-size:11px;text-align:right}
.case-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:1px;margin:28px 0;background:#777b7b;border:1px solid #777b7b}
.case-cards article{background:rgba(243,239,228,.97);padding:22px;min-height:150px}
.case-cards h3{margin:0 0 12px;font:20px/1.45 var(--pixel)}
.case-cards p{margin:0;font-size:13px;line-height:1.9}
.case-table-wrap{overflow-x:auto;margin:28px 0;border:1px solid #777b7b;background:#faf8f0}
.case-table{width:100%;min-width:720px;border-collapse:collapse;font-size:13px;line-height:1.75}
.case-table th,.case-table td{padding:14px 16px;text-align:left;vertical-align:top;border-right:1px solid #c0c1bd;border-bottom:1px solid #c0c1bd}
.case-table th:last-child,.case-table td:last-child{border-right:0}.case-table tr:last-child td{border-bottom:0}
.case-table th{font-family:var(--pixel);font-weight:400;background:var(--green);color:var(--paper)}
.case-table tbody tr:nth-child(even) td{background:#d5dfc940}
.case-footnote{max-width:900px!important;padding:12px 15px;border-left:3px solid var(--red);background:#eadfd5;font-size:12px!important}
.case-timeline{display:grid;grid-template-columns:repeat(6,1fr);gap:1px;margin:30px 0;padding:0;list-style:none;background:#7f837f;border:1px solid #7f837f}
.case-timeline li{display:flex;flex-direction:column;gap:14px;min-height:145px;padding:18px 14px;background:#f7f3e9}
.case-timeline b{font:16px var(--pixel);color:var(--red)}
.case-timeline span{font-size:12px;line-height:1.7}
.case-results{display:grid;grid-template-columns:repeat(3,1fr);margin:30px 0;background:var(--ink);color:var(--paper)}
.case-results div{padding:24px;border-right:1px solid rgba(255,255,255,.25)}.case-results div:last-child{border:0}
.case-results strong{display:block;font:40px/1.1 var(--pixel);color:#d9dfad}.case-results span{font-size:12px}
.case-carousel{margin-top:30px;outline:none}.case-carousel:focus-visible{outline:3px solid var(--red);outline-offset:5px}
.case-carousel .evidence img{height:min(66vh,680px)}
.carousel-status{font:12px var(--pixel);color:var(--red)}
.carousel-controls{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:18px;margin-top:12px}
.carousel-controls>button{min-width:105px;padding:10px 13px;border:1px solid var(--ink);font:12px var(--pixel)}
.carousel-controls>button:hover{background:var(--ink);color:var(--paper)}
.carousel-dots{display:flex;justify-content:center;gap:7px;flex-wrap:wrap}.carousel-dots button{width:11px;height:11px;padding:0;border:1px solid var(--ink);background:transparent}.carousel-dots button[aria-current="true"]{background:var(--red)}
.case-link-card{display:block;margin-top:34px;padding:24px 26px;border:1px dashed var(--green);background:var(--mint);box-shadow:6px 6px 0 #3540351f}
.case-link-card h3{margin:7px 0;font:25px/1.45 var(--pixel)}.case-link-card p{max-width:760px}.case-link-card b{font:13px var(--pixel)}
/* 2026-09-14 owner review: clearer headers and compact scene labels. */
.home .site-header{background:#f3efe4cc;border-bottom:1px solid #39404d44;backdrop-filter:blur(2px)}
.home .scene-stamp.compact{right:auto;width:max-content;min-width:0}
.case-section>p,.case-footnote{white-space:pre-line}
@media(max-width:900px){.case-intro:has(.case-hero-image){grid-template-columns:1fr}.case-hero-image{max-width:620px}.case-timeline{grid-template-columns:repeat(3,1fr)}}
@media(max-width:700px){.home .hero-copy{width:86%;padding:14px 16px}.home .buried-terminal{left:50%;margin-left:-105px}.home .hero-rabbit{top:52%;right:-12px}.home .chase .chapter-copy h2{font-size:23px}.home .works .scene-stamp span{font-size:12px}.case-timeline{grid-template-columns:repeat(2,1fr)}.case-results{grid-template-columns:1fr}.case-results div{border-right:0;border-bottom:1px solid rgba(255,255,255,.25)}.carousel-controls{gap:8px}.carousel-controls>button{min-width:82px;font-size:10px}.case-carousel .evidence img{height:360px}}
