:root{--bg0:#0b0620;--bg1:#160a2a;--panel:#ffffff0f;--panel2:#ffffff1a;--border:#ffffff24;--text:#ffffffeb;--muted:#ffffffad;--shadow:#00000059 0 18px 40px -16px;--accent:#f472b6;--accent2:#a78bfa;--danger:#fb7185;--sans:ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, "Apple Color Emoji", "Segoe UI Emoji";--mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font-family:var(--sans);color:var(--text);background:radial-gradient(1200px 850px at 15% 0%, #f472b640 0%, transparent 60%), radial-gradient(1100px 800px at 105% 10%, #a78bfa38 0%, transparent 60%), radial-gradient(1200px 900px at 50% 120%, #db27772e 0%, transparent 62%), linear-gradient(180deg, var(--bg0), var(--bg1));font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{overscroll-behavior-y:none;min-height:100svh;margin:0;overflow-y:auto}#root{min-height:100svh}*{box-sizing:border-box}button,select{font:inherit}code{font-family:var(--mono)}.app{flex-direction:column;gap:18px;max-width:1100px;min-height:100svh;margin:0 auto;padding:18px 14px;display:flex}.top{grid-template-columns:1.2fr 1fr;align-items:start;gap:16px;display:grid}@media (width<=900px){.top{grid-template-columns:1fr}}.title h1{letter-spacing:-.04em;margin:0;font-size:42px;line-height:1.05}@media (width<=520px){.title h1{font-size:34px}}.subtitle{color:var(--muted);max-width:60ch;margin-top:10px}.panel{background:linear-gradient(180deg, var(--panel), #ffffff09);border:1px solid var(--border);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:16px;flex-direction:column;gap:12px;padding:14px;display:flex}.row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.field{text-align:left;gap:6px;display:grid}.field>span{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-size:12px}select{border:1px solid var(--border);color:var(--text);background:#00000038;border-radius:12px;outline:none;height:44px;padding:10px 12px}select:focus-visible{border-color:#f472b68c;box-shadow:0 0 0 3px #f472b638}input{border:1px solid var(--border);color:var(--text);background:#00000038;border-radius:12px;outline:none;height:44px;padding:10px 12px}input::placeholder{color:#ffffff8c}input:focus-visible{border-color:#a78bfa8c;box-shadow:0 0 0 3px #a78bfa38}.stats{flex-direction:column;flex:0 260px;gap:8px;margin-left:auto;display:flex}@media (width<=520px){.stats{flex-basis:auto;width:100%;margin-left:0}}.stat{border:1px solid var(--border);background:#ffffff0a;border-radius:12px;justify-content:space-between;align-items:baseline;gap:12px;height:44px;padding:8px 10px;display:flex}.stat .k{color:var(--muted);font-size:12px}.stat .v{font-family:var(--mono);letter-spacing:.02em;font-size:14px}.actions{justify-content:flex-end}.btn{color:var(--text);cursor:pointer;background:linear-gradient(#db277738,#f472b629);border:1px solid #db277780;border-radius:12px;padding:10px 12px;transition:transform .12s,border-color .12s,background .12s}.btn:hover{background:linear-gradient(#f472b63d,#db277729);border-color:#f472b6a6;transform:translateY(-1px)}.btn:active{transform:translateY(0)}.btn:focus-visible{outline:none;box-shadow:0 0 0 3px #db277733}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn-ghost{border:1px solid var(--border);background:#ffffff08}.btn-ghost:hover{background:#ffffff0f;border-color:#fff3}.btn-small{border-radius:12px;padding:8px 10px}.game{padding-bottom:6px;position:relative}.board{--cols:4;grid-template-columns:repeat(var(--cols), minmax(0, 1fr));border:1px solid var(--border);box-shadow:var(--shadow);background:linear-gradient(#ffffff0d,#ffffff05);border-radius:18px;gap:12px;width:min(94vw,82svh,820px);margin:0 auto;padding:12px;display:grid}@media (width<=520px){.board{gap:10px;padding:12px}}.card{cursor:pointer;aspect-ratio:1;box-shadow:inset 0 0 0 1px var(--border);transform-style:preserve-3d;perspective:900px;background:#ffffff0a;border:none;border-radius:16px;padding:0;position:relative}.card:focus-visible{outline:none;box-shadow:inset 0 0 0 1px #22d3eeb3,0 0 0 3px #22d3ee33}.cardInner{transform-style:preserve-3d;border-radius:16px;place-items:center;transition:transform .18s;display:grid;position:absolute;inset:0}.card.faceUp .cardInner{transform:rotateY(180deg)}.front,.back{backface-visibility:hidden;-webkit-user-select:none;user-select:none;border-radius:16px;place-items:center;display:grid;position:absolute;inset:0}.back{font-family:var(--mono);color:#ffffffb3;background:radial-gradient(650px 450px at 20% 15%,#22d3ee29,#0000 55%),radial-gradient(650px 450px at 90% 10%,#a78bfa2e,#0000 50%),#ffffff08;font-size:18px}.front{background:linear-gradient(#ffffff17,#ffffff08);font-size:clamp(22px,4.2vw,34px);transform:rotateY(180deg)}.card.matched{cursor:default;opacity:.85}.card.matched .front{box-shadow:inset 0 0 0 1px #22d3ee8c}.banner{pointer-events:none;opacity:0;place-items:center;transition:opacity .16s;display:grid;position:absolute;inset:0}.banner.show{opacity:1;pointer-events:auto}.bannerCard{text-align:center;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:linear-gradient(#0f172aeb,#0f172ab8);border:1px solid #ffffff29;border-radius:18px;width:min(520px,92vw);padding:18px;box-shadow:0 30px 70px -20px #0000008c}.bannerTitle{letter-spacing:-.02em;font-size:26px}.bannerMeta{color:var(--muted);font-family:var(--mono);margin-top:6px}.bannerActions{flex-wrap:wrap;justify-content:center;gap:10px;margin-top:14px;display:flex}.scoreboard{border:1px solid var(--border);box-shadow:var(--shadow);background:linear-gradient(#ffffff0d,#ffffff05);border-radius:18px;margin-top:10px;padding:14px}.scoreboardTop{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:12px;display:flex}.scoreboardTitle{letter-spacing:-.01em;font-size:18px}.scoreboardSub{color:var(--muted);margin-top:4px;font-size:13px}.scoreboardStats{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.scorePill{border:1px solid var(--border);background:#ffffff0a;border-radius:12px;justify-content:space-between;align-items:baseline;gap:12px;min-width:190px;padding:8px 10px;display:flex}.scorePill .k{color:var(--muted);font-size:12px}.scorePill .v{font-family:var(--mono);font-size:13px}.scoreList{border:1px solid var(--border);border-radius:14px;margin-top:12px;overflow:hidden}.scoreRow{background:#ffffff08;padding:10px 12px;display:block}.scoreRow:nth-child(2n){background:#ffffff0b}.scoreRow.head{letter-spacing:.08em;text-transform:uppercase;color:#ffffffbf;background:#ffffff14;font-size:12px}.scoreEmpty{color:var(--muted);background:#ffffff08;padding:12px}.mono{font-family:var(--mono)}.scoreWhen{color:var(--muted);font-size:12px}.modalOverlay{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:50;background:#0000008c;place-items:center;padding:18px;display:grid;position:fixed;inset:0}.modal{background:linear-gradient(#0f172aeb,#0f172ac7);border:1px solid #ffffff29;border-radius:18px;width:min(520px,92vw);padding:16px;box-shadow:0 30px 70px -20px #0000008c}.modalTitle{letter-spacing:-.01em;font-size:18px}.modalText{color:var(--muted);margin-top:8px;line-height:1.4}.modalActions{flex-wrap:wrap;justify-content:flex-end;gap:10px;margin-top:14px;display:flex}
