/* Game lobby, cartoon laboratory and digital systems. */
@media screen {
 :root{--bg:#0735a4;--panel:#09296c;--ink:#fff;--soft:#e0ecff;--accent:#ffe735;--cyan:#79ecff;--line:#658ce2;--violet:#ffe735;color-scheme:dark}
 .studio{background:radial-gradient(ellipse at 75% 0,#138dff 0,transparent 52%),repeating-linear-gradient(125deg,transparent 0 100px,#ffffff04 100px 102px),linear-gradient(155deg,#0758d4,#10266c 75%);background-attachment:fixed;color:var(--ink)}
 .studio main{max-width:1200px}
 .studio h1,.studio h2,.studio h3,.studio .lab-nav strong,.studio .studio-brand{font-family:Impact,'Arial Narrow','Franklin Gothic Medium',sans-serif;font-weight:900;text-transform:uppercase;letter-spacing:.015em}
 .studio h1{font-size:clamp(54px,8vw,104px);line-height:.98;max-width:none;transform:rotate(-2deg);transform-origin:left center;text-shadow:0 5px 0 #052065,3px 7px 0 #052065;margin:22px 0 32px}
 .studio h1 em{font-family:inherit;font-weight:inherit;color:var(--accent)}
 .studio h2{font-size:clamp(30px,4vw,48px);line-height:1.1}.studio h3{font-size:26px}.studio .lead{font-size:22px;max-width:62ch;color:white}
 .studio .eyebrow{font-family:'Segoe UI',Arial,sans-serif;font-size:13px;font-weight:800;letter-spacing:.09em;color:#a4f0ff}
 .studio .studio-header{max-width:none;padding:17px max(24px,calc((100vw - 1200px)/2));background:#071e59;border:0;border-bottom:4px solid #20c4ff;gap:24px}
 .studio .studio-brand{font-size:23px;letter-spacing:.035em}.studio-brand span{font:11px/1.6 'Segoe UI',sans-serif;letter-spacing:.07em}
 .studio .studio-header nav a{font-weight:800;color:#fff;border-radius:0;white-space:nowrap}.studio .studio-header nav a[aria-current=page]{background:var(--accent);color:#11245b;text-decoration:none;box-shadow:3px 3px 0 #020e34}
 .studio .primary,.studio button{background:var(--accent);color:#102052;border:2px solid #fff27a;border-radius:0;font-weight:850;box-shadow:4px 4px 0 #041c59;min-height:46px;padding:12px 19px;text-decoration:none}
 .studio button:disabled{background:#b6c4e3;color:#243b69;box-shadow:none;opacity:.65}.studio button:hover:not(:disabled),.studio .primary:hover{background:#fff482;color:#102052}
 .studio a:focus-visible,.studio button:focus-visible,.studio select:focus-visible,.studio summary:focus-visible{outline:3px solid white;outline-offset:5px}
 .studio .studio-hero,.studio .intro{padding:48px 0 32px}.studio .studio-hero{display:block;border:0}.studio .hero-actions{gap:24px}
 .studio .studio-section{padding:30px 0}.studio .route-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:28px}
 .studio .route-grid>a{display:flex;flex-direction:column;gap:12px;min-height:210px;padding:28px 24px;border:2px solid #76b9ff;border-top:7px solid #47dcff;border-radius:0;background:linear-gradient(135deg,#075bb8,#072863);box-shadow:6px 6px 0 #061c58;text-decoration:none;transform:none;transition:none}
 .studio .route-grid>a:nth-child(3n+2){border-top-color:#ffe735;background:linear-gradient(135deg,#4731a5,#152d70)}
 .studio .route-grid>a:nth-child(3n){border-top-color:#f18eff;background:linear-gradient(135deg,#56318c,#172965)}
 .studio .route-grid h3{font-size:28px;line-height:1.13;text-decoration:none;margin:0;color:white}.studio .route-grid p{font-size:17px;line-height:1.6;margin:0;color:#e0ecff}.studio .route-grid>a:hover{border-color:var(--accent);transform:translateY(-3px)}
 .studio .help-banner{background:#071f60;border:2px solid #62a5f2;border-left:8px solid var(--accent);border-radius:0;padding:28px 32px;margin:38px 0}.studio .help-banner h2{font-size:34px}
 .studio .lab-nav{gap:12px}.studio .lab-nav a{background:#08245f;border:2px solid #739aef;border-radius:0;padding:18px 14px;min-height:104px;box-shadow:4px 4px 0 #061b52}.studio .lab-nav span{color:#e0ecff;font-size:12px}.studio .lab-nav strong{font-size:24px;color:white}
 .studio .lab-nav a[aria-current=true]{background:var(--accent);border-color:#fff17a;transform:translateY(-4px)}.studio .lab-nav a[aria-current=true] strong,.studio .lab-nav a[aria-current=true] span{color:#112052}
 .studio .lab-title{background:linear-gradient(110deg,#0756b8,#09265f);border:2px solid #81bdff;border-left:8px solid var(--accent);border-radius:0;padding:30px}.studio .lab h2{font-size:clamp(36px,5vw,58px)}
 .studio .programme-controls,.studio .reader-bar,.studio details,.studio .book,.studio .citation-card{background:#081f57;border:1px solid #6e95df;border-radius:0}
 .studio select,.studio .book-search input{background:#061b4d;color:white;border:1px solid #87a9ed;border-radius:0}.studio .programme-controls{border-top:4px solid #45dcff}
 .studio .agenda{gap:12px}.studio .agenda-row{background:#081f57;border:1px solid #6e95df;border-radius:0;padding:24px;box-shadow:4px 4px 0 #061d57}.studio .activity h4{font-size:22px;color:#fff}.studio .time{color:#a4f0ff}
 .studio .break-row{background:#083d51;border-left:7px solid #76f3c5}.studio .break-row h4{color:#a1ffda}.studio .row-detail{background:transparent;border:0}.studio .row-detail>summary{border:0;padding:8px 0;color:#c9e8ff}.studio .row-detail>p{margin:12px 0}.studio .row-prompt{color:#e0ecff}
 .studio .look,.studio .check{background:#09295e;border-radius:0;border-left:4px solid #ffe735}.studio .code-heading{background:#103d88;border-radius:0}.studio pre{background:#041432;border-radius:0}.studio .reader-mode{background:transparent;color:#ffe735;box-shadow:none;border:0}
 .studio .official-shot img{border-radius:0}.studio .book h3{font-family:Impact,'Arial Narrow',sans-serif;font-size:28px}.studio .book details{background:transparent}.studio .citation-card blockquote{background:#103571;border-radius:0}
 .studio.page-meet-ingrid .hero-copy{background:linear-gradient(140deg,#075ccd,#10226a)}.studio.page-meet-ingrid .project{border-radius:0;border:2px solid #80b3ff;background:#082863}.studio.page-meet-ingrid h1{font-size:clamp(65px,8vw,115px);line-height:.95}
 .studio .help-strip{background:#08245e;padding:20px;border-color:#70a6ff}.studio footer{border-color:#7298e3}
 .studio.qr-screen .qr-link,.studio.qr-screen .join-v2 img{background:white;box-shadow:none;transform:none;border-radius:0}
 @media(max-width:850px){.studio .route-grid{grid-template-columns:1fr 1fr}.studio .studio-header{padding:16px 22px;flex-wrap:wrap}.studio .lab-nav{grid-template-columns:repeat(5,minmax(135px,1fr));overflow-x:auto;padding:8px 5px 12px}}
 @media(max-width:600px){.studio .route-grid{grid-template-columns:1fr}.studio .route-grid>a{min-height:0;padding:23px}.studio .studio-header nav{justify-content:flex-start;gap:5px}.studio .studio-header nav a{font-size:13px}.studio h1{font-size:clamp(48px,13vw,72px)}.studio .lab-nav{grid-template-columns:1fr 1fr;overflow:visible}.studio .lab-nav a{display:block;min-height:92px;padding:13px}.studio .lab-nav span{min-width:0;display:block}.studio .lab-nav strong{font-size:22px}.studio .lab-title{padding:23px}.studio .agenda-row{padding:20px}.studio .help-banner{padding:23px}.studio .studio-hero,.studio .intro{padding-top:30px}}
 @media(prefers-reduced-motion:reduce){.studio .route-grid>a:hover{transform:none}}
}

/* System diagram layer: decoration only, never simulated buttons or status. */
@media screen {
 .studio{background-image:linear-gradient(90deg,transparent 49px,#81dcca12 49px,#81dcca12 50px,transparent 50px),linear-gradient(transparent 49px,#81dcca12 49px,#81dcca12 50px,transparent 50px),radial-gradient(ellipse at 85% 8%,#25707280,transparent 52%),linear-gradient(115deg,#163848,#102232);background-size:50px 50px,50px 50px,auto,auto}
 .studio .eyebrow,.studio .studio-brand span,.studio .lab-nav span,.studio .session-window,.studio .time,.studio .reader-bar label,.studio .programme-controls label{font-family:Consolas,'Courier New',monospace;letter-spacing:.04em}
 .studio .studio-hero,.studio .intro{background-image:linear-gradient(90deg,transparent 80%,#91d7d01c 80%,#91d7d01c 80.3%,transparent 80.3%),linear-gradient(0deg,transparent 70%,#91d7d01c 70%,#91d7d01c 70.4%,transparent 70.4%)}
 .studio .route-grid{counter-reset:module}.studio .route-grid>a{position:relative;counter-increment:module;padding-top:50px}
 .studio .route-grid>a:before{content:'0' counter(module) ' / GUIDE';position:absolute;top:15px;left:24px;font:700 12px/1.4 Consolas,'Courier New',monospace;letter-spacing:.08em;color:#243e49}
 .studio .route-grid>a:after{content:'';position:absolute;right:19px;top:17px;width:28px;height:10px;background:repeating-linear-gradient(90deg,#243e49 0 3px,transparent 3px 6px);opacity:.65}
 .studio .lab-title{position:relative;border-bottom:8px solid #101722}.studio .programme-controls,.studio .reader-bar{background-image:linear-gradient(90deg,#ffffff04 1px,transparent 1px);background-size:16px 100%}
 .studio .step{border-bottom:2px dashed #77aba9;scroll-margin-top:24px}.studio .step>.eyebrow{display:inline-block;border:1px solid #81b4b0;padding:5px 10px;background:#142f3c}
 .studio .code-heading{font-family:Consolas,'Courier New',monospace;border-top:4px solid #a995cd}.studio pre{box-shadow:inset 5px 0 0 #78d5c6}
 .studio footer{border-top:3px solid #82b3af;font-family:Consolas,'Courier New',monospace}
 @media(max-width:600px){.studio .route-grid>a{padding-top:49px}}
}

/* Cartoon laboratory: ink outlines, equipment panels and paper task sheets. */
@media screen {
 :root{--bg:#142e3e;--panel:#17384a;--soft:#e6f4f3;--line:#91bbbd;--accent:#ffdf42;--cyan:#9ef2dc}
 .studio{background:radial-gradient(circle at 1px 1px,#a6ded21a 1px,transparent 2px) 0 0/24px 24px,linear-gradient(115deg,#163848,#102232);background-attachment:fixed}
 .studio .studio-header{background:#bbded9;border-bottom:5px solid #101722;box-shadow:0 7px 0 #0003}
 .studio .studio-brand,.studio .studio-brand span,.studio .studio-header nav a{color:#111e2e!important}
 .studio .studio-header nav a[aria-current=page]{background:#ffb43e;border:3px solid #121b29;box-shadow:3px 3px 0 #121b29}
 .studio h1{color:#b6f260;text-shadow:3px 3px 0 #101722,-2px -2px 0 #101722,6px 7px 0 #101722;-webkit-text-stroke:1px #101722}
 .studio .eyebrow{color:#aae4dd}.studio .primary,.studio button{border:3px solid #111925;background:#ffdb43;box-shadow:4px 4px 0 #111925;color:#18212d}
 .studio .studio-hero,.studio .intro{position:relative;border-bottom:3px solid #80aea8;padding-bottom:35px}
 .studio .studio-hero:after,.studio .intro:after{content:'';display:block;width:95px;height:10px;margin-top:27px;background:linear-gradient(90deg,#ff9b3e 0 27%,transparent 27% 36%,#b798ee 36% 63%,transparent 63% 72%,#b6f260 72%);border:2px solid #111925;box-shadow:3px 3px 0 #111925}
 .studio .route-grid>a,.studio .route-grid>a:nth-child(3n+2),.studio .route-grid>a:nth-child(3n){background:#c1e2dd;border:3px solid #111925;border-top:12px solid #ffaf47;box-shadow:7px 7px 0 #0b1622;color:#152a35}
 .studio .route-grid>a:nth-child(3n+2){background:#d7c9f0;border-top-color:#a278d2}.studio .route-grid>a:nth-child(3n){background:#e1edc4;border-top-color:#a9d65d}
 .studio .route-grid h3{color:#15212e;font-size:30px}.studio .route-grid p{color:#263c46}.studio .route-grid>a:hover{border-color:#ffdf42}.studio .route-grid>a:hover h3{color:#15212e}
 .studio .lab-nav a{background:#badbd5;border:3px solid #101722;box-shadow:4px 4px 0 #101722}.studio .lab-nav strong,.studio .lab-nav span{color:#172632}.studio .lab-nav a[aria-current=true]{background:#ffb43e;border-color:#101722}
 .studio .lab-title{background:#9cd3cf;border:4px solid #101722;box-shadow:7px 7px 0 #101722;color:#162937}.studio .lab-title h2,.studio .lab-title p,.studio .lab-title .lead,.studio .lab-title .eyebrow,.studio .lab-title strong,.studio .lab-title a{color:#142733}.studio .lab-title a{text-decoration:underline}
 .studio .programme-controls,.studio .reader-bar{background:#213e50;border:3px solid #111925;border-top:8px solid #a994cf;box-shadow:5px 5px 0 #111925}
 .studio .agenda-row{background:#f1f0df;border:3px solid #111925;box-shadow:5px 5px 0 #111925;color:#172936}
 .studio .agenda-row p,.studio .agenda-row li,.studio .agenda-row strong,.studio .agenda-row h4,.studio .agenda-row .time,.studio .agenda-row summary{color:#1b3440}.studio .agenda-row a{color:#194a8b;text-decoration:underline}.studio .agenda-row .row-detail{background:transparent;border:0}
 .studio .break-row{background:#cae8a5;border-left:12px solid #81ac3c}.studio .break-row h4{color:#233719}.studio .extension{background:#e3d7ef}
 .studio .help-banner{background:#213e50;border:3px solid #111925;border-left:12px solid #ffaf47;box-shadow:6px 6px 0 #111925}
 .studio details,.studio .book,.studio .citation-card{border:2px solid #101722;background:#1c3b4b}.studio .book{border-top:8px solid #a994cf;box-shadow:5px 5px 0 #111925}
 .studio .look,.studio .check{background:#234658;border-color:#ffb43e}.studio .code-heading{background:#453863}.studio pre{background:#101c28;border:2px solid #101722}
 .studio .reader-mode{background:transparent;color:#ffe735;box-shadow:none;border:0}.studio .reader-mode:hover:not(:disabled){background:#314e60;color:#ffe735}
 .studio.page-meet-ingrid .hero-copy{background:linear-gradient(135deg,#244c59,#142b3b)}.studio.page-meet-ingrid .project{background:#213e50;border:3px solid #111925;box-shadow:6px 6px 0 #111925}
 .studio .help-strip{background:#213e50;border-color:#98c5c0}.studio .official-shot img{border:3px solid #111925}.studio.qr-screen .join-v2 img{border:0}
 @media(max-width:600px){.studio .studio-header nav a[aria-current=page]{padding:5px}.studio .lab-title{padding:22px}.studio .agenda-row{padding:18px}.studio .route-grid h3{font-size:28px}}
}

/* Exhibition scale: real work sets the scene, compact controls support it. */
@media screen {
.studio main{max-width:1440px;padding-left:48px;padding-right:48px}
.studio.page-setup main,.studio.page-construct-guide main,.studio.page-github-guide main,.studio.page-javascript-construct main{max-width:1040px}
.studio .exhibition-opening{isolation:isolate;position:relative;min-height:620px;min-height:min(780px,85svh);display:flex;flex-direction:column;justify-content:center;margin:0 -48px 52px;padding:70px 64px 90px;overflow:hidden;border:0;background:#101f2c;box-shadow:0 22px 70px #0005}
.studio .exhibition-opening:before{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,#071824fa 0%,#0a1e2bef 30%,#102b3890 59%,#10233220 100%),linear-gradient(0deg,#081b2bea,transparent 48%)}
.studio .exhibition-opening:after{display:none}
.studio .exhibition-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:75% 58%;z-index:-2;filter:saturate(.8)}
.studio .exhibition-opening h1{font-size:clamp(64px,8.5vw,128px);max-width:9ch;line-height:.94;transform:none;color:#f4f5dc;-webkit-text-stroke:0;text-shadow:0 4px 18px #0008;margin:22px 0 30px}
.studio .exhibition-opening .lead{max-width:39ch;font-size:clamp(19px,2vw,25px);color:#f2f6f5;line-height:1.55}.studio .exhibition-opening .eyebrow{color:#b6efd8}
.studio .exhibition-credit{position:absolute;left:64px;bottom:25px;font:12px/1.6 Consolas,monospace;color:#e2f1ec;max-width:calc(100% - 100px)}
.studio .studio-section{padding:35px 0 65px}.studio .studio-section>h2{font-size:clamp(36px,4vw,58px)}
.studio .route-grid{gap:28px}.studio .route-grid>a{min-height:235px;padding-bottom:30px;box-shadow:7px 7px 0 #08111b}
.studio .lab{padding-top:48px;padding-bottom:70px}.studio .lab-title{padding:45px}.studio .lab-title h2{max-width:22ch;font-size:clamp(38px,4.8vw,68px)}
.studio .agenda{margin-top:35px;gap:18px}.studio .agenda-row{padding:28px;grid-template-columns:150px minmax(0,1fr)}
.studio .help-banner{margin:50px 0 65px;padding:38px}.studio .lab-switch-controls{margin:26px 0}
.studio.page-meet-ingrid main{max-width:none;padding:0}.studio.qr-screen main{padding:4vh 4vw}
@media(min-width:1600px){.studio main{max-width:1560px}.studio .exhibition-opening{min-height:760px}}
@media(max-width:850px){.studio main{padding-left:26px;padding-right:26px}.studio .exhibition-opening{margin-left:-26px;margin-right:-26px;padding:55px 35px 85px;min-height:580px}.studio .exhibition-credit{left:35px}.studio .agenda-row{grid-template-columns:1fr}.studio .lab-title{padding:28px}}
@media(max-width:600px){.studio main{padding-left:20px;padding-right:20px}.studio .exhibition-opening{margin-left:-20px;margin-right:-20px;margin-bottom:30px;padding:45px 24px 90px;min-height:560px}.studio .exhibition-opening:before{background:linear-gradient(90deg,#081a29ed,#081a2970),linear-gradient(0deg,#081a29f0,transparent)}.studio .exhibition-opening h1{font-size:clamp(58px,16vw,86px)}.studio .exhibition-credit{left:24px;max-width:calc(100% - 48px)}.studio .exhibition-image{object-position:64% center}.studio .route-grid{gap:20px}.studio .route-grid>a{min-height:0}.studio .agenda-row{padding:20px}.studio .help-banner{padding:24px}.studio .lab-title{padding:24px}}
}
@media print{.exhibition-image,.exhibition-credit{display:none!important}}

/* Reading surfaces own their palette; theme accents must not leak into tasks. */
@media screen {
.studio .lab h3,.studio .lab h4,.studio .step h2,.studio .step h3,.studio .book h3,.studio .help-banner h2{font-family:'Segoe UI',Arial,sans-serif;font-weight:700;text-transform:none;letter-spacing:normal;text-shadow:none;-webkit-text-stroke:0}
.studio .lab h3{font-size:26px;line-height:1.35}
.studio .agenda{max-width:1120px;margin-left:auto;margin-right:auto;gap:14px}
.studio .agenda-row{--ink:#172b36;--soft:#405460;--accent:#174f80;--line:#a1acae;--violet:#174f80;background:#f6f5eb;color:var(--ink);grid-template-columns:145px minmax(0,1fr);padding:22px 26px;gap:24px;border:2px solid #122735;box-shadow:3px 3px 0 #091b26}
.studio .agenda-row .activity h4{font-size:23px;line-height:1.4;color:#172b36;margin:0 0 10px}
.studio .agenda-row .time{font:600 15px/1.6 Consolas,'Courier New',monospace;color:#203e50}
.studio .agenda-row .time .elapsed{font:400 14px/1.6 'Segoe UI',Arial,sans-serif;color:#405460;margin-top:5px}
.studio .agenda-row .row-prompt{display:none}
.studio .agenda-row .row-detail{margin:0;padding:0;background:transparent;border:0}
.studio .agenda-row .row-detail>summary,.studio .agenda-row .row-detail[open]>summary{font:600 16px/1.5 'Segoe UI',Arial,sans-serif;color:#174f80;padding:8px 0;min-height:40px;border:0;text-decoration:underline;text-underline-offset:3px}
.studio .agenda-row .row-detail>summary::marker{color:#174f80}
.studio .agenda-row .row-detail>p,.studio .agenda-row p,.studio .agenda-row li{font-size:18px;line-height:1.65;color:#172b36;max-width:68ch;margin:8px 0}
.studio .agenda-row a{color:#174f80}.studio .agenda-row strong{color:#172b36}.studio .agenda-row :focus-visible{outline:3px solid #174f80;outline-offset:3px}
.studio .break-row{background:#dcecc9;border-left:7px solid #547d35}.studio .break-row h4{color:#203619}.studio .extension{background:#eee5f7}
.studio .lab-nav strong{font-family:'Segoe UI',Arial,sans-serif;font-size:19px;text-transform:none;letter-spacing:normal}.studio .lab-nav span{font-size:13px}
@media(max-width:750px){.studio .agenda-row{grid-template-columns:1fr;gap:10px;padding:20px}.studio .agenda-row .time{display:flex;flex-wrap:wrap;align-items:baseline;gap:16px}.studio .agenda-row .time .elapsed{margin:0}.studio .agenda-row .activity h4{font-size:21px}}
}

/* Align disclosure headings with their body content and contain long code. */
.studio details>h1,.studio details>h2,.studio details>h3,.studio details>h4,.studio details>h5,.studio details>h6{margin:24px 20px 18px;max-width:calc(100% - 40px);overflow-wrap:break-word;transform:none}
.studio details{min-width:0;max-width:100%}
.studio details>pre{box-sizing:border-box;min-width:0;width:calc(100% - 40px);max-width:calc(100% - 40px);overflow-x:auto}
.studio .support-section,.studio .support-detail,.studio .activity{min-width:0}
@media(max-width:600px){.studio details>h1,.studio details>h2,.studio details>h3,.studio details>h4,.studio details>h5,.studio details>h6{margin:22px 17px 16px;max-width:calc(100% - 34px)}.studio details>pre{margin-left:17px;margin-right:17px;width:calc(100% - 34px);max-width:calc(100% - 34px)}}
