@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/assets/nunito-cyrillic-ext-wght-normal-D4X5GqEv.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/assets/nunito-cyrillic-wght-normal-CY6AOgYE.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/assets/nunito-vietnamese-wght-normal-U01xdrZh.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/assets/nunito-latin-ext-wght-normal-CXYtwYOx.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/assets/nunito-latin-wght-normal-BzFMHfZw.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Outfit Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/outfit-latin-ext-wght-normal-DdQaqQDo.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Outfit Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/outfit-latin-wght-normal-Bc-8i84L.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--color-paper: oklch(96.5% .014 92);--color-paper-top: oklch(98.5% .01 92);--color-paper-2: oklch(93% .02 92);--color-paper-3: oklch(89% .024 92);--color-surface: oklch(98% .01 92);--color-surface-soft: oklch(94% .018 92);--color-ink: oklch(23% .055 265);--color-ink-2: oklch(34% .04 265);--color-muted: oklch(40% .025 265);--color-neutral: oklch(47% .02 265);--color-rule: oklch(80% .018 92);--color-rule-strong: oklch(64% .025 265);--color-accent: oklch(65% .22 24);--color-accent-deep: oklch(49% .18 24);--color-accent-soft: oklch(91% .045 24);--color-accent-ink: oklch(98% .01 92);--color-cyan: oklch(68% .16 235);--color-pear: oklch(85% .16 92);--color-success: oklch(58% .16 150);--color-success-soft: oklch(91% .055 150);--color-error: oklch(53% .2 25);--color-focus: oklch(54% .19 245);--color-backdrop: oklch(23% .055 265 / .76);--color-grid-line: oklch(23% .055 265 / .055);--color-shadow: oklch(23% .055 265 / .2);--color-shadow-soft: oklch(23% .055 265 / .1);--color-shine: oklch(98% .01 92 / .28);--color-creature-1: oklch(75% .12 155);--color-creature-4: oklch(73% .16 42);--color-creature-7: oklch(73% .12 235);--color-creature-10: oklch(75% .14 135);--color-creature-16: oklch(78% .08 75);--color-creature-25: oklch(84% .16 92);--color-creature-35: oklch(83% .09 345);--color-creature-37: oklch(78% .13 55);--color-creature-39: oklch(78% .13 350);--color-creature-52: oklch(81% .1 86);--color-creature-54: oklch(82% .15 90);--color-creature-58: oklch(75% .15 45);--color-creature-63: oklch(80% .08 95);--color-creature-77: oklch(80% .12 55);--color-creature-92: oklch(72% .12 310);--color-creature-94: oklch(74% .12 300);--color-creature-104: oklch(76% .09 72);--color-creature-113: oklch(82% .1 350);--color-creature-129: oklch(76% .13 45);--color-creature-131: oklch(76% .1 220);--color-creature-133: oklch(74% .1 64);--color-creature-143: oklch(72% .1 190);--color-creature-147: oklch(80% .08 245);--color-creature-151: oklch(78% .13 345);--color-creature-152: oklch(78% .13 135);--color-creature-155: oklch(78% .12 74);--color-creature-158: oklch(72% .12 210);--font-display: "Outfit Variable", sans-serif;--font-body: "Nunito Variable", sans-serif;--space-3xs: .125rem;--space-2xs: .25rem;--space-xs: .5rem;--space-sm: .75rem;--space-md: 1rem;--space-lg: 1.5rem;--space-xl: 2.5rem;--space-2xl: 4rem;--space-3xl: 6rem;--text-micro: .625rem;--text-xs: .7rem;--text-sm: .8rem;--text-base: 1rem;--text-md: 1.25rem;--text-lg: 1.5625rem;--text-xl: 1.953rem;--text-2xl: 2.441rem;--text-display: clamp(2.5625rem, 5vw, 3.75rem);--radius-sm: .5rem;--radius-md: .75rem;--radius-card: 1.25rem;--radius-frame: 1.75rem;--radius-pill: 999px;--rule-hair: 1px;--rule-medium: 2px;--rule-heavy: 4px;--ease-out: cubic-bezier(.16, 1, .3, 1);--ease-in: cubic-bezier(.7, 0, .84, 0);--ease-in-out: cubic-bezier(.65, 0, .35, 1);--dur-micro: .12s;--dur-short: .22s;--dur-long: .42s;--shadow-control: 0 3px 0 var(--color-shadow);--shadow-card: 0 5px 0 var(--color-shadow);--shadow-frame: .875rem 1rem 0 var(--color-shadow);--shadow-panel: 0 .5rem 1.5rem var(--color-shadow-soft);--z-base: 1;--z-raised: 10;--z-overlay: 100;--z-modal: 400}*{box-sizing:border-box}html,body{overflow-x:clip}body{margin:0;min-width:320px;min-height:100vh;color:var(--color-ink);background:radial-gradient(circle at 50% 0%,var(--color-paper-top) 0,var(--color-paper) 65%,var(--color-paper-2) 100%);font-family:var(--font-body);font-synthesis:none;font-variant-numeric:tabular-nums}button,a{font:inherit}button{min-height:44px;color:inherit;white-space:nowrap;touch-action:manipulation}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--color-focus);outline-offset:3px}button:disabled,button[aria-disabled=true]{cursor:not-allowed;opacity:.55}button[data-state=error]{outline-color:var(--color-error)}button[data-state=success]{outline-color:var(--color-success)}button[aria-busy=true]{cursor:progress}.shell{width:min(1180px,calc(100% - var(--space-lg)));min-height:100vh;margin:0 auto;display:flex;flex-direction:column}.topbar{min-height:88px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;border-bottom:var(--rule-medium) solid var(--color-rule)}.brand{display:inline-flex;align-items:center;gap:var(--space-sm);width:fit-content;color:var(--color-ink);text-decoration:none;font-family:var(--font-display);font-size:var(--text-md);font-weight:900;letter-spacing:-.04em;white-space:nowrap}.brand b{color:var(--color-accent)}.brand-ball{width:36px;height:36px;border:var(--rule-heavy) solid var(--color-ink);border-radius:var(--radius-pill);background:linear-gradient(var(--color-accent) 0 44%,var(--color-ink) 44% 56%,var(--color-surface) 56%);position:relative;box-shadow:var(--shadow-control)}.brand-ball i{position:absolute;width:10px;height:10px;border:var(--rule-medium) solid var(--color-ink);border-radius:var(--radius-pill);background:var(--color-surface);inset:50%;transform:translate(-50%,-50%)}.difficulty{display:flex;gap:var(--space-2xs);padding:var(--space-2xs);border:var(--rule-hair) solid var(--color-rule);border-radius:var(--radius-pill);background:var(--color-surface);color:var(--color-ink)}.level{min-height:44px;padding:0 var(--space-md);border:0;border-radius:var(--radius-pill);background:transparent;color:var(--color-muted);text-transform:uppercase;letter-spacing:.08em;font-size:var(--text-xs);font-weight:900;cursor:pointer;transition:background-color var(--dur-short) var(--ease-out),color var(--dur-short) var(--ease-out),transform var(--dur-micro) var(--ease-out)}.level:active{transform:translateY(1px)}.level.active,.level[aria-pressed=true]{background:var(--color-ink);color:var(--color-accent-ink);box-shadow:var(--shadow-control)}.sound{justify-self:end;display:grid;place-items:center;width:44px;height:44px;padding:0;border:var(--rule-medium) solid var(--color-ink);border-radius:var(--radius-pill);background:var(--color-surface);color:var(--color-ink);cursor:pointer;box-shadow:var(--shadow-control);transition:transform var(--dur-micro) var(--ease-out)}.sound:active{transform:translateY(2px)}.mobile-restart{display:none;place-items:center;width:44px;height:44px;padding:0;border:var(--rule-medium) solid var(--color-ink);border-radius:var(--radius-pill);background:var(--color-ink);color:var(--color-pear);cursor:pointer;box-shadow:var(--shadow-control);transition:transform var(--dur-micro) var(--ease-out)}.mobile-restart:active{transform:translateY(2px)}.game-layout{flex:1;display:grid;grid-template-columns:340px minmax(0,1fr);gap:clamp(var(--space-lg),4vw,var(--space-2xl));align-items:center;padding:var(--space-xl) 0 var(--space-lg)}.status-panel{display:flex;flex-direction:column;gap:var(--space-md);min-width:0}.eyebrow{margin:0 0 var(--space-xs);color:var(--color-accent-deep);font-size:var(--text-xs);font-weight:900;letter-spacing:.14em}h1{min-width:0;margin:0;overflow-wrap:anywhere;font-family:var(--font-display);font-size:var(--text-display);font-style:normal;letter-spacing:-.05em;line-height:1}h1 em{color:var(--color-accent);font-style:normal}.intro{max-width:45ch;color:var(--color-muted);font-size:var(--text-base);line-height:1.55}.stats{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.2fr) minmax(0,.9fr);padding:var(--space-md) var(--space-2xs);border:var(--rule-hair) solid var(--color-rule);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-ink);box-shadow:var(--shadow-panel);font-variant-numeric:tabular-nums}.stats div{display:flex;flex-direction:column;justify-content:center;min-width:0;padding-inline:var(--space-2xs);text-align:center;border-inline-end:var(--rule-hair) solid var(--color-rule)}.stats div:last-child{border:0}.stats span{display:block;color:var(--color-muted);font-size:var(--text-xs);letter-spacing:.1em;line-height:1.2;font-weight:900}.stats span small{display:inline;margin-inline-start:var(--space-2xs);color:var(--color-accent-deep);font-size:var(--text-micro);letter-spacing:.04em;line-height:inherit}.stats strong{display:block;margin-block-start:var(--space-xs);font-family:var(--font-display);font-size:var(--text-xl);font-variant-numeric:tabular-nums}.stats i{font-style:normal}.multiplayer-panel{padding-block:var(--space-sm);border-block:var(--rule-hair) dashed var(--color-rule-strong)}.play-location{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-2xs);margin-block-end:var(--space-xs);padding:var(--space-2xs);border-radius:var(--radius-pill);background:var(--color-surface-soft)}.play-location button{min-height:44px;padding-inline:var(--space-xs);border:0;border-radius:var(--radius-pill);background:transparent;color:var(--color-muted);font-size:var(--text-micro);font-weight:900;letter-spacing:.08em;cursor:pointer}.play-location button.active{background:var(--color-ink);color:var(--color-accent-ink);box-shadow:var(--shadow-control)}.online-only,.shell.is-online .local-only,.shell.is-online #restart{display:none}.shell.is-online .online-room-summary{display:flex;align-items:center;justify-content:space-between;min-height:44px;margin-block-start:var(--space-xs);padding:var(--space-xs);border-radius:var(--radius-sm);background:var(--color-surface-soft);font-size:var(--text-micro);font-weight:900;letter-spacing:.06em}.shell.is-online .online-room-summary strong{color:var(--color-accent-deep)}.shell.is-online .online-exit{display:inline-flex}.shell.is-online .online-global-connection:not([hidden]){position:sticky;top:var(--space-xs);z-index:30;display:block;width:min(100%,720px);min-height:44px;margin:var(--space-xs) auto var(--space-sm);padding:var(--space-xs) var(--space-md);border:var(--rule-medium) solid var(--color-ink);border-radius:var(--radius-pill);background:var(--color-accent);color:var(--color-ink);box-shadow:var(--shadow-control);font-size:var(--text-xs);font-weight:900;letter-spacing:.05em;text-align:center}.online-card{width:min(700px,100%)}.online-card .modal-close{min-width:48px;width:48px;height:48px;font-size:var(--text-lg);line-height:1}.online-connection{display:none;margin-block-end:var(--space-sm);padding:var(--space-xs) var(--space-sm);border:var(--rule-hair) solid var(--color-accent-deep);border-radius:var(--radius-sm);background:var(--color-pear);color:var(--color-ink);font-size:var(--text-xs);font-weight:900;letter-spacing:.06em;text-align:center}.online-connection.is-visible{display:block}.online-entry-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-md)}.online-entry-grid form{min-width:0;display:flex;flex-direction:column;gap:var(--space-xs);padding:var(--space-md);border:var(--rule-hair) solid var(--color-rule);border-radius:var(--radius-md);background:var(--color-surface-soft)}.online-form-title{margin:0!important;color:var(--color-ink)!important;font-family:var(--font-display);font-size:var(--text-sm);font-weight:900}.online-entry-grid label,.online-settings label{display:grid;gap:var(--space-2xs);color:var(--color-muted);font-size:var(--text-micro);font-weight:900;letter-spacing:.08em}.online-entry-grid input,.online-settings select{width:100%;min-height:48px;padding-inline:var(--space-sm);border:var(--rule-hair) solid var(--color-rule-strong);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-ink);font:inherit;font-weight:800}.online-entry-grid .restart{min-height:52px;margin-block-start:auto}.online-code-input{font-family:var(--font-display)!important;font-size:var(--text-md)!important;letter-spacing:.16em;text-transform:uppercase}.room-code-share{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:var(--space-sm);margin-block:var(--space-md);padding:var(--space-sm);border-radius:var(--radius-md);background:var(--color-ink);color:var(--color-surface)}.room-code-share span{font-size:var(--text-micro);font-weight:900;letter-spacing:.1em}.room-code-share strong{font-family:var(--font-display);font-size:var(--text-lg);letter-spacing:.16em;text-align:center;-webkit-user-select:all;user-select:all}.room-code-share strong.is-copy-selected{border-radius:var(--radius-xs);outline:3px solid var(--color-focus);outline-offset:4px}.room-code-share button{min-width:88px;border:var(--rule-hair) solid var(--color-surface);border-radius:var(--radius-sm);background:transparent;color:inherit;font-size:var(--text-micro);font-weight:900}.copy-status{margin:calc(-1 * var(--space-xs)) 0 var(--space-xs);color:var(--color-muted);font-size:var(--text-xs);font-weight:800}.online-player-list,.online-ranking{margin:0;padding:0;list-style:none}.online-player-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-xs)}.online-player-slot{min-height:58px;display:grid;grid-template-columns:28px minmax(0,1fr) auto;align-items:center;gap:var(--space-xs);padding:var(--space-xs);border:var(--rule-hair) solid var(--color-rule);border-radius:var(--radius-sm);background:var(--color-surface)}.online-player-slot>span{color:var(--color-accent-deep);font-family:var(--font-display);font-weight:900}.online-player-slot strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.online-player-slot small{color:var(--color-muted);font-size:var(--text-micro);font-weight:900}.online-player-slot.is-empty{opacity:.48}.online-player-slot.is-offline{border-color:var(--color-error)}.online-settings{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-xs);margin-block:var(--space-md) var(--space-xs)}.online-ranking{margin-block:var(--space-md)}.online-ranking li{display:grid;grid-template-columns:36px minmax(0,1fr) auto;gap:var(--space-xs);align-items:center;min-height:52px;border-bottom:var(--rule-hair) solid var(--color-rule)}.online-ranking span{color:var(--color-accent-deep);font-family:var(--font-display);font-weight:900}.online-ranking b{font-size:var(--text-xs)}.player-score.is-offline{opacity:.48}.player-score span i{display:inline-block;width:7px;height:7px;margin-inline-end:5px;border-radius:50%;background:var(--color-success)}.player-score.is-offline span i{background:var(--color-error)}.online-grid.is-shuffling .memory-card{animation:online-shuffle var(--dur-long) var(--ease-in-out) both;animation-delay:calc(var(--online-index, 0) * 12ms)}@keyframes online-shuffle{0%,to{transform:translateZ(0) rotate(0)}45%{transform:translate3d(0,-12px,0) rotate(4deg) scale(.94)}70%{transform:translate3d(8px,5px,0) rotate(-3deg) scale(.98)}}.player-mode-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm);margin-block-end:var(--space-xs)}.card-set-toggle{min-width:86px;min-height:44px;display:grid;grid-template-columns:minmax(0,1fr) 18px;align-items:center;justify-content:center;padding:var(--space-2xs) var(--space-xs);border:var(--rule-hair) solid var(--color-rule);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-ink);cursor:pointer;transition:background-color var(--dur-short) var(--ease-out),border-color var(--dur-short) var(--ease-out),transform var(--dur-micro) var(--ease-out)}.mode-copy{min-width:0}.mode-cycle-icon{display:grid;place-items:center;color:var(--color-muted)}.mode-cycle-icon .icon{width:15px;height:15px}.card-set-toggle small,.card-set-toggle strong{display:block;line-height:1}.card-set-toggle small{color:var(--color-muted);font-size:var(--text-micro);font-weight:900;letter-spacing:.08em}.card-set-toggle.is-daily{border-color:var(--color-ink);background:var(--color-pear);box-shadow:var(--shadow-control)}.card-set-toggle.is-daily small,.card-set-toggle.is-daily strong,.card-set-toggle.is-daily .mode-cycle-icon{color:var(--color-ink)}.card-set-toggle strong{margin-block-start:var(--space-3xs);color:var(--color-accent-deep);font-family:var(--font-display);font-size:var(--text-xs);font-weight:900;letter-spacing:.08em}.player-count{display:flex;gap:var(--space-2xs);padding:var(--space-2xs);border-radius:var(--radius-pill);background:var(--color-surface-soft);color:var(--color-ink)}.player-count button{width:44px;height:44px;padding:0;border:0;border-radius:var(--radius-pill);background:transparent;color:var(--color-muted);font-size:var(--text-xs);font-weight:900;cursor:pointer;transition:background-color var(--dur-short) var(--ease-out),color var(--dur-short) var(--ease-out),transform var(--dur-micro) var(--ease-out)}.player-count button:active{transform:translateY(1px)}.difficulty.is-locked .level:disabled,.player-count.is-locked button:disabled{opacity:.42;cursor:not-allowed}.difficulty.is-locked .level[aria-pressed=true]:disabled,.player-count.is-locked button[aria-pressed=true]:disabled{opacity:1}.player-count button.active,.player-count button[aria-pressed=true]{background:var(--color-ink);color:var(--color-accent-ink);box-shadow:var(--shadow-control)}.player-scores{display:grid;grid-template-columns:repeat(auto-fit,minmax(48px,1fr));gap:var(--space-2xs);font-variant-numeric:tabular-nums}.player-score{--player-color: var(--color-ink);display:flex;align-items:center;justify-content:space-between;min-height:44px;padding:var(--space-2xs) var(--space-xs);border-inline-end:var(--rule-hair) solid var(--color-rule);color:var(--color-muted);transition:background-color var(--dur-short) var(--ease-in-out),color var(--dur-short) var(--ease-in-out),transform var(--dur-short) var(--ease-out)}.player-score:last-child{border-inline-end:0}.player-score[data-player="2"]{--player-color: var(--color-accent)}.player-score[data-player="3"]{--player-color: var(--color-cyan)}.player-score[data-player="4"]{--player-color: var(--color-success)}.player-score span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--text-micro);font-weight:900;letter-spacing:.06em}.player-score .player-timing{display:block;overflow:hidden;margin-inline-start:12px;color:var(--color-muted);font-size:.58rem;line-height:1.2;letter-spacing:.03em;text-overflow:ellipsis}.player-score strong{font-family:var(--font-display);font-size:var(--text-md);font-weight:900;line-height:1;font-variant-numeric:tabular-nums}.player-score.active{border-radius:var(--radius-sm);background:color-mix(in oklch,var(--player-color) 14%,var(--color-surface));color:var(--color-ink);transform:translateY(-1px)}.player-score.active span:after{content:" · DRAN";color:var(--player-color)}.trainer-tools{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-2xs);margin-block-start:var(--space-xs)}.trainer-tool{min-width:0;min-height:44px;display:flex;align-items:center;gap:var(--space-xs);padding:var(--space-2xs) var(--space-xs);border:var(--rule-hair) solid var(--color-rule);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-ink);text-align:start;cursor:pointer;transition:border-color var(--dur-short) var(--ease-out),background-color var(--dur-short) var(--ease-out),transform var(--dur-micro) var(--ease-out)}.trainer-tool .icon{width:18px;height:18px;color:var(--color-accent-deep)}.trainer-tool span{min-width:0}.trainer-tool small,.trainer-tool strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trainer-tool small{color:var(--color-muted);font-size:var(--text-micro);font-weight:900;letter-spacing:.06em}.trainer-tool strong{margin-block-start:2px;font-family:var(--font-display);font-size:var(--text-micro);letter-spacing:.04em}.streak{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);background:var(--color-surface-soft);color:var(--color-muted);transition:background-color var(--dur-short) var(--ease-in-out),color var(--dur-short) var(--ease-in-out),transform var(--dur-short) var(--ease-out)}.streak>span{display:grid;place-items:center;width:36px;height:36px;border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-muted)}.streak small,.streak strong{display:block}.streak small{font-size:var(--text-xs);font-weight:900;letter-spacing:.1em}.streak strong{font-size:var(--text-sm)}.streak.hot{background:var(--color-accent-soft);color:var(--color-ink);transform:translateY(-2px)}.streak.hot>span{color:var(--color-accent-deep)}.restart{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-xs);min-height:48px;padding:var(--space-sm) var(--space-md);border:var(--rule-medium) solid var(--color-ink);border-radius:var(--radius-md);background:var(--color-ink);color:var(--color-accent-ink);font-size:var(--text-sm);font-weight:900;letter-spacing:.1em;cursor:pointer;box-shadow:var(--shadow-card);transition:transform var(--dur-micro) var(--ease-out)}.restart:active{transform:translateY(3px)}.restart .icon{color:var(--color-pear)}.restart.online-exit{display:none}.shell.is-online .restart.online-exit{display:inline-flex}.restart[data-action=end],.mobile-restart[data-action=end]{border-color:var(--color-accent-deep);background:var(--color-surface);color:var(--color-accent-deep)}.restart[data-action=end] .icon{color:currentColor}.handoff-actions{display:grid;gap:var(--space-xs)}.secondary-action{min-height:44px;display:inline-flex;align-items:center;justify-content:center;gap:var(--space-xs);padding:var(--space-xs) var(--space-md);border:var(--rule-medium) solid var(--color-accent-deep);border-radius:var(--radius-md);background:transparent;color:var(--color-accent-deep);font-size:var(--text-xs);font-weight:900;letter-spacing:.08em;cursor:pointer}.dex-frame{min-width:0;height:min(660px,calc(100vh - 240px));min-height:488px;padding:var(--space-2xl) var(--space-lg) var(--space-xl);position:relative;border:var(--rule-heavy) solid var(--color-ink);border-radius:var(--radius-frame);background:var(--color-accent);color:var(--color-ink);box-shadow:var(--shadow-frame)}.dex-lights{position:absolute;top:var(--space-md);left:var(--space-lg);display:flex;align-items:center;gap:var(--space-xs)}.dex-lights span{width:36px;height:36px;border:var(--rule-heavy) solid var(--color-surface);border-radius:var(--radius-pill);background:var(--color-cyan);box-shadow:var(--shadow-control);outline:var(--rule-medium) solid var(--color-ink)}.dex-lights i{width:12px;height:12px;border:var(--rule-medium) solid var(--color-ink);border-radius:var(--radius-pill);background:var(--color-pear)}.dex-lights i:first-of-type{background:var(--color-accent-soft)}.dex-lights i:last-child{background:var(--color-success)}#game{position:relative;z-index:var(--z-base);width:100%;height:100%;display:grid;place-items:center;overflow:hidden;border:var(--rule-heavy) solid var(--color-ink);border-radius:var(--radius-md);background-color:var(--color-paper-top);background-image:linear-gradient(var(--color-grid-line) var(--rule-hair),transparent var(--rule-hair)),linear-gradient(90deg,var(--color-grid-line) var(--rule-hair),transparent var(--rule-hair));background-size:24px 24px;box-shadow:inset 0 0 32px var(--color-shadow-soft)}#game[data-phase=idle] .memory-grid{opacity:.28;filter:saturate(.45);transform:scale(.985)}.idle-prompt{position:absolute;z-index:var(--z-overlay);left:50%;top:50%;width:min(320px,calc(100% - var(--space-xl)));display:grid;justify-items:center;gap:var(--space-xs);padding:var(--space-lg);border:var(--rule-heavy) solid var(--color-ink);border-radius:var(--radius-card);background:var(--color-surface);color:var(--color-ink);text-align:center;box-shadow:var(--shadow-frame);transform:translate(-50%,-50%)}.idle-prompt[hidden]{display:none}.idle-prompt-icon{width:48px;height:48px;display:grid;place-items:center;border-radius:var(--radius-pill);background:var(--color-accent);color:var(--color-ink)}.idle-prompt-icon .icon{width:24px;height:24px}.idle-prompt p{margin:0;color:var(--color-accent-deep);font-size:var(--text-xs);font-weight:900;letter-spacing:.12em}.idle-prompt strong{font-family:var(--font-display);font-size:var(--text-lg);line-height:1.05;overflow-wrap:normal;-webkit-hyphens:none;hyphens:none;text-wrap:balance}.idle-start{min-height:48px;margin-block-start:var(--space-xs);display:inline-flex;align-items:center;justify-content:center;gap:var(--space-xs);padding:var(--space-xs) var(--space-md);border:var(--rule-medium) solid var(--color-ink);border-radius:var(--radius-md);background:var(--color-ink);color:var(--color-accent-ink);font-size:var(--text-xs);font-weight:900;letter-spacing:.08em;cursor:pointer;box-shadow:var(--shadow-control)}.idle-start .icon{color:var(--color-pear)}.sequence-status{position:absolute;z-index:var(--z-raised);left:50%;top:50%;display:inline-flex;align-items:center;gap:var(--space-xs);min-height:44px;padding:var(--space-xs) var(--space-md);border:var(--rule-medium) solid var(--color-surface);border-radius:var(--radius-pill);background:var(--color-ink);color:var(--color-accent-ink);box-shadow:var(--shadow-card);font-size:var(--text-xs);font-weight:900;letter-spacing:.1em;pointer-events:none;transform:translate(-50%,-50%);white-space:nowrap}.sequence-status[hidden]{display:none}.sequence-status .icon{color:var(--color-pear)}.match-toast{position:absolute;z-index:var(--z-overlay);top:50%;left:50%;display:flex;align-items:center;gap:var(--space-xs);padding:var(--space-xs) var(--space-md);border:var(--rule-medium) solid var(--color-accent-ink);border-radius:var(--radius-pill);background:var(--color-pear);color:var(--color-ink);box-shadow:var(--shadow-control);font-family:var(--font-display);font-size:var(--text-sm);font-weight:900;letter-spacing:.06em;pointer-events:none;transform:translate(-50%,-50%)}.match-toast[hidden]{display:none}.match-toast.show{animation:match-toast 1.2s var(--ease-out) both}.memory-card.match-pop{animation:match-pop .62s var(--ease-out)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.memory-grid{width:100%;height:100%;display:grid;grid-template-columns:repeat(var(--columns),var(--card-width));grid-template-rows:repeat(var(--rows),calc(var(--card-width) * var(--card-row-ratio)));gap:var(--card-gap);place-content:center;padding:var(--space-sm)}.memory-card{position:relative;width:var(--card-width);min-height:44px;aspect-ratio:var(--card-aspect);padding:0;border:0;border-radius:var(--radius-sm);background:transparent;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:transform var(--dur-micro) var(--ease-out)}.memory-card:disabled{cursor:default}.memory-card.matched:disabled{opacity:1}#game[aria-busy=true] .memory-card:disabled{opacity:1}#game[data-phase=preview] .memory-card .card-front{outline:var(--rule-medium) solid var(--type-color);outline-offset:var(--rule-medium)}.memory-card:focus-visible .card-inner{outline:3px solid var(--color-focus);outline-offset:4px;border-radius:var(--radius-sm)}.card-inner{position:absolute;inset:0;display:block}.card-face{position:absolute;inset:0;display:block;overflow:hidden;border-radius:var(--radius-sm);box-shadow:var(--shadow-card)}.card-back{z-index:var(--z-raised);border:3px solid var(--color-ink);background:repeating-linear-gradient(135deg,var(--color-shine) 0 var(--rule-medium),transparent var(--rule-medium) var(--space-md)),linear-gradient(145deg,var(--color-ink-2),var(--color-ink));color:var(--color-accent-ink);opacity:1;transform:scaleX(1);transition:opacity var(--dur-micro) var(--ease-in) var(--dur-micro),transform var(--dur-short) var(--ease-in-out) var(--dur-micro)}.card-back:before{content:"";position:absolute;left:var(--space-xs);right:var(--space-xs);top:40%;height:27%;border-block:var(--rule-medium) solid var(--color-shine);background:var(--color-accent)}.back-shine{position:absolute;inset:var(--space-xs);border:var(--rule-hair) solid var(--color-shine);border-radius:var(--radius-sm)}.back-title,.back-subtitle{position:absolute;z-index:var(--z-raised);left:0;right:0;text-align:center;font-family:var(--font-display);font-weight:900;line-height:1}.back-title{top:12%;color:var(--color-accent-ink);font-size:clamp(var(--text-micro),calc(var(--card-width) * .1),var(--text-sm))}.back-subtitle{bottom:9%;color:var(--color-pear);font-size:clamp(var(--text-micro),calc(var(--card-width) * .075),var(--text-xs));letter-spacing:.12em}.back-emblem{position:absolute;z-index:var(--z-raised);width:53%;aspect-ratio:1;left:50%;top:51%;transform:translate(-50%,-50%);border:calc(var(--card-width) * .035) solid var(--color-ink);border-radius:var(--radius-pill);background:linear-gradient(var(--color-accent) 0 43%,var(--color-ink) 43% 57%,var(--color-surface) 57%);outline:calc(var(--card-width) * .05) solid var(--color-surface)}.back-emblem i{position:absolute;width:28%;aspect-ratio:1;border:calc(var(--card-width) * .025) solid var(--color-ink);border-radius:var(--radius-pill);background:var(--color-surface);inset:50%;transform:translate(-50%,-50%)}.card-front{z-index:var(--z-base);border:3px solid var(--color-ink);background:var(--color-surface);color:var(--color-ink);opacity:0;transform:scaleX(.02);transition:transform var(--dur-short) var(--ease-in-out),opacity var(--dur-micro) var(--ease-in) var(--dur-micro)}.memory-card.revealed .card-back,.memory-card.matched .card-back{z-index:var(--z-base);opacity:0;transform:scaleX(.02)}.memory-card.revealed .card-front,.memory-card.matched .card-front{z-index:var(--z-raised);opacity:1;transform:scaleX(1)}.memory-card.matched .card-front{outline:3px solid var(--color-success);box-shadow:var(--shadow-card)}.card-art{position:absolute;inset:var(--space-xs) var(--space-xs) 31%;display:grid;place-items:center;overflow:hidden;border-radius:var(--radius-sm);background:radial-gradient(circle at 50% 40%,var(--color-surface) 0 35%,color-mix(in oklch,var(--type-color) 24%,var(--color-surface)) 36% 100%)}.card-art:after{content:"";position:absolute;width:75%;height:13%;left:12.5%;bottom:5%;border-radius:var(--radius-pill);background:var(--color-shadow-soft);filter:blur(5px)}.card-art img{position:relative;z-index:var(--z-raised);display:block;width:112%;height:112%;object-fit:contain;transform:translateY(2%);image-rendering:auto;filter:drop-shadow(0 4px 3px var(--color-shadow))}.dex-number{position:absolute;z-index:var(--z-raised);top:var(--space-2xs);left:var(--space-2xs);padding:var(--space-2xs) var(--space-xs);border-radius:var(--radius-sm);background:var(--type-color);color:var(--color-ink);font-family:var(--font-display);font-size:var(--text-micro);font-weight:900;letter-spacing:.04em}.card-info{position:absolute;left:var(--space-xs);right:var(--space-xs);bottom:var(--space-xs);height:27%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-3xs);border-radius:var(--radius-sm);background:linear-gradient(145deg,var(--color-ink-2),var(--color-ink));color:var(--color-accent-ink)}.card-info strong{display:block;max-width:94%;overflow:hidden;text-overflow:ellipsis;font-family:var(--font-display);font-size:clamp(var(--text-micro),calc(var(--card-width) * .105),var(--text-sm));font-weight:900;line-height:1;text-transform:uppercase;white-space:nowrap}.card-info small{display:flex;align-items:center;gap:var(--space-2xs);color:var(--type-color);font-size:var(--text-micro);font-weight:900;line-height:1;text-transform:uppercase}.card-info small i{width:.65em;height:.65em;border-radius:var(--radius-pill);background:var(--type-color);outline:var(--rule-hair) solid var(--color-shine)}.found-badge{position:absolute;z-index:var(--z-raised);top:var(--space-xs);right:var(--space-xs);display:none;width:24%;aspect-ratio:1;place-items:center;border:var(--rule-medium) solid var(--color-ink);border-radius:var(--radius-pill);background:var(--color-success);color:var(--color-accent-ink);box-shadow:var(--shadow-control)}.memory-card.matched .found-badge{display:grid}.dex-foot{position:absolute;left:var(--space-lg);right:var(--space-lg);bottom:var(--space-sm);display:grid;grid-template-columns:1fr auto 1fr;align-items:center;color:var(--color-ink);font-size:var(--text-micro);letter-spacing:.1em}.dex-foot span{width:24px;height:8px;border:var(--rule-medium) solid var(--color-ink);border-radius:var(--radius-pill);background:var(--color-success)}.dex-foot i{justify-self:end;width:36px;height:12px;border-block:var(--rule-heavy) solid var(--color-accent-deep)}.foot-statement{min-height:64px;display:flex;justify-content:space-between;align-items:center;gap:var(--space-lg);border-top:var(--rule-medium) solid var(--color-rule)}.foot-statement strong{font-family:var(--font-display);font-size:var(--text-base);letter-spacing:-.02em}.foot-statement span{color:var(--color-muted);font-size:var(--text-xs);font-weight:900;letter-spacing:.1em;text-transform:uppercase}.modal{position:fixed;inset:0;z-index:var(--z-modal);display:grid;place-items:center;padding:var(--space-lg);background:var(--color-backdrop);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.modal[hidden]{display:none}.modal-card{position:relative;z-index:var(--z-raised);width:min(432px,100%);padding:var(--space-xl);border:var(--rule-heavy) solid var(--color-ink);border-radius:var(--radius-card);background:var(--color-surface);color:var(--color-ink);text-align:center;box-shadow:var(--shadow-frame);animation:pop var(--dur-long) var(--ease-out)}.management-card{width:min(580px,100%);text-align:start}.management-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-md)}.management-head .eyebrow{margin-block-end:var(--space-2xs)}.management-head h2{overflow-wrap:normal;-webkit-hyphens:none;hyphens:none;text-wrap:balance}.modal-close{width:44px;height:44px;flex:0 0 auto;display:grid;place-items:center;padding:0;border:var(--rule-medium) solid var(--color-ink);border-radius:var(--radius-pill);background:var(--color-surface);color:var(--color-ink);cursor:pointer}.management-card>p{margin-block:var(--space-sm) var(--space-md);line-height:1.45}.profile-slots{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-xs)}.profile-slot,.create-profile label{color:var(--color-muted);font-size:var(--text-micro);font-weight:900;letter-spacing:.08em}.profile-slot select,.create-profile input{width:100%;min-height:46px;margin-block-start:var(--space-2xs);padding:0 var(--space-sm);border:var(--rule-hair) solid var(--color-rule-strong);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-ink);font:inherit;font-weight:800}.pokedex-launch{width:100%;min-height:52px;display:flex;align-items:center;gap:var(--space-sm);margin-block-start:var(--space-sm);padding:var(--space-xs) var(--space-sm);border:var(--rule-medium) solid var(--color-ink);border-radius:var(--radius-md);background:var(--color-ink);color:var(--color-accent-ink);text-align:start;cursor:pointer}.pokedex-launch .icon{color:var(--color-pear)}.pokedex-launch span,.pokedex-launch small,.pokedex-launch strong{display:block;min-width:0}.pokedex-launch small{color:var(--color-pear);font-size:var(--text-micro);font-weight:900;letter-spacing:.08em}.pokedex-launch strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:var(--font-display);font-size:var(--text-xs);letter-spacing:.04em}.create-profile{margin-block-start:var(--space-md);padding-block-start:var(--space-md);border-block-start:var(--rule-hair) solid var(--color-rule)}.create-profile>div{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--space-xs)}.create-profile button{align-self:end;min-height:46px;padding-inline:var(--space-md);border:var(--rule-medium) solid var(--color-ink);border-radius:var(--radius-sm);background:var(--color-ink);color:var(--color-accent-ink);font-size:var(--text-xs);font-weight:900;letter-spacing:.06em;cursor:pointer}.form-error{margin:var(--space-2xs) 0 0!important;color:var(--color-error)!important;font-size:var(--text-xs);font-weight:800}.form-error[hidden]{display:none}.pokedex-card{width:min(760px,100%);max-height:calc(100svh - var(--space-xl));display:flex;flex-direction:column;overflow:hidden}.pokedex-toolbar{display:grid;grid-template-columns:minmax(160px,.75fr) minmax(220px,1.25fr);align-items:end;gap:var(--space-md);padding-block-end:var(--space-sm)}.pokedex-toolbar label{color:var(--color-muted);font-size:var(--text-micro);font-weight:900;letter-spacing:.08em}.pokedex-toolbar select{width:100%;min-height:44px;display:block;margin-block-start:var(--space-2xs);padding-inline:var(--space-sm);border:var(--rule-hair) solid var(--color-rule-strong);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-ink);font:inherit;font-weight:800}.pokedex-progress>span{display:block;margin-block-end:var(--space-xs);color:var(--color-muted);font-size:var(--text-xs);font-weight:900;text-align:end}.pokedex-progress>i{height:10px;display:block;overflow:hidden;border:var(--rule-hair) solid var(--color-ink);border-radius:var(--radius-pill);background:var(--color-surface-soft)}.pokedex-progress b{width:0;height:100%;display:block;border-radius:inherit;background:linear-gradient(90deg,var(--color-accent),var(--color-pear));transition:width var(--dur-long) var(--ease-out)}.collection-badges{display:flex;flex-wrap:wrap;gap:var(--space-2xs);padding-block-end:var(--space-sm)}.collection-badges span{display:inline-flex;align-items:center;gap:var(--space-2xs);padding:var(--space-2xs) var(--space-xs);border:var(--rule-hair) solid var(--color-rule);border-radius:var(--radius-pill);font-size:var(--text-micro);letter-spacing:.05em}.collection-badges .is-unlocked{border-color:color-mix(in oklch,var(--color-pear) 60%,var(--color-ink));background:color-mix(in oklch,var(--color-pear) 24%,var(--color-surface));color:var(--color-ink)}.collection-badges .is-unlocked .icon{color:var(--color-pear)}.collection-badges .is-locked{color:var(--color-muted);opacity:.55}.pokedex-grid{min-height:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:var(--space-xs);padding:var(--space-xs) var(--space-2xs) var(--space-sm);overflow-y:auto;border-block:var(--rule-hair) solid var(--color-rule);background:linear-gradient(var(--color-grid-line) 1px,transparent 1px),linear-gradient(90deg,var(--color-grid-line) 1px,transparent 1px);background-size:28px 28px}.pokedex-entry{min-width:0;min-height:132px;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-xs) var(--space-2xs);border:var(--rule-hair) solid var(--color-rule);border-radius:var(--radius-md);background:color-mix(in oklch,var(--color-surface) 94%,transparent);text-align:center}.pokedex-entry.is-caught{border-color:var(--color-ink);box-shadow:var(--shadow-control)}.pokedex-entry img{width:68px;height:68px;object-fit:contain}.pokedex-entry.is-locked img{filter:grayscale(1) brightness(.18);opacity:.2}.pokedex-number{position:absolute;inset:var(--space-2xs) auto auto var(--space-2xs);color:var(--color-muted);font-size:var(--text-micro);font-weight:900}.pokedex-entry strong{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:var(--font-display);font-size:var(--text-xs)}.pokedex-entry small{color:var(--color-muted);font-size:.58rem;font-weight:900;letter-spacing:.05em}.leaderboard-list{max-height:min(390px,52svh);margin:0;padding:0;overflow-y:auto;list-style:none;border-block:var(--rule-hair) solid var(--color-rule)}.leaderboard-entry{display:grid;grid-template-columns:36px minmax(0,1fr) 64px 86px;align-items:center;gap:var(--space-xs);min-height:64px;padding:var(--space-xs) var(--space-2xs);border-block-end:var(--rule-hair) solid var(--color-rule)}.leaderboard-entry:last-child{border:0}.leaderboard-rank{width:32px;height:32px;display:grid;place-items:center;border-radius:var(--radius-pill);background:var(--color-surface-soft);color:var(--color-muted);font-family:var(--font-display);font-weight:900}.leaderboard-entry.rank-1 .leaderboard-rank{background:var(--color-pear);color:var(--color-ink)}.leaderboard-entry.rank-2 .leaderboard-rank{background:color-mix(in oklch,var(--color-cyan) 18%,var(--color-surface));color:var(--color-ink)}.leaderboard-entry.rank-3 .leaderboard-rank{background:var(--color-accent-soft);color:var(--color-accent-deep)}.leaderboard-name,.leaderboard-value,.leaderboard-name strong,.leaderboard-name small,.leaderboard-value strong,.leaderboard-value small{display:block;min-width:0}.leaderboard-name strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:var(--font-display);font-size:var(--text-base)}.leaderboard-name small,.leaderboard-value small{color:var(--color-muted);font-size:var(--text-micro);font-weight:900;letter-spacing:.04em}.leaderboard-value{text-align:end}.leaderboard-value strong{font-family:var(--font-display);font-size:var(--text-md);font-weight:900}.leaderboard-empty{min-height:180px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-xs);padding:var(--space-lg);color:var(--color-muted);text-align:center}.leaderboard-empty>span{width:48px;height:48px;display:grid;place-items:center;border-radius:var(--radius-pill);background:var(--color-surface-soft);color:var(--color-pear)}.leaderboard-empty strong{color:var(--color-ink);font-family:var(--font-display)}.leaderboard-empty small{max-width:30ch}.handoff-ball{width:72px;height:72px;margin:calc(var(--space-2xl) * -1) auto var(--space-lg);display:grid;place-items:center;border:var(--rule-heavy) solid var(--color-ink);border-radius:var(--radius-pill);background:linear-gradient(to bottom,var(--color-accent) 0 44%,var(--color-ink) 44% 56%,var(--color-accent-ink) 56% 100%);box-shadow:var(--shadow-card)}.handoff-ball i{width:22px;aspect-ratio:1;border:var(--rule-medium) solid var(--color-ink);border-radius:var(--radius-pill);background:var(--color-accent-ink)}.record-result{width:fit-content;margin:var(--space-sm) auto 0;padding:var(--space-2xs) var(--space-sm);border-radius:var(--radius-pill);background:var(--color-pear);color:var(--color-ink)!important;font-size:var(--text-xs);font-weight:900;letter-spacing:.08em}.record-result[hidden]{display:none}.result-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin-block:var(--space-md);border-block:var(--rule-hair) solid var(--color-rule)}.result-stats div{padding:var(--space-sm) var(--space-2xs);border-inline-end:var(--rule-hair) solid var(--color-rule)}.result-stats div:last-child{border-inline-end:0}.result-stats span,.result-stats strong{display:block}.result-stats span{color:var(--color-muted);font-size:var(--text-micro);font-weight:900;letter-spacing:.06em}.result-stats strong{margin-block-start:var(--space-2xs);font-family:var(--font-display);font-size:var(--text-md);font-variant-numeric:tabular-nums}.achievement-list{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--space-2xs)}.achievement-list[hidden]{display:none}.achievement-list span{display:inline-flex;align-items:center;gap:var(--space-2xs);padding:var(--space-2xs) var(--space-xs);border:var(--rule-hair) solid var(--color-rule);border-radius:var(--radius-pill);background:var(--color-surface-soft);color:var(--color-ink);font-size:var(--text-micro);font-weight:900;letter-spacing:.05em}.achievement-list .icon{color:var(--color-pear)}.confetti{position:absolute;inset:0;overflow:hidden;pointer-events:none}.confetti i{--confetti-x: 0vw;position:absolute;top:-24px;left:50%;width:10px;height:18px;border-radius:var(--radius-xs);background:var(--color-pear);opacity:0}.celebrate .confetti i{animation:confetti-fall 1.2s var(--ease-out) both}.confetti i:nth-child(2n){background:var(--color-accent)}.confetti i:nth-child(3n){background:var(--color-cyan)}.confetti i:nth-child(4n){background:var(--color-success)}.confetti i:nth-child(1){--confetti-x: -43vw;animation-delay:20ms}.confetti i:nth-child(2){--confetti-x: -35vw;animation-delay:.15s}.confetti i:nth-child(3){--confetti-x: -27vw;animation-delay:70ms}.confetti i:nth-child(4){--confetti-x: -19vw;animation-delay:.22s}.confetti i:nth-child(5){--confetti-x: -11vw;animation-delay:.11s}.confetti i:nth-child(6){--confetti-x: -4vw;animation-delay:.26s}.confetti i:nth-child(7){--confetti-x: 5vw;animation-delay:40ms}.confetti i:nth-child(8){--confetti-x: 13vw;animation-delay:.19s}.confetti i:nth-child(9){--confetti-x: 21vw;animation-delay:90ms}.confetti i:nth-child(10){--confetti-x: 29vw;animation-delay:.24s}.confetti i:nth-child(11){--confetti-x: 37vw;animation-delay:.13s}.confetti i:nth-child(12){--confetti-x: 44vw;animation-delay:.28s}.trophy{width:72px;height:72px;margin:calc(var(--space-2xl) * -1) auto var(--space-lg);display:grid;place-items:center;border:var(--rule-heavy) solid var(--color-ink);border-radius:var(--radius-pill);background:var(--color-pear);color:var(--color-ink);box-shadow:var(--shadow-card)}.modal h2{margin:0;overflow-wrap:anywhere;font-family:var(--font-display);font-size:var(--text-2xl);font-style:normal;font-weight:800;letter-spacing:-.04em;line-height:1}.modal p:not(.eyebrow){color:var(--color-muted)}.stars{display:flex;justify-content:center;gap:var(--space-xs);margin:var(--space-md) 0;color:var(--color-pear)}.stars .is-empty{color:var(--color-rule-strong)}.modal .restart{width:100%;margin-block-start:var(--space-sm)}.icon{width:1.15em;height:1.15em;display:inline-block;flex:0 0 auto;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;fill:none}.icon--fill{fill:currentColor;stroke:currentColor}@keyframes pop{0%{opacity:0;transform:translateY(16px) scale(.96)}}@keyframes confetti-fall{0%{opacity:0;transform:translate3d(0,-5vh,0) rotate(0)}12%{opacity:1}to{opacity:0;transform:translate3d(var(--confetti-x),105vh,0) rotate(620deg)}}@keyframes match-toast{0%{opacity:0;transform:translate(-50%,-42%) scale(.82)}18%,78%{opacity:1;transform:translate(-50%,-50%) scale(1)}to{opacity:0;transform:translate(-50%,-58%) scale(.96)}}@keyframes match-pop{0%,to{transform:scale(1)}38%{transform:translateY(-5px) scale(1.08) rotate(-1deg)}66%{transform:translateY(1px) scale(.98) rotate(1deg)}}@media(hover:hover)and (pointer:fine){.level:not(:disabled):hover,.player-count button:not(:disabled):hover,.card-set-toggle:not(:disabled):hover,.trainer-tool:not(:disabled):hover{background:var(--color-paper-3);color:var(--color-ink)}.sound:hover,.mobile-restart:hover,.restart:hover,.memory-card:not(.revealed):not(.matched):not(:disabled):hover{transform:translateY(-2px)}}@media(max-height:850px)and (min-width:821px){.game-layout{padding-block:var(--space-sm)}.status-panel>div:first-child,.status-panel .streak{display:none}}@media(max-width:820px){body{min-height:100svh}.shell{width:min(calc(100% - var(--space-md)),760px);min-height:100svh}.topbar{min-height:64px;grid-template-columns:minmax(0,1fr) 44px 44px;gap:var(--space-xs);padding-block:var(--space-xs)}.brand{display:none}.difficulty{grid-column:1;grid-row:1;justify-self:center;margin:0}.sound{grid-column:2;grid-row:1}.mobile-restart{grid-column:3;grid-row:1;display:grid}.game-layout{grid-template-columns:minmax(0,1fr);gap:var(--space-sm);padding:var(--space-sm) 0 max(var(--space-xs),env(safe-area-inset-bottom));align-items:start}.status-panel{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--space-xs);align-items:stretch}.status-panel>div:first-child,.streak{display:none}.stats{grid-column:1;min-height:88px}.multiplayer-panel{grid-column:2;display:grid;grid-template-columns:88px minmax(0,1fr);column-gap:var(--space-xs)}.play-location{grid-column:1;grid-row:3;margin:0;padding:0;background:transparent}.play-location button{display:none;width:100%;border:var(--rule-hair) solid var(--color-rule);background:var(--color-surface);color:var(--color-ink)}.play-location [data-play-location=online],.shell.is-online .play-location [data-play-location=local]{display:block}.shell.is-online .play-location [data-play-location=online]{display:none}.player-mode-head,.player-scores{grid-column:1 / -1}.trainer-tools,.shell.is-online .online-room-summary{grid-column:2;grid-row:3;margin:0}.restart{grid-column:1 / -1;min-height:48px}.dex-frame{height:max(380px,calc(100svh - 342px));min-height:0;padding:var(--space-xs);border-radius:var(--radius-card);box-shadow:var(--shadow-card)}.dex-lights,.dex-foot,.foot-statement{display:none}#game{border-width:3px;border-radius:var(--radius-md)}}@media(max-width:520px){.level{min-width:0;padding-inline:var(--space-xs)}.status-panel{grid-template-columns:minmax(0,1fr)}.status-panel>*{grid-column:1!important}.status-panel>#restart{display:none}.stats{min-height:72px;padding:var(--space-xs) var(--space-2xs)}.stats strong{font-size:var(--text-lg)}.modal{padding:var(--space-sm)}.modal-card{max-height:calc(100svh - var(--space-lg));padding:var(--space-lg) var(--space-md);overflow-y:auto}.modal h2{font-size:var(--text-xl)}.management-card{padding:var(--space-md)}.online-entry-grid,.online-player-list{grid-template-columns:minmax(0,1fr)}.online-entry-grid{gap:var(--space-xs)}.online-entry-grid form{padding:var(--space-sm)}.room-code-share{grid-template-columns:minmax(0,1fr) auto}.room-code-share span{grid-column:1 / -1}.room-code-share strong{text-align:start}.online-player-slot{min-height:52px}.shell.is-online .mobile-restart{display:none}.pokedex-card{max-height:calc(100svh - var(--space-lg));padding:var(--space-md)}.pokedex-toolbar{grid-template-columns:minmax(0,1fr);gap:var(--space-xs)}.pokedex-progress>span{text-align:start}.collection-badges{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));overflow:visible}.collection-badges span{min-width:0;justify-content:center;padding-inline:3px;text-align:center}.collection-badges b{min-width:0;overflow-wrap:normal;-webkit-hyphens:none;hyphens:none;font-size:.54rem;line-height:1.1;text-wrap:balance}.collection-badges .icon{display:none}.pokedex-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-2xs)}.pokedex-entry{min-height:112px;padding-inline:2px}.pokedex-entry img{width:54px;height:54px}.profile-slots{grid-template-columns:minmax(0,1fr)}.create-profile>div{grid-template-columns:minmax(0,1fr)}.create-profile button{width:100%}.leaderboard-entry{grid-template-columns:32px minmax(0,1fr) 48px 70px;gap:var(--space-2xs)}.leaderboard-value strong{font-size:var(--text-base)}.trophy,.handoff-ball{width:60px;height:60px;margin-block-start:calc(var(--space-xl) * -1)}.result-stats{margin-block:var(--space-sm)}.result-stats div{padding-block:var(--space-xs)}.result-stats span{letter-spacing:.02em}.multiplayer-panel{display:grid;grid-template-columns:88px minmax(0,1fr);column-gap:var(--space-xs);padding-block:var(--space-xs)}.play-location{grid-column:1;grid-row:3;margin:0;padding:0;background:transparent}.play-location button{display:none;width:100%;border:var(--rule-hair) solid var(--color-rule);background:var(--color-surface);color:var(--color-ink)}.play-location [data-play-location=online],.shell.is-online .play-location [data-play-location=local]{display:block}.shell.is-online .play-location [data-play-location=online]{display:none}.player-mode-head{grid-column:1 / -1;margin-block-end:var(--space-2xs)}.player-scores{grid-column:1 / -1}.player-score{min-height:44px;padding:var(--space-2xs) var(--space-xs)}.trainer-tools,.shell.is-online .online-room-summary{grid-column:2;grid-row:3;margin:0}.trainer-tool{min-height:40px;padding-inline:var(--space-2xs)}.trainer-tool .icon{width:16px;height:16px}.dex-frame{height:clamp(340px,calc(100svh - 310px),420px);min-height:0;padding:var(--space-xs);border-radius:var(--radius-md)}.memory-grid{padding:var(--space-2xs)}.memory-grid[data-difficulty=rookie] .memory-card:nth-child(7),.memory-grid[data-difficulty=rookie] .memory-card:nth-child(8){translate:calc((var(--card-width) + var(--card-gap)) / 2) 0}.card-art{inset:var(--space-2xs) var(--space-2xs) 26%}.card-art img{width:118%;height:118%}.dex-number,.card-info small{display:none}.card-info{left:var(--space-2xs);right:var(--space-2xs);bottom:var(--space-2xs);height:23%}.card-info strong{max-width:96%;font-size:var(--text-micro);letter-spacing:-.04em}}@media(max-width:520px)and (max-height:700px){.topbar{min-height:56px;padding-block:0}.game-layout{padding-top:4px;padding-bottom:env(safe-area-inset-bottom)}.multiplayer-panel{padding-block:4px}.multiplayer-panel{grid-template-columns:60px minmax(0,1fr)}.play-location{grid-column:1;grid-row:1}.play-location button{padding-inline:2px;font-size:.55rem;letter-spacing:.02em}.player-mode-head{grid-column:2;grid-row:1;gap:var(--space-2xs)}.card-set-toggle{min-width:78px}.player-count{gap:0;padding:2px}.player-scores{grid-column:1 / -1;grid-row:2}.shell.is-online .online-room-summary{grid-column:2;grid-row:1}.dex-frame{height:340px}}@media(max-width:350px){.topbar{grid-template-columns:minmax(0,1fr) 44px}.sound{display:none}.mobile-restart{grid-column:2}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;transition-delay:0s!important}}
