:root{--bg:#f8f8f6;--text:#1a1a1a;--text-muted:#777;--btn-bg:#1a1a1a;--btn-text:#fff;--btn-secondary-bg:#e8e8e8;--btn-secondary-text:#1a1a1a;--card-bg:#fff;--card-border:#e0e0e0;--warning:#dc2626;--success:#16a34a}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;margin:0;font-family:system-ui,Segoe UI,Roboto,sans-serif;font-size:16px}#root{flex-direction:column;align-items:center;min-height:100svh;padding:24px 16px 48px;display:flex}h1{letter-spacing:-.5px;margin:0 0 8px;font-size:2.2rem;font-weight:700}h2{font-size:1.3rem;font-weight:600}h3{font-size:1rem;font-weight:600}p{margin:0}.home-screen{flex-direction:column;align-items:center;gap:24px;margin-top:80px;display:flex}.tagline{color:var(--text-muted);font-size:1.05rem}.home-buttons{flex-direction:column;gap:12px;width:220px;display:flex}.puzzle-player{flex-direction:column;align-items:center;gap:16px;width:100%;max-width:600px;display:flex}.puzzle-header{justify-content:center;align-items:center;gap:16px;width:100%;display:flex;position:relative}.puzzle-header .btn-secondary{position:absolute;left:0}.mode-buttons{border:1.5px solid #333;border-radius:6px;gap:0;display:flex;overflow:hidden}.mode-btn{color:#333;cursor:pointer;background:#fff;border:none;padding:8px 24px;font-size:14px;font-weight:600;transition:background .1s,color .1s}.mode-btn+.mode-btn{border-left:1.5px solid #333}.mode-btn.active{color:#fff;background:#1a1a1a}.btn-primary{background:var(--btn-bg);color:var(--btn-text);cursor:pointer;border:none;border-radius:8px;padding:12px 28px;font-size:15px;font-weight:600;transition:opacity .15s}.btn-primary:hover{opacity:.85}.btn-primary:disabled{opacity:.4;cursor:default}.btn-primary.large{width:100%;padding:14px 32px;font-size:17px}.btn-secondary{background:var(--btn-secondary-bg);color:var(--btn-secondary-text);cursor:pointer;border:none;border-radius:6px;padding:8px 16px;font-size:14px;font-weight:500}.btn-secondary:hover{background:#d8d8d8}.coach-card{background:var(--card-bg);border:1.5px solid var(--card-border);text-align:left;border-radius:10px;width:100%;max-width:440px;padding:16px 20px}.warning-text{color:var(--warning);margin:0;font-size:14px;font-weight:600}.success-text{color:var(--success);margin:0;font-size:16px;font-weight:700}
