:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#07070c;--ink:#ece6da;--ink-quiet:#9a9386;--gold:#d8bf8a;--gold-bright:#f3dfb0;--player:#e8d7a8;--danger:#d04a52;--trama:#b49cff;--panel:#0e0c14b8;--panel-edge:#d8bf8a38;--display:"Cinzel", "Trajan Pro", "Times New Roman", serif;--safe-left:max(16px, env(safe-area-inset-left));--safe-right:max(16px, env(safe-area-inset-right));--safe-top:max(12px, env(safe-area-inset-top));--safe-bottom:max(12px, env(safe-area-inset-bottom))}*{box-sizing:border-box;touch-action:none}html,body{background:var(--bg);height:100%;color:var(--ink);-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;margin:0;font-family:system-ui,-apple-system,Segoe UI,sans-serif;overflow:hidden}#game{width:100%;height:100%;display:block;position:fixed;inset:0}#ui{pointer-events:none;position:fixed;inset:0}#ui [hidden]{display:none}#ui button{pointer-events:auto;font:inherit;color:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent}#ui .primary,#ui .secondary{font-family:var(--display);letter-spacing:.08em;text-transform:uppercase;border-radius:999px;padding:12px 28px;font-size:15px;font-weight:700}#ui .primary{border:1px solid var(--gold-bright);color:#1b1408;background:linear-gradient(#e9cf95,#a9864b);box-shadow:0 0 24px #e9cf9559,inset 0 1px #ffffff80}#ui .secondary{border:1px solid var(--panel-edge);background:var(--panel)}.primary:active,.secondary:active{transform:scale(.97)}.menu{pointer-events:auto;padding:var(--safe-top) var(--safe-right) var(--safe-bottom) var(--safe-left);justify-content:space-between;align-items:center;gap:24px;display:flex;position:absolute;inset:0}.menu-veil{pointer-events:none;background:radial-gradient(at 25%,#07070c1a,#07070cbf 70%),linear-gradient(90deg,#07070c8c,#0000 45%,#07070cb3);position:absolute;inset:0}.menu-title{max-width:46%;padding-left:2vw;position:relative}.menu-kicker{letter-spacing:.35em;text-transform:uppercase;color:var(--ink-quiet);margin:0 0 6px;font-size:12px}.menu-title h1{font-family:var(--display);letter-spacing:.04em;color:var(--gold-bright);text-shadow:0 0 18px #f3dfb073,0 0 60px #b49cff59;margin:0;font-size:clamp(34px,7vw,72px);font-weight:700;line-height:1}.menu-tagline{color:var(--ink);opacity:.8;margin:14px 0 0;font-size:14px}.menu-panel{border:1px solid var(--panel-edge);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:linear-gradient(#14111cdb,#0a090ee6);border-radius:18px;flex-direction:column;gap:8px;width:min(440px,52vw);max-height:100%;padding:14px 16px 16px;display:flex;position:relative;overflow:auto;box-shadow:0 20px 60px #0009}.menu-panel h2{font-family:var(--display);letter-spacing:.25em;text-transform:uppercase;color:var(--gold);margin:4px 0 0;font-size:12px}.menu-modes,.menu-rules{grid-template-columns:repeat(3,1fr);gap:6px;display:grid}.menu-rules{grid-template-columns:1fr 1fr}.menu-choice{text-align:left;background:#ffffff0a;border:1px solid #ffffff14;border-radius:12px;flex-direction:column;align-items:flex-start;gap:2px;padding:7px 10px;display:flex}.menu-choice strong{font-size:13.5px;font-weight:600}.menu-choice span{color:var(--ink-quiet);font-size:11px}.menu-choice.selected{border-color:var(--gold);background:linear-gradient(#d8bf8a33,#d8bf8a0f);box-shadow:0 0 16px #d8bf8a2e}.menu-play{margin-top:10px}.hud{position:absolute;inset:0}.hud-player{top:var(--safe-top);left:var(--safe-left);width:min(30vw,240px);position:absolute}.hud-name{font-family:var(--display);letter-spacing:.08em;color:var(--player);text-shadow:0 1px 3px #000;margin-bottom:4px;font-size:14px;font-weight:700}.hud-lives{letter-spacing:.1em;color:var(--gold);margin-left:6px;font-size:11px}.hud-bar{background:#0000008c;border:1px solid #ffffff1f;border-radius:6px;height:11px;overflow:hidden}.hud-bar.small{flex:1;height:6px}.hud-fill{background:linear-gradient(90deg, #b99f68, var(--player));width:100%;height:100%;transition:width .14s linear;box-shadow:0 0 10px #e8d7a880}.hud-fill.low{background:linear-gradient(90deg, #8c2a30, var(--danger));box-shadow:0 0 12px #d04a52b3}.hud-allies{flex-direction:column;gap:4px;margin-top:8px;display:flex}.hud-ally{color:var(--team);align-items:center;gap:6px;font-size:11px;display:flex}.hud-ally .hud-fill{background:var(--team);box-shadow:none}.hud-ally.down{opacity:.5}.hud-ally-name{text-overflow:ellipsis;white-space:nowrap;width:52px;overflow:hidden}.hud-round{top:var(--safe-top);border:1px solid var(--panel-edge);background:linear-gradient(#0a090ebf,#0a090e59);border-radius:14px;flex-direction:column;align-items:center;padding:4px 16px 6px;display:flex;position:absolute;left:50%;transform:translate(-50%)}.hud-round-label,.hud-phase{letter-spacing:.22em;text-transform:uppercase;color:var(--ink-quiet);font-size:10px}.hud-phase{color:var(--trama)}.hud-clock{font-family:var(--display);color:var(--ink);font-variant-numeric:tabular-nums;font-size:22px;font-weight:700;line-height:1.1}.hud-clock.urgent{color:var(--danger);text-shadow:0 0 12px #d04a52b3}.hud-score{gap:10px;margin-top:3px;display:flex}.hud-score-team{gap:3px;display:flex}.hud-score-team .pip{border:1px solid var(--team);opacity:.7;width:8px;height:8px;transform:rotate(45deg)}.hud-score-team .pip.won{background:var(--team);box-shadow:0 0 8px var(--team);opacity:1}.hud-banner{text-align:center;white-space:nowrap;position:absolute;top:26%;left:50%;transform:translate(-50%)}.hud-banner.show{animation:2.4s both banner-in}@keyframes banner-in{0%{opacity:0;letter-spacing:.4em}15%{opacity:1;letter-spacing:.12em}80%{opacity:1}to{opacity:0}}.hud-banner-title{font-family:var(--display);letter-spacing:.12em;color:var(--gold-bright);text-shadow:0 0 20px #f3dfb080,0 2px 6px #000;font-size:clamp(28px,5vw,48px);font-weight:700}.hud-banner-subtitle{letter-spacing:.1em;color:var(--ink);text-shadow:0 1px 4px #000;margin-top:4px;font-size:13px}.hud-spectre{left:50%;bottom:calc(var(--safe-bottom) + 6px);color:#c9d3ff;white-space:nowrap;background:#1e224699;border:1px solid #a9b8ff59;border-radius:999px;margin:0;padding:6px 14px;font-size:12px;position:absolute;transform:translate(-50%)}.hud-result{pointer-events:auto;background:radial-gradient(#07070c8c,#07070ceb);place-items:center;animation:.6s both fade-in;display:grid;position:absolute;inset:0}@keyframes fade-in{0%{opacity:0}}.hud-result-card{text-align:center}.hud-result h2{font-family:var(--display);letter-spacing:.1em;color:var(--gold-bright);text-shadow:0 0 30px #f3dfb080,0 0 80px #b49cff59;margin:0;font-size:clamp(40px,8vw,80px)}.hud-result-score{color:var(--ink-quiet);letter-spacing:.08em;margin:8px 0 22px}.hud-result-actions{justify-content:center;gap:12px;display:flex}.world-labels{position:absolute;inset:0;overflow:hidden}.world-label{will-change:transform;flex-direction:column;align-items:center;gap:2px;display:flex;position:absolute;top:0;left:0}.world-label-name{color:var(--team);text-shadow:0 1px 2px #000,0 0 6px #000;white-space:nowrap;font-size:11px;font-weight:600}.world-label-bar{background:#0009;border:1px solid #ffffff26;border-radius:3px;width:54px;height:5px;overflow:hidden}.world-label-fill{background:var(--team);height:100%;box-shadow:0 0 6px var(--team)}.world-label.fallen .world-label-bar{display:none}.world-label.fallen .world-label-name{opacity:.6;font-style:italic}.edge-arrow{border-top:9px solid #0000;border-bottom:9px solid #0000;border-left:16px solid var(--team);width:0;height:0;filter:drop-shadow(0 0 6px var(--team));opacity:.85;position:absolute;top:0;left:0}.controls{position:absolute;inset:0}.joystick-zone{pointer-events:auto;width:45%;height:75%;position:absolute;bottom:0;left:0}.joystick-base{left:calc(var(--safe-left) + 80px);top:calc(100% - var(--safe-bottom) - 90px);opacity:.5;background:#ffffff0a;border:1px solid #ffffff26;border-radius:50%;width:112px;height:112px;margin:-56px 0 0 -56px;position:absolute}.joystick-base.active{opacity:1}.joystick-knob{background:#e8e4dc59;border-radius:50%;width:48px;height:48px;margin:-24px 0 0 -24px;position:absolute;top:50%;left:50%}.weave-pad{--cast-size:80px;--cast-x:calc(100% - var(--safe-right) - 84px);--cast-y:calc(100% - var(--safe-bottom) - 72px);--arc:124px;width:320px;height:300px;position:absolute;bottom:0;right:0}.element-button,.cast-button,.cancel-button{touch-action:none;border-radius:50%;position:absolute}.element-button{--size:56px;left:var(--cast-x);top:var(--cast-y);width:var(--size);height:var(--size);margin:calc(var(--size) / -2) 0 0 calc(var(--size) / -2);transform:rotate(calc(170deg + var(--index) * 30deg)) translate(var(--arc)) rotate(calc(-170deg - var(--index) * 30deg));border:2px solid var(--color);background:conic-gradient(#000000b3 calc(var(--fatigue,0) * 360deg), transparent 0), color-mix(in srgb, var(--color) 28%, #0a0a0ecc);place-items:center;padding:0;display:grid}.element-button.tired{border-color:color-mix(in srgb, var(--color) 40%, transparent)}.element-button:active{filter:brightness(1.4)}.element-name{text-shadow:0 1px 2px #000;font-size:10.5px;font-weight:600}.cast-button{left:var(--cast-x);top:var(--cast-y);width:var(--cast-size);height:var(--cast-size);margin:calc(var(--cast-size) / -2) 0 0 calc(var(--cast-size) / -2);background:var(--panel);border:2px solid #e8e4dc80;font-size:30px}.cast-button:active{background:#e8e4dc33}.cancel-button{left:calc(var(--cast-x) - 76px);top:calc(var(--cast-y) + 28px);background:var(--panel);border:1px solid #fff3;width:38px;height:38px;font-size:14px}.weave-slots{left:var(--cast-x);top:calc(var(--cast-y) + 52px);gap:6px;display:flex;position:absolute;transform:translate(-50%)}.weave-slot{border:1px solid #ffffff4d;border-radius:50%;width:12px;height:12px}.weave-slot[data-element=brasa]{background:var(--color-brasa)}.weave-slot[data-element=tormenta]{background:var(--color-tormenta)}.weave-slot[data-element=marea]{background:var(--color-marea)}.weave-slot[data-element=raiz]{background:var(--color-raiz)}.weave-slot[data-element=umbra]{background:var(--color-umbra)}.weave-slot.channeling{box-shadow:0 0 8px}.element-button{box-shadow:0 0 14px color-mix(in srgb, var(--color) 45%, transparent), inset 0 0 12px color-mix(in srgb, var(--color) 35%, transparent)}.element-button.tired{box-shadow:none}.cast-button{background:conic-gradient(#000000b3 calc(var(--fatigue,0) * 360deg), transparent 0), radial-gradient(circle, #f3dfb02e, #0e0c14cc 70%);color:var(--gold-bright);border-color:#f3dfb08c;box-shadow:0 0 22px #f3dfb040}.joystick-base{background:radial-gradient(circle,#d8bf8a14,#00000040);border-color:#d8bf8a4d}.joystick-knob{background:radial-gradient(circle at 35% 35%,#f3dfb099,#d8bf8a40);box-shadow:0 0 14px #d8bf8a59}#ui .weave-pad.spectre .element-button,#ui .weave-pad.spectre .cancel-button,#ui .weave-pad.spectre .weave-slots{opacity:.15;pointer-events:none}.weave-pad.spectre .cast-button{color:#c9d3ff;border-color:#a9b8ffb3;box-shadow:0 0 22px #a9b8ff66}.hud-essence{flex-wrap:wrap;gap:4px;margin-top:4px;display:flex}.hud-essence:empty{display:none}.hud-essence-chip{letter-spacing:.06em;color:var(--essence);background:color-mix(in srgb, var(--essence) 14%, #0a090eb3);border:1px solid color-mix(in srgb, var(--essence) 45%, transparent);box-shadow:0 0 8px color-mix(in srgb, var(--essence) 35%, transparent);border-radius:999px;padding:1px 7px;font-size:10px;animation:.4s both chip-in}@keyframes chip-in{0%{opacity:0;transform:scale(1.4)}}.hud-omen{top:var(--safe-top);right:var(--safe-right);text-align:right;max-width:28vw;font-family:var(--display);letter-spacing:.18em;text-transform:uppercase;color:var(--gold);opacity:.8;text-shadow:0 1px 3px #000;font-size:10px;position:absolute}.world-label.beast .world-label-name{letter-spacing:.04em;font-size:10px;font-weight:500}.world-label.beast .world-label-bar{width:40px;height:4px}.world-label.beast{transition:opacity .3s}.world-label.beast.calm{opacity:0}.glyph-picker{padding:var(--safe-top) var(--safe-right) var(--safe-bottom) var(--safe-left);pointer-events:auto;background:radial-gradient(#0c0a16b3,#07070cf2);flex-direction:column;justify-content:center;align-items:center;animation:.5s both fade-in;display:flex;position:absolute;inset:0}.glyph-picker h2{font-family:var(--display);letter-spacing:.14em;color:var(--gold-bright);text-shadow:0 0 24px #f3dfb073;margin:0;font-size:clamp(22px,4.5vw,34px)}.glyph-subtitle{letter-spacing:.08em;color:var(--ink-quiet);margin:4px 0 14px;font-size:12px}.glyph-cards{flex-wrap:wrap;justify-content:center;gap:12px;max-width:100%;display:flex}#ui .glyph-card{width:150px;min-height:170px;font:inherit;color:var(--ink);text-align:center;cursor:pointer;background:radial-gradient(circle at 50% 22%, color-mix(in srgb, var(--glyph) 28%, transparent), transparent 60%), linear-gradient(180deg, #1a1624f2, #0c0a12f2);border:1px solid color-mix(in srgb, var(--glyph) 55%, transparent);box-shadow:0 0 0 1px #00000080 inset, 0 8px 24px #00000080, 0 0 18px color-mix(in srgb, var(--glyph) 25%, transparent);border-radius:16px;flex-direction:column;align-items:center;gap:6px;padding:16px 12px 14px;transition:transform .15s,box-shadow .15s;animation:.5s cubic-bezier(.2,.9,.3,1.2) both card-in;display:flex;position:relative}#ui .glyph-card:nth-child(2){animation-delay:80ms}#ui .glyph-card:nth-child(3){animation-delay:.16s}#ui .glyph-card:nth-child(4){animation-delay:.24s}#ui .glyph-card:active{box-shadow:0 0 0 1px #00000080 inset, 0 0 32px color-mix(in srgb, var(--glyph) 60%, transparent);transform:scale(.96)}@keyframes card-in{0%{opacity:0;transform:translateY(24px)scale(.92)}}.glyph-sigil{width:46px;height:46px;color:var(--glyph);border:1px solid color-mix(in srgb, var(--glyph) 60%, transparent);text-shadow:0 0 12px var(--glyph);box-shadow:0 0 16px color-mix(in srgb, var(--glyph) 35%, transparent);background:#00000059;border-radius:50%;place-items:center;font-size:24px;line-height:1;display:grid}.glyph-name{font-family:var(--display);letter-spacing:.05em;color:var(--gold-bright);font-size:14px}.glyph-text{color:var(--ink-quiet);font-size:12px;line-height:1.35}.glyph-owned{letter-spacing:.06em;color:var(--gold);opacity:.8;margin:14px 0 0;font-size:11px}.glyph-owned:empty{display:none}@media (max-height:430px){.glyph-subtitle{margin-bottom:8px}#ui .glyph-card{width:140px;min-height:0;padding:10px 10px 12px}.glyph-sigil{width:36px;height:36px;font-size:19px}}
