:root{--paper:#f2eadf;--ink:#18231f;--muted:#5e6d66;--track:#2b6a57;--candidate:#7df;--overlap:#8d4cc2;--mana:#2f6bff;--mana-glow:#5193ff8c;--charge:#b81f2f;--charge-glow:#ff575785;--surface-shadow:0 26px 80px #18231f40;--display:"Avenir Next", "Trebuchet MS", sans-serif;font-family:var(--display);color:var(--ink);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:radial-gradient(circle at top,#fff8ecf0,#0000 35%),linear-gradient(160deg,#efe4d2 0%,#d8c0a7 50%,#c7b093 100%)}*{box-sizing:border-box}html,body{min-height:100%}body{touch-action:none;overscroll-behavior:none;min-width:320px;margin:0;overflow:hidden}button{font:inherit}.app-shell{height:100svh;position:relative;overflow:hidden}.restart-button,.dice-picker-slot .dice-picker .dice button,.dice-picker-slot .dice-picker .action button,.cell{cursor:pointer;border:0;transition:transform .18s,box-shadow .18s,background-color .18s,opacity .18s}.restart-button{top:max(16px, env(safe-area-inset-top));right:max(16px, env(safe-area-inset-right));z-index:5;color:var(--ink);box-shadow:var(--surface-shadow);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#fff8efe0;border-radius:999px;padding:12px 16px;position:fixed}.restart-button:hover,.restart-button:focus-visible,.dice-picker-slot .dice-picker .dice button:hover,.dice-picker-slot .dice-picker .dice button:focus-visible,.dice-picker-slot .dice-picker .action button:hover,.dice-picker-slot .dice-picker .action button:focus-visible,.cell.is-confirmable:hover,.cell.is-confirmable:focus-visible{transform:translateY(-1px)scale(1.01)}.board-stage{grid-template-columns:minmax(110px,180px) auto minmax(110px,180px);justify-content:center;align-items:center;gap:clamp(16px,2.4vw,32px);height:100%;padding:clamp(12px,2vw,24px);display:grid}.board-column,.resource-slot{place-items:center;display:grid}.resource-vial{justify-items:center;gap:12px;width:min(16vw,160px);display:grid}.resource-vial__glass{aspect-ratio:.7;background:linear-gradient(#fffbf43d,#fffbf40a);border:4px solid #f6e9d5c7;border-radius:44% 44% 38% 38%/28% 28% 62% 62%;width:100%;position:relative;overflow:hidden;box-shadow:inset 0 0 0 2px #ffffff38,inset 0 -20px 36px #0000003d,0 20px 38px #1e120c59}.resource-vial__glass:before{content:"";pointer-events:none;background:linear-gradient(#ffffff2e,#ffffff08);border-radius:42% 42% 34% 34%/24% 24% 58% 58%;position:absolute;inset:8px}.resource-vial__fill{--resource-level:0;height:calc(var(--resource-level) * 100%);transition:height .28s;position:absolute;inset:auto 0 0}.resource-vial__shine{filter:blur(.2px);background:linear-gradient(#ffffff9e,#ffffff14);border-radius:999px;width:24%;position:absolute;inset:6% auto 10% 12%}.resource-vial__label,.resource-vial__value{color:#f9f0df;text-shadow:0 2px 12px #110a066b}.resource-vial__label{letter-spacing:.18em;text-transform:uppercase;font-size:.9rem;font-weight:900}.resource-vial__value{font-size:1rem;font-weight:800}.resource-vial--mana .resource-vial__fill{box-shadow:inset 0 12px 20px #ffffff2e, 0 0 28px var(--mana-glow);background:radial-gradient(circle at 50% 16%,#dbf0ffc7,#0000 28%),linear-gradient(#68bafff5,#1f54ffeb)}.resource-vial--charge .resource-vial__fill{box-shadow:inset 0 12px 20px #ffffff24, 0 0 28px var(--charge-glow);background:radial-gradient(circle at 50% 16%,#ffdaccb8,#0000 28%),linear-gradient(#ff7f68f5,#a81022f0)}.resource-vial--mana.is-empty .resource-vial__glass{box-shadow:inset 0 0 0 2px #ffffff24,inset 0 -20px 36px #0000004d,0 16px 30px #1e120c3d}.resource-vial--charge.is-full .resource-vial__glass{box-shadow:inset 0 0 0 2px #ffffff42,inset 0 -20px 36px #0000003d,0 0 24px #ff808047,0 20px 38px #1e120c59}.resource-vial.is-tutorial-highlighted{transform:scale(1.04)}.resource-vial.is-tutorial-highlighted .resource-vial__glass{animation:1s ease-in-out infinite tutorialVialPulse}.resource-vial--mana.is-tutorial-highlighted .resource-vial__glass{box-shadow:inset 0 0 0 2px #ffffff47, inset 0 -20px 36px #0000003d, 0 0 18px #a0d3ff94, 0 0 42px var(--mana-glow), 0 20px 38px #1e120c59}.resource-vial--charge.is-tutorial-highlighted .resource-vial__glass{box-shadow:inset 0 0 0 2px #ffffff47, inset 0 -20px 36px #0000003d, 0 0 18px #ffc6c685, 0 0 42px var(--charge-glow), 0 20px 38px #1e120c59}.board-frame{width:min(96vw,96svh);height:min(96vw,96svh);box-shadow:var(--surface-shadow);background:radial-gradient(circle at top,#fff9f0cc,#0000 34%),linear-gradient(#704a2bf5,#371c0dfa);border-radius:34px;position:relative;overflow:hidden}.board-grid,.dice-box{border-radius:26px;position:absolute;inset:clamp(10px,1.75vmin,18px)}.board-grid{z-index:1;background:linear-gradient(#fffaf11f,#ebdfd014),linear-gradient(135deg,#ffffff1f,#0000 55%);grid-template-columns:repeat(8,minmax(0,1fr));gap:8px;padding:10px;display:grid}.cell{aspect-ratio:1;z-index:1;background:#fff5e9d6;border:1px solid #18231f17;border-radius:20px;place-items:center;font-size:1.2rem;display:grid;position:relative;overflow:hidden}.cell.is-occupied{background:linear-gradient(#2b6a57f5,#13382df5);border-color:#0f3a2db3}.cell.is-wall{background:linear-gradient(#6c8a6b,#4a664a);border-color:#384d38;box-shadow:inset 0 2px 8px #0000004d}.cell.is-exit{background:linear-gradient(#31384feb,#111421f5);border-color:#c6e3ff38}.cell.is-exit-open{background:linear-gradient(#1e5943f5,#09251dfa);border-color:#76ffd280;box-shadow:0 0 0 2px #9effdf2e,inset 0 0 28px #6fffc829}.cell.is-exit-locked{box-shadow:inset 0 0 20px #475e842e}.exit-marker{--exit-progress-fill:0deg;background:conic-gradient(from -90deg, #71ffcdeb 0deg var(--exit-progress-fill), #ffffff17 var(--exit-progress-fill) 360deg);z-index:0;border-radius:17px;place-items:center;display:grid;position:absolute;inset:3px}.exit-marker:before{content:"";background:linear-gradient(#0b121ff5,#162331f0);border-radius:14px;position:absolute;inset:5px}.exit-core{z-index:1;text-align:center;color:#f1fbff;background:linear-gradient(#182735eb,#0b101cf5);border-radius:13px;align-content:center;place-items:center;gap:2px;width:calc(100% - 16px);height:calc(100% - 16px);padding:6px 4px;display:grid;position:relative;box-shadow:inset 0 0 0 1px #aee3ff2e}.cell.is-exit-open .exit-core{color:#ddfff1;background:linear-gradient(#114735eb,#081914f5);box-shadow:inset 0 0 0 1px #8affde3d}.exit-name,.exit-progress{z-index:1;line-height:1;display:block;position:relative}.exit-name{letter-spacing:.18em;text-transform:uppercase;font-size:clamp(.38rem,1.3vmin,.72rem)}.exit-progress{font-size:clamp(.52rem,2vmin,.92rem);font-weight:800}.cell.is-exit-burst{box-shadow:0 0 0 3px #c6ffe94d,0 0 40px #6fffcaf2,0 0 90px #6fffcaad,inset 0 0 34px #aaffdf4d}.cell.is-exit-burst .exit-marker{animation:2s ease-out forwards exitBurst}.cell.is-exit-burst .exit-core{animation:2s ease-out forwards exitGlow}.cell.is-drafted:after,.cell.is-confirmable:after{content:"";pointer-events:none;border-radius:14px;position:absolute;inset:8px}.cell.is-drafted:after{background:linear-gradient(#8cebffb8,#53d6ff66);animation:.54s ease-in-out infinite trailPulse;inset:4px;box-shadow:0 0 30px #86e7ff,0 0 54px #48cdff8f}.cell.is-overlap-destination{background:linear-gradient(#e6d4fff5,#9b65dbf0);box-shadow:0 0 0 4px #8d4cc238}.cell.is-draft-tail{box-shadow:0 0 0 3px #e0faff,0 0 40px #7ee5ff,0 0 66px #4ccdff94}.cell.is-draft-tail:after{background:linear-gradient(#bef7ffe6,#61d9ff80);animation:.4s ease-in-out infinite tailPulse;inset:2px;box-shadow:0 0 38px #c2f8ff,0 0 66px #51d4ff9e}.cell.is-confirmable{z-index:3;animation:.56s cubic-bezier(.2,.9,.3,1) infinite confirmCellPulse;box-shadow:0 0 0 3px #fff7dbfa,0 0 26px #ffd675e0,0 0 56px #ffb039b3}.cell.is-confirmable:after{background:radial-gradient(circle,#fff3c5d1 0%,#ffd67575 55%,#ffb74d14 100%);animation:.56s cubic-bezier(.2,.9,.3,1) infinite confirmPulse;inset:3px;box-shadow:0 0 34px #ffd978f2,0 0 72px #ffa8329e}.confirm-marker{z-index:4;color:#6d3600;letter-spacing:.16em;text-transform:uppercase;text-shadow:0 1px #ffffff80;background:linear-gradient(#fffceafa,#ffd66ef5);border-radius:999px;place-items:center;min-width:58%;padding:.22em .48em;font-size:clamp(.62rem,2.1vmin,1rem);font-weight:900;animation:.56s cubic-bezier(.2,.9,.3,1) infinite confirmGoPulse;display:inline-grid;position:relative;box-shadow:0 0 0 2px #fff7dcf5,0 10px 28px #ffa43085}.cell.is-head{background:linear-gradient(#f7ffdb,#b8d65f);border-color:#3657126b}.head-core{z-index:2;background:#18231fc2;border-radius:999px;width:34%;height:34%;position:relative;box-shadow:0 0 0 4px #f7ffdb47}.head-arrow{z-index:2;font-size:1.4rem;position:relative}.dice-box{z-index:2;pointer-events:none;background:0 0}.dice-choice-layer{z-index:4;pointer-events:none;opacity:0;place-items:center;display:grid;position:absolute;inset:clamp(10px,1.75vmin,18px)}.dice-choice-layer.is-visible{opacity:1}.dice-choice-panel{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:linear-gradient(#080e0b2e,#080e0b0d);border-radius:22px;flex-direction:column;align-items:center;gap:14px;padding:16px 20px;display:flex}.dice-choice-title{color:#f7ffdb;letter-spacing:.16em;text-transform:uppercase;text-shadow:0 0 18px #b4ffe166;font-size:.9rem;font-weight:800}.dice-choice-list{flex-wrap:wrap;justify-content:center;gap:16px;display:flex}.dice-choice-button{color:#183123;pointer-events:auto;background:linear-gradient(#f7ffdbf5,#cde78ff5);border:0;border-radius:20px;justify-items:center;gap:6px;min-width:96px;padding:14px 16px 12px;animation:1.1s ease-in-out infinite diceChoiceGlow,1.3s ease-in-out infinite diceChoicePulse;display:grid;box-shadow:0 0 0 2px #e9fff480,0 14px 26px #08181247}.dice-choice-button.is-dimmed{opacity:.35;animation:none}.dice-choice-button.is-selected{z-index:1;animation:.8s cubic-bezier(.2,.9,.3,1) infinite diceChoiceSelected}.dice-choice-die{letter-spacing:.12em;text-transform:uppercase;font-size:.82rem;font-weight:800}.dice-choice-value{font-size:2rem;font-weight:900;line-height:1}.dice-choice-layer.is-fading{animation:.35s forwards diceFadeOut}.dice-picker-slot{z-index:3;width:min(62vw,420px);min-height:120px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.dice-picker-slot.is-hidden{opacity:0;pointer-events:none}.dice-picker-slot .dice-picker{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:linear-gradient(#1a644ff5,#0f3a2df0);border-radius:28px;padding:16px 18px;animation:1.4s ease-in-out infinite throwPulse;display:block;position:static;box-shadow:0 0 18px #68ffbe3d,0 18px 34px #0f3a2d4d}.dice-picker-slot .dice-picker.is-disabled{opacity:.72;animation:none}.dice-picker-slot .dice-picker form{flex-direction:column;gap:10px;display:flex}.dice-picker-slot .dice-picker .dice{justify-content:center;gap:12px;margin:0;display:flex}.dice-picker-slot .dice-picker .dice button{cursor:default;background:0 0;padding:0;position:relative}.dice-picker-slot .dice-picker .dice button:after{content:attr(data-count);color:#183123;background:linear-gradient(#f7ffdb,#cce68e);border-radius:999px;place-items:center;min-width:26px;height:26px;padding:0 7px;font-size:.82rem;font-weight:800;display:grid;position:absolute;bottom:-4px;right:-6px;box-shadow:0 6px 16px #0818123d}.dice-picker-slot .dice-picker .dice button.is-unavailable{display:none}.dice-picker-slot .dice-picker .die{filter:drop-shadow(0 10px 16px #00000047);width:clamp(72px,10vw,96px);height:clamp(72px,10vw,96px)}.dice-picker-slot .dice-picker .output{color:#f7ffdb;letter-spacing:.03em;text-align:center;visibility:hidden;background:#ffffff2e;border-radius:14px;min-height:0;margin:0;padding:10px 14px;font-size:1.15rem;font-weight:700}.dice-picker-slot .dice-picker .action{justify-content:center;gap:10px;display:flex}.dice-picker-slot .dice-picker .action button{color:#183123;letter-spacing:.08em;text-transform:uppercase;background:linear-gradient(#f7ffdb,#cce68e);border-radius:999px;min-width:120px;min-height:52px;padding:0 22px;font-size:1rem;font-weight:800;box-shadow:0 8px 22px #08181238}.dice-picker-slot .dice-picker .action button[type=reset]{color:#ffffffdb;box-shadow:none;background:0 0;border:2px solid #ffffff59}.dice-picker-slot .dice-picker .action button:disabled{cursor:wait;opacity:.6}.game-over-overlay{z-index:10;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);opacity:0;pointer-events:none;background:#000000bf;flex-direction:column;justify-content:center;align-items:center;transition:opacity .4s;display:flex;position:absolute;inset:0}.has-result-overlay .game-over-overlay{opacity:1;pointer-events:auto}.game-over-title{color:#ff4a4a;text-transform:uppercase;text-shadow:0 4px 24px #ff4a4a99;opacity:0;margin:0 0 24px;font-size:clamp(2.5rem,8vw,4rem);font-weight:700;transition:transform .6s cubic-bezier(.175,.885,.32,1.275),opacity .6s;transform:scale(.3)}.has-result-overlay .game-over-title{opacity:1;transform:scale(1)}.is-won .game-over-title{color:#7bffb9;text-shadow:0 4px 24px #7bffb9b3}.play-again-button{color:#5c3500;opacity:0;cursor:pointer;background:linear-gradient(#ffc107,#ff9800);border:0;border-radius:999px;padding:12px 32px;font-size:1.2rem;font-weight:700;transition:transform .4s .2s,opacity .4s .2s;transform:translateY(20px);box-shadow:0 8px 24px #ff980066}.has-result-overlay .play-again-button{opacity:1;transform:translateY(0)}.play-again-button:hover,.play-again-button:focus-visible{transform:scale(1.05)}.dice-box canvas{width:100%;height:100%}@keyframes throwPulse{0%,to{transform:translate(0%)scale(1);box-shadow:0 0 18px #68ffbe52,0 18px 34px #0f3a2d57}50%{transform:translate(0%)scale(1.035);box-shadow:0 0 28px #88ffca94,0 22px 40px #0f3a2d6b}}@keyframes diceChoiceGlow{0%,to{box-shadow:0 0 0 2px #e9fff480,0 0 18px #97ffd047,0 14px 26px #08181247}50%{box-shadow:0 0 0 3px #f7ffdbeb,0 0 34px #97ffd09e,0 18px 32px #08181257}}@keyframes diceChoicePulse{0%,to{transform:scale(.96)}50%{transform:scale(1.06)}}@keyframes diceChoiceSelected{0%,to{transform:scale(1.02);box-shadow:0 0 0 3px #fffbe9,0 0 36px #ffe08ab8,0 18px 30px #08181252}50%{transform:scale(1.22);box-shadow:0 0 0 6px #fffbe9,0 0 70px #ffe08afa,0 24px 40px #0818126b}}@keyframes trailPulse{0%,to{opacity:.82;transform:scale(.97)}50%{opacity:1;transform:scale(1.12)}}@keyframes tailPulse{0%,to{opacity:.9;transform:scale(.98)}50%{opacity:1;transform:scale(1.16)}}@keyframes confirmPulse{0%,to{opacity:.78;transform:scale(.92)}50%{opacity:1;transform:scale(1.24)}}@keyframes confirmCellPulse{0%,to{transform:scale(.98);box-shadow:0 0 0 3px #fff7dbfa,0 0 26px #ffd675e0,0 0 56px #ffb039b3}50%{transform:scale(1.08);box-shadow:0 0 0 5px #fffbea,0 0 48px #ffe08a,0 0 96px #ffa526e6}}@keyframes confirmGoPulse{0%,to{transform:scale(.9);box-shadow:0 0 0 2px #fff7dcf5,0 10px 28px #ffa43085}50%{transform:scale(1.16);box-shadow:0 0 0 4px #fffbe9,0 14px 36px #ffb03bb8}}@keyframes exitBurst{0%{filter:brightness(1.15);transform:scale(.84)}18%{filter:brightness(1.5);transform:scale(1.3)}36%{filter:brightness(1.2);transform:scale(.96)}54%{filter:brightness(1.45);transform:scale(1.22)}72%{filter:brightness(1.15);transform:scale(1)}to{filter:brightness();transform:scale(1)}}@keyframes exitGlow{0%{box-shadow:inset 0 0 0 1px #8affde3d}20%{box-shadow:inset 0 0 0 1px #dcfff394,0 0 34px #91ffd79e}55%{box-shadow:inset 0 0 0 1px #dcfff37a,0 0 24px #91ffd77a}to{box-shadow:inset 0 0 0 1px #8affde3d}}@keyframes tutorialVialPulse{0%,to{filter:brightness();transform:scale(1)}50%{filter:brightness(1.12);transform:scale(1.04)}}@media (width<=640px){.board-stage{grid-template-columns:1fr 1fr;grid-template-areas:"board board""mana charge";align-content:center;gap:14px;padding:0}.board-column{grid-area:board}.resource-slot--mana{grid-area:mana}.resource-slot--charge{grid-area:charge}.resource-vial{gap:8px;width:min(34vw,148px)}.board-frame{border-radius:0;width:min(100vw,100svh);height:min(100vw,100svh)}.board-grid,.dice-box,.dice-choice-layer{border-radius:22px;inset:8px}.board-grid{gap:6px;padding:8px}.cell{border-radius:16px}.dice-picker-slot{width:min(78vw,360px)}.dice-picker-slot .dice-picker{padding:14px}.dice-picker-slot .dice-picker .action{flex-direction:column}.dice-picker-slot .dice-picker .action button{width:100%}.dice-choice-list{gap:12px}.dice-choice-button{min-width:82px;padding:12px 14px 10px}.dice-choice-value{font-size:1.7rem}.restart-button{top:max(10px, env(safe-area-inset-top));right:max(10px, env(safe-area-inset-right));padding:10px 13px}}.tutorial-tooltip{color:#fff;z-index:1000;pointer-events:none;text-align:center;background:linear-gradient(#131c18f5,#070c0af0);border:1px solid #cbffe538;border-radius:22px;width:min(86vw,640px);padding:1.2rem 1.4rem 1rem;font-size:clamp(1.45rem,2.8vw,2rem);line-height:1.28;animation:.3s ease-out tooltip-fade-in;display:none;position:fixed;bottom:12%;left:50%;transform:translate(-50%);box-shadow:0 18px 44px #00000057}.tutorial-tooltip-text,.tutorial-tooltip-hint{display:block}.tutorial-tooltip-text{letter-spacing:.01em;font-weight:800}.tutorial-tooltip-hint{letter-spacing:.08em;text-transform:uppercase;color:#b5ffdce0;margin-top:.75rem;font-size:clamp(.95rem,1.8vw,1.15rem);font-weight:700}.tutorial-roll{z-index:4;color:#4d2c00;text-align:center;background:linear-gradient(#fffbecf5,#f1e1c1f0);border:1px solid #7d53152e;border-radius:22px;min-width:min(36vw,220px);padding:.95rem 1rem .85rem;display:none;position:absolute;top:24px;left:24px;box-shadow:0 14px 34px #0000003d}.tutorial-roll.is-visible{gap:.2rem;display:grid}.tutorial-roll.is-rolling{animation:.52s ease-in-out infinite alternate tutorialRollShake}.tutorial-roll-hint{opacity:0;transition:opacity .18s,transform .18s;transform:translateY(4px)}.tutorial-roll.is-settled .tutorial-roll-hint{opacity:1;transform:translateY(0)}.tutorial-roll-label,.tutorial-roll-value,.tutorial-roll-hint{display:block}.tutorial-roll-label{letter-spacing:.14em;text-transform:uppercase;font-size:clamp(.9rem,1.8vw,1rem);font-weight:800}.tutorial-roll-value{font-size:clamp(2.4rem,7vw,4.25rem);font-weight:900;line-height:1}.tutorial-roll-hint{letter-spacing:.08em;text-transform:uppercase;color:#573807c7;font-size:clamp(.85rem,1.7vw,.98rem);font-weight:700}@keyframes tooltip-fade-in{0%{opacity:0;transform:translate(-50%,10px)}to{opacity:1;transform:translate(-50%)}}@keyframes tutorialRollShake{0%{transform:rotate(-4deg)scale(.98)}to{transform:rotate(4deg)scale(1.03)}}.head-core.has-number{color:#fff;background:#18231fe6;justify-content:center;align-items:center;width:60%;height:60%;font-size:1.2rem;font-weight:700;display:flex}.dice-box{opacity:1}.dice-box.is-fading{animation:.35s forwards diceFadeOut}@keyframes diceFadeOut{0%{opacity:1}to{opacity:0}}.dice-picker{text-align:center;justify-content:center;padding:10px;display:flex;position:absolute;top:0;left:0;right:0}.dice-picker .die{width:50px;height:50px}.dice-picker .dice{margin-top:10px;margin-bottom:10px}.dice-picker .dice button{background-color:#0000;border:none}.dice-picker .output{background-color:#ffffff4d;border-radius:10px;min-height:2.2rem;margin-bottom:10px;padding:5px 15px;font-size:1.5rem;font-weight:700;display:inline-block}.dice-picker button img{filter:drop-shadow(5px 5px 5px #00000080)}
