:root{--hv-touch:calc(var(--hv-geometry-min-touch-target-px,40) * 1px);--hv-dur-fast:calc(var(--hv-motion-select-ms,120) * 1ms);--hv-dur-medium:calc(var(--hv-motion-place-ms,220) * 1ms);--hv-shadow-tile:0 calc(var(--hv-shadow-offset-y,3) * 1px) calc(var(--hv-shadow-blur,6) * 1px) color-mix(in srgb, var(--hv-shadow-color,#000) 20%, transparent);--hv-ink:var(--hv-tile-dark-fill);--hv-ink-on-table-muted:color-mix(in srgb, var(--hv-ink-on-table) 70%, transparent);--hv-ink-muted:color-mix(in srgb, var(--hv-tile-dark-fill) 62%, transparent);--hv-ink-faint:color-mix(in srgb, var(--hv-tile-dark-fill) 34%, transparent);--hv-surface:var(--hv-tile-light-fill);--hv-surface-edge:var(--hv-tile-light-edge);--hv-surface-sunken:color-mix(in srgb, var(--hv-tile-light-edge) 45%, var(--hv-bg-table));--hv-accent:var(--hv-cell-selected-stroke);--hv-accent-soft:var(--hv-cell-valid-fill);--hv-accent-edge:var(--hv-cell-valid-stroke);--hv-on-accent:var(--hv-tile-light-fill);--hv-space-1:.25rem;--hv-space-2:.5rem;--hv-space-3:.75rem;--hv-space-4:1rem;--hv-space-5:1.5rem;--hv-space-6:2rem;--hv-radius-sm:.5rem;--hv-radius-md:.875rem;--hv-radius-lg:1.25rem;--hv-radius-pill:999px}.hv-btn:focus-visible,.hv-pill:focus-visible,.hv-toggle:focus-visible,.hv-segmented__item:focus-visible,.hv-modal:focus-visible,.hv-sheet:focus-visible{box-shadow:0 0 0 2px var(--hv-bg-table), 0 0 0 4px var(--hv-tile-dark-fill);outline:none}.hv-visually-hidden{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@keyframes hv-fade-in{0%{opacity:0}}@keyframes hv-rise-in{0%{opacity:0;transform:translateY(.75rem)scale(.98)}}@keyframes hv-slide-up{0%{transform:translateY(100%)}}@media (prefers-reduced-motion:reduce){.hv-scrim--animated,.hv-modal--animated,.hv-sheet--animated{animation:none}.hv-btn:active:not(:disabled){transform:none}}.hv-btn{justify-content:center;align-items:center;gap:var(--hv-space-2);min-height:var(--hv-touch);min-width:var(--hv-touch);padding:var(--hv-space-2) var(--hv-space-4);border-radius:var(--hv-radius-pill);font:inherit;color:var(--hv-ink);cursor:pointer;transition:background-color var(--hv-dur-fast) ease-out, border-color var(--hv-dur-fast) ease-out, transform var(--hv-dur-fast) ease-out;background:0 0;border:1px solid #0000;font-weight:600;line-height:1.25;display:inline-flex}.hv-btn:active:not(:disabled){transform:translateY(1px)}.hv-btn:disabled{opacity:.45;cursor:not-allowed}.hv-btn--lg{min-height:calc(var(--hv-touch) * 1.25);padding-inline:var(--hv-space-5);font-size:1.0625rem}.hv-btn--block{width:100%;display:flex}.hv-btn--primary{color:var(--hv-on-accent);background:var(--hv-accent);border-color:var(--hv-accent);box-shadow:var(--hv-shadow-tile)}.hv-btn--primary:hover:not(:disabled){background:color-mix(in srgb, var(--hv-accent) 88%, var(--hv-tile-dark-fill))}.hv-btn--secondary{background:var(--hv-surface);border-color:var(--hv-surface-edge)}.hv-btn--secondary:hover:not(:disabled){border-color:var(--hv-accent-edge)}.hv-btn--ghost{color:var(--hv-ink-muted)}.hv-btn--ghost:hover:not(:disabled){color:var(--hv-ink);background:color-mix(in srgb, var(--hv-tile-light-fill) 60%, transparent)}.hv-btn__icon{align-items:center;display:inline-flex}.hv-card{gap:var(--hv-space-3);padding:var(--hv-space-4);color:var(--hv-ink);background:var(--hv-surface);border:1px solid var(--hv-surface-edge);border-radius:var(--hv-radius-lg);box-shadow:var(--hv-shadow-tile);flex-direction:column;display:flex}.hv-card__header{justify-content:space-between;align-items:flex-start;gap:var(--hv-space-3);display:flex}.hv-card__heading{gap:var(--hv-space-1);flex-direction:column;min-width:0;display:flex}.hv-card__title{letter-spacing:-.005em;margin:0;font-size:1rem;font-weight:700}.hv-card__hint,.hv-card__aside{color:var(--hv-ink-muted);margin:0;font-size:.8125rem}.hv-card__aside{font-variant-numeric:tabular-nums;text-align:right;flex:none}.hv-card__body{gap:var(--hv-space-2);flex-direction:column;display:flex}.hv-segmented{gap:var(--hv-space-1);padding:var(--hv-space-1);background:var(--hv-surface-sunken);border-radius:var(--hv-radius-pill);flex-wrap:wrap;display:flex}.hv-segmented--vertical{border-radius:var(--hv-radius-md);flex-direction:column}.hv-segmented__item{overflow-wrap:break-word;min-width:0;min-height:var(--hv-touch);padding:var(--hv-space-2) var(--hv-space-3);border-radius:var(--hv-radius-pill);font:inherit;color:var(--hv-ink-muted);cursor:pointer;transition:background-color var(--hv-dur-fast) ease-out, color var(--hv-dur-fast) ease-out;background:0 0;border:1px solid #0000;flex:8rem;font-weight:600}.hv-segmented__item.is-selected{color:var(--hv-ink);background:var(--hv-accent-soft);border-color:var(--hv-accent-edge)}.hv-pill-group{gap:var(--hv-space-2);flex-direction:column;display:flex}.hv-pill{align-items:center;gap:var(--hv-space-3);width:100%;min-height:var(--hv-touch);padding:var(--hv-space-3);border:1px solid var(--hv-surface-edge);border-radius:var(--hv-radius-md);font:inherit;color:var(--hv-ink);text-align:start;background:color-mix(in srgb, var(--hv-bg-table) 55%, var(--hv-tile-light-fill));cursor:pointer;transition:background-color var(--hv-dur-fast) ease-out, border-color var(--hv-dur-fast) ease-out;display:flex}.hv-pill:hover:not(:disabled){border-color:var(--hv-accent-edge)}.hv-pill.is-selected{background:var(--hv-accent-soft);border-color:var(--hv-accent-edge)}.hv-pill:disabled{opacity:.45;cursor:not-allowed}.hv-pill__icon,.hv-toggle__icon{flex:none;align-items:center;display:inline-flex}.hv-pill__text{gap:var(--hv-space-1);flex-direction:column;flex:auto;min-width:0;display:flex}.hv-pill__label{font-weight:600}.hv-pill__hint{color:var(--hv-ink-muted);font-size:.8125rem}.hv-pill__trailing{font-variant-numeric:tabular-nums;color:var(--hv-ink-muted);white-space:nowrap;flex:none;font-size:.75rem;font-weight:600}.hv-toggle{align-items:center;gap:var(--hv-space-3);width:100%;min-height:var(--hv-touch);padding:var(--hv-space-2) var(--hv-space-1);border-radius:var(--hv-radius-md);font:inherit;color:var(--hv-ink);text-align:start;cursor:pointer;background:0 0;border:0;display:flex}.hv-toggle:disabled{opacity:.45;cursor:not-allowed}.hv-toggle__text{gap:var(--hv-space-1);flex-direction:column;flex:auto;min-width:0;display:flex}.hv-toggle__label{font-weight:600}.hv-toggle__hint{color:var(--hv-ink-muted);font-size:.8125rem}.hv-toggle__track{border:1px solid var(--hv-surface-edge);border-radius:var(--hv-radius-pill);background:var(--hv-surface-sunken);width:2.75rem;height:1.625rem;transition:background-color var(--hv-dur-fast) ease-out, border-color var(--hv-dur-fast) ease-out;flex:none;position:relative}.hv-toggle__thumb{background:var(--hv-bg-table);width:1.125rem;height:1.125rem;box-shadow:var(--hv-shadow-tile);transition:transform var(--hv-dur-fast) ease-out;border-radius:50%;position:absolute;top:.1875rem;left:.1875rem}.hv-toggle.is-checked .hv-toggle__track{background:var(--hv-accent);border-color:var(--hv-accent)}.hv-toggle.is-checked .hv-toggle__thumb{transform:translate(1.125rem)}.hv-bugmark,.hv-persona-avatar{filter:drop-shadow(var(--hv-shadow-tile));display:block}.hv-scrim{z-index:100;padding:var(--hv-space-4);background:color-mix(in srgb, var(--hv-bg-table-dim) 72%, transparent);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.hv-scrim--bottom{align-items:flex-end;padding:0}.hv-scrim--animated{animation:hv-fade-in var(--hv-dur-fast) ease-out}.hv-modal{gap:var(--hv-space-3);width:min(34rem,100%);max-height:min(85vh,44rem);padding:var(--hv-space-5);background:var(--hv-surface);border:1px solid var(--hv-surface-edge);border-radius:var(--hv-radius-lg);box-shadow:var(--hv-shadow-tile);flex-direction:column;display:flex;overflow:auto}.hv-modal--animated{animation:hv-rise-in var(--hv-dur-medium) ease-out}.hv-modal__header{justify-content:space-between;align-items:flex-start;gap:var(--hv-space-3);display:flex}.hv-modal__title{margin:0;font-size:1.25rem;font-weight:700}.hv-modal__close{flex:none;padding:0;font-size:1.5rem;line-height:1}.hv-modal__description{color:var(--hv-ink-muted);margin:0}.hv-modal__body{overflow:auto}.hv-modal__footer{justify-content:flex-end;gap:var(--hv-space-2);display:flex}.hv-sheet{gap:var(--hv-space-3);width:min(30rem,100%);max-height:85vh;padding:var(--hv-space-3) var(--hv-space-4) var(--hv-space-5);background:var(--hv-surface);border:1px solid var(--hv-surface-edge);border-radius:var(--hv-radius-lg) var(--hv-radius-lg) 0 0;box-shadow:var(--hv-shadow-tile);flex-direction:column;display:flex;overflow:auto}.hv-sheet--animated{animation:hv-slide-up var(--hv-dur-medium) ease-out}.hv-sheet__handle{border-radius:var(--hv-radius-pill);background:var(--hv-ink-faint);align-self:center;width:2.5rem;height:.25rem}.hv-sheet__title{margin:0;font-size:1rem;font-weight:700}.hv-sheet__body{gap:var(--hv-space-2);flex-direction:column;display:flex}.nectar{z-index:2;border:1px solid var(--hv-tile-light-edge);background:color-mix(in srgb, var(--hv-bg-table) 82%, transparent);pointer-events:none;border-radius:999px;align-items:center;gap:.25rem;padding:.25rem .5rem;display:flex;position:absolute;top:.5rem;left:.5rem}.nectar-right .nectar{left:auto;right:.5rem}.nectar--active{border-color:#d08a1e;box-shadow:0 0 0 2px #d08a1e4d}.nectar__drop{object-fit:contain;border-radius:50%;width:.9rem;height:.9rem}span.nectar__drop{border:2px solid color-mix(in srgb, var(--hv-tile-light-edge) 70%, #6b4f1d)}span.nectar__drop--full{background:radial-gradient(circle at 35% 30%,#f5c46a,#cf8a1c 70%);border-color:#d08a1e}.nectar__count{font-variant-numeric:tabular-nums;opacity:.75;margin-inline-start:.15rem;font-size:.72rem}.spells{z-index:2;background:linear-gradient(to top, color-mix(in srgb, var(--hv-bg-table) 88%, transparent), transparent);pointer-events:none;justify-items:center;gap:.35rem;padding:.4rem .5rem .6rem;display:grid;position:absolute;bottom:0;left:0;right:0}.spells__hand{pointer-events:auto;gap:.45rem;margin:0;padding:0;list-style:none;display:flex}.spells__card{width:4.6rem;min-height:max(5.4rem, calc(var(--hv-geometry-min-touch-target-px) * 1px));background-color:var(--hv-tile-light-fill);color:#4a3a1c;font:inherit;text-align:center;cursor:pointer;background-position:50%;background-size:100% 100%;border:0;border-radius:.45rem;grid-template-rows:1fr auto auto;justify-items:center;gap:.1rem;padding:.35rem .3rem .3rem;font-size:.68rem;line-height:1.15;display:grid}.spells__card:disabled{cursor:default;filter:grayscale(.7);opacity:.45}.spells__card--aiming{outline-offset:2px;outline:2px solid #7b5cff;box-shadow:0 0 12px #7b5cff8c}.spells__emblem{object-fit:contain;width:2.5rem;height:2.5rem}.spells__mark{opacity:.7;background:currentColor;border-radius:.25rem;width:1.6rem;height:1.6rem}.spells__mark--wag{background:#43a64a}.spells__mark--pro{background:#d08a1e}.spells__mark--web{background:#c7cbd1}.spells__mark--swa{background:#9c86d8}.spells__mark--jel{background:#f4e2b8}.spells__mark--nec{background:#f0a93c;border-radius:50%}.spells__name{white-space:nowrap;font-weight:600}.spells__cost{font-variant-numeric:tabular-nums;opacity:.7}.spells__aiming{background:color-mix(in srgb, var(--hv-bg-table) 92%, transparent);text-align:center;pointer-events:auto;border-radius:.4rem;max-width:34rem;margin:0;padding:.2rem .5rem;font-size:.78rem;line-height:1.35}@media (width<=30rem){.spells__card{width:3.9rem;min-height:4.6rem;font-size:.62rem}.spells__emblem{width:2rem;height:2rem}}.hv-moves{gap:var(--hv-space-2);flex-direction:column;min-width:0;display:flex}.hv-moves__header{gap:var(--hv-space-1);flex-direction:column;display:flex}.hv-moves__title{color:var(--hv-ink);margin:0;font-size:1rem;font-weight:600}.hv-moves__hint,.hv-moves__empty,.hv-moves__status{color:var(--hv-ink-muted);margin:0;font-size:.85rem}.hv-moves__status:empty{display:none}.hv-moves__list{gap:var(--hv-space-1);flex-direction:column;max-height:40vh;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.hv-moves__item{margin:0}.hv-moves__move{align-items:center;gap:var(--hv-space-2);width:100%;min-height:var(--hv-touch);padding:var(--hv-space-2) var(--hv-space-3);border-radius:var(--hv-radius-sm);font:inherit;font-variant-numeric:tabular-nums;color:var(--hv-ink);text-align:start;cursor:pointer;transition:background-color var(--hv-dur-fast) ease-out;background:0 0;border:1px solid #0000;display:flex}.hv-moves__move:hover{background:var(--hv-surface-sunken)}.hv-moves__move.is-selected{border-color:var(--hv-accent-edge);background:var(--hv-accent-soft)}.hv-moves__move:focus-visible{box-shadow:0 0 0 2px var(--hv-bg-table), 0 0 0 4px var(--hv-tile-dark-fill);outline:none}.hv-moves__dot{border:1px solid var(--hv-tile-light-edge);border-radius:50%;flex:none;width:.7rem;height:.7rem}.hv-moves__dot[data-color=w]{background:var(--hv-tile-light-fill)}.hv-moves__dot[data-color=b]{border-color:var(--hv-tile-dark-edge);background:var(--hv-tile-dark-fill)}.hv-moves__notation{overflow-wrap:anywhere;min-width:0}.hv-lens__hint{color:var(--hv-ink-muted);margin:0;font-size:.8rem;line-height:1.45}.hv-about{gap:var(--hv-space-4);max-width:46rem;padding:var(--hv-space-5) var(--hv-space-4);flex-direction:column;margin:0 auto;display:flex}.hv-about__header{gap:var(--hv-space-2);flex-direction:column;display:flex}.hv-about__title{font-family:var(--hv-typography-display);color:var(--hv-ink);margin:0;font-size:clamp(1.6rem,6vw,2.25rem);font-weight:600}.hv-about__subtitle,.hv-about__body{color:var(--hv-ink-muted);margin:0;font-size:.95rem;line-height:1.5}.hv-about__body+.hv-about__body{margin-top:var(--hv-space-3)}.hv-about__credits{gap:var(--hv-space-3);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.hv-about__credit{gap:var(--hv-space-1) var(--hv-space-3);grid-template-columns:minmax(0,1fr) auto;align-items:baseline;display:grid}.hv-about__name{min-height:var(--hv-touch);color:var(--hv-ink);-webkit-text-decoration-color:var(--hv-ink-faint);text-decoration-color:var(--hv-ink-faint);align-items:center;font-weight:600;display:inline-flex}.hv-about__name:focus-visible{box-shadow:0 0 0 2px var(--hv-bg-table), 0 0 0 4px var(--hv-tile-dark-fill);outline:none}.hv-about__licence{color:var(--hv-ink-muted);text-align:end;font-size:.85rem}.hv-about__use{color:var(--hv-ink-muted);grid-column:1/-1;font-size:.9rem;line-height:1.45}.rules-reader{gap:var(--hv-space-4);max-width:44rem;margin:0 auto;display:grid}.rules-reader__switch{gap:var(--hv-space-2);justify-items:start;display:grid}.rules-reader__switch-label{letter-spacing:.06em;text-transform:uppercase;opacity:.6;font-size:.78rem;font-weight:600}.rules-reader__options{gap:var(--hv-space-1);padding:var(--hv-space-1);background:var(--hv-surface-sunken);border-radius:var(--hv-radius-pill);flex-wrap:wrap;display:flex}.rules-reader__option{min-width:0;min-height:var(--hv-touch);padding:var(--hv-space-2) var(--hv-space-4);border-radius:var(--hv-radius-pill);font:inherit;color:var(--hv-ink-muted);cursor:pointer;background:0 0;border:1px solid #0000;flex:none;font-weight:600}.rules-reader__option[data-selected]{color:var(--hv-ink);background:var(--hv-accent-soft);border-color:var(--hv-accent-edge)}.rules-reader__title{margin:0 0 var(--hv-space-2);font-family:var(--hv-typography-display);font-size:1.15rem}.rules-reader__rule{margin:0 0 var(--hv-space-3)}.rules-reader__rule h3{gap:var(--hv-space-2);margin:0 0 var(--hv-space-1);flex-wrap:wrap;align-items:baseline;font-size:1rem;display:flex}.rules-reader__spec{font-variant-numeric:tabular-nums;opacity:.5;font-size:.75rem}.rules-reader__rule p,.rules-reader__note{margin:0 0 var(--hv-space-2);color:var(--hv-ink-muted);line-height:1.5}.rules-reader__short{gap:var(--hv-space-2);color:var(--hv-ink-muted);margin:0;padding-left:1.1rem;line-height:1.5;display:grid}.rules-reader__short b{color:var(--hv-ink)}.game{background:var(--hv-bg-table);grid-template-rows:auto 1fr auto;height:100%;min-height:0;display:grid}.game__bar{color:var(--hv-ink-on-table);justify-content:space-between;align-items:center;gap:var(--hv-space-3);padding:var(--hv-space-3) var(--hv-space-4);display:flex}.game__turn{font-variant-numeric:tabular-nums;text-overflow:ellipsis;white-space:nowrap;min-width:0;margin:0;font-weight:600;overflow:hidden}.game__bar>.hv-btn{flex:none}.game__who{align-items:center;min-width:0;display:flex}.game__players{gap:var(--hv-space-2);margin:0;padding:0;list-style:none;display:flex}.game__player{gap:var(--hv-space-2);padding:var(--hv-space-1) var(--hv-space-3);border-radius:var(--hv-radius-pill);opacity:.55;transition:opacity var(--hv-dur-fast) ease-out;border:1px solid #0000;align-items:center;font-size:.9rem;display:flex}.game__player[data-active=true]{border-color:var(--hv-accent);background:var(--hv-surface);box-shadow:var(--hv-shadow-tile);opacity:1;font-weight:600}.game__player[data-active=true]:before{content:"▸";color:var(--hv-accent);line-height:1}.game__player-tile{clip-path:polygon(50% 0%,100% 25%,100% 75%,50% 100%,0% 75%,0% 25%);flex:none;width:.85rem;height:.95rem}.game__player[data-color=w] .game__player-tile{background:var(--hv-tile-light-fill);box-shadow:inset 0 0 0 1px var(--hv-tile-light-edge)}.game__player[data-color=b] .game__player-tile{background:var(--hv-tile-dark-fill);box-shadow:inset 0 0 0 1px var(--hv-tile-dark-edge)}.game__clock{font-variant-numeric:tabular-nums;letter-spacing:.01em}.game__clock[data-low=true]{color:var(--hv-bug-l);font-weight:700}.game__clock[data-flagged=true]{text-decoration:line-through}.game__footer{gap:var(--hv-space-3);padding:var(--hv-space-3) var(--hv-space-4);justify-content:space-between;align-items:flex-end;display:flex}.game__persona{gap:var(--hv-space-2);flex:none;align-items:center;display:flex;position:relative}.game__persona-name{font-size:.9rem;font-weight:600}.postgame__bark{margin:var(--hv-space-3) 0 0;padding:var(--hv-space-2) var(--hv-space-3);border-radius:var(--hv-radius-md);background:var(--hv-surface-sunken);font-size:.95rem;line-height:1.4}.game__board{touch-action:none;min-height:0;position:relative}.game__board canvas{width:100%;height:100%;display:block}.game__pass{gap:var(--hv-space-2);justify-items:center;margin-inline:auto;display:grid}.game__pass-hint,.postgame__reason,.postgame__assisted{opacity:.75;margin:0;font-size:.95rem}.game__confirm-actions,.postgame__actions{gap:var(--hv-space-2);margin-top:var(--hv-space-4);flex-wrap:wrap;display:flex}@media (width<=420px){.game .hv-moves{display:none}.game__confirm-actions,.postgame__actions{flex-direction:column}.game__bar{gap:var(--hv-space-2);padding-inline:var(--hv-space-3)}.game__player{gap:var(--hv-space-1);padding-inline:var(--hv-space-2);font-size:.82rem}.game__turn,.game__bar>.hv-btn{font-size:.88rem}}@media (height<=30rem) and (orientation:landscape){.game .hv-moves{display:none}.game__bar{gap:var(--hv-space-2);min-height:2.5rem;padding:.35rem var(--hv-space-3)}.game__turn,.game__bar>.hv-btn{font-size:.82rem}.game__bar>.hv-btn{min-height:2rem;padding:.25rem .6rem}}.boot__actions{gap:var(--hv-space-2);flex-wrap:wrap;justify-content:center;display:flex}.game__degraded{inset-inline:0;z-index:3;background:color-mix(in srgb, var(--hv-bg-table-dim) 88%, transparent);max-width:min(30rem,92vw);color:var(--hv-tile-dark-fill);text-align:center;border-radius:.6rem;margin:0 auto;padding:.4rem .75rem;font-size:.8rem;line-height:1.35;position:absolute;bottom:.5rem}.home{color:var(--hv-ink-on-table);background-color:var(--hv-bg-table);background-repeat:repeat;background-size:512px 512px;place-items:center;height:100%;padding:clamp(1rem,4vw,2.5rem);display:grid;position:relative;overflow:hidden auto}.home__ornament{pointer-events:none;position:absolute;inset:0}.home__corner{width:clamp(9rem,24vmin,18rem);height:auto;position:absolute}.home__corner--top-left{top:0;left:0}.home__corner--top-right{top:0;right:0}.home__corner--bottom-left{bottom:0;left:0}.home__corner--bottom-right{bottom:0;right:0}.home__orn{width:var(--home-orn,clamp(5.5rem, 17vmin, 11rem));aspect-ratio:1;place-items:center;display:inline-grid;position:absolute}.home__tile-face,.home__tile-bug{object-fit:contain;grid-area:1/1;width:100%;height:100%}.home__tile-bug{width:70%;height:70%}.home__orn--top-left{top:9%;left:3%}.home__orn--top-right{top:7%;right:3%}.home__orn--bottom-left{bottom:11%;left:4%}.home__orn--bottom-right{bottom:9%;right:3%}.home__stage{z-index:1;justify-items:center;gap:clamp(.65rem,2.2vh,1.4rem);width:min(36rem,92vw);display:grid;position:relative}.home__head{justify-items:center;width:100%;margin-bottom:clamp(1.25rem,6vh,3.5rem);display:grid}.home__title--art{place-items:center;width:100%;margin:0;display:grid;position:relative}.home__title--art img{width:100%;max-width:none;height:auto;display:block}.home__title--art .home__title-text{clip-path:inset(50%);white-space:nowrap;block-size:1px;inline-size:1px;position:absolute;overflow:hidden}.home__title{filter:drop-shadow(0 1px #ffffff59)drop-shadow(0 2px 3px #3a260c59);color:#0000;font-family:var(--hv-typography-display);letter-spacing:.06em;text-align:center;text-transform:uppercase;-webkit-text-fill-color:transparent;background:linear-gradient(178deg,#6f4f1d 0%,#b98f3c 38%,#5d4013 72%,#a8801f 100%);-webkit-background-clip:text;background-clip:text;margin:0;font-size:clamp(2.4rem,11vmin,4.5rem);font-weight:600;line-height:1}.home__title--art{-webkit-text-fill-color:initial;background:0 0}.home__actions{gap:clamp(.4rem,1.15vh,.7rem);width:min(30rem,100%);display:grid}.home__plate{position:relative}.home__plate--art{background:var(--home-plate-left) left center / auto 100% no-repeat, var(--home-plate-right) right center / auto 100% no-repeat, var(--home-plate-mid) center center / auto 100% repeat-x;width:100%;height:clamp(3rem,7.4vh,4.15rem);filter:drop-shadow(0 calc(var(--hv-shadow-offset-y) * 1px) calc(var(--hv-shadow-blur) * .6px) color-mix(in srgb, var(--hv-shadow-color) 26%, transparent))}.home__plate--art .home__plate-button{background:0 0;border:0;width:100%;height:100%}.home__plate--drawn{--home-notch:1.4rem;clip-path:polygon(0 50%, var(--home-notch) 0, calc(100% - var(--home-notch)) 0, 100% 50%, calc(100% - var(--home-notch)) 100%, var(--home-notch) 100%);background:linear-gradient(#d9bb79,#a8843d 55%,#d0ad63);padding:2px}.home__plate--drawn .home__plate-button{width:100%;clip-path:polygon(0 50%, calc(var(--home-notch) - 2px) 0, calc(100% - var(--home-notch) + 2px) 0, 100% 50%, calc(100% - var(--home-notch) + 2px) 100%, calc(var(--home-notch) - 2px) 100%);background:linear-gradient(180deg, var(--hv-tile-light-fill), var(--hv-bg-table));border:0;border-radius:0}.home__plate-button{color:#3f2f1c;font-family:var(--hv-typography-display);letter-spacing:.01em;font-size:clamp(1rem,2.7vmin,1.35rem);font-weight:600}.home__plate--primary .home__plate-button{font-weight:700}.home__plate--art:hover{filter:drop-shadow(0 calc(var(--hv-shadow-offset-y) * 1px) calc(var(--hv-shadow-blur) * .6px) color-mix(in srgb, var(--hv-shadow-color) 26%, transparent)) brightness(1.04)}.home__plate--art:active{translate:0 1px}.home__plate--drawn .home__plate-button:hover:not(:disabled){background:linear-gradient(180deg, #fdf7e6, var(--hv-tile-light-fill))}.home__plate--drawn:has(.home__plate-button:focus-visible){background:var(--hv-cell-selected-stroke)}.home__plate--art:has(.home__plate-button:focus-visible){outline:calc(var(--hv-cell-selected-stroke-width) * 1px) solid var(--hv-cell-selected-stroke);outline-offset:3px}.home__foot{flex-wrap:wrap;justify-content:center;align-items:center;gap:.75rem 1.25rem;width:min(30rem,100%);display:flex}.home__about{min-height:auto;color:var(--hv-tile-dark-fill);opacity:.72;text-underline-offset:.22em;background:0 0;border:0;padding:.35rem .5rem;font-size:.85rem;text-decoration:underline}.home__about:hover{opacity:1}@media (width<=46rem){.home__orn{--home-orn:clamp(4rem, 18vw, 6.25rem)}.home__orn--top-left{top:2%;left:0}.home__orn--top-right{top:2%;right:0}.home__orn--bottom-left{bottom:2%;left:0}.home__orn--bottom-right{bottom:2%;right:0}.home__corner{opacity:.85;width:clamp(7rem,32vw,11rem)}.home__title--art{width:100%}}@media (height<=30rem) and (orientation:landscape){.home__ornament{opacity:.45}.home__orn{display:none}.home__stage{gap:.45rem}.home__title--art{width:min(72%,24rem)}.home__head{margin-bottom:.4rem}.home__actions{gap:.28rem}.home__plate--art{height:clamp(2.25rem,9vh,3rem)}}@media (prefers-reduced-motion:reduce){.home__plate--art:active{translate:none}}.settings{color:var(--hv-ink-on-table);grid-template-columns:minmax(0,1fr);align-content:start;gap:clamp(.75rem,2vh,1.25rem);width:min(34rem,100%);min-height:100%;margin:0 auto;padding:clamp(1rem,4vw,2rem);display:grid}.settings__head{justify-content:space-between;align-items:center;gap:1rem;display:flex}.settings__title{font-family:var(--hv-typography-display);margin:0;font-size:clamp(1.6rem,6vw,2.25rem);font-weight:600}.settings__section{letter-spacing:.06em;text-transform:uppercase;opacity:.6;margin:0 0 .5rem;font-size:.78rem;font-weight:600}.settings__hint{opacity:.72;margin:.5rem 0 0;font-size:.85rem;line-height:1.4}.settings__slider{gap:.4rem;margin-top:.75rem;display:grid}.settings__slider-label{justify-content:space-between;align-items:baseline;font-size:.95rem;display:flex}.settings__value{font-variant-numeric:tabular-nums;opacity:.7;font-size:.85rem}.settings__slider input[type=range]{width:100%;height:calc(var(--hv-geometry-min-touch-target-px) * 1px);accent-color:var(--hv-cell-selected-stroke);cursor:pointer;background:0 0}.settings__check{flex-wrap:wrap;align-items:center;gap:.5rem 1rem;margin-top:.9rem;display:flex}.settings__check .settings__hint{flex:14rem;margin:0}.online{grid-template-columns:1fr min(22rem,32vw);height:100%;min-height:0;display:grid}.online>:first-child{min-width:0;min-height:0;position:relative}.online__panel{border-inline-start:1px solid var(--hv-tile-light-edge);background:color-mix(in srgb, var(--hv-bg-table) 92%, var(--hv-tile-light-fill));flex-direction:column;gap:.6rem;min-height:0;padding:.75rem;display:flex}.online__head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;display:flex}.online__seat{margin:0;font-size:.9rem;font-weight:600}.online__note,.online__error{margin:0;font-size:.85rem;line-height:1.4}.online__note{opacity:.75}.online__error{color:var(--hv-bug-l)}.online__alerts{text-underline-offset:.2em;justify-self:start;padding:.2rem 0;font-size:.82rem;text-decoration:underline}.online__chat{overscroll-behavior:contain;flex:1;min-height:0;margin:0;padding:0;list-style:none;overflow-y:auto}.online__line{background:var(--hv-tile-light-fill);border-radius:.6rem;gap:.1rem;margin-bottom:.5rem;padding:.4rem .55rem;font-size:.88rem;line-height:1.35;display:grid}.online__line--room{opacity:.7;text-align:center;background:0 0;font-style:italic}.online__from{letter-spacing:.02em;opacity:.65;text-transform:uppercase;font-size:.74rem;font-weight:600}.online__text{overflow-wrap:anywhere}.online__compose{gap:.4rem;display:flex}.online__compose input{min-width:0;min-height:calc(var(--hv-geometry-min-touch-target-px) * 1px);border:1px solid var(--hv-tile-light-edge);background:var(--hv-tile-light-fill);color:inherit;border-radius:.6rem;flex:1;padding:0 .6rem;font-family:inherit;font-size:.9rem}@media (width<=46rem){.online{grid-template-rows:minmax(0,1fr) auto;grid-template-columns:1fr;height:100dvh}.online__panel{border-inline-start:0;border-block-start:1px solid var(--hv-tile-light-edge);max-height:min(42dvh,18rem);overflow:hidden}.online__chat{min-height:4.5rem}.online__panel .hv-moves{display:none}}.online__compose input{scroll-margin-block-end:1rem}@media (height<=30rem) and (orientation:landscape){.online{grid-template-rows:minmax(0,1fr);grid-template-columns:minmax(0,1fr) minmax(10rem,16rem);height:100dvh}.online__panel{border-block-start:0;border-inline-start:1px solid var(--hv-tile-light-edge);gap:.35rem;max-height:none;padding:.5rem;overflow-y:auto}.online__head{gap:.35rem}.online__head .hv-btn,.online__compose .hv-btn{min-height:2.25rem;padding-inline:.6rem;font-size:.82rem}.online__seat,.online__note,.online__error{font-size:.78rem;line-height:1.25}.online__chat-title,.online__chat,.online__empty,.online__compose{display:none}}.online__claim{border:1px dashed var(--hv-tile-light-edge);border-radius:.7rem;gap:.4rem;padding:.6rem;display:grid}.online__chat-title{letter-spacing:.04em;opacity:.6;text-transform:uppercase;margin:0;font-size:.78rem;font-weight:600}.online__empty{opacity:.6;padding:.5rem 0;font-size:.85rem;line-height:1.4}.online--gone{height:100%;padding:var(--hv-space-4);place-items:center;display:grid}.online__gone-card{gap:var(--hv-space-3);width:min(26rem,100%);padding:var(--hv-space-5);text-align:center;background:var(--hv-surface);border:1px solid var(--hv-surface-edge);border-radius:var(--hv-radius-lg);justify-items:center;display:grid}.online__gone-card h1{margin:0;font-size:1.3rem}.online__gone-card p{color:var(--hv-ink-muted);margin:0;line-height:1.45}.puzzles{background:var(--hv-bg-table);height:100%;color:var(--hv-ink);grid-template-columns:minmax(0,1fr) minmax(17rem,22rem);display:grid;overflow:hidden}.puzzles--empty{gap:var(--hv-space-4);padding:var(--hv-space-4);flex-direction:column;display:flex}.puzzles__play{min-width:0;height:100%;min-height:0}.puzzles__panel{gap:var(--hv-space-3);min-height:0;padding:var(--hv-space-4);background:color-mix(in srgb, var(--hv-surface) 88%, var(--hv-bg-table));border-left:1px solid var(--hv-surface-edge);flex-direction:column;display:flex;overflow:auto}.puzzles__top{align-items:flex-start;gap:var(--hv-space-3);display:flex}.puzzles__top h1{margin:0;font-size:1.3rem}.puzzles__top p,.puzzles__counter,.puzzles__idea,.puzzles__attempts,.puzzles__note,.puzzles__solution{color:var(--hv-ink-muted);margin:0;line-height:1.4}.puzzles__counter,.puzzles__attempts{font-variant-numeric:tabular-nums;font-size:.9rem}.puzzles__idea{padding:var(--hv-space-3);border:1px solid var(--hv-surface-edge);border-radius:var(--hv-radius-md);background:var(--hv-surface-sunken)}.puzzles__status{padding:var(--hv-space-3);border-radius:var(--hv-radius-md);margin:0;font-weight:600;line-height:1.35}.puzzles__status--solved{background:color-mix(in srgb, var(--hv-bug-a) 18%, var(--hv-surface))}.puzzles__status--wrong{background:color-mix(in srgb, var(--hv-bug-l) 18%, var(--hv-surface))}.puzzles__actions{gap:var(--hv-space-2);grid-template-columns:1fr 1fr;display:grid}.puzzles__pick[data-selected=true]{border-color:var(--hv-accent-edge);background:var(--hv-accent-soft)}.puzzles__progress{color:var(--hv-ink-muted);margin:0}.puzzles__medals{border-top:1px solid var(--hv-surface-edge);padding-top:var(--hv-space-3)}.puzzles__medals-title{margin:0 0 var(--hv-space-2);font-size:1rem}.puzzles__medal-row{gap:var(--hv-space-2);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.puzzles__medal{text-align:center;justify-items:center;gap:.25rem;display:grid}.puzzles__medal-face{clip-path:polygon(50% 0%,100% 25%,100% 75%,50% 100%,0% 75%,0% 25%);background:var(--hv-surface-sunken);block-size:2.1rem;inline-size:1.9rem;color:var(--hv-ink-muted);font-variant-numeric:tabular-nums;place-items:center;font-size:.8rem;font-weight:600;display:grid}.puzzles__medal[data-won] .puzzles__medal-face{background:var(--hv-accent-soft);color:var(--hv-ink);box-shadow:inset 0 0 0 2px var(--hv-accent-edge)}.puzzles__medal-name{clip-path:inset(50%);white-space:nowrap;block-size:1px;inline-size:1px;position:absolute;overflow:hidden}.puzzles__medals-next{color:var(--hv-ink-muted);margin:var(--hv-space-2) 0 0}.puzzles__medal-won{border:1px solid var(--hv-accent-edge);background:var(--hv-accent-soft);border-radius:var(--hv-radius-md);padding:var(--hv-space-2);margin:0;font-weight:600}.puzzles__group{margin:0}.puzzles__group-title{color:var(--hv-ink-muted);margin:var(--hv-space-3) 0 var(--hv-space-2);font-size:.85rem;font-weight:600}.puzzles__list{grid-template-columns:repeat(auto-fill,minmax(2.6rem,1fr));gap:.35rem;margin:0;padding:0;list-style:none;display:grid}.puzzles__pick{border:1px solid var(--hv-surface-edge);border-radius:var(--hv-radius-md);background:var(--hv-surface);block-size:2.6rem;inline-size:100%;color:var(--hv-ink);font:inherit;font-variant-numeric:tabular-nums;cursor:pointer;place-items:center;padding:0;display:grid}.puzzles__pick[data-solved]{background:var(--hv-accent-soft);border-color:var(--hv-accent-edge)}.puzzles__pick[data-selected]{outline:2px solid var(--hv-accent-edge);outline-offset:1px;font-weight:700}@media (width<=860px){.puzzles{grid-template-rows:minmax(0,52dvh) minmax(0,1fr);grid-template-columns:1fr}.puzzles__panel{border-top:1px solid var(--hv-surface-edge);border-left:0}}@media (width<=460px){.puzzles{grid-template-rows:minmax(0,46dvh) minmax(0,1fr)}.puzzles__panel{padding:var(--hv-space-3)}.puzzles__actions{grid-template-columns:1fr}}.puzzles__step{gap:var(--hv-space-2);grid-template-columns:1fr 1fr;display:grid}.setup{color:var(--hv-ink-on-table);gap:var(--hv-space-5);width:100%;max-width:34rem;min-height:100%;padding:var(--hv-space-5) var(--hv-space-4) calc(var(--hv-space-6) + env(safe-area-inset-bottom));flex-direction:column;margin:0 auto;display:flex}.setup__header{justify-content:space-between;align-items:flex-start;gap:var(--hv-space-4);flex-wrap:wrap;display:flex}.setup__heading{gap:var(--hv-space-1);flex-direction:column;min-width:0;display:flex}.setup__title{font-family:var(--hv-typography-display);letter-spacing:-.01em;margin:0;font-size:clamp(1.75rem,7vw,2.5rem);font-weight:600}.setup__subtitle{color:var(--hv-ink-muted);margin:0;font-size:.9375rem}.setup__locale{flex:none}.setup__cards{gap:var(--hv-space-4);flex-direction:column;display:flex}.setup__footer{align-items:center;gap:var(--hv-space-2);padding-top:var(--hv-space-4);background:linear-gradient(to bottom, transparent, var(--hv-bg-table) var(--hv-space-4));flex-direction:column;margin-top:auto;display:flex;position:sticky;bottom:0}.setup__start{max-width:24rem}@media (width<=26rem){.setup{padding-inline:var(--hv-space-3)}.setup__header{flex-direction:column}}.tutorial{background:var(--hv-bg-table);height:100%;color:var(--hv-ink);grid-template-rows:auto minmax(0,1fr) auto auto;display:grid}.tutorial--outro{padding:var(--hv-space-5);place-content:center;display:grid}.tutorial__outro-actions{gap:var(--hv-space-3);flex-wrap:wrap;display:flex}.tutorial__bar{gap:var(--hv-space-3);padding:var(--hv-space-3) var(--hv-space-4);justify-content:space-between;align-items:center;display:flex}.tutorial__heading{min-width:0}.tutorial__title{font-family:var(--hv-typography-display);margin:0;font-size:1.25rem;font-weight:600}.tutorial__progress{color:var(--hv-ink-muted);font-variant-numeric:tabular-nums;margin:0;font-size:.85rem}.tutorial__stage{min-height:0;position:relative}.tutorial__board{touch-action:none;width:100%;height:100%}.tutorial__board canvas{width:100%;height:100%;display:block}.tutorial__board[data-shake="0"],.tutorial__board[data-shake="1"]{animation:tutorial-shake var(--hv-dur-medium) ease-out}@keyframes tutorial-shake{0%,to{transform:none}25%{transform:translate(-.35rem)}60%{transform:translate(.25rem)}}.tutorial__board-fallback{padding:var(--hv-space-4);color:var(--hv-ink-muted);text-align:center;place-content:center;margin:0;font-size:.9rem;display:grid;position:absolute;inset:0}.tutorial__speech{gap:var(--hv-space-2);padding:var(--hv-space-3) var(--hv-space-4);border-top:1px solid var(--hv-surface-edge);background:var(--hv-surface);display:grid}.tutorial__speaker{color:var(--hv-ink-faint);letter-spacing:.06em;text-transform:uppercase;margin:0;font-size:.72rem;font-weight:600}.tutorial__lines{gap:var(--hv-space-2);margin:0;padding:0;list-style:none;display:grid}.tutorial__line{padding-left:var(--hv-space-3);border-left:3px solid var(--hv-surface-edge);font-size:.95rem;line-height:1.4}.tutorial__line--intro{color:var(--hv-ink-muted)}.tutorial__line--task{border-left-color:var(--hv-accent);font-weight:500}.tutorial__line--fail{border-left-color:var(--hv-bug-q,var(--hv-accent))}.tutorial__line--success,.tutorial__line--outro{border-left-color:var(--hv-accent-edge)}.tutorial__actions{gap:var(--hv-space-2);flex-wrap:wrap;display:flex}.tutorial__actions:empty{display:none}.tutorial__steps{padding:var(--hv-space-2) var(--hv-space-4) var(--hv-space-3);overscroll-behavior-x:contain;overflow-x:auto}.tutorial__step-list{gap:var(--hv-space-2);margin:0;padding:0;list-style:none;display:flex}.tutorial__step{gap:var(--hv-space-2);min-height:var(--hv-touch);padding:var(--hv-space-1) var(--hv-space-3);border:1px solid var(--hv-surface-edge);border-radius:var(--hv-radius-pill);color:inherit;font:inherit;white-space:nowrap;cursor:pointer;transition:background var(--hv-dur-fast) ease-out;background:0 0;align-items:center;font-size:.85rem;display:flex}.tutorial__step:hover{background:var(--hv-surface-sunken)}.tutorial__step[aria-current=step]{border-color:var(--hv-accent);background:var(--hv-surface);font-weight:600}.tutorial__step[data-done=true]{border-color:var(--hv-accent-edge)}.tutorial__step-number{border-radius:var(--hv-radius-pill);background:var(--hv-surface-sunken);font-variant-numeric:tabular-nums;place-items:center;width:1.4rem;height:1.4rem;display:grid}.tutorial__step[data-done=true] .tutorial__step-number{background:var(--hv-accent-soft)}.tutorial__step-done{color:var(--hv-ink-faint);text-transform:lowercase;font-size:.72rem}@media (prefers-reduced-motion:reduce){.tutorial__board[data-shake="0"],.tutorial__board[data-shake="1"]{animation:none}}.tutorial__card{gap:var(--hv-space-2);padding:var(--hv-space-3) var(--hv-space-4);border-top:1px solid var(--hv-surface-edge);background:var(--hv-surface);display:grid}.tutorial__card-lead{gap:var(--hv-space-2);flex-wrap:wrap;align-items:center;margin:0;display:flex}.tutorial__card-name{font-family:var(--hv-typography-display);font-size:1.05rem;font-weight:600}.tutorial__card-badge{padding:0 var(--hv-space-2);border:1px solid var(--hv-surface-edge);border-radius:var(--hv-radius-pill);color:var(--hv-ink-muted);text-transform:lowercase;font-size:.7rem}.tutorial__card-count{color:var(--hv-ink-faint);font-variant-numeric:tabular-nums;margin-left:auto;font-size:.78rem}.tutorial__card-summary{margin:0;font-size:.95rem;line-height:1.4}.tutorial__card-counts{padding-left:var(--hv-space-3);border-left:3px solid var(--hv-accent);color:var(--hv-ink-muted);margin:0;font-size:.85rem;line-height:1.4}.tutorial__card-list{gap:var(--hv-space-1);padding-left:var(--hv-space-4);color:var(--hv-ink-muted);margin:0;font-size:.85rem;line-height:1.4;display:grid}@media (height<=720px){.tutorial__card-list{overscroll-behavior-y:contain;max-height:6.5rem;overflow-y:auto}}.tutorial--hub,.tutorial--rules{gap:var(--hv-space-4);grid-template-rows:auto minmax(0,1fr);height:100%;padding:clamp(1rem,4vw,2rem);display:grid;overflow-y:auto}.tutorial__hub-head{gap:var(--hv-space-3);flex-wrap:wrap;justify-content:space-between;align-items:flex-start;width:min(44rem,100%);margin:0 auto;display:flex}.tutorial__hub-subtitle{color:var(--hv-ink-muted);margin:.35rem 0 0;line-height:1.45}.tutorial__hub-list{gap:var(--hv-space-3);align-content:start;width:min(44rem,100%);margin:0 auto;display:grid}.tutorial__hub-item{padding:var(--hv-space-4);text-align:left;background:var(--hv-surface);border:1px solid var(--hv-surface-edge);border-radius:var(--hv-radius-lg);box-shadow:var(--hv-shadow-tile);font:inherit;color:inherit;cursor:pointer;gap:.35rem;display:grid}.tutorial__hub-item:hover,.tutorial__hub-item:focus-visible{border-color:var(--hv-accent-edge)}.tutorial__hub-name{font-family:var(--hv-typography-display);font-size:1.15rem;font-weight:600}.tutorial__hub-hint{color:var(--hv-ink-muted);line-height:1.45}.tutorial__hub-resume{color:var(--hv-ink);background:var(--hv-accent-soft);border:1px solid var(--hv-accent-edge);border-radius:var(--hv-radius-pill);justify-self:start;margin-top:.25rem;padding:.15rem .6rem;font-size:.82rem}*,:before,:after{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--hv-bg-table);color:var(--hv-tile-dark-fill);font-family:var(--hv-typography-ui);-webkit-font-smoothing:antialiased}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}.bark-slot{inset-inline-start:0;z-index:2;pointer-events:none;width:max-content;max-width:min(24rem,62vw);position:absolute;bottom:calc(100% + .5rem)}.bark{border:1px solid var(--hv-tile-light-edge);background:var(--hv-tile-light-fill);box-shadow:0 calc(var(--hv-shadow-offset-y) * 1px) calc(var(--hv-shadow-blur) * 1px) color-mix(in srgb, var(--hv-shadow-color) calc(var(--hv-shadow-alpha) * 100%), transparent);color:var(--hv-tile-dark-fill);pointer-events:none;animation:bark-in var(--hv-bark-fade,.12s) ease-out both;border-radius:.85rem;margin:0;padding:.55rem .8rem;font-size:.9rem;line-height:1.35;position:relative}.bark:after{content:"";top:100%;border:.4rem solid #0000;border-top-color:var(--hv-tile-light-fill);position:absolute;inset-inline-start:1.15rem}@keyframes bark-in{0%{opacity:0;transform:translateY(.35rem)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.bark{animation:none}}.rules-backdrop{z-index:10;background:color-mix(in srgb, var(--hv-bg-table-dim) 82%, transparent);place-items:center;padding:clamp(.5rem,3vw,2rem);display:grid;position:fixed;inset:0}.rules-modal{border:1px solid var(--hv-tile-light-edge);background:var(--hv-bg-table);width:min(46rem,100%);max-height:min(92vh,60rem);box-shadow:0 calc(var(--hv-shadow-offset-y) * 4px) calc(var(--hv-shadow-blur) * 4px) color-mix(in srgb, var(--hv-shadow-color) calc(var(--hv-shadow-alpha) * 100%), transparent);color:var(--hv-tile-dark-fill);animation:rules-modal-in calc(var(--hv-motion-select-ms) * 1ms) ease-out both;border-radius:1rem;flex-direction:column;display:flex}.rules-modal:focus-visible,.rules-modal :focus-visible{outline:calc(var(--hv-cell-selected-stroke-width) * 1px) solid var(--hv-cell-selected-stroke);outline-offset:2px}.rules-modal__header{border-bottom:1px solid var(--hv-tile-light-edge);justify-content:space-between;align-items:center;gap:1rem;padding:1rem 1.25rem;display:flex}.rules-modal__title{font-family:var(--hv-typography-display);margin:0;font-size:1.5rem;font-weight:600}.rules-modal__close{min-width:calc(var(--hv-geometry-min-touch-target-px) * 1px);min-height:calc(var(--hv-geometry-min-touch-target-px) * 1px);border:1px solid var(--hv-tile-light-edge);background:var(--hv-tile-light-fill);color:inherit;cursor:pointer;border-radius:999px;padding:0 1rem;font-family:inherit;font-size:.9rem}.rules-modal__body{overscroll-behavior:contain;padding:0 1.25rem 1.5rem;overflow-y:auto}.rules-modal__intro,.rules-section__note{opacity:.75;margin:1rem 0;font-size:.9rem;line-height:1.45}.rules-section{margin-top:1.5rem}.rules-section__title{font-family:var(--hv-typography-display);margin:0;font-size:1.15rem;font-weight:600}.rule-card{border:1px solid var(--hv-tile-light-edge);background:var(--hv-tile-light-fill);border-radius:.85rem;margin-top:1rem;padding:1rem}.rule-card__name{align-items:center;gap:.5rem;margin:0;font-size:1.05rem;font-weight:600;display:flex}.rule-card__mark{border-radius:50%;flex:none;width:.85rem;height:.85rem}.rule-card__mark--Q{background:var(--hv-bug-q)}.rule-card__mark--S{background:var(--hv-bug-s)}.rule-card__mark--B{background:var(--hv-bug-b)}.rule-card__mark--G{background:var(--hv-bug-g)}.rule-card__mark--A{background:var(--hv-bug-a)}.rule-card__mark--L{background:var(--hv-bug-l)}.rule-card__mark--M{background:var(--hv-bug-m)}.rule-card__mark--P{background:var(--hv-bug-p)}.rule-card__badge{border:1px solid var(--hv-tile-light-edge);background:var(--hv-bg-table);letter-spacing:.02em;text-transform:uppercase;border-radius:999px;padding:.1rem .5rem;font-size:.7rem;font-weight:500}.rule-card__summary{margin:.35rem 0 0;font-size:.95rem;line-height:1.4}.rule-card__count{opacity:.7;margin:.2rem 0 0;font-size:.8rem}.rule-card__moves{margin-top:.75rem}.rule-card__moves-title{letter-spacing:.04em;text-transform:uppercase;opacity:.7;margin:0 0 .35rem;font-size:.8rem;font-weight:600}.rule-card__list{margin:0;padding-left:1.1rem;font-size:.92rem;line-height:1.5}.rule-card__list li+li{margin-top:.3rem}.rules-diagram{margin:.9rem 0 0}.rules-diagram--failed{opacity:.8;font-size:.9rem;line-height:1.45}.rules-diagram__stage{border:1px solid var(--hv-tile-light-edge);background:var(--hv-bg-table);border-radius:.6rem;position:relative;overflow:hidden}.rules-diagram__canvas{aspect-ratio:4/3;width:100%}.rules-diagram__canvas canvas{width:100%;height:100%;display:block}.rules-diagram__fallback{padding:var(--hv-space-3);color:var(--hv-ink-muted);text-align:center;place-content:center;margin:0;font-size:.85rem;line-height:1.4;display:grid;position:absolute;inset:0}.rules-diagram__marks{pointer-events:none;position:absolute;inset:0}.rules-mark{--hv-hex:polygon(50% 0%, 100% 25%, 100% 75%, 50% 100%, 0% 75%, 0% 25%);--hv-hex-ring:polygon(50% 0%, 100% 25%, 100% 75%, 50% 100%, 0% 75%, 0% 25%, 50% 0%, 50% 7%, 7% 28.5%, 7% 71.5%, 50% 93%, 93% 71.5%, 93% 28.5%, 50% 7%);position:absolute}.rules-mark:before,.rules-mark:after{content:"";position:absolute;inset:0}.rules-mark:before{clip-path:var(--hv-hex);opacity:.45}.rules-mark:after{clip-path:var(--hv-hex-ring)}.rules-mark--move:before{background:var(--hv-cell-valid-fill)}.rules-mark--move:after{background:var(--hv-cell-valid-stroke)}.rules-mark--throw:before,.rules-mark--throw:after{background:var(--hv-cell-last-move)}.rules-mark--focus:before,.rules-mark--source:before{background:0 0}.rules-mark--focus:after{background:var(--hv-cell-selected-stroke)}.rules-mark--source:after{background:var(--hv-cell-last-move)}.rules-diagram__caption{margin-top:.5rem;font-size:.85rem;line-height:1.45}.rules-diagram__counts{opacity:.7}.rules-diagram__legend{opacity:.8;flex-wrap:wrap;gap:.25rem .9rem;margin:.4rem 0 0;padding:0;font-size:.78rem;list-style:none;display:flex}.rules-legend{align-items:center;gap:.35rem;display:flex}.rules-legend:before{content:"";clip-path:polygon(50% 0%,100% 25%,100% 75%,50% 100%,0% 75%,0% 25%);width:.7rem;height:.8rem}.rules-legend--move:before{background:var(--hv-cell-valid-fill);box-shadow:inset 0 0 0 1px var(--hv-cell-valid-stroke)}.rules-legend--throw:before{background:var(--hv-cell-last-move)}.rules-legend--focus:before{background:var(--hv-cell-selected-stroke)}.rules-legend--source:before{background:var(--hv-cell-last-move);opacity:.6}@keyframes rules-modal-in{0%{opacity:0;transform:translateY(.5rem)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.rules-modal{animation:none}}.rules-basics{padding:var(--hv-space-3) 0;border-bottom:1px solid color-mix(in srgb, var(--hv-tile-light-edge) 70%, transparent)}.rules-basics:last-child{border-bottom:0}.rules-basics__title{align-items:baseline;gap:var(--hv-space-2);margin:0 0 var(--hv-space-2);font-size:1.02rem;font-weight:600;display:flex}.rules-basics__spec{opacity:.5;font-variant-numeric:tabular-nums;font-size:.78rem;font-weight:400}.rules-basics__text{margin:0 0 var(--hv-space-2);font-size:.97rem;line-height:1.5}.rules-basics__text:last-child{margin-bottom:0}
