:root{color:#29243a;background:#f7f4ff;font-family:var(--jke-font-ui),ui-rounded,"Arial Rounded MT Bold",system-ui,sans-serif;line-height:1.45}*{box-sizing:border-box}body{margin:0;background:radial-gradient(circle at 95% 0,#ffe89e 0 9%,transparent 31%),radial-gradient(circle at 0 18%,#cbeef2 0 12%,transparent 35%),#f7f4ff}button,input,textarea{font:inherit}button{cursor:pointer}.app{width:min(1160px,100%);margin:auto;padding:28px max(18px,env(safe-area-inset-right)) 10px max(18px,env(safe-area-inset-left))}.top{display:flex;gap:18px;align-items:start;justify-content:space-between}.eyebrow,.crumb{margin:0;color:#64547f;font-size:.8rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.top h1{margin:3px 0;font-size:clamp(2rem,5vw,3.5rem);line-height:1}.lede{max-width:680px;margin:.7rem 0;color:#574d69}.top-actions{display:flex;gap:8px;align-items:center}.icon-button,.secondary,.primary,.choice,.lab-link{border:0;border-radius:14px;font-weight:700}.icon-button{width:44px;height:44px;background:#fff;color:#463f59;box-shadow:0 3px 10px #49387120}.shell{display:grid;grid-template-columns:310px minmax(0,1fr);gap:18px;margin-top:22px}.sidebar,.panel,.notebook-card{background:#ffffffd9;border:1px solid #534a7130;border-radius:22px;box-shadow:0 12px 30px #45376712}.sidebar{padding:14px}.sidebar section+section{margin-top:18px}.sidebar h2{margin:0;font-size:1rem}.sidebar p{margin:2px 0 9px;color:#70677c;font-size:.82rem}.lab-list{display:grid;gap:5px}.lab-link{display:grid;grid-template-columns:25px 1fr auto;align-items:center;gap:7px;width:100%;padding:9px;text-align:left;background:transparent;color:#342d45}.lab-link:hover,.lab-link.active{background:#e8ddff}.lab-link small{color:#bd7b23;font-size:.72rem;letter-spacing:-.08em}.panel{overflow:hidden}.panel-head{padding:24px 26px 14px;background:linear-gradient(135deg,#f0e9ff,#e6f8f6)}.panel-head h2{margin:3px 0 5px;font-size:clamp(1.5rem,3vw,2.3rem)}.panel-head p{max-width:690px;margin:0;color:#554d63}.score{display:inline-block;margin-top:12px;padding:6px 10px;border-radius:999px;background:#fff;color:#a76521;font-weight:700}.stage{padding:26px;min-height:330px}.mix-grid,.match-grid{display:grid;grid-template-columns:1fr minmax(190px,.65fr);gap:28px;align-items:center;max-width:760px;margin:auto}.mix-controls{display:grid;gap:14px}.control{display:grid;gap:5px;color:#50465e;font-weight:700}.range output{float:right;color:#7d4bc1}.control input[type=color]{width:100%;height:54px;padding:4px;border:1px solid #776a8d55;border-radius:12px;background:#fff}.control input[type=range]{width:100%;accent-color:#7951c7}.primary,.secondary{min-height:46px;padding:10px 15px}.primary{color:#fff;background:linear-gradient(135deg,#7852c6,#db5680);box-shadow:0 7px 15px #8853a640}.secondary{color:#4e4166;background:#eee8fa}.target-label{margin:0 0 5px;color:#71667d;font-size:.85rem;font-weight:700}.swatch{height:92px;margin-bottom:13px;border:5px solid #fff;border-radius:18px;box-shadow:0 7px 16px #34264a25}.target{outline:1px solid #4d3d6650}.model-note{max-width:760px;margin:22px auto 0;color:#625875;font-size:.91rem}.context-controls{display:flex;flex-wrap:wrap;gap:14px;align-items:end;justify-content:center}.context-stage{display:grid;grid-template-columns:1fr 1fr;max-width:720px;margin:24px auto 0;overflow:hidden;border:7px solid #fff;border-radius:20px;box-shadow:0 8px 20px #34264a1e}.world{display:grid;min-height:175px;place-items:center}.middle{width:94px;height:94px;border-radius:14px;box-shadow:0 3px 10px #0003}.quiz{max-width:700px;margin:25px auto;text-align:center;font-size:1.2rem}.choices{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:24px}.choice{min-height:70px;padding:12px;color:#44375a;background:#f3eff9;border:1px solid #d8cbe9}.choice:hover{background:#e1d1ff}.notebook{display:grid;grid-template-columns:1fr 1fr;gap:14px;padding:0 26px 26px}.notebook-card{padding:16px;box-shadow:none}.notebook-card h3{margin:0 0 8px}.notebook-card p{font-size:.92rem}.notebook textarea{display:block;width:100%;min-height:84px;margin:9px 0;border:1px solid #cfc4dc;border-radius:10px;padding:9px;resize:vertical}.notebook label{font-size:.9rem;font-weight:700}.footnote{margin:0;padding:0 26px 26px;color:#6e657a;font-size:.82rem}.dialog{max-width:650px;border:0;border-radius:22px;padding:24px;color:#342d45;box-shadow:0 30px 80px #0005}.dialog::backdrop{background:#22173775}.dialog h2{margin-top:0}.dialog a{color:#6b39ac}.reduced-motion *{animation:none!important;transition:none!important}@media(max-width:820px){.shell{grid-template-columns:1fr}.sidebar{display:flex;gap:8px;overflow-x:auto;padding:10px;-webkit-overflow-scrolling:touch}.sidebar section{display:contents}.sidebar h2,.sidebar p{display:none}.lab-list{display:flex;gap:7px}.sidebar section+section{margin:0}.lab-link{min-width:178px;max-width:178px;flex:0 0 178px}.mix-grid,.match-grid{grid-template-columns:1fr}.notebook{grid-template-columns:1fr}.top{display:block}.top-actions{position:absolute;right:14px;top:16px}.app{padding-top:72px}.choices{grid-template-columns:1fr}.stage{padding:18px}.panel-head{padding:20px}.notebook{padding:0 18px 18px}.footnote{padding:0 18px 18px}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
.explanation{padding:0 26px 18px}.explanation h3{margin:0 0 8px}.explanation #explain{padding:0;font-size:1rem;line-height:1.65;color:#50465e}.theory{padding:0 26px 24px}.theory details{border:1px solid #d8cbe9;border-radius:14px;padding:14px;background:#f6f2fc}.theory summary{cursor:pointer;font-weight:700;color:#50386b}.theory p{line-height:1.65}.source-links a,.theory a{color:#61359b}.dialog{max-height:85vh;overflow:auto}.theorist-entry{border-top:1px solid #ddd2e8;padding:12px 0}.theorist-entry h4{margin:0 0 6px}.theorist-labs{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.theorist-labs button{font-size:.85rem}.experiment-actions,.afterimage-controls{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin-top:16px}.afterimage-controls .control{min-width:180px}.ghost-card{height:260px;max-width:600px;margin:20px auto;display:grid;place-items:center;border:1px solid #b6acc6;border-radius:12px}.ghost-card span{font-size:30px;color:#17131e}.flat-squares .middle,.neighbor-strips .middle{border-radius:0;box-shadow:none}.neighbor-strips .world{min-height:200px}.neighbor-strips .middle{width:35%;height:160px}.overlap-stage{height:280px;max-width:500px;margin:24px auto;position:relative}.overlap-a{position:absolute;left:10%;top:10%;width:55%;height:55%}.overlap-b{position:absolute;left:40%;top:40%;width:50%;height:50%}#opaque-overlap{position:absolute;left:40%;top:40%;width:25%;height:25%}.rule-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;max-width:390px;margin:auto}.grid-tile{aspect-ratio:1;border:0;border-radius:8px;font-size:1.8rem;cursor:pointer;color:#1c152b;text-shadow:0 0 3px #fff;font-weight:700}.diagram-legend{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;align-items:center}.diagram-legend span{display:flex;align-items:center;gap:5px}.diagram-legend i{display:inline-block;width:24px;height:24px;border:1px solid #50465e}.diagram-options{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:20px}.diagram-options h3{margin:0 0 10px}.diagram-options .primary{width:100%;margin-top:12px}.diagram-map{display:grid;grid-template-columns:1fr 1fr;min-height:170px;border:3px solid #fff;outline:1px solid #b6acc6}.diagram-map div{display:grid;place-items:center;padding:8px}.diagram-map div:first-child{grid-row:span 2}.diagram-map span{background:#fff;color:#29243a;padding:4px 8px;border-radius:6px;font-weight:700}.area-stage{display:flex;height:210px;margin:20px auto;max-width:650px;border:1px solid #b6acc6}.area-stage div{flex:1}button:focus-visible,a:focus-visible,summary:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid #35225f;outline-offset:3px}@media(max-width:820px){.explanation{padding:0 18px 18px}.theory{padding:0 18px 18px}.diagram-options{grid-template-columns:1fr}.theorist-labs{display:grid}.ghost-card{height:220px}}
.colorlab-smartphone .neighbor-strips .middle{width:35%;height:110px}.colorlab-smartphone .neighbor-strips .world{min-height:150px}.colorlab-smartphone .flat-squares .middle,.colorlab-smartphone .neighbor-strips .middle{box-shadow:none;border-radius:0}.theory,.explanation{overflow-wrap:break-word}.grid-tile{position:relative;text-shadow:none}.grid-tile span{display:inline-block;background:#fff;color:#29243a;border-radius:6px;padding:2px 10px}.colorlab-smartphone .explanation,.colorlab-smartphone .theory{padding-left:15px;padding-right:15px}
.overlap-target{max-width:180px;height:65px}.grid-tile span{line-height:1.4}
.journey{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:18px 0 0;padding:14px 18px;border:1px solid #7053a833;border-radius:18px;background:linear-gradient(105deg,#fff7ce,#f0e8ff 54%,#dcf6f0);box-shadow:0 8px 20px #49387112}.journey>div{min-width:min(420px,100%)}.journey-eyebrow{margin:0 0 2px;color:#71558c;font-size:.72rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase}.journey strong{display:block;color:#3d2c54}.journey progress{display:block;width:100%;height:9px;margin-top:8px;overflow:hidden;border:0;border-radius:999px;background:#fff}.journey progress::-webkit-progress-bar{background:#fff;border-radius:999px}.journey progress::-webkit-progress-value{background:linear-gradient(90deg,#7951c7,#dc5680,#f1c553);border-radius:999px}.journey progress::-moz-progress-bar{background:linear-gradient(90deg,#7951c7,#dc5680,#f1c553);border-radius:999px}.journey .primary{min-width:210px}.room-heading{display:flex;gap:8px;align-items:flex-start;justify-content:space-between}.room-heading strong{display:grid;min-width:35px;min-height:26px;place-items:center;border-radius:999px;background:#f0e9fb;color:#624187;font-size:.75rem}.room-meter{height:4px;margin:-3px 0 10px;overflow:hidden;border-radius:999px;background:#eee8f6}.room-meter span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#7d54c5,#e46d91)}.lab-link small{min-width:28px;text-align:right;letter-spacing:-.1em}.lab-link small:not(:empty){color:#a35f12}.mission-label{display:block;margin-bottom:4px;color:#71558c;font-size:.7rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase}.mission-strip{display:flex;gap:10px;align-items:center;max-width:760px;margin:18px auto -5px;padding:10px 14px;border-radius:14px;background:#f6f2fc;color:#4a3b5c}.mission-strip p{margin:0;font-size:.9rem;font-weight:700}.mission-orb{display:grid;width:28px;height:28px;flex:0 0 28px;place-items:center;border-radius:50%;background:#7650c4;color:#fff;box-shadow:0 3px 8px #7650c444}.stage{min-height:350px}.primary,.secondary,.choice,.lab-link,.icon-button{transition:transform .16s ease,box-shadow .16s ease,background .16s ease}.primary:hover{transform:translateY(-2px);box-shadow:0 9px 18px #8853a650}.secondary:hover,.choice:hover{transform:translateY(-1px)}.lab-link.active{box-shadow:inset 4px 0 #7852c6}.notebook-card{border-top:4px solid #eadcfc}.notebook-card h3{color:#432d61}.explanation h3{color:#432d61}.theory details[open]{background:#fffdf4}
@media(max-width:820px){.journey{margin-top:10px;padding:11px 12px;align-items:stretch;flex-direction:column;gap:10px}.journey>div{min-width:0}.journey .primary{width:100%;min-width:0}.mission-strip{margin:13px 0 -4px;padding:9px 12px}.mission-strip p{font-size:.84rem}.room-heading,.room-meter{display:none}.lab-link small{display:block}.stage{min-height:0}}

/* Distinct experiment stages share controls, not their learning tasks. */
.stage select,.stage input[type=text]{width:100%;min-height:46px;padding:8px 10px;border:1px solid #c4b7d6;border-radius:10px;background:#fff;color:#332b42;font:inherit;min-width:0}
.stage-controls,.memory-cards,.shadow-regions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-bottom:20px}
.stage-controls .control{min-width:0}.stage .experiment-actions{margin-bottom:16px}.stage .experiment-actions button{max-width:100%}
button:disabled,input:disabled{opacity:.55;cursor:default;transform:none!important;box-shadow:none!important}
.mission-strip{margin-left:18px;margin-right:18px}.mission-strip p{flex:1}.replay-lab{font-size:.75rem;min-height:40px;white-space:nowrap}
.poster-preview{padding:32px 22px;border-radius:18px;min-height:220px;text-align:center;border:1px solid #8c7c9d55}.poster-preview p{font-size:clamp(1.5rem,3vw,2.3rem);font-weight:700;line-height:1.15;letter-spacing:.01em;margin:0 0 16px}.poster-preview span{font-size:1rem}.contrast-readout{font-size:1rem;font-weight:700;text-align:center}
.palette-layout{display:grid;grid-template-columns:220px minmax(0,1fr);align-items:center;gap:24px;margin:20px 0}.palette-controls{display:grid;gap:12px}.hue-wheel{position:relative;width:210px;height:210px;border-radius:50%;background:conic-gradient(from 0deg,#ff0000,#ffff00,#00ff00,#00ffff,#0000ff,#ff00ff,#ff0000);display:grid;place-items:center}.hue-wheel>span{display:grid;place-items:center;width:140px;height:140px;border-radius:50%;background:#fff;color:#58496e;font-weight:700;text-align:center;font-size:.85rem}.wheel-marker{position:absolute;display:grid;place-items:center;transform:translate(-50%,-50%);width:26px;height:26px;background:#fff;border:2px solid #30233f;border-radius:50%;font-size:.75rem;font-weight:700;color:#30233f}
.palette-swatches,.material-samples{display:flex;gap:12px;margin-top:20px}.palette-swatches .swatch,.material-samples .swatch{flex:1;min-width:0;display:grid;place-items:center;min-height:92px}.palette-swatches .swatch>span,.material-samples .swatch>span,.association-cards .swatch>span,.shadow-regions .swatch>span,.ladder-swatch>span,.serial-band span{background:#fff;color:#332b42;padding:3px 7px;border-radius:5px;font-size:.8rem;font-weight:700;text-align:center}
.placement-field{height:260px;position:relative;border-radius:14px;border:1px solid #a696ba;overflow:hidden}.placement-accent{width:60px;height:60px;position:absolute;transform:translate(-50%,-50%)}.placement-accent[data-position=center]{left:50%;top:50%}.placement-accent[data-position=edge]{left:15%;top:50%}.placement-accent[data-position=corner]{left:15%;top:20%}
.memory-cards .swatch{display:grid;place-items:center;height:130px;font-weight:700}.lightness-list{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;padding:0;list-style:none;margin:0}.lightness-list li{min-width:0}.ladder-swatch{height:100px;display:grid;place-items:center;border-radius:10px;margin-bottom:8px}.ladder-actions{display:grid;gap:5px}.ladder-actions button{font-size:.72rem;padding:8px 5px;min-height:44px}.saturation-controls{display:grid;gap:14px}.saturation-field{height:240px;margin-top:20px;display:grid;place-items:center;border-radius:10px}.saturation-field>div{width:100px;height:100px}
.association-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.association-cards section{min-width:0}.association-cards .swatch{display:grid;place-items:center}.association-cards p{font-size:.9rem;line-height:1.6;padding:10px;border-radius:10px;background:#fff5dc}.optical-pattern{height:180px;border:1px solid #ab9dbb;border-radius:12px}.light-switches{display:flex;gap:20px;flex-wrap:wrap;justify-content:center;font-weight:700}.light-switches input{width:20px;height:20px;vertical-align:middle}.shadow-diagram{display:block;width:100%;height:130px;margin:12px auto;font:14px var(--jke-font-ui),system-ui;color:#433451}.shadow-hidden{background:#eee8f5}.shadow-regions .swatch{display:grid;place-items:center}.material-samples{margin:25px 0}.historical-banner{padding:12px 14px;background:#fff1c8;border:1px solid #e5c877;border-radius:12px;color:#594614;font-weight:700;font-size:.88rem;margin-bottom:20px}.fraction-pairs{display:grid;gap:14px}.fraction-pairs section{border:1px solid #ded3eb;padding:14px;border-radius:12px}.fraction-pairs h3{margin:0 0 12px}.fraction-selects{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.fraction-pairs .model-note{margin:8px 0 0}.model-comparison{padding:14px;border:1px solid #ded3eb;border-radius:12px}.model-comparison summary{cursor:pointer;font-weight:700}.model-comparison p{line-height:1.6}
.variation-motif{display:block;width:min(260px,100%);height:auto;margin:auto}.variation-values{text-align:center;color:#655776;font-size:.85rem}.saved-versions{display:flex;gap:20px;justify-content:center}.saved-versions section{flex:1;max-width:230px;padding:10px;background:#f7f3fc;border-radius:12px}.saved-versions h3{margin:0 0 10px;font-size:.95rem;text-align:center}.sequence-rule{background:#f5effc;padding:12px;border-radius:10px;line-height:1.6}.serial-bands{display:grid;gap:14px}.serial-bands section{display:grid;grid-template-columns:100px minmax(0,1fr);gap:12px;align-items:center}.serial-band{display:flex;height:66px;overflow:hidden;border-radius:10px;border:2px solid #fff}.serial-band>div{flex:1;display:grid;place-items:center;min-width:0}.quantitative-legend{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:20px}.quantitative-legend strong{flex-basis:100%}.quantitative-legend span{display:flex;gap:5px;align-items:center;font-size:.8rem}.quantitative-legend i{display:inline-block;width:24px;height:24px;border:1px solid #7d6b94}.quantitative-map{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px}.quantitative-map section{padding:20px 12px;background:#f2edf8;min-width:0}.region-label{display:inline-block;background:#fff;color:#332b42;border-radius:6px;padding:4px 8px;font-weight:700;margin-bottom:16px}.quantitative-map .control{padding:8px;background:#ffffffed;border-radius:9px}
@media(max-width:820px){.mission-strip{flex-wrap:wrap;margin-left:0;margin-right:0}.replay-lab{margin-left:38px}.stage-controls,.memory-cards,.shadow-regions{gap:12px}.palette-layout{grid-template-columns:1fr;justify-items:center}.palette-controls{width:100%}.association-cards{grid-template-columns:1fr}.association-cards .swatch{height:80px}.lightness-list{grid-template-columns:1fr}.lightness-list li{display:grid;grid-template-columns:90px minmax(0,1fr);gap:10px;align-items:center}.ladder-swatch{height:70px;margin:0}.ladder-actions{grid-template-columns:1fr 1fr}.ladder-actions button{font-size:.8rem}.quantitative-map section{padding:12px 8px}.serial-bands section{grid-template-columns:80px minmax(0,1fr)}.material-samples{flex-wrap:wrap}.material-samples .swatch{flex-basis:90px}.stage .palette-swatches{flex-wrap:wrap}.model-comparison .palette-swatches .swatch{flex-basis:100%}.historical-banner{font-size:.8rem}.placement-field{height:220px}.stage input[type=range]{min-height:40px}}

/* The lab map is a searchable card picker rather than a long button rail. */
#lab-nav.sidebar{padding:16px;overflow:hidden;display:block}
.picker-header{display:flex;gap:12px;align-items:flex-start;justify-content:space-between;margin-bottom:15px}.picker-kicker{margin:0 0 2px;color:#76539c;font-size:.68rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.picker-header h2{margin:0;font-size:1.14rem}.picker-description{margin:4px 0 0;color:#70677c;font-size:.78rem;line-height:1.4}.picker-count{display:grid;min-width:42px;height:31px;place-items:center;padding:0 8px;border-radius:999px;background:#f0e9fb;color:#624187;font-size:.74rem;font-weight:700}.picker-search{display:grid;gap:5px;margin-bottom:12px;color:#50465e;font-size:.78rem;font-weight:700}.picker-search input{width:100%;min-height:42px;padding:8px 11px;border:1px solid #cfc2de;border-radius:11px;background:#fff;color:#332b42;font:inherit}.picker-tabs{display:flex;gap:6px;overflow-x:auto;padding:2px 1px 9px;scrollbar-width:thin}.picker-tab{display:flex;gap:5px;align-items:center;min-height:35px;padding:7px 10px;border:1px solid #ded3eb;border-radius:999px;background:#fff;color:#514364;white-space:nowrap;font-size:.72rem;font-weight:700}.picker-tab small{display:grid;min-width:18px;height:18px;place-items:center;border-radius:99px;background:#f0e9fb;color:#77529c;font-size:.65rem}.picker-tab.active{border-color:#7951c7;background:#7650c4;color:#fff;box-shadow:0 3px 8px #7650c433}.picker-tab.active small{background:#fff;color:#7650c4}.picker-results{display:grid;gap:7px;max-height:calc(100vh - 295px);overflow:auto;padding:2px 3px 5px 1px}.picker-card{display:grid;grid-template-columns:24px 28px minmax(0,1fr) auto;grid-template-areas:"number icon copy status" "number icon copy open";gap:0 7px;align-items:center;width:100%;padding:9px 8px;border:1px solid transparent;border-radius:13px;background:#fbfaff;color:#342d45;text-align:left}.picker-card:hover,.picker-card.active{border-color:#cdb8eb;background:#eee5ff;box-shadow:0 4px 12px #49387114}.picker-number{grid-area:number;color:#a89ab8;font-size:.66rem;font-variant-numeric:tabular-nums}.picker-icon{grid-area:icon;font-size:1.15rem;text-align:center}.picker-card-copy{grid-area:copy;min-width:0}.picker-card-copy strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.78rem}.picker-card-copy small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#756a82;font-size:.65rem;line-height:1.35}.picker-status{grid-area:status;color:#a86720;font-size:.68rem;font-weight:700;text-align:right}.picker-status small{display:block;color:#8c8197;font-size:.57rem;font-weight:700}.picker-open{grid-area:open;color:#7650c4;font-size:.62rem;font-weight:700;text-align:right;opacity:.75}.picker-empty{display:grid;gap:4px;padding:25px 10px;text-align:center;color:#635774}.picker-empty span{font-size:.78rem;color:#877b91}
@media(max-width:820px){#lab-nav.sidebar{padding:12px;overflow:visible}.picker-header{margin-bottom:10px}.picker-description{max-width:270px}.picker-results{max-height:42vh;grid-template-columns:repeat(2,minmax(0,1fr));overflow-y:auto}.picker-card{grid-template-columns:22px 25px minmax(0,1fr);grid-template-areas:"number icon copy" "number icon status";padding:8px 7px}.picker-status{text-align:left;margin-top:1px}.picker-open{display:none}.picker-card-copy small{font-size:.6rem}.picker-card-copy strong{font-size:.74rem}.picker-number{font-size:.6rem}.picker-tabs{margin-right:-2px}}
@media(max-width:430px){.picker-results{grid-template-columns:1fr;max-height:38vh}.picker-card{grid-template-columns:24px 29px minmax(0,1fr) auto;grid-template-areas:"number icon copy status"}.picker-status{text-align:right}.picker-card-copy small{font-size:.62rem}}
.picker-search-row{display:flex;gap:6px;align-items:center}.picker-search-row input{min-width:0;flex:1}.picker-clear{min-height:42px;padding:8px 10px;border:1px solid #cfc2de;border-radius:11px;background:#eee8fa;color:#59436f;font-size:.75rem;font-weight:700}.picker-clear:hover{background:#e2d4f7}

/* Journey shell */
.app-bar{position:sticky;z-index:30;top:0;display:grid;grid-template-columns:auto 1fr auto;gap:24px;align-items:center;padding:12px 14px;border:1px solid #58467424;border-radius:0 0 20px 20px;background:#fffdf8ed;box-shadow:0 8px 28px #34264a16;backdrop-filter:blur(16px)}.brand-button{display:flex;gap:10px;align-items:center;border:0;background:transparent;color:#332744;text-align:left}.brand-button>span:first-child{font-size:2rem}.brand-button small,.brand-button strong{display:block}.brand-button small{color:#765f8d;font-size:.58rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase}.brand-button strong{font-size:1.05rem}.primary-nav{display:flex;gap:6px;justify-content:center}.primary-nav button{display:flex;gap:6px;align-items:center;min-height:40px;padding:8px 12px;border:0;border-radius:12px;background:transparent;color:#5b4e68;font-size:.8rem;font-weight:700}.primary-nav button:hover,.primary-nav button.active{background:#eee5ff;color:#543087}.app-actions{display:flex;gap:7px;align-items:center}.app-actions #progress{color:#665a73;font-size:.7rem;font-weight:700}.route-view{min-height:70vh;padding:24px 0 38px;outline:0}.status-line{min-height:24px;margin:0;padding:0 16px 18px;color:#695d77;font-size:.8rem;text-align:center}.view-heading{max-width:760px;margin:14px auto 28px;text-align:center}.view-heading h1,.hub-hero h1,.journey-hero h1{margin:.15em 0;font-size:clamp(2rem,5vw,3.8rem);line-height:1.04}.view-heading>p:last-child{color:#635872;font-size:1.04rem}.back-link{padding:6px 0;border:0;background:transparent;color:#60408d;font-weight:700}.section-heading{display:flex;gap:16px;align-items:end;justify-content:space-between;margin:32px 2px 16px}.section-heading h2{margin:2px 0}.section-heading p{margin:2px 0;color:#746a80}.hub-hero{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(260px,.65fr);gap:28px;align-items:center;min-height:370px;padding:clamp(28px,5vw,62px);overflow:hidden;border:1px solid #6b57952b;border-radius:30px;background:radial-gradient(circle at 83% 14%,color-mix(in srgb,var(--journey) 35%,#fff) 0 8%,transparent 33%),linear-gradient(135deg,#fff8d9,#eee5ff 54%,#dcf5ef);box-shadow:0 20px 45px #3929571a}.hub-hero>div>p:not(.eyebrow){max-width:650px;color:#5a5066;font-size:1.1rem}.hero-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:24px}.quest-orbit{position:relative;width:280px;height:280px;margin:auto;border:2px dashed #7650c466;border-radius:50%;animation:float-orbit 18s linear infinite}.quest-orbit>span{position:absolute;display:grid;width:54px;height:54px;place-items:center;border:1px solid #fff;border-radius:18px;background:#ffffffdc;box-shadow:0 8px 18px #4d386325;font-size:1.5rem}.quest-orbit>span:nth-child(1){left:calc(50% - 27px);top:-27px}.quest-orbit>span:nth-child(2){right:-27px;top:calc(50% - 27px)}.quest-orbit>span:nth-child(3){bottom:-27px;left:calc(50% - 27px)}.quest-orbit>span:nth-child(4){left:-27px;top:calc(50% - 27px)}.quest-orbit>strong{position:absolute;inset:60px;display:grid;place-content:center;border-radius:50%;background:#fff;color:#4b3269;font-size:3rem;text-align:center;box-shadow:0 12px 35px #4938711c}.quest-orbit small{display:block;color:#796b85;font-size:.7rem;font-weight:700}.journey-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.journey-grid-wide{max-width:1050px;margin:auto}.journey-card{position:relative;padding:22px;overflow:hidden;border:1px solid #5d49752b;border-top:6px solid var(--journey);border-radius:22px;background:#ffffffdd;box-shadow:0 12px 28px #39295711}.journey-card:after{position:absolute;right:-45px;bottom:-65px;width:170px;height:170px;border-radius:50%;background:color-mix(in srgb,var(--journey) 14%,transparent);content:""}.journey-card-head{position:relative;z-index:1;display:flex;justify-content:space-between}.journey-icon{font-size:2rem}.journey-badge{align-self:start;padding:5px 9px;border-radius:999px;background:#f1ebf9;color:#654a83;font-size:.67rem;font-weight:700}.journey-card h3{position:relative;z-index:1;margin:12px 0 5px;font-size:1.35rem}.journey-card p{position:relative;z-index:1;min-height:48px;margin:0;color:#655a72}.journey-card progress{position:relative;z-index:1;width:100%;height:8px;margin:16px 0;border:0;border-radius:99px;accent-color:var(--journey)}.journey-card-actions{position:relative;z-index:1;display:flex;gap:12px;align-items:center}.journey-card-actions small{color:#796e84;font-size:.72rem}.home-discoveries{display:flex;gap:24px;align-items:center;justify-content:space-between;margin:32px 0 0;padding:22px 25px;border:1px solid #5d497526;border-radius:22px;background:#fffdf8c9}.home-discoveries h2{margin:2px 0}.home-discoveries p{margin:0;color:#6d6379}.journey-hero{max-width:970px;margin:10px auto 0;padding:34px 42px;border-left:8px solid var(--journey);border-radius:24px;background:linear-gradient(125deg,#fff,#f1eaff);box-shadow:0 14px 32px #39295712}.journey-hero>.journey-icon{display:block;margin-top:18px;font-size:2.7rem}.journey-hero>p:not(.eyebrow){max-width:720px;color:#5f546b}.journey-progress{display:flex;gap:12px;align-items:center;max-width:620px;margin-top:20px}.journey-progress progress{width:100%;height:10px;accent-color:var(--journey)}.journey-progress strong{white-space:nowrap;color:#6e627a;font-size:.78rem}.journey-steps{display:grid;gap:9px;max-width:900px;margin:22px auto;padding:0;list-style:none}.journey-steps button{display:grid;grid-template-columns:42px 40px minmax(0,1fr) auto;gap:12px;align-items:center;width:100%;padding:13px 15px;border:1px solid #d9cfe4;border-radius:16px;background:#fff;color:#382e48;text-align:left;box-shadow:0 5px 14px #46345a0b}.journey-steps button:hover{border-color:#9f7bd1;background:#faf7ff;transform:translateY(-1px)}.step-marker{display:grid;width:34px;height:34px;place-items:center;border-radius:50%;background:#eee8f6;color:#604283;font-weight:700}.journey-steps .complete .step-marker{background:#dff4e9;color:#276a50}.step-icon{font-size:1.4rem}.journey-steps strong,.journey-steps small{display:block}.journey-steps small{margin-top:2px;color:#746a80;font-size:.76rem}.journey-steps em{color:#a76720;font-size:.72rem;font-style:normal;font-weight:700}.journey-steps .capstone-step button{border:2px solid #d4b45b;background:linear-gradient(100deg,#fff9dd,#f5edff)}.workspace{max-width:1100px;margin:auto}.workspace-toolbar{display:flex;gap:15px;align-items:center;justify-content:space-between;margin:0 4px 12px}.workspace-toolbar>span{color:#756981;font-size:.75rem;font-weight:700}.workspace-toolbar>div{display:flex;gap:6px}.workspace .panel{max-width:1000px;margin:auto}.workspace .panel-head h1{margin:3px 0 5px;font-size:clamp(1.65rem,4vw,2.55rem)}.workspace .explanation h2{margin:0 0 8px;color:#432d61;font-size:1.2rem}.workspace .explanation #explain{font-size:1rem;line-height:1.65}.notebook-actions{display:flex;gap:8px;flex-wrap:wrap}.lab-browser{padding:18px;border:1px solid #5d497526;border-radius:24px;background:#ffffffbf}.browser-controls{display:grid;grid-template-columns:2fr 1fr 1fr;gap:12px}.browser-controls label{display:grid;gap:5px;color:#51455f;font-size:.76rem;font-weight:700}.browser-controls input,.browser-controls select{width:100%;min-height:44px;padding:8px 10px;border:1px solid #cabdd9;border-radius:11px;background:#fff;color:#332b42;font:inherit}.result-count{margin:14px 2px;color:#756a80;font-size:.78rem}.lab-card-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.lab-card{position:relative;display:grid;align-content:start;min-height:190px;padding:15px;border:1px solid #dcd2e6;border-top:5px solid var(--journey);border-radius:16px;background:#fff;color:#372e46;text-align:left}.lab-card:hover{box-shadow:0 10px 22px #3d2d5018;transform:translateY(-2px)}.lab-card>span{font-size:1.6rem}.lab-card>small{margin-top:8px;color:#7a6c86;font-size:.64rem}.lab-card>strong{margin-top:3px}.lab-card>p{margin:8px 0 22px;color:#6b6077;font-size:.74rem;line-height:1.45}.lab-card>em{position:absolute;right:12px;bottom:10px;color:#a46821;font-size:.7rem;font-style:normal;font-weight:700}.portfolio-section{margin-top:26px}.artifact-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.artifact-card,.pinned-grid article,.empty-portfolio{padding:18px;border:1px solid #d9cee5;border-radius:20px;background:#fff}.artifact-card h3{margin:5px 0}.artifact-card>small{color:#74657f;font-weight:700}.artifact-card>p{min-height:44px;color:#62566f}.artifact-preview{display:flex;height:150px;margin:-7px -7px 15px;overflow:hidden;border-radius:14px;background:#f0eaf6}.artifact-preview i{flex:1}.artifact-preview>span{margin:auto;font-size:3rem}.pinned-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.pinned-grid article p{line-height:1.6}.empty-portfolio{grid-column:1/-1;text-align:center}.empty-portfolio>span{font-size:3rem}.source-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.source-grid article{padding:18px;border:1px solid #d9cee5;border-radius:18px;background:#fff}.source-grid h2{margin:0 0 5px;font-size:1.1rem}.source-grid a{color:#603995}.source-grid article>div{display:flex;gap:6px;flex-wrap:wrap;margin-top:14px}.source-grid button{min-height:36px;padding:6px 9px;font-size:.7rem}.route-error,.empty-state{grid-column:1/-1;padding:50px 20px;text-align:center;color:#665a73}.capstone-reflection{margin-top:18px}.capstone-reflection textarea{min-height:90px;padding:10px;border:1px solid #c7b9d7;border-radius:10px;resize:vertical}.capstone-case{display:grid;grid-template-columns:1fr 1fr;overflow:hidden;max-width:680px;height:220px;margin:0 auto 20px;border:6px solid #fff;border-radius:18px}.capstone-case section{position:relative;display:grid;place-items:center}.capstone-case section>span{position:absolute;bottom:7px;padding:3px 7px;border-radius:5px;background:#fff;color:#342d45;font-size:.72rem;font-weight:700}.case-target{width:92px;height:92px;border-radius:10px}.evidence-sorter{display:grid;gap:9px}.evidence-sorter label{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(180px,.5fr);gap:12px;align-items:center;padding:11px;border:1px solid #ddd2e7;border-radius:12px;background:#fbf9ff}.evidence-sorter select{min-height:42px;border:1px solid #c8bcd5;border-radius:9px;background:#fff}.lighting-scene{display:grid;grid-template-columns:1fr 1fr 1.2fr;gap:5px;height:180px;margin-top:20px}.lighting-scene div{display:grid;place-items:center;border-radius:10px;color:#332b42;font-weight:700;text-shadow:0 0 5px #fff;background:#eee8f5}.system-preview{position:relative;max-width:650px;margin:20px auto;padding:28px;border:1px solid #9c8dad;border-radius:17px}.system-preview>strong{font-size:1.5rem}.system-scale{position:relative;display:flex;gap:5px;height:48px;margin:22px 0}.system-scale i{flex:1;background:currentColor;opacity:.18}.system-scale span{position:absolute;top:5px;width:38px;height:38px;border-radius:50%;transition:left .2s}.system-scale span[data-position=start]{left:5%}.system-scale span[data-position=middle]{left:46%}.system-scale span[data-position=end]{left:88%}
@keyframes float-orbit{to{transform:rotate(360deg)}}
@media(max-width:900px){.app{padding-top:10px}.app-bar{grid-template-columns:1fr auto;padding:8px 10px}.brand-button small{display:none}.app-actions #progress{display:none}.primary-nav{position:fixed;z-index:40;right:8px;bottom:max(8px,env(safe-area-inset-bottom));left:8px;display:grid;grid-template-columns:repeat(4,1fr);gap:4px;padding:6px;border:1px solid #5b486c33;border-radius:17px;background:#fffdf8f5;box-shadow:0 8px 28px #34264a30;backdrop-filter:blur(14px)}.primary-nav button{display:grid;gap:1px;justify-items:center;min-height:50px;padding:4px 3px;font-size:.64rem}.primary-nav button>span{font-size:1rem}.route-view{padding:15px 0 90px}.hub-hero{grid-template-columns:1fr;padding:28px 22px}.quest-orbit{width:220px;height:220px}.quest-orbit>strong{inset:50px}.journey-grid{grid-template-columns:1fr}.journey-card p{min-height:0}.lab-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.browser-controls{grid-template-columns:1fr}.artifact-grid,.pinned-grid,.source-grid{grid-template-columns:1fr}.journey-hero{padding:25px 20px}.workspace-toolbar{align-items:flex-start}.workspace-toolbar>span{display:none}.workspace-toolbar>div{display:grid;grid-template-columns:1fr 1fr}.evidence-sorter label{grid-template-columns:1fr}.lighting-scene{height:140px}.section-heading{align-items:flex-start}.colorlab-smartphone .app,.colorlab-tablet .app{padding-bottom:92px}.colorlab-smartphone .jke-platform-bar{margin-bottom:76px}}
@media(max-width:520px){.app{padding-right:8px;padding-left:8px}.brand-button>span:first-child{font-size:1.5rem}.brand-button strong{font-size:.9rem}.app-actions .icon-button{width:38px;height:38px}.hub-hero h1,.view-heading h1,.journey-hero h1{font-size:2rem}.hub-hero{min-height:0;border-radius:22px}.quest-orbit{display:none}.hero-actions{display:grid}.section-heading{display:grid}.journey-card-actions{display:grid}.journey-steps button{grid-template-columns:34px 28px minmax(0,1fr);padding:11px 9px}.journey-steps em{display:none}.step-marker{width:30px;height:30px}.journey-progress{display:grid}.journey-progress strong{white-space:normal}.workspace-toolbar{display:grid;grid-template-columns:1fr auto}.workspace-toolbar>div{grid-column:2}.workspace .panel-head{padding:17px}.workspace .mission-strip{margin:10px 0 -2px}.workspace .stage{padding:15px}.lab-card-grid{grid-template-columns:1fr}.lab-card{min-height:155px}.artifact-preview{height:115px}.capstone-case{height:170px}.case-target{width:68px;height:68px}.lighting-scene{grid-template-columns:1fr;height:auto}.lighting-scene div{min-height:80px}.system-scale span[data-position=end]{left:82%}}

/* Route headings receive focus for screen-reader orientation without adding a decorative box. */
.route-view h1[tabindex="-1"]:focus{outline:none}

@media(max-width:900px){.app-bar{backdrop-filter:none}}

.activity-picker{padding:clamp(16px,3vw,30px);border:1px solid #bba8c9;border-radius:30px;background:radial-gradient(circle at 8% 8%,#fff7d6,transparent 28%),radial-gradient(circle at 94% 18%,#e9ddff,transparent 29%),#f5ecdd;box-shadow:0 16px 36px #39295718}
.picker-heading{text-align:center;margin:0 auto 22px}
.picker-heading h1{margin:3px 0 5px;font-size:clamp(1.9rem,4vw,3rem);line-height:1.1}
.picker-heading>p:last-child{margin:0;color:#5c5068}
.activity-groups{display:grid;gap:12px}
.activity-group{min-width:0;overflow:hidden;border:1px solid #cfc2d4;border-radius:18px;background:#fffdf9}
.activity-group summary{display:flex;gap:12px;align-items:center;min-height:66px;padding:10px 16px;cursor:pointer;list-style:none}
.activity-group summary::-webkit-details-marker{display:none}
.activity-group summary:focus-visible,.activity-option:focus-visible{outline:3px solid #35225f;outline-offset:-3px}
.activity-group[open] summary{border-bottom:1px solid #e2d8e8;background:color-mix(in srgb,var(--journey) 8%,#fffdf9)}
.activity-group-icon{display:grid;width:40px;height:40px;flex:0 0 40px;place-items:center;border-radius:12px;background:color-mix(in srgb,var(--journey) 16%,#fff);font-size:1.4rem}
.activity-group-name{display:grid;gap:1px;min-width:0;flex:1}.activity-group-name strong{font-size:1rem}.activity-group-name small{color:#675d70;font-size:.74rem}
.activity-group-toggle{color:var(--journey);font-size:1.5rem;font-weight:700;transition:transform .2s}.activity-group[open] .activity-group-toggle{transform:rotate(180deg)}
.activity-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:12px}
.activity-option{display:flex;gap:11px;align-items:center;min-width:0;min-height:64px;padding:8px 11px;border:1px solid #ddd3e4;border-radius:13px;background:#fff;color:#342d45;text-align:left}
.activity-option:hover{border-color:var(--journey);background:#faf7ff}
.activity-swatch{display:grid;width:43px;height:43px;flex:0 0 43px;place-items:center;border:4px solid #eee6df;border-radius:50%;background:var(--paint);color:#fff;font-size:.72rem;font-weight:700;text-shadow:0 1px 3px #000}
.activity-option-name{display:grid;gap:2px;min-width:0;flex:1}.activity-option-name strong{font-size:.86rem;line-height:1.2}.activity-option-name small{overflow:hidden;color:#6d6278;font-size:.69rem;line-height:1.25;text-overflow:ellipsis;white-space:nowrap}
.activity-option-score{color:#8a5621;font-size:.72rem;font-weight:700;white-space:nowrap}
@media(max-width:600px){.activity-picker{padding:13px;border-radius:22px}.picker-heading{margin-bottom:15px}.activity-list{grid-template-columns:1fr;gap:6px;padding:8px}.activity-group summary{min-height:62px;padding:9px 11px}.activity-option{min-height:60px;padding:7px 9px}.activity-group-name strong{font-size:.91rem}}
