@font-face{font-family:"Strange Loops Serif SC";font-style:normal;font-weight:400 700;font-display:swap;src:url("assets/fonts/serif-sc.woff2") format("woff2")}
/* Unreleased rooms remain visible as a route preview, with an explicit status. */
.chapter-index li.unavailable{color:oklch(60% .003 100)}
.chapter-index li.unavailable em{color:inherit}
:root{--paper:oklch(92% .003 100);--ink:oklch(25% .003 100);--muted:oklch(48% .003 100);--red:oklch(33% .003 100);--line:oklch(44% .003 100 / .22);--ease:cubic-bezier(.22,1,.36,1)}
*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden}body{background:var(--paper);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;-webkit-font-smoothing:antialiased}button,a{-webkit-tap-highlight-color:transparent}button{color:inherit;font:inherit;border:0;background:none;cursor:pointer}button:focus-visible,a:focus-visible{outline:2px solid var(--red);outline-offset:7px}button:disabled{cursor:wait}a{color:inherit;text-decoration:none}#world{position:absolute;inset:0;touch-action:none;cursor:grab}#world.dragging{cursor:grabbing}#world canvas{display:block;width:100%;height:100%}.paper-grain{position:fixed;inset:0;pointer-events:none;opacity:.13;z-index:5;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' opacity='.35' filter='url(%23n)'/%3E%3C/svg%3E");mix-blend-mode:multiply}.vignette{position:fixed;inset:0;pointer-events:none;background:linear-gradient(90deg,rgba(231,231,230,.98),rgba(231,231,230,.86) 22%,rgba(231,231,230,.25) 43%,transparent 58%),linear-gradient(0deg,rgba(224,224,223,.94),transparent 22%);z-index:1;transition:opacity .9s var(--ease)}.masthead{position:absolute;z-index:8;top:0;left:0;width:100%;padding:34px 4.4%;display:flex;align-items:center;justify-content:space-between}.wordmark{display:flex;align-items:center;gap:11px}.wordmark>svg{width:34px;stroke:var(--ink);stroke-width:1.3;fill:none}.wordmark>span{font-family:"Strange Loops Serif SC","Songti SC",serif;font-size:23px;font-weight:600;letter-spacing:.14em;line-height:1.2}.wordmark-en{display:block;font-family:Arial,sans-serif;font-size:8px;font-weight:500;letter-spacing:.16em;margin-top:5px}.edition{font-size:10px;letter-spacing:.13em;opacity:.65;margin-left:-20px}.edition i{font-style:normal;margin:0 16px}.index-trigger{font-size:12px;letter-spacing:.1em;display:flex;align-items:center;gap:20px;padding:12px 0}.menu-icon{width:20px;display:grid;gap:5px}.menu-icon i{height:1px;background:var(--ink);width:20px;transition:transform .3s}.menu-icon i:last-child{width:13px;justify-self:end}.index-trigger:hover .menu-icon i:last-child{transform:translateX(-7px)}.intro{position:absolute;left:8.2%;top:24%;z-index:3;pointer-events:none;transition:opacity .5s,transform 1s var(--ease)}.eyebrow{font-size:11px;letter-spacing:.2em;display:flex;align-items:center;gap:12px;color:var(--muted);margin:0 0 28px}.little-line{width:22px;height:1px;background:var(--red)}.serif-slash{opacity:.5;margin:0 5px}h1{font-family:"Strange Loops Serif SC","Songti SC",serif;font-weight:500;font-size:clamp(54px,5.3vw,89px);line-height:1.36;letter-spacing:-.045em;margin:0 0 25px}.red{color:var(--red)}.intro-copy{font-size:13px;line-height:2.1;letter-spacing:.08em;color:var(--muted);margin:0 0 31px}.enter{pointer-events:auto;background:var(--ink);color:var(--paper);width:207px;height:56px;display:flex;justify-content:space-between;align-items:center;padding:0 24px;font-size:13px;letter-spacing:.13em;position:relative;transition:background .2s,transform .45s var(--ease)}.enter svg{width:34px;fill:none;stroke:currentColor;stroke-width:1.1;transition:transform .4s var(--ease)}.enter:hover{background:var(--red);transform:translateY(-2px)}.enter:hover svg{transform:translateX(5px)}.duration{font-size:10px;letter-spacing:.08em;color:var(--muted);margin:16px 0 0}.duration span{margin:0 7px}.object-caption{position:absolute;z-index:2;right:8.3%;top:21.5%;display:flex;gap:10px;align-items:flex-start;opacity:.66;font-size:11px;letter-spacing:.1em;pointer-events:none}.caption-cross{font-size:19px;font-weight:200;line-height:15px}.object-caption small{display:block;font-size:7px;letter-spacing:.14em;margin-top:6px}.caption-rule{width:45px;height:1px;background:var(--muted);margin:7px 0 0 7px}.view-tools{position:absolute;right:11.5%;bottom:19.5%;z-index:3;display:flex;align-items:center;gap:20px}.view-label{font-size:10px;letter-spacing:.1em;color:var(--muted)}.view-buttons{display:flex;gap:2px;border-bottom:1px solid var(--line)}.view-buttons button{position:relative;display:flex;align-items:center;gap:8px;padding:12px 15px 14px;font:28px Georgia,serif;transition:color .2s}.view-buttons button span{font:9px -apple-system,sans-serif;letter-spacing:.06em}.view-buttons button:after{content:"";position:absolute;bottom:-1px;left:0;width:100%;height:2px;background:var(--red);transform:scaleX(0);transition:transform .45s var(--ease)}.view-buttons button[aria-pressed=true]{color:var(--red)}.view-buttons button[aria-pressed=true]:after{transform:scaleX(1)}.view-buttons button:hover{color:var(--red)}.reset-view{font-size:23px;font-weight:200;width:35px;height:40px;color:var(--muted)}.drag-hint{position:absolute;right:17.5%;bottom:13.6%;z-index:3;display:flex;align-items:center;gap:9px;font-size:10px;letter-spacing:.13em;color:var(--muted);pointer-events:none}.drag-hint svg{width:18px;height:19px;stroke:currentColor;fill:none;stroke-width:1}.dialogue{position:absolute;left:8.2%;bottom:13.5%;z-index:3;display:flex;gap:17px;align-items:center;transition:opacity .4s,transform .5s var(--ease)}.speaker{font-size:10px;color:var(--red);letter-spacing:.14em;writing-mode:vertical-rl;border-right:1px solid var(--line);padding-right:11px}.dialogue p{font:14px "Strange Loops Serif SC","Songti SC",serif;letter-spacing:.06em;line-height:1.8;margin:0}.colophon{position:absolute;bottom:0;left:4.4%;right:4.4%;height:76px;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;z-index:8;font-size:9px;letter-spacing:.1em}.location{display:flex;gap:13px;align-items:center}.location b{font-size:13px;font-weight:400}.dedication{color:var(--muted);font-size:10px;letter-spacing:.18em}.motion-symbol{font-size:13px}.chapter-index{position:absolute;z-index:7;right:0;top:0;bottom:0;width:min(480px,100%);padding:125px 48px 80px;background:oklch(95% .003 100);box-shadow:-30px 0 80px #24252512;animation:panel-in .5s var(--ease)}.chapter-index[hidden]{display:none}.index-head{display:flex;justify-content:space-between;align-items:flex-start}.index-head p{font:26px "Strange Loops Serif SC","Songti SC",serif;margin:0 0 30px}.index-head small{display:block;font:8px Arial,sans-serif;letter-spacing:.14em;margin-top:10px;color:var(--muted)}.index-head button{font-size:30px;font-weight:200;line-height:1;padding:0 3px}.chapter-index ol{padding:0;list-style:none;margin:0}.chapter-index li{border-top:1px solid var(--line)}.chapter-row{display:grid;grid-template-columns:20px minmax(0,1fr) auto;align-items:center;width:100%;padding:17px 0;gap:12px;text-align:left;color:inherit}.chapter-row:is(button):hover strong{text-decoration:underline;text-underline-offset:4px}.chapter-row:focus-visible{outline-offset:3px}.chapter-position{position:relative;display:flex;align-items:center;min-width:20px}.chapter-marker{position:absolute;left:-20px;top:50%;transform:translateY(-50%);width:12px;height:12px}.current .chapter-marker{border:1px solid currentColor;border-radius:50%}.current .chapter-marker::after{content:"";position:absolute;inset:3px;border-radius:50%;background:currentColor}.chapter-number{font-size:10px;opacity:.5}.chapter-index li strong{font-size:13px;font-weight:400;letter-spacing:.06em}.chapter-index li em{font-size:9px;font-style:normal;margin-left:auto;color:var(--muted)}.chapter-index .current{color:var(--red)}.index-note{font-size:10px;line-height:2;color:var(--muted);margin-top:25px}.garden-intro{position:absolute;z-index:4;text-align:center;left:50%;top:50%;width:90%;transform:translate(-50%,-46%);animation:garden-in 1s var(--ease)}.garden-intro[hidden]{display:none}.garden-intro .eyebrow{justify-content:center}.garden-intro h2{font:500 clamp(40px,5vw,70px) "Strange Loops Serif SC","Songti SC",serif;letter-spacing:.12em;margin:12px 0 22px}.garden-intro>p:not(.eyebrow){font:14px "Strange Loops Serif SC","Songti SC",serif;letter-spacing:.1em}.garden-mi{font:70px Georgia,serif;letter-spacing:.1em;margin:40px auto 28px;color:var(--red)}.garden-mi span{color:var(--ink)}.garden-intro .garden-note{font:11px/2 -apple-system,sans-serif!important;color:var(--muted)}.back-lobby{margin-top:25px;font-size:12px;padding:14px;border-bottom:1px solid var(--line)}body.entering .intro,body.entering .object-caption,body.entering .view-tools,body.entering .drag-hint,body.entering .intro .dialogue{opacity:0;pointer-events:none}body.entering .intro{transform:translateY(-15px)}body.in-garden .intro,body.in-garden .object-caption,body.in-garden .view-tools,body.in-garden .drag-hint,body.in-garden .intro .dialogue{visibility:hidden}body.in-garden .vignette{opacity:.5}body.in-garden .edition{opacity:0}body.in-garden .dedication{opacity:0}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}#fallback{position:absolute;right:12%;top:34%;text-align:center;color:var(--muted);z-index:2;font-size:12px}#fallback>span{font:90px Georgia,serif;color:var(--red)}#fallback p:last-child{max-width:230px;line-height:2;margin:25px auto}#fallback[hidden]{display:none}@keyframes panel-in{from{opacity:0;transform:translateX(40px)}to{opacity:1;transform:translateX(0)}}@keyframes garden-in{from{opacity:0;transform:translate(-50%,-42%)}to{opacity:1;transform:translate(-50%,-46%)}}
@media(min-width:1600px){.intro{top:25%}.intro-copy{font-size:15px}.enter{width:226px;height:60px}.view-tools{right:15%}.drag-hint{right:20%}}
@media(max-height:760px) and (min-width:761px){.intro{top:21%}.eyebrow{margin-bottom:18px}h1{font-size:64px;margin-bottom:18px}.intro-copy{margin-bottom:22px}.dialogue{bottom:14%}.colophon{height:61px}.duration{margin-top:11px}.masthead{padding-top:25px}.view-tools{bottom:20%}}
@media(max-width:760px){.masthead{padding:23px 6%}.wordmark>span{font-size:20px}.wordmark>svg{width:30px}.wordmark-en{font-size:6px}.edition{display:none}.index-trigger{font-size:11px;gap:13px}.vignette{background:linear-gradient(180deg,rgba(231,231,230,.4),transparent 40%,rgba(231,231,230,.13) 60%,rgba(231,231,230,.97) 83%)}.intro{left:7%;top:15%;width:90%}.eyebrow{font-size:9px;margin-bottom:16px;gap:7px}.little-line{width:15px}h1{font-size:clamp(42px,8.7vw,65px);line-height:1.25;letter-spacing:-.04em;margin-bottom:16px}h1 br{display:none}.intro-copy{font-size:11px;line-height:1.9;margin-bottom:0}.enter{position:fixed;left:7%;bottom:16%;width:170px;height:49px;font-size:12px;padding:0 18px}.duration{position:fixed;left:7%;bottom:11.3%;font-size:8px;margin:0}.duration span{margin:0 3px}.object-caption{top:37%;right:7%;font-size:9px}.object-caption small{font-size:6px}.caption-rule{width:20px}.view-tools{right:6%;bottom:24%;gap:7px}.view-label{display:none}.view-buttons button{font-size:25px;padding:9px 13px}.reset-view{font-size:20px;width:25px}.drag-hint{right:7%;bottom:19%;font-size:8px;gap:6px}.drag-hint svg{width:13px}.dialogue{left:7%;bottom:31%;gap:10px}.dialogue p{font-size:11px;max-width:230px}.speaker{font-size:8px;padding-right:7px}.colophon{left:6%;right:6%;height:56px;font-size:7px}.dedication{display:none}.location{gap:8px}.location b{font-size:11px}.mobile-hide{display:none}.chapter-index{padding:115px 8% 75px}.chapter-row{padding:15px 0}.garden-intro h2{font-size:47px}.garden-intro .eyebrow{font-size:10px}.garden-intro{transform:translate(-50%,-48%)}#fallback{top:44%;right:15%}#fallback>span{font-size:55px}#fallback p{font-size:10px}}
@media(max-width:760px) and (max-height:700px){.intro{top:16%}.intro-copy{font-size:10px}.dialogue{bottom:30%}.object-caption{top:40%}.enter{bottom:15.5%;height:43px}.duration{bottom:10%}.view-tools{bottom:23%}.drag-hint{bottom:17.5%}.colophon{height:45px}h1{font-size:36px}.eyebrow{margin-bottom:12px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}

/* Monochrome gallery: let material, light, and AO carry the image. */
.paper-grain{display:none}.reset-view{min-width:44px;min-height:44px}.chapter-index{overflow-y:auto}.speaker{color:var(--muted)}
@media(max-width:760px){.view-buttons button{min-width:44px;min-height:44px}}

.light-tools{position:absolute;right:8.2%;top:27%;z-index:3;display:flex;align-items:center;gap:6px;color:var(--muted)}.light-tools>span{font-size:9px;letter-spacing:.12em;margin-right:10px}.light-tools button{font:13px Georgia,serif;min-width:39px;min-height:39px;display:flex;align-items:center;justify-content:center;gap:6px}.light-tools i{width:4px;height:4px;border-radius:50%;background:var(--ink)}.light-tools button[aria-pressed=false]{opacity:.35}.light-tools button[aria-pressed=false] i{background:transparent;border:1px solid var(--ink)}body.entering .light-tools{opacity:0;pointer-events:none}body.in-garden .light-tools{visibility:hidden}@media(max-width:760px){.light-tools{top:34%;right:6%;gap:1px}.light-tools button{min-width:34px;min-height:34px;font-size:12px}.object-caption{display:none}}


/* Language choices share the same scene and interaction state. */
.header-actions{display:flex;align-items:center;gap:27px}.language-switch{font-size:10px;letter-spacing:.1em;min-width:40px;min-height:40px;color:var(--muted)}.language-switch:hover{color:var(--ink)}.intro-copy{max-width:38ch}.dialogue p{max-width:38ch}.chapter-index li strong{flex:1;min-width:0;line-height:1.55}.chapter-index li em{max-width:110px;justify-self:end;text-align:right;line-height:1.6}html:not([lang="zh-CN"]) h1{font-family:Georgia,"Times New Roman",serif;letter-spacing:-.055em;font-weight:400}html:not([lang="zh-CN"]) .speaker{writing-mode:horizontal-tb;letter-spacing:.02em;font:11px Georgia,serif;min-width:52px}html:not([lang="zh-CN"]) .dialogue p{font-family:Georgia,serif;letter-spacing:.01em;max-width:38ch}html:not([lang="zh-CN"]) .chapter-index li strong{font-size:12px;letter-spacing:0}html:not([lang="zh-CN"]) .chapter-index li em{font-size:8px;max-width:90px}html:not([lang="zh-CN"]) .garden-intro h2{font-family:Georgia,serif;letter-spacing:.025em}html:not([lang="zh-CN"]) .edition{letter-spacing:.07em;font-size:9px}html:not([lang="zh-CN"]) .dedication{font-size:9px;letter-spacing:.04em}
@media(max-width:760px){.header-actions{gap:12px}.language-switch{font-size:10px;min-width:33px}.intro h1{font-size:clamp(30px,7.9vw,48px)}.intro-copy{max-width:35ch;font-size:10px}.duration{font-size:8px}.dialogue p{max-width:235px}.dialogue{max-width:85%}.chapter-index li em{max-width:80px}html:not([lang="zh-CN"]) .intro{top:11.5%}html:not([lang="zh-CN"]) .intro h1{font-size:42px;line-height:1.05;margin-bottom:16px}html:not([lang="zh-CN"]) .intro h1 br{display:block}html:not([lang="zh-CN"]) .eyebrow{letter-spacing:.09em;font-size:8px}html:not([lang="zh-CN"]) .intro-copy{font-size:10px;letter-spacing:0;max-width:37ch}html:not([lang="zh-CN"]) .dialogue{gap:10px;max-width:86%;bottom:30%}html:not([lang="zh-CN"]) .dialogue p{font-size:12px;line-height:1.6;max-width:240px}html:not([lang="zh-CN"]) .speaker{font-size:9px;min-width:44px}html:not([lang="zh-CN"]) .duration{font-size:7px;letter-spacing:0}html:not([lang="zh-CN"]) .duration span{margin:0 4px}html:not([lang="zh-CN"]) .drag-hint{font-size:8px;letter-spacing:0}html:not([lang="zh-CN"]) .garden-intro>p:not(.eyebrow){max-width:90%;margin-left:auto;margin-right:auto;line-height:1.8;letter-spacing:0}html:not([lang="zh-CN"]) .garden-intro h2{font-size:46px}html:not([lang="zh-CN"]) .index-head p{font-family:Georgia,serif}}
@media(max-width:760px) and (max-height:700px){html:not([lang="zh-CN"]) .intro{top:12%}html:not([lang="zh-CN"]) .intro h1{font-size:35px}.intro-copy{font-size:9px}.dialogue p{font-size:10px}html:not([lang="zh-CN"]) .dialogue p{font-size:11px}}

.enter>span{white-space:nowrap}.enter svg{flex-shrink:0}html:not([lang="zh-CN"]) .enter{letter-spacing:.04em}

/* First glance: one thought, one invitation, the sculpture. */
.intro{top:29%}.intro-copy{max-width:40ch}.dialogue[hidden]{display:none}.view-tools{right:15.5%;gap:14px}.drag-hint{right:18%;bottom:13.6%}
@media(max-height:760px) and (min-width:761px){.intro{top:27%}}
@media(max-width:760px){.intro{top:16%}.intro-copy{max-width:36ch}.view-tools{right:6%;gap:7px}.drag-hint{right:7%;bottom:19%}html:not([lang="zh-CN"]) .intro{top:16%}}
@media(max-width:760px) and (max-height:700px){.intro,html:not([lang="zh-CN"]) .intro{top:15%}}

/* Invisible, keyboard-accessible hit areas follow the two 3D companions. */
#companion-controls{position:absolute;inset:0;z-index:4;pointer-events:none}.character-button{position:absolute;top:0;left:0;width:44px;height:52px;pointer-events:auto;border-radius:3px}.character-button[hidden]{display:none}body.entering #companion-controls,body.in-garden #companion-controls{visibility:hidden}

/* The three existing view controls also introduce the names behind GEB. */
.view-tools{right:19%;gap:12px}.view-label{display:none}.view-buttons{gap:8px}.view-buttons button{flex-direction:column;justify-content:center;gap:7px;min-width:70px;padding:10px 14px 13px;line-height:1}.view-buttons button span{display:block;font:11px/1.2 -apple-system,BlinkMacSystemFont,"PingFang SC",sans-serif;letter-spacing:.06em;color:var(--muted)}.view-buttons button:hover span,.view-buttons button[aria-pressed=true] span{color:var(--ink)}
@media(max-width:760px){.view-tools{right:6%;bottom:23%;gap:6px}.view-buttons{gap:2px}.view-buttons button{min-width:62px;min-height:50px;padding:5px 10px 8px;font-size:23px;gap:4px}.view-buttons button span{font-size:10px;letter-spacing:.03em}.reset-view{align-self:center}}
@media(max-width:760px) and (max-height:700px){.dialogue,html:not([lang="zh-CN"]) .dialogue{bottom:31%}}

/* Every interaction shares a stable first line, regardless of speaker or wrapping. */
.book-link{pointer-events:auto;text-decoration:underline;text-decoration-color:var(--line);text-decoration-thickness:1px;text-underline-offset:.24em}
.book-link:hover,.book-link:focus-visible{color:var(--ink);text-decoration-color:currentColor}
.dialogue{display:grid;grid-template-columns:26px minmax(0,1fr);align-items:start;min-height:54px}
.speaker{width:26px;min-width:0;line-height:1.4}
html:not([lang="zh-CN"]) .dialogue{grid-template-columns:68px minmax(0,1fr)}
html:not([lang="zh-CN"]) .speaker{width:68px;min-width:0;line-height:1.4}
@media(max-width:760px){
  .dialogue,html:not([lang="zh-CN"]) .dialogue{min-height:44px;bottom:31%;column-gap:10px}
  .dialogue{grid-template-columns:20px minmax(0,1fr)}
  .speaker{width:20px}
  html:not([lang="zh-CN"]) .dialogue{grid-template-columns:52px minmax(0,1fr)}
  html:not([lang="zh-CN"]) .speaker{width:52px;min-width:0}
}

.sculpture-form{position:relative;display:flex;flex-wrap:wrap;align-items:center;gap:10px 12px;max-width:420px;margin-top:20px;pointer-events:auto}
.intro .dialogue{position:static;margin-top:20px;max-width:380px}
.sculpture-form input{width:88px;height:38px;padding:0 12px;border:1px solid var(--line);background:rgba(231,231,230,.82);font:18px Georgia,serif;letter-spacing:.28em;text-transform:uppercase;text-align:center;color:var(--ink)}
.sculpture-form input:focus{outline:2px solid var(--red);outline-offset:3px}
.sculpture-form button[type=submit]{height:38px;padding:0 16px;border:1px solid var(--line);background:transparent;color:var(--ink);font-size:11px;letter-spacing:.12em;transition:border-color .15s,background .15s}
.sculpture-form button[type=submit]:hover:not(:disabled){border-color:var(--ink);background:#24252506}
.sculpture-form button[type=submit]:disabled{opacity:.55}
.sculpture-download{position:relative;display:grid;place-items:center;flex-shrink:0;width:44px;height:44px;padding:0;color:var(--muted)}
.sculpture-download svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.3;stroke-linecap:round;stroke-linejoin:round}
.sculpture-download:hover:not(:disabled),.sculpture-download:focus-visible{color:var(--ink)}
.sculpture-download:disabled{opacity:.35;cursor:not-allowed}
.download-tooltip{position:absolute;bottom:calc(100% + 6px);left:50%;transform:translateX(-50%);padding:6px 9px;background:var(--ink);color:var(--paper);font-size:10px;white-space:nowrap;pointer-events:none;visibility:hidden}
.sculpture-download:hover:not(:disabled) .download-tooltip,.sculpture-download:focus-visible .download-tooltip{visibility:visible}
.light-tools .slot-letter,.view-buttons .slot-letter{font-weight:inherit}
.view-buttons .slot-letter{font:inherit}
.view-buttons .slot-name{font:9px -apple-system,sans-serif;letter-spacing:.06em}
body.entering .sculpture-form{opacity:0;pointer-events:none}
body.in-garden .sculpture-form{visibility:hidden}
@media(max-width:760px){
 .sculpture-form{position:fixed;left:7%;bottom:40%;max-width:86%;gap:8px;margin-top:0}
 .intro .dialogue{position:fixed;left:7%;margin-top:0;max-width:85%}
 .sculpture-form input{width:78px;height:34px;font-size:16px}
 .sculpture-form button[type=submit]{height:34px;padding:0 12px;font-size:10px}
}

@media(min-width:761px) and (max-height:650px){
 .intro{top:14%}
 .intro h1{font-size:44px;line-height:1.2;margin-bottom:12px}
 .intro-copy{margin-bottom:16px}
 .enter{height:44px}
 .sculpture-form,.intro .dialogue{margin-top:16px}
 .intro .dialogue{min-height:44px}
 .intro .dialogue p{font-size:12px}
}

/* Open palm: continuous outline and separate finger creases. */
.drag-hint svg{width:16px;height:16px;flex-shrink:0;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}

/* Native language picker keeps keyboard and mobile selection predictable. */
.language-switch{font-family:inherit;border:0;background:transparent;cursor:pointer;max-width:104px;padding:8px 0;letter-spacing:0}
.language-switch:focus-visible{outline:2px solid var(--ink);outline-offset:4px}
.language-switch option{background:var(--paper);color:var(--ink);font-family:system-ui,sans-serif}
html:not([lang="zh-CN"]){--exhibit-serif:Georgia,"Times New Roman",serif}
html[lang=ja]{--exhibit-serif:"Yu Mincho","Hiragino Mincho ProN","Noto Serif JP",serif}
html[lang=ko]{--exhibit-serif:"AppleMyungjo","Batang","Noto Serif KR",serif}
html[lang=ja] body{font-family:-apple-system,BlinkMacSystemFont,"Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif}
html[lang=ko] body{font-family:-apple-system,BlinkMacSystemFont,"Apple SD Gothic Neo","Malgun Gothic",sans-serif;word-break:keep-all;overflow-wrap:break-word}
html:not([lang="zh-CN"]) :is(h1,.dialogue p,.speaker,.garden h2,.garden-dialog h3,.index-head p){font-family:var(--exhibit-serif)}
html:not([lang="zh-CN"]) .intro{max-width:48%}
html:not([lang="zh-CN"]) h1{font-size:clamp(44px,5.1vw,82px)}
html:is([lang=ja],[lang=ko]) h1{line-height:1.4;letter-spacing:-.03em}
html:not([lang="zh-CN"]) .intro-copy{letter-spacing:.015em}
@media(max-width:760px){
 .language-switch{max-width:84px}.index-trigger{gap:10px}
 html:not([lang="zh-CN"]) .intro{max-width:85%}
 html:not([lang="zh-CN"]) .intro h1{font-size:clamp(29px,7.7vw,42px)}
 html:is([lang=ja],[lang=ko]) .intro h1{line-height:1.35}
}

/* Chapter marker: small paper-grey split flaps, animated only on chapter changes. */
.chapter-flaps{display:inline-flex;gap:2px;font-size:13px;line-height:1.6;letter-spacing:0;font-variant-numeric:tabular-nums}
.chapter-flaps[hidden]{display:none}
.chapter-digit.tick{font:inherit;line-height:inherit;letter-spacing:0}
.chapter-flaps .tick-flip{margin:0;min-width:1em;border-radius:0;letter-spacing:0;text-indent:0}
.chapter-flaps .tick-flip-panel{color:var(--ink);background:oklch(88.5% .002 110)}
.chapter-flaps .tick-flip-panel-front,.chapter-flaps .tick-flip-panel-back{box-shadow:none}
.chapter-flaps .tick-flip-panel-back:after{background:linear-gradient(to bottom,oklch(45% .003 110 / .18),transparent 1px)}
.chapter-flaps .tick-flip-card-shadow{display:none}
@media(max-width:760px){.chapter-flaps{font-size:11px}}
