:root{color-scheme:light;--blue:#1267a5;--deep:#164f83;--ink:#173d64;--muted:#536d87;--line:#b5cde3;--bg:#eef4fa}*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 85% 5%,#d6eafb,transparent 45%),#eef4fa;color:var(--ink);font-family:Arial,sans-serif}header{max-width:1210px;margin:auto;padding:18px 24px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #c5d9eb}.brand{display:flex;align-items:center;gap:14px;text-decoration:none;color:var(--deep);font-size:13px;letter-spacing:1.7px;font-weight:bold}.logo-tile{display:block;background:#1267a5;padding:6px 12px;border-radius:10px;box-shadow:0 3px 0 #0a4678}.logo-tile img{width:64px;height:64px;display:block}.brand small{display:block;color:var(--muted);font-size:10px;letter-spacing:1px;margin-top:6px}button{font:inherit;cursor:pointer;min-height:48px;border:1px solid #9abbd8;background:linear-gradient(#fff,#e9f2fb);color:var(--ink);border-radius:12px;padding:13px 20px;font-weight:600;box-shadow:0 4px 0 #97b5d0,inset 0 2px 0 #ffffff;transition:transform .12s,box-shadow .12s,background .12s;touch-action:manipulation;-webkit-tap-highlight-color:transparent}button:hover{background:linear-gradient(#fff,#d9eafb);border-color:#377fb4}button:active,button.held{transform:translateY(3px);box-shadow:0 1px 0 #789cba,inset 0 2px 3px #23456630}button:focus-visible,canvas:focus-visible{outline:3px solid #196fb4;outline-offset:5px}button:disabled{opacity:.48;cursor:default;transform:none;box-shadow:none}.primary{border-color:#13558a;background:linear-gradient(#2d8ac5,#1264a2);color:white;box-shadow:0 5px 0 #0a4272,inset 0 2px 0 #70b5df}.primary:hover{background:linear-gradient(#399bd8,#1673b5)}.primary:active{box-shadow:0 1px 0 #0a4272,inset 0 2px 3px #123e6840}.secondary{margin-left:12px}#sound{font-size:12px;min-width:95px}main{max-width:1200px;padding:0 24px;margin:22px auto 40px}.eyebrow{color:var(--blue);font-size:11px;letter-spacing:2.4px;font-weight:bold}h1{font-size:clamp(42px,6vw,72px);line-height:1.05;letter-spacing:-2.5px;margin:22px 0}h1 em{font-style:normal;color:#1878b7}h2{font-size:29px;line-height:1.15;margin:16px 0}h3{font-size:18px;line-height:1.4}p{color:var(--muted);line-height:1.7}.hero{display:grid;grid-template-columns:1.12fr 1fr;gap:38px;align-items:center;min-height:530px}.lead{font-size:17px;max-width:480px}.chips{display:flex;gap:10px;margin:25px 0;flex-wrap:wrap}.chips span{padding:8px 10px;border-radius:7px;background:#e0edf8;color:#345f86;font-size:12px}.portrait{height:510px;position:relative;border:4px solid white;box-shadow:0 12px 30px #234c7520;border-radius:22px;overflow:hidden;background:linear-gradient(#d2e8f8bb,#f6fbffdd),url('stage-welcome.png') center/cover}.portrait img{height:100%;width:100%;object-fit:contain;image-rendering:pixelated}.tag{position:absolute;bottom:18px;left:18px;right:18px;padding:16px;background:#fffffff2;border:1px solid #bcd3e8;border-radius:10px;box-shadow:0 4px 0 #b8d1e8}.tag span{display:block;color:var(--blue);font-size:10px;letter-spacing:2px;margin-bottom:7px}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:28px}.card{padding:23px;background:#fff;border:1px solid #c8dceb;border-radius:14px;border-top:4px solid #247eb6;box-shadow:0 5px 0 #dde8f2}.card b{display:block;margin:12px 0}.card p{font-size:13px;margin:0}.num{font-size:11px;color:var(--blue);letter-spacing:2px}.notice{font-size:11px;color:#57738c;line-height:1.65;margin-top:22px}footer{font-size:11px;color:#59768e;text-align:center;line-height:1.8;padding:20px}.topline{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:15px 0}.progress{height:7px;background:#d4e1ee;border-radius:5px;margin:22px 0}.progress div{height:100%;background:#237bb7;border-radius:5px;transition:width .4s}.questbar{display:flex;justify-content:space-between;align-items:center;padding:17px 22px;background:#164f83;color:white;border-radius:16px 16px 0 0;border:2px solid #103d68}.questbar small{font-size:10px;letter-spacing:1.8px;color:#b9def7}.questbar strong{display:block;font-size:22px;margin-top:7px}#stars{padding:10px 15px;background:#fff;border-radius:9px;color:#165f98;font-weight:bold}.gamewrap{position:relative;border:3px solid #164f83;border-top:0;background:#dae8f5;border-radius:0 0 16px 16px;overflow:hidden;box-shadow:0 8px 0 #b6cee3}canvas{width:100%;display:block;image-rendering:pixelated;touch-action:none}.worldhint{position:absolute;top:48px;left:50%;transform:translateX(-50%);background:#fffffff0;border:1px solid #9fbdda;color:#285578;border-radius:8px;padding:7px 13px;max-width:85%;width:max-content;font-size:11px;text-align:center;box-shadow:0 3px 0 #a8bfd360;pointer-events:none}.controls{display:flex;justify-content:space-between;align-items:center;gap:22px;margin:25px 0 15px;padding:18px 26px;border:1px solid #c6d9e9;border-radius:18px;background:#e1edf7;box-shadow:inset 0 2px 0 white}.control-group{display:flex;align-items:center;gap:22px}.control-label{font-size:10px;letter-spacing:2px;color:#4d7090;font-weight:bold}.dpad{display:grid;grid-template-columns:repeat(3,48px);grid-template-rows:repeat(2,46px);gap:6px;touch-action:none}.direction{padding:10px;border-radius:10px;min-height:46px;background:linear-gradient(#438dc1,#1c6299);border:1px solid #164d7b;color:#fff;box-shadow:0 4px 0 #123c65,inset 0 2px 0 #8cbde0;touch-action:none;user-select:none;-webkit-user-select:none}.direction:hover{background:linear-gradient(#4b9bd5,#1c70ac)}.direction svg{width:22px;height:22px;display:block;margin:auto;pointer-events:none}.direction.up{grid-column:2;grid-row:1}.direction.left{grid-column:1;grid-row:2}.direction.down{grid-column:2;grid-row:2}.direction.right{grid-column:3;grid-row:2}.direction.left svg{transform:rotate(-90deg)}.direction.right svg{transform:rotate(90deg)}.direction.down svg{transform:rotate(180deg)}.action-group{display:flex;gap:14px;align-items:center}.action-button{min-width:180px;display:flex;align-items:center;gap:14px;text-align:left;padding:15px 22px}.action-button small{display:block;color:#d9edfb;font-size:10px;font-weight:normal;margin-top:5px}.action-icon{font-size:28px;color:#d6efff}.route-button{font-size:12px;display:flex;gap:14px;align-items:center}.overlay{position:fixed;inset:0;z-index:20;background:#092c4bd4;display:flex;align-items:center;justify-content:center;padding:18px;backdrop-filter:blur(5px)}.missionbox{max-width:720px;width:100%;max-height:90dvh;overflow:auto;overscroll-behavior:contain;padding:28px;background:#f8fbff;border:3px solid #96bcdb;border-radius:18px;box-shadow:0 12px 0 #05254060}.speech{background:#e4eff9;border-left:4px solid #247bb6;padding:14px 18px;color:#345977;font-size:16px}.micro{font-size:12px}.options{display:grid;gap:12px;margin:22px 0}.option{display:flex;align-items:center;gap:13px;text-align:left;line-height:1.5;background:white;font-weight:normal;padding:14px}.letter{min-width:30px;min-height:30px;display:grid;place-items:center;border-radius:7px;background:#e1edf8;border:1px solid #aecae1;color:#245e8b;font-size:13px;font-weight:bold}.option.selected{border:2px solid #237bb6;background:#e4f1fc;box-shadow:0 3px 0 #6598bc}.option.selected .letter{background:#1c6fa9;color:white}.option:disabled{opacity:.8}.feedback{margin:20px 0;padding:20px;background:#e0f3ea;border:1px solid #7aaf99;border-radius:12px;color:#255e49;line-height:1.6}.feedback p{color:#365d51;margin:8px 0}.feedback.bad{background:#fff0de;border-color:#bd9c65;color:#744f22}.feedback.bad p{color:#75582f}.actions{display:flex;gap:12px;flex-wrap:wrap}.help-open{overflow:hidden}.help-step{display:flex;gap:17px;margin:20px 0}.help-step>b{width:37px;height:37px;flex-shrink:0;background:#dcecf8;color:#17659c;border-radius:9px;display:grid;place-items:center;font-size:13px}.help-step h3{margin:0;font-size:16px}.help-step p{font-size:13px;margin:7px 0 0}.helpbox .primary{width:100%;margin:12px 0 6px}.result{text-align:center;padding:28px 10px}.score{font-size:70px;font-weight:bold;color:#1878b7}.review{max-width:760px;text-align:left;margin:28px auto}.review details{border-bottom:1px solid #c5d9ea;padding:16px}.review summary{cursor:pointer}.hidden{display:none}@media(max-width:720px){header{padding:12px 16px}.logo-tile img{width:48px;height:48px}.logo-tile{padding:5px 9px}.brand{font-size:10px;gap:9px;letter-spacing:1px}.brand small{font-size:9px}#sound{padding:10px;min-width:78px}main{padding:0 14px;margin-top:14px}.hero{grid-template-columns:1fr;gap:22px}.portrait{height:290px;grid-row:1}.tag{padding:10px;bottom:10px;left:10px;right:10px;font-size:12px}.tag span{font-size:9px}.hero h1{font-size:46px;margin:15px 0}.hero .lead{font-size:15px}.cards{grid-template-columns:1fr}.topline{font-size:11px}.topline .eyebrow{font-size:9px;letter-spacing:1px}#help{font-size:11px;padding:10px;min-height:42px}.questbar{padding:14px}.questbar strong{font-size:18px}.questbar small{font-size:9px;letter-spacing:1px}.worldhint{top:27px;font-size:9px;padding:5px 9px}.gamewrap{border-width:2px}canvas{min-height:210px}.controls{padding:14px 10px;gap:10px}.control-group{gap:0}.control-label{display:none}.dpad{grid-template-columns:repeat(3,42px);grid-template-rows:repeat(2,44px);gap:4px}.direction{padding:10px;min-height:44px}.action-group{flex-direction:column;align-items:stretch;gap:9px;flex:1;max-width:190px}.action-button{min-width:0;padding:11px 13px;gap:8px;min-height:56px;font-size:13px}.action-button small{font-size:9px}.action-icon{font-size:21px}.route-button{min-height:38px;padding:9px 10px;font-size:10px;justify-content:center}.overlay{padding:10px}.missionbox{padding:20px;max-height:92dvh}h2{font-size:25px}.option{font-size:14px;padding:12px}.speech{font-size:14px}.secondary{margin-left:8px}.hero button{font-size:13px;padding:13px}.notice{font-size:10px}.help-step{gap:12px}.help-step p{font-size:13px}}@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
/* Keep the game proportional; the camera follows the nurse on small screens. */
canvas{height:auto;min-height:0;aspect-ratio:auto}.controls{padding-bottom:max(18px,env(safe-area-inset-bottom))}.missionbox{max-height:calc(100dvh - 32px)}
@media(max-width:559px){.worldhint{top:36px;font-size:10px}.gamewrap canvas{aspect-ratio:4/3}.controls{margin-top:18px}.missionbox{max-height:calc(100dvh - 20px)}}
@media(max-height:520px) and (min-width:560px){header{padding-top:7px;padding-bottom:7px}.logo-tile img{width:38px;height:38px}main{margin-top:8px}.topline{margin:8px 0}.progress{margin:10px 0}.questbar{padding:10px 18px}.questbar strong{font-size:18px}.gamewrap{max-width:780px;margin:auto}.controls{max-width:780px;margin:16px auto;padding:10px 20px}.dpad{grid-template-columns:repeat(3,42px);grid-template-rows:repeat(2,40px)}.direction{min-height:40px;padding:8px}.hero{min-height:0}.portrait{height:340px}.missionbox{max-height:calc(100dvh - 16px);padding:20px}.help-step{margin:14px 0}}
.audio-controls{display:flex;gap:8px}.audio-controls button{font-size:11px;padding:10px;min-width:78px}.action-group{flex-wrap:wrap;justify-content:flex-end}.celebration{position:fixed;inset:0;pointer-events:none;overflow:hidden;z-index:40}.celebration span{position:absolute;top:10%;left:var(--x);font-size:24px;color:#e0ba61;text-shadow:0 2px #9d7624;animation:starfall 1.3s var(--d) ease-out both}.gentle-shake{animation:gentle .25s ease-in-out}@keyframes starfall{0%{opacity:0;transform:translateY(0) rotate(0)}15%{opacity:1}100%{opacity:0;transform:translateY(65vh) rotate(var(--r))}}@keyframes gentle{25%{transform:translateX(-3px)}75%{transform:translateX(3px)}}@media(max-width:720px){.audio-controls{flex-direction:column;gap:6px}.audio-controls button{min-height:31px;padding:6px 9px;font-size:10px}.action-group{max-width:190px;flex-wrap:nowrap}header{align-items:center}}
/* Three playable stages, tangible objects and circular movement. */
.joystick-wrap{display:flex;flex-direction:column;align-items:center;gap:12px}.joystick{position:relative;width:122px;height:122px;flex-shrink:0;border-radius:50%;touch-action:none;user-select:none;background:radial-gradient(circle,#c1d7e9 0 34%,#e9f3fb 35% 65%,#bdd3e5 66%);border:2px solid #97b8d3;box-shadow:inset 0 5px 12px #3e6a8c40,0 3px 0 #a9c4da}.joystick-ring{position:absolute;inset:13px;border:1px dashed #86a8c4;border-radius:50%;pointer-events:none}.joystick-thumb{position:absolute;left:calc(50% - 25px);top:calc(50% - 25px);width:50px;height:50px;border-radius:50%;background:radial-gradient(circle at 35% 25%,#64b4e3,#17649e 68%);box-shadow:0 5px 7px #17467155,inset 0 2px #aad8f0;border:1px solid #155888;pointer-events:none}.joystick-center{position:absolute;top:calc(50% - 3px);left:calc(50% - 3px);width:6px;height:6px;border-radius:50%;background:#e2f5ff;pointer-events:none}.dragging .joystick-center{display:none}.stick-caption{font-size:9px;font-weight:bold;letter-spacing:1px;color:#476b8c}.stage-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:16px 0 24px}.stage-strip>span{display:flex;align-items:center;gap:10px;background:#e1eaf2;color:#687f95;border:1px solid #c4d5e4;border-radius:11px;padding:12px}.stage-strip b{font-size:20px}.stage-strip>span>span{font-size:12px;font-weight:bold}.stage-strip small{display:block;font-size:8px;letter-spacing:1.5px;margin-top:5px}.stage-strip .current{color:#fff;background:#1767a2;border-color:#125c94;box-shadow:0 4px #104574}.stage-strip .complete{color:#225f4b;background:#dceee5;border-color:#94b9a7}.stage-intro{display:grid;grid-template-columns:1fr 1.1fr;gap:45px;align-items:center;min-height:520px}.stage-art{height:490px;position:relative;overflow:hidden;border-radius:24px;background:linear-gradient(#d4eaff66,#d4eaffaa),url('stage-welcome.png') center/cover;box-shadow:0 8px 0 #b5cfe4;border:4px solid #fff}.stage-number{position:absolute;font-size:200px;font-weight:bold;color:#ffffffa0;left:15px;top:0}.stage-nurse{position:absolute;width:340px;height:340px;left:50%;bottom:25px;transform:translateX(-50%);background-image:url('nurse-directions.png');background-size:400% 400%;background-position:0 0;image-rendering:pixelated}.stage-art>span{position:absolute;left:15px;right:15px;bottom:15px;padding:14px;background:#fff;border-radius:10px;color:#215b88;text-align:center;font-size:13px;font-weight:bold}.stage-objectives{list-style:none;padding:0;margin:24px 0;display:grid;gap:12px}.stage-objectives li{display:flex;align-items:center;gap:12px;font-size:14px}.stage-objectives b{background:#d4e9f7;color:#1b659a;border-radius:8px;padding:7px 11px}.activitybox{max-width:920px}.activity-instruction{font-size:14px;margin:10px 0 22px}.item-tray{display:flex;gap:12px;flex-wrap:wrap;align-items:stretch}.object-card{flex:1;min-width:130px;max-width:210px;display:flex;flex-direction:column;align-items:center;gap:9px;text-align:center;background:#fff;touch-action:none;user-select:none;font-weight:normal;padding:14px 10px}.object-card svg,.paper-card svg,.prep-station svg{width:56px;height:56px;color:#1e79b1;flex-shrink:0}.object-card strong{font-size:13px;line-height:1.4}.object-card small{font-size:10px;color:#667f95}.object-card.selected{border:3px solid #217db8;background:#e3f3ff;transform:translateY(-3px)}.object-card.placed{opacity:.38;box-shadow:none}.device-detail,.record-detail{padding:17px 20px;background:#e9f1f8;border-left:4px solid #3b91c0;border-radius:6px;margin:20px 0;font-size:14px;line-height:1.6}.device-detail p,.record-detail p{margin:7px 0}.drop-bays{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.drop-bay{display:flex;flex-direction:column;min-height:110px;gap:8px;align-items:center;justify-content:flex-start;border:2px dashed #729fbf;background:#eff8ff;padding:16px;text-align:center}.drop-bay b{font-size:12px;letter-spacing:.6px}.drop-bay small{font-size:11px;color:#5d7890;font-weight:normal}.drop-bay.restricted{border-color:#b98185;background:#fbeef0}.placed-items{display:grid;gap:6px}.placed-items>span{font-size:10px;padding:6px;border-radius:5px;background:#d8eee2;color:#245b44}.activity-count{font-size:12px;text-align:right}.activity-feedback{font-size:13px;line-height:1.5;margin:18px 0;color:#256648}.activity-feedback.bad{color:#894f26}.drag-ghost{position:fixed;z-index:100;transform:translate(-50%,-50%) rotate(3deg);width:150px;pointer-events:none;opacity:.93;box-shadow:0 12px 22px #113d6a55}.case-desk,.prep-stations{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.paper-card,.prep-station{display:flex;flex-direction:column;align-items:center;gap:12px;min-height:150px;background:white}.paper-card b,.prep-station strong{font-size:13px}.paper-card small,.prep-station small{font-size:11px;color:#607c94}.paper-card.opened,.prep-station.opened{background:#e3f2e9;border-color:#81ad98}.check-seal{font-size:12px;color:#29674e}.communication-console{border:5px solid #365a79;border-radius:18px;background:#b8cddd;padding:24px;box-shadow:0 6px #718ca1}.console-screen{background:#102f46;border:4px solid #7896ac;color:#d5f3ff;padding:28px;border-radius:8px}.console-screen p{color:#e0f7ff;font-size:20px}.live-dot{display:inline-block;background:#eda775;width:9px;height:9px;border-radius:50%;margin-right:10px}.signal-bars{display:flex;align-items:end;gap:5px;height:28px}.signal-bars i{width:8px;height:14px;background:#7cc8e3;animation:signal 1s infinite alternate}.signal-bars i:nth-child(2){height:24px;animation-delay:.3s}.signal-bars i:nth-child(3){height:10px;animation-delay:.5s}.signal-bars i:nth-child(4){height:22px;animation-delay:.2s}.console-call{width:100%;margin-top:20px}.rescue-board{border:3px solid #3978a8;border-radius:12px;overflow:hidden}.rescue-board canvas{width:100%;aspect-ratio:820/350;min-height:0}.rescue-controls{display:flex;align-items:center;gap:30px;justify-content:space-between;margin-top:20px}.rescue-controls>div:last-child{flex:1}.rescue-controls p{font-size:13px}.rotate-overlay{position:fixed;inset:0;z-index:100;background:#103b63f5;color:white;display:flex;align-items:center;justify-content:center;padding:24px}.rotate-dialog{text-align:center;max-width:420px}.rotate-dialog p{color:#c3dcef;font-size:15px}.phone-rotate{width:66px;height:112px;border:5px solid #e7c26f;border-radius:15px;margin:35px auto;position:relative;transform:rotate(90deg)}.phone-rotate:after{content:'';position:absolute;left:20px;bottom:5px;width:17px;height:4px;background:#e7c26f;border-radius:4px}.rotate-dialog h2{font-size:28px}.rotate-dialog button{margin-top:20px}.orientation-tip{border:1px solid #a7c6dd;background:#e1eff8;border-radius:10px;padding:12px 16px;color:#2e6188;font-size:13px}.landscape-help{display:none}@keyframes signal{to{opacity:.35;transform:scaleY(.4)}}
@media(max-width:720px){.stage-strip{gap:5px;margin:10px 0 16px}.stage-strip>span{padding:8px 6px;gap:6px}.stage-strip b{font-size:14px}.stage-strip>span>span{font-size:9px}.stage-strip small{font-size:6px;letter-spacing:.6px}.stage-intro{grid-template-columns:1fr;gap:20px;min-height:0}.stage-art{height:240px}.stage-number{font-size:130px}.stage-nurse{height:245px;width:245px;bottom:5px}.stage-intro h1{font-size:39px}.joystick{height:110px;width:110px}.controls{gap:16px}.control-group{display:block}.activitybox{padding:18px}.item-tray{gap:9px}.object-card{min-width:100px;max-width:none;padding:11px 8px}.object-card svg{height:43px;width:43px}.object-card strong{font-size:12px}.drop-bays{gap:9px}.drop-bay{padding:12px 8px;min-height:105px}.drop-bay b{font-size:10px}.drop-bay small{font-size:9px}.case-desk,.prep-stations{grid-template-columns:1fr}.paper-card,.prep-station{min-height:85px;display:grid;grid-template-columns:50px 1fr;text-align:left}.paper-card small,.prep-station small{grid-column:2}.paper-card svg,.prep-station svg{grid-row:span 2;width:43px;height:43px}.console-screen{padding:16px}.console-screen p{font-size:16px}.communication-console{padding:15px}.rescue-controls{gap:15px}.rescue-controls .primary{font-size:12px;padding:12px}.rescue-controls .joystick{width:95px;height:95px}.rescue-controls .stick-caption{font-size:8px}.activity-instruction{font-size:13px}}
@media(max-width:599px){.gamewrap canvas{aspect-ratio:460/420}.worldhint{top:45px;max-width:90%}.stage-intro .lead{font-size:15px}}
/* Landscape phones get a dedicated game layout with large actors and edge controls. */

@media(prefers-reduced-motion:reduce){.signal-bars i,.celebration span,.gentle-shake{animation:none!important}}


.hero-sprite{height:100%;aspect-ratio:1;margin:auto;background:url('nurse-directions.png') 0 0/400% 400%;image-rendering:pixelated}


/* Unframed company emblem, enlarged while preserving the original SVG proportions. */
.logo-tile{background:transparent!important;padding:0!important;border-radius:0!important;box-shadow:none!important}.logo-tile img{width:78px;height:78px}
@media(max-width:720px){.logo-tile img{width:58px;height:58px}}


.hero-sprite{position:relative}.portrait .hero-badge{position:absolute;left:56%;top:39%;width:4%;height:4%;object-fit:contain;image-rendering:auto}
