/* Start page: Candy Crush level map meets Dexter's Laboratory. Motion only when the visitor allows it. */
.studio .intro.start-lab{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:40px;align-items:center;padding-bottom:40px}
.studio .intro.start-lab:after{grid-column:1/-1}
.start-lab h1{font-size:clamp(52px,7.4vw,96px);line-height:.9;margin:6px 0 14px}
.start-lab .lead{font-size:clamp(20px,2.2vw,26px);margin:0 0 18px}
.sl-how{list-style:none;margin:0 0 20px;padding:0;display:grid;gap:8px}
.sl-how li{display:flex;align-items:center;gap:12px;font-size:17px;color:#e9f1ee}
.sl-how b{display:inline-block;min-width:64px;padding:3px 8px;background:#10151f;border:2px solid #ffd23f;border-radius:999px;color:#ffd23f;font-size:15px;letter-spacing:2px;text-align:center}

.sl-rank{background:#241d3f;border:4px solid #10151f;border-radius:14px;box-shadow:6px 6px 0 #10151f;padding:14px 16px 12px;margin:0 0 20px;max-width:430px}
.sl-rank p{margin:0}
.sl-rank-label{font:700 12px/1.2 Consolas,monospace;letter-spacing:.14em;color:#c6f15b}
.sl-rank-name{font-family:Impact,'Arial Narrow',sans-serif;text-transform:uppercase;font-size:28px;color:#fff;letter-spacing:.02em;margin:4px 0 8px!important}
.sl-xp{height:20px;background:#10151f;border:3px solid #10151f;border-radius:999px;overflow:hidden}
.sl-xp span{display:block;height:100%;width:0;border-radius:999px;background:repeating-linear-gradient(45deg,#ffd23f 0 12px,#ffb300 12px 24px);transition:width .6s cubic-bezier(.3,1.6,.5,1)}
.sl-xp-text{font:700 13px/1.4 Consolas,monospace;color:#f3f0e8;margin-top:6px!important}

.studio .start-lab a.sl-go{display:inline-flex;align-items:center;gap:10px;font-size:20px;padding:16px 26px;border-radius:999px;border:4px solid #10151f;background:#ffd23f;color:#10151f;box-shadow:0 7px 0 #10151f;text-decoration:none;font-weight:900;transition:transform .15s,box-shadow .15s}
.studio .start-lab a.sl-go:hover{transform:translateY(-3px) scale(1.03);box-shadow:0 10px 0 #10151f}
.studio .start-lab a.sl-go:active{transform:translateY(5px);box-shadow:0 2px 0 #10151f}
.sl-note{font-size:15px;color:#cfe0dc;margin:18px 0 0}

/* The map: a lab wall with pipes, a checker floor and a candy path between levels. */
.sl-map{position:relative;background:#241d3f;border:5px solid #10151f;border-radius:18px;box-shadow:10px 10px 0 #10151f;padding:84px 22px 70px;overflow:hidden;
  background-image:linear-gradient(#ffffff0d 2px,transparent 2px),linear-gradient(90deg,#ffffff0d 2px,transparent 2px);background-size:40px 40px}
.sl-map:before{content:'';position:absolute;left:0;right:0;top:14px;height:12px;background:#8aa0b8;border-top:4px solid #10151f;border-bottom:4px solid #10151f}
.sl-map:after{content:'';position:absolute;left:0;right:0;bottom:0;height:44px;border-top:5px solid #10151f;
  background:linear-gradient(45deg,#a996dc 25%,transparent 25% 75%,#a996dc 75%) 0 0/40px 40px,linear-gradient(45deg,#a996dc 25%,#b7a6e3 25% 75%,#a996dc 75%) 20px 20px/40px 40px}
.sl-map-tag{position:absolute;right:16px;top:34px;margin:0;font:700 11px/1 Consolas,monospace;letter-spacing:.16em;color:#c6f15b;z-index:1}
.sl-decor{position:absolute;inset:0;pointer-events:none}
.sl-bubble{position:absolute;bottom:50px;width:14px;height:14px;border-radius:50%;background:#effbd8;border:3px solid #10151f;opacity:0}
.sl-bubble.b1{left:8%}.sl-bubble.b2{left:52%;width:10px;height:10px}.sl-bubble.b3{left:88%}.sl-bubble.b4{left:30%;width:9px;height:9px}
.sl-path{position:absolute;left:0;top:0;pointer-events:none;overflow:visible}
.sl-path .p-out{fill:none;stroke:#10151f;stroke-width:22;stroke-linecap:round}
.sl-path .p-in{fill:none;stroke:#f3f0e8;stroke-width:12;stroke-linecap:round}
.sl-path .p-dots{fill:none;stroke:#f29bcd;stroke-width:6;stroke-linecap:round;stroke-dasharray:1 22}

.studio .lab-nav.sl-levels{position:relative;display:flex;flex-direction:column;gap:22px;margin:0;padding:0;z-index:1}
.studio .sl-levels a.lv{display:flex;align-items:center;gap:14px;width:max-content;max-width:100%;min-height:0;margin-left:max(0px,calc((100% - 300px) * var(--x,0)));padding:0;background:none;border:0;box-shadow:none;color:#fff;text-decoration:none;transform:none}
.studio .sl-levels a.lv[aria-current=true]{background:none;transform:none}
.studio .sl-levels .lv-1{--c:#ff7a59;--x:.02}.studio .sl-levels .lv-2{--c:#ffd23f;--x:.62}.studio .sl-levels .lv-3{--c:#c6f15b;--x:.16}.studio .sl-levels .lv-4{--c:#6fb7ff;--x:.78}.studio .sl-levels .lv-5{--c:#f29bcd;--x:.34}
.studio .sl-levels .lv-orb{position:relative;flex:0 0 auto;display:grid;place-items:center;width:88px;height:88px;border-radius:50%;border:5px solid #10151f;box-shadow:0 7px 0 #10151f;
  background:radial-gradient(circle at 34% 28%,#ffffffcc 0 11%,transparent 12%),radial-gradient(circle at 50% 60%,var(--c) 0 62%,color-mix(in srgb,var(--c) 70%,#10151f) 100%);transition:transform .2s cubic-bezier(.3,1.8,.5,1)}
.studio .sl-levels .lv-orb b{font-family:Impact,'Arial Narrow',sans-serif;font-size:34px;line-height:1;color:#10151f}
.studio .sl-levels .lv-orb i{position:absolute;bottom:-12px;left:50%;transform:translateX(-50%);padding:2px 8px;border:3px solid #10151f;border-radius:999px;background:#fff;color:#10151f;font:900 11px/1.2 Consolas,monospace;font-style:normal;white-space:nowrap}
.studio .sl-levels a.lv:hover .lv-orb,.studio .sl-levels a.lv:focus-visible .lv-orb{transform:scale(1.1) rotate(-6deg)}
.studio .sl-levels a.lv:focus-visible{outline:4px solid #ffd23f;outline-offset:6px;border-radius:12px}
.studio .sl-levels .lv-text{display:grid;gap:2px;max-width:190px;background:#10151fe6;border:3px solid #10151f;border-radius:12px;padding:8px 12px}
.studio .sl-levels .lv-date{font:700 12px/1.3 Consolas,monospace;color:var(--c)}
.studio .sl-levels .lv-text strong{font-size:21px;line-height:1.05;color:#fff}
.studio .sl-levels .mission-nav-status{font-size:12px;color:#dfe6ef;border:0;padding:0;margin:0}
.studio .lab-nav.sl-levels .lv-stars{display:flex;gap:4px;margin-top:3px}
.studio .lab-nav.sl-levels .lv-stars i{display:block;flex:0 0 auto;width:18px;height:18px;background:#5b6b8a;clip-path:polygon(50% 0,61% 35%,98% 35%,68% 57%,79% 91%,50% 70%,21% 91%,32% 57%,2% 35%,39% 35%);transition:background .3s}
.studio .lab-nav.sl-levels .lv-stars i.on{background:#ffd23f}
.studio .sl-levels a.lv[aria-current=true] .lv-orb{box-shadow:0 7px 0 #10151f,0 0 0 6px #fff,0 0 0 11px #10151f}
.studio .sl-levels a.lv.is-next .lv-orb:before{content:'CURRENT MISSION';position:absolute;top:-30px;left:50%;transform:translateX(-50%);padding:2px 8px;background:#ffd23f;border:3px solid #10151f;border-radius:6px;color:#10151f;font:900 10px/1.3 Consolas,monospace;white-space:nowrap}
.studio .sl-levels a.lv.is-done .lv-orb:after{content:'✓';position:absolute;top:-8px;right:-8px;width:30px;height:30px;display:grid;place-items:center;border-radius:50%;background:#c6f15b;border:3px solid #10151f;color:#10151f;font:900 17px/1 Arial,sans-serif}
.studio .sl-levels a.lv.map-locked .lv-orb{filter:grayscale(1) brightness(.8)}

/* Star toast */
.sl-toast{position:fixed;left:50%;bottom:22px;z-index:60;transform:translateX(-50%);display:flex;align-items:center;gap:10px;padding:12px 20px;background:#ffd23f;border:4px solid #10151f;border-radius:999px;box-shadow:0 6px 0 #10151f;color:#10151f;font-weight:900;font-size:17px;max-width:calc(100vw - 32px)}
.sl-toast[hidden]{display:none}
.sl-toast b{font-size:24px}

/* History ticker */
.lab-legends-ticker{display:flex;align-items:stretch;margin:0 0 30px;border:4px solid #10151f;border-radius:10px;background:#10151f;overflow:hidden;box-shadow:6px 6px 0 #0a0d14}
.tk-tag{flex:0 0 auto;margin:0;padding:12px 14px;background:#ffd23f;color:#10151f;font:900 13px/1.2 Consolas,monospace;letter-spacing:.1em;display:flex;align-items:center}
.tk-window{flex:1;overflow:hidden;display:flex}
.tk-track{flex:0 0 auto;display:flex;gap:34px;margin:0;padding:12px 17px;list-style:none;white-space:nowrap}
.tk-track li{color:#e9f1ee;font-size:15px}
.tk-track b{color:#c6f15b;font-family:Consolas,monospace;margin-right:6px}

@media(prefers-reduced-motion:no-preference){
.studio .sl-levels a.lv.is-next .lv-orb{animation:sl-bob 1.6s ease-in-out infinite}
.sl-path .p-dots{animation:sl-flow 1.4s linear infinite}
.sl-bubble{animation:sl-rise 4.5s ease-in infinite}.sl-bubble.b2{animation-delay:1.2s}.sl-bubble.b3{animation-delay:2.4s}.sl-bubble.b4{animation-delay:3.3s}
.sl-toast{animation:sl-pop .45s cubic-bezier(.3,1.8,.5,1)}
.lv-stars i.pop{animation:sl-star .6s cubic-bezier(.3,1.8,.5,1)}
.tk-track{animation:sl-tick 60s linear infinite}
.lab-legends-ticker:hover .tk-track,.lab-legends-ticker:focus-within .tk-track{animation-play-state:paused}
}
@keyframes sl-bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
@keyframes sl-flow{to{stroke-dashoffset:-46}}
@keyframes sl-rise{0%{transform:translateY(0);opacity:0}10%{opacity:1}100%{transform:translateY(-420px);opacity:0}}
@keyframes sl-pop{from{transform:translateX(-50%) scale(.4)}to{transform:translateX(-50%) scale(1)}}
@keyframes sl-star{0%{transform:scale(0) rotate(-90deg)}100%{transform:scale(1) rotate(0)}}
@keyframes sl-tick{to{transform:translateX(-100%)}}
@media(prefers-reduced-motion:reduce){.tk-window{flex-wrap:wrap}.tk-track{white-space:normal;flex-wrap:wrap;gap:8px 24px}.tk-track[aria-hidden]{display:none}}
.access-no-motion .start-lab *,.access-no-motion .lab-legends-ticker *,.access-no-motion .sl-toast{animation:none!important}
.access-no-motion .tk-window{flex-wrap:wrap}.access-no-motion .tk-track{white-space:normal;flex-wrap:wrap;gap:8px 24px}.access-no-motion .tk-track[aria-hidden]{display:none}
.access-no-motion .sl-bubble{display:none}

@media(max-width:900px){
.studio .intro.start-lab{grid-template-columns:minmax(0,1fr);gap:28px}
.sl-map{box-shadow:6px 6px 0 #10151f;padding:84px 14px 64px}
}
@media(max-width:600px){
.studio .sl-levels .lv-orb{width:72px;height:72px}
.studio .sl-levels .lv-orb b{font-size:28px}
.studio .sl-levels a.lv{margin-left:max(0px,calc((100% - 270px) * var(--x,0)))}
.studio .sl-levels .lv-text{max-width:176px}
.studio .sl-levels .lv-text strong{font-size:19px}
.studio .start-lab a.sl-go{width:auto;font-size:18px}

}

/* The site's older map styles colour the selected lab differently: keep the level card readable. */
.studio .lab-nav.sl-levels a.lv[aria-current=true] .lv-text,.studio .lab-nav.sl-levels a.lv .lv-text{background:#10151fe6;color:#fff}
.studio .lab-nav.sl-levels a.lv .lv-text strong{color:#fff}
.studio .lab-nav.sl-levels a.lv .lv-date{color:var(--c)}
.studio .lab-nav.sl-levels a.lv .mission-nav-status{color:#dfe6ef;display:block}
.studio .lab-nav.sl-levels a.lv[aria-current=true] .lv-text{border-color:#ffd23f}

/* Phones: title, start button, then straight into the map. Levels zigzag left and right like a saga map. */
@media(max-width:600px){
.studio .intro.start-lab{gap:0;padding-top:26px}
.studio .intro.start-lab .sl-copy{display:contents}
.start-lab .eyebrow{order:1}
.start-lab h1{order:2;font-size:clamp(44px,14vw,64px);margin:4px 0 10px}
.start-lab .lead{order:3;font-size:19px;margin:0 0 16px}
.studio .start-lab a.sl-go{order:4;justify-self:stretch;justify-content:center;margin:0 0 22px}
.sl-map{order:5;margin:0 0 22px}
.sl-rank{order:6;max-width:none;margin:0 0 16px}
.sl-how{order:7;margin:0 0 6px}
.sl-note{order:8;margin:10px 0 0}
.studio .intro.start-lab:after{order:9}
.sl-rank-name{font-size:24px}
.sl-xp-text{font-size:12px}
.sl-how li{font-size:16px}

.sl-map{padding:78px 10px 60px;border-radius:14px}
.sl-map-tag{left:12px;right:12px;top:32px;font-size:10px;letter-spacing:.1em;text-align:center}
.studio .lab-nav.sl-levels{gap:20px}
.studio .sl-levels a.lv{width:100%;max-width:none;margin-left:0;gap:10px}
.studio .sl-levels a.lv-2,.studio .sl-levels a.lv-4{flex-direction:row-reverse}
.studio .sl-levels a.lv-1,.studio .sl-levels a.lv-3,.studio .sl-levels a.lv-5{padding-left:4px}
.studio .sl-levels a.lv-2,.studio .sl-levels a.lv-4{padding-right:4px}
.studio .sl-levels .lv-orb{width:70px;height:70px}
.studio .sl-levels .lv-orb b{font-size:27px}
.studio .sl-levels .lv-text{flex:0 1 auto;min-width:0;max-width:calc(100% - 84px);padding:8px 10px}
.studio .sl-levels .lv-text strong{font-size:19px}
.studio .sl-levels .lv-date{font-size:11px}
.studio .lab-nav.sl-levels a.lv .mission-nav-status{font-size:12px}
.studio .sl-levels a.lv.is-next .lv-orb:before{top:-27px}

.lab-legends-ticker{flex-direction:column}
.tk-tag{padding:8px 12px;font-size:11px}
.tk-track{padding:10px 14px}
}
.studio .sl-map .sl-map-tag{white-space:nowrap}
@media(max-width:600px){.studio .sl-map .sl-map-tag{font-size:12px;letter-spacing:.14em}.sl-tag-more{display:none}}
.sl-xp-text{white-space:pre-line}

/* Progress token travels to the next mission when a lab is completed. */
.sl-player{position:absolute;z-index:3;pointer-events:none;transform:translate(-50%,-100%);padding:5px 10px;background:#c6f15b;color:#10151f;border:3px solid #10151f;border-radius:4px;font:900 12px/1.2 Consolas,monospace}
.studio .sl-levels a.lv.is-next .lv-orb:before{display:none}
.studio .sl-levels a.lv.map-locked .lv-text{border-style:dashed;opacity:.75}
.studio .sl-levels a.lv.map-locked .lv-orb:after{content:'LOCKED';position:absolute;inset:auto -5px -14px;padding:4px;background:#d9dfeb;border:2px solid #10151f;color:#10151f;font:800 11px/1.3 Consolas,monospace;text-align:center}
@media(prefers-reduced-motion:no-preference){.sl-player{transition:left .8s ease-in-out,top .8s ease-in-out}.studio .sl-levels a.lv.is-next .lv-text{border-color:#c6f15b}}
.access-no-motion .sl-player,.access-calm .sl-player{transition:none!important}
.access-contrast .studio .sl-player{background:#111!important;color:#fff!important}

.studio .studio-header nav .lab-sound-toggle{min-height:44px;padding:8px 12px;border:2px solid #a4b5bd;border-radius:4px;background:#102630;color:#eff5f2;font:700 14px/1.4 Consolas,monospace;cursor:pointer}
.studio .studio-header nav .lab-sound-toggle[aria-pressed=true]{border-color:#c6f15b;color:#c6f15b}
.studio .studio-header nav .lab-sound-toggle:focus-visible{outline:3px solid #ffd23f;outline-offset:3px}

/* A star reward already announces the unlocked step. Show one toast at a time. */
body:has(.sl-toast:not([hidden])) .lab-motion-status.show{opacity:0}
.studio .sl-levels a.lv-2 .lv-text strong{font-size:17px;line-height:1.15;white-space:normal;overflow-wrap:normal;max-width:100%}
.studio .sl-levels .lv-2 .lv-learning-order{display:block;color:#edf4dd;font:600 12px/1.4 system-ui,sans-serif;white-space:normal;margin:4px 0}.studio .sl-levels a.lv-2 .lv-text strong{font-size:19px}
