
:root{font-family:Arial,Helvetica,sans-serif;color:#e8ece7;background:#101e21;font-synthesis:none;--mint:#b6edb5;--muted:#a8b8b5;--gold:#f5ce88}*{box-sizing:border-box}body{margin:0;height:100dvh;display:flex;flex-direction:column;overflow:hidden}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer;color:inherit;background:#243639;border:1px solid #52605a;border-radius:7px;padding:9px 12px}button:hover:enabled{border-color:var(--mint);background:#334a43}button:disabled{opacity:.45;cursor:default}button:focus-visible,a:focus-visible{outline:3px solid #f5ce88;outline-offset:2px}a{color:inherit;text-decoration:none}header{height:53px;flex-shrink:0;margin:0 26px;border-bottom:1px solid #364441;display:flex;align-items:center;justify-content:space-between;font-size:12px}header img{display:block}.edition{letter-spacing:2px;color:var(--muted);font-size:10px}main{padding:15px 26px 8px;flex:1;min-height:0;display:flex;flex-direction:column;gap:12px;max-width:1700px;width:100%;margin:auto}.titlebar{display:flex;justify-content:space-between;align-items:center}.eyebrow{font-size:9px;letter-spacing:1.7px;color:var(--gold);font-weight:700}h1{font-size:clamp(24px,3vw,43px);margin:5px 0 0;letter-spacing:-1.5px;font-weight:500}h1 em{font-family:Georgia,serif;color:var(--mint);font-weight:400}.tools{display:flex;gap:7px;font-size:11px}.hud{display:grid;grid-template-columns:repeat(5,1fr);border:1px solid #42504b;border-radius:9px;background:#192b2d}.hud>div{padding:9px 16px;border-right:1px solid #42504b}.hud>div:last-child{border:0}small{display:block}small,.labelrow{color:var(--muted);font-size:9px;letter-spacing:1px}.hud strong{display:block;font-size:24px;color:var(--mint);margin-top:3px;font-weight:500;font-variant-numeric:tabular-nums}.workspace{display:grid;grid-template-columns:minmax(0,1fr) 345px;gap:16px;flex:1;min-height:0}.playground{position:relative;min-height:0;overflow:hidden;border:1px solid #536459;border-radius:12px;background:#23372e}.scene-label,.scene-bottom{position:absolute;left:16px;right:16px;display:flex;justify-content:space-between;gap:6px;font-size:9px;letter-spacing:1px;pointer-events:none}.scene-label{top:16px;color:#d8e5c8}.scene-label i{display:inline-block;width:6px;height:6px;border-radius:100%;background:var(--mint);margin-right:5px}.scene-bottom{bottom:14px;color:#b9c8ac;font-size:8px}canvas{width:100%;height:100%;display:block}.desk{display:flex;flex-direction:column;gap:10px;min-height:0;overflow:auto;scrollbar-width:thin}.coach{border:1px solid #aa925c;background:#353a2a;border-radius:8px;padding:12px;flex-shrink:0}.coach strong{display:block;font-size:15px;margin-top:7px;color:#ffdfa1}.coach p{font-size:12px;line-height:1.45;margin:6px 0 0;color:#e9e7cc}.cargo{padding:0 2px}.labelrow{display:flex;justify-content:space-between;gap:4px;font-size:8px;letter-spacing:.6px}.cargo h2{font-size:20px;margin:8px 0 4px}.cargo p{font-size:12px;line-height:1.4;margin:0;min-height:32px;color:#c3d1ca}.patience{height:3px;background:#3a4c48;margin:8px 0}.patience i{display:block;background:var(--gold);height:100%;width:100%}.stamps{display:grid;grid-template-columns:repeat(3,1fr);gap:5px}.stamps button{font-size:11px;text-align:left;padding:8px 6px;border-top:3px solid #d9c3a1}.stamps button:nth-child(2){border-top-color:#c8abdf}.stamps button:nth-child(3){border-top-color:#a8d7cb}.stamps b{display:inline-block;margin-right:3px;color:var(--gold)}.stamps span{display:block;font-size:8px;margin-top:5px;color:#b9c5bd}.upgrades{display:grid;gap:5px}.upgrades button{display:flex;align-items:center;justify-content:space-between;gap:8px;text-align:left;font-size:11px;padding:10px}.upgrades button span{font-size:9px;color:var(--muted);text-align:right}.receipt{font-family:Georgia,serif;font-style:italic;color:#e8d5b6;font-size:12px;line-height:1.4;margin:0;padding:10px;border-top:1px dashed #78816a;min-height:45px}.bottomline{display:flex;justify-content:space-between;gap:15px;color:#a0b0a6;font-size:9px;line-height:1.3}footer{height:35px;flex-shrink:0;display:flex;align-items:center;justify-content:space-between;margin:0 26px;font-size:10px;color:var(--muted);border-top:1px solid #364441}footer>a{font-weight:bold;color:var(--mint);font-size:14px}.intro,.result{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);padding:24px;width:min(410px,88%);text-align:center;background:#152724ee;border:1px solid #789377;border-radius:12px;box-shadow:0 12px 60px #0005}.intro h2,.result h2{font:32px Georgia,serif;color:#e6efcf;margin:12px 0}.intro p,.result p{font-size:13px;line-height:1.6;color:#c9d3c3}.primary{background:var(--mint);color:#14291e;border:0;font-weight:bold}.intro small{font-size:9px;margin-top:14px}dialog{background:#1b302d;color:#e4ebdc;border:1px solid #9cb798;border-radius:12px;max-width:560px;max-height:85dvh;line-height:1.6;font-size:14px;padding:26px}dialog::backdrop{background:#071916c9}dialog h2{font-family:Georgia,serif;color:var(--mint)}[hidden]{display:none!important}
@media(max-height:760px) and (min-width:701px){main{gap:8px;padding-top:9px}.titlebar .eyebrow{display:none}h1{font-size:29px}.hud>div{padding:6px 12px}.hud strong{font-size:20px}.desk{gap:7px}.coach{padding:8px}.coach strong{font-size:13px;margin-top:4px}.coach p{font-size:11px}.cargo h2{font-size:17px;margin:5px 0}.upgrades button{padding:7px}.receipt{font-size:11px;padding:7px}}
@media(max-width:700px){header{height:39px;margin:0 10px;font-size:10px}header img{width:88px}.edition{display:none}main{padding:7px 10px 5px;gap:7px}.titlebar .eyebrow{display:none}h1{font-size:25px;letter-spacing:-.8px}.tools{gap:4px}.tools button{font-size:9px;padding:7px 6px}.hud>div{padding:5px 7px}.hud small{font-size:7px;letter-spacing:.3px}.hud strong{font-size:18px}.workspace{display:flex;flex-direction:column;gap:7px}.playground{flex:1;min-height:115px}.desk{flex:0 0 auto;display:grid;grid-template-columns:1fr;gap:6px;overflow:visible}.coach{padding:7px}.coach .eyebrow{font-size:8px}.coach strong{font-size:12px;margin-top:3px}.coach p{font-size:10px;line-height:1.25;margin-top:4px}.cargo{position:relative}.cargo h2{font-size:15px;margin:4px 0}.cargo p{font-size:10px;min-height:0;padding-right:0}.stamps button{padding:6px;font-size:11px}.stamps span{margin-top:2px}.patience{margin:5px 0}.upgrades{grid-template-columns:repeat(3,1fr);gap:4px}.upgrades .labelrow{display:none}.upgrades button{display:block;padding:5px;font-size:9px}.upgrades button span{display:block;font-size:8px;margin-top:3px;text-align:left}.receipt{font-size:10px;min-height:26px;padding:5px;margin:0;line-height:1.25}.bottomline{font-size:8px}.bottomline>span:first-child{display:none}footer{height:26px;margin:0 10px;font-size:8px}footer>span:nth-child(2){display:none}footer>a{font-size:11px}.scene-label{top:8px;left:8px;right:8px;font-size:7px}.scene-bottom{bottom:7px;left:8px;right:8px;font-size:6px}.intro,.result{padding:12px}.intro h2,.result h2{font-size:23px;margin:5px 0}.intro p{font-size:11px;line-height:1.3;margin:6px 0}.intro .eyebrow,.intro small{display:none}.intro button{font-size:12px;padding:8px}}
@media(max-width:360px){.titlebar h1{font-size:19px;white-space:nowrap;letter-spacing:-.8px}.tools{gap:3px}.tools button{font-size:8px;padding:5px 4px}.coach p{font-size:9px}.coach strong{font-size:11px}.receipt{font-size:9px}.upgrades button{font-size:8px}.scene-bottom{font-size:5px}}
@media(max-height:500px) and (min-width:600px){header{height:31px}main{gap:5px;padding:5px 10px}.workspace{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:9px}.desk{display:flex;flex-direction:column;flex:initial;overflow:auto;min-height:0}.desk>section,.desk>.receipt{flex-shrink:0}.playground{min-height:0}.titlebar h1{font-size:22px}.hud>div{padding:3px 10px}.hud small{font-size:7px}.hud strong{font-size:16px}.coach{position:sticky;top:0;z-index:2;background:#353a2a}.coach .eyebrow{font-size:7px}.coach strong{font-size:11px}.coach p{font-size:10px}.bottomline{font-size:7px}footer{height:23px}.scene-label{font-size:7px}.scene-bottom{font-size:6px}.intro{padding:12px}.intro h2{font-size:24px}.intro p{font-size:11px}.intro small{display:none}}


.coach{position:sticky;top:0;z-index:2}
/* Reserve a separate row for the legend; canvas labels cannot collide with it. */
.playground{display:grid;grid-template-rows:minmax(0,1fr) auto}
#scene{min-height:0}
.scene-bottom{position:static;display:flex;flex-direction:column;gap:5px;padding:7px 10px;background:#1a2e27;border-top:1px solid #52654a;font-size:10px;letter-spacing:0;line-height:1.25;color:#d5dfc9}
.protein-legend{display:flex;flex-wrap:wrap;justify-content:center;gap:5px 18px}
.protein-legend>span{display:inline-flex;align-items:center;gap:5px;white-space:nowrap}
.protein-key{display:inline-block;width:14px;height:12px;flex-shrink:0;border:1px solid #eee6be;border-radius:43% 57% 35% 65% / 50% 35% 65% 50%;box-shadow:inset 2px 2px 3px #fff8}
.protein-key.secretion{background:#e2c49b}.protein-key.lysosome{background:#cba4da}.protein-key.membrane{background:#a4d6c4}
.belt-note{text-align:center;color:#b9c8ac;font-size:9px}
@media(max-width:700px){.scene-bottom{padding:4px 5px;gap:3px;font-size:9px}.protein-legend{gap:4px 9px}.protein-key{width:11px;height:10px}.protein-legend>span{gap:3px}.belt-note{font-size:8px}}
@media(max-height:500px) and (min-width:600px){.scene-bottom{font-size:8px;padding:4px;gap:3px}.protein-legend{gap:4px 7px}.protein-key{width:10px;height:9px}.belt-note{font-size:8px}}
.playground{grid-template-rows:auto minmax(0,1fr) auto}
.scene-label{position:static;padding:9px 10px;background:#20372c;font-size:9px;letter-spacing:.5px;line-height:1.2}
@media(max-width:700px),(max-height:500px){.scene-label{padding:5px 7px;font-size:7px;letter-spacing:0}}

/* Keep long office memos within the desk, including narrow portrait screens. */
.benefits{font-size:9px;line-height:1.25;letter-spacing:0;font-weight:400;margin-top:3px;color:var(--muted)}
.scene-label>span:last-child{text-align:right;overflow-wrap:anywhere}
.receipt{flex-shrink:0;max-height:112px;overflow:auto;scrollbar-width:thin}
@media(max-width:700px){.benefits{font-size:8px}.receipt{height:64px;min-height:64px}}
@media(max-width:360px){.benefits{font-size:7px}}
@media(max-width:700px) and (max-height:650px){main{gap:5px}.workspace{gap:5px}.desk{gap:4px}.receipt{height:42px;min-height:42px}.playground{min-height:95px}.coach{padding:5px}.coach p{margin-top:2px}}
