
:root{font-family:Inter,system-ui,sans-serif;color:#eaf4f7;background:#07131d}
*{box-sizing:border-box}body{margin:0;background:linear-gradient(#07131d,#0b1d28);min-height:100vh}
.va-shell{max-width:900px;margin:auto;padding:12px}.va-head{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-bottom:10px}
.va-head h1{font-size:1.05rem;margin:0}.va-head small{color:#9bb4c2}.va-card{background:#102635;border:1px solid #31556a;border-radius:14px;padding:12px;margin-bottom:10px}
.va-stage{display:grid;grid-template-columns:minmax(240px,1.1fr) minmax(220px,.9fr);gap:12px}
.va-visual{min-height:300px;background:#091a24;border:1px solid #29485b;border-radius:14px;display:grid;place-items:center;position:relative;overflow:hidden}
.va-controls{display:grid;gap:7px;align-content:start}.va-btn{border:1px solid #3b657c;background:#153449;color:white;border-radius:10px;padding:10px;text-align:left;cursor:pointer}
.va-btn:hover,.va-btn.active{border-color:#79d5b7;background:#16483c}.va-btn.done:before{content:"✓ ";color:#8fe0c4}
.va-result{min-height:62px;border-left:4px solid #77c9aa;background:#0b211c;padding:9px 10px;border-radius:8px;line-height:1.35}
.va-body{width:180px;height:270px;position:relative}.va-body .head{position:absolute;width:62px;height:62px;border:3px solid #91b9ca;border-radius:50%;left:59px;top:5px}
.va-body .torso{position:absolute;width:100px;height:110px;border:3px solid #91b9ca;border-radius:45px 45px 24px 24px;left:40px;top:68px}
.va-body .limb{position:absolute;background:#91b9ca;border-radius:8px}.va-body .armL{width:18px;height:110px;left:22px;top:78px;transform:rotate(8deg)}.va-body .armR{width:18px;height:110px;right:22px;top:78px;transform:rotate(-8deg)}
.va-body .legL{width:20px;height:105px;left:55px;top:170px;transform:rotate(3deg)}.va-body .legR{width:20px;height:105px;right:55px;top:170px;transform:rotate(-3deg)}
.hotspot{position:absolute;border:2px solid #5b8aa1;background:rgba(25,67,87,.72);color:#fff;border-radius:999px;padding:5px 7px;font-size:.65rem;cursor:pointer}.hotspot:hover,.hotspot.active{border-color:#ffd36a;background:#694f16}
.va-chest{width:260px;height:260px;position:relative;border-radius:45% 45% 30% 30%;border:3px solid #789fb3;background:radial-gradient(ellipse at center,#17384a,#0a1b26)}
.lung{position:absolute;width:86px;height:145px;top:58px;border:2px solid #6faec6;background:rgba(64,143,171,.18);border-radius:45% 45% 55% 55%}.lung.left{left:35px}.lung.right{right:35px}.lung-field{position:absolute;width:52px;height:45px;border-radius:50%;border:1px dashed #a7d4e5;background:rgba(255,255,255,.04);cursor:pointer}.lung-field.active{background:rgba(126,224,190,.25);border-color:#8fe0c4}
.va-abdomen{width:270px;height:250px;border:3px solid #789fb3;border-radius:45px;background:#102a38;display:grid;grid-template-columns:1fr 1fr;overflow:hidden}.quad{display:grid;place-items:center;border:1px solid #355b70;cursor:pointer;font-weight:800}.quad:hover,.quad.active{background:#21475a}
.va-csm{display:flex;gap:28px;align-items:center;justify-content:center}.foot{width:115px;height:210px;border:3px solid #82aabc;border-radius:60px 60px 35px 35px;position:relative;background:#102a38}.pulse-dot{position:absolute;width:18px;height:18px;border-radius:50%;background:#d75959;left:20px;top:120px;animation:pulse 1s infinite}.toe{position:absolute;bottom:14px;left:26px;font-size:2rem}@keyframes pulse{50%{transform:scale(1.4);opacity:.55}}
.cap-nail{width:95px;height:145px;border-radius:50px 50px 20px 20px;background:#dca7a0;border:3px solid #f0c8c0;position:relative}.cap-nail:after{content:"";position:absolute;width:60px;height:78px;left:15px;top:16px;border-radius:30px;background:#efc6c2}.cap-nail.pressed:after{background:#f3eeee}
.va-airway{font-size:4.5rem;text-align:center}.sound-chip{display:inline-block;border:1px solid #51788d;border-radius:20px;padding:5px 9px;margin:3px;font-size:.7rem}.meter{height:10px;background:#203b49;border-radius:10px;overflow:hidden}.meter i{display:block;height:100%;width:35%;background:#8fe0c4}
.va-stroke-face{font-size:7rem;line-height:1}.arms{display:flex;gap:16px;justify-content:center;font-size:4rem}.drift{transform:rotate(18deg) translateY(18px)}
@media(max-width:700px){.va-stage{grid-template-columns:1fr}.va-visual{min-height:260px}.va-shell{padding:8px}}

/* ===== Visual sensory realism 2.318 ===== */
.va-chest{animation:chestBreathe var(--breath-duration,3.2s) ease-in-out infinite;transform-origin:center 80%}
@keyframes chestBreathe{0%,100%{transform:scaleY(1) scaleX(1)}50%{transform:scaleY(1.035) scaleX(1.025)}}
.lung-field.listening{box-shadow:0 0 0 4px rgba(143,224,196,.18),0 0 22px rgba(143,224,196,.4);animation:listenPulse .7s infinite alternate}
@keyframes listenPulse{to{transform:scale(1.08)}}
.toe.wiggle{animation:toeWiggle .22s 4 alternate}@keyframes toeWiggle{to{transform:rotate(16deg) translateX(4px)}}
.cap-nail.refill:after{animation:nailRefill .8s ease-out}@keyframes nailRefill{from{background:#f5eeee}to{background:#efc6c2}}
.va-airway.speaking{animation:airwaySpeak .18s 4 alternate}@keyframes airwaySpeak{to{transform:scale(1.08)}}
.face-droop{transform:rotate(5deg);filter:saturate(.85)}
.va-result.saved{display:flex!important;align-items:center;justify-content:space-between;gap:12px;border-left-color:#8fe0c4;background:#0b2b24}
.va-result.saved strong{font-size:.72rem}.va-result.saved span{font-size:.9rem;font-weight:900;color:#8fe0c4}

.quad.tender{animation:tenderPulse .35s 2;border-color:#e57b75!important;background:#5a2626!important}@keyframes tenderPulse{50%{transform:scale(.96)}}
.va-abdomen.pelvic-alert{box-shadow:0 0 0 4px rgba(229,123,117,.22),0 0 24px rgba(229,123,117,.22)}
.hotspot.abnormal{border-color:#ef8a7d!important;background:#6a2929!important;animation:tenderPulse .35s 2}
