:root{--ink:#f3f5f7;--muted:#9aa5b1;--panel:rgba(18,22,28,.9);--line:rgba(255,255,255,.1);--led:#ffb02e;--led-bg:#05070a;--seat:#f28c28;--seat-2:#d9741c;--snot:#a6d63a;--danger:#ff5a46;--viral:#5aa2ff;--focus:#ffe49a;--display:"Lilita One",system-ui,sans-serif;--body:Nunito,system-ui,sans-serif;--mono:VT323,ui-monospace,monospace;color-scheme:dark}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;height:100%;overflow:hidden;overscroll-behavior:none;-webkit-tap-highlight-color:transparent;background:#12161c}body{color:var(--ink);font:16px/1.45 var(--body);-webkit-user-select:none;user-select:none}#stage{position:fixed;inset:0;touch-action:none}#stage canvas{width:100vw!important;height:100vh!important;height:100dvh!important;display:block}#ui{position:fixed;inset:0;pointer-events:none;max-width:520px;margin:0 auto}h1,h2{margin:0;line-height:1;font-family:var(--display);font-weight:400}button{font:inherit;color:inherit;cursor:pointer;border:0;border-radius:14px;padding:13px 16px;font-weight:800;transition:transform .12s,filter .2s,opacity .2s}button:active{transform:scale(.97)}button:disabled{cursor:default}button:focus-visible,a:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.muted{color:var(--muted)}.row{display:flex;gap:8px}.row>*{flex:1}.icon-btn{width:40px;height:40px;padding:0;border-radius:12px;display:grid;place-items:center;background:#ffffff14;border:1px solid var(--line);font-size:17px}.primary{background:linear-gradient(180deg,#ffa54c,var(--seat) 55%,var(--seat-2));color:#2a1405;box-shadow:0 6px #a95510,0 12px 28px #f28c2859;font-size:18px}.primary:active{transform:translateY(3px);box-shadow:0 3px #a95510}.primary.big{font-family:var(--display);font-weight:400;font-size:26px;letter-spacing:.01em;padding:16px;display:flex;flex-direction:column;align-items:center;gap:2px}.primary small{font:800 13px/1.2 var(--body);opacity:.75;letter-spacing:0}.ghost{background:#ffffff12;border:1px solid var(--line);font-size:15px}#hud{position:absolute;left:0;right:0;top:0;pointer-events:auto;padding:max(10px,env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) 10px max(12px,env(safe-area-inset-left));background:linear-gradient(180deg,#12161cf5,#12161cdb);border-bottom:1px solid var(--line);display:grid;grid-template-columns:minmax(0,1fr);gap:8px;transition:opacity .3s}#hud.off,#deck.off{visibility:hidden;opacity:0}.hud-row{display:flex;gap:8px;align-items:stretch}.led{flex:1;min-width:0;display:flex;align-items:center;justify-content:space-between;gap:10px;background:var(--led-bg);border-radius:10px;padding:2px 12px;box-shadow:inset 0 0 0 1px #ffb02e2e,inset 0 0 18px #ffb02e14;font:26px/1 var(--mono);color:var(--led);text-shadow:0 0 6px rgba(255,176,46,.6)}.led-route{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.led-clock{font-variant-numeric:tabular-nums}.trip{height:4px;border-radius:4px;background:#ffffff1a;overflow:hidden}.trip i{display:block;height:100%;background:var(--led);transform-origin:left;transform:scaleX(0)}.meters{display:grid;grid-template-columns:repeat(3,1fr);gap:6px 10px}.meter{display:grid;gap:3px;font-size:12px;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}.meter b{display:block;height:8px;border-radius:8px;background:#ffffff1a;overflow:hidden}.meter i{display:block;height:100%;border-radius:8px;transform-origin:left;transition:transform .15s linear}.m-stab i{background:var(--snot)}.m-social i{background:var(--danger)}.m-viral i{background:var(--viral)}.m-breath{grid-column:1/-1;display:none}.m-breath i{background:#fff}#hud.holding .m-breath{display:grid}#hud.low .m-stab span{color:var(--danger);animation:blink .5s steps(2) infinite}@keyframes blink{50%{opacity:.3}}#deck{position:absolute;left:0;right:0;bottom:0;pointer-events:auto;display:grid;grid-template-columns:repeat(4,1fr);gap:8px;padding:10px max(12px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left));background:linear-gradient(0deg,#12161cf5,#12161cdb);border-top:1px solid var(--line);transition:opacity .3s}.power{position:relative;overflow:hidden;display:flex;flex-direction:column;align-items:center;gap:2px;padding:9px 4px 8px;background:#262e38;border:1px solid var(--line);color:#fff}.power svg{color:var(--snot)}.power .p-name{font-size:14px;line-height:1.1}.power .p-sub{font-size:11px;color:var(--muted);font-weight:700;white-space:nowrap}.power .cd{position:absolute;inset:0;background:#0000008c;transform-origin:bottom;transform:scaleY(var(--cd,0));pointer-events:none}.power:disabled{opacity:.6}.power:disabled svg{color:var(--muted)}.power kbd{position:absolute;top:4px;right:6px;font:700 10px var(--body);color:var(--muted);opacity:.6}.power.nope{animation:nope .3s}@keyframes nope{25%{transform:translate(-4px)}75%{transform:translate(4px)}}@media(hover:none){.power kbd{display:none}}.banner{position:absolute;left:16px;right:16px;top:calc(var(--hud-h,170px) + 6px);margin:0 auto;max-width:420px;padding:10px 14px;border-radius:12px;text-align:center;font-weight:800;opacity:0;transform:translateY(-8px);transition:opacity .25s,transform .25s}.banner.show{opacity:1;transform:none}.banner.warn{background:var(--danger);color:#fff;box-shadow:0 8px 24px #ff5a4659}.banner.info{background:var(--led-bg);color:var(--led);font:24px/1.1 var(--mono);text-shadow:0 0 6px rgba(255,176,46,.6);box-shadow:inset 0 0 0 1px #ffb02e40}.toast{position:absolute;left:0;right:0;top:46%;text-align:center;font:30px/1.1 var(--display);color:#fff;-webkit-text-stroke:1.5px #12161c;paint-order:stroke;text-shadow:0 3px 0 #12161c;opacity:0;pointer-events:none}.toast.show{animation:pop 1.5s ease-out forwards}@keyframes pop{0%{opacity:0;transform:scale(.7)}12%{opacity:1;transform:scale(1.08)}20%{transform:scale(1)}80%{opacity:1}to{opacity:0;transform:translateY(-14px)}}.coach{position:absolute;left:16px;right:16px;bottom:calc(var(--deck-h,96px) + 12px);margin:0 auto;max-width:360px;padding:10px 14px;border-radius:999px;text-align:center;background:#fff;color:#12161c;font-weight:800;box-shadow:0 8px 24px #0000004d;opacity:0;transform:translateY(8px);transition:opacity .25s,transform .25s}.coach.show{opacity:1;transform:none}.panel{position:absolute;inset:0;display:flex;flex-direction:column;pointer-events:auto;overflow:auto;padding:max(14px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) max(16px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left));transition:opacity .3s}.panel.hidden{opacity:0;pointer-events:none;visibility:hidden}.panel.home{background:linear-gradient(180deg,#12161cd1,#12161c40 34%,#12161c00 46%,#12161cd9 62%,#12161cf7)}.panel.pause,.panel.end{justify-content:flex-end;background:linear-gradient(180deg,#12161c00 25%,#12161ce6 60%)}.home-top{display:flex;justify-content:space-between;align-items:center}.portal-back{color:var(--muted);font-weight:800;font-size:13px;text-decoration:none;padding:8px 0}.title{text-align:center;margin-top:2px}.title h1{font-size:clamp(3rem,15vw,4.4rem);line-height:.88;color:#fff;-webkit-text-stroke:2px #12161c;paint-order:stroke;text-shadow:0 5px 0 #12161c,0 10px 26px rgba(0,0,0,.35)}.title h1:first-line{color:var(--snot)}.title p{margin:10px auto 0;max-width:290px;font-weight:800;color:#fff;text-shadow:0 1px 8px rgba(0,0,0,.6)}.sheet{margin-top:auto;display:grid;gap:12px;background:var(--panel);border:1px solid var(--line);border-radius:22px;padding:16px;box-shadow:0 18px 50px #00000073}.sheet.center{text-align:center}.sheet h2{font-size:34px}.howto{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;text-align:center}.howto div{display:grid;gap:1px;padding:8px 2px;border-radius:10px;background:#ffffff0d}.howto b{font-size:13px}.howto span{font-size:11px;color:var(--muted);font-weight:700;line-height:1.15}.route-list{list-style:none;margin:0;padding:0 0 0 6px;display:grid;position:relative}.route-list:before{content:"";position:absolute;left:12px;top:14px;bottom:14px;width:3px;background:#c8463c;border-radius:3px}.stop{width:100%;display:flex;align-items:center;gap:10px;background:none;padding:6px 4px;border-radius:10px;text-align:left;font-size:15px}.stop .dot{width:15px;height:15px;border-radius:50%;background:#12161c;border:3px solid #c8463c;position:relative;z-index:1;flex:none}.stop.next .dot{background:var(--led);border-color:var(--led);box-shadow:0 0 10px var(--led)}.stop .st{flex:1}.stop em{font-style:normal;font:12px var(--body);font-weight:900;color:var(--danger);letter-spacing:.06em;margin-left:4px}.stop.locked{color:var(--muted);opacity:.55}.stop:not(.locked):hover{background:#ffffff0d}.stars{display:inline-flex;gap:2px;font-size:15px;line-height:1}.stars i{font-style:normal;color:#ffffff2e}.stars i.on{color:var(--led);text-shadow:0 0 6px rgba(255,176,46,.5)}.result{text-align:center}.result .eyebrow{margin:0;font:22px/1 var(--mono);color:var(--led);letter-spacing:.04em;text-transform:uppercase}.result h2{font-size:clamp(2.6rem,12vw,3.4rem)}.result.sempurna h2,.result.rahasia h2{color:var(--snot)}.result.selamat h2{color:var(--seat)}.result.viral h2{color:var(--viral)}.result.epic h2,.result.diusir h2{color:var(--danger)}.result .stars{justify-content:center;font-size:30px}.result .line{margin:0 auto;max-width:330px;font-weight:700}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin:0}.stats div{background:#ffffff0d;border-radius:10px;padding:6px}.stats dt{font-size:11px;color:var(--muted);font-weight:800;text-transform:uppercase;letter-spacing:.06em}.stats dd{margin:0;font:28px/1 var(--mono);font-variant-numeric:tabular-nums}.consent{border-top:1px solid var(--line);padding-top:10px;display:grid;gap:8px}.consent p{margin:0;font-size:13px;color:var(--muted);font-weight:700}#splash{position:fixed;inset:0;display:grid;place-items:center;background:#12161c;z-index:20;transition:opacity .5s}#splash.gone{opacity:0;pointer-events:none}@media(prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;transition-duration:.01ms!important}}.privacy{justify-self:center;color:var(--muted);font-size:12px;font-weight:700;text-decoration:none;padding:4px 8px}
