:root{color-scheme:light;font-family:var(--font-body);color:var(--ink);background:var(--paper);font-size:17px;line-height:var(--lh-body)}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}a{color:inherit;text-underline-offset:4px}p{max-width:var(--maxw-prose)}button,a,input,select,summary{touch-action:manipulation}button,.button{display:inline-flex;justify-content:center;align-items:center;gap:var(--s-2);min-height:48px;padding:var(--s-3) var(--s-5);border:1px solid var(--ink);border-radius:var(--r-2);background:var(--bone);color:var(--ink);font-weight:var(--w-bold);line-height:var(--lh-snug);cursor:pointer;text-decoration:none;transition:background var(--dur-fast),transform var(--dur-fast)}button:hover:enabled,.button:hover{background:var(--paper-2)}button:active:enabled{transform:translateY(2px)}button:disabled{color:var(--ink-3);background:var(--paper-2);border-color:var(--paper-3);cursor:not-allowed}button.primary,.button.primary{border-radius:var(--r-pill);background:var(--pink);color:var(--ink);border-color:var(--pink)}.primary:hover:enabled,.button.primary:hover{background:var(--pink-hot);box-shadow:var(--sh-pink)}:focus-visible{outline:3px solid var(--pink-deep);outline-offset:4px}.stop{background:var(--ink);color:var(--paper);border-color:var(--ink)}.stop:hover:enabled{background:var(--pink-deep);color:var(--bone)}.skip-link{position:absolute;top:-100px;left:16px;z-index:100;background:var(--ink);color:var(--paper);padding:16px}.skip-link:focus{top:0}.masthead,main,.control-dock{width:min(calc(100% - 80px),var(--maxw-page));margin:auto}.masthead{display:flex;align-items:center;justify-content:space-between;min-height:100px;gap:var(--s-5);border-bottom:2px solid var(--ink)}.brand{font:var(--w-black) 36px/1 var(--font-display);letter-spacing:var(--tr-tight);text-decoration:none;white-space:nowrap}.brand .brand-label{font:var(--w-med) var(--t-xs)/1 var(--font-mono);letter-spacing:0;margin-left:var(--s-4)}.edition,.source-link{font:var(--t-xs)/1.5 var(--font-mono)}.source-link{font-weight:var(--w-bold)}.control-dock{position:sticky;top:0;z-index:30;display:flex;align-items:center;justify-content:space-between;gap:var(--s-4);padding:var(--s-4) 0;background:var(--paper);border-bottom:1px solid var(--ink)}.connection{display:flex;gap:var(--s-2);align-items:center}.connection-state{display:flex;align-items:center;gap:var(--s-3);font:var(--t-xs)/1.5 var(--font-mono)}.status-dot{width:9px;height:9px;background:var(--ink-4);border-radius:50%;flex:none}body[data-connected=true] .status-dot{background:var(--pink)}#disconnect{font-size:var(--t-sm);padding:var(--s-3)}#globalStop{min-width:148px}.section-nav{display:flex;gap:var(--s-2);padding:var(--s-5) 0;flex-wrap:wrap}.section-nav a{display:flex;align-items:center;gap:var(--s-3);min-height:48px;padding:var(--s-3) var(--s-4);border:1px solid transparent;text-decoration:none;font-weight:var(--w-bold)}.section-nav a span{font:var(--t-xs)/1 var(--font-mono);color:var(--ink-3)}.section-nav a[aria-current=page]{border-color:var(--ink);background:var(--ink);color:var(--paper)}.section-nav a[aria-current=page] span{color:var(--pink-hot)}.section-nav a:hover{border-color:var(--ink)}#notice{font-size:var(--t-sm);padding:var(--s-3) var(--s-4);border-left:3px solid var(--pink);background:var(--paper-2);margin-bottom:var(--s-6);overflow-wrap:anywhere}.practice-banner{padding:var(--s-3) var(--s-5);text-align:center;background:var(--pink);color:var(--ink);font-size:var(--t-sm)}.practice-banner a{margin-left:var(--s-4);font-weight:var(--w-bold)}.hero{display:grid;grid-template-columns:1.5fr 1fr;gap:var(--s-8);padding:var(--s-5) 0 var(--s-8);align-items:center}h1,h2,h3{line-height:var(--lh-tight);letter-spacing:var(--tr-tight);margin:0 0 var(--s-5)}h1,h2{font-family:var(--font-display);font-weight:var(--w-black);font-variation-settings:"opsz" 144}h1{font-size:clamp(58px,6.7vw,96px);margin:var(--s-5) 0}h1 em,.next-adventure em{color:var(--pink);font-weight:700}h2{font-size:var(--t-2xl)}h3{font-size:var(--t-md);font-weight:var(--w-bold);letter-spacing:0}.eyebrow{font:var(--w-med) 11px/1.6 var(--font-mono);letter-spacing:var(--tr-loose);margin:0 0 var(--s-4)}.lede{font-size:var(--t-lg);line-height:var(--lh-body);max-width:46ch;color:var(--ink-2)}.hero-actions{display:flex;align-items:center;gap:var(--s-5);flex-wrap:wrap;margin-top:var(--s-6)}.hero-actions a{font-size:var(--t-sm);font-weight:var(--w-bold)}.mission-card{position:relative;padding:var(--s-6);border:1px solid var(--ink);background:var(--pink);min-height:340px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;overflow:hidden}.mission-card .eyebrow{z-index:1}.mission-card h2{font-size:var(--t-3xl);margin:var(--s-4) 0}.mission-card p{margin:0 0 var(--s-5);max-width:27ch}.mission-card a{font-weight:var(--w-bold);min-height:44px;display:inline-flex;align-items:center}.mission-card::after{content:"01";position:absolute;right:var(--s-5);top:var(--s-4);font:var(--w-black) 120px/.9 var(--font-display);opacity:.12;pointer-events:none}.mission-foot{display:block;width:100%;font:10px/1.6 var(--font-mono);border-top:1px solid var(--ink);padding-top:var(--s-4);margin-top:var(--s-5)}.section-heading{display:flex;align-items:baseline;justify-content:space-between;border-top:2px solid var(--ink);padding:var(--s-5) 0 var(--s-4);gap:var(--s-4)}.section-heading h2{margin:0}.play-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border:1px solid var(--ink)}.panel{padding:var(--s-6);min-width:0;border:1px solid var(--ink);margin-bottom:var(--s-5);background:var(--bone)}.play-grid>.panel{border:0;border-right:1px solid var(--ink);margin:0;background:var(--paper)}.play-grid>.panel:last-child{border:0}.panel>.eyebrow{color:var(--pink-deep)}.panel h2{font-size:var(--t-2xl)}.small{font-size:var(--t-sm)}.muted{color:var(--ink-3)}.robot-face{position:relative;background:var(--ink);height:148px;display:flex;gap:var(--s-5);align-items:center;justify-content:center;margin:var(--s-5) 0;color:var(--paper);border-radius:var(--r-3)}.robot-face i{width:44px;height:32px;background:var(--eye,var(--pink));border-radius:var(--r-2);transition:background var(--dur-fast)}.robot-face span{position:absolute;bottom:var(--s-3);font:9px/1 var(--font-mono);letter-spacing:.08em;color:var(--fg-on-ink-2)}.swatches{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--s-2);margin:var(--s-4) 0}.swatches button{padding:var(--s-2) 0;display:flex;flex-direction:column;min-height:67px;gap:var(--s-2);background:var(--bone);font-size:var(--t-xs)}.swatches button::before{content:"";display:block;width:22px;height:22px;border:1px solid var(--ink-3);border-radius:50%;background:var(--swatch)}.swatches button[aria-pressed=true]{outline:2px solid var(--pink-deep);outline-offset:1px}.swatches button:disabled{opacity:.55}fieldset{border:0;margin:0;padding:0;min-width:0}label{display:flex;align-items:center;gap:var(--s-3);margin:var(--s-4) 0}input[type=checkbox]{width:24px;height:24px;flex:none;accent-color:var(--pink-deep)}input[type=range]{width:100%;height:44px;min-width:0;accent-color:var(--pink-deep);cursor:pointer}input[type=color]{width:64px;height:48px;border:1px solid var(--ink);background:var(--bone);padding:3px;cursor:pointer}input:disabled{cursor:not-allowed;opacity:.6}input:not([type=range]):not([type=checkbox]):not([type=color]):not([type=file]),textarea,select{padding:var(--s-3);min-height:48px;border:1px solid var(--ink-3);background:var(--bone);border-radius:var(--r-2);min-width:0;max-width:100%;color:var(--ink)}select{cursor:pointer}textarea{width:100%;resize:vertical}label:has(textarea){display:block}.line{border-top:1px solid var(--paper-3);margin:var(--s-5) 0}.row,.toolbar{display:flex;align-items:center;gap:var(--s-3);flex-wrap:wrap}.between{justify-content:space-between}.toolbar{margin:var(--s-4) 0}.toolbar label{margin:0}.toolbar input,.toolbar select{max-width:100%}.dpad{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(3,76px);gap:var(--s-2);margin:var(--s-5) 0}.dpad button{padding:var(--s-2);display:flex;flex-direction:column;gap:2px}.dpad b{font:30px/1 var(--font-body)}.dpad span{font-size:var(--t-xs)}.dpad button:first-child{grid-column:2}.dpad button:nth-child(2){grid-row:2}.dpad button:nth-child(4){grid-column:3;grid-row:2}.dpad button:last-child{grid-column:2;grid-row:3}.dpad-center{grid-column:2;grid-row:2;display:grid;place-items:center;font:10px/1 var(--font-mono)!important;color:var(--ink-3)}#stop{width:100%}#chest{display:grid;grid-template-columns:1fr 1fr;gap:0}#chest label{min-height:44px;margin:0}#quickJoke,#quickIntro{background:var(--ink);color:var(--paper)}.robot-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s-2);margin:var(--s-4) 0}.robot-actions button{min-width:0;padding:var(--s-3);font-size:var(--t-sm)}.robot-actions button:disabled{background:var(--paper-2);color:var(--ink-3)}#volumeQuiet,#volumeMedium,#volumeLoud{flex:1;font-size:var(--t-sm);padding:var(--s-3)}#audioState{border-left:2px solid var(--pink);padding-left:var(--s-3)}details{margin:var(--s-5) 0 0;border-top:1px solid var(--paper-3);padding-top:var(--s-2)}summary{min-height:48px;padding:var(--s-3) 0;cursor:pointer;font-size:var(--t-sm);font-weight:var(--w-bold)}.advanced{margin:0}.advanced label{flex-wrap:wrap}.next-adventure{background:var(--ink);color:var(--paper);padding:var(--s-7);margin:var(--s-7) 0;display:grid;grid-template-columns:1fr auto;align-items:center;gap:var(--s-4) var(--s-7)}.next-adventure .eyebrow,.next-adventure p{grid-column:1/-1;color:var(--fg-on-ink-2);margin:0}.next-adventure h2{font-size:var(--t-3xl);margin:0}.next-adventure em{color:var(--pink-hot)}.tbc{padding:var(--s-4);border-left:3px solid var(--pink-deep);background:var(--paper-2);font-size:var(--t-sm);max-width:none}.joint-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-4);margin-top:var(--s-5)}.joint-card{border:1px solid var(--paper-3);padding:var(--s-5);background:var(--paper)}.joint-card h3{margin:0}.joint-card output{margin-left:auto;font:var(--t-lg)/1 var(--font-mono);color:var(--pink-deep)}.joint-card .toolbar{margin:0}.joint-card button{min-width:64px}.joint-card label{margin-top:0}.table-scroll{overflow:auto}table{border-collapse:collapse;width:100%;font-size:var(--t-sm);margin:var(--s-4) 0}th,td{text-align:left;padding:var(--s-2);border-bottom:1px solid var(--paper-3)}td input[type=number]{width:75px}.file-button{border:1px solid var(--ink);padding:var(--s-3);display:inline-flex;flex-wrap:wrap;cursor:pointer;font-size:var(--t-sm);min-height:48px}.file-button input{max-width:190px;font-size:var(--t-xs)}.mirror-layout{display:grid;grid-template-columns:1.2fr 1fr;gap:var(--s-6)}.mirror-layout>*{min-width:0}.camera-stage{position:relative;aspect-ratio:4/3;background:var(--ink);overflow:hidden;border:1px solid var(--ink)}.camera-stage video,.camera-stage canvas{width:100%;height:100%;position:absolute;inset:0;object-fit:contain;transform:scaleX(-1)}#cameraState{position:absolute;bottom:var(--s-3);left:var(--s-3);right:var(--s-3);background:var(--paper);color:var(--ink);padding:var(--s-2);font-size:var(--t-xs)}.camera-placeholder{padding:var(--s-6);color:var(--paper)}.camera-placeholder span{font:10px/1.5 var(--font-mono);color:var(--fg-on-ink-2)}.camera-placeholder strong{display:block;font:var(--w-black) clamp(30px,4vw,60px)/1.05 var(--font-display);margin:var(--s-6) 0}.camera-placeholder em{color:var(--pink-hot)}.camera-placeholder p{font-size:var(--t-sm)}.tracking-row{display:flex;gap:var(--s-3);align-items:center;font-size:var(--t-xs);margin:var(--s-2) 0}.tracking-row span{width:155px}.tracking-row meter{flex:1;min-width:30px}.saved-list{display:grid;gap:var(--s-3);margin-top:var(--s-4)}.saved-item{display:flex;align-items:center;gap:var(--s-2);flex-wrap:wrap}.saved-item span{flex:1;min-width:0;overflow-wrap:anywhere}.test-progress{display:flex;gap:var(--s-4);margin:var(--s-5) 0}.test-progress progress{flex:1;width:100%;min-width:0;accent-color:var(--pink-deep)}#buttonInputs span{padding:var(--s-2) var(--s-4);border:1px solid var(--ink)}#buttonInputs .pressed{background:var(--pink)}#testResults{font-size:var(--t-sm)}pre{height:200px;overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere;font:var(--t-xs)/1.8 var(--font-mono);color:var(--paper);background:var(--ink);padding:var(--s-5)}footer{border-top:2px solid var(--ink);padding:var(--s-6) 0;display:flex;justify-content:space-between;gap:var(--s-5);align-items:center}footer p{font-size:var(--t-sm);margin:0}footer .eyebrow{margin:0}[hidden]{display:none!important}section{scroll-margin-top:110px}
@media(min-width:1600px){.hero{padding-top:var(--s-7)}}
@media(max-width:1100px){.masthead,main,.control-dock{width:calc(100% - 48px)}.hero{gap:var(--s-6)}.play-grid{grid-template-columns:1fr 1fr}.play-grid>#soundsPanel{grid-column:1/-1;border-top:1px solid var(--ink)}.play-grid>#drivePanel{border-right:0}.edition{display:none}.mission-card{padding:var(--s-5)}.mission-card h2{font-size:var(--t-2xl)}}
@media(max-width:700px){.masthead,main,.control-dock{width:calc(100% - 32px)}.masthead{min-height:76px}.brand{font-size:30px}.brand .brand-label{font-size:10px;margin-left:var(--s-2)}.source-link{font-size:10px}.control-dock{gap:var(--s-2);flex-wrap:wrap;padding:var(--s-3) 0}.connection-state{font-size:10px}.connection{width:100%;justify-content:space-between}.connection button{font-size:var(--t-sm);padding:var(--s-3)}#globalStop{min-width:120px;margin-left:auto}.section-nav{gap:var(--s-2);padding:var(--s-4) 0}.section-nav a{padding:var(--s-2) var(--s-3);font-size:var(--t-sm);gap:var(--s-2)}.section-nav a span{display:none}#notice{margin-bottom:var(--s-5)}.hero{grid-template-columns:1fr;padding:var(--s-4) 0 var(--s-6);gap:var(--s-6)}h1{font-size:64px}.hero .eyebrow{font-size:9px}.lede{font-size:var(--t-md)}.hero-actions{gap:var(--s-4);margin-top:var(--s-5)}.mission-card{min-height:0}.mission-card h2{font-size:var(--t-2xl);margin:var(--s-2) 0 var(--s-4)}.mission-card::after{content:"01";font-size:110px}.section-heading{align-items:center}.section-heading h2{font-size:var(--t-xl)}.section-heading>.eyebrow{font-size:9px;margin:0}.play-grid,.joint-grid,.mirror-layout{grid-template-columns:1fr}.play-grid>.panel{border-right:0;border-bottom:1px solid var(--ink)}.play-grid>#soundsPanel{grid-column:auto;border-top:0}.panel{padding:var(--s-5)}.next-adventure{grid-template-columns:1fr;padding:var(--s-6);margin:var(--s-6) 0}.next-adventure h2{font-size:var(--t-2xl)}.next-adventure .button{justify-self:start}.joint-card{padding:var(--s-4)}.panel label:has(select){flex-wrap:wrap}.panel label:has(input[type=text]){flex-wrap:wrap}footer{flex-wrap:wrap}footer .eyebrow{width:100%}.camera-placeholder{padding:var(--s-5)}.camera-placeholder strong{margin:var(--s-4) 0}.practice-banner{font-size:var(--t-xs)}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.control-dock{flex-wrap:wrap}@media(max-width:700px){.control-dock .status-dot{display:none}.control-dock .connection-state{max-width:43%}}

#practiceAction{display:block;max-width:80ch;margin:var(--s-2) auto 0;font-size:var(--t-sm)}
/* Small text needs more contrast than the core pink provides against warm ink. */
.mission-card{background:var(--pink-hot)}
.practice-banner{background:var(--ink);color:var(--paper);border-bottom:3px solid var(--pink)}
button.primary,.button.primary{font-size:20px}
button.primary:disabled{background:var(--paper-2);color:var(--ink-3);border-color:var(--paper-3)}

@media(max-width:380px){.connection{flex-wrap:wrap}.connection #globalStop{order:-1;width:100%}.connection #connect,.connection #disconnect{flex:1}}
.panel h1{font-size:clamp(42px,7vw,80px)}

/* CNS masthead treatment, matching the live blog/talks wordmark. */
.brand{display:inline-flex;align-items:baseline;gap:6px;letter-spacing:normal;font-family:var(--font-body);font-size:var(--t-base);font-weight:400}
.brand .brand-cns,.brand .brand-me{font-family:var(--font-display);font-size:28px;font-weight:900;letter-spacing:-.03em;line-height:1;color:var(--ink)}
.brand .brand-me{font-style:italic}
.brand-dot{display:inline-block;width:8px;height:8px;flex:none;border-radius:50%;background:var(--pink);transform:translateY(-2px)}
.brand .brand-label{margin-left:6px;font:400 12px/1 var(--font-mono);letter-spacing:.04em;color:var(--ink-3)}
.camera-placeholder em{font-weight:700;color:var(--pink)}
@media(max-width:700px){.masthead{column-gap:12px}.brand .brand-cns,.brand .brand-me{font-size:24px}.brand .brand-label{font-size:10px;margin-left:2px}}
@media(max-width:380px){.masthead .brand-label{display:none}}

.keyboard-guide{border:1px solid var(--ink);border-top:4px solid var(--pink);padding:var(--s-5);margin-bottom:var(--s-5)}
#keyboardJoints{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-3) var(--s-6)}#keyboardJoints>div{display:flex;align-items:center;justify-content:space-between;gap:var(--s-3);border-bottom:1px solid var(--paper-3);padding:var(--s-2) 0}#keyboardJoints>div>span:last-child{display:flex;gap:var(--s-2);flex:none}
kbd{font:var(--t-sm)/1.5 var(--font-mono);border:1px solid var(--ink-3);border-bottom-width:3px;border-radius:var(--r-2);padding:var(--s-1) var(--s-2);background:var(--bone);white-space:nowrap}
button.held-key{background:var(--pink);color:var(--ink);outline:2px solid var(--ink)}#keyboardToggle{margin-left:auto;font-size:var(--t-sm)}
@media(max-width:700px){#keyboardJoints{grid-template-columns:1fr}#keyboardToggle{margin-left:0}}
.workspace{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:24px;align-items:start}.activities{min-width:0}.robot-preview{position:sticky;top:100px;padding:20px}.robot-preview h2{font-size:30px}.robot-preview p{margin:12px 0}#robotPreview{height:430px;width:100%;touch-action:none}#robotPreview canvas{display:block;width:100%;height:100%}.workspace .hero{grid-template-columns:1fr}.workspace .mission-card{display:none}.workspace .play-grid{grid-template-columns:1fr 1fr}.workspace #soundsPanel{grid-column:1/-1}.workspace .mirror-layout{grid-template-columns:1fr}.workspace .hero h1{font-size:clamp(54px,6vw,90px)}
@media(max-width:1050px){.workspace{grid-template-columns:minmax(0,1fr) 250px;gap:16px}.robot-preview{padding:12px}#robotPreview{height:360px}.workspace .joint-grid{grid-template-columns:1fr}.workspace .play-grid{grid-template-columns:1fr}}
@media(max-width:760px){.workspace{display:flex;flex-direction:column}.activities{width:100%}.robot-preview{position:relative;top:auto;width:100%;order:-1;display:grid;grid-template-columns:1fr 1fr;gap:0 12px}.robot-preview #robotPreview{grid-column:2;grid-row:1/6;height:260px}.robot-preview h2{font-size:25px}.robot-preview p{font-size:13px}.robot-preview button{align-self:start}.workspace .play-grid{grid-template-columns:1fr}}
.robot-preview{min-width:0}.robot-preview>*{min-width:0}#robotPreview{overflow:hidden}
.copy-drive{margin:var(--s-5) 0}.copy-drive legend{font-weight:var(--w-bold)}.copy-drive .toolbar{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.copy-drive button{min-width:0;width:100%}
@media(max-width:760px){.robot-preview{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}
