:root{--void:#050607;--carbon:#0b0e10;--graphite:#171d20;--ink:#eef1f0;--muted:#899292;--edge:rgba(238,244,245,.55);--signal:#c9d4d5;--ease:cubic-bezier(.16,.8,.24,1)}html[data-skin="nocturne"]{color-scheme:dark}
*{box-sizing:border-box}html{scroll-behavior:smooth;background:var(--void)}body{margin:0;background:var(--void);color:var(--ink);font-family:Inter,"Noto Sans SC",sans-serif;overflow-x:hidden}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}.grain{position:fixed;inset:0;z-index:20;pointer-events:none;opacity:.045;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='.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.65'/%3E%3C/svg%3E")}.site-header{position:fixed;z-index:30;top:0;left:0;right:0;height:82px;display:flex;align-items:center;padding:0 4vw;border-bottom:1px solid rgba(255,255,255,.08);background:linear-gradient(180deg,rgba(5,6,7,.72),transparent);backdrop-filter:blur(10px);transition:background .3s ease}.brand{display:flex;align-items:center;gap:12px;font-size:14px;font-weight:600;letter-spacing:.02em}.brand-mark{display:grid;place-items:center;width:26px;height:26px;border:1px solid var(--edge);border-radius:50%;font-size:12px}.main-nav{position:absolute;left:50%;transform:translateX(-50%);display:flex;gap:28px;font-size:11px;color:#aab4b4}.main-nav a{transition:color .2s ease}.main-nav a:hover{color:#fff}.header-tools{margin-left:auto;display:flex;gap:18px}.tool-button{font-size:10px;letter-spacing:.1em;color:#9da7a7}.tool-button span{opacity:.45;margin:0 4px}.sound-button{display:flex;align-items:center;gap:6px}.intro{position:fixed;inset:0;z-index:100;background:#07090a;overflow:hidden;display:grid;place-items:center;transition:opacity .7s ease,visibility .7s}.intro.is-done{opacity:0;visibility:hidden;pointer-events:none}.intro__name{font-size:clamp(54px,9vw,140px);font-weight:700;letter-spacing:-.07em;position:relative;z-index:3;opacity:0;transform:scale(.9);animation:introName 1.4s .8s var(--ease) forwards}.intro__name:after{content:"";position:absolute;left:-22vw;right:-22vw;top:50%;height:1px;background:linear-gradient(90deg,transparent,var(--edge),transparent)}.intro__line{position:absolute;left:0;right:0;height:23vh;display:flex;align-items:center;gap:30px;padding:0 7vw;color:#a7b2b2;font-size:10px;letter-spacing:.18em;opacity:0;overflow:hidden;background:linear-gradient(90deg,rgba(255,255,255,.08),transparent)}.intro__line i{height:1px;flex:1;background:rgba(255,255,255,.2)}.intro__line b{font-weight:400;color:#fff;white-space:nowrap}.intro__line--top{top:8vh;transform:translateX(-100%);animation:lineIn 1.4s .15s var(--ease) forwards}.intro__line--bottom{bottom:8vh;transform:translateX(100%);animation:lineIn 1.4s .35s var(--ease) forwards}.intro__skip{position:absolute;bottom:38px;right:4vw;color:#aab4b4;font-size:10px;letter-spacing:.12em;z-index:4}.intro__skip span{font-size:16px;margin-left:8px}.desktop-gate{display:none}.scene{position:relative;min-height:100vh;overflow:hidden}.eyebrow{margin:0 0 22px;color:#9fa9a9;font-size:9px;letter-spacing:.24em}.text-link{display:inline-flex;align-items:center;gap:16px;margin-top:34px;padding-bottom:9px;border-bottom:1px solid rgba(238,244,245,.42);font-size:12px;letter-spacing:.08em;transition:gap .3s var(--ease),border-color .3s}.text-link span{font-size:17px;line-height:10px}.text-link:hover{gap:26px;border-color:#fff}.hero{height:100vh;min-height:720px;background:var(--void)}.hero__backdrop,.works__backdrop{position:absolute;inset:0;background-image:linear-gradient(90deg,rgba(5,6,7,.93) 0%,rgba(5,6,7,.42) 42%,rgba(5,6,7,.15)),url("assets/concepts/hero-space.png");background-size:cover;background-position:center;filter:saturate(.65) contrast(1.12)}.hero__veil{position:absolute;inset:0;background:radial-gradient(circle at 70% 42%,transparent 0,rgba(0,0,0,.18) 35%,rgba(0,0,0,.67) 100%)}.hero__glass{position:absolute;top:12%;bottom:8%;width:14vw;min-width:130px;border:1px solid rgba(235,244,245,.28);background:linear-gradient(100deg,rgba(211,222,223,.03),rgba(211,222,223,.17),rgba(0,0,0,.02));backdrop-filter:blur(2px);transform:skewY(-5deg) rotateY(12deg);box-shadow:inset 12px 0 22px rgba(255,255,255,.06),0 0 32px rgba(220,240,241,.08);transition:transform 1s var(--ease)}.hero__glass--one{left:45%;}.hero__glass--two{left:54%;transform:skewY(5deg) rotateY(-16deg);opacity:.52}.hero:hover .hero__glass--one{transform:translate3d(2vw,-1vh,0) skewY(-5deg) rotateY(22deg)}.hero:hover .hero__glass--two{transform:translate3d(-1vw,1vh,0) skewY(5deg) rotateY(-24deg)}.hero__copy{position:absolute;left:8vw;top:31%;z-index:3}.hero h1{margin:0;font-size:clamp(70px,9vw,138px);letter-spacing:-.09em;line-height:.9;font-weight:700}.hero__lead{margin:26px 0 0;font-size:22px;color:#eef1f0}.hero__desc{margin:18px 0 0;color:#aeb7b7;line-height:1.9;font-size:13px}.hero__wall{position:absolute;right:2vw;top:18%;width:43vw;height:61vh;perspective:900px;transform:rotateY(-8deg);transform-origin:right center}.wall-window{position:absolute;border:1px solid rgba(236,246,247,.38);background:linear-gradient(135deg,rgba(224,235,236,.16),rgba(5,9,10,.42) 70%),url("assets/concepts/hero-space.png");background-size:cover;box-shadow:0 0 52px rgba(193,225,226,.12),inset 0 0 0 8px rgba(0,0,0,.15);overflow:hidden}.wall-window--large{inset:0 0 15% 12%;}.wall-window--small{width:31%;height:29%;left:0;bottom:0;transform:translateX(-18%) rotateY(12deg);opacity:.75}.wall-light{position:absolute;inset:-25%;background:linear-gradient(115deg,transparent 25%,rgba(244,255,255,.42) 48%,transparent 59%);transform:translateX(-40%) rotate(8deg);animation:lightSweep 7s ease-in-out infinite}.wall-light--small{animation-delay:-3.5s}.wall-caption{position:absolute;left:20px;bottom:16px;font-size:8px;letter-spacing:.22em;color:rgba(235,244,244,.7)}.scroll-note{position:absolute;bottom:38px;left:8vw;z-index:3;display:flex;align-items:center;gap:13px;color:#9ba5a5;font-size:9px;letter-spacing:.14em}.scroll-note__line{height:46px;width:1px;background:linear-gradient(#fff,transparent)}.scroll-note b{font-weight:400;margin-left:22px;color:#fff}.channels{min-height:100vh;padding:15vh 8vw 13vh;background:radial-gradient(circle at 50% 50%,#20282a 0,#0c1011 44%,#050607 100%);}.section-intro{display:flex;align-items:end;justify-content:space-between;margin-bottom:7vh;position:relative;z-index:2}.section-intro h2,.works h2,.game h2,.lab h2,.find h2{font-size:clamp(54px,6vw,92px);letter-spacing:-.08em;line-height:.95;margin:0;font-weight:600}.section-intro h2 em,.lab h2 em{font-style:normal;color:#909c9c}.section-intro>p:last-child{max-width:230px;color:#8d9999;font-size:12px;line-height:1.7;margin:0}.channel-stage{display:grid;grid-template-columns:1.15fr .85fr;gap:16px;min-height:55vh}.channel-panel{position:relative;min-height:55vh;overflow:hidden;border:1px solid rgba(225,236,237,.3);background:#121819;transition:transform .7s var(--ease),filter .7s,opacity .7s}.channel-panel__image{position:absolute;inset:0;background:#1a2223}.channel-panel__image img{width:100%;height:100%;object-fit:cover;opacity:.26;filter:grayscale(1) contrast(1.25);transition:transform 1s var(--ease),opacity .7s}.channel-panel__copy{position:absolute;left:34px;bottom:34px;z-index:2}.avatar{width:44px;height:44px;border-radius:50%;object-fit:cover;border:1px solid rgba(255,255,255,.6);margin-bottom:26px}.panel-index{font-size:9px;letter-spacing:.2em;color:#9ba6a6;margin:0 0 10px}.channel-panel h3{font-size:clamp(32px,4vw,60px);letter-spacing:-.08em;margin:0 0 11px}.channel-panel p:not(.panel-index){font-size:12px;color:#c1c9c9;margin:0;max-width:260px}.panel-link{display:inline-flex;gap:15px;align-items:center;margin-top:22px;font-size:11px;border-bottom:1px solid rgba(255,255,255,.35);padding-bottom:7px}.panel-link--muted{color:#a1aaaa}.channel-panel:hover,.channel-panel:focus-visible{transform:translateY(-10px)}.channel-panel:hover .channel-panel__image img,.channel-panel:focus-visible .channel-panel__image img{transform:scale(1.04);opacity:.52}.channel-panel:focus-visible{outline:1px solid #fff;outline-offset:6px}.panel-shade{position:absolute;inset:0;background:linear-gradient(0deg,rgba(4,6,6,.9),transparent 65%)}.qr-pop{position:absolute;right:24px;top:24px;width:116px;padding:8px;background:rgba(12,16,17,.74);border:1px solid rgba(255,255,255,.3);opacity:0;transform:translateY(-8px);transition:opacity .3s,transform .3s;backdrop-filter:blur(12px)}.qr-pop img{width:100%;display:block}.qr-pop small{display:block;padding:8px 2px 1px;font-size:9px;color:#cbd4d4}.channel-panel:hover .qr-pop,.channel-panel:focus-visible .qr-pop{opacity:1;transform:none}.works{height:100vh;min-height:760px;background:#080b0c}.works__backdrop{background-image:linear-gradient(90deg,rgba(5,6,7,.94),rgba(5,6,7,.45) 45%,rgba(5,6,7,.72)),url("assets/concepts/gallery-space.png");filter:grayscale(.55) contrast(1.18);}.works__head{position:absolute;left:8vw;top:12vh;z-index:2}.works__head h2{font-size:clamp(54px,7vw,104px)}.works__head>p:last-child{color:#9ca7a7;font-size:12px;margin-top:20px}.work-viewer{position:absolute;inset:22vh 8vw 8vh;display:grid;place-items:center;outline:none}.work-track{position:relative;width:100%;height:100%;display:flex;align-items:center;justify-content:center;gap:18px;perspective:1100px}.work-card{position:absolute;left:50%;top:50%;width:min(27vw,420px);height:68vh;transform:translate(-50%,-50%);border:1px solid rgba(255,255,255,.42);overflow:hidden;background:#162023;box-shadow:0 24px 90px rgba(0,0,0,.48);transition:transform .7s var(--ease),opacity .55s,filter .55s}.work-card--landscape{width:min(47vw,680px);height:auto;aspect-ratio:16/9}.work-card img{width:100%;height:100%;object-fit:cover}.work-card__wash{position:absolute;inset:0;background:linear-gradient(180deg,transparent 50%,rgba(0,0,0,.8))}.work-card__no{position:absolute;left:20px;top:18px;font:500 10px Inter;letter-spacing:.18em;color:#d8e1e1}.work-card__type{position:absolute;left:20px;bottom:18px;font-size:10px;letter-spacing:.15em;color:#d9e2e2}.work-card--active{z-index:5}.work-card--prev{transform:translate(calc(-50% - 24vw),-50%) rotateY(22deg) scale(.69);opacity:.52;filter:grayscale(.4)}.work-card--next{transform:translate(calc(-50% + 24vw),-50%) rotateY(-22deg) scale(.69);opacity:.52;filter:grayscale(.4)}.work-card--far{opacity:0;pointer-events:none}.work-meta{position:absolute;left:0;bottom:0;z-index:6}.work-meta__index{font-size:10px;letter-spacing:.18em;color:#9eaaaa}.work-meta h3{font-size:28px;letter-spacing:-.05em;margin:9px 0 4px}.work-meta p{font-size:11px;color:#9aa5a5;margin:0}.work-controls{position:absolute;right:0;bottom:0;display:flex;align-items:center;gap:18px}.work-controls button{font-size:20px;color:#cbd4d4;transition:transform .2s}.work-controls button:hover{transform:translateY(-3px)}.text-link--small{font-size:10px;margin:0;margin-left:22px}.game{min-height:100vh;padding:15vh 8vw;display:flex;align-items:center;background:radial-gradient(circle at 65% 42%,#3b4344 0,#151a1c 26%,#080a0b 68%)}.game__media{position:absolute;right:8vw;width:48vw;height:67vh;overflow:hidden;border:1px solid rgba(255,255,255,.38);transform:perspective(1000px) rotateY(-9deg) rotateZ(1deg);box-shadow:0 35px 90px rgba(0,0,0,.6)}.game__media:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(7,9,10,.26),transparent 35%),linear-gradient(0deg,rgba(7,9,10,.4),transparent 55%)}.game__media img{width:100%;height:100%;object-fit:cover;object-position:center}.game__copy{position:relative;z-index:2;max-width:420px}.game__copy h2{font-size:clamp(54px,6vw,90px)}.game__copy p:not(.eyebrow):not(.game__tag){font-size:13px;line-height:2;color:#aab5b5;max-width:330px}.game__tag{font-size:15px;color:#dce4e4;margin:26px 0 0}.game__ghost{position:absolute;left:7vw;bottom:5vh;font-size:clamp(44px,8vw,120px);line-height:.78;font-weight:700;color:rgba(255,255,255,.035);letter-spacing:-.1em;pointer-events:none}.lab{min-height:100vh;padding:16vh 8vw;background:linear-gradient(125deg,#0b0f10,#182022 48%,#080a0b);display:flex;align-items:center;justify-content:space-between;gap:10vw}.lab__copy{max-width:460px}.lab__copy p:last-child{color:#9da9a9;font-size:13px;line-height:1.8;max-width:280px}.lab__list{width:min(52vw,700px);border-top:1px solid rgba(255,255,255,.25)}.lab-item{display:grid;grid-template-columns:46px 1fr auto 24px;gap:20px;align-items:center;padding:25px 0;border-bottom:1px solid rgba(255,255,255,.16);transition:padding .4s var(--ease),background .3s}.lab-item:hover{padding-left:18px;background:linear-gradient(90deg,rgba(255,255,255,.07),transparent)}.lab-item span,.lab-item small{font-size:10px;color:#899595;letter-spacing:.12em}.lab-item strong{font-size:16px;font-weight:500}.lab-item b{font-size:18px;font-weight:400}.find{min-height:100vh;padding:16vh 8vw 5vh;background:radial-gradient(circle at 70% 30%,#2a3031,#111617 34%,#080a0b 75%);display:flex;flex-direction:column;justify-content:space-between}.find__inner{max-width:730px}.find h2{font-size:clamp(80px,12vw,180px);letter-spacing:-.11em}.find__inner>p:not(.eyebrow){color:#9da9a9;font-size:14px;margin-top:28px}.socials{margin-top:10vh;display:flex;align-items:flex-end;gap:18px;flex-wrap:wrap}.socials a{position:relative;display:flex;align-items:center;gap:12px;min-width:170px;padding:16px 17px;border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.035);transition:transform .35s var(--ease),background .3s}.socials a:hover{transform:translateY(-8px);background:rgba(255,255,255,.1)}.social-icon{display:grid;place-items:center;width:28px;height:28px;border:1px solid rgba(255,255,255,.5);border-radius:50%;font-size:11px}.socials a i{margin-left:auto;font-style:normal;color:#acb7b7}.socials a img{position:absolute;bottom:calc(100% + 14px);left:0;width:132px;padding:8px;background:#e8eeee;opacity:0;transform:translateY(8px);pointer-events:none;transition:opacity .25s,transform .25s}.socials a:hover img{opacity:1;transform:none}.find footer{display:flex;justify-content:space-between;border-top:1px solid rgba(255,255,255,.15);padding-top:20px;color:#8e9999;font-size:10px;letter-spacing:.08em}.toast{position:fixed;left:50%;bottom:34px;z-index:50;padding:12px 18px;border:1px solid rgba(255,255,255,.24);background:rgba(10,13,14,.84);backdrop-filter:blur(12px);font-size:11px;opacity:0;transform:translate(-50%,10px);pointer-events:none;transition:opacity .3s,transform .3s}.toast.is-visible{opacity:1;transform:translate(-50%,0)}.reveal{opacity:0;transform:translateY(28px);transition:opacity .8s var(--ease),transform .8s var(--ease)}.reveal.is-visible{opacity:1;transform:none}@keyframes introName{to{opacity:1;transform:none}}@keyframes lineIn{to{opacity:1;transform:none}}@keyframes lightSweep{0%,18%{transform:translateX(-55%) rotate(8deg)}55%,100%{transform:translateX(55%) rotate(8deg)}}
@media (max-width:1180px){.desktop-gate{display:grid;position:fixed;inset:0;z-index:200;background:#080a0b;place-content:center;text-align:center;color:#eef1f0}.desktop-gate span{font-size:24px}.desktop-gate small{margin-top:12px;color:#849090;font-size:9px;letter-spacing:.18em}.site-header,main,.grain,.cursor-ring{display:none}}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.intro{display:none}.reveal{opacity:1;transform:none}}

.works__head{left:50%;top:10vh;transform:translateX(-50%);text-align:center}.work-viewer{inset:20vh 5vw 7vh}.work-track{perspective:1400px}.work-card{width:clamp(220px,23vw,360px);height:auto;aspect-ratio:3/4;transition:transform .72s var(--ease),opacity .55s,filter .55s,border-color .55s}.work-card--landscape{width:clamp(320px,40vw,620px);height:auto;aspect-ratio:16/9}.work-card--active{z-index:7;transform:translate(-50%,-50%) scale(1);opacity:1;filter:none}.work-card--left-1{z-index:5;transform:translate(calc(-50% - clamp(210px,23vw,350px)),-50%) rotateY(25deg) scale(.72);opacity:.72;filter:brightness(.66) saturate(.7)}.work-card--right-1{z-index:5;transform:translate(calc(-50% + clamp(210px,23vw,350px)),-50%) rotateY(-25deg) scale(.72);opacity:.72;filter:brightness(.66) saturate(.7)}.work-card--left-2{z-index:3;transform:translate(calc(-50% - clamp(390px,42vw,650px)),-50%) rotateY(31deg) scale(.54);opacity:.48;filter:brightness(.5) saturate(.55)}.work-card--right-2{z-index:3;transform:translate(calc(-50% + clamp(390px,42vw,650px)),-50%) rotateY(-31deg) scale(.54);opacity:.48;filter:brightness(.5) saturate(.55)}.work-card--left-3{z-index:1;transform:translate(calc(-50% - clamp(540px,59vw,900px)),-50%) rotateY(36deg) scale(.4);opacity:.25;filter:brightness(.4) saturate(.45)}.work-card--right-3{z-index:1;transform:translate(calc(-50% + clamp(540px,59vw,900px)),-50%) rotateY(-36deg) scale(.4);opacity:.25;filter:brightness(.4) saturate(.45)}.work-card--far{z-index:0;opacity:0;pointer-events:none;transform:translate(-50%,-50%) scale(.25)}
.cursor-ring{position:fixed;left:0;top:0;width:28px;height:28px;margin:-14px;border:1px solid rgba(238,244,245,.7);border-radius:50%;z-index:80;pointer-events:none;transform:translate(-100px,-100px);transition:width .25s,height .25s,margin .25s,border-color .25s,background .25s}.cursor-ring:after{content:"";position:absolute;left:50%;top:50%;width:3px;height:3px;border-radius:50%;background:#fff;transform:translate(-50%,-50%)}.cursor-ring.is-active{width:42px;height:42px;margin:-21px;border-color:#fff;background:rgba(255,255,255,.06)}
.work-card__art{position:absolute;inset:0;overflow:hidden;background-size:cover}.work-card__art:before{content:"";position:absolute;inset:-20%;background:radial-gradient(ellipse at 68% 30%,rgba(255,255,255,.68),transparent 12%),linear-gradient(120deg,transparent 22%,rgba(255,255,255,.2) 44%,transparent 57%);transform:rotate(-12deg);opacity:.72}.work-card__art:after{content:"";position:absolute;inset:0;background:repeating-linear-gradient(115deg,transparent 0 9%,rgba(255,255,255,.06) 9.2% 9.5%,transparent 9.7% 18%);mix-blend-mode:screen;opacity:.6}.art-line{position:absolute;width:140%;height:1px;left:-20%;top:53%;background:rgba(255,255,255,.5);transform:rotate(-18deg);box-shadow:0 0 22px rgba(255,255,255,.55)}.art-orb{position:absolute;width:35%;aspect-ratio:1;border-radius:50%;right:12%;top:20%;background:rgba(255,255,255,.14);filter:blur(14px);box-shadow:0 0 60px rgba(255,255,255,.3)}
.work-card--active{animation:work-active-in .72s var(--ease) both}.work-card--left-1{animation:work-left-1-in .72s var(--ease) both}.work-card--right-1{animation:work-right-1-in .72s var(--ease) both}.work-card--left-2{animation:work-left-2-in .72s var(--ease) both}.work-card--right-2{animation:work-right-2-in .72s var(--ease) both}.work-card--left-3{animation:work-left-3-in .72s var(--ease) both}.work-card--right-3{animation:work-right-3-in .72s var(--ease) both}.work-card--far{animation:work-far-in .72s var(--ease) both}@keyframes work-active-in{from{opacity:.35;transform:translate(calc(-50% - 24vw),-50%) rotateY(22deg) scale(.72)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}@keyframes work-left-1-in{from{opacity:.3;transform:translate(-50%,-50%) scale(1)}to{opacity:.72;transform:translate(calc(-50% - clamp(210px,23vw,350px)),-50%) rotateY(25deg) scale(.72)}}@keyframes work-right-1-in{from{opacity:.3;transform:translate(-50%,-50%) scale(1)}to{opacity:.72;transform:translate(calc(-50% + clamp(210px,23vw,350px)),-50%) rotateY(-25deg) scale(.72)}}@keyframes work-left-2-in{from{opacity:.2;transform:translate(calc(-50% - clamp(210px,23vw,350px)),-50%) rotateY(25deg) scale(.72)}to{opacity:.48;transform:translate(calc(-50% - clamp(390px,42vw,650px)),-50%) rotateY(31deg) scale(.54)}}@keyframes work-right-2-in{from{opacity:.2;transform:translate(calc(-50% + clamp(210px,23vw,350px)),-50%) rotateY(-25deg) scale(.72)}to{opacity:.48;transform:translate(calc(-50% + clamp(390px,42vw,650px)),-50%) rotateY(-31deg) scale(.54)}}@keyframes work-left-3-in{from{opacity:.12;transform:translate(calc(-50% - clamp(390px,42vw,650px)),-50%) rotateY(31deg) scale(.54)}to{opacity:.25;transform:translate(calc(-50% - clamp(540px,59vw,900px)),-50%) rotateY(36deg) scale(.4)}}@keyframes work-right-3-in{from{opacity:.12;transform:translate(calc(-50% + clamp(390px,42vw,650px)),-50%) rotateY(-31deg) scale(.54)}to{opacity:.25;transform:translate(calc(-50% + clamp(540px,59vw,900px)),-50%) rotateY(-36deg) scale(.4)}}@keyframes work-far-in{from{opacity:.18}to{opacity:0}}
.work-card{will-change:transform,opacity,filter;width:clamp(220px,23vw,360px);height:auto;aspect-ratio:3/4;transition:transform .72s var(--ease),opacity .52s,filter .52s,border-color .52s;animation:none!important}.work-card--landscape{width:clamp(220px,23vw,360px);height:auto;aspect-ratio:16/9}.work-card--active{z-index:7;transform:translate(-50%,-50%) scale(1);opacity:1;filter:brightness(1.04) saturate(1.02)}.work-card--left-1{z-index:5;transform:translate(calc(-50% - clamp(250px,25vw,400px)),-50%) scale(.72);opacity:.72;filter:brightness(.58) saturate(.76)}.work-card--right-1{z-index:5;transform:translate(calc(-50% + clamp(250px,25vw,400px)),-50%) scale(.72);opacity:.72;filter:brightness(.58) saturate(.76)}.work-card--left-2{z-index:3;transform:translate(calc(-50% - clamp(440px,43vw,690px)),-50%) scale(.53);opacity:.72;filter:brightness(.58) saturate(.76)}.work-card--right-2{z-index:3;transform:translate(calc(-50% + clamp(440px,43vw,690px)),-50%) scale(.53);opacity:.72;filter:brightness(.58) saturate(.76)}.work-card--left-3{z-index:1;transform:translate(calc(-50% - clamp(590px,59vw,940px)),-50%) scale(.4);opacity:.72;filter:brightness(.58) saturate(.76)}.work-card--right-3{z-index:1;transform:translate(calc(-50% + clamp(590px,59vw,940px)),-50%) scale(.4);opacity:.72;filter:brightness(.58) saturate(.76)}.work-card--far{z-index:0;opacity:0;pointer-events:none;transform:translate(-50%,-50%) scale(.3)}
.work-card video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .42s ease;pointer-events:none}.work-card__art{transition:opacity .42s ease}.work-card--playing video{opacity:1}.work-card--playing .work-card__art{opacity:0}
.work-card .work-progress{position:absolute;z-index:8;left:68px;right:28px;bottom:38px;display:grid;grid-template-columns:minmax(72px,1fr) auto;align-items:center;gap:12px;color:rgba(239,245,244,.88);font:500 10px/1 Inter,"Noto Sans SC",sans-serif;font-variant-numeric:tabular-nums;text-shadow:0 1px 8px rgba(0,0,0,.65);transition:opacity .16s ease,transform .24s var(--ease)}.work-card--portrait .work-progress{left:46px;right:20px;bottom:36px;gap:9px}.work-viewer.is-playing:not(.is-control-visible) .work-progress{opacity:0;pointer-events:none;transform:translateY(8px)}.work-viewer.is-playing .work-progress:focus-within{opacity:1;pointer-events:auto;transform:none}.work-progress__range{--work-progress:0%;width:100%;height:20px;margin:0;cursor:pointer;appearance:none;background:transparent;touch-action:none}.work-progress__range::-webkit-slider-runnable-track{height:2px;background:linear-gradient(90deg,#eef4f3 0 var(--work-progress),rgba(235,243,242,.32) var(--work-progress) 100%)}.work-progress__range::-moz-range-track{height:2px;background:rgba(235,243,242,.32)}.work-progress__range::-moz-range-progress{height:2px;background:#eef4f3}.work-progress__range::-webkit-slider-thumb{width:10px;height:10px;margin-top:-4px;border:1px solid rgba(8,11,12,.9);border-radius:50%;appearance:none;background:#f4f7f6;box-shadow:0 1px 6px rgba(0,0,0,.35)}.work-progress__range::-moz-range-thumb{width:8px;height:8px;border:1px solid rgba(8,11,12,.9);border-radius:50%;background:#f4f7f6;box-shadow:0 1px 6px rgba(0,0,0,.35)}.work-progress__range:disabled{cursor:default}.work-progress__range:focus-visible{outline:1px solid #fff;outline-offset:4px}.work-progress__time{min-width:78px;white-space:nowrap;color:rgba(239,245,244,.74)}
@media (max-width:760px){.work-card .work-progress{left:48px;right:16px;bottom:32px;gap:8px}.work-card--portrait .work-progress{left:40px;right:14px;bottom:30px}.work-progress__time{min-width:70px;font-size:9px}}
.work-card{aspect-ratio:9/16;transition:transform .72s var(--ease),width .72s var(--ease),opacity .52s,filter .52s,border-color .52s}.work-card--portrait{aspect-ratio:9/16}.work-card--active.work-card--landscape{width:clamp(620px,54vw,860px)}.work-card--active.work-card--portrait{width:min(30vw,calc(78vh * .5625))}
.work-card.work-card--landscape{aspect-ratio:16/9}.work-card.work-card--portrait{aspect-ratio:9/16}
.works__head{left:5vw;top:10vh;transform:none;text-align:left}.works__head h2{font-size:clamp(46px,5.2vw,82px)}.works__head>p:last-child{max-width:220px;line-height:1.65}.work-sound--overlay{position:absolute;right:5vw;top:10vh;z-index:8;display:grid;place-items:center;width:34px;height:34px;padding:0;color:rgba(224,232,232,.68);background:none;border:0;transition:transform .32s var(--ease),color .32s}.work-sound--overlay:hover{transform:scale(1.2);color:#fff}.work-sound--overlay:focus-visible{outline:1px solid #fff;outline-offset:6px}.work-sound--overlay svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.55;stroke-linecap:round;stroke-linejoin:round}.work-sound--overlay .sound-slash{display:block}.work-sound--overlay.is-on{color:#fff}.work-sound--overlay.is-on .sound-slash{display:none}.work-sound--overlay.is-on svg{animation:work-sound-pulse 1.15s ease-in-out infinite}@keyframes work-sound-pulse{50%{opacity:.48;transform:scale(1.13)}}
/* Rebuilt scroll chapters. The opening and channel entrance above remain intentionally untouched. */
.identity-scroll{min-height:112svh;display:grid;grid-template-columns:minmax(0,1fr) minmax(340px,42vw);align-items:center;padding:12vh 8vw 7vh;background:#07090a;isolation:isolate}
.identity-scroll--feng{grid-template-columns:minmax(340px,42vw) minmax(0,1fr);background:#0a0d0f}
.identity-scroll__line{position:absolute;z-index:-1;top:12%;bottom:11%;left:50%;width:1px;background:linear-gradient(transparent,rgba(217,229,229,.34) 22%,rgba(217,229,229,.1) 72%,transparent);transform:scaleY(.4);transform-origin:top;transition:transform 1.3s var(--ease)}
.identity-scroll.is-inview .identity-scroll__line{transform:scaleY(1)}
.identity-scroll__copy{max-width:550px;align-self:center;transform:translate3d(0,48px,0);opacity:0;transition:opacity .7s var(--ease),transform .9s var(--ease)}
.identity-scroll__copy--feng{grid-column:2;justify-self:end;text-align:right}
.identity-scroll.is-inview .identity-scroll__copy,.identity-scroll.is-inview .identity-scroll__note{transform:none;opacity:1}
.identity-scroll h2{margin:0;font-size:clamp(48px,6.5vw,104px);line-height:.98;letter-spacing:0;font-weight:600;text-wrap:balance}
.identity-scroll__copy>p:not(.eyebrow){max-width:29rem;margin:26px 0 0;color:#aab3b3;font-size:15px;line-height:1.9}.identity-scroll__copy--feng>p:not(.eyebrow){margin-left:auto}
.identity-scroll__portrait{position:relative;align-self:end;justify-self:center;width:min(35vw,510px);height:min(90svh,760px);margin:0;opacity:0;transform:translate3d(4vw,9vh,0) scale(.94);filter:grayscale(.16) contrast(1.05);transition:opacity .8s .08s var(--ease),transform 1.25s .08s var(--ease),filter 1.2s var(--ease)}
.identity-scroll--feng .identity-scroll__portrait{grid-column:1;grid-row:1;transform:translate3d(-4vw,9vh,0) scale(.94);width:min(42vw,590px)}
.identity-scroll.is-inview .identity-scroll__portrait{opacity:1;transform:translateZ(0) scale(1);filter:grayscale(0) contrast(1)}
.identity-scroll__portrait img{display:block;width:100%;height:100%;object-fit:contain;object-position:center bottom;filter:drop-shadow(0 28px 60px rgba(0,0,0,.52))}
.identity-scroll__note{position:absolute;left:8vw;bottom:8vh;margin:0;color:#748080;font-size:10px;letter-spacing:.15em;transform:translateY(20px);opacity:0;transition:opacity .65s .28s var(--ease),transform .75s .28s var(--ease)}
.identity-scroll__note--feng{right:8vw;left:auto;text-align:right}.text-link--quiet{color:#9fa9a9;cursor:default}
.works,.game,.lab,.find{scroll-margin-top:82px}.works{min-height:112svh;height:112svh;background:#080a0b}.works__backdrop{background-image:linear-gradient(90deg,#07090a 3%,rgba(7,9,10,.64) 48%,rgba(7,9,10,.92)),url("assets/concepts/gallery-space.png");filter:grayscale(.72) contrast(1.1) brightness(.72)}.works__head{top:14vh}.works__head>p:last-child{max-width:20rem;line-height:1.7}.work-viewer{inset:26vh 8vw 8vh}.work-meta{bottom:1vh}.work-card{border-color:rgba(230,238,238,.4);border-radius:0;box-shadow:0 26px 90px rgba(0,0,0,.58)}
.game{min-height:110svh;height:auto;padding:14vh 8vw 10vh;background:#e4e6e3;color:#0c0f10;display:grid;grid-template-columns:1.04fr .96fr;align-items:center;gap:8vw}.game__media{position:relative;inset:auto;width:100%;height:min(71svh,780px);overflow:hidden}.game__media:after{content:"";position:absolute;inset:0;border:1px solid rgba(9,13,14,.38);pointer-events:none}.game__media img{width:100%;height:100%;object-fit:cover;filter:grayscale(1) contrast(1.12)}.game__copy{position:relative;inset:auto;max-width:500px}.game h2{font-size:clamp(50px,6vw,96px)}.game__copy p{color:#4d5757;line-height:1.85}.game__tag{color:#111!important;font-size:16px}.game .eyebrow{color:#566060}.game .text-link{border-color:rgba(5,8,9,.45)}.game__ghost{display:none}
.lab{min-height:92svh;height:auto;padding:14vh 8vw;background:#0b0e10;display:grid;grid-template-columns:.8fr 1.2fr;align-items:center;gap:8vw}.lab__copy{position:relative;left:auto;top:auto}.lab__list{margin:0;border-top:1px solid rgba(238,244,245,.25)}.lab-item{min-height:88px;padding:0 0;grid-template-columns:42px minmax(0,1fr) auto 28px;border-bottom:1px solid rgba(238,244,245,.19);border-left:0;border-right:0;transition:padding .35s var(--ease),background .35s var(--ease)}.lab-item:hover,.lab-item:focus-visible{padding:0 18px;background:#151a1c;transform:none;outline:0}.lab-item strong{font-size:clamp(18px,2vw,30px);letter-spacing:0}.lab-item small{font-size:10px}.lab-item b{font-size:23px}
.find{min-height:92svh;height:auto;padding:15vh 8vw 5vh;background:#d8dddc;color:#090c0d;display:flex;flex-direction:column;justify-content:space-between}.find__inner{width:min(100%,1060px);margin:auto 0}.find h2{font-size:clamp(56px,8vw,124px)}.find__inner>p:not(.eyebrow){color:#4f5959;max-width:350px;line-height:1.75}.find .eyebrow{color:#566060}.socials{margin-top:9vh;border-top:1px solid rgba(7,10,10,.38)}.socials a{min-height:72px;color:#101415;border-color:rgba(7,10,10,.24);border-radius:0;padding:0 4px;background:transparent}.socials a:hover{background:rgba(255,255,255,.3);padding-left:16px}.socials a img{background:#f7f8f6;border-color:#15191a}.find footer{color:#4a5555;border-color:rgba(7,10,10,.25)}.find footer a{color:#101415}
[data-scene] .scroll-reveal{opacity:0;transform:translateY(28px);transition:opacity .65s var(--ease),transform .8s var(--ease)}[data-scene].is-inview .scroll-reveal{opacity:1;transform:none}
@media (max-width:760px){.identity-scroll,.identity-scroll--feng{min-height:100svh;padding:13vh 22px 7vh;display:flex;flex-direction:column;justify-content:space-between}.identity-scroll__copy,.identity-scroll__copy--feng{max-width:100%;align-self:flex-start;text-align:left;order:1}.identity-scroll h2{font-size:clamp(44px,14vw,68px)}.identity-scroll__portrait,.identity-scroll--feng .identity-scroll__portrait{width:min(78vw,370px);height:53svh;order:2;align-self:center}.identity-scroll__note,.identity-scroll__note--feng{left:22px;right:auto;bottom:4vh;text-align:left;max-width:80vw}.identity-scroll__line{left:22px;top:10%;bottom:8%}.works{height:100svh;min-height:700px}.works__head{left:22px;top:10vh}.work-viewer{inset:24vh 22px 11vh}.work-card{width:min(70vw,330px);height:48svh}.work-card--landscape{width:min(82vw,420px);height:auto}.work-card--left-1{transform:translate(calc(-50% - 48vw),-50%) rotateY(20deg) scale(.64)}.work-card--right-1{transform:translate(calc(-50% + 48vw),-50%) rotateY(-20deg) scale(.64)}.game,.lab{display:block;padding:11vh 22px}.game__media{height:48svh;margin-bottom:9vh}.lab__copy{margin-bottom:9vh}.lab-item{grid-template-columns:28px minmax(0,1fr) 18px}.lab-item small{display:none}.find{padding:11vh 22px 4vh}.socials{margin-top:7vh}.site-header{padding:0 22px}.main-nav{display:none}}
@media (prefers-reduced-motion:reduce){.identity-scroll__line,.identity-scroll__copy,.identity-scroll__portrait,.identity-scroll__note,[data-scene] .scroll-reveal{opacity:1!important;transform:none!important;transition:none!important}}
@media (max-width:1180px){.desktop-gate{display:none}.site-header,main,.grain{display:block}.site-header{display:flex}.grain{display:block}}

/* One unified account scene: scroll reveals each person's image, name, then bio. */
.channels,.identity-scroll{display:none!important}
.identity-sequence{height:270svh;min-height:270svh;background:#07090a;overflow:visible}
.identity-sequence__sticky{position:sticky;top:0;height:100svh;min-height:680px;padding:10vh 8vw 7vh;overflow:hidden;background:radial-gradient(circle at 50% 45%,#182022 0,#0b0e10 42%,#050607 100%);--left-person:0;--left-name:0;--left-bio:0;--right-person:0;--right-name:0;--right-bio:0}
.identity-sequence__kicker{position:absolute;top:10vh;left:8vw;margin:0;color:#9aa5a5;font-size:9px;letter-spacing:.24em}.identity-sequence__rule{position:absolute;top:15vh;bottom:10vh;left:50%;width:1px;background:linear-gradient(transparent,rgba(237,244,244,.36) 22%,rgba(237,244,244,.08) 78%,transparent)}
.identity-sequence__panes{height:100%;display:grid;grid-template-columns:1fr 1fr;gap:7vw;align-items:end}.identity-sequence__pane{position:relative;height:76%;display:flex;flex-direction:column;justify-content:flex-end;min-width:0}.identity-sequence__pane--feng{align-items:flex-end;text-align:right}.identity-sequence__portrait{position:absolute;z-index:1;left:50%;bottom:0;width:min(29vw,420px);height:72%;margin:0;transform:translate(-50%,calc(20px * (1 - var(--left-person)))) scale(calc(.96 + .04 * var(--left-person)));opacity:var(--left-person);transition:opacity .12s linear,transform .12s linear}.identity-sequence__pane--feng .identity-sequence__portrait{transform:translate(-50%,calc(20px * (1 - var(--right-person)))) scale(calc(.96 + .04 * var(--right-person)));opacity:var(--right-person)}.identity-sequence__portrait img{display:block;width:100%;height:100%;object-fit:contain;object-position:center bottom;filter:drop-shadow(0 22px 52px rgba(0,0,0,.6));}
.identity-sequence__copy{position:relative;z-index:2;width:min(100%,440px);padding-bottom:3vh;opacity:1}.identity-sequence__pane--main .identity-sequence__copy{transform:translateY(calc(36px * (1 - var(--left-bio))))}.identity-sequence__pane--feng .identity-sequence__copy{transform:translateY(calc(36px * (1 - var(--right-bio))))}.identity-sequence__index{margin:0 0 16px;color:#9ba6a6;font-size:9px;letter-spacing:.2em;opacity:var(--left-name)}.identity-sequence__pane--feng .identity-sequence__index{opacity:var(--right-name)}.identity-sequence__copy h2{margin:0;color:#f3f6f5;font-size:clamp(44px,6vw,94px);line-height:.95;letter-spacing:0;opacity:var(--left-name);transform:translateY(calc(28px * (1 - var(--left-name))))}.identity-sequence__pane--feng .identity-sequence__copy h2{opacity:var(--right-name);transform:translateY(calc(28px * (1 - var(--right-name))))}.identity-sequence__copy>p:not(.identity-sequence__index){max-width:330px;margin:22px 0 0;color:#aeb7b7;font-size:13px;line-height:1.85;opacity:var(--left-bio);transform:translateY(calc(22px * (1 - var(--left-bio))))}.identity-sequence__pane--feng .identity-sequence__copy>p:not(.identity-sequence__index){margin-left:auto;opacity:var(--right-bio);transform:translateY(calc(22px * (1 - var(--right-bio))))}.identity-sequence__copy .text-link{opacity:var(--left-bio);transform:translateY(calc(18px * (1 - var(--left-bio))))}.identity-sequence__pane--feng .identity-sequence__copy .text-link{opacity:var(--right-bio);transform:translateY(calc(18px * (1 - var(--right-bio))))}.identity-sequence__progress{position:absolute;right:8vw;bottom:7vh;margin:0;color:#9aa5a5;font-size:10px;letter-spacing:.16em}.identity-sequence__progress span{color:#f3f6f5}
@media (max-width:760px){.identity-sequence{height:300svh;min-height:300svh}.identity-sequence__sticky{min-height:620px;padding:10vh 22px 6vh}.identity-sequence__kicker{left:22px}.identity-sequence__rule{left:22px;top:17vh;bottom:9vh}.identity-sequence__panes{gap:24px}.identity-sequence__portrait{width:min(43vw,210px);height:54%;left:47%}.identity-sequence__pane--feng .identity-sequence__portrait{left:53%}.identity-sequence__pane{height:72%}.identity-sequence__copy{width:100%;padding-bottom:2vh}.identity-sequence__copy h2{font-size:clamp(38px,11vw,62px)}.identity-sequence__copy>p:not(.identity-sequence__index){font-size:12px;max-width:190px}.identity-sequence__progress{right:22px;bottom:6vh}}
@media (prefers-reduced-motion:reduce){.identity-sequence__portrait,.identity-sequence__copy h2,.identity-sequence__copy>p:not(.identity-sequence__index),.identity-sequence__copy .text-link,.identity-sequence__index{opacity:1!important;transform:none!important}}

/* Desktop-only correction and final composition for the account sequence. */
@media (max-width:1180px){.desktop-gate{display:grid!important}.site-header,main,.grain,.cursor-ring{display:none!important}}
.identity-sequence{height:560svh;min-height:560svh;background:#060809 url("assets/concepts/channels-space.png") center/cover no-repeat}.identity-sequence__sticky{height:100svh;min-height:760px;padding:0 8vw;background:linear-gradient(90deg,rgba(4,6,7,.86),rgba(4,6,7,.5) 48%,rgba(4,6,7,.86)),url("assets/concepts/channels-space.png") center/cover no-repeat;--left-action:0;--right-action:0}.identity-sequence__kicker{top:13vh}.identity-sequence__rule{top:12vh;bottom:8vh}.identity-sequence__panes{position:absolute;inset:20vh 8vw 7vh;height:auto;align-items:start;gap:8vw}.identity-sequence__pane{height:100%;display:block}.identity-sequence__pane--feng{text-align:right}.identity-sequence__copy{position:absolute;top:0;left:0;width:min(100%,510px);padding:0;transform:none!important}.identity-sequence__pane--feng .identity-sequence__copy{right:0;left:auto}.identity-sequence__index{margin:0 0 16px}.identity-sequence__copy h2{font-size:clamp(48px,5.6vw,88px);line-height:1;transform:translateY(calc(28px * (1 - var(--left-name))))}.identity-sequence__copy>p:not(.identity-sequence__index){margin-top:20px;max-width:370px}.identity-sequence__portrait{left:48%;top:32vh;bottom:auto;width:min(34vw,510px);height:min(55svh,630px);transform:translate(-50%,calc(44px * (1 - var(--left-person)))) scale(calc(.94 + .06 * var(--left-person)))}.identity-sequence__pane--feng .identity-sequence__portrait{left:52%;top:32vh;transform:translate(-50%,calc(44px * (1 - var(--right-person)))) scale(calc(.94 + .06 * var(--right-person)))}.identity-sequence__copy .text-link{opacity:var(--left-action);transform:translateY(calc(18px * (1 - var(--left-action))))}.identity-sequence__pane--feng .identity-sequence__copy .text-link{opacity:var(--right-action);transform:translateY(calc(18px * (1 - var(--right-action))))}.game{position:relative;background:#e4e6e3 url("assets/concepts/game-space.png") center/cover no-repeat}.game:before{content:"";position:absolute;inset:0;background:rgba(228,230,227,.72)}.game__media,.game__copy{z-index:1}.lab{position:relative;background:#0b0e10 url("assets/concepts/lab-space.png") center/cover no-repeat}.lab:before{content:"";position:absolute;inset:0;background:rgba(7,10,11,.72)}.lab__copy,.lab__list{position:relative;z-index:1}.find{position:relative;background:#d8dddc url("assets/concepts/find-space.png") center/cover no-repeat}.find:before{content:"";position:absolute;inset:0;background:rgba(216,221,220,.74)}.find__inner,.find footer{position:relative;z-index:1}
.identity-sequence__portrait,.identity-sequence__pane--feng .identity-sequence__portrait{top:21vh}
.game-legacy,.lab-legacy{display:none!important}
.is-disabled{pointer-events:none;cursor:default;opacity:.45}

/* Opening sequence only: supplied artwork frames the handwritten identity. */
@font-face{font-family:"Ma Shan Zheng";src:url("assets/home-legacy/MaShanZheng-Regular.ttf") format("truetype");font-display:swap}
.intro{isolation:isolate;background:#101316}
.intro:before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,rgba(7,9,10,.42),rgba(7,9,10,.05) 48%,rgba(7,9,10,.42)),linear-gradient(180deg,rgba(7,9,10,.16),transparent 32%,rgba(7,9,10,.30));pointer-events:none}
.intro__stage{position:absolute;inset:0;z-index:0;overflow:hidden;display:grid;place-items:center}
.intro__art{position:absolute;inset:0;margin:0;opacity:0}
.intro__art img{display:block;width:100%;height:100%;object-fit:contain}
.intro__art--one{animation:introArtworkFromLeft 2.7s .16s var(--ease) forwards}
.intro__art--two{animation:introArtworkFromRight 2.7s .16s var(--ease) forwards}
.intro__name{z-index:3;width:100%;padding:0 8vw;font-family:"Ma Shan Zheng","KaiTi","STKaiti",cursive;font-size:clamp(64px,10vw,158px);font-weight:400;letter-spacing:0;color:#fffdf2;text-align:center;text-shadow:0 0 7px rgba(255,248,216,.96),0 0 22px rgba(246,205,111,.72),0 0 54px rgba(220,163,72,.38);animation:introName 1.05s 1.45s var(--ease) forwards}
.intro__name:after{left:8vw;right:8vw;background:linear-gradient(90deg,transparent,rgba(255,244,204,.88),transparent);box-shadow:0 0 16px rgba(246,205,111,.54)}
.intro__skip{z-index:4;text-shadow:0 1px 6px #000}
@keyframes introArtworkFromLeft{from{opacity:1;transform:translate3d(-112%,0,0) scale(1.055)}to{opacity:1;transform:translate3d(0,0,0) scale(1)}}
@keyframes introArtworkFromRight{from{opacity:1;transform:translate3d(112%,0,0) scale(1.055)}to{opacity:1;transform:translate3d(0,0,0) scale(1)}}
@media (max-width:1180px){.intro__name{font-size:clamp(56px,11vw,116px)}}

/* Scroll chapters: each sticky viewport owns one topic and one reveal sequence. */
.chapter-sticky{position:sticky;top:0;height:100svh;min-height:760px;overflow:hidden}

/* Archive chapter: title and copy lead, then the collection book and its separate CTA enter. */
.road-chapter{min-height:330svh;height:330svh;overflow:visible;background:#111516}
.road-chapter__sticky{background:linear-gradient(90deg,rgba(5,8,9,.94) 0%,rgba(5,8,9,.72) 43%,rgba(5,8,9,.46)),url("assets/concepts/game-space.png") center/cover no-repeat}
.road-chapter__eyebrow{position:absolute;top:17vh;left:8vw;margin:0;color:#9ea9a9;font-size:9px;letter-spacing:.22em;opacity:var(--title);transform:translateY(calc(18px * (1 - var(--title))))}
.road-chapter__copy{position:absolute;top:25vh;left:8vw;width:min(37vw,620px)}
.chapter-index{margin:0 0 16px;color:#a7b2b1;font-size:9px;letter-spacing:.22em;opacity:var(--title);transform:translateY(calc(22px * (1 - var(--title))))}
.road-chapter__copy h2{margin:0;color:#f0f2ef;font-size:clamp(48px,4.4vw,82px);line-height:1.08;letter-spacing:0;white-space:nowrap;opacity:var(--title);transform:translateY(calc(34px * (1 - var(--title))))}
.road-chapter__copy>p.road-chapter__description{max-width:540px;margin:30px 0 0;color:#aeb8b7;font-size:clamp(14px,1vw,16px);line-height:1.82;text-wrap:pretty;opacity:var(--copy);transform:translateY(calc(24px * (1 - var(--copy))))}
.road-chapter__description span{display:block}
.road-chapter__book{position:absolute;top:18vh;right:5vw;display:block;width:min(53vw,860px);height:auto;aspect-ratio:1730/1059;margin:0;padding:clamp(7px,.7vw,12px);overflow:hidden;border:1px solid rgba(240,244,241,.66);background:rgba(232,235,230,.12);box-shadow:0 34px 100px rgba(0,0,0,.62),0 0 0 1px rgba(255,255,255,.08) inset;color:inherit;text-decoration:none;cursor:pointer;opacity:var(--book);transform:translateY(calc(52px * (1 - var(--book)))) scale(calc(.95 + .05 * var(--book)))}
.road-chapter__book:before{content:"";position:absolute;inset:clamp(7px,.7vw,12px);z-index:1;border:1px solid rgba(21,26,25,.5);pointer-events:none}
.road-chapter__book img{display:block;width:100%;height:100%;object-fit:contain;object-position:center;transition:transform .28s var(--ease)}
@media (hover:hover) and (pointer:fine){.road-chapter__book:hover img{transform:scale(1.018)}}
.road-chapter__book:focus-visible{outline:1px solid #fff;outline-offset:8px}
.road-chapter__folio,.tools-chapter__folio{position:absolute;bottom:7vh;color:#8f9a99;font-size:10px;letter-spacing:.17em}
.road-chapter__folio{left:8vw}

/* Archive CTA stays isolated from the homepage CTA. */
.archive-cta{position:absolute;bottom:22vh;left:calc(8vw + 2em);z-index:3;display:inline-flex;align-items:baseline;gap:16px;padding:4px 0;color:#d8c28e;font-family:"STKaiti","KaiTi","Kaiti SC","FangSong",serif;font-size:clamp(30px,2.5vw,46px);font-weight:600;line-height:1;letter-spacing:.04em;text-decoration:none;opacity:var(--action);transform:translateY(calc(18px * (1 - var(--action))));transition:color .2s var(--ease)}
.archive-cta__label{display:inline-block;transform-origin:left center;will-change:transform;animation:archiveInvitation 2.9s var(--ease) infinite}
.archive-cta__mark{display:inline-block;font-family:Inter,"Noto Sans SC",sans-serif;font-size:.68em;transition:transform .24s var(--ease)}
.archive-cta:hover{color:#f0dfad}.archive-cta:hover .archive-cta__mark{transform:translate(7px,-4px)}
.archive-cta:focus-visible{outline:1px solid #f0dfad;outline-offset:8px}
@keyframes archiveInvitation{0%,100%{transform:scale(1);text-shadow:0 0 0 rgba(232,207,151,0)}50%{transform:scale(1.035);text-shadow:0 0 13px rgba(232,207,151,.66),0 0 28px rgba(216,194,142,.24)}}

/* A playable one-round preview for the separate Life Hex experience. */
.life-hex-preview{position:relative;isolation:isolate;display:flex;min-height:100svh;padding:clamp(196px,22vh,230px) 8vw clamp(56px,7vh,92px);overflow:hidden;flex-direction:column;justify-content:center;background:#07110f;color:#f3f0dd}
.life-hex-preview:before{content:"";position:absolute;inset:0;z-index:-3;background:radial-gradient(circle at 50% 44%,rgba(92,126,98,.25),transparent 24%),radial-gradient(ellipse at 12% 92%,rgba(205,175,99,.14),transparent 38%),linear-gradient(145deg,#07100e 0%,#10221d 49%,#07100e 100%)}
.life-hex-preview:after{content:"";position:absolute;inset:28px;z-index:-1;border:1px solid rgba(234,229,187,.12);pointer-events:none}
.life-hex-preview__ambient{position:absolute;inset:0;z-index:-2;overflow:hidden;pointer-events:none}.life-hex-preview__ambient i{position:absolute;display:block;width:42vw;aspect-ratio:1;opacity:.4;border:1px solid rgba(227,210,143,.13);transform:rotate(45deg)}.life-hex-preview__ambient i:nth-child(1){top:-28vw;left:-13vw}.life-hex-preview__ambient i:nth-child(2){right:-21vw;bottom:-25vw;width:51vw;border-color:rgba(186,217,196,.12)}.life-hex-preview__ambient i:nth-child(3){top:44%;left:50%;width:18vw;max-width:270px;min-width:170px;border-color:rgba(228,192,120,.11);transform:translate(-50%,-50%) rotate(45deg)}
.life-hex-preview__head{position:relative;z-index:1;max-width:770px;margin:0 auto 38px;text-align:center}.life-hex-preview__head p{margin:0 0 13px;color:#b7ad82;font-size:10px;letter-spacing:.24em}.life-hex-preview__head h2{margin:0;color:#f6f0d7;font-family:"STKaiti","KaiTi","Kaiti SC",serif;font-size:clamp(54px,6vw,96px);font-weight:600;line-height:.94;letter-spacing:.04em}.life-hex-preview__head span{display:block;margin-top:19px;color:rgba(230,233,215,.64);font-size:14px;letter-spacing:.05em}
.life-hex-preview__stage{position:relative;z-index:1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(14px,2vw,32px);width:min(1040px,100%);margin:0 auto}.life-hex-preview__card{position:relative;min-height:clamp(330px,34vw,438px);padding:clamp(21px,2vw,32px);overflow:hidden;border:1px solid rgba(223,210,166,.38);background:linear-gradient(151deg,rgba(25,42,34,.94),rgba(9,20,17,.96));box-shadow:0 28px 54px rgba(0,0,0,.28),inset 0 0 0 1px rgba(255,245,205,.06);color:inherit;cursor:pointer;text-align:left;transform:translateY(0);transition:transform .24s var(--ease),border-color .24s ease,opacity .28s ease,filter .28s ease}.life-hex-preview__card:before,.life-hex-preview__card:after{content:"";position:absolute;width:34px;height:34px;border-color:rgba(242,219,142,.72);pointer-events:none}.life-hex-preview__card:before{top:10px;left:10px;border-top:1px solid;border-left:1px solid}.life-hex-preview__card:after{right:10px;bottom:10px;border-right:1px solid;border-bottom:1px solid}.life-hex-preview__card:hover{z-index:2;border-color:#f4dda0;transform:translateY(-10px);box-shadow:0 34px 68px rgba(0,0,0,.38),0 0 32px rgba(221,187,106,.16),inset 0 0 0 1px rgba(255,245,205,.14)}.life-hex-preview__card:focus-visible{z-index:3;outline:2px solid #fff0b8;outline-offset:5px}.life-hex-preview__card.is-muted{pointer-events:none;opacity:.24;filter:grayscale(.52);transform:scale(.94)}.life-hex-preview__card.is-selected{z-index:3;border-color:#fff0b8;box-shadow:0 42px 82px rgba(0,0,0,.44),0 0 52px rgba(236,202,111,.35),inset 0 0 0 1px rgba(255,247,211,.38);animation:lifeHexSelected .72s var(--ease) both}.life-hex-preview__card.is-selected:before,.life-hex-preview__card.is-selected:after{border-width:2px}.life-hex-preview__card.is-prismatic{border-color:rgba(207,177,255,.58);background:linear-gradient(151deg,rgba(37,31,66,.94),rgba(15,20,34,.98))}.life-hex-preview__card.is-prismatic:before,.life-hex-preview__card.is-prismatic:after{border-color:#d7c0ff}.life-hex-preview__card.is-silver{border-color:rgba(193,215,225,.55);background:linear-gradient(151deg,rgba(30,47,52,.95),rgba(10,20,23,.98))}.life-hex-preview__card.is-silver:before,.life-hex-preview__card.is-silver:after{border-color:#d6e6ec}.life-hex-preview__icon{position:relative;z-index:1;display:grid;place-items:center;width:clamp(72px,7vw,102px);height:clamp(72px,7vw,102px);margin:clamp(21px,2.2vw,34px) auto 21px;border:1px solid rgba(247,232,172,.34);background:radial-gradient(circle,rgba(223,190,99,.21),rgba(223,190,99,.03) 62%,transparent 64%);transform:rotate(45deg)}.life-hex-preview__icon img{width:76%;height:76%;object-fit:contain;filter:drop-shadow(0 5px 10px rgba(0,0,0,.45))}.life-hex-preview__name{position:relative;z-index:1;margin:0;text-align:center;color:#fff9df;font-family:"STKaiti","KaiTi","Kaiti SC",serif;font-size:clamp(27px,2.2vw,36px);font-weight:600;letter-spacing:.05em}.life-hex-preview__effect{position:relative;z-index:1;max-width:270px;margin:17px auto 0;color:rgba(243,240,221,.84);font-size:13px;line-height:1.72;text-align:center}.life-hex-preview__detail{position:relative;z-index:1;display:-webkit-box;max-width:260px;min-height:3.9em;margin:15px auto 0;overflow:hidden;color:rgba(213,222,208,.56);font-size:11px;line-height:1.7;text-align:center;-webkit-box-orient:vertical;-webkit-line-clamp:2}.life-hex-preview__footer{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:24px;width:min(1040px,100%);margin:30px auto 0;padding-top:18px;border-top:1px solid rgba(230,224,187,.18)}.life-hex-preview__footer p{margin:0;color:rgba(222,229,210,.54);font-size:11px;letter-spacing:.06em}.life-hex-preview__refresh{padding:8px 0;color:#e3ca87;font-size:13px;letter-spacing:.07em;transition:color .18s ease,transform .18s var(--ease)}.life-hex-preview__refresh:hover{color:#fff1bd;transform:translateX(3px)}.life-hex-preview__refresh span{display:inline-block;margin-left:7px;font-size:18px;vertical-align:-2px;transition:transform .32s var(--ease)}.life-hex-preview__refresh:hover span{transform:rotate(120deg)}.life-hex-preview__refresh:focus-visible{outline:1px solid #fff0b8;outline-offset:6px}
@keyframes lifeHexSelected{0%{transform:scale(1)}42%{transform:scale(1.045) translateY(-5px)}100%{transform:scale(1.015)}}
@media (max-width:760px){.life-hex-preview{min-height:auto;padding-right:22px;padding-left:22px}.life-hex-preview:after{inset:12px}.life-hex-preview__head{margin-bottom:26px}.life-hex-preview__stage{grid-template-columns:1fr;max-width:440px}.life-hex-preview__card{min-height:300px}.life-hex-preview__footer{align-items:flex-start;flex-direction:column;gap:14px}.life-hex-preview__footer p{line-height:1.55}.life-hex-preview__ambient i:nth-child(3){display:none}}
@media (prefers-reduced-motion:reduce){.life-hex-preview__card,.life-hex-preview__refresh,.life-hex-preview__refresh span{transition:none}.life-hex-preview__card.is-selected{animation:none}}

/* Imported Life Hex card component: source assets remain isolated inside the homepage preview. */
.life-hex-preview__card{--preview-color:#dfc67c;--preview-glow:rgba(223,198,124,.25);display:block;min-height:0;padding:0;overflow:visible;border:0;background:transparent;box-shadow:none;aspect-ratio:280 / 430;isolation:isolate}.life-hex-preview__card:before,.life-hex-preview__card:after{display:none}.life-hex-preview__card.is-prismatic{--preview-color:#d6c1ff;--preview-glow:rgba(202,172,255,.30);background:transparent;border:0}.life-hex-preview__card.is-silver{--preview-color:#d4e2e6;--preview-glow:rgba(188,213,222,.25);background:transparent;border:0}.life-hex-preview__frame{position:absolute;top:0;left:50%;z-index:0;display:block;width:145%;height:100%;max-width:none;pointer-events:none;transform:translateX(-50%);filter:drop-shadow(0 24px 26px rgba(0,0,0,.4)) drop-shadow(0 0 8px var(--preview-glow));transition:filter .24s var(--ease),transform .24s var(--ease)}.life-hex-preview__card-content{position:absolute;inset:0;z-index:1;display:block;pointer-events:none}.life-hex-preview__card:hover{border:0;background:transparent;box-shadow:none;transform:translateY(-8px)}.life-hex-preview__card:hover .life-hex-preview__frame{filter:drop-shadow(0 30px 28px rgba(0,0,0,.48)) drop-shadow(0 0 18px var(--preview-glow));transform:translateX(-50%) scale(1.012)}.life-hex-preview__card.is-muted{transform:scale(.92);opacity:.18;filter:saturate(.25)}.life-hex-preview__card.is-selected{border:0;background:transparent;box-shadow:none;animation:none;transform:translateY(-8px) scale(1.035)}.life-hex-preview__card.is-selected .life-hex-preview__frame{filter:drop-shadow(0 32px 30px rgba(0,0,0,.5)) drop-shadow(0 0 28px var(--preview-glow));animation:lifeHexCardSeal .8s var(--ease) both}.life-hex-preview__icon{position:absolute;top:25%;left:50%;width:110px;height:110px;margin:0;transform:translate(-50%,-50%);border:0;background:radial-gradient(circle,var(--preview-glow),transparent 67%)}.life-hex-preview__icon img{width:86px;height:86px;filter:drop-shadow(0 9px 12px rgba(0,0,0,.5))}.life-hex-preview__name{position:absolute;top:40%;left:50%;width:62%;margin:0;overflow:hidden;transform:translate(-50%,-50%);color:#f3f0dd;font-size:clamp(22px,1.65vw,29px);line-height:1.15;white-space:nowrap;text-overflow:ellipsis}.life-hex-preview__effect{position:absolute;top:53%;left:50%;display:-webkit-box;width:52%;margin:0;overflow:hidden;transform:translateX(-50%);color:#f3f0dd;font-size:13px;font-weight:600;line-height:1.55;text-wrap:pretty;-webkit-box-orient:vertical;-webkit-line-clamp:3}.life-hex-preview__detail{position:absolute;top:69%;left:50%;display:-webkit-box;width:54%;min-height:0;margin:0;overflow:hidden;transform:translateX(-50%);color:rgba(234,235,214,.7);font-size:11px;line-height:1.65;text-wrap:pretty;-webkit-box-orient:vertical;-webkit-line-clamp:3}.life-hex-preview__card.is-selected .life-hex-preview__icon img{animation:lifeHexIconPulse .68s .12s var(--ease) both}@keyframes lifeHexCardSeal{0%{filter:drop-shadow(0 24px 26px rgba(0,0,0,.4)) drop-shadow(0 0 8px var(--preview-glow))}55%{filter:drop-shadow(0 30px 28px rgba(0,0,0,.48)) drop-shadow(0 0 36px var(--preview-glow))}100%{filter:drop-shadow(0 32px 30px rgba(0,0,0,.5)) drop-shadow(0 0 28px var(--preview-glow))}}@keyframes lifeHexIconPulse{0%{transform:scale(1)}48%{transform:scale(1.09)}100%{transform:scale(1)}}
.life-hex-preview__stage.is-clearing{pointer-events:none}.life-hex-preview__stage[hidden]{display:none}.life-hex-preview__stage.is-clearing .life-hex-preview__card{animation:lifeHexPreviewVanish .5s cubic-bezier(.35,0,.15,1) both}.life-hex-preview__stage.is-clearing .life-hex-preview__card.is-selected{animation-delay:.08s}@keyframes lifeHexPreviewVanish{to{opacity:0;filter:blur(7px) saturate(.3);transform:translateY(-24px) scale(.88)}}.life-hex-preview__footer.is-unlocked{justify-content:center;border-top-color:rgba(229,195,113,.38)}.life-hex-preview__unlock{display:inline-flex;align-items:center;gap:12px;padding:14px 22px;border:1px solid rgba(232,202,126,.72);background:rgba(224,189,101,.08);color:#f7e5af;font-size:14px;letter-spacing:.12em;box-shadow:0 0 0 1px rgba(255,246,204,.07) inset,0 16px 36px rgba(0,0,0,.25);transition:transform .2s var(--ease),background .2s ease,box-shadow .2s ease}.life-hex-preview__unlock[hidden]{display:none}.life-hex-preview__unlock:hover{background:rgba(224,189,101,.16);box-shadow:0 0 24px rgba(225,190,106,.18),0 16px 36px rgba(0,0,0,.25);transform:translateY(-3px)}.life-hex-preview__unlock:focus-visible{outline:2px solid #fff0b8;outline-offset:5px}.life-hex-preview__unlock span{font-size:19px;line-height:1}
@media (max-width:760px){.life-hex-preview__card{max-width:300px;margin:0 auto}.life-hex-preview__icon{width:94px;height:94px}.life-hex-preview__icon img{width:74px;height:74px}.life-hex-preview__name{font-size:26px}.life-hex-preview__effect{font-size:12px}.life-hex-preview__detail{font-size:10px}}
@media (prefers-reduced-motion:reduce){.life-hex-preview__frame,.life-hex-preview__card.is-selected .life-hex-preview__frame,.life-hex-preview__card.is-selected .life-hex-preview__icon img{animation:none;transition:none}}

/* Life Hex preview: framed like a quiet corridor in the existing home-story. */
.life-hex-preview{min-height:100svh;padding:clamp(108px,13vh,140px) 5vw 72px;justify-content:flex-start;background:#07110f}.life-hex-preview:before{background:linear-gradient(90deg,rgba(3,8,10,.84) 0%,rgba(3,10,13,.63) 52%,rgba(3,8,10,.78) 100%),linear-gradient(0deg,rgba(1,5,7,.72),rgba(1,5,7,.16) 58%,rgba(1,5,7,.7)),url("assets/concepts/life-hex-corridor.png") center/cover no-repeat}.life-hex-preview:after{inset:28px;border-color:rgba(202,220,223,.14)}.life-hex-preview__ambient{opacity:.35}.life-hex-preview__head{max-width:560px;margin:0 0 clamp(24px,4vh,44px);text-align:left}.life-hex-preview__head h2{font-size:clamp(48px,5.5vw,84px);letter-spacing:.015em}.life-hex-preview__head span{max-width:280px;margin-top:15px;font-size:13px;line-height:1.7}.life-hex-preview__stage{width:min(1040px,100%);margin:0;gap:clamp(12px,2vw,26px)}.life-hex-preview__stage.scroll-reveal{transition-delay:120ms}.life-hex-preview__unlock-veil{position:absolute;inset:0;z-index:2;background:rgba(1,8,11,.38);backdrop-filter:blur(0);opacity:0;pointer-events:none;transition:opacity .28s ease,backdrop-filter .28s ease}.life-hex-preview.is-unlocked .life-hex-preview__unlock-veil{opacity:1;backdrop-filter:blur(9px)}.life-hex-preview__footer{position:absolute;inset:0;z-index:3;display:grid;width:auto;margin:0;padding:0;border:0;place-items:center;pointer-events:none}.life-hex-preview__footer.is-unlocked{border:0}.life-hex-preview__unlock{display:block;max-width:90%;border:0;background:transparent;color:rgba(247,239,210,.86);font-family:"STKaiti","KaiTi","Kaiti SC",serif;font-size:clamp(42px,7vw,112px);font-weight:600;letter-spacing:.16em;line-height:1.04;text-align:center;text-shadow:0 0 24px rgba(235,216,159,.2);-webkit-text-stroke:1px rgba(255,247,215,.58);opacity:0;pointer-events:none;transform:translateY(16px);transition:opacity .28s ease,transform .34s var(--ease),text-shadow .22s ease}.life-hex-preview__unlock.is-visible{opacity:1;pointer-events:auto;transform:none}.life-hex-preview__unlock:hover{border:0;background:transparent;box-shadow:none;color:#fff6d4;transform:translateY(-3px);text-shadow:0 0 30px rgba(239,215,145,.5)}.life-hex-preview__unlock:focus-visible{outline:1px solid rgba(255,243,192,.9);outline-offset:12px}.life-hex-preview__card.is-muted{opacity:1;filter:none;transform:none}.life-hex-preview__card.is-selected{transform:translateY(-8px) scale(1.035)}
@media (max-width:760px){.life-hex-preview{padding:108px 22px 48px}.life-hex-preview__head{margin-bottom:28px}.life-hex-preview__stage{margin:0 auto}.life-hex-preview__unlock{font-size:clamp(38px,11vw,62px);letter-spacing:.1em}.life-hex-preview:after{inset:12px}}
.life-hex-preview__unlock{color:rgba(247,239,210,.7);font-size:clamp(38px,5.5vw,88px);letter-spacing:.1em;white-space:nowrap}
.life-hex-preview__unlock:focus-visible{outline:0;text-decoration:underline;text-decoration-color:rgba(255,243,192,.72);text-decoration-thickness:1px;text-underline-offset:.22em}
/* The existing scene observer reveals the copy first, then deals the three cards. */
@media (min-width:761px){.life-hex-preview__stage{grid-template-columns:repeat(3,230px);justify-content:center;width:min(760px,100%);margin:0 auto;gap:20px}.life-hex-preview__stage.scroll-reveal{transition-delay:.52s}.life-hex-preview__card{width:230px;opacity:0;transform:translateY(32px) scale(.96);transition:opacity .42s var(--ease),transform .5s var(--ease),filter .24s ease}.life-hex-preview__stage.is-dealt .life-hex-preview__card{opacity:1;transform:none}.life-hex-preview__stage.is-dealt .life-hex-preview__card:nth-child(1){transition-delay:.12s}.life-hex-preview__stage.is-dealt .life-hex-preview__card:nth-child(2){transition-delay:.29s}.life-hex-preview__stage.is-dealt .life-hex-preview__card:nth-child(3){transition-delay:.46s}.life-hex-preview__stage.is-dealt .life-hex-preview__card:hover{transform:translateY(-8px) scale(1.012);transition-delay:0s}.life-hex-preview__stage.is-dealt .life-hex-preview__card.is-selected{transform:translateY(-8px) scale(1.035);transition-delay:0s}}
@media (min-width:761px) and (max-width:1180px){.life-hex-preview__stage{grid-template-columns:repeat(3,200px);width:min(650px,100%);gap:12px}.life-hex-preview__card{width:200px}}
.life-hex-preview__unlock{font-size:clamp(20px,2.75vw,44px)}

/* Desktop: cards remain prominent while each choice gets clear breathing room. */
@media (min-width:1181px){.life-hex-preview__stage{grid-template-columns:repeat(3,270px);width:min(994px,100%);gap:92px}.life-hex-preview__card{width:270px}}

/* Tool story: copy appears first; its paired product screens follow. */
.tools-chapter{--tool-count:2;min-height:calc((var(--tool-count) + 1) * 300svh);height:calc((var(--tool-count) + 1) * 300svh);overflow:visible;background:#090c0d}
.tools-chapter__sticky{background:linear-gradient(90deg,rgba(6,8,9,.9),rgba(6,8,9,.58),rgba(6,8,9,.88)),url("assets/concepts/lab-space.png") center/cover no-repeat}
.tools-chapter__intro{position:absolute;top:42%;left:50%;width:min(48vw,760px);text-align:center;opacity:var(--intro);transform:translate(-50%,calc(-50% + 34px * (1 - var(--intro))))}
.tools-chapter__intro h2{margin:0;font-size:clamp(48px,5.3vw,86px);line-height:1.05;letter-spacing:0;white-space:nowrap}
.tools-chapter__intro>p:last-child{max-width:300px;margin:25px auto 0;color:#a7b1b0;line-height:1.85}
.tool-feature-list{position:absolute;inset:0}
.tool-feature{position:absolute;inset:0;width:100%;height:100%;display:block;padding:0;border:0;opacity:var(--tool-opacity,0);transform:none;pointer-events:none}
.tool-feature figure{position:absolute;top:50%;width:min(18vw,300px);height:auto;aspect-ratio:var(--tool-media-ratio,4 / 3);min-height:180px;max-height:min(62vh,620px);margin:0;padding:8px;overflow:hidden;border:1px solid rgba(237,244,242,.48);background:#0b0e10;box-shadow:0 30px 90px rgba(0,0,0,.58);opacity:var(--tool-media-opacity,0);transform:translateY(calc(-50% + 34px * (1 - var(--tool-media-opacity,0))))}
.tool-feature figure:first-of-type{left:7vw}
.tool-feature figure:nth-of-type(2){right:7vw}
.tool-feature img,.tool-feature video{display:block;width:100%;height:100%;object-fit:contain;object-position:center top;background:#070a0b}
.tool-feature__copy{position:absolute;top:42%;left:50%;width:min(42vw,660px);margin:0;text-align:center;transform:translate(-50%,-50%)}
.tool-feature span{display:block;margin-bottom:16px;color:#9aa5a4;font-size:9px;letter-spacing:.22em}
.tool-feature h3{margin:0;font-size:clamp(46px,4.6vw,76px);line-height:1.05;letter-spacing:0;white-space:nowrap}
.tool-feature p{max-width:350px;margin:22px auto 0;color:#a8b2b1;font-size:14px;line-height:1.8}
.tool-feature__link{display:inline-block;margin-top:24px;color:#dce5e2;font-size:11px;letter-spacing:.08em;border-bottom:1px solid rgba(220,229,226,.45);padding-bottom:7px;pointer-events:auto}
.tool-feature__product{margin-top:14px!important;margin-bottom:0;font-size:17px!important;color:#e0e7e5!important;letter-spacing:.04em}
.tool-feature__search{margin-top:2px!important;font-size:10px!important;color:#899695!important;letter-spacing:.12em}
.tools-chapter__folio{left:8vw}
/* Find chapter: its own sequence ends only after the contact list has left the scene. */
.find{min-height:300svh;height:300svh;padding:0;display:block;overflow:visible;background:#d8dddc url("assets/concepts/find-space.png") center/cover no-repeat;--find-title:0;--find-copy:0;--find-footer:0}
.find:before{position:sticky;top:0;height:100svh;display:block;background:linear-gradient(90deg,rgba(222,226,225,.94),rgba(222,226,225,.7) 55%,rgba(222,226,225,.48))}
.find__inner{position:sticky;top:0;width:100%;max-width:none;height:100svh;margin-top:-100svh;padding:19vh 8vw 8vh;opacity:1!important;transform:none!important}
.find h2{position:absolute;top:21vh;left:8vw;margin:0;font-size:clamp(64px,8vw,112px);letter-spacing:0;opacity:var(--find-title);transform:translateY(calc(34px * (1 - var(--find-title))))}
.find__inner>.eyebrow{display:none}
.find__inner>p:not(.eyebrow){position:absolute;top:43vh;left:8vw;max-width:340px;margin:0;color:#43504e;font-size:15px;line-height:1.9;opacity:var(--find-copy);transform:translateY(calc(24px * (1 - var(--find-copy))))}
.find .socials{position:absolute;top:20vh;right:8vw;width:min(45vw,720px);margin:0;display:block;border-top:1px solid rgba(7,10,10,.38)}
.find .socials a{width:100%;min-height:92px;padding:0 4px;border:0;border-bottom:1px solid rgba(7,10,10,.25);background:transparent;opacity:var(--social-progress,0);transform:translateY(calc(24px * (1 - var(--social-progress,0))))}
.find .socials a:hover{padding-left:16px;transform:none}
.find .social-icon{border-color:rgba(7,10,10,.46)}
.find .social-name{position:relative;display:inline-flex;align-items:center;gap:12px;white-space:nowrap}
.find .socials a img{left:calc(100% + 16px);right:auto;top:50%;bottom:auto;width:132px;padding:0;background:transparent;border:0;box-shadow:none;transform:translateY(calc(-50% + 8px));z-index:4}
.find .socials a:hover img{transform:translateY(-50%)}
.find .socials a.is-unavailable{cursor:default}.find .socials a.is-unavailable:hover{padding-left:4px;background:transparent}.find .socials a.is-unavailable i{opacity:.35}
.music-player{position:absolute;top:61svh;left:8vw;width:min(34vw,520px);--music-progress:0%;color:#111718}
.music-player__top{display:grid;grid-template-columns:64px minmax(0,1fr) auto;align-items:center;gap:13px;padding-bottom:18px;border-bottom:1px solid rgba(7,10,10,.38)}
.music-player__record{position:relative;width:64px;aspect-ratio:1;border-radius:50%;background:repeating-radial-gradient(circle at 50% 50%,#1b2323 0 1px,#111718 2px 4px,#202929 5px 6px);box-shadow:0 9px 18px rgba(7,10,10,.2)}
.music-player__record:before{content:"";position:absolute;inset:25%;border:1px solid rgba(226,234,232,.35);border-radius:50%;background:#7f8a89}.music-player__record:after{content:"";position:absolute;inset:calc(50% - 4px);border-radius:50%;background:#101515}.music-player.is-playing .music-player__record{animation:record-spin 5s linear infinite}
.music-player__meta{min-width:0}.music-player__meta p{margin:0 0 6px;color:#5f6a69;font-size:9px;letter-spacing:.18em}.music-player__meta strong{display:block;overflow:hidden;font-size:17px;font-weight:500;letter-spacing:0;text-overflow:ellipsis;white-space:nowrap}.music-player__meta small{display:block;margin-top:7px;color:#5c6665;font-size:10px;letter-spacing:.08em}
.music-player__controls{display:flex;align-items:center;gap:8px}.music-player__play{display:grid;place-items:center;width:38px;height:38px;padding:0;border:1px solid #151c1c;border-radius:50%;color:#101617;transition:background .18s ease,color .18s ease,transform .18s var(--ease)}.music-player__play:hover{background:#101617;color:#eef2f0;transform:scale(1.06)}.music-player__play:focus-visible,.music-player__icon-button:focus-visible{outline:1px solid #101617;outline-offset:5px}.music-player__play-icon{display:block;width:0;height:0;margin-left:3px;border-top:7px solid transparent;border-bottom:7px solid transparent;border-left:11px solid currentColor}.music-player.is-playing .music-player__play-icon{width:11px;height:14px;margin-left:0;border:0;background:linear-gradient(90deg,currentColor 0 36%,transparent 36% 64%,currentColor 64%)}.music-player__icon-button{display:grid;place-items:center;width:27px;height:27px;padding:0;color:#202827;transition:color .16s ease,transform .16s var(--ease)}.music-player__icon-button svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.music-player__next svg path:first-child{fill:currentColor;stroke:none}.music-player__icon-button:hover{color:#090d0e;transform:translateY(-1px)}.music-player__icon-button.is-active{color:#090d0e}.music-player__icon-button.is-active svg{stroke-width:2.25}.music-player__icon-button:disabled{opacity:.3;cursor:not-allowed;transform:none}.music-player__volume{display:flex;align-items:center;gap:6px;margin-left:2px;color:#5f6a69;font-size:8px;letter-spacing:.14em}.music-player input{accent-color:#111718}.music-player__volume input{width:42px}
.music-player__wave{position:relative;height:36px;margin-top:16px}.music-player__bars{position:absolute;inset:0;display:flex;align-items:center;gap:3px;overflow:hidden}.music-player__bars:before{content:"";position:absolute;inset:0 auto 0 0;width:var(--music-progress);background:rgba(17,23,24,.18);pointer-events:none;transition:width .1s linear}.music-player__bars i{position:relative;z-index:1;display:block;flex:1;min-width:1px;background:rgba(17,23,24,.35)}.music-player__bars i:nth-child(3n){height:38%}.music-player__bars i:nth-child(3n+1){height:66%}.music-player__bars i:nth-child(4n){height:88%}.music-player__bars i:nth-child(5n){height:48%}.music-player__bars i:nth-child(7n){height:74%}.music-player__seek{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}.music-player__seek:focus-visible{opacity:1;outline:1px solid #111718;outline-offset:4px}
@keyframes record-spin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.music-player.is-playing .music-player__record{animation:none}}
.find footer{position:absolute;right:8vw;bottom:5vh;left:8vw;z-index:3;opacity:var(--find-footer);transform:translateY(calc(18px * (1 - var(--find-footer))))}
.site-footer__meta{display:flex;align-items:center;gap:22px}.copyright-note{position:relative}.copyright-note__trigger{position:relative;padding:0 0 3px;color:#273130;font-size:10px;letter-spacing:.08em;border-bottom:1px solid rgba(16,22,23,.34);transition:color .2s ease,border-color .2s ease}.copyright-note__trigger:hover{color:#090d0e;border-color:#090d0e}.copyright-note__trigger:focus-visible{outline:1px solid #101617;outline-offset:5px}.copyright-note__panel{position:absolute;left:0;bottom:calc(100% + 16px);width:min(390px,calc(100vw - 44px));padding:18px 20px;color:#dfe6e4;background:#111718;border:1px solid rgba(226,234,232,.3);box-shadow:0 16px 42px rgba(8,12,12,.24);opacity:0;visibility:hidden;pointer-events:none;transform:translateY(8px);transition:opacity .2s ease,visibility .2s ease,transform .28s var(--ease)}.copyright-note__panel:after{content:"";position:absolute;left:22px;top:100%;width:9px;height:9px;background:#111718;border-right:1px solid rgba(226,234,232,.3);border-bottom:1px solid rgba(226,234,232,.3);transform:translateY(-5px) rotate(45deg)}.copyright-note__panel p{margin:0;font-size:12px;line-height:1.85;letter-spacing:0}.copyright-note__panel a{color:#fff;text-decoration:underline;text-underline-offset:4px}.copyright-note:not(.is-dismissed):hover .copyright-note__panel,.copyright-note.is-open .copyright-note__panel{opacity:1;visibility:visible;pointer-events:auto;transform:none}
.find .text-link--small{position:absolute;top:calc(43vh + 72px);left:8vw;z-index:3;margin:0;color:#101617}
.works__head .work-cta{position:absolute;left:calc(clamp(120px,10vw,180px) + 1em);top:clamp(76px,6.5vw,98px);margin:0;padding:4px 0 9px;color:#eef3f1;font-size:clamp(14px,1.25vw,18px);letter-spacing:.08em;white-space:nowrap;transform-origin:left center;transition:color .22s ease,transform .24s var(--ease);animation:workCtaBreath 2.9s var(--ease) infinite}
.works__head .work-cta:hover{transform:scale(1.06);color:#fff}
@keyframes workCtaBreath{0%,100%{text-shadow:0 0 0 rgba(244,247,242,0)}50%{text-shadow:0 0 11px rgba(244,247,242,.72),0 0 25px rgba(221,232,228,.3)}}
@media (prefers-reduced-motion:reduce){.works__head .work-cta{animation:none;text-shadow:0 0 9px rgba(244,247,242,.4)}}
/* Reduced motion keeps every scroll chapter readable without staged movement. */
@media (prefers-reduced-motion:reduce){.road-chapter__eyebrow,.road-chapter__book,.chapter-index,.road-chapter__copy h2,.road-chapter__copy>p.road-chapter__description,.archive-cta,.tools-chapter__intro,.tool-feature,.tool-feature figure,.find h2,.find__inner>p:not(.eyebrow),.find .socials a,.find footer{opacity:1!important;transform:none!important}.archive-cta__label{animation:none;text-shadow:0 0 10px rgba(232,207,151,.36)}.road-chapter__book img{transition:none}}

/* Homepage pointer depth and homepage CTA are independent from archive interactions. */
.hero{--pointer-x:50%;--pointer-y:50%;--hero-backdrop-x:0px;--hero-backdrop-y:0px;--hero-glass-one-x:0px;--hero-glass-one-y:0px;--hero-glass-two-x:0px;--hero-glass-two-y:0px;--hero-wall-x:0px;--hero-wall-y:0px}
.hero__backdrop{transform:translate3d(var(--hero-backdrop-x),var(--hero-backdrop-y),0) scale(1.025);transition:transform .72s var(--ease);will-change:transform}
.hero__pointer-sheen{position:absolute;inset:0;z-index:1;pointer-events:none;opacity:0;background:radial-gradient(360px circle at var(--pointer-x) var(--pointer-y),rgba(226,238,239,.16),rgba(204,223,225,.055) 23%,transparent 64%);mix-blend-mode:screen;transition:opacity .35s ease}
.hero.is-pointer-active .hero__pointer-sheen{opacity:1}
.hero__glass{z-index:2;will-change:transform}
.hero__glass--one{transform:translate3d(var(--hero-glass-one-x),var(--hero-glass-one-y),0) skewY(-5deg) rotateY(12deg)}
.hero__glass--two{transform:translate3d(var(--hero-glass-two-x),var(--hero-glass-two-y),0) skewY(5deg) rotateY(-16deg)}
.hero:hover .hero__glass--one{transform:translate3d(var(--hero-glass-one-x),var(--hero-glass-one-y),0) skewY(-5deg) rotateY(18deg)}
.hero:hover .hero__glass--two{transform:translate3d(var(--hero-glass-two-x),var(--hero-glass-two-y),0) skewY(5deg) rotateY(-20deg)}
.hero__wall{z-index:2;transform:translate3d(var(--hero-wall-x),var(--hero-wall-y),0) rotateY(-8deg);transition:transform .72s var(--ease);will-change:transform}
/* Keep the homepage copy block inside the intended left composition. */
.hero__copy{top:22%}
/* The homepage name alone carries the handwritten entrance and pointer depth. */
.hero h1{position:relative;isolation:isolate;font-family:"Ma Shan Zheng","KaiTi","STKaiti",cursive;font-weight:400;letter-spacing:.02em;color:#fffdf2;text-shadow:0 1px 1px rgba(255,248,226,.45),0 12px 36px rgba(0,0,0,.32);will-change:clip-path,transform}
.hero-title-pending .hero h1{opacity:0}
.hero h1::before{content:attr(data-hero-title);position:absolute;inset:0;z-index:-2;color:rgba(218,227,223,.52);text-shadow:0 0 25px rgba(210,226,218,.45),0 0 62px rgba(208,224,214,.18);opacity:0;filter:blur(18px);transform:scale(1.045);pointer-events:none}
.hero h1::after{content:attr(data-hero-title);position:absolute;inset:0;z-index:-1;color:rgba(208,222,221,.4);text-shadow:calc(var(--hero-title-shadow-x,0px) * -1) calc(var(--hero-title-shadow-y,0px) * -1) 0 rgba(4,8,9,.92),var(--hero-title-shadow-x,0px) var(--hero-title-shadow-y,0px) 16px rgba(231,242,241,.22);opacity:0;transform:translate3d(var(--hero-title-shadow-x,0px),var(--hero-title-shadow-y,0px),0);transition:opacity 120ms var(--ease),transform 120ms var(--ease);pointer-events:none}
.hero.is-pointer-active h1::after{opacity:.62}
.hero-title-ready .hero h1{animation:heroInkGather 3s var(--ease) both,heroInkBreath 6s 3.1s ease-in-out infinite}
.hero-title-ready .hero h1::before{animation:heroInkCloud 3s var(--ease) both}
@keyframes heroInkGather{0%{opacity:0;filter:blur(20px);transform:translate3d(-5px,4px,0) scale(1.06)}22%{opacity:.36;filter:blur(14px);transform:translate3d(0,1px,0) scale(1.035)}64%{opacity:.9;filter:blur(3px);transform:translate3d(0,0,0) scale(1.008)}100%{opacity:1;filter:blur(0);transform:translate3d(0,0,0) scale(1)}}
@keyframes heroInkCloud{0%{opacity:0;filter:blur(28px);transform:scale(1.1)}18%{opacity:.76}62%{opacity:.3;filter:blur(13px);transform:scale(1.04)}100%{opacity:0;filter:blur(4px);transform:scale(1)}}
@keyframes heroInkBreath{0%,100%{text-shadow:0 1px 1px rgba(255,248,226,.45),0 12px 36px rgba(0,0,0,.32)}50%{text-shadow:0 1px 2px rgba(255,251,234,.56),0 12px 42px rgba(0,0,0,.38),0 0 17px rgba(241,230,198,.16)}}
.hero-cta{display:inline-flex;align-items:center;gap:0;margin-top:34px;padding:4px 0;border:0;color:#f1f3ef;font-family:"STKaiti","KaiTi","Kaiti SC","FangSong",serif;font-size:clamp(38px,3.3vw,58px);font-weight:600;letter-spacing:.06em;line-height:1;text-decoration:none;transform:translate3d(var(--cta-x,0px),var(--cta-y,0px),0);transition:color .2s var(--ease),transform .24s var(--ease)}
.hero-cta:hover{gap:0;color:#fff}
.hero-cta:focus-visible{outline:1px solid #fff;outline-offset:8px}
.hero-cta .hero-cta__label{display:inline-block;font:inherit;line-height:inherit;transform-origin:left center;will-change:transform;animation:heroInvitation 2.9s var(--ease) infinite}
@keyframes heroInvitation{0%,100%{transform:scale(1);text-shadow:0 0 0 rgba(244,247,242,0)}50%{transform:scale(1.04);text-shadow:0 0 13px rgba(244,247,242,.68),0 0 28px rgba(221,232,228,.24)}}
@media (prefers-reduced-motion:reduce){.hero-title-pending .hero h1{opacity:1}.hero-cta__label{animation:none;text-shadow:0 0 10px rgba(244,247,242,.38)}.hero-title-ready .hero h1,.hero-title-ready .hero h1::before{animation:none}.hero h1{clip-path:none;transform:none;filter:none}.hero h1::before,.hero h1::after{display:none}.hero__backdrop,.hero__wall,.hero__glass,.hero-cta{transition:none!important}.hero__pointer-sheen{display:none}}

/* Account sequence calls to action share one clear, stable button treatment. */
.identity-sequence__copy .account-cta{display:inline-flex;align-items:center;justify-content:center;gap:22px;min-height:46px;margin-top:30px;padding:0 18px;border:1px solid rgba(241,246,244,.85);background:#eef2f0;color:#0b0f10;font-size:11px;font-weight:600;letter-spacing:.12em;line-height:1;opacity:var(--left-action);transform:translateY(calc(18px * (1 - var(--left-action))));transition:background 200ms var(--ease),color 200ms var(--ease),border-color 200ms var(--ease),box-shadow 200ms var(--ease)}
.identity-sequence__pane--feng .account-cta{opacity:var(--right-action);transform:translateY(calc(18px * (1 - var(--right-action))))}
.account-cta .account-cta__mark{font-family:Inter,"Noto Sans SC",sans-serif;font-size:16px;line-height:1;transition:transform 200ms var(--ease)}
.account-cta:hover{background:transparent;color:#f4f7f5;border-color:#f4f7f5;box-shadow:0 0 22px rgba(227,240,236,.13)}
.account-cta:hover .account-cta__mark{transform:translate(3px,-3px)}
.account-cta:focus-visible{outline:1px solid #f4f7f5;outline-offset:6px}
@media (prefers-reduced-motion:reduce){.identity-sequence__copy .account-cta{opacity:1!important;transform:none!important}}

/* Account buttons echo the homepage's invitation tone without sharing its selectors. */
.identity-sequence{height:700svh;min-height:700svh}
.identity-sequence__copy .account-cta{align-items:baseline;gap:16px;min-height:0;margin-top:34px;padding:4px 0;border:0;background:transparent;color:#f1f3ef;font-family:"STKaiti","KaiTi","Kaiti SC","FangSong",serif;font-size:clamp(30px,2.5vw,46px);font-weight:600;letter-spacing:.06em;line-height:1;box-shadow:none;transition:color 200ms var(--ease)}
.account-cta .account-cta__label{display:inline-block;font:inherit;line-height:inherit;transform-origin:left center;will-change:transform;animation:accountInvitation 2.9s var(--ease) infinite}
.account-cta .account-cta__mark{font-family:Inter,"Noto Sans SC",sans-serif;font-size:.68em;transition:transform 200ms var(--ease)}
.account-cta:hover{background:transparent;color:#fff;border-color:transparent;box-shadow:none}
.account-cta:hover .account-cta__mark{transform:translate(7px,-4px)}
@keyframes accountInvitation{0%,100%{transform:scale(1);text-shadow:0 0 0 rgba(244,247,242,0)}50%{transform:scale(1.04);text-shadow:0 0 13px rgba(244,247,242,.68),0 0 28px rgba(221,232,228,.24)}}
@media (prefers-reduced-motion:reduce){.account-cta .account-cta__label{animation:none;text-shadow:0 0 10px rgba(244,247,242,.38)}}

.identity-sequence__copy .identity-sequence__intro{margin-top:12px;color:#c3ccca;font-family:"STKaiti","KaiTi","Kaiti SC","FangSong",serif;font-size:15px;line-height:1.65}
.identity-sequence__pane--feng .account-cta:hover .account-cta__mark{transform:translate(-7px,-4px)}

/* Both title faces are SIL OFL licensed and free for commercial use. */
.identity-sequence__pane--main .identity-sequence__copy h2{font-family:"Ma Shan Zheng","KaiTi","STKaiti",cursive;font-weight:400;letter-spacing:.03em}
.identity-sequence__pane--feng .identity-sequence__copy h2{font-family:"Noto Sans SC",sans-serif;font-weight:900;letter-spacing:.035em;-webkit-text-stroke:.45px currentColor}
.identity-sequence__pane--feng .account-cta__label{font-family:"Noto Sans SC",sans-serif;font-size:clamp(26px,2.15vw,40px);font-weight:900;letter-spacing:.035em}
.identity-sequence__pane--feng .identity-sequence__intro,.identity-sequence__pane--feng .identity-sequence__description{font-size:14px;line-height:1.75}
.identity-sequence__pane--feng .identity-sequence__copy{width:620px;max-width:none}
.identity-sequence__pane--feng .identity-sequence__copy>p.identity-sequence__intro,.identity-sequence__pane--feng .identity-sequence__copy>p.identity-sequence__description{width:620px;max-width:none;font-family:"Noto Sans SC",sans-serif;font-weight:400}

/* Desktop chapter-index navigation: transparent over the opening scene, denser after scroll. */
@media (min-width:1181px){
  .site-header{height:76px;padding:0 5vw;border-bottom-color:transparent;background:linear-gradient(180deg,rgba(5,6,7,.68),rgba(5,6,7,0));backdrop-filter:blur(6px);transition:height .32s var(--ease),background .32s ease,border-color .32s ease,backdrop-filter .32s ease}
  .site-header.is-scrolled{height:66px;border-bottom-color:rgba(238,244,245,.12);background:rgba(5,7,8,.78);backdrop-filter:blur(18px)}
  .brand{gap:0;color:#eef1f0;font-size:16px;letter-spacing:.04em}
  .main-nav{gap:10px;font-family:"Noto Serif SC","Songti SC",serif;font-size:15px;font-weight:500;color:#899595}
  .main-nav a{position:relative;display:grid;place-items:center;min-width:3.5em;padding:13px 0;line-height:1;color:#dce4e2;letter-spacing:.04em;opacity:.1;transform:scale(1);transform-origin:center;transition:color .2s ease,opacity .2s ease,transform .28s var(--ease)}
  .main-nav a:hover{color:#f1f4f2;opacity:.68;transform:scale(1.07)}
  .main-nav a.is-active{color:#fff;opacity:1;transform:scale(1.2)}
  .header-tools{align-items:center;gap:14px}
  .language-menu{position:relative}
  .language-menu__trigger{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-width:38px;height:32px;padding:0 3px;color:#dce4e2;font-size:13px;letter-spacing:.06em;transition:color .18s ease}
  .language-menu__trigger:hover,.language-menu__trigger[aria-expanded="true"]{color:#fff}
  .language-menu__trigger:focus-visible,.lang-option:focus-visible,.sound-button:focus-visible{outline:1px solid #fff;outline-offset:5px}
  .language-menu__chevron{width:6px;height:6px;border-right:1px solid currentColor;border-bottom:1px solid currentColor;transform:translateY(-2px) rotate(45deg);transition:transform .18s ease}
  .language-menu__trigger[aria-expanded="true"] .language-menu__chevron{transform:translateY(1px) rotate(225deg)}
  .language-menu__panel{position:absolute;top:calc(100% + 8px);right:-7px;z-index:45;display:grid;min-width:64px;padding:5px;border:1px solid rgba(238,244,245,.2);background:rgba(8,11,12,.94);box-shadow:0 12px 26px rgba(0,0,0,.26);backdrop-filter:blur(14px)}
  .language-menu__panel[hidden]{display:none}
  .lang-option{min-height:30px;padding:0 10px;text-align:left;color:#819090;font-size:12px;letter-spacing:.07em;transition:color .16s ease,background .16s ease}
  .lang-option:hover,.lang-option.is-active{color:#fff;background:rgba(255,255,255,.08)}
  .sound-button{display:inline-grid;place-items:center;width:32px;height:32px;padding:0;color:#899595;font-size:10px;transition:color .22s ease}
  .sound-button:hover,.sound-button.is-playing{color:#f1f4f2}
  .sound-button .sound-icon{display:inline-grid;place-items:center;width:13px;height:13px;margin:0;opacity:1;color:currentColor;font-size:9px;line-height:1;transition:color .22s ease}
  .sound-button.is-playing .sound-icon{font-size:0}
  .sound-button.is-playing .sound-icon::after{content:"Ⅱ";font-size:10px;letter-spacing:-.12em}
  .petal-button{display:inline-grid;place-items:center;width:32px;height:32px;padding:0;color:#899595;transition:color .18s ease,opacity .18s ease}
  .petal-button:hover,.petal-button.is-active{color:#f0d7dc}
  .petal-button__icon{display:block;width:17px;height:17px;margin:0;background:url("assets/effects/petal.png") center/contain no-repeat;opacity:.62;transform:rotate(-18deg);transition:opacity .18s ease,transform .18s var(--ease),filter .18s ease}
  .petal-button:hover .petal-button__icon{opacity:.88;transform:rotate(-7deg) scale(1.08)}
  .petal-button.is-active .petal-button__icon{opacity:1;transform:rotate(8deg) scale(1.08);filter:drop-shadow(0 0 5px rgba(243,185,199,.35))}
  .petal-button:focus-visible{outline:1px solid #fff;outline-offset:5px}
}

.work-play{position:absolute;left:50%;top:50%;z-index:8;display:grid;place-items:center;width:58px;height:58px;padding:0;border:1px solid rgba(236,244,243,.58);border-radius:50%;background:rgba(7,10,11,.38);backdrop-filter:blur(8px);transform:translate(-50%,-50%);color:#f0f4f3;transition:transform .24s var(--ease),opacity .16s ease,background .24s,border-color .24s}.work-play:hover{transform:translate(-50%,-50%) scale(1.08);background:rgba(12,16,17,.72);border-color:#fff}.work-play:focus-visible{outline:1px solid #fff;outline-offset:7px}.work-play svg{width:24px;height:24px;fill:currentColor}.work-play__icon-pause{display:none}.work-play.is-playing .work-play__icon-play{display:none}.work-play.is-playing .work-play__icon-pause{display:block}.work-viewer.is-playing:not(.is-control-visible) .work-play{opacity:0;pointer-events:none;transform:translate(-50%,-50%) scale(.88)}.work-viewer.is-playing:not(.is-control-visible) .work-play:focus-visible{opacity:1;pointer-events:auto}
.work-sound--overlay{top:calc(14svh + 28px);width:68px;height:68px}.work-sound--overlay svg{width:48px;height:48px}
.work-card--has-video video{opacity:1}.work-card--has-video .work-card__art{opacity:0}

/* The still image remains the video's poster while the loop is loading. */
.hero__video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;filter:saturate(.65) contrast(1.12);pointer-events:none}.hero__backdrop{background-image:linear-gradient(90deg,rgba(5,6,7,.93) 0%,rgba(5,6,7,.42) 42%,rgba(5,6,7,.15))}
.petal-canvas{position:fixed;inset:0;z-index:24;pointer-events:none}
.hero__wall--empty .wall-window{background:rgba(8,11,12,.12);box-shadow:0 0 52px rgba(193,225,226,.12),inset 0 0 0 8px rgba(0,0,0,.15)}
.hero__wall--empty .wall-window img{display:block;width:100%;height:100%;object-fit:cover;object-position:center}
.hero__wall--empty .wall-window video{display:block;width:100%;height:100%;object-fit:cover;object-position:center}
.wall-window .wall-caption{z-index:2;max-width:calc(100% - 32px);line-height:1.45;text-shadow:0 1px 12px rgba(0,0,0,.8);pointer-events:none}
.work-card__poster{position:absolute;inset:0;transition:opacity .16s ease}.work-card--has-poster .work-card__art{opacity:0}.work-card--playing .work-card__poster{opacity:0}
.main-nav__pages{display:contents}

.find footer{align-items:flex-start;gap:28px}
.site-footer__meta{display:flex;align-items:center;gap:12px 22px;flex-wrap:wrap;min-width:0}
.site-footer__link{padding:0 0 3px;border-bottom:1px solid rgba(16,22,23,.24);color:#273130;text-decoration:none;transition:color .2s ease,border-color .2s ease}
.site-footer__link:hover{color:#090d0e;border-color:#090d0e}
.site-footer__link:focus-visible{outline:1px solid #101617;outline-offset:5px}
.site-footer__beian{display:inline-flex;align-items:center;gap:6px;padding:0 0 3px;border-bottom:1px solid rgba(16,22,23,.24);color:#273130;font-size:10px;letter-spacing:.08em;text-decoration:none;transition:color .2s ease,border-color .2s ease}.site-footer__beian img{width:16px;height:16px;flex:0 0 auto;object-fit:contain}.site-footer__beian:hover{color:#090d0e;border-color:#090d0e}.site-footer__beian:focus-visible{outline:1px solid #101617;outline-offset:5px}
.find footer>a{flex:0 0 auto}

/* Narrow screens keep the desktop composition gated with an orientation-specific message. */
.desktop-gate__portrait,.desktop-gate__landscape{place-items:center;text-align:center}
.desktop-gate__portrait{display:grid}
.desktop-gate__landscape{display:none}
.desktop-gate__portrait span,.desktop-gate__landscape span{font-size:clamp(18px,6.4vw,24px);white-space:nowrap}
.desktop-gate__portrait small,.desktop-gate__landscape small{display:block;margin-top:12px;color:#849090;font-size:9px;letter-spacing:.18em}
@media (max-width:1180px) and (orientation:landscape){.desktop-gate__portrait{display:none}.desktop-gate__landscape{display:grid}}
@media (min-width:568px) and (max-width:1180px) and (orientation:landscape){.desktop-gate{display:none!important}.site-header,main,.grain,.cursor-ring{display:block!important}.site-header{display:flex!important}}
@media (min-width:1181px){.desktop-gate__portrait,.desktop-gate__landscape{display:none}}

/* Phone visitors can continue into the unchanged desktop composition by choice. */
.desktop-gate__orientation{margin-top:8px!important;color:#aab3b3!important;font-size:10px!important;letter-spacing:.1em!important}
.desktop-gate__force{min-height:44px;margin-top:26px;padding:0 22px;border:1px solid #eef1f0;border-radius:12px;background:#eef1f0;color:#090c0d;font-size:14px;font-weight:600;letter-spacing:.08em;transition:background .18s ease,color .18s ease,border-color .18s ease,transform .18s var(--ease)}
.desktop-gate__notice{margin-top:10px!important;color:#df9a9a!important;font-size:10px!important;letter-spacing:.08em!important}
.desktop-gate__force:focus-visible{outline:2px solid #fff;outline-offset:5px}
@media (hover:hover) and (pointer:fine){.desktop-gate__force:hover{border-color:#fff;background:transparent;color:#fff;transform:translateY(-1px)}}
@media (max-width:1180px){html.is-force-mobile-entry .desktop-gate{display:none!important}html.is-force-mobile-entry .site-header,html.is-force-mobile-entry main,html.is-force-mobile-entry .grain{display:block!important}html.is-force-mobile-entry .site-header{display:flex!important}}
@media (prefers-reduced-motion:reduce){.desktop-gate__force{transition:none}}

/* 来信处：在“找到我”之后，把联系从链接延伸为一封可被好好收下的信。 */
.letters{position:relative;min-height:100svh;padding:clamp(88px,12vh,154px) 8vw 54px;overflow:hidden;background:#111718;color:#e8efed;isolation:isolate}.letters:before{content:"";position:absolute;inset:0;background:linear-gradient(112deg,rgba(4,6,7,.97),rgba(17,24,24,.92) 53%,rgba(47,59,57,.82)),url("assets/concepts/find-space.png") center/cover;filter:saturate(.48);z-index:-2}.letters:after{content:"";position:absolute;inset:0;z-index:-1;background:repeating-linear-gradient(0deg,transparent 0 35px,rgba(220,231,227,.035) 36px 37px)}.letters__inner{position:relative;display:grid;grid-template-columns:minmax(270px,.82fr) minmax(420px,1.18fr);align-items:start;gap:clamp(54px,9vw,150px);max-width:1440px;margin:0 auto}.letters__intro{position:relative;max-width:430px;padding-top:5vh}.letters__intro .eyebrow{margin:0 0 18px;color:#99aaa6;font-size:10px;letter-spacing:.18em}.letters__intro h2{max-width:4em;margin:0;color:#f1f5f2;font-family:"Noto Serif SC","Songti SC",serif;font-size:clamp(64px,7.2vw,116px);font-weight:500;letter-spacing:-.06em;line-height:.94;text-wrap:balance}.letters__intro>p{max-width:310px;margin:28px 0 0;color:#b6c1be;font-size:15px;line-height:1.9}.letters__intro>small{display:block;max-width:300px;margin-top:18px;color:#7f8d89;font-size:11px;line-height:1.7}.letters__write{display:inline-flex;align-items:baseline;gap:16px;margin-top:34px;padding:6px 0;color:#eff5f1;border:0;border-bottom:1px solid rgba(231,241,236,.68);font-family:"Noto Serif SC","Songti SC",serif;font-size:clamp(26px,2.55vw,42px);letter-spacing:.04em;line-height:1.1;transition:color .2s ease,border-color .2s ease,transform .24s var(--ease)}.letters__write b{font-family:Inter,"Noto Sans SC",sans-serif;font-size:.67em;font-weight:500;transition:transform .24s var(--ease)}.letters__write:hover{color:#fff;border-color:#fff;transform:translateY(-2px)}.letters__write:hover b{transform:translate(6px,-4px)}.letters__write:focus-visible,.letters__tabs button:focus-visible,.letters-dialog button:focus-visible,.letters-dialog input:focus-visible,.letters-dialog textarea:focus-visible{outline:1px solid #f4f8f5;outline-offset:5px}.letters__reading{position:relative;min-height:510px;padding:20px 0 0}.letters__tabs{display:flex;gap:24px;padding-bottom:16px;border-bottom:1px solid rgba(224,238,231,.24)}.letters__tabs button{position:relative;padding:0 0 5px;color:#93a19d;font-size:13px;letter-spacing:.08em;transition:color .18s ease}.letters__tabs button:after{content:"";position:absolute;right:0;bottom:-17px;left:0;height:1px;background:#eff6f2;transform:scaleX(0);transform-origin:left;transition:transform .26s var(--ease)}.letters__tabs button[aria-selected="true"]{color:#f1f5f2}.letters__tabs button[aria-selected="true"]:after{transform:scaleX(1)}.letters__list{position:relative;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;margin-top:24px;background:rgba(214,230,222,.16);border:1px solid rgba(214,230,222,.16)}.letters__entry{min-height:180px;padding:25px 27px;background:rgba(13,19,19,.94);transition:background .2s ease,transform .26s var(--ease)}.letters__entry:hover{z-index:1;background:#1b2524;transform:translateY(-4px)}.letters__entry-meta{margin:0;color:#8fa09b;font-size:10px;letter-spacing:.13em}.letters__entry-text{margin:24px 0 0;color:#e9efec;font-family:"Noto Serif SC","Songti SC",serif;font-size:clamp(20px,1.7vw,29px);line-height:1.48;letter-spacing:.015em;text-wrap:pretty}.letters__entry--danmu{min-height:142px}.letters__entry--question{grid-column:span 2;min-height:0;background:#1a2422}.letters__entry-answer{max-width:720px;margin:18px 0 0;padding-top:17px;border-top:1px solid rgba(222,235,228,.22);color:#aab8b3;font-size:14px;line-height:1.9;white-space:pre-wrap}.letters__empty{grid-column:1/-1;min-height:240px;margin:0;display:grid;place-items:center;color:#81908b;font-family:"Noto Serif SC","Songti SC",serif;font-size:22px;letter-spacing:.04em;background:rgba(13,19,19,.94)}.letters__drift{position:absolute;right:0;top:64px;left:0;z-index:2;height:0;pointer-events:none}.letters__drift span{position:absolute;right:5%;top:0;max-width:210px;padding:8px 12px;border:1px solid rgba(231,242,236,.16);color:rgba(238,246,241,.48);background:rgba(14,20,20,.58);font-size:11px;line-height:1.55;opacity:0;transform:translateY(14px);animation:letter-drift 10s var(--ease) infinite;animation-delay:var(--drift-delay)}.letters__drift span:nth-child(2){right:37%;top:106px}.letters__drift span:nth-child(3){right:10%;top:244px}@keyframes letter-drift{0%,18%{opacity:0;transform:translateY(14px)}28%,72%{opacity:1;transform:translateY(-10px)}86%,100%{opacity:0;transform:translateY(-30px)}}.letters__paper-stack{position:absolute;right:-5vw;bottom:-9vh;width:min(42vw,600px);aspect-ratio:1.12;opacity:.18;transform:rotate(-9deg);pointer-events:none}.letters__paper-stack i{position:absolute;inset:9% 12%;border:1px solid rgba(218,235,225,.65);background:rgba(219,234,226,.05);box-shadow:0 28px 65px rgba(0,0,0,.28)}.letters__paper-stack i:nth-child(1){transform:rotate(9deg) translate(18px,20px)}.letters__paper-stack i:nth-child(2){transform:rotate(-4deg) translate(-13px,4px)}.letters-dialog{width:min(560px,calc(100vw - 34px));max-height:min(800px,calc(100svh - 34px));margin:auto;padding:0;border:1px solid rgba(228,239,233,.32);color:#ebf0ed;background:#111918;box-shadow:0 32px 90px rgba(0,0,0,.56)}.letters-dialog::backdrop{background:rgba(3,5,5,.76);backdrop-filter:blur(5px)}.letters-dialog form{position:relative;display:grid;gap:18px;padding:clamp(28px,4vw,46px)}.letters-dialog .eyebrow{margin:0;color:#8fa39d;font-size:10px;letter-spacing:.17em}.letters-dialog h2{margin:-4px 0 0;font-family:"Noto Serif SC","Songti SC",serif;font-size:clamp(37px,5vw,55px);font-weight:500;letter-spacing:-.045em}.letters-dialog__lead{margin:-8px 0 3px;color:#9fada8;font-size:13px}.letters-dialog__close{position:absolute;top:22px;right:22px;width:36px;height:36px;padding:0;border:1px solid rgba(224,238,230,.23);border-radius:50%;color:#d8e4de;font-size:24px;font-weight:300;line-height:1;transition:background .18s ease,color .18s ease,transform .18s var(--ease)}.letters-dialog__close:hover{color:#101716;background:#edf4f0;transform:rotate(90deg)}.letters-dialog__types{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.letters-dialog__types button{display:grid;gap:5px;min-height:76px;padding:12px;border:1px solid rgba(222,236,228,.17);border-radius:8px;color:#9caaa5;text-align:left;transition:border-color .18s ease,background .18s ease,color .18s ease,transform .18s var(--ease)}.letters-dialog__types button:hover{transform:translateY(-2px);border-color:rgba(233,244,238,.5);color:#edf4f0}.letters-dialog__types button[aria-pressed="true"]{border-color:#e9f3ed;color:#101716;background:#e9f3ed}.letters-dialog__types b{font-size:14px}.letters-dialog__types span{font-size:10px;line-height:1.4}.letters-dialog label{display:grid;gap:8px;color:#cbd7d1;font-size:12px;letter-spacing:.04em}.letters-dialog label>small{color:#87938f;font-size:10px}.letters-dialog input,.letters-dialog textarea{width:100%;padding:12px 13px;border:1px solid rgba(221,236,227,.23);border-radius:6px;color:#eef4f0;background:#0c1111;font:400 15px/1.65 "Noto Sans SC",sans-serif;transition:border-color .18s ease,background .18s ease}.letters-dialog textarea{min-height:112px;resize:vertical}.letters-dialog input:focus,.letters-dialog textarea:focus{border-color:#dcebe3;background:#101716}.letters-dialog label>small[data-letter-count]{justify-self:end;margin-top:-3px;color:#80908a;font-variant-numeric:tabular-nums}.letters-dialog__hint{margin:-6px 0 0;color:#899793;font-size:11px;line-height:1.65}.letters-dialog__actions{display:flex;align-items:center;gap:14px;margin-top:2px}.letters-dialog__submit{min-height:46px;padding:0 20px;border:1px solid #edf5f0;border-radius:8px;color:#101716;background:#edf5f0;font-size:13px;font-weight:700;letter-spacing:.06em;transition:background .18s ease,color .18s ease,transform .18s var(--ease)}.letters-dialog__submit:hover:not(:disabled){color:#f0f7f2;background:transparent;transform:translateY(-2px)}.letters-dialog__submit:disabled{cursor:wait;opacity:.62}.letters-dialog__receipt{padding:8px 0;border-bottom:1px solid rgba(231,241,235,.45);color:#b9c7c1;font-size:12px;transition:color .16s ease,border-color .16s ease}.letters-dialog__receipt:hover{color:#fff;border-color:#fff}.letters-dialog__status{min-height:1.6em;margin:-6px 0 0;color:#c2d5ca;font-size:12px;line-height:1.6}.letters-dialog__status:empty{display:none}@media (max-width:760px){.letters{padding-right:6vw;padding-left:6vw}.letters__inner{grid-template-columns:1fr;gap:48px}.letters__intro{padding-top:0}.letters__reading{min-height:400px}.letters__entry{min-height:144px;padding:21px}.letters__entry--question{grid-column:span 2}.letters__paper-stack{width:80vw}.letters-dialog__types{grid-template-columns:1fr}.letters-dialog__types button{min-height:58px;grid-template-columns:72px 1fr;align-items:center}.letters-dialog__actions{align-items:flex-start;flex-direction:column}}@media (prefers-reduced-motion:reduce){.letters__drift{display:none}.letters__entry,.letters__write,.letters__tabs button:after,.letters-dialog__types button,.letters-dialog__close,.letters-dialog__submit{transition:none}.letters__drift span{animation:none}}

.letters{height:auto}

/* 留言版：复用项目内置的马善政字形，正文仍保持清晰可读。 */
@font-face{font-family:"Ma Shan Zheng";src:url("assets/home-legacy/MaShanZheng-Regular.ttf") format("truetype");font-display:swap}
.letters{--letters-title-progress:0;--letters-panel-progress:0;--letters-compose-progress:0;height:520svh;min-height:520svh;padding:0;overflow:visible;background:#111718;color:#edf2ef;scroll-margin-top:82px}.letters:before{position:sticky;top:0;height:100svh;display:block;background:linear-gradient(112deg,rgba(4,6,7,.98),rgba(17,24,24,.92) 53%,rgba(47,59,57,.83)),url("assets/concepts/find-space.png") center/cover}.letters:after{position:sticky;top:0;display:block;height:100svh;margin-top:-100svh}.letters__sticky{position:sticky;top:0;z-index:1;height:100svh;min-height:760px;overflow:hidden}.letters__inner{display:grid;grid-template-columns:minmax(250px,.72fr) minmax(510px,1.28fr);align-items:center;gap:clamp(58px,9vw,148px);width:min(84vw,1440px);height:100%;margin:0 auto}.letters__intro{max-width:350px;padding:0;opacity:var(--letters-title-progress);transform:translateY(calc(42px * (1 - var(--letters-title-progress))));transition:opacity .2s linear,transform .2s linear}.letters__intro .eyebrow{margin:0 0 16px;color:#9aa9a4;font-size:10px;letter-spacing:.16em}.letters__intro h2{max-width:none;margin:0;color:#f4f7f4;font-family:"Ma Shan Zheng","STKaiti","KaiTi",cursive;font-size:clamp(82px,9vw,146px);font-weight:400;letter-spacing:-.08em;line-height:.88;text-wrap:balance}.letters__intro>p{max-width:300px;margin:30px 0 0;color:#c2ceca;font-family:"Ma Shan Zheng","STKaiti","KaiTi",cursive;font-size:clamp(24px,2.2vw,34px);line-height:1.55;letter-spacing:.025em}.letters__intro>small{max-width:292px;margin-top:24px;color:#93a09c;font:12px/1.75 Inter,"Noto Sans SC",sans-serif}.letters__panel{display:grid;gap:19px;min-width:0;opacity:var(--letters-panel-progress);transform:translateY(calc(34px * (1 - var(--letters-panel-progress))));transition:opacity .2s linear,transform .2s linear}.letters__reading{min-height:0;padding:0;border-top:1px solid rgba(224,238,231,.34)}.letters__heading{margin:0;padding:17px 0 14px;color:#f2f6f3;font-family:"Ma Shan Zheng","STKaiti","KaiTi",cursive;font-size:30px;line-height:1;letter-spacing:.04em}.letters__list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;max-height:min(37svh,390px);margin:0;overflow:auto;border:1px solid rgba(214,230,222,.22);background:rgba(214,230,222,.18);scrollbar-color:rgba(237,246,241,.45) transparent}.letters__entry{min-height:132px;padding:21px 23px;background:rgba(12,18,18,.93);transition:background .18s ease,transform .2s var(--ease)}.letters__entry:hover{z-index:1;background:#202a28;transform:translateY(-3px)}.letters__entry-meta{margin:0;color:#91a19b;font-size:10px;letter-spacing:.11em}.letters__entry-text{margin:17px 0 0;color:#edf3ef;font-family:"Ma Shan Zheng","STKaiti","KaiTi",cursive;font-size:clamp(21px,1.65vw,29px);font-weight:400;line-height:1.45;letter-spacing:.025em;white-space:pre-wrap}.letters__empty{grid-column:1/-1;min-height:220px;margin:0;display:grid;place-items:center;color:#9aa8a2;font-family:"Ma Shan Zheng","STKaiti","KaiTi",cursive;font-size:28px;letter-spacing:.04em;background:rgba(12,18,18,.93)}.letters__composer{position:relative;display:grid;gap:0;opacity:var(--letters-compose-progress);transform:translateY(calc(25px * (1 - var(--letters-compose-progress))));transition:opacity .2s linear,transform .2s linear}.letters__composer textarea{width:100%;min-height:112px;padding:18px 20px;border:1px solid rgba(231,243,236,.55);border-radius:0;color:#edf4f0;background:rgba(10,15,15,.76);font:400 18px/1.65 "Ma Shan Zheng","STKaiti","KaiTi",cursive;letter-spacing:.02em;resize:vertical;transition:border-color .18s ease,background .18s ease}.letters__composer textarea::placeholder{color:#87948f}.letters__composer textarea:focus{border-color:#f3f7f4;background:#101717;outline:0}.letters__composer-bar{position:relative;display:flex;align-items:center;gap:11px;min-height:55px;padding:8px 0}.letters__emoji{position:relative}.letters__emoji-trigger{display:grid;place-items:center;width:43px;height:39px;border:1px solid rgba(231,243,236,.36);color:#e5eeea;font-family:"Ma Shan Zheng",cursive;font-size:22px;transition:background .16s ease,color .16s ease}.letters__emoji-trigger:hover{color:#101716;background:#eff6f1}.letters__emoji-panel{position:absolute;bottom:calc(100% + 10px);left:0;z-index:4;display:grid;grid-template-columns:repeat(3,38px);gap:4px;padding:7px;border:1px solid rgba(230,243,235,.36);background:#101716;box-shadow:0 18px 40px rgba(0,0,0,.32)}.letters__emoji-panel button{width:38px;height:36px;color:#eaf2ee;font-size:17px;transition:background .16s ease}.letters__emoji-panel button:hover{background:#263330}.letters__target{position:relative;margin-left:auto;color:#aab7b2;font-size:11px;letter-spacing:.07em}.letters__target summary{min-height:39px;display:flex;align-items:center;gap:4px;padding:0 12px;border:1px solid rgba(231,243,236,.26);cursor:pointer;list-style:none}.letters__target summary::-webkit-details-marker{display:none}.letters__target summary:after{content:"⌄";margin-left:8px;font-size:14px}.letters__target[open] summary:after{transform:rotate(180deg)}.letters__target strong{color:#edf4f0;font-weight:500}.letters__target-menu{position:absolute;right:0;bottom:calc(100% + 7px);z-index:4;display:grid;width:136px;padding:5px;border:1px solid rgba(230,243,235,.36);background:#101716;box-shadow:0 18px 40px rgba(0,0,0,.32)}.letters__target-menu button{padding:10px 9px;color:#b6c3be;text-align:left;font-size:12px;transition:background .16s ease,color .16s ease}.letters__target-menu button:hover,.letters__target-menu button[aria-current="true"]{color:#101716;background:#edf4f0}.letters__submit{min-width:72px;min-height:39px;padding:0 16px;border:1px solid #edf5f0;color:#101716;background:#edf5f0;font-size:12px;font-weight:700;letter-spacing:.12em;transition:background .18s ease,color .18s ease,transform .18s var(--ease)}.letters__submit:hover:not(:disabled){color:#edf5f0;background:transparent;transform:translateY(-2px)}.letters__submit:disabled{cursor:wait;opacity:.68}.letters__status{min-height:1.65em;margin:0;color:#d9e7df;font-size:12px;line-height:1.65}.letters__status:empty{display:none}.letters__composer textarea:focus-visible,.letters__emoji-trigger:focus-visible,.letters__emoji-panel button:focus-visible,.letters__target summary:focus-visible,.letters__target-menu button:focus-visible,.letters__submit:focus-visible{outline:1px solid #f4f8f5;outline-offset:4px}.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}@media (max-width:760px){.letters{height:auto;min-height:0;padding:88px 22px 60px;overflow:hidden}.letters:before,.letters:after{position:absolute;height:auto;margin:0}.letters__sticky{position:relative;height:auto;min-height:0;overflow:visible}.letters__inner{grid-template-columns:1fr;gap:46px;width:100%;height:auto}.letters__intro,.letters__panel,.letters__composer{opacity:1;transform:none}.letters__intro h2{font-size:78px}.letters__intro>p{font-size:27px}.letters__list{grid-template-columns:1fr;max-height:360px}.letters__composer-bar{flex-wrap:wrap}.letters__target{margin-left:0}.letters__submit{margin-left:auto}.letters__target-menu{right:auto;left:0}.letters__paper-stack{width:90vw}}@media (prefers-reduced-motion:reduce){.letters__intro,.letters__panel,.letters__composer,.letters__entry,.letters__composer textarea,.letters__emoji-trigger,.letters__target-menu button,.letters__submit{transition:none!important;transform:none!important}}
/* The intro CTA stays above the transparent tool stages; inactive stages are inert in script.js. */
.tools-chapter__intro{z-index:2;pointer-events:none}.tools-chapter__intro .text-link{pointer-events:auto}

/* 留言版第二轮：标题不折行；可选昵称与表情选择保持在同一投稿行。 */
.letters__intro{max-width:440px}.letters__intro h2{white-space:nowrap;font-size:clamp(72px,7.4vw,122px);letter-spacing:-.055em}.letters__intro>p{max-width:360px;margin-top:26px;font-size:clamp(16px,1.42vw,21px);line-height:1.75;letter-spacing:.015em}.letters__emoji-panel{display:block;width:292px;padding:12px;background:#101716;box-shadow:0 18px 40px rgba(0,0,0,.42)}.letters__emoji-panel>p{margin:0 0 8px;color:#91a19b;font-size:10px;letter-spacing:.13em}.letters__emoji-panel>div{display:grid;grid-template-columns:repeat(8,1fr);gap:3px}.letters__emoji-panel button{width:32px;height:32px;border:0;font-size:17px}.letters__nickname,.letters__target{position:relative;margin-left:0;color:#aab7b2;font-size:11px;letter-spacing:.07em}.letters__nickname summary,.letters__target summary{min-height:39px;display:flex;align-items:center;gap:4px;padding:0 12px;border:1px solid rgba(231,243,236,.26);cursor:pointer;list-style:none}.letters__nickname summary::-webkit-details-marker{display:none}.letters__nickname summary:after{content:"⌄";margin-left:8px;font-size:14px}.letters__nickname[open] summary:after{transform:rotate(180deg)}.letters__nickname strong{color:#edf4f0;font-weight:500}.letters__nickname-menu{position:absolute;right:0;bottom:calc(100% + 7px);z-index:4;display:grid;gap:7px;width:250px;padding:12px;border:1px solid rgba(230,243,235,.36);background:#101716;box-shadow:0 18px 40px rgba(0,0,0,.42)}.letters__nickname-menu label{display:flex;justify-content:space-between;color:#dfe9e4;font-size:12px}.letters__nickname-menu label small,.letters__nickname-menu>small{color:#8f9e98;font-size:10px;line-height:1.5}.letters__nickname-menu input{width:100%;height:38px;padding:0 10px;border:1px solid rgba(231,243,236,.32);border-radius:0;color:#eef4f0;background:#0a0f0f;font:400 15px/1.4 "Noto Sans SC",sans-serif}.letters__nickname-menu input:focus{border-color:#f3f7f4;outline:0}.letters__composer-bar{gap:9px}.letters__submit{margin-left:auto}.letters__submit-note{margin:0;color:#98a59f;font-size:11px;line-height:1.65}.letters__nickname summary:focus-visible,.letters__nickname-menu input:focus-visible{outline:1px solid #f4f8f5;outline-offset:4px}@media (max-width:760px){.letters__intro h2{font-size:76px}.letters__intro>p{font-size:18px}.letters__emoji-panel{width:276px}.letters__emoji-panel>div{grid-template-columns:repeat(7,1fr)}.letters__nickname-menu{right:auto;left:0}.letters__nickname,.letters__target{margin-left:0}.letters__submit{margin-left:auto}}

/* 输入在黄金分割线附近停留；高度先随文字增长，达到舒适上限后再出现滚动。 */
.letters__inner{transform:translateY(-11svh)}.letters__compose-field{position:relative;border:1px solid rgba(231,243,236,.55);background:#0a0f0f;transition:border-color .18s ease,background .18s ease}.letters__compose-field:focus-within{border-color:#f3f7f4;background:#101717}.letters__compose-field.is-dragging{border-color:#edf5f0;background:#1c2825}.letters__composer textarea{display:block;min-height:112px;max-height:260px;height:112px;border:0;background:transparent;overflow-y:hidden;transition:height .2s var(--ease),background .18s ease}.letters__composer textarea:focus{border:0;background:transparent}.letters__drop-hint{position:absolute;right:15px;bottom:10px;margin:0;color:#71807a;font-size:10px;pointer-events:none;opacity:.78}.letters__image-preview{position:relative;display:inline-block;max-width:166px;margin:-6px 0 13px 18px;border:1px solid rgba(231,243,236,.26);background:#121a19}.letters__image-preview img{display:block;width:auto;max-width:164px;max-height:126px;object-fit:cover}.letters__image-preview button{position:absolute;top:5px;right:5px;display:grid;place-items:center;width:25px;height:25px;padding:0;border:1px solid rgba(255,255,255,.48);border-radius:50%;color:#fff;background:rgba(4,7,7,.76);font-size:19px;line-height:1}.letters__image-trigger{min-height:39px;padding:0 13px;border:1px solid rgba(231,243,236,.26);color:#dce8e1;font-size:11px;letter-spacing:.08em;transition:background .16s ease,color .16s ease}.letters__image-trigger:hover{color:#101716;background:#edf4f0}.letters__entry-image{display:block;width:100%;max-height:240px;object-fit:cover;margin-top:18px;border:1px solid rgba(229,242,234,.19)}.letters__image-trigger:focus-visible,.letters__image-preview button:focus-visible{outline:1px solid #f4f8f5;outline-offset:4px}@media (max-width:760px){.letters__inner{transform:none}.letters__composer textarea{font-size:16px}.letters__drop-hint{display:none}.letters__image-trigger{min-height:42px}}
.letters__emoji-panel[hidden]{display:none!important}
/* 留言黑板：图片只承载质感；所有可读内容仍由真实 HTML 渲染。 */
.letters__panel{min-height:min(76svh,760px);padding:clamp(46px,5vw,82px) clamp(36px,5vw,84px);background:url("assets/concepts/letters-blackboard-v1.png") center/100% 100% no-repeat;filter:drop-shadow(0 25px 35px rgba(0,0,0,.28));transform:translateY(calc(34px * (1 - var(--letters-panel-progress)) + 7svh))}.letters__reading{border-top:1px solid rgba(238,243,235,.26)}.letters__list{background:rgba(13,17,16,.55);border-color:rgba(235,242,237,.18)}.letters__entry,.letters__empty{background:rgba(10,14,13,.73)}.letters__composer{align-self:end}.letters__compose-field{background:rgba(4,7,7,.56)}.letters__emoji-panel{width:min(420px,calc(100vw - 44px));max-height:294px;overflow:auto;padding:12px;background:#101716;scrollbar-color:rgba(237,246,241,.45) transparent}.letters__emoji-panel>div{grid-template-columns:repeat(10,1fr);gap:3px}.letters__emoji-panel button{width:34px;height:34px;font-size:18px}.letters__intro h2{animation:letters-title-breathe 4.8s cubic-bezier(.4,0,.2,1) infinite;transform-origin:left center}@keyframes letters-title-breathe{0%,100%{opacity:.86;transform:scale(.985)}50%{opacity:1;transform:scale(1.015)}}@media (max-width:760px){.letters__panel{min-height:0;padding:42px 30px;background-size:cover;transform:none}.letters__emoji-panel{max-height:240px}.letters__emoji-panel>div{grid-template-columns:repeat(8,1fr)}}@media (prefers-reduced-motion:reduce){.letters__intro h2{animation:none!important;transform:none!important}.letters__panel{transform:none!important}}
.letters__intro h2{animation:none}.letters__title-char{display:inline-block;animation:letters-title-char var(--title-duration,12s) cubic-bezier(.45,0,.55,1) var(--title-delay) infinite;will-change:transform;transform-origin:50% 62%}@keyframes letters-title-char{0%,100%{transform:translate3d(0,0,0) rotate(0)}18%{transform:translate3d(calc(var(--title-shift-x) * .48),calc(var(--title-shift-y) * -.42),0) rotate(calc(var(--title-tilt) * .35))}39%{transform:translate3d(calc(var(--title-shift-x) * -.26),calc(var(--title-shift-y) * .5),0) rotate(calc(var(--title-tilt) * -.42))}63%{transform:translate3d(calc(var(--title-shift-x) * .72),calc(var(--title-shift-y) * .16),0) rotate(calc(var(--title-tilt) * .72))}82%{transform:translate3d(calc(var(--title-shift-x) * -.12),calc(var(--title-shift-y) * -.58),0) rotate(calc(var(--title-tilt) * -.2))}}.letters__list{grid-template-columns:1fr;gap:9px;padding:9px;background:rgba(9,13,12,.5);border-color:rgba(235,242,237,.16)}.letters__entry{min-height:0;padding:18px 20px;background:rgba(8,12,11,.72)}.letters__entry--reply{padding:14px 16px;background:rgba(226,237,230,.055)}.letters__entry-text{margin:10px 0 0;font-size:clamp(18px,1.34vw,24px);line-height:1.5}.letters__entry--reply .letters__entry-text{font-size:clamp(16px,1.15vw,20px)}.letters__entry-actions{display:flex;justify-content:flex-end;margin-top:10px}.letters__entry-actions button{padding:3px 0;color:#aebcb5;border-bottom:1px solid rgba(235,242,237,.26);font-size:11px;letter-spacing:.08em;transition:color .16s ease,border-color .16s ease}.letters__entry-actions button:hover{color:#fff;border-color:#fff}.letters__reply-list{display:grid;gap:7px;margin:-2px 0 5px clamp(14px,3vw,42px);padding-left:14px;border-left:1px solid rgba(232,242,235,.22)}.letters__danmu-strip{display:flex;flex-wrap:wrap;gap:6px;padding:0 0 4px}.letters__danmu-strip span{max-width:100%;padding:6px 9px;color:#b5c1ba;border:1px solid rgba(230,241,234,.17);background:rgba(222,234,227,.045);font:11px/1.45 "Noto Sans SC",sans-serif}.letters__reply-context{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:8px 0 -1px;padding:7px 10px;color:#c8d5ce;border-left:1px solid rgba(239,247,242,.62);background:rgba(238,246,241,.06);font-size:11px}.letters__reply-context button{padding:3px 0;color:#e9f2ed;border-bottom:1px solid rgba(235,244,238,.42);font-size:11px}.letters__image-preview[hidden]{display:none!important}.letters__image-preview{overflow:hidden}.letters__image-preview img{min-width:72px;min-height:54px;background:#0b1010}@media (max-width:760px){.letters__entry{padding:15px}.letters__reply-list{margin-left:12px;padding-left:10px}.letters__danmu-strip{max-height:92px;overflow:auto}.letters__reply-context{align-items:flex-start;flex-direction:column;gap:5px}}@media (prefers-reduced-motion:reduce){.letters__title-char{animation:none!important;transform:none!important}}
/* 留言板副窗口：默认阅读，写作或回复时才展开编辑器。 */
.letters__intro{z-index:3}.letters__open-board{display:inline-flex;align-items:center;gap:12px;margin-top:clamp(48px,11vh,126px);padding:8px 0;color:#edf5f0;border:0;border-bottom:1px solid rgba(237,245,240,.62);font-family:"Ma Shan Zheng","STKaiti","KaiTi",cursive;font-size:clamp(23px,2vw,32px);letter-spacing:.04em;transition:color .18s ease,border-color .18s ease,transform .22s var(--ease)}.letters__open-board span{font-family:Inter,"Noto Sans SC",sans-serif;font-size:.68em;transition:transform .22s var(--ease)}.letters__open-board:hover{color:#fff;border-color:#fff;transform:translateY(-2px)}.letters__open-board:hover span{transform:translate(4px,-3px)}.letters__open-board:focus-visible,.letters__board-tabs button:focus-visible,.letters__board-close:focus-visible,.letters__board-actions button:focus-visible,.letters__composer-close:focus-visible{outline:1px solid #f4f8f5;outline-offset:4px}
.letters__board-window{position:absolute;top:54%;right:8vw;z-index:8;width:min(57vw,900px);max-height:88svh;transform:translateY(-42%)}.letters__board-window[hidden]{display:none!important}.letters__board-window .letters__panel{display:grid;gap:14px;min-height:min(76svh,760px);padding:clamp(43px,4.6vw,74px) clamp(34px,4.7vw,78px);opacity:1;transform:none;transition:opacity .22s ease,transform .22s var(--ease)}.letters__board-header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.letters__board-kicker{margin:0 0 12px;color:#92a19b;font-size:10px;letter-spacing:.15em}.letters__board-tabs{display:flex;gap:24px;border-bottom:1px solid rgba(232,242,236,.25)}.letters__board-tabs button{position:relative;padding:0 0 9px;color:#9aa8a2;font-family:"Ma Shan Zheng","STKaiti","KaiTi",cursive;font-size:24px;letter-spacing:.03em;transition:color .16s ease}.letters__board-tabs button:after{content:"";position:absolute;right:0;bottom:-1px;left:0;height:1px;background:#edf5f0;transform:scaleX(0);transform-origin:left;transition:transform .2s var(--ease)}.letters__board-tabs button[aria-selected="true"]{color:#f3f7f4}.letters__board-tabs button[aria-selected="true"]:after{transform:scaleX(1)}.letters__board-close{display:grid;place-items:center;width:34px;height:34px;padding:0;color:#dfe9e3;border:1px solid rgba(231,242,236,.32);font:300 24px/1 Inter,"Noto Sans SC",sans-serif;transition:color .16s ease,background .16s ease,transform .2s var(--ease)}.letters__board-close:hover{color:#101716;background:#eef6f1;transform:rotate(90deg)}.letters__board-window .letters__reading{min-height:0}.letters__board-window .letters__heading{padding:11px 0 10px;font-size:28px}.letters__board-window .letters__list{max-height:min(42svh,400px)}.letters__board-actions{display:flex;align-items:center;justify-content:flex-end;gap:12px;padding-top:3px}.letters__board-actions button{padding:7px 0;color:#e5eee9;border-bottom:1px solid rgba(235,244,239,.48);font-family:"Ma Shan Zheng","STKaiti","KaiTi",cursive;font-size:20px;letter-spacing:.03em;transition:color .16s ease,border-color .16s ease,transform .2s var(--ease)}.letters__board-actions button:hover{color:#fff;border-color:#fff;transform:translateY(-2px)}.letters__board-actions span{font-family:Inter,"Noto Sans SC",sans-serif;font-size:.66em}.letters__board-window .letters__composer{display:none;opacity:1;transform:none}.letters__board-window.is-composing .letters__composer{display:grid;animation:letters-composer-open .22s var(--ease) both}.letters__board-window.is-composing .letters__board-actions{display:none}.letters__board-window.is-composing .letters__composer textarea{min-height:48px;height:48px;padding:11px 15px;font-size:17px;line-height:1.55}.letters__board-window.is-composing .letters__drop-hint{display:none}.letters__composer-close{justify-self:start;margin-top:2px;padding:4px 0;color:#aab8b1;border-bottom:1px solid rgba(230,241,234,.28);font-size:11px;letter-spacing:.08em;transition:color .16s ease,border-color .16s ease}.letters__composer-close:hover{color:#fff;border-color:#fff}@keyframes letters-composer-open{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
@media (max-width:760px){.letters__open-board{margin-top:42px}.letters__board-window{right:14px;bottom:12px;left:14px;top:auto;width:auto;max-height:calc(100svh - 24px);transform:none}.letters__board-window .letters__panel{min-height:0;max-height:calc(100svh - 24px);padding:34px 27px;background-size:cover}.letters__board-tabs{gap:18px}.letters__board-tabs button{font-size:22px}.letters__board-window .letters__list{max-height:42svh}.letters__board-actions{justify-content:flex-start}.letters__board-window.is-composing .letters__composer textarea{font-size:16px}}@media (prefers-reduced-motion:reduce){.letters__board-window.is-composing .letters__composer{animation:none}.letters__open-board,.letters__board-tabs button:after,.letters__board-close,.letters__board-actions button,.letters__composer-close{transition:none}}
/* 留言板展示版：黑板直接承载已公开内容，投稿入口留待后续重做。 */
.letters{height:270svh;min-height:270svh}.letters__inner{transform:translateY(-3svh)}.letters__panel{position:relative;z-index:3;min-height:min(72svh,720px);opacity:var(--letters-panel-progress);transform:translateY(calc(30px * (1 - var(--letters-panel-progress)) + 2svh))}.letters__composer{display:none!important}.letters__reading{display:grid;grid-template-rows:auto minmax(0,1fr);height:100%}.letters__heading{padding:12px 0 13px}.letters__list{grid-template-columns:repeat(2,minmax(0,1fr));align-content:start;gap:0 28px;max-height:min(58svh,570px);padding:0 2px;overflow:auto;background:transparent;border:0}.letters__entry{min-height:0;padding:13px 2px 15px;border-bottom:1px dashed rgba(235,243,238,.22);background:transparent}.letters__entry:hover{background:rgba(255,255,255,.025);transform:none}.letters__entry--reply{padding-left:18px}.letters__entry-meta{font-size:10px;color:#9eada6}.letters__entry-text{margin:7px 0 0;font-size:clamp(17px,1.25vw,22px);line-height:1.43}.letters__entry-answer{margin:11px 0 0;padding-top:10px;font-size:13px}.letters__entry-image{max-height:150px;margin-top:11px}.letters__empty{min-height:300px;background:transparent}.letters__danmu-layer{z-index:2}@media (max-width:760px){.letters{height:auto;min-height:0}.letters__inner{transform:none}.letters__panel{min-height:0;transform:none}.letters__list{grid-template-columns:1fr;max-height:62svh}.letters__entry{padding-top:12px}}
/* 留言板入场：标题、黑板、文字依次出现，移除背景横向网格。 */
.letters{--letters-reading-progress:0}.letters:after{background:none}.letters__reading{opacity:var(--letters-reading-progress);transform:translateY(calc(18px * (1 - var(--letters-reading-progress))));transition:opacity .2s linear,transform .2s linear}@media (prefers-reduced-motion:reduce){.letters__reading{opacity:1;transform:none;transition:none}}
/* 打开态仍使用同一块黑板，不跳转到独立页面。 */
.letters__expanded-header,.letters__board-actions{display:none}.letters.is-board-expanded .letters__panel{position:absolute;top:50%;right:0;z-index:9;width:min(79vw,1030px);min-height:min(80svh,790px);max-height:88svh;opacity:1;transform:translateY(-50%);transition:width .28s var(--ease),transform .28s var(--ease),opacity .2s ease}.letters.is-board-expanded .letters__expanded-header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.letters.is-board-expanded .letters__reading{opacity:1;transform:none;transition:none}.letters.is-board-expanded .letters__list{max-height:min(45svh,450px);padding-right:4px}.letters.is-board-expanded .letters__board-actions{display:flex}.letters.is-board-expanded.is-board-composing .letters__board-actions{display:none}.letters.is-board-expanded.is-board-composing .letters__composer{display:grid!important;gap:0;opacity:1;transform:none;animation:letters-composer-open .22s var(--ease) both}.letters.is-board-expanded.is-board-composing .letters__composer textarea{min-height:48px;height:48px;padding:11px 15px;font-size:17px;line-height:1.55}.letters.is-board-expanded.is-board-composing .letters__drop-hint{display:none}.letters.is-board-expanded .letters__reply-context{margin:4px 0 2px}.letters.is-board-expanded .letters__composer-close{display:block}.letters.is-board-expanded .letters__entry-actions{display:flex}@media (max-width:760px){.letters.is-board-expanded .letters__panel{position:relative;top:auto;right:auto;width:100%;max-height:none;min-height:0;transform:none}.letters.is-board-expanded .letters__list{max-height:48svh}.letters.is-board-expanded .letters__board-actions{justify-content:flex-start}.letters.is-board-expanded.is-board-composing .letters__composer textarea{font-size:16px}}@media (prefers-reduced-motion:reduce){.letters.is-board-expanded .letters__panel,.letters.is-board-expanded.is-board-composing .letters__composer{transition:none;animation:none}}
/* 背景仅承载视觉，不再占用一整个视口的文档流高度。 */
.letters:before,.letters:after{position:absolute;inset:0;height:auto;margin:0}.letters:before{display:block}

/* 首页留言黑板：阅读区始终保持同一尺寸，写入使用独立对话框。 */
.letters__panel{height:min(72svh,720px);min-height:min(72svh,720px);max-height:min(72svh,720px);overflow:hidden}.letters__reading{display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:0;height:100%;min-height:0;border-top:0}.letters__view-switch{display:flex;align-items:baseline;gap:11px;padding:10px 2px 15px;border-bottom:1px solid rgba(238,243,235,.26);color:#71807a;font-family:"Ma Shan Zheng","STKaiti","KaiTi",cursive}.letters__view-switch button{position:relative;min-width:44px;min-height:44px;padding:0 2px;color:#85938d;font:400 clamp(22px,1.9vw,30px)/1 "Ma Shan Zheng","STKaiti","KaiTi",cursive;letter-spacing:.04em;transition:color .14s ease}.letters__view-switch button:after{content:"";position:absolute;right:2px;bottom:4px;left:2px;height:1px;background:#edf5f0;transform:scaleX(0);transform-origin:left;transition:transform .14s ease}.letters__view-switch button[aria-selected="true"]{color:#f2f6f3}.letters__view-switch button[aria-selected="true"]:after{transform:scaleX(1)}.letters__view-switch button:focus-visible,.letters__write-prompt:focus-visible,.letters__dialog-close:focus-visible,.letters__dialog-cancel:focus-visible{outline:1px solid #f4f8f5;outline-offset:4px}.letters__list{height:auto;max-height:none;min-height:0;align-content:start;padding:3px 2px 0;overflow:auto}.letters__entry{padding:17px 12px 17px 2px;border-bottom:1px dashed rgba(235,243,238,.18);background:transparent}.letters__entry:hover{background:rgba(255,255,255,.018)}.letters__entry-meta{color:#96a49e;letter-spacing:.08em}.letters__entry-text{margin-top:7px}.letters__entry-answer{margin-top:10px;padding:10px 0 0;border-top:1px solid rgba(235,243,238,.14);color:#cbd7d1}.letters__empty{min-height:100%;background:transparent}.letters__write-prompt{justify-self:end;align-self:end;display:inline-flex;align-items:center;gap:12px;min-height:44px;margin-top:10px;padding:4px 1px;color:#e7efe9;border-bottom:1px solid rgba(235,244,239,.5);font:400 clamp(18px,1.45vw,23px)/1.2 "Ma Shan Zheng","STKaiti","KaiTi",cursive;letter-spacing:.04em;transition:color .14s ease,border-color .14s ease}.letters__write-prompt span{font-family:Inter,"Noto Sans SC",sans-serif;font-size:.68em;transition:transform .16s var(--ease)}.letters__write-prompt:hover{color:#fff;border-color:#fff}.letters__write-prompt:hover span{transform:translate(3px,-2px)}

.letters__compose-dialog{width:min(720px,calc(100vw - 32px));max-height:calc(100dvh - 32px);padding:0;overflow:visible;border:1px solid rgba(229,241,234,.35);border-radius:0;color:#edf4f0;background:#101716;box-shadow:0 28px 90px rgba(0,0,0,.62)}.letters__compose-dialog::backdrop{background:rgba(3,6,6,.76);backdrop-filter:blur(5px)}.letters__dialog-shell{display:grid;max-height:calc(100dvh - 32px);padding:clamp(24px,4vw,42px);overflow:auto;background:linear-gradient(rgba(11,17,16,.94),rgba(11,17,16,.94)),url("assets/concepts/letters-blackboard-v1.png") center/cover}.letters__dialog-head{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin-bottom:24px;padding-bottom:18px;border-bottom:1px solid rgba(232,242,236,.22)}.letters__dialog-head p{margin:0 0 8px;color:#8f9e98;font-size:10px;letter-spacing:.14em}.letters__dialog-head h3{margin:0;color:#f1f6f2;font:400 clamp(28px,4vw,42px)/1.15 "Ma Shan Zheng","STKaiti","KaiTi",cursive;letter-spacing:.025em}.letters__dialog-close{display:grid;place-items:center;flex:none;width:44px;height:44px;padding:0;color:#dfe9e3;border:1px solid rgba(231,242,236,.3);font:300 25px/1 Inter,"Noto Sans SC",sans-serif;transition:color .14s ease,background .14s ease}.letters__dialog-close:hover{color:#101716;background:#eef6f1}.letters__compose-dialog .letters__composer{display:grid!important;gap:0;opacity:1;transform:none;transition:none}.letters__compose-dialog .letters__composer-bar{flex-wrap:wrap}.letters__compose-dialog .letters__nickname{margin-left:0}.letters__dialog-cancel{min-height:44px;margin-left:auto;padding:0 13px;color:#aebbb5;border-bottom:1px solid rgba(235,244,238,.24);font-size:11px;letter-spacing:.08em;transition:color .14s ease,border-color .14s ease}.letters__dialog-cancel:hover{color:#fff;border-color:#fff}.letters__compose-dialog .letters__submit{min-height:44px}.letters__compose-dialog .letters__status{display:block;min-height:1.65em}.letters__compose-dialog .letters__status:empty{display:block}body:has(.letters__compose-dialog[open]){overflow:hidden}

@media (max-width:760px){.letters__panel{height:clamp(480px,76dvh,620px);min-height:clamp(480px,76dvh,620px);max-height:clamp(480px,76dvh,620px);padding:40px 28px}.letters__view-switch button{font-size:23px}.letters__list{grid-template-columns:1fr}.letters__write-prompt{font-size:19px}.letters__compose-dialog{width:calc(100vw - 20px);max-height:calc(100dvh - 20px)}.letters__dialog-shell{max-height:calc(100dvh - 20px);padding:24px 20px}.letters__dialog-head{margin-bottom:20px}.letters__dialog-cancel{order:3;margin-left:0}.letters__compose-dialog .letters__submit{margin-left:auto}.letters__compose-dialog .letters__emoji-panel{left:-2px;width:min(340px,calc(100vw - 50px))}}

/* 首页黑板固定四格：后台每类最多选择四条，前台不再产生内部滚动。 */
.letters__list{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr));grid-auto-rows:minmax(0,1fr);align-content:stretch;overflow:hidden}.letters__entry{min-width:0;min-height:0;overflow:hidden}.letters__entry--question{grid-column:auto}.letters__entry-text{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:3}.letters__entry--question .letters__entry-text{-webkit-line-clamp:2}.letters__entry-answer{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:3}.letters__entry-image{max-height:72px}.letters__empty{grid-column:1/-1;grid-row:1/-1}
@media (max-width:760px){.letters__list{grid-template-columns:repeat(2,minmax(0,1fr))}.letters__entry{padding:12px 8px 12px 0}.letters__entry-text{font-size:16px}.letters__entry-answer{font-size:11px}}
@media (prefers-reduced-motion:reduce){.letters__view-switch button,.letters__view-switch button:after,.letters__write-prompt,.letters__write-prompt span,.letters__dialog-close,.letters__dialog-cancel{transition:none!important}}

/* 弹幕：外层负责漂移；鼠标进入后立即暂停，离开后从原位置继续。 */
.letters__danmu-layer{position:absolute;inset:0;z-index:2;overflow:hidden;pointer-events:none}.letters__danmu{position:absolute;top:var(--danmu-track);left:0;max-width:min(50vw,600px);pointer-events:auto;opacity:0;animation:letters-danmu-drift var(--danmu-duration) linear var(--danmu-delay) infinite;will-change:transform,opacity}.letters__danmu-content{max-width:100%;overflow:hidden;padding:7px 13px;color:rgba(237,246,241,.9);border:0;background:transparent;font:clamp(16px,1.2vw,21px)/1.45 "Ma Shan Zheng","STKaiti","KaiTi",cursive;letter-spacing:.055em;text-overflow:ellipsis;white-space:nowrap}@media (hover:hover) and (pointer:fine){.letters__danmu:hover{z-index:3;animation-play-state:paused!important}}@keyframes letters-danmu-drift{0%{opacity:0;transform:translateX(125vw)}10%,90%{opacity:.94}100%{opacity:0;transform:translateX(-120%)}}@media (max-width:760px){.letters__danmu{max-width:78vw}.letters__danmu-content{padding:7px 11px;font-size:clamp(15px,4vw,18px)}}@media (prefers-reduced-motion:reduce){.letters__danmu{animation:none!important;opacity:.94}.letters__danmu-content{transition:none}}

/* 投稿类型使用无框文字单选；昵称直接内嵌在操作栏下方，避免浮层溢出。 */
.letters__compose-dialog .letters__composer-bar{gap:17px}.letters__compose-dialog .letters__emoji-trigger,.letters__compose-dialog .letters__image-trigger,.letters__compose-dialog .letters__submit{width:auto;min-width:0;min-height:44px;height:auto;padding:0 3px;border:0!important;box-shadow:none!important;color:#aebbb5;background:transparent!important;font:500 12px/1 "Noto Sans SC",sans-serif;letter-spacing:.08em;transition:color .14s ease}.letters__compose-dialog .letters__emoji-trigger:hover,.letters__compose-dialog .letters__image-trigger:hover,.letters__compose-dialog .letters__submit:hover:not(:disabled){border:0!important;box-shadow:none!important;color:#fff;background:transparent!important;transform:none}.letters__publish-type{display:flex;align-items:center;flex:none;gap:8px;min-height:44px;margin-left:auto;color:#7f8d87;font-size:11px;letter-spacing:.06em}.letters__publish-type[hidden]{display:none!important}.letters__publish-type label{display:flex;align-items:center;min-height:44px;color:#9ba8a2;cursor:pointer}.letters__publish-type label>span{position:relative;padding:3px 1px;font:500 12px/1 "Noto Sans SC",sans-serif;transition:color .14s ease}.letters__publish-type label:hover>span{color:#fff}.letters__publish-type input:checked+span{color:#f2f6f3;font-weight:700}.letters__publish-type input:checked+span:after{content:"";position:absolute;right:0;bottom:-4px;left:0;height:1px;background:#dfe9e3}.letters__publish-type input:focus-visible+span{outline:1px solid #f4f8f5;outline-offset:5px}.letters__publish-type i{color:#596660;font-style:normal}.letters__nickname-inline{flex:1 1 180px;min-width:140px;max-width:260px;margin-left:5px}.letters__nickname-inline input{width:100%;min-height:44px;padding:0 4px;border:0!important;border-bottom:1px solid rgba(222,234,227,.42)!important;border-radius:0;box-shadow:none!important;color:#dce6e1;background:transparent!important;font:400 13px/1.4 "Noto Sans SC",sans-serif;letter-spacing:.03em}.letters__nickname-inline input:hover{border:0!important;border-bottom-color:rgba(239,247,242,.7)!important;box-shadow:none!important}.letters__nickname-inline input:focus{border:0!important;border-bottom:1px solid #edf5f0!important;box-shadow:none!important;outline:0}.letters__nickname-inline input:focus-visible{outline:1px solid #f4f8f5;outline-offset:4px}.letters__compose-dialog .letters__dialog-close,.letters__compose-dialog .letters__dialog-close:hover{border:0!important;box-shadow:none!important;background:transparent!important}.letters__compose-dialog .letters__dialog-close:hover{color:#fff}.letters__compose-dialog .letters__submit{color:#edf4f0;font-weight:700}.letters__compose-dialog .letters__submit:disabled{color:#87938e;background:transparent!important}@media (max-width:760px){.letters__compose-dialog .letters__composer-bar{gap:13px}.letters__nickname-inline{order:3;flex-basis:100%;max-width:none;margin-left:0}.letters__publish-type{margin-left:auto}.letters__compose-dialog .letters__submit{margin-left:0}.letters__nickname-inline input{font-size:16px}}@media (prefers-reduced-motion:reduce){.letters__compose-dialog .letters__emoji-trigger,.letters__compose-dialog .letters__image-trigger,.letters__compose-dialog .letters__submit,.letters__publish-type label>span{transition:none}}

/* 表情库使用同一份完整分类数据，弹层内部滚动，避免改版时再次遗漏。 */
.letters__compose-dialog .letters__emoji-panel{width:min(430px,calc(100vw - 50px));max-height:min(52dvh,390px);padding:13px 12px;overscroll-behavior:contain}.letters__emoji-groups{display:grid!important;grid-template-columns:1fr!important;gap:16px!important}.letters__emoji-group{display:grid;gap:7px}.letters__emoji-group h4{position:sticky;top:-13px;z-index:1;margin:0;padding:8px 2px 5px;color:#8f9e98;background:#101716;font:500 10px/1.2 "Noto Sans SC",sans-serif;letter-spacing:.12em}.letters__emoji-group>div{display:grid;grid-template-columns:repeat(10,minmax(0,1fr));gap:3px}.letters__compose-dialog .letters__emoji-panel button{display:grid;place-items:center;width:36px;height:36px;padding:0;border:0!important;border-radius:0;box-shadow:none!important;background:transparent!important;font-family:"Segoe UI Emoji","Apple Color Emoji","Noto Color Emoji",sans-serif;font-size:20px;line-height:1;transition:background .12s ease}.letters__compose-dialog .letters__emoji-panel button:hover{border:0!important;box-shadow:none!important;background:rgba(237,246,241,.1)!important}@media (max-width:760px){.letters__compose-dialog .letters__emoji-panel{max-height:42dvh}.letters__emoji-group>div{grid-template-columns:repeat(8,minmax(0,1fr))}.letters__compose-dialog .letters__emoji-panel button{width:34px;height:34px;font-size:19px}}@media (prefers-reduced-motion:reduce){.letters__compose-dialog .letters__emoji-panel button{transition:none!important}}
