*{box-sizing:border-box}
:root{color-scheme:light;--ink:#263a36;--muted:#647970;--orange:#d85421}
html{scrollbar-width:thin;scrollbar-color:#9aaaa4 #dbe2dc}
body{margin:0;background:#d8e1df;color:var(--ink);font-family:Arial,"Microsoft YaHei",sans-serif;-webkit-font-smoothing:antialiased}
button,a,input{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid var(--orange);outline-offset:6px}[hidden]{display:none!important}::selection{background:#d85421;color:white}
.site-nav{position:fixed;z-index:8;top:0;left:0;right:0;height:84px;display:flex;align-items:center;padding:0 4%;gap:8%;border-bottom:1px solid #344d3922;background:linear-gradient(#dce4e085,#dce4e000)}
.brand{border:0;background:none;padding:0;font-size:35px;font-weight:800;letter-spacing:-2.5px}.brand span{font-size:10px;vertical-align:top;letter-spacing:0;margin-left:4px}.nav-note{font-size:8px;line-height:1.7;letter-spacing:1.5px}.site-nav nav{display:flex;gap:28px;margin-left:auto}.site-nav nav button{border:0;background:none;padding:10px 0;font-size:12px}.site-nav nav button[aria-current]{color:var(--orange)}.site-nav nav button span{margin-left:10px}
#journey{height:290svh;min-height:1700px}.stage{position:fixed;inset:0;overflow:hidden;isolation:isolate}.stage-canvas{position:absolute;inset:0}.stage-canvas canvas{width:100%;height:100%;display:block;touch-action:pan-y}.loading{position:absolute;top:45%;left:0;right:0;text-align:center;font-size:12px}
.reading-wash{position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,transparent 35%,#edf0e85c 54%,#f0f1e9df 100%);opacity:0}
.home-copy{position:absolute;inset:0;pointer-events:none}.home-caption{position:absolute;top:119px;left:4%;font-size:10px;letter-spacing:1.4px;line-height:1.7}.home-caption p{font-size:12px;letter-spacing:0;line-height:1.9;margin-top:15px}.edition{position:absolute;top:122px;right:4%;text-align:right;font:8px/1.8 monospace;letter-spacing:1.1px}
.home-copy h1{position:absolute;top:43%;left:0;right:0;white-space:nowrap;margin:0;text-align:center;color:#fff;font-size:clamp(55px,8.8vw,156px);font-weight:600;letter-spacing:-.065em;line-height:1;pointer-events:none}.home-copy h1 em{font-style:normal}.mobile-break{display:none}
.object-labels{position:absolute;inset:0}.object-labels>[data-label]{position:absolute;transform:translate(-50%,-50%);background:#eaf0e6e8;border:1px solid #68837649;padding:9px 12px;min-width:95px;text-align:center;font-size:12px;white-space:nowrap;box-shadow:0 3px 10px #35513d05}.object-labels>button{pointer-events:auto}.object-labels small{font:9px monospace;color:#657d70;margin-right:10px}.object-labels [data-label="about"]{background:#f5f2e7f5}.object-labels button span{color:var(--orange);margin-left:12px}.object-labels>[data-label]::before{content:"";position:absolute;left:50%;top:-18px;height:17px;width:1px;background:#667f7470}
.scroll-invitation{position:absolute;bottom:102px;left:4%;border:0;background:none;display:flex;align-items:center;gap:17px;padding:0;text-align:left;pointer-events:auto;font-size:12px;line-height:1.6}.scroll-invitation small{display:block;font:7px/2 monospace;letter-spacing:1.4px;color:var(--muted)}.scroll-invitation b{font-size:19px;font-weight:400;margin-left:20px}.scroll-stroke{height:34px;width:2px;background:linear-gradient(transparent,#d85c28)}
.about-copy{position:absolute;z-index:3;top:50%;right:7%;width:37%;max-width:570px;transform:translateY(calc(-50% + 24px));opacity:0;pointer-events:none}.about-copy.is-readable{pointer-events:auto}.chapter-kicker{display:flex;align-items:center;gap:9px;font:9px monospace;letter-spacing:1.5px;color:#637569}.chapter-kicker i{height:7px;width:7px;border-radius:50%;background:#dc5925}.chapter-kicker span:last-child{margin-left:auto;font-size:8px}.about-copy h2{font-size:clamp(42px,4.8vw,76px);font-weight:500;line-height:1.15;letter-spacing:-3px;margin:27px 0 14px}.english-name{font-size:15px;margin:0 0 25px}.english-name span{font-size:10px;color:#667b6e;margin-left:7px}.biography{font-size:13px;line-height:2.1;color:#4f6458;margin:0 0 24px;text-align:justify}.education{border-top:1px solid #9cafa037;display:grid;grid-template-columns:1fr 1fr;gap:16px;padding-top:18px}.education div{display:flex;flex-direction:column;gap:7px}.education small{font:8px monospace;color:#7a8a7b}.education b{font-size:11px;font-weight:500}.education span{font-size:9px;color:#6f8073}.about-links{display:flex;gap:26px;margin-top:24px}.about-links a{font-size:12px;padding:8px 0;border-bottom:1px solid #7b927e}.about-links a span{margin-left:18px;color:var(--orange)}
.object-caption{position:absolute;z-index:2;left:8%;bottom:15%;opacity:0;pointer-events:none}.object-caption>span{font:9px monospace;letter-spacing:1.6px;color:#6e8277}.object-caption p{font-size:17px;margin:10px 0}.object-caption small{font:7px monospace;letter-spacing:1.3px;color:#6e8277}
.chapter-rail{position:absolute;z-index:3;right:26px;top:44%;display:flex;flex-direction:column;align-items:center;gap:13px;font:8px monospace;color:#647b6d}.chapter-rail i{width:1px;height:80px;background:#4c745d2b}.chapter-rail b{display:block;height:100%;background:#d85b29;transform-origin:top;transform:scaleY(0)}.journey-note{position:absolute;z-index:3;bottom:37px;left:4%;font-size:9px;color:#627568;max-width:290px}
.prototype-controls{position:fixed;z-index:10;bottom:18px;left:50%;transform:translateX(-50%);background:#263a33ed;color:#f0f0e5;border:1px solid #526c5b;box-shadow:0 6px 25px #1d372e22;border-radius:4px;display:flex;align-items:center;gap:16px;padding:12px 16px;font-size:9px;white-space:nowrap}.prototype-label{color:#b6c7b9}.prototype-controls output{min-width:97px;font-variant-numeric:tabular-nums}.prototype-controls input{width:95px;accent-color:#eaa077;height:3px;cursor:ew-resize}.prototype-controls button{border:0;padding:5px 0;background:none;font-size:9px;color:inherit}.prototype-controls button[aria-pressed=true]{color:#f8b78f}.prototype-controls a{border-left:1px solid #6c8270;padding-left:12px}.no-script{position:fixed;z-index:20;top:45%;left:10%;background:#fff;padding:30px;font-size:14px}
@media(max-width:1100px) and (min-width:801px){.journey-note{bottom:83px}.about-copy{width:39%;right:7%;}.about-copy h2{font-size:44px}.biography{font-size:12px;line-height:1.9}.english-name span{display:block;margin:8px 0 0}.education{gap:10px}.education b{font-size:10px}}
@media(max-width:800px){
 .site-nav{height:70px;padding:0 6%}.brand{font-size:28px}.nav-note{display:none}.site-nav nav{gap:21px}.site-nav nav button{font-size:11px}
 #journey{height:290svh;min-height:1800px}.home-caption{top:98px;left:6%;font-size:8px;letter-spacing:1px}.home-caption p{font-size:11px;line-height:1.7;margin-top:10px}.edition{top:101px;right:6%;font-size:6px}
 .home-copy h1{top:43%;left:6%;right:6%;text-align:left;font-size:15vw;line-height:.94;white-space:normal}.mobile-break{display:block}
 .object-labels>[data-label]{padding:7px 9px;min-width:80px;font-size:10px}.object-labels small{font-size:8px;margin-right:7px}.object-labels>[data-label]::before{height:10px;top:-11px}
 .scroll-invitation{left:6%;bottom:109px;font-size:10px}.scroll-invitation small{font-size:6px}.scroll-invitation b{margin-left:0}.scroll-stroke{height:28px}
 .reading-wash{background:linear-gradient(0deg,#eff1e9 0,#eff1e9ed 35%,#eff1e9bf 50%,transparent 64%)}
 .about-copy{top:47%;right:7%;width:86%;max-width:none;transform:none}.about-copy h2{font-size:36px;letter-spacing:-1.8px;line-height:1.1;margin:15px 0 11px}.about-copy h2 br{display:none}.chapter-kicker{font-size:8px}.english-name{font-size:13px;margin:0 0 13px}.english-name span{font-size:8px;margin-left:4px}.biography{font-size:11px;line-height:1.95;margin-bottom:14px}.education{padding-top:13px;gap:12px}.education div{gap:5px}.education small{font-size:7px}.education b{font-size:10px}.education span{font-size:8px}.about-links{margin-top:13px;gap:26px}.about-links a{font-size:10px;padding:7px 0}.object-caption{left:7%;bottom:auto;top:40%}.object-caption>span{font-size:7px}.object-caption p{font-size:12px;margin:6px 0}.object-caption small{display:none}.chapter-rail{right:13px;top:27%;font-size:7px}.chapter-rail i{height:53px}.journey-note{bottom:79px;left:6%;font-size:8px}
 .prototype-controls{bottom:12px;width:calc(100% - 24px);max-width:550px;justify-content:space-between;padding:11px 12px;gap:9px;font-size:8px}.prototype-controls output{min-width:83px}.prototype-controls input{width:62px}.prototype-controls button{font-size:8px}.prototype-controls a,.prototype-label{display:none}
}
@media(max-width:800px) and (max-height:740px){.about-copy{top:43%}.about-copy h2{font-size:30px;margin:12px 0 9px}.biography{font-size:10px;line-height:1.85;margin-bottom:10px}.education{padding-top:10px}.education small{display:none}.english-name{margin-bottom:10px}.about-links{margin-top:8px}.object-caption{top:37%}.journey-note{bottom:71px}.home-caption p{display:none}}
@media(max-height:570px){.about-copy h2{font-size:32px;margin:12px 0}.biography{font-size:10px;line-height:1.75;margin-bottom:8px}.english-name{margin-bottom:10px}.education{display:none}.about-links{margin-top:10px}.object-caption{display:none}.home-caption p{display:none}.journey-note{display:none}}
.scene-unavailable .object-labels{display:none}.scene-unavailable .loading{top:25%;font-size:11px}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* Prototype 04: one continuous timeline, with a still reading interval in every chapter. */
#journey{height:900svh;min-height:5400px}
.chapter-copy:not(.is-readable){pointer-events:none}
.chapter-intro{font-size:12px;line-height:1.9;color:#5a6e60;margin:0 0 22px}
.projects-copy h2{font-size:clamp(38px,4.4vw,66px);margin:22px 0 15px}
.project-list{border-top:1px solid #9cafa050}
.project-row{display:grid;grid-template-columns:22px 1fr 18px;align-items:center;gap:13px;padding:17px 0;border-bottom:1px solid #9cafa04d}
.row-number{font:9px monospace;color:#7d8c7d;align-self:start;padding-top:5px}
.project-row h3{font-size:19px;font-weight:500;margin:0 0 6px;line-height:1.25;letter-spacing:-.35px}
.project-row p{font-size:10px;line-height:1.6;margin:0;color:#6a7d6c}
.project-row>b{font-weight:400;font-size:19px;color:#8a997e}.project-row:hover h3,.project-row:hover>b{color:var(--orange)}
.blog-list{border-top:1px solid #9cafa055;border-bottom:1px solid #9cafa055;margin-top:28px}
.blog-row{display:block;padding:24px 0}.blog-row time{font:9px monospace;color:#798a75}.blog-row h3{font-size:24px;line-height:1.65;font-weight:500;margin:15px 0}.blog-row h3 span{color:var(--orange);white-space:nowrap}.blog-row p{font:9px monospace;color:#718269;letter-spacing:1px;margin:0}.blog-row:hover h3{color:var(--orange)}
.contact-details{border-top:1px solid #9cafa055;padding-top:25px;margin-top:30px}.contact-name{font-size:13px;color:#5a6e57}.contact-email{display:block;overflow-wrap:anywhere;font-size:clamp(18px,2vw,27px);letter-spacing:-.6px;margin:20px 0 12px}.contact-email:hover{color:var(--orange)}
.chapter-rail{top:37%;gap:12px;right:23px}.chapter-rail>i{position:absolute;left:50%;top:0;bottom:0;height:auto;z-index:-1}.chapter-rail button{border:1px solid transparent;border-radius:50%;background:#dfe5dc;color:#7b8d7d;min-width:25px;height:25px;padding:4px;font:8px monospace}.chapter-rail button[aria-current]{background:#c96635;color:#fff;border-color:#bc572b}.chapter-rail button:hover{border-color:#bb8a6a}.chapter-rail button:focus-visible{outline-offset:2px}
.next-chapter{position:absolute;right:5%;bottom:88px;z-index:4;background:none;border:0;border-bottom:1px solid #879c8755;padding:7px 0;font-size:10px;letter-spacing:.2px;color:#4e6a51}.next-chapter:hover{color:var(--orange)}
.prototype-controls output{min-width:119px}
@media(max-width:1100px) and (min-width:801px){.projects-copy h2{font-size:40px}.project-row{gap:10px;padding:13px 0}.project-row h3{font-size:17px}.project-row p{font-size:9px}.chapter-intro{font-size:11px}.chapter-rail{right:15px}}
@media(max-width:800px){
 #journey{height:900svh;min-height:4800px}.site-nav{gap:12px}.site-nav nav{gap:14px}.site-nav nav button{font-size:10px}.site-nav nav button span{margin-left:0}
 .chapter-rail{top:25%;right:9px;gap:6px}.chapter-rail button{min-width:21px;height:21px;font-size:7px;padding:3px}
 .projects-copy{top:44%}.projects-copy h2{font-size:30px;margin:13px 0 11px}.chapter-intro{font-size:10px;line-height:1.8;margin-bottom:12px}
 .project-row{padding:10px 0;grid-template-columns:16px 1fr 16px;gap:10px}.row-number{font-size:7px;padding-top:3px}.project-row h3{font-size:15px;margin-bottom:4px}.project-row p{font-size:9px;line-height:1.45}.project-row>b{font-size:16px}
 .blog-copy h2,.contact-copy h2{font-size:32px}.blog-list{margin-top:18px}.blog-row{padding:19px 0}.blog-row time{font-size:8px}.blog-row h3{font-size:19px;line-height:1.65;margin:12px 0}.blog-row p{font-size:8px}
 .contact-details{padding-top:17px;margin-top:20px}.contact-name{font-size:11px}.contact-email{font-size:18px;letter-spacing:-.5px;margin:16px 0 10px}
 .prototype-controls output{min-width:101px;font-size:7px}.prototype-controls input{width:55px}.journey-note{bottom:76px;font-size:8px;max-width:220px}.next-chapter{right:6%;bottom:72px;font-size:8px}
}
@media(max-width:800px) and (max-height:740px){.projects-copy{top:42%}.projects-copy h2{font-size:27px;margin:10px 0}.project-row{padding:7px 0}.project-row h3{font-size:14px;margin-bottom:3px}.project-row p{font-size:8px}.chapter-intro{font-size:9px;margin-bottom:10px}.blog-copy h2,.contact-copy h2{font-size:28px}.next-chapter{bottom:68px}.journey-note{bottom:70px;max-width:190px}}
@media(max-width:370px){.site-nav nav{gap:10px}.site-nav nav button{font-size:9px}.brand{font-size:26px}.prototype-controls{gap:6px;padding-inline:10px}.prototype-controls output{min-width:89px}.prototype-controls input{width:42px}.contact-email{font-size:16px}.object-labels>[data-label]{min-width:75px;padding-inline:7px}}

/* Short cycle: half the previous scroll distance, with a matching home state at each end. */
html{scrollbar-width:none;overscroll-behavior-y:none}html::-webkit-scrollbar{display:none}
#journey{height:500svh;min-height:0}
.journey-note{max-width:310px}
@media(max-width:800px){#journey{height:500svh;min-height:0}.journey-note{max-width:200px}.next-chapter{font-size:7px}.prototype-controls output{min-width:110px}}
@media(max-width:370px){.prototype-controls output{min-width:98px}.prototype-controls input{width:35px}.journey-note{max-width:172px;font-size:7px}}
@media(max-width:800px){.object-caption{display:none}}

/* Prototype 06: warm low-key studio, amber practical light and cool metal edges. */
:root{color-scheme:dark;--ink:#e8dfcd;--muted:#afa58f;--orange:#e5a069}
body{background:#302e2b}
.site-nav{border-color:#cdb78d24;background:linear-gradient(#242522b3,#24252200)}
.reading-wash{background:linear-gradient(90deg,transparent 30%,#27282069 52%,#252720ed 100%)}
.stage-canvas::after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse at 43% 43%,transparent 30%,#10181624 75%,#10151363 100%)}
.home-copy h1{color:#f4ecdf;text-shadow:0 2px 25px #1f191429}
.home-caption,.edition{color:#c2b6a0}
.object-labels>[data-label],.object-labels>[data-label="about"]{background:#33362eee;border-color:#ac987950;color:#eee3d0;box-shadow:0 4px 16px #10161325}
.object-labels small{color:#baaa8c}.object-labels>[data-label]::before{background:#c7b6976b}
.chapter-kicker,.english-name span,.education small,.education span,.object-caption>span,.object-caption small,.chapter-rail,.journey-note{color:#b4aa94}
.biography,.chapter-intro,.project-row p,.contact-name{color:#c4bda9}
.row-number,.project-row>b,.blog-row time,.blog-row p{color:#b5ac96}
.education,.project-list,.project-row,.blog-list,.contact-details{border-color:#c7b58d30}
.about-links a{border-color:#b5a17b75}.next-chapter{color:#d6c5a6;border-color:#b8a07755}
.chapter-rail button{background:#34392f;color:#bfb298}.chapter-rail button[aria-current]{background:#b57743;color:#fff0d8;border-color:#dba86d}
.chapter-rail i{background:#b29c6c2e}.chapter-rail b{background:#c88a4e}
.prototype-controls{background:#252b24f0;border-color:#736d5269;color:#e2d9c4;box-shadow:0 6px 25px #12161138}.prototype-label{color:#bdaf94}
@media(max-width:800px){.reading-wash{background:linear-gradient(0deg,#292c25 0,#292c25f7 36%,#292c25c9 49%,transparent 66%)}}

/* The model surfaces carry the visible labels; keyboard users retain equivalent controls. */
.object-caption{display:none}
.scene-actions>a,.scene-actions>button{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;pointer-events:auto}
.scene-actions>a:focus-visible,.scene-actions>button:focus-visible{z-index:9;left:5%;top:210px;width:auto;height:auto;clip-path:none;background:#293029;border:1px solid #b6986d;padding:12px 16px;font-size:12px;color:#f3e5c9}
.site-nav{gap:5%}.lighting-toggle{font-size:10px;white-space:nowrap;background:none;border:1px solid #b4a58355;border-radius:20px;padding:7px 10px;margin-left:0}
body,.site-nav,.home-caption,.edition,.chapter-copy,.chapter-copy p,.chapter-copy a,.chapter-rail button,.object-caption,.journey-note,.next-chapter{transition:color .7s ease,border-color .7s ease,background-color .7s ease}
html[data-light=day]{color-scheme:light;--ink:#343c2d;--muted:#59664d;--orange:#9a4f27}
html[data-light=day] body{background:#989e85}
html[data-light=day] .site-nav{background:linear-gradient(#bbc0a699,#bbc0a600);border-color:#45503a25}
html[data-light=day] .reading-wash{background:linear-gradient(90deg,transparent 30%,#d3d2ae55 52%,#dedbc2eb 100%)}
html[data-light=day] .stage-canvas::after{background:radial-gradient(ellipse at 22% 10%,#fff3bd17,transparent 57%),radial-gradient(ellipse at 45% 40%,transparent 40%,#343c2926 100%)}
html[data-light=day] .home-caption,html[data-light=day] .edition{color:#3f4a34}
html[data-light=day] .home-copy h1{color:#fff9de;text-shadow:0 2px 24px #5a644315}
html[data-light=day] :is(.chapter-kicker,.english-name span,.education small,.education span,.object-caption>span,.object-caption small,.chapter-rail,.journey-note){color:#59684b}
html[data-light=day] :is(.biography,.chapter-intro,.project-row p,.contact-name){color:#45533c}
html[data-light=day] :is(.row-number,.project-row>b,.blog-row time,.blog-row p){color:#5a664c}
html[data-light=day] :is(.education,.project-list,.project-row,.blog-list,.contact-details){border-color:#5c6b4435}
html[data-light=day] .about-links a{border-color:#65744d75}html[data-light=day] .next-chapter{color:#4b5b3c;border-color:#78805b65}
html[data-light=day] .chapter-rail button{background:#aab496;color:#415332}html[data-light=day] .chapter-rail button[aria-current]{background:#8d643d;color:#fff4d7}
@media(max-width:1000px){.site-nav{gap:3%}.nav-note{display:none}.site-nav nav{gap:20px}}
@media(max-width:800px){.site-nav{gap:9px}.site-nav nav{gap:11px}.lighting-toggle{font-size:8px;padding:6px 8px}html[data-light=day] .reading-wash{background:linear-gradient(0deg,#d4d7bc 0,#d4d7bcf7 36%,#d4d7bcc9 49%,transparent 66%)}}
@media(max-width:400px){.site-nav{padding-inline:5%}.brand{font-size:26px}.site-nav nav{gap:8px}.site-nav nav button{font-size:9px}.lighting-toggle{padding:5px 6px;font-size:7px}}
@media(prefers-reduced-motion:reduce){body,.site-nav,.home-caption,.edition,.chapter-copy,.chapter-copy p,.chapter-copy a,.chapter-rail button,.object-caption,.journey-note,.next-chapter{transition:none}}

/* Prototype 08: a quiet opening; the island appears when the visitor enters the journey. */
.home-copy h1{top:43%;left:4%;right:4%;font-size:clamp(60px,10.8vw,166px);text-align:center;white-space:nowrap;letter-spacing:-.06em}
.scroll-invitation{left:50%;bottom:max(34px,env(safe-area-inset-bottom));transform:translateX(-50%);gap:14px;font-size:11px;letter-spacing:1px}.scroll-invitation b{margin:0;font-size:18px}
.journey-note{display:none}
.stage:focus{outline:none}
.reading-wash{display:none}.stage-canvas::after{opacity:.45}
.scroll-indicator{position:absolute;z-index:5;left:50%;bottom:max(25px,env(safe-area-inset-bottom));transform:translateX(-50%);display:flex;align-items:center;gap:14px;margin:0;font-size:10px;letter-spacing:.8px;color:var(--ink);opacity:.7;pointer-events:none;white-space:nowrap}.scroll-indicator>span:last-child{font-size:17px;color:var(--orange)}
.lamp-caption,.record-caption{position:absolute;z-index:5;display:flex;flex-direction:column;align-items:center;gap:6px;width:108px;margin:0;pointer-events:none;opacity:var(--dock-weight,0);font:9px/1.25 Consolas,"Microsoft YaHei",monospace;color:var(--ink);letter-spacing:.5px}.lamp-caption{left:12px;top:191px}.record-caption{right:16px;bottom:18px}.lamp-caption small,.record-caption small{font-size:7px;letter-spacing:.2px;color:var(--muted)}
.chapter-copy h2{white-space:pre-line}
/* The final project keeps a clear pocket for the persistent record player. */
@media(max-width:1100px){.projects-copy .project-row:last-child{margin-right:102px}}
@media(max-width:800px){.projects-copy .project-row:last-child{margin-right:74px}}
@media(max-width:370px) and (max-height:740px){.project-row{padding-block:5px}}
.scene-unavailable .scene-actions{position:absolute;z-index:9;bottom:65px;left:5%;right:5%;display:flex;justify-content:center;gap:10px;flex-wrap:wrap}.scene-unavailable .scene-actions>a,.scene-unavailable .scene-actions>button{position:static;width:auto;height:auto;clip-path:none;padding:9px 12px;background:#262924;color:#e1b17a;border:1px solid #aa96643b;border-radius:4px;font-size:11px}.scene-unavailable #lamp-control,.scene-unavailable #record-control{display:none}
.island-languages{display:flex;gap:2px;align-items:center}.island-languages button{border:1px solid transparent;border-radius:4px;background:none;color:var(--terminal-muted);padding:4px 6px;font:9px/1.2 Consolas,"Microsoft YaHei",monospace}.island-languages button[aria-pressed=true]{color:var(--terminal-amber);border-color:var(--terminal-line);background:#dda5690d}
@media(max-width:800px){.lamp-caption{left:4px;top:174px;width:78px}.record-caption{right:3px;bottom:15px;width:76px}.lamp-caption,.record-caption{font-size:8px;letter-spacing:.1px}.lamp-caption small,.record-caption small{font-size:6px}.scroll-indicator{font-size:9px;bottom:max(23px,env(safe-area-inset-bottom))}.chapter-copy h2{white-space:normal}}
/* Amber terminal: flat surfaces, restrained phosphor type and one progress line. */
.journey-island{--terminal-amber:#dda569;--terminal-muted:#aba28d;--terminal-line:#c4a27526;--read-progress:0%;position:fixed;z-index:12;top:max(18px,env(safe-area-inset-top));left:50%;width:362px;max-width:calc(100% - 24px);height:64px;overflow:hidden;border:1px solid #ae986126;border-radius:30px;background:#1d1e1b;color:var(--terminal-amber);box-shadow:0 8px 24px #11190f28;font-family:"SFMono-Regular",Consolas,"Liberation Mono","Microsoft YaHei",monospace;opacity:0;visibility:hidden;pointer-events:none;transform:translate(-50%,-90px) scale(.92);transition:transform .5s cubic-bezier(.22,1,.36,1),opacity .25s ease,visibility .25s,width .4s cubic-bezier(.22,1,.36,1),height .4s cubic-bezier(.22,1,.36,1),border-radius .4s}
.journey-island.is-visible{opacity:1;visibility:visible;pointer-events:auto;transform:translate(-50%,0) scale(1)}
.journey-island.is-expanded{width:430px;height:224px;border-radius:24px}
.island-summary{height:62px;display:flex;align-items:center;padding:8px 19px;gap:12px}
.island-toggle{display:flex;align-items:center;gap:12px;flex:1;min-width:0;height:42px;padding:0;border:0;background:none;color:inherit;text-align:left;border-radius:8px;font-family:inherit}
.island-meter{display:flex;align-items:baseline;justify-content:flex-end;gap:2px;width:38px;flex:none;font-size:15px;font-weight:400;letter-spacing:-.4px;font-variant-numeric:tabular-nums;color:var(--terminal-amber)}
.island-meter small{font-size:9px;letter-spacing:0;color:var(--terminal-muted)}
.island-current{display:flex;flex-direction:column;gap:6px;min-width:0}.island-current strong{display:flex;align-items:baseline;gap:6px;font-size:12px;line-height:1.15;font-weight:400;white-space:nowrap}.island-current strong::before{content:">";color:#a98151;font-size:11px}.island-current small{font-size:8px;color:var(--terminal-muted);white-space:nowrap;letter-spacing:.15px}
.island-chevron{font-size:13px;color:var(--terminal-muted);margin-left:auto;transition:transform .3s}.is-expanded .island-chevron{transform:rotate(180deg)}
.island-next{display:flex;flex-direction:column;justify-content:center;gap:6px;min-width:100px;height:36px;padding:0 0 0 14px;border:0;border-left:1px solid var(--terminal-line);background:none;color:inherit;text-align:left;cursor:pointer;font-family:inherit}
.island-next>small{color:var(--terminal-muted);font-size:8px;letter-spacing:.5px}.island-next>span{display:flex;align-items:center;gap:10px;justify-content:space-between}.island-next b{font-size:11px;font-weight:400}.island-next i{font-style:normal;color:var(--terminal-amber);font-size:14px}
.island-track{position:absolute;top:61px;left:23px;right:23px;height:1px;background:var(--terminal-line);pointer-events:none}.island-track>span{display:block;width:var(--read-progress);height:100%;background:var(--terminal-amber);opacity:.72}
.island-panel{height:154px;margin:0 9px;padding:14px 13px 10px;color:var(--terminal-amber);opacity:0;transform:translateY(-5px);transition:opacity .18s,transform .28s;pointer-events:none}
.is-expanded .island-panel{opacity:1;transform:translateY(0);pointer-events:auto;transition-delay:.08s}
.island-panel-heading{display:flex;justify-content:space-between;font-size:8px;color:var(--terminal-muted);letter-spacing:.5px;margin-bottom:12px}
.island-chapters{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.island-chapters button{display:flex;flex-direction:column;gap:9px;border:1px solid transparent;border-radius:6px;background:none;padding:9px 8px;color:#c5b8a0;font-size:11px;text-align:left;font-family:inherit;transition:background .2s,border-color .2s,color .2s}.island-chapters small{font:9px/1 monospace;color:#998c77}.island-chapters button[aria-current]{background:#dca46b12;color:var(--terminal-amber);border-color:#dca46b38}.island-chapters button[aria-current] small{color:var(--terminal-amber)}.island-chapters button:hover{background:#dca46b0d;color:var(--terminal-amber)}
.island-footer{display:flex;align-items:center;justify-content:space-between;margin-top:13px;padding-top:12px;border-top:1px solid var(--terminal-line)}.island-footer>button{border:0;background:none;color:var(--terminal-muted);padding:3px 0;font:inherit;font-size:9px;line-height:1.2}.island-footer>button span{margin-left:10px;color:var(--terminal-amber)}.island-footer .lighting-toggle{border:0;padding:3px 0;font-size:9px;font-family:inherit}.island-footer>button:hover{color:var(--terminal-amber)}
.journey-island button:focus-visible{outline:1px solid var(--terminal-amber);outline-offset:3px}
html[data-light=day] .journey-island{--terminal-amber:#e1b17a;--terminal-muted:#b0ad98;background:#262924;border-color:#8f977345}
@media(max-width:800px){.home-copy h1{top:44%;font-size:14vw;left:4%;right:4%;line-height:1;white-space:nowrap}.scroll-invitation{left:50%;bottom:max(31px,env(safe-area-inset-bottom));font-size:10px}.journey-island{top:max(14px,env(safe-area-inset-top));width:344px}.island-summary{padding-inline:15px;gap:10px}.island-toggle{gap:10px}.island-next{min-width:96px;padding-left:12px}.island-panel{padding-inline:10px}.island-chapters{gap:4px}.island-chapters button{font-size:10px;padding:10px 7px}.scene-actions>a:focus-visible,.scene-actions>button:focus-visible{top:90px}}
@media(max-width:350px){.island-current strong{font-size:11px;gap:4px}.island-current small{font-size:7px;letter-spacing:0}.island-next{min-width:87px;padding-left:9px}.island-next b{font-size:10px}.island-summary{gap:8px;padding-inline:13px}.island-toggle{gap:8px}.island-meter{width:30px;font-size:13px}.island-next>span{gap:6px}}
@media(prefers-reduced-motion:reduce){.journey-island,.island-panel,.island-chevron,.island-chapters button{transition:none}}
.island-current{flex:1;overflow:hidden}.island-current strong{display:block;overflow:hidden;text-overflow:ellipsis}.island-current strong::before{margin-right:6px}.island-current small{overflow:hidden;text-overflow:ellipsis}.island-next{width:110px;flex:none}.island-next>span{min-width:0}.island-next b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.island-next i{flex:none}
@media(max-width:800px){.island-next{width:103px}}
@media(max-width:350px){.island-next{width:91px}.island-languages button{padding:4px 5px}.island-footer>button span{margin-left:0}}

/* A real, draft-preserving contact form within the final reading chapter. */
.contact-copy .contact-details{margin-top:20px;padding-top:18px}
.studio-contact-form{display:grid;gap:8px;font-size:13px}
.studio-contact-form label{font-family:"Smiley Sans",sans-serif;color:var(--muted);font-size:12px}
.studio-contact-form :is(input,textarea){width:100%;min-width:0;border:1px solid #c4b79355;border-radius:5px;background:#171d1633;color:var(--ink);font:15px/1.5 Arial,"Microsoft YaHei",sans-serif;padding:10px 12px;outline-offset:3px;transition:border-color .2s,background .2s}
.studio-contact-form textarea{resize:none;min-height:88px;max-height:160px;overscroll-behavior:contain}
.studio-contact-form input::placeholder,.studio-contact-form textarea::placeholder{color:var(--muted);opacity:.8}
.studio-contact-form :is(input,textarea):focus{outline:1px solid var(--orange);border-color:var(--orange)}
.studio-contact-form [aria-invalid=true]{border-color:var(--orange)}
.contact-form-footer{display:flex;align-items:center;gap:16px;min-height:42px;margin-top:5px;padding-right:70px}
.contact-form-footer button{flex:none;min-width:90px;padding:10px 18px;border:1px solid #bb9d6659;border-radius:5px;background:#242820;color:#e1b17a;font:14px/1.3 "Smiley Sans",sans-serif;cursor:pointer}
.contact-form-footer button:hover{background:#30362b}.contact-form-footer button:disabled{opacity:.6;cursor:wait}
.contact-form-footer p{font-size:12px;line-height:1.5;margin:0;color:var(--muted)}
html[data-light=day] .studio-contact-form :is(input,textarea){background:#f6f0d333;border-color:#58614755}
@media(max-width:800px){.contact-copy{top:42%}.contact-copy .chapter-intro{font-size:12px;line-height:1.7;margin-bottom:10px}.contact-copy .contact-details{padding-top:12px;margin-top:12px}.studio-contact-form{gap:5px}.studio-contact-form label{font-size:11px}.studio-contact-form :is(input,textarea){font-size:16px;padding:8px 10px}.studio-contact-form textarea{min-height:70px;height:70px}.contact-form-footer{margin-top:3px;gap:12px}.contact-form-footer button{padding:9px 14px;font-size:13px}.contact-form-footer p{font-size:11px}}
@media(max-width:800px) and (max-height:740px){.contact-copy{top:38%}.contact-copy .chapter-intro{font-size:11px}.contact-copy h2{margin:8px 0}.contact-copy .contact-details{margin-top:9px;padding-top:9px}.studio-contact-form textarea{height:66px;min-height:66px}}
@media(max-height:570px){.contact-copy{top:100px!important;max-height:calc(100svh - 150px);overflow:auto;overscroll-behavior:contain;transform:none!important;padding-bottom:12px}.contact-copy .chapter-intro{display:none}}

/* Keep the editable chapter visible above a software keyboard without moving the journey. */
@media(max-width:800px){
 .is-editing-contact .contact-copy{position:fixed;z-index:8;top:calc(var(--contact-viewport-top,0px) + 88px)!important;max-height:calc(var(--contact-viewport-height,100svh) - 105px);overflow:auto;overscroll-behavior:contain;transform:none!important;background:#252d24f5;border-radius:8px;padding:12px;right:4%;width:92%;scroll-padding:12px}
 html[data-light=day] .is-editing-contact .contact-copy{background:#d1d3b5f5}
 .is-editing-contact .contact-copy :is(.chapter-kicker,.chapter-intro){display:none}
 .is-editing-contact .contact-copy h2{font-size:24px;margin:0 0 8px}
 .is-editing-contact .contact-details{margin-top:0;padding-top:8px}
 .is-editing-contact .contact-form-footer{padding-right:0}
}
