:root{color:#10243d;font-synthesis:none;--navy:#062650;--blue:#087ac1;--cyan:#13b9e8;--gold:#ffc82e;--green:#2a9d68;--line:#dbe4ee;--muted:#617187;background:#f7f9fc;font-family:Manrope,system-ui,sans-serif}*{box-sizing:border-box}body{min-width:320px;margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,a:focus-visible{outline-offset:3px;outline:3px solid #f2a900}.skip{z-index:20;background:#fff;padding:.8rem 1rem;position:absolute;top:-60px;left:1rem}.skip:focus{top:1rem}.site-header{border-bottom:1px solid var(--line);z-index:10;background:#fff;justify-content:space-between;align-items:center;height:82px;padding:0 max(4vw,1rem);display:flex;position:sticky;top:0}.brand{text-align:left;color:var(--navy);background:0 0;border:0;align-items:center;gap:.75rem;display:flex}.brand img{object-fit:contain;width:58px;height:58px}.brand span{flex-direction:column;display:flex}.brand strong{font-size:1.15rem}.brand small{color:var(--muted)}nav{gap:.5rem;display:flex}nav button,.text-button{color:var(--navy);background:0 0;border:0;align-items:center;gap:.4rem;padding:.75rem;font-weight:700;display:flex}.menu-button{color:var(--navy);background:0 0;border:0;display:none}svg{width:1.15em;height:1.15em}.hero{color:#fff;background:radial-gradient(circle at 82% 20%,#125996 0,#082f63 32%,#041e43 75%);grid-template-columns:1.25fr .75fr;min-height:525px;padding:4rem max(7vw,1.25rem);display:grid;overflow:hidden}.hero-copy{align-self:center;max-width:760px}.eyebrow{text-transform:uppercase;letter-spacing:.14em;color:#0879a8;font-size:.73rem;font-weight:800}.eyebrow.light{color:#68daf5}.hero h1{letter-spacing:-.055em;max-width:780px;margin:.7rem 0 1.2rem;font-size:clamp(2.6rem,6vw,5.6rem);line-height:.96}.hero p{color:#d7e5f5;max-width:650px;font-size:1.15rem;line-height:1.7}.hero form{margin-top:2rem}.hero label{margin-bottom:.5rem;font-size:.85rem;font-weight:700;display:block}.hero form div{background:#fff;border-radius:10px;max-width:520px;padding:.35rem;display:flex}.hero input{color:#10243d;border:0;flex:1;min-width:0;padding:.7rem}.hero form button,.primary{background:var(--gold);color:#152236;border:0;border-radius:7px;align-items:center;gap:.5rem;padding:.85rem 1.15rem;font-weight:800;display:flex}.hero-art{place-items:center;display:grid;position:relative}.hero-art:before{content:"";background:#13b9e81c;border:1px solid #35cbed55;border-radius:50%;width:440px;height:440px;position:absolute}.hero-art img{filter:drop-shadow(0 25px 30px #00132d);width:min(420px,37vw);position:relative}.welcome{color:#bdeed9;align-items:center;gap:.5rem;margin-top:2rem;display:flex}.path-section,.page,.activity-page{max-width:1500px;margin:auto;padding:4.5rem max(6vw,1rem)}.path-section>h2,.page>h1{letter-spacing:-.04em;margin:.5rem 0;font-size:clamp(2rem,4vw,3.5rem)}.lead{color:var(--muted);max-width:720px;font-size:1.08rem;line-height:1.65}.group-grid{grid-template-columns:repeat(3,1fr);gap:1.25rem;margin-top:2.5rem;display:grid}.group-card{border:1px solid var(--line);border-top:5px solid var(--cyan);background:#fff;border-radius:14px;padding:1.5rem;position:relative;box-shadow:0 12px 35px #0c31500a}.group-card.gold{border-top-color:var(--gold)}.group-card.green{border-top-color:var(--green)}.group-number{color:#e5ebf2;font-size:2.4rem;font-weight:800;position:absolute;top:.8rem;right:1.3rem}.card-tag,.range{text-transform:uppercase;letter-spacing:.1em;color:#0879a8;font-size:.72rem;font-weight:800}.group-card h3{margin:.8rem 0;font-size:1.5rem}.group-card>p{color:var(--muted);min-height:74px;line-height:1.55}.activity-links{border-top:1px solid var(--line);margin-top:1.25rem}.activity-links button{text-align:left;border:0;border-bottom:1px solid var(--line);width:100%;color:var(--navy);background:#fff;grid-template-columns:35px 1fr 20px;align-items:center;gap:.7rem;padding:.85rem 0;display:grid}.activity-links button>span:nth-child(2){flex-direction:column;font-weight:700;display:flex}.activity-links small{color:var(--muted);font-weight:600}.dot{color:#0879a8;background:#e8f6fb;border-radius:50%;place-items:center;width:30px;height:30px;font-size:.75rem;font-weight:800;display:grid}.dot.done{color:#168052;background:#dff4e9}.method{background:var(--navy);color:#fff;grid-template-columns:.6fr 1.4fr;gap:3rem;padding:4rem max(7vw,1rem);display:grid}.method h2{margin:.6rem 0;font-size:2rem}.method-steps{grid-template-columns:repeat(5,1fr);gap:.8rem;display:grid}.method-steps span{color:#cfdaea;flex-direction:column;gap:.8rem;font-size:.8rem;display:flex}.method-steps b{color:#57d5f3;border:1px solid #4f6c8f;border-radius:50%;place-items:center;width:38px;height:38px;display:grid}.activity-heading{justify-content:space-between;align-items:end;gap:2rem;margin:2rem 0;display:flex}.activity-heading h1{letter-spacing:-.04em;margin:.5rem 0;font-size:clamp(2rem,4vw,3.4rem)}.activity-heading p{color:var(--muted)}.problem-count,.input-chip{color:#075d87;white-space:nowrap;background:#e8f5fb;border-radius:99px;padding:.55rem .8rem;font-size:.8rem;font-weight:700}.workspace{border:1px solid var(--line);background:#fff;border-radius:16px;grid-template-columns:.7fr 1.3fr;display:grid;overflow:hidden;box-shadow:0 16px 50px #0b2d5010}.problem-panel,.work-panel{padding:2rem}.problem-panel{border-right:1px solid var(--line);background:#f0f7fb}.problem-panel h2,.work-panel h2{font-size:1.45rem}.problem-panel p{line-height:1.7}.problem-panel pre,pre{white-space:pre-wrap;color:#d9efff;background:#062650;border-radius:9px;padding:1rem;font-family:DM Mono,monospace;line-height:1.7}.block-list{counter-reset:item;flex-direction:column;gap:.55rem;padding:0;display:flex}.block-list li{border:1px solid #cddce9;border-left:4px solid var(--cyan);cursor:grab;background:#fff;border-radius:8px;align-items:center;gap:.8rem;padding:.75rem;list-style:none;display:flex}.block-index{background:#e9f2f7;border-radius:50%;place-items:center;width:25px;height:25px;font-size:.75rem;display:grid}.block-list code{flex:1;font-family:DM Mono,monospace}.move-controls{display:flex}.move-controls button{color:var(--navy);background:#eef4f8;border:0;place-items:center;padding:.35rem;display:grid}.move-controls button:disabled{opacity:.3}.actions,.activity-footer{flex-wrap:wrap;gap:.7rem;margin-top:1.25rem;display:flex}.secondary{color:var(--navy);background:#fff;border:1px solid #bacada;border-radius:7px;align-items:center;gap:.45rem;padding:.75rem 1rem;font-weight:700;display:flex}.hint,.feedback{border-left:4px solid var(--gold);background:#fff8d8;border-radius:8px;gap:.7rem;margin-top:1.2rem;padding:1rem;display:flex}.feedback{display:block}.feedback p{margin:.35rem 0 0}.feedback.success{border-color:var(--green);background:#e8f7ef}.feedback.try{background:#fff3e8;border-color:#e37a20}.choice-list,.classify-list{flex-direction:column;gap:.7rem;display:flex}.choice-list label,.classify-list label{border:1px solid var(--line);border-radius:8px;align-items:center;gap:.8rem;padding:1rem;display:flex}.choice-list label.selected{border-color:var(--blue);background:#ecf8fd}.classify-list label span{flex:1}.classify-list select{border:1px solid #aebfce;border-radius:6px;padding:.5rem}.code-stack{background:var(--navy);border-radius:8px;flex-direction:column;margin:1rem 0;padding:1rem;display:flex}.code-stack code{color:#cfe7fa;padding:.45rem .7rem}.code-stack code.active{border-left:4px solid var(--gold);color:#fff;background:#114b7c}.table-wrap{margin:1rem 0;overflow:auto}table{border-collapse:collapse;width:100%;font-size:.85rem}th,td{border:1px solid var(--line);text-align:left;padding:.7rem}th{background:#edf4f8}.stage-note{background:#ecf8fd;border-radius:8px;padding:.8rem}.freeform{flex-direction:column;gap:.45rem;margin-top:1.25rem;font-weight:700;display:flex}.freeform textarea{border:1px solid #b7c8d7;border-radius:8px;padding:1rem;font-family:DM Mono,monospace}.muted{color:var(--muted);align-self:center;font-size:.85rem}.progress-hero{background:var(--navy);color:#fff;border-radius:16px;align-items:center;gap:1.5rem;margin:2rem 0;padding:2rem;display:flex}.ring{background:conic-gradient(var(--cyan) var(--pct),#365373 0);border-radius:50%;place-items:center;width:110px;height:110px;display:grid;position:relative}.ring:before{content:"";background:var(--navy);border-radius:50%;position:absolute;inset:11px}.ring span{font-size:1.3rem;font-weight:800;position:relative}.progress-group{margin:2.5rem 0}.progress-list{border:1px solid var(--line);background:#fff;border-radius:12px}.progress-list article{border-bottom:1px solid var(--line);grid-template-columns:40px 1fr auto;align-items:center;gap:1rem;padding:1rem;display:grid}.progress-list article:last-child{border:0}.progress-list h3,.progress-list p{margin:.15rem}.progress-list p{color:var(--muted);font-size:.78rem}.status-icon{color:#9aabb9}.status-icon.done{color:var(--green)}.score{align-items:center;gap:.3rem;font-weight:700;display:flex}footer{color:#b9c9da;background:#031a38;justify-content:space-between;align-items:center;padding:2rem max(6vw,1rem);display:flex}footer div{color:#fff;gap:.5rem;display:flex}@media (width<=900px){.group-grid{grid-template-columns:1fr}.group-card>p{min-height:0}.hero{grid-template-columns:1fr}.hero-art{display:none}.workspace{grid-template-columns:1fr}.problem-panel{border-right:0;border-bottom:1px solid var(--line)}.method{grid-template-columns:1fr}.method-steps{grid-template-columns:repeat(3,1fr)}}@media (width<=620px){.site-header{height:70px}.brand img{width:48px;height:48px}.brand small{display:none}.menu-button{display:block}nav{border-bottom:1px solid var(--line);background:#fff;padding:1rem;display:none;position:absolute;top:70px;left:0;right:0}nav.open{display:flex}.hero{min-height:540px;padding-top:3rem}.hero form div{background:0 0;flex-direction:column;gap:.5rem;padding:0}.hero input{border-radius:7px}.method-steps{grid-template-columns:1fr 1fr}.activity-heading{flex-direction:column;align-items:start}.workspace .problem-panel,.workspace .work-panel{padding:1.2rem}.classify-list label{flex-direction:column;align-items:stretch}.progress-list article{grid-template-columns:30px 1fr}.score{grid-column:2}footer{flex-direction:column;align-items:start}}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;position:absolute!important}.view-focus:focus{outline:none}.block-list code{overflow-wrap:anywhere;white-space:pre-wrap;min-width:0}.move-controls{flex-shrink:0}.prediction{flex-direction:column;gap:.4rem;margin:1rem 0;font-weight:700;display:flex}.prediction input{border:1px solid #9eb2c4;border-radius:7px;max-width:420px;padding:.7rem}caption{text-align:left;padding:.5rem 0;font-weight:700}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,a:focus-visible{outline-offset:3px;box-shadow:0 0 0 5px #fff;outline:3px solid #062650!important}.title-row{flex-wrap:wrap;align-items:center;gap:1rem;display:flex}.tutorial-button{color:#075d87;background:#e8f6fb;border:1px solid #087ac1;border-radius:99px;padding:.55rem .9rem;font-weight:800}.modal-backdrop{z-index:100;background:#02152dcc;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.tutorial-modal{background:#fff;border-radius:16px;width:min(1000px,100%);max-height:calc(100vh - 2rem);overflow:auto;box-shadow:0 25px 80px #0008}.tutorial-modal>header{z-index:2;border-bottom:1px solid var(--line);background:#fff;justify-content:space-between;align-items:start;padding:1.4rem 1.6rem;display:flex;position:sticky;top:0}.tutorial-modal h2{margin:.35rem 0 0;font-size:clamp(1.5rem,3vw,2.2rem)}.icon-button{color:var(--navy);background:#edf4f8;border:0;border-radius:50%;place-items:center;width:42px;height:42px;display:grid}.tutorial-progress{color:var(--navy);align-items:center;gap:1rem;padding:1rem 1.6rem 0;font-weight:800;display:flex}.tutorial-progress>div{gap:.4rem;display:flex}.tutorial-progress i{background:#d5e0e9;border-radius:5px;width:32px;height:5px}.tutorial-progress i.filled{background:var(--cyan)}.tutorial-grid{grid-template-columns:1fr 1fr;gap:1.5rem;padding:1.2rem 1.6rem;display:grid}.tutorial-grid h3{margin-top:0}.tutorial-explanation{border-left:4px solid var(--gold);background:#fff8df;padding:1rem}.tutorial-explanation p{line-height:1.55}.state-display{margin:1rem 0}.state-display h3{margin:0 0 .35rem}.state-table .target-cell{background:#fff0a8;font-size:1.05rem;font-weight:800;box-shadow:inset 0 0 0 3px #bd7600}.state-empty{color:var(--muted);background:#f6f9fb;border:1px dashed #b7c8d7;border-radius:8px;padding:1rem}.demo-input{flex-direction:column;gap:.4rem;margin-top:1rem;font-weight:800;display:flex}.demo-input input{background:#fffbed;border:3px solid #bd7600;border-radius:7px;padding:.8rem;font-family:DM Mono,monospace}.demo-input small{color:var(--muted);font-weight:600}.tutorial-actions{border-top:1px solid var(--line);background:#fff;justify-content:space-between;gap:1rem;padding:1rem 1.6rem;display:flex;position:sticky;bottom:0}.tutorial-complete{text-align:center;max-width:650px;margin:auto;padding:4rem 2rem}.tutorial-complete svg{width:64px;height:64px;color:var(--green)}.tutorial-complete h3{margin:.7rem;font-size:2rem}.tutorial-complete p{color:var(--muted);line-height:1.7}@media (width<=700px){.tutorial-grid{grid-template-columns:1fr}.tutorial-modal{max-height:calc(100vh - 1rem)}.modal-backdrop{padding:.5rem}}
