:root{--hunter:#215732;--navy:#002e5d;--kelly:#00b140;--ink:#151817;--muted:#46534e;--line:#dbe5de;--wash:#f4f8f5;--white:#fff}
*{box-sizing:border-box}body{margin:0;background:#fff;color:var(--ink);font:16px/1.6 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}h1,h2,h3,p,figure{margin:0}a{color:var(--hunter)}a:focus-visible,video:focus-visible{outline:3px solid var(--navy);outline-offset:4px}img,video{max-width:100%;display:block}.wrap{width:min(1192px,calc(100% - 88px));margin-inline:auto}.skip{position:absolute;z-index:3;left:12px;top:12px;transform:translateY(-180%);background:white;padding:10px}.skip:focus{transform:none}
.top{border-top:4px solid var(--kelly);border-bottom:1px solid var(--line)}.bar,.footer{display:flex;justify-content:space-between;align-items:center;gap:20px}.bar{min-height:79px}.brand{display:flex;align-items:center;gap:11px;color:var(--navy);text-decoration:none;line-height:1.2}.brand-icon{width:43px;height:43px;display:grid;place-items:center;background:var(--navy);color:white;border-radius:7px;flex:none}.brand strong{font-size:17px}.brand small{display:block;font-size:11px;color:var(--muted);margin-top:4px}.bar nav{display:flex;gap:clamp(12px,3vw,34px);flex-wrap:wrap}.bar nav a{color:var(--ink);text-decoration:none;font-size:14px;font-weight:650}.bar nav a:hover,.footer a:hover{text-decoration:underline}
.hero{padding-block:70px 68px;display:grid;grid-template-columns:1.12fr 1fr;align-items:center;gap:clamp(32px,6vw,92px)}.tag{color:var(--hunter);font-weight:800;font-size:12px;letter-spacing:.10em;text-transform:uppercase;line-height:1.45}.tag i,.hero-figure i{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--kelly);margin-right:6px}.hero h1{font-size:clamp(43px,6vw,82px);line-height:.99;letter-spacing:-.066em;margin:15px 0 20px;color:var(--navy)}.hero h1 .edition{display:block;color:var(--hunter);font-size:.42em;letter-spacing:-.025em;line-height:1.3;margin-bottom:5px}.last{display:block}.lede{color:var(--muted);font-size:clamp(18px,2vw,21px);line-height:1.48;max-width:42ch}.actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:27px}.button{display:inline-flex;align-items:center;gap:14px;padding:10px 15px;border:1px solid var(--hunter);border-radius:6px;background:var(--hunter);color:white;text-decoration:none;font-weight:700;font-size:14px}.button:hover{background:var(--navy);border-color:var(--navy)}.button.outline{color:var(--hunter);background:white}.button.outline:hover{background:var(--wash)}.button span{font-size:12px}
.hero-figure{background:var(--navy);border-radius:13px;overflow:hidden;color:white;box-shadow:0 13px 30px #002e5d20}.hero-figure img{width:100%;height:auto}.figure-top,.hero-figure figcaption{display:flex;justify-content:space-between;gap:8px;padding:13px 18px;font-size:11px;line-height:1.3}.figure-top{border-bottom:1px solid #ffffff36;text-transform:uppercase;letter-spacing:.08em;font-weight:800}.hero-figure figcaption{border-top:1px solid #ffffff36;color:#dce8f1}.hero-figure i{background:#46e778}
.band{border-top:1px solid var(--line);padding-block:54px;display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,7vw,100px);align-items:start}.section-heading h2{margin:8px 0 12px;line-height:1.06;font-size:clamp(29px,4vw,48px);letter-spacing:-.045em}.section-heading>p:not(.tag),.kit p,.phase p:not(.tag),.video-copy p:not(.tag){color:var(--muted)}.section-heading>p:not(.tag){max-width:60ch}.kit{padding:21px 24px;border:1px solid var(--line);border-left:4px solid var(--kelly);border-radius:7px}.kit h3,.phase h3,.video-copy h3{font-size:21px;line-height:1.2;letter-spacing:-.02em}.kit ul{padding-left:1.2em;margin:9px 0 12px}.kit li::marker{color:var(--hunter)}
.schedule,.videos{padding-block:54px;background:var(--wash);border-block:1px solid var(--line)}.cards{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:22px}.phase{display:grid;grid-template-columns:76px 1fr;align-items:start;gap:15px;background:white;border:1px solid var(--line);border-radius:9px;padding:20px}.phase h3,.video-copy h3{margin:5px 0 7px}.phase .tag{font-size:10px}.date{display:grid;text-align:center;line-height:1.15;background:var(--navy);color:white;border-radius:6px;padding:9px 3px;font-weight:750}.date strong{font-size:30px}.date small,.date span{font-size:10px;letter-spacing:.09em}
.score-band{border-top:0;grid-template-columns:.73fr 1.27fr;gap:clamp(25px,6vw,80px)}.example{margin-top:18px;padding:12px 15px;border-left:3px solid var(--kelly);background:var(--wash);color:var(--hunter)}.example p,.score-note{font-size:14px;color:var(--muted)}.table-wrap{min-width:0}table{width:100%;border-collapse:collapse;text-align:left;font-size:14px}caption{text-align:left;font-weight:750;color:var(--navy);margin-bottom:7px}thead{background:var(--navy);color:white}th,td{padding:9px 10px;vertical-align:top;border-bottom:1px solid var(--line)}td:nth-child(2){color:var(--hunter);font-weight:750}.score-note{margin-top:8px}
.video-card{background:white;border:1px solid var(--line);border-radius:9px;overflow:hidden}video{width:100%;height:auto;aspect-ratio:16/9;background:#081221}.video-copy{padding:17px 20px 21px}.video-copy a{display:inline-block;margin-top:8px;font-size:14px;font-weight:750;text-underline-offset:3px}.footer{padding-block:25px;font-size:14px}.footer strong{color:var(--navy)}.footer p{color:var(--muted)}.footer a{white-space:nowrap;font-weight:750;text-decoration:none}
@media(max-width:820px){.wrap{width:calc(100% - 44px)}.hero{gap:24px}.bar nav{gap:12px}.band{gap:25px}.phase{padding:14px;grid-template-columns:55px 1fr;gap:10px}}
@media(max-width:660px){.wrap{width:calc(100% - 32px)}.bar{align-items:flex-start;flex-direction:column;gap:10px;padding-block:13px}.bar nav{gap:9px 18px}.hero,.band,.cards{grid-template-columns:1fr}.hero{padding-block:40px}.hero h1{font-size:clamp(44px,11vw,67px)}.band,.schedule,.videos{padding-block:38px}.cards{gap:12px}.phase{grid-template-columns:65px 1fr}th,td{padding:7px 5px}}

.turret-card{display:grid;grid-template-columns:1.15fr 1fr;align-items:center;margin-top:22px}.turret-card video{background:#edf3f5}.turret-card .video-copy{padding:clamp(18px,4vw,42px)}@media(max-width:660px){.turret-card{grid-template-columns:1fr}}

.challenge-band{row-gap:28px}.challenge-band .section-heading p+p{margin-top:12px}.starter{grid-column:1/-1;border-top:1px solid var(--line);padding-top:22px}.starter h3{font-size:21px}.starter-grid{list-style:none;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:12px 0 0;padding:0}.starter-grid li{background:var(--wash);border-radius:7px;padding:14px 16px;color:var(--muted);font-size:15px}.starter-grid strong{display:block;color:var(--ink);margin-bottom:4px}
.marker-section{padding-block:54px;border-top:1px solid var(--line)}.marker-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:20px;align-items:start;margin-top:22px}.marker-figure{overflow:hidden;border:1px solid var(--line);border-radius:9px;background:var(--wash)}.marker-figure img{width:100%;height:auto}.marker-figure figcaption{padding:9px 13px;color:var(--muted);font-size:13px}.marker-tip{margin-top:18px;color:var(--muted);max-width:96ch}.marker-tip strong{color:var(--ink)}
@media(max-width:660px){.marker-section{padding-block:38px}.marker-grid,.starter-grid{grid-template-columns:1fr}.starter-grid{gap:8px}}


.practice-section{padding-block:54px;border-top:1px solid var(--line)}
.practice-controls{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin:17px 0 8px}.practice-controls label{font-weight:700;font-size:14px}.practice-controls select{font:inherit;font-size:14px;color:var(--ink);border:1px solid #9cab9f;border-radius:6px;background:white;padding:9px}.practice-controls button,.practice-exit{font-family:inherit;cursor:pointer}.practice-controls button:focus-visible,.practice-controls select:focus-visible,.practice-exit:focus-visible{outline:3px solid var(--navy);outline-offset:3px}.practice-meta{font-size:13px;color:var(--muted);min-height:1.6em;margin-bottom:6px}.practice-board{background:#080e19;border-radius:9px;overflow:hidden;display:grid;place-items:center}.practice-board svg{display:block;width:100%;max-height:640px}.practice-exit{display:none}.practice-board:is(:fullscreen,.expanded){width:100%;height:100%;border-radius:0;position:relative}.practice-board:is(:fullscreen,.expanded) svg{width:100%;height:100%;max-height:none}.practice-board:is(:fullscreen,.expanded) .practice-exit{display:block;position:absolute;top:8px;left:8px;z-index:1;background:#14243a;color:#fff;border:1px solid #637f9b;border-radius:5px;padding:5px 8px;opacity:.38}.practice-board:is(:fullscreen,.expanded) .practice-exit:is(:hover,:focus-visible){opacity:1}
@media(max-width:660px){.practice-section{padding-block:38px}}

body.practice-expanded{overflow:hidden}.practice-board.expanded{position:fixed;inset:0;z-index:20}

.bar nav{gap:8px clamp(12px,1.8vw,24px)}

#teams{align-items:center}.team-icon{display:block;justify-self:center}
@media(max-width:660px){.team-icon{width:120px;height:120px}}

#getting-started{align-items:center;column-gap:clamp(24px,4vw,56px)}.beginner-copy .kit{margin-top:20px}.lab-photo{min-width:0}.lab-photo img{display:block;width:100%;height:auto;border-radius:9px}.lab-photo figcaption{margin-top:8px;font-size:13px;color:var(--muted)}

.schedule .section-heading > .schedule-food{max-width:none}

.run-rules{border-top:0}.run-rules-copy{color:var(--muted)}.run-rules-copy p+p{margin-top:12px}.run-rules + .score-band{border-top:1px solid var(--line)}


.processing-art{margin-top:18px;width:min(100%,448px);height:auto}

/* Link to the student guide in the top bar */
.bar nav a.guide-link{background:var(--hunter);color:#fff;border:1px solid var(--hunter);border-radius:6px;padding:6px 12px;font-weight:700;white-space:nowrap}.bar nav a.guide-link:hover{background:var(--navy);border-color:var(--navy);text-decoration:none}.bar nav{align-items:center}
/* Practice map code box */
.practice-code{display:inline-flex;align-items:center;gap:9px;flex-wrap:wrap}.practice-controls input{font:inherit;font-size:14px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;color:var(--ink);border:1px solid #9cab9f;border-radius:6px;background:white;padding:9px;text-transform:uppercase}.practice-help{color:var(--muted);font-size:14px;margin:0 0 10px}
/* Footer note, and the 404 page */
.footer-note{padding-bottom:26px;margin-top:-6px;font-size:13px;line-height:1.5;color:var(--muted)}.footer-note p{padding-top:14px;border-top:1px solid var(--line)}
.notfound{min-height:calc(100vh - 260px)}.notfound .hero-figure svg{display:block;width:100%;height:auto}.notfound .ways{margin-top:30px;padding-top:20px;border-top:1px solid var(--line);display:grid;grid-template-columns:1fr 1fr;gap:10px 24px;max-width:46ch;font-size:14px}.notfound .ways a{font-weight:700;text-underline-offset:3px}@media(max-width:660px){.notfound .ways{grid-template-columns:1fr}}

/* Top bar on one line */
.bar{flex-wrap:nowrap}
.brand{flex:none}
.brand small{white-space:nowrap}
.bar nav{flex:1 1 auto;min-width:0;flex-wrap:nowrap;justify-content:flex-start;align-items:center;gap:0 clamp(10px,1.3vw,20px);overflow-x:auto;scrollbar-width:none;padding-block:7px}
.bar nav::-webkit-scrollbar{display:none}
.bar nav a{white-space:nowrap;font-size:14px}
.bar nav a:first-child{margin-left:auto}
.bar>.guide-link{flex:none;background:var(--hunter);color:#fff;border:1px solid var(--hunter);border-radius:6px;padding:7px 13px;font-size:14px;font-weight:700;line-height:1.3;white-space:nowrap;text-decoration:none}
.bar>.guide-link:hover{background:var(--navy);border-color:var(--navy)}
@media(max-width:1180px){.brand small{display:none}}
@media(max-width:1100px){.bar{gap:14px}.bar nav{gap:0 9px}.bar nav a{font-size:13.5px}}
@media(max-width:1000px){.bar nav{padding-right:26px;-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 30px),transparent);mask-image:linear-gradient(90deg,#000 calc(100% - 30px),transparent)}}
@media(max-width:660px){.bar{flex-direction:row;flex-wrap:wrap;align-items:center;gap:6px 12px;padding-block:10px 6px}.bar nav{order:3;flex-basis:100%;gap:0 18px}.bar nav a:first-child{margin-left:0}.bar>.guide-link{margin-left:auto}}
/* Student guide section */
.guide-band{background:var(--navy);color:#fff;padding-block:clamp(54px,8vw,100px)}
.guide-band .tag{color:#8af0ab}
.guide-band .tag i{background:#46e778}
.guide-head{display:grid;grid-template-columns:1.2fr 1fr;gap:clamp(24px,6vw,90px);align-items:end}
.guide-band h2{font-size:clamp(42px,6.6vw,88px);line-height:.98;letter-spacing:-.06em;margin:14px 0 0;color:#fff;text-wrap:balance}
.guide-intro p{font-size:clamp(18px,1.9vw,21px);line-height:1.5;color:#d7e3f0;margin-bottom:22px}
.guide-band .guide-cta{background:#fff;color:var(--navy);border-color:#fff;font-size:18px;padding:16px 24px}
.guide-band .guide-cta:hover{background:#46e778;border-color:#46e778;color:var(--navy)}
.guide-pages{list-style:none;margin:clamp(34px,5vw,58px) 0 0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.guide-pages a{display:grid;grid-template-columns:auto 1fr;column-gap:14px;align-content:start;height:100%;padding:20px;border:1px solid rgba(255,255,255,.24);border-radius:10px;background:rgba(255,255,255,.06);color:#fff;text-decoration:none}
.guide-pages a:hover{background:rgba(255,255,255,.14);border-color:#46e778}
.guide-pages .n{grid-row:1/3;width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:#46e778;color:var(--navy);font-weight:800;font-size:14px}
.guide-pages strong{font-size:20px;line-height:1.25;letter-spacing:-.01em}
.guide-pages a>span:last-child{color:#c9d8ea;font-size:15px;line-height:1.4;margin-top:3px}
.guide-band a:focus-visible{outline-color:#fff}
@media(max-width:820px){.guide-head{grid-template-columns:1fr;align-items:start;gap:18px}.guide-pages{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.guide-pages{grid-template-columns:1fr}}
/* Footer: link back to the NullclineNexus build library beside Back to top */
.footer-links{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px 22px}
