.arcade{max-width:500px;margin:auto;padding:20px 18px max(26px,env(safe-area-inset-bottom))}.arcade.hub{max-width:980px}.site-brand{display:flex;justify-content:space-between;align-items:center}.site-brand span{font-size:14px;color:#c6c3da}.eyebrow{font-size:14px;color:#c7bddc;margin:0 0 8px}.hub-title{margin:30px 0 24px;gap:16px}.hub-title h1{font-size:clamp(24px,4vw,36px)}.count{font-size:14px;white-space:nowrap;color:#ffda91}.game-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.game-card{display:block;border:1px solid #ffffff22;border-radius:22px;overflow:hidden;text-decoration:none;color:inherit;background:#1a2035;transition:transform .15s,border-color .15s}.game-card:hover{transform:translateY(-3px);border-color:#ffda91}.game-card:focus-visible{outline:3px solid #ffda91;outline-offset:3px}.card-art{height:170px;position:relative;display:flex;align-items:center;justify-content:center;background:radial-gradient(ellipse at center,#554366,#29213d)}.blocks .card-art{background:radial-gradient(ellipse at center,#244f62,#162d42)}.memory .card-art{background:radial-gradient(ellipse at center,#315e50,#172f31)}.lights .card-art{background:radial-gradient(ellipse at center,#60532c,#32263a)}.monster-art{display:block;width:150px;height:150px;background-image:url('/monsters.png');background-size:400% 200%;background-position:var(--x) var(--y);background-repeat:no-repeat}.game-glyph{font-size:100px;line-height:1;color:#83e5e7;text-shadow:0 0 28px #79e4ff44}.lights .game-glyph{color:#ffe3a0}.card-tag{position:absolute;bottom:10px;left:14px;font-size:13px;background:#111a2be0;padding:5px 9px;border-radius:6px;color:#eee8ff}.card-copy{padding:20px}.card-copy h2{font-size:21px;margin:0 0 9px}.card-copy p{font-size:15px;line-height:1.8;color:#c5c5d9;margin:0 0 16px}.card-copy strong{color:#ffda91;font-size:15px}.game-heading{margin:24px 0 18px}.heading-glyph{font-size:40px;color:#ffda91}.game-heading h1{font-size:26px}.arcade-stats{display:flex;justify-content:space-between;gap:16px;padding:15px 20px;border-radius:16px;background:#ffffff08}.arcade-stats span{display:block;color:#c4c2d7;font-size:14px}.arcade-stats strong{font-size:30px;font-variant-numeric:tabular-nums}.arcade-stats>div:last-child{text-align:right}#status{font-size:15px;line-height:1.7;min-height:51px;margin:16px 0 10px;color:#e5def1}.playfield{display:grid;gap:5px;padding:10px;border-radius:18px;background:#0b1020;border:1px solid #ffffff20;isolation:isolate}.cell{aspect-ratio:1;padding:0;border-radius:7px;min-width:0;border:1px solid #ffffff12;background:#202940;touch-action:manipulation;position:relative}.cell.filled{background:#5ac4c7;border-color:#b6fbff;box-shadow:inset 0 3px #ffffff44}.cell.ghost{background:#688481;outline:2px solid #ffda91;outline-offset:-2px}.cell.invalid{outline:2px solid #ff8596;outline-offset:-2px}.cell.on{background:#ffda91;border-color:#ffecbb;box-shadow:0 0 18px #ffda9133}.cell.on::after{content:'✦';color:#573b12;font-size:24px}.cell.hinted{outline:3px solid #8af5e3;outline-offset:1px}.cell:focus-visible{z-index:1;outline:3px solid white;outline-offset:1px}.pieces{display:flex;gap:10px;margin:16px 0}.piece{flex:1;min-width:0;min-height:92px;display:flex;align-items:center;justify-content:center;padding:10px;border-radius:12px;background:#1a2439}.piece.selected{border:2px solid #ffda91;background:#293246}.piece:disabled{opacity:.3;cursor:default}.mini-grid{display:grid;gap:3px}.mini-cell{width:15px;height:15px;background:#6bd8d6;border-radius:3px}.mini-cell.empty{background:transparent}.game-controls{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin:15px 0}.game-controls button{font-size:14px;min-height:44px}.result{padding:20px;background:#ffda9112;border:1px solid #ffda9155;border-radius:16px;text-align:center}.result h2{font-size:24px;margin:0 0 8px;color:#ffda91}.result p{margin:0;line-height:1.8}.result[hidden]{display:none}.rules{margin-top:25px;border-top:1px solid #ffffff20;padding-top:18px}.rules summary{cursor:pointer;color:#ffda91;font-size:16px;padding:8px 0}.rules h2{font-size:19px;margin:22px 0 10px}.rules p,.rules li{font-size:16px;line-height:1.85;color:#d5ccdf}.rules ol{padding-left:24px}.footnote{font-size:14px;line-height:1.8;color:#b4aec8;margin-top:24px}.memory .cell{aspect-ratio:1;background:#303044;overflow:hidden;border-radius:12px}.memory .cell .back{color:#ffda91;font-size:28px}.memory .cell .face{position:absolute;inset:3px;background-image:url('/monsters.png');background-size:400% 200%;background-position:var(--x) var(--y);display:none}.memory .cell.revealed .face{display:block}.memory .cell.revealed .back{display:none}.memory .cell.matched{background:#244f45;border-color:#6bc5a9}.memory .cell.matched::after{content:'✓';position:absolute;right:3px;bottom:1px;color:white;font-size:16px;text-shadow:0 1px 4px #000}.lights .cell{border-radius:12px}.lights .cell:not(.on)::after{content:'·';font-size:28px;color:#8490a7}.lights.playfield{gap:9px;padding:14px}.arcade a:focus-visible{outline:3px solid #ffda91;outline-offset:3px}@media(max-width:540px){.game-list{gap:12px}.card-art{height:128px}.card-copy{padding:14px}.card-copy h2{font-size:18px}.card-copy p{font-size:14px}.monster-art{width:115px;height:115px}.game-glyph{font-size:80px}.count{display:none}.hub-title{margin-top:20px}}@media(max-width:360px){.game-list{grid-template-columns:1fr}.game-heading h1{font-size:23px}.arcade{padding:16px 12px}.mini-cell{width:12px;height:12px}}@media(prefers-reduced-motion:reduce){.game-card{transition:none}}
