@font-face{font-family:Geist Sans;font-style:normal;font-weight:400;font-display:swap;src:url(https://cdn.jsdelivr.net/npm/@fontsource/geist-sans@5/files/geist-sans-latin-400-normal.woff2) format("woff2")}@font-face{font-family:Geist Sans;font-style:normal;font-weight:500;font-display:swap;src:url(https://cdn.jsdelivr.net/npm/@fontsource/geist-sans@5/files/geist-sans-latin-500-normal.woff2) format("woff2")}@font-face{font-family:Geist Mono;font-style:normal;font-weight:400;font-display:swap;src:url(https://cdn.jsdelivr.net/npm/@fontsource/geist-mono@5/files/geist-mono-latin-400-normal.woff2) format("woff2")}:root{--accent: #8fe9e4}*{margin:0;padding:0;box-sizing:border-box}html,body{height:100%;overflow:hidden;background:#05070a;overscroll-behavior:none}body{font-family:Geist Sans,system-ui,-apple-system,sans-serif;color:#fff;-webkit-font-smoothing:antialiased}canvas{position:fixed;top:0;right:0;bottom:0;left:0;display:block;touch-action:none;z-index:0}.vignette{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2;pointer-events:none;background:radial-gradient(ellipse 130% 95% at 50% 38%,transparent 52%,rgba(2,4,7,.55) 100%),linear-gradient(to bottom,transparent 68%,rgba(2,4,7,.38) 100%)}.ui{position:fixed;top:0;right:0;bottom:0;left:0;z-index:3;pointer-events:none;opacity:0;transition:opacity .9s ease}body.ready .ui{opacity:1}.panel-shell{position:absolute;top:24px;right:24px;padding:6px;border-radius:26px;background:#ffffff0b;border:1px solid rgba(255,255,255,.09);pointer-events:none;opacity:0;transform:translateY(14px);transition:transform .8s cubic-bezier(.22,1,.36,1),opacity .8s ease}.panel-shell.open{opacity:1;transform:translateY(0);pointer-events:auto}.panel{width:300px;padding:22px;border-radius:20px;background:#080b108c;-webkit-backdrop-filter:blur(24px) saturate(140%);backdrop-filter:blur(24px) saturate(140%);box-shadow:inset 0 1px #ffffff12}.eyebrow{font-family:Geist Mono,ui-monospace,monospace;font-size:10px;letter-spacing:.34em;text-transform:uppercase;color:#ffffff80}.title{margin-top:7px;font-size:21px;font-weight:500;letter-spacing:.04em}.subtitle{margin-top:7px;font-family:Geist Mono,ui-monospace,monospace;font-size:9px;letter-spacing:.06em;color:#ffffff61;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.control{margin-top:22px}.control-head{display:flex;justify-content:space-between;align-items:baseline;font-family:Geist Mono,ui-monospace,monospace;font-size:10px;letter-spacing:.24em;text-transform:uppercase;color:#fff9}.control-head label{cursor:pointer}.control-value{color:var(--accent);letter-spacing:.14em}input[type=range]{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:block;width:100%;height:22px;margin-top:8px;background:transparent;cursor:pointer}input[type=range]:focus{outline:none}input[type=range]::-webkit-slider-runnable-track{height:3px;border-radius:2px;background:#ffffff2e}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:12px;height:12px;margin-top:-4.5px;border:none;border-radius:50%;background:var(--accent);box-shadow:0 0 8px #8fe9e4d9,0 0 18px #8fe9e459;transition:transform .15s ease}input[type=range]::-webkit-slider-thumb:hover{transform:scale(1.25)}input[type=range]::-moz-range-track{height:3px;border-radius:2px;background:#ffffff2e}input[type=range]::-moz-range-thumb{width:12px;height:12px;border:none;border-radius:50%;background:var(--accent);box-shadow:0 0 8px #8fe9e4d9,0 0 18px #8fe9e459;transition:transform .15s ease}input[type=range]::-moz-range-thumb:hover{transform:scale(1.25)}.panel-footer{display:flex;justify-content:space-between;align-items:center;margin-top:24px;padding-top:16px;border-top:1px solid rgba(255,255,255,.07)}.pill-group{display:flex;gap:8px}.control.disabled .control-head{opacity:.55}.control.disabled input[type=range]{opacity:.35;pointer-events:none}.pill{font-family:Geist Mono,ui-monospace,monospace;font-size:10px;letter-spacing:.26em;text-transform:uppercase;padding:8px 15px 8px 18px;border-radius:999px;border:1px solid rgba(255,255,255,.14);background:transparent;color:#ffffff6b;cursor:pointer;transition:background .2s ease,border-color .2s ease,color .2s ease,transform .1s ease}.pill:hover{color:#ffffffb3}.pill:active{transform:scale(.95)}.pill.active{background:#8fe9e424;border-color:#8fe9e48c;color:#d9f7f4}.pill.active:hover{color:#effffd}.fps{font-family:Geist Mono,ui-monospace,monospace;font-size:10px;letter-spacing:.2em;color:#fff6}.fps span{color:#ffffffe0}.hint{position:absolute;bottom:22px;left:50%;transform:translate(-50%);font-family:Geist Mono,ui-monospace,monospace;font-size:9px;letter-spacing:.42em;text-indent:.42em;white-space:nowrap;color:#ffffff52;transition:opacity 1.2s ease}body.stage-login .hint{opacity:0}.loader{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#05070a;transition:opacity .9s ease}.loader.done{opacity:0;pointer-events:none}.loader-title{margin:16px 0 34px;font-size:34px;font-weight:500;letter-spacing:.5em;text-indent:.5em;text-align:center}.loader-track{width:168px;height:2px;border-radius:1px;background:#ffffff1a;overflow:hidden}.loader-bar{width:56px;height:100%;border-radius:1px;background:var(--accent);box-shadow:0 0 12px #8fe9e4e6;animation:scan 1.15s ease-in-out infinite}@keyframes scan{0%{transform:translate(-60px)}to{transform:translate(172px)}}.loader-status{margin-top:20px;font-family:Geist Mono,ui-monospace,monospace;font-size:9px;letter-spacing:.3em;text-indent:.3em;color:#fff6}.loader-message{display:none;max-width:440px;margin-top:6px;padding:0 24px;text-align:center;font-size:12.5px;line-height:1.75;color:#ffffff8c}.loader.error .loader-title{color:#ff9d7a;font-size:24px;letter-spacing:.32em;text-indent:.32em}.loader.error .loader-track,.loader.error .loader-status{display:none}.loader.error .loader-message{display:block}@media(max-width:768px){.panel-shell{top:68px;left:14px;right:14px}.panel{width:auto}.subtitle{font-size:8.5px;letter-spacing:.04em;white-space:normal}.hint{display:none}}.brand{position:absolute;top:64px;left:64px;pointer-events:none;-webkit-user-select:none;user-select:none}.brand-row{display:flex;align-items:center;gap:20px;opacity:0;transform:translateY(30px);transition:opacity 1.4s cubic-bezier(.22,1,.36,1),transform 1.4s cubic-bezier(.22,1,.36,1)}body.stage-brand .brand-row{opacity:1;transform:translateY(0)}.brand-mark{width:58px;height:58px;filter:drop-shadow(0 0 14px rgba(143,233,228,.35))}.mark-line{stroke-dasharray:60;stroke-dashoffset:60}body.stage-brand .mark-line{animation:draw 1.6s cubic-bezier(.4,0,.2,1) forwards}body.stage-brand .mark-line:nth-of-type(2){animation-delay:.25s}body.stage-brand .mark-line:nth-of-type(3){animation-delay:.5s}@keyframes draw{to{stroke-dashoffset:0}}.brand-name{font-size:68px;font-weight:500;letter-spacing:.22em;line-height:1;background:linear-gradient(180deg,#fff 25%,#a9ece8 90%,#6fd3cd 130%);-webkit-background-clip:text;background-clip:text;color:transparent;opacity:var(--brand-op, .9);filter:drop-shadow(0 2px 26px rgba(80,200,210,calc(.28 * var(--brand-op, .9))));transition:opacity 1.6s ease,filter 1.6s ease;-webkit-mask-image:linear-gradient(90deg,#000 38%,transparent 62%);mask-image:linear-gradient(90deg,#000 38%,transparent 62%);-webkit-mask-size:280% 100%;mask-size:280% 100%;-webkit-mask-position:100% 0;mask-position:100% 0}body.stage-brand .brand-name{animation:name-reveal 2.4s cubic-bezier(.4,0,.2,1) .3s forwards}@keyframes name-reveal{to{-webkit-mask-position:0% 0;mask-position:0% 0}}.brand-rule{margin-top:22px;width:0;height:1px;background:linear-gradient(90deg,#8fe9e4d9,#8fe9e400);transition:width 1.5s cubic-bezier(.22,1,.36,1) .45s}body.stage-brand .brand-rule{width:148px}.brand-slogan{margin-top:16px;font-size:15px;font-weight:400;letter-spacing:.52em;color:#ffffffd1;text-shadow:0 1px 14px rgba(0,0,0,.35);opacity:0;transform:translateY(12px);transition:opacity 1.1s cubic-bezier(.22,1,.36,1) .6s,transform 1.1s cubic-bezier(.22,1,.36,1) .6s}body.stage-brand .brand-slogan{opacity:1;transform:translateY(0)}.brand-sub{margin-top:12px;font-family:Geist Mono,ui-monospace,monospace;font-size:9px;letter-spacing:.3em;color:#8fe9e48c;opacity:0;transform:translateY(10px);transition:opacity 1.1s cubic-bezier(.22,1,.36,1) .85s,transform 1.1s cubic-bezier(.22,1,.36,1) .85s}body.stage-brand .brand-sub{opacity:1;transform:translateY(0)}@media(max-width:768px){.brand{top:34px;left:28px;right:28px}.brand-row{gap:14px}.brand-mark{width:40px;height:40px}.brand-name{font-size:40px;letter-spacing:.18em}.brand-rule{margin-top:16px}body.stage-brand .brand-rule{width:96px}.brand-slogan{font-size:12px;letter-spacing:.34em}.brand-sub{display:none}}.login-shell{position:absolute;top:50%;right:96px;transform:translateY(-50%);opacity:0;pointer-events:none;transition:opacity 1.3s cubic-bezier(.22,1,.36,1),transform .9s cubic-bezier(.22,1,.36,1)}body.stage-login .login-shell{opacity:1;pointer-events:auto}body.stage-login .login-shell.card-collapsed{opacity:0;transform:translateY(-50%) translate(90px);pointer-events:none}.login-card{position:relative;width:384px;padding:38px 36px 30px;border-radius:24px;background:#080c1275;-webkit-backdrop-filter:blur(28px) saturate(150%);backdrop-filter:blur(28px) saturate(150%);border:1px solid rgba(255,255,255,.11);box-shadow:0 24px 80px #0000006b,inset 0 1px #ffffff17;overflow:hidden;transform:translateY(34px) scale(.975);transition:transform 1.3s cubic-bezier(.22,1,.36,1)}body.stage-login .login-card{transform:translateY(0) scale(1)}.login-card:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(115deg,transparent 32%,rgba(255,255,255,.1) 48%,rgba(143,233,228,.1) 52%,transparent 66%);transform:translate(-130%);pointer-events:none}body.stage-login .login-card:after{animation:sheen 1.8s cubic-bezier(.4,0,.2,1) .55s forwards}@keyframes sheen{to{transform:translate(130%)}}.login-eyebrow{font-family:Geist Mono,ui-monospace,monospace;font-size:9px;letter-spacing:.32em;color:#8fe9e499}.login-title{margin-top:10px;font-size:24px;font-weight:500;letter-spacing:.08em}.login-desc{margin-top:8px;font-size:12.5px;letter-spacing:.06em;color:#ffffff73}.btn-feishu{position:relative;display:flex;align-items:center;justify-content:center;gap:10px;width:100%;height:50px;margin-top:26px;border-radius:14px;cursor:pointer;border:1px solid rgba(255,255,255,.16);background:#ffffff12;-webkit-backdrop-filter:blur(18px) saturate(150%);backdrop-filter:blur(18px) saturate(150%);color:#eafffd;font-family:Geist Sans,PingFang SC,system-ui,sans-serif;font-size:15px;font-weight:500;letter-spacing:.14em;text-indent:.14em;box-shadow:0 10px 30px #00000040,inset 0 1px #ffffff17;transition:transform .25s cubic-bezier(.22,1,.36,1),box-shadow .25s ease,background .25s ease,border-color .25s ease,color .25s ease}.btn-feishu img{width:17px;height:17px;display:block;object-fit:contain;opacity:.88;transition:transform .2s ease,filter .2s ease}.btn-feishu:hover{transform:translateY(-2px);background:#8fe9e41a;border-color:#8fe9e473;box-shadow:0 14px 38px #148c8c38,inset 0 1px #ffffff1f}.btn-feishu:hover img{transform:scale(1.08);filter:drop-shadow(0 0 8px rgba(255,255,255,.45))}.btn-feishu:active{transform:translateY(0) scale(.985)}.btn-feishu:disabled{cursor:default}.btn-feishu.loading{animation:glassbreathe 1.15s ease-in-out infinite}@keyframes glassbreathe{0%,to{background:#ffffff12;border-color:#ffffff29}50%{background:#8fe9e421;border-color:#8fe9e480}}.btn-feishu.success{background:#2fbfa829;border-color:#57d9c68c;color:#d9f7f4;letter-spacing:.06em;text-indent:.06em;box-shadow:0 12px 34px #2fbfa840}.login-divider{display:flex;align-items:center;gap:14px;width:100%;margin-top:20px;padding:0;border:none;background:none;cursor:pointer;color:#ffffff61;font-family:Geist Sans,PingFang SC,system-ui,sans-serif;font-size:11.5px;letter-spacing:.1em;transition:color .25s ease}.login-divider:before,.login-divider:after{content:"";flex:1;height:1px;background:#ffffff17;transition:background .25s ease}.login-divider:hover{color:#ffffffa6}.login-divider:hover:before,.login-divider:hover:after{background:#ffffff2e}#login-form{max-height:480px;margin-top:22px;overflow:hidden;opacity:1;transition:max-height .6s cubic-bezier(.22,1,.36,1),opacity .45s ease,margin-top .6s cubic-bezier(.22,1,.36,1)}#login-form.collapsed{max-height:0;margin-top:0;opacity:0;pointer-events:none}.step{opacity:1;transform:translateY(0);transition:opacity .4s ease,transform .4s cubic-bezier(.22,1,.36,1)}.step.hidden{display:none}.step.entering{opacity:0;transform:translateY(14px)}#step-account .login-button{margin-top:8px}.account-echo{display:flex;justify-content:space-between;align-items:center;margin:-4px 0 16px;padding:10px 14px;border-radius:10px;background:#8fe9e412;border:1px solid rgba(143,233,228,.18);font-size:13px;color:#d9f7f4;letter-spacing:.04em}.account-change{color:#8fe9e4b3;text-decoration:none;font-size:12px;transition:color .2s ease}.account-change:hover{color:#eafffd}.field{display:block;margin-bottom:16px}.field-label{display:block;margin-bottom:8px;font-family:Geist Mono,ui-monospace,monospace;font-size:9.5px;letter-spacing:.26em;text-transform:uppercase;color:#ffffff80}.field input{display:block;width:100%;height:46px;padding:0 16px;border-radius:12px;border:1px solid rgba(255,255,255,.13);background:#ffffff0e;color:#fff;font-family:Geist Sans,PingFang SC,system-ui,sans-serif;font-size:14px;letter-spacing:.04em;outline:none;transition:border-color .25s ease,box-shadow .25s ease,background .25s ease}.field input::placeholder{color:#ffffff47}.field input:hover{border-color:#ffffff38}.field input:focus{border-color:#8fe9e4a6;background:#8fe9e40f;box-shadow:0 0 0 3px #8fe9e41f,0 0 22px #8fe9e41a}.field.invalid input{border-color:#ff8c78b3;animation:shake .4s cubic-bezier(.36,.07,.19,.97)}@keyframes shake{10%,90%{transform:translate(-1px)}20%,80%{transform:translate(2px)}30%,50%,70%{transform:translate(-3px)}40%,60%{transform:translate(3px)}}.login-row{display:flex;justify-content:space-between;align-items:center;margin:4px 0 24px;font-size:12px}.remember{display:inline-flex;align-items:center;gap:8px;cursor:pointer;color:#ffffff8c;letter-spacing:.04em;-webkit-user-select:none;user-select:none}.remember input{position:absolute;opacity:0;width:0;height:0}.remember-box{width:15px;height:15px;border-radius:4.5px;border:1px solid rgba(255,255,255,.28);background:#ffffff0d;transition:all .2s ease;position:relative}.remember input:checked+.remember-box{background:#8fe9e4d9;border-color:#8fe9e4d9;box-shadow:0 0 10px #8fe9e466}.remember input:checked+.remember-box:after{content:"";position:absolute;left:4.5px;top:1.5px;width:4px;height:8px;border:solid #06333a;border-width:0 2px 2px 0;transform:rotate(42deg)}.forgot{color:#8fe9e499;text-decoration:none;letter-spacing:.04em;transition:color .2s ease}.forgot:hover{color:#8fe9e4f2}.login-button{position:relative;display:block;width:100%;height:48px;border:none;border-radius:13px;cursor:pointer;overflow:hidden;background:linear-gradient(135deg,#146a72,#1e8c8a 55%,#27a5a0);color:#eafffd;font-family:Geist Sans,PingFang SC,system-ui,sans-serif;font-size:15px;font-weight:500;letter-spacing:.34em;text-indent:.34em;box-shadow:0 10px 30px #14828759,inset 0 1px #ffffff29;transition:transform .25s cubic-bezier(.22,1,.36,1),box-shadow .25s ease,filter .25s ease}.login-button:hover{transform:translateY(-2px);filter:brightness(1.12);box-shadow:0 16px 40px #1e969673,inset 0 1px #fff3}.login-button:active{transform:translateY(0) scale(.985)}.login-button:disabled{cursor:default}.login-button.loading{animation:breathe 1.15s ease-in-out infinite}@keyframes breathe{0%,to{filter:brightness(.94)}50%{filter:brightness(1.16)}}.login-button.success{background:linear-gradient(135deg,#2fbfa8,#57d9c6);color:#053331;letter-spacing:.12em;text-indent:.12em}@media(max-width:768px){.login-shell{top:auto;right:18px;left:18px;bottom:118px;transform:none}.login-card{width:auto;padding:28px 24px 22px;border-radius:20px}.login-title{font-size:20px}.field input{height:44px}.login-button{height:46px}.btn-feishu{height:48px}}.card-collapse{position:absolute;top:16px;right:16px;width:30px;height:30px;border-radius:50%;border:1px solid rgba(255,255,255,.12);background:#ffffff0a;color:#ffffff8c;display:flex;align-items:center;justify-content:center;cursor:pointer;opacity:0;pointer-events:none;z-index:5;transition:opacity .5s ease,color .25s ease,border-color .25s ease,background .25s ease}body.logged-in .card-collapse{opacity:1;pointer-events:auto}.card-collapse:hover{color:#eafffd;border-color:#8fe9e473;background:#8fe9e414}.card-collapse svg{width:14px;height:14px}body.logged-in #alt-toggle,body.logged-in #login-form{display:none}.logout-link{display:none;margin:16px auto -4px;padding:4px 10px;background:none;border:none;color:#ffffff5c;font-size:11.5px;letter-spacing:.14em;cursor:pointer;transition:color .25s ease}.logout-link:hover{color:#ffcdcde6}body.logged-in .logout-link{display:block}.user-capsule{position:fixed;right:22px;top:50%;transform:translateY(-50%) translate(24px);display:flex;align-items:center;gap:9px;padding:8px 14px 8px 8px;border-radius:999px;background:#080c1280;-webkit-backdrop-filter:blur(20px) saturate(140%);backdrop-filter:blur(20px) saturate(140%);border:1px solid rgba(255,255,255,.12);color:#ffffffd9;font-size:12.5px;letter-spacing:.04em;cursor:pointer;opacity:0;pointer-events:none;z-index:40;transition:opacity .7s ease,transform .7s cubic-bezier(.22,1,.36,1),border-color .25s ease,box-shadow .25s ease}.user-capsule.show{opacity:1;transform:translateY(-50%) translate(0);pointer-events:auto}.user-capsule:hover{border-color:#8fe9e473;box-shadow:0 8px 26px #148c8c40}.capsule-avatar{width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#8fe9e438,#50a0c838);border:1px solid rgba(143,233,228,.38);color:#bff3ee;font-size:12px}.user-capsule svg{width:14px;height:14px;color:#ffffff80}@media(max-width:768px){.user-capsule{right:14px;top:auto;bottom:88px;transform:translate(24px)}.user-capsule.show{transform:translate(0)}}.modules{position:absolute;left:64px;right:64px;bottom:60px;pointer-events:none}.modules-label{font-family:Geist Mono,ui-monospace,monospace;font-size:9px;letter-spacing:.3em;color:#ffffff59;opacity:0;transform:translateY(10px);transition:opacity 1s ease .1s,transform 1s cubic-bezier(.22,1,.36,1) .1s}body.stage-modules .modules-label{opacity:1;transform:translateY(0)}.modules-row{position:relative;display:flex;gap:12px;margin-top:14px;flex-wrap:wrap;overflow-y:auto;scrollbar-width:thin;scrollbar-color:rgba(143,233,228,.3) transparent;scroll-behavior:smooth;pointer-events:none}body.stage-modules .modules-row{pointer-events:auto}.modules-row::-webkit-scrollbar{width:4px}.modules-row::-webkit-scrollbar-track{background:transparent}.modules-row::-webkit-scrollbar-thumb{background:#8fe9e447;border-radius:2px}.modules-row.can-scroll-down{-webkit-mask-image:linear-gradient(to bottom,#000 88%,transparent 100%);mask-image:linear-gradient(to bottom,#000 88%,transparent 100%)}.modules-row.can-scroll-up{-webkit-mask-image:linear-gradient(to top,#000 88%,transparent 100%);mask-image:linear-gradient(to top,#000 88%,transparent 100%)}.modules-row.can-scroll-down.can-scroll-up{-webkit-mask-image:linear-gradient(to bottom,transparent 0%,#000 12%,#000 88%,transparent 100%);mask-image:linear-gradient(to bottom,transparent 0%,#000 12%,#000 88%,transparent 100%)}.module-chip{display:inline-flex;align-items:center;gap:10px;padding:11px 18px 11px 14px;border-radius:14px;border:1px solid rgba(255,255,255,.1);background:#080c126b;-webkit-backdrop-filter:blur(18px) saturate(140%);backdrop-filter:blur(18px) saturate(140%);color:#ffffffc7;text-decoration:none;font-size:12.5px;letter-spacing:.05em;cursor:pointer;pointer-events:none;opacity:0;transform:translateY(20px);transition:opacity .9s cubic-bezier(.22,1,.36,1) calc(var(--i) * 90ms + .2s),transform .9s cubic-bezier(.22,1,.36,1) calc(var(--i) * 90ms + .2s),border-color .25s ease,background .25s ease,box-shadow .25s ease,color .25s ease}body.stage-modules .module-chip{opacity:1;transform:translateY(0);pointer-events:auto}.module-chip:hover{border-color:#8fe9e473;background:#8fe9e414;color:#eafffd;box-shadow:0 8px 26px #148c8c38;transform:translateY(-2px)}.module-chip svg{width:17px;height:17px;color:#8fe9e4bf;flex:none}.module-chip .module-tag{font-family:Geist Mono,ui-monospace,monospace;font-size:8px;letter-spacing:.16em;color:#8fe9e46b;margin-left:2px}.module-chip.hub{border-color:#8fe9e438}.module-chip .module-name{max-width:132px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.modules-row.settled .module-chip{transition-delay:0ms,0ms,0s,0s,0s,0s}@media(pointer:fine){.module-chip{cursor:grab;user-select:none;-webkit-user-select:none;touch-action:none}}.module-chip.dragging{cursor:grabbing;z-index:30;border-color:#8fe9e499;background:#141c24b8;box-shadow:0 18px 48px #00000080,0 0 24px #8fe9e438;transition:none;pointer-events:none}.modules-hint{margin-left:10px;color:#8fe9e466;letter-spacing:.2em;transition:opacity .8s ease}.modules-hint.gone{opacity:0}@media(max-width:768px){.modules{left:18px;right:18px;bottom:20px}.modules-row{flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden;padding-bottom:4px;scrollbar-width:none;-webkit-overflow-scrolling:touch;touch-action:pan-x}.modules-row::-webkit-scrollbar{display:none}.module-chip{flex:none;padding:9px 14px 9px 12px;font-size:11.5px;-webkit-touch-callout:none}}.ocean-fab{position:absolute;right:24px;bottom:24px;width:44px;height:44px;border-radius:50%;border:1px solid rgba(255,255,255,.13);background:#080c1280;-webkit-backdrop-filter:blur(18px) saturate(140%);backdrop-filter:blur(18px) saturate(140%);color:#8fe9e4bf;cursor:pointer;display:flex;align-items:center;justify-content:center;pointer-events:auto;opacity:0;transform:translateY(12px);transition:opacity .9s ease .4s,transform .9s cubic-bezier(.22,1,.36,1) .4s,border-color .25s ease,color .25s ease,box-shadow .25s ease}body.ready .ocean-fab{opacity:1;transform:translateY(0)}.ocean-fab:hover{border-color:#8fe9e480;color:#d9f7f4;box-shadow:0 0 18px #8fe9e42e}.ocean-fab.active{background:#8fe9e424;border-color:#8fe9e48c;color:#d9f7f4}.ocean-fab svg{width:20px;height:20px}.toast{position:fixed;left:50%;bottom:96px;transform:translate(-50%) translateY(16px);z-index:20;max-width:min(420px,calc(100vw - 48px));padding:13px 22px;border-radius:14px;border:1px solid rgba(143,233,228,.3);background:#080e14b8;-webkit-backdrop-filter:blur(20px) saturate(150%);backdrop-filter:blur(20px) saturate(150%);color:#eafffdeb;font-size:13px;letter-spacing:.06em;text-align:center;opacity:0;pointer-events:none;transition:opacity .45s ease,transform .45s cubic-bezier(.22,1,.36,1);box-shadow:0 16px 48px #0006}.toast.show{opacity:1;transform:translate(-50%) translateY(0)}@media(max-width:768px){.ocean-fab{top:16px;right:16px;bottom:auto;width:40px;height:40px}.toast{bottom:150px;font-size:12px}}
