/* Tashan prologue: raw stone → revealed jade → a light, usable workspace. */
html.entrance-open{overflow:hidden}.stone-entrance{--ivory:#e7ece2;--jade:#add8b5;--quiet:#9cafa1;position:fixed;inset:0;z-index:1000;isolation:isolate;overflow:hidden;background:#07150f;color:var(--ivory);min-height:100svh;font-family:"PingFang SC","Microsoft YaHei",sans-serif;opacity:1;transition:opacity .65s cubic-bezier(.22,1,.36,1),visibility .65s;cursor:auto}.stone-entrance::before{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(ellipse at 70% 48%,#284b3438,transparent 49%),radial-gradient(ellipse at 5% 100%,#40554515,transparent 55%);pointer-events:none}.stone-entrance::after{content:"";position:absolute;inset:0;pointer-events:none;opacity:.14;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.82' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' opacity='.25' filter='url(%23n)'/%3E%3C/svg%3E");mix-blend-mode:screen}.entrance-top{position:absolute;top:0;left:0;right:0;padding:32px 4.4vw;display:flex;justify-content:space-between;align-items:center;gap:20px;z-index:5}.entrance-brand{display:flex;align-items:center;gap:14px}.entrance-brand img{display:block;width:44px;height:44px;object-fit:contain;border-radius:12px;flex-shrink:0}.entrance-brand strong{font-size:19px;font-weight:500;letter-spacing:1.6px;display:block}.entrance-brand small{font:9px/1.8 ui-monospace,monospace;letter-spacing:2.6px;color:var(--quiet)}.entrance-controls{display:flex;align-items:center;gap:20px}.stone-entrance button{color:var(--ivory);border-radius:0;font-weight:400}.entrance-languages{display:flex;gap:4px}.entrance-languages button{padding:8px;min-width:44px;min-height:44px;font-size:11px;border:0;background:transparent;color:var(--quiet)}.entrance-languages button[aria-pressed=true]{background:transparent;color:var(--ivory);text-decoration:underline;text-underline-offset:6px}.entrance-skip{background:transparent!important;border:0!important;font-size:12px!important;gap:17px!important;white-space:nowrap}.entrance-skip:hover{color:var(--jade)}.entrance-copy{position:absolute;top:50%;left:8vw;width:42%;transform:translateY(-51%);z-index:3;pointer-events:none}.entrance-overline{display:flex;align-items:center;gap:14px;color:var(--jade);font-size:11px;letter-spacing:3px;margin-bottom:32px}.entrance-overline::before{content:"";display:block;width:28px;height:1px;background:var(--jade);opacity:.6}.entrance-copy h1{font-family:"Songti SC","Songti TC","STSong","Noto Serif CJK SC",serif;font-weight:400;font-size:clamp(54px,6.4vw,98px);line-height:1.28;letter-spacing:.01em;margin:0 0 30px;text-wrap:nowrap}.entrance-copy h1 span{display:block}.entrance-copy h1 span:last-child{color:#9bbba0}.entrance-description{white-space:pre-line;max-width:360px;color:var(--quiet);font-size:14px;line-height:2.1;letter-spacing:1px;margin-bottom:0}.entrance-copy .entrance-meaning{display:block;color:#829689;font-size:10px;line-height:2;letter-spacing:2px;margin-top:34px;font-family:ui-monospace,monospace}.entrance-canvas{position:absolute;inset:0;width:100%;height:100%;z-index:1;pointer-events:none}.entrance-stage-ring{position:absolute;left:69%;top:53%;width:min(40vw,550px);height:min(40vw,550px);transform:translate(-50%,-50%);border:1px solid #b7d5ba13;border-radius:50%;z-index:0;pointer-events:none}.entrance-stage-ring::before,.entrance-stage-ring::after{content:"";position:absolute;background:#b7d5ba50;width:6px;height:6px;border-radius:50%;left:14%;top:14%}.entrance-stage-ring::after{left:85%;top:85%;width:3px;height:3px}.stone-hit{position:absolute;z-index:4;left:69%;top:49%;transform:translate(-50%,-50%);width:min(35vw,470px);height:min(39vw,520px);border:0!important;background:transparent!important;border-radius:50%!important;min-height:200px;padding:0!important}.stone-hit:hover{background:transparent!important}.stone-hit:active{transform:translate(-50%,-50%)!important}.stone-hit:focus-visible{outline:1px solid #bcdbb9;outline-offset:14px}.stone-hit .stone-crosshair{position:absolute;left:50%;top:51%;width:34px;height:34px;border:1px solid #d4e3c548;border-radius:50%;transform:translate(-50%,-50%);background:#14282010;box-shadow:0 0 28px #d1e7b512;opacity:.8;transition:opacity .25s,transform .25s}.stone-crosshair::before,.stone-crosshair::after{content:"";position:absolute;left:50%;top:50%;width:9px;height:1px;background:#e8eed7;transform:translate(-50%,-50%)}.stone-crosshair::after{transform:translate(-50%,-50%) rotate(90deg)}.stone-hit:hover .stone-crosshair{opacity:1;transform:translate(-50%,-50%) scale(1.25)}.stone-invitation{position:absolute;z-index:4;left:69%;top:78%;transform:translateX(-50%);display:flex;align-items:center;flex-direction:column;gap:8px;width:320px;text-align:center}.stone-invitation button{background:transparent!important;border:0;border-bottom:1px solid #a9c8ae66;font-size:14px;letter-spacing:3px;padding:11px 0;gap:30px}.stone-invitation button span:last-child{font-size:23px;font-weight:300;line-height:1}.stone-invitation p{font-size:10px;color:var(--quiet);letter-spacing:2px;margin:0}.entrance-footer{position:absolute;z-index:5;left:4.4vw;right:4.4vw;bottom:27px;display:flex;align-items:center;justify-content:space-between;border-top:1px solid #c4d4be1c;padding-top:19px;font:10px/1.7 ui-monospace,monospace;letter-spacing:2px;color:var(--quiet)}.entrance-footer .entrance-chapter{display:flex;gap:17px}.entrance-footer b{color:var(--ivory);font-weight:400}.entrance-pause{font:inherit!important;letter-spacing:1px;padding:5px 10px!important;border:0!important;background:transparent!important;min-height:44px;color:var(--quiet)!important}.entrance-reveal-label{position:absolute;z-index:5;left:50%;top:68%;transform:translate(-50%,16px);opacity:0;text-align:center;pointer-events:none;transition:opacity .4s,transform .6s;width:90%}.entrance-reveal-label strong{font:400 36px/1.5 "Songti SC","Songti TC","STSong",serif;letter-spacing:5px;display:block}.entrance-reveal-label small{display:block;color:var(--jade);font-size:12px;letter-spacing:4px;margin-top:10px}.stone-entrance[data-phase=carving] .entrance-copy,.stone-entrance[data-phase=carving] .stone-invitation,.stone-entrance[data-phase=carving] .stone-hit,.stone-entrance[data-phase=carving] .entrance-stage-ring{opacity:0;pointer-events:none;transition:opacity .4s,filter .5s;filter:blur(5px)}.stone-entrance[data-phase=revealed] .entrance-copy,.stone-entrance[data-phase=revealed] .stone-invitation,.stone-entrance[data-phase=revealed] .stone-hit,.stone-entrance[data-phase=revealed] .entrance-stage-ring{opacity:0;pointer-events:none}.stone-entrance[data-phase=revealed] .entrance-reveal-label{opacity:1;transform:translate(-50%,0)}.stone-entrance.is-leaving{opacity:0;visibility:hidden;pointer-events:none}.entrance-fallback{position:absolute;left:69%;top:49%;width:min(30vw,390px);height:min(35vw,460px);transform:translate(-50%,-50%);z-index:1;filter:drop-shadow(0 24px 55px #0009)}.entrance-fallback svg{width:100%;height:100%}.stone-entrance.has-webgl .entrance-fallback{display:none}.stone-entrance[data-phase=carving] .fallback-shell,.stone-entrance[data-phase=revealed] .fallback-shell{opacity:0;transform:scale(1.4);transform-origin:center;transition:opacity .6s,transform .8s}.entrance-arrival{animation:entrance-arrival .65s cubic-bezier(.22,1,.36,1) both}.stone-entrance:focus{outline:none}.entrance-live{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.stone-entrance :focus-visible{outline:2px solid var(--jade);outline-offset:5px}.stone-entrance[data-paused=true] .entrance-canvas{cursor:default}.stone-entrance[lang=en] .entrance-copy h1{font-size:clamp(47px,5.2vw,77px);line-height:1.2;letter-spacing:-1px;text-wrap:balance}.stone-entrance[lang=en] .entrance-description{letter-spacing:0}.stone-entrance[lang=en] .entrance-overline{letter-spacing:1.5px}.stone-entrance[lang=en] .stone-invitation button{letter-spacing:1px}
@keyframes entrance-arrival{from{opacity:.25}to{opacity:1}}
@media(min-width:768px) and (max-height:650px){.entrance-top{padding-top:17px}.entrance-copy h1{font-size:65px}.entrance-copy{top:50%}.entrance-overline{margin-bottom:18px}.entrance-description{font-size:12px}.entrance-copy .entrance-meaning{margin-top:17px}.entrance-footer{bottom:12px;padding-top:9px}.stone-invitation{top:77%}}
@media(max-width:767px){.entrance-top{padding:19px 22px;align-items:flex-start}.entrance-brand{gap:9px}.entrance-brand img{width:40px;height:40px;border-radius:10px}.entrance-brand strong{font-size:15px;letter-spacing:.5px}.entrance-brand small{font-size:8px;letter-spacing:1.4px}.entrance-controls{gap:0;flex-direction:column;align-items:flex-end}.entrance-languages{gap:0}.entrance-languages button{min-width:32px;padding:5px;font-size:10px}.entrance-skip{font-size:11px!important;padding:3px 0!important;min-height:35px;gap:12px!important}.entrance-copy{top:17%;left:7%;width:86%;text-align:center;transform:none}.entrance-overline{justify-content:center;font-size:10px;letter-spacing:2px;margin-bottom:16px}.entrance-overline::before{width:20px}.entrance-copy h1{font-size:clamp(38px,10vw,57px);line-height:1.3;margin-bottom:16px;text-wrap:initial}.entrance-copy h1 span{display:inline}.entrance-copy h1 span+span::before{content:"\A";white-space:pre}.entrance-description{font-size:12px;max-width:290px;margin:auto;line-height:1.9}.entrance-copy .entrance-meaning{display:none}.entrance-stage-ring{left:50%;top:61%;width:74vw;height:74vw;max-height:36vh;max-width:36vh}.stone-hit{left:50%;top:60%;width:78vw;height:35vh;min-height:140px}.stone-invitation{left:50%;top:80%;gap:7px;width:90%}.stone-invitation button{font-size:12px;letter-spacing:2px;padding:8px 0}.stone-invitation p{font-size:9px;letter-spacing:1px}.entrance-footer{left:22px;right:22px;bottom:max(10px,env(safe-area-inset-bottom));padding-top:8px;font-size:8px;letter-spacing:1px}.entrance-footer .entrance-chapter{gap:8px}.entrance-footer .entrance-footer-line{display:none}.entrance-pause{font-size:9px!important}.entrance-reveal-label{top:72%}.entrance-reveal-label strong{font-size:29px;letter-spacing:3px}.entrance-reveal-label small{font-size:10px;letter-spacing:2px}.entrance-fallback{left:50%;top:60%;height:29vh;width:60vw}.stone-entrance[lang=en] .entrance-copy h1{font-size:36px}.stone-entrance[lang=en] .entrance-copy{top:17%}.stone-entrance[lang=en] .entrance-description{font-size:11px;max-width:285px}}
@media(max-width:767px) and (max-height:700px){.entrance-copy{top:16%}.entrance-copy h1{font-size:35px;margin-bottom:10px}.entrance-overline{margin-bottom:10px}.entrance-description{font-size:11px}.entrance-invitation{top:79%}.stone-entrance[lang=en] .entrance-copy h1{font-size:29px}.entrance-controls{flex-direction:row;gap:6px}.entrance-languages{display:none}}
@media(prefers-reduced-motion:reduce){.stone-entrance,.stone-entrance *,.entrance-arrival{animation:none!important;transition:none!important;scroll-behavior:auto!important}.stone-entrance .entrance-pause{display:none}.entrance-stage-ring{display:none}}

.stone-entrance:not(.has-webgl) .entrance-canvas{visibility:hidden}.entrance-footer{pointer-events:none}.entrance-footer button{pointer-events:auto}
@media(max-height:570px) and (min-width:768px){.entrance-top{padding:12px 30px}.entrance-copy{left:7%;top:46%}.entrance-copy h1{font-size:48px;line-height:1.2;margin-bottom:16px}.entrance-overline{font-size:9px;margin-bottom:14px}.entrance-copy .entrance-meaning{display:none}.entrance-description{font-size:11px}.stone-invitation{top:auto;bottom:45px}.stone-invitation button{font-size:11px;padding:7px 0;min-height:36px}.stone-invitation p{display:none}.entrance-footer{bottom:3px;border:0;padding:0}.entrance-footer-line{display:none}.entrance-pause{min-height:36px}.entrance-stage-ring{width:43vh;height:43vh}.stone-hit{height:57vh;min-height:120px}.entrance-reveal-label{top:69%}.entrance-reveal-label strong{font-size:27px}}
@media(max-height:700px) and (max-width:767px){.stone-invitation{top:auto;bottom:64px}.stone-invitation p{display:none}.entrance-footer{bottom:5px;border:0;padding:0}.entrance-copy{top:16%}.entrance-stage-ring{top:60%}.stone-hit{top:60%}.entrance-top{padding-top:12px}.entrance-languages button{min-height:38px}}
@media(max-width:767px) and (min-height:701px){.entrance-languages button{min-width:38px;min-height:44px}}

@media(prefers-reduced-motion:no-preference){.entrance-copy{animation:prologue-type .9s .15s both}.stone-entrance.has-webgl .entrance-canvas{animation:prologue-stone .85s both}.stone-entrance[data-paused=true] .entrance-copy,.stone-entrance[data-paused=true] .entrance-canvas{animation-play-state:paused}}
@keyframes prologue-type{from{opacity:0;filter:blur(7px)}to{opacity:1;filter:blur(0)}}
@keyframes prologue-stone{from{opacity:0}to{opacity:1}}
.stone-entrance:not([data-phase=waiting]) .entrance-copy{animation:none}

@media(max-width:767px){.entrance-brand{flex-shrink:0}.entrance-brand small span{display:none}.entrance-brand small{white-space:nowrap}.entrance-description{max-width:290px}}
@media(max-width:767px) and (max-height:700px){.entrance-controls{flex-direction:column;gap:0}.entrance-languages{display:flex}.entrance-languages button{min-width:34px}.entrance-skip{min-height:32px}}
@media(max-width:767px) and (max-height:540px){.entrance-languages{position:fixed;left:50%;bottom:7px;transform:translateX(-50%)}.entrance-controls{flex-direction:row}.entrance-languages button{min-height:36px}}
.entrance-top [data-pose]{background:#173526;border-color:#50715c;color:#e7ece2}
.stone-entrance[data-automatic=true] .stone-invitation,.stone-entrance[data-automatic=true] .stone-hit,.stone-entrance[data-automatic=true] .entrance-pause{visibility:hidden}

/* Account entry lives in the stone scene; authentication reveals this same stone. */
.stone-entrance[data-layout=auth]{overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain}
.stone-entrance[data-layout=auth] .entrance-copy{position:relative;top:auto;left:auto;transform:none;width:43%;max-width:560px;min-height:100svh;margin-left:8vw;padding:126px 0 90px;display:flex;flex-direction:column;justify-content:center;animation:none}
.stone-entrance[data-layout=auth] .entrance-copy h1{font-size:clamp(48px,4.8vw,74px);line-height:1.22;letter-spacing:.01em;margin-bottom:30px}
.stone-entrance[data-layout=auth] .entrance-overline{font-size:10px;letter-spacing:2px;margin-bottom:23px}
.stone-entrance[data-layout=auth] .entrance-description,.stone-entrance[data-layout=auth] .entrance-meaning{display:none}
.stone-entrance[data-mode=auth] .stone-invitation,.stone-entrance[data-mode=auth] .stone-hit,.stone-entrance[data-mode=auth] .entrance-skip{display:none}
.stone-entrance[data-layout=auth] .entrance-footer{position:fixed}
.entrance-auth{pointer-events:auto;width:min(100%,390px)}
.entry-account{--text:var(--ivory);--muted:#a6b7aa;--bg:#10261bbd;--line:#668774;--border-strong:#add8b5;--brand:#add8b5;--soft:#203d2d;--warn:#f1b7a5;--warn-bg:#36251ee8;position:relative}
.entry-account h2{font-size:15px;line-height:1.5;font-weight:500;letter-spacing:.5px;margin:0 0 5px;color:var(--ivory)}
.entry-account-lead{font-size:12px;line-height:1.8;color:var(--muted);margin:0 0 20px}
.entry-account .account-form{gap:14px}
.entry-account .account-field{font-size:12px;font-weight:400;gap:6px}
.entry-account .account-field input{background:var(--bg);color:var(--ivory);border-color:var(--line);border-radius:7px;min-height:46px}
.entry-account .account-password-toggle{color:var(--muted);border-radius:6px}
.entry-account input:autofill{box-shadow:0 0 0 1000px #173323 inset;-webkit-text-fill-color:var(--ivory)}
.entry-account .account-submit{border:1px solid #bad2b3;background:#bed8b8;color:#132a1c;border-radius:7px;min-height:46px;font-size:13px;font-weight:600;letter-spacing:.5px;margin-top:6px}
.entry-account .account-submit:hover{background:#d1e6c9;border-color:#d1e6c9;color:#132a1c}
.entry-account .entry-guest{display:flex;gap:9px;min-height:44px;margin:10px auto 0;padding:7px 12px;font-size:12px;color:#c0d2c3;background:transparent;border:0;border-radius:6px}
.entry-account .entry-guest:hover{background:#193426;color:var(--ivory)}
.entry-guest-hint{text-align:center;font-size:11px;color:var(--muted);margin:-3px 0 0;line-height:1.6}
.entry-account-footnote{font-size:11px;color:var(--muted);margin:17px 0 0;line-height:1.7;text-align:center}
.entry-account .account-help{font-size:11px;margin:-5px 0 0;line-height:1.6}
.entry-account .account-message{margin:0;font-size:12px;padding:10px 12px;background:var(--soft);color:var(--brand);border-color:var(--line)}
.entry-account .account-message--error{color:var(--warn);background:var(--warn-bg);border-color:#805b4a}
.entry-account [aria-invalid=true]{border-color:#e6a58f}
.stone-entrance[data-layout=auth][lang=en] .entrance-copy h1{font-size:clamp(42px,4.5vw,66px)}
.stone-entrance[data-layout=auth][data-phase=waiting] .entrance-reveal-label{display:none}
@media(min-width:768px) and (max-height:780px){
 .stone-entrance[data-layout=auth] .entrance-copy{padding-top:98px;padding-bottom:62px}
 .stone-entrance[data-layout=auth] .entrance-copy h1{font-size:46px;margin-bottom:20px}
 .stone-entrance[data-layout=auth] .entrance-overline{margin-bottom:16px}
 .stone-entrance[data-layout=auth] .entrance-footer{display:none}
}
@media(max-width:767px){
 .stone-entrance[data-layout=auth] .entrance-top{padding:18px 22px}
 .stone-entrance[data-layout=auth] .entrance-controls{flex-direction:row}
 .stone-entrance[data-layout=auth] .entrance-languages{position:static;transform:none;display:flex}
 .stone-entrance[data-layout=auth] .entrance-languages button{min-width:40px;min-height:44px}
 .stone-entrance[data-layout=auth] .entrance-copy{top:auto;left:auto;width:auto;max-width:470px;min-height:100svh;margin:0 auto;padding:112px 26px 48px;text-align:left;justify-content:flex-start}
 .stone-entrance[data-layout=auth] .entrance-copy h1,.stone-entrance[data-layout=auth][lang=en] .entrance-copy h1{font-size:36px;line-height:1.2;margin-bottom:26px;width:75%;letter-spacing:0}
 .stone-entrance[data-layout=auth] .entrance-copy h1 span{display:block}
 .stone-entrance[data-layout=auth] .entrance-copy h1 span+span::before{content:none}
 .stone-entrance[data-layout=auth] .entrance-overline{justify-content:flex-start;font-size:9px;margin-bottom:17px;letter-spacing:1px}
 .stone-entrance[data-layout=auth] .entrance-auth{width:100%;max-width:none}
 .stone-entrance[data-layout=auth] .entrance-canvas{inset:0;width:100%;height:100%;opacity:.68}
 .stone-entrance[data-layout=auth] .entrance-stage-ring{left:84%;top:171px;width:min(150px,32vw);height:min(150px,32vw)}
 .stone-entrance[data-layout=auth] .entrance-fallback{left:82%;top:170px;width:min(145px,34vw);height:175px;opacity:.7}
 .stone-entrance[data-layout=auth] .entrance-footer{display:none}
 .stone-entrance[data-layout=auth][data-automatic=true] .entrance-canvas{inset:0;width:100%;height:100%;opacity:1}
 .stone-entrance[data-layout=auth][data-automatic=true] .entrance-fallback{left:50%;top:48%;width:60vw;height:34vh;opacity:1}
 .entry-account .account-field input{font-size:16px}
 .entry-account h2{font-size:14px}
 .entry-account .account-form{gap:15px}
}
