*,*:before,*:after{box-sizing:border-box}*{margin:0}html{interpolate-size:allow-keywords}body{line-height:1.5;-webkit-font-smoothing:antialiased}img,picture,video,canvas,svg{display:block;max-width:100%}input,button,textarea,select{font:inherit}p{overflow-wrap:break-word;text-wrap:pretty}h1,h2,h3,h4,h5,h6{overflow-wrap:break-word;text-wrap:balance}#root,#app{isolation:isolate}:root{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif;color-scheme:light dark;--bg-1: #fef6f9;--bg-2: #eef3ff;--bg-3: #f7f0ff;--surface: #ffffffcc;--surface-strong: #ffffff;--ink: #2b2740;--ink-soft: #6c6890;--ink-faint: #a4a0c2;--accent: #7c6cff;--accent-soft: #d9d3ff;--pink: #ffb4c8;--peach: #ffd5b8;--mint: #b8e7d2;--sky: #bcd9ff;--lilac: #d9c2ff;--card-back-from: #c5b6ff;--card-back-to: #ffc1dc;--card-front: #ffffff;--card-shadow: 0 8px 18px -10px rgba(60, 50, 120, .35);--card-shadow-strong: 0 14px 28px -12px rgba(60, 50, 120, .45);--matched-glow: 0 0 0 3px rgba(184, 231, 210, .85), 0 10px 24px -10px rgba(120, 200, 170, .5);--radius: 14px;--radius-lg: 22px;--transition: .22s cubic-bezier(.4, 0, .2, 1)}@media(prefers-color-scheme:dark){:root{--bg-1: #1c1a2e;--bg-2: #181f3a;--bg-3: #221a36;--surface: #2a2745cc;--surface-strong: #2a2745;--ink: #ece9ff;--ink-soft: #b6b1d8;--ink-faint: #7a749c;--accent: #b4a8ff;--accent-soft: #4a3f8a;--card-back-from: #6a5cd6;--card-back-to: #c275a0;--card-front: #353154;--card-shadow: 0 8px 18px -10px rgba(0, 0, 0, .55);--card-shadow-strong: 0 14px 28px -12px rgba(0, 0, 0, .7);--matched-glow: 0 0 0 3px rgba(120, 220, 180, .55), 0 10px 24px -10px rgba(80, 200, 150, .45)}}body{min-height:100dvh;color:var(--ink);background:radial-gradient(1200px 600px at 10% -10%,var(--bg-1),transparent 60%),radial-gradient(900px 500px at 110% 10%,var(--bg-3),transparent 60%),radial-gradient(1000px 700px at 50% 120%,var(--bg-2),transparent 60%),linear-gradient(160deg,var(--bg-1),var(--bg-2) 60%,var(--bg-3));background-attachment:fixed}#app{max-width:920px;margin-inline:auto;padding:clamp(1rem,2.5vw,2rem)}.memory-app{display:flex;flex-direction:column;gap:clamp(.75rem,2vw,1.25rem)}.memory-header{position:relative;display:flex;flex-direction:column;align-items:center;gap:clamp(.5rem,1.6vw,.85rem);padding:clamp(.6rem,2.4vw,1.4rem) 0 clamp(.15rem,1vw,.4rem);text-align:center}.memory-header:before{content:"";position:absolute;z-index:-1;top:0;left:50%;width:min(30rem,110%);height:100%;transform:translate(-50%);background:radial-gradient(60% 70% at 50% 40%,rgba(124,108,255,.16),transparent 70%);pointer-events:none}.memory-logo{display:flex;flex-direction:column;align-items:center;line-height:.9;font-weight:900;text-transform:uppercase;filter:drop-shadow(0 6px 14px rgba(124,108,255,.3));animation:logo-in .6s cubic-bezier(.34,1.4,.64,1) both}.logo-word{background-image:linear-gradient(100deg,var(--accent) 0%,#a08cff 20%,#ff6f9c 42%,#ff6f9c 58%,#a08cff 80%,var(--accent) 100%);background-size:220% 100%;background-position:100% 0;-webkit-background-clip:text;background-clip:text;color:transparent;animation:logo-sheen 1.5s ease-out both}.logo-memory{font-size:clamp(1.5rem,6.4vw,2.5rem);letter-spacing:.13em;text-indent:.13em;animation-delay:.1s}.logo-match{font-size:clamp(2.05rem,8.7vw,3.4rem);letter-spacing:.02em;text-indent:.02em;animation-delay:.28s}@keyframes logo-in{0%{opacity:0;transform:translateY(-10px) scale(.96)}to{opacity:1;transform:none}}@keyframes logo-sheen{0%{background-position:100% 0}to{background-position:0 0}}@media(prefers-reduced-motion:reduce){.memory-logo,.logo-word{animation:none}.logo-word{background-position:0 0}}.memory-tagline{color:var(--ink-soft);font-size:clamp(.8rem,2.2vw,.95rem);font-weight:500;padding:.3rem .9rem;border:1px solid rgba(124,108,255,.16);border-radius:999px;background:var(--surface);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.memory-controls{display:flex;flex-wrap:wrap;gap:.75rem 1.25rem;align-items:center;justify-content:center;padding:.75rem 1rem;background:var(--surface);border-radius:var(--radius-lg);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:var(--card-shadow)}.control-group{display:inline-flex;align-items:center;gap:.5rem}.control-label{color:var(--ink-soft);font-size:.85rem;font-weight:500}.difficulty-toggle{background:#7c6cff14;padding:.25rem;border-radius:999px;gap:.15rem}.pill{appearance:none;border:none;background:transparent;color:var(--ink-soft);padding:.4rem .85rem;font-size:.9rem;font-weight:600;border-radius:999px;cursor:pointer;transition:background var(--transition),color var(--transition),box-shadow var(--transition)}.pill:hover:not(.is-active){color:var(--ink)}.pill.is-active{background:var(--surface-strong);color:var(--accent);box-shadow:0 4px 10px -6px #3c327866}.pill:focus-visible,.theme-select:focus-visible,.reset-button:focus-visible,.play-again:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.theme-select{appearance:none;border:1px solid var(--accent-soft);background:var(--surface-strong);color:var(--ink);padding:.4rem 2rem .4rem .85rem;font-size:.9rem;font-weight:500;border-radius:999px;cursor:pointer;background-image:linear-gradient(45deg,transparent 50%,var(--ink-soft) 50%),linear-gradient(135deg,var(--ink-soft) 50%,transparent 50%);background-position:calc(100% - 14px) 50%,calc(100% - 9px) 50%;background-size:5px 5px,5px 5px;background-repeat:no-repeat;transition:border-color var(--transition)}.theme-select:hover{border-color:var(--accent)}.reset-button{appearance:none;border:none;background:var(--accent);color:#fff;padding:.45rem 1rem;font-size:.9rem;font-weight:600;border-radius:999px;cursor:pointer;box-shadow:0 6px 14px -8px #7c6cffcc;transition:transform var(--transition),box-shadow var(--transition)}.reset-button:hover{transform:translateY(-1px);box-shadow:0 10px 18px -10px #7c6cffe6}.reset-button:active{transform:translateY(0)}.memory-stats{display:flex;justify-content:center;gap:clamp(1rem,4vw,3rem);padding:.5rem 0}.stat{display:flex;flex-direction:column;align-items:center;gap:.15rem}.stat-label{font-size:.75rem;text-transform:uppercase;letter-spacing:.1em;color:var(--ink-faint);font-weight:600}.stat-value{font-size:clamp(1.2rem,3.2vw,1.6rem);font-weight:700;font-variant-numeric:tabular-nums;color:var(--ink)}.memory-board{display:grid;gap:clamp(.5rem,1.4vw,.9rem);width:100%;margin-inline:auto;perspective:1200px}.memory-board.difficulty-4x4{grid-template-columns:repeat(4,1fr);max-width:520px}.memory-board.difficulty-6x4,.memory-board.difficulty-6x6{grid-template-columns:repeat(6,1fr);max-width:720px}.memory-board[data-locked=true] .card:not(.is-matched){pointer-events:none}.card{appearance:none;border:none;background:transparent;padding:0;aspect-ratio:1 / 1;cursor:pointer;border-radius:var(--radius);position:relative;transition:transform var(--transition)}.card:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:var(--radius)}.card:disabled{cursor:default}.card-inner{position:absolute;inset:0;transform-style:preserve-3d;transition:transform .52s cubic-bezier(.4,0,.2,1);border-radius:var(--radius)}.card.is-flipped .card-inner{transform:rotateY(180deg)}.card-face{position:absolute;inset:0;display:grid;place-items:center;backface-visibility:hidden;-webkit-backface-visibility:hidden;border-radius:var(--radius);box-shadow:var(--card-shadow);font-size:clamp(1.4rem,4.2vw,2.4rem);-webkit-user-select:none;user-select:none}.card-back{background:radial-gradient(120% 80% at 30% 20%,rgba(255,255,255,.45),transparent 60%),linear-gradient(140deg,var(--card-back-from),var(--card-back-to));overflow:hidden}.card-back:after{content:"";position:absolute;inset:8%;border-radius:calc(var(--radius) - 4px);border:1.5px dashed rgba(255,255,255,.55);pointer-events:none}.card-front{background:var(--card-front);color:var(--ink);transform:rotateY(180deg);border:1px solid rgba(124,108,255,.12)}.card:not(:disabled):hover .card-inner{transform:translateY(-2px) rotateY(0);box-shadow:var(--card-shadow-strong)}.card.is-flipped:not(:disabled):hover .card-inner{transform:translateY(-2px) rotateY(180deg)}.card.is-matched .card-front{background:linear-gradient(140deg,#f4fff7,#eefcff);color:var(--ink-soft);box-shadow:var(--matched-glow);opacity:.92}@media(prefers-color-scheme:dark){.card.is-matched .card-front{background:linear-gradient(140deg,#2a4a3c,#25394a);color:var(--ink)}}.card.is-celebrating .card-inner{animation:matched-pop .65s cubic-bezier(.34,1.56,.64,1)}@keyframes matched-pop{0%{transform:rotateY(180deg) scale(1)}35%{transform:rotateY(180deg) scale(1.12)}60%{transform:rotateY(180deg) scale(.96)}to{transform:rotateY(180deg) scale(1)}}.card.is-celebrating .card-front{box-shadow:0 0 0 4px #b8e7d2e6,0 0 30px 6px #b8e7d28c,var(--card-shadow-strong)}@media(prefers-reduced-motion:reduce){.card-inner,.card.is-celebrating .card-inner{transition:none;animation:none}}.memory-complete{text-align:center;padding:1.25rem 1rem;background:var(--surface-strong);border-radius:var(--radius-lg);box-shadow:var(--card-shadow);display:flex;flex-direction:column;align-items:center;gap:.75rem;animation:rise-in .45s ease}@keyframes rise-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.complete-message{font-size:clamp(1.05rem,2.5vw,1.3rem);font-weight:600;color:var(--ink)}.play-again{appearance:none;border:none;background:linear-gradient(120deg,var(--accent),#ff6f9c 80%);color:#fff;padding:.55rem 1.25rem;font-size:.95rem;font-weight:600;border-radius:999px;cursor:pointer;box-shadow:0 8px 18px -10px #7c6cffe6;transition:transform var(--transition),box-shadow var(--transition)}.play-again:hover{transform:translateY(-1px);box-shadow:0 12px 22px -12px #ff6f9ce6}.memory-leaderboard{background:var(--surface);border-radius:var(--radius-lg);padding:.85rem 1rem;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:var(--card-shadow)}.leaderboard-title{font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.1em;color:var(--ink-faint);margin-bottom:.5rem;text-align:center}.leaderboard-list{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;justify-content:center;gap:.5rem}.leaderboard-item{display:inline-flex;align-items:center;gap:.5rem;padding:.35rem .85rem;background:var(--surface-strong);border-radius:999px;font-size:.85rem;border:1px solid rgba(124,108,255,.12)}.leaderboard-item.has-score{border-color:#7c6cff59}.leaderboard-diff{font-weight:700;color:var(--accent);font-variant-numeric:tabular-nums}.leaderboard-score{color:var(--ink);font-variant-numeric:tabular-nums}.leaderboard-empty{color:var(--ink-faint);font-style:italic}@media(max-width:480px){.memory-board.difficulty-6x6,.memory-board.difficulty-6x4{gap:.35rem}.card-face{font-size:clamp(1rem,5.5vw,1.8rem)}.memory-controls{gap:.5rem .75rem}}
