:root{--glass: rgba(24, 21, 32, .72);--line: rgba(255, 255, 255, .14);--text: #f4f1f8;--muted: #b9b2c6;--warm: #ffc98f;--safe-t: env(safe-area-inset-top, 0px);--safe-r: env(safe-area-inset-right, 0px);--safe-b: env(safe-area-inset-bottom, 0px);--safe-l: env(safe-area-inset-left, 0px)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;height:100%;overflow:hidden;overscroll-behavior:none;background:#14111b;color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}#scene{position:fixed;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block;touch-action:none}#hud{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none}#hud button,.profile,.stick,.sprint{pointer-events:auto}.glass{background:var(--glass);border:1px solid var(--line);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.profile{position:absolute;top:calc(12px + var(--safe-t));left:calc(12px + var(--safe-l));display:flex;align-items:center;gap:10px;padding:6px 18px 6px 6px;border-radius:999px;min-width:190px;color:inherit;font:inherit;text-align:left;cursor:pointer}.profile.guest{min-width:0}.panel-link{position:absolute;top:calc(12px + var(--safe-t));left:calc(214px + var(--safe-l));height:44px;padding:0 14px;display:flex;align-items:center;gap:6px;border-radius:999px;color:var(--warm);font-size:14px;font-weight:600;text-decoration:none;pointer-events:auto}.panel-link[hidden]{display:none}.panel-link svg{width:21px;height:21px}.profile.guest .who span,.profile.guest .xp{display:none}.avatar{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:#ffffff1f;border:1px solid rgba(255,255,255,.35)}.avatar{overflow:hidden;flex:none;font-size:19px;font-weight:700;color:var(--warm)}.avatar svg{width:26px;height:26px}.avatar img,.sheet .face img{width:100%;height:100%;object-fit:cover;display:block}.who b{display:block;font-size:14px;font-weight:600}.who span{font-size:12px;color:var(--muted)}.xp{height:3px;margin-top:4px;border-radius:2px;background:#ffffff2e;overflow:hidden}.xp i{display:block;width:18%;height:100%;background:var(--warm)}.topright{position:absolute;top:calc(12px + var(--safe-t));right:calc(12px + var(--safe-r));display:flex;align-items:center;gap:10px}.online{display:flex;align-items:center;gap:8px;height:44px;padding:0 16px;border-radius:999px;font-size:14px;font-weight:600}.online svg{width:20px;height:20px}.online b{font-weight:600}.online i{font-style:normal}.round{position:relative;width:44px;height:44px;border-radius:50%;color:var(--text);display:grid;place-items:center;padding:0;cursor:pointer}.round svg{width:21px;height:21px}.round .dot{position:absolute;top:9px;right:10px;width:9px;height:9px;border-radius:50%;background:#ff3b52}.stick{position:absolute;left:calc(22px + var(--safe-l));bottom:calc(22px + var(--safe-b));width:136px;height:136px;border-radius:50%;background:#14111b52;border:1.5px solid rgba(255,255,255,.42);touch-action:none}.stick .knob{position:absolute;left:50%;top:50%;width:54px;height:54px;margin:-27px 0 0 -27px;border-radius:50%;background:#f0eef4db}.stick svg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.sprint{position:absolute;right:calc(26px + var(--safe-r));bottom:calc(30px + var(--safe-b));width:78px;height:78px;border-radius:50%;color:var(--text);background:#14111b6b;border:1.5px solid rgba(255,255,255,.42);display:grid;place-items:center;cursor:pointer;touch-action:none}.sprint svg{width:40px;height:40px}.sprint.on{background:#ffc98fe6;border-color:var(--warm);color:#2a1a0a}.chip{position:absolute;left:0;right:0;margin-inline:auto;width:fit-content;bottom:calc(26px + var(--safe-b));transform:translateY(16px);display:flex;align-items:center;gap:12px;padding:8px 8px 8px 16px;border-radius:999px;opacity:0;transition:opacity .2s,transform .2s;white-space:nowrap;font-size:14px;max-width:calc(100vw - 24px)}.chip.show{opacity:1;transform:none}.chip b{font-weight:600}.chip .live{padding:2px 7px;border-radius:5px;background:#ff3b52;font-size:11px;font-weight:700}.chip .info{display:flex;flex-direction:column;min-width:0;line-height:1.3}.chip small{color:var(--muted);font-size:12px;overflow:hidden;text-overflow:ellipsis}.chip.plain{border-color:transparent;background:none;backdrop-filter:none;-webkit-backdrop-filter:none;text-shadow:0 1px 8px rgba(0,0,0,.85)}.chip.plain small{color:#fff}.chip.plain button{text-shadow:none}.chip .live.ready{background:var(--warm);color:#2a1a0a}.chip button{height:44px;padding:0 18px;border:0;border-radius:999px;background:var(--warm);color:#2a1a0a;font:inherit;font-weight:600;cursor:pointer}.chip:not(.show) button{pointer-events:none}.toast{position:absolute;top:calc(68px + var(--safe-t));right:calc(12px + var(--safe-r));padding:10px 14px;border-radius:12px;font-size:13px;opacity:0;transition:opacity .2s}.toast.show{opacity:1}.hint{position:absolute;left:0;right:0;margin-inline:auto;width:fit-content;bottom:calc(34px + var(--safe-b));padding:8px 14px;border-radius:999px;font-size:13px;white-space:nowrap;transition:opacity .4s}.hint.hide{opacity:0}.in-class .stick,.in-class .sprint{display:none}.classbar{position:absolute;left:0;right:0;margin-inline:auto;bottom:calc(14px + var(--safe-b));transform:translateY(16px);width:min(560px,calc(100vw - 24px));display:flex;align-items:center;gap:14px;padding:12px 12px 16px 18px;border-radius:20px;overflow:hidden;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s}.classbar.show{opacity:1;transform:none}#hud .classbar:not(.show) button{pointer-events:none}.classbar .now{flex:1;min-width:0;display:flex;flex-direction:column;line-height:1.25}.classbar b{font-size:20px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.classbar small{color:var(--muted);font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.classbar .time{font-size:30px;font-weight:700;color:var(--warm);font-variant-numeric:tabular-nums}.classbar button{flex:none;height:44px;padding:0 14px;border:1px solid var(--line);border-radius:999px;background:transparent;color:var(--muted);font:inherit;font-size:13px;cursor:pointer}.classbar .bar{position:absolute;left:0;right:0;bottom:0;height:4px;background:#ffffff24}.classbar .bar u{display:block;height:100%;background:var(--warm)}.finish{position:absolute;top:0;right:0;bottom:0;left:0;margin:auto;height:fit-content;width:min(340px,calc(100vw - 32px));padding:20px;border-radius:22px;text-align:center;display:none;pointer-events:auto}.finish.show{display:block}.finish small{color:var(--warm);font-size:13px;font-weight:600}.finish b{display:block;margin-top:4px;font-size:22px}.finish p{margin:6px 0 16px;color:var(--muted);font-size:14px}.finish button{width:100%;height:46px;border:0;border-radius:999px;background:var(--warm);color:#2a1a0a;font:inherit;font-weight:600;cursor:pointer}.sheet{position:absolute;top:0;right:0;bottom:0;left:0;margin:auto;height:fit-content;max-height:calc(100% - 24px - var(--safe-t) - var(--safe-b));overflow-y:auto;width:min(380px,calc(100vw - 32px));padding:16px;border-radius:22px;background:#181520f5;display:none;pointer-events:auto}.sheet.show{display:block}.sheet header{display:flex;align-items:center;justify-content:space-between;gap:12px}.sheet h2{margin:0;font-size:21px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sheet .close{flex:none;width:44px;height:44px;border:1px solid var(--line);border-radius:50%;background:transparent;color:var(--text);font-size:22px;line-height:1;cursor:pointer}.sheet .lead{margin:4px 0 14px;color:var(--muted);font-size:14px}.sheet .consent{display:flex;align-items:flex-start;gap:10px;padding:10px 2px;margin-bottom:8px;font-size:14px;line-height:1.4;cursor:pointer}.sheet .consent input{flex:none;width:22px;height:22px;margin:0;accent-color:var(--warm)}.sheet a{color:var(--warm)}.sheet .card{align-items:center;gap:14px}.sheet .face{flex:none;width:64px;height:64px;border-radius:50%;overflow:hidden;display:grid;place-items:center;background:linear-gradient(135deg,#5b48c8,#ffc98f);color:#fff;font-size:28px;font-weight:700}.sheet .who{flex:1;min-width:0}.sheet .mail{margin:2px 0 0;color:var(--muted);font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sheet .facts{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:16px 0 6px}.sheet .facts div{padding:10px 6px;border-radius:14px;background:#ffffff0f;text-align:center}.sheet .facts b{display:block;font-size:15px;font-weight:700}.sheet .facts small{color:var(--muted);font-size:12px}.sheet .action{display:flex;align-items:center;justify-content:center;width:100%;min-height:48px;margin-top:8px;border:1px solid var(--line);border-radius:999px;background:transparent;color:var(--text);font:inherit;font-weight:600;text-decoration:none;cursor:pointer}.sheet .action.main{border-color:var(--warm);background:var(--warm);color:#2a1a0a}.sheet .provider,.sheet .danger{display:block;width:100%;min-height:48px;margin-top:8px;padding:8px 14px;border:1px solid var(--line);border-radius:999px;background:#f4f1f8;color:#17151d;font:inherit;font-weight:600;cursor:pointer}.sheet .provider:disabled{opacity:.4;cursor:default}.sheet .danger{border-color:transparent;background:transparent;color:var(--muted);font-size:13px;font-weight:500}.sheet .danger.sure{border-color:#ff3b52;color:#ff8a97}.calendar{position:absolute;top:0;right:0;bottom:0;left:0;margin:auto;width:min(560px,calc(100vw - 24px - var(--safe-l) - var(--safe-r)));height:min(620px,calc(100% - 24px - var(--safe-t) - var(--safe-b)));display:none;flex-direction:column;padding:14px 14px 0;border-radius:22px;background:#181520f0;pointer-events:auto}.calendar.show{display:flex}.calendar header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:2px 2px 10px 6px}.calendar h2{margin:0;font-size:19px;font-weight:700}.calendar header p{margin:2px 0 0;color:var(--muted);font-size:12px}.calendar .close{flex:none;width:44px;height:44px;border:1px solid var(--line);border-radius:50%;background:transparent;color:var(--text);font-size:22px;line-height:1;cursor:pointer}.calendar .days{flex:none;display:flex;gap:6px;overflow-x:auto;padding-bottom:10px;scrollbar-width:none;touch-action:pan-x}.calendar .days::-webkit-scrollbar{display:none}.calendar .days button{flex:none;height:40px;padding:0 14px;border:1px solid var(--line);border-radius:999px;background:transparent;color:var(--muted);font:inherit;font-size:13px;font-weight:600;cursor:pointer}.calendar .days button.on{border-color:var(--warm);background:var(--warm);color:#2a1a0a}.calendar .rows{flex:1;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;touch-action:pan-y;padding-bottom:12px}.calendar .row{display:flex;align-items:center;gap:12px;min-height:58px;padding:7px 4px 7px 6px;border-top:1px solid rgba(255,255,255,.08)}.calendar .row time{flex:none;width:46px;font-size:14px;font-weight:600;font-variant-numeric:tabular-nums}.calendar .row .info{flex:1;min-width:0;display:flex;flex-direction:column;line-height:1.3}.calendar .row b{font-size:15px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.calendar .row small{color:var(--muted);font-size:12px}.calendar .tag{flex:none;padding:2px 7px;border-radius:5px;background:#ffc98f29;color:var(--warm);font-size:11px;font-weight:700}.calendar .tag.live{background:#ff3b52;color:#fff}.calendar .go{flex:none;height:44px;padding:0 18px;border:0;border-radius:999px;background:var(--warm);color:#2a1a0a;font:inherit;font-weight:600;cursor:pointer}.calendar .note{margin:0;padding:12px 6px 4px;border-top:1px solid rgba(255,255,255,.08);color:var(--muted);font-size:12px}@media(max-width:640px){.profile{min-width:0;padding:0;border:0;background:none;backdrop-filter:none;-webkit-backdrop-filter:none}.profile:not(.guest) .who{display:none}.profile.guest{height:44px;padding:0 14px;border:1px solid var(--line);background:var(--glass)}.profile.guest .avatar{display:none}.avatar{background:var(--glass)}.online{padding:0 12px;font-size:13px}.online i{display:none}.panel-link{left:calc(64px + var(--safe-l));width:44px;padding:0;justify-content:center}.panel-link span{display:none}.hint{top:calc(68px + var(--safe-t));bottom:auto;white-space:normal;width:calc(100% - 48px);text-align:center;border-radius:16px}.chip{bottom:calc(31% + var(--safe-b));width:calc(100vw - 24px);white-space:normal;border-radius:20px}.chip .info{flex:1}.calendar .row:has(.go) .tag{display:none}.chip button{flex:none}}@media(max-height:460px){.classbar{left:calc(12px + var(--safe-l));right:auto;margin-inline:0;width:min(360px,calc(100vw - 24px))}.classbar b{font-size:18px}.stick{width:116px;height:116px;left:calc(14px + var(--safe-l));bottom:calc(14px + var(--safe-b))}.sprint{right:calc(16px + var(--safe-r));bottom:calc(18px + var(--safe-b));width:66px;height:66px}}.tip{position:absolute;left:0;top:0;max-width:min(250px,calc(100vw - 32px));padding:9px 12px;border-radius:14px;background:#fff;color:#17151d;font-size:14px;line-height:1.35;opacity:0;transition:opacity .2s;pointer-events:none}.tip.show{opacity:1}.tip b{display:block;color:#6a4fd8;font-size:12px}.micbtn{position:absolute;right:calc(16px + var(--safe-r));bottom:calc(112px + var(--safe-b));width:66px;height:66px;border:1.5px solid rgba(255,255,255,.42);border-radius:50%;background:#14111bb8;color:var(--text);display:grid;place-items:center;cursor:pointer}.micbtn[hidden]{display:none}.micbtn svg{width:30px;height:30px}.micbtn.on{border-color:var(--warm);background:var(--warm);color:#2a1a0a}
