:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--ground:#f6efe4;--ground-deep:#ece2d3;--surface:#fffdf8;--ink:#33302b;--ink-soft:#6d675e;--ink-faint:#a49c90;--line:#33302b24;--line-strong:#33302b42;--mint-ink:#1f7a5c;--mint:#4ec79a;--mint-rim:#b6f0d5;--coral-ink:#b8453f;--coral:#f0736b;--coral-rim:#ffcac4;--lemon-ink:#a67206;--lemon:#f5bd3c;--lemon-rim:#ffe6a8;--sky-ink:#1f6f92;--sky:#58bfe0;--sky-rim:#bfe9f6;--grape-ink:#6a4699;--grape:#a98be2;--grape-rim:#ded0f7;--hue-ink:var(--mint-ink);--hue:var(--mint);--hue-rim:var(--mint-rim);--r-s:12px;--r-m:20px;--r-l:30px;--r-pill:999px;--e-flat:inset 0 -2px 0 #33302b12;--e-raised:0 2px 0 #33302b14, 0 6px 14px -6px #33302b47;--e-float:0 4px 0 #33302b14, 0 18px 34px -14px #33302b5c;--gel-sheen:linear-gradient(160deg, #ffffffd9 0%, #fff0 52%);--s-1:4px;--s-2:8px;--s-3:12px;--s-4:18px;--s-5:28px;--s-6:44px;--font:"Hiragino Maru Gothic ProN", "Hiragino Sans", "Yu Gothic", "Meiryo", system-ui, sans-serif;--t-caption:.78rem;--t-body:.95rem;--t-title:clamp(1.15rem, 3.4vw, 1.5rem);--t-display:clamp(1.9rem, 6vw, 2.6rem);--t-hero:clamp(3rem, 13vw, 4.6rem);--w-normal:400;--w-medium:700;--w-bold:900;--dur-quick:.12s;--dur-base:.22s;--dur-slow:.38s;--ease-out:cubic-bezier(.22, .8, .3, 1);--ease-spring:cubic-bezier(.2, 1.5, .4, 1);--z-canvas:0;--z-ui:2;--z-topbar:5;--z-tutorial:20;--z-hud:25;--z-gameover:40;--z-veil:45;--z-sheet:60;--z-boot:100;font-family:var(--font);background:var(--ground);color:var(--ink)}.hue-mint{--hue-ink:var(--mint-ink);--hue:var(--mint);--hue-rim:var(--mint-rim)}.hue-coral{--hue-ink:var(--coral-ink);--hue:var(--coral);--hue-rim:var(--coral-rim)}.hue-lemon{--hue-ink:var(--lemon-ink);--hue:var(--lemon);--hue-rim:var(--lemon-rim)}.hue-sky{--hue-ink:var(--sky-ink);--hue:var(--sky);--hue-rim:var(--sky-rim)}.hue-grape{--hue-ink:var(--grape-ink);--hue:var(--grape);--hue-rim:var(--grape-rim)}*{box-sizing:border-box}html,body,#app{width:100%;height:100%;margin:0;overflow:hidden}html,body{overscroll-behavior:none;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}button{font:inherit;color:inherit}.hidden{display:none!important}.app-shell{background:var(--ground);width:100%;min-width:320px;height:100%;min-height:480px;position:relative}.game-canvas{touch-action:none;width:100%;height:100%;display:block;position:absolute;inset:0}.ui-layer{z-index:var(--z-ui);pointer-events:none;position:absolute;inset:0}.ui-layer button{pointer-events:auto}.gel{background:var(--gel-sheen), var(--surface);border-radius:var(--r-m);box-shadow:var(--e-raised)}.icon-button,.nav-button,.primary-button,.secondary-button,.segmented button{cursor:pointer;font-weight:var(--w-bold);transition:transform var(--dur-base) var(--ease-spring), box-shadow var(--dur-base) var(--ease-out), background-color var(--dur-quick) linear, color var(--dur-quick) linear;border:0}.icon-button:active,.nav-button:active,.primary-button:active:not(:disabled),.secondary-button:active:not(:disabled),.segmented button:active{box-shadow:var(--e-flat);transition-duration:var(--dur-quick);transition-timing-function:var(--ease-out);transform:scale(1.05,.9)translateY(2px)}.primary-button,.secondary-button{min-height:52px;padding:var(--s-3) var(--s-5);justify-content:center;align-items:center;gap:var(--s-2);border-radius:var(--r-pill);font-size:var(--t-body);white-space:nowrap;display:inline-flex}.primary-button{background:var(--gel-sheen), var(--hue);color:#fff;text-shadow:0 1px #33302b38;min-width:150px;box-shadow:var(--e-raised)}.secondary-button{background:var(--surface);color:var(--ink);box-shadow:var(--e-raised)}button:disabled{cursor:not-allowed;opacity:.45;box-shadow:none}.icon-button{border-radius:var(--r-pill);background:var(--surface);width:46px;height:46px;color:var(--ink-soft);box-shadow:var(--e-raised);place-items:center;display:inline-grid}.icon-button svg,.button-icon svg,.primary-button svg,.secondary-button svg,.nav-button svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:2.4px;width:100%;height:100%}.icon-button svg{width:23px;height:23px}.button-icon,.primary-button svg,.secondary-button svg{flex:none;width:19px;height:19px}.nav-button{border-radius:var(--r-s);min-width:58px;color:var(--ink-soft);background:0 0;flex-direction:column;align-items:center;gap:2px;padding:6px 8px 5px;display:inline-flex}.nav-button svg{width:22px;height:22px}.nav-label{font-size:.66rem;font-weight:var(--w-medium);letter-spacing:.02em}@media (hover:hover) and (pointer:fine){.nav-button:hover,.icon-button:hover:not(:disabled){background:var(--surface);color:var(--ink)}.primary-button:hover:not(:disabled),.secondary-button:hover:not(:disabled),.game-tile:hover{box-shadow:var(--e-float);transform:translateY(-2px)}}:where(button,[tabindex]):focus-visible,.game-tile:focus-visible{outline:3px solid var(--ink);outline-offset:3px;border-radius:var(--r-s)}.top-bar{top:max(var(--s-3), env(safe-area-inset-top));z-index:var(--z-topbar);width:min(1080px, calc(100% - var(--s-5)));justify-content:space-between;align-items:center;gap:var(--s-3);display:flex;position:absolute;left:50%;transform:translate(-50%)}.brand{align-items:center;gap:var(--s-2);min-width:0;display:flex}.brand-mark{background:var(--gel-sheen), var(--mint);width:42px;height:34px;box-shadow:var(--e-raised);border-radius:52% 52% 46% 46%;flex:none;position:relative}.brand-mark:before,.brand-mark:after{content:"";background:var(--ink);border-radius:50%;width:5px;height:5px;position:absolute;top:13px}.brand-mark:before{left:12px}.brand-mark:after{right:12px}.brand-title{color:var(--ink);font-size:var(--t-title);font-weight:var(--w-bold);white-space:nowrap;margin:0;line-height:1.1}.top-actions{align-items:center;gap:var(--s-1);flex:none;display:flex}.home-root{position:absolute;inset:0}.home-screen{justify-content:center;align-items:center;gap:var(--s-4);padding:max(84px, calc(env(safe-area-inset-top) + 74px)) var(--s-4) calc(max(var(--s-4), env(safe-area-inset-bottom)) + 96px);scrollbar-width:none;flex-direction:column;display:flex;position:absolute;inset:0;overflow-y:auto}.home-screen::-webkit-scrollbar{display:none}.mode-switch{flex-direction:column;flex:none;align-items:center;gap:6px;display:flex}.segmented{border-radius:var(--r-pill);background:var(--ground-deep);box-shadow:var(--e-flat);padding:4px;display:inline-flex}.segmented button{min-width:96px;min-height:42px;padding:0 var(--s-4);border-radius:var(--r-pill);color:var(--ink-soft);font-size:var(--t-body);background:0 0}.segmented button[aria-pressed=true]{background:var(--gel-sheen), var(--surface);color:var(--ink);box-shadow:var(--e-raised)}.mode-note{min-height:1.2em;color:var(--ink-soft);font-size:var(--t-caption);font-weight:var(--w-medium);text-align:center;margin:0}.practice-toggle{min-height:36px;padding:4px var(--s-3);border-radius:var(--r-pill);background:var(--ground-deep);color:var(--ink-soft);font-size:var(--t-caption);font-weight:var(--w-medium);cursor:pointer;transition:background-color var(--dur-quick) linear, color var(--dur-quick) linear;border:0;align-items:center;gap:6px;display:inline-flex}.practice-toggle[aria-pressed=true]{background:var(--mint-rim);color:var(--mint-ink);font-weight:var(--w-bold)}.practice-mark{place-items:center;width:15px;height:15px;display:grid}.practice-mark svg{fill:none;stroke:currentColor;stroke-width:3.4px;stroke-linecap:round;stroke-linejoin:round;width:15px;height:15px}.game-list{gap:var(--s-3);width:min(980px,100%);margin:0;padding:0;list-style:none;display:grid}.game-list>li{display:grid}.game-list>li>.game-tile{height:100%}.game-tile{align-items:center;gap:var(--s-3);width:100%;min-height:116px;padding:var(--s-3);border-radius:var(--r-l);background:var(--gel-sheen), var(--surface);box-shadow:var(--e-raised);color:var(--ink);text-align:left;cursor:pointer;animation:tile-in var(--dur-slow) var(--ease-spring) both;animation-delay:var(--tile-delay,0s);transition:transform var(--dur-base) var(--ease-spring), box-shadow var(--dur-base) var(--ease-out);border:0;grid-template-columns:108px minmax(0,1fr) auto;display:grid;position:relative}.game-tile:active{box-shadow:var(--e-flat);transition-duration:var(--dur-quick);transform:scale(1.02,.96)}.game-tile.is-coming-soon{box-shadow:inset 0 0 0 2px var(--line);color:var(--ink-faint);cursor:default;background:0 0}.game-tile.is-coming-soon:active{box-shadow:inset 0 0 0 2px var(--line);transform:none}.game-tile.is-coming-soon .tile-name{color:var(--ink-soft)}.game-tile.is-coming-soon .coming-soon-art{background:var(--ground-deep);place-items:center;display:grid}.coming-soon-art svg{fill:none;width:30px;height:30px;stroke:var(--ink-faint);stroke-width:2px;stroke-linecap:round;stroke-linejoin:round}@keyframes tile-in{0%{opacity:0;transform:translateY(16px)scale(.94)}to{opacity:1;transform:none}}.tile-preview{border-radius:var(--r-m);background:var(--hue-rim);width:108px;height:92px;display:block}.tile-body{flex-direction:column;gap:3px;min-width:0;display:flex}.tile-name{font-size:var(--t-title);font-weight:var(--w-bold);overflow-wrap:anywhere;margin:0;line-height:1.15}.tile-verb{color:var(--ink-soft);font-size:var(--t-caption);font-weight:var(--w-medium);-webkit-line-clamp:1;line-clamp:1;-webkit-box-orient:vertical;margin:0;line-height:1.35;display:-webkit-box;overflow:hidden}.tile-progress{align-items:center;gap:var(--s-2);margin-top:2px;display:flex}.tile-bar{border-radius:var(--r-pill);background:var(--ground-deep);flex:auto;min-width:40px;height:7px;position:relative;overflow:hidden}.tile-bar:after{content:"";width:calc(var(--progress,0) * 100%);border-radius:inherit;background:var(--hue);transition:width var(--dur-slow) var(--ease-out);position:absolute;inset:0 auto 0 0}.tile-progress-label{color:var(--ink-faint);font-size:.7rem;font-weight:var(--w-medium);font-variant-numeric:tabular-nums;flex:none}.tile-tail{flex-direction:column;align-items:center;gap:6px;display:flex}.tile-medal{place-items:center;width:26px;height:26px;display:grid}.tile-play{border-radius:var(--r-pill);background:var(--gel-sheen), var(--hue);color:#fff;width:52px;height:52px;box-shadow:var(--e-raised);place-items:center;display:grid}.tile-play svg{fill:currentColor;stroke:none;width:24px;height:24px;transform:translate(1px)}.tile-badge{top:-9px;right:var(--s-4);padding:3px var(--s-2);border-radius:var(--r-pill);background:var(--hue-ink);color:#fff;font-size:.66rem;font-weight:var(--w-bold);letter-spacing:.04em;position:absolute}.home-footer{align-items:center;gap:var(--s-2);color:var(--ink-soft);font-size:var(--t-caption);font-weight:var(--w-medium);display:flex}.streak-flame{font-size:1rem}@media (width>=760px){.game-list{gap:var(--s-4);grid-template-columns:repeat(3,minmax(0,1fr))}.game-tile{justify-items:center;gap:var(--s-2);padding:var(--s-4);text-align:center;grid-template-rows:auto auto auto;grid-template-columns:1fr}.tile-preview{width:100%;height:148px}.tile-body{text-align:center;align-items:center;width:100%}.tile-tail{gap:var(--s-3);flex-direction:row}}.hud{z-index:var(--z-hud);pointer-events:none;position:absolute;inset:0}.hud-bar{top:max(var(--s-3), env(safe-area-inset-top));width:min(1020px, calc(100% - var(--s-5)));justify-content:space-between;align-items:flex-start;gap:var(--s-3);display:flex;position:absolute;left:50%;transform:translate(-50%)}.score-pill{--fever:0;align-items:center;gap:var(--s-2);min-height:44px;padding:6px var(--s-4) 6px var(--s-3);border-radius:var(--r-pill);background:var(--gel-sheen), var(--surface);box-shadow:var(--e-raised);font-size:1.55rem;font-weight:var(--w-bold);transition:box-shadow var(--dur-base) var(--ease-out);line-height:1.1;display:inline-flex}.score-pill svg{width:22px;height:22px;fill:var(--lemon);stroke:var(--lemon-ink);stroke-width:2px}.score-value{font-variant-numeric:tabular-nums;min-width:1ch}.score-pill.is-fever{box-shadow:0 0 0 calc(2px + 4px * var(--fever)) rgba(240, 115, 107, calc(.15 + .35 * var(--fever))), var(--e-raised)}.score-pill.is-bumped{animation:pill-bump .3s var(--ease-spring)}@keyframes pill-bump{0%{transform:scale(1)}30%{transform:scale(1.16,.88)}to{transform:scale(1)}}.hud-pause{background:var(--surface)}.pause-overlay{padding:var(--s-4);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);pointer-events:auto;background:#33302b66;place-items:center;display:grid;position:absolute;inset:0}.pause-card{gap:var(--s-2);width:min(330px,100%);padding:var(--s-5) var(--s-4);border-radius:var(--r-l);background:var(--gel-sheen), var(--surface);box-shadow:var(--e-float);text-align:center;animation:panel-in .3s var(--ease-spring) both;flex-direction:column;display:flex}.pause-title{margin:0 0 var(--s-2);font-size:var(--t-display);font-weight:var(--w-bold)}.pause-card .primary-button,.pause-card .secondary-button{width:100%}@keyframes panel-in{0%{opacity:0;transform:translateY(18px)scale(.92)}to{opacity:1;transform:none}}.gameover{z-index:var(--z-gameover);padding:var(--s-4);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#33302b4d;place-items:center;display:grid;position:absolute;inset:0}.gameover-panel{width:min(430px,100%);padding:var(--s-5) var(--s-4) var(--s-4);border-radius:var(--r-l);background:var(--gel-sheen), var(--surface);box-shadow:var(--e-float);text-align:center;pointer-events:auto;position:relative;overflow:hidden}.gameover-panel.is-in{animation:panel-in .34s var(--ease-spring) both}.gameover-panel.is-in>*{animation:result-step .32s var(--ease-out) both}.gameover-panel.is-in .result-context{animation-delay:60ms}.gameover-panel.is-in .gameover-heading{animation-delay:.1s}.gameover-panel.is-in .final-score{animation-delay:.16s}.gameover-panel.is-in .medal-chip{animation:medal-stamp .46s var(--ease-spring) .32s both}.gameover-panel.is-in .result-meta{animation-delay:.42s}.gameover-panel.is-in .result-detail{animation-delay:.5s}.gameover-panel.is-in .result-actions{animation-delay:.56s}@keyframes result-step{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes medal-stamp{0%{opacity:0;transform:scale(2.4)rotate(-12deg)}55%{opacity:1;transform:scale(.88)rotate(3deg)}to{opacity:1;transform:none}}.result-context{min-height:1.2em;color:var(--ink-soft);font-size:var(--t-caption);font-weight:var(--w-medium);margin:0 0 2px}.gameover-heading{font-size:var(--t-display);font-weight:var(--w-bold);margin:0;line-height:1.1}.final-score{color:var(--hue-ink);font-size:var(--t-hero);font-weight:var(--w-bold);font-variant-numeric:tabular-nums;margin:0;line-height:1}.medal-chip{align-items:center;gap:var(--s-2);margin:var(--s-2) auto 0;padding:5px var(--s-3) 5px var(--s-2);border-radius:var(--r-pill);background:var(--ground-deep);font-size:var(--t-caption);font-weight:var(--w-bold);display:inline-flex}.medal-chip.is-empty{display:none}.medal-pip{place-items:center;width:28px;height:28px;display:grid}.result-meta{justify-content:center;gap:var(--s-2);margin:var(--s-4) 0 var(--s-3);flex-wrap:wrap;display:flex}.result-meta div{min-width:120px;padding:var(--s-2) var(--s-3);border-radius:var(--r-m);background:var(--ground-deep);color:var(--ink-soft);font-size:var(--t-caption);font-weight:var(--w-medium)}.result-meta strong{color:var(--ink);font-size:1.25rem;font-weight:var(--w-bold);font-variant-numeric:tabular-nums;margin-top:2px;display:block}.result-detail{margin:0 0 var(--s-3);color:var(--ink-soft);font-size:var(--t-caption);font-weight:var(--w-medium);gap:6px;display:grid}.result-detail:empty{display:none}.result-detail p{margin:0}.result-detail progress{width:100%;height:8px;accent-color:var(--hue)}.result-actions{gap:var(--s-2);grid-template-columns:1fr 1fr;display:grid}.result-actions .primary-button{grid-area:1/1/auto/-1}.result-actions .secondary-button{min-width:0}.newbest-banner{width:fit-content;margin:0 auto var(--s-2);padding:5px var(--s-4);border-radius:var(--r-pill);background:var(--lemon);color:var(--lemon-ink);font-size:var(--t-caption);font-weight:var(--w-bold);display:none}.gameover.celebrate .newbest-banner{animation:banner-pop .46s var(--ease-spring) .24s both;display:block}@keyframes banner-pop{0%{opacity:0;transform:scale(.4)}to{opacity:1;transform:none}}.gameover-confetti{pointer-events:none;border-radius:inherit;position:absolute;inset:0;overflow:hidden}.gameover-confetti span{top:-16px;left:var(--x);background:var(--c);opacity:0;width:8px;height:13px;animation:confetti-fall var(--dur,1.2s) ease-in var(--delay,0s) forwards;border-radius:3px;position:absolute}@keyframes confetti-fall{0%{opacity:0;transform:translateY(-20px)rotate(0)}12%{opacity:1}to{opacity:0;transform:translateY(460px)rotate(560deg)}}.settings{z-index:var(--z-sheet);pointer-events:auto;background:#33302b57;justify-content:center;align-items:flex-end;display:flex;position:absolute;inset:0}.settings-panel{width:min(440px,100%);padding:var(--s-4) var(--s-4) max(var(--s-4), env(safe-area-inset-bottom));border-radius:var(--r-l) var(--r-l) 0 0;background:var(--gel-sheen), var(--surface);box-shadow:var(--e-float);pointer-events:auto;animation:sheet-up .3s var(--ease-out) both}@keyframes sheet-up{0%{transform:translateY(100%)}to{transform:none}}.settings-header,.collection-header{justify-content:space-between;align-items:center;gap:var(--s-3);margin-bottom:var(--s-3);display:flex}.settings-title,.collection-title{font-size:var(--t-title);font-weight:var(--w-bold);margin:0}.settings-rows{gap:var(--s-2);flex-direction:column;display:flex}.settings-row{align-items:center;gap:var(--s-3);width:100%;min-height:54px;padding:var(--s-2) var(--s-4);border-radius:var(--r-m);background:var(--ground-deep);color:var(--ink);font-size:var(--t-body);font-weight:var(--w-medium);cursor:pointer;transition:transform var(--dur-base) var(--ease-spring), background-color var(--dur-quick) linear;border:0;display:flex}.settings-row.is-on{background:var(--gel-sheen), var(--mint-rim)}.settings-row:active{transition-duration:var(--dur-quick);transform:scale(1.02,.94)}.settings-row-icon{width:24px;height:24px;color:var(--ink-soft);flex:none;place-items:center;display:grid}.settings-row-icon svg{fill:none;stroke:currentColor;stroke-width:2.2px;stroke-linecap:round;stroke-linejoin:round;width:24px;height:24px}.settings-row-label{text-align:left;flex:1}.settings-row-value{font-weight:var(--w-bold);color:var(--ink-soft)}.settings-row.is-on .settings-row-value,.settings-row.is-on .settings-row-icon{color:var(--mint-ink)}.collection{z-index:var(--z-sheet);padding:var(--s-4);pointer-events:auto;background:#33302b66;place-items:center;display:grid;position:absolute;inset:0}.collection-panel{-webkit-overflow-scrolling:touch;width:min(620px,100%);max-height:min(88vh,760px);padding:var(--s-4);padding-bottom:max(var(--s-4), env(safe-area-inset-bottom));border-radius:var(--r-l);background:var(--gel-sheen), var(--surface);box-shadow:var(--e-float);animation:panel-in .32s var(--ease-spring) both;overflow-y:auto}.collection-subtitle{margin:var(--s-4) 0 var(--s-2);color:var(--ink-soft);font-size:var(--t-caption);font-weight:var(--w-bold);letter-spacing:.06em}.skin-preview{align-items:center;gap:var(--s-4);padding:var(--s-3);border-radius:var(--r-m);background:var(--ground-deep);grid-template-columns:132px minmax(0,1fr);display:grid}.skin-preview-art{width:132px;height:122px;display:block}.skin-preview-canvas{display:block}.skin-preview-copy{flex-direction:column;gap:4px;display:flex}.skin-preview-name{font-size:var(--t-title);font-weight:var(--w-bold)}.skin-preview-hint{color:var(--ink-soft);font-size:var(--t-caption);font-weight:var(--w-medium)}.skin-rail{gap:var(--s-2);padding:var(--s-2) 2px var(--s-3);scroll-snap-type:x mandatory;scrollbar-width:thin;display:flex;overflow-x:auto}.swatch{scroll-snap-align:start;padding:var(--s-2) 6px;border-radius:var(--r-m);background:var(--ground-deep);cursor:pointer;transition:transform var(--dur-base) var(--ease-spring), box-shadow var(--dur-base) var(--ease-out);border:0;flex-direction:column;flex:0 0 96px;align-items:center;gap:5px;display:flex;position:relative}.swatch.is-selected{background:var(--gel-sheen), var(--surface);box-shadow:var(--e-raised), 0 0 0 3px var(--mint)}.swatch.is-locked{cursor:not-allowed;opacity:.6}.swatch:not(.is-locked):active{transition-duration:var(--dur-quick);transform:scale(1.04,.94)}.swatch-art{width:52px;height:46px;display:block}.swatch-label{font-size:.7rem;font-weight:var(--w-medium);text-align:center;color:var(--ink-soft);line-height:1.2}.swatch.is-selected .swatch-label{color:var(--ink);font-weight:var(--w-bold)}.swatch-badge{place-items:center;width:18px;height:18px;display:grid;position:absolute;top:5px;right:5px}.swatch-badge svg{fill:none;width:18px;height:18px;stroke:var(--ink-faint);stroke-width:3px;stroke-linecap:round;stroke-linejoin:round}.swatch.is-selected .swatch-badge svg{stroke:var(--mint-ink)}.trophy-list{flex-direction:column;gap:6px;display:flex}.trophy-row{align-items:center;gap:var(--s-3);padding:var(--s-2) var(--s-3);border-radius:var(--r-m);background:var(--ground-deep);display:flex}.trophy-pip{flex:none;place-items:center;width:32px;height:32px;display:grid}.trophy-info{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.trophy-name{font-weight:var(--w-bold);font-size:var(--t-body)}.trophy-bests{gap:0 var(--s-3);color:var(--ink-soft);font-size:.74rem;font-weight:var(--w-medium);flex-wrap:wrap;display:flex}.trophy-best{white-space:nowrap}.trophy-medal-name{color:var(--ink-soft);font-size:.74rem;font-weight:var(--w-bold);flex:none}.tutorial{z-index:var(--z-tutorial);pointer-events:none;flex-direction:column;justify-content:flex-end;align-items:center;padding-bottom:22%;display:flex;position:absolute;inset:0}.tutorial.is-shown{animation:tut-in var(--dur-base) var(--ease-out) both}.tutorial.is-leaving{animation:tut-out var(--dur-base) var(--ease-out) both}@keyframes tut-in{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}@keyframes tut-out{to{opacity:0;transform:translateY(10px)}}.tutorial-gesture{width:64px;height:64px;position:relative}.tutorial-gesture span,.tutorial-gesture:after{content:"";border-radius:50%;width:34px;height:34px;margin:-17px 0 0 -17px;position:absolute;top:50%;left:50%}.tutorial-gesture span{background:var(--surface);box-shadow:var(--e-raised)}.tutorial-gesture:after{border:3px solid var(--surface)}.tutorial-gesture[data-gesture=tap] span{animation:1s ease-in-out infinite g-tap}.tutorial-gesture[data-gesture=tap]:after{animation:1s ease-out infinite g-tap-ring}.tutorial-gesture[data-gesture=hold] span{animation:1.3s ease-in-out infinite g-hold}.tutorial-gesture[data-gesture=pull] span{animation:1.3s ease-in-out infinite g-pull}@keyframes g-tap{0%,to{transform:scale(1)}50%{transform:scale(1.16,.8)}}@keyframes g-tap-ring{0%{opacity:.8;transform:scale(.8)}to{opacity:0;transform:scale(1.9)}}@keyframes g-hold{0%,to{transform:scale(1)}50%{transform:scale(1.3,.62)}}@keyframes g-pull{0%,to{transform:translateY(0)scale(1)}50%{transform:translateY(18px)scale(.9,1.14)}}.tutorial-label{margin-top:var(--s-3);padding:var(--s-2) var(--s-4);border-radius:var(--r-pill);background:var(--ink);color:var(--surface);font-size:var(--t-body);font-weight:var(--w-bold)}.boot{z-index:var(--z-boot);background:var(--ground);transition:opacity var(--dur-slow) var(--ease-out);place-items:center;display:grid;position:absolute;inset:0}.boot.is-done{opacity:0;pointer-events:none}.boot-mark{background:var(--gel-sheen), var(--mint);width:96px;height:78px;box-shadow:var(--e-float);animation:boot-drop .9s var(--ease-spring) both;border-radius:52% 52% 46% 46%;position:relative}.boot-mark:before,.boot-mark:after{content:"";background:var(--ink);border-radius:50%;width:9px;height:9px;position:absolute;top:29px}.boot-mark:before{left:28px}.boot-mark:after{right:28px}@keyframes boot-drop{0%{opacity:0;transform:translateY(-40px)scale(.86,1.2)}55%{opacity:1;transform:translateY(0)scale(1.14,.84)}to{opacity:1;transform:none}}.veil{z-index:var(--z-veil);background:var(--ground);opacity:0;pointer-events:none;clip-path:circle(150% at 50% 55%);position:absolute;inset:0}.veil.flash{animation:iris .46s var(--ease-out)}@keyframes iris{0%{opacity:1;clip-path:circle(150% at 50% 55%)}55%{opacity:1;clip-path:circle(22% at 50% 55%)}to{opacity:1;clip-path:circle(0% at 50% 55%)}}.sheet{z-index:var(--z-sheet);padding:var(--s-3);pointer-events:auto;background:#33302b6b;place-items:center;display:grid;position:absolute;inset:0}.sheet-panel{width:min(560px,100%);max-height:min(88dvh,760px);padding:var(--s-4);border-radius:var(--r-l);background:var(--gel-sheen), var(--surface);box-shadow:var(--e-float);color:var(--ink);pointer-events:auto;transform-origin:50%;animation:sheet-in var(--dur-base) var(--ease-out) both;flex-direction:column;display:flex}@keyframes sheet-in{0%{opacity:0;transform:scale(.96)translateY(6px)}}.sheet-header,.tab-row,.match-bar{flex:none}.sheet-header{align-items:center;gap:var(--s-2) var(--s-3);grid-template-columns:1fr auto;grid-template-areas:"title close""identity identity";display:grid}.sheet-title{font-size:var(--t-title);font-weight:var(--w-bold);grid-area:title;margin:0}.sheet-header .icon-button{grid-area:close}.online-identity{align-items:center;gap:var(--s-2);padding-top:var(--s-2);border-top:1px solid var(--line);grid-area:identity;display:flex}.online-avatar{flex:none;width:40px;height:40px}.online-name{font-size:1.05rem;font-weight:var(--w-bold);letter-spacing:.1em}.text-button{min-height:40px;padding:0 var(--s-2);border-radius:var(--r-s);color:var(--ink-soft);font:inherit;font-size:var(--t-caption);font-weight:var(--w-medium);cursor:pointer;transition:color var(--dur-quick) var(--ease-out), background var(--dur-quick) var(--ease-out), transform var(--dur-quick) var(--ease-out);background:0 0;border:0;margin-left:auto}.text-button:active{transform:scale(.97)}.tab-row{margin-top:var(--s-3);scrollbar-width:none;gap:6px;padding-bottom:2px;display:flex;overflow-x:auto}.tab-row::-webkit-scrollbar{display:none}.board-tabs{margin-top:var(--s-2)}.tab{min-height:40px;padding:0 var(--s-3);border-radius:var(--r-pill);background:var(--ground-deep);color:var(--ink-soft);font:inherit;font-size:var(--t-caption);font-weight:var(--w-medium);white-space:nowrap;cursor:pointer;transition:background var(--dur-quick) var(--ease-out), color var(--dur-quick) var(--ease-out), transform var(--dur-quick) var(--ease-out);border:0;flex:none}.tab:active{transform:scale(.97)}.tab[aria-pressed=true]{background:var(--hue);color:var(--surface)}.tab-quiet[aria-pressed=true]{background:var(--ink);color:var(--surface)}.online-scroll{min-height:0;margin-top:var(--s-3);overscroll-behavior:contain;flex:1;overflow-y:auto}.board.is-empty .board-list{display:none}.board-status{padding:var(--s-5) 0;color:var(--ink-soft);font-size:var(--t-body);font-weight:var(--w-medium);text-align:center;margin:0}.board-status:empty{display:none}.board-status.is-error{color:var(--coral-ink)}.board-list{margin:0;padding:0;list-style:none}.board-row{align-items:center;gap:var(--s-3);min-height:48px;padding:0 var(--s-2);border-radius:var(--r-s);animation:row-in var(--dur-base) var(--ease-out) both;animation-delay:var(--row-delay,0s);grid-template-columns:2.4rem minmax(0,1fr) auto;display:grid}.board-row+.board-row{box-shadow:inset 0 1px 0 var(--line)}@keyframes row-in{0%{opacity:0;transform:translateY(4px)}}.board-row.is-me,.board-row.is-me+.board-row{box-shadow:none}.board-row.is-me{background:var(--hue-rim)}.board-rank{color:var(--ink-faint);font-weight:var(--w-bold);font-variant-numeric:tabular-nums;text-align:right}.board-row.is-podium .board-rank{color:var(--hue-ink)}.board-name{font-weight:var(--w-medium);letter-spacing:.08em;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.board-score{font-size:1.05rem;font-weight:var(--w-bold);font-variant-numeric:tabular-nums}.match-bar{margin-top:var(--s-3);padding-top:var(--s-3);border-top:1px solid var(--line)}.match-label{margin-bottom:var(--s-2);color:var(--ink-soft);font-size:var(--t-caption);font-weight:var(--w-medium);display:block}.match-row{gap:var(--s-2);grid-template-columns:minmax(0,1fr) auto auto;display:grid}.match-row .primary-button,.match-row .secondary-button{white-space:nowrap;min-width:0}.match-status{min-height:0;color:var(--ink-soft);font-size:var(--t-caption);font-weight:var(--w-medium);opacity:0;transition:opacity var(--dur-base) var(--ease-out);margin:0}.match-status.is-visible{min-height:1.4em;margin-top:var(--s-2);opacity:1}.name-panel{gap:var(--s-2);width:min(400px,100%)}.name-panel .sheet-header{grid-template-areas:"title close"}.code-input{width:100%;min-height:52px;padding:var(--s-2) var(--s-3);border:2px solid var(--line-strong);border-radius:var(--r-m);background:var(--surface);color:var(--ink);font-family:inherit;font-size:1.2rem;font-weight:var(--w-bold);letter-spacing:.15em;text-align:center;text-transform:uppercase;transition:border-color var(--dur-quick) var(--ease-out)}.code-input:focus-visible{border-color:var(--hue);outline:none}.match-code{letter-spacing:.12em;min-height:48px;font-size:1.05rem}.sheet-help{color:var(--ink-soft);font-size:var(--t-caption);font-weight:var(--w-medium);margin:0;line-height:1.6}.sheet-error{min-height:1.2em;color:var(--coral-ink);font-size:var(--t-caption);font-weight:var(--w-bold);margin:0}.name-panel .primary-button{width:100%;margin-top:var(--s-2)}.turnstile-backdrop{z-index:1000;padding:var(--s-4);background:#33302b8c;place-items:center;display:grid;position:fixed;inset:0}.turnstile-host{min-width:300px;min-height:70px;padding:var(--s-3);border-radius:var(--r-m);background:var(--surface);box-shadow:var(--e-float)}@media (hover:hover) and (pointer:fine){.tab:hover:not([aria-pressed=true]){background:var(--line);color:var(--ink)}.text-button:hover{background:var(--ground-deep);color:var(--ink)}}@media (width<=560px){.match-row{grid-template-columns:1fr 1fr}.match-code{grid-column:1/-1}.skin-preview{gap:var(--s-3);grid-template-columns:112px minmax(0,1fr)}.skin-preview-art{width:112px;height:104px}.result-actions{grid-template-columns:1fr}}@media (width<=760px){.top-bar{width:calc(100% - var(--s-4))}.nav-button{min-width:50px}.sheet{padding:var(--s-2)}.sheet-panel{max-height:calc(100dvh - 16px)}}@media (height<=620px){.home-screen{padding-top:max(72px, calc(env(safe-area-inset-top) + 64px));padding-bottom:calc(max(var(--s-3), env(safe-area-inset-bottom)) + 64px);gap:var(--s-3)}.tile-preview{height:76px}.game-tile{padding:var(--s-2) var(--s-3)}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important;animation-delay:0s!important}.tile-art,.tutorial-gesture span,.tutorial-gesture:after{animation:none!important}}
