/* BTS Academy — shared course styles */
:root{
  --academy-black:#0b0b0c;
  --academy-panel:#121214;
  --academy-panel-2:#171719;
  --academy-cream:#f4f0e8;
  --academy-paper:#fffdf8;
  --academy-red:#cf3026;
  --academy-green:#2f8f67;
  --academy-line:rgba(255,255,255,.12);
  --academy-muted:#9f9a92;
  --academy-content-max:1180px;
  --academy-gutter:clamp(28px,5vw,72px);
}
/* Academy owns the viewport scroll. Keep the document scrollbar stable in desktop/preview containers. */
html{overflow-x:clip;overflow-y:scroll;scrollbar-gutter:stable;scroll-behavior:auto}
body.academy-page{overflow-x:clip;overflow-y:visible;min-height:100vh;background:var(--academy-black);color:var(--academy-cream)}
.academy-page .site-head{color:var(--academy-cream);background:rgba(11,11,12,.96);border-bottom-color:#313133;backdrop-filter:blur(18px)}
.academy-page .site-head .brand{color:var(--academy-cream)}
.academy-page .site-head .brand-mark i{background:var(--academy-cream)}
.academy-page .site-head .brand-mark i:nth-child(2){background:var(--academy-red)}
.academy-page .site-head .nav a[aria-current="page"]{color:#ef3e2f}
.academy-page .menu-btn{color:var(--academy-cream);border-color:#666}
.academy-main{max-width:1720px;margin:auto;background:var(--academy-black)}
.academy-course-banner{min-height:590px;display:grid;grid-template-columns:minmax(0,1.45fr) minmax(300px,.55fr);border-bottom:1px solid #313133;position:relative;overflow:hidden}
.academy-course-banner:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 74% 18%,rgba(239,62,47,.17),transparent 26%),linear-gradient(90deg,transparent 0 50%,rgba(255,255,255,.025) 50% 50.15%,transparent 50.15%);background-size:auto,10vw 100%;pointer-events:none}
.academy-course-banner-copy{position:relative;z-index:2;min-width:0;padding:clamp(62px,7vw,112px) clamp(28px,5vw,84px);display:flex;flex-direction:column;justify-content:flex-end}
.academy-kicker{display:flex;flex-wrap:wrap;gap:10px 22px;font-size:10px;font-weight:900;letter-spacing:.14em;text-transform:uppercase;color:#aaa49b}
.academy-kicker span+span:before{content:"/";margin-right:22px;color:#57534d}
.academy-course-banner h1{font-family:var(--display);font-size:clamp(62px,7.9vw,132px);line-height:.84;letter-spacing:-.01em;text-transform:uppercase;margin:24px 0 30px;max-width:1100px}
.academy-course-banner h1 em{display:inline-block;color:transparent;-webkit-text-stroke:1.3px var(--academy-cream);font-style:normal}
.academy-course-banner-copy>p{font-family:var(--serif);font-size:clamp(19px,1.65vw,28px);line-height:1.35;color:#c7c2b9;max-width:880px;margin:0}
.academy-course-actions{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin-top:30px}.academy-primary-cta{border:1px solid var(--academy-red);background:var(--academy-red);color:#fff;min-height:52px;padding:0 20px;display:inline-flex;align-items:center;justify-content:space-between;gap:34px;font-size:10px;font-weight:900;letter-spacing:.1em;text-transform:uppercase;transition:transform .18s var(--ease),background .18s,border-color .18s}.academy-primary-cta:hover,.academy-primary-cta:focus-visible{background:#b92a22;border-color:#b92a22;transform:translateY(-1px);outline:0}.academy-primary-cta:focus-visible{box-shadow:0 0 0 3px rgba(239,62,47,.28)}.academy-course-actions>span{font-size:10px;line-height:1.4;color:#817c74}
.academy-course-meta{display:grid;grid-template-columns:repeat(4,minmax(120px,1fr));gap:1px;background:#353537;border:1px solid #353537;max-width:1000px;margin-top:44px}
.academy-course-meta span{display:grid;gap:3px;background:#111113;padding:16px 18px;font-size:11px;color:#c7c1b8}
.academy-course-meta b{font-size:8px;letter-spacing:.12em;text-transform:uppercase;color:#aaa49b}
.academy-course-banner-mark{position:relative;z-index:1;min-width:0;border-left:1px solid #313133;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;padding:48px;overflow:hidden;background:linear-gradient(180deg,#121214,#0b0b0c)}
.academy-course-banner-mark:before{content:"01";position:absolute;right:-.03em;bottom:-.18em;font-family:var(--display);font-size:360px;line-height:1;color:rgba(255,255,255,.035)}
.academy-course-banner-mark span{position:relative;font-family:var(--display);font-size:clamp(52px,5vw,84px);line-height:.86;letter-spacing:.02em}
.academy-course-banner-mark span:nth-child(2){color:var(--academy-red);transform:translateX(28px)}
.academy-course-banner-mark span:nth-child(3){color:transparent;-webkit-text-stroke:1px #77736c;transform:translateX(56px)}
.academy-workspace{display:grid;grid-template-columns:330px minmax(0,1fr);align-items:start}
.academy-rail{position:sticky;top:59px;align-self:start;height:calc(100vh - 59px);min-height:0;max-height:calc(100vh - 59px);overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;border-right:1px solid #313133;background:#0e0e10;padding:30px 24px 36px}
.academy-rail-head{display:flex;justify-content:space-between;gap:20px;align-items:end}
.academy-rail-head>div{display:grid;gap:5px}.academy-label{font-size:8px;font-weight:900;letter-spacing:.14em;text-transform:uppercase;color:#aaa49b}.academy-rail-head strong{font-family:var(--serif);font-size:21px;font-weight:500}
.academy-course-percent{font-family:var(--display);font-size:34px;line-height:1;color:var(--academy-red)}
.academy-progress-track{height:4px;background:#2b2b2e;overflow:hidden;margin-top:17px}.academy-progress-track i{display:block;height:100%;width:0;background:var(--academy-red);transition:width .35s var(--ease)}
.academy-rail-continue{width:100%;min-height:46px;margin-top:16px;border:1px solid var(--academy-red);background:var(--academy-red);color:#fff;padding:0 13px;display:flex;align-items:center;justify-content:space-between;gap:18px;font-size:9px;font-weight:900;letter-spacing:.09em;text-transform:uppercase;transition:background .15s,border-color .15s,transform .15s}.academy-rail-continue:hover,.academy-rail-continue:focus-visible{background:#b92a22;border-color:#b92a22;transform:translateY(-1px);outline:0}.academy-rail-continue:focus-visible{box-shadow:0 0 0 3px rgba(239,62,47,.2)}
.academy-roadmap-toggle{display:none;width:100%;margin-top:14px;border:1px solid #343437;background:#141416;color:#ddd8cf;min-height:44px;padding:0 13px;align-items:center;justify-content:space-between;font-size:9px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}
.academy-module-list{list-style:none;margin:28px 0 0;padding:0;border-top:1px solid #2e2e30}
.academy-module-list li{border-bottom:1px solid #2e2e30}.academy-module-list li>a,.academy-module-list li>span{display:grid;grid-template-columns:31px 1fr;gap:10px;padding:15px 4px;align-items:start}
.academy-module-list li>a>span,.academy-module-list li>a>i,.academy-module-list li>span>i{font-style:normal;font:900 9px/1.4 var(--sans);letter-spacing:.08em;color:#9a958d}
.academy-module-list b{font-size:12px;line-height:1.35}.academy-module-list small{grid-column:2;font-size:8px;letter-spacing:.1em;text-transform:uppercase;color:#9a958d;margin-top:-5px}
.academy-module-list li.active{border-left:3px solid var(--academy-red);padding-left:10px;background:#151517}.academy-module-list li.active>a>span,.academy-module-list li.active>a>i{color:#ef3e2f}.academy-module-list li.active small{color:#b8b2aa}
.academy-module-list li.locked{color:#9a958d}.academy-module-list li.locked b{font-weight:600}.academy-module-list li.locked small{color:#8f8a82}
.academy-method-card{margin-top:26px;border:1px solid #343437;padding:18px;background:#141416}.academy-method-card p{font-size:12px;line-height:1.55;color:#a9a49b;margin:10px 0 0}.academy-method-card strong{color:#fff}
.academy-account-link{margin-top:14px;border:1px solid #343437;padding:12px 14px;display:flex;gap:10px;align-items:center;font-size:10px;letter-spacing:.04em}.academy-account-link>span{width:8px;height:8px;border-radius:50%;background:#777}.academy-account-link.is-active>span{background:#5dc591;box-shadow:0 0 0 4px rgba(93,197,145,.08)}.academy-account-link b{font-weight:750}
.academy-reset{width:100%;border:0;background:transparent;color:#aaa49b;text-align:left;padding:18px 2px 0;font-size:9px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;text-decoration:underline;text-underline-offset:4px}
.academy-module{background:var(--academy-paper);color:#111;min-width:0;padding-bottom:110px;scroll-margin-top:68px}
.academy-module-head{background:var(--academy-cream);border-bottom:1px solid #d2cdc4}
.academy-module-head-inner{width:min(100%,var(--academy-content-max));margin:0 auto;display:grid;grid-template-columns:minmax(0,1fr) 210px;gap:28px 48px;align-items:end;padding:72px var(--academy-gutter) 62px}
.academy-module-number{grid-column:1/-1;display:flex;align-items:baseline;gap:12px;font-size:9px;letter-spacing:.13em;font-weight:900;color:#5c564f}.academy-module-number b{display:inline-block;font-family:var(--display);font-size:34px;line-height:1;color:#665f57;margin:0}
.academy-module-title{min-width:0}.academy-module-title h2{font-family:var(--display);font-size:clamp(58px,6.7vw,96px);line-height:.86;text-transform:uppercase;margin:18px 0 26px;letter-spacing:-.012em;max-width:780px}.academy-module-title h2 em{font-style:normal;color:var(--academy-red)}.academy-module-title>p{font-family:var(--serif);font-size:clamp(18px,1.5vw,24px);line-height:1.48;max-width:760px;margin:0;color:#514d46}
.academy-module-progress{min-width:0;align-self:end;font-size:9px;font-weight:850;letter-spacing:.09em;text-transform:uppercase;color:#76716a}.academy-module-progress .academy-progress-track{background:#dad4cb}
.academy-objectives{max-width:var(--academy-content-max);margin:0 auto;padding:70px var(--academy-gutter);display:grid;grid-template-columns:.82fr 1.18fr;gap:48px;border-bottom:1px solid #ddd8d0}
.academy-objectives h3{font-family:var(--serif);font-size:clamp(27px,3vw,42px);font-weight:500;line-height:1.13;margin:10px 0 0;letter-spacing:-.02em}.academy-objectives ul{list-style:none;margin:0;padding:0;border-top:1px solid #d5d0c7}.academy-objectives li{padding:14px 0;border-bottom:1px solid #d5d0c7;font-size:14px;line-height:1.5;color:#4d4942}.academy-objectives li:before{content:"→";color:var(--academy-red);font-weight:900;margin-right:10px}.academy-objectives strong{color:#151412}
.academy-activity{max-width:var(--academy-content-max);margin:0 auto;padding:72px var(--academy-gutter);border-bottom:1px solid #ddd8d0;scroll-margin-top:80px}
.academy-activity-head{display:grid;grid-template-columns:62px minmax(0,1fr) auto;gap:18px;align-items:center;margin-bottom:36px}
.academy-activity>:not(.academy-activity-head){margin-left:80px;max-width:calc(100% - 80px)}.activity-index{font-family:var(--display);font-size:42px;line-height:1;color:#cbc5bb}.academy-activity-head h3{font-family:var(--serif);font-size:clamp(29px,3vw,44px);font-weight:500;line-height:1.08;letter-spacing:-.02em;margin:7px 0 0}.activity-state{border:1px solid #ccc6bc;border-radius:999px;padding:7px 10px;font-size:8px;font-weight:900;letter-spacing:.1em;text-transform:uppercase;color:#77716a}.activity-state.done{border-color:#b6d8c8;color:#236f50;background:#eff9f4}
.academy-lesson-grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(420px,1.2fr);gap:52px;align-items:center}.academy-lesson-grid>*{min-width:0}.academy-lesson-grid.compact{align-items:start}.academy-explain p,.academy-code-intro p,.checkpoint-intro{font-family:var(--serif);font-size:18px;line-height:1.62;color:#3f3b35;margin:0 0 18px}.academy-explain p strong,.academy-code-intro p strong{color:#111}.academy-explain-wide{max-width:830px}.academy-field{display:grid;gap:8px;margin-top:26px;font-size:9px;font-weight:900;letter-spacing:.1em;text-transform:uppercase;color:#5b554e}.academy-field input{height:52px;border:1px solid #a9a39a;background:#fff;padding:0 14px;font-size:16px;color:#111;border-radius:0}.academy-field input:focus{outline:3px solid rgba(239,62,47,.2);border-color:var(--academy-red)}
.academy-action,.academy-run{border:0;background:#111;color:#fff;padding:14px 18px;font-size:10px;font-weight:900;letter-spacing:.1em;text-transform:uppercase;display:inline-flex;gap:28px;align-items:center;justify-content:space-between;min-width:190px;transition:transform .18s var(--ease),background .18s}.academy-action{margin-top:16px}.academy-action:hover,.academy-action:focus-visible,.academy-run:hover,.academy-run:focus-visible{background:var(--academy-red);transform:translateY(-1px);outline:0}.academy-action:focus-visible,.academy-run:focus-visible{box-shadow:0 0 0 3px rgba(239,62,47,.23)}
.academy-feedback{font-size:11px;line-height:1.5;color:#77716a;margin:12px 0 0}.academy-feedback.good{color:#236f50;font-weight:700}.academy-feedback.bad{color:#a23228;font-weight:700}.academy-feedback.wide{margin-top:24px;padding-top:14px;border-top:1px solid #ddd8d0}
.computer-flow{min-width:0;width:100%;display:grid;grid-template-columns:1fr 28px 1fr 28px 1fr;align-items:center;background:#111;color:#fff;padding:30px;border:1px solid #111}.computer-flow>div{min-height:180px;border:1px solid #3d3d40;padding:22px;display:flex;flex-direction:column;justify-content:flex-end;transition:border-color .2s,background .2s,transform .2s}.computer-flow>div.active{border-color:var(--academy-red);background:#191516;transform:translateY(-3px)}.computer-flow>i{font-style:normal;text-align:center;color:#686868}.computer-flow span{font-family:var(--display);font-size:42px;line-height:1;color:#3d3d40;margin-bottom:auto}.computer-flow b{font-family:var(--serif);font-size:21px;font-weight:500}.computer-flow small{font-size:10px;line-height:1.4;color:#9d9890;margin-top:7px}
.academy-term-note{display:grid;grid-template-columns:150px repeat(3,1fr);gap:0;margin-top:30px;border:1px solid #d3cec5;background:#f5f2ec}.academy-term-note.one{grid-template-columns:150px minmax(0,1fr)}.academy-term-note.two{grid-template-columns:150px repeat(2,minmax(0,1fr))}.academy-term-note.four{grid-template-columns:150px repeat(4,minmax(0,1fr))}.academy-term-note>strong,.academy-term-note>span{padding:21px 22px;border-right:1px solid #d3cec5;font-size:17px;line-height:1.62}.academy-term-note>span:last-child{border-right:0}.academy-term-note>strong{font-size:12px;letter-spacing:.11em;text-transform:uppercase}.academy-term-note span b{display:block;color:#111;font-size:21px;line-height:1.22;margin-bottom:10px}.academy-term-note span strong{color:#1d1b18;font-weight:750}.academy-term-note span{color:#4f4b45}
.academy-choice-grid{min-width:0;width:100%;display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.academy-choice-grid.three{grid-template-columns:repeat(3,1fr)}.academy-choice-grid.vertical{grid-template-columns:1fr}.academy-choice-grid button{min-height:130px;border:1px solid #c9c3ba;background:#f6f2eb;color:#111;text-align:left;padding:20px;display:flex;flex-direction:column;justify-content:space-between;gap:18px;transition:border-color .15s,background .15s,transform .15s}.academy-choice-grid button:hover,.academy-choice-grid button:focus-visible{border-color:#111;transform:translateY(-2px);outline:0}.academy-choice-grid button.correct{border-color:#2f8f67;background:#ecf7f1}.academy-choice-grid button.wrong{border-color:#d6776d;background:#fff0ee}.academy-choice-grid b{font-family:var(--serif);font-size:18px;line-height:1.25;font-weight:500}.academy-choice-grid span{font-size:9px;color:#77716a;text-transform:uppercase;letter-spacing:.07em}
.request-stage{min-width:0;width:100%;margin:36px 0 4px;display:grid;grid-template-columns:180px minmax(150px,1fr) 180px 220px;gap:0;align-items:center;background:#111;color:#fff;padding:28px}.request-node,.request-result{min-height:160px;border:1px solid #3c3c3f;padding:18px;display:flex;flex-direction:column;justify-content:flex-end;transition:background .2s,border-color .2s,transform .2s}.request-node.active,.request-result.active{border-color:var(--academy-red);background:#1d1515;transform:translateY(-2px)}.request-node>span,.request-result>span{font-size:8px;font-weight:900;letter-spacing:.11em;color:#777;margin-bottom:auto}.request-node b,.request-result b{font-family:var(--serif);font-size:21px;font-weight:500}.request-node small,.request-result small{color:#99948c;font-size:10px;line-height:1.45;margin-top:6px}.request-line{height:2px;background:#3e3e40;position:relative;margin:0 14px}.request-line>span{position:absolute;top:10px;left:50%;transform:translateX(-50%);font-size:8px;letter-spacing:.11em;text-transform:uppercase;color:#888}.request-line>i{position:absolute;left:0;top:-2px;width:6px;height:6px;border-radius:50%;background:var(--academy-red);opacity:0}.request-stage.running .request-line>i{opacity:1;animation:requestTravel 1s var(--ease) forwards}.request-result{margin-left:16px;background:#161618}
@keyframes requestTravel{0%{left:0}50%{left:calc(100% - 6px)}100%{left:0}}
.academy-code-activity{background:#fbf8f2}.academy-code-intro{max-width:850px;margin-bottom:30px}.academy-code-intro code{background:#e9e3da;padding:2px 5px;font-size:.85em}.academy-mini-lab{display:grid;grid-template-columns:1fr 1fr;border:1px solid #29292b;background:#111;min-height:360px}.lab-pane{min-width:0;display:flex;flex-direction:column}.lab-code-pane{border-right:1px solid #3a3a3d}.lab-pane-head{height:46px;border-bottom:1px solid #363639;color:#8f8a82;display:flex;justify-content:space-between;align-items:center;padding:0 15px;font-size:8px;font-weight:900;letter-spacing:.1em;text-transform:uppercase}.lab-code-pane textarea{flex:1;min-height:250px;resize:none;border:0;background:#101012;color:#f4f0e8;padding:22px;font:500 16px/1.65 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;tab-size:2}.lab-code-pane textarea:focus{outline:3px solid rgba(239,62,47,.35);outline-offset:-3px}.academy-run{margin:0;border-top:1px solid #363639;justify-content:center;min-height:50px}.lab-preview-pane iframe{width:100%;height:100%;min-height:310px;border:0;background:#fff}.lab-preview-pane{background:#fff}
.checkpoint-intro{max-width:760px}.checkpoint-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:28px}.checkpoint-grid label{display:grid;grid-template-columns:110px 1fr;align-items:center;border:1px solid #d2ccc3;background:#f6f2ec}.checkpoint-grid label>span{padding:0 15px;font:600 17px/1.2 var(--serif)}.checkpoint-grid select{min-width:0;height:56px;border:0;border-left:1px solid #d2ccc3;background:#fff;padding:0 12px;font-size:13px;color:#24221f}.checkpoint-grid select:focus{outline:3px solid rgba(239,62,47,.2);outline-offset:-3px}.checkpoint-grid label.correct{border-color:#9fcbb7;background:#edf8f2}.checkpoint-grid label.wrong{border-color:#df9a92;background:#fff1ef}
.academy-complete{max-width:1180px;margin:70px auto 0;padding:clamp(32px,5vw,60px) clamp(28px,5vw,72px);display:grid;grid-template-columns:80px minmax(0,1fr) 280px;gap:30px;align-items:center;background:#111;color:#fff}.academy-complete[hidden]{display:none}.academy-complete-mark{width:62px;height:62px;border-radius:50%;display:grid;place-items:center;background:#1d3d30;color:#7be0ae;font-size:30px}.academy-complete h3{font-family:var(--serif);font-size:clamp(28px,3vw,42px);font-weight:500;line-height:1.1;margin:8px 0 12px}.academy-complete p{font-size:13px;line-height:1.6;color:#aaa49b;margin:0;max-width:690px}.academy-next-card{border:1px solid #3c3c3f;padding:18px;display:grid;gap:7px}.academy-next-card span{font-size:8px;font-weight:900;letter-spacing:.11em;color:#777}.academy-next-card b{font-family:var(--serif);font-size:19px;font-weight:500}.academy-next-card small{color:#888;font-size:10px}
.academy-footer{max-width:1720px;margin:auto;border-top:1px solid #303033;background:#080809;color:#aaa49b;display:grid;grid-template-columns:1fr 1fr auto;gap:30px;align-items:center;padding:32px clamp(28px,5vw,84px);font-size:11px}.academy-footer>div{display:flex;align-items:center;gap:16px}.academy-footer strong{font-family:var(--display);font-size:18px;color:#fff;text-transform:uppercase}.academy-footer span{font-size:8px;font-weight:900;letter-spacing:.12em;color:#ef3e2f}.academy-footer p{margin:0}.academy-footer a{color:#fff;font-weight:800}
@media(max-width:1320px){.academy-course-meta{grid-template-columns:1fr 1fr}.academy-workspace{grid-template-columns:280px minmax(0,1fr)}.academy-module-head-inner{grid-template-columns:minmax(0,1fr) 190px;gap:26px 36px}.academy-module-title h2{font-size:clamp(56px,6.1vw,86px)}.academy-lesson-grid{grid-template-columns:1fr}.request-stage{grid-template-columns:160px minmax(120px,1fr) 160px 190px}.academy-term-note.four{grid-template-columns:1fr 1fr}.academy-term-note.four>strong{grid-column:1/-1;border-bottom:1px solid #d3cec5}}
@media(max-width:1240px){.academy-page.site-nav-open .site-head .nav{background:#0b0b0c;color:#fff;border-bottom-color:#313133}.academy-course-banner{grid-template-columns:1fr;min-height:0}.academy-course-banner-mark{border-left:0;border-top:1px solid #313133;min-height:250px;flex-direction:row;align-items:center;gap:10px}.academy-course-banner-mark span:nth-child(2),.academy-course-banner-mark span:nth-child(3){transform:none}.academy-workspace{grid-template-columns:1fr}.academy-rail{position:static;min-height:0;max-height:none;border-right:0;border-bottom:1px solid #313133}.academy-module-list{display:grid;grid-template-columns:1fr 1fr}.academy-module-list li{border-right:1px solid #2e2e30}.academy-module-list li:nth-child(even){border-right:0}.academy-method-card,.academy-account-link,.academy-reset{max-width:560px}.academy-objectives{grid-template-columns:1fr;gap:30px}.request-stage{grid-template-columns:1fr 70px 1fr}.request-result{grid-column:1/-1;margin:18px 0 0}.academy-complete{grid-template-columns:70px 1fr}.academy-next-card{grid-column:2}.academy-footer{grid-template-columns:1fr}.academy-footer>div{flex-wrap:wrap}}
@media(max-width:700px){.academy-course-banner-copy{padding:48px 20px}.academy-course-banner h1{font-size:clamp(44px,12vw,60px);line-height:.88;letter-spacing:0;overflow-wrap:normal;word-break:normal}.academy-course-banner-copy>p{font-size:18px}.academy-course-actions{align-items:stretch;gap:12px;margin-top:24px}.academy-primary-cta{width:100%}.academy-course-actions>span{font-size:9px}.academy-course-meta{grid-template-columns:1fr 1fr;margin-top:32px}.academy-course-meta span{padding:14px 12px}.academy-course-banner-mark{min-height:190px;padding:28px 20px;justify-content:center}.academy-course-banner-mark span{font-size:44px}.academy-rail{padding:26px 20px}.academy-roadmap-toggle{display:flex}.academy-module-list{grid-template-columns:1fr;margin-top:14px}.academy-rail:not(.roadmap-open) .academy-module-list li.locked{display:none}.academy-rail.roadmap-open .academy-roadmap-toggle span{transform:rotate(45deg)}.academy-module-list li{border-right:0}.academy-module-head-inner{grid-template-columns:1fr;gap:20px;padding:46px 20px 40px}.academy-module-number{grid-column:1;gap:9px}.academy-module-number b{font-size:30px}.academy-module-title h2{font-size:clamp(44px,12vw,56px);letter-spacing:0;margin:14px 0 20px}.academy-module-title>p{font-size:18px}.academy-module-progress{grid-column:1}.academy-objectives,.academy-activity{padding:50px 20px}.academy-activity>:not(.academy-activity-head){margin-left:0;max-width:none}.academy-activity-head{grid-template-columns:minmax(0,1fr) auto;gap:10px 16px;align-items:start}.activity-index{grid-column:1/-1;font-size:28px}.academy-activity-head>div{grid-column:1;grid-row:2}.activity-state{grid-column:2;grid-row:2;justify-self:end;margin-top:4px}.academy-lesson-grid{gap:30px}.computer-flow{grid-template-columns:1fr;padding:18px;gap:8px}.computer-flow>i{transform:rotate(90deg)}.computer-flow>div{min-height:125px}.academy-term-note,.academy-term-note.four{grid-template-columns:1fr}.academy-term-note>strong,.academy-term-note>span{border-right:0;border-bottom:1px solid #d3cec5}.academy-term-note>span:last-child{border-bottom:0}.academy-choice-grid,.academy-choice-grid.three{grid-template-columns:1fr}.academy-choice-grid button{min-height:100px}.request-stage{grid-template-columns:1fr;padding:18px;gap:8px}.request-line{height:70px;width:2px;margin:0 auto}.request-line>span{top:50%;left:12px;transform:translateY(-50%)}.request-line>i{top:0;left:-2px}.request-stage.running .request-line>i{animation:requestTravelMobile 1s var(--ease) forwards}.request-result{grid-column:1;margin:0}.academy-mini-lab{grid-template-columns:1fr}.lab-code-pane{border-right:0;border-bottom:1px solid #3a3a3d}.lab-preview-pane iframe{min-height:230px}.checkpoint-grid{grid-template-columns:1fr}.checkpoint-grid label{grid-template-columns:1fr}.checkpoint-grid label>span{padding:13px}.checkpoint-grid select{border-left:0;border-top:1px solid #d2ccc3}.academy-complete{margin:48px 20px 0;padding:30px 20px;grid-template-columns:1fr}.academy-next-card{grid-column:1}.academy-footer{padding:28px 20px}}
@keyframes requestTravelMobile{0%{top:0}50%{top:calc(100% - 6px)}100%{top:0}}
@media(prefers-reduced-motion:reduce){.academy-progress-track i,.computer-flow>div,.request-node,.request-result,.academy-choice-grid button,.academy-action,.academy-run{transition:none}.request-stage.running .request-line>i{animation:none;opacity:1;left:calc(100% - 6px)}@media(max-width:700px){.request-stage.running .request-line>i{left:-2px;top:calc(100% - 6px)}}}

/* Academy Module 1 mobile hardening — keep display typography inside real phone widths. */
@media(max-width:700px){
  .academy-module-number,.academy-module-title,.academy-module-progress{min-width:0;width:100%}
  .academy-module-title h2{overflow-wrap:normal;word-break:normal}
  .academy-course-banner-mark{gap:8px;overflow:hidden}
  .academy-course-banner-mark span{font-size:clamp(29px,8.2vw,36px);min-width:0}
}
@media(max-width:360px){
  .academy-course-banner h1{font-size:clamp(50px,16vw,68px)}
  .academy-module-title h2{font-size:clamp(42px,13vw,52px)}
  .academy-course-meta{grid-template-columns:1fr}
  .academy-course-banner-mark span{font-size:clamp(26px,8vw,30px)}
}

/* Desktop course rail stays visible while the lesson scrolls. */
@media(min-width:1241px){.academy-rail{position:sticky;top:59px;height:calc(100vh - 59px);min-height:0;max-height:calc(100vh - 59px);overflow-y:auto;overflow-x:hidden}}

/* Guided learning workspace styles */
.academy-learning-column{min-width:0;background:var(--academy-paper)}
.academy-module-list li.locked>a{pointer-events:none;color:#66625c;cursor:default}
.academy-module-list li.locked>a i{color:#8f8a82}
.academy-module-list li.available>a{color:#ddd8cf}
.academy-module-list li.available>a i{color:var(--academy-red)}
.academy-module-list li.complete small{color:#77c9a5}
.academy-module-list li.complete>a i{color:#77c9a5}
.academy-module-two{border-top:10px solid var(--academy-black)}
.academy-module-head-two{background:#efe9df}
.academy-module-head-two .academy-module-number b{color:#c5beb3}
.academy-module-gate{max-width:var(--academy-content-max);margin:0 auto;padding:72px var(--academy-gutter);display:grid;grid-template-columns:120px minmax(0,1fr);gap:34px;align-items:center;border-bottom:1px solid #ddd8d0;background:#fbf8f2}.academy-module-gate[hidden]{display:none}
.academy-gate-lock{font-family:var(--display);font-size:92px;line-height:1;color:#d8d1c7}
.academy-module-gate h3{font-family:var(--serif);font-size:clamp(30px,3vw,44px);font-weight:500;line-height:1.1;margin:10px 0 14px;letter-spacing:-.02em}
.academy-module-gate p{max-width:720px;margin:0;font-size:15px;line-height:1.65;color:#5f5a53}
.academy-gate-link{display:inline-flex;align-items:center;gap:18px;margin-top:22px;min-height:44px;padding:0 15px;border:1px solid #bbb4aa;background:#fff;font-size:9px;font-weight:900;letter-spacing:.09em;text-transform:uppercase}
.academy-guided-module{max-width:var(--academy-content-max);margin:0 auto;padding:68px var(--academy-gutter) 34px;border-bottom:1px solid #ddd8d0}
.academy-guided-module[hidden]{display:none}
.academy-guided-intro{display:grid;grid-template-columns:minmax(0,1fr) 150px;gap:36px;align-items:end;margin-bottom:34px}
.academy-guided-intro h3{font-family:var(--serif);font-size:clamp(30px,3.4vw,48px);font-weight:500;line-height:1.05;margin:8px 0 12px;letter-spacing:-.025em}
.academy-guided-intro p{max-width:790px;margin:0;color:#5c5750;font-size:15px;line-height:1.65}
.academy-guided-meter{border-left:1px solid #d7d0c7;padding-left:22px;display:grid;gap:4px}.academy-guided-meter strong{font-family:var(--display);font-size:42px;line-height:1;color:var(--academy-red)}.academy-guided-meter span{font-size:8px;font-weight:900;letter-spacing:.11em;text-transform:uppercase;color:#7c766f}
.academy-step-strip{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));border:1px solid #d5cec4;background:#d5cec4;gap:1px;margin-bottom:26px}
.academy-step-strip button{min-width:0;min-height:74px;border:0;background:#f8f5ef;color:#4f4a44;padding:11px 10px;display:grid;grid-template-columns:auto 1fr;gap:3px 8px;text-align:left;align-content:center;position:relative;transition:background .16s,color .16s}
.academy-step-strip button span{font:900 9px/1 var(--sans);letter-spacing:.08em;color:#aaa39a}.academy-step-strip button b{font-size:10px;line-height:1.15}.academy-step-strip button i{position:absolute;left:0;right:0;bottom:0;height:3px;background:transparent}.academy-step-strip button[aria-selected="true"]{background:#111;color:#fff}.academy-step-strip button[aria-selected="true"] span{color:var(--academy-red)}.academy-step-strip button[aria-selected="true"] i{background:var(--academy-red)}.academy-step-strip button.is-complete{background:#eef7f2;color:#285a45}.academy-step-strip button.is-complete span{color:#2f8f67}.academy-step-strip button.is-complete i{background:#75c29f}.academy-step-strip button:disabled{opacity:.48;cursor:not-allowed}.academy-step-strip button:not(:disabled):focus-visible{outline:3px solid rgba(239,62,47,.25);outline-offset:-3px}
.academy-guided-shell{display:grid;grid-template-columns:minmax(300px,.78fr) minmax(480px,1.22fr);border:1px solid #cfc8be;background:#fff;min-width:0}
.academy-guided-instructions{min-width:0;padding:30px 30px 26px;background:#fbf8f2;border-right:1px solid #cfc8be}
.academy-step-panel[hidden]{display:none}.academy-step-count{display:block;font-size:8px;font-weight:900;letter-spacing:.12em;text-transform:uppercase;color:var(--academy-red);margin-bottom:14px}.academy-step-panel>h3{font-family:var(--serif);font-size:clamp(29px,2.7vw,41px);font-weight:500;line-height:1.08;letter-spacing:-.02em;margin:0 0 16px}.academy-step-panel>p{font-size:15px;line-height:1.67;color:#514c46;margin:0 0 22px}.academy-step-panel code,.academy-your-job code,.academy-term-stack code,.academy-build-requirements code{background:#e9e3da;padding:2px 5px;font-size:.9em;color:#191817}
.academy-your-job{border-left:4px solid var(--academy-red);background:#fff;padding:16px 18px;margin:0 0 24px}.academy-your-job>strong{display:block;font-size:9px;font-weight:900;letter-spacing:.11em;text-transform:uppercase;margin-bottom:7px}.academy-your-job p{margin:0;font-size:14px;line-height:1.58;color:#514c46}
.academy-term-stack{border:1px solid #d8d1c7;background:#f4f0e8}.academy-term-stack>strong{display:block;padding:13px 15px;border-bottom:1px solid #d8d1c7;font-size:10px;font-weight:900;letter-spacing:.12em;text-transform:uppercase}.academy-term-stack>div{padding:17px 16px;border-bottom:1px solid #d8d1c7}.academy-term-stack>div:last-child{border-bottom:0}.academy-term-stack b{display:block;font-family:var(--serif);font-size:21px;font-weight:650;line-height:1.15;margin-bottom:8px;color:#171512}.academy-term-stack p{margin:0;font-size:17px;line-height:1.58;color:#514c46}.academy-term-stack-final>div{background:#fff}
.academy-build-requirements{border:1px solid #d1cac0;background:#fff;margin:0 0 24px}.academy-build-requirements>strong{display:block;padding:13px 15px;border-bottom:1px solid #d1cac0;font-size:9px;font-weight:900;letter-spacing:.11em;text-transform:uppercase}.academy-build-requirements ul{margin:0;padding:8px 18px 12px 38px}.academy-build-requirements li{padding:7px 0;font-size:14px;line-height:1.45;color:#4f4a44}
.academy-hint-button{width:100%;min-height:44px;margin-top:20px;border:1px solid #c8c1b7;background:transparent;color:#37332e;font-size:9px;font-weight:900;letter-spacing:.1em;text-transform:uppercase}.academy-hint-button:hover,.academy-hint-button:focus-visible{background:#fff;outline:0}.academy-hint-button:focus-visible{box-shadow:0 0 0 3px rgba(239,62,47,.18)}.academy-hint-box{margin-top:10px;border:1px solid #d7c6a7;background:#fff8e7;padding:14px 15px;font-size:14px;line-height:1.55;color:#5c4b2e}.academy-hint-box[hidden]{display:none}
.academy-live-lab{min-width:0;background:#111;color:#fff;align-self:start}.academy-lab-toolbar{height:48px;border-bottom:1px solid #353538;display:flex;justify-content:space-between;align-items:center;gap:12px;padding:0 15px;color:#8e8981;font-size:8px;font-weight:900;letter-spacing:.1em;text-transform:uppercase}.academy-file-tabs{display:flex;align-items:center;height:100%;gap:1px}.academy-file-tabs span{height:100%;display:flex;align-items:center;gap:8px;padding:0 13px;border-left:1px solid transparent;border-right:1px solid transparent}.academy-file-tabs span i{width:7px;height:7px;background:#666}.academy-file-tabs span:first-child i{background:#ef6d4f}.academy-file-tabs span:last-child i{background:#d9b14e}.academy-file-tabs span.active{background:#18181a;color:#ece7de;border-left-color:#353538;border-right-color:#353538}.academy-live-lab-grid{display:grid;grid-template-columns:1fr 1fr;min-height:530px}.academy-live-editor,.academy-live-preview{min-width:0;display:flex;flex-direction:column}.academy-live-editor{border-right:1px solid #353538}.academy-live-editor textarea{flex:1;min-height:410px;width:100%;resize:none;border:0;background:#101012;color:#f4f0e8;padding:24px;font:500 16px/1.72 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;tab-size:2}.academy-live-editor textarea:focus{outline:3px solid rgba(239,62,47,.35);outline-offset:-3px}.academy-live-preview{background:#fff}.academy-live-preview iframe{width:100%;height:100%;min-height:484px;border:0;background:#fff}.academy-lab-actions{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid #353538}.academy-run-secondary,.academy-run{min-height:52px;border:0;color:#fff;font-size:9px;font-weight:900;letter-spacing:.1em;text-transform:uppercase;display:flex;align-items:center;justify-content:center;gap:14px}.academy-run-secondary{background:#202023;border-right:1px solid #353538}.academy-run-secondary:hover,.academy-run-secondary:focus-visible{background:#2a2a2e;outline:0}.academy-run{background:var(--academy-red)}.academy-run:hover,.academy-run:focus-visible{background:#ff4c3c;outline:0}.academy-run-secondary:focus-visible,.academy-run:focus-visible{box-shadow:inset 0 0 0 3px rgba(255,255,255,.16)}.academy-lab-feedback{margin:0;border-radius:0;border:0;border-top:1px solid #353538;background:#151517;color:#aaa49c;min-height:50px;padding:14px 16px}.academy-lab-feedback.good{background:#11241c;color:#8be1b5}.academy-lab-feedback.bad{background:#2a1514;color:#f1a59d}
.academy-guided-nav{display:grid;grid-template-columns:auto 1fr auto;gap:16px;align-items:center;border:1px solid #d2cbc1;border-top:0;background:#f8f5ef;padding:12px}.academy-guided-nav button{min-height:44px;border:1px solid #c9c1b6;background:#fff;padding:0 16px;font-size:9px;font-weight:900;letter-spacing:.09em;text-transform:uppercase}.academy-guided-nav button:not(:disabled):hover,.academy-guided-nav button:not(:disabled):focus-visible{border-color:#888178;outline:0}.academy-guided-nav button:disabled{opacity:.35;cursor:not-allowed}.academy-guided-nav>span{text-align:center;font-size:9px;font-weight:900;letter-spacing:.1em;text-transform:uppercase;color:#7d776f}.academy-complete-two{margin-top:70px}

@media(max-width:1320px){
  .academy-guided-shell{grid-template-columns:minmax(280px,.72fr) minmax(450px,1.28fr)}
  .academy-live-lab-grid{grid-template-columns:1fr}
  .academy-live-editor{border-right:0;border-bottom:1px solid #353538}
  .academy-live-editor textarea{min-height:330px}
  .academy-live-preview iframe{min-height:300px}
}
@media(max-width:1240px){
  .academy-guided-shell{grid-template-columns:minmax(330px,.82fr) minmax(500px,1.18fr)}
  .academy-live-lab-grid{grid-template-columns:1fr 1fr}
  .academy-live-editor{border-right:1px solid #353538;border-bottom:0}
  .academy-live-editor textarea{min-height:390px}
  .academy-live-preview iframe{min-height:464px}
}
@media(max-width:900px){
  .academy-guided-shell{grid-template-columns:1fr}
  .academy-guided-instructions{border-right:0;border-bottom:1px solid #cfc8be}
  .academy-live-lab-grid{grid-template-columns:1fr 1fr}
  .academy-step-strip{display:flex;overflow-x:auto;scroll-snap-type:x proximity}
  .academy-step-strip button{flex:0 0 124px;scroll-snap-align:start}
}
@media(max-width:700px){
  .academy-module-gate{grid-template-columns:1fr;padding:50px 20px}.academy-gate-lock{font-size:62px}
  .academy-guided-module{padding:50px 20px 24px}.academy-guided-intro{grid-template-columns:1fr;gap:20px}.academy-guided-meter{border-left:0;border-top:1px solid #d7d0c7;padding:16px 0 0;display:flex;align-items:baseline;gap:10px}.academy-guided-meter strong{font-size:34px}
  .academy-step-strip{margin-left:-20px;margin-right:-20px;border-left:0;border-right:0;padding-left:20px;padding-right:20px}.academy-step-strip button{flex-basis:112px}
  .academy-guided-instructions{padding:25px 20px 22px}.academy-step-panel>h3{font-size:32px}.academy-step-panel>p{font-size:16px}.academy-term-stack p{font-size:17px}.academy-term-stack b{font-size:21px}
  .academy-live-lab-grid{grid-template-columns:1fr}.academy-live-editor{border-right:0;border-bottom:1px solid #353538}.academy-live-editor textarea{min-height:300px;font-size:15px;padding:20px}.academy-live-preview iframe{min-height:280px}.academy-file-tabs span{padding:0 9px}.academy-lab-actions{grid-template-columns:1fr}.academy-run-secondary{border-right:0;border-bottom:1px solid #353538}
  .academy-guided-nav{grid-template-columns:1fr 1fr}.academy-guided-nav>span{grid-column:1/-1;grid-row:1}.academy-guided-nav button{grid-row:2}.academy-complete-two{margin-top:48px}
}
@media(max-width:360px){
  .academy-step-strip button{flex-basis:104px}.academy-guided-instructions{padding:22px 16px}.academy-step-panel>h3{font-size:29px}.academy-term-stack>div{padding:15px 14px}.academy-term-stack p{font-size:16.5px}.academy-live-editor textarea{font-size:14px;padding:17px}.academy-file-tabs span:last-child{display:none}
}
/* Shared Academy accessible-only text. Keep labels available to assistive technology without putting helper copy into the visual layout. */
.academy-page .sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;clip-path:inset(50%)!important;white-space:nowrap!important;border:0!important}
.academy-module-list li>a>i{font-style:normal;font:900 9px/1.4 var(--sans);letter-spacing:.08em;color:#9a958d}
.academy-module-list li.active>a>i{color:#ef3e2f}

/* Module 2 teaching pattern: show one complete working syntax example before asking a DIY learner to reproduce it. */
.academy-code-example{margin:0 0 24px;border:1px solid #cfc7bb;background:#171512;color:#f8f4ed;box-shadow:0 12px 28px rgba(20,18,15,.08)}
.academy-code-example>strong{display:block;padding:12px 16px;border-bottom:1px solid rgba(255,255,255,.14);font-size:10px;font-weight:900;letter-spacing:.12em;text-transform:uppercase;color:#f0b6aa}
.academy-code-example-line{margin:0;padding:20px 18px;background:#11100e;overflow:visible}
.academy-code-example-line code{display:block;background:transparent!important;padding:0!important;color:#fff!important;font:600 16px/1.55 ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono",monospace;white-space:normal;overflow-wrap:anywhere;word-break:normal}
.academy-code-example-parts{display:grid;gap:0;background:#fff;color:#2a2723}
.academy-code-example-parts p{margin:0;padding:13px 16px;border-top:1px solid #e2ddd5;font-size:15.5px;line-height:1.6}
.academy-code-example-parts p:first-child{border-top:0}
.academy-code-example-parts code{background:#eee8df;padding:2px 5px;color:#191817;white-space:normal;overflow-wrap:anywhere;word-break:break-word}
@media(max-width:700px){.academy-code-example-line{padding:17px 14px}.academy-code-example-line code{font-size:14px;white-space:normal;overflow-wrap:anywhere}.academy-code-example-parts p{padding:12px 14px;font-size:15px}}

/* Keep Academy guided lessons clear of the sticky site header when Start/Continue or step navigation scrolls them into view. */
.academy-guided-module,.academy-step-panel{scroll-margin-top:68px}

/* Module 3 Activity 7: beginner-first nesting visual */
#module3 [data-m3-panel="nesting"] .academy-nesting-key{margin:0 0 24px;padding:18px 20px;border:3px solid #171512;background:#fff4c7;color:#171512}
#module3 [data-m3-panel="nesting"] .academy-nesting-key>strong{display:block;font-size:11px;font-weight:950;letter-spacing:.12em;margin-bottom:9px}
#module3 [data-m3-panel="nesting"] .academy-nesting-key p{margin:5px 0;font-size:18px;line-height:1.5}
#module3 [data-m3-panel="nesting"] .academy-nesting-visual{margin:0 0 24px;padding:20px;border:1px solid #cfc7bb;background:#fff}
#module3 [data-m3-panel="nesting"] .academy-nesting-visual>strong{display:block;font-size:11px;font-weight:950;letter-spacing:.12em;margin-bottom:7px}
#module3 [data-m3-panel="nesting"] .academy-nesting-visual>p{margin:0 0 15px;font-size:16px;line-height:1.55;color:#514c46}
#module3 [data-m3-panel="nesting"] .academy-nesting-box{padding:14px;border:3px solid #171512;background:#faf8f3;font-size:16px;line-height:1.35}
#module3 [data-m3-panel="nesting"] .academy-nesting-box .academy-nesting-box{margin:14px 0 0 18px}
#module3 [data-m3-panel="nesting"] .academy-nesting-main{border-left-width:7px}
#module3 [data-m3-panel="nesting"] .academy-nesting-section{border-style:dashed}
#module3 [data-m3-panel="nesting"] .academy-nesting-heading{background:#fff4c7;border-width:2px}
#module3 [data-m3-panel="nesting"] .academy-nesting-read{margin-top:15px!important;padding:12px 14px;background:#f4f0e8;color:#171512!important}
#module3 [data-m3-panel="nesting"] .academy-nesting-code mark{display:inline;background:#fff4c7;color:#171512;padding:1px 4px}
#module3 [data-m3-panel="nesting"] .academy-nesting-code mark.level-2{background:#f1eadf}
#module3 [data-m3-panel="nesting"] .academy-nesting-code mark.level-3{background:#e6e0d6}
#module3 [data-m3-panel="nesting"] .academy-nesting-do-this{margin:0 0 24px;padding:19px 20px;border-left:6px solid var(--academy-red);background:#fff}
#module3 [data-m3-panel="nesting"] .academy-nesting-do-this>strong,#module3 [data-m3-panel="nesting"] .academy-nesting-target>strong{display:block;font-size:11px;font-weight:950;letter-spacing:.12em;margin-bottom:9px}
#module3 [data-m3-panel="nesting"] .academy-nesting-do-this p{margin:0 0 12px;font-size:16px;line-height:1.55}
#module3 [data-m3-panel="nesting"] .academy-nesting-do-this ol{margin:0;padding-left:24px}
#module3 [data-m3-panel="nesting"] .academy-nesting-do-this li{margin:9px 0;font-size:16px;line-height:1.55;color:#3f3a35}
#module3 [data-m3-panel="nesting"] .academy-nesting-target{margin:0 0 24px;padding:18px 20px;border:2px solid #171512;background:#f4f0e8}
#module3 [data-m3-panel="nesting"] .academy-nesting-target .academy-code-example-line{margin:10px 0 12px;border:1px solid #2c2925}
#module3 [data-m3-panel="nesting"] .academy-nesting-target p{margin:0;font-size:15px;line-height:1.55}
@media(max-width:700px){#module3 [data-m3-panel="nesting"] .academy-nesting-key p{font-size:17px}#module3 [data-m3-panel="nesting"] .academy-nesting-visual{padding:15px}#module3 [data-m3-panel="nesting"] .academy-nesting-box{padding:11px;font-size:14.5px}#module3 [data-m3-panel="nesting"] .academy-nesting-box .academy-nesting-box{margin-left:10px}#module3 [data-m3-panel="nesting"] .academy-nesting-do-this,#module3 [data-m3-panel="nesting"] .academy-nesting-target{padding:16px}}
#module3 [data-m3-panel="nesting"] .academy-tag-pair-help{margin:18px 0 0;padding:16px 18px;border:2px solid #171512;background:#fff4c7}
#module3 [data-m3-panel="nesting"] .academy-tag-pair-help>strong{display:block;font-size:11px;font-weight:950;letter-spacing:.12em;margin-bottom:8px}
#module3 [data-m3-panel="nesting"] .academy-tag-pair-help p{margin:8px 0;font-size:16px;line-height:1.55;color:#2e2a25}
#module3 [data-m3-panel="nesting"] .academy-tag-pair-help .academy-code-example-line{margin:10px 0;background:#171512;color:#fff}


/* Module 4 rebuilt cleanly on the proven Modules 2–3 guided-lab shell. */
#module4,#module4 .academy-guided-module,#module4 .academy-guided-shell,#module4 .academy-guided-instructions,#module4 .academy-live-lab,#module4 .academy-live-lab-grid,#module4 .academy-live-editor,#module4 .academy-live-preview{min-width:0;max-width:100%}
#module4 textarea{width:100%;max-width:100%;box-sizing:border-box}
#module4 .academy-code-example-line code,#module4 .academy-code-example-parts code,#module4 .academy-your-job code,#module4 .academy-term-stack code{overflow-wrap:anywhere;word-break:break-word}


/* Academy Teacher: focused help for coding modules. */
.academy-teacher-entry{position:sticky;top:62px;z-index:8;margin:-10px 0 20px;border:2px solid #171512;background:#fff;box-shadow:0 8px 20px rgba(20,18,15,.08)}
.academy-teacher-open{width:100%;min-height:60px;border:0;background:#171512;color:#fff;padding:0 18px;display:flex;align-items:center;justify-content:space-between;gap:18px;text-align:left;font-size:11px;font-weight:950;letter-spacing:.08em;text-transform:uppercase}
.academy-teacher-open b{color:#ffd64d;font-size:10px}.academy-teacher-open:hover,.academy-teacher-open:focus-visible{background:#2b2824;outline:0}.academy-teacher-open:focus-visible{box-shadow:0 0 0 4px rgba(239,62,47,.24)}
.academy-teacher-panel[hidden]{display:none}.academy-teacher-panel{min-width:0}
.academy-teacher-head{position:sticky;top:0;z-index:4;display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:0 0 18px;background:#fbf8f2;border-bottom:2px solid #171512}
.academy-teacher-head span,.academy-teacher-kicker{display:block;font-size:9px;font-weight:950;letter-spacing:.12em;text-transform:uppercase;color:var(--academy-red)}
.academy-teacher-head h3{font-family:var(--serif);font-size:clamp(30px,3vw,42px);font-weight:550;line-height:1.04;letter-spacing:-.02em;margin:7px 0 0}
.academy-teacher-head button{flex:0 0 auto;min-height:42px;border:1px solid #aaa298;background:#fff;padding:0 13px;font-size:9px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.academy-teacher-head button:hover,.academy-teacher-head button:focus-visible{border-color:#171512;outline:0}
.academy-teacher-promise{margin:16px 0 14px!important;padding:12px 14px;background:#fff7d9;border-left:5px solid #171512;color:#342f2a!important;font-size:15px!important;line-height:1.5!important}
.academy-teacher-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin-bottom:18px}.academy-teacher-actions button{min-height:48px;border:1px solid #c7c0b6;background:#fff;padding:9px 10px;text-align:left;font-size:9px;font-weight:900;line-height:1.25;letter-spacing:.07em;text-transform:uppercase}.academy-teacher-actions button:hover,.academy-teacher-actions button:focus-visible,.academy-teacher-actions button.is-active{border-color:#171512;background:#171512;color:#fff;outline:0}.academy-teacher-actions .academy-teacher-answer-button{grid-column:1/-1;border:2px solid var(--academy-red);color:#a32b21;background:#fff}.academy-teacher-actions .academy-teacher-answer-button.is-active{background:var(--academy-red);color:#fff;border-color:var(--academy-red)}
.academy-teacher-content{border:1px solid #cbc3b8;background:#fff;padding:20px;min-height:270px}.academy-teacher-content h4{font-family:var(--serif);font-size:28px;line-height:1.12;margin:7px 0 13px;font-weight:650}.academy-teacher-content>p{font-size:17px;line-height:1.62;color:#39342f;margin:0 0 16px}

/* Shared Teacher “Show me” visual layout. Keeps step/label/detail elements from collapsing into one inline string. */
.academy-teacher-visual{display:grid;gap:10px;margin-top:12px}
.academy-teacher-visual>div{display:grid;grid-template-columns:minmax(24px,max-content) minmax(0,1fr);column-gap:12px;row-gap:3px;align-items:start;min-width:0}
.academy-teacher-visual>div>i{grid-column:1;grid-row:1/span 3;display:block;margin:0;font-style:normal;font-weight:900}
.academy-teacher-visual>div>span{grid-column:2;display:grid;gap:2px;min-width:0;overflow-wrap:anywhere}
.academy-teacher-visual>div>small{grid-column:2;display:block;min-width:0;overflow-wrap:anywhere}
.academy-teacher-visual>div>span>b,.academy-teacher-visual>div>span>strong,.academy-teacher-visual>div>span>small{display:block;min-width:0;overflow-wrap:anywhere}
.academy-teacher-visual>div>b:first-child{grid-column:1/-1;grid-row:auto;display:block;margin:0;min-width:0;overflow-wrap:anywhere}
.academy-teacher-visual>div>b:first-child+span,.academy-teacher-visual>div>b:first-child+span+small{grid-column:1/-1;display:block;min-width:0;overflow-wrap:anywhere}
.academy-teacher-remember,.academy-teacher-where,.academy-teacher-why,.academy-teacher-must-do,.academy-teacher-diagnosis{padding:14px 15px;margin-top:16px;border-left:5px solid #171512;background:#f5f1e9}.academy-teacher-remember b,.academy-teacher-where b,.academy-teacher-why b,.academy-teacher-must-do b,.academy-teacher-diagnosis b{display:block;font-size:10px;font-weight:950;letter-spacing:.09em;text-transform:uppercase;margin-bottom:6px}.academy-teacher-remember p,.academy-teacher-where p,.academy-teacher-why p,.academy-teacher-must-do p,.academy-teacher-diagnosis p{margin:0;font-size:16px;line-height:1.58;color:#39342f}.academy-teacher-must-do{border-left-color:var(--academy-red);background:#fff0ed}.academy-teacher-diagnosis.bad{border-left-color:#b4382d;background:#fff0ed}.academy-teacher-diagnosis.good{border-left-color:#2f8f67;background:#edf8f2}
.academy-teacher-code{margin:12px 0;padding:16px;background:#111;color:#fff;overflow:auto;border:0}.academy-teacher-code code{font:650 15px/1.65 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;white-space:pre-wrap;overflow-wrap:anywhere}
.academy-teacher-parts,.academy-teacher-breakdown{display:grid;gap:10px}.academy-teacher-part,.academy-teacher-break-step{border:1px solid #d7d0c6;background:#faf7f1;padding:13px}.academy-teacher-part>b,.academy-teacher-break-step>b{display:block;font-size:10px;font-weight:950;letter-spacing:.07em;text-transform:uppercase}.academy-teacher-part p,.academy-teacher-break-step p{margin:8px 0 0;font-size:15.5px;line-height:1.55;color:#49433d}.academy-teacher-part .academy-teacher-code,.academy-teacher-break-step .academy-teacher-code{margin:9px 0 0;padding:12px}
.academy-teacher-steps{margin:0;padding-left:24px}.academy-teacher-steps li{padding:7px 0;font-size:17px;line-height:1.52;color:#39342f}.academy-teacher-break-title{margin-top:25px!important;border-top:2px solid #171512;padding-top:20px}.academy-teacher-small{font-size:14px!important;color:#605951!important}.academy-teacher-code-jump{width:100%;min-height:48px;margin:0 0 14px;border:0;background:var(--academy-red);color:#fff;font-size:9px;font-weight:950;letter-spacing:.1em;text-transform:uppercase}
body.academy-teacher-mode{overflow:hidden}
.academy-guided-module.is-teacher-focus{position:fixed;inset:0;z-index:1200;max-width:none;margin:0;padding:18px;background:#ede8df;overflow:auto;border:0}
.academy-guided-module.is-teacher-focus>.academy-guided-intro,.academy-guided-module.is-teacher-focus>.academy-step-strip,.academy-guided-module.is-teacher-focus>.academy-guided-nav{display:none!important}
.academy-guided-module.is-teacher-focus .academy-guided-shell{max-width:1500px;min-height:calc(100vh - 36px);margin:0 auto;grid-template-columns:minmax(360px,.78fr) minmax(620px,1.22fr);align-items:start;box-shadow:0 20px 70px rgba(20,18,15,.18)}
.academy-guided-module.is-teacher-focus .academy-guided-instructions>.academy-step-panel,.academy-guided-module.is-teacher-focus .academy-guided-instructions>.academy-teacher-entry{display:none!important}
.academy-guided-module.is-teacher-focus .academy-teacher-panel{display:block!important}
.academy-guided-module.is-teacher-focus .academy-guided-instructions{position:sticky;top:0;max-height:calc(100vh - 36px);overflow:auto;padding:24px;background:#fbf8f2}
.academy-guided-module.is-teacher-focus .academy-live-lab{position:sticky;top:0;max-height:calc(100vh - 36px);overflow:auto}
.academy-guided-module.is-teacher-focus .academy-live-editor textarea{min-height:440px}
@media(max-width:1100px){.academy-guided-module.is-teacher-focus .academy-guided-shell{grid-template-columns:minmax(330px,.8fr) minmax(520px,1.2fr)}.academy-guided-module.is-teacher-focus .academy-live-lab-grid{grid-template-columns:1fr}.academy-guided-module.is-teacher-focus .academy-live-editor{border-right:0;border-bottom:1px solid #353538}.academy-guided-module.is-teacher-focus .academy-live-preview iframe{min-height:300px}}
@media(max-width:900px){body.academy-teacher-mode{overflow:hidden}.academy-guided-module.is-teacher-focus{padding:0}.academy-guided-module.is-teacher-focus .academy-guided-shell{display:block;min-height:100vh;border:0;box-shadow:none}.academy-guided-module.is-teacher-focus .academy-guided-instructions,.academy-guided-module.is-teacher-focus .academy-live-lab{position:static;max-height:none;overflow:visible}.academy-guided-module.is-teacher-focus .academy-guided-instructions{padding:20px}.academy-guided-module.is-teacher-focus .academy-live-lab-grid{grid-template-columns:1fr}.academy-guided-module.is-teacher-focus .academy-live-editor textarea{min-height:300px}.academy-teacher-head{display:grid}.academy-teacher-head button{justify-self:start}.academy-teacher-content{padding:17px}.academy-teacher-content h4{font-size:27px}.academy-teacher-actions{grid-template-columns:1fr}.academy-teacher-actions .academy-teacher-answer-button{grid-column:auto}}

@media(max-width:700px){.academy-teacher-entry{top:54px;margin:-4px -4px 18px}.academy-teacher-open{min-height:54px;padding:0 14px}.academy-teacher-open b{font-size:8.5px}}

/* Module 6 browser error report */
.academy-browser-report{margin:0;padding:10px 14px;border-bottom:1px solid #d7d0c5;background:#f3f0e9;font-size:13px;font-weight:700;line-height:1.45}.academy-browser-report.has-error{background:#fff0ed;color:#8f2019}

/* Builder School Teacher close-control root fix v2 — the close action occupies its own top row, with the Teacher heading below it. */
.academy-guided-module.is-teacher-focus .academy-teacher-head{
  position:sticky!important;
  top:0!important;
  z-index:12;
  display:grid!important;
  grid-template-columns:minmax(0,1fr);
  grid-template-areas:"close" "heading";
  align-items:start;
  row-gap:14px;
  padding-top:4px;
}
.academy-guided-module.is-teacher-focus .academy-teacher-head>div{
  grid-area:heading;
  min-width:0;
}
.academy-guided-module.is-teacher-focus .academy-teacher-head button{
  grid-area:close;
  justify-self:end;
  align-self:start;
  margin:0 4px 0 0;
}

/* Critical-release readability: do not compress learner-facing Course 1 section headings. */
#course01Main .academy-objectives h3,#course01Main .academy-activity-head h3{letter-spacing:0}
