:root{--ink:#080b14;--night:#0c111f;--navy:#141d33;--floor:#1a2540;--floor-lit:#21304f;--stone:#070a12;--ivory:#ece2cc;--terracotta:#c46b3c;--oxblood:#8e2f36;--gold:#d8a94c;--gold-lit:#f5d489;--divine:#cfe4ff;--warn:#e0433d;--nav-h:3.9rem;--stage:min(94vw, calc(100svh - var(--nav-h) - 2.2rem), 640px);--grid:9;--cell:calc(100% / var(--grid));--meander:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='48' height='48' viewBox='0 0 48 48'%3E%3Cpath fill='none' stroke='%23d8a94c' stroke-width='2.5' d='M6 42V12h30v24H18V20h12'/%3E%3C/svg%3E")}*,:before,:after{box-sizing:border-box}html,body{height:100%}body{background:radial-gradient(120% 90% at 50% 8%, var(--navy), var(--ink) 68%);color:var(--ivory);-webkit-font-smoothing:antialiased;margin:0;font-family:Iowan Old Style,Palatino Linotype,Palatino,Georgia,serif;overflow:hidden}body:before{content:"";background-image:var(--meander);opacity:.04;pointer-events:none;position:fixed;inset:0}.hud{z-index:2;height:var(--nav-h);border-bottom:1px solid color-mix(in srgb, var(--gold) 22%, transparent);background:linear-gradient(180deg, color-mix(in srgb, var(--navy) 80%, transparent), transparent);align-items:center;gap:1.1rem;padding:0 clamp(.7rem,3vw,1.6rem);display:flex;position:relative}.crest{letter-spacing:.34em;color:var(--gold);align-items:center;gap:.55rem;margin:0;font-size:clamp(.78rem,2.4vw,1rem);font-weight:600;display:flex}.crest-mark{background-image:var(--meander);opacity:.9;background-size:contain;width:1.15rem;height:1.15rem}.crest-word{opacity:.92}@media (width<30rem){.crest-word{display:none}}.vitals{align-items:center;gap:.9rem;margin-inline-start:auto;display:flex}.hearts{gap:.3rem;display:flex}.fig-heart{width:1.55rem;height:1.55rem;fill:var(--oxblood);stroke:var(--ivory);stroke-width:1.6px;filter:drop-shadow(0 0 6px color-mix(in srgb, var(--oxblood) 60%, transparent));transition:fill .25s,opacity .25s,transform .25s}.fig-heart.spent{fill:#0000;stroke:color-mix(in srgb, var(--ivory) 32%, transparent);opacity:.5;filter:none;transform:scale(.84)}.gifts{gap:.45rem;display:flex}.gift-chip{border:1px solid color-mix(in srgb, var(--gold) 26%, transparent);background:color-mix(in srgb, var(--ink) 60%, transparent);border-radius:2px;align-items:center;gap:.2rem;padding:.22rem .34rem;transition:border-color .25s,box-shadow .25s;display:flex;position:relative}.gift-chip .fig-gift{opacity:.55;width:1.25rem;height:1.25rem;transition:opacity .25s}.gift-chip.ready{border-color:var(--gold-lit);box-shadow:0 0 10px color-mix(in srgb, var(--gold) 45%, transparent)}.gift-chip.ready .fig-gift{opacity:1}.gift-chip.spent{opacity:.4}.steps{gap:2px;display:flex}.steps i{border:1px solid color-mix(in srgb, var(--gold) 40%, transparent);background:0 0;width:4px;height:10px;transition:background .2s}.steps i.lit{background:var(--gold-lit)}.chambers{gap:.4rem;margin:0;padding:0;list-style:none;display:flex}.chambers li{border:2px solid color-mix(in srgb, var(--gold) 45%, transparent);width:.85rem;height:.85rem;transition:background .3s,box-shadow .3s,border-color .3s;transform:rotate(45deg)}.chambers li.done{background:var(--gold);border-color:var(--gold-lit)}.chambers li.here{border-color:var(--gold-lit);box-shadow:0 0 9px color-mix(in srgb, var(--gold) 70%, transparent)}.chambers li.lair{border-color:color-mix(in srgb, var(--oxblood) 80%, var(--gold));border-radius:50%}.chambers li.lair.done{background:var(--oxblood)}.mute{border:1px solid color-mix(in srgb, var(--gold) 32%, transparent);min-height:2.5rem;color:var(--gold);font:inherit;letter-spacing:.22em;cursor:pointer;background:0 0;border-radius:2px;align-items:center;gap:.4rem;padding:.35rem .65rem;font-size:.62rem;transition:border-color .2s,color .2s;display:flex}.mute:hover,.mute:focus-visible{border-color:var(--gold-lit);color:var(--gold-lit);outline:none}.fig-lyre{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;width:1.35rem;height:1.35rem}.fig-lyre .lyre-strings{stroke-width:1.3px}.fig-lyre .lyre-cut{stroke:var(--oxblood);stroke-width:2.6px;opacity:0}.mute.off{color:color-mix(in srgb, var(--ivory) 45%, transparent);border-color:color-mix(in srgb, var(--ivory) 18%, transparent)}.mute.off .fig-lyre .lyre-cut{opacity:1}@media (width<34rem){.mute-label{display:none}}.hall{height:calc(100svh - var(--nav-h));place-items:center;padding:.6rem;display:grid;position:relative}.stage{width:var(--stage);height:var(--stage);border:1px solid color-mix(in srgb, var(--gold) 30%, transparent);box-shadow:0 0 0 6px var(--ink), 0 0 0 7px color-mix(in srgb, var(--gold) 18%, transparent), 0 24px 60px #0009;transition:filter 90ms step-end,transform 90ms step-end;position:relative}.stage.hitstop{filter:brightness(1.5)saturate(.6);transform:scale(1.012)}.board{grid-template-columns:repeat(var(--grid), 1fr);background:var(--stone);display:grid;position:absolute;inset:0}.tile{position:relative}.tile.floor{background:radial-gradient(120% 120% at 30% 20%, var(--floor-lit), var(--floor) 70%);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--ink) 55%, transparent)}.tile.wall{background:var(--stone);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--navy) 70%, transparent)}.tile.wall:after{content:"";border:1px solid color-mix(in srgb, var(--gold) 8%, transparent);position:absolute;inset:18%}.tile.gate{background:linear-gradient(180deg, var(--stone), color-mix(in srgb, var(--gold) 12%, var(--floor)))}.tile.gate:after{content:"";border:2px solid color-mix(in srgb, var(--gold) 40%, transparent);background:repeating-linear-gradient(90deg, color-mix(in srgb, var(--gold) 34%, transparent) 0 2px, transparent 2px 25%);border-bottom:none;border-radius:44% 44% 0 0;transition:background .45s,border-color .45s,box-shadow .45s;position:absolute;inset:8% 14%}.tile.gate.open{background:linear-gradient(180deg, var(--gold-lit), color-mix(in srgb, var(--gold) 50%, var(--floor)))}.tile.gate.open:after{border-color:var(--gold-lit);box-shadow:0 0 22px var(--gold), inset 0 0 18px var(--gold-lit);background:0 0}.tile.marked:before{content:"";background:repeating-linear-gradient(45deg, color-mix(in srgb, var(--warn) 46%, transparent) 0 4px, transparent 4px 9px);box-shadow:inset 0 0 0 2px var(--warn), inset 0 0 16px color-mix(in srgb, var(--warn) 55%, transparent);animation:.7s ease-in-out infinite alternate menace;position:absolute;inset:0}@keyframes menace{0%{opacity:.62}to{opacity:1}}.thread{pointer-events:none;position:absolute;inset:0}.thread-line{fill:none;stroke:color-mix(in srgb, var(--oxblood) 70%, var(--terracotta));stroke-width:.055px;stroke-linejoin:round;stroke-linecap:round;opacity:.55;filter:drop-shadow(0 0 .03px var(--terracotta))}.stage.daylight .thread-line{stroke:var(--gold-lit);opacity:1;stroke-width:.09px;animation:1.4s ease-out thread-lit}@keyframes thread-lit{0%{stroke:var(--oxblood);opacity:.4}}.actor,.fx{left:calc(var(--x,0) * 100% / var(--grid));top:calc(var(--y,0) * 100% / var(--grid));width:var(--cell);height:var(--cell);pointer-events:none;position:absolute}.actors{position:absolute;inset:0}.actor{place-items:center;transition:left .13s ease-out,top .13s ease-out;display:grid}.actor .fig{width:88%;height:88%}.fig{overflow:visible}.fig .ink{fill:#06090f}.fig .ivory{fill:var(--ivory)}.fig .terracotta{fill:var(--terracotta)}.fig .oxblood{fill:var(--oxblood)}.fig .gold{fill:var(--gold)}.fig .stroke-ivory{fill:none;stroke:var(--ivory);stroke-width:1.5px;stroke-linecap:round}.fig .coil,.actor.windup .fig .calm,.actor.stunned .fig .calm{display:none}.actor.windup .fig .coil,.actor.stunned .fig .coil{display:block}.hero .fig{filter:drop-shadow(0 0 7px color-mix(in srgb, var(--gold) 40%, transparent))}.foe .fig{filter:drop-shadow(0 2px 5px #000000b3);transition:filter .3s}.foe-minotaur .fig{width:104%;height:104%}.foe.hurt .fig{filter:saturate(.42)brightness(.82)drop-shadow(0 2px 5px #000000b3)}.foe.windup .fig{filter:drop-shadow(0 0 9px color-mix(in srgb, var(--warn) 65%, transparent));animation:.55s ease-in-out infinite alternate coil}@keyframes coil{0%{transform:scale(1)}to{transform:scale(1.13)translateY(-3%)}}.foe.stunned .fig{filter:saturate(.4) drop-shadow(0 0 12px color-mix(in srgb, var(--divine) 55%, transparent));animation:.9s ease-in-out infinite alternate reel}@keyframes reel{0%{transform:rotate(-7deg)translateY(6%)}to{transform:rotate(6deg)translateY(9%)}}.pips{gap:calc(var(--stage) / 180);display:flex;position:absolute;bottom:-2%}.pips i{width:calc(var(--stage) / 84);height:calc(var(--stage) / 48);border:1px solid color-mix(in srgb, var(--ink) 70%, transparent);background:var(--terracotta);box-shadow:0 0 4px color-mix(in srgb, var(--ink) 80%, transparent);transition:background .2s,opacity .2s}.pips i.spent{border-color:color-mix(in srgb, var(--ivory) 45%, transparent);box-shadow:none;opacity:.7;background:0 0}.foe .pips:has(i:only-child){display:none}.foe.struck .fig{animation:.3s ease-out recoil}@keyframes recoil{0%{filter:brightness(4)saturate(0);transform:scale(1.4,.65)}45%{transform:scale(.86,1.16)translateY(-8%)}to{transform:none}}.foe.gone{animation:.3s ease-in forwards crumble}@keyframes crumble{to{opacity:0;transform:scale(.4)rotate(22deg)}}.hero.lunge .fig{animation:.26s ease-out lunge}@keyframes lunge{40%{transform:scale(1.2,.88)}}.hero.winged .fig{animation:.32s ease-out winged}@keyframes winged{0%{transform:translateY(-22%)scale(.9,1.14)}}.hero.rebuff .fig{animation:.3s ease-out rebuff}@keyframes rebuff{30%{transform:translate(-14%)rotate(-8deg)}}.hero.wounded .fig{filter:drop-shadow(0 0 14px var(--warn));animation:.48s ease-out wounded}@keyframes wounded{0%,to{transform:none}20%{transform:translate(-12%)rotate(-10deg)}60%{transform:translate(9%)rotate(7deg)}}.hero.sharp .fig .gold{fill:var(--gold-lit);filter:drop-shadow(0 0 6px var(--gold-lit))}.hero.warded:before{content:"";border:2px solid color-mix(in srgb, var(--divine) 70%, transparent);box-shadow:0 0 14px color-mix(in srgb, var(--divine) 55%, transparent), inset 0 0 12px color-mix(in srgb, var(--divine) 35%, transparent);border-radius:50%;animation:2s ease-in-out infinite alternate halo;position:absolute;inset:4%}@keyframes halo{0%{opacity:.45}to{opacity:.95}}.hero.warded-flash:before{opacity:1;border-color:var(--divine);box-shadow:0 0 34px var(--divine);animation:none}.fx{z-index:3}.spark{background:radial-gradient(circle, var(--gold-lit), transparent 62%);border-radius:50%;animation:.36s ease-out forwards spark}.spark.tone-bone{background:radial-gradient(circle, #fff, var(--ivory) 30%, transparent 66%)}.spark.tone-blood{background:radial-gradient(circle, #fff, var(--warn) 34%, transparent 68%)}.spark.tone-stone{background:radial-gradient(circle, var(--ivory), transparent 52%)}.spark.tone-divine{background:radial-gradient(circle, #fff, var(--divine) 40%, transparent 72%)}@keyframes spark{0%{opacity:1;transform:scale(.3)}to{opacity:0;transform:scale(1.9)}}.arc{transform:rotate(calc(var(--turn,0) * 1turn));animation:.32s ease-out forwards arc}.arc:after{content:"";border:4px solid #0000;border-top-color:var(--gold-lit);border-right-color:var(--gold-lit);filter:drop-shadow(0 0 8px var(--gold));border-radius:50%;position:absolute;inset:-12%}@keyframes arc{0%{opacity:0;rotate:-60deg;scale:.55}25%{opacity:1}to{opacity:0;rotate:55deg;scale:1.35}}.lash{z-index:2}.lash.across{width:calc(var(--cell) * var(--len,1))}.lash.down{height:calc(var(--cell) * var(--len,1))}.lash:after{content:"";background:linear-gradient(90deg, transparent, var(--warn), transparent);filter:blur(1px) drop-shadow(0 0 10px var(--warn));animation:.4s ease-out forwards lash;position:absolute;inset:22% 0}.lash.down:after{background:linear-gradient(180deg, transparent, var(--warn), transparent);inset:0 22%}@keyframes lash{0%{opacity:0;transform:scale(.55)}30%{opacity:1;transform:scale(1)}to{opacity:0}}.lash-slash:after{border:3px solid #0000;border-top-color:var(--warn);border-left-color:var(--warn);transform:rotate(calc(var(--turn,0) * 1turn));background:0 0;border-radius:50%;animation:.38s ease-out forwards slash;inset:12%}@keyframes slash{0%{opacity:0;scale:.5}30%{opacity:1}to{opacity:0;scale:1.5}}.lash-charge:after{background:linear-gradient(90deg, transparent, color-mix(in srgb, var(--oxblood) 85%, var(--warn)), transparent);animation-duration:.5s;inset:8% 0}.lash-charge.down:after{background:linear-gradient(180deg, transparent, color-mix(in srgb, var(--oxblood) 85%, var(--warn)), transparent);inset:0 8%}.stage.jolt{animation:.42s ease-out jolt}.stage.shudder{animation:.42s ease-out shudder}@keyframes jolt{0%,to{transform:none}15%{transform:translate(-9px,5px)}35%{transform:translate(7px,-4px)}60%{transform:translate(-4px,2px)}}@keyframes shudder{0%,to{transform:none}20%{transform:scale(1.02)}50%{transform:scale(.99)translateY(3px)}}.hint{left:calc(var(--x,0) * 100% / var(--grid));top:calc(var(--y,0) * 100% / var(--grid));width:var(--cell);height:var(--cell);z-index:4;pointer-events:none;place-items:center;display:grid;position:absolute}.hint svg{width:52%;fill:var(--gold-lit);filter:drop-shadow(0 0 10px var(--gold));animation:1.15s ease-in-out infinite beckon}.hint[hidden]{display:none}@keyframes beckon{0%,to{opacity:.35;transform:translateY(28%)}50%{opacity:1;transform:translateY(-14%)}}.boss{z-index:4;pointer-events:none;gap:3px;display:grid;position:absolute;top:1.5%;left:8%;right:8%}.boss[hidden]{display:none}.boss-name{letter-spacing:.3em;color:var(--gold);text-align:center;font-size:clamp(.5rem,1.7vw,.62rem)}.boss-bar{border:1px solid color-mix(in srgb, var(--gold) 55%, transparent);background:color-mix(in srgb, var(--ink) 80%, transparent);height:.55rem}.boss-bar i{height:100%;width:calc(var(--share,1) * 100%);background:linear-gradient(90deg, var(--oxblood), var(--terracotta));transition:width .35s ease-out;display:block}.boss.open .boss-bar{border-color:var(--divine);box-shadow:0 0 14px color-mix(in srgb, var(--divine) 65%, transparent)}.boss.open .boss-name{color:var(--divine)}.overlay{z-index:6;background:color-mix(in srgb, var(--ink) 88%, transparent);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);place-content:center;gap:1.1rem;padding:1.2rem;animation:.3s ease-out fade;display:grid;position:absolute;inset:0}.overlay[hidden]{display:none}@keyframes fade{0%{opacity:0}}.gift-eyebrow{text-align:center;letter-spacing:.5em;color:var(--gold);opacity:.7;margin:0;font-size:.62rem}.gods{flex-wrap:wrap;justify-content:center;gap:.7rem;display:flex}.god{border:1px solid color-mix(in srgb, var(--gold) 34%, transparent);background:linear-gradient(180deg, color-mix(in srgb, var(--navy) 80%, transparent), transparent);width:min(9.5rem,30vw);color:var(--ivory);font:inherit;cursor:pointer;border-radius:2px;justify-items:center;gap:.3rem;padding:.9rem .6rem;transition:border-color .2s,transform .2s,box-shadow .2s,background .2s;display:grid}.god-art .fig-gift{width:2.6rem;height:2.6rem}.god-name{letter-spacing:.3em;color:var(--gold);font-size:.62rem}.god-title{color:var(--ivory);font-size:.92rem}.god-effect{text-align:center;color:color-mix(in srgb, var(--ivory) 72%, transparent);font-size:.72rem;line-height:1.4}.god:hover,.god:focus{border-color:var(--gold-lit);background:linear-gradient(180deg, color-mix(in srgb, var(--gold) 16%, transparent), transparent);box-shadow:0 0 0 2px var(--gold-lit), 0 10px 30px #0000008c;outline:none;transform:translateY(-4px)}.end{justify-items:center;gap:1.3rem}.verdict{letter-spacing:.28em;text-align:center;margin:0;font-size:clamp(1.1rem,5vw,1.7rem)}.end[data-ended=win] .verdict{color:var(--gold-lit);text-shadow:0 0 26px color-mix(in srgb, var(--gold) 70%, transparent)}.end[data-ended=loss] .verdict{color:var(--oxblood);text-shadow:0 0 22px color-mix(in srgb, var(--oxblood) 60%, transparent)}.tally{grid-template-columns:auto auto;gap:.3rem 1.1rem;margin:0;font-size:.78rem;display:grid}.tally dt{letter-spacing:.24em;color:color-mix(in srgb, var(--ivory) 55%, transparent);align-self:center;font-size:.62rem}.tally dd{color:var(--gold);text-align:right;margin:0}.favour{flex-wrap:wrap;justify-content:center;gap:.5rem;min-height:1rem;display:flex}.favour .gift-chip em{letter-spacing:.1em;padding-inline-end:.2rem;font-size:.68rem;font-style:normal}.favour .gift-chip .fig-gift{opacity:1}.again{border:1px solid var(--gold);color:var(--gold-lit);font:inherit;letter-spacing:.36em;cursor:pointer;background:0 0;border-radius:2px;padding:.8rem 2.4rem;font-size:.85rem;transition:background .2s,box-shadow .2s,transform .15s}.again:hover,.again:focus{background:color-mix(in srgb, var(--gold) 18%, transparent);box-shadow:0 0 0 2px var(--gold-lit), 0 0 30px color-mix(in srgb, var(--gold) 45%, transparent);outline:none;transform:translateY(-2px)}.stage.daylight:after{content:"";z-index:5;pointer-events:none;background:radial-gradient(60% 50% at 50% -8%, color-mix(in srgb, var(--gold-lit) 85%, transparent), transparent 70%);animation:1.6s ease-out forwards dawn;position:absolute;inset:0}@keyframes dawn{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.hint svg{opacity:1;transform:none}.tile.marked:before{opacity:1}}
