:root{--bg-top:#f6efe0;--bg-bottom:#d9e7f2;--panel:#fffaf1db;--panel-border:#42596e38;--ink:#21303d;--muted:#627180;--accent:#c35f2d;--accent-dark:#8f421d;--board-frame:#335b73;--cell-hidden:#88a8b8;--cell-hidden-alt:#7a9bab;--cell-open:#f4efe4;--cell-border:#15293429;--danger:#b53737;--success:#2f7b4b;--shadow:0 20px 50px #182e3a29;--font-display:"Trebuchet MS", "Gill Sans", sans-serif;--font-body:"Segoe UI", "Helvetica Neue", sans-serif}*{box-sizing:border-box}body{min-height:100vh;font-family:var(--font-body);color:var(--ink);background:radial-gradient(circle at top left, #ffffffad, transparent 28%), radial-gradient(circle at bottom right, #c35f2d26, transparent 24%), linear-gradient(160deg, var(--bg-top), var(--bg-bottom));margin:0}body:before,body:after{content:"";pointer-events:none;filter:blur(12px);opacity:.55;border-radius:999px;position:fixed}body:before{background:#c35f2d24;width:220px;height:220px;top:6vh;right:-40px}body:after{background:#335b732e;width:280px;height:280px;bottom:8vh;left:-120px}.app-shell{gap:24px;width:min(1180px,100vw - 32px);margin:0 auto;padding:32px 0 40px;display:grid}.hero,.panel{background:var(--panel);border:1px solid var(--panel-border);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:var(--shadow);border-radius:28px}.hero{padding:28px 28px 24px}.eyebrow{text-transform:uppercase;letter-spacing:.18em;color:var(--accent-dark);margin:0 0 10px;font-size:.78rem;font-weight:700}.hero h1,.auth-strip h2,.leaderboard-header h2{font-family:var(--font-display);margin:0}.hero h1{font-size:clamp(2.5rem,5vw,4.5rem);line-height:.95}.subtitle,.auth-message,.leaderboard-copy,.board-caption{color:var(--muted)}.subtitle{max-width:52ch;margin:14px 0 0;font-size:1.02rem}.panel{padding:22px}.auth-strip,.toolbar,.hud,.mode-switch,.leaderboard-header{flex-wrap:wrap;align-items:center;gap:14px;display:flex}.auth-strip,.leaderboard-panel{background:#ffffff75;border-radius:24px;padding:18px;box-shadow:inset 0 0 0 1px #21303d12}.auth-strip,.toolbar,.leaderboard-header{justify-content:space-between}.auth-eyebrow,.leaderboard-eyebrow{margin-bottom:6px}.auth-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:12px;display:flex}.player-chip{background:#fffc;border-radius:18px;align-items:center;gap:12px;min-width:240px;padding:10px 14px;display:flex;box-shadow:inset 0 0 0 1px #21303d14}.player-avatar{object-fit:cover;background:#335b731f;border-radius:50%;width:44px;height:44px}.player-meta{gap:2px;min-width:0;display:grid}.player-meta strong,.player-meta span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.player-meta span{color:var(--muted);font-size:.9rem}.control{color:var(--muted);gap:8px;font-size:.92rem;display:grid}select,.primary-button,.mode-button,.face-button,.ghost-button{font:inherit;border:0;border-radius:16px}select,.primary-button,.mode-button,.ghost-button{padding:12px 16px}select{min-width:180px;color:var(--ink);background:#ffffffe0;box-shadow:inset 0 0 0 1px #21303d1f}.primary-button,.mode-button,.face-button,.ghost-button{cursor:pointer;transition:transform .14s,box-shadow .14s,background .14s,opacity .14s}.primary-button{color:#fff9f4;background:linear-gradient(135deg, var(--accent), #d97f41);box-shadow:0 10px 20px #c35f2d3d}.ghost-button{color:var(--ink);background:#ffffffb8;box-shadow:inset 0 0 0 1px #21303d1f}.primary-button:hover,.mode-button:hover,.face-button:hover,.ghost-button:hover{transform:translateY(-1px)}button:disabled,select:disabled{opacity:.55;cursor:not-allowed;box-shadow:none;transform:none}.hud{justify-content:center;margin-top:18px}.stat-card{text-align:center;background:#ffffffc7;border-radius:18px;min-width:120px;padding:14px 18px;box-shadow:inset 0 0 0 1px #21303d1a}.stat-label{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:4px;font-size:.78rem;display:block}.stat-card strong{font-family:var(--font-display);font-size:1.6rem}.face-button{background:linear-gradient(#fff7dc,#ffd880);width:60px;height:60px;font-size:1.8rem;box-shadow:0 10px 18px #7e64222e}.mode-switch{justify-content:center;margin-top:16px}.mode-button{min-width:112px;color:var(--ink);background:#ffffffbd;box-shadow:inset 0 0 0 1px #21303d1f}.mode-button.active{color:#fffdf7;background:var(--board-frame)}.status{text-align:center;color:var(--board-frame);min-height:24px;margin:16px 0 0;font-weight:600}.status.win{color:var(--success)}.status.lose{color:var(--danger)}.board-caption{text-align:center;margin:14px 0 0;font-size:.95rem}.board-wrap{overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;background:linear-gradient(145deg,#ffffff80,#fff3),linear-gradient(#335b731a,#335b7329);border-radius:24px;margin-top:16px;padding:18px;position:relative;overflow:auto hidden}.board{--cols:9;--cell-size:42px;grid-template-columns:repeat(var(--cols), var(--cell-size));background:var(--board-frame);border-radius:20px;gap:4px;width:max-content;margin:0 auto;padding:10px;display:grid}.board.scrollable{margin:0}.board.locked{opacity:.45;filter:saturate(.75)}.board-lock{color:#fff8ef;text-align:center;z-index:1;background:#162731b8;border-radius:20px;place-items:center;padding:20px;font-weight:600;display:grid;position:absolute;inset:18px}.cell{width:var(--cell-size);height:var(--cell-size);font-family:var(--font-display);background:linear-gradient(145deg, var(--cell-hidden), var(--cell-hidden-alt));color:#173244;cursor:pointer;-webkit-user-select:none;user-select:none;touch-action:manipulation;border:0;border-radius:12px;font-size:clamp(.9rem,2vw,1.1rem);font-weight:700;box-shadow:inset 0 -2px #00000026,inset 0 1px #ffffff38}.cell:hover{filter:brightness(1.05)}.cell.revealed{background:var(--cell-open);box-shadow:inset 0 0 0 1px var(--cell-border)}.cell.flagged{color:var(--danger)}.cell.mine{color:#521717;background:#f7d2d2}.cell.exploded{background:#ec8e8e}.cell[data-count="1"]{color:#2467d6}.cell[data-count="2"]{color:#1f8a4c}.cell[data-count="3"]{color:#c0392b}.cell[data-count="4"]{color:#5c3ea6}.cell[data-count="5"]{color:#8b4513}.cell[data-count="6"]{color:#177e89}.cell[data-count="7"]{color:#2d3436}.cell[data-count="8"]{color:#7f8c8d}.instructions{text-align:center;color:var(--muted);margin-top:16px;font-size:.95rem}.leaderboard-panel{margin-top:20px}.contact-footer{border:1px solid var(--panel-border);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:var(--shadow);background:#fffaf1c2;border-radius:24px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:20px;padding:22px 24px;display:flex}.contact-copy-block{flex:280px}.contact-eyebrow{margin-bottom:6px}.contact-footer h2{font-family:var(--font-display);margin:0}.contact-copy{color:var(--muted);margin:8px 0 0}.contact-links{flex-wrap:wrap;justify-content:flex-end;gap:12px;display:flex}.contact-link{min-width:220px;color:var(--ink);background:#ffffffd1;border-radius:18px;align-items:center;gap:12px;padding:14px 16px;text-decoration:none;transition:transform .14s,box-shadow .14s,background .14s;display:inline-flex;box-shadow:inset 0 0 0 1px #21303d1f}.contact-link:hover,.contact-link:focus-visible{background:#fffffff0;transform:translateY(-1px);box-shadow:inset 0 0 0 1px #21303d1f,0 10px 20px #182e3a14}.contact-link:focus-visible{outline-offset:2px;outline:2px solid #8f421d59}.contact-icon{width:42px;height:42px;color:var(--board-frame);background:#335b731a;border-radius:14px;flex:none;place-items:center;display:grid}.contact-icon svg{fill:currentColor;width:22px;height:22px}.contact-text{gap:2px;display:grid}.contact-text strong{font-size:.98rem}.contact-text span{color:var(--muted);font-size:.9rem}.leaderboard-copy{margin:8px 0 0}.leaderboard-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:18px;display:grid}.leaderboard-card{background:#ffffffd1;border-radius:22px;padding:18px;box-shadow:inset 0 0 0 1px #21303d14}.leaderboard-card h3{font-family:var(--font-display);margin:0 0 14px;font-size:1.35rem}.leaderboard-list{gap:10px;margin:0;padding:0;list-style:none;display:grid}.leaderboard-item{background:linear-gradient(#f6efe0e6,#ffffffeb);border-radius:18px;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;padding:12px 14px;display:grid;box-shadow:inset 0 0 0 1px #21303d14}.leaderboard-rank{color:#fffdf7;background:var(--board-frame);border-radius:50%;place-items:center;width:32px;height:32px;font-weight:700;display:grid}.leaderboard-player{min-width:0}.leaderboard-player strong,.leaderboard-player span{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.leaderboard-player span{color:var(--muted);margin-top:2px;font-size:.86rem}.leaderboard-metrics{text-align:right}.leaderboard-metrics strong,.leaderboard-metrics span{display:block}.leaderboard-metrics span{color:var(--muted);margin-top:2px;font-size:.86rem}.leaderboard-empty{color:var(--muted);background:#ffffffbf;border-radius:18px;padding:14px;box-shadow:inset 0 0 0 1px #21303d14}.hidden{display:none!important}@media (width<=900px){.leaderboard-grid{grid-template-columns:1fr}}@media (width<=720px){.app-shell{width:min(100vw - 20px,760px);padding-top:20px}.hero,.panel,.auth-strip,.leaderboard-panel{border-radius:22px}.panel{padding:18px}.auth-strip,.toolbar,.leaderboard-header{justify-content:center}.auth-actions,.player-chip,.control,select,.primary-button,.ghost-button{width:100%}.auth-actions{justify-content:stretch}.player-chip{min-width:0}.hud{gap:10px}.stat-card{flex:1 1 0;min-width:100px}.board-wrap{padding:12px}.board-lock{inset:12px}.leaderboard-card{padding:16px}.contact-footer,.contact-links{justify-content:center}.contact-link{width:100%;min-width:0}.leaderboard-metrics{text-align:left;grid-column:2}}
