:root{font-family:system-ui,-apple-system,Segoe UI,sans-serif;line-height:1.5;font-weight:400;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color-scheme:dark;--bg-app: #0a1018;--bg-app-muted: #111927;--bg-surface: #162132;--bg-surface-muted: #1b2940;--bg-surface-strong: #0f1724;--bg-elevated: #1f2b42;--bg-input: #101a28;--bg-overlay: rgba(2, 6, 15, .72);--bg-chip-neutral: #2a3444;--bg-chip-success: #123020;--bg-chip-warning: #392908;--bg-chip-danger: #3a1618;--text-primary: #eef4ff;--text-secondary: #bfd0ea;--text-muted: #93a6c4;--text-inverse: #08111d;--border-subtle: #2a3952;--border-strong: #405471;--accent: #ff645f;--accent-hover: #ff7a74;--accent-soft: rgba(255, 100, 95, .16);--accent-soft-hover: rgba(255, 100, 95, .24);--success: #58d68d;--success-soft: rgba(88, 214, 141, .18);--success-border: rgba(88, 214, 141, .4);--warning: #f7c566;--warning-soft: rgba(247, 197, 102, .2);--warning-border: rgba(247, 197, 102, .38);--danger: #ff8c86;--danger-soft: rgba(255, 140, 134, .16);--danger-border: rgba(255, 140, 134, .36);--info: #7bb6ff;--info-soft: rgba(123, 182, 255, .16);--info-border: rgba(123, 182, 255, .34);--focus-ring-color: #7bb6ff;--focus-ring: 0 0 0 3px rgba(123, 182, 255, .34);--button-primary-bg: var(--accent);--button-primary-hover: var(--accent-hover);--button-primary-text: #fff7f6;--button-secondary-bg: var(--bg-surface-muted);--button-secondary-hover: #24344d;--button-secondary-text: var(--text-primary);--button-ghost-bg: transparent;--button-ghost-hover: rgba(255, 255, 255, .08);--button-ghost-text: var(--text-secondary);--button-destructive-bg: #d04f52;--button-destructive-hover: #e06063;--button-destructive-text: #fff6f6;--input-border: var(--border-subtle);--input-placeholder: var(--text-muted);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .22);--shadow-md: 0 8px 24px rgba(0, 0, 0, .28);--shadow-lg: 0 18px 48px rgba(0, 0, 0, .34);--home-hero-bg: linear-gradient(180deg, #09111d 0%, #10192a 100%);--surface-highlight: linear-gradient(180deg, rgba(255, 100, 95, .12) 0%, rgba(17, 25, 39, 0) 100%);--nav-bg: rgba(8, 13, 23, .94);--nav-text: #f5f9ff;--nav-link-hover: #ff968f;color:var(--text-primary);background-color:var(--bg-app)}:root[data-theme=light]{color-scheme:light;--bg-app: #f6f8fc;--bg-app-muted: #edf2f8;--bg-surface: #ffffff;--bg-surface-muted: #f7f9fc;--bg-surface-strong: #ffffff;--bg-elevated: #ffffff;--bg-input: #ffffff;--bg-overlay: rgba(5, 10, 20, .42);--bg-chip-neutral: #eef2f7;--bg-chip-success: #eaf8ee;--bg-chip-warning: #fff7e6;--bg-chip-danger: #fff0f0;--text-primary: #162131;--text-secondary: #435469;--text-muted: #6f8097;--text-inverse: #ffffff;--border-subtle: #d6dee9;--border-strong: #b8c6d8;--accent: #e53935;--accent-hover: #c92b27;--accent-soft: rgba(229, 57, 53, .1);--accent-soft-hover: rgba(229, 57, 53, .16);--success: #23814a;--success-soft: rgba(35, 129, 74, .12);--success-border: rgba(35, 129, 74, .24);--warning: #9b6a07;--warning-soft: rgba(155, 106, 7, .12);--warning-border: rgba(155, 106, 7, .22);--danger: #c73834;--danger-soft: rgba(199, 56, 52, .1);--danger-border: rgba(199, 56, 52, .22);--info: #1e66d0;--info-soft: rgba(30, 102, 208, .1);--info-border: rgba(30, 102, 208, .22);--focus-ring-color: #1d4ed8;--focus-ring: 0 0 0 3px rgba(29, 78, 216, .22);--button-primary-bg: var(--accent);--button-primary-hover: var(--accent-hover);--button-primary-text: #ffffff;--button-secondary-bg: #ffffff;--button-secondary-hover: #f1f5fb;--button-secondary-text: var(--text-primary);--button-ghost-bg: transparent;--button-ghost-hover: rgba(22, 33, 49, .06);--button-ghost-text: var(--text-secondary);--button-destructive-bg: #d54844;--button-destructive-hover: #bf342f;--button-destructive-text: #ffffff;--input-border: #cfd7e3;--input-placeholder: #8896a9;--shadow-sm: 0 1px 3px rgba(20, 33, 54, .08);--shadow-md: 0 10px 24px rgba(20, 33, 54, .1);--shadow-lg: 0 18px 48px rgba(20, 33, 54, .14);--home-hero-bg: linear-gradient(180deg, #ffffff 0%, #f7f9fc 100%);--surface-highlight: linear-gradient(180deg, rgba(229, 57, 53, .08) 0%, rgba(255, 255, 255, 0) 100%);--nav-bg: #000000;--nav-text: #ffffff;--nav-link-hover: #ff8f8a}*{box-sizing:border-box}html,body{background:var(--bg-app);color:var(--text-primary)}body{margin:0;min-width:320px;min-height:100vh}a{font-weight:600;color:var(--accent);text-decoration:none}a:hover{color:var(--accent-hover)}button,input,textarea,select{font-family:inherit}input,textarea,select{background:var(--bg-input);color:var(--text-primary);border:1px solid var(--input-border)}input::placeholder,textarea::placeholder{color:var(--input-placeholder)}input:focus-visible,textarea:focus-visible,select:focus-visible,button:focus-visible{outline:2px solid var(--focus-ring-color);outline-offset:2px}html,body,#root,.homepage-root{width:100vw;min-height:100vh;margin:0;padding:0;background:#fff;box-sizing:border-box;overflow-x:hidden}:root{--focus-ring-color: #1d4ed8;--focus-ring: 0 0 0 3px rgba(29, 78, 216, .32)}.nav-bar{display:flex;align-items:center;justify-content:space-between;max-width:1100px;margin:0 auto;padding:0 2rem}.logo{font-size:1.5rem;font-weight:700;color:#fff;letter-spacing:2px}.nav-links{list-style:none;display:flex;align-items:center;gap:2rem;margin:0;padding:0}.nav-links li{display:flex;align-items:center}.nav-links li a{display:inline-flex;align-items:center;color:#fff;text-decoration:none;font-weight:500;line-height:1;transition:color .2s}.nav-links li a:hover{color:#e53935}.nav-links li a:focus-visible,.logo:focus-visible{outline:2px solid var(--focus-ring-color);outline-offset:3px;border-radius:.4rem}.main-content{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 1rem;text-align:center}.main-content h1{font-size:2.5rem;font-weight:700;color:#1a2233;margin-bottom:2rem}.homepage-header{background:#000;padding:1rem 0;box-shadow:0 2px 8px #00000008}.mode-switch{display:inline-flex;gap:1.2rem;margin:3rem 0 2rem;background:#f5f5f5;border-radius:2rem;box-shadow:0 2px 12px #0000000a;padding:.3rem;align-items:center;min-height:0;max-width:420px;min-width:0}.mode-btn{background:none;border:none;outline:none;font-size:1.05rem;font-weight:600;color:#000;padding:.7rem 2.2rem;border-radius:1.5rem;cursor:pointer;transition:background .2s,color .2s,box-shadow .2s;position:relative;display:flex;align-items:center;gap:.4em;min-height:0;margin:0;box-sizing:border-box}.mode-btn.active{background:#e53935;color:#fff;box-shadow:0 2px 8px #e539351f;border-radius:1.5rem}.mode-btn:not(.active):hover{background:#fce4e4;color:#e53935}.mode-btn:focus-visible{outline:2px solid var(--focus-ring-color);outline-offset:2px}.mode-content{width:100%;margin:0 auto;display:flex;flex-direction:column;align-items:center;justify-content:flex-start}.mode-panel{width:100%;background:#fff;border-radius:1.5rem;box-shadow:0 4px 24px #00000012;padding:2.5rem 2rem 2rem;margin-bottom:2rem;text-align:center;transition:box-shadow .2s}.transmit-panel h1,.receive-panel h1{font-size:2rem;font-weight:700;margin-bottom:1rem;color:#e53935}.mode-desc{color:#333;font-size:1.1rem;margin-bottom:0}.transmit-ui,.receive-ui{width:100%;background:#fff;border-radius:1.5rem;box-shadow:0 4px 24px #00000012;padding:2.5rem 2rem 1rem;margin-bottom:0;text-align:center;transition:box-shadow .2s;display:flex;flex-direction:column;align-items:center}.transmit-letter{font-size:3.5rem;font-weight:800;color:#e53935;margin-bottom:1.5rem;letter-spacing:2px}.transmit-morse-display{min-height:2.5rem;font-size:2rem;letter-spacing:.5rem;color:#222;margin-bottom:1.5rem;background:#f5f5f5;border-radius:.75rem;padding:.5rem 1.5rem;display:inline-block}.placeholder{color:#bbb;font-size:1.1rem}.transmit-controls{display:flex;gap:1rem;margin-bottom:1.5rem;justify-content:center}.morse-key-btn{background:#e53935;color:#fff;font-size:1.25rem;font-weight:700;border:none;border-radius:2rem;padding:1rem 2.5rem;cursor:pointer;transition:background .2s,box-shadow .2s;box-shadow:0 2px 8px #e539351a}.morse-key-btn.pressing{background:#b71c1c}.backspace-btn,.submit-btn,.next-btn,.play-btn{background:#fff;color:#e53935;border:2px solid #e53935;border-radius:2rem;font-size:1.1rem;font-weight:600;padding:.75rem 1.5rem;cursor:pointer;transition:background .2s,color .2s}.backspace-btn:disabled,.submit-btn:disabled{opacity:.5;cursor:not-allowed}.submit-btn,.next-btn{margin-left:.5rem}.backspace-btn:hover,.submit-btn:hover,.next-btn:hover,.play-btn:hover{background:#e53935;color:#fff}.transmit-feedback,.receive-feedback{margin-top:1.5rem;font-size:1.2rem;font-weight:600;padding:1rem 1.5rem;border-radius:1rem;display:flex;flex-direction:column;align-items:center}.transmit-feedback.correct,.receive-feedback.correct{background:#e8f5e9;color:#388e3c;border:1.5px solid #388e3c}.transmit-feedback.incorrect,.receive-feedback.incorrect{background:#ffebee;color:#e53935;border:1.5px solid #e53935}.play-btn{margin-bottom:1.5rem}.receive-form{display:flex;gap:1rem;justify-content:center;margin-bottom:1.5rem}.receive-input{font-size:2rem;font-weight:700;width:4rem;text-align:center;border:2px solid #e53935;border-radius:.75rem;padding:.5rem;outline:none;color:#e53935;background:#fff;transition:border .2s}.receive-input:focus{border:2px solid #b71c1c}.keyboard-grid{display:grid;grid-template-columns:repeat(10,2.5rem);gap:.5rem;justify-content:center;margin:1.5rem 0}.keyboard-key{background:#fff;color:#e53935;border:2px solid #e53935;border-radius:.75rem;font-size:1.15rem;font-weight:700;padding:.75rem 0;cursor:pointer;transition:background .2s,color .2s;outline:none}.keyboard-key:hover:not(:disabled),.keyboard-key:focus:not(:disabled){background:#e53935;color:#fff}.keyboard-key:disabled{opacity:.5;cursor:not-allowed}.receive-status{display:flex;justify-content:center;align-items:center;margin-bottom:1.25rem;min-height:2.5rem}.receive-question{font-size:2.5rem;color:#e53935;font-weight:800}.receive-feedback-text{font-size:1.5rem;font-weight:700}.receive-feedback-text.correct{color:#388e3c}.receive-feedback-text.incorrect{color:#e53935}.main-content-home{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 1rem;text-align:center}.main-content-home h1{font-size:2.5rem;font-weight:700;color:#1a2233;margin-bottom:2rem}.home-course-section{width:100%;padding:0 0 3rem;background:linear-gradient(180deg,#fff,#f7f9fc)}.home-course-teaser{max-width:860px;margin:0 auto 3rem;text-align:center}.course-page.embedded-home{margin-top:0}.get-started-btn{background:#e53935;color:#fff;font-size:1.25rem;padding:.75rem 2.5rem;border:none;border-radius:.5rem;cursor:pointer;font-weight:600;transition:background .2s,color .2s;box-shadow:0 2px 8px #e5393514}.get-started-btn:hover{background:#b71c1c;color:#fff}.core-app-layout{display:flex;flex-direction:row;min-height:calc(100vh - 56px);background:#f9fafb}.main-interface{flex:1;width:0;min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;background:#fff;padding:0}.transmit-tip{display:inline-block;background:#fff;color:#333;padding:.18em .5em;border-radius:5px;font-size:.48em;font-weight:400;box-shadow:0 1px 2px #0000000a;margin-top:.2em;margin-bottom:.2em;letter-spacing:.05px}.kbd{display:inline-block;background:#f5f5f5;color:#333;border:1px solid #bbb;border-radius:3px;padding:.05em .3em;font-size:1em;font-family:inherit;font-weight:500;margin:0 .12em;box-shadow:0 1px 1px #0000000a;vertical-align:middle}.morse-key-btn,.backspace-btn,.submit-btn,.next-btn,.play-btn{padding:1.1rem 2.7rem}.settings-icon{margin-left:1.2rem;cursor:pointer;display:flex;align-items:center;color:#e53935;transition:color .2s}.settings-icon:hover,.settings-icon:focus{color:#b71c1c}.settings-icon:focus-visible{outline:2px solid var(--focus-ring-color);outline-offset:3px;border-radius:.5rem}.profile-icon-btn{display:inline-block;width:32px;height:32px;border-radius:50%;background:#eee;color:#888;text-align:center;line-height:32px;font-size:20px;cursor:pointer;border:0;padding:0}.profile-icon-btn:focus-visible{outline:2px solid var(--focus-ring-color);outline-offset:2px}.streak-icon-btn{display:inline-flex;align-items:center;gap:.45rem;min-height:36px;padding:.35rem .7rem;border:1px solid rgba(255,219,156,.24);border-radius:999px;background:#ffbf4914;color:#ffe09b;cursor:pointer;transition:background .2s,border-color .2s,transform .2s}.streak-icon-btn:hover,.streak-icon-btn:focus-visible{background:#ffbf4929}.streak-icon-btn:focus-visible{outline:2px solid var(--focus-ring-color);outline-offset:2px}.streak-icon-btn.has-streak{border-color:#ffc4617a}.streak-icon-btn.active{background:linear-gradient(135deg,#ffce6c3d,#ffaa2a33);border-color:#ffdc8dc2}.streak-icon-glyph{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;color:#ffe29c;flex:0 0 18px;transform:translateY(.5px)}.streak-icon-btn.active .streak-icon-glyph{color:#fff0bf}.streak-icon-glyph svg{display:block}.streak-icon-count{display:inline-flex;align-items:center;font-size:.95rem;line-height:1;font-weight:800;letter-spacing:.02em;color:#ffb21f;transform:translateY(-.5px)}.streak-popup{position:absolute;right:0;top:calc(100% + .7rem);width:min(320px,calc(100vw - 2rem));display:grid;gap:1rem;padding:1.1rem;border:1px solid #f3ddd6;border-radius:1rem;background:#fff;box-shadow:0 16px 32px #00000029;z-index:2100}.streak-popup:focus-visible{outline:2px solid var(--focus-ring-color);outline-offset:2px}.streak-popup-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.streak-popup-kicker{font-size:.78rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#b45309}.streak-popup-title{margin-top:.2rem;font-size:1.4rem;font-weight:800;color:#1a2233}.streak-popup-badge{min-width:86px;padding:.55rem .75rem;border-radius:999px;background:#fff6f2;border:1px solid #f0cfc4;color:#9a3412;font-weight:700;text-align:center}.streak-popup-badge.active{background:#e53935;border-color:#e53935;color:#fff}.streak-popup-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem}.streak-popup-metric{display:grid;gap:.2rem;padding:.85rem .8rem;border-radius:.85rem;background:#fff8f5;border:1px solid #f2e3dd}.streak-popup-value{font-size:1.45rem;font-weight:800;color:#1a2233}.streak-popup-label{font-size:.82rem;font-weight:600;color:#666}.streak-popup-status{font-weight:700;color:#7c2d12}.streak-popup-last{color:#666;font-size:.95rem}.profile-menu button:focus-visible{box-shadow:var(--focus-ring)}.settings-modal-overlay{position:fixed;inset:0;background:#0000002e;z-index:1000;display:flex;align-items:center;justify-content:center}.settings-modal{background:#fff;border-radius:1.2rem;box-shadow:0 4px 32px #00000021;padding:2.2rem 2.5rem 1.5rem;min-width:320px;max-width:95vw;position:relative}.settings-modal h2{margin-top:0;margin-bottom:1.2rem;font-size:1.5rem;color:#e53935}.settings-row{margin-bottom:1.5rem;display:flex;flex-direction:column;gap:.7rem}.close-settings-btn{background:#e53935;color:#fff;border:none;border-radius:2rem;font-size:1.1rem;font-weight:600;padding:.7rem 2.2rem;cursor:pointer;transition:background .2s;margin-top:.5rem}.close-settings-btn:hover{background:#b71c1c}.nav-actions{display:flex;align-items:center;gap:1.2rem}.settings-page{max-width:420px;margin:3rem auto 0;background:#fff;border-radius:1.2rem;box-shadow:0 4px 32px #00000021;padding:2.2rem 2.5rem 1.5rem;display:flex;flex-direction:column;align-items:center}.settings-page h2{margin-top:0;margin-bottom:1.2rem;font-size:1.5rem;color:#e53935}.settings-row{margin-bottom:1.5rem;display:flex;flex-direction:column;gap:.7rem;width:100%}.settings-row label{font-size:1.1rem;font-weight:500;color:#333}.settings-row input[type=range]{width:100%;accent-color:#e53935;margin-top:.3rem}.back-btn{background:#e53935;color:#fff;border:none;border-radius:2rem;font-size:1.1rem;font-weight:600;padding:.7rem 2.2rem;cursor:pointer;transition:background .2s;margin-top:.5rem}.back-btn:hover{background:#b71c1c}.back-btn:focus-visible,.settings-danger-btn:focus-visible,.modal-close-btn:focus-visible,.course-back-btn:focus-visible{outline:2px solid var(--focus-ring-color);outline-offset:2px}.switch{position:relative;display:inline-block;width:64px;height:24px}.switch input{opacity:0;width:0;height:0}.slider{position:absolute;cursor:pointer;inset:0;background:#ccc;transition:background .3s;border-radius:24px}.slider:before{position:absolute;content:"";height:24px;width:24px;left:0;top:0;background:#fff;transition:transform .3s;border-radius:50%;box-shadow:0 1px 4px #0000001a}.switch input:checked+.slider{background:#43a047}.switch input:checked+.slider:before{transform:translate(24px)}.switch input:focus+.slider{box-shadow:0 0 1px #43a047}.switch input:active+.slider:before{width:30px}.settings-row label,.settings-row span{color:#111}.settings-danger-card{border:1px solid #f1c0c0;background:#fff5f5;border-radius:.8rem;padding:.9rem;display:grid;gap:.5rem}.settings-danger-title{font-weight:700;color:#b71c1c}.settings-danger-text{color:#5f2b2b;font-size:.95rem}.settings-danger-btn{justify-self:start;border:none;background:#e53935;color:#fff;border-radius:.6rem;padding:.5rem 1rem;font-weight:600;cursor:pointer}.settings-danger-btn:disabled{background:#d9a3a3;cursor:not-allowed}.modal-backdrop{position:fixed;inset:0;background:#00000059;z-index:1000;display:flex;align-items:center;justify-content:center}.modal{background:#fff;color:#222;border-radius:16px;padding:2.5rem 2rem 2rem;box-shadow:0 8px 32px #0000002e;max-width:400px;width:90vw;text-align:center;z-index:1001}.modal h2{margin-top:0;font-size:1.5rem;font-weight:700}.modal p{margin:1.2em 0;font-size:1.1rem}.modal-close-btn{margin-top:1.5em;padding:.7em 2em;background:#2563eb;color:#fff;border:none;border-radius:8px;font-size:1rem;font-weight:500;cursor:pointer;transition:background .2s}.modal-close-btn:hover{background:#1741a6}.course-page{max-width:900px;margin:2.5rem auto 3rem;padding:0 1.5rem}.course-page h1{font-size:2.2rem;color:#1a2233;margin-bottom:1.5rem}.challenge-page{max-width:1220px}.challenge-page.challenge-page-cw-games,.course-page.course-page-cw-games{max-width:1840px;padding-left:.7rem;padding-right:.7rem}.course-card{background:#fff;border-radius:1.2rem;box-shadow:0 4px 24px #00000014;padding:2rem;margin-bottom:2rem}.course-card.course-card-cw-games{padding:.65rem;background:transparent;border:0;box-shadow:none;margin-bottom:1rem}.course-meta{display:flex;flex-wrap:wrap;gap:1.5rem;margin-bottom:1.5rem;color:#333}.course-controls{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1rem;margin-bottom:1.5rem;align-items:start}.course-control{background:#f7f7f7;border:1px solid #e0e0e0;border-radius:.9rem;padding:.85rem .95rem;display:grid;gap:.6rem;min-width:0;align-content:start}.course-control label{display:block;font-weight:600;color:#1a2233;min-width:0;line-height:1.35}.course-control-current{min-width:0;font-size:.96rem;font-weight:700;color:#1a2233;line-height:1.35;overflow-wrap:anywhere}.course-control select{width:100%;min-width:0;max-width:100%}.course-touch-keys{display:grid;gap:.6rem;margin-bottom:1.2rem}.course-touch-label{font-weight:600;color:#1a2233}.course-touch-paddles{display:grid;grid-template-columns:repeat(2,minmax(120px,1fr));gap:.75rem}.course-touch-key{border:2px solid #1a2233;background:#fff;color:#1a2233;border-radius:.8rem;padding:1rem 1.2rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;cursor:pointer;-webkit-user-select:none;user-select:none;touch-action:none}.course-touch-key.straight{width:100%}.course-touch-key:active{background:#e53935;color:#fff;border-color:#e53935}.course-controls input[type=range]{width:100%;accent-color:#e53935}.practice-sending-controls{grid-template-columns:repeat(12,minmax(0,1fr))}.practice-sending-control{grid-column:span 4}.course-actions{display:flex;flex-direction:column;gap:.6rem;align-items:flex-start;margin-bottom:1.5rem}.course-action-buttons{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center}.course-action-indicators{display:flex;align-items:center;gap:1rem}.course-actions button{background:#e53935;color:#fff;border:none;border-radius:.6rem;padding:.7rem 1.4rem;font-weight:600;cursor:pointer}.course-actions button:disabled{background:#ccc;cursor:not-allowed}.course-actions button:focus-visible{outline:2px solid var(--focus-ring-color);outline-offset:2px}.course-timer{font-weight:600;color:#333;display:flex;align-items:center}.course-timer-pie{width:84px;height:84px;border-radius:50%;background:conic-gradient(#e53935 calc(var(--progress) * 1turn),#f0f0f0 0);display:inline-flex;align-items:center;justify-content:center;position:relative;box-shadow:inset 0 0 0 6px #fff,0 2px 8px #00000014}.course-timer-pie-label{font-size:.95rem;font-weight:700;color:#222}.course-step-pie{width:64px;height:64px;box-shadow:inset 0 0 0 4px #fff,0 2px 8px #00000014}.course-prompt-line{display:flex;align-items:baseline;gap:.5rem}.course-prompt-inline{display:flex;align-items:center;gap:.5rem}.course-prompt-label{font-weight:700;color:#1a2233}.course-prompt-text{font-size:3.6rem;font-weight:800;letter-spacing:.04em;color:#1a2233;line-height:1}.course-input{display:grid;gap:.5rem}.course-input textarea{width:100%;border:1px solid #ddd;border-radius:.6rem;padding:.8rem;font-size:1rem;font-family:inherit;resize:vertical}.course-results{background:#fff;border-radius:1.2rem;box-shadow:0 4px 24px #00000014;padding:1.5rem 2rem}.course-results h2{margin-top:0;color:#1a2233}.course-results-empty{color:#777}.course-lesson-header{display:flex;justify-content:flex-start;margin-bottom:.75rem}.course-back-btn{background:transparent;border:none;color:#e53935;font-weight:600;cursor:pointer;padding:0}.course-lesson-list{display:grid;gap:.8rem}.course-step-layout{display:grid;gap:1rem}.course-step-columns{display:grid;grid-template-columns:minmax(220px,1fr) 2fr;gap:1rem;align-items:start}.course-step-panel{background:var(--bg-surface-muted);border:1px solid var(--border-subtle);border-radius:1rem;padding:1rem .85rem;height:fit-content}.course-step-panel-title{margin:0 0 .75rem;font-size:1rem;color:var(--text-primary)}.course-step-list{display:grid;gap:.2rem}.course-step-item{display:grid;grid-template-columns:34px 1fr;gap:.9rem;align-items:stretch;width:100%;padding:.45rem .55rem;border:0;background:transparent;box-shadow:none;text-align:left;cursor:pointer;color:inherit;font:inherit}.course-step-item:focus{outline:none}.course-step-item:focus-visible{outline:2px solid var(--focus-ring-color);outline-offset:2px;border-radius:.75rem}.course-step-item.current{background:var(--accent-soft);border-radius:.85rem}.course-step-marker{display:grid;grid-template-rows:minmax(10px,1fr) 18px minmax(10px,1fr);justify-items:center;align-items:stretch;min-height:100%}.course-step-dot{width:18px;height:18px;border-radius:50%;border:3px solid var(--border-strong);background:var(--bg-surface);position:relative;z-index:1;align-self:center}.course-step-marker.complete .course-step-dot{border-color:var(--accent);background:var(--accent)}.course-step-marker.current .course-step-dot{border-color:var(--border-strong);background:var(--bg-app-muted);box-shadow:0 0 0 4px var(--accent-soft)}.course-step-segment{width:3px;background:var(--border-subtle);align-self:stretch;justify-self:center;border-radius:999px}.course-step-segment.complete{background:var(--accent)}.course-step-segment.upcoming{background:var(--border-subtle)}.course-step-segment.hidden{visibility:hidden}.course-step-content{display:grid;gap:.18rem;padding-block:.1rem}.course-step-title{font-weight:700;color:var(--text-primary);line-height:1.25}.course-step-status{font-size:.8rem;color:var(--text-muted)}.course-step-item.complete .course-step-status,.course-step-item.current .course-step-status{color:var(--text-secondary)}.course-step-main{display:grid;gap:.75rem;align-self:start}.course-module-grid{display:grid;gap:1rem}.course-module-card{display:grid;gap:.75rem;text-align:left;background:#fff;border:1px solid #e0e0e0;border-radius:1rem;padding:1.25rem;cursor:pointer;box-shadow:0 4px 16px #0000000f}.course-module-title{font-size:1.1rem;font-weight:700;color:#1a2233}.course-module-progress{display:flex;align-items:center;gap:1rem}.course-module-pie{width:64px;height:64px;box-shadow:inset 0 0 0 5px #fff,0 2px 8px #0000000f}.course-module-progress-text{color:#555;font-weight:600}.course-lesson-item{display:grid;gap:.25rem;text-align:left;background:#f7f7f7;border:1px solid #e0e0e0;border-radius:.8rem;padding:1rem;cursor:pointer}.course-lesson-item:disabled,.course-lesson-item.locked{cursor:not-allowed;opacity:.55}.course-lesson-row{display:flex;align-items:center;justify-content:space-between;gap:1rem}.course-lesson-main{display:grid;gap:.25rem}.course-lesson-title-row{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem}.course-lesson-progress{flex:0 0 auto;display:grid;justify-items:end;gap:.35rem}.course-lesson-pie{width:56px;height:56px;box-shadow:inset 0 0 0 4px #fff,0 2px 8px #00000014}.course-lesson-pie .course-timer-pie-label{font-size:.8rem;font-weight:700}.course-lesson-title{font-size:1.05rem;font-weight:700;color:#1a2233}.course-lesson-desc{color:#555}.course-lesson-status{font-size:.9rem;font-weight:600;margin-top:.25rem}.course-lesson-status.complete{color:#2e7d32}.course-lesson-status.incomplete{color:var(--text-secondary)}.course-lesson-mastery{font-size:.82rem;font-weight:700;color:var(--text-secondary)}.course-review-chip{display:inline-flex;align-items:center;justify-content:center;padding:.2rem .55rem;border-radius:999px;font-size:.75rem;font-weight:700;border:1px solid var(--border-subtle);background:var(--bg-surface-muted);color:var(--text-secondary)}.course-review-chip.healthy{background:var(--success-soft);border-color:var(--success-border);color:var(--success)}.course-review-chip.needs_review{background:var(--warning-soft);border-color:var(--warning-border);color:var(--warning)}.course-review-chip.overdue{background:var(--danger-soft);border-color:var(--danger-border);color:var(--danger)}.course-weak-symbols{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.15rem}.course-weak-symbol-chip{display:inline-flex;align-items:center;gap:.25rem;padding:.2rem .5rem;border-radius:999px;font-size:.75rem;font-weight:700;background:var(--bg-chip-neutral);color:var(--text-secondary)}.course-weak-symbol-chip.good{background:var(--success-soft);color:var(--success);border:1px solid var(--success-border)}.course-weak-symbol-chip.poor{background:var(--danger-soft);color:var(--danger);border:1px solid var(--danger-border)}.course-weak-symbol-chip.unseen{background:var(--bg-chip-neutral);color:var(--text-muted);border:1px solid var(--border-subtle)}.course-toggle-row{display:grid;gap:.5rem;margin-bottom:1rem}.course-toggle{display:flex;align-items:center;gap:.5rem;font-weight:600;color:var(--text-primary)}.course-toggle input[type=checkbox]{width:18px;height:18px;accent-color:var(--accent);border-radius:4px}.course-toggle:hover{color:var(--text-primary)}.course-toggle input[type=checkbox]:focus-visible{outline:2px solid var(--focus-ring-color);outline-offset:2px}.course-warning{color:var(--warning);font-weight:600;margin-bottom:1rem}.course-results-card{margin-top:.5rem;padding:1rem 1.2rem;border-radius:.8rem;border:1px solid var(--border-subtle);background:var(--bg-surface-muted);display:grid;gap:.4rem}.course-results-card.passed{border-color:var(--success-border);background:var(--success-soft)}.course-results-card.failed{border-color:var(--danger-border);background:var(--danger-soft)}.main-app-content{position:relative}.help-icon{position:absolute;top:18px;right:18px;z-index:10;background:#fff;border:none;border-radius:50%;box-shadow:0 2px 8px #0000001a;width:44px;height:44px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:box-shadow .2s,background .2s}.help-icon:hover,.help-icon:focus{background:#f0f4ff;box-shadow:0 4px 16px #2563eb1a}.help-icon:focus-visible{outline:2px solid var(--focus-ring-color);outline-offset:2px}.course-status-banner{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:1rem;padding:.75rem .9rem;border-radius:.65rem;border:1px solid var(--border-subtle);font-size:.95rem;line-height:1.5}.course-status-banner.info{background:var(--info-soft);border-color:var(--info-border);color:var(--info)}.course-status-banner.error{background:var(--danger-soft);border-color:var(--danger-border);color:var(--danger)}.course-philosophy-banner{margin-bottom:1rem}.course-status-retry{border:none;background:var(--button-primary-bg);color:var(--button-primary-text);border-radius:.5rem;padding:.35rem .75rem;font-weight:600;cursor:pointer}.adaptive-recommendation,.coach-summary-banner{align-items:flex-start}.coach-banner-next{margin-top:.35rem;color:#0f4c81;font-weight:600}.course-lesson-why{margin-top:.35rem;color:var(--text-secondary);font-size:.94rem;line-height:1.45}.course-runtime-card{display:flex;flex-direction:column;gap:1rem}.course-runtime-header{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start;flex-wrap:wrap}.course-runtime-subtitle{margin:.35rem 0 0;color:#4f5b6a;max-width:60ch;line-height:1.5}.course-runtime-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.6rem;min-width:280px}.course-runtime-metrics>div{padding:.75rem .9rem;border-radius:12px;background:#f4f7fb;border:1px solid #d9e3f2;color:#243244}.course-choice-button{width:100%;text-align:left;padding:.85rem 1rem;border-radius:12px;border:1px solid #ccd7e7;background:#fff;color:#1f2937}.course-choice-button.selected{border-color:#1d5fbf;background:#eef5ff;box-shadow:0 0 0 2px #1d5fbf1a}.course-log-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.9rem}.coach-card{display:grid;gap:1.25rem}.coach-header{justify-content:space-between;align-items:center}.coach-summary-card{background:linear-gradient(135deg,#f7fbff,#eef6ff);border:1px solid #cfe3fb;border-radius:1rem;padding:1.1rem 1.2rem;display:grid;gap:.65rem}.coach-kicker{font-size:.82rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#0f4c81}.coach-summary-card h2{margin:0;color:#1a2233}.coach-summary-line{color:#334155;line-height:1.45}.coach-summary-meta{display:flex;flex-wrap:wrap;gap:.85rem;color:#0f4c81;font-weight:600}.coach-summary-actions{display:flex;flex-wrap:wrap;gap:.75rem}.coach-primary-btn,.coach-secondary-btn,.coach-block-btn{border:none;border-radius:.7rem;padding:.7rem 1.05rem;font-weight:700;cursor:pointer}.coach-primary-btn{background:#e53935;color:#fff}.coach-secondary-btn,.coach-block-btn{background:#edf2f7;color:#1a2233}.coach-secondary-btn.danger{background:#fdecec;color:#9f1c1c}.coach-agenda{display:grid;gap:.85rem}.coach-agenda-header{display:flex;justify-content:space-between;align-items:center;color:#1a2233}.coach-agenda-header h3{margin:0}.coach-block-card{border:1px solid #e2e8f0;border-radius:1rem;padding:1rem 1.1rem;display:flex;justify-content:space-between;gap:1rem;align-items:center;background:#fff}.coach-block-card.ready{border-color:#f4c53f;background:#fffbeb}.coach-block-card.in_progress{border-color:#93c5fd;background:#eff6ff}.coach-block-card.complete{border-color:#bbf7d0;background:#f0fdf4}.coach-block-main{display:grid;gap:.35rem}.coach-block-title-row{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center}.coach-block-title{font-weight:700;color:#1a2233}.coach-block-status{border-radius:999px;padding:.18rem .55rem;font-size:.8rem;font-weight:700}.coach-block-status.ready{background:#fff1b8;color:#7a5413}.coach-block-status.in_progress{background:#dbeafe;color:#1d4ed8}.coach-block-status.complete{background:#dcfce7;color:#166534}.coach-block-status.locked{background:#e5e7eb;color:#475569}.coach-block-reason{color:#475569;line-height:1.45}.coach-block-meta{display:flex;flex-wrap:wrap;gap:.8rem;color:#334155;font-size:.92rem}.coach-launch-banner{margin-bottom:1rem}.coach-v2-page{max-width:1120px}.coach-v2-shell{display:grid;gap:1rem;background:radial-gradient(circle at top left,rgba(229,57,53,.08),transparent 26%),linear-gradient(180deg,#fff7f4,#fff 34%);border:1px solid #f0d5cb;border-radius:1.4rem;padding:1.4rem;box-shadow:0 24px 60px #91483a24}.coach-v2-header{display:grid;grid-template-columns:auto 1fr auto;gap:1rem;align-items:start}.coach-v2-header-main h2{margin:.15rem 0 .3rem;color:#22181a;font-size:2rem}.coach-v2-kicker{font-size:.8rem;text-transform:uppercase;letter-spacing:.08em;color:#a94433;font-weight:800}.coach-v2-subline{color:#694b45;font-weight:600}.coach-v2-progress-strip{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center;color:#6b4b45;font-size:.95rem}.coach-v2-progress-pill{border-radius:999px;padding:.3rem .7rem;background:#f3e7e3;color:#7a5248;font-weight:700}.coach-v2-progress-pill.current{background:#1f2937;color:#fff}.coach-v2-progress-pill.complete,.coach-v2-progress-pill.skipped{background:#dff6e4;color:#1b7f3a}.coach-v2-progress-pill.running{background:#ffe7c2;color:#975a16}.coach-v2-brief,.coach-v2-transition,.coach-v2-debrief{display:grid;gap:1rem}.coach-v2-card{background:#fffffff0;border:1px solid #ead9d3;border-radius:1.15rem;padding:1.15rem 1.2rem;display:grid;gap:.75rem}.coach-v2-card.primary{background:linear-gradient(145deg,#fffffffa,#fff4f0f2)}.coach-v2-card.feedback.positive{border-color:#b8e7c5;background:#f4fff7}.coach-v2-card.feedback.corrective,.coach-v2-card.warning{border-color:#f5c29f;background:#fff6ed}.coach-v2-card-title{font-size:.82rem;text-transform:uppercase;letter-spacing:.08em;color:#a94433;font-weight:800}.coach-v2-card-body{color:#2e2322;line-height:1.5;font-size:1rem}.coach-v2-meta-line{color:#6b4b45;font-weight:600}.coach-v2-focus-row{display:flex;flex-wrap:wrap;gap:.5rem}.coach-v2-focus-chip{border-radius:999px;padding:.35rem .65rem;background:#fce8e2;color:#8d3727;font-weight:700}.coach-v2-actions{display:flex;flex-wrap:wrap;gap:.75rem}.coach-v2-stage-layout{display:grid;grid-template-columns:minmax(260px,320px) minmax(0,1fr);gap:1rem;align-items:start}.coach-v2-feedback-rail{display:grid;gap:.9rem}.coach-v2-block-stage{min-width:0}.coach-v2-debrief-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.9rem}.coach-v2-debrief-item{padding:.9rem;border-radius:.9rem;background:#fff;border:1px solid #f0dfd8;color:#2e2322;line-height:1.45}.coach-v2-debrief-label{font-size:.8rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:#8d3727;margin-bottom:.35rem}.coach-embedded-surface{background:#fff;border:1px solid #eddad2;border-radius:1.15rem;padding:1rem 1.05rem;box-shadow:inset 0 1px #ffffffb3}.coach-guided-columns{display:grid;grid-template-columns:minmax(0,1fr)}.operating-practice-controls{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.operating-stage-card{background:linear-gradient(135deg,#faf7f0f5,#ede8dcf5)}.operating-log-card{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.75rem}.operating-log-card .course-control{margin:0}.coach-embedded-surface .course-results{padding:1rem 1.1rem;margin-top:1rem}.coach-embedded-surface .course-card,.coach-embedded-surface .course-page h1{display:none}.head-copy-embedded-surface .course-card{margin:0}.course-status-retry:focus-visible{outline:2px solid var(--focus-ring-color);outline-offset:2px}.course-requirements-list{display:grid;gap:.35rem}.course-requirement-item{font-size:.92rem}.course-requirement-item.done{color:#1b7f3a}.course-requirement-item.pending{color:#555}.course-requirements-blocked{color:#b11e1e;font-weight:600}.course-signoff-actions{display:flex;flex-wrap:wrap;gap:.6rem}.help-icon svg{display:block}@media(max-width:900px){.main-content,.main-content-home{padding:2rem .5rem}.nav-bar{padding:0 1rem}.nav-links{gap:1rem}.streak-popup{width:min(300px,calc(100vw - 2rem))}.streak-popup-metrics{grid-template-columns:1fr}.mode-panel,.transmit-ui,.receive-ui{padding:1.5rem 1rem 1rem;margin-bottom:1.2rem}.transmit-letter,.receive-question{font-size:2.2rem}.keyboard-grid{grid-template-columns:repeat(7,2.2rem);gap:.35rem}.mode-switch{gap:1rem;margin:2rem 0 1.2rem;padding:.2rem}.mode-btn{font-size:.98rem;padding:.6rem 1.2rem}.morse-key-btn,.backspace-btn,.submit-btn,.next-btn,.play-btn{padding:.85rem 1.7rem}.mode-content{max-width:100vw;padding:0 .5rem}.receive-ui{max-width:100vw;padding:1.5rem 1rem 1rem;margin-bottom:1.2rem}.course-page{margin:2rem auto;padding:0 1rem}.course-step-columns{grid-template-columns:1fr}.course-step-panel{order:2}.course-step-main{order:1}.course-lesson-row{flex-direction:column;align-items:flex-start}.course-lesson-progress{align-self:flex-end}.course-module-progress{flex-direction:column;align-items:flex-start}.practice-sending-control{grid-column:span 6}.course-action-indicators{flex-wrap:wrap}.course-prompt-text{font-size:2.6rem}}@media(max-width:600px){.main-content,.main-content-home{padding:1rem .2rem}.nav-bar{flex-direction:column;gap:.75rem;padding:.75rem 1rem 1rem}.nav-links{flex-wrap:wrap;justify-content:center;gap:.75rem}.nav-actions{flex-wrap:wrap;justify-content:center}.streak-popup{left:50%;right:auto;transform:translate(-50%)}.streak-popup-header{flex-direction:column;align-items:flex-start}.mode-panel,.transmit-ui,.receive-ui{padding:1rem .2rem .7rem;margin-bottom:.7rem;border-radius:.7rem;box-shadow:0 2px 8px #0000000a}.transmit-letter,.receive-question{font-size:1.5rem;margin-bottom:1rem}.transmit-morse-display{font-size:1.1rem;padding:.3rem .7rem;margin-bottom:1rem}.transmit-controls{flex-direction:column;gap:.5rem;margin-bottom:1rem}.morse-key-btn,.backspace-btn,.submit-btn,.next-btn,.play-btn{font-size:1rem;padding:.7rem 1.2rem;min-width:0;padding:.7rem 1.3rem}.keyboard-grid{grid-template-columns:repeat(5,2rem);gap:.25rem;overflow-x:auto;justify-content:flex-start}.keyboard-key{font-size:.95rem;padding:.5rem 0;min-width:1.7rem}.receive-input{font-size:1.2rem;width:2.5rem;padding:.3rem}.transmit-feedback,.receive-feedback{font-size:1rem;padding:.7rem;margin-top:1rem;border-radius:.6rem}.mode-switch{gap:.5rem;margin:1.2rem 0 .7rem;padding:.12rem}.mode-btn{font-size:.92rem;padding:.5rem .7rem}.morse-key-btn,.backspace-btn,.submit-btn,.next-btn,.play-btn{padding:.7rem 1.3rem}.mode-content{max-width:100vw;padding:0 .2rem}.receive-ui{max-width:100vw;padding:1rem .2rem .7rem;margin-bottom:.7rem;border-radius:.7rem;box-shadow:0 2px 8px #0000000a}.course-card{padding:1.25rem}.course-actions{align-items:stretch}.practice-sending-control{grid-column:1 / -1}.course-action-buttons{flex-direction:column;align-items:stretch}.course-actions button{width:100%}.course-timer-pie{width:72px;height:72px}.course-step-pie{width:56px;height:56px}.course-prompt-text{font-size:2.2rem}.course-module-card,.course-lesson-item{padding:.9rem}.course-runtime-metrics,.course-log-grid{grid-template-columns:1fr;min-width:0}.coach-block-card{flex-direction:column;align-items:flex-start}.coach-summary-actions{flex-direction:column;align-items:stretch}.coach-v2-header,.coach-v2-stage-layout,.coach-v2-debrief-grid{grid-template-columns:1fr}.coach-v2-actions{flex-direction:column;align-items:stretch}}.sbui-modal-close,.sbui-modal__close,.supabase-auth-ui .sbui-btn-container,button[aria-label=Close]{color:#2563eb!important;background:transparent!important;font-size:1.7rem;font-weight:700;border:none;cursor:pointer;z-index:1002}.sbui-modal-close:hover,.sbui-modal__close:hover,.supabase-auth-ui .sbui-btn-container:hover,button[aria-label=Close]:hover{color:#1741a6!important;background:#f0f4ff!important}button[style*="position: absolute"][style*="right: 8px"][style*="top: 8px"]{color:#2563eb!important;background:none!important;border:none!important;font-size:1.7rem!important;font-weight:700;cursor:pointer;z-index:1002}button[style*="position: absolute"][style*="right: 8px"][style*="top: 8px"]:hover,button[style*="position: absolute"][style*="right: 8px"][style*="top: 8px"]:focus{color:#1741a6!important;background:#f0f4ff!important}html,body,#root,.homepage-root{background:var(--bg-app);color:var(--text-primary)}.challenge-hub-card,.challenge-shell-card{display:flex;flex-direction:column;gap:1.1rem}.challenge-hub{--challenge-hub-hero-border: color-mix(in srgb, var(--warning) 22%, var(--border-subtle));--challenge-hub-hero-bg: radial-gradient(circle at top right, color-mix(in srgb, var(--warning) 16%, transparent), transparent 36%), radial-gradient(circle at left center, color-mix(in srgb, var(--success) 14%, transparent), transparent 48%), linear-gradient(145deg, color-mix(in srgb, var(--bg-surface-strong) 88%, var(--accent-soft)) 0%, color-mix(in srgb, var(--bg-surface) 92%, transparent) 54%, color-mix(in srgb, var(--bg-elevated) 90%, transparent) 100%);--challenge-hub-hero-shadow: var(--shadow-lg);--challenge-hub-kicker: var(--warning);--challenge-hub-body-text: var(--text-secondary);--challenge-hub-title: var(--text-primary);--challenge-hub-panel-bg: color-mix(in srgb, var(--bg-surface) 90%, transparent);--challenge-hub-panel-border: color-mix(in srgb, var(--border-strong) 54%, transparent);--challenge-hub-panel-shadow: var(--shadow-md);--challenge-hub-panel-strong-bg: radial-gradient(circle at top right, color-mix(in srgb, var(--warning) 14%, transparent), transparent 40%), linear-gradient(145deg, color-mix(in srgb, var(--bg-surface) 96%, var(--accent-soft)) 0%, color-mix(in srgb, var(--bg-elevated) 95%, transparent) 100%);--challenge-hub-counter-bg: color-mix(in srgb, var(--bg-elevated) 84%, transparent);--challenge-hub-counter-border: color-mix(in srgb, var(--border-strong) 56%, transparent);--challenge-hub-counter-label: var(--text-muted);--challenge-hub-counter-value: var(--text-primary);--challenge-hub-mode-bg: color-mix(in srgb, var(--bg-surface) 88%, transparent);--challenge-hub-mode-border: color-mix(in srgb, var(--border-strong) 44%, transparent);--challenge-hub-accent-text: color-mix(in srgb, var(--success) 84%, var(--text-primary));--challenge-hub-tab-shell: color-mix(in srgb, var(--bg-app) 54%, transparent);--challenge-hub-tab-border: color-mix(in srgb, var(--border-subtle) 92%, transparent);--challenge-hub-tab-text: var(--text-secondary);--challenge-hub-tab-hover-bg: color-mix(in srgb, var(--bg-elevated) 82%, transparent);--challenge-hub-tab-hover-text: var(--text-primary);--challenge-hub-tab-active-bg: linear-gradient(135deg, color-mix(in srgb, var(--warning) 74%, var(--accent)) 0%, color-mix(in srgb, var(--accent) 86%, var(--danger)) 100%);--challenge-hub-tab-active-text: #fffaf5;--challenge-hub-tab-active-shadow: 0 12px 24px color-mix(in srgb, var(--accent) 24%, transparent);--challenge-hub-card-bg: linear-gradient(180deg, color-mix(in srgb, var(--bg-surface) 96%, transparent) 0%, color-mix(in srgb, var(--bg-elevated) 88%, transparent) 100%);--challenge-hub-card-border: color-mix(in srgb, var(--border-strong) 42%, transparent);--challenge-hub-card-shadow: var(--shadow-md);--challenge-hub-card-hover-shadow: 0 18px 34px rgba(0, 0, 0, .22);--challenge-hub-featured-bg: radial-gradient(circle at top right, color-mix(in srgb, var(--warning) 18%, transparent), transparent 40%), linear-gradient(145deg, color-mix(in srgb, var(--bg-surface) 96%, var(--accent-soft)) 0%, color-mix(in srgb, var(--bg-elevated) 92%, transparent) 54%, color-mix(in srgb, var(--bg-surface-strong) 96%, transparent) 100%);--challenge-hub-featured-border: color-mix(in srgb, var(--warning) 34%, var(--border-strong));--challenge-hub-spotlight-label: var(--text-muted);--challenge-hub-spotlight-value: var(--text-primary);--challenge-hub-special-tag-bg: color-mix(in srgb, var(--info-soft) 92%, transparent);--challenge-hub-special-tag-text: var(--info);--challenge-hub-stat-bg: color-mix(in srgb, var(--bg-surface-muted) 92%, transparent);--challenge-hub-stat-border: color-mix(in srgb, var(--border-subtle) 92%, transparent);--challenge-hub-stat-text: var(--text-muted);--challenge-hub-stat-value: var(--text-primary);--challenge-hub-featured-kicker-bg: color-mix(in srgb, var(--success-soft) 96%, transparent);--challenge-hub-featured-kicker-text: color-mix(in srgb, var(--success) 82%, var(--text-primary));--challenge-hub-featured-unlocked-bg: color-mix(in srgb, var(--warning-soft) 96%, transparent);--challenge-hub-featured-unlocked-text: color-mix(in srgb, var(--warning) 82%, var(--text-primary));--challenge-hub-featured-locked-bg: color-mix(in srgb, var(--bg-chip-neutral) 90%, transparent);--challenge-hub-featured-locked-text: var(--text-secondary);--challenge-hub-lock-bg: color-mix(in srgb, var(--warning-soft) 80%, var(--bg-surface));--challenge-hub-lock-border: color-mix(in srgb, var(--warning-border) 88%, var(--border-subtle));--challenge-hub-lock-text: var(--text-primary);--challenge-hub-continue-bg: radial-gradient(circle at top right, color-mix(in srgb, var(--accent) 12%, transparent), transparent 42%), linear-gradient(145deg, color-mix(in srgb, var(--bg-surface) 95%, var(--accent-soft)) 0%, color-mix(in srgb, var(--bg-elevated) 92%, transparent) 100%);--challenge-hub-continue-border: color-mix(in srgb, var(--accent) 26%, var(--border-strong));--challenge-hub-state-badge-bg: color-mix(in srgb, var(--warning-soft) 90%, transparent);--challenge-hub-state-badge-text: color-mix(in srgb, var(--warning) 82%, var(--text-primary));--challenge-hub-utility-bg: color-mix(in srgb, var(--bg-surface) 92%, transparent);--challenge-hub-utility-border: color-mix(in srgb, var(--border-strong) 44%, transparent);--challenge-hub-utility-label: var(--text-muted);--challenge-hub-utility-value: var(--text-primary);--challenge-hub-hero-chip-bg: color-mix(in srgb, var(--bg-surface) 84%, transparent);--challenge-hub-hero-chip-border: color-mix(in srgb, var(--border-subtle) 90%, transparent);--challenge-hub-hero-chip-text: var(--text-secondary)}:root[data-theme=light] .challenge-hub{--challenge-hub-hero-border: color-mix(in srgb, #f59e0b 24%, var(--border-subtle));--challenge-hub-hero-bg: radial-gradient(circle at top right, rgba(255, 191, 105, .32), transparent 34%), radial-gradient(circle at left center, rgba(46, 196, 182, .18), transparent 44%), linear-gradient(140deg, #fff9ec 0%, #f5fbff 52%, #eef7ff 100%);--challenge-hub-hero-shadow: 0 18px 40px rgba(31, 41, 55, .08);--challenge-hub-kicker: #b45309;--challenge-hub-body-text: #475569;--challenge-hub-title: #0f172a;--challenge-hub-panel-bg: rgba(255, 255, 255, .78);--challenge-hub-panel-border: rgba(148, 163, 184, .24);--challenge-hub-panel-shadow: 0 12px 28px rgba(15, 23, 42, .06);--challenge-hub-panel-strong-bg: linear-gradient(180deg, #ffffff 0%, #f8fbff 100%);--challenge-hub-counter-bg: rgba(255, 255, 255, .76);--challenge-hub-counter-border: rgba(148, 163, 184, .28);--challenge-hub-counter-label: #64748b;--challenge-hub-counter-value: #0f172a;--challenge-hub-mode-bg: rgba(255, 255, 255, .78);--challenge-hub-mode-border: rgba(148, 163, 184, .24);--challenge-hub-accent-text: #0f766e;--challenge-hub-tab-shell: rgba(15, 23, 42, .05);--challenge-hub-tab-border: rgba(148, 163, 184, .26);--challenge-hub-tab-text: #475569;--challenge-hub-tab-hover-bg: rgba(255, 255, 255, .7);--challenge-hub-tab-hover-text: #0f172a;--challenge-hub-tab-active-bg: linear-gradient(135deg, #f59e0b, #fb7185);--challenge-hub-tab-active-text: #fffdf7;--challenge-hub-tab-active-shadow: 0 10px 20px rgba(245, 158, 11, .22);--challenge-hub-card-bg: linear-gradient(180deg, #ffffff 0%, #f8fbff 100%);--challenge-hub-card-border: rgba(148, 163, 184, .22);--challenge-hub-card-shadow: 0 12px 28px rgba(15, 23, 42, .06);--challenge-hub-card-hover-shadow: 0 10px 24px rgba(0, 0, 0, .1);--challenge-hub-featured-bg: radial-gradient(circle at top right, rgba(245, 158, 11, .15), transparent 38%), linear-gradient(145deg, #fff9ef 0%, #fef6ff 44%, #f6fbff 100%);--challenge-hub-featured-border: rgba(251, 146, 60, .28);--challenge-hub-spotlight-label: #64748b;--challenge-hub-spotlight-value: #0f172a;--challenge-hub-special-tag-bg: rgba(99, 102, 241, .12);--challenge-hub-special-tag-text: #4338ca;--challenge-hub-stat-bg: rgba(248, 250, 252, .9);--challenge-hub-stat-border: rgba(148, 163, 184, .24);--challenge-hub-stat-text: #64748b;--challenge-hub-stat-value: #0f172a;--challenge-hub-featured-kicker-bg: rgba(15, 118, 110, .1);--challenge-hub-featured-kicker-text: #0f766e;--challenge-hub-featured-unlocked-bg: rgba(245, 158, 11, .14);--challenge-hub-featured-unlocked-text: #b45309;--challenge-hub-featured-locked-bg: rgba(71, 85, 105, .1);--challenge-hub-featured-locked-text: #475569;--challenge-hub-lock-bg: color-mix(in srgb, var(--warning) 10%, transparent);--challenge-hub-lock-border: color-mix(in srgb, var(--warning) 28%, rgba(148, 163, 184, .22));--challenge-hub-lock-text: #0f172a;--challenge-hub-continue-bg: radial-gradient(circle at top right, rgba(251, 146, 60, .16), transparent 38%), linear-gradient(145deg, #fff8ef 0%, #fff6fb 52%, #f6fbff 100%);--challenge-hub-continue-border: rgba(251, 146, 60, .26);--challenge-hub-state-badge-bg: rgba(245, 158, 11, .14);--challenge-hub-state-badge-text: #b45309;--challenge-hub-utility-bg: rgba(255, 255, 255, .82);--challenge-hub-utility-border: rgba(148, 163, 184, .22);--challenge-hub-utility-label: #64748b;--challenge-hub-utility-value: #0f172a;--challenge-hub-hero-chip-bg: rgba(255, 255, 255, .78);--challenge-hub-hero-chip-border: rgba(148, 163, 184, .24);--challenge-hub-hero-chip-text: #475569}.challenge-hub-card{width:100%;max-width:none;align-self:center;gap:1rem;overflow:hidden}.challenge-hub-pane{animation:challenge-hub-rise .34s both cubic-bezier(.16,1,.3,1)}.challenge-hub-pane-2{animation-delay:40ms}.challenge-hub-pane-3{animation-delay:80ms}.challenge-hub-pane-4{animation-delay:.12s}.challenge-hub-pane-5{animation-delay:.16s}.challenge-hub-kicker{color:var(--challenge-hub-kicker)}.challenge-hub.embedded .challenge-hub-card{gap:.95rem}.challenge-page>.challenge-hub-card{width:100%}.challenge-hub-header{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(280px,.9fr);gap:1rem;align-items:end;padding:clamp(1rem,1.8vw,1.35rem);border-radius:1.4rem;border:1px solid var(--challenge-hub-hero-border);background:var(--challenge-hub-hero-bg);box-shadow:var(--challenge-hub-hero-shadow)}.challenge-hub-header-main{display:grid;gap:.32rem;max-width:34rem}.challenge-hub-header-main h2{margin:.12rem 0 0;font-size:clamp(1.7rem,2.5vw,2.28rem);line-height:.96;letter-spacing:-.035em;color:var(--challenge-hub-title)}.challenge-hub-header-main p,.challenge-category-copy{margin:0;color:var(--challenge-hub-body-text);line-height:1.4;font-size:.92rem}.challenge-hub-header-side{display:grid;gap:.72rem}.challenge-hub-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.55rem}.challenge-room-panel,.challenge-board-section,.challenge-round-card{border:1px solid var(--card-border, rgba(255, 255, 255, .1));border-radius:18px;background:var(--card-bg, rgba(255, 255, 255, .03));padding:1rem}.challenge-hub-counter{min-width:0;padding:.7rem .8rem;border-radius:.9rem;background:var(--challenge-hub-counter-bg);border:1px solid var(--challenge-hub-counter-border);box-shadow:inset 0 1px color-mix(in srgb,var(--text-inverse) 10%,transparent)}.challenge-hub-counter span{display:block;font-size:.64rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--challenge-hub-counter-label)}.challenge-hub-counter b{display:block;margin-top:.16rem;font-size:1.02rem;color:var(--challenge-hub-counter-value)}.challenge-hub-mode-bar{display:grid;gap:.7rem;padding:.78rem .88rem;border-radius:1rem;background:var(--challenge-hub-mode-bg);border:1px solid var(--challenge-hub-mode-border);box-shadow:var(--challenge-hub-panel-shadow)}.challenge-hub-mode-copy{display:grid;gap:.12rem}.challenge-hub-mode-eyebrow,.challenge-hub-section-kicker{font-size:.73rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--challenge-hub-accent-text)}.challenge-hub-mode-title{margin-top:.08rem;font-size:.94rem;font-weight:800;color:var(--challenge-hub-title)}.challenge-hub-mode-copy p{margin:.14rem 0 0;color:var(--challenge-hub-body-text);font-size:.86rem}.challenge-category-copy{flex:1 1 20rem}.challenge-category-tabs{display:inline-flex;gap:.5rem;flex-wrap:wrap;padding:.2rem;border-radius:999px;background:var(--challenge-hub-tab-shell);border:1px solid var(--challenge-hub-tab-border)}.challenge-category-tab{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;border:1px solid transparent;background:transparent;color:var(--challenge-hub-tab-text);padding:.52rem .92rem;font-weight:700}.challenge-category-tab.active{background:var(--challenge-hub-tab-active-bg);color:var(--challenge-hub-tab-active-text);border-color:transparent;box-shadow:var(--challenge-hub-tab-active-shadow)}.challenge-category-tab:hover:not(.active){background:var(--challenge-hub-tab-hover-bg);color:var(--challenge-hub-tab-hover-text)}.challenge-hub-dashboard,.challenge-hub-rail,.challenge-hub-feature,.challenge-hub-continue,.challenge-hub-collection{display:grid;gap:.8rem}.challenge-hub-dashboard{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(280px,.92fr);gap:1rem;align-items:start}.challenge-hub-feature{min-width:0}.challenge-hub-rail{align-content:start}.challenge-hub-section-head{display:flex;justify-content:space-between;align-items:end;gap:.8rem;flex-wrap:wrap}.challenge-hub-section-head h3{margin:.18rem 0 0;font-size:1.02rem;line-height:1.1;color:var(--challenge-hub-title)}.challenge-hub .challenge-card-state-badge{display:inline-flex;align-items:center;min-height:1.35rem;padding:.16rem .5rem;border-radius:999px;font-size:.58rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;background:var(--challenge-hub-state-badge-bg);color:var(--challenge-hub-state-badge-text)}.challenge-hub .challenge-card{border:1px solid var(--challenge-hub-card-border);border-radius:1.25rem;background:var(--challenge-hub-card-bg);box-shadow:var(--challenge-hub-card-shadow)}.challenge-card-grid,.challenge-board-grid,.challenge-room-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:.8rem}.challenge-hub .challenge-card{display:grid;gap:.78rem;text-align:left;border-radius:1.1rem;padding:.95rem;min-height:100%;overflow:visible;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.challenge-hub .challenge-card-featured,.challenge-hub .challenge-card-continue{position:relative;grid-template-columns:1fr;gap:.9rem;padding:1.1rem;overflow:hidden}.challenge-hub .challenge-card-featured{background:var(--challenge-hub-featured-bg);border-color:var(--challenge-hub-featured-border)}.challenge-hub .challenge-card-continue{background:var(--challenge-hub-continue-bg);border-color:var(--challenge-hub-continue-border)}.challenge-hub .challenge-card-featured:before{content:"";position:absolute;inset:-20% auto -20% -10%;width:42%;background:linear-gradient(115deg,transparent 0%,color-mix(in srgb,var(--warning) 14%,transparent) 50%,transparent 100%);opacity:.3;pointer-events:none;animation:challenge-hub-glow 10s ease-in-out infinite}.challenge-hub .challenge-card-header,.challenge-hub .challenge-card-meta,.challenge-hub .challenge-card-body,.challenge-hub .challenge-card-footer{padding:0}.challenge-hub .challenge-card-header{display:grid;gap:.35rem}.challenge-hub .challenge-card-kicker-row,.challenge-card-top,.challenge-shell-header,.challenge-room-player,.challenge-board-row{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start}.challenge-hub .challenge-card-kicker-row{flex-wrap:wrap}.challenge-hub .challenge-card-header-chips{display:inline-flex;gap:.45rem;flex-wrap:wrap}.challenge-hub .challenge-card-special-tag{display:inline-flex;align-items:center;padding:.22rem .58rem;border-radius:999px;font-size:.68rem;font-weight:700;background:var(--challenge-hub-special-tag-bg);color:var(--challenge-hub-special-tag-text)}.challenge-hub .challenge-card-body{display:flex;flex-direction:column;gap:.52rem}.challenge-hub .challenge-card-footer{margin-top:auto}.challenge-hub .challenge-card.locked{opacity:.92}.challenge-board-section-title,.challenge-room-title,.challenge-round-label{font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;opacity:.72}.challenge-hub .challenge-card-title{font-size:1.04rem;font-weight:800;line-height:1.2;color:var(--challenge-hub-title)}.challenge-hub .challenge-card-copy{font-weight:700;color:var(--challenge-hub-title)}.challenge-hub .challenge-card-promise{color:var(--challenge-hub-body-text);font-size:.88rem}.challenge-hub .challenge-card-hero-top{position:relative;z-index:1;display:flex;justify-content:space-between;align-items:flex-start;gap:.8rem;flex-wrap:wrap}.challenge-hub .challenge-card-hero-kicker,.challenge-hub .challenge-card-hero-status,.challenge-hub .challenge-card-hero-context{display:inline-flex;align-items:center;min-height:1.45rem;padding:.16rem .52rem;border-radius:999px;font-size:.59rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.challenge-hub .challenge-card-hero-kicker{background:var(--challenge-hub-featured-kicker-bg);color:var(--challenge-hub-featured-kicker-text)}.challenge-hub .challenge-card-hero-chip-group{display:inline-flex;gap:.4rem;flex-wrap:wrap;justify-content:flex-end}.challenge-hub .challenge-card-hero-status.unlocked{background:var(--challenge-hub-featured-unlocked-bg);color:var(--challenge-hub-featured-unlocked-text)}.challenge-hub .challenge-card-hero-status.locked{background:var(--challenge-hub-featured-locked-bg);color:var(--challenge-hub-featured-locked-text)}.challenge-hub .challenge-card-hero-context{background:var(--challenge-hub-hero-chip-bg);border:1px solid var(--challenge-hub-hero-chip-border);color:var(--challenge-hub-hero-chip-text)}.challenge-hub .challenge-card-hero-title{position:relative;z-index:1;font-size:clamp(1.55rem,3vw,2.5rem);line-height:.92;letter-spacing:-.045em;max-width:11ch}.challenge-hub .challenge-card-continue .challenge-card-hero-title{font-size:clamp(1.35rem,2vw,1.95rem);max-width:14ch}.challenge-hub .challenge-card-hero-copy{position:relative;z-index:1;max-width:22ch;font-size:.98rem;font-weight:800;line-height:1.1;color:var(--challenge-hub-title)}.challenge-hub .challenge-card-continue .challenge-card-hero-copy{max-width:18ch;font-size:.93rem}.challenge-hub .challenge-card-hero-support{position:relative;z-index:1;max-width:34rem;margin-top:-.18rem;font-size:.92rem}.challenge-hub .challenge-card-continue .challenge-card-hero-support{max-width:none;font-size:.86rem}.challenge-card-promise,.challenge-room-lobby-copy,.challenge-board-empty,.challenge-inline-separator{opacity:.84}.challenge-hub .challenge-card-meta{display:grid;gap:.55rem}.challenge-hub .challenge-card-stat,.challenge-hub .challenge-card-lock{border-radius:.75rem;padding:.7rem .85rem}.challenge-hub .challenge-card-stat{display:flex;justify-content:space-between;align-items:center;gap:.8rem;background:var(--challenge-hub-stat-bg);border:1px solid var(--challenge-hub-stat-border);color:var(--challenge-hub-stat-text)}.challenge-hub .challenge-card-stat b{color:var(--challenge-hub-stat-value)}.challenge-hub .challenge-card-stat.muted{background:color-mix(in srgb,var(--challenge-hub-stat-bg) 88%,transparent)}.challenge-hub .challenge-card-lock{display:grid;gap:.3rem;background:var(--challenge-hub-lock-bg);border:1px solid var(--challenge-hub-lock-border);color:var(--challenge-hub-lock-text)}.challenge-hub .challenge-card-hero-lock{position:relative;z-index:1;max-width:32rem}.challenge-hub .challenge-card-hero-meta{position:relative;z-index:1;display:flex;gap:.55rem;flex-wrap:wrap}.challenge-hub .challenge-card-hero-meta-chip{display:grid;gap:.16rem;min-width:0;flex:1 1 120px;padding:.62rem .72rem;border-radius:.82rem;background:var(--challenge-hub-stat-bg);border:1px solid var(--challenge-hub-stat-border)}.challenge-hub .challenge-card-hero-meta-chip span{font-size:.58rem;letter-spacing:.1em;text-transform:uppercase;color:var(--challenge-hub-stat-text);font-weight:800}.challenge-hub .challenge-card-hero-meta-chip b{font-size:.9rem;color:var(--challenge-hub-stat-value)}.challenge-hub .challenge-card-actions,.challenge-actions,.challenge-room-launch,.challenge-shell-badges,.challenge-hub .challenge-card-badges{display:flex;gap:.65rem;flex-wrap:wrap;align-items:center}.challenge-hub .challenge-card-actions{position:relative;z-index:1;width:auto}.challenge-hub .challenge-card-actions>button{flex:0 1 auto;min-height:40px}.challenge-primary-btn,.challenge-secondary-btn{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:.8rem 1.1rem;border-radius:.8rem;border:1px solid transparent;font-size:.98rem;font-weight:700;line-height:1.1;cursor:pointer;transition:background .18s ease,color .18s ease,border-color .18s ease,box-shadow .18s ease,transform .18s ease}.challenge-primary-btn{background:var(--button-primary-bg);color:var(--button-primary-text);box-shadow:var(--shadow-sm)}.challenge-primary-btn:hover:not(:disabled){background:var(--button-primary-hover);color:var(--button-primary-text);transform:translateY(-1px)}.challenge-secondary-btn{background:var(--button-secondary-bg);color:var(--button-secondary-text);border-color:var(--border-subtle)}.challenge-secondary-btn:hover:not(:disabled){background:var(--button-secondary-hover);color:var(--text-primary);transform:translateY(-1px)}.challenge-primary-btn:focus-visible,.challenge-secondary-btn:focus-visible{outline:2px solid var(--focus-ring-color);outline-offset:2px}.challenge-primary-btn:disabled,.challenge-secondary-btn:disabled{opacity:.55;cursor:not-allowed;box-shadow:none;transform:none}.challenge-badge,.challenge-category-badge{display:inline-flex;align-items:center;gap:.25rem;border-radius:999px;padding:.3rem .7rem;font-size:.78rem;background:var(--bg-surface-muted);color:var(--text-secondary);border:1px solid var(--border-subtle)}.challenge-hub .challenge-card:hover{transform:translateY(-2px);box-shadow:var(--challenge-hub-card-hover-shadow)}.challenge-hub-utility-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem}.challenge-hub-utility-tile{display:grid;gap:.45rem;padding:.8rem .84rem;border-radius:1rem;border:1px solid var(--challenge-hub-utility-border);background:var(--challenge-hub-utility-bg);box-shadow:var(--challenge-hub-card-shadow)}.challenge-hub-utility-top{display:flex;justify-content:space-between;gap:.55rem;align-items:flex-start}.challenge-hub-utility-label{font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;font-weight:800;color:var(--challenge-hub-utility-label)}.challenge-hub-utility-value{font-size:1rem;font-weight:800;color:var(--challenge-hub-utility-value)}.challenge-hub-utility-value.locked{color:var(--challenge-hub-featured-locked-text)}.challenge-hub-utility-tile p{margin:0;color:var(--challenge-hub-body-text);font-size:.84rem;line-height:1.35}.challenge-hub-utility-btn{justify-self:start;min-height:34px;padding:.5rem .75rem;font-size:.85rem}.challenge-hub-collection{gap:.7rem}@keyframes challenge-hub-rise{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes challenge-hub-glow{0%,to{transform:translateZ(0);opacity:.12}50%{transform:translate3d(12px,0,0);opacity:.2}}.challenge-category-badge.group{background:#ffbf6929}.challenge-room-roster,.challenge-board-list{display:flex;flex-direction:column;gap:.75rem}.challenge-room-player.online{border-left:3px solid var(--button-primary-bg, #2ec4b6);padding-left:.6rem}.challenge-board-row{align-items:center}.challenge-board-rank,.challenge-board-score{font-weight:700}.challenge-log-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem}.challenge-input textarea{min-height:110px}.challenge-inline-separator{margin-top:.5rem;font-weight:600}.challenge-shell-card{gap:1.35rem;padding:2.35rem 2.5rem}.challenge-shell-header{display:grid;grid-template-columns:minmax(0,1fr);gap:1.25rem;align-items:start}.challenge-shell-hero{display:grid;gap:.7rem}.challenge-shell-eyebrow-row,.challenge-shell-title-row,.challenge-shell-subtitle-row{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.85rem;align-items:center}.challenge-shell-title-row h1{flex:1 1 320px}.challenge-shell-subtitle-row{justify-content:flex-start}.challenge-shell-subtitle-row .course-runtime-subtitle{flex:1 1 auto;max-width:48rem}.challenge-shell-status-row{display:flex;align-items:center}.challenge-shell-header h1{margin:0;font-size:2rem;line-height:1.02;letter-spacing:-.03em}.challenge-shell-header .course-runtime-subtitle{margin:0;color:var(--text-secondary)}.challenge-stage-status{display:inline-flex;align-items:center;width:fit-content;min-height:32px;padding:.35rem .7rem;border-radius:999px;background:linear-gradient(135deg,color-mix(in srgb,var(--button-primary-bg) 18%,transparent),color-mix(in srgb,var(--button-primary-bg) 8%,transparent));border:1px solid color-mix(in srgb,var(--button-primary-bg) 28%,var(--border-subtle));color:var(--text-primary);font-size:.82rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.challenge-shell-aside{display:grid;gap:.75rem;align-self:start;justify-items:stretch}.challenge-shell-aside-content{display:grid;gap:.75rem;width:100%}.challenge-hero-notice{padding:.95rem 1rem;border-radius:1rem;background:linear-gradient(135deg,color-mix(in srgb,var(--button-primary-bg) 14%,transparent),color-mix(in srgb,var(--button-primary-bg) 5%,transparent));border:1px solid color-mix(in srgb,var(--button-primary-bg) 22%,var(--border-subtle))}.challenge-shell-meta{display:inline-flex;width:fit-content;max-width:min(100%,34rem);padding:.44rem .78rem;border-radius:999px;align-items:center;justify-self:end;background:linear-gradient(135deg,color-mix(in srgb,#1f9d62 22%,white 78%),color-mix(in srgb,#45b97c 12%,white 88%));border:1px solid color-mix(in srgb,#1f9d62 30%,var(--border-subtle));box-shadow:0 10px 22px -18px color-mix(in srgb,#1f9d62 45%,transparent)}.challenge-shell-notice-content{color:var(--text-primary);line-height:1.5}.challenge-shell-meta .challenge-shell-notice-content{font-size:.92rem;line-height:1.25;color:color-mix(in srgb,#0f5132 88%,var(--text-primary) 12%)}.challenge-shell-meta .challenge-shell-notice-content b{color:#0f5132}.challenge-shell-notice-content.error{color:var(--danger, #b42318)}.challenge-score-rail{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.95rem}.challenge-score-pill{display:grid;gap:.3rem;min-height:88px;padding:1rem 1.05rem;border-radius:1rem;background:var(--bg-surface-muted);border:1px solid var(--border-subtle)}.challenge-score-pill span{color:var(--text-secondary);font-size:.8rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.challenge-score-pill b{color:var(--text-primary);font-size:1.2rem;line-height:1.15}.challenge-shell-body,.challenge-page-layout{display:grid;gap:1.4rem}.challenge-page-layout.has-sidebar{grid-template-columns:minmax(320px,360px) minmax(0,1fr);align-items:start}.challenge-page-layout.has-sidebar.sidebar-closed{grid-template-columns:4.75rem minmax(0,1fr)}.challenge-page-main{display:grid;gap:1rem;min-width:0}.challenge-shell-main{display:grid;gap:1.4rem;min-width:0}.challenge-shell-sidebar{min-width:0;align-self:stretch}.challenge-shell-sidebar-panel{display:grid;gap:.9rem;align-content:start;height:100%}.challenge-shell-sidebar-header{display:flex;justify-content:space-between;align-items:center;gap:.75rem;min-height:auto;padding:0 0 .55rem;border-bottom:1px solid color-mix(in srgb,var(--border-subtle) 88%,transparent)}.challenge-shell-sidebar-title{color:var(--text-secondary);font-size:.72rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.challenge-shell-sidebar-toggle{display:inline-flex;align-items:center;justify-content:center;min-height:28px;min-width:28px;padding:.2rem;border-radius:.5rem;border:none;background:transparent;color:var(--text-primary);font-size:.76rem;font-weight:700;line-height:1.15}.challenge-shell-sidebar-toggle-icon{font-size:1.1rem;line-height:1}.challenge-shell-sidebar-toggle:hover{background:color-mix(in srgb,var(--bg-surface-muted) 92%,transparent)}.challenge-shell-sidebar-toggle:focus-visible{outline:2px solid var(--focus-ring-color);outline-offset:2px}.challenge-shell-sidebar-body{display:grid;gap:1rem;align-content:start}.challenge-shell-sidebar.is-closed .challenge-shell-sidebar-header{min-height:100%;flex-direction:column;justify-content:center;align-items:center;padding:.8rem .4rem;border-bottom:none}.challenge-shell-sidebar.is-closed .challenge-shell-sidebar-title{writing-mode:vertical-rl;transform:rotate(180deg);text-align:center}.challenge-shell-sidebar.is-closed .challenge-shell-sidebar-toggle{min-height:auto;min-width:32px;padding:.35rem .2rem}.challenge-shell-sidebar.is-closed .challenge-shell-sidebar-body{display:none}.challenge-info-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.8rem}.challenge-info-strip.compact{grid-template-columns:repeat(2,minmax(0,1fr))}.challenge-info-card{display:grid;gap:.4rem;min-height:84px;padding:.85rem .95rem;border-radius:1rem;background:color-mix(in srgb,var(--bg-surface-muted) 92%,transparent);border:1px solid var(--border-subtle)}.challenge-info-card span,.challenge-rail-title,.challenge-board-summary-card span,.challenge-room-player-score span,.challenge-result-meta span,.challenge-stage-label{color:var(--text-secondary);font-size:.78rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.challenge-info-card b{color:var(--text-primary);line-height:1.45}.challenge-stage-layout,.challenge-match-layout{display:grid;gap:1.4rem;align-items:start;grid-template-columns:minmax(0,1fr)}.challenge-stage-layout.solo-focus{grid-template-columns:minmax(0,1fr)}.challenge-stage-column,.challenge-match-main,.challenge-side-rail,.challenge-match-side{display:grid;gap:1rem;min-width:0}.challenge-stage-card,.challenge-rail-card,.challenge-room-panel,.challenge-board-section{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:1.1rem;box-shadow:var(--shadow-md)}.challenge-stage-card,.challenge-rail-card,.challenge-room-panel{padding:1.35rem}.challenge-stage-card{display:grid;gap:.9rem}.challenge-stage-card.state-playing{border-color:color-mix(in srgb,var(--button-primary-bg) 35%,var(--border-subtle));box-shadow:0 12px 24px color-mix(in srgb,var(--button-primary-bg) 12%,transparent)}.challenge-stage-card.state-answer{border-color:color-mix(in srgb,var(--warning) 40%,var(--border-subtle))}.challenge-stage-card-header,.challenge-board-section-header,.challenge-room-player-top{display:flex;justify-content:space-between;gap:.9rem;align-items:flex-start}.challenge-stage-card-header h3,.challenge-launch-card h3{margin:.2rem 0 0;font-size:1.35rem;line-height:1.15}.challenge-launch-card{min-height:22rem;display:flex;flex-direction:column;justify-content:space-between;gap:1.5rem}.challenge-launch-card p{margin:0;max-width:42rem;color:var(--text-secondary);line-height:1.55}.challenge-launch-top,.challenge-launch-bottom{display:grid;gap:1.2rem}.challenge-launch-bottom{margin-top:auto;align-content:end}.challenge-launch-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem;max-width:28rem}.challenge-launch-summary>div{display:grid;gap:.25rem;padding:.85rem .95rem;border-radius:.95rem;background:var(--bg-surface-muted);border:1px solid var(--border-subtle)}.challenge-launch-summary b{font-size:1.05rem;color:var(--text-primary)}.challenge-launch-card .challenge-actions{margin-top:.2rem}.challenge-stage-chip,.challenge-save-chip{display:inline-flex;align-items:center;justify-content:center;min-height:34px;padding:.35rem .75rem;border-radius:999px;border:1px solid var(--border-subtle);background:var(--bg-surface-muted);color:var(--text-primary);font-size:.84rem;font-weight:700;white-space:nowrap}.challenge-save-chip.state-saved{background:color-mix(in srgb,#16a34a 14%,transparent);border-color:color-mix(in srgb,#16a34a 28%,var(--border-subtle))}.challenge-save-chip.state-saving{background:color-mix(in srgb,var(--button-primary-bg) 14%,transparent);border-color:color-mix(in srgb,var(--button-primary-bg) 26%,var(--border-subtle))}.challenge-save-chip.state-error{background:color-mix(in srgb,var(--danger, #b42318) 10%,transparent);border-color:color-mix(in srgb,var(--danger, #b42318) 24%,var(--border-subtle))}.challenge-round-prompt{font-size:1.45rem;font-weight:800;line-height:1.15;letter-spacing:.01em;color:var(--text-primary)}.challenge-result-card{background:linear-gradient(180deg,color-mix(in srgb,var(--bg-surface) 92%,transparent),color-mix(in srgb,var(--bg-surface-muted) 80%,transparent))}.challenge-result-hero{display:grid;grid-template-columns:minmax(120px,180px) minmax(0,1fr);gap:1rem;align-items:start}.challenge-result-score{display:flex;align-items:center;justify-content:center;min-height:140px;border-radius:1.1rem;background:linear-gradient(135deg,color-mix(in srgb,var(--button-primary-bg) 18%,transparent),color-mix(in srgb,var(--button-primary-bg) 5%,transparent));border:1px solid color-mix(in srgb,var(--button-primary-bg) 24%,var(--border-subtle));font-size:clamp(2rem,4vw,3rem);font-weight:900;letter-spacing:-.04em}.challenge-result-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}.challenge-result-meta>div,.challenge-board-summary-card{display:grid;gap:.25rem;padding:.85rem .95rem;border-radius:.95rem;background:var(--bg-surface-muted);border:1px solid var(--border-subtle)}.challenge-result-meta b,.challenge-board-summary-card b{font-size:1.08rem;color:var(--text-primary)}.challenge-result-copy,.challenge-room-lobby-copy{color:var(--text-secondary);line-height:1.55}.challenge-rail-card{display:grid;gap:.85rem;background:color-mix(in srgb,var(--bg-surface) 92%,transparent);border-color:color-mix(in srgb,var(--border-subtle) 92%,transparent);box-shadow:var(--shadow-sm)}.challenge-rail-list,.challenge-round-history{display:grid;gap:.7rem}.challenge-rail-list>div,.challenge-round-history-row{display:flex;justify-content:space-between;gap:.75rem;align-items:center;padding:.75rem .85rem;border-radius:.85rem;background:var(--bg-surface-muted);border:1px solid var(--border-subtle)}.challenge-rail-list span,.challenge-round-history-row span{color:var(--text-secondary)}.challenge-host-strip{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.85rem;align-items:center;padding:.95rem 1rem;border-radius:1rem;background:color-mix(in srgb,var(--bg-surface-muted) 90%,transparent);border:1px solid var(--border-subtle)}.challenge-host-status{color:var(--text-secondary);line-height:1.5}.challenge-room-player-card{display:grid;gap:.75rem;padding:.9rem .95rem;border-radius:.95rem;background:var(--bg-surface-muted);border:1px solid var(--border-subtle)}.challenge-room-player-card.online{border-color:color-mix(in srgb,var(--button-primary-bg) 34%,var(--border-subtle))}.challenge-room-player-card.self{box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--button-primary-bg) 30%,transparent)}.challenge-room-player-badges{display:flex;gap:.45rem;flex-wrap:wrap}.challenge-room-player-score{display:flex;justify-content:space-between;gap:.75rem;align-items:center}.challenge-room-player-score b{font-size:1.05rem}.challenge-board-surface{display:grid;gap:1rem}.challenge-board-surface.variant-sidebar{gap:.85rem}.challenge-board-surface.variant-sidebar .challenge-board-grid{grid-template-columns:1fr;gap:.85rem}.challenge-board-surface.variant-sidebar .challenge-board-section{padding:.9rem;gap:.75rem;box-shadow:0 12px 26px -22px color-mix(in srgb,var(--button-primary-bg) 38%,transparent)}.challenge-board-surface.variant-sidebar .challenge-board-row{padding:.72rem .8rem}.challenge-board-surface.variant-sidebar .challenge-board-section-header{gap:.65rem}.challenge-board-surface.variant-sidebar .challenge-board-section:first-child{border-color:color-mix(in srgb,var(--button-primary-bg) 28%,var(--border-subtle));background:linear-gradient(180deg,color-mix(in srgb,var(--button-primary-bg) 8%,var(--bg-surface)),var(--bg-surface))}.challenge-board-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.8rem}.challenge-board-section{display:grid;gap:.9rem}.challenge-board-section.accent-room{border-color:color-mix(in srgb,var(--button-primary-bg) 30%,var(--border-subtle))}.challenge-board-section.accent-daily{border-color:color-mix(in srgb,var(--warning) 30%,var(--border-subtle))}.challenge-board-section.accent-weekly{border-color:color-mix(in srgb,#2563eb 26%,var(--border-subtle))}.challenge-board-section-header{align-items:center}.challenge-board-row{padding:.8rem .9rem;border-radius:.85rem;background:var(--bg-surface-muted);border:1px solid var(--border-subtle)}.challenge-board-row.rank-1{background:linear-gradient(135deg,color-mix(in srgb,var(--warning) 16%,transparent),var(--bg-surface-muted))}.challenge-board-row.rank-2{background:linear-gradient(135deg,color-mix(in srgb,#94a3b8 12%,transparent),var(--bg-surface-muted))}.challenge-board-row.rank-3{background:linear-gradient(135deg,color-mix(in srgb,#b45309 12%,transparent),var(--bg-surface-muted))}.challenge-board-name b{display:block}.challenge-actions{gap:.75rem}.challenge-actions>button{min-height:46px}.challenge-log-field input,.challenge-input textarea{background:var(--bg-surface);border-color:var(--border-subtle)}@media(max-width:900px){.challenge-room-grid,.challenge-hub-header,.challenge-hub-dashboard{grid-template-columns:1fr}.challenge-hub-stats{width:100%;justify-content:flex-start}.challenge-hub-mode-bar,.challenge-hub-section-head,.challenge-hub .challenge-card-hero-top{flex-direction:column;align-items:stretch}.challenge-hub-header-main h2{max-width:none}.challenge-hub .challenge-card-featured,.challenge-hub .challenge-card-continue{padding:1rem}.challenge-hub-utility-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.challenge-shell-header,.challenge-stage-layout,.challenge-match-layout,.challenge-result-hero,.challenge-board-summary-grid,.challenge-page-layout.has-sidebar,.challenge-page-layout.has-sidebar.sidebar-closed{grid-template-columns:1fr}.challenge-shell-card{padding:1.5rem}.challenge-shell-title-row,.challenge-shell-subtitle-row,.challenge-shell-eyebrow-row{flex-direction:column;align-items:flex-start}.challenge-shell-meta{max-width:100%;justify-self:start}.challenge-shell-sidebar{order:0}.challenge-shell-sidebar-panel{height:auto}.challenge-shell-sidebar-body{align-content:start}.challenge-shell-sidebar.is-closed .challenge-shell-sidebar-header{min-height:auto;justify-content:space-between;align-items:center;padding:.9rem 1rem;border-bottom:1px solid color-mix(in srgb,var(--border-subtle) 88%,transparent)}.challenge-shell-sidebar.is-closed .challenge-shell-sidebar-title,.challenge-shell-sidebar.is-closed .challenge-shell-sidebar-toggle{writing-mode:horizontal-tb;transform:none}.challenge-shell-sidebar.is-closed .challenge-shell-sidebar-toggle{padding:.55rem .85rem}.challenge-page-main{order:1}}@media(max-width:640px){.challenge-hub-header{padding:.95rem}.challenge-category-tabs{width:100%;justify-content:stretch}.challenge-hub-stats,.challenge-hub-utility-grid,.challenge-hub .challenge-card-hero-meta,.challenge-card-grid{grid-template-columns:1fr}.challenge-hub .challenge-card-hero-meta{display:grid}.challenge-hub .challenge-card-actions>button{flex:1 1 auto}.challenge-category-tab{flex:1 1 0;justify-content:center;text-align:center}.challenge-score-rail,.challenge-info-strip,.challenge-result-meta,.challenge-info-strip.compact,.challenge-launch-summary,.challenge-log-grid{grid-template-columns:1fr}.challenge-shell-header,.challenge-card-top,.challenge-board-row,.challenge-room-player,.challenge-stage-card-header,.challenge-board-section-header,.challenge-room-player-top,.challenge-host-strip{flex-direction:column}}@media(prefers-reduced-motion:reduce){.challenge-hub-pane,.challenge-hub .challenge-card-featured:before{animation:none}.challenge-hub .challenge-card,.challenge-primary-btn,.challenge-secondary-btn{transition:none}}.challenge-hub{--challenge-hub-command-border: color-mix(in srgb, var(--warning) 30%, var(--border-subtle));--challenge-hub-scene-a: color-mix(in srgb, var(--warning) 22%, transparent);--challenge-hub-scene-b: color-mix(in srgb, var(--success) 18%, transparent);--challenge-hub-scene-c: color-mix(in srgb, var(--accent) 18%, transparent);--challenge-hub-lounge-bg: radial-gradient(circle at 2% 10%, var(--challenge-hub-scene-a), transparent 32%), radial-gradient(circle at 88% 12%, var(--challenge-hub-scene-b), transparent 30%), radial-gradient(circle at 55% 100%, var(--challenge-hub-scene-c), transparent 35%), linear-gradient(145deg, color-mix(in srgb, var(--bg-surface-strong) 88%, transparent) 0%, color-mix(in srgb, var(--bg-surface) 95%, transparent) 55%, color-mix(in srgb, var(--bg-elevated) 94%, transparent) 100%);--challenge-hub-lounge-shadow: var(--shadow-lg);--challenge-hub-featured-bg: radial-gradient(circle at 84% 18%, color-mix(in srgb, var(--warning) 18%, transparent), transparent 28%), radial-gradient(circle at 2% 84%, color-mix(in srgb, var(--success) 10%, transparent), transparent 36%), linear-gradient(150deg, color-mix(in srgb, var(--bg-surface) 97%, transparent) 0%, color-mix(in srgb, var(--bg-elevated) 92%, transparent) 54%, color-mix(in srgb, var(--bg-surface-strong) 94%, transparent) 100%);--challenge-hub-featured-border: color-mix(in srgb, var(--warning) 34%, var(--border-strong));--challenge-hub-launch-bg: color-mix(in srgb, var(--bg-surface) 92%, transparent);--challenge-hub-launch-border: color-mix(in srgb, var(--border-strong) 44%, transparent);--challenge-hub-launch-label: var(--text-muted);--challenge-hub-launch-value: var(--text-primary);--challenge-hub-launch-copy: var(--text-secondary);--challenge-hub-launch-badge-bg: color-mix(in srgb, var(--warning-soft) 90%, transparent);--challenge-hub-launch-badge-text: color-mix(in srgb, var(--warning) 82%, var(--text-primary));--challenge-hub-chip-bg: color-mix(in srgb, var(--bg-surface) 84%, transparent);--challenge-hub-chip-border: color-mix(in srgb, var(--border-subtle) 90%, transparent);--challenge-hub-chip-text: var(--text-secondary);--challenge-hub-lock-bg: color-mix(in srgb, var(--warning-soft) 80%, var(--bg-surface));--challenge-hub-lock-border: color-mix(in srgb, var(--warning-border) 88%, var(--border-subtle));--challenge-hub-lock-text: var(--text-primary);--challenge-hub-shelf-bg: color-mix(in srgb, var(--bg-surface) 84%, transparent);--challenge-hub-shelf-border: color-mix(in srgb, var(--border-strong) 36%, transparent);--challenge-hub-shelf-primary-border: color-mix(in srgb, var(--warning) 20%, var(--border-subtle));--challenge-hub-shelf-secondary-border: color-mix(in srgb, var(--accent) 14%, var(--border-subtle));--challenge-hub-card-bg: color-mix(in srgb, var(--bg-surface) 76%, transparent);--challenge-hub-card-border: color-mix(in srgb, var(--border-subtle) 92%, transparent);--challenge-hub-card-shadow: 0 6px 16px rgba(0, 0, 0, .06)}:root[data-theme=light] .challenge-hub{--challenge-hub-command-border: rgba(251, 146, 60, .28);--challenge-hub-scene-a: rgba(255, 191, 105, .34);--challenge-hub-scene-b: rgba(46, 196, 182, .2);--challenge-hub-scene-c: rgba(244, 114, 182, .12);--challenge-hub-lounge-bg: radial-gradient(circle at 2% 10%, rgba(255, 191, 105, .36), transparent 32%), radial-gradient(circle at 88% 12%, rgba(46, 196, 182, .22), transparent 30%), radial-gradient(circle at 55% 100%, rgba(251, 146, 60, .14), transparent 35%), linear-gradient(145deg, #fff9ee 0%, #fff7fb 48%, #f5fbff 100%);--challenge-hub-lounge-shadow: 0 18px 40px rgba(31, 41, 55, .08);--challenge-hub-featured-bg: radial-gradient(circle at 85% 18%, rgba(245, 158, 11, .14), transparent 28%), radial-gradient(circle at 4% 82%, rgba(15, 118, 110, .1), transparent 36%), linear-gradient(150deg, #fffaf1 0%, #fff8fd 42%, #f6fbff 100%);--challenge-hub-launch-bg: rgba(255, 255, 255, .82);--challenge-hub-launch-border: rgba(148, 163, 184, .22);--challenge-hub-launch-label: #64748b;--challenge-hub-launch-value: #0f172a;--challenge-hub-launch-copy: #475569;--challenge-hub-launch-badge-bg: rgba(245, 158, 11, .14);--challenge-hub-launch-badge-text: #b45309;--challenge-hub-chip-bg: rgba(255, 255, 255, .78);--challenge-hub-chip-border: rgba(148, 163, 184, .24);--challenge-hub-chip-text: #475569;--challenge-hub-lock-text: #0f172a;--challenge-hub-shelf-bg: rgba(255, 255, 255, .7);--challenge-hub-shelf-border: rgba(148, 163, 184, .18);--challenge-hub-shelf-primary-border: rgba(251, 146, 60, .2);--challenge-hub-shelf-secondary-border: rgba(99, 102, 241, .14);--challenge-hub-card-bg: rgba(255, 255, 255, .76);--challenge-hub-card-border: rgba(148, 163, 184, .2);--challenge-hub-card-shadow: 0 6px 14px rgba(15, 23, 42, .05)}.challenge-hub.is-group{--challenge-hub-kicker: color-mix(in srgb, var(--accent) 72%, var(--warning));--challenge-hub-accent-text: color-mix(in srgb, var(--accent) 82%, var(--text-primary));--challenge-hub-tab-active-bg: linear-gradient(135deg, color-mix(in srgb, var(--accent) 80%, #38bdf8) 0%, color-mix(in srgb, var(--warning) 60%, var(--danger)) 100%);--challenge-hub-featured-border: color-mix(in srgb, var(--accent) 28%, var(--border-strong));--challenge-hub-scene-a: color-mix(in srgb, var(--accent) 24%, transparent);--challenge-hub-scene-b: color-mix(in srgb, var(--warning) 18%, transparent);--challenge-hub-scene-c: color-mix(in srgb, var(--success) 16%, transparent)}.challenge-hub-card{position:relative;width:100%;max-width:none;align-self:center;gap:.9rem}.challenge-page.challenge-page-cw-games .challenge-hub-card,.course-page.course-page-cw-games .challenge-hub-card,.course-card.course-card-cw-games .challenge-hub-card{width:100%;max-width:none}.challenge-hub-pane{animation:challenge-hub-rise .32s both cubic-bezier(.16,1,.3,1)}.challenge-hub-pane-1{animation-delay:0ms}.challenge-hub-pane-2{animation-delay:45ms}.challenge-hub-lounge{position:relative;display:grid;gap:.85rem;padding:clamp(.88rem,1.55vw,1.08rem);border-radius:1.5rem;border:1px solid var(--challenge-hub-command-border);background:var(--challenge-hub-lounge-bg);box-shadow:var(--challenge-hub-lounge-shadow);overflow:hidden}.challenge-hub-lounge-light{position:absolute;border-radius:999px;filter:blur(28px);opacity:.3;pointer-events:none}.challenge-hub-lounge-light-a{top:-44px;right:12%;width:160px;height:160px;background:color-mix(in srgb,var(--warning) 42%,transparent)}.challenge-hub-lounge-light-b{bottom:-68px;left:8%;width:220px;height:220px;background:color-mix(in srgb,var(--accent) 22%,transparent)}.challenge-hub-header{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,.96fr);gap:.8rem;align-items:end}.challenge-hub-title-block{display:grid;gap:.18rem;max-width:31rem}.challenge-hub-title-block h2{margin:.08rem 0 0;max-width:12ch;font-size:clamp(1.78rem,2.9vw,2.65rem);line-height:.93;letter-spacing:-.045em;color:var(--challenge-hub-title)}.challenge-hub-title-block p{margin:0;max-width:34ch;color:var(--challenge-hub-body-text);line-height:1.25;font-size:.84rem}.challenge-hub-header-side{display:grid;gap:.55rem;justify-self:end;width:min(100%,24rem)}.challenge-hub-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.42rem;width:100%}.challenge-hub-mode-tabs{justify-self:end;align-self:start}.challenge-hub-counter{min-width:0;padding:.54rem .64rem;border-radius:.82rem;background:var(--challenge-hub-counter-bg);border:1px solid var(--challenge-hub-counter-border)}.challenge-hub-counter span{display:block;font-size:.62rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--challenge-hub-counter-label)}.challenge-hub-counter b{display:block;margin-top:.16rem;font-size:.98rem;color:var(--challenge-hub-counter-value)}.challenge-hub-command-grid{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1.26fr) minmax(340px,.94fr);gap:.82rem;align-items:start}.challenge-hub-featured-panel,.challenge-hub-launch-card,.challenge-hub-shelf,.challenge-hub-lane-card{position:relative;overflow:hidden}.challenge-hub-featured-panel{display:grid;gap:.7rem;padding:clamp(.92rem,1.5vw,1.16rem);border-radius:1.35rem;border:1px solid var(--challenge-hub-featured-border);background:var(--challenge-hub-featured-bg);box-shadow:0 18px 38px #00000024}.challenge-hub-featured-panel:before{content:"";position:absolute;inset:auto -8% -26% auto;width:38%;aspect-ratio:1;border-radius:999px;background:radial-gradient(circle,color-mix(in srgb,var(--warning) 24%,transparent) 0%,transparent 72%);opacity:.45;pointer-events:none;animation:challenge-hub-glow 10s ease-in-out infinite}.challenge-hub-featured-top,.challenge-hub-shelf-head,.challenge-hub-launch-head{display:flex;justify-content:space-between;gap:.55rem;align-items:flex-start;flex-wrap:wrap}.challenge-hub-featured-chip-row,.challenge-hub-featured-badges,.challenge-hub-featured-actions,.challenge-hub-launch-actions,.challenge-hub-launch-meta,.challenge-hub-lane-card-actions{display:flex;gap:.42rem;flex-wrap:wrap;align-items:center}.challenge-hub-featured-chip,.challenge-hub-lane-card-tag,.challenge-hub-launch-badge{display:inline-flex;align-items:center;min-height:1.35rem;padding:.14rem .48rem;border-radius:999px;font-size:.56rem;font-weight:800;letter-spacing:.09em;text-transform:uppercase}.challenge-hub-featured-chip.strong{background:var(--challenge-hub-featured-kicker-bg);color:var(--challenge-hub-featured-kicker-text)}.challenge-hub-featured-chip.muted,.challenge-hub-featured-chip.context{background:var(--challenge-hub-chip-bg);border:1px solid var(--challenge-hub-chip-border);color:var(--challenge-hub-chip-text)}.challenge-hub-featured-chip.status.unlocked,.challenge-hub-launch-badge{background:var(--challenge-hub-launch-badge-bg);color:var(--challenge-hub-launch-badge-text)}.challenge-hub-featured-chip.status.locked{background:var(--challenge-hub-featured-locked-bg);color:var(--challenge-hub-featured-locked-text)}.challenge-hub-featured-title{position:relative;z-index:1;margin:0;max-width:11ch;font-size:clamp(1.8rem,3vw,3rem);line-height:.92;letter-spacing:-.05em;color:var(--challenge-hub-title)}.challenge-hub-featured-lead{position:relative;z-index:1;margin:0;max-width:27ch;font-size:.98rem;font-weight:800;line-height:1.08;color:var(--challenge-hub-title)}.challenge-hub-featured-support{position:relative;z-index:1;margin:0;max-width:38rem;color:var(--challenge-hub-body-text);font-size:.82rem;line-height:1.28}.challenge-hub-featured-panel .challenge-badge{padding:.2rem .5rem;font-size:.66rem;background:color-mix(in srgb,var(--bg-surface) 82%,transparent);border-color:color-mix(in srgb,var(--border-strong) 24%,transparent)}.challenge-hub-featured-lock,.challenge-hub-lane-card-lock{display:grid;gap:.16rem;padding:.58rem .7rem;border-radius:.84rem;background:var(--challenge-hub-lock-bg);border:1px solid var(--challenge-hub-lock-border);color:var(--challenge-hub-lock-text)}.challenge-hub-featured-meta,.challenge-hub-lane-card-meta{display:flex;gap:.4rem;flex-wrap:wrap}.challenge-hub-featured-meta-chip,.challenge-hub-lane-card-meta{min-width:0;padding:.48rem .56rem;border-radius:.8rem;background:var(--challenge-hub-stat-bg);border:1px solid var(--challenge-hub-stat-border)}.challenge-hub-featured-meta-chip{display:grid;gap:.14rem;flex:0 1 150px}.challenge-hub-featured-meta-chip span,.challenge-hub-lane-card-meta span{font-size:.56rem;letter-spacing:.11em;text-transform:uppercase;font-weight:800;color:var(--challenge-hub-stat-text)}.challenge-hub-featured-meta-chip b,.challenge-hub-lane-card-meta b{font-size:.84rem;color:var(--challenge-hub-stat-value)}.challenge-hub-featured-actions{position:relative;z-index:1}.challenge-hub-launch-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem;align-content:start}.challenge-hub-launch-card{display:grid;gap:.5rem;padding:.72rem .76rem;border-radius:1rem;border:1px solid var(--challenge-hub-launch-border);background:var(--challenge-hub-launch-bg);box-shadow:var(--challenge-hub-card-shadow);transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.challenge-hub-launch-card.is-continue{grid-column:1 / -1;background:radial-gradient(circle at top right,color-mix(in srgb,var(--warning) 12%,transparent),transparent 36%),var(--challenge-hub-launch-bg)}.challenge-hub-launch-card:hover,.challenge-hub-lane-card:hover{transform:translateY(-1px);box-shadow:0 10px 20px #00000014}.challenge-hub-launch-label{font-size:.56rem;letter-spacing:.12em;text-transform:uppercase;font-weight:800;color:var(--challenge-hub-launch-label)}.challenge-hub-launch-main{display:grid;gap:.16rem}.challenge-hub-launch-value{font-size:1rem;font-weight:800;line-height:1.02;color:var(--challenge-hub-launch-value)}.challenge-hub-launch-card.is-continue .challenge-hub-launch-value{font-size:1.08rem}.challenge-hub-launch-copy{margin:0;color:var(--challenge-hub-launch-copy);font-size:.76rem;line-height:1.22}.challenge-hub-launch-meta-chip{display:inline-flex;align-items:center;padding:.18rem .42rem;border-radius:999px;background:var(--challenge-hub-stat-bg);border:1px solid var(--challenge-hub-stat-border);color:var(--challenge-hub-stat-value);font-size:.64rem;font-weight:700}.challenge-hub-launch-actions .challenge-primary-btn,.challenge-hub-launch-actions .challenge-secondary-btn{min-height:32px;padding:.42rem .68rem;font-size:.78rem}.challenge-hub-shelves{display:grid;gap:.56rem}.challenge-hub-shelf{display:grid;gap:.48rem;padding:.62rem .7rem .76rem;border-radius:1.05rem;border:1px solid var(--challenge-hub-shelf-border);background:var(--challenge-hub-shelf-bg);box-shadow:0 8px 14px #0000000d;animation:challenge-hub-rise .32s both cubic-bezier(.16,1,.3,1)}.challenge-hub-shelf-primary{border-color:var(--challenge-hub-shelf-primary-border)}.challenge-hub-shelf-secondary{border-color:var(--challenge-hub-shelf-secondary-border)}.challenge-hub-shelf-head{gap:.4rem}.challenge-hub-shelf-head h3{margin:.12rem 0 0;font-size:.95rem;line-height:1.08;color:var(--challenge-hub-title)}.challenge-hub-shelf .challenge-category-copy{font-size:.76rem;line-height:1.2;max-width:34ch;color:var(--text-muted)}.challenge-hub-shelf-track{grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:.56rem}.challenge-hub .challenge-card{border:1px solid var(--challenge-hub-card-border);border-radius:.95rem;background:var(--challenge-hub-card-bg);box-shadow:var(--challenge-hub-card-shadow)}.challenge-hub-lane-card{display:grid;gap:.42rem;text-align:left;padding:.7rem;min-height:100%;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.challenge-hub-lane-card-top{display:flex;justify-content:space-between;gap:.4rem;align-items:flex-start;flex-wrap:wrap}.challenge-hub-lane-card .course-module-eyebrow.challenge{padding:.16rem .42rem;border-radius:999px;border:1px solid color-mix(in srgb,var(--border-subtle) 88%,transparent);background:transparent;color:var(--text-muted);font-size:.54rem;letter-spacing:.12em}.challenge-hub-lane-card-tag{background:var(--challenge-hub-launch-badge-bg);color:var(--challenge-hub-launch-badge-text);opacity:.82}.challenge-hub-lane-card-title{font-size:.94rem;font-weight:800;line-height:1.12;color:var(--challenge-hub-title)}.challenge-hub-lane-card-support{color:var(--challenge-hub-body-text);font-size:.76rem;line-height:1.2;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:2.1em}.challenge-hub-lane-card-meta{display:grid;gap:.14rem;width:fit-content;min-width:min(100%,10rem)}.challenge-hub-lane-card-actions{margin-top:auto;gap:.36rem}.challenge-hub-lane-card-actions .challenge-primary-btn,.challenge-hub-lane-card-actions .challenge-secondary-btn{min-height:34px;padding:.46rem .7rem;font-size:.8rem}.challenge-hub.embedded .challenge-hub-lounge{padding:.8rem;border-radius:1.3rem}.challenge-hub.embedded .challenge-hub-title-block h2{font-size:clamp(1.52rem,2.3vw,2.08rem)}.challenge-hub.embedded .challenge-hub-featured-panel{padding:.88rem}.challenge-hub.embedded .challenge-hub-shelf{padding:.66rem .72rem .78rem}@media(max-width:960px){.challenge-hub-header,.challenge-hub-command-grid{grid-template-columns:1fr}.challenge-hub-title-block h2{max-width:none}.challenge-hub-header-side,.challenge-hub-stats{justify-self:stretch;width:100%}.challenge-hub-stats{grid-template-columns:repeat(3,minmax(0,1fr))}.challenge-hub-launch-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:720px){.challenge-hub-lounge{padding:.88rem}.challenge-hub-stats{grid-template-columns:repeat(3,minmax(0,1fr))}.challenge-hub-featured-title{max-width:none;font-size:clamp(1.65rem,9vw,2.4rem)}.challenge-hub-launch-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.challenge-hub-shelf{padding-right:0}.challenge-hub-shelf-head{padding-right:.7rem}.challenge-hub-shelf-track{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(16rem,82vw);grid-template-columns:none;gap:.55rem;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x proximity;padding:0 .7rem .2rem 0}.challenge-hub-shelf-track>*{scroll-snap-align:start}}@media(max-width:640px){.challenge-hub-header{gap:.68rem}.challenge-hub-mode-tabs{justify-self:stretch}.challenge-category-tabs{width:100%;justify-content:stretch}.challenge-category-tab{flex:1 1 0}.challenge-hub-stats{grid-template-columns:repeat(3,minmax(0,1fr))}.challenge-hub-counter{padding:.5rem .52rem}.challenge-hub-counter span{font-size:.56rem}.challenge-hub-counter b{font-size:.88rem}.challenge-hub-launch-grid,.challenge-hub-featured-meta{grid-template-columns:1fr}.challenge-hub-featured-meta{display:grid}.challenge-hub-featured-actions,.challenge-hub-launch-actions,.challenge-hub-lane-card-actions{flex-direction:column;align-items:stretch}.challenge-hub-featured-actions>button,.challenge-hub-launch-actions>button,.challenge-hub-lane-card-actions>button{width:100%}.challenge-hub-launch-card.is-continue{grid-column:auto}.challenge-hub-shelf-track{grid-auto-columns:minmax(15rem,88vw)}}@media(min-width:1400px){.challenge-page.challenge-page-cw-games,.course-page.course-page-cw-games{padding-left:.45rem;padding-right:.45rem}.course-card.course-card-cw-games{padding:.45rem}.challenge-page.challenge-page-cw-games .challenge-hub-command-grid,.course-page.course-page-cw-games .challenge-hub-command-grid{grid-template-columns:minmax(0,1.34fr) minmax(360px,.94fr);gap:.95rem}.challenge-page.challenge-page-cw-games .challenge-hub-shelf-track,.course-page.course-page-cw-games .challenge-hub-shelf-track{grid-template-columns:repeat(auto-fit,minmax(230px,1fr))}}@media(min-width:1680px){.challenge-page.challenge-page-cw-games,.course-page.course-page-cw-games{max-width:1920px;padding-left:.35rem;padding-right:.35rem}.course-card.course-card-cw-games{padding:.35rem}.challenge-page.challenge-page-cw-games .challenge-hub-command-grid,.course-page.course-page-cw-games .challenge-hub-command-grid{grid-template-columns:minmax(0,1.42fr) minmax(400px,.9fr);gap:1rem}.challenge-page.challenge-page-cw-games .challenge-hub-title-block,.course-page.course-page-cw-games .challenge-hub-title-block{max-width:40rem}.challenge-page.challenge-page-cw-games .challenge-hub-shelf-track,.course-page.course-page-cw-games .challenge-hub-shelf-track{grid-template-columns:repeat(auto-fit,minmax(244px,1fr))}}@media(prefers-reduced-motion:reduce){.challenge-hub-pane,.challenge-hub-featured-panel:before{animation:none}.challenge-hub-launch-card,.challenge-hub-lane-card,.challenge-primary-btn,.challenge-secondary-btn{transition:none}}.app-notice-banner{display:flex;align-items:center;justify-content:space-between;gap:.85rem;max-width:1100px;margin:.9rem auto 0;padding:.8rem 1rem;border-radius:.85rem;border:1px solid var(--border-subtle);background:var(--bg-surface);color:var(--text-primary);box-shadow:var(--shadow-sm)}.app-notice-banner.error{background:var(--danger-soft);color:var(--danger);border-color:var(--danger-border)}.app-notice-banner.info{background:var(--info-soft);color:var(--info);border-color:var(--info-border)}.app-notice-dismiss{border:1px solid var(--border-subtle);background:var(--button-secondary-bg);color:var(--button-secondary-text);border-radius:999px;padding:.35rem .7rem;font-weight:700;cursor:pointer}.nav-link-primary{font-weight:700}.nav-link-secondary{opacity:.78}.course-access-gate{display:flex;align-items:center;justify-content:center}.course-access-card{max-width:680px;width:min(100%,680px);padding:1.6rem 1.7rem;border-radius:1.1rem;border:1px solid var(--border-subtle);background:var(--bg-surface);box-shadow:var(--shadow-md);text-align:left}.course-access-kicker,.course-module-eyebrow{font-size:.78rem;font-weight:800;letter-spacing:.11em;text-transform:uppercase;color:var(--text-secondary)}.course-module-eyebrow.secondary{color:var(--warning)}.course-access-actions,.course-status-actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1rem}.course-module-copy{margin-top:.45rem;color:var(--text-secondary);line-height:1.5}.course-module-grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.course-module-card.secondary,.course-lesson-item.secondary{background:var(--bg-surface-muted);border-style:dashed}.course-module-card.challenge-module{position:relative;overflow:hidden;background:radial-gradient(circle at top right,rgba(255,214,102,.28),transparent 34%),radial-gradient(circle at bottom left,rgba(255,122,89,.2),transparent 36%),linear-gradient(145deg,#1e2d4f,#16213b 45%,#122c47);border-color:#ffb74d61;box-shadow:0 14px 34px #0d1b3733}.course-module-card.challenge-module:before{content:"";position:absolute;inset:0;background:linear-gradient(120deg,rgba(255,255,255,.08),transparent 30%,transparent 70%,rgba(255,255,255,.05));pointer-events:none}.course-module-card.challenge-module:hover{transform:translateY(-2px);box-shadow:0 18px 38px #0d1b373d;border-color:#ffd1667a}.course-module-card.challenge-module .course-module-title,.course-module-card.challenge-module .course-module-copy,.course-module-card.challenge-module .course-module-progress-text{color:#f7fbff}.course-module-eyebrow.challenge{color:#ffd166}.course-module-challenge-badges{display:flex;flex-wrap:wrap;gap:.55rem}.course-module-challenge-badges span{padding:.4rem .7rem;border-radius:999px;background:#ffffff1f;border:1px solid rgba(255,255,255,.14);color:#f7fbff;font-size:.78rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.course-module-challenge-callout{display:flex;align-items:center;justify-content:space-between;gap:.85rem;padding:.9rem 1rem;border-radius:.85rem;background:#ffffff1a;border:1px solid rgba(255,255,255,.12)}.course-module-challenge-count{color:#ffd166;font-size:.92rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase}.course-module-challenge-cta{color:#f7fbff;font-weight:700}.active-module-copy{margin:0 0 1rem}.app-error-boundary{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:2rem;background:var(--bg-app)}.app-error-card{width:min(100%,520px);padding:1.8rem;border-radius:1.1rem;border:1px solid var(--border-subtle);background:var(--bg-surface);box-shadow:var(--shadow-md)}.app-error-kicker{margin-bottom:.35rem;color:var(--danger);font-size:.8rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}@media(max-width:600px){.app-notice-banner{margin:.75rem 1rem 0;align-items:flex-start}.course-access-card{padding:1.2rem}.course-access-actions,.course-status-actions{flex-direction:column}.nav-actions{width:100%;justify-content:center;gap:.75rem}.nav-links{width:100%;align-items:center}.nav-links li{flex:1 1 auto;justify-content:center}}.logo,.nav-links li a{color:var(--nav-text)}.nav-links li a:hover{color:var(--nav-link-hover)}.nav-links li button{font:inherit}.theme-toggle-btn{display:inline-flex;align-items:center;gap:.45rem;min-height:36px;padding:.42rem .8rem;border-radius:999px;border:1px solid var(--border-subtle);background:var(--button-secondary-bg);color:var(--text-primary);cursor:pointer;transition:background .2s ease,border-color .2s ease,color .2s ease,transform .2s ease}.theme-toggle-btn:hover{background:var(--button-secondary-hover);border-color:var(--border-strong)}.theme-toggle-icon{font-size:1rem;line-height:1}.theme-toggle-label{font-size:.92rem;font-weight:700}.main-content h1,.main-content-home h1,.course-page h1,.course-page h2,.course-module-title,.course-lesson-title,.course-step-title,.course-runtime-subtitle,.streak-popup-title,.settings-page h2,.settings-modal h2,.modal h2{color:var(--text-primary)}.main-content-copy,.mode-desc,.course-lesson-desc,.course-lesson-why,.course-lesson-mastery,.course-control-current,.course-meta,.course-results-empty,.course-status-banner,.streak-popup-label,.streak-popup-last,.streak-popup-status,.settings-help-text,.settings-info-copy,.signup-modal-copy,.modal p{color:var(--text-secondary)}.get-started-btn,.morse-key-btn,.settings-primary-btn,.profile-menu-logout,.close-settings-btn,.modal-close-btn,.back-btn,.course-actions button,.course-status-retry,.course-touch-key.straight{background:var(--button-primary-bg);color:var(--button-primary-text);box-shadow:var(--shadow-sm)}.get-started-btn:hover,.morse-key-btn:hover,.settings-primary-btn:hover,.profile-menu-logout:hover,.close-settings-btn:hover,.modal-close-btn:hover,.back-btn:hover,.course-actions button:hover:not(:disabled),.course-status-retry:hover,.course-touch-key.straight:active{background:var(--button-primary-hover);color:var(--button-primary-text)}.settings-primary-btn:disabled,.course-actions button:disabled,.settings-danger-btn:disabled,.modal-secondary-btn:disabled{opacity:.55;cursor:not-allowed;box-shadow:none}.homepage-header,.mode-switch,.mode-panel,.transmit-ui,.receive-ui,.main-interface,.course-card,.course-control,.course-results,.course-step-panel,.course-module-card,.course-lesson-item,.course-results-card,.course-runtime-card,.settings-page,.settings-modal,.streak-popup,.profile-menu,.modal,.course-log-grid,.course-choice-button,.course-input textarea,.course-control select,.course-toggle,.course-warning,.course-requirement-item,.settings-info-card{background:var(--bg-surface);color:var(--text-primary);border-color:var(--border-subtle);box-shadow:var(--shadow-md)}.home-course-section,.core-app-layout,.course-page,.main-content-home,.main-content{background:var(--bg-app);color:var(--text-primary)}.mode-switch,.transmit-morse-display,.transmit-tip,.kbd,.course-meta,.course-status-banner,.course-runtime-metrics>div,.course-lesson-status,.course-warning,.course-control-current,.settings-info-card,.streak-popup-metric,.streak-popup-badge,.settings-danger-card,.modal-secondary-btn,.theme-choice-btn,.settings-meter-track{background:var(--bg-surface-muted);border-color:var(--border-subtle);color:var(--text-secondary)}.mode-btn,.profile-icon-btn,.course-choice-button,.course-toggle,.course-touch-key,.receive-input,.keyboard-key,.play-btn,.backspace-btn,.submit-btn,.next-btn,.modal-secondary-btn,.theme-choice-btn,.settings-meter-btn{background:var(--button-secondary-bg);color:var(--button-secondary-text);border-color:var(--border-subtle)}.mode-btn:not(.active):hover,.course-choice-button:hover,.course-toggle:hover,.course-touch-key:hover,.receive-input:focus,.keyboard-key:hover:not(:disabled),.play-btn:hover,.backspace-btn:hover,.submit-btn:hover,.next-btn:hover,.modal-secondary-btn:hover,.theme-choice-btn:hover,.settings-meter-btn:hover{background:var(--button-secondary-hover);color:var(--text-primary)}.mode-btn.active,.theme-choice-btn.active{background:var(--button-primary-bg);color:var(--button-primary-text);border-color:var(--button-primary-bg)}.transmit-letter,.receive-question,.settings-icon,.course-step-marker.current .course-step-dot,.course-step-marker.complete .course-step-dot,.course-module-progress-text b,.course-lesson-progress b,.course-status-banner b,.course-meta b{color:var(--accent)}.transmit-hint-morse,.course-prompt-text,.course-step-status,.course-requirement-item.pending,.streak-popup-kicker{color:var(--text-secondary)}.transmit-feedback.correct,.receive-feedback.correct,.course-results-card.passed,.course-review-chip.healthy,.course-weak-symbol-chip.good{background:var(--success-soft);color:var(--success);border-color:var(--success-border)}.transmit-feedback.incorrect,.receive-feedback.incorrect,.course-results-card.failed,.course-review-chip.overdue,.course-weak-symbol-chip.poor,.settings-danger-card,.settings-error-text{background:var(--danger-soft);color:var(--danger);border-color:var(--danger-border)}.course-review-chip.needs_review,.course-warning,.streak-popup-badge,.streak-icon-btn{background:var(--warning-soft);color:var(--warning);border-color:var(--warning-border)}.course-weak-symbol-chip.unseen{background:var(--bg-chip-neutral);color:var(--text-muted);border-color:var(--border-subtle)}.course-status-banner.info,.adaptive-recommendation,.course-philosophy-banner,.course-choice-button.selected,.course-requirement-item.done{background:var(--info-soft);color:var(--info);border-color:var(--info-border)}.course-module-card,.course-lesson-item,.course-step-panel,.course-results-card,.course-choice-button,.course-log-grid,.course-control,.course-runtime-card,.settings-page,.settings-modal,.modal,.streak-popup,.profile-menu{border:1px solid var(--border-subtle)}.course-timer-pie{background:conic-gradient(var(--accent) calc(var(--progress) * 1turn),var(--bg-surface-muted) 0);box-shadow:inset 0 0 0 6px var(--bg-surface),var(--shadow-sm)}.course-step-pie,.course-module-pie,.course-lesson-pie{box-shadow:inset 0 0 0 4px var(--bg-surface),var(--shadow-sm)}.course-timer-pie-label,.course-module-progress-text,.course-lesson-progress,.course-lesson-mastery,.course-results h2,.course-results-empty,.course-step-panel-title,.course-step-title,.course-control label,.course-toggle-row,.course-toggle,.course-runtime-header,.course-runtime-metrics>div,.course-requirement-item,.settings-row label,.settings-row span,.profile-menu-email,.modal-form-label,.modal-stage-label{color:var(--text-primary)}.slider,.letter-progress-bar,.dot,.progress-box,.settings-meter-track{background:var(--bg-chip-neutral)}.settings-meter-fill{background:var(--success)}.course-step-segment.complete,.progress-box.filled,.switch input:checked+.slider,.letter-progress-half.left,.letter-progress-half.right{background:var(--accent)}.course-input textarea,.course-control select,.course-control input,.settings-row input,.settings-row select,.modal-form-input,.modal-form-textarea,.modal-form-field input,.modal-form-field select{width:100%;padding:.75rem;border-radius:.65rem;border:1px solid var(--input-border);background:var(--bg-input);color:var(--text-primary)}.modal-form-textarea{min-height:10rem;resize:vertical}.modal-backdrop,.settings-modal-overlay{background:var(--bg-overlay)}.profile-menu{position:absolute;right:0;top:40px;min-width:200px;z-index:2000;padding:1rem;border-radius:.85rem}.profile-menu-email{margin-bottom:.75rem;font-weight:500;word-break:break-all}.profile-menu-logout{width:100%;padding:.65rem .85rem;border:none;border-radius:.55rem;font-weight:700;cursor:pointer}.settings-inline-fields{display:flex;gap:1rem;flex-wrap:wrap}.settings-field,.modal-form-field{display:flex;flex-direction:column;gap:.35rem;min-width:200px}.settings-field-compact{min-width:120px}.settings-field-wide{min-width:260px}.settings-action-row,.modal-actions-start{margin-top:.6rem}.settings-help-text,.settings-meter-label,.settings-danger-text,.feedback-success-copy{font-size:.95rem}.settings-meter-btn{border:1px solid var(--border-subtle);border-radius:.6rem;padding:.45rem .85rem;cursor:pointer}.settings-meter-btn.active{background:var(--danger);color:var(--text-inverse);border-color:transparent}.settings-meter-block{margin-top:.5rem}.settings-meter-label{margin-bottom:.3rem;color:var(--text-secondary)}.settings-meter-track{width:240px;height:10px;border-radius:6px;overflow:hidden}.settings-meter-fill{height:100%;border-radius:6px}.settings-error-text{margin-top:.35rem;font-size:.9rem}.settings-status-banner{width:100%;border:1px solid var(--border-subtle);border-radius:.8rem;padding:.8rem 1rem;margin:0 0 1.5rem;font-size:.95rem;font-weight:600}.settings-status-banner.success{background:var(--success-soft);color:var(--success);border-color:var(--success-border)}.settings-status-banner.error{background:var(--danger-soft);color:var(--danger);border-color:var(--danger-border)}.settings-footer-actions{width:100%;display:flex;justify-content:flex-end;gap:.75rem;margin:0 0 1.5rem}.settings-info-card{text-align:center;padding:1rem;border-radius:.8rem;border:1px solid var(--border-subtle)}.settings-primary-btn{border:none;border-radius:.65rem;padding:.65rem 1rem;font-size:.95rem;font-weight:700;cursor:pointer}.theme-choice-group{display:inline-flex;gap:.5rem;flex-wrap:wrap}.theme-choice-btn{padding:.55rem .9rem;border-radius:999px;border:1px solid var(--border-subtle);cursor:pointer;font-weight:700}.modal-wide{max-width:520px;width:90%}.signup-modal-content{min-width:320px;width:min(92vw,520px);max-width:520px;position:relative;text-align:left;padding-top:2.3rem}.modal-x-btn{position:absolute;top:8px;right:8px;background:transparent;color:var(--text-secondary);border:none;font-size:1.7rem;cursor:pointer}.modal-x-btn:hover,.modal-x-btn:focus-visible{color:var(--text-primary);background:var(--button-ghost-hover)}.signup-modal-copy{margin-top:0;line-height:1.6}.signup-modal-form,.signup-modal-stack{display:flex;flex-direction:column;gap:.85rem}.course-module-card.secondary .course-module-title,.course-lesson-item.secondary .course-lesson-title{color:var(--text-primary)}.course-module-card.secondary .course-module-copy,.course-lesson-item.secondary .course-lesson-desc,.course-lesson-item.secondary .course-lesson-why{color:var(--text-secondary)}.course-module-card.challenge-module .course-module-copy{color:#f7fbffe0}.course-meta,.course-status-banner{line-height:1.55}.course-status-banner>div:first-child{flex:1 1 auto}.course-runtime-metrics{display:flex;flex-wrap:wrap;gap:.75rem}.course-runtime-metrics>div{min-width:9.5rem}.course-lesson-title-row{align-items:flex-start}.course-lesson-progress{min-width:6.5rem}.modal-form-row{margin-bottom:1rem}.modal-form-label{display:block;margin-bottom:.5rem;font-weight:600}.modal-actions{display:flex;gap:1rem;justify-content:flex-end}.modal-secondary-btn{padding:.75rem 1.25rem;border-radius:.65rem;border:1px solid var(--border-subtle);cursor:pointer;font-size:1rem}@media(max-width:600px){.theme-toggle-btn,.create-account-link,.settings-icon,.profile-icon-btn,.streak-icon-btn{min-height:40px}.course-page{margin:1.1rem auto 2rem}.course-step-panel{max-height:none}.course-step-item{align-items:flex-start}.course-step-marker{padding-top:.1rem}.signup-modal-content{width:min(95vw,520px);padding-top:2.5rem}.modal-actions,.course-status-actions{width:100%;flex-direction:column}.course-runtime-header{gap:.75rem}.course-runtime-metrics>div{min-width:100%}.course-results-card,.course-status-banner,.course-card,.course-module-card,.course-lesson-item{padding-left:1rem;padding-right:1rem}.course-lesson-title-row{align-items:flex-start}.course-lesson-progress{align-self:stretch;min-width:0}.settings-inline-fields,.settings-footer-actions{flex-direction:column}}.feedback-success-state{text-align:center;padding:2rem}.feedback-success-icon{font-size:3rem;margin-bottom:1rem}.feedback-success-copy{color:var(--success);font-size:1.1rem;margin:0}.main-content-copy{max-width:520px;text-align:center;color:var(--text-secondary);margin-bottom:1.5rem}.profile-icon-btn{background:var(--bg-surface-muted);color:var(--text-secondary)}.settings-icon{color:var(--accent);background:transparent;border:none;border-radius:.6rem;padding:.2rem}.streak-icon-btn{box-shadow:none}.streak-icon-btn.active .streak-icon-count,.streak-icon-count,.streak-icon-glyph,.streak-icon-btn.active .streak-icon-glyph,.streak-popup-kicker{color:var(--warning)}.streak-popup-badge.active{background:var(--button-primary-bg);border-color:transparent;color:var(--button-primary-text)}.settings-danger-title{color:var(--danger)}.settings-danger-btn{justify-self:start;border:none;background:var(--button-destructive-bg);color:var(--button-destructive-text);border-radius:.6rem;padding:.5rem 1rem;font-weight:600;cursor:pointer}.settings-danger-btn:hover:not(:disabled){background:var(--button-destructive-hover)}.sbui-modal-close,.sbui-modal__close,.supabase-auth-ui .sbui-btn-container,button[aria-label=Close]{color:var(--info)!important;background:transparent!important}.sbui-modal-close:hover,.sbui-modal__close:hover,.supabase-auth-ui .sbui-btn-container:hover,button[aria-label=Close]:hover{color:var(--text-primary)!important;background:var(--info-soft)!important}.homepage-header{background:var(--nav-bg);box-shadow:var(--shadow-sm)}.sidebar-levels{width:220px;background:#181818;color:#fff;padding:2rem 1rem 2rem 1.5rem;height:100vh;box-shadow:2px 0 12px #0000000a;display:flex;flex-direction:column;align-items:flex-start;overflow-y:auto;position:relative}.sidebar-title{font-size:1.2rem;font-weight:700;margin-bottom:1.5rem;letter-spacing:1px;color:#e53935}.sidebar-level-list{list-style:none;padding:0;margin:0;width:100%}.sidebar-level-item{width:100%;padding:.75rem 1rem;margin-bottom:.5rem;border-radius:.75rem;cursor:pointer;background:transparent;color:#fff;display:flex;flex-direction:column;border:2px solid transparent;transition:background .2s,border .2s,color .2s;position:relative;text-align:left;font:inherit}.sidebar-level-item:focus-visible{outline:2px solid #1d4ed8;outline-offset:2px}.sidebar-level-item.active{background:#fff;color:#e53935;border:2px solid #e53935;font-weight:700}.sidebar-level-item.complete .sidebar-level-label{color:#388e3c}.sidebar-level-item:hover:not(.active){background:#222;color:#e53935}.sidebar-level-label{font-size:1rem;font-weight:600;margin-bottom:.25rem}.sidebar-level-chars{font-size:.95rem;color:#bbb;letter-spacing:1px}.sidebar-level-check{position:absolute;right:1rem;top:1rem;color:#388e3c;font-size:1.2rem;font-weight:700}.sidebar-char{display:flex;align-items:center;margin-right:.5em;font-size:1.1em;color:#bbb;font-weight:600;transition:color .2s}.sidebar-char.char-complete{color:#388e3c;font-weight:700}.total-progress-container{width:100%;margin-bottom:1.5rem;display:flex;flex-direction:column;align-items:flex-start}.total-progress-label{font-size:1rem;font-weight:600;margin-bottom:.5rem;color:#e53935;letter-spacing:.5px}.total-progress-bar-bg{width:100%;height:16px;background:#292929;border-radius:8px;overflow:hidden;margin-bottom:.5rem;box-shadow:0 1px 4px #00000014}.total-progress-bar-fill{height:100%;background:linear-gradient(90deg,#e53935,#ffb300);border-radius:8px 0 0 8px;transition:width .5s cubic-bezier(.4,0,.2,1)}.total-progress-percent{font-size:.95rem;color:#bbb;font-weight:500;margin-left:2px}.letter-progress-bar{display:inline-block;vertical-align:middle;width:22px;height:7px;margin:0 .15em;background:#eee;border-radius:4px;overflow:hidden;position:relative}.letter-progress-half{display:inline-block;height:100%;position:absolute;top:0;transition:width .3s}.letter-progress-half.left{left:0;background:#e53935;border-radius:4px 0 0 4px;z-index:1}.letter-progress-half.right{right:0;background:#ffb300;border-radius:0 4px 4px 0;z-index:1}.letter-progress-dots{display:inline-flex;align-items:center;gap:.18em;font-size:.68em;margin-left:.18em;vertical-align:middle}.mode-indicator{font-weight:700;margin:0 .08em 0 .22em;color:#888;font-size:.92em}.dot{display:inline-block;width:.65em;height:.65em;border-radius:50%;background:#eee;color:#bbb;text-align:center;line-height:.65em;font-size:1em;margin:0 .04em;transition:background .2s,color .2s}.dot.filled{background:#43a047;color:#fff}.letter-progress-checks{display:inline-flex;align-items:center;gap:.08em;font-size:.72em;margin-left:.12em;vertical-align:middle}.check{font-size:1em;margin:0 .01em;vertical-align:middle;opacity:.85}.letter-progress-boxes{display:inline-flex;align-items:center;gap:.08em;font-size:.72em;margin-left:.12em;vertical-align:middle}.letter-label{font-size:1.25em;font-weight:800;color:#222;letter-spacing:1px;margin-right:.18em;vertical-align:middle;transition:color .2s,background .2s}.sidebar-level-item:not(.active) .letter-label,.sidebar-char .letter-label{color:#fff;background:#222;border-radius:.22em;padding:.04em .22em;font-weight:800}.progress-box{display:inline-flex;align-items:center;justify-content:center;width:1.1em;height:1.1em;border-radius:.18em;background:#eee;color:#bbb;font-size:.92em;font-weight:500;margin:0 .03em;border:1.5px solid #ddd;box-sizing:border-box;transition:background .2s,color .2s;letter-spacing:0}.progress-box.filled{background:#43a047;color:#fff;border-color:#43a047;font-weight:700}.letter-score-bar-wrapper{display:flex;align-items:center;min-width:54px;position:relative;margin:0 .08em}.letter-score-bar-bg{width:48px;height:7px;background:#e6f4ea;border-radius:4px;overflow:hidden;position:relative;margin-right:2px;margin-left:2px;display:inline-block}.letter-score-bar-bg.mode-transmit{background:#e6f4ea}.letter-score-bar-bg.mode-receive{background:#e3f0fa}.letter-score-bar-fill{height:100%;background:linear-gradient(90deg,#43a047,#4fc3f7);border-radius:4px 0 0 4px;transition:width .3s cubic-bezier(.4,0,.2,1);position:absolute;left:0;top:0;z-index:1}.letter-score-bar-threshold{position:absolute;top:0;bottom:0;width:1px;background:#000;opacity:.7;z-index:2}.letter-score-check{display:none}.letter-score-bars-vertical{display:flex;flex-direction:column;gap:2px;margin-left:.4em;margin-right:.1em;align-items:flex-start}.letter-score-bar-fill.blue{background:#4fc3f7}.letter-score-bar-fill.green{background:#43a047}@media(max-width:600px){.sidebar-levels{display:none}.mobile-progress-nav{display:flex;position:fixed;bottom:0;left:0;width:100vw;background:#181818;color:#fff;z-index:1000;align-items:center;justify-content:space-between;padding:.5rem;box-shadow:0 -2px 12px #0000001f;min-height:64px}.mobile-progress-left{flex:1 1 50%;display:flex;align-items:center;justify-content:flex-start;padding-left:.7rem}.mobile-progress-right{flex:1 1 50%;display:flex;align-items:center;justify-content:flex-end;padding-right:.7rem;gap:.5rem}.mobile-level-switcher{background:#292929;color:#e53935;border:none;border-radius:8px;padding:.5rem 1rem;font-size:1rem;font-weight:600;cursor:pointer;min-width:80px;min-height:44px;box-shadow:0 1px 4px #00000014}.mobile-level-switcher:focus-visible{outline:2px solid #1d4ed8;outline-offset:2px}.mobile-level-chars-inline{display:flex;gap:.3rem;margin-right:.5rem}.mobile-level-char-inline{display:inline-block;min-width:28px;min-height:32px;font-size:1.1em;color:#bbb;font-weight:600;background:none;border:none;border-radius:6px;text-align:center;line-height:32px;padding:0 .15em;transition:color .2s,background .2s}.mobile-level-char-inline.char-complete{color:#388e3c;font-weight:700}.mobile-level-modal-backdrop{position:fixed;top:0;left:0;width:100vw;height:100vh;background:#00000080;z-index:2000;display:flex;align-items:flex-end;justify-content:center}.mobile-level-modal{background:#222;width:100vw;max-height:80vh;border-radius:18px 18px 0 0;box-shadow:0 -2px 16px #0000002e;padding:1.2rem .5rem 2rem;overflow-y:auto;position:relative;display:flex;flex-direction:column;align-items:stretch}.mobile-level-modal-header{display:flex;align-items:center;justify-content:space-between;font-size:1.2rem;font-weight:700;color:#fff;margin-bottom:1rem;padding:0 .5rem}.mobile-level-modal-close{background:none;border:none;color:#fff;font-size:2rem;cursor:pointer;margin-left:1rem;line-height:1}.mobile-level-modal-close:focus-visible{outline:2px solid #1d4ed8;outline-offset:2px;border-radius:.3rem}.mobile-level-modal-list{list-style:none;padding:0;margin:0;width:100%}.mobile-level-modal-item{width:100%;padding:.7rem 1rem;margin-bottom:.5rem;border-radius:.75rem;cursor:pointer;background:transparent;color:#fff;display:flex;flex-direction:column;border:2px solid transparent;transition:background .2s,border .2s,color .2s;position:relative;text-align:left;font:inherit}.mobile-level-modal-item:focus-visible{outline:2px solid #1d4ed8;outline-offset:2px}.mobile-level-modal-item.active{background:#fff;color:#e53935;border:2px solid #e53935;font-weight:700}.mobile-level-modal-label{font-size:1rem;font-weight:600;margin-bottom:.25rem}.mobile-level-modal-chars{font-size:.95rem;color:#bbb;letter-spacing:1px}.mobile-level-modal-char{display:inline-block;margin-right:.5em;font-size:1.1em;color:#bbb;font-weight:600;transition:color .2s}.mobile-level-modal-char.char-complete{color:#388e3c;font-weight:700}.mobile-progress-bar{display:flex;flex-direction:column;align-items:flex-start;min-width:60px;font-size:.95rem}.mobile-progress-label{color:#e53935;font-weight:600;margin-bottom:2px;font-size:.95rem}.mobile-progress-bar-bg{width:60px;height:8px;background:#292929;border-radius:4px;overflow:hidden;margin-bottom:.5rem;box-shadow:0 1px 4px #00000014}.mobile-progress-bar-fill{height:100%;background:linear-gradient(90deg,#e53935,#ffb300);border-radius:4px 0 0 4px;transition:width .5s cubic-bezier(.4,0,.2,1)}}.sidebar-levels{background:var(--bg-surface-strong);color:var(--text-primary);box-shadow:var(--shadow-sm)}.sidebar-level-item:focus-visible,.mobile-level-switcher:focus-visible,.mobile-level-modal-item:focus-visible,.mobile-level-modal-close:focus-visible{outline:2px solid var(--focus-ring-color);outline-offset:2px}.sidebar-title,.total-progress-label,.mobile-progress-label{color:var(--accent)}.sidebar-level-item{color:var(--text-primary)}.sidebar-level-item.active{background:var(--bg-surface);color:var(--accent);border-color:var(--accent)}.sidebar-level-item:hover:not(.active),.mobile-level-switcher,.mobile-level-modal-item:hover:not(.active){color:var(--accent)}.sidebar-level-item.complete .sidebar-level-label,.sidebar-level-check,.sidebar-char.char-complete,.dot.filled,.progress-box.filled,.letter-score-bar-fill.green,.mobile-level-modal-char.char-complete{color:var(--success)}.sidebar-level-item:hover:not(.active),.sidebar-level-item:not(.active) .letter-label,.letter-label,.mobile-level-modal,.mobile-level-switcher,.mobile-progress-nav{background:var(--bg-surface-muted)}.sidebar-level-chars,.sidebar-char,.total-progress-percent,.mode-indicator,.progress-box,.dot,.mobile-level-modal-char{color:var(--text-muted)}.total-progress-bar-bg,.mobile-progress-bar-bg,.letter-score-bar-bg.mode-transmit,.letter-score-bar-bg.mode-receive{background:var(--bg-chip-neutral);box-shadow:none}.total-progress-bar-fill,.mobile-progress-bar-fill,.letter-score-bar-fill{background:linear-gradient(90deg,var(--accent) 0%,var(--warning) 100%)}.letter-score-bar-fill.blue{background:var(--info)}.letter-progress-bar,.dot,.progress-box{background:var(--bg-chip-neutral);border-color:var(--border-subtle)}.letter-progress-half.left{background:var(--accent)}.letter-progress-half.right{background:var(--warning)}.letter-label{color:var(--text-primary)}.sidebar-level-item:not(.active) .letter-label,.sidebar-char .letter-label{color:var(--text-primary);background:var(--bg-surface-muted)}.progress-box.filled{background:var(--success);border-color:var(--success)}.mobile-level-modal{color:var(--text-primary);box-shadow:var(--shadow-lg)}.mobile-progress-nav{color:var(--text-primary);box-shadow:0 -2px 12px color-mix(in srgb,var(--shadow-color) 18%,transparent)}.mobile-level-modal-header,.mobile-level-modal-close,.mobile-level-modal-item,.mobile-level-switcher{color:var(--text-primary)}.mobile-level-modal-item.active{background:var(--bg-surface);color:var(--accent);border-color:var(--accent)}.mobile-level-modal-chars,.mobile-level-modal-char{color:var(--text-muted)}.letter-score-bar-threshold{background:var(--border-strong)}
