body[data-mode=chapter3]{background:var(--chapter-bg);overflow:hidden}body[data-mode=chapter3] #vignette{display:none}body[data-mode=chapter3] .topbar{background:linear-gradient(var(--chapter-panel),transparent)}.c3-card{background:var(--chapter-panel);border:1px solid var(--chapter-border);border-radius:20px;padding:32px;color:var(--chapter-text);box-shadow:0 15px 80px var(--chapter-shadow)}.c3-card h1{font-size:42px;margin:14px 0}.c3-card p{line-height:1.6;margin:15px 0}.c3-card>button{margin:6px}.c3-map{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:min(580px,92vw)}.c3-map .mission-menu small{display:block;font-size:9px;letter-spacing:1px;margin-top:7px;opacity:.65}.c3-hud{position:absolute;left:30px;top:82px;max-width:600px;pointer-events:none!important}.c3-hud h2{font-size:30px;margin:6px 0}.c3-hud p{font-size:14px;line-height:1.45}.c3-status{display:flex;gap:22px;font-size:12px;color:var(--chapter-muted);margin:10px 0}.c3-hud meter{height:8px;width:180px;accent-color:var(--chapter-accent)}.c3-input{position:absolute;bottom:22px;left:30px;right:30px;display:flex;align-items:end;gap:20px;justify-content:space-between;pointer-events:none!important}.c3-input>*{pointer-events:auto}.c3-context{display:flex;flex-wrap:wrap;justify-content:center;gap:9px;max-width:650px;padding:12px;background:var(--chapter-deep);border:1px solid var(--chapter-border);border-radius:14px}.c3-context p{width:100%;text-align:center;font-size:10px;letter-spacing:1px;color:var(--chapter-muted)}.c3-context .text-button{width:100%}.c3-pad{display:grid;grid-template-columns:repeat(3,48px);gap:5px;flex-shrink:0}.c3-pad button{background:var(--chapter-surface);border:1px solid var(--chapter-border);border-radius:12px;width:48px;height:48px;font-size:24px;touch-action:none;user-select:none}.c3-pad button:first-child{grid-column:2}.c3-pad button:nth-child(2){grid-column:1}.c3-hold,[data-direction]{touch-action:none!important;user-select:none;-webkit-user-select:none}.c3-hold.held,.c3-hold:active{transform:translateY(3px);background:var(--chapter-accent)}.c3-keyhelp{position:absolute;bottom:-17px;left:0;right:0;text-align:center;font-size:10px;pointer-events:none}.c3-overlay{position:fixed;inset:0;display:grid;place-items:center;background:var(--chapter-overlay);z-index:20}.c3-overlay .c3-card{max-width:92vw}.c3-overlay h2{margin:12px 0}.c3-bench{position:absolute;top:85px;left:50%;transform:translateX(-50%);width:min(1000px,94vw);max-height:calc(100dvh - 105px);overflow:auto;background:var(--chapter-panel);border:1px solid var(--chapter-border);border-radius:18px;padding:24px}.c3-bench header h2{font-size:29px;margin:6px 0 10px}.c3-bench header p{font-size:14px;line-height:1.4}.c3-bench-grid{display:grid;grid-template-columns:1fr 240px;gap:24px;margin-top:16px}.c3-bench .circuit-board{height:340px;min-height:340px;aspect-ratio:auto;width:100%;background:var(--chapter-board);border-radius:12px;position:relative}.c3-bench .component{width:80px;height:70px}.c3-bench .component-art svg{width:80px;height:50px}.c3-bench .component-name{font-size:9px;color:var(--chapter-deep);white-space:nowrap}.c3-bench .terminal{width:44px;height:44px;top:8px}.c3-bench .terminal.t0{left:-36px}.c3-bench .terminal.t1{right:-36px}.c3-bench .terminal span{color:var(--chapter-deep);font-size:9px}.c3-bench .component.control{width:80px}.c3-bench #c3-wires{position:absolute;inset:0;width:100%;height:100%;overflow:visible}.c3-bench .wire-hit{pointer-events:stroke;stroke:transparent;stroke-width:16;fill:none}.c3-bench .wire-line{fill:none;stroke:#b76b4d;stroke-width:3}.c3-bench .board-caption{padding:10px 0;display:flex;justify-content:space-between;font-size:9px}.c3-wire-tools{display:flex;align-items:center;justify-content:space-between;font-size:10px}.c3-parts{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0}.c3-parts button{font-size:12px;width:100%}.c3-testbox{background:var(--chapter-deep);border-radius:12px;padding:14px;display:flex;flex-direction:column;align-items:center;gap:9px;margin-bottom:12px}.c3-led{width:24px;height:24px;background:#776043;border:3px solid #ad946c;border-radius:50%}.c3-led.on{background:#ffcd72;box-shadow:0 0 25px #ffb73e}.c3-testbox p,.c3-testbox small{font-size:10px;text-align:center}.c3-bench #c3-feedback{font-size:12px;line-height:1.5;min-height:42px;margin-top:12px}.c3-bench footer{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--chapter-border);padding-top:15px;margin-top:15px;font-size:11px;gap:14px}.c3-tabs{display:flex;gap:12px;margin-top:15px}.c3-tabs [aria-pressed=true],.c3-parts [aria-pressed=true]{border-color:var(--chapter-accent)}.c3-bench .led.lit{filter:drop-shadow(0 0 12px #ffc343)}
@media(max-width:650px){.c3-hud{left:16px;right:16px;top:68px}.c3-hud h2{font-size:23px}.c3-hud p{font-size:12px}.c3-status{gap:12px;font-size:10px;margin:6px 0}.c3-input{left:12px;right:12px;bottom:27px;gap:10px;align-items:end}.c3-pad{grid-template-columns:repeat(3,42px);gap:3px}.c3-pad button{width:42px;height:44px}.c3-context{position:absolute;bottom:110px;left:0;right:0;max-width:none;padding:8px;gap:7px}.c3-context button{min-height:44px;font-size:11px}.c3-context .text-button{width:auto}.c3-context p{font-size:9px}.c3-keyhelp{font-size:9px;bottom:-18px}.c3-map{padding:24px}.c3-card h1{font-size:34px}.c3-bench{top:62px;padding:14px;max-height:calc(100dvh - 72px)}.c3-bench header h2{font-size:23px}.c3-bench header p{font-size:12px}.c3-bench-grid{grid-template-columns:1fr;gap:8px;margin-top:8px}.c3-bench .circuit-board{height:265px;min-height:265px}.c3-bench .component,.c3-bench .component.control{width:54px;height:58px}.c3-bench .component-art svg{width:54px;height:38px}.c3-bench .component-name{font-size:7px}.c3-bench .terminal.t0{left:-29px}.c3-bench .terminal.t1{right:-29px}.c3-bench .terminal{width:36px;height:44px;top:0}.c3-bench .board-caption{font-size:7px}.c3-parts{margin:5px 0}.c3-parts button{width:auto;flex:1}.c3-testbox{display:grid;grid-template-columns:26px 1fr 1.4fr;gap:7px;padding:9px;margin:8px 0}.c3-testbox strong{font-size:11px}.c3-testbox p{font-size:9px}.c3-testbox button{grid-column:2/4}.c3-testbox small{grid-column:1/4}.c3-bench #c3-feedback{min-height:0;margin-top:7px}.c3-bench footer>span{display:none}.c3-bench footer{justify-content:end}.c3-bench aside>.eyebrow{display:none}.c3-bench .c3-tabs button{font-size:11px;padding:8px}.c3-bench footer{margin-top:8px;padding-top:10px}}
@media(max-height:620px) and (min-width:651px){.c3-hud{top:62px}.c3-hud h2{font-size:22px}.c3-bench{top:62px;max-height:calc(100dvh - 72px)}.c3-input{bottom:22px}.c3-context{padding:8px}}
body[data-chapter="3"] .secondary{color:var(--chapter-text);background:var(--chapter-surface);border:1px solid var(--chapter-border)}body[data-chapter="3"] .primary{color:var(--chapter-deep);background:var(--chapter-accent);box-shadow:0 3px 0 var(--chapter-accent-shadow)}.c3-bench .circuit-board{border-color:var(--chapter-board-border)}.c3-bench .component{border-color:var(--chapter-board-border)}.c3-bench .terminal:before{background:var(--chapter-deep);box-shadow:0 0 0 2px var(--chapter-board-border)}
body[data-mode=chapter3] [hidden]{display:none!important}@media(max-width:650px){.c3-pad{grid-template-columns:repeat(3,44px)}.c3-pad button{width:44px}.c3-bench .terminal{width:40px}}
.c3-input,.c3-context,.c3-context button{touch-action:none}
@media(max-height:620px) and (min-width:651px){.c3-hud{left:15px;max-width:250px}.c3-hud p{font-size:11px}.c3-status{display:block;font-size:10px}.c3-status span{display:block;margin-top:4px}.c3-input{left:15px;right:auto;width:265px;bottom:18px;gap:8px}.c3-context{position:absolute;bottom:108px;left:0;right:0;padding:6px;gap:5px}.c3-context p,.c3-context .text-button{display:none}.c3-context button{font-size:10px;padding:8px;min-height:40px}.c3-pad{grid-template-columns:repeat(3,40px)}.c3-pad button{width:40px;height:40px}.c3-keyhelp{font-size:8px}.c3-hud meter{display:none}}
body[data-mode=chapter3] #app,body[data-mode=chapter3] #world,body[data-mode=chapter3] #vignette{min-height:0;height:100dvh}
@media(max-height:620px) and (min-width:651px){.c3-context{bottom:90px}}
/* The illustrated component tray follows Chapter 1's workbench pattern. */
.c3-bench{width:min(1200px,94vw)}
.c3-bench-grid{grid-template-columns:210px minmax(0,1fr) 220px;gap:20px}
.c3-parts-tray,.c3-board-column,.c3-observations{min-width:0}
.c3-parts-tray{padding-top:10px}
.c3-parts-tray>.eyebrow{display:block!important}
.c3-parts-tray .c3-parts{display:flex;flex-direction:column;gap:12px;margin:18px 0}
.c3-parts-tray .inventory{display:flex;flex:0 0 auto;width:100%;min-height:86px;padding:12px;gap:12px;font-size:15px;border-radius:13px}
.c3-parts-tray .inventory .part-drawing{width:44px;flex:0 0 44px}
.c3-parts-tray .inventory svg{width:44px;height:38px}
.c3-parts-tray .inventory svg path{stroke:var(--chapter-text)}
.c3-parts-tray .inventory svg circle{fill:var(--chapter-accent)}
.c3-parts-tray .inventory small{font-size:11px;line-height:1.4;margin-top:6px;color:var(--chapter-muted)}
.c3-parts-tray .inventory>b{display:block;margin-left:auto;color:var(--chapter-text);font-size:18px}
.c3-parts-tray .inventory.chosen{opacity:1;border-color:var(--chapter-accent);background:var(--chapter-hover)}
.c3-wire-note{font-size:14px;margin-top:20px;color:var(--chapter-text)}
.c3-wire-note small{display:block;font-size:11px;line-height:1.5;margin-top:6px;color:var(--chapter-muted)}
@media(min-width:651px) and (max-width:1099px){.c3-bench-grid{grid-template-columns:190px minmax(0,1fr)}.c3-parts-tray{grid-row:1/3}.c3-observations{grid-column:2}.c3-observations .c3-testbox{margin-top:10px}}
@media(max-width:650px){.c3-bench-grid{grid-template-columns:minmax(0,1fr);gap:12px}.c3-parts-tray{padding-top:0}.c3-parts-tray .c3-parts{flex-direction:row;margin:8px 0 0;gap:8px}.c3-parts-tray .inventory{flex:1;min-width:0;min-height:76px;padding:9px;gap:7px;font-size:13px}.c3-parts-tray .inventory .part-drawing{width:32px;flex-basis:32px}.c3-parts-tray .inventory svg{width:32px;height:32px}.c3-parts-tray .inventory small{font-size:10px;margin-top:4px}.c3-parts-tray .inventory>b{font-size:15px}.c3-wire-note{display:none}}
@media(max-width:370px){.c3-parts-tray .c3-parts{flex-direction:column}.c3-parts-tray .inventory{flex:auto;min-height:64px}}

/* Chapter menus share one alignment and leave room between action groups. */
.c3-map{display:flex;flex-direction:column;max-height:calc(100dvh - 110px);overflow:auto;padding:30px;top:calc(50% + 25px)}
.c3-map h1{margin:16px 0 12px;line-height:1.1}
.c3-map p{margin:0 0 24px;color:var(--chapter-muted)}
.c3-map>button{margin:0;width:100%;min-height:48px;flex-shrink:0;font-size:14px}
.c3-map>.primary{justify-content:space-between;padding-inline:18px;margin-bottom:20px}
.c3-map .mission-menu{gap:10px}
.c3-map .mission-menu button{min-height:58px;padding:14px 18px;gap:14px}
.c3-map .mission-menu span{font-size:14px}
.c3-map .mission-menu b{font-size:18px}
.c3-map .mission-menu button:disabled{opacity:1;background:var(--chapter-deep);color:var(--chapter-muted);border-color:transparent}
.c3-map .mission-menu button:disabled b{color:var(--chapter-muted)}
.c3-map .mission-menu button:disabled b:last-child{visibility:hidden}
.c3-map>.text-button{margin-top:20px;padding-top:16px;border-top:1px solid var(--chapter-border);border-radius:0;color:var(--chapter-muted)}
@media(max-width:650px){.c3-map{padding:22px;max-height:calc(100dvh - 88px);top:calc(50% + 26px)}.c3-map h1{font-size:32px}.c3-map p{font-size:14px;margin-bottom:20px}.c3-map .mission-menu button{padding:12px;gap:10px}.c3-map .mission-menu span{font-size:13px}}

/* Two-module repairs identify the active task independently of completion. */
.c3-step-label{display:block;font-size:10px;letter-spacing:1.5px;color:var(--chapter-accent);margin:12px 0 8px}
.c3-tabs{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.c3-tabs .secondary{justify-content:flex-start;text-align:left;padding:14px 16px;gap:12px;min-height:70px}
.c3-tabs .secondary>b{display:grid;place-items:center;flex-shrink:0;width:28px;height:28px;border:1px solid currentColor;border-radius:50%}
.c3-tabs small{display:block;font-size:11px;font-weight:400;margin-top:5px}
body[data-chapter="3"] .c3-tabs [aria-pressed=true]{background:var(--chapter-accent);color:var(--chapter-deep);border-color:var(--chapter-accent)}
#c3-module-title:focus{outline:none}
@media(max-width:650px){.c3-tabs{gap:8px}.c3-bench .c3-tabs button{padding:10px;gap:8px;font-size:12px}.c3-tabs .secondary>b{width:24px;height:24px}.c3-tabs small{font-size:10px}.c3-bench footer>span{display:block;font-size:10px}.c3-bench footer{justify-content:space-between}}

.c3-context #c3-send-status{display:block;width:100%;font-size:12px;line-height:1.4;letter-spacing:0;text-align:center;color:var(--chapter-text)}
body[data-chapter="3"] #c3-send.ready{background:var(--chapter-accent);color:var(--chapter-deep);border-color:var(--chapter-accent)}
.c3-input>[data-direction=dash]{flex-direction:column;gap:4px;min-width:94px}
.c3-input>[data-direction=dash] small{font-size:10px;font-weight:400}
@media(max-width:650px),(max-height:620px){.c3-context #c3-send-status{font-size:11px}}

@media(pointer:coarse){
 .c3-key-label,.c3-keyhelp{display:none}
 .c3-context{display:grid;grid-template-columns:1fr 1fr;gap:10px}
 .c3-context p,.c3-context .text-button{grid-column:1/-1}
 .c3-context button{min-height:48px}
 #c3-hold{grid-column:2;grid-row:2/4;min-height:106px}
 #c3-interact{grid-column:1;grid-row:2}
 #c3-send{grid-column:1;grid-row:3}
 #c3-send[aria-pressed=true]{border:2px solid var(--chapter-accent);color:var(--chapter-accent)}
 .c3-pad button{min-width:44px;min-height:44px}
}
