:root{
  color-scheme:dark;
  --bg:#11102a;
  --bg-deep:#09091a;
  --panel:rgba(27,27,61,.76);
  --panel-strong:#20204a;
  --panel-soft:rgba(255,255,255,.055);
  --text:#f7f5ff;
  --muted:#b9b4cf;
  --line:rgba(220,214,255,.16);
  --leaf:#69e0b0;
  --leaf-strong:#2ecf92;
  --nectar:#ffc96c;
  --rose:#ff82b2;
  --violet:#9e8cff;
  --danger:#ff8a9d;
  --shadow:0 24px 70px rgba(2,3,18,.42);
  --card-back-a:#242759;
  --card-back-b:#181b43;
  --card-front:#f8f2df;
  --card-ink:#28244f;
  --flip-time:520ms;
  --app-pad:max(12px,env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left));
  font-family:Inter,ui-rounded,"Segoe UI",system-ui,-apple-system,BlinkMacSystemFont,sans-serif;
}
:root[data-theme="daylight"]{
  color-scheme:light;
  --bg:#eaf7f0;
  --bg-deep:#d7eadf;
  --panel:rgba(255,255,255,.82);
  --panel-strong:#fff;
  --panel-soft:rgba(28,80,62,.07);
  --text:#193a32;
  --muted:#61786f;
  --line:rgba(25,72,57,.16);
  --leaf:#168762;
  --leaf-strong:#0f7654;
  --nectar:#c57812;
  --rose:#c94f79;
  --violet:#6553bd;
  --danger:#b43f58;
  --shadow:0 24px 70px rgba(52,99,78,.2);
  --card-back-a:#26785f;
  --card-back-b:#185b49;
  --card-front:#fffdf3;
  --card-ink:#214b3d;
}
:root[data-motion-profile="instant"]{--flip-time:1ms}
*{box-sizing:border-box}
html,body{margin:0;width:100%;height:100%;overflow:hidden}
body{
  min-height:100dvh;
  background:
    radial-gradient(circle at 10% 8%,color-mix(in srgb,var(--rose) 16%,transparent),transparent 27%),
    radial-gradient(circle at 88% 18%,color-mix(in srgb,var(--leaf) 18%,transparent),transparent 30%),
    radial-gradient(circle at 72% 90%,color-mix(in srgb,var(--violet) 14%,transparent),transparent 31%),
    linear-gradient(145deg,var(--bg-deep),var(--bg));
  color:var(--text);
}
button,select,input{font:inherit}
button{color:inherit}
button:focus-visible,select:focus-visible,input:focus-visible{outline:3px solid var(--nectar);outline-offset:3px}
button{touch-action:manipulation}
[hidden]{display:none!important}
.app{
  position:relative;
  display:grid;
  grid-template-rows:auto minmax(0,1fr);
  gap:12px;
  width:100%;
  height:100dvh;
  min-height:0;
  padding:var(--app-pad);
  isolation:isolate;
  overflow:hidden;
}
.app::before,.app::after{
  content:"";position:absolute;z-index:-1;pointer-events:none;border:1px solid color-mix(in srgb,var(--leaf) 18%,transparent);border-radius:50%;opacity:.45
}
.app::before{width:34vw;height:34vw;right:-15vw;top:10vh;box-shadow:inset 0 0 60px color-mix(in srgb,var(--leaf) 8%,transparent)}
.app::after{width:28vw;height:28vw;left:-14vw;bottom:-14vw;border-color:color-mix(in srgb,var(--rose) 14%,transparent)}
.topbar{
  min-height:54px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  padding:0 4px;
}
.brand-lockup{display:flex;align-items:center;gap:11px;min-width:0}
.brand-lockup>div{display:grid;gap:1px;min-width:0}
.brand-kicker{font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);font-weight:800;white-space:nowrap}
.brand-lockup strong{font-size:clamp(20px,2.4vw,30px);letter-spacing:-.055em;line-height:1;white-space:nowrap}
.brand-lockup em{font-style:normal;color:var(--leaf)}
.brand-seed{position:relative;display:grid;place-items:center;width:42px;height:42px;border-radius:50%;border:1px solid color-mix(in srgb,var(--leaf) 45%,transparent);background:linear-gradient(145deg,color-mix(in srgb,var(--leaf) 18%,transparent),var(--panel));box-shadow:0 0 30px color-mix(in srgb,var(--leaf) 15%,transparent)}
.brand-seed::before,.brand-seed::after,.brand-seed i{content:"";position:absolute;border:1px solid color-mix(in srgb,var(--leaf) 65%,transparent);border-radius:50%}
.brand-seed::before{width:22px;height:11px;transform:rotate(34deg)}
.brand-seed::after{width:11px;height:22px;transform:rotate(34deg)}
.brand-seed i{width:5px;height:5px;background:var(--nectar);border:0;box-shadow:0 0 12px var(--nectar)}
.header-actions{display:flex;gap:8px;align-items:center}
.icon-button{
  min-width:44px;height:44px;border:1px solid var(--line);border-radius:14px;background:var(--panel-soft);display:inline-grid;place-items:center;cursor:pointer;font-weight:900;font-size:19px;box-shadow:inset 0 1px rgba(255,255,255,.08);transition:transform .18s ease,background .18s ease,border-color .18s ease
}
.icon-button:hover{transform:translateY(-1px);background:color-mix(in srgb,var(--panel-strong) 82%,transparent);border-color:color-mix(in srgb,var(--leaf) 45%,var(--line))}
.help-button{grid-template-columns:auto auto;gap:7px;padding:0 13px}
.help-button strong{font-size:12px;letter-spacing:.02em}
.game-layout{
  min-width:0;
  min-height:0;
  display:grid;
  grid-template-columns:minmax(248px,360px) minmax(0,1fr);
  gap:clamp(12px,2vw,26px);
  max-width:1500px;
  width:100%;
  margin:0 auto;
}
.command-panel,.board-panel{min-width:0;min-height:0;border:1px solid var(--line);background:var(--panel);backdrop-filter:blur(18px);box-shadow:var(--shadow)}
.command-panel{
  border-radius:26px;
  padding:clamp(15px,2vw,26px);
  display:flex;
  flex-direction:column;
  gap:clamp(10px,1.4vh,18px);
  overflow:hidden;
}
.intro-copy{display:grid;gap:8px}
.eyebrow{display:flex;align-items:center;gap:7px;color:var(--leaf);font-size:11px;font-weight:900;letter-spacing:.14em;text-transform:uppercase}
.eyebrow i{width:7px;height:7px;border-radius:50%;background:var(--leaf);box-shadow:0 0 12px var(--leaf)}
.intro-copy h1{font-size:clamp(28px,3.25vw,50px);line-height:.96;letter-spacing:-.06em;margin:0;max-width:9.5em}
.intro-copy h1 span{display:block;color:var(--nectar)}
.intro-copy p{font-size:clamp(12px,1.2vw,15px);line-height:1.55;color:var(--muted);margin:0;max-width:35em}
.mode-picker{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;min-width:0}
.mode-picker button{min-width:0;min-height:50px;border:1px solid var(--line);border-radius:14px;background:var(--panel-soft);padding:8px 10px;text-align:left;cursor:pointer;display:grid;gap:2px;transition:border-color .18s ease,background .18s ease,transform .18s ease}
.mode-picker button:hover{transform:translateY(-1px);border-color:color-mix(in srgb,var(--violet) 48%,var(--line))}
.mode-picker button[aria-pressed="true"]{border-color:color-mix(in srgb,var(--violet) 78%,transparent);background:color-mix(in srgb,var(--violet) 16%,var(--panel-soft));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--violet) 18%,transparent)}
.mode-picker strong{font-size:12px}.mode-picker small{font-size:10px;color:var(--muted)}
.difficulty-picker{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;min-width:0}
.difficulty-picker button{
  min-width:0;min-height:50px;border:1px solid var(--line);border-radius:14px;background:var(--panel-soft);padding:8px 10px;text-align:left;cursor:pointer;display:grid;gap:2px;transition:border-color .18s ease,background .18s ease,transform .18s ease
}
.difficulty-picker button:hover{transform:translateY(-1px);border-color:color-mix(in srgb,var(--leaf) 42%,var(--line))}
.difficulty-picker button.selected{border-color:color-mix(in srgb,var(--leaf) 75%,transparent);background:color-mix(in srgb,var(--leaf) 15%,var(--panel-soft));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--leaf) 16%,transparent)}
.difficulty-picker strong{font-size:12px}.difficulty-picker small{font-size:10px;color:var(--muted)}
.hud-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}
.hud-card{min-width:0;padding:9px 7px;border-radius:13px;background:var(--panel-soft);border:1px solid color-mix(in srgb,var(--line) 75%,transparent);text-align:center;display:grid;gap:4px}
.hud-card span{font-size:9px;color:var(--muted);letter-spacing:.1em;text-transform:uppercase;font-weight:800;white-space:nowrap}
.hud-card strong{font-size:clamp(14px,1.6vw,21px);line-height:1;white-space:nowrap}
#starValue{font-size:13px;color:var(--nectar);letter-spacing:1px}
.record-panel{display:grid;grid-template-columns:1.2fr 1fr 1fr;border:1px solid var(--line);border-radius:15px;overflow:hidden;background:color-mix(in srgb,var(--panel-strong) 46%,transparent)}
.record-panel>div{padding:9px 10px;display:grid;gap:3px;min-width:0}
.record-panel>div+div{border-left:1px solid var(--line)}
.record-panel span{font-size:8px;text-transform:uppercase;letter-spacing:.09em;color:var(--muted);font-weight:800;white-space:nowrap}
.record-panel strong{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.focus-strip{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:22px}
.streak-chip{font-size:10px;font-weight:900;color:var(--nectar);background:color-mix(in srgb,var(--nectar) 12%,transparent);border:1px solid color-mix(in srgb,var(--nectar) 35%,transparent);border-radius:999px;padding:4px 8px}
.storm-chip{font-size:10px;font-weight:900;color:var(--violet);background:color-mix(in srgb,var(--violet) 13%,transparent);border:1px solid color-mix(in srgb,var(--violet) 40%,transparent);border-radius:999px;padding:4px 8px}
.round-state{display:flex;align-items:center;gap:6px;margin-left:auto;color:var(--muted);font-size:10px}
.round-state i{width:6px;height:6px;border-radius:50%;background:var(--leaf);box-shadow:0 0 9px var(--leaf)}
.new-round-button{
  margin-top:auto;min-height:54px;width:100%;display:grid;grid-template-columns:32px 1fr;grid-template-rows:auto auto;align-items:center;text-align:left;padding:8px 12px;border-radius:16px;border:1px solid color-mix(in srgb,var(--leaf) 36%,var(--line));background:linear-gradient(120deg,color-mix(in srgb,var(--leaf) 14%,var(--panel-soft)),var(--panel-soft));cursor:pointer
}
.new-round-button>span{grid-row:1/3;font-size:22px;color:var(--leaf)}
.new-round-button strong{font-size:12px}.new-round-button small{font-size:9px;color:var(--muted)}
.board-panel{
  position:relative;border-radius:30px;padding:clamp(12px,2vw,24px);display:grid;grid-template-rows:minmax(0,1fr) auto;gap:8px;overflow:hidden
}
.board-panel::before{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(110deg,transparent 30%,color-mix(in srgb,var(--leaf) 5%,transparent),transparent 70%)}
.board-aura{position:absolute;width:min(62vw,720px);aspect-ratio:1;left:50%;top:45%;transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(circle,color-mix(in srgb,var(--leaf) 11%,transparent),transparent 65%);pointer-events:none;filter:blur(12px)}
.board-shell{
  --board-ratio:1/1;
  position:relative;z-index:1;align-self:center;justify-self:center;width:min(100%,680px);max-height:100%;aspect-ratio:var(--board-ratio);border-radius:clamp(18px,2.2vw,30px);padding:clamp(8px,1.2vw,14px);background:linear-gradient(145deg,color-mix(in srgb,var(--panel-strong) 94%,transparent),color-mix(in srgb,var(--bg-deep) 84%,transparent));border:1px solid color-mix(in srgb,var(--leaf) 23%,var(--line));box-shadow:0 24px 60px rgba(1,3,20,.3),inset 0 1px rgba(255,255,255,.08)
}
.memory-board{--columns:4;--rows:4;width:100%;height:100%;display:grid;grid-template-columns:repeat(var(--columns),minmax(0,1fr));grid-template-rows:repeat(var(--rows),minmax(0,1fr));gap:clamp(5px,.75vw,10px);perspective:900px}
.memory-card{position:relative;min-width:0;min-height:44px;padding:0;border:0;border-radius:clamp(10px,1.2vw,17px);background:transparent;cursor:pointer;perspective:800px;transition:filter .18s ease,transform .18s ease}
.memory-card:not(:disabled):hover{transform:translateY(-2px);filter:brightness(1.08)}
.memory-card:disabled{opacity:1;cursor:default}
.card-inner{position:absolute;inset:0;display:block;transform-style:preserve-3d;transition:transform var(--flip-time) cubic-bezier(.2,.78,.25,1)}
.memory-card.is-visible .card-inner{transform:rotateY(180deg)}
.card-face{position:absolute;inset:0;border-radius:inherit;display:grid;place-items:center;backface-visibility:hidden;-webkit-backface-visibility:hidden;overflow:hidden}
.card-back{background:linear-gradient(145deg,var(--card-back-a),var(--card-back-b));border:1px solid color-mix(in srgb,var(--leaf) 28%,transparent);box-shadow:inset 0 1px rgba(255,255,255,.11),0 8px 18px rgba(2,3,18,.2)}
.card-back::before,.card-back::after,.card-back i{content:"";position:absolute;border:1px solid color-mix(in srgb,var(--leaf) 40%,transparent);border-radius:50%}
.card-back::before{width:68%;height:44%;transform:rotate(34deg)}
.card-back::after{width:44%;height:68%;transform:rotate(34deg)}
.card-back i{width:22%;height:22%;background:color-mix(in srgb,var(--leaf) 10%,transparent);box-shadow:0 0 20px color-mix(in srgb,var(--leaf) 20%,transparent)}
.card-back b{position:relative;z-index:1;color:var(--nectar);font-size:clamp(12px,1.4vw,20px);text-shadow:0 0 14px color-mix(in srgb,var(--nectar) 70%,transparent)}
.card-front{transform:rotateY(180deg);background:linear-gradient(145deg,var(--card-front),color-mix(in srgb,var(--card-front) 82%,var(--nectar)));border:1px solid color-mix(in srgb,var(--nectar) 48%,transparent);color:var(--card-ink);align-content:center;gap:2px;padding:4px;box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--card-front) 80%,transparent),0 9px 20px rgba(2,3,18,.22)}
.card-front::before{content:"";position:absolute;width:74%;height:74%;border-radius:50%;border:1px dashed color-mix(in srgb,var(--leaf-strong) 24%,transparent)}
.card-art{position:relative;display:block;width:min(82%,88px);aspect-ratio:1;background-repeat:no-repeat;border-radius:22%;filter:drop-shadow(0 5px 7px rgba(42,36,79,.2));transform:translateZ(0)}
.card-name{position:relative;max-width:92%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:clamp(7px,.75vw,10px);font-weight:900;letter-spacing:.055em;text-transform:uppercase;color:color-mix(in srgb,var(--card-ink) 68%,transparent);text-align:center;line-height:1.1}
.memory-card.is-matched .card-front{background:linear-gradient(145deg,color-mix(in srgb,var(--leaf) 28%,var(--card-front)),var(--card-front));border-color:var(--leaf);box-shadow:0 0 0 1px color-mix(in srgb,var(--leaf) 25%,transparent),0 0 22px color-mix(in srgb,var(--leaf) 20%,transparent)}
.memory-card.is-matched .card-front::after{content:"✓";position:absolute;right:6px;top:4px;font-weight:1000;font-size:clamp(9px,1vw,14px);color:var(--leaf-strong)}
.memory-card.just-matched{animation:bloom-pop .62s ease both}
.memory-card.just-mismatched{animation:memory-wobble .42s ease both}
.memory-card.storm-moved{animation:storm-shift .58s cubic-bezier(.2,.78,.25,1) both}
@keyframes bloom-pop{0%{transform:scale(1)}45%{transform:scale(1.075);filter:drop-shadow(0 0 14px var(--leaf))}100%{transform:scale(1)}}
@keyframes memory-wobble{0%,100%{transform:translateX(0)}30%{transform:translateX(-3px)}65%{transform:translateX(3px)}}
@keyframes storm-shift{0%{transform:scale(.94);filter:brightness(.9)}45%{transform:scale(1.045);filter:drop-shadow(0 0 14px color-mix(in srgb,var(--violet) 72%,transparent))}100%{transform:scale(1);filter:none}}
.preview-banner{position:absolute;z-index:4;left:50%;top:50%;transform:translate(-50%,-50%);width:min(88%,390px);padding:14px;border-radius:18px;background:color-mix(in srgb,var(--bg-deep) 90%,transparent);border:1px solid color-mix(in srgb,var(--nectar) 48%,transparent);box-shadow:0 20px 50px rgba(2,3,18,.48);display:flex;align-items:center;justify-content:space-between;gap:12px}
.preview-banner>div{display:grid;grid-template-columns:auto 1fr;align-items:center;column-gap:8px;row-gap:2px}.preview-banner>div>span{grid-row:1/3;color:var(--nectar);font-size:20px}.preview-banner strong{font-size:12px}.preview-banner small{font-size:9px;color:#d9d5e8}.preview-banner button{min-height:44px;border:1px solid color-mix(in srgb,var(--nectar) 55%,transparent);background:color-mix(in srgb,var(--nectar) 16%,transparent);border-radius:12px;padding:0 12px;font-size:11px;font-weight:900;cursor:pointer;color:#fff}
.feedback-zone{position:relative;z-index:1;text-align:center;display:grid;gap:3px;min-height:42px;align-content:center}
.status-message,.control-hint{margin:0}.status-message{font-size:clamp(11px,1vw,14px);font-weight:800}.status-message.success{color:var(--leaf)}.status-message.error{color:var(--danger)}
.control-hint{font-size:clamp(8px,.78vw,10px);color:var(--muted)}.control-hint span{display:inline-block;border:1px solid var(--line);border-radius:6px;padding:2px 5px;margin-right:3px;font-weight:900;letter-spacing:2px}
.app-dialog{width:min(92vw,620px);max-height:min(86dvh,760px);padding:0;border:0;border-radius:26px;background:transparent;color:var(--text);overflow:visible}
.app-dialog::backdrop{background:rgba(3,4,18,.7);backdrop-filter:blur(8px)}
.dialog-card{max-height:min(86dvh,760px);display:grid;grid-template-rows:auto minmax(0,1fr) auto;background:color-mix(in srgb,var(--panel-strong) 96%,var(--bg-deep));border:1px solid color-mix(in srgb,var(--leaf) 24%,var(--line));border-radius:26px;box-shadow:0 34px 90px rgba(0,0,0,.52);overflow:hidden}
.dialog-header{display:flex;align-items:center;justify-content:space-between;padding:20px 22px 14px;border-bottom:1px solid var(--line)}
.dialog-header>div{display:grid;gap:3px}.dialog-kicker{font-size:9px;letter-spacing:.16em;text-transform:uppercase;color:var(--leaf);font-weight:900}.dialog-header h2{margin:0;font-size:clamp(24px,4vw,36px);letter-spacing:-.045em}.dialog-close{width:44px;height:44px;border-radius:14px;border:1px solid var(--line);background:var(--panel-soft);font-size:26px;cursor:pointer}
.dialog-content{padding:18px 22px;overflow:auto;color:var(--muted);line-height:1.52;font-size:14px}.dialog-content h3{color:var(--text);font-size:13px;margin:18px 0 6px}.dialog-content p{margin:0 0 12px}
.dialog-actions{display:flex;justify-content:flex-end;gap:9px;padding:14px 22px 20px;border-top:1px solid var(--line)}
.dialog-actions button{min-width:112px;min-height:44px;border-radius:13px;border:1px solid var(--line);background:var(--panel-soft);font-size:12px;font-weight:900;cursor:pointer;padding:0 16px}.dialog-actions button.primary{background:var(--leaf-strong);color:#061c14;border-color:transparent}.dialog-actions button.danger{background:color-mix(in srgb,var(--danger) 20%,var(--panel-soft));border-color:color-mix(in srgb,var(--danger) 60%,transparent);color:var(--text)}
.help-lead{font-size:15px;color:var(--text)}.rule-cards{display:grid;gap:8px;margin:14px 0}.rule-card{display:grid;grid-template-columns:40px 1fr;gap:10px;align-items:center;border:1px solid var(--line);background:var(--panel-soft);border-radius:14px;padding:10px}.rule-card>b{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;background:color-mix(in srgb,var(--leaf) 15%,transparent);color:var(--leaf);font-size:18px}.rule-card>div{display:grid;gap:2px}.rule-card strong{color:var(--text);font-size:12px}.rule-card span{font-size:11px}
.stats-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:14px}.stat-card{border:1px solid var(--line);background:var(--panel-soft);border-radius:14px;padding:12px;text-align:center;display:grid;gap:4px}.stat-card strong{color:var(--text);font-size:20px}.stat-card span{font-size:9px;text-transform:uppercase;letter-spacing:.08em}
.record-table{display:grid;border:1px solid var(--line);border-radius:14px;overflow:hidden}.record-table>div{display:grid;grid-template-columns:1fr .85fr .7fr .75fr;gap:8px;padding:10px 12px;align-items:center}.record-table>div+div{border-top:1px solid var(--line)}.record-table strong{color:var(--text);font-size:12px}.record-table span{font-size:10px}.mini-stars{color:var(--nectar);letter-spacing:1px;text-align:right}
.pack-fieldset{min-width:0;margin:0 0 8px;padding:0 0 14px;border:0;border-bottom:1px solid var(--line)}.pack-fieldset legend{padding:0;color:var(--text);font-size:13px;font-weight:900}.pack-fieldset>p{margin:4px 0 10px;font-size:10px}.pack-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.pack-choice{position:relative;min-width:0;min-height:78px;display:grid;grid-template-columns:58px minmax(0,1fr);align-items:center;gap:9px;padding:8px;border:1px solid var(--line);border-radius:15px;background:var(--panel-soft);cursor:pointer}.pack-choice:last-child:nth-child(odd){grid-column:1/-1}.pack-choice input{position:absolute;opacity:0;pointer-events:none}.pack-choice:has(input:checked){border-color:var(--leaf);background:color-mix(in srgb,var(--leaf) 13%,var(--panel-soft));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--leaf) 30%,transparent)}.pack-choice:has(input:focus-visible){outline:3px solid var(--nectar);outline-offset:2px}.pack-preview{position:relative;width:58px;height:58px}.pack-preview-art{position:absolute;inset:0;display:block;background-repeat:no-repeat;border-radius:14px;box-shadow:0 5px 12px rgba(0,0,0,.2)}.pack-preview-art--second{inset:18px -3px -3px 18px;z-index:1}.pack-choice-copy{min-width:0;display:grid;gap:3px}.pack-choice-copy strong{color:var(--text);font-size:11px}.pack-choice-copy small{font-size:9px;line-height:1.25}.setting-row{min-height:62px;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:10px 0;border-bottom:1px solid var(--line)}.setting-row>span:first-child{display:grid;gap:2px}.setting-row strong{color:var(--text);font-size:12px}.setting-row small{font-size:10px}.setting-row select{min-width:142px;min-height:44px;border-radius:12px;border:1px solid var(--line);background:var(--panel-soft);color:var(--text);padding:0 10px}
.toggle-control{position:relative;width:48px;height:28px;flex:none}.toggle-control input{position:absolute;opacity:0;inset:0}.toggle-control i{position:absolute;inset:0;border-radius:999px;background:color-mix(in srgb,var(--muted) 25%,transparent);border:1px solid var(--line);transition:.2s}.toggle-control i::after{content:"";position:absolute;width:20px;height:20px;left:3px;top:3px;border-radius:50%;background:var(--text);transition:.2s}.toggle-control input:checked+i{background:var(--leaf-strong)}.toggle-control input:checked+i::after{transform:translateX(20px);background:#fff}.toggle-control input:focus-visible+i{outline:3px solid var(--nectar);outline-offset:3px}.audio-status{margin:10px 0 0;color:var(--muted);font-size:11px;line-height:1.4}
.game-tip{position:absolute;left:50%;bottom:max(9px,env(safe-area-inset-bottom));z-index:12;width:max-content;max-width:min(calc(100% - 24px),520px);display:flex;align-items:center;gap:8px;padding:9px 13px;border:1px solid color-mix(in srgb,var(--leaf) 34%,var(--line));border-radius:999px;color:var(--text);background:color-mix(in srgb,var(--bg-deep) 92%,transparent);box-shadow:0 12px 32px rgba(0,0,0,.3),inset 0 1px rgba(255,255,255,.08);backdrop-filter:blur(14px);font-size:12px;font-weight:850;line-height:1.35;text-align:left;opacity:0;visibility:hidden;transform:translate(-50%,12px) scale(.98);transition:opacity .34s ease,transform .34s ease,visibility .34s ease;pointer-events:none;will-change:opacity,transform}.game-tip.is-visible{opacity:1;visibility:visible;transform:translate(-50%,0) scale(1)}.game-tip.is-fading{opacity:0;visibility:hidden;transform:translate(-50%,-6px) scale(.98)}.game-tip-icon{flex:0 0 auto;color:var(--nectar);text-shadow:0 0 12px color-mix(in srgb,var(--nectar) 70%,transparent)}.game-tip-text{min-width:0}:root[data-motion-profile="instant"] .game-tip{transition:none}
.summary{text-align:center}.summary-bloom{width:76px;height:76px;margin:0 auto 10px;border-radius:50%;display:grid;place-items:center;font-size:42px;color:var(--leaf);background:color-mix(in srgb,var(--leaf) 12%,transparent);border:1px solid color-mix(in srgb,var(--leaf) 36%,transparent);box-shadow:0 0 34px color-mix(in srgb,var(--leaf) 18%,transparent)}.summary>p{max-width:35em;margin:0 auto 12px}.summary-stars{color:var(--nectar);font-size:30px;letter-spacing:5px;margin:8px 0 14px}.summary-grid{margin:0}.record-note{font-size:10px;margin-top:12px!important}.confirm-reset{text-align:center}.confirm-seed{font-size:38px;color:var(--nectar);margin-bottom:8px}
@media(max-width:900px){
  .game-layout{grid-template-columns:minmax(220px,290px) minmax(0,1fr);gap:10px}.command-panel{padding:14px}.intro-copy h1{font-size:31px}.intro-copy p{font-size:11px}.board-panel{padding:10px}.card-name{display:none}
}
@media(max-width:720px){
  .app{gap:7px}.topbar{min-height:46px}.brand-seed{width:38px;height:38px}.brand-kicker{display:none}.brand-lockup strong{font-size:21px}.help-button{grid-template-columns:1fr;padding:0}.help-button strong{display:none}.icon-button{height:44px;min-width:44px;border-radius:13px}.header-actions{gap:5px}
  .game-layout{grid-template-columns:1fr;grid-template-rows:auto minmax(0,1fr);gap:7px}
  .command-panel{border-radius:18px;padding:8px 10px;display:grid;grid-template-columns:minmax(88px,.65fr) minmax(0,1.35fr);grid-template-areas:"mode difficulty" "hud hud" "record record";gap:6px;overflow:visible}
  .intro-copy,.focus-strip,.new-round-button{display:none}.mode-picker{grid-area:mode;grid-template-columns:repeat(2,minmax(44px,1fr));gap:4px}.mode-picker button{min-height:44px;padding:5px;text-align:center;border-radius:10px;place-content:center}.mode-picker strong{font-size:9px}.mode-picker small{font-size:7px}.difficulty-picker{grid-area:difficulty;grid-template-columns:repeat(4,minmax(44px,1fr));gap:4px}.difficulty-picker button{min-height:44px;padding:5px;text-align:center;border-radius:10px;place-content:center}.difficulty-picker strong{font-size:9px}.difficulty-picker small{font-size:7px}.hud-grid{grid-area:hud;grid-template-columns:repeat(4,48px);gap:3px}.hud-card{padding:5px 3px;border-radius:10px}.hud-card span{font-size:6px}.hud-card strong{font-size:12px}#starValue{font-size:8px;letter-spacing:0}.record-panel{grid-area:record;grid-template-columns:repeat(3,1fr);border-radius:10px}.record-panel>div{padding:5px 8px}.record-panel span{font-size:6px}.record-panel strong{font-size:9px}
  .board-panel{border-radius:20px;padding:7px;grid-template-rows:minmax(0,1fr) 34px;gap:2px}.board-shell{min-width:0;width:min(100%,calc(100vw - 38px),calc((100dvh - 190px) * var(--board-ratio)));max-width:100%;border-radius:18px;padding:7px}.memory-board{gap:5px}.card-glyph{font-size:clamp(22px,11vw,45px)}.feedback-zone{min-height:32px}.status-message{font-size:10px}.control-hint{font-size:7px}.control-hint span{display:none}.preview-banner{padding:9px;width:min(92%,330px);border-radius:14px}.preview-banner strong{font-size:10px}.preview-banner small{font-size:7px}.preview-banner button{font-size:9px;padding:0 8px}.card-name{display:none}
}
@media(max-width:520px){.game-tip{max-width:calc(100% - 18px);padding:8px 11px;font-size:11px}.pack-gallery{grid-template-columns:1fr}.pack-choice:last-child:nth-child(odd){grid-column:auto}.pack-choice{min-height:72px}.dialog-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:12px 14px 16px}.dialog-actions button{min-width:0;width:100%;padding:0 8px}}
@media(max-width:480px){
  .topbar{gap:4px}.brand-lockup{gap:4px;min-width:0}.brand-lockup strong{font-size:16px;letter-spacing:-.06em}.header-actions{gap:3px;flex:none}.icon-button{min-width:44px;width:44px;padding:0}
  .command-panel{grid-template-columns:minmax(88px,.65fr) minmax(0,1.35fr);grid-template-areas:"mode difficulty" "hud hud" "record record"}.mode-picker,.difficulty-picker,.hud-grid{width:100%}.mode-picker button,.difficulty-picker button{min-width:44px}
}
@media(max-width:380px){
  :root{--app-pad:max(7px,env(safe-area-inset-top)) max(7px,env(safe-area-inset-right)) max(7px,env(safe-area-inset-bottom)) max(7px,env(safe-area-inset-left))}.brand-lockup{gap:0}.brand-lockup>div{display:none}.brand-seed{width:38px;height:38px}.header-actions{gap:3px}.icon-button{min-width:44px;height:44px}.command-panel{padding:6px;grid-template-columns:minmax(88px,.65fr) minmax(0,1.35fr);grid-template-areas:"mode difficulty" "hud hud"}.hud-grid{grid-template-columns:repeat(4,minmax(0,1fr));width:100%}.difficulty-picker button{padding:3px;overflow:hidden}.difficulty-picker strong{font-size:8px;white-space:nowrap}.difficulty-picker small{font-size:6px;white-space:nowrap}.record-panel{display:none}.board-shell{width:min(100%,calc(100vw - 30px),calc((100dvh - 190px) * var(--board-ratio)))}.board-panel{grid-template-rows:minmax(0,1fr) 30px}.status-message{font-size:9px}.control-hint{display:none}.feedback-zone{min-height:26px}
}
@media(max-height:700px) and (min-width:721px){
  .app{gap:8px}.topbar{min-height:46px}.brand-seed{width:38px;height:38px}.game-layout{grid-template-columns:minmax(250px,320px) minmax(0,1fr);gap:10px}.command-panel{padding:12px 14px;gap:8px;border-radius:20px}.intro-copy{gap:5px}.intro-copy h1{font-size:30px}.intro-copy p{font-size:10px;line-height:1.35}.difficulty-picker button{min-height:44px;padding:5px 8px}.hud-card{padding:6px 4px}.record-panel>div{padding:6px 8px}.new-round-button{min-height:48px}.board-panel{border-radius:22px;padding:9px}.board-shell{width:min(100%,calc((100dvh - 122px) * var(--board-ratio)));max-width:720px}.feedback-zone{min-height:34px}.card-name{display:none}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
:root[data-motion-profile="instant"] .memory-card.just-matched,:root[data-motion-profile="instant"] .memory-card.just-mismatched,:root[data-motion-profile="instant"] .memory-card.storm-moved{animation:none}
