@import url('/style.css');
:root{--lab-ink:#2e2924;--lab-paper:#f9edcf;--lab-red:#a63e32;--lab-gold:#d6a34e}
body.cartoon-laboratory{background:#f1e4c5;color:var(--lab-ink);font-family:Georgia,'Times New Roman',serif}
.cartoon-laboratory .masthead{display:none}.lab-header{max-width:1100px;margin:0 auto;display:flex;align-items:center;gap:20px;padding:24px 18px 18px;border-bottom:2px solid #342d23}
.lab-brand{font-size:31px;font-weight:bold;color:var(--lab-ink);text-decoration:none;line-height:1}.lab-brand span{display:block;font-size:13px;font-style:italic;margin-top:7px;color:#9a4b30;font-weight:normal}
.lab-badge{font:700 10px system-ui;letter-spacing:1.2px;margin-left:auto;border:1px solid #ae9469;padding:9px 12px;border-radius:40px}.lab-original{font:12px system-ui;color:#654c37;white-space:nowrap}
.lab-tools{position:sticky;top:0;z-index:30;max-width:1100px;margin:18px auto 4px;padding:10px 18px;display:flex;align-items:flex-end;gap:10px;flex-wrap:wrap;background:#fff4da;border:1px solid #bda078;border-bottom:3px solid #5a4130;border-radius:9px}
.lab-choice{display:grid;gap:7px;min-width:280px;flex:1}.lab-choice label{font:700 11px system-ui;letter-spacing:1px;text-transform:uppercase;color:#865137}
#lab-scene{width:100%;padding:12px;background:#fffaf0;border:1.5px solid #766043;border-radius:5px;color:#30281f;font:14px system-ui}
.lab-buttons{display:flex;gap:7px;flex-wrap:wrap}.lab-buttons button,.lab-gallery button{cursor:pointer;padding:12px 11px;background:#342b23;border:1px solid #342b23;border-radius:5px;color:#fff1ce;font:700 11px system-ui;min-height:42px}
.lab-buttons button:disabled{opacity:.45;cursor:wait}#lab-freeze[aria-pressed=true]{background:var(--lab-red)}#lab-cast{color:#3b3027;background:#ebd7aa}
#lab-status{width:100%;margin:0;font:12px system-ui;color:#78573a;line-height:1.5}
.cartoon-laboratory main{max-width:1100px}.cartoon-laboratory .heading{display:none}.cartoon-laboratory .heading h1{font-family:Georgia,serif;font-size:42px;letter-spacing:-1px}.cartoon-laboratory .heading>p{font-size:14px}
.cartoon-laboratory .arcade{scroll-margin-top:112px;border:3px solid #352920;border-radius:12px;box-shadow:0 9px 0 #bdaa80,0 20px 45px #66503920;overflow:hidden;background:#382b25}
.cartoon-laboratory .stage{aspect-ratio:2/1;height:auto;min-height:0;background:#e8d6b2}
.cartoon-laboratory canvas{image-rendering:auto!important}.cartoon-laboratory #game{image-rendering:auto!important;outline:none}
.cartoon-laboratory .hud{background:#302924;color:#ffeac4;border-bottom:2px solid #ceb16c}.cartoon-laboratory .hud-label{color:#e6c797}.cartoon-laboratory #hearts{color:#f28665}.cartoon-laboratory .hud-button{color:#ffedc9}
.cartoon-laboratory .scene-label{background:#fff3d9e8;color:#64402c;border:1px solid #9f7b4e;font-family:Georgia,serif;font-weight:bold;border-radius:20px;box-shadow:0 2px 4px #39291c25}
.cartoon-laboratory .speech{background:#fff8e8;border:2px solid #372a21;color:#382d22;border-radius:15px;font-family:Georgia,serif;font-size:14px;line-height:1.45;box-shadow:3px 4px 0 #49362730}
.cartoon-laboratory .speech:after{background:#fff8e8;border-color:#372a21}
.cartoon-laboratory .overlay{background:#f6ead23b;backdrop-filter:blur(2px)}.cartoon-laboratory .intro-card{background:#fff3d9ed;border:2px solid #634b31;border-radius:12px;box-shadow:7px 7px 0 #49372633;padding:25px}
.cartoon-laboratory .intro-card h2{font-family:Georgia,serif;font-size:42px}
.cartoon-laboratory .clip-controls{background:#332a22e8;border:1px solid #debb74;border-radius:20px;color:#ffefd1}
.cartoon-laboratory .touch-controls{background:#f2dfbb;border-color:#826446}.cartoon-laboratory .touch-controls button{border-radius:8px;background:#fff5dc;border-color:#826447;box-shadow:0 3px 0 #a18760;color:#453021}
.cartoon-laboratory .touch-controls .belly-button{background:#a84636;color:#fff2d2;border-color:#77332b}.cartoon-laboratory .route{background:#eee2c5}
.cartoon-laboratory .rpg-dialogue{background:#fff6e2;border-top:2px solid #997048;border-bottom:1px solid #bba17a;font-family:Georgia,serif}
.cartoon-laboratory .rpg-dialogue canvas{background:#efe1c2;border-color:#806146;border-radius:9px}.cartoon-laboratory .rpg-dialogue strong{color:#a54c31}.cartoon-laboratory .rpg-dialogue p{color:#3f3228;font-size:17px;line-height:1.5}
.cartoon-laboratory .rpg-dialogue button{background:#934535;color:#fff4d8;border-color:#633023}.cartoon-laboratory .rpg-cast{background:#f0e4c9;border-color:#b6a079}.cartoon-laboratory .rpg-cast span{background:#fff8e7;color:#4a3628;border-color:#b0986e}
.cartoon-laboratory .rpg-cast .is-speaking{background:#a84836;color:#fff3d8}
.cartoon-laboratory .rpg-name-tag{background:#fff5dce8;border:1px solid #98734d;color:#382c22;box-shadow:0 2px 3px #39291c22;border-radius:5px;font-weight:bold;font-size:12px}
.cartoon-laboratory .coast-atlas,.cartoon-laboratory .field-notes{display:none}.cartoon-laboratory .below-game{margin-top:22px}.cartoon-laboratory .stamp{font-size:9px}
.lab-loading{position:fixed;z-index:1500;inset:0;display:grid;place-items:center;background:#f7eacd}.lab-loading[hidden]{display:none}.lab-loading>div{text-align:center;width:min(420px,90vw)}.lab-loading h2{font:italic bold 40px Georgia;margin:13px}.lab-loading p{font:14px system-ui}.lab-loading progress{width:260px;height:12px;accent-color:#a64332}.lab-reel{display:inline-block;font-size:72px;color:#a64332;animation:lab-spin 3s linear infinite}@keyframes lab-spin{to{transform:rotate(360deg)}}
.lab-gallery{max-width:1100px;margin:28px auto;padding:25px 20px;border:2px solid #725439;background:#fff1d1;border-radius:10px}.lab-gallery[hidden]{display:none}
.lab-gallery-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.lab-gallery-heading span{font:700 11px system-ui;letter-spacing:2px;color:#9a5232}.lab-gallery h2{font:italic bold 32px Georgia;margin:6px 0 20px}
#lab-character-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(135px,1fr));gap:12px}.lab-character{border:1px solid #b5a07b;background:#faeac7;border-radius:9px;overflow:hidden;text-align:center}.lab-character canvas{width:100%;height:160px}.lab-character strong{display:block;font:700 14px Georgia;padding:8px 4px 12px;background:#fff6df}
.lab-gallery p{font:12px system-ui;color:#735236;line-height:1.5}
.cartoon-laboratory .arcade .hud{background:#302924}.cartoon-laboratory .local-panel{background:#fff2d5;border:2px solid #67472c;color:#463021;border-radius:10px}.cartoon-laboratory .local-panel h3{font-family:Georgia,serif}.cartoon-laboratory .postcard-preview{image-rendering:auto}.cartoon-laboratory .postcard-dialog{background:#fff2d5;color:#3d2d22}
.lab-gallery{scroll-margin-top:128px}
@media(max-width:700px){.cartoon-laboratory .stage{aspect-ratio:4/3}.cartoon-laboratory .arcade{scroll-margin-top:245px}.lab-gallery{scroll-margin-top:245px}.lab-tools{gap:7px;padding:10px 12px}.lab-choice label{font-size:9px}.lab-buttons button{padding:9px;min-height:36px;font-size:10px}#lab-status{font-size:10px}}
.cartoon-laboratory footer{font:12px system-ui}.lab-reference-note{max-width:1060px;margin:22px auto;font:12px system-ui;color:#796142;line-height:1.7;padding:0 16px}
.cartoon-laboratory .interaction{bottom:3%;padding:6px 10px;border-radius:5px;font:700 10px Georgia;max-width:95%;white-space:normal;text-align:center}
.cartoon-laboratory .rpg-dialogue{display:none!important}
.cartoon-laboratory .rpg-name-layer{display:none!important}
.cartoon-laboratory .rpg-cast{font:11px Georgia;gap:4px;padding:7px}
.cartoon-laboratory .speech{min-width:0;max-width:95%;font-size:clamp(10px,1.2vw,14px)}
@media(max-width:700px){.cartoon-laboratory .stage{aspect-ratio:auto;height:320px}.cartoon-laboratory .speech{padding:8px 10px;font-size:11px}.cartoon-laboratory .scene-label{top:6px;left:7px;font-size:8px;padding:5px 8px}.cartoon-laboratory .clip-controls{padding:5px 7px;font-size:8px}.cartoon-laboratory .clip-controls button{font-size:8px}}
@media(max-width:700px){.lab-header{padding:18px 12px;gap:10px;flex-wrap:wrap}.lab-brand{font-size:26px}.lab-badge{font-size:8px;padding:6px}.lab-original{margin-left:auto}.lab-tools{margin:12px 10px;padding:13px}.lab-choice{min-width:0;width:100%;flex-basis:100%}.lab-buttons{display:grid;grid-template-columns:1fr 1fr;width:100%}.cartoon-laboratory .heading{margin:18px 0}.cartoon-laboratory .heading h1{font-size:32px}.cartoon-laboratory .heading>p{display:none}.cartoon-laboratory .rpg-dialogue p{font-size:15px}.cartoon-laboratory .speech{font-size:12px;line-height:1.3;padding:8px 10px}.cartoon-laboratory .scene-label{font-size:9px;top:7px;left:8px}.cartoon-laboratory .rpg-name-tag{font-size:10px;padding:2px 4px}.cartoon-laboratory .intro-card h2{font-size:27px}.cartoon-laboratory .intro-card{padding:12px}.lab-gallery{margin:20px 10px;padding:16px}.lab-gallery h2{font-size:26px}.cartoon-laboratory .clip-controls{font-size:9px;padding:4px 9px;bottom:8px;gap:6px}.cartoon-laboratory .clip-controls button{font-size:9px;padding:6px}.cartoon-laboratory .stamp{display:none}}
@media(prefers-reduced-motion:reduce){.lab-reel{animation:none}}
.lab-character canvas{width:100%;height:auto;aspect-ratio:9/10}
@media(max-width:700px){
 .cartoon-laboratory .arcade .stage .clip-controls{top:43px;bottom:auto;right:8px;left:auto;width:auto;height:auto;max-width:calc(100% - 16px);max-height:44px;align-items:center;flex-wrap:nowrap;padding:0;gap:5px;border-radius:8px;background:transparent;border:0}
 .cartoon-laboratory .arcade .stage .clip-controls[hidden]{display:none}
 .cartoon-laboratory .arcade .stage .clip-controls>span{display:none}
 .cartoon-laboratory .arcade .stage .clip-controls button{font-size:9px;padding:7px 9px;min-height:30px;white-space:nowrap}
 .cartoon-laboratory .arcade.is-mission-two #next-line,.cartoon-laboratory .arcade.is-mission-three #next-line{display:none}
 .cartoon-laboratory .arcade.is-mission-two .interaction{top:58px;bottom:auto;max-width:calc(100% - 24px);font-size:9px;padding:7px 10px;background:#fff0d5;border-color:#9d7245;color:#493322;box-shadow:2px 2px 0 #593b2b30}
 .cartoon-laboratory .scene-label{max-width:calc(100% - 16px)}
}


.cartoon-laboratory .arcade.is-return-ride .clip-controls,.cartoon-laboratory .arcade.is-return-ride .rpg-cast,.cartoon-laboratory .arcade.is-return-ride .rpg-dialogue{display:none!important}
/* Character menu: readable story cards, with room for animated full bodies. */
#lab-menu-cast{cursor:pointer;background:#a84932;color:#fff3d5;border:1px solid #6b3627;border-radius:5px;padding:11px 17px;font:700 13px Georgia;min-height:44px}
#lab-menu-cast:focus-visible,.lab-cast-filters button:focus-visible{outline:3px solid #d1982d;outline-offset:3px}
#lab-character-grid{grid-template-columns:repeat(auto-fit,minmax(215px,1fr));gap:18px}
.lab-character{display:flex;flex-direction:column;align-items:center;padding:0 15px 17px;background:#fff8e7;box-shadow:0 4px 0 #9f7d4320}
.lab-character canvas{width:180px;height:200px;max-width:100%;object-fit:contain;background:radial-gradient(ellipse at 50% 80%,#ead6a566,transparent 70%)}
.lab-character h3{font:bold 20px Georgia;margin:0 0 6px;color:#4c3227}
.lab-character-role{font:700 10px system-ui;text-transform:uppercase;letter-spacing:.6px;color:#aa5034}
.lab-gallery .lab-character p{font:14px/1.55 Georgia;color:#624b3b;margin:11px 0 0}
.lab-character-download{display:flex;align-items:center;justify-content:center;margin-top:16px;min-height:44px;padding:8px;border:1px solid #725439;border-radius:5px;background:#342b23;color:#fff1ce;text-decoration:none;font:700 11px system-ui;cursor:pointer}
.lab-character-download:hover{background:#9a5232}.lab-character-download:focus-visible{outline:3px solid #eaa63d;outline-offset:3px}
.lab-card-preview{width:min(92vw,580px);max-height:90vh;padding:16px;border:2px solid #725439;border-radius:12px;background:#fff6df;overflow:auto;box-sizing:border-box}
.lab-card-preview::backdrop{background:#211c17b8}.lab-card-preview img{display:block;width:100%;height:auto;margin-top:12px}.lab-card-preview button{display:block;margin-left:auto;min-height:44px;padding:10px 16px;background:#342b23;color:#fff1ce;border:0;border-radius:5px;cursor:pointer;font:700 13px system-ui}.lab-card-preview p{font:13px/1.5 system-ui;color:#624b3b}
.lab-cast-filters{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin:18px 0 22px}
.lab-cast-filters button{background:#f3e3bf;color:#4a3528;border-color:#ab8964}
.lab-cast-filters button[aria-pressed=true]{background:#a84932;color:#fff4da}
#lab-cast-count{font:12px system-ui;color:#826345;margin-left:auto}
@media(max-width:700px){#lab-character-grid{grid-template-columns:1fr 1fr;gap:10px}.lab-character{padding:0 10px 14px}.lab-character canvas{width:150px;height:167px}.lab-character h3{font-size:17px}.lab-gallery .lab-character p{font-size:13px}.lab-character-role{font-size:9px}.lab-gallery-heading{align-items:flex-start}.lab-gallery-heading button{max-width:100px;padding:9px}#lab-cast-count{width:100%;margin:4px 0 0}.lab-header{gap:12px}}
@media(max-width:350px){#lab-character-grid{grid-template-columns:1fr}}
/* Keep the health/readiness strip readable without shrinking touch targets. */
#lab-load-retry{display:block;margin:18px auto 0;padding:12px 18px;color:#fff3d5;background:#a84932;border:1px solid #6b3627;border-radius:6px;font:bold 14px Georgia;cursor:pointer}
#lab-load-retry[hidden]{display:none}
.cartoon-laboratory .arcade.is-mission-two .game-status{bottom:35px;font:700 11px/1.3 Georgia;letter-spacing:0;box-shadow:0 2px 4px #33271f30}
@media(max-width:650px){
 .cartoon-laboratory .hud{gap:9px;padding:10px 11px;height:61px}
 .cartoon-laboratory .hud-label{font-size:8px;letter-spacing:.3px}
 .cartoon-laboratory #power-label{font-size:8px}
 .cartoon-laboratory #hearts{font-size:18px}
 .cartoon-laboratory .power{width:100px}
 .cartoon-laboratory .power-track{width:57px}
 .cartoon-laboratory .hud-button{min-width:30px;height:32px}
 .cartoon-laboratory .rpg-cast span{font-size:12px;padding:4px 6px}
 .cartoon-laboratory .lab-tools{position:relative}
 .cartoon-laboratory .arcade{scroll-margin-top:15px}
 .cartoon-laboratory .lab-gallery{scroll-margin-top:15px}
}
