@import "https://fonts.googleapis.com/css2?family=Outfit:wght@400;500;600;700&family=Space+Grotesk:wght@500;700&display=swap";:root{--font-body:"Outfit", "Avenir Next", "Segoe UI", sans-serif;--font-display:"Space Grotesk", "Avenir Next Condensed", sans-serif;--color-ink:#f5f6fb;--color-copy:#a8acbb;--color-muted:#818696;--color-accent:#8a7cff;--color-accent-deep:#6f5ff0;--page-top:#101014;--page-bottom:#171820;--grid-line:#30313e;font-family:var(--font-body);color:var(--color-copy);background:linear-gradient(180deg, var(--page-top), var(--page-bottom));font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:400;line-height:1.5}*{box-sizing:border-box;min-width:0}html{width:100%;min-height:100%;overflow-x:hidden}body{background:linear-gradient(90deg, transparent 49.5%, var(--grid-line) 49.5%, var(--grid-line) 50.5%, transparent 50.5%) center/44px 44px, linear-gradient(var(--page-top), var(--page-bottom));width:100%;min-height:100%;margin:0;overflow-x:hidden}#root{width:100%;min-height:100dvh;overflow-x:hidden}button,input,textarea,select{font:inherit}h1,p{overflow-wrap:anywhere;max-width:100%;margin:0}h1{font-family:var(--font-display);letter-spacing:0;color:var(--color-ink);overflow-wrap:anywhere;font-size:clamp(2rem,4vw,3rem);line-height:1.05}@media (width<=640px){h1{max-width:100%;font-size:clamp(1.7rem,8vw,2rem);line-height:1.08}}.app-shell{grid-template-columns:minmax(280px,420px) minmax(0,1fr);align-items:center;gap:24px;width:min(1180px,100% - 32px);max-width:100%;min-height:100dvh;margin:0 auto;padding:32px 0;display:grid;overflow-x:hidden}.status-panel,.board-panel,.status-copy,.control-row{min-width:0;max-width:100%}.status-panel,.board-frame{background:linear-gradient(#1f202af5,#171820f2),#171820;border:1px solid #30313e;width:100%;max-width:100%;position:relative;box-shadow:0 24px 60px #00000033,inset 0 1px #ffffff12}.status-panel{border-radius:8px;flex-direction:column;gap:24px;min-height:640px;padding:32px;display:flex}.status-copy{gap:12px;display:grid}.eyebrow{font-family:var(--font-display);letter-spacing:.18em;text-transform:uppercase;color:var(--color-accent);margin:0;font-size:.78rem;font-weight:700}.deck-note{max-width:34ch;color:var(--color-copy);overflow-wrap:anywhere}.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.stat-card{background:#1f202a;border:1px solid #30313e;border-radius:8px;gap:8px;padding:18px 20px;display:grid}.stat-card:last-child{grid-column:1/-1}.stat-card dt,.micro-copy,.memory-card__face--front small{color:var(--color-muted);font-size:.84rem;line-height:1.5}.stat-card dd{font-family:var(--font-display);color:var(--color-ink);margin:0;font-size:clamp(1.6rem,3vw,2.4rem);line-height:1}.control-row{gap:14px;margin-top:auto;display:grid}.action-button{color:#111118;font:600 .98rem/1 var(--font-body);cursor:pointer;background:linear-gradient(135deg,#8a7cff,#6f5ff0);border:none;border-radius:8px;width:fit-content;max-width:100%;padding:14px 22px;transition:transform .18s,box-shadow .18s;box-shadow:0 18px 30px #00000040}.action-button:hover{transform:translateY(-1px);box-shadow:0 22px 36px #00000050}.action-button:active{transform:translateY(0)scale(.98)}.action-button:focus-visible,.memory-card:focus-visible{outline-offset:3px;outline:3px solid #8a7cff73}.win-banner{opacity:.25;background:#1f202a;border:1px solid #30313e;border-radius:8px;padding:18px 20px;transition:opacity .22s,transform .22s;transform:translateY(10px)}.win-banner.is-visible{opacity:1;transform:translateY(0)}.win-banner p{color:var(--color-copy);margin-top:8px}.win-label,.symbol-tag{width:fit-content;color:var(--color-accent);letter-spacing:.12em;text-transform:uppercase;background:#8a7cff29;border-radius:8px;justify-content:center;align-items:center;padding:6px 10px;font-size:.72rem;font-weight:700;display:inline-flex}.board-panel{min-width:0}.board-frame{border-radius:8px;padding:22px}.board-frame:before{content:"";pointer-events:none;border:1px dashed #4a4b5b;border-radius:8px;position:absolute;inset:16px}.board-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;display:grid;position:relative}.memory-card{cursor:pointer;aspect-ratio:5/6.3;perspective:1200px;background:0 0;border:none;padding:0;position:relative}.memory-card:disabled{cursor:default}.memory-card__inner{transform-style:preserve-3d;transition:transform .28s;display:block;position:absolute;inset:0}.memory-card.is-revealed .memory-card__inner{transform:rotateY(180deg)}.memory-card__face{backface-visibility:hidden;box-sizing:border-box;border-radius:8px;flex-direction:column;justify-content:space-between;padding:16px;display:flex;position:absolute;inset:0}.memory-card__face--back{color:#f5f6fbd6;background:radial-gradient(circle at 30% 20%,#ffffff14,#0000 35%),linear-gradient(160deg,#292a36,#101014);border:1px solid #ffffff14;justify-content:center;align-items:center;box-shadow:inset 0 1px #ffffff14,0 18px 28px #00000055}.back-mark{font-family:var(--font-display);letter-spacing:.24em;font-size:clamp(1.5rem,3vw,2.2rem)}.memory-card__face--front{background:linear-gradient(#292a36f5,#1f202af2),#1f202a;border:1px solid #4a4b5b;transform:rotateY(180deg);box-shadow:0 20px 30px #00000040,inset 0 1px #ffffff14}.memory-card__face--front strong{font-family:var(--font-display);color:var(--color-ink);margin-top:auto;font-size:clamp(1.2rem,2vw,1.55rem)}.memory-card.is-matched .memory-card__face--front{background:linear-gradient(#312f4afa,#24243afa),#24243a;box-shadow:0 22px 34px #00000045,inset 0 1px #ffffff14}@media (width<=960px){.app-shell{grid-template-columns:1fr;gap:18px;padding:18px 0 32px}.status-panel{min-height:auto}.board-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}}@media (width<=640px){.app-shell{width:min(100% - 20px,1180px);overflow-x:hidden}.status-panel,.board-frame{border-radius:8px}.status-panel{padding:22px}.deck-note,.micro-copy,.win-banner p{max-width:100%}.action-button{width:100%}.stats-grid{grid-template-columns:1fr}.board-frame{padding:16px}.board-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.memory-card__face{border-radius:8px;padding:14px}}
