:root{--amber:#ffb45e;--amber-hi:#ffdca0;--bone:#d8ccb2;--ash:#8d8274;--coal:#0b0908;--panel:#100c09d1;--line:#ffb45e29;--serif:Georgia, "Times New Roman", serif;--mono:"Courier New", ui-monospace, monospace}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{background:var(--coal);height:100%;color:var(--bone);font-family:var(--serif);margin:0;overflow:hidden}#app{position:fixed;inset:0}#app canvas{display:block;position:absolute;inset:0}button{cursor:pointer;font-family:inherit}.hud{pointer-events:none;z-index:10;-webkit-user-select:none;user-select:none;position:absolute;inset:0}.hud-top{align-items:flex-start;gap:14px;display:flex;position:absolute;top:12px;left:12px;right:12px}.hud-objective{color:var(--amber-hi);text-shadow:0 0 12px #ffa03c73,0 2px 4px #000;letter-spacing:.06em;max-width:40vw;font-size:15px;line-height:1.2}.hud-clock-sub{font-family:var(--mono);color:var(--ash);text-shadow:0 2px 4px #000;letter-spacing:.04em;margin-top:4px;font-size:15px;font-weight:700}.hud-sub{color:var(--ash);letter-spacing:.14em;text-transform:uppercase;margin-top:4px;font-size:12px}.hud-right{text-align:right;margin-left:auto}.hud-score{font-family:var(--mono);color:var(--bone);text-shadow:0 2px 4px #000;font-size:22px;font-weight:700}.hud-center{text-align:center;width:min(340px,42vw);position:absolute;top:12px;left:50%;transform:translate(-50%)}.light-meter{border:1px solid var(--line);background:#0000008c;border-radius:999px;height:10px;overflow:hidden;box-shadow:0 2px 10px #0009}.light-fill{background:linear-gradient(90deg, #b3541e, var(--amber), var(--amber-hi));border-radius:999px;width:100%;height:100%;transition:width .18s ease-out;box-shadow:0 0 12px #ffaa50bf}.light-label{letter-spacing:.28em;text-transform:uppercase;color:var(--ash);margin-top:5px;font-size:10px}.xp-meter{background:#ffffff14;border-radius:999px;height:4px;margin-top:6px;overflow:hidden}.xp-fill{opacity:.75;background:#cfd6c0;height:100%;transition:width .2s ease-out}.hud-level{font-family:var(--mono);color:var(--bone);margin-top:4px;font-size:12px}.hud-bottom{align-items:flex-end;display:flex;position:absolute;bottom:14px;left:14px;right:14px}.btn-ghost{pointer-events:auto;background:var(--panel);border:1px solid var(--line);color:var(--ash);letter-spacing:.1em;text-transform:uppercase;border-radius:10px;padding:8px 12px;font-size:12px;transition:color .15s,border-color .15s}.btn-ghost:hover{color:var(--amber-hi);border-color:var(--amber)}.hud-bottom .stack{gap:8px;display:flex}.ult-btn{pointer-events:auto;border:2px solid var(--line);width:74px;height:74px;color:var(--amber-hi);text-transform:uppercase;background:radial-gradient(circle at 50% 42%,#ffc86e3d,#140c06e6 70%);border-radius:50%;flex-direction:column;justify-content:center;align-items:center;gap:3px;margin-left:auto;padding:0;display:flex;position:relative;box-shadow:0 4px 18px #0009}.ult-btn .glyph{filter:drop-shadow(0 0 6px #ffbe5acc);font-size:22px;line-height:1}.ult-btn .ult-label{letter-spacing:.08em;max-width:80%;font-size:8.5px;line-height:1;overflow:hidden}.ult-btn.ready{border-color:var(--amber);animation:1.6s infinite ult-pulse}.ult-btn:disabled{opacity:.75;cursor:default}.ult-ring{background:conic-gradient(var(--amber) calc(var(--p) * 1turn), transparent 0);pointer-events:none;border-radius:50%;position:absolute;inset:-2px;-webkit-mask:radial-gradient(farthest-side,#0000 calc(100% - 4px),#000 calc(100% - 3px));mask:radial-gradient(farthest-side,#0000 calc(100% - 4px),#000 calc(100% - 3px))}@keyframes ult-pulse{0%,to{box-shadow:0 0 #ffb45e59}50%{box-shadow:0 0 22px 6px #ffb45e2e}}.joystick{pointer-events:none;z-index:12;background:#ffb45e0d;border:1.5px solid #ffbe6e47;border-radius:50%;width:110px;height:110px;margin:-55px 0 0 -55px;display:none;position:absolute}.joystick .nub{background:radial-gradient(circle at 40% 35%,#ffd696d9,#c86e2880);border-radius:50%;width:42px;height:42px;margin:-21px 0 0 -21px;position:absolute;top:50%;left:50%;box-shadow:0 0 14px #ffaa5080}.overlay{z-index:20;text-align:center;background:radial-gradient(at 50% 45%,#180e088c,#050302f0 78%);flex-direction:column;justify-content:center;align-items:center;padding:24px;animation:.4s ease-out overlay-in;display:flex;position:absolute;inset:0}@keyframes overlay-in{0%{opacity:0}to{opacity:1}}.title{letter-spacing:.3em;color:var(--amber-hi);text-shadow:0 0 30px #ffaa468c,0 0 90px #ff78284d;margin:0 0 4px .3em;font-size:clamp(56px,14vw,118px);font-weight:400}.subtitle{letter-spacing:.42em;text-transform:uppercase;color:var(--ash);margin:0 0 30px .42em;font-size:clamp(13px,2.6vw,17px)}.tagline{max-width:400px;color:var(--bone);opacity:.85;margin:0 0 32px;font-size:14.5px;line-height:1.65}.tagline em{color:var(--amber);font-style:normal}.btn-primary{pointer-events:auto;color:#fff3dd;font-family:var(--serif);letter-spacing:.24em;text-transform:uppercase;background:linear-gradient(#d97a2b,#a34e14);border:1px solid #ffb45e;border-radius:999px;padding:15px 52px 15px calc(52px + .24em);font-size:19px;transition:transform .14s,box-shadow .14s;box-shadow:0 0 26px #ff963259,inset 0 1px #ffe6be66}.btn-primary:hover{transform:scale(1.045);box-shadow:0 0 40px #ffa03c8c,inset 0 1px #ffe6be66}.btn-primary:active{transform:scale(.97)}.controls-hint{color:var(--ash);letter-spacing:.08em;margin-top:26px;font-size:12px;line-height:2}.controls-hint kbd{font-family:var(--mono);color:var(--bone);border:1px solid #d8ccb24d;border-radius:5px;margin:0 2px;padding:1.5px 7px;font-size:11px}.levelup h2{letter-spacing:.3em;color:var(--amber-hi);text-transform:uppercase;margin:0 0 6px .3em;font-size:26px;font-weight:400}.levelup .lvl-sub{color:var(--ash);letter-spacing:.2em;text-transform:uppercase;margin-bottom:28px;font-size:12px}.cards{flex-wrap:wrap;justify-content:center;gap:14px;max-width:720px;display:flex}.card{pointer-events:auto;border:1px solid var(--line);width:200px;color:var(--bone);text-align:center;background:linear-gradient(#22160ef5,#100a07f5);border-radius:14px;padding:22px 18px 18px;transition:transform .16s,border-color .16s,box-shadow .16s;animation:.35s ease-out backwards card-in}.card:nth-child(2){animation-delay:70ms}.card:nth-child(3){animation-delay:.14s}@keyframes card-in{0%{opacity:0;transform:translateY(18px)scale(.96)}to{opacity:1;transform:none}}.card:hover{border-color:var(--amber);transform:translateY(-5px)scale(1.03);box-shadow:0 10px 34px #ff963c2e}.card .glyph{filter:drop-shadow(0 0 8px #ffb45a99);margin-bottom:10px;font-size:30px;display:block}.card .name{color:var(--amber-hi);letter-spacing:.06em;margin-bottom:7px;font-size:16px}.card .desc{color:var(--ash);font-size:12.5px;line-height:1.5}.card .tier{font-family:var(--mono);color:var(--ash);letter-spacing:.2em;margin-top:10px;font-size:10px}.result-stats{flex-wrap:wrap;justify-content:center;gap:26px;margin:8px 0 30px;display:flex}.rstat{min-width:84px}.rstat .v{font-family:var(--mono);color:var(--amber-hi);font-size:30px;font-weight:700}.rstat .k{letter-spacing:.24em;text-transform:uppercase;color:var(--ash);margin-top:3px;font-size:10px}.overlay .minor{pointer-events:auto;color:var(--ash);letter-spacing:.14em;text-transform:uppercase;text-underline-offset:4px;background:0 0;border:none;margin-top:20px;font-size:12px;text-decoration:underline}.overlay .minor:hover{color:var(--amber-hi)}.codex{text-align:left;background:var(--panel);border:1px solid var(--line);max-width:460px;color:var(--bone);border-radius:16px;padding:26px 28px;font-size:14px;line-height:1.7}.codex h3{color:var(--amber-hi);letter-spacing:.16em;text-transform:uppercase;margin:0 0 10px;font-size:15px;font-weight:400}.codex p{opacity:.9;margin:0 0 12px}.codex .k{color:var(--amber)}.result-actions{flex-wrap:wrap;justify-content:center;gap:12px;display:flex}.btn-next{background:linear-gradient(#8a5a20,#5f3a10)}.level-select{flex-wrap:wrap;justify-content:center;gap:12px;margin-bottom:28px;display:flex}.level-btn{pointer-events:auto;border:1px solid var(--line);width:172px;color:var(--bone);background:linear-gradient(#1e140deb,#0e0906eb);border-radius:12px;flex-direction:column;align-items:center;gap:4px;padding:14px 12px 11px;transition:transform .15s,border-color .15s,box-shadow .15s;display:flex}.level-btn:hover{border-color:var(--amber);transform:translateY(-3px)}.level-btn.active{border-color:var(--amber);box-shadow:0 0 22px #ffa03c40}.level-btn .lname{color:var(--amber-hi);letter-spacing:.08em;font-size:15px}.level-btn .ldesc{color:var(--ash);font-size:10.5px;line-height:1.4}.level-btn .lbest{font-family:var(--mono);color:var(--ash);letter-spacing:.12em;margin-top:2px;font-size:10px}.level-btn.active .lbest{color:var(--amber)}.hint-toast{z-index:14;background:var(--panel);border:1px solid var(--line);color:var(--amber-hi);letter-spacing:.05em;text-shadow:0 1px 3px #000;pointer-events:none;white-space:nowrap;text-overflow:ellipsis;border-radius:999px;max-width:92vw;padding:9px 20px;font-size:13.5px;position:absolute;bottom:118px;left:50%;overflow:hidden;transform:translate(-50%)}.hint-toast.hint-in{animation:.35s ease-out hint-in}@keyframes hint-in{0%{opacity:0;transform:translate(-50%)translateY(10px)}to{opacity:1;transform:translate(-50%)translateY(0)}}.paused-badge{z-index:15;letter-spacing:.5em;color:var(--bone);text-transform:uppercase;text-shadow:0 2px 10px #000;pointer-events:none;font-size:22px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.hidden{display:none!important}@media (width<=640px){.hud-objective{max-width:30vw;font-size:12px}.hud-clock-sub{font-size:12px}.hud-score{font-size:17px}.hud-center{width:42vw;top:14px}.light-label{letter-spacing:.18em}.ult-btn{width:58px;height:58px}.ult-btn .glyph{font-size:24px}.ult-btn .ult-label{display:none}.hud-bottom{bottom:10px;left:10px;right:10px}.cards{gap:10px}.card{width:min(200px,44vw);padding:16px 12px 13px}.hud-sub,.controls-hint .desktop-only{display:none}.hint-toast{font-size:12px;bottom:96px}.level-select{gap:8px}.level-btn{width:min(172px,44vw);padding:10px 8px 8px}.tagline{margin-bottom:20px;font-size:13px}}@media (height<=480px){.hud-top{top:8px}.hud-bottom{bottom:8px}.ult-btn{width:54px;height:54px}.ult-btn .glyph{font-size:22px}.ult-btn .ult-label{display:none}.title{font-size:clamp(36px,9vh,64px)}.subtitle{margin-bottom:12px}.tagline{display:none}.level-select{margin-bottom:14px}.hint-toast{bottom:78px}}
