:root{--bg: #f6f4ee;--bg-soft: #eaf0e7;--panel: #fffdf8;--line: #dddeda;--text: #303f36;--muted: #637065;--accent: #3e6952;--accent-2: #3e6952;--danger: #a33f3f;--gold: #88622f;--radius: 14px;color-scheme:light}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:PingFang SC,Hiragino Sans GB,Microsoft YaHei,system-ui,-apple-system,sans-serif;-webkit-font-smoothing:antialiased}.app{min-height:100%;display:flex;flex-direction:column}.nav{display:flex;align-items:center;gap:8px;padding:14px 20px;border-bottom:1px solid var(--line);background:#f6f4eef0;position:sticky;top:0;z-index:10}.nav__brand{font-weight:800;font-size:20px;letter-spacing:1px;margin-right:12px;color:var(--accent)}.nav__brand-dot{color:var(--text);font-size:15px;margin-left:2px}.nav__link{color:var(--muted);text-decoration:none;padding:7px 14px;border-radius:999px;font-size:14px;transition:background .18s ease,color .18s ease}.nav__link:hover{color:var(--text);background:var(--panel)}.nav__link.is-active{color:#fff;background:var(--accent);font-weight:700}.main{flex:1;display:flex;justify-content:center;padding:26px 18px 48px}.panel{width:100%;max-width:1040px;background:var(--panel);border:1px solid var(--line);border-radius:20px;padding:26px;box-shadow:0 12px 40px #3644310a}.panel--board{max-width:1180px}.intro__title{margin:0 0 10px;font-size:26px}.intro__lead{margin:0 0 14px;color:var(--muted);line-height:1.7}.intro__rules{margin:0 0 22px;padding-left:20px;color:var(--muted);line-height:2}.intro__rules b{color:var(--text)}.row{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.row--actions{margin-top:20px}.btn{border:1px solid var(--line);background:#fffdf8;color:var(--text);padding:10px 18px;border-radius:10px;font-size:14px;font-weight:600;cursor:pointer;text-decoration:none;transition:transform .1s ease,background .15s ease,opacity .15s ease}.btn:hover:not(:disabled){background:#e7eddf}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.4;cursor:not-allowed}.btn--primary{background:var(--accent);border-color:transparent;color:#fff}.btn--primary:hover:not(:disabled){background:#31563f}.btn--danger{background:#f8717129;border-color:#f8717166;color:#923737}.btn--lg{padding:13px 26px;font-size:16px}.input{background:#fff;border:1px solid var(--line);color:var(--text);border-radius:10px;padding:10px 14px;font-size:15px;min-width:180px}.select{width:100%;background:#36443114;border:1px solid var(--line);color:var(--text);border-radius:10px;padding:8px 10px;font-size:13px;margin:6px 0}.hud{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:22px}.hud__item{background:#f1f3ed;border:1px solid var(--line);border-radius:var(--radius);padding:12px 14px;display:flex;flex-direction:column;gap:4px}.hud__label{font-size:12px;color:var(--muted)}.hud__value{font-size:19px;font-weight:700}.hud__value--clock{font-variant-numeric:tabular-nums;color:var(--accent-2);letter-spacing:1px}.stage__title{text-align:center;color:var(--muted);margin-bottom:16px}.stage__title b{color:var(--gold);font-size:18px}.track{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;min-height:108px;padding:12px;border:1px dashed var(--line);border-radius:var(--radius);background:#eaf0e5}.track.is-disabled{opacity:.65;pointer-events:none}.track__cell{display:flex;align-items:center}.gap{flex:none;width:16px;height:66px;border-radius:8px;display:flex;align-items:center;justify-content:center;color:transparent;transition:background .18s ease,box-shadow .18s ease,transform .18s ease;cursor:pointer}.gap__mark{font-size:13px}.gap.is-hot{background:#e7efdf;color:#3e6952;width:22px}.gap.is-over{background:#3e6952;color:#fff;width:30px}.track__num{cursor:grab;border-radius:12px;padding:2px;border:2px solid transparent}.track__num.is-selected{border-color:var(--accent-2);box-shadow:0 0 0 4px #dae6d4}.track__num:active{cursor:grabbing}.card{background:#fffefa;border:1px solid #e0ded5;border-radius:10px;display:flex;flex-direction:column;align-items:center;justify-content:center;box-shadow:0 6px 14px #36443114;-webkit-user-select:none;user-select:none}.card--md{width:62px;height:88px}.card--sm{width:52px;height:72px}.card--black{color:#10151f}.card--red{color:#d92c46}.card__rank{font-size:22px;font-weight:800;line-height:1}.card--sm .card__rank{font-size:20px}.card__suit{font-size:18px;margin-top:2px}.palette{margin-top:18px}.palette__hint{font-size:12px;color:var(--muted);text-align:center;margin-bottom:8px}.palette__row{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}.chip{width:48px;height:48px;border-radius:12px;border:1px solid var(--line);background:#fffdf8;color:var(--text);font-size:22px;font-weight:700;cursor:grab;display:flex;align-items:center;justify-content:center;transition:background .18s ease,box-shadow .18s ease,transform .18s ease}.chip:hover:not(:disabled){background:#e7eddf;transform:translateY(-2px)}.chip.is-active{background:var(--accent-2);color:#fff;border-color:transparent}.chip--lp,.chip--rp{color:var(--gold)}.chip--placed{width:40px;height:56px;font-size:20px;background:#e5eddf;border-color:#c6d4bf}.chip--placed:hover{background:#f8717133;border-color:#f8717173}.toast{margin-top:16px;padding:11px 15px;border-radius:10px;font-size:14px;line-height:1.6;text-align:center}.toast--error{background:#f8717124;color:#923737;border:1px solid rgba(248,113,113,.3)}.toast--ok{background:#e7efdf;color:#30583c;border:1px solid rgba(74,222,128,.3)}.toast--info{background:#e9f0ec;color:#345d65;border:1px solid rgba(56,189,248,.28)}.toast__sol{display:block;margin-top:4px;font-weight:700;color:var(--text)}.result__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:18px 0}.result__cell{background:#f1f3ed;border:1px solid var(--line);border-radius:var(--radius);padding:16px;text-align:center}.result__label{display:block;font-size:12px;color:var(--muted);margin-bottom:6px}.result__value{font-size:24px;font-weight:800;font-variant-numeric:tabular-nums}.result__save label{display:block;font-size:13px;color:var(--muted);margin-bottom:8px}.result__saved{background:#e7efdf;border:1px solid rgba(74,222,128,.3);border-radius:var(--radius);padding:16px;display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between}.history{margin:20px 0}.history summary{cursor:pointer;color:var(--muted);font-size:14px}.history__list{margin:12px 0 0;padding:0;list-style:none;display:flex;flex-direction:column;gap:6px}.history__list li{display:grid;grid-template-columns:110px 54px 1fr;gap:10px;align-items:center;padding:8px 12px;border-radius:8px;background:#f1f3ed;font-size:13px}.history__cards{font-weight:700;letter-spacing:2px}.history__tag{font-size:12px}.history__expr{color:var(--muted)}.history__list li.is-solved .history__tag{color:var(--accent)}.history__list li.is-missed .history__tag{color:var(--danger)}.history__list li.is-nosol .history__tag{color:var(--muted)}.board__head{display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;align-items:flex-start;margin-bottom:20px}.board__lead{margin:0;color:var(--muted);font-size:13px;line-height:1.8;max-width:640px}.board__lead b{color:var(--text)}.board{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.column{background:#f1f3ed;border:1px solid var(--line);border-radius:var(--radius);padding:14px;display:flex;flex-direction:column;min-height:420px}.column__head{border-bottom:1px solid var(--line);padding-bottom:10px;margin-bottom:10px}.column__title{font-size:12px;color:var(--muted)}.column__group{font-size:26px;font-weight:800;color:var(--gold);font-variant-numeric:tabular-nums;margin-top:4px}.column__sub{font-size:11px;color:var(--muted);line-height:1.6;margin-top:4px}.column__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px;overflow-y:auto;max-height:520px}.column__empty{color:var(--muted);font-size:13px;padding:16px 4px;text-align:center}.entry{display:grid;grid-template-columns:24px 1fr auto;gap:8px;align-items:center;padding:8px 10px;border-radius:8px;background:#ffffff0a;font-size:13px}.entry__rank{color:var(--muted);font-weight:700;text-align:center}.entry__name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.entry__time{font-variant-numeric:tabular-nums;color:var(--accent-2);font-weight:600}.entry--top1 .entry__rank{color:var(--gold)}.entry--top2 .entry__rank{color:#637065}.entry--top3 .entry__rank{color:#88622f}.entry.is-me{background:#4ade8029;box-shadow:inset 0 0 0 1px #4ade8066}@media (max-width: 900px){.board{grid-template-columns:repeat(2,1fr)}.result__grid{grid-template-columns:repeat(3,1fr)}}@media (max-width: 560px){.board{grid-template-columns:1fr}.panel{padding:18px}.card--sm{width:44px;height:62px}.chip{width:42px;height:42px}}button,input,select{font:inherit}button,a,summary{-webkit-tap-highlight-color:transparent;touch-action:manipulation}button:focus-visible,a:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--accent);outline-offset:4px}.nav{padding:14px max(24px,calc((100vw - 1040px)/2));gap:12px}.nav__brand{margin-right:auto;font-size:26px}.nav__link{min-height:44px;display:inline-flex;align-items:center}.nav__link.is-active{background:#e4eadf;color:#34513f}.main{align-items:flex-start;padding-top:32px}.panel{padding:32px}.panel--intro{max-width:760px;text-align:center;padding:44px 32px 32px}.eyebrow{color:var(--muted);font-size:13px;letter-spacing:2px;margin:0}.intro__title{font-size:clamp(26px,4vw,36px);font-weight:650;letter-spacing:1px}.intro__lead{font-size:15px;line-height:1.9;margin:16px 0 28px}.intro__cards{display:flex;justify-content:center;gap:12px;padding:36px 0 32px}.card--preview{width:76px;height:108px}.intro__cards .card:nth-child(1){transform:rotate(-12deg) translateY(8px)}.intro__cards .card:nth-child(2){transform:rotate(-4deg)}.intro__cards .card:nth-child(3){transform:rotate(4deg)}.intro__cards .card:nth-child(4){transform:rotate(12deg) translateY(8px)}.panel--intro>.row{justify-content:center}.play-help{text-align:left;border-top:1px solid var(--line);margin-top:32px;padding-top:16px;color:var(--muted);font-size:14px}.play-help summary{cursor:pointer;padding:10px 0}.intro__rules{margin:12px 0;line-height:1.9}.btn{min-height:44px;border-radius:12px}.btn--primary{color:#fff;box-shadow:0 3px #2d503c}.btn--ghost{background:transparent}.hud{display:flex;gap:20px;border-bottom:1px solid var(--line);padding-bottom:18px;margin-bottom:32px}.hud__item{background:none;border:0;padding:0;gap:5px}.hud__item--clock{margin-left:auto;text-align:right}.hud__value{font-size:15px;font-weight:600}.hud__value--clock{color:var(--muted);font-size:14px;letter-spacing:0}.stage__title{margin-bottom:22px}.stage__target{font-size:56px;font-weight:600;line-height:1;color:var(--accent);margin:12px 0}.stage__target span{font-size:16px;margin-left:6px;font-weight:400}.stage__title p{margin:0;font-size:14px}.track{min-height:190px;padding:24px 8px;border:1px solid #dce4d5;border-radius:24px;gap:12px 0}.track__num{background:transparent;padding:0;border:0;flex:none}.track__num.is-selected{outline:3px solid var(--accent);outline-offset:3px;box-shadow:none}.card--sm{width:76px;height:108px}.card__rank,.card--sm .card__rank{font-size:30px;font-weight:650}.card__suit{font-size:26px;margin-top:8px}.card--black{color:#35443a}.card--red{color:#b24b47}.gap,.gap.is-hot,.gap.is-over{width:32px;height:60px;border:0;padding:0;background:transparent;color:#76826e}.gap__mark{font-size:22px}.gap.is-hot{background:#dbe7d2;color:#37573e}.gap.is-over{background:#3e6952;color:#fff}.palette{margin-top:24px}.palette__hint{font-size:13px;margin-bottom:14px}.palette__row{gap:12px}.chip{width:52px;height:52px;font-size:24px;box-shadow:0 2px #e1e3d9}.chip--placed{width:44px;height:52px;box-shadow:none}.chip.is-active{color:#fff}.chip:disabled{opacity:.45;cursor:default}.feedback-slot{min-height:66px}.toast{margin-top:14px;padding:10px 12px}.row--actions{justify-content:center;margin-top:8px;gap:12px}.row--actions .btn--primary{min-width:132px}.result__value{font-size:22px}.column__sub{font-size:12px}.select,.input{font-size:16px;min-height:44px;max-width:100%}.history__expr{overflow-wrap:anywhere}@media (max-width: 600px){.nav{padding:10px 18px;gap:4px}.main{padding:16px 12px 28px}.panel{padding:22px 12px;border-radius:20px}.panel--intro{padding:30px 20px 20px}.intro__cards{gap:10px}.card--preview{width:58px;height:84px}.hud{gap:20px;margin-bottom:26px;padding:0 6px 16px}.hud__label{font-size:12px}.stage__target{font-size:48px}.track{min-height:152px;padding:20px 0;border-radius:18px}.card--sm{width:46px;height:72px}.card--sm .card__rank{font-size:24px}.card--sm .card__suit{font-size:20px}.gap,.gap.is-hot,.gap.is-over{width:24px;height:48px}.chip{width:44px;height:48px}.chip--placed{width:28px}.palette__row{gap:8px}.palette__hint{font-size:12px}.row--actions{display:grid;grid-template-columns:1fr 1fr;padding:0 8px}.result__cell{padding:12px 4px}.result__value{font-size:18px}.history__list li{grid-template-columns:1fr auto}.history__expr{grid-column:1 / -1}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}.nav{position:static;flex-wrap:wrap;max-width:1440px;width:100%;margin:0 auto;padding:16px 24px;background:transparent}.nav__brand{margin-right:16px;font-size:32px}.nav__tabs{display:flex;gap:8px;padding:5px;border:1px solid var(--line);border-radius:17px;background:#ecefe6}.nav__link{justify-content:center;min-height:48px;min-width:126px;font-size:16px;font-weight:650;border-radius:12px;padding:10px 20px}.nav__link.is-active{background:var(--accent);color:#fff;box-shadow:0 3px 8px #30483720}.language-select{margin-left:auto;min-height:44px;padding:8px 28px 8px 12px;border-radius:10px;border:1px solid #ccd3c8;color:var(--text);background:#fffdf8;font-size:14px}.main{padding:20px 24px 32px}.game-layout{display:grid;grid-template-columns:minmax(0,1fr) 230px;align-items:start;gap:18px;width:100%;max-width:1380px}.game-info{grid-column:2;grid-row:1;padding:22px;background:#e9eee3;border:1px solid #d7dfd0;border-radius:20px}.game-info h2{margin:0 0 18px;font-size:18px}.game-info .hud{display:grid;grid-template-columns:1fr;gap:14px;margin:0;padding:0 0 16px}.game-info .hud__item{display:flex;flex-direction:row;justify-content:space-between;align-items:center;gap:10px;padding-bottom:12px;border-bottom:1px solid #d7dfd0}.game-info .hud__item--clock{margin-left:0;text-align:left;border-bottom:0;padding-bottom:0}.game-info .hud__label{font-size:13px}.info-help{font-size:14px;line-height:1.6;margin:16px 0 12px}.info-values{font-size:12px;line-height:1.8;color:var(--muted);margin:0}.stage.panel{grid-column:1;grid-row:1;max-width:none;padding:22px 24px}.stage__title{display:flex;align-items:center;gap:12px;text-align:left;margin-bottom:16px}.stage__target{margin:0;font-size:38px}.stage__target span{font-size:14px}.stage__title p{margin-left:auto;max-width:240px;font-size:13px}.hand-area{border:1px solid #d4dec9;background:#e5eddd;border-radius:20px;padding:24px 18px 12px}.card-rack{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(10px,2vw,24px);max-width:720px;margin:0 auto}.rack-card{border:0;background:transparent;padding:0;position:relative;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;border-radius:14px;min-width:0}.rack-card:active{cursor:grabbing}.rack-card .card--md{width:100%;height:auto;aspect-ratio:.7;border-radius:14px;box-shadow:0 5px #d5d8ca,0 9px 18px #44513715}.rack-card .card__rank{font-size:clamp(30px,4.5vw,64px);font-weight:650}.rack-card .card__suit{font-size:clamp(26px,3.5vw,48px);margin-top:14px}.rack-card.is-selected,.rack-card.is-drop-target{outline:3px solid var(--accent);outline-offset:4px}.rack-card.is-dragging>.card{opacity:.4}.rack-ghost{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:30}.rack-card.is-dragging{z-index:20}.rack-card:disabled{cursor:default;opacity:.65}.rack-hint{margin:18px 0 0;text-align:center;color:#52644d;font-size:13px}.expression-label{font-size:11px;letter-spacing:1.4px;color:var(--muted);margin:18px 0 8px}.track{padding:8px;min-height:62px;border:1px solid var(--line);background:#f6f5ee;border-radius:12px;gap:4px 0}.expression-number{display:flex;align-items:center;justify-content:center;min-width:32px;height:40px;font-size:24px;font-weight:650}.gap,.gap.is-hot,.gap.is-over{width:24px;height:40px}.chip--placed{width:28px;height:40px}.palette{margin-top:12px}.palette__hint{margin-bottom:8px;font-size:12px}.palette__row{gap:10px}.palette .chip{width:54px;height:46px}.feedback-slot{min-height:12px}.row--actions{margin-top:18px}.row--actions .btn--primary{min-width:160px}.panel--intro{max-width:860px;padding:26px 32px}.intro__cards{padding:22px 0}.card--preview{width:96px;height:136px}.intro__lead{margin:12px 0 20px}.play-help{margin-top:22px}@media (max-width: 1000px){.game-layout{grid-template-columns:1fr;gap:12px}.game-info{grid-column:1;grid-row:2;padding:16px 20px}.game-info h2{display:none}.game-info .hud{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;border:0;padding:0}.game-info .hud__item{flex-direction:column;align-items:flex-start;border:0;padding:0;gap:4px}.game-info .info-help{margin:12px 0 4px}.card-rack{max-width:620px}.rack-card .card__rank{font-size:clamp(32px,6vw,58px)}}@media (max-width: 600px){.nav{padding:12px;gap:10px}.nav__brand{margin:0;font-size:28px}.nav__tabs{order:3;width:100%}.nav__link{flex:1;min-width:0;font-size:17px}.language-select{margin-left:auto}.main{padding:12px}.stage.panel{padding:16px 12px}.stage__title{gap:8px;margin-bottom:12px}.stage__title p{display:none}.stage__target{font-size:32px}.hand-area{padding:16px 8px 10px;border-radius:14px}.card-rack{gap:8px}.rack-card .card--md{border-radius:9px}.rack-card .card__rank{font-size:30px}.rack-card .card__suit{font-size:24px;margin-top:8px}.rack-hint{font-size:12px;line-height:1.5;margin-top:14px}.expression-label{margin-top:12px}.palette .chip{width:44px;height:44px}.palette__row{gap:8px}.row--actions{padding:0;gap:8px;margin-top:14px}.row--actions .btn{padding:10px 6px;font-size:13px;min-width:0}.game-info{padding:14px}.game-info .hud{gap:10px}.game-info .hud__label{font-size:12px}.game-info .hud__value{font-size:14px}.game-info .info-help{font-size:13px}.card--preview{width:60px;height:86px}.panel--intro{padding:24px 16px}}.card-rack{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:12px 0;max-width:none}.card-rack .rack-card{flex:0 0 clamp(88px,11vw,150px)}.card-gap{flex:0 0 28px;height:110px;border:0;padding:0;border-radius:8px;background:transparent;color:#687b5e;cursor:pointer;font-size:24px}.card-gap.is-ready{background:#d7e4cb}.card-gap.is-over{background:#3e6952;color:#fff;outline:2px solid #294b37}.inline-symbol{flex:0 0 38px;width:38px;height:60px;background:#f8faf4;font-size:30px;touch-action:none}.palette .chip{touch-action:none}.symbol-ghost{position:fixed;z-index:100;pointer-events:none;transform:translate(-50%,-50%);width:48px;height:48px;display:grid;place-items:center;border-radius:12px;background:var(--accent);color:#fff;font-size:28px;box-shadow:0 5px 18px #21352640}@media (max-width: 600px){.hand-area{padding:16px 2px 10px}.card-rack .rack-card{flex-basis:clamp(48px,14.2vw,80px)}.card-gap{flex-basis:18px;height:74px}.inline-symbol{flex-basis:24px;width:24px;height:44px;font-size:24px}}.rack-token{display:inline-flex;align-items:center;flex:none}.card-rack .rack-card{flex:none;width:clamp(88px,11vw,150px)}@media (max-width: 600px){.card-rack .rack-card{width:clamp(48px,14.2vw,80px)}.card-gap{flex-basis:14px;width:14px}}.deck-clock{margin:-8px -8px 20px;padding:12px;border-radius:14px;background:#fff2d8;border:1px solid #e8c98b;color:#835016}.deck-clock__heading{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:2px 6px}.deck-clock__label{font-size:12px;font-weight:600}.deck-clock__time{display:block;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-variant-numeric:tabular-nums;font-size:42px;line-height:1.2;letter-spacing:-2px;font-weight:750;margin-top:4px}.deck-clock__restart{display:inline-flex;align-items:center;justify-content:center;gap:5px;min-height:44px;padding:6px;background:transparent;color:#774818;border:0;border-radius:8px;font-size:12px;font-weight:650;cursor:pointer}.deck-clock__restart:hover{background:#f3dfb8}@media (max-width: 1000px){.deck-clock{margin:0 0 16px}.game-info .hud{grid-template-columns:repeat(2,minmax(0,1fr))}}.deck-clock__restart{background:#f3dcd5;color:#873f32;border:1px solid #d9ada2;padding:6px 9px}.deck-clock__restart:hover{background:#eac6bc}.btn--skip{background:#f7e8c9;color:#775019;border-color:#dbc28e}.btn--skip:hover:not(:disabled){background:#efdbb0}.btn--clear{background:#e1edf5;color:#345d79;border-color:#b7cede}.btn--clear:hover:not(:disabled){background:#cddfeb}.btn--reset{background:#ece3f3;color:#674b7d;border-color:#cebadd}.btn--reset:hover:not(:disabled){background:#decfea}.game-layout{grid-template-columns:minmax(0,1fr) 310px;gap:22px}.game-sidebar{grid-column:2;grid-row:1;display:flex;flex-direction:column;align-items:stretch;gap:22px}.game-sidebar .game-info{padding:18px}.action-wheel{width:296px;max-width:100%;aspect-ratio:1;margin:0 auto;padding:4px}.action-wheel__rim{width:100%;height:100%;padding:10px;border-radius:50%;background:linear-gradient(145deg,#fdf9ea,#dfd5bc 65%,#cbbf9f);border:1px solid #c8bea6;box-shadow:0 5px #b3aa90,0 12px 20px #4d563020,inset 0 2px 1px #fffef8}.action-wheel__disc{position:relative;width:100%;height:100%;border-radius:50%;overflow:hidden;background:#f7f2e4;box-shadow:0 0 0 1px #beb49b}.wheel-sector{position:absolute;top:0;right:0;bottom:0;left:0;border:0;padding:0;border-radius:50%;cursor:pointer;color:var(--wheel-ink);background:linear-gradient(145deg,var(--wheel-light),var(--wheel-base));transition:filter .16s ease}.wheel-sector--check{--wheel-light: #b6d5a6;--wheel-base: #8eb17c;--wheel-ink: #223f28;clip-path:polygon(1% 0,99% 0,50% 49%)}.wheel-sector--skip{--wheel-light: #efd69c;--wheel-base: #d8b76d;--wheel-ink: #584019;clip-path:polygon(100% 1%,100% 99%,51% 50%)}.wheel-sector--reset{--wheel-light: #d5c5e3;--wheel-base: #b3a0ca;--wheel-ink: #463256;clip-path:polygon(99% 100%,1% 100%,50% 51%)}.wheel-sector--clear{--wheel-light: #bcd8df;--wheel-base: #93bbc7;--wheel-ink: #254651;clip-path:polygon(0 99%,0 1%,49% 50%)}.wheel-sector__label{position:absolute;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;width:72px;min-height:52px;transform:translate(-50%,-50%);font-size:12px;line-height:1.2;font-weight:750;text-align:center;text-shadow:0 1px 0 #ffffff55}.wheel-sector--check .wheel-sector__label{top:19%;left:50%}.wheel-sector--skip .wheel-sector__label{top:50%;left:82%}.wheel-sector--reset .wheel-sector__label{top:81%;left:50%}.wheel-sector--clear .wheel-sector__label{top:50%;left:18%}.wheel-sector:hover:not(:disabled){filter:brightness(1.08) saturate(1.15)}.wheel-sector:active:not(:disabled){filter:brightness(.93)}.wheel-sector:focus-visible{outline:none;filter:brightness(1.12)}.wheel-sector:focus-visible .wheel-sector__label{outline:2px solid currentColor;outline-offset:3px;border-radius:9px}.wheel-sector:disabled{filter:grayscale(.6);opacity:.5;cursor:not-allowed}.action-wheel__hub{position:absolute;left:50%;top:50%;width:96px;height:96px;padding:6px;transform:translate(-50%,-50%);border-radius:50%;background:#f4edda;box-shadow:0 2px 5px #55493138,inset 0 1px #fff}.wheel-restart{width:100%;height:100%;border-radius:50%;border:1px solid #b8a98c;background:linear-gradient(155deg,#fffdf3,#e5dcc7);color:#65543b;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;font-size:12px;font-weight:700;cursor:pointer;box-shadow:inset 0 2px #fff,0 3px #c2b59a}.wheel-restart:hover{background:#fff9e8}.wheel-restart:active{box-shadow:inset 0 2px 4px #75644430}.game-sidebar .deck-clock{margin:0 0 16px}@media (max-width: 1000px){.game-layout{grid-template-columns:minmax(0,1fr)}.game-sidebar{grid-column:1;grid-row:2;display:grid;grid-template-columns:296px minmax(0,1fr);align-items:center;gap:18px}}@media (max-width: 640px){.game-sidebar{display:flex;gap:20px}.action-wheel{width:288px}.game-sidebar .game-info{width:100%}}.game-sidebar .game-info .hud{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;border:0;padding:0}.game-sidebar .game-info .hud__item{flex-direction:column;align-items:center;gap:6px;padding:0;border:0}.game-sidebar .game-info .hud__item+.hud__item{border-left:1px solid #cbd5c3}.game-sidebar .game-info .hud__value{font-size:22px;font-variant-numeric:tabular-nums}.stage-clock{margin-left:auto;flex:none;padding:7px 9px 9px;border:1px solid #c8bea6;border-radius:16px;background:linear-gradient(145deg,#fffbed,#e5dbc2);box-shadow:inset 0 2px #fff,0 3px #bcb093,0 5px 9px #4d563018;color:#67573d}.stage-clock__heading{display:flex;align-items:center;justify-content:center;gap:6px;margin-bottom:5px}.stage-clock__label{font-size:10px;line-height:1;letter-spacing:1px;font-weight:750;text-transform:uppercase}.stage-clock__icon{flex:none}.stage-clock__display{display:flex;align-items:center;justify-content:center;gap:3px;padding:5px 8px;border-radius:8px;border:1px solid #233e30;background:linear-gradient(#294634,#395c43);box-shadow:inset 0 2px 4px #172b2a80,0 1px #fff9e9;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:29px;font-weight:700;line-height:1.15;font-variant-numeric:tabular-nums;color:#f4edbf}.stage-clock__digit{display:inline-block;width:.68em;text-align:center;border-radius:3px;background:#e5edbe09;text-shadow:0 1px 0 #102c1c}.stage-clock__colon{width:.32em;text-align:center;color:#cdd2a1}@media (max-width: 600px){.stage-clock{padding:5px 7px 7px;border-radius:13px}.stage-clock__label{font-size:9px;letter-spacing:.6px}.stage-clock__heading{gap:4px;margin-bottom:3px}.stage-clock__display{font-size:24px;padding:4px 6px;gap:2px}.stage-clock__icon{width:12px;height:15px}}.game-sidebar>.stage-clock{align-self:center;width:250px;max-width:100%;margin:0;padding:9px 14px 11px}.game-sidebar>.stage-clock .stage-clock__heading{margin-bottom:7px}.game-sidebar>.stage-clock .stage-clock__label{font-size:11px}.game-sidebar>.stage-clock .stage-clock__display{font-size:32px;padding:6px 12px;gap:6px}.stage.panel{padding-top:16px;padding-bottom:12px}.feedback-slot{min-height:102px;padding-top:10px}.feedback-slot .toast{margin-top:0;overflow-wrap:anywhere}@media (min-width: 641px) and (max-width: 1000px){.game-sidebar{grid-template-rows:auto auto}.game-sidebar>.action-wheel{grid-column:1;grid-row:1 / 3}.game-sidebar>.stage-clock{grid-column:2;grid-row:1;justify-self:center}.game-sidebar>.game-info{grid-column:2;grid-row:2}}@media (max-width: 600px){.stage.panel{padding-top:12px}.feedback-slot{min-height:110px}}@font-face{font-family:Fredoka;src:url(../fonts/fredoka-600.ttf) format("truetype");font-weight:600;font-display:swap}@font-face{font-family:Nunito;src:url(../fonts/nunito-400.ttf) format("truetype");font-weight:400;font-display:swap}@font-face{font-family:Nunito;src:url(../fonts/nunito-700.ttf) format("truetype");font-weight:600 900;font-display:swap}:root{--bg: #fff8e9;--panel: #fffefa;--text: #38334f;--muted: #686078;--line: #dfd5ed;--accent: #6845ae;--accent-2: #415ba5;--gold: #865619;--danger: #a73650;--game-ink: #403651;--game-purple: #7451b5;--game-mint: #cff2d9;--game-coral: #ff927d;--game-yellow: #ffdf78;--game-shadow: #d9cce8;--font-game: "Fredoka", "Arial Rounded MT Bold", "PingFang SC", "Microsoft YaHei", sans-serif}body{font-family:Nunito,PingFang SC,Microsoft YaHei,sans-serif;background:radial-gradient(circle,#e5d9f4 1.2px,transparent 1.5px) 0 0 / 24px 24px,var(--bg)}.nav{border-bottom:0;padding-top:18px;padding-bottom:16px}.nav__brand{display:inline-flex;align-items:center;gap:8px;color:var(--game-purple);font-family:var(--font-game);font-size:34px;font-weight:600;letter-spacing:-.8px;white-space:nowrap}.brand-number{display:inline-block;padding:0 9px 2px;border:2px solid var(--game-ink);border-radius:12px;background:var(--game-yellow);color:var(--game-ink);transform:rotate(-7deg);box-shadow:0 3px 0 var(--game-ink)}.nav__tabs{border:2px solid #d2c3e4;background:#eee5fa;box-shadow:0 3px #dfd0ee;border-radius:19px}.nav__link{font-family:var(--font-game);font-weight:600;color:#5f4b7b;font-size:18px;transition:background .16s ease,transform .16s ease}.nav__link.is-active{background:var(--game-purple);color:#fff;box-shadow:0 3px #4f3281,inset 0 2px #ffffff26}.nav__link:hover:not(.is-active){background:#e2d3f5}.nav__link:active{transform:translateY(2px)}.language-select{border:2px solid #d2c3e4;background:#fffefa;color:#514063;box-shadow:0 2px #e4d8ef;font-weight:700}.panel{border:2px solid #d5c6e3;border-radius:24px;box-shadow:0 5px #e3d7ee,0 10px 24px #7b648212}.intro__title{font-family:var(--font-game);font-weight:600;color:#574084;letter-spacing:-.5px}.intro__lead{color:#686078}.eyebrow{color:#765d88;font-weight:700;letter-spacing:1.4px}.intro__cards .card{border:2px solid #ddd0c3;box-shadow:0 5px #e3dac9,0 8px 16px #66553d13}.btn{border-width:2px;font-weight:700;border-radius:13px}.btn--primary{background:var(--game-purple);border-color:#614295;color:#fff;box-shadow:0 4px #50377d,inset 0 2px #ffffff25}.btn--primary:hover:not(:disabled){background:#805bc2}.btn--primary:active:not(:disabled){transform:translateY(3px);box-shadow:0 1px #50377d}.btn--ghost{color:#62478a;border-color:#d5c6e3;background:#f7f1ff}.btn--ghost:hover:not(:disabled){background:#ede1fb}.hand-area{background:radial-gradient(ellipse at 50% 0,#e9ffed,transparent 70%),var(--game-mint);border:2px solid #8ecdaa;box-shadow:inset 0 3px #b8e6c8;border-radius:20px}.rack-card .card--md{background:#fffefa;border:2px solid #dcccb9;box-shadow:0 5px #d2c0a8,0 9px 14px #38583a1a}.card__rank,.card--sm .card__rank{font-family:var(--font-game);font-weight:600}.card--black{color:#393b61}.card--red{color:#c34053}.card__suit{line-height:1}.rack-hint{color:#365e47;font-weight:700}.card-gap{color:#48765b}.card-gap.is-ready{background:#a7ddbb}.card-gap.is-over{background:#694ba3;color:#fff;outline-color:#493077}.rack-card.is-selected,.rack-card.is-drop-target{outline-color:#7750b4}.palette__hint{color:#6a5b7a}.palette .chip{border:2px solid #cabbde;color:#604288;background:#f1e6ff;box-shadow:0 4px #cbb5e3,inset 0 2px #fff9;font-weight:700;transition:background .16s ease,transform .18s cubic-bezier(.2,.8,.3,1.3),box-shadow .16s ease}.palette .chip--lp,.palette .chip--rp{background:#fff0c4;color:#795211;border-color:#dfc178;box-shadow:0 4px #dfc178,inset 0 2px #fff9}.palette .chip:hover:not(:disabled){background:#e4cfff;transform:translateY(-3px) rotate(-3deg)}.palette .chip.is-active{background:#7451b5;color:#fff;border-color:#573b87;box-shadow:0 3px #493077}.palette .chip:active:not(:disabled){transform:translateY(2px);box-shadow:0 1px #a58bbc}.inline-symbol{color:#59377d;border:2px solid #cab6e2;background:#f4e9ff;box-shadow:0 2px #b8a0d1}.symbol-ghost{background:#7451b5}.action-wheel__rim{background:linear-gradient(140deg,#fffbea,#f9d987);border:2px solid #c9a76a;box-shadow:0 5px #b39764,0 11px 18px #82693020,inset 0 3px #fffdf6}.action-wheel__disc{background:#fff9e9;box-shadow:0 0 0 2px #ddc391}.wheel-sector--check{--wheel-light: #b9f0a7;--wheel-base: #8ed491;--wheel-ink: #244d30}.wheel-sector--skip{--wheel-light: #ffe799;--wheel-base: #ffc96d;--wheel-ink: #67471a}.wheel-sector--reset{--wheel-light: #e0c2fb;--wheel-base: #c3a1e7;--wheel-ink: #4d306d}.wheel-sector--clear{--wheel-light: #b3e6f5;--wheel-base: #8ccfe4;--wheel-ink: #224f65}.wheel-sector__label{font-family:var(--font-game);font-weight:600;font-size:13px;text-shadow:none}.action-wheel__hub{background:#fff8e9;box-shadow:0 3px 6px #715b3d36,inset 0 2px #fff}.wheel-restart{background:linear-gradient(145deg,#ffb39c,#ff907e);color:#672c2c;border:2px solid #ce7560;box-shadow:inset 0 2px #ffd2bc,0 3px #c27660;font-family:var(--font-game);font-weight:600}.wheel-restart:hover{background:#ffb39c}.game-sidebar .game-info{background:#eee3fb;border:2px solid #cfb9e3;border-radius:18px;box-shadow:0 4px #dbc7ec}.game-sidebar .game-info .hud__label{color:#6c5185;font-weight:700}.game-sidebar .game-info .hud__value{font-family:var(--font-game);font-weight:600;font-size:27px;color:#543479}.game-sidebar .game-info .hud__item+.hud__item{border-color:#cdb7df}.game-sidebar>.stage-clock{background:linear-gradient(145deg,#fff4cf,#ffdf87);border:2px solid #d1af64;box-shadow:inset 0 2px #fffdf5,0 4px #b79a5e,0 7px 12px #9d833b18}.stage-clock__heading{color:#735121}.stage-clock__display{background:linear-gradient(#344366,#45577c);color:#fff3ba;border-color:#283453}.stage-clock__digit{text-shadow:0 1px 0 #18233c}.stage-clock__colon{color:#f2ce7d}.toast{font-weight:700;border-width:2px}.toast--ok{background:#d8f5cc;border-color:#97c788;color:#2f5b32}.toast--info{background:#e8e0fa;border-color:#c4b0e3;color:#533f7b}.toast--error{background:#ffebe2;border-color:#e5b19e;color:#8e3b34}.column{background:#fbf7ff;border:2px solid #d9c9e8;border-radius:18px}.column:nth-child(1){border-top:6px solid #ecc565}.column:nth-child(2){border-top:6px solid #a2cee3}.column:nth-child(3){border-top:6px solid #e6a592}.column:nth-child(4){border-top:6px solid #bfa5e1}.column__group{font-family:var(--font-game);font-weight:600;color:#7652a2}.entry{background:#f0e7fa}.entry.is-me{background:#d9f1d2;box-shadow:inset 0 0 0 1px #91b788}.entry--top1 .entry__rank{color:#875817}.entry--top2 .entry__rank{color:#3b657c}.entry--top3 .entry__rank{color:#95533c}.input,.select{background:#fffefa;border:2px solid #cdbcdf}.result__cell{background:#f2eafa}.result__value{font-family:var(--font-game);color:#684496;font-weight:600}.result__saved{background:#e1f3d9;border-color:#9fca94}button:focus-visible,a:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible{outline-color:#6845ae}@media (hover: hover) and (prefers-reduced-motion: no-preference){.rack-card:not(:disabled):not(.is-dragging):hover>.card{transform:translateY(-4px)}.rack-card>.card{transition:transform .18s cubic-bezier(.2,.8,.3,1.3)}}@media (prefers-reduced-motion: no-preference){.rack-token>.rack-card>.card{animation:card-land .35s cubic-bezier(.2,.8,.3,1.2) backwards}.toast--ok{animation:solved-pop .32s ease-out}@keyframes card-land{0%{opacity:.3;transform:translateY(-10px) rotate(-3deg) scale(.95)}to{opacity:1;transform:translateY(0) rotate(0) scale(1)}}@keyframes solved-pop{0%{transform:scale(.96)}60%{transform:scale(1.015)}to{transform:scale(1)}}}@media (max-width: 600px){.nav__brand{font-size:29px}.brand-number{padding-inline:7px}.nav__link{font-size:18px}}.nav{max-width:1428px}.header-status{flex:0 0 310px;margin-left:10px;min-width:0;padding:5px 0 5px 16px;border-left:2px solid #dfd3e8}.header-status__player{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 6px;line-height:1.35;margin-bottom:6px}.header-status__name{font-weight:700;font-size:13px;color:#574075;overflow-wrap:anywhere}.header-status__note{color:#73657d;font-size:11px;white-space:nowrap}.header-status__stats{display:flex;align-items:center;gap:20px;color:#6b6076;font-size:12px}.header-status__stats>span{display:inline-flex;align-items:baseline;gap:7px}.header-status__stats b{font-family:var(--font-game);font-size:20px;font-weight:600;color:#62448b;font-variant-numeric:tabular-nums}@media (min-width: 641px) and (max-width: 1000px){.nav{column-gap:12px}.header-status{flex:1 1 100%;margin-left:0;padding:8px 0 0;border-left:0;border-top:1px solid #dfd3e8;display:flex;justify-content:space-between;gap:12px}.header-status__player{margin-bottom:0}.header-status__stats{flex:none}.game-sidebar{grid-template-rows:auto}.game-sidebar>.action-wheel{grid-row:1}}@media (max-width: 640px){.header-status{order:4;flex-basis:100%;margin:0;padding:8px 3px 0;border-left:0;border-top:1px solid #e1d6e9}.header-status__player{gap:2px 6px}.header-status__stats{gap:22px}}.solutions-dialog{width:min(800px,calc(100vw - 28px));max-height:min(85dvh,860px);padding:0;color:var(--text);background:var(--panel);border:3px solid var(--game-purple);border-radius:24px;box-shadow:0 8px 0 var(--game-shadow),0 24px 80px #40365140;overflow:auto}.solutions-dialog::backdrop{background:#30244080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.solutions-dialog__header{display:flex;align-items:start;gap:16px;padding:22px;background:var(--game-mint);border-bottom:2px solid var(--line)}.solutions-dialog__header h2{margin:0;font-family:var(--font-game);color:var(--accent);font-size:clamp(24px,4vw,32px)}.solutions-dialog__header p{margin:8px 0 0;color:var(--muted)}.solutions-dialog__header .btn{margin-left:auto;flex-shrink:0;min-height:44px}.solutions-dialog__list{list-style:none;padding:12px 20px 20px;margin:0}.solutions-dialog__row{display:grid;grid-template-columns:28px 115px minmax(0,1fr) auto;align-items:center;gap:12px;padding:14px 0;border-bottom:1px solid var(--line)}.solutions-dialog__row:last-child{border-bottom:0}.solutions-dialog__number{color:var(--accent);font-family:var(--font-game)}.solutions-dialog__cards{font-weight:800}.solutions-dialog__answer{overflow-wrap:anywhere;font-weight:700}.solutions-dialog__status{color:var(--muted);font-size:13px}.panel--result>.btn{margin-block:16px}@media (max-width: 540px){.solutions-dialog__header{padding:16px}.solutions-dialog__list{padding:8px 12px}.solutions-dialog__row{grid-template-columns:22px 80px minmax(0,1fr);gap:8px;font-size:13px}.solutions-dialog__status{display:none}}.latest-score{display:grid;gap:8px;margin:8px 0 24px;padding:20px;border:2px solid #92c7a6;border-radius:18px;background:var(--game-mint)}.latest-score strong{font-family:var(--font-game);font-size:22px}.latest-score p{margin:0}.latest-score time,.entry__date{color:var(--muted);font-size:13px}.column__group{font-size:20px;line-height:1.35}.entry__badge{display:block;color:var(--accent);font-size:12px}.entry__date{grid-column:2 / -1}.result__saved{gap:12px;flex-wrap:wrap}.rack-viewport{position:relative;width:100%;min-width:0}.rack-viewport .card-rack{position:absolute;top:10px;left:50%;width:max-content;max-width:none;margin:0;flex-wrap:nowrap;gap:0;transform-origin:center top}.card-gap.is-over{position:relative}.card-gap.is-over:after{content:"";position:absolute;width:5px;top:0;bottom:0;left:calc(50% - 2.5px);border-radius:4px;background:var(--accent);box-shadow:0 0 0 2px var(--panel);pointer-events:none}.bracket-tools{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:10px;margin-bottom:14px}.bracket-tools .btn{min-height:44px}.bracket-tools .btn[aria-pressed=true]{background:var(--game-purple);color:#fff;border-color:var(--accent)}.bracket-tools>span{font-size:13px;color:#365e47}.rack-viewport.is-framing,.rack-viewport.is-framing button{cursor:crosshair;touch-action:none;-webkit-user-select:none;user-select:none}.bracket-marquee{position:absolute;z-index:40;border:2px dashed var(--accent);border-radius:10px;background:#7451b522;pointer-events:none}.rack-token.is-framed>button:first-child{outline:3px solid var(--accent);outline-offset:3px;background-color:#eaddff}.operator-picker{-webkit-appearance:none;-moz-appearance:none;appearance:none;text-align:center;text-align-last:center;font-family:inherit;font-weight:800;cursor:pointer}.operator-picker option{color:var(--text);background:var(--panel);font-size:22px}.operator-picker:hover:not(:disabled),.operator-picker:focus-visible{background:#a7ddbb;outline:2px solid var(--accent);outline-offset:2px}.card-rack .operator-picker{flex:0 0 44px;width:44px;height:44px;margin:0 5px;border:2px solid var(--game-purple);border-radius:50%;background:#f4eaff;color:#59358e;font-size:36px;line-height:1;box-shadow:0 3px #b99bd7;padding:0}.card-rack .operator-picker:hover:not(:disabled),.card-rack .operator-picker:focus-visible{background:var(--game-yellow);color:#403651;border-color:#59358e;outline:3px solid #7451b540;outline-offset:3px}.card-rack .operator-picker:active:not(:disabled){box-shadow:0 1px #b99bd7}.card-rack .operator-picker.is-over{background:var(--game-yellow);outline:3px solid var(--accent)}.card-rack .operator-picker:disabled{opacity:.4;cursor:default}@media (max-width: 600px){.card-rack .operator-picker{flex-basis:38px;width:38px;height:38px;margin-inline:3px;font-size:32px}}.card-rack .inline-symbol{flex:0 0 52px;width:52px;height:62px;border-radius:13px;font-size:36px;font-weight:800;border:2px solid #65419c;color:#fff;background:#7451b5;box-shadow:0 4px #50327d,inset 0 2px #ffffff30}.card-rack .inline-symbol--bracket{background:#ffdf78;color:#67451c;border-color:#b78a30;box-shadow:0 4px #b78a30,inset 0 2px #fff6d6}.card-rack .inline-symbol:hover:not(:disabled){filter:brightness(1.08)}.card-rack .inline-symbol:focus-visible{outline:3px solid var(--accent);outline-offset:4px}@media (max-width: 600px){.card-rack .inline-symbol{flex-basis:42px;width:42px;height:52px;font-size:30px}}.card-rack .operator-picker{flex-basis:32px;width:32px;height:32px;margin-inline:4px;font-size:28px;box-shadow:0 2px #b99bd7}.card-rack .inline-symbol{flex-basis:64px;width:64px;height:74px;font-size:44px}@media (max-width: 600px){.card-rack .operator-picker{flex-basis:30px;width:30px;height:30px;margin-inline:3px;font-size:26px}.card-rack .inline-symbol{flex-basis:52px;width:52px;height:62px;font-size:38px}}.game-dialog{max-width:620px;padding:28px;border-radius:28px}.game-dialog h2{margin:0 0 16px;font-family:Fredoka,sans-serif;font-size:clamp(24px,4vw,32px)}.game-dialog p{line-height:1.6}.mode-options{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:20px 0}.mode-option{display:flex;flex-direction:column;text-align:left;gap:12px;padding:22px;border:2px solid #483568;border-radius:20px;box-shadow:0 5px #483568;color:#34244e;cursor:pointer}.mode-option--practice{background:#c5efdf}.mode-option--race{background:#ffe5a0}.mode-option strong{font:600 25px Fredoka,sans-serif}.mode-option span{font:600 15px/1.5 Nunito,sans-serif}.mode-option:hover{transform:translateY(-2px)}.mode-option:disabled{opacity:.6;cursor:wait}.wheel-restart:disabled{background:#dad8df;color:#77727d;border-color:#aaa5b1;box-shadow:inset 0 2px 3px #ffffff80;cursor:not-allowed;transform:none}.practice-badge{display:flex;flex-direction:column;gap:5px;padding:18px;text-align:center;border-radius:20px;background:#c5efdf;color:#285947;border:2px solid #79b69e}.practice-badge strong{font:600 26px Fredoka,sans-serif}.practice-badge span{font-size:14px}.input-mode{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-bottom:14px}.input-mode>span{font-weight:800;margin-right:4px}.input-mode .btn{min-height:44px}.input-mode .btn[aria-pressed=true]{background:#7450b7;color:#fff;border-color:#50317e}.symbol-input{padding:0;min-width:0;text-align:center;caret-color:#653da4;font-family:inherit}.symbol-input::placeholder{color:#795aab;opacity:1}.symbol-input:focus{background:#fff1ad;outline:3px solid #7950bc;outline-offset:3px}@media (max-width: 540px){.mode-options{grid-template-columns:1fr}.game-dialog{padding:20px}.mode-option{padding:18px;gap:6px}}.card-rack .symbol-input{cursor:text}.card-rack .symbol-input:focus{background:#fff1ad;outline:3px solid #7950bc;outline-offset:3px}.game-layout--merge{grid-template-columns:minmax(0,1fr) 270px}.game-layout--merge .stage.panel{padding:20px 24px 12px}.game-layout--merge .game-sidebar{display:flex;gap:18px}.game-layout--merge .stage-clock{width:100%}.merge-board{max-width:650px;margin:0 auto;text-align:center}.merge-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.merge-target{font-size:15px;font-weight:800;color:#6a5880}.merge-target b{display:inline-block;margin-left:8px;padding:3px 13px;background:#ffe39a;border-radius:12px;color:#674a21;font:600 30px var(--font-game);transform:rotate(-4deg)}.merge-progress{display:flex;gap:7px}.merge-progress i{width:28px;height:9px;background:#eee5f7;border-radius:9px}.merge-progress i.is-complete{background:#6faf91}.merge-prompt{min-height:24px;margin:12px 0 18px;color:#655579;font-weight:700}.merge-prompt--error{color:#a23c45}.merge-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;width:min(100%,410px);margin:auto}.merge-slot{min-width:0;height:116px;border-radius:22px;background:#f5f1f8}.merge-number{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:10px;border:2px solid #8fc9ac;border-radius:22px;color:#294e46;background:linear-gradient(140deg,#e5f9e9,#c4ecd7);box-shadow:0 5px #8ab99c,inset 0 2px #fff9;cursor:pointer;transition:background .15s,transform .15s,box-shadow .15s}.merge-number__value{font:600 clamp(32px,5vw,58px) var(--font-game);line-height:1.1;overflow-wrap:anywhere}.merge-number__note{font-size:16px;font-weight:700;min-height:22px}.merge-number__note.is-red{color:#b73d52}.merge-number--result{background:linear-gradient(140deg,#f3e7ff,#dfcdf5);border-color:#bea2dc;color:#62418a;box-shadow:0 5px #ae94c7,inset 0 2px #fff9}.merge-number.is-selected{background:#7250b2;border-color:#53317d;color:#fff;box-shadow:0 5px #503675,0 0 0 4px #e2d4f7;transform:translateY(-2px)}.merge-number.is-selected .merge-number__note{color:#fff}.merge-number:disabled{cursor:default;opacity:1}.merge-number.is-solved{color:#765119;background:#ffe29a;border-color:#ddb456;box-shadow:0 5px #bd984b}.merge-equation{min-height:29px;margin:19px 0 12px;font-weight:800;font-size:18px;color:#6a5880}.merge-equation b{margin-inline:8px;color:#a55031}.merge-operators{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;max-width:410px;margin:auto}.merge-operator{height:58px;font:600 36px var(--font-game);color:#9e452d;border:2px solid #e7b9a3;border-radius:15px;background:#fff0e6;box-shadow:0 4px #dfb398;cursor:pointer}.merge-operator.is-selected{background:#e98758;border-color:#b95e38;color:#fff;box-shadow:0 4px #aa5431}.merge-operator:disabled{opacity:.45;cursor:default}.merge-number:focus-visible,.merge-operator:focus-visible{outline:3px solid #654395;outline-offset:5px}.merge-number:active:not(:disabled),.merge-operator:active:not(:disabled){transform:translateY(3px)}.merge-reset{margin-top:23px;min-height:44px;min-width:150px}.session-actions{display:flex;flex-direction:column;gap:12px}.session-actions .btn{min-height:48px}.session-actions .btn:first-child{background:#fff0c5;border-color:#dec484;color:#765222}.session-actions .btn:disabled{background:#e9e6eb;color:#83798d;border-color:#d4cfd9}.game-layout--merge .feedback-slot{min-height:42px;margin-top:12px}.entry__result{display:flex;flex-direction:column;align-items:flex-end;gap:2px;white-space:nowrap}.entry__result strong{color:#6845ae}@media (hover: hover){.merge-number:hover:not(:disabled):not(.is-selected){filter:brightness(1.04);transform:translateY(-2px)}.merge-operator:hover:not(:disabled){filter:brightness(1.04)}}@media (prefers-reduced-motion: no-preference){.merge-number--result{animation:merge-appear .24s ease-out}}@keyframes merge-appear{0%{transform:scale(.85);opacity:.4}to{transform:scale(1);opacity:1}}@media (max-width: 900px){.game-layout--merge{grid-template-columns:minmax(0,1fr)}.game-layout--merge .game-sidebar{grid-column:1;grid-row:2;display:flex}}@media (max-width: 540px){.game-layout--merge .stage.panel{padding:15px 14px 8px}.merge-grid{gap:13px}.merge-slot{height:124px}.merge-number__value{font-size:44px}.merge-prompt{font-size:14px}.merge-equation{font-size:16px}.merge-operators{gap:12px}.merge-operator{height:54px}.session-actions{flex-direction:row}.session-actions .btn{flex:1}}.mode-option--infinite{background:#e6d6fc;grid-column:1 / -1}.judgment-board h2{font:600 clamp(22px,3vw,29px) var(--font-game);margin:20px 0 10px}.judgment-board>p{color:var(--muted);line-height:1.6;margin-bottom:24px}.judgment-number{cursor:default}.judgment-actions{display:grid;grid-template-columns:1fr 1fr;gap:16px;max-width:410px;margin:28px auto 14px}.judgment-actions .btn{min-height:56px;font-size:18px}.judgment-yes{background:#c5efdf;border-color:#80b79e;color:#285947;box-shadow:0 4px #80b79e}.judgment-no{background:#e6d6fc;border-color:#b79bd6;color:#593780;box-shadow:0 4px #b79bd6}.infinite-streak{display:flex;flex-direction:column;align-items:center;margin:24px 0;color:var(--accent)}.infinite-streak b{font:600 72px var(--font-game)}.judgment-reveal{border-radius:20px;background:#f1e9fb;padding:24px;margin-block:20px}.judgment-cards{display:flex;justify-content:center;gap:12px}.judgment-cards span{background:#fffefa;border-radius:12px;padding:10px 14px;font:600 26px var(--font-game)}.judgment-solution{font-weight:800;overflow-wrap:anywhere}.infinite-result__actions{display:flex;flex-wrap:wrap;align-items:stretch;gap:16px 12px;margin-top:20px;padding-bottom:5px}.infinite-result__actions .btn{display:inline-flex;align-items:center;justify-content:center;text-align:center;min-height:46px;max-width:100%;white-space:normal}@media (max-width: 540px){.infinite-result__actions .btn{flex:1 1 100%}}
