*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;height:100%;overflow:hidden;background:#bfe9ff;font-family:"Baloo 2",system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:#2b2d42;touch-action:none;-webkit-user-select:none;user-select:none;overscroll-behavior:none}
#c{position:fixed;inset:0;width:100%;height:100%;display:block}
.hidden{display:none!important}
#hud{position:fixed;top:calc(env(safe-area-inset-top) + 8px);left:8px;right:8px;display:flex;gap:6px;flex-wrap:wrap;z-index:5}
.pill{background:#fffffff0;border:0;border-radius:999px;padding:6px 12px;font-size:15px;box-shadow:0 3px 0 #0002;font-family:inherit;color:inherit}
#stick{position:fixed;left:calc(env(safe-area-inset-left) + 24px);bottom:calc(env(safe-area-inset-bottom) + 24px);width:130px;height:130px;border-radius:50%;background:#ffffff55;border:3px solid #fff9;z-index:5;touch-action:none}
#stick.drive{background:#ffb34766}
#knob{position:absolute;left:37px;top:37px;width:56px;height:56px;border-radius:50%;background:#fff;box-shadow:0 4px 0 #0003;pointer-events:none}
#actBtn{position:fixed;right:calc(env(safe-area-inset-right) + 18px);bottom:calc(env(safe-area-inset-bottom) + 40px);max-width:52vw;padding:16px 18px;border-radius:24px;border:0;background:#ff7aa8;color:#fff;font:700 17px inherit;font-family:inherit;box-shadow:0 5px 0 #c94f7a;z-index:5;animation:pop .8s ease infinite alternate}
@keyframes pop{to{transform:scale(1.06)}}
#panel,#creator{position:fixed;inset:0;z-index:20;display:flex;align-items:flex-end;justify-content:center;background:#0004}
#creator{background:transparent;pointer-events:none}#creator .sheet{pointer-events:auto}
.sheet{position:relative;width:min(560px,100%);max-height:82vh;overflow:auto;background:#fffdf7;border-radius:28px 28px 0 0;padding:18px 18px calc(env(safe-area-inset-bottom) + 18px);box-shadow:0 -6px 30px #0003;touch-action:pan-y}
.sheet.low{max-height:55vh}
#pclose,#gquit{position:absolute;right:12px;top:12px;border:0;background:#eee;border-radius:50%;width:36px;height:36px;font-size:16px}
#gquit{position:static}
h2{margin:4px 0 10px}h2 small{font-size:14px;color:#5ac8fa}
.btn{display:block;width:100%;margin:8px 0;padding:13px;border:0;border-radius:18px;background:#e8f1ff;font:700 16px inherit;font-family:inherit;color:#2b2d42;box-shadow:0 4px 0 #0002}
.btn.primary{background:#5ac8fa;color:#fff;box-shadow:0 4px 0 #2f93c0}
.btn.small{display:inline-block;width:auto;padding:7px 12px;margin:4px;font-size:14px}
.btn:active{transform:translateY(3px);box-shadow:none}
.grid,.map{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:8px}
.card{background:#fff;border-radius:18px;padding:10px;text-align:center;box-shadow:0 3px 0 #0001;font-size:22px}
.card b{font-size:15px}.card small,.card p{font-size:13px}
.card.locked{opacity:.45;filter:grayscale(1)}
.big{font-size:56px}
.row{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:8px 0}.row span{width:90px;font-weight:700}
.sw{min-width:36px;height:36px;border-radius:12px;border:3px solid #fff;box-shadow:0 0 0 2px #ddd;background:#f3f3f3;font:600 13px inherit;font-family:inherit}
.sw.on{box-shadow:0 0 0 3px #ff7aa8}
input{font:16px inherit;padding:8px;border-radius:12px;border:2px solid #ddd;flex:1}
#game{position:fixed;inset:0;z-index:15;background:linear-gradient(#e8f7ff,#fff3f8);display:flex;flex-direction:column;padding:calc(env(safe-area-inset-top) + 8px) 12px calc(env(safe-area-inset-bottom) + 12px)}
.gtop{display:flex;align-items:center;gap:10px}.gtop b{flex:1}
#gbody{flex:1;display:flex;flex-direction:column;align-items:center;overflow:auto;text-align:center}
.sym{background:#fff;border-radius:14px;padding:8px 12px;box-shadow:0 2px 0 #0001}
.patient{position:relative;width:min(300px,80vw);height:min(260px,40vh);border-radius:50%;background:radial-gradient(#fff,#d7f2ff);display:flex;align-items:center;justify-content:center}
.patient.small{height:150px;width:180px}
.ani{font-size:min(150px,30vh);pointer-events:none}.patient.small .ani{font-size:90px}
.hot{position:absolute;width:44px;height:44px;border-radius:50%;border:3px dashed #ff4d6d;background:#ff4d6d44;animation:pulse 1s infinite;color:#fff;font-weight:900}
.hot.ok{background:#4cb963;border:3px solid #fff;animation:none}
@keyframes pulse{50%{transform:scale(1.2)}}
.shake{animation:shake .3s}@keyframes shake{25%{transform:translateX(-8px)}75%{transform:translateX(8px)}}
.opts{width:min(420px,100%)}.opt.right{background:#7ed957;color:#fff}.opt.wrong{background:#ff7a7a;color:#fff}
.tray{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-top:12px}
.tool{width:76px;height:76px;border-radius:20px;background:#fff;box-shadow:0 4px 0 #0002;font-size:34px;display:flex;flex-direction:column;align-items:center;justify-content:center;touch-action:none}
.tool small{font-size:10px}
.tool.drag{position:fixed;z-index:50;pointer-events:none;transform:translate(-50%,-50%) scale(1.2)}
.heal{position:absolute;top:10%;font-size:40px;animation:up 1s forwards}@keyframes up{to{transform:translateY(-40px);opacity:0}}
.meter{position:relative;width:min(360px,90%);height:34px;border-radius:17px;background:#ffd6e0;margin:16px 0}
.zone{position:absolute;left:40%;width:20%;height:100%;background:#7ed957;border-radius:8px}
.mark{position:absolute;top:-6px;width:10px;height:46px;margin-left:-5px;background:#2b2d42;border-radius:5px}
.win .stars{font-size:40px}.unlock{background:#fff6b0;border-radius:12px;padding:6px}
#toast{position:fixed;left:50%;top:calc(env(safe-area-inset-top) + 60px);transform:translateX(-50%);background:#2b2d42ee;color:#fff;padding:10px 16px;border-radius:16px;z-index:60;max-width:90vw;text-align:center}
#net{position:fixed;right:8px;top:calc(env(safe-area-inset-top) + 50px);background:#ffb347;color:#fff;border-radius:12px;padding:4px 10px;z-index:6;font-size:13px}
/* ===== v3 glossy chunky restyle ===== */
.pill{background:linear-gradient(#ffffff,#e9e4ff);border:2px solid #fff;box-shadow:0 3px 0 #5b2fa855,0 6px 14px #0002;font-weight:800;display:flex;align-items:center;height:38px}
.pill.cur img{width:20px;height:20px}.pill.cur{padding:4px 14px 4px 8px}
.hbtns{margin-left:auto;display:flex;gap:6px}.rb{width:40px;justify-content:center;padding:0;font-size:18px}
.badge{width:58px;height:58px;margin-top:-4px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#b58cff,#5b2fa8 70%);border:3px solid #ffd34d;color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;box-shadow:0 4px 0 #3a1a78,0 8px 16px #0003;line-height:1}
.badge span{font-size:9px;letter-spacing:1px;font-weight:800}.badge b{font-size:22px}
.btn{background:linear-gradient(#ffffff,#e6ecff);border:2px solid #fff;box-shadow:0 5px 0 #8a92c7,0 8px 14px #0002;font-weight:800;position:relative;overflow:hidden}
.btn::after{content:"";position:absolute;left:8%;right:8%;top:3px;height:40%;border-radius:14px;background:linear-gradient(#ffffffcc,#fff0);pointer-events:none}
.btn.primary{background:linear-gradient(#5fd35f,#22a34a);color:#fff;text-shadow:0 2px 0 #0003;box-shadow:0 5px 0 #157a34,0 8px 16px #0003}
#actBtn{background:linear-gradient(#ff8fc0,#e0457b);border:3px solid #fff;box-shadow:0 6px 0 #a3245a,0 10px 18px #0003;font-weight:900;text-shadow:0 2px 0 #0003}
#decBtn{position:fixed;right:12px;top:calc(env(safe-area-inset-top) + 64px);z-index:6;border:3px solid #fff;border-radius:18px;padding:8px 14px;background:linear-gradient(#ffd34d,#f39c12);color:#5a3200;font:900 15px inherit;font-family:inherit;box-shadow:0 5px 0 #b86e00}
#deco{position:fixed;left:0;right:0;bottom:0;z-index:7;background:#fffdf7f4;border-radius:24px 24px 0 0;padding:10px 10px calc(env(safe-area-inset-bottom) + 10px);box-shadow:0 -6px 24px #0003}
.drow{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.drow .btn.small{margin:2px}
.cat{display:flex;gap:8px;overflow-x:auto;padding:8px 2px;touch-action:pan-x}
.fi{flex:0 0 78px;height:84px;border-radius:18px;border:2px solid #fff;background:linear-gradient(#fff,#efe8ff);box-shadow:0 4px 0 #8a92c7;font-size:28px;display:flex;flex-direction:column;align-items:center;justify-content:center;font-family:inherit}
.fi small{font-size:10px;font-weight:700}.fi i{font-size:11px;font-style:normal;color:#b86e00;font-weight:800}.fi.on{background:linear-gradient(#bff3c4,#6fd17a)}
.card.on,.card:has(.on){box-shadow:0 0 0 3px #5b2fa8}
button.card{border:0;font-family:inherit;color:inherit;font-size:16px}
h3{margin:12px 0 4px;font-size:16px;color:#5b2fa8}
.npc{background:#f3ecff;border-radius:14px;padding:8px 12px}
.card.pat{display:flex;gap:10px;align-items:center;text-align:left}.card.pat img{width:110px;height:110px;object-fit:contain}
#queue{position:fixed;left:8px;top:calc(env(safe-area-inset-top) + 74px);z-index:5;background:#ffffffd8;border-radius:16px;padding:4px 8px;display:flex;align-items:center;gap:2px;box-shadow:0 3px 0 #0002}
#queue small{font-weight:800;font-size:10px;color:#5b2fa8;margin-right:4px}#queue img{width:34px;height:34px;object-fit:contain}
.album{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:8px}
.acard{background:linear-gradient(#fff,#efe8ff);border:3px solid #fff;border-radius:18px;box-shadow:0 4px 0 #b9a8e6;text-align:center;padding:4px 4px 6px;overflow:hidden}
.acard img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:12px}.acard b{display:block;font-size:13px}.acard small{font-size:11px;color:#777}
.acard.locked img{filter:brightness(0) opacity(.25)}
.portraits{display:flex;gap:10px;justify-content:center}
.por{flex:1;max-width:150px;border:3px solid #fff;border-radius:20px;background:linear-gradient(#efe8ff,#d9c8ff);box-shadow:0 4px 0 #9b86d6;padding:4px;font-family:inherit}
.por img{width:100%;height:120px;object-fit:contain}.por.on{background:linear-gradient(#ffe3f0,#ff9cc6);box-shadow:0 0 0 3px #e0457b,0 4px 0 #a3245a}
/* treatment */
#game{background:#2b2238;padding:calc(env(safe-area-inset-top) + 6px) 0 0}
.gtop{padding:0 10px;color:#fff}#gquit{background:#fff}
#gbody{display:block;padding:0}
.exam{position:relative;height:48vh;background:url(/art/exam-room.webp) center/cover;display:flex;align-items:flex-end;justify-content:center}
.exam .patient{width:min(340px,86vw);height:40vh;border-radius:0;background:none;align-items:flex-end}
.exam .ani{height:100%;width:100%;object-fit:contain;object-position:bottom;filter:drop-shadow(0 10px 10px #0005)}
.hp{position:absolute;left:12px;right:12px;top:8px;display:flex;align-items:center;gap:8px;color:#fff;font-weight:900;text-shadow:0 2px 0 #0006}
.bar{flex:1;height:18px;border-radius:10px;background:#0006;border:2px solid #fff;overflow:hidden}.bar i{display:block;height:100%;width:20%;background:linear-gradient(#8ef08e,#22a34a);transition:width .4s}
.tpanel{background:linear-gradient(#fffdf7,#f1eaff);border-radius:24px 24px 0 0;margin-top:-18px;position:relative;padding:10px 12px calc(env(safe-area-inset-bottom) + 12px);min-height:52vh;text-align:center}
.th{display:flex;align-items:center;justify-content:center;gap:8px;font-size:20px;color:#5b2fa8}.tlogo{height:34px}
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin:8px 0}
.stp{border-radius:16px;padding:6px 2px;font-size:11px;font-weight:800;background:linear-gradient(#fff,#e6ecff);box-shadow:0 4px 0 #8a92c7;opacity:.55}
.stp span{display:block;font-size:24px}.stp.on{opacity:1;background:linear-gradient(#ffe3f0,#ff9cc6);box-shadow:0 4px 0 #a3245a}.stp.done{opacity:1;background:linear-gradient(#c8f7c8,#6fd17a);box-shadow:0 4px 0 #157a34}
.dirt{position:absolute;width:62px;height:62px;margin:-31px;border-radius:50%;background:radial-gradient(#7a5230cc,#7a523000 70%);font-size:28px;display:flex;align-items:center;justify-content:center;touch-action:none}
.win{background:linear-gradient(#fffdf7,#f1eaff);min-height:100%;padding:16px;text-align:center}.wcard{width:min(220px,60vw);border-radius:24px;border:4px solid #fff;box-shadow:0 6px 0 #b9a8e6}

#dropBtn{position:fixed;right:calc(env(safe-area-inset-right) + 18px);bottom:calc(env(safe-area-inset-bottom) + 110px);padding:12px 16px;border-radius:20px;border:3px solid #fff;background:linear-gradient(#ffd34d,#f39c12);color:#5a3200;font:900 15px inherit;font-family:inherit;box-shadow:0 5px 0 #b86e00;z-index:6}
#radial{position:fixed;inset:0;z-index:25;pointer-events:none}
#radial.on{pointer-events:auto}
#radial .rbkg{position:absolute;inset:0;background:#0005}
#radial .ring{position:absolute;width:260px;height:260px;margin:-130px;border-radius:50%;left:50%;top:45%}
#radial .ropt{position:absolute;left:50%;top:50%;width:72px;height:72px;margin:-36px;border-radius:50%;border:3px solid #fff;background:linear-gradient(#fff,#efe8ff);box-shadow:0 5px 0 #8a92c7,0 8px 16px #0004;font:800 11px/1.1 inherit;font-family:inherit;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;pointer-events:auto;color:#2b2d42}
#radial .ropt span{font-size:22px}
#radial .rcen{position:absolute;left:50%;top:50%;width:64px;height:64px;margin:-32px;border-radius:50%;background:linear-gradient(#5b2fa8,#3a1a78);color:#fff;border:3px solid #ffd34d;font:900 12px inherit;font-family:inherit;pointer-events:auto}

#driveHud{position:fixed;inset:0;pointer-events:none;z-index:6}
#driveHud button{pointer-events:auto;border:3px solid #fff;border-radius:18px;font:900 14px inherit;font-family:inherit;color:#fff;text-shadow:0 2px 0 #0004}
#hornBtn{position:absolute;left:calc(env(safe-area-inset-left) + 16px);top:40%;width:64px;height:64px;border-radius:50%;background:linear-gradient(#ffd34d,#f39c12);color:#5a3200}
#exitCar{position:absolute;right:calc(env(safe-area-inset-right) + 16px);top:calc(env(safe-area-inset-top) + 70px);padding:10px 14px;background:linear-gradient(#ff8fc0,#e0457b)}
#steer{position:absolute;left:calc(env(safe-area-inset-left) + 12px);bottom:calc(env(safe-area-inset-bottom) + 24px);display:flex;gap:10px}
#steer button{width:72px;height:72px;border-radius:50%;background:linear-gradient(#6c7a89,#2d3436);font-size:22px}
#pedals{position:absolute;right:calc(env(safe-area-inset-right) + 12px);bottom:calc(env(safe-area-inset-bottom) + 24px);display:flex;gap:10px;align-items:flex-end}
#brakeBtn{width:78px;height:90px;background:linear-gradient(#ff7675,#d63031)}
#gasBtn{width:78px;height:110px;background:linear-gradient(#55efc4,#00b894)}
.exam .ani,.exam #ani3d{width:100%;height:100%;display:flex;align-items:center;justify-content:center}
.exam #ani3d canvas{max-width:100%;max-height:100%}
.wcard{width:180px;height:180px;margin:0 auto 8px;border-radius:24px;overflow:hidden;background:linear-gradient(#efe8ff,#d9c8ff);display:flex;align-items:center;justify-content:center}
.athumb{width:96px;height:96px;margin:0 auto;border-radius:12px;overflow:hidden;background:#efe8ff}
.card.pat #clinicPrev{width:110px;height:110px;flex:none}

#queue .qrow{display:flex;gap:6px;overflow-x:auto;padding:4px 0}
#queue .qthumb{width:56px;height:56px;border-radius:12px;overflow:hidden;background:#efe8ff;flex:0 0 auto;border:2px solid #fff;box-shadow:0 2px 8px #0003}
#queue .qthumb canvas{width:100%!important;height:100%!important;display:block}
