:root{--navy:#0b3c5d;--navy-deep:#092f49;--teal:#00a8a8;--teal-dark:#007e80;--paper:#f4f6f8;--white:#fff;--ink:#1f2933;--muted:#64727f;--line:#dce3e8;--terminal:#102231;--terminal-2:#172c3b;--green:#128269;--red:#b54747;--shadow:0 15px 40px rgba(18,44,62,.07)}*{box-sizing:border-box}html{font-size:16px}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--cp-font-body);line-height:1.5}.topbar{background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 clamp(18px,5vw,68px)}.brand{display:flex;align-items:center}.brand img{display:block;width:min(244px,45vw);height:auto}.topbar-right{display:flex;align-items:center}.roadmap-link{font-size:.9rem;color:var(--navy);text-decoration:none;font-weight:650}.roadmap-link:hover{text-decoration:underline;text-underline-offset:4px}.roadmap-link span{color:var(--teal);margin-left:4px}.brand-label{color:#667987;font-size:.72rem;font-weight:750;letter-spacing:.12em}.app-shell{width:min(1280px,100% - 40px);margin:0 auto}.mission-head{display:flex;align-items:flex-end;justify-content:space-between;gap:32px;padding:34px 2px 24px}.eyebrow{font-size:.72rem;letter-spacing:.13em;font-weight:800;color:var(--teal-dark);margin:0 0 8px}.live-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--teal);margin-right:7px}.mission-head h1{font-size:clamp(1.9rem,3vw,2.45rem);line-height:1.12;color:var(--navy);margin:0;letter-spacing:-.04em}.mission-intro{color:#536371;max-width:690px;margin:10px 0 0;font-size:1rem}.mission-stats{width:225px;flex:0 0 225px;padding-bottom:4px}.stat-line{display:flex;align-items:baseline;justify-content:space-between}.stat-value{display:block;color:var(--navy);font-size:1rem;font-weight:800;font-variant-numeric:tabular-nums}.xp-total{color:var(--teal-dark);font-size:.82rem;font-weight:800;font-variant-numeric:tabular-nums}.stat-label{font-size:.68rem;font-weight:750;letter-spacing:.1em;color:#687783}.progress-track{height:6px;border-radius:9px;background:#dae3e8;margin-top:10px;overflow:hidden}.progress-track span{height:100%;display:block;width:0;background:var(--teal);border-radius:inherit;transition:width .25s ease}.game-layout{display:grid;grid-template-columns:246px minmax(0,1fr);gap:20px;align-items:start}.mission-rail,.mission-panel{border:1px solid var(--line);background:#fff;border-radius:12px;box-shadow:var(--shadow)}.mission-rail{padding:16px 12px 12px}.rail-heading{display:flex;justify-content:space-between;padding:2px 8px 12px;color:#64727f;font-size:.67rem;font-weight:800;letter-spacing:.12em}.rail-heading span:last-child{font-variant-numeric:tabular-nums;color:#8b969e}.level-list{display:grid;gap:5px}.level-button{width:100%;display:grid;grid-template-columns:34px 1fr 17px;align-items:center;text-align:left;border:1px solid transparent;border-radius:8px;background:transparent;padding:9px 8px;color:var(--ink);cursor:pointer;font:inherit}.level-button:hover:not(:disabled){background:#f1f6f8}.level-button.active{background:#eaf4f6;border-color:#d5eaeb;color:var(--navy)}.level-button:disabled{cursor:not-allowed;opacity:.48}.level-number{width:27px;height:27px;display:grid;place-items:center;border-radius:50%;font-size:.76rem;font-weight:800;background:#eef2f4;color:#536371;font-variant-numeric:tabular-nums}.level-button.active .level-number{background:var(--navy);color:white}.level-button.complete .level-number{background:#d9f1e9;color:#126d59}.level-info{min-width:0}.level-info strong{display:block;font-size:.86rem;font-weight:720}.level-info small{display:block;color:#77838b;font-size:.75rem;line-height:1.35;margin-top:1px}.level-state{font-size:.8rem;color:#18816b}.rail-resource{margin:16px 2px 2px;padding:12px 9px;border-radius:8px;background:#f1f6f8;display:flex;gap:9px;color:var(--navy);text-decoration:none}.resource-icon{flex:0 0 26px;height:26px;display:grid;place-items:center;border-radius:6px;background:#dcefee;color:#087d7e;font-weight:800}.rail-resource strong{display:block;font-size:.78rem;line-height:1.3}.rail-resource small{display:block;font-size:.73rem;color:#657580;margin-top:3px}.rail-resource:hover strong{text-decoration:underline}.mission-panel{overflow:hidden}.mission-bar{background:#edf3f5;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 23px}.mission-number,.mission-topic,.mission-xp{font-size:.69rem;font-weight:800;letter-spacing:.09em}.mission-number{color:var(--navy)}.mission-tags{display:flex;gap:17px;align-items:center}.mission-topic{color:#647480}.mission-xp{color:var(--teal-dark)}.mission-copy{padding:23px 26px 0}.mission-title-row{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.mission-title-row h2{font-size:1.4rem;line-height:1.2;color:var(--navy);margin:0;letter-spacing:-.025em}.mission-title-row p{margin:6px 0 0;color:#4f5e69;font-size:.95rem;max-width:780px}.clear-stamp{padding:4px 9px;border-radius:99px;background:#daf1e9;color:#126d59;font-size:.66rem;letter-spacing:.08em;font-weight:850;white-space:nowrap}.objective-box{margin-top:18px;padding:12px 14px;background:#eff8f8;border:1px solid #d6ecec;border-radius:8px;display:flex;align-items:flex-start;gap:10px}.objective-mark{font-size:1.2rem;color:var(--teal-dark);line-height:1.15}.objective-box strong{display:block;font-size:.67rem;letter-spacing:.11em;color:var(--teal-dark)}.objective-box p{margin:3px 0 0;font-size:.94rem;color:#253b46}.hint-row{margin:11px 1px 0;min-height:30px}.text-button{border:0;background:transparent;padding:2px 0;color:#167f80;font-size:.82rem;font-weight:720;cursor:pointer}.text-button:hover{text-decoration:underline}.hint-row p{font-size:.86rem;color:#596975;padding:9px 12px;background:#f5f7f8;border-radius:6px}.schema-card{margin:13px 26px 0;border:1px solid #dfe7eb;border-radius:7px;background:#f8fafb}.schema-card summary{padding:9px 12px;cursor:pointer;color:#355365;font-size:.82rem;font-weight:750;list-style:none}.schema-card summary::-webkit-details-marker{display:none}.schema-card summary:after{content:"+";float:right;color:#128b8c;font-size:1rem}.schema-card[open] summary:after{content:"−"}.schema-card summary span{margin-right:15px;color:#74828b;font-size:.72rem;font-weight:500}.schema-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding:0 10px 10px}.schema-grid>div{min-width:0;border-radius:5px;background:#fff;padding:8px;border:1px solid #e6ecef}.schema-grid strong{display:block;color:#0b3c5d;font-size:.77rem}.schema-grid code{display:block;margin-top:4px;color:#63727b;white-space:normal;font-size:.7rem;line-height:1.4}.editor-heading{margin:13px 26px 8px;display:flex;justify-content:space-between;align-items:end;gap:14px}.editor-label{display:block;color:#334c5c;font-size:.72rem;letter-spacing:.1em;font-weight:850}.editor-subtitle{display:block;margin-top:2px;font-size:.83rem;color:#77838b}.reset-button{border:0;padding:4px 0;background:transparent;color:#647480;font-size:.79rem;font-weight:650;cursor:pointer}.reset-button:hover{color:var(--navy);text-decoration:underline}.editor-wrap{margin:0 26px;background:var(--terminal);border:1px solid #243d4f;border-radius:8px;display:grid;grid-template-columns:42px minmax(0,1fr);min-height:130px;overflow:hidden}.editor-gutter{border-right:1px solid rgba(255,255,255,.09);background:rgba(255,255,255,.025);padding:15px 12px;color:#708493;font-size:.82rem;font-family:var(--cp-font-code)}.editor-wrap textarea{resize:vertical;min-height:130px;border:0;outline:0;background:transparent;padding:13px 15px;color:#e9f3f6;font: .9rem/1.65 var(--cp-font-code);tab-size:2;white-space:pre;overflow:auto}.editor-wrap textarea::placeholder{color:#8196a3}.editor-wrap:focus-within{outline:2px solid #50c8c1;outline-offset:2px}.editor-footer{display:flex;justify-content:space-between;gap:12px;margin:6px 27px 0;color:#78858e;font-size:.72rem}.action-row{display:flex;align-items:center;gap:12px;margin:13px 26px 18px}.run-button{border:0;border-radius:7px;background:var(--teal);color:#062f40;padding:10px 17px;font-size:.88rem;font-weight:800;cursor:pointer;box-shadow:0 3px 0 #00898b}.run-button:hover{background:#19b9b4;transform:translateY(-1px)}.run-button:active{transform:translateY(1px);box-shadow:none}.run-button:disabled{opacity:.6;cursor:wait;transform:none}.run-button span{font-size:.72rem;margin-right:6px}.run-note{font-size:.78rem;color:#78858e}.output-panel{border-top:1px solid var(--line);background:#fbfcfd}.output-head{height:43px;display:flex;align-items:center;justify-content:space-between;padding:0 26px;border-bottom:1px solid #e7ecef}.output-head h3{font-size:.68rem;letter-spacing:.11em;color:#516371;margin:0}.output-status{font-size:.66rem;font-weight:800;letter-spacing:.08em;color:#8c989f}.output-status.success{color:#16806a}.output-status.error{color:#a13e3e}.output-content{min-height:72px;max-height:255px;overflow:auto;padding:12px 26px}.empty-output{margin:10px 0;color:#82909a;font-size:.88rem}.table-wrap{max-width:100%;overflow:auto}table{width:100%;border-collapse:collapse;font-size:.84rem;white-space:nowrap}th{text-align:left;background:#eef3f5;color:#435967;font-size:.72rem;letter-spacing:.04em;padding:8px 10px}td{padding:8px 10px;border-bottom:1px solid #e9edef;color:#253641}tr:last-child td{border-bottom:0}.row-count{margin:8px 0 0;color:#73818b;font-size:.76rem}.error-message{margin:7px 0;color:#a53b3b;font: .84rem/1.5 var(--cp-font-code);white-space:pre-wrap}.next-row{padding:12px 26px 15px;display:flex;align-items:center;justify-content:space-between;gap:14px;min-height:53px}.next-row p{margin:0;color:#65737d;font-size:.83rem}.next-row p.success-copy{color:#147761;font-weight:680}.next-row p.error-copy{color:#a13e3e}.next-button{border:0;background:var(--navy);color:#fff;border-radius:7px;padding:9px 13px;font:inherit;font-size:.82rem;font-weight:750;cursor:pointer;white-space:nowrap}.next-button:hover{background:#10557e}.site-footer{display:flex;justify-content:space-between;padding:17px 2px 28px;color:#75818a;font-size:.75rem}.site-footer span:first-child{color:#526674;font-weight:750}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}button:focus-visible,a:focus-visible{outline:3px solid #00a8a8;outline-offset:3px}@media(max-width:850px){.game-layout{grid-template-columns:1fr;gap:13px}.mission-rail{padding:12px}.rail-heading{padding:2px 7px 8px}.level-list{display:flex;overflow-x:auto;gap:7px;padding:2px 1px 8px;scrollbar-width:thin}.level-button{flex:0 0 154px;grid-template-columns:31px 1fr 14px;padding:7px 6px}.level-info strong{font-size:.82rem}.level-info small{font-size:.7rem}.rail-resource{margin-top:8px}.mission-head{padding-top:25px}.mission-stats{width:190px;flex-basis:190px}}@media(max-width:560px){.topbar{height:64px;padding:0 16px}.brand img{width:min(205px,52vw)}.topbar-right{gap:0}.brand-label{display:none}.roadmap-link{font-size:.8rem}.app-shell{width:calc(100% - 24px)}.mission-head{display:block;padding:22px 1px 16px}.mission-head h1{font-size:1.85rem}.mission-intro{font-size:.91rem}.mission-stats{width:100%;margin-top:16px}.game-layout{gap:10px}.mission-panel{border-radius:10px}.mission-bar{padding:0 15px;height:42px}.mission-tags{gap:9px}.mission-number,.mission-topic,.mission-xp{font-size:.61rem}.mission-copy{padding:18px 16px 0}.mission-title-row h2{font-size:1.25rem}.mission-title-row p{font-size:.88rem}.objective-box{margin-top:14px;padding:10px}.objective-box p{font-size:.88rem}.editor-heading{margin:13px 16px 7px}.editor-subtitle{font-size:.78rem}.editor-wrap{margin:0 16px;grid-template-columns:34px minmax(0,1fr)}.editor-gutter{padding:13px 9px}.editor-wrap textarea{padding:11px 10px;font-size:.83rem}.editor-footer{margin:6px 17px 0;font-size:.66rem}.action-row{margin:12px 16px 15px;gap:9px}.run-button{padding:9px 13px}.run-note{font-size:.72rem}.output-head{padding:0 16px}.output-content{padding:10px 16px}.next-row{padding:11px 16px 13px;align-items:flex-start;flex-direction:column}.next-row p{font-size:.8rem}.next-button{align-self:flex-end}.site-footer{padding:14px 2px 22px;font-size:.7rem}.level-button{flex-basis:147px}}

@media(max-width:560px){.schema-card{margin:12px 16px 0}.schema-grid{grid-template-columns:1fr}.schema-card summary span{font-size:.68rem}}

/* Theme choice and mission-control surfaces. */
html{color-scheme:light}.theme-toggle{border:1px solid var(--line);border-radius:7px;padding:9px 12px;background:var(--paper);color:var(--navy);font:inherit;font-size:.875rem;font-weight:700;cursor:pointer;white-space:nowrap}.topbar{height:auto;min-height:72px;gap:16px;padding-top:12px;padding-bottom:12px}.topbar-right{flex-wrap:wrap;justify-content:flex-end;gap:12px}.mission-tags{flex-wrap:wrap;font-size:.875rem}.mission-panel,.mission-rail{min-width:0}.mission-title-row>div{min-width:0}.editor-subtitle,.run-note,.next-row p,.mission-title-row p,.objective-box p{font-size:1rem}.editor-label,.output-head h3,.rail-heading,.stat-label,.editor-footer,.level-info small,.schema-grid code,.schema-card summary,.theme-toggle,.row-count{font-size:.875rem}.site-footer{gap:16px;flex-wrap:wrap}.schema-card summary span{float:none;display:block;margin:3px 0 0}.action-row{flex-wrap:wrap}.editor-wrap textarea{width:100%;font-size:1rem}.editor-gutter{white-space:pre-line}.mission-bar{min-height:46px;height:auto;padding-top:10px;padding-bottom:10px;gap:12px}.mission-title-row p{overflow-wrap:anywhere}
html[data-theme="dark"]{color-scheme:dark;--navy:#e2f4ff;--navy-deep:#c2e9ff;--teal:#38e5ce;--teal-dark:#5aefd9;--paper:#070d18;--white:#101d2d;--ink:#e0ebf5;--muted:#a1b4c7;--line:#273e55;--terminal:#050d17;--terminal-2:#11253a;--green:#60e6b2;--red:#ff969d;--shadow:0 18px 50px #0005}
[data-theme="dark"] body{background-color:var(--paper);background-size:auto,48px 48px,48px 48px;background-attachment:fixed}
[data-theme="dark"] .topbar{background:#0b1523;border-color:#2d4960}[data-theme="dark"] .brand{background:#fff;padding:7px 10px;border-radius:6px}[data-theme="dark"] .mission-head h1{letter-spacing:-.025em}[data-theme="dark"] .mission-rail,[data-theme="dark"] .mission-panel{background:#0e1a2a;border-radius:8px}[data-theme="dark"] .mission-panel{}[data-theme="dark"] .mission-bar{background:#13263a}[data-theme="dark"] .mission-number,[data-theme="dark"] .eyebrow,[data-theme="dark"] .xp-total,[data-theme="dark"] .mission-tags,[data-theme="dark"] .rail-heading{font-family:var(--cp-font-code)}[data-theme="dark"] .mission-intro,[data-theme="dark"] .mission-title-row p,[data-theme="dark"] .editor-subtitle,[data-theme="dark"] .run-note,[data-theme="dark"] .editor-footer,[data-theme="dark"] .next-row p,[data-theme="dark"] .site-footer,[data-theme="dark"] .site-footer span:first-child,[data-theme="dark"] .row-count,[data-theme="dark"] .empty-output,[data-theme="dark"] .stat-label,[data-theme="dark"] .level-info small,[data-theme="dark"] .rail-heading,[data-theme="dark"] .rail-heading span:last-child{color:#aabdd0}[data-theme="dark"] .level-button.active{background:#12333e;border-color:#38e5ce;box-shadow:inset 3px 0 #38e5ce}[data-theme="dark"] .level-button:hover:not(:disabled){background:#19344a}[data-theme="dark"] .level-number{background:#21364c;color:#cfdeec;border-radius:5px}[data-theme="dark"] .level-button.active .level-number{background:var(--teal);color:#062724}[data-theme="dark"] .level-button:disabled{opacity:.65}[data-theme="dark"] .rail-resource,[data-theme="dark"] .hint-row p{background:#172a3e;color:#bfd2e4}[data-theme="dark"] .rail-resource small{color:#aabdd0}[data-theme="dark"] .objective-box{background:#0c2a32;border-color:#245963}[data-theme="dark"] .objective-box p{color:#d8eff0}[data-theme="dark"] .text-button{color:var(--teal)}[data-theme="dark"] .schema-card{background:#101f31;border-color:var(--line)}[data-theme="dark"] .schema-grid>div{background:#0b1726;border-color:var(--line)}[data-theme="dark"] .schema-card summary,[data-theme="dark"] .schema-grid strong,[data-theme="dark"] .editor-label{color:#cee3f5}[data-theme="dark"] .schema-card summary span,[data-theme="dark"] .schema-grid code,[data-theme="dark"] .reset-button{color:#aabdd0}[data-theme="dark"] .editor-wrap{border-color:#31516b;box-shadow:inset 0 0 30px #0004}[data-theme="dark"] .run-button{box-shadow:0 3px 0 #168579,0 0 22px #38e5ce22}[data-theme="dark"] .output-panel{background:#0a1422}[data-theme="dark"] .output-head{border-color:var(--line)}[data-theme="dark"] .output-head h3,[data-theme="dark"] .output-status{color:#aabdd0}[data-theme="dark"] th{background:#172b40;color:#d1e5f6}[data-theme="dark"] td{border-color:var(--line);color:#d8e5ef}[data-theme="dark"] .output-status.success,[data-theme="dark"] .next-row p.success-copy{color:#60e6b2}[data-theme="dark"] .error-message,[data-theme="dark"] .output-status.error,[data-theme="dark"] .next-row p.error-copy{color:#ff969d}[data-theme="dark"] .next-button{background:#234e6c;color:#fff}[data-theme="dark"] .progress-track{background:#23374c}[data-theme="dark"] .progress-track span{box-shadow:0 0 12px #38e5ce}
@media(max-width:650px){.topbar{align-items:flex-start}.brand img{width:min(205px,40vw)}.topbar-right{gap:7px;flex-direction:column;align-items:flex-end}.roadmap-link{font-size:.875rem}.mission-stats{flex-basis:160px}.mission-tags{gap:8px;font-size:.875rem}.mission-copy,.output-content{overflow-wrap:anywhere}.editor-heading{align-items:flex-start}.editor-footer{flex-wrap:wrap}.reset-button{flex-shrink:0}.mission-title-row{flex-wrap:wrap}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}

dialog{max-width:min(460px,calc(100% - 32px));padding:24px;border:1px solid var(--line);border-radius:12px;background:var(--white);color:var(--ink);box-shadow:var(--shadow)}dialog::backdrop{background:#030916bb}dialog h2{margin-top:0;color:var(--navy)}.dialog-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:12px;margin-top:24px}

html[data-theme="dark"] .brand{background:transparent;padding:0;border-radius:0}html[data-theme="dark"] .brand img{content:url("/logo-dark.svg")}

/* Program selection and lives */
[hidden]{display:none!important}
.program-select{max-width:1120px;margin:24px auto 45px;padding:24px 0}
.program-select h1{margin:10px 0 14px;color:var(--navy);font-size:clamp(2.2rem,5vw,4rem);line-height:1.08}
.program-select>p:not(.eyebrow){max-width:760px;color:var(--muted);font-size:1.05rem;line-height:1.6}
.program-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:30px}
.program-card{display:flex;flex-direction:column;align-items:flex-start;gap:17px;min-width:0;text-align:left;padding:27px;border:1px solid var(--line);border-radius:10px;background:var(--white);color:var(--ink);font:inherit;box-shadow:var(--shadow);cursor:pointer;transition:transform .2s,box-shadow .2s}
.program-card:hover{transform:translateY(-4px);box-shadow:0 20px 40px #0003}
.program-card:focus-visible{outline:3px solid var(--teal);outline-offset:3px}
.program-icon{display:grid;place-items:center;width:56px;height:56px;color:var(--teal)}
.program-icon svg{width:32px;height:32px}
.program-card-copy{display:flex;flex-direction:column;gap:10px;flex:1}
.program-card-copy strong{color:var(--navy);font-size:1.45rem;line-height:1.2}
.program-card-copy>span{font-size:1rem;line-height:1.55;color:var(--muted)}
.program-card-copy small{font-size:.875rem;color:var(--muted)}
.program-action{font-weight:750;color:var(--teal-dark)}
.lives{display:flex;align-items:center;gap:9px;margin:8px 0;font-size:.875rem;font-weight:700;color:var(--navy)}
.lives span:first-child{color:#de6174;font-size:1.28rem;letter-spacing:3px}
#program-back{margin-bottom:14px}
.schema-grid small{display:block;margin-top:9px;color:var(--muted);font-size:.875rem;line-height:1.5}
.schema-note{margin:12px 18px 16px;color:var(--muted);font-size:.875rem;line-height:1.5}
.hint-row{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 16px}.hint-row p{flex-basis:100%;margin:0 0 5px}
#retry-loading{margin-left:12px}
[data-theme="dark"] .program-card{background:#0e1a2a}[data-theme="dark"] .program-action{color:#5aefd9}
@media(max-width:900px){.program-cards{grid-template-columns:1fr 1fr}}
@media(max-width:650px){.program-select{padding:10px 0 22px}.program-cards{grid-template-columns:1fr;margin-top:22px}.program-card{padding:21px}.program-icon{width:48px;height:48px}.program-icon svg{width:28px;height:28px}.lives{flex-wrap:wrap}}

.topbar-right .home-link{text-decoration:none}.topbar-right .home-link:hover{background:var(--line)}

.program-select>.game-title{display:flex;align-items:center;gap:16px;font-family:var(--cp-font-heading);font-size:clamp(1.35rem,3.5vw,2.1rem);font-weight:700;letter-spacing:.055em;line-height:1.25;color:var(--navy);padding-left:16px;margin:0 0 24px}.game-title-sql{color:var(--teal-dark);border-left:1px solid var(--teal);padding-left:16px}[data-theme="dark"] .program-select>.game-title{color:#e6f7ff}[data-theme="dark"] .game-title-sql{color:#38e5ce}@media(max-width:420px){.program-select>.game-title{gap:10px;padding-left:10px;letter-spacing:.025em}.game-title-sql{padding-left:10px}}
