:root{--ink:#e8dcc8;--dim:#9d8fa8;--rune:#c79bff;--ember:#ffb163;--panel:#0e0914b8;--edge:#c79bff38;font-family:Iowan Old Style,Palatino Linotype,Palatino,Georgia,serif}*{box-sizing:border-box}html,body{height:100%;color:var(--ink);background:#07050a;margin:0;overflow:hidden}#stage{touch-action:none;cursor:crosshair;width:100%;height:100%;display:block;position:fixed;inset:0}#hud{pointer-events:none;grid-template-rows:auto 1fr auto;padding:22px 26px;display:grid;position:fixed;inset:0}.plate{background:var(--panel);border:1px solid var(--edge);backdrop-filter:blur(7px);border-radius:10px;padding:10px 14px;box-shadow:0 10px 40px #00000080}.title{letter-spacing:.16em;text-transform:uppercase;font-size:15px}.title small{letter-spacing:.06em;color:var(--dim);text-transform:none;margin-top:4px;font-size:11px;display:block}header{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.keys{color:var(--dim);text-align:right;font-size:11px;line-height:1.9}.keys kbd{border:1px solid var(--edge);color:var(--ink);border-radius:4px;padding:1px 6px;font-family:inherit}footer{justify-content:space-between;align-items:flex-end;gap:16px;display:flex}.grimoire{align-items:stretch;gap:10px;display:flex}.sigil{text-align:center;opacity:.5;width:56px;transition:opacity .25s,transform .25s}.sigil.bound{opacity:1}.sigil.lit{opacity:1;transform:translateY(-3px)}.sigil.lit svg path{filter:drop-shadow(0 0 7px var(--rune))}.sigil.bound.lit svg path{filter:drop-shadow(0 0 8px var(--ember))}.sigil.lit span{color:var(--ink)}.sigil svg{width:32px;height:32px;margin:0 auto 3px;display:block}.sigil svg path{fill:none;stroke:var(--rune);stroke-width:6px;stroke-linecap:round;stroke-linejoin:round}.sigil.bound svg path{stroke:var(--ember)}.sigil span{letter-spacing:.06em;color:var(--dim);text-transform:uppercase;white-space:nowrap;font-size:9px;display:block}#verdict{text-align:right;min-width:230px}#verdict .line{letter-spacing:.05em;font-size:16px}#verdict .line.ok{color:var(--ember)}#verdict .line.miss{color:var(--rune)}#verdict .line.reading{opacity:.72;font-style:italic}#verdict .meter{background:#ffffff1f;border-radius:3px;height:3px;margin-top:8px;overflow:hidden}#verdict .meter i{background:var(--ember);width:0;height:100%;transition:width .35s;display:block}#verdict small{color:var(--dim);font-size:11px}#boot{--boot-ink:#0a0912;--boot-ink-deep:#04030a;--boot-parchment:#e9dfc9;--boot-parchment-dim:#a79c86;--boot-candle:#e0a356;--boot-rose:#c97b8e;color:var(--boot-parchment);z-index:10;place-items:center;font-family:Cormorant Garamond,Iowan Old Style,Palatino Linotype,Palatino,Georgia,serif;display:grid;position:fixed;inset:0;overflow:hidden}.boot-veil{pointer-events:none;position:absolute;inset:0}#boot.gone{pointer-events:none}#boot.gone .boot-veil{opacity:0;transition:opacity .6s ease-out}#boot.gone .boot-inner{opacity:0;transition:transform 1.25s cubic-bezier(.45,0,.7,0),opacity .85s ease-in .35s;transform:translateY(-3vh)scale(1.6)}#boot.gone .boot-sigil{opacity:0;transition:transform 1.25s cubic-bezier(.5,0,.65,0),opacity .9s ease-in .3s;transform:scale(2.6)}#boot.spent{display:none}.boot-sky{pointer-events:none;background:radial-gradient(120% 90% at 50% 108%, #c97b8e33 0%, transparent 55%), radial-gradient(90% 70% at 50% 42%, #4a3a7257 0%, transparent 70%), linear-gradient(180deg, var(--boot-ink-deep) 0%, var(--boot-ink) 55%, #0b0715 100%);position:absolute;inset:0}.boot-vignette{pointer-events:none;background:radial-gradient(70% 60% at 50% 46%,#0000 40%,#000000b8 100%);position:absolute;inset:0}.boot-grain{pointer-events:none;opacity:.16;mix-blend-mode:overlay;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='200' height='200'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/></filter><rect width='200' height='200' filter='url(%23n)'/></svg>");animation:1.1s steps(3,end) infinite boot-grain-shift;position:absolute;inset:-50%}@keyframes boot-grain-shift{0%{transform:translate(0)}33%{transform:translate(-2%,1%)}66%{transform:translate(1%,-2%)}}.boot-firefly{background:var(--boot-candle);opacity:0;pointer-events:none;border-radius:50%;width:3px;height:3px;animation:linear infinite boot-drift;position:absolute;box-shadow:0 0 10px 3px #e0a3568c}@keyframes boot-drift{0%{opacity:0;transform:translate(0)scale(.7)}18%{opacity:.85}70%{opacity:.5}to{opacity:0;transform:translate(var(--dx), -46vh) scale(1.1)}}.boot-inner{text-align:center;width:min(92vw,34rem);position:relative;transform:translateY(-3vh)}.boot-sigil{--p:0;width:clamp(9rem,20vh,13rem);height:clamp(9rem,20vh,13rem);margin:0 auto 2.4rem;display:block;overflow:visible}.boot-sigil path,.boot-sigil circle,.boot-sigil line{fill:none;stroke:var(--boot-parchment);stroke-width:1.1px;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:calc(1 - var(--p));opacity:.62;transition:stroke-dashoffset .5s linear}.boot-sigil .halo{stroke:var(--boot-candle);stroke-width:8px;opacity:0;filter:blur(9px);stroke-dashoffset:0;transition:opacity 1.4s}#boot.sealed .boot-sigil path,#boot.sealed .boot-sigil circle,#boot.sealed .boot-sigil line{opacity:.95;stroke:var(--boot-candle);transition:stroke 1.2s,opacity 1.2s}#boot.sealed .boot-sigil .halo{opacity:.5}.boot-inner h1{letter-spacing:.34em;text-indent:.34em;color:var(--boot-parchment);text-shadow:0 0 34px #c97b8e47;margin:0;font-size:clamp(1.9rem,4.4vw,3.1rem);font-weight:300;line-height:1.1}.boot-tagline{color:var(--boot-parchment-dim);letter-spacing:.02em;margin:1.1rem 0 0;font-size:clamp(1rem,1.5vw,1.15rem);font-style:italic;font-weight:300}.boot-gate{place-items:center;margin-top:3.2rem;display:grid}.boot-gate>*{grid-area:1/1}#boot-enter{letter-spacing:.28em;text-indent:.28em;color:var(--boot-parchment);cursor:pointer;background:0 0;border:1px solid #e9dfc938;padding:.85rem 3.2rem;font-family:inherit;font-size:1rem;font-weight:400;transition:opacity .9s,transform .9s,visibility .9s,border-color .4s,letter-spacing .4s,color .4s;display:inline-block}#boot-enter[disabled]{opacity:0;visibility:hidden;pointer-events:none;transform:translateY(6px)}#boot-enter:hover,#boot-enter:focus-visible{color:#fff3de;letter-spacing:.36em;text-indent:.36em;border-color:#e0a356bf;outline:none;box-shadow:0 0 26px -6px #e0a35680,inset 0 0 26px -14px #e0a356b3}#boot-enter:focus-visible{border-color:var(--boot-candle);box-shadow:0 0 0 2px #e0a35659}#boot-msg{pointer-events:none;color:#a79c86cc;letter-spacing:.02em;margin:0;font-size:.95rem;font-style:italic;font-weight:300;transition:opacity .6s}#boot.sealed #boot-msg{opacity:0}#boot.failed #boot-msg{opacity:1}.fatal{color:#ff8f6b;font-style:normal}.boot-sound{color:#a79c86b8;letter-spacing:.03em;opacity:0;margin:1.6rem 0 0;font-size:.9rem;transition:opacity 1.1s .3s}#boot.sealed .boot-sound{opacity:1}.boot-sound svg{vertical-align:-.05em;width:.85em;height:.85em;stroke:var(--boot-candle);fill:none;stroke-width:1.6px;stroke-linecap:round;stroke-linejoin:round;margin-right:.45em}@media (prefers-reduced-motion:reduce){#boot,#boot *{transition-duration:.01ms!important;animation:none!important}.boot-firefly{display:none}}.controls{align-items:flex-start;gap:10px;display:flex}.music{pointer-events:auto;width:38px;height:38px;color:var(--ink);cursor:pointer;flex:none;place-items:center;padding:0;transition:color .25s,border-color .25s;display:grid}.music:hover{border-color:#ffffff47}.music:focus-visible{outline:1px solid var(--rune);outline-offset:2px}.music svg{fill:none;stroke:currentColor;stroke-width:1.7px;stroke-linecap:round;stroke-linejoin:round;width:17px;height:17px}.music .cross{opacity:0;transition:opacity .2s}.music .waves{opacity:1;transition:opacity .2s}.music.off{color:var(--dim)}.music.off .cross{opacity:1}.music.off .waves{opacity:0}.sr{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}
