:root{--ink:#f7f4ed;--muted:#bbb8b0;--bg:#0e1012;--panel:#191c20;--panel2:#23272c;--line:#394047;--accent:#b8ff4d;--accent2:#5ee7f2;--danger:#ff786b;--paper:#f3efe5;--max:1180px;--radius:22px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font:17px/1.58 Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}img{display:block;max-width:100%}a{color:var(--accent2);text-underline-offset:3px}table{width:100%;border-collapse:collapse;margin:1rem 0}th,td{border:1px solid var(--line);padding:.75rem;text-align:left;vertical-align:top}th{background:var(--panel2)}button,.button{appearance:none;border:0;border-radius:999px;background:var(--accent);color:#101214;font:inherit;font-weight:850;padding:.68rem 1rem;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:.45rem}button.secondary,.button.secondary{background:transparent;color:var(--ink);border:1px solid var(--line)}button:hover,.button:hover{filter:brightness(1.08)}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid var(--accent2);outline-offset:3px}.skip{position:absolute;left:-9999px}.skip:focus{left:1rem;top:1rem;z-index:100;background:#fff;color:#000;padding:.7rem 1rem}.wrap{width:min(var(--max),calc(100% - 32px));margin:auto}.topbar{position:sticky;top:0;z-index:40;background:rgba(14,16,18,.95);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}.topbar .wrap{display:flex;align-items:center;gap:14px;min-height:68px}.brand{font-weight:950;letter-spacing:-.035em}.brand b{color:var(--accent)}nav{display:flex;gap:5px;overflow:auto;margin-left:auto}nav a{white-space:nowrap;color:var(--muted);text-decoration:none;font-size:.8rem;padding:.42rem .62rem;border-radius:999px}nav a:hover{background:var(--panel2);color:var(--ink)}.progress{height:4px;background:#22262a}.progress span{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--accent),var(--accent2))}.teacher-only{display:none}.teacher-on .teacher-only{display:block}.teacher-note{border:1px dashed var(--accent2);background:color-mix(in srgb,var(--accent2) 10%,var(--panel));padding:1rem 1.2rem;border-radius:14px;margin:1rem 0}.hero{padding:74px 0 54px}.eyebrow{text-transform:uppercase;letter-spacing:.15em;color:var(--accent);font-size:.78rem;font-weight:900}.hero h1{font-size:clamp(3rem,9vw,7.4rem);line-height:.85;letter-spacing:-.075em;margin:.35rem 0 1.2rem;max-width:1000px}.hero h1 span{color:var(--accent)}.lede{font-size:clamp(1.12rem,2vw,1.42rem);max-width:780px;color:#d8d6d0}.hero-grid{display:grid;grid-template-columns:1.12fr .88fr;gap:25px;align-items:stretch;margin-top:35px}.hero-art,.hero-panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.hero-panel{padding:22px}.hero-art img{width:100%;height:100%;min-height:360px;object-fit:cover}.system-hero{min-height:360px;display:grid;place-items:center;padding:34px;background:radial-gradient(circle at 20% 20%,color-mix(in srgb,var(--accent) 30%,transparent),transparent 35%),linear-gradient(145deg,#13212a,#0b0f13)}.system-map{width:100%;display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.system-map span{background:#172d34;border:1px solid var(--accent);border-radius:14px;padding:18px 10px;text-align:center;font-weight:850}.system-map i{grid-column:1/-1;text-align:center;color:var(--accent2);font-style:normal}.meta{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:18px 0}.meta div{background:var(--panel2);padding:.9rem;border-radius:13px}.meta strong{display:block;color:var(--accent);font-size:1.3rem}.notice{border-left:5px solid var(--accent2);padding:1rem 1.15rem;background:#162128;border-radius:0 14px 14px 0}section{padding:66px 0;border-top:1px solid #292e33;scroll-margin-top:72px}h2{font-size:clamp(2.1rem,5vw,4.25rem);line-height:.96;letter-spacing:-.052em;margin:.25rem 0 1rem}h3{font-size:1.3rem;line-height:1.2;margin:.1rem 0 .55rem}.section-intro{max-width:800px;color:var(--muted);font-size:1.05rem}.actions{display:flex;gap:10px;flex-wrap:wrap;margin:22px 0}.week-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin-top:26px}.day-card{background:var(--panel);border:1px solid var(--line);border-radius:17px;padding:1rem;position:relative}.day-card strong{display:block;color:var(--accent);font-size:1.45rem}.day-card p{color:var(--muted);font-size:.88rem}.day-card input{width:22px;height:22px;accent-color:var(--accent)}.gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:25px}.gallery-card{background:var(--panel);border:1px solid var(--line);border-radius:18px;overflow:hidden}.gallery-art{aspect-ratio:4/3;display:grid;place-items:center;padding:20px;background:linear-gradient(145deg,color-mix(in srgb,var(--accent) 50%,#15191e),#111820);position:relative}.gallery-art:before,.gallery-art:after{content:"";position:absolute;border:2px solid color-mix(in srgb,var(--accent2) 75%,white);width:38%;height:38%;transform:rotate(12deg)}.gallery-art:after{width:24%;height:55%;transform:translate(40%,-10%) rotate(-10deg);border-color:var(--accent)}.gallery-art b{position:relative;z-index:2;background:#0d1013;padding:.5rem .7rem;border-radius:8px;text-align:center}.gallery-card figcaption{padding:1rem}.gallery-card p{color:var(--muted)}.reveal{display:none;color:#e4e2dc;border-top:1px solid var(--line);padding-top:.7rem}.gallery-card.open .reveal{display:block}.lab-shell{display:grid;grid-template-columns:1.2fr .8fr;gap:20px;margin-top:26px}.lab-stage,.lab-controls{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:18px}.lab-stage canvas{width:100%;height:auto;background:#45494d;border-radius:14px;touch-action:none}.stage-buttons,.control-row{display:flex;gap:7px;flex-wrap:wrap;margin:10px 0}.stage-buttons button,.control-row button{border-radius:10px;background:var(--panel2);color:var(--ink);border:1px solid var(--line);padding:.55rem .72rem;font-size:.84rem}.stage-buttons button.active,.control-row button[aria-pressed=true]{background:var(--accent);color:#111}.layer-stack{background:#111419;border:1px solid var(--line);border-radius:12px;padding:10px;margin-top:12px}.layer-row{display:flex;align-items:center;gap:8px;background:var(--panel2);border-left:5px solid var(--accent2);border-radius:8px;padding:.6rem;margin:.38rem 0}.layer-row:first-child{border-left-color:var(--accent)}.layer-row small{margin-left:auto;color:var(--muted)}.mask-key{display:grid;grid-template-columns:1fr 1fr;gap:8px}.mask-key span{background:var(--panel2);border-radius:9px;padding:.65rem}.mask-key i{display:inline-block;width:16px;height:16px;border:1px solid #777;vertical-align:-3px;margin-right:6px}.mask-key .white{background:#fff}.mask-key .black{background:#000}.flyer{min-height:480px;background:#f8f2df;color:#111;padding:34px;overflow:hidden;position:relative}.flyer h3{font-family:Impact,sans-serif;font-size:clamp(2.3rem,7vw,5rem);color:#ef3254;transform:rotate(-6deg);margin:30px 0}.flyer p{font-family:Georgia,serif;font-size:1.15rem;max-width:26ch}.flyer .cta{display:inline-block;background:#6236ff;color:#fff;padding:10px 14px;margin:30px 0 0 45%;border:6px dotted #ffbe00}.flyer.aligned{display:flex;flex-direction:column;justify-content:center;align-items:flex-start;padding:55px}.flyer.aligned h3{transform:none;margin:0 0 18px}.flyer.aligned .cta{margin:22px 0 0}.flyer.hierarchy h3{font-size:clamp(3rem,8vw,6rem);line-height:.85}.flyer.hierarchy p{font:600 1.1rem/1.5 Arial,sans-serif;color:#252525}.flyer.palette{background:#102b2b;color:#fff}.flyer.palette h3{color:#ffd36b}.flyer.palette p{color:#eef5ee}.flyer.palette .cta{background:#ffd36b;color:#102b2b;border:0}.flyer.spaced p{max-width:32ch}.flyer.spaced .cta{margin-top:30px}.contrast-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.contrast-sample{margin:12px 0;border-radius:12px;padding:28px;font-weight:850;font-size:1.4rem}.concept-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.concept-grid button{border-radius:12px;background:var(--panel2);color:var(--ink);border:1px solid var(--line);padding:.8rem}.concept-grid button.selected{background:var(--accent);color:#111}.risk-flow{display:grid;grid-template-columns:repeat(6,1fr);gap:6px;margin:15px 0}.risk-flow span{background:#17303a;border:1px solid var(--accent2);border-radius:10px;padding:12px 6px;text-align:center;font-size:.78rem}.risk-result{background:#10161b;border-left:5px solid var(--accent);padding:1rem;border-radius:0 12px 12px 0}.toggle-list label{display:flex;gap:10px;align-items:center;background:var(--panel2);padding:.7rem;border-radius:10px;margin:.5rem 0}.toggle-list input{width:22px;height:22px;accent-color:var(--accent)}.days{display:grid;gap:18px;margin-top:26px}.day{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.day summary{cursor:pointer;list-style:none;padding:20px;display:grid;grid-template-columns:70px 1fr auto;gap:14px;align-items:center}.day summary::-webkit-details-marker{display:none}.day-num{display:grid;place-items:center;width:58px;height:58px;background:var(--accent);color:#111;border-radius:16px;font-weight:950;font-size:1.7rem}.day summary p{margin:.2rem 0;color:var(--muted)}.day-body{border-top:1px solid var(--line);padding:20px}.lesson-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.lesson-grid article{background:var(--panel2);border-radius:14px;padding:1rem}.materials{display:flex;gap:7px;flex-wrap:wrap}.materials span,.tag{display:inline-block;border:1px solid var(--line);border-radius:999px;padding:.3rem .6rem;color:var(--muted);font-size:.78rem}.steps{display:grid;gap:12px;margin-top:18px}.step{display:grid;grid-template-columns:62px 1fr;background:#15181c;border:1px solid var(--line);border-radius:15px;overflow:hidden}.step-no{background:color-mix(in srgb,var(--accent) 85%,white);color:#111;padding:1rem;text-align:center;font-weight:950;font-size:1.35rem}.step-main{padding:1rem}.step-main h4{margin:0;font-size:1.1rem}.where{display:inline-block;background:#0b0d0f;border:1px solid var(--line);border-radius:7px;padding:.25rem .45rem;margin:.35rem 0;font:700 .8rem ui-monospace,SFMono-Regular,Menlo,monospace}.step-meta{display:grid;grid-template-columns:repeat(2,1fr);gap:7px;margin-top:.75rem}.step-meta div{background:var(--panel2);border-radius:8px;padding:.65rem;font-size:.82rem}.step-meta b{display:block;color:var(--accent2);font-size:.68rem;letter-spacing:.07em}.checkpoint{border-left:5px solid var(--accent);background:#182318;padding:1rem 1.1rem;border-radius:0 12px 12px 0;margin:15px 0}.pathways{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.pathways article{background:var(--panel2);border:1px solid var(--line);border-radius:13px;padding:1rem}.video-grid,.resource-grid,.outcome-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:22px}.video,.resource,.outcome{display:block;background:var(--panel);border:1px solid var(--line);border-radius:15px;padding:1rem;color:var(--ink);text-decoration:none}.video span,.resource span{display:block;color:var(--accent2);font-size:.75rem;font-weight:900;letter-spacing:.06em}.video p,.outcome p{color:var(--muted);font-size:.88rem}.assignment-box{background:var(--paper);color:#111;border-radius:var(--radius);padding:24px}.assignment-box .button{color:#111}.evidence-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.evidence-grid div{border:2px solid #171717;border-radius:12px;padding:1rem;font-weight:700}.quiz{display:grid;gap:10px}.question{background:var(--panel);border:1px solid var(--line);border-radius:15px;padding:1rem}.question label{display:block;padding:.42rem;border-radius:7px}.question label:hover{background:var(--panel2)}.question input{accent-color:var(--accent)}.answer{display:none;color:#dfeeda;background:#1c2918;padding:.65rem;border-radius:8px}.show-answers .answer{display:block}.footer{padding:45px 0 80px;color:var(--muted)}textarea{width:100%;min-height:110px;background:#101317;color:var(--ink);border:1px solid var(--line);border-radius:12px;padding:1rem;font:inherit}input[type=color]{width:100%;height:48px;border:1px solid var(--line);background:transparent;border-radius:10px}input[type=range]{width:100%;accent-color:var(--accent)}@media(max-width:940px){nav{display:none}.hero-grid,.lab-shell{grid-template-columns:1fr}.week-grid{grid-template-columns:repeat(3,1fr)}.gallery-grid,.video-grid,.resource-grid,.outcome-grid{grid-template-columns:repeat(2,1fr)}.risk-flow{grid-template-columns:repeat(3,1fr)}}@media(max-width:620px){.hero{padding-top:45px}.week-grid,.gallery-grid,.video-grid,.resource-grid,.outcome-grid,.lesson-grid,.pathways,.evidence-grid,.concept-grid{grid-template-columns:1fr}.day summary{grid-template-columns:54px 1fr}.day summary .button{grid-column:2}.step{grid-template-columns:1fr}.step-no{text-align:left}.step-meta{grid-template-columns:1fr}.risk-flow{grid-template-columns:repeat(2,1fr)}.topbar .button{display:none}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}@media print{body{background:#fff;color:#111;font-size:10.5pt}.topbar,.progress,button,.button,.lab-shell,.video-grid{display:none!important}.wrap{width:100%}section{padding:22px 0;border-color:#bbb}.hero{padding:12px 0}.hero h1{font-size:38pt}.day,.step,.outcome{break-inside:avoid;border-color:#aaa}.day-body{display:block!important}.teacher-only{display:block}.assignment-box{border:1px solid #aaa}.eyebrow{color:#315f00}}
.week-grid{grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}.gallery-card>img{width:100%;aspect-ratio:4/3;object-fit:cover;background:#111}.gallery-card .credit{display:block;color:var(--accent2);font-size:.72rem;margin-top:.55rem}.operation7{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px;margin:18px 0}.operation7 div{background:#132129;border:1px solid var(--accent2);border-radius:12px;padding:.8rem;font-size:.82rem}.operation7 b{display:block;color:var(--accent);font-size:1rem}.download-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:10px;margin:18px 0}.download-card{background:var(--panel2);border:1px solid var(--line);border-radius:14px;padding:1rem;text-decoration:none;color:var(--ink)}
