@font-face{font-family:'Fusion Pixel';src:url('../assets/fonts/fusion-pixel/fusion-pixel-12px-proportional-zh_hans.ttf') format('truetype');font-weight:400;font-style:normal;font-display:swap}
/* Shared pixel workshop shell for every chapter, tutorial and utility panel. */
:is(#visualLesson,#expeditionDialog,#tutorial,#playground,#workbench,#programmingTerminal,#adventurePanel,#infoDialog,#measurementDialog,#compilerDialog,#hardwareDialog,#pulseDialog,#finaleDialog).pixel-workshop,
:is(#visualLesson,#expeditionDialog,#tutorial,#playground,#workbench,#programmingTerminal,#adventurePanel,#infoDialog,#measurementDialog,#compilerDialog,#hardwareDialog,#pulseDialog,#finaleDialog).pixel-workshop *{
 image-rendering:pixelated;font-smooth:never;-webkit-font-smoothing:none;
 font-family:'Fusion Pixel','Zpix','Ark Pixel',monospace!important;
 border-radius:0!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;
 transition-timing-function:steps(3,end)!important;animation-timing-function:steps(4,end);
}
:is(#visualLesson,#expeditionDialog,#tutorial,#playground,#workbench,#programmingTerminal,#adventurePanel,#infoDialog,#measurementDialog,#compilerDialog,#hardwareDialog,#pulseDialog,#finaleDialog).pixel-workshop{
 width:min(1040px,calc(100vw - 48px));max-height:calc(100dvh - 48px);padding:4px;
 border:4px solid #4a2511;background:#e8b982;color:#4a2511;
 box-shadow:0 0 0 4px #2b1408,0 0 0 8px #d98f4e,0 0 0 12px #7a401c,inset 0 0 0 4px #b86f35;
 font-size:24px;line-height:1.5;scrollbar-color:#a86024 #e8b982;
}
:is(#visualLesson,#expeditionDialog,#tutorial,#playground,#workbench,#programmingTerminal,#adventurePanel,#infoDialog,#measurementDialog,#compilerDialog,#hardwareDialog,#pulseDialog,#finaleDialog).pixel-workshop::backdrop{background:#211a25;backdrop-filter:none;-webkit-backdrop-filter:none}
:is(#visualLesson,#expeditionDialog,#tutorial,#playground,#workbench,#programmingTerminal,#adventurePanel,#infoDialog,#measurementDialog,#compilerDialog,#hardwareDialog,#pulseDialog,#finaleDialog).pixel-workshop *{box-shadow:none;text-shadow:none;filter:none}
:is(#visualLesson,#expeditionDialog,#tutorial,#playground,#workbench,#programmingTerminal,#adventurePanel,#infoDialog,#measurementDialog,#compilerDialog,#hardwareDialog,#pulseDialog,#finaleDialog).pixel-workshop .workbench-head{
 background:repeating-linear-gradient(0deg,#8c5230 0 4px,#8c5230 4px 24px,#75401f 24px 28px,#8c5230 28px 48px);
 border:0;border-bottom:4px solid #4a2511;padding:16px 24px;gap:12px;
 box-shadow:inset 0 4px #c17e41,inset 0 -4px #b86f35;
}
:is(#visualLesson,#expeditionDialog,#tutorial,#playground,#workbench,#programmingTerminal,#adventurePanel,#infoDialog,#measurementDialog,#compilerDialog,#hardwareDialog,#pulseDialog,#finaleDialog).pixel-workshop h2{font-size:24px;color:#ffe6a8;line-height:1.5;margin:4px 0;text-shadow:2px 2px 0 #3a1c0d}
:is(#visualLesson,#expeditionDialog,#tutorial,#playground,#workbench,#programmingTerminal,#adventurePanel,#infoDialog,#measurementDialog,#compilerDialog,#hardwareDialog,#pulseDialog,#finaleDialog).pixel-workshop .eyebrow{font-size:12px;color:#f4cfa4;text-shadow:2px 2px 0 #3a1c0d;letter-spacing:0}
:is(#visualLesson,#expeditionDialog,#tutorial,#playground,#workbench,#programmingTerminal,#adventurePanel,#infoDialog,#measurementDialog,#compilerDialog,#hardwareDialog,#pulseDialog,#finaleDialog).pixel-workshop :is(.visual-lesson-body,#expeditionBody){
 background:#f4cfa4;color:#4a2511;padding:20px 28px;
 background-image:repeating-linear-gradient(0deg,#f4cfa4 0 4px,#f4cfa4 4px 44px,#efc99a 44px 48px);
}
:is(#visualLesson,#expeditionDialog,#tutorial,#playground,#workbench,#programmingTerminal,#adventurePanel,#infoDialog,#measurementDialog,#compilerDialog,#hardwareDialog,#pulseDialog,#finaleDialog).pixel-workshop p{font-size:24px;color:#4a2511;line-height:1.5;margin:12px 0}
:is(#visualLesson,#expeditionDialog,#tutorial,#playground,#workbench,#programmingTerminal,#adventurePanel,#infoDialog,#measurementDialog,#compilerDialog,#hardwareDialog,#pulseDialog,#finaleDialog).pixel-workshop h3{font-size:24px;color:#663514;text-shadow:2px 2px 0 #ffe5af;margin:12px 0}
#visualLesson.pixel-workshop #visualStep{font-size:12px;color:#734323;margin:0 0 12px}
:is(#visualLesson,#expeditionDialog,#tutorial,#playground,#workbench,#programmingTerminal,#adventurePanel,#infoDialog,#measurementDialog,#compilerDialog,#hardwareDialog,#pulseDialog,#finaleDialog).pixel-workshop :is(#visualStage,.pixel-board){background:#282332;color:#f4cfa4}
#visualLesson.pixel-workshop #visualStage{
 padding:20px 16px;border:4px solid;border-color:#191521 #625568 #625568 #191521;
 box-shadow:0 0 0 4px #ae6d38,inset 0 0 0 4px #463f54;
 background-image:repeating-linear-gradient(0deg,#282332 0 4px,#2d2838 4px 8px);
}
#visualLesson.pixel-workshop #visualStage>p{color:#e6caa3;font-size:12px}
:is(#visualLesson,#expeditionDialog,#tutorial,#playground,#workbench,#programmingTerminal,#adventurePanel,#infoDialog,#measurementDialog,#compilerDialog,#hardwareDialog,#pulseDialog,#finaleDialog).pixel-workshop .pixel-board{position:relative;width:min(420px,100%);margin:16px auto 8px;background:none}
:is(#visualLesson,#expeditionDialog,#tutorial,#playground,#workbench,#programmingTerminal,#adventurePanel,#infoDialog,#measurementDialog,#compilerDialog,#hardwareDialog,#pulseDialog,#finaleDialog).pixel-workshop .pixel-bits{
 display:grid;grid-template-columns:repeat(3,1fr);gap:0;position:relative;margin:0;padding:0;border:0;background:none;box-shadow:none;
}
:is(#visualLesson,#expeditionDialog,#tutorial,#playground,#workbench,#programmingTerminal,#adventurePanel,#infoDialog,#measurementDialog,#compilerDialog,#hardwareDialog,#pulseDialog,#finaleDialog).pixel-workshop .pixel-bit{display:grid;justify-items:center;gap:8px;z-index:2}
:is(#visualLesson,#expeditionDialog,#tutorial,#playground,#workbench,#programmingTerminal,#adventurePanel,#infoDialog,#measurementDialog,#compilerDialog,#hardwareDialog,#pulseDialog,#finaleDialog).pixel-workshop .pixel-bit small{font-size:12px;color:#e8c89e;text-shadow:2px 2px 0 #191521}
:is(#visualLesson,#expeditionDialog,#tutorial,#playground,#workbench,#programmingTerminal,#adventurePanel,#infoDialog,#measurementDialog,#compilerDialog,#hardwareDialog,#pulseDialog,#finaleDialog).pixel-workshop .pixel-chest{
 display:grid;place-items:center;position:relative;width:64px;height:64px;border:4px solid #2b1408;
 background:repeating-linear-gradient(0deg,#8c5230 0 12px,#6c381c 12px 16px);
 box-shadow:inset 4px 4px 0 #dd9956,inset -4px -4px 0 #572d16,0 4px 0 #191521;
 clip-path:polygon(4px 0,calc(100% - 4px) 0,calc(100% - 4px) 4px,100% 4px,100% calc(100% - 4px),calc(100% - 4px) calc(100% - 4px),calc(100% - 4px) 100%,4px 100%,4px calc(100% - 4px),0 calc(100% - 4px),0 4px,4px 4px);
 color:#ffd84d;font-size:36px;line-height:1;text-shadow:4px 4px 0 #3a1c0d;
 animation:pixel-bob 1.2s steps(2,end) infinite;animation-delay:var(--bob-delay,0s);
}
:is(#visualLesson,#expeditionDialog,#tutorial,#playground,#workbench,#programmingTerminal,#adventurePanel,#infoDialog,#measurementDialog,#compilerDialog,#hardwareDialog,#pulseDialog,#finaleDialog).pixel-workshop .pixel-chest:before{content:'';position:absolute;left:8px;top:8px;width:4px;height:4px;background:#ffe5a0;box-shadow:40px 0 #c69b5c,0 40px #c69b5c,40px 40px #c69b5c}
:is(#visualLesson,#expeditionDialog,#tutorial,#playground,#workbench,#programmingTerminal,#adventurePanel,#infoDialog,#measurementDialog,#compilerDialog,#hardwareDialog,#pulseDialog,#finaleDialog).pixel-workshop .pixel-hit{animation:pixel-shake .3s steps(4,end) 1}
:is(#visualLesson,#expeditionDialog,#tutorial,#playground,#workbench,#programmingTerminal,#adventurePanel,#infoDialog,#measurementDialog,#compilerDialog,#hardwareDialog,#pulseDialog,#finaleDialog).pixel-workshop .pixel-wires{height:72px;position:relative;margin-top:-4px}
:is(#visualLesson,#expeditionDialog,#tutorial,#playground,#workbench,#programmingTerminal,#adventurePanel,#infoDialog,#measurementDialog,#compilerDialog,#hardwareDialog,#pulseDialog,#finaleDialog).pixel-workshop .conduit{--pipe:#b57540;position:absolute;top:0;width:33.333333%;height:40px;border:4px solid var(--pipe);border-top:0;box-shadow:4px 4px 0 #191521}
:is(#visualLesson,#expeditionDialog,#tutorial,#playground,#workbench,#programmingTerminal,#adventurePanel,#infoDialog,#measurementDialog,#compilerDialog,#hardwareDialog,#pulseDialog,#finaleDialog).pixel-workshop .conduit-0{left:16.666667%}
:is(#visualLesson,#expeditionDialog,#tutorial,#playground,#workbench,#programmingTerminal,#adventurePanel,#infoDialog,#measurementDialog,#compilerDialog,#hardwareDialog,#pulseDialog,#finaleDialog).pixel-workshop .conduit-1{left:50%}
:is(#visualLesson,#expeditionDialog,#tutorial,#playground,#workbench,#programmingTerminal,#adventurePanel,#infoDialog,#measurementDialog,#compilerDialog,#hardwareDialog,#pulseDialog,#finaleDialog).pixel-workshop .conduit:after{content:'';position:absolute;left:calc(50% - 2px);top:36px;height:36px;width:4px;background:var(--pipe);box-shadow:4px 0 #191521}
:is(#visualLesson,#expeditionDialog,#tutorial,#playground,#workbench,#programmingTerminal,#adventurePanel,#infoDialog,#measurementDialog,#compilerDialog,#hardwareDialog,#pulseDialog,#finaleDialog).pixel-workshop .conduit.red{--pipe:#d96846}
:is(#visualLesson,#expeditionDialog,#tutorial,#playground,#workbench,#programmingTerminal,#adventurePanel,#infoDialog,#measurementDialog,#compilerDialog,#hardwareDialog,#pulseDialog,#finaleDialog).pixel-workshop .conduit.green{--pipe:#99b94a}
:is(#visualLesson,#expeditionDialog,#tutorial,#playground,#workbench,#programmingTerminal,#adventurePanel,#infoDialog,#measurementDialog,#compilerDialog,#hardwareDialog,#pulseDialog,#finaleDialog).pixel-workshop .conduit.idle{--pipe:#625568}
:is(#visualLesson,#expeditionDialog,#tutorial,#playground,#workbench,#programmingTerminal,#adventurePanel,#infoDialog,#measurementDialog,#compilerDialog,#hardwareDialog,#pulseDialog,#finaleDialog).pixel-workshop .conduit:not(.idle) i{position:absolute;width:8px;height:4px;bottom:-4px;left:0;background:#ffdf89;animation:pixel-current .6s steps(4,end) 2}
:is(#visualLesson,#expeditionDialog,#tutorial,#playground,#workbench,#programmingTerminal,#adventurePanel,#infoDialog,#measurementDialog,#compilerDialog,#hardwareDialog,#pulseDialog,#finaleDialog).pixel-workshop .check-lamps.signal-lamps{display:grid;grid-template-columns:repeat(2,1fr);gap:0;width:66.666667%;margin:0 auto 12px;position:relative;z-index:2}
:is(#visualLesson,#expeditionDialog,#tutorial,#playground,#workbench,#programmingTerminal,#adventurePanel,#infoDialog,#measurementDialog,#compilerDialog,#hardwareDialog,#pulseDialog,#finaleDialog).pixel-workshop .signal-unit{
 position:relative;display:grid;justify-items:center;gap:12px;min-width:0;width:104px;justify-self:center;padding:12px 8px;background:#584a51;
 border:4px solid #191521;box-shadow:inset 4px 4px #978079,inset -4px -4px #3b2f3b,0 4px #191521;
}
:is(#visualLesson,#expeditionDialog,#tutorial,#playground,#workbench,#programmingTerminal,#adventurePanel,#infoDialog,#measurementDialog,#compilerDialog,#hardwareDialog,#pulseDialog,#finaleDialog).pixel-workshop .signal-unit:before{content:'';position:absolute;left:4px;top:4px;width:4px;height:4px;background:#edb96c;box-shadow:80px 0 #edb96c,0 136px #9c713c,80px 136px #9c713c}
:is(#visualLesson,#expeditionDialog,#tutorial,#playground,#workbench,#programmingTerminal,#adventurePanel,#infoDialog,#measurementDialog,#compilerDialog,#hardwareDialog,#pulseDialog,#finaleDialog).pixel-workshop .signal-unit>b{font-size:24px;color:#f9d48d;text-shadow:2px 2px 0 #191521;line-height:1}
:is(#visualLesson,#expeditionDialog,#tutorial,#playground,#workbench,#programmingTerminal,#adventurePanel,#infoDialog,#measurementDialog,#compilerDialog,#hardwareDialog,#pulseDialog,#finaleDialog).pixel-workshop .signal-unit small{font-size:12px;color:#edd3a9;line-height:1.5;text-shadow:2px 2px 0 #191521}
:is(#visualLesson,#expeditionDialog,#tutorial,#playground,#workbench,#programmingTerminal,#adventurePanel,#infoDialog,#measurementDialog,#compilerDialog,#hardwareDialog,#pulseDialog,#finaleDialog).pixel-workshop .signal-bulb{
 position:relative;width:56px;height:56px;border:4px solid #211a25;outline:0;font-size:36px;line-height:1;font-style:normal;display:grid;place-items:center;
 background:#625568;color:#d1bd9b;box-shadow:inset 4px 4px #978079,inset -4px -4px #3a303f;
}
:is(#visualLesson,#expeditionDialog,#tutorial,#playground,#workbench,#programmingTerminal,#adventurePanel,#infoDialog,#measurementDialog,#compilerDialog,#hardwareDialog,#pulseDialog,#finaleDialog).pixel-workshop .signal-bulb:before{content:'';position:absolute;left:4px;top:4px;width:4px;height:4px;background:#fff;box-shadow:4px 0 #fff,0 4px #fff}
:is(#visualLesson,#expeditionDialog,#tutorial,#playground,#workbench,#programmingTerminal,#adventurePanel,#infoDialog,#measurementDialog,#compilerDialog,#hardwareDialog,#pulseDialog,#finaleDialog).pixel-workshop .signal-bulb.red{background:#d9383a;color:#ffe4bd;border-color:#7a1c1c;box-shadow:inset 4px 4px #f87b56,inset -4px -4px #a92335,0 0 0 4px #dd6245,0 0 0 8px #71303e;text-shadow:2px 2px #7a1c1c;animation:pixel-flash .8s steps(2,end) 2}
:is(#visualLesson,#expeditionDialog,#tutorial,#playground,#workbench,#programmingTerminal,#adventurePanel,#infoDialog,#measurementDialog,#compilerDialog,#hardwareDialog,#pulseDialog,#finaleDialog).pixel-workshop .signal-bulb.green{background:#6abe30;color:#f6ffd2;border-color:#235b35;box-shadow:inset 4px 4px #b1e968,inset -4px -4px #37946e,0 0 0 4px #436346;text-shadow:2px 2px #235b35;animation:pixel-confirm .3s steps(3,end) 1}
:is(#visualLesson,#expeditionDialog,#tutorial,#playground,#workbench,#programmingTerminal,#adventurePanel,#infoDialog,#measurementDialog,#compilerDialog,#hardwareDialog,#pulseDialog,#finaleDialog).pixel-workshop .signal-legend{font-size:12px!important;color:#e8c89e!important;gap:8px;margin:20px 0!important}
:is(#visualLesson,#expeditionDialog,#tutorial,#playground,#workbench,#programmingTerminal,#adventurePanel,#infoDialog,#measurementDialog,#compilerDialog,#hardwareDialog,#pulseDialog,#finaleDialog).pixel-workshop .signal-legend i{width:8px;height:8px;box-shadow:2px 2px #191521}
:is(#visualLesson,#expeditionDialog,#tutorial,#playground,#workbench,#programmingTerminal,#adventurePanel,#infoDialog,#measurementDialog,#compilerDialog,#hardwareDialog,#pulseDialog,#finaleDialog).pixel-workshop button{
 font-size:24px;font-weight:400;color:#4a2511;background:#e69c55;border:2px solid #381a08;min-height:44px;padding:8px 12px;
 box-shadow:inset 0 4px #f7be7c,inset 0 -4px #a86024,0 4px #381a08;text-shadow:2px 2px #f7be7c;
 transition:transform .12s steps(3,end),filter .12s steps(3,end);
}
:is(#visualLesson,#expeditionDialog,#tutorial,#playground,#workbench,#programmingTerminal,#adventurePanel,#infoDialog,#measurementDialog,#compilerDialog,#hardwareDialog,#pulseDialog,#finaleDialog).pixel-workshop :is(button.primary,button.selected){background:#6abe30;border-color:#254b27;box-shadow:inset 0 4px #99e550,inset 0 -4px #37946e,0 4px #254b27;text-shadow:2px 2px #99e550;color:#173d21}
:is(#visualLesson,#expeditionDialog,#tutorial,#playground,#workbench,#programmingTerminal,#adventurePanel,#infoDialog,#measurementDialog,#compilerDialog,#hardwareDialog,#pulseDialog,#finaleDialog).pixel-workshop button:hover:not(:disabled){filter:brightness(1.12);outline:2px solid #fff1ca;outline-offset:2px;border-color:#381a08}
:is(#visualLesson,#expeditionDialog,#tutorial,#playground,#workbench,#programmingTerminal,#adventurePanel,#infoDialog,#measurementDialog,#compilerDialog,#hardwareDialog,#pulseDialog,#finaleDialog).pixel-workshop button:active:not(:disabled){transform:translateY(2px);box-shadow:inset 0 4px #f7be7c;text-shadow:2px 2px #f7be7c}
:is(#visualLesson,#expeditionDialog,#tutorial,#playground,#workbench,#programmingTerminal,#adventurePanel,#infoDialog,#measurementDialog,#compilerDialog,#hardwareDialog,#pulseDialog,#finaleDialog).pixel-workshop button:disabled{opacity:1;filter:none;background:#bea383;color:#80674f;box-shadow:inset 0 4px #d0b999,inset 0 -4px #94775b,0 4px #5d4430;text-shadow:none}
:is(#visualLesson,#expeditionDialog,#tutorial,#playground,#workbench,#programmingTerminal,#adventurePanel,#infoDialog,#measurementDialog,#compilerDialog,#hardwareDialog,#pulseDialog,#finaleDialog).pixel-workshop button:focus-visible{outline:4px solid #fff1ca;outline-offset:4px}
#visualLesson.pixel-workshop .visual-controls{gap:12px;margin:24px 0 8px}#visualLesson.pixel-workshop .visual-controls button{font-size:12px;padding:12px 16px}
#visualLesson.pixel-workshop .lesson-footer{background:#b86f35;border-top:4px solid #7a401c;padding:16px 24px;gap:12px;box-shadow:inset 0 4px #e69c55}
#visualLesson.pixel-workshop #skipVisualLesson{font-size:12px}
#visualLesson.pixel-workshop #visualCheck{background:#e8b982;border:4px solid #b86f35;padding:12px}
#visualLesson.pixel-workshop #visualHint{color:#4a2511;text-shadow:2px 2px #ffe5b8}
:is(#visualLesson,#expeditionDialog,#tutorial,#playground,#workbench,#programmingTerminal,#adventurePanel,#infoDialog,#measurementDialog,#compilerDialog,#hardwareDialog,#pulseDialog,#finaleDialog).pixel-workshop :is(.friendly-goal,.correction-guide){background:#e8b982;border:4px solid #b86f35;color:#4a2511;padding:12px;box-shadow:inset 4px 4px #f8ddb2;font-size:24px}
#expeditionDialog.pixel-workshop .pixel-board{background:#282332;width:min(480px,100%);padding:20px 24px;border:4px solid;border-color:#191521 #625568 #625568 #191521;box-shadow:0 0 0 4px #ae6d38;margin:20px auto}
#expeditionDialog.pixel-workshop .logical-visual:after{display:none}#expeditionDialog.pixel-workshop .signal-legend{color:#4a2511!important}
#expeditionDialog.pixel-workshop .logical-visual.corrected .pixel-chest{background:#6a8144;border-color:#254b27}
#expeditionDialog.pixel-workshop details{font-size:12px;color:#734323}#expeditionDialog.pixel-workshop details p{font-size:12px}
/* The first, classical-light exercise uses the same square lantern construction. */
#visualLesson.pixel-workshop .teaching-bulb{width:64px;height:64px;background:#625568;border:4px solid #191521;color:#c9b6a0;box-shadow:inset 4px 4px #978079,inset -4px -4px #3b2f3b;font-size:24px;transform:none;animation:none}
#visualLesson.pixel-workshop .teaching-bulb.lit{background:#dcb044;border-color:#785327;color:#fff3b0;box-shadow:inset 4px 4px #ffe296,inset -4px -4px #b57735}
@keyframes pixel-bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px)}}
@keyframes pixel-shake{0%,100%{transform:translateX(0)}25%{transform:translateX(-4px)}75%{transform:translateX(4px)}}
@keyframes pixel-flash{0%,100%{opacity:1}50%{opacity:.6}}
@keyframes pixel-confirm{0%,100%{transform:translateY(0)}50%{transform:translateY(-2px)}}
@keyframes pixel-current{0%{left:0}100%{left:calc(100% - 8px)}}
.reduced :is(#visualLesson,#expeditionDialog,#tutorial,#playground,#workbench,#programmingTerminal,#adventurePanel,#infoDialog,#measurementDialog,#compilerDialog,#hardwareDialog,#pulseDialog,#finaleDialog).pixel-workshop *{animation:none!important;transition:none!important}
@media(prefers-reduced-motion:reduce){:is(#visualLesson,#expeditionDialog,#tutorial,#playground,#workbench,#programmingTerminal,#adventurePanel,#infoDialog,#measurementDialog,#compilerDialog,#hardwareDialog,#pulseDialog,#finaleDialog).pixel-workshop *{animation:none!important;transition:none!important}}
@media(max-width:620px){:is(#visualLesson,#expeditionDialog,#tutorial,#playground,#workbench,#programmingTerminal,#adventurePanel,#infoDialog,#measurementDialog,#compilerDialog,#hardwareDialog,#pulseDialog,#finaleDialog).pixel-workshop :is(.visual-lesson-body,#expeditionBody){padding:16px 12px}:is(#visualLesson,#expeditionDialog,#tutorial,#playground,#workbench,#programmingTerminal,#adventurePanel,#infoDialog,#measurementDialog,#compilerDialog,#hardwareDialog,#pulseDialog,#finaleDialog).pixel-workshop p{font-size:18px}:is(#visualLesson,#expeditionDialog,#tutorial,#playground,#workbench,#programmingTerminal,#adventurePanel,#infoDialog,#measurementDialog,#compilerDialog,#hardwareDialog,#pulseDialog,#finaleDialog).pixel-workshop h2{font-size:24px}:is(#visualLesson,#expeditionDialog,#tutorial,#playground,#workbench,#programmingTerminal,#adventurePanel,#infoDialog,#measurementDialog,#compilerDialog,#hardwareDialog,#pulseDialog,#finaleDialog).pixel-workshop .workbench-head{padding:12px}:is(#visualLesson,#expeditionDialog,#tutorial,#playground,#workbench,#programmingTerminal,#adventurePanel,#infoDialog,#measurementDialog,#compilerDialog,#hardwareDialog,#pulseDialog,#finaleDialog).pixel-workshop .signal-unit{width:88px;padding:12px 4px}:is(#visualLesson,#expeditionDialog,#tutorial,#playground,#workbench,#programmingTerminal,#adventurePanel,#infoDialog,#measurementDialog,#compilerDialog,#hardwareDialog,#pulseDialog,#finaleDialog).pixel-workshop .signal-unit:before{box-shadow:64px 0 #edb96c,0 136px #9c713c,64px 136px #9c713c}#visualLesson.pixel-workshop .lesson-footer{padding:12px;flex-wrap:wrap}#visualLesson.pixel-workshop .lesson-footer>div{width:100%;justify-content:space-between}#expeditionDialog.pixel-workshop .pixel-board{padding:16px 0}}
#visualLesson.pixel-workshop #visualCopy,#expeditionDialog.pixel-workshop :is(.friendly-goal,.correction-guide,#correctionFeedback,#syndromeOutput){text-shadow:2px 2px 0 #ffe5af}
:is(#visualLesson,#expeditionDialog,#tutorial,#playground,#workbench,#programmingTerminal,#adventurePanel,#infoDialog,#measurementDialog,#compilerDialog,#hardwareDialog,#pulseDialog,#finaleDialog).pixel-workshop .qat-speaking{position:relative;padding-left:104px;min-height:88px;flex:1}
:is(#visualLesson,#expeditionDialog,#tutorial,#playground,#workbench,#programmingTerminal,#adventurePanel,#infoDialog,#measurementDialog,#compilerDialog,#hardwareDialog,#pulseDialog,#finaleDialog).pixel-workshop .qat-speaking>.eyebrow{display:none}
:is(#visualLesson,#expeditionDialog,#tutorial,#playground,#workbench,#programmingTerminal,#adventurePanel,#infoDialog,#measurementDialog,#compilerDialog,#hardwareDialog,#pulseDialog,#finaleDialog).pixel-workshop .qat-npc{display:contents}
:is(#visualLesson,#expeditionDialog,#tutorial,#playground,#workbench,#programmingTerminal,#adventurePanel,#infoDialog,#measurementDialog,#compilerDialog,#hardwareDialog,#pulseDialog,#finaleDialog).pixel-workshop .qat-portrait-frame{position:absolute;left:0;top:0;width:88px;height:96px;padding:4px;background:#7a401c;border:4px solid #381a08;box-shadow:inset 0 0 0 4px #d98f4e,0 4px 0 #381a08}
:is(#visualLesson,#expeditionDialog,#tutorial,#playground,#workbench,#programmingTerminal,#adventurePanel,#infoDialog,#measurementDialog,#compilerDialog,#hardwareDialog,#pulseDialog,#finaleDialog).pixel-workshop .qat-portrait-frame canvas{display:block;width:72px;height:64px;image-rendering:pixelated;background:#d9b875}
:is(#visualLesson,#expeditionDialog,#tutorial,#playground,#workbench,#programmingTerminal,#adventurePanel,#infoDialog,#measurementDialog,#compilerDialog,#hardwareDialog,#pulseDialog,#finaleDialog).pixel-workshop .qat-portrait-frame>b{display:block;font-size:12px;line-height:16px;text-align:center;color:#ffe5a0;text-shadow:2px 2px #381a08}
:is(#visualLesson,#expeditionDialog,#tutorial,#playground,#workbench,#programmingTerminal,#adventurePanel,#infoDialog,#measurementDialog,#compilerDialog,#hardwareDialog,#pulseDialog,#finaleDialog).pixel-workshop .qat-speech{position:relative;padding:8px 12px;margin:0 0 8px;background:#f4cfa4;border:2px solid #381a08;box-shadow:inset 0 2px #ffe6b6,0 2px #381a08;max-width:610px}
:is(#visualLesson,#expeditionDialog,#tutorial,#playground,#workbench,#programmingTerminal,#adventurePanel,#infoDialog,#measurementDialog,#compilerDialog,#hardwareDialog,#pulseDialog,#finaleDialog).pixel-workshop .qat-speech:before{content:'';position:absolute;left:-8px;top:12px;width:8px;height:8px;background:#f4cfa4;box-shadow:-2px 2px #381a08}
:is(#visualLesson,#expeditionDialog,#tutorial,#playground,#workbench,#programmingTerminal,#adventurePanel,#infoDialog,#measurementDialog,#compilerDialog,#hardwareDialog,#pulseDialog,#finaleDialog).pixel-workshop .qat-line{display:block;color:#4a2511;font-size:12px;line-height:24px;text-shadow:1px 1px #ffe5af}
:is(#visualLesson,#expeditionDialog,#tutorial,#playground,#workbench,#programmingTerminal,#adventurePanel,#infoDialog,#measurementDialog,#compilerDialog,#hardwareDialog,#pulseDialog,#finaleDialog).pixel-workshop .qat-speaking h2{margin:4px 0 0}
/* Covered lanterns never display the hidden data, including after recovery. */
:is(#visualLesson,#expeditionDialog,#tutorial,#playground,#workbench,#programmingTerminal,#adventurePanel,#infoDialog,#measurementDialog,#compilerDialog,#hardwareDialog,#pulseDialog,#finaleDialog).pixel-workshop .covered-lantern{display:block;position:relative;width:64px;height:80px;background:none;border:0;box-shadow:none;animation:pixel-bob 1.2s steps(2,end) infinite;animation-delay:var(--bob-delay,0s)}
:is(#visualLesson,#expeditionDialog,#tutorial,#playground,#workbench,#programmingTerminal,#adventurePanel,#infoDialog,#measurementDialog,#compilerDialog,#hardwareDialog,#pulseDialog,#finaleDialog).pixel-workshop .covered-lantern i{display:block;position:absolute;font-style:normal}
:is(#visualLesson,#expeditionDialog,#tutorial,#playground,#workbench,#programmingTerminal,#adventurePanel,#infoDialog,#measurementDialog,#compilerDialog,#hardwareDialog,#pulseDialog,#finaleDialog).pixel-workshop .lantern-handle{left:20px;top:0;width:24px;height:28px;border:4px solid #a86e36;background:#282332;box-shadow:4px 0 #191521,inset 4px 0 #e4b66c}
:is(#visualLesson,#expeditionDialog,#tutorial,#playground,#workbench,#programmingTerminal,#adventurePanel,#infoDialog,#measurementDialog,#compilerDialog,#hardwareDialog,#pulseDialog,#finaleDialog).pixel-workshop .lantern-cap{left:0;top:20px;width:64px;height:8px;background:#cf9751;border:0;box-shadow:0 4px #683b24,inset 0 4px #f1c57e}
:is(#visualLesson,#expeditionDialog,#tutorial,#playground,#workbench,#programmingTerminal,#adventurePanel,#infoDialog,#measurementDialog,#compilerDialog,#hardwareDialog,#pulseDialog,#finaleDialog).pixel-workshop .lantern-cloth{left:4px;top:28px;width:56px;height:44px;background:#b49b74;border-left:4px solid #ead5a5;border-right:4px solid #79674f;clip-path:polygon(0 0,100% 0,100% 100%,calc(100% - 8px) 100%,calc(100% - 8px) calc(100% - 4px),16px calc(100% - 4px),16px 100%,0 100%);box-shadow:inset 0 4px #d7bd8e}
:is(#visualLesson,#expeditionDialog,#tutorial,#playground,#workbench,#programmingTerminal,#adventurePanel,#infoDialog,#measurementDialog,#compilerDialog,#hardwareDialog,#pulseDialog,#finaleDialog).pixel-workshop .lantern-cloth>i{left:8px;top:8px;width:4px;height:28px;background:#d7bd8e;box-shadow:12px -4px #8b7759,24px 0 #d7bd8e}
:is(#visualLesson,#expeditionDialog,#tutorial,#playground,#workbench,#programmingTerminal,#adventurePanel,#infoDialog,#measurementDialog,#compilerDialog,#hardwareDialog,#pulseDialog,#finaleDialog).pixel-workshop .lantern-foot{left:0;top:72px;width:64px;height:8px;background:#c08a45;box-shadow:0 4px #191521,inset 0 -4px #6c4027}
/* The same parity result now powers a faceted resonance crystal. */
:is(#visualLesson,#expeditionDialog,#tutorial,#playground,#workbench,#programmingTerminal,#adventurePanel,#infoDialog,#measurementDialog,#compilerDialog,#hardwareDialog,#pulseDialog,#finaleDialog).pixel-workshop .resonator-core{position:relative;width:64px;height:72px;background:#302739;border-bottom:8px solid #ac824d;box-shadow:0 4px #191521,inset 0 -4px #f0c781}
:is(#visualLesson,#expeditionDialog,#tutorial,#playground,#workbench,#programmingTerminal,#adventurePanel,#infoDialog,#measurementDialog,#compilerDialog,#hardwareDialog,#pulseDialog,#finaleDialog).pixel-workshop .resonator-core .signal-bulb{--crystal-dark:#4c435e;--crystal-mid:#817187;--crystal-light:#b6a4aa;position:absolute;left:4px;top:-4px;width:56px;height:64px;display:block;border:0;outline:0;background:linear-gradient(90deg,var(--crystal-dark) 0 12px,var(--crystal-mid) 12px 36px,var(--crystal-light) 36px 44px,var(--crystal-dark) 44px 56px);clip-path:polygon(24px 0,32px 0,32px 4px,40px 4px,40px 12px,48px 12px,48px 20px,56px 20px,56px 48px,48px 48px,48px 56px,40px 56px,40px 60px,16px 60px,16px 56px,8px 56px,8px 48px,0 48px,0 20px,8px 20px,8px 12px,16px 12px,16px 4px,24px 4px);box-shadow:inset 0 -8px var(--crystal-dark)}
:is(#visualLesson,#expeditionDialog,#tutorial,#playground,#workbench,#programmingTerminal,#adventurePanel,#infoDialog,#measurementDialog,#compilerDialog,#hardwareDialog,#pulseDialog,#finaleDialog).pixel-workshop .resonator-core .signal-bulb.red{--crystal-dark:#7a1c36;--crystal-mid:#d9384c;--crystal-light:#ff9675}
:is(#visualLesson,#expeditionDialog,#tutorial,#playground,#workbench,#programmingTerminal,#adventurePanel,#infoDialog,#measurementDialog,#compilerDialog,#hardwareDialog,#pulseDialog,#finaleDialog).pixel-workshop .resonator-core .signal-bulb.green{--crystal-dark:#235b46;--crystal-mid:#6abe50;--crystal-light:#c0ef8f}
:is(#visualLesson,#expeditionDialog,#tutorial,#playground,#workbench,#programmingTerminal,#adventurePanel,#infoDialog,#measurementDialog,#compilerDialog,#hardwareDialog,#pulseDialog,#finaleDialog).pixel-workshop .resonator-core .signal-bulb:before{left:16px;top:16px;width:4px;height:4px;background:#fff1cb;box-shadow:0 4px #fff1cb,4px -4px #fff1cb}
:is(#visualLesson,#expeditionDialog,#tutorial,#playground,#workbench,#programmingTerminal,#adventurePanel,#infoDialog,#measurementDialog,#compilerDialog,#hardwareDialog,#pulseDialog,#finaleDialog).pixel-workshop .crystal-facet{position:absolute;left:12px;top:28px;width:24px;height:4px;background:var(--crystal-light);box-shadow:24px 0 var(--crystal-mid)}
:is(#visualLesson,#expeditionDialog,#tutorial,#playground,#workbench,#programmingTerminal,#adventurePanel,#infoDialog,#measurementDialog,#compilerDialog,#hardwareDialog,#pulseDialog,#finaleDialog).pixel-workshop .resonance-mark{position:absolute;bottom:10px;right:0;display:grid;place-items:center;width:24px;height:24px;background:#282332;border:2px solid #c2a77c;color:#fff0bc;font-size:24px;line-height:1;font-style:normal;text-shadow:2px 2px #191521}
:is(#visualLesson,#expeditionDialog,#tutorial,#playground,#workbench,#programmingTerminal,#adventurePanel,#infoDialog,#measurementDialog,#compilerDialog,#hardwareDialog,#pulseDialog,#finaleDialog).pixel-workshop .signal-unit:before{box-shadow:80px 0 #edb96c,0 152px #9c713c,80px 152px #9c713c}
@media(max-width:620px){:is(#visualLesson,#expeditionDialog,#tutorial,#playground,#workbench,#programmingTerminal,#adventurePanel,#infoDialog,#measurementDialog,#compilerDialog,#hardwareDialog,#pulseDialog,#finaleDialog).pixel-workshop .qat-speaking{padding-left:80px;min-height:80px}:is(#visualLesson,#expeditionDialog,#tutorial,#playground,#workbench,#programmingTerminal,#adventurePanel,#infoDialog,#measurementDialog,#compilerDialog,#hardwareDialog,#pulseDialog,#finaleDialog).pixel-workshop .qat-portrait-frame{width:72px;height:80px;padding:0}:is(#visualLesson,#expeditionDialog,#tutorial,#playground,#workbench,#programmingTerminal,#adventurePanel,#infoDialog,#measurementDialog,#compilerDialog,#hardwareDialog,#pulseDialog,#finaleDialog).pixel-workshop .qat-portrait-frame canvas{width:64px;height:56px}:is(#visualLesson,#expeditionDialog,#tutorial,#playground,#workbench,#programmingTerminal,#adventurePanel,#infoDialog,#measurementDialog,#compilerDialog,#hardwareDialog,#pulseDialog,#finaleDialog).pixel-workshop .qat-speech{padding:4px 8px}:is(#visualLesson,#expeditionDialog,#tutorial,#playground,#workbench,#programmingTerminal,#adventurePanel,#infoDialog,#measurementDialog,#compilerDialog,#hardwareDialog,#pulseDialog,#finaleDialog).pixel-workshop .qat-line{line-height:18px}:is(#visualLesson,#expeditionDialog,#tutorial,#playground,#workbench,#programmingTerminal,#adventurePanel,#infoDialog,#measurementDialog,#compilerDialog,#hardwareDialog,#pulseDialog,#finaleDialog).pixel-workshop .signal-unit:before{box-shadow:64px 0 #edb96c,0 152px #9c713c,64px 152px #9c713c}}
