@font-face{font-family:EB Garamond;font-style:normal;font-weight:400 800;font-display:swap;src:url(../fonts/EBGaramond-latin.woff2)format("woff2")}@font-face{font-family:EB Garamond;font-style:italic;font-weight:400 800;font-display:swap;src:url(../fonts/EBGaramond-Italic-latin.woff2)format("woff2")}:root{--bg:#000;--ink:#f2f3f5;--ink-faint:#f2f3f58c;--ink-ghost:#353536;--accent:#d11c5d;--accent-soft:#d11c5d59;--serif:"EB Garamond", Georgia, "Times New Roman", serif;--text-sm:clamp(.875rem, .8rem + .4vw, 1.0625rem);--text-md:clamp(1.125rem, 1rem + .6vw, 1.375rem);--text-lg:clamp(1.5rem, 1.3rem + 1vw, 2rem);--text-xl:clamp(2.75rem, 2rem + 3.5vw, 4.5rem);--space-1:.25rem;--space-2:.5rem;--space-3:1rem;--space-4:1.75rem;--space-5:3rem;--hairline:2px;--ease-out:cubic-bezier(.22, 1, .36, 1);--dur-fast:.14s;--dur-slow:.48s}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body,#app{height:100%}*{scrollbar-width:thin;scrollbar-color:var(--ink-ghost) transparent}body{background:var(--bg);color:var(--ink);font-family:var(--serif);font-size:var(--text-md);-webkit-font-smoothing:antialiased;-webkit-user-select:none;user-select:none;line-height:1.5;overflow:hidden}button,canvas{touch-action:manipulation;-webkit-tap-highlight-color:transparent}button{appearance:none}@keyframes rise{0%{opacity:0;transform:translateY(.75rem)}to{opacity:1;transform:none}}.btn{font:inherit;font-size:var(--text-md);color:var(--ink);border:var(--hairline) solid var(--ink-ghost);cursor:pointer;transition:background-color var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out);background:0 0;border-radius:6px;padding:.5em 2em}.btn:hover:not(:disabled),.btn:focus-visible{background:var(--accent);border-color:var(--accent);outline:none}.btn:disabled{color:var(--ink-ghost);cursor:default}.match{width:100%;max-width:60rem;height:100%;padding:var(--space-4);gap:var(--space-3);animation:rise var(--dur-slow) var(--ease-out) both;flex-direction:column;margin:0 auto;display:flex}.match__status{text-align:center;font-size:var(--text-lg);min-height:1.5em;font-weight:500}.match__board{flex:1;min-height:0;position:relative}.match__board canvas{outline:none;width:100%;height:100%;position:absolute;inset:0}.match__actions{justify-content:center;gap:var(--space-3);display:flex}.landing{align-items:center;gap:var(--space-4);height:100%;padding:var(--space-3) var(--space-4);animation:rise var(--dur-slow) var(--ease-out) both;flex-direction:column;display:flex;overflow-y:auto}.landing>:first-child{margin-top:auto}.landing>:last-child{margin-bottom:auto}.brand{align-items:center;gap:var(--space-3);flex-direction:column;display:flex}.brand__mark{grid-template-columns:repeat(2,auto);gap:.625rem;display:grid}.brand__mark i{background:var(--ink);border-radius:50%;width:1.25rem;height:1.25rem}.brand__mark i:last-child{background:var(--accent)}.brand__title{font-size:var(--text-xl);letter-spacing:.02em;font-weight:500;line-height:1}.setup{gap:var(--space-4);flex-direction:column;width:min(100%,23rem);display:flex}.setup__fields{gap:var(--space-2);flex-direction:column;display:flex}.field{justify-content:space-between;align-items:center;gap:var(--space-3);min-height:2.25rem;display:flex}.field[hidden]{display:none}.field__label{color:var(--ink-faint)}.fs-toggle{top:calc(env(safe-area-inset-top,0px) + var(--space-3));right:calc(env(safe-area-inset-right,0px) + var(--space-3));width:2rem;height:2rem;color:var(--ink-faint);cursor:pointer;z-index:20;background:0 0;border:none;place-items:center;padding:0;display:grid;position:fixed}.fs-toggle:hover,.fs-toggle:focus-visible{color:var(--ink)}.fs-toggle .fs-toggle__exit,.fs-toggle.is-fullscreen .fs-toggle__enter{display:none}.fs-toggle.is-fullscreen .fs-toggle__exit{display:block}.hint{margin-left:var(--space-2);display:inline-block;position:relative}.hint__button{font:inherit;font-size:var(--text-sm);width:1.15rem;height:1.15rem;color:var(--ink-faint);border:1px solid var(--ink-ghost);cursor:help;background:0 0;border-radius:50%;padding:0;line-height:1}.hint__button:hover,.hint__button:focus-visible{color:var(--ink);border-color:var(--ink-faint)}.hint__tip{width:min(21rem,100vw - 1rem);padding:var(--space-2) var(--space-3);font-size:var(--text-sm);color:var(--ink);background:var(--bg);border:1px solid var(--ink-ghost);text-align:left;opacity:0;visibility:hidden;pointer-events:none;z-index:10;line-height:1.45;transition:opacity .12s;position:fixed}.hint:hover .hint__tip,.hint--open .hint__tip,.hint__button:focus-visible+.hint__tip{opacity:1;visibility:visible}@media (prefers-reduced-motion:reduce){.hint__tip{transition:none}}.seg{display:flex}.seg__opt{font:inherit;font-size:var(--text-sm);color:var(--ink-faint);border:var(--hairline) solid var(--ink-ghost);cursor:pointer;transition:background-color var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out);background:0 0;border-left-width:0;border-radius:0;padding:.4em .9em}.seg__opt:first-child{border-left-width:var(--hairline);border-radius:6px 0 0 6px}.seg__opt:last-child{border-radius:0 6px 6px 0}.seg__opt:hover:not(.is-on){color:var(--ink)}.seg__opt.is-on{background:var(--accent);border-color:var(--accent);color:var(--ink)}.seg__opt.is-on:not(:first-child){border-left-width:var(--hairline);margin-left:calc(-1 * var(--hairline))}.stepper{align-items:center;gap:var(--space-2);display:flex}.stepper__btn{font:inherit;border:var(--hairline) solid var(--ink-ghost);width:2rem;height:2rem;color:var(--ink);cursor:pointer;transition:background-color var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out);background:0 0;border-radius:50%;font-size:0;position:relative}.stepper__btn:before,.stepper__btn[aria-label=more]:after{content:"";background:currentColor;border-radius:1px;margin:auto;position:absolute;inset:0}.stepper__btn:before{width:.7rem;height:1.5px}.stepper__btn[aria-label=more]:after{width:1.5px;height:.7rem}.stepper__btn:hover:not(:disabled){background:var(--accent);border-color:var(--accent)}.stepper__btn:disabled{color:var(--ink-ghost);cursor:default}.stepper__val{text-align:center;font-variant-numeric:tabular-nums;min-width:2ch}.btn--play{background:var(--accent);border-color:var(--accent)}.btn--play:hover:not(:disabled),.btn--play:focus-visible{filter:brightness(1.15)}.btn--quiet{font-size:var(--text-sm);align-self:center;padding:.4em 1.4em}.links{align-items:center;gap:var(--space-2);color:var(--ink-faint);display:flex}.link{font:inherit;font-size:var(--text-md);color:var(--ink-faint);cursor:pointer;transition:color var(--dur-fast) var(--ease-out);background:0 0;border:none}.link:hover,.link:focus-visible{color:var(--ink);outline:none}.veil{justify-content:center;align-items:center;gap:var(--space-4);visibility:hidden;opacity:0;transition:opacity var(--dur-slow) var(--ease-out), visibility 0s var(--dur-slow);background:#000000d1;flex-direction:column;display:flex;position:fixed;inset:0}.veil.is-open{visibility:visible;opacity:1;transition:opacity var(--dur-slow) var(--ease-out)}.veil__title{font-size:var(--text-xl);transition:transform var(--dur-slow) var(--ease-out);font-weight:500;transform:translateY(.6rem)}.veil.is-open .veil__title{transform:none}.veil__actions{gap:var(--space-3);flex-wrap:wrap;justify-content:center;display:flex}.veil--sheet{visibility:visible;opacity:1;animation:fade var(--dur-slow) var(--ease-out) both;background:#000000b8;transition:none}@keyframes fade{0%{opacity:0}to{opacity:1}}.veil--sheet .sheet{animation:rise var(--dur-slow) var(--ease-out) both}.sheet{width:min(100% - 2 * var(--space-4), 30rem);background:var(--bg);border:var(--hairline) solid var(--ink-ghost);max-height:85vh;padding:var(--space-4);gap:var(--space-3);border-radius:10px;outline:none;flex-direction:column;display:flex;overflow-y:auto}.sheet__title{font-size:var(--text-lg);font-weight:500}.sheet__body{color:var(--ink-faint)}.sheet__body p+p{margin-top:.75em}.sheet__body em{color:var(--ink);font-style:italic}.seg__opt:focus-visible,.stepper__btn:focus-visible{outline:1px solid var(--accent);outline-offset:2px}@media (max-width:30rem){.match{padding:var(--space-3) var(--space-2) var(--space-2);gap:var(--space-2)}.btn{padding:.5em 1.4em}.field{flex-wrap:wrap}.field>:last-child{margin-left:auto}}@media (prefers-reduced-motion:reduce){.landing,.match,.veil--sheet,.veil--sheet .sheet{animation:none}.veil,.veil__title,.btn,.seg__opt,.stepper__btn,.link{transition:none}}
