@font-face{font-family:BH Display;src:url(/fonts/smileysans-display.subset.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:BH Text;src:url(/fonts/lxgwwenkai-regular.subset.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}:root{--c-night:#0a1a33;--c-bluehour:#1c3f7a;--c-dusk:#6f7fd9;--c-glow:#f3a26d;--c-blush:#f2a9c4;--c-cream:#fff3dc;--c-neon:#5fd4ff;--rgb-night:10, 26, 51;--rgb-bluehour:28, 63, 122;--rgb-dusk:111, 127, 217;--rgb-glow:243, 162, 109;--rgb-blush:242, 169, 196;--rgb-cream:255, 243, 220;--rgb-neon:95, 212, 255;--safe-top:env(safe-area-inset-top,0px);--safe-right:env(safe-area-inset-right,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--safe-left:env(safe-area-inset-left,0px);--font-title:"BH Display", "BH Text", "PingFang SC", "Hiragino Sans GB", sans-serif;--font-body:"BH Text", "PingFang SC", "Hiragino Sans GB", sans-serif;--fs-12:12px;--fs-14:14px;--fs-16:16px;--fs-20:20px;--fs-28:28px;--fs-44:44px;--fs-72:72px;--ease:cubic-bezier(.22, 1, .36, 1);--ease-in-out:cubic-bezier(.65, 0, .35, 1);--ease-back:cubic-bezier(.34, 1.56, .64, 1);--dur:.32s;--glow-primary:inset 0 1px 0 rgba(var(--rgb-cream), .55), 0 0 8px rgba(var(--rgb-glow), .55), 0 0 24px rgba(var(--rgb-glow), .35), 0 0 56px rgba(var(--rgb-glow), .2);--glow-primary-pressed:inset 0 1px 0 rgba(var(--rgb-cream), .4), 0 0 4px rgba(var(--rgb-glow), .6), 0 0 14px rgba(var(--rgb-glow), .4), 0 0 32px rgba(var(--rgb-glow), .2);--glow-secondary:inset 0 0 0 1px rgba(var(--rgb-cream), .45), 0 0 16px rgba(var(--rgb-cream), .08);--glass-bg:linear-gradient(180deg, rgba(var(--rgb-bluehour), .34) 0%, rgba(var(--rgb-night), .52) 100%);--glass-glow:inset 0 1px 0 rgba(var(--rgb-cream), .1), 0 0 24px rgba(var(--rgb-dusk), .16), 0 0 64px rgba(var(--rgb-dusk), .1);--u:.5417px;--bd-top:var(--c-night);--bd-bottom:var(--c-night);--app-h:100dvh}html,body{background:var(--c-night);width:100%;height:100%;color:var(--c-cream);overscroll-behavior:none;touch-action:none;-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;margin:0;padding:0;overflow:hidden}body{font-family:var(--font-body);font-size:var(--fs-16);-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;-webkit-font-smoothing:antialiased;line-height:1.6;position:fixed;inset:0}img{-webkit-touch-callout:none;-webkit-user-drag:none;-webkit-user-select:none;user-select:none;pointer-events:none}input,textarea{-webkit-user-select:text;user-select:text;-webkit-touch-callout:default}button,input{font:inherit;color:inherit}.num{font-family:var(--font-title);font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1}[data-scroll]{touch-action:pan-y;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;overflow-y:auto}#app{height:var(--app-h);background:linear-gradient(to bottom, var(--bd-top) 0%, var(--bd-top) 50%, var(--bd-bottom) 50%, var(--bd-bottom) 100%);position:fixed;inset:0;overflow:hidden}#game{top:var(--safe-top);right:var(--safe-right);bottom:var(--safe-bottom);left:var(--safe-left);position:absolute}#game canvas{touch-action:none;display:block}#flow{z-index:5;pointer-events:none;--s:1;position:absolute;inset:0;overflow:clip}#ui{z-index:10;pointer-events:none;width:0;height:0;position:absolute;top:0;left:0;overflow:hidden}#ui>*,#sys>*{pointer-events:auto}#veil{z-index:20;opacity:0;pointer-events:none;background:radial-gradient(120% 80% at 50% 46%, rgba(var(--rgb-cream), 1) 0%, rgba(var(--rgb-cream), .96) 34%, rgba(var(--rgb-blush), .9) 78%, rgba(var(--rgb-dusk), .85) 100%);transition:opacity .52s var(--ease);position:absolute;inset:0}#veil.on{opacity:.85;pointer-events:auto;transition-duration:.36s}#sys{z-index:30;pointer-events:none;position:absolute;inset:0}#boot-fallback{z-index:100;text-align:center;color:#fff3dc;background:linear-gradient(#0a1a33 0% 30%,#1c3f7a 78%,#6f7fd9 100%);flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:0 32px;display:flex;position:fixed;inset:0}#boot-fallback p{margin:0}#boot-fallback .bf-title{font-family:var(--font-title);font-size:var(--fs-28);letter-spacing:.24em;text-shadow:0 0 18px #fff3dc59;padding-left:.24em}#boot-fallback .bf-text{font-size:var(--fs-12);letter-spacing:.28em;opacity:.56}#boot-fallback .bf-hint{max-width:300px;font-size:var(--fs-12);opacity:0;animation:bf-reveal .4s var(--ease) 6s forwards;margin-top:24px;line-height:1.7}#boot-fallback .bf-retry{color:#fff3dc;font:inherit;font-size:var(--fs-14);letter-spacing:.2em;cursor:pointer;background:0 0;border:1px solid #fff3dc52;border-radius:999px;margin-top:28px;padding:12px 28px}#boot-fallback.error .bf-hint{animation-delay:0s}@keyframes bf-reveal{to{opacity:.72}}.panel,.glass{background:var(--glass-bg);-webkit-backdrop-filter:blur(16px)saturate(1.2);backdrop-filter:blur(16px)saturate(1.2);border:1px solid rgba(var(--rgb-cream), .3);box-shadow:var(--glass-glow);box-sizing:border-box;border-radius:16px}.panel{padding:20px}@supports not ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){.panel,.glass{background:#0e2242db}}.btn{box-sizing:border-box;min-width:200px;height:52px;font-family:var(--font-title);font-size:var(--fs-20);letter-spacing:.16em;white-space:nowrap;touch-action:manipulation;border-radius:999px;outline:none;justify-content:center;align-items:center;gap:8px;padding:0 32px;display:inline-flex;position:relative}.btn>span:last-child{padding-left:.16em}.btn-icon{width:18px;height:18px;display:inline-flex}.btn-icon svg{width:100%;height:100%}.tappable{cursor:pointer;transition:transform .32s var(--ease-back), box-shadow .32s var(--ease), opacity var(--dur) var(--ease), background-color .24s var(--ease)}.tappable.is-pressed{transition-duration:.1s;transition-timing-function:var(--ease);transform:scale(.96)}.tappable[aria-disabled=true]{opacity:.4;pointer-events:none}.btn--primary{color:var(--c-night);background:linear-gradient(180deg, color-mix(in srgb, var(--c-glow) 72%, var(--c-cream)) 0%, var(--c-glow) 100%);box-shadow:var(--glow-primary);animation:btn-breathe 3.2s var(--ease-in-out) infinite alternate}.btn--primary.is-pressed{box-shadow:var(--glow-primary-pressed);animation:none}@keyframes btn-breathe{0%{box-shadow:inset 0 1px 0 rgba(var(--rgb-cream), .55), 0 0 6px rgba(var(--rgb-glow), .5), 0 0 20px rgba(var(--rgb-glow), .28), 0 0 44px rgba(var(--rgb-glow), .14)}to{box-shadow:inset 0 1px 0 rgba(var(--rgb-cream), .55), 0 0 10px rgba(var(--rgb-glow), .62), 0 0 30px rgba(var(--rgb-glow), .42), 0 0 72px rgba(var(--rgb-glow), .26)}}.btn--primary.btn--textfont{font-family:var(--font-body);font-size:var(--fs-20);letter-spacing:.12em}.btn--ghost{color:var(--c-cream);box-shadow:var(--glow-secondary);font-family:var(--font-body);font-size:var(--fs-16);letter-spacing:.12em;background:0 0}.btn--ghost>span:last-child{padding-left:.12em}.btn--ghost.is-pressed{background:rgba(var(--rgb-cream), .08)}.btn--text{min-width:0;height:44px;color:rgba(var(--rgb-cream), .72);font-family:var(--font-body);font-size:var(--fs-14);letter-spacing:.12em;background:0 0;padding:0 12px}.btn--small{min-width:0;height:40px;font-size:var(--fs-14);letter-spacing:.12em;padding:0 18px}.btn:focus-visible,.icon-btn:focus-visible{outline:1px solid rgba(var(--rgb-cream), .8);outline-offset:3px}.icon-btn{width:40px;height:40px;color:var(--c-cream);background:var(--glass-bg);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);box-shadow:inset 0 0 0 1px rgba(var(--rgb-cream), .3);border-radius:50%;flex:none;justify-content:center;align-items:center;display:inline-flex;position:relative}.icon-btn svg{width:18px;height:18px}.icon-btn.icon-btn--small{width:32px;height:32px}.icon-btn.icon-btn--small svg{width:14px;height:14px}.toast{z-index:5;left:50%;top:calc(var(--safe-top) + 64px);box-sizing:border-box;background:var(--glass-bg);-webkit-backdrop-filter:blur(16px)saturate(1.2);backdrop-filter:blur(16px)saturate(1.2);max-width:calc(100% - 48px);box-shadow:inset 0 0 0 1px rgba(var(--rgb-cream), .3), 0 0 24px rgba(var(--rgb-dusk), .16);font-size:var(--fs-14);letter-spacing:.06em;text-align:center;opacity:0;transition:opacity var(--dur) var(--ease), transform var(--dur) var(--ease);border-radius:999px;padding:10px 20px;position:absolute;transform:translate(-50%,-8px);pointer-events:none!important}.toast.show{opacity:1;transform:translate(-50%)}.wx-bar{left:calc(var(--safe-left) + 12px);right:calc(var(--safe-right) + 12px);top:calc(var(--safe-top) + 10px);font-size:var(--fs-14);letter-spacing:.04em;transition:opacity var(--dur) var(--ease), transform var(--dur) var(--ease);animation:wx-in .48s var(--ease) both;border-radius:16px;align-items:center;gap:12px;padding:10px 10px 10px 18px;line-height:1.6;display:flex;position:absolute}.wx-bar.hide{opacity:0;pointer-events:none;transform:translateY(-12px)}.wx-bar p{flex:1;margin:0}.wx-bar b{color:var(--c-cream);text-shadow:0 0 10px rgba(var(--rgb-glow), .6);font-weight:400}@keyframes wx-in{0%{opacity:0;transform:translateY(-10px)}}.sheet{padding:calc(var(--safe-top) + 16px) calc(var(--safe-right) + 20px) calc(var(--safe-bottom) + 16px) calc(var(--safe-left) + 20px);box-sizing:border-box;background:radial-gradient(120% 90% at 50% 40%, rgba(var(--rgb-night), .3), rgba(var(--rgb-night), .62));opacity:0;transition:opacity .4s var(--ease);justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.sheet.show{opacity:1}.sheet>.panel{-webkit-overflow-scrolling:touch;width:100%;max-width:350px;max-height:100%;transition:transform .4s var(--ease);padding:26px 24px 22px;overflow-y:auto;transform:translateY(16px)scale(.98)}.sheet.show>.panel{transform:none}.sheet h2{font-family:var(--font-title);font-size:var(--fs-20);letter-spacing:.12em;margin:0 0 10px;font-weight:400;line-height:1.3}.sheet .lead{font-size:var(--fs-14);letter-spacing:.04em;color:rgba(var(--rgb-cream), .72);margin:0 0 18px;line-height:1.75}.sheet .actions{flex-direction:column;align-items:center;gap:6px;margin-top:22px;display:flex}.sheet .actions .btn--primary,.sheet .actions .btn--ghost{width:100%;min-width:0}.steps{justify-content:space-between;align-items:flex-start;margin:0;padding:0;list-style:none;display:flex}.steps li{font-size:var(--fs-12);letter-spacing:.08em;color:rgba(var(--rgb-cream), .72);text-align:center;flex-direction:column;flex:1;align-items:center;gap:8px;display:flex;position:relative}.steps li+li:before{content:"";background:linear-gradient(90deg, transparent, rgba(var(--rgb-cream), .5), transparent);width:calc(100% - 60px);height:1px;position:absolute;top:22px;right:calc(50% + 30px)}.steps .step-art{width:44px;height:44px;color:var(--c-cream);background:rgba(var(--rgb-cream), .06);box-shadow:inset 0 0 0 1px rgba(var(--rgb-cream), .24), 0 0 18px rgba(var(--rgb-dusk), .2);border-radius:14px;justify-content:center;align-items:center;display:flex}.steps .step-icon,.steps .step-icon svg{width:22px;height:22px;display:block}.steps b{color:var(--c-cream);font-weight:400}.code-card{flex-direction:column;align-items:center;gap:10px;display:flex}.code-label{font-size:var(--fs-12);letter-spacing:.28em;color:rgba(var(--rgb-cream), .56)}.code-value{font-family:var(--font-title);font-size:var(--fs-28);letter-spacing:.12em;background:rgba(var(--rgb-cream), .06);box-shadow:inset 0 0 0 1px rgba(var(--rgb-cream), .16);text-shadow:0 0 16px rgba(var(--rgb-cream), .3);-webkit-user-select:all;user-select:all;border-radius:12px;padding:8px 18px}.code-input{box-sizing:border-box;width:100%;height:48px;box-shadow:inset 0 0 0 1px rgba(var(--rgb-cream), .3);background:rgba(var(--rgb-night), .4);font-family:var(--font-title);font-size:var(--fs-20);letter-spacing:.12em;text-align:center;transition:box-shadow .24s var(--ease);border:0;border-radius:12px;outline:none;padding:0 16px}.code-input::placeholder{font-family:var(--font-body);font-size:var(--fs-14);letter-spacing:.12em;color:rgba(var(--rgb-cream), .4)}.code-input:focus{box-shadow:inset 0 0 0 1px rgba(var(--rgb-glow), .9), 0 0 16px rgba(var(--rgb-glow), .25)}.divider{background:linear-gradient(90deg, transparent, rgba(var(--rgb-cream), .2), transparent);height:1px;margin:20px 0 16px}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.scene-ui{pointer-events:none;position:absolute;inset:0}.scene-ui>*{pointer-events:auto}.chip{height:calc(var(--u) * 64);padding:0 calc(var(--u) * 28);font-size:calc(var(--u) * 26);letter-spacing:.08em;white-space:nowrap;background:#0a1a3359;border:1px solid #fff3dc40;border-radius:999px;align-items:center;display:inline-flex}.start-wrap{align-items:center;gap:calc(var(--u) * 24);opacity:0;transition:opacity .6s var(--ease);flex-direction:column;display:flex}.start-wrap.show{opacity:1}.start-wrap .btn{min-height:calc(var(--u) * 100);padding:0 calc(var(--u) * 64);font-size:calc(var(--u) * 34)}.gate{flex-direction:column;align-items:center;display:flex;position:absolute;inset:0}.gate-prompt{margin:calc(var(--u) * 350) 0 0;line-height:1.2;font-family:var(--font-title);font-size:calc(var(--u) * 52);letter-spacing:.14em}.gate-slots{gap:calc(var(--u) * 24);margin-top:calc(var(--u) * 40);display:flex}.gate-slot{width:calc(var(--u) * 92);height:calc(var(--u) * 108);box-sizing:border-box;border-radius:calc(var(--u) * 24);font-family:var(--font-title);font-size:calc(var(--u) * 40);color:#fff3dc47;transition:border-color var(--dur) var(--ease), box-shadow var(--dur) var(--ease);background:#0a1a3359;border:1px solid #fff3dc4d;justify-content:center;align-items:center;display:flex}.gate-slot.filled{font-size:calc(var(--u) * 64);color:var(--c-cream);border-color:var(--c-glow);box-shadow:0 0 calc(var(--u) * 28) #f3a26d73}.gate.ok .gate-slot{border-color:var(--c-blush);box-shadow:0 0 calc(var(--u) * 36) #f2a9c4b3}.gate.shake .gate-slots{animation:gate-shake .42s var(--ease)}@keyframes gate-shake{0%,to{transform:translate(0)}20%{transform:translateX(calc(var(--u) * -18))}40%{transform:translateX(calc(var(--u) * 14))}60%{transform:translateX(calc(var(--u) * -8))}80%{transform:translateX(calc(var(--u) * 4))}}.gate-hint{min-height:calc(var(--u) * 44);margin:calc(var(--u) * 22) 0 0;font-size:calc(var(--u) * 28);opacity:.8;text-align:center;line-height:1.4}.keypad{grid-template-columns:repeat(3, calc(var(--u) * 128));gap:calc(var(--u) * 20) calc(var(--u) * 52);margin-top:calc(var(--u) * 22);display:grid}.key{width:calc(var(--u) * 128);height:calc(var(--u) * 128);font-family:var(--font-title);font-size:calc(var(--u) * 52);background:#fff3dc14;border:1px solid #fff3dc38;border-radius:50%;justify-content:center;align-items:center;display:flex;position:relative}.key.is-pressed{background:#f3a26d59}.key--ghost{background:0 0;border-color:#0000}.key svg{width:calc(var(--u) * 52);height:calc(var(--u) * 52)}.key--blank{visibility:hidden}.finale{-webkit-overflow-scrolling:touch;overscroll-behavior:contain;touch-action:pan-y;position:absolute;inset:0;overflow-y:auto}.finale-inner{padding:calc(var(--u) * 160) calc(var(--u) * 48) calc(var(--u) * 120);align-items:center;gap:calc(var(--u) * 40);flex-direction:column;display:flex}.finale h1{font-family:var(--font-title);font-weight:400;font-size:calc(var(--u) * 82);letter-spacing:.12em;margin:0}.finale .sub{margin:calc(var(--u) * -20) 0 0;font-size:calc(var(--u) * 26);opacity:.7;letter-spacing:.16em}.polaroids{gap:calc(var(--u) * 28);justify-content:center;display:flex}.polaroid{width:calc(var(--u) * 290);padding:calc(var(--u) * 14) calc(var(--u) * 14) calc(var(--u) * 20);box-sizing:border-box;background:var(--c-cream);color:var(--c-night);border-radius:calc(var(--u) * 4);box-shadow:0 0 calc(var(--u) * 40) #fff3dc40;margin:0}.polaroid .photo{aspect-ratio:3/4;background:#fffaf0;position:relative;overflow:hidden}.polaroid img{object-fit:cover;filter:brightness(1.9)saturate(0)contrast(.5);opacity:.15;width:100%;height:100%;transition:filter 1.2s var(--ease), opacity 1.2s var(--ease);display:block}.polaroid.developed img{filter:none;opacity:1}.polaroid .missing{padding:calc(var(--u) * 20);font-size:calc(var(--u) * 22);text-align:center;color:#0a1a338c;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.polaroid figcaption{padding-top:calc(var(--u) * 14);font-size:calc(var(--u) * 24);line-height:1.4}.polaroid .meta{margin-top:calc(var(--u) * 6);font-size:calc(var(--u) * 18);opacity:.6;display:block}.letter{width:100%;font-size:calc(var(--u) * 30);line-height:1.8}.letter p{white-space:pre-line;margin:0}.letter .sign{margin-top:calc(var(--u) * 16);text-align:right}.closing{text-align:center;font-family:var(--font-title);font-size:calc(var(--u) * 40);letter-spacing:.1em}.closing .big{font-size:calc(var(--u) * 132);color:var(--c-glow);line-height:1.2;display:block}.fl-scene{isolation:isolate;color:var(--c-cream);font-family:var(--font-body);background:var(--c-night);pointer-events:auto;-webkit-tap-highlight-color:transparent;position:absolute;inset:0;overflow:clip}.fl-scene:after{content:"";z-index:50;pointer-events:none;opacity:.035;mix-blend-mode:overlay;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");position:absolute;inset:0}.stage{width:390px;height:844px;transform:translate(-50%, -50%) scale(var(--s,1));transform-origin:50%;pointer-events:none;position:absolute;top:50%;left:50%}.stage .hit,.stage .tappable{pointer-events:auto}.layer{pointer-events:none;position:absolute;inset:0}.sky{background:linear-gradient(180deg, var(--c-night) 0%, var(--c-bluehour) 34%, var(--c-dusk) 58%, var(--c-blush) 72%, var(--c-glow) 82%)}.sky-deep{background:linear-gradient(180deg, var(--c-night) 0%, var(--c-night) 22%, var(--c-bluehour) 64%, var(--c-dusk) 90%, var(--c-blush) 100%)}.sky-night{background:linear-gradient(180deg, var(--c-night) 0%, var(--c-night) 30%, var(--c-bluehour) 78%, var(--c-dusk) 100%)}.sky-plain{background:var(--c-night)}.sky-gold{background:linear-gradient(180deg, var(--c-bluehour) 0%, var(--c-dusk) 26%, var(--c-blush) 48%, var(--c-glow) 68%, color-mix(in srgb, var(--c-glow) 55%, var(--c-cream)) 84%, var(--c-cream) 100%)}canvas.fx{pointer-events:none;width:100%;height:100%;position:absolute;top:0;left:0}.bloom{pointer-events:none;background:radial-gradient(closest-side, rgba(var(--rgb-cream), .55), rgba(var(--rgb-glow), .28) 40%, rgba(var(--rgb-glow), 0) 100%);animation:breathe-opacity 6.4s var(--ease-in-out) infinite alternate;border-radius:50%;position:absolute}.neb-tilt{pointer-events:none;transform-origin:50%;width:150%;position:absolute;left:-25%}.nebula{width:200%;height:100%;animation:drift var(--dur,200s) linear infinite;will-change:transform;display:flex;position:absolute;top:0;left:0}.nebula.reverse{animation-direction:reverse}.nebula>i{height:100%;filter:blur(var(--blur,20px));opacity:var(--alpha,.5);flex:0 0 50%}@keyframes drift{to{transform:translate(-50%)}}.nebula.far>i{background:radial-gradient(ellipse 120px 26px at 30% 48%, rgba(var(--rgb-cream), .35) 0 10%, transparent 70%), radial-gradient(ellipse 170px 40px at 26% 50%, rgba(var(--rgb-blush), .5) 0 18%, transparent 72%), radial-gradient(ellipse 230px 64px at 22% 52%, rgba(var(--rgb-dusk), .7) 0 22%, transparent 74%), radial-gradient(ellipse 150px 34px at 72% 46%, rgba(var(--rgb-blush), .4) 0 15%, transparent 72%), radial-gradient(ellipse 250px 70px at 70% 50%, rgba(var(--rgb-dusk), .6) 0 22%, transparent 74%), radial-gradient(ellipse 300px 100px at 50% 50%, rgba(var(--rgb-bluehour), .6) 0 25%, transparent 76%)}.nebula.mid>i{background:radial-gradient(ellipse 50px 34px at 20% 50%, rgba(var(--rgb-glow), .55) 0 15%, transparent 70%), radial-gradient(ellipse 110px 64px at 21% 52%, rgba(var(--rgb-blush), .6) 0 25%, transparent 72%), radial-gradient(ellipse 170px 90px at 24% 55%, rgba(var(--rgb-dusk), .6) 0 30%, transparent 75%), radial-gradient(ellipse 90px 54px at 72% 46%, rgba(var(--rgb-blush), .5) 0 25%, transparent 72%), radial-gradient(ellipse 150px 80px at 74% 50%, rgba(var(--rgb-dusk), .55) 0 30%, transparent 75%)}.nebula.band>i{background:radial-gradient(ellipse 140px 30px at 26% 48%, rgba(var(--rgb-cream), .4) 0 10%, transparent 70%), radial-gradient(ellipse 200px 56px at 26% 50%, rgba(var(--rgb-glow), .35) 0 16%, transparent 72%), radial-gradient(ellipse 260px 80px at 28% 52%, rgba(var(--rgb-blush), .55) 0 22%, transparent 74%), radial-gradient(ellipse 320px 110px at 50% 52%, rgba(var(--rgb-dusk), .7) 0 26%, transparent 76%), radial-gradient(ellipse 200px 50px at 76% 48%, rgba(var(--rgb-blush), .5) 0 20%, transparent 72%)}.nebula.veil>i{background:radial-gradient(ellipse 90px 26px at 18% 42%, rgba(var(--rgb-blush), .55) 0 20%, transparent 72%), radial-gradient(ellipse 110px 30px at 52% 38%, rgba(var(--rgb-cream), .3) 0 12%, transparent 72%), radial-gradient(ellipse 100px 28px at 82% 44%, rgba(var(--rgb-blush), .5) 0 20%, transparent 72%), radial-gradient(ellipse 160px 44px at 30% 56%, rgba(var(--rgb-dusk), .85) 0 34%, transparent 76%), radial-gradient(ellipse 170px 46px at 70% 54%, rgba(var(--rgb-dusk), .85) 0 34%, transparent 76%), linear-gradient(180deg, transparent 0%, rgba(var(--rgb-dusk), .55) 30%, rgba(var(--rgb-bluehour), .75) 62%, transparent 100%)}.nebula.horizon>i{background:radial-gradient(ellipse 90px 20px at 18% 22%, rgba(var(--rgb-cream), .7) 0 14%, transparent 70%), radial-gradient(ellipse 160px 38px at 24% 28%, rgba(var(--rgb-glow), .6) 0 22%, transparent 72%), radial-gradient(ellipse 110px 24px at 64% 20%, rgba(var(--rgb-cream), .55) 0 14%, transparent 70%), radial-gradient(ellipse 190px 44px at 66% 28%, var(--c-blush) 0 24%, transparent 72%), radial-gradient(ellipse 150px 40px at 92% 30%, rgba(var(--rgb-glow), .5) 0 20%, transparent 72%), radial-gradient(ellipse 160px 70px at 30% 56%, var(--c-dusk) 0 30%, transparent 76%), radial-gradient(ellipse 170px 70px at 78% 58%, var(--c-dusk) 0 30%, transparent 76%), linear-gradient(180deg, transparent 0%, transparent 32%, var(--c-dusk) 52%, var(--c-bluehour) 100%)}.nebula.fore>i{background:radial-gradient(ellipse 160px 70px at 15% 50%, rgba(var(--rgb-cream), .45) 0 10%, transparent 70%), radial-gradient(ellipse 200px 80px at 70% 60%, rgba(var(--rgb-blush), .4) 0 15%, transparent 70%)}.rimlit{filter:drop-shadow(0 0 1px rgba(var(--rgb-cream), .9)) drop-shadow(0 0 6px rgba(var(--rgb-cream), .35)) drop-shadow(0 0 18px rgba(var(--rgb-glow), .25))}.halo{pointer-events:none;background:radial-gradient(closest-side, rgba(var(--rgb-cream), .32), rgba(var(--rgb-glow), .16) 45%, rgba(var(--rgb-glow), 0) 100%);animation:breathe-halo 3.2s var(--ease-in-out) infinite alternate;border-radius:50%;position:absolute}@keyframes breathe-halo{0%{opacity:.55;transform:scale(.94)}to{opacity:1;transform:scale(1.06)}}@keyframes breathe-opacity{0%{opacity:.75}to{opacity:1}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}.float{animation:float 3.6s var(--ease-in-out) infinite}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes fade-up{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.t-hero,.t-display,.t-heading,.t-title,.t-label{font-family:var(--font-title);font-weight:400}.t-hero{letter-spacing:.02em;text-shadow:0 0 24px rgba(var(--rgb-cream), .35), 0 0 64px rgba(var(--rgb-glow), .25);font-size:72px;line-height:1.05}.t-display{letter-spacing:.04em;text-shadow:0 0 16px rgba(var(--rgb-cream), .3);font-size:44px;line-height:1.05}.t-heading{letter-spacing:.08em;font-size:28px;line-height:1.3}.t-title{letter-spacing:.12em;font-size:20px;line-height:1.3}.t-label{letter-spacing:.28em;color:rgba(var(--rgb-cream), .72);font-size:12px;line-height:1.3}.t-label.zh{font-family:var(--font-body);letter-spacing:.2em}.t-body{letter-spacing:.04em;font-size:16px;line-height:1.75}.t-small{letter-spacing:.04em;font-size:14px;line-height:1.6}.t-caption{letter-spacing:.12em;color:rgba(var(--rgb-cream), .56);font-size:12px;line-height:1.5}.dim{color:rgba(var(--rgb-cream), .72)}.faint{color:rgba(var(--rgb-cream), .48)}.pill{white-space:nowrap;border-radius:999px;align-items:center;gap:8px;height:30px;padding:0 12px 0 14px;display:inline-flex}.pill-name{font-family:var(--font-title);letter-spacing:.12em;font-size:14px}.pill-note{letter-spacing:.12em;color:rgba(var(--rgb-cream), .72);font-size:12px}.card-pill{white-space:nowrap;border-radius:16px;flex-direction:column;align-items:center;gap:2px;padding:8px 16px 9px;display:flex}.card-pill .cp-top{align-items:center;gap:8px;display:flex}.card-pill .cp-line{letter-spacing:.12em;color:rgba(var(--rgb-cream), .72);font-size:12px}.stars-row{gap:2px;display:inline-flex}.stars-row svg{width:12px;height:12px;fill:rgba(var(--rgb-cream), .28);transition:fill .4s var(--ease), filter .4s var(--ease)}.stars-row svg.on{fill:var(--c-cream);filter:drop-shadow(0 0 3px rgba(var(--rgb-cream), .9)) drop-shadow(0 0 8px rgba(var(--rgb-blush), .6))}.stars-row svg.is-new{animation:star-ignite 1.2s var(--ease) both}@keyframes star-ignite{0%{fill:rgba(var(--rgb-cream), .28);transform:scale(.4)}30%{filter:drop-shadow(0 0 4px var(--c-cream)) drop-shadow(0 0 14px rgba(var(--rgb-blush), .9));transform:scale(1.6)}to{transform:scale(1)}}.ign{color:var(--c-cream);isolation:isolate;display:inline-block;position:relative}.ign:before{content:"";background:radial-gradient(closest-side, rgba(var(--rgb-cream), .9), rgba(var(--rgb-glow), .45) 32%, rgba(var(--rgb-blush), .18) 60%, transparent);opacity:0;pointer-events:none;z-index:-1;border-radius:50%;width:2.4em;height:2.4em;margin:-1.2em 0 0 -1.2em;position:absolute;top:50%;left:50%}.ign:after{content:"";background:linear-gradient(90deg, transparent, rgba(var(--rgb-cream), .95), transparent) center / 100% 1px no-repeat, linear-gradient(0deg, transparent, rgba(var(--rgb-cream), .95), transparent) center / 1px 100% no-repeat;opacity:0;pointer-events:none;width:1.8em;height:1.8em;margin:-.9em 0 0 -.9em;position:absolute;top:50%;left:50%}.seq .ign{opacity:.08;filter:blur(1.5px)}.seq.is-playing .ign{animation:ignite 1.6s var(--ease) var(--ign-at,0s) both}.seq.is-playing .ign:before{animation:ignite-burst 1.6s var(--ease) var(--ign-at,0s) both}.seq.is-playing .ign:after{animation:ignite-flare 1.2s var(--ease) var(--ign-at,0s) both}@keyframes ignite{0%{opacity:.08;filter:blur(1.5px);text-shadow:none;transform:scale(.96)}16%{opacity:1;filter:blur()brightness(1.5);text-shadow:0 0 6px var(--c-cream), 0 0 28px rgba(var(--rgb-cream), .9), 0 0 64px rgba(var(--rgb-glow), .8), 0 0 110px rgba(var(--rgb-blush), .6);transform:scale(1.07)}to{opacity:1;filter:none;text-shadow:0 0 18px rgba(var(--rgb-cream), .38), 0 0 54px rgba(var(--rgb-glow), .3);transform:scale(1)}}@keyframes ignite-burst{0%{opacity:0;transform:scale(.2)}14%{opacity:1}to{opacity:0;transform:scale(2.2)}}@keyframes ignite-flare{0%{opacity:0;transform:scale(.2)rotate(0)}20%{opacity:1;transform:scale(1.2)rotate(20deg)}to{opacity:0;transform:scale(.6)rotate(45deg)}}.ch{opacity:0;filter:blur(2px);transition:opacity .14s var(--ease), filter .14s var(--ease)}.ch.on{opacity:1;filter:none}.caret{vertical-align:-.15em;background:var(--c-cream);width:2px;height:1.1em;box-shadow:0 0 8px rgba(var(--rgb-cream), .8);margin-left:2px;animation:1s step-end infinite caret;display:inline-block}@keyframes caret{50%{opacity:0}}.tap-hint{left:0;right:0;bottom:max(30px, calc(var(--safe-bottom) + 8px));text-align:center;letter-spacing:.28em;color:rgba(var(--rgb-cream), .56);opacity:0;transition:opacity 1.2s var(--ease);pointer-events:none;padding-left:.28em;font-size:12px;position:absolute}.tap-hint.on{opacity:1;animation:breathe-opacity 2.4s var(--ease-in-out) 1.2s infinite alternate}.seg{opacity:0;visibility:hidden;transition:opacity .7s var(--ease), visibility 0s linear .7s;position:absolute;inset:0}.seg.on{opacity:1;visibility:visible;transition:opacity .9s var(--ease) .12s, visibility 0s}.figure{pointer-events:none;position:absolute;left:50%;transform:translate(-50%)}.figure img{display:block;position:relative}.fg-pool{background:radial-gradient(closest-side, rgba(var(--rgb-cream), .35), rgba(var(--rgb-glow), .12) 60%, transparent);height:32px;animation:breathe-opacity 3.6s var(--ease-in-out) infinite alternate;border-radius:50%;position:absolute;bottom:-14px;left:-44px;right:-44px}.fg-flash{background:radial-gradient(closest-side, rgba(var(--rgb-cream), .9), rgba(var(--rgb-glow), .3) 40%, transparent);opacity:0;border-radius:50%;height:170px;position:absolute;top:-50px;left:-60px;right:-60px}@keyframes flash{0%{opacity:0;transform:scale(.6)}12%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(1.3)}}.pola{box-sizing:border-box;background-color:var(--c-cream);background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='220' height='220'><filter id='p'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' seed='7'/><feColorMatrix values='0 0 0 0 0.04  0 0 0 0 0.1  0 0 0 0 0.2  0 0 0 0.6 0'/></filter><rect width='100%' height='100%' filter='url(%23p)' opacity='0.1'/></svg>"), linear-gradient(135deg, rgba(var(--rgb-cream), .5), rgba(var(--rgb-blush), .06));width:260px;height:395px;box-shadow:0 0 0 1px rgba(var(--rgb-cream), .6), 0 0 24px rgba(var(--rgb-cream), .18), 0 0 64px rgba(var(--rgb-glow), .16);border-radius:3px;margin:0;padding:21px 19px 0;position:absolute}.pola .window{background:linear-gradient(180deg, var(--c-dusk), var(--c-blush));width:222px;height:296px;box-shadow:inset 0 0 0 1px rgba(var(--rgb-night), .12);position:relative;overflow:hidden}.pola .window img{object-fit:cover;object-position:50% 40%;filter:saturate(0)brightness(1.25)contrast(.6);width:100%;height:100%;transition:filter 1.2s var(--ease)}.pola .window:after{content:"";background:var(--c-cream);opacity:1;transition:opacity 1.2s var(--ease);position:absolute;inset:0}.pola.is-developed .window img{filter:none}.pola.is-developed .window:after{opacity:0}.pola.is-instant .window img,.pola.is-instant .window:after{transition:none}.pola .caption{height:78px;color:rgba(var(--rgb-night), .86);flex-direction:column;justify-content:center;gap:4px;padding:0 4px;display:flex}.pola .caption .line{letter-spacing:.04em;font-size:18px;line-height:1.3}.pola .caption .meta{letter-spacing:.12em;color:rgba(var(--rgb-night), .5);font-size:12px}.guide path{fill:none;stroke-linecap:round}.guide .lit{stroke:rgba(var(--rgb-cream), .95);stroke-width:2px;stroke-dasharray:2 10;filter:drop-shadow(0 0 3px rgba(var(--rgb-cream), .9)) drop-shadow(0 0 8px rgba(var(--rgb-glow), .6));animation:1.6s linear infinite flow}.guide .ghost{stroke:rgba(var(--rgb-cream), .32);stroke-width:1.5px;stroke-dasharray:2 10}@keyframes flow{to{stroke-dashoffset:-24px}}.pre-center{transition:opacity .6s var(--ease);flex-direction:column;align-items:center;gap:18px;display:flex;position:absolute;top:50%;left:0;right:0;transform:translateY(-50%)}.pre-title{font-family:var(--font-title);letter-spacing:.24em;text-shadow:0 0 18px rgba(var(--rgb-cream), .3);opacity:0;animation:fade-in 1.2s var(--ease) .1s both;padding-left:.24em;font-size:28px}.pre-track{background:rgba(var(--rgb-cream), .12);border-radius:2px;width:160px;height:2px;position:relative;overflow:visible}.pre-fill{transform-origin:0;background:linear-gradient(90deg, var(--c-dusk), var(--c-blush) 55%, var(--c-glow) 85%, var(--c-cream));width:100%;box-shadow:0 0 6px rgba(var(--rgb-glow), .8), 0 0 18px rgba(var(--rgb-blush), .5);transition:transform .42s var(--ease);border-radius:2px;position:absolute;top:0;bottom:0;left:0;transform:scaleX(0)}.pre-label{letter-spacing:.28em;color:rgba(var(--rgb-cream), .56);padding-left:.28em;font-size:12px}.pre-center.out{opacity:0}.gt-door{width:92px;transition:transform 1.4s var(--ease);position:absolute;top:86px;left:149px}.gt-door img{width:92px;transition:opacity 1.2s var(--ease);position:absolute;top:0;left:0}.gt-door .lit{opacity:0}.gt-door .halo{background:radial-gradient(closest-side, rgba(var(--rgb-dusk), .4), rgba(var(--rgb-dusk), .12) 50%, transparent);height:200px;transition:background 1.2s var(--ease);top:-30px;left:-60px;right:-60px}.gt-veil{width:150%;height:96px;transition:opacity 1.6s var(--ease), transform 1.6s var(--ease);position:absolute;top:176px;left:-25%}.gt-prompt{text-align:center;letter-spacing:.24em;text-shadow:0 0 18px rgba(var(--rgb-cream), .2);padding-left:.24em;font-size:20px;position:absolute;top:290px;left:0;right:0}.gt-slots{justify-content:center;gap:14px;display:flex;position:absolute;top:342px;left:0;right:0}.gt-slot{letter-spacing:0;width:54px;height:64px;color:rgba(var(--rgb-cream), .32);transition:color .24s var(--ease), box-shadow .32s var(--ease), transform .32s var(--ease-back);border-radius:14px;place-items:center;font-size:16px;display:grid;position:relative}.gt-slot.filled{font-family:var(--font-title);color:var(--c-cream);text-shadow:0 0 14px rgba(var(--rgb-cream), .5);box-shadow:var(--glass-glow), inset 0 0 0 1px rgba(var(--rgb-cream), .2);font-size:30px;transform:translateY(-2px)}.gt-slot.now:after{content:"";background:var(--c-cream);width:14px;height:1px;box-shadow:0 0 6px rgba(var(--rgb-cream), .8);animation:breathe-opacity 1.2s var(--ease-in-out) infinite alternate;margin-left:-7px;position:absolute;bottom:12px;left:50%}.gt-hint{text-align:center;letter-spacing:.08em;min-height:24px;color:rgba(var(--rgb-cream), .78);transition:opacity .32s var(--ease);font-size:14px;line-height:1.6;position:absolute;top:428px;left:24px;right:24px}.gt-hint.pop{animation:fade-up .48s var(--ease) both}.gt-keys{width:264px;transition:opacity .9s var(--ease), transform .9s var(--ease);grid-template-columns:repeat(3,68px);justify-content:space-between;row-gap:14px;margin-left:-132px;display:grid;position:absolute;top:486px;left:50%}.gt-key{width:68px;height:68px;font-family:var(--font-title);color:var(--c-cream);background:linear-gradient(180deg, rgba(var(--rgb-bluehour), .3) 0%, rgba(var(--rgb-night), .42) 100%);-webkit-backdrop-filter:blur(16px)saturate(1.2);backdrop-filter:blur(16px)saturate(1.2);box-shadow:inset 0 0 0 1px rgba(var(--rgb-cream), .22), inset 0 1px 0 rgba(var(--rgb-cream), .12), 0 0 18px rgba(var(--rgb-dusk), .14);border-radius:50%;place-items:center;font-size:28px;display:grid;position:relative}.gt-key.is-pressed{background:rgba(var(--rgb-cream), .14);box-shadow:inset 0 0 0 1px rgba(var(--rgb-cream), .5), 0 0 18px rgba(var(--rgb-cream), .25), 0 0 40px rgba(var(--rgb-glow), .2)}.gt-key.ghost{-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:none;color:rgba(var(--rgb-cream), .72);background:0 0}.gt-key.ghost svg{width:24px;height:24px}.gt-key.blank{visibility:hidden}.gt.shake .gt-slots{animation:gt-shake .42s var(--ease)}@keyframes gt-shake{0%,to{transform:translate(0)}20%{transform:translate(-6px)}45%{transform:translate(5px)}70%{transform:translate(-3px)}}.gt.ok .gt-door .lit{opacity:1}.gt.ok .gt-door .dim{opacity:0}.gt.ok .gt-door .halo{background:radial-gradient(closest-side, rgba(var(--rgb-cream), .6), rgba(var(--rgb-glow), .3) 45%, transparent)}.gt.ok .gt-veil{opacity:0;transform:translateY(28px)}.gt.ok .gt-keys{opacity:0;transform:translateY(18px)}.gt.ok .gt-slot.filled{box-shadow:inset 0 0 0 1px rgba(var(--rgb-glow), .7), 0 0 18px rgba(var(--rgb-glow), .4)}.gt.ok .gt-hint{color:var(--c-cream);text-shadow:0 0 14px rgba(var(--rgb-blush), .8), 0 0 36px rgba(var(--rgb-blush), .4);font-size:16px}.op-night{transition:opacity 1.6s var(--ease)}.op-text{text-align:center;letter-spacing:.16em;color:rgba(var(--rgb-cream), .92);padding-left:.16em;font-size:20px;line-height:2.2;position:absolute;top:48%;left:24px;right:24px;transform:translateY(-50%)}.op-text p{margin:0}.op-text em{color:var(--c-cream);font-style:normal}.typed .op-text em{animation:em-glow 3.2s var(--ease-in-out) infinite alternate}@keyframes em-glow{0%{text-shadow:0 0 8px rgba(var(--rgb-blush), .3)}to{text-shadow:0 0 14px rgba(var(--rgb-blush), .85), 0 0 36px rgba(var(--rgb-blush), .4)}}.ct-wrap{left:18px;right:18px;top:calc(max(var(--safe-top), 24px) + clamp(40px, 9vh, 79px));flex-direction:column;display:flex;position:absolute}.chat{flex-direction:column;gap:10px;display:flex}.chat-row{display:flex;position:relative}.chat-row:not(.first){margin-top:-4px}.chat-row.her{justify-content:flex-start}.chat-row.him{justify-content:flex-end}.bubble,.typing{box-sizing:border-box;letter-spacing:.04em;max-width:72%;color:var(--c-cream);-webkit-backdrop-filter:blur(16px)saturate(1.2);backdrop-filter:blur(16px)saturate(1.2);border-radius:18px;padding:10px 15px;font-size:16px;line-height:1.5;position:relative}.her .bubble,.her .typing{background:linear-gradient(135deg, rgba(var(--rgb-blush), .44), rgba(var(--rgb-glow), .26));box-shadow:inset 0 0 0 1px rgba(var(--rgb-cream), .32), inset 0 1px 0 rgba(var(--rgb-cream), .24), 0 0 24px rgba(var(--rgb-blush), .24)}.him .bubble,.him .typing{background:linear-gradient(135deg, rgba(var(--rgb-dusk), .34), rgba(var(--rgb-bluehour), .44));box-shadow:inset 0 0 0 1px rgba(var(--rgb-cream), .22), inset 0 1px 0 rgba(var(--rgb-cream), .14), 0 0 24px rgba(var(--rgb-dusk), .18)}.her.first .bubble{border-top-left-radius:6px}.him.first .bubble{border-top-right-radius:6px}.her .bubble{transform-origin:0 0}.him .bubble{transform-origin:100% 0}.typing{align-items:center;gap:5px;height:44px;padding:0 16px;display:flex;position:absolute;top:0}.her .typing{left:0}.him .typing{right:0}.typing i{background:var(--c-cream);opacity:.4;width:6px;height:6px;animation:typing-dot .9s var(--ease-in-out) infinite;border-radius:50%}.typing i:nth-child(2){animation-delay:.15s}.typing i:nth-child(3){animation-delay:.3s}@keyframes typing-dot{0%,to{opacity:.3;transform:translateY(0)}40%{opacity:1;transform:translateY(-3px)}}.s-chat .bubble,.s-chat .typing{opacity:0}.s-chat.is-playing .bubble{animation:bubble-in .46s var(--ease-back) var(--t1) both}.s-chat.is-playing .typing{animation:typing-life var(--td) linear var(--t0) both}@keyframes bubble-in{0%{opacity:0;transform:translateY(8px)scale(.9)}to{opacity:1;transform:none}}@keyframes typing-life{0%{opacity:0;transform:scale(.85)}12%{opacity:1;transform:none}88%{opacity:1}to{opacity:0}}.s-chat.is-playing .chat{animation:chat-recede 1.6s var(--ease) var(--tf) both}@keyframes chat-recede{to{opacity:.62;transform:translateY(-10px)}}.chat-time{text-align:center;opacity:0;margin-top:clamp(36px,10vh,92px)}.s-chat.is-playing .chat-time{animation:time-in 1.8s var(--ease) var(--tt) both}@keyframes time-in{0%{opacity:0;letter-spacing:.4em;transform:translateY(10px)}to{opacity:1;transform:none}}.ct-date{letter-spacing:.24em;color:rgba(var(--rgb-cream), .72);padding-left:.24em;font-size:14px}.ct-clock{font-family:var(--font-title);letter-spacing:.06em;text-shadow:0 0 16px rgba(var(--rgb-cream), .35), 0 0 48px rgba(var(--rgb-glow), .3);margin-top:4px;font-size:44px;line-height:1.05}.tc{text-align:center;position:absolute;top:24.4%;left:0;right:0}.tc-name{font-family:var(--font-title);letter-spacing:.2em;margin:0;padding-left:.2em;font-size:72px;font-weight:400;line-height:1.1}.s-title .ign{--ign-at:calc(1.9s + var(--i) * .85s)}.s-title.is-playing .tc-name{animation:name-breathe 4s var(--ease-in-out) 6s infinite alternate}@keyframes name-breathe{0%{filter:drop-shadow(0 0 #0000)}to{filter:drop-shadow(0 0 14px rgba(var(--rgb-glow), .3))}}.tc-en{font-family:var(--font-title);letter-spacing:.52em;text-transform:uppercase;color:rgba(var(--rgb-cream), .86);margin-top:18px;padding-left:.52em;font-size:14px}.tc-epi{letter-spacing:.16em;color:rgba(var(--rgb-cream), .7);margin-top:42px;padding-left:.16em;font-size:14px;line-height:1.9}.tc-src{letter-spacing:.2em;font-size:12px}.s-title .tc-en,.s-title .tc-epi{opacity:0}.s-title.is-playing .tc-en{animation:en-in 1.6s var(--ease) 4.5s both}.s-title.is-playing .tc-epi{animation:fade-up 1.4s var(--ease) 5.4s both}@keyframes en-in{0%{opacity:0;letter-spacing:.9em}to{opacity:1;letter-spacing:.52em}}.tc-fall{opacity:0;background:linear-gradient(180deg, rgba(var(--rgb-cream), 0), rgba(var(--rgb-cream), .85));width:2px;height:140px;filter:drop-shadow(0 0 4px rgba(var(--rgb-cream), .9));pointer-events:none;border-radius:2px;margin-left:-1px;position:absolute;top:0;left:50%}.tc-fall:after{content:"";background:var(--c-cream);width:8px;height:8px;box-shadow:0 0 10px var(--c-cream), 0 0 28px rgba(var(--rgb-glow), .8);border-radius:50%;position:absolute;bottom:-4px;left:-3px}.s-title.is-playing .tc-fall{animation:1.35s cubic-bezier(.55,0,.75,.2) both fall}@keyframes fall{0%{opacity:0;transform:translateY(-160px)}10%{opacity:1}96%{transform:translateY(var(--fall-to,430px));opacity:1}to{transform:translateY(var(--fall-to,430px));opacity:0}}.pro-figure{visibility:hidden;transition:bottom 1.4s var(--ease);bottom:26%}.pro-figure.landed{visibility:visible}.pro-figure img{width:44px;transition:width 1.4s var(--ease)}.prologue[data-step="3"] .pro-figure{bottom:30%}.prologue[data-step="3"] .pro-figure img{width:52px}.pro-figure .fg-body{opacity:0}.pro-figure.landed .fg-body{animation:fade-in .8s var(--ease) both}.pro-figure.landed .fg-flash{animation:flash 1.4s var(--ease) both}.pro-figure.landed.instant .fg-body{opacity:1;animation:none}.pro-figure.landed.instant .fg-flash{animation:none}.pro-figure .fg-pool{opacity:0;transition:opacity .8s var(--ease)}.pro-figure.landed .fg-pool{opacity:1}.pro-head{text-align:center;position:absolute;top:17.3%;left:0;right:0}.pro-count{justify-content:center;align-items:baseline;gap:14px;margin-top:4px;display:flex}.pro-count .t-title{color:rgba(var(--rgb-cream), .72)}.pro-count .t-hero{text-align:center;min-width:3.2ch}.pro-copy{margin-top:30px}.pro-copy p{margin:0;line-height:2}.s-count .pro-head>*{opacity:0}.s-count.is-playing .pro-head>:first-child{animation:fade-up 1s var(--ease) .1s both}.s-count.is-playing .pro-head>:nth-child(2){animation:fade-up 1s var(--ease) .3s both}.s-count.is-playing .pro-head>:nth-child(3){animation:fade-up 1.2s var(--ease) 2.9s both}.pro-foot{left:0;right:0;bottom:calc(var(--safe-bottom) + 40px);opacity:0;flex-direction:column;align-items:center;gap:18px;display:flex;position:absolute}.s-count.is-playing .pro-foot{animation:fade-up 1.2s var(--ease) 3.6s both}.pro-replay{top:calc(var(--safe-top) + 10px);right:calc(var(--safe-right) + 10px);position:absolute}.prologue .pro-mid,.prologue canvas.particles{opacity:0;transition:opacity 1.6s var(--ease)}.prologue[data-step="2"] .pro-mid,.prologue[data-step="3"] .pro-mid,.prologue[data-step="2"] canvas.particles,.prologue[data-step="3"] canvas.particles{opacity:1}.prologue .pro-bloom{filter:opacity(0);transition:filter 2s var(--ease)}.prologue[data-step="3"] .pro-bloom{filter:opacity()}.hub-gate{width:76px;height:114px;position:absolute;top:40px;left:157px}.hub-gate img{width:76px;filter:drop-shadow(0 0 10px rgba(var(--rgb-dusk), .35));transition:opacity 1.6s var(--ease);position:absolute;top:0;left:0}.hub-gate .lit{opacity:0;filter:drop-shadow(0 0 12px rgba(var(--rgb-glow), .55)) drop-shadow(0 0 30px rgba(var(--rgb-cream), .3))}.hub-gate .halo{inset:-20px -36px 30px}.hub-gate .gate-burst{background:radial-gradient(closest-side, rgba(var(--rgb-cream), .9), rgba(var(--rgb-glow), .35) 40%, transparent);opacity:0;pointer-events:none;border-radius:50%;height:220px;position:absolute;top:-50px;left:-70px;right:-70px}.hub-veil{pointer-events:none;width:150%;height:110px;transition:opacity 2s var(--ease), transform 2s var(--ease);position:absolute;top:74px;left:-25%}.hub.gate-open .hub-gate .lit{opacity:1}.hub.gate-open .hub-gate .dim{opacity:0}.hub.gate-open .hub-gate .halo{background:radial-gradient(closest-side, rgba(var(--rgb-cream), .5), rgba(var(--rgb-glow), .26) 45%, transparent)}.hub.gate-open .hub-veil{opacity:.38;transform:translateY(26px)}.hub.gate-opening .gate-burst{animation:flash 2.2s var(--ease) .4s both}.hub-planet{border-radius:50%;position:absolute}.hub-planet img{width:100%;display:block;position:relative}.hub-planet .halo{position:absolute}.hub-planet.range .halo{background:radial-gradient(closest-side, rgba(var(--rgb-neon), .3), rgba(var(--rgb-neon), .1) 50%, transparent)}.hub-planet.range img{filter:drop-shadow(0 0 1px rgba(var(--rgb-neon), .7)) drop-shadow(0 0 10px rgba(var(--rgb-neon), .35))}.range-neon{z-index:1;pointer-events:none;background:radial-gradient(ellipse 70px 40px at 42% 54%, rgba(var(--rgb-neon), .42), transparent 70%), conic-gradient(from 222deg at 82% 30%, transparent 0deg, rgba(var(--rgb-neon), .4) 10deg, rgba(var(--rgb-neon), .16) 22deg, transparent 32deg);filter:blur(5px);width:160px;height:150px;animation:range-sweep 5s var(--ease-in-out) infinite alternate;transform-origin:82% 30%;position:absolute;top:0;left:30px}@keyframes range-sweep{0%{transform:rotate(-6deg)}to{transform:rotate(8deg)}}.hub-planet.coaster .halo{background:radial-gradient(closest-side, rgba(var(--rgb-blush), .36), rgba(var(--rgb-blush), .12) 50%, transparent)}.hub-planet.shutter .halo{background:radial-gradient(closest-side, rgba(var(--rgb-cream), .34), rgba(var(--rgb-glow), .18) 45%, transparent)}.hub-hit{pointer-events:auto;border-radius:50%;position:absolute}.hub-planet.pressed img{transform:scale(.97)}.hub-planet img{transition:transform .32s var(--ease-back)}.hub-cloak{transform-origin:50% 86%;width:28px;transition:opacity .36s var(--ease);pointer-events:none;position:absolute;top:0;left:0}.hub-cloak img{width:28px;display:block}.hub-cloak.away{opacity:0}.hub-glide{opacity:0;width:46px;transition:opacity .28s var(--ease);pointer-events:none;will-change:transform;margin:-18px 0 0 -23px;position:absolute;top:0;left:0}.hub-glide img{width:46px;display:block}.hub-glide.on{opacity:1}.hub-glide .trail{background:radial-gradient(closest-side, rgba(var(--rgb-cream), .4), rgba(var(--rgb-glow), .14) 50%, transparent);border-radius:50%;width:60px;height:60px;margin:-30px 0 0 -30px;position:absolute;top:50%;left:50%}.hub-chip{z-index:6;transition:opacity .4s var(--ease);position:absolute;transform:translate(-50%)}.hub-top{z-index:8;justify-content:space-between;align-items:center;display:flex;position:absolute;top:58px;left:24px;right:20px}.hub-day{color:rgba(var(--rgb-cream), .86);font-size:14px}.hub-day .num{letter-spacing:.04em;color:var(--c-cream);margin:0 2px;font-size:20px}.hub-icons{gap:10px;display:flex}.hub-hit-gate{border-radius:40px;width:110px;height:166px;top:44px;left:140px}.hub-tip-gate{text-align:center;letter-spacing:.16em;color:rgba(var(--rgb-cream), .72);text-shadow:0 0 10px rgba(var(--rgb-night), .6);animation:fade-in 1.6s var(--ease) 1.2s both;padding-left:.16em;font-size:12px;position:absolute;top:214px;left:0;right:0}.hub-skip{z-index:30;pointer-events:auto;position:absolute;inset:0}.fa-gold{transition:opacity 4.2s var(--ease-in-out)}.fa .fa-gold.gone{opacity:0}.fa-sun{background:radial-gradient(closest-side, rgba(var(--rgb-cream), .75), rgba(var(--rgb-glow), .35) 45%, transparent);height:60%;transition:opacity 4.6s var(--ease-in-out), transform 4.6s var(--ease-in-out);border-radius:50%;position:absolute;bottom:-18%;left:-30%;right:-30%}.fa-sun.gone{opacity:.18;transform:translateY(14%)}.fa-track{width:390px;height:844px;position:absolute;top:0;left:0;overflow:visible}.fa-car{transform-origin:50% 92%;will-change:transform;width:92px;height:48px;margin:-44px 0 0 -46px;position:absolute;top:0;left:0}.fa-car:before{content:"";background:radial-gradient(closest-side, rgba(var(--rgb-cream), .4), rgba(var(--rgb-glow), .16) 50%, transparent);animation:breathe-opacity 3.2s var(--ease-in-out) infinite alternate;border-radius:50%;position:absolute;inset:-36px -40px -30px}.fa-car .car-cloak{width:24px;position:absolute;bottom:10px}.fa-car .car-cloak.a{left:12px}.fa-car .car-cloak.b{width:25px;left:58px}.fa-car svg{width:92px;height:22px;position:absolute;bottom:0;left:0;overflow:visible}.fa-title{text-align:center;letter-spacing:.24em;text-shadow:0 0 18px rgba(var(--rgb-cream), .35);opacity:0;transition:opacity 1.6s var(--ease), transform 1.6s var(--ease);padding-left:.24em;font-size:20px;position:absolute;top:22%;left:0;right:0;transform:translateY(8px)}.fa-title .num{margin:0 .12em;font-size:28px}.fa-title.on{opacity:1;transform:none}.ph-1{transform-origin:0 0;top:96px;left:22px}.ph-2{transform-origin:0 0;top:446px;left:116px}.s-photo .pola{opacity:0;transition:opacity .9s var(--ease), translate .9s var(--ease);translate:0 14px}.s-photo .pola.in{opacity:1;translate:0}.lt-moon{background:radial-gradient(closest-side, rgba(var(--rgb-dusk), .35), transparent);filter:blur(10px);pointer-events:none;border-radius:50%;width:200px;height:360px;margin-left:-100px;position:absolute;top:-140px;left:50%}.lt-wrap{left:38px;right:36px;top:calc(var(--safe-top) + 57px);bottom:calc(var(--safe-bottom) + 60px);flex-direction:column;display:flex;position:absolute}.lt-head{text-align:center}.lt-body{letter-spacing:.06em;text-shadow:0 0 18px rgba(var(--rgb-cream), .18);margin-top:40px;font-size:20px;line-height:2}.lt-body p{margin:0 0 8px}.lt-sign{letter-spacing:.12em;color:rgba(var(--rgb-cream), .86);opacity:0;transition:opacity 1.4s var(--ease), transform 1.4s var(--ease);align-self:flex-end;margin-top:28px;font-size:20px;transform:translateY(6px)}.typed .lt-sign{opacity:1;transform:none}.rv{text-align:center;position:absolute;top:50%;left:0;right:0;transform:translateY(-54%)}.rv-epi{letter-spacing:.16em;color:rgba(var(--rgb-cream), .7);padding-left:.16em;font-size:16px}.rv-lines{text-align:left;flex-direction:column;align-items:flex-start;gap:26px;margin-top:52px;display:inline-flex}.rv-line{align-items:baseline;display:flex}.rv-line .ign{font-family:var(--font-title);--ign-at:calc(1.6s + var(--i) * 1.4s);font-size:44px;line-height:1.1}.rv-rest{letter-spacing:.12em;color:rgba(var(--rgb-cream), .9);font-size:16px}.rv-rest .num{font-size:20px}.rv-name{margin-top:64px}.rv-big .ign{--ign-at:calc(6.3s + var(--i) * .22s)}.s-reveal .rv-epi,.s-reveal .rv-rest,.s-reveal .rv-name .tc-en{opacity:0}.s-reveal.is-playing .rv-epi{animation:fade-up 1.4s var(--ease) .2s both}.s-reveal.is-playing .rv-rest{animation:fade-up .9s var(--ease) calc(2.1s + var(--i) * 1.4s) both}.s-reveal.is-playing .rv-name .tc-en{animation:en-in 1.6s var(--ease) 7.2s both}.fn-gate{width:130px;position:absolute;top:270px;left:130px}.fn-gate img{width:130px}.fn-pair{align-items:flex-end;gap:6px;height:60px;display:flex;position:absolute;top:376px;left:160px}.fn-pair img{display:block}.fn-head{text-align:center;position:absolute;top:96px;left:0;right:0}.fn-count{justify-content:center;align-items:baseline;gap:12px;display:flex}.fn-count .t-title{color:rgba(var(--rgb-cream), .72)}.fn-title{letter-spacing:.24em;text-shadow:0 0 18px rgba(var(--rgb-cream), .35);margin:12px 0 6px;padding-left:.24em;font-weight:400}.fn-name{letter-spacing:.5em;color:rgba(var(--rgb-cream), .9);padding-left:.5em;font-size:20px}.fn-cards{grid-template-columns:repeat(3,1fr);gap:10px;display:grid;position:absolute;top:532px;left:20px;right:20px}.fn-card{text-align:center;flex-direction:column;align-items:center;gap:6px;padding:14px 8px 12px;display:flex}.fn-card .stars-row svg{width:10px;height:10px}.fn-foot{flex-direction:column;align-items:center;gap:10px;display:flex;position:absolute;bottom:34px;left:0;right:0}.fn-foot .btn{width:240px;height:48px}.fn-foot .t-caption{margin-top:4px}.s-final .fn-head,.s-final .fn-gate,.s-final .fn-pair,.s-final .fn-cards,.s-final .fn-foot{opacity:0}.s-final.is-playing .fn-head{animation:fade-up 1.4s var(--ease) .2s both}.s-final.is-playing .fn-gate,.s-final.is-playing .fn-pair{animation:fade-in 1.8s var(--ease) .9s both}.s-final.is-playing .fn-cards{animation:fade-up 1.2s var(--ease) 1.8s both}.s-final.is-playing .fn-foot{animation:fade-up 1.2s var(--ease) 2.4s both}.fn-pair .float{animation-name:float}@font-face{font-family:BH Display;src:url(/fonts/smileysans-display.subset.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:BH Text;src:url(/fonts/lxgwwenkai-regular.subset.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}.pl{--p:calc(var(--u) * 1.84615);--cream-rgb:255, 243, 220;--night-rgb:10, 26, 51;--blue-rgb:28, 63, 122;--dusk-rgb:111, 127, 217;--glow-rgb:243, 162, 109;--blush-rgb:242, 169, 196;--neon-rgb:95, 212, 255;--ease-out:cubic-bezier(.22, 1, .36, 1);--ease-in-out:cubic-bezier(.65, 0, .35, 1);--ease-release:cubic-bezier(.34, 1.56, .64, 1);--glow-primary:inset 0 1px 0 rgba(var(--cream-rgb), .55), 0 0 calc(var(--p) * 8) rgba(var(--glow-rgb), .55), 0 0 calc(var(--p) * 24) rgba(var(--glow-rgb), .35), 0 0 calc(var(--p) * 56) rgba(var(--glow-rgb), .2);--glow-primary-pressed:inset 0 1px 0 rgba(var(--cream-rgb), .4), 0 0 calc(var(--p) * 4) rgba(var(--glow-rgb), .6), 0 0 calc(var(--p) * 14) rgba(var(--glow-rgb), .4), 0 0 calc(var(--p) * 32) rgba(var(--glow-rgb), .2);--glow-neon:0 0 calc(var(--p) * 2) rgba(var(--neon-rgb), 1), 0 0 calc(var(--p) * 8) rgba(var(--neon-rgb), .7), 0 0 calc(var(--p) * 24) rgba(var(--neon-rgb), .4), 0 0 calc(var(--p) * 60) rgba(var(--neon-rgb), .2);--text-perfect:0 0 calc(var(--p) * 12) rgba(var(--blush-rgb), .9), 0 0 calc(var(--p) * 36) rgba(var(--blush-rgb), .6), 0 0 calc(var(--p) * 72) rgba(var(--blush-rgb), .35);--text-good:0 0 calc(var(--p) * 10) rgba(var(--cream-rgb), .5), 0 0 calc(var(--p) * 28) rgba(var(--cream-rgb), .22);--text-display:0 0 calc(var(--p) * 16) rgba(var(--cream-rgb), .3);--text-hero:0 0 calc(var(--p) * 24) rgba(var(--cream-rgb), .35), 0 0 calc(var(--p) * 64) rgba(var(--glow-rgb), .25);pointer-events:none;color:var(--c-cream);font-family:var(--font-body);position:absolute;inset:0;overflow:hidden}.pl>*{pointer-events:none}.pl .is-live{pointer-events:auto}.pl .t-hero,.pl .t-display,.pl .t-heading,.pl .t-title,.pl .t-label,.pl .num{font-family:var(--font-title);font-weight:400}.pl .num{font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1}.pl .t-hero{font-size:calc(var(--p) * 72);letter-spacing:.02em;text-shadow:var(--text-hero);line-height:1.05}.pl .t-display{font-size:calc(var(--p) * 44);letter-spacing:.04em;text-shadow:var(--text-display);line-height:1.05}.pl .t-heading{font-size:calc(var(--p) * 28);letter-spacing:.08em;line-height:1.3}.pl .t-title{font-size:calc(var(--p) * 20);letter-spacing:.12em;line-height:1.3}.pl .t-label{font-size:calc(var(--p) * 12);letter-spacing:.28em;color:rgba(var(--cream-rgb), .72);line-height:1.3}.pl .t-label.zh{font-family:var(--font-body);letter-spacing:.2em}.pl .t-body{font-size:calc(var(--p) * 16);letter-spacing:.04em;line-height:1.75}.pl .t-small{font-size:calc(var(--p) * 14);letter-spacing:.04em;line-height:1.6}.pl .t-caption{font-size:calc(var(--p) * 12);letter-spacing:.12em;color:rgba(var(--cream-rgb), .56);line-height:1.5}.pl .dim{color:rgba(var(--cream-rgb), .72)}.pl-top{top:calc(var(--p) * 18);left:calc(var(--p) * 24);right:calc(var(--p) * 20);opacity:0;transform:translateY(calc(var(--p) * -6));transition:opacity .4s var(--ease-out), transform .4s var(--ease-out);justify-content:space-between;align-items:flex-start;display:flex;position:absolute}.pl.hud-on .pl-top,.pl.hud-on .pl-side{opacity:1;transform:none}.pl-score .t-display{margin-top:calc(var(--p) * 4);transition:transform .32s var(--ease-out)}.pl-score .t-display.bump{transform-origin:0 70%;transition-duration:80ms;transform:scale(1.06)}.pl-combo{align-items:baseline;gap:calc(var(--p) * 6);margin-top:calc(var(--p) * 6);min-height:calc(var(--p) * 36);color:var(--c-cream);text-shadow:0 0 calc(var(--p) * 12) rgba(var(--blush-rgb), .8), 0 0 calc(var(--p) * 28) rgba(var(--blush-rgb), .4);opacity:0;transition:opacity .24s var(--ease-out);display:flex}.pl-combo.on{opacity:1}.pl-combo .t-heading{display:inline-block}.pl-combo .t-heading.pop{animation:pl-pop .4s var(--ease-out)}.pl-right{gap:calc(var(--p) * 10);align-items:center;display:flex}.pl-timer{width:calc(var(--p) * 48);height:calc(var(--p) * 48);place-items:center;display:grid;position:relative}.pl-timer svg{width:100%;height:100%;position:absolute;inset:0;overflow:visible;transform:rotate(-90deg)}.pl-timer circle{fill:none;stroke-width:2px}.pl-timer .track{stroke:rgba(var(--cream-rgb), .18)}.pl-timer .left{stroke:var(--c-cream);stroke-linecap:round;stroke-dasharray:138.23;filter:drop-shadow(0 0 3px rgba(var(--cream-rgb), .8))}.pl-timer.warn .left{stroke:var(--c-blush);filter:drop-shadow(0 0 3px rgba(var(--blush-rgb), .9))}.pl-timer .t-title{position:relative}.pl-icon{width:calc(var(--p) * 40);height:calc(var(--p) * 40);color:var(--c-cream);background:linear-gradient(180deg, rgba(var(--blue-rgb), .34) 0%, rgba(var(--night-rgb), .52) 100%);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);box-shadow:inset 0 0 0 1px rgba(var(--cream-rgb), .3);border-radius:50%;place-items:center;display:grid;position:relative}.pl-icon svg{width:calc(var(--p) * 18);height:calc(var(--p) * 18);fill:none;stroke:currentColor;stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round}.pl-pips{left:calc(var(--p) * 24);top:calc(var(--p) * 150);align-items:center;gap:calc(var(--p) * 10);display:flex;position:absolute}.pl-pips .t-label.zh{letter-spacing:.28em}.pl-pips .row{gap:calc(var(--p) * 4);display:flex}.pl-pips i{width:calc(var(--p) * 8);height:calc(var(--p) * 12);border-radius:calc(var(--p) * 2);box-shadow:inset 0 0 0 1px rgba(var(--cream-rgb), .4);transition:background-color .24s var(--ease-out), box-shadow .24s var(--ease-out)}.pl-pips i.used{background:var(--c-cream);box-shadow:0 0 6px rgba(var(--cream-rgb), .6)}.pl-pips i.used.perfect{background:var(--c-blush);box-shadow:0 0 8px rgba(var(--blush-rgb), .8)}.pl-pips i.used.miss{background:rgba(var(--cream-rgb), .3);box-shadow:none}.pl-pips i.now{box-shadow:inset 0 0 0 1px var(--c-cream), 0 0 8px rgba(var(--cream-rgb), .6);animation:pl-breathe-opacity 1.2s var(--ease-in-out) infinite alternate}.pl-bottom{left:0;right:0;bottom:calc(var(--p) * 30);align-items:center;gap:calc(var(--p) * 22);flex-direction:column;display:flex;position:absolute}.pl-hint{max-width:calc(var(--p) * 330);padding:0 calc(var(--p) * 12);text-align:center;font-size:calc(var(--p) * 12);letter-spacing:.12em;color:rgba(var(--cream-rgb), .62);text-wrap:balance;transition:opacity .6s var(--ease-out);line-height:1.6}.pl-hint.off{opacity:0}.pl-action{width:calc(var(--p) * 76);height:calc(var(--p) * 76);background:linear-gradient(180deg, #f7ba8e 0%, var(--c-glow) 100%);box-shadow:var(--glow-primary);animation:pl-breathe-btn 3.2s var(--ease-in-out) infinite alternate;transition:transform .32s var(--ease-release), box-shadow .32s var(--ease-out), opacity .4s var(--ease-out);touch-action:none;-webkit-user-select:none;user-select:none;border-radius:50%;place-items:center;display:grid;position:relative}.pl-action:before{content:"";inset:calc(var(--p) * -8);box-shadow:inset 0 0 0 calc(var(--p) * 2) rgba(var(--cream-rgb), .7), 0 0 calc(var(--p) * 12) rgba(var(--cream-rgb), .25);pointer-events:none;border-radius:50%;position:absolute}.pl-action span{font-family:var(--font-title);font-size:calc(var(--p) * 16);letter-spacing:.16em;color:var(--c-night);pointer-events:none;padding-left:.16em;position:relative}.pl-action.is-down{box-shadow:inset 0 1px 0 rgba(var(--cream-rgb), .55), 0 0 calc(var(--p) * 12) rgba(var(--glow-rgb), .8), 0 0 calc(var(--p) * 36) rgba(var(--glow-rgb), .55), 0 0 calc(var(--p) * 80) rgba(var(--blush-rgb), .35);transition-duration:.1s;animation:none;transform:scale(.96)}.pl.done .pl-bottom,.pl.done .pl-hint,.pl.done .pl-fire,.pl.done .pl-snap-catcher{opacity:0;pointer-events:none;transition:opacity .4s var(--ease-out)}.pl.done .pl-bottom *{pointer-events:none}.pl-action.idle{opacity:.55;animation:none}.pl-fb{text-align:center;white-space:nowrap;pointer-events:none;animation:pl-fb 1.1s var(--ease-out) both;position:absolute;translate:-50% -50%}.pl-fb .sub{margin-top:calc(var(--p) * 6);color:var(--c-cream)}.pl-fb.perfect{color:var(--c-cream);text-shadow:var(--text-perfect)}.pl-fb.good{color:var(--c-cream);text-shadow:var(--text-good)}.pl-fb.miss{color:rgba(var(--cream-rgb), .42);animation-name:pl-fb-miss}.pl-fb.neon{color:var(--c-cream);text-shadow:var(--glow-neon)}@keyframes pl-fb{0%{opacity:0;transform:translateY(calc(var(--p) * 10)) scale(.7)}18%{opacity:1;transform:translateY(0)scale(1.08)}30%{transform:translateY(calc(var(--p) * -4)) scale(1)}72%{opacity:1;transform:translateY(calc(var(--p) * -18))}to{opacity:0;transform:translateY(calc(var(--p) * -22))}}@keyframes pl-fb-miss{0%{opacity:0;transform:translateY(calc(var(--p) * 4))}20%{opacity:1;transform:none}70%{opacity:1}to{opacity:0;transform:translateY(calc(var(--p) * -8))}}.pl-banner{text-align:center;pointer-events:none;opacity:0;transition:opacity .24s var(--ease-out), transform .4s var(--ease-out);position:absolute;left:0;right:0;transform:scale(.9)}.pl-banner.on{opacity:1;transform:none}.pl-banner .t-display{font-size:calc(var(--p) * 56);letter-spacing:.08em;text-shadow:0 0 calc(var(--p) * 12) rgba(var(--blush-rgb), .9), 0 0 calc(var(--p) * 36) rgba(var(--blush-rgb), .55), 0 0 calc(var(--p) * 72) rgba(var(--glow-rgb), .35);display:inline-block}.pl-banner.on.pulse .t-display{animation:pl-prompt .45s var(--ease-out) infinite alternate}.pl-banner .t-caption{margin-top:calc(var(--p) * 6);color:rgba(var(--cream-rgb), .72);display:block}.pl-note{text-align:center;font-size:calc(var(--p) * 14);letter-spacing:.16em;color:rgba(var(--cream-rgb), .86);text-shadow:0 0 calc(var(--p) * 12) rgba(var(--night-rgb), .01), var(--text-good);opacity:0;transition:opacity .5s var(--ease-out);padding-left:.16em;position:absolute;left:0;right:0}.pl-note.on{opacity:1}.pl-intro{padding-bottom:calc(var(--p) * 90);text-align:center;background:radial-gradient(90% 46% at 50% 44%, rgba(var(--night-rgb), .5), rgba(var(--night-rgb), 0) 100%);transition:opacity .6s var(--ease-out);flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.pl-intro.out{opacity:0}.pl-intro>*{opacity:0;transform:translateY(calc(var(--p) * 8));animation:pl-rise .9s var(--ease-out) forwards}.pl-intro .name{margin:calc(var(--p) * 10) 0 calc(var(--p) * 6);letter-spacing:.16em;padding-left:.16em;animation-delay:.12s}.pl-intro .title{animation-delay:.26s}.pl-intro .line{margin-top:calc(var(--p) * 26);max-width:calc(var(--p) * 330);color:rgba(var(--cream-rgb), .9);letter-spacing:.1em;animation-delay:.7s}.pl-intro .skip{left:0;right:0;bottom:calc(var(--p) * 150);animation:pl-fade-hint 1.2s var(--ease-out) 1.6s both;position:absolute}.pl-tutorial{left:calc(var(--p) * 20);right:calc(var(--p) * 20);align-items:center;gap:calc(var(--p) * 8);padding:calc(var(--p) * 14) calc(var(--p) * 14) calc(var(--p) * 12);box-sizing:border-box;border-radius:calc(var(--p) * 16);background:linear-gradient(180deg, rgba(var(--blue-rgb), .34) 0%, rgba(var(--night-rgb), .52) 100%);-webkit-backdrop-filter:blur(16px)saturate(1.2);backdrop-filter:blur(16px)saturate(1.2);border:1px solid rgba(var(--cream-rgb), .3);box-shadow:inset 0 1px 0 rgba(var(--cream-rgb), .1), 0 0 calc(var(--p) * 24) rgba(var(--dusk-rgb), .16), 0 0 calc(var(--p) * 64) rgba(var(--dusk-rgb), .1);text-align:center;opacity:0;transform:translateY(calc(var(--p) * 16));transition:opacity .4s var(--ease-out), transform .4s var(--ease-out);flex-direction:column;display:flex;position:absolute}.pl-tutorial.on{opacity:1;transform:none}.pl-tutorial .t-body{font-size:calc(var(--p) * 15);letter-spacing:.04em;text-wrap:balance}.pl-tutorial .t-label.zh{margin-bottom:calc(var(--p) * -4)}.pl-tutorial .go{animation:pl-breathe-opacity 1.4s var(--ease-in-out) infinite alternate}.pl-tap-catcher{position:absolute;inset:0}.pl-pause{justify-content:center;align-items:center;gap:calc(var(--p) * 14);background:rgba(var(--night-rgb), .55);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);opacity:0;transition:opacity .32s var(--ease-out);flex-direction:column;display:flex;position:absolute;inset:0}.pl-pause.on{opacity:1}.pl-pause .t-label{margin-bottom:calc(var(--p) * 14)}.pl .btn{height:calc(var(--p) * 52);min-height:0;min-width:calc(var(--p) * 240);padding:0 calc(var(--p) * 32);box-sizing:border-box;transition:transform .32s var(--ease-release), box-shadow .32s var(--ease-out), background-color .24s var(--ease-out), opacity .32s var(--ease-out);border-radius:999px}.pl .btn.is-pressed{transition-duration:.1s;transition-timing-function:var(--ease-out);transform:scale(.96)}.pl .btn--primary{color:var(--c-night);background:linear-gradient(180deg, #f7ba8e 0%, var(--c-glow) 100%);box-shadow:var(--glow-primary);font-family:var(--font-title);font-size:calc(var(--p) * 20);letter-spacing:.16em;animation:pl-breathe-btn 3.2s var(--ease-in-out) infinite alternate}.pl .btn--primary span{padding-left:.16em}.pl .btn--primary.is-pressed{box-shadow:var(--glow-primary-pressed);animation:none}.pl .btn--ghost{color:var(--c-cream);box-shadow:inset 0 0 0 1px rgba(var(--cream-rgb), .45), 0 0 calc(var(--p) * 16) rgba(var(--cream-rgb), .08);font-family:var(--font-body);font-size:calc(var(--p) * 16);letter-spacing:.12em;background:0 0;border:0}.pl .btn--ghost.is-pressed{background:rgba(var(--cream-rgb), .08)}.pl .pl-text-btn{height:calc(var(--p) * 44);padding:0 calc(var(--p) * 14);font-size:calc(var(--p) * 14);letter-spacing:.12em;color:rgba(var(--cream-rgb), .72);border-radius:999px;justify-content:center;align-items:center;display:inline-flex;position:relative}.pl .pl-text-btn.help{color:var(--c-cream);text-shadow:var(--text-good);animation:pl-breathe-opacity 1.6s var(--ease-in-out) infinite alternate}.pl-result{background:linear-gradient(180deg, rgba(var(--night-rgb), .42), rgba(var(--night-rgb), .12) 60%, rgba(var(--night-rgb), .34));opacity:0;transition:opacity .5s var(--ease-out);position:absolute;inset:0}.pl-result.on{opacity:1}.pl-result .panel-glass{left:calc(var(--p) * 20);right:calc(var(--p) * 20);top:calc(var(--p) * 14);padding:calc(var(--p) * 18) calc(var(--p) * 24) calc(var(--p) * 16);box-sizing:border-box;border-radius:calc(var(--p) * 16);background:linear-gradient(180deg, rgba(var(--blue-rgb), .34) 0%, rgba(var(--night-rgb), .52) 100%);-webkit-backdrop-filter:blur(16px)saturate(1.2);backdrop-filter:blur(16px)saturate(1.2);border:1px solid rgba(var(--cream-rgb), .3);box-shadow:inset 0 1px 0 rgba(var(--cream-rgb), .1), 0 0 calc(var(--p) * 24) rgba(var(--dusk-rgb), .16), 0 0 calc(var(--p) * 64) rgba(var(--dusk-rgb), .1);text-align:center;transform:translateY(calc(var(--p) * 18));transition:transform .6s var(--ease-out);position:absolute}.pl-result.on .panel-glass{transform:none}@supports not ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){.pl-result .panel-glass,.pl-tutorial{background:#0e2242db}}.pl-result .rs-title{margin:calc(var(--p) * 6) 0 calc(var(--p) * 4);letter-spacing:.16em;padding-left:.16em}.pl-result .rs-stars{justify-content:center;gap:calc(var(--p) * 10);margin-top:calc(var(--p) * 8);display:flex}.pl-result .rs-stars svg{width:calc(var(--p) * 24);height:calc(var(--p) * 24);fill:rgba(var(--cream-rgb), .28);transition:fill .3s var(--ease-out), filter .3s var(--ease-out), transform .5s var(--ease-release)}.pl-result .rs-stars svg.on{fill:var(--c-cream);filter:drop-shadow(0 0 3px rgba(var(--cream-rgb), .9)) drop-shadow(0 0 8px rgba(var(--blush-rgb), .6));animation:pl-star-in .6s var(--ease-release) both}.pl-result .rs-line{margin-top:calc(var(--p) * 6);min-height:calc(var(--p) * 22);padding:0 calc(var(--p) * 4);color:rgba(var(--cream-rgb), .78);letter-spacing:.04em;text-wrap:balance;line-height:1.5}.pl-result .rs-feature{height:calc(var(--p) * 96);margin:calc(var(--p) * 6) calc(var(--p) * -24) 0;position:relative}.pl-result .rs-score .t-hero{margin:0 0 calc(var(--p) * 2)}.pl-result .rs-best .num{margin-left:.3em}.pl-result .rs-best .new{color:var(--c-cream);text-shadow:var(--text-perfect);margin-left:.6em}.pl-result .rs-stats{margin-top:calc(var(--p) * 10);padding-top:calc(var(--p) * 10);border-top:1px solid rgba(var(--cream-rgb), .12);grid-template-columns:repeat(3,1fr);display:grid}.pl-result .rs-stats .t-heading.perfect{text-shadow:var(--text-perfect)}.pl-result .rs-stats .t-heading.faint{color:rgba(var(--cream-rgb), .36)}.pl-result .rs-actions{align-items:center;gap:calc(var(--p) * 10);margin-top:calc(var(--p) * 14);flex-direction:column;display:flex}.pl-result .rs-actions .btn--primary{height:calc(var(--p) * 50)}.pl-result .rs-actions .btn--ghost{height:calc(var(--p) * 46)}.pl-result .rs-foot{left:0;right:0;bottom:calc(var(--p) * 6);justify-content:center;gap:calc(var(--p) * 8);display:flex;position:absolute}.pl-film{left:calc(var(--p) * -40);right:calc(var(--p) * -40);top:calc(var(--p) * 12);height:calc(var(--p) * 74);justify-content:center;gap:calc(var(--p) * 8);padding:calc(var(--p) * 13) calc(var(--p) * 14);box-sizing:border-box;background:radial-gradient(circle at 50% 50%, rgba(var(--cream-rgb), .28) 1.6px, transparent 2.2px) 0 3px / calc(var(--p) * 12) calc(var(--p) * 7) repeat-x, radial-gradient(circle at 50% 50%, rgba(var(--cream-rgb), .28) 1.6px, transparent 2.2px) 0 calc(100% - 3px) / calc(var(--p) * 12) calc(var(--p) * 7) repeat-x, var(--c-night);box-shadow:0 0 0 1px rgba(var(--cream-rgb), .12), 0 0 calc(var(--p) * 32) rgba(var(--dusk-rgb), .3);border-radius:3px;align-items:center;display:flex;position:absolute;transform:rotate(-4deg)}.pl-film .shot{flex:0 0 calc(var(--p) * 54);height:calc(var(--p) * 44);background:linear-gradient(180deg, var(--c-night) 0%, var(--c-bluehour) 26%, var(--c-dusk) 44%, var(--c-blush) 53%, var(--c-glow) 59%);opacity:0;transform:translateY(calc(var(--p) * 4));animation:pl-shot-in .5s var(--ease-out) forwards;background-position:50% 52%;background-size:100% 260%;border-radius:2px;position:relative;overflow:hidden}.pl-film .shot svg{width:100%;height:100%;position:absolute;inset:0}.pl-film .shot span{font-family:var(--font-title);font-size:calc(var(--p) * 12);color:rgba(var(--cream-rgb), .7);transform-origin:100% 100%;line-height:1;position:absolute;bottom:1px;right:3px;transform:scale(.8)}.pl-film .shot.gray{filter:grayscale()brightness(.8)contrast(.85)}.pl-film .shot.blur svg{filter:blur(1.4px)}.pl-film .shot.perfect{box-shadow:0 0 0 1px rgba(var(--blush-rgb), .8), 0 0 10px rgba(var(--blush-rgb), .5)}.pl-rank{left:calc(var(--p) * 30);right:calc(var(--p) * 30);top:calc(var(--p) * 2);height:calc(var(--p) * 88);align-items:center;gap:calc(var(--p) * 16);padding:0 calc(var(--p) * 18);box-sizing:border-box;border-radius:calc(var(--p) * 12);background:linear-gradient(135deg, rgba(var(--neon-rgb), .16), rgba(var(--night-rgb), .7) 60%);box-shadow:inset 0 0 0 1px rgba(var(--neon-rgb), .55), 0 0 calc(var(--p) * 24) rgba(var(--neon-rgb), .22);text-align:left;opacity:0;animation:pl-card-in .7s var(--ease-release) .2s forwards;display:flex;position:absolute;transform:rotate(-2deg)}.pl-rank .emblem{width:calc(var(--p) * 58);height:calc(var(--p) * 58);flex:none}.pl-rank .emblem svg{width:100%;height:100%;overflow:visible}.pl-rank .id{font-size:calc(var(--p) * 12);letter-spacing:.2em;color:rgba(var(--cream-rgb), .72)}.pl-rank .tier{margin-top:calc(var(--p) * 2);font-size:calc(var(--p) * 30);letter-spacing:.24em;color:var(--c-cream);text-shadow:var(--glow-neon);line-height:1.2}.pl-rank .tier-en{margin-top:calc(var(--p) * 2);color:var(--c-neon);opacity:.86}.pl-snaps{left:0;right:0;top:calc(var(--p) * 4);justify-content:center;gap:calc(var(--p) * 12);display:flex;position:absolute}.pl-snaps .snap{width:calc(var(--p) * 80);height:calc(var(--p) * 84);padding:calc(var(--p) * 5) calc(var(--p) * 5) 0;box-sizing:border-box;background:var(--c-cream);box-shadow:0 0 0 1px rgba(var(--cream-rgb), .6), 0 0 calc(var(--p) * 18) rgba(var(--cream-rgb), .14);opacity:0;animation:pl-card-in .6s var(--ease-release) forwards;border-radius:2px;position:relative}.pl-snaps .snap .pic{height:calc(var(--p) * 60);background:linear-gradient(180deg, #a99be3 0%, var(--c-blush) 55%, #f4c47a 100%);position:relative;overflow:hidden}.pl-snaps .snap .pic svg{width:100%;height:100%;position:absolute;inset:0}.pl-snaps .snap.gray .pic{filter:grayscale()brightness(.85)contrast(.85)}.pl-snaps .snap .tag{margin-top:calc(var(--p) * 3);font-size:calc(var(--p) * 11);letter-spacing:.12em;color:rgba(var(--night-rgb), .7);line-height:1.2;display:block}.pl-polaroid-wrap{justify-content:center;align-items:center;gap:calc(var(--p) * 18);background:rgba(var(--night-rgb), .62);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);opacity:0;transition:opacity .5s var(--ease-out);flex-direction:column;display:flex;position:absolute;inset:0}.pl-polaroid-wrap.on{opacity:1}.pl-polaroid{width:calc(var(--p) * 260);height:calc(var(--p) * 395);padding:calc(var(--p) * 21) calc(var(--p) * 19) 0;box-sizing:border-box;background-color:var(--c-cream);box-shadow:0 0 0 1px rgba(var(--cream-rgb), .6), 0 0 calc(var(--p) * 24) rgba(var(--cream-rgb), .18), 0 0 calc(var(--p) * 64) rgba(var(--glow-rgb), .16);transform:rotate(var(--tilt,-2deg)) translateY(calc(var(--p) * 40)) scale(.92);transition:transform .9s var(--ease-out);background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='220' height='220'><filter id='p'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' seed='7'/><feColorMatrix values='0 0 0 0 0.04  0 0 0 0 0.1  0 0 0 0 0.2  0 0 0 0.6 0'/></filter><rect width='100%' height='100%' filter='url(%23p)' opacity='0.1'/></svg>"),linear-gradient(135deg,#fff3dc80,#f2a9c40f);border-radius:3px;position:relative}.pl-polaroid-wrap.on .pl-polaroid{transform:rotate(var(--tilt,-2deg))}.pl-polaroid .window{width:calc(var(--p) * 222);height:calc(var(--p) * 296);background:linear-gradient(180deg, var(--c-dusk), var(--c-blush) 60%, var(--c-glow));position:relative;overflow:hidden}.pl-polaroid .window img{object-fit:cover;filter:saturate(0)brightness(1.25)contrast(.6);width:100%;height:100%;transition:filter 1.2s var(--ease-out);display:block}.pl-polaroid .window .veil{background:var(--c-cream);transition:opacity 1.2s var(--ease-out);position:absolute;inset:0}.pl-polaroid.developed .window img{filter:none}.pl-polaroid.developed .window .veil{opacity:0}.pl-polaroid figcaption{padding:calc(var(--p) * 10) calc(var(--p) * 2) 0;color:rgba(var(--night-rgb), .86);text-align:left}.pl-polaroid .line{font-size:calc(var(--p) * 16);letter-spacing:.02em;line-height:1.32}.pl-polaroid .meta{margin-top:calc(var(--p) * 5);font-size:calc(var(--p) * 12);letter-spacing:.12em;color:rgba(var(--night-rgb), .5)}.pl-polaroid-wrap .t-caption{animation:pl-breathe-opacity 1.6s var(--ease-in-out) infinite alternate}.pl-ot{text-align:center;padding-top:calc(var(--p) * 2)}.pl-ot .t-label{color:var(--c-neon);opacity:0;transition:opacity .3s var(--ease-out)}.pl-ot.on .t-label{opacity:1}.pl-ot .clock{color:var(--c-cream);text-shadow:var(--glow-neon)}.pl-ot.on .clock{animation:pl-ot 1s var(--ease-out) infinite}.pl-ot .t-caption{margin-top:calc(var(--p) * 2);color:rgba(var(--cream-rgb), .72);opacity:0;transition:opacity .3s var(--ease-out)}.pl-ot.on .t-caption{opacity:1}.pl-rg-combo{text-align:right}.pl-rg-combo .t-display{text-shadow:var(--glow-neon);transition:opacity .24s var(--ease-out);display:inline-block}.pl-rg-combo .t-display.pop{animation:pl-pop .4s var(--ease-out)}.pl-rg-combo .t-display.dim{opacity:.4}.pl-vignette{box-shadow:inset 0 0 calc(var(--p) * 80) rgba(var(--neon-rgb), .18);opacity:0;transition:opacity .4s var(--ease-out);position:absolute;inset:0}.pl-vignette.on{animation:pl-vignette 1s var(--ease-out) infinite}.pl-fire{touch-action:none;position:absolute;left:0;right:0}.pl-side{left:calc(var(--p) * 18);top:calc(var(--p) * 112);width:calc(var(--p) * 48);align-items:center;gap:calc(var(--p) * 8);opacity:0;transition:opacity .4s var(--ease-out);flex-direction:column;display:flex;position:absolute}.pl-side .t-caption{color:rgba(var(--cream-rgb), .82);letter-spacing:.2em}.pl-side .mult{color:var(--c-cream);text-shadow:0 0 calc(var(--p) * 12) rgba(var(--blush-rgb), .8), 0 0 calc(var(--p) * 28) rgba(var(--blush-rgb), .4)}.pl-side .mult.pop{animation:pl-pop .4s var(--ease-out)}.pl-side .bar{width:calc(var(--p) * 8);height:calc(var(--p) * 140);box-shadow:inset 0 0 0 1px rgba(var(--cream-rgb), .3);background:rgba(var(--night-rgb), .3);border-radius:999px;position:relative;overflow:hidden}.pl-side .bar i{background:linear-gradient(0deg, var(--c-glow), var(--c-blush) 70%, var(--c-cream));height:100%;box-shadow:0 0 10px rgba(var(--blush-rgb), .8);transform-origin:bottom;border-radius:999px;position:absolute;bottom:0;left:0;right:0;transform:scaleY(0)}.pl-side .bar b{background:rgba(var(--cream-rgb), .5);height:1px;position:absolute;left:-2px;right:-2px}.pl-side .bar.hit{animation:pl-bar-hit .5s var(--ease-out)}.pl-snap-catcher{left:0;right:0;top:calc(var(--p) * 80);touch-action:none;position:absolute}@keyframes pl-breathe-btn{0%{box-shadow:inset 0 1px 0 rgba(var(--cream-rgb), .55), 0 0 calc(var(--p) * 6) rgba(var(--glow-rgb), .5), 0 0 calc(var(--p) * 20) rgba(var(--glow-rgb), .28), 0 0 calc(var(--p) * 44) rgba(var(--glow-rgb), .14)}to{box-shadow:inset 0 1px 0 rgba(var(--cream-rgb), .55), 0 0 calc(var(--p) * 10) rgba(var(--glow-rgb), .62), 0 0 calc(var(--p) * 30) rgba(var(--glow-rgb), .42), 0 0 calc(var(--p) * 72) rgba(var(--glow-rgb), .26)}}@keyframes pl-breathe-opacity{0%{opacity:.6}to{opacity:1}}@keyframes pl-pop{0%{transform:scale(.7)}55%{transform:scale(1.12)}to{transform:scale(1)}}@keyframes pl-prompt{0%{transform:scale(1)}to{transform:scale(1.06)}}@keyframes pl-rise{to{opacity:1;transform:none}}@keyframes pl-fade-hint{0%{opacity:0;transform:none}to{opacity:.56;transform:none}}@keyframes pl-star-in{0%{transform:scale(.3)rotate(-30deg)}to{transform:none}}@keyframes pl-shot-in{to{opacity:1;transform:none}}@keyframes pl-card-in{0%{opacity:0;translate:0 calc(var(--p) * 14);scale:.92}to{opacity:1;translate:0;scale:1}}@keyframes pl-ot{0%,to{transform:scale(1)}10%{transform:scale(1.08)}}@keyframes pl-vignette{0%,to{opacity:.5}10%{opacity:1}}@keyframes pl-bar-hit{0%{box-shadow:inset 0 0 0 1px rgba(var(--cream-rgb), .9), 0 0 14px rgba(var(--cream-rgb), .8)}to{box-shadow:inset 0 0 0 1px rgba(var(--cream-rgb), .3)}}@media (prefers-reduced-motion:reduce){.pl *,.pl :before{animation-duration:.01ms!important;animation-iteration-count:1!important}}
