/* AMN Crew Training · Job Site worlds · shared styles */
:root{--paper:#d9e4f1;--card:#ffffff;--ink:#14213d;--ink2:#37445a;--muted:#4a5568;--rule:#b9c7d8;--navy:#0f1f3a;--you:#1d5aa6;--you-text:#174885;--you-t:#e1ebf8;--risk:#b03c08;--risk-text:#822c06;--orange:#f26a1b;--hi:#f2b81f;--hi-t:#fde6a3;--lblue:#9cc4f5;--safe:#2f6b40;--safe-t:#e2f1e6;--danger:#b3261e;--shadow:rgba(15,31,58,.18);--panel-w:400px}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--paper:#0e1a2e;--card:#16263f;--ink:#e8eef8;--ink2:#c1cde0;--muted:#aab8ce;--rule:#2a3d5e;--navy:#070f1d;--you:#7fb2ee;--you-text:#9cc4f5;--you-t:#1b3558;--risk:#f2884a;--risk-text:#f6a572;--hi-t:#4a3d12;--safe:#6fc08a;--safe-t:#163524;--shadow:rgba(0,0,0,.5);color-scheme:dark}}
:root[data-theme="dark"]{--paper:#0e1a2e;--card:#16263f;--ink:#e8eef8;--ink2:#c1cde0;--muted:#aab8ce;--rule:#2a3d5e;--navy:#070f1d;--you:#7fb2ee;--you-text:#9cc4f5;--you-t:#1b3558;--risk:#f2884a;--risk-text:#f6a572;--hi-t:#4a3d12;--safe:#6fc08a;--safe-t:#163524;--shadow:rgba(0,0,0,.5);color-scheme:dark}
*{box-sizing:border-box}
html,body{margin:0;height:100%}
body{background:var(--navy);color:var(--ink);font:16px/1.5 Inter,system-ui,-apple-system,sans-serif;overflow:hidden}
.w-app{position:fixed;inset:0;display:grid;grid-template-rows:auto 1fr;grid-template-columns:minmax(0,1fr) var(--panel-w)}
.w-top{grid-column:1/-1;background:var(--navy);color:#fff;border-bottom:3px solid var(--orange);display:flex;align-items:center;gap:14px;padding:8px max(14px,env(safe-area-inset-left));padding-right:max(14px,env(safe-area-inset-right));min-height:52px;z-index:5}
.w-top a{color:var(--lblue);text-decoration:none;font:600 12px/1.2 Jost,system-ui,sans-serif;letter-spacing:.14em;text-transform:uppercase;white-space:nowrap}
.w-top a:first-child{color:#fff}
.w-top h1{font:700 15px/1.1 "Barlow Condensed",Jost,system-ui,sans-serif;letter-spacing:.08em;text-transform:uppercase;margin:0;flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.w-top h1 small{color:var(--hi);font-weight:600;margin-left:8px}
.w-top .w-prog{font:600 12px/1 "IBM Plex Mono",ui-monospace,monospace;color:var(--lblue);white-space:nowrap}
.w-stage{position:relative;overflow:hidden;background:#9fb8cf;min-height:0;touch-action:none}
.w-stage canvas{display:block;width:100%;height:100%;outline:none}
.w-stage canvas:focus-visible{outline:3px solid var(--hi);outline-offset:-3px}
.w-labels{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.w-lab{position:absolute;left:0;top:0;transform:translate(-50%,-100%);background:rgba(15,31,58,.88);color:#fff;font:600 12px/1.2 "IBM Plex Mono",ui-monospace,monospace;padding:4px 7px;border-radius:3px;white-space:normal;width:max-content;max-width:calc(100% - 12px);box-sizing:border-box;border-left:3px solid var(--hi);transition:opacity .25s;will-change:transform}
.w-lab.warn{border-left-color:var(--orange)}
.w-lab.ok{border-left-color:#6fc08a}
.w-lab.big{font-size:14px;padding:6px 9px}
.w-pin{position:absolute;left:0;top:0;transform:translate(-50%,-50%);pointer-events:auto;width:40px;height:40px;border-radius:50%;border:2px solid #fff;background:var(--orange);color:#fff;font:700 15px/1 Jost,system-ui,sans-serif;cursor:pointer;box-shadow:0 3px 10px rgba(0,0,0,.35);display:flex;align-items:center;justify-content:center;transition:transform .2s,background .2s,opacity .25s}
.w-pin::after{content:"";position:absolute;inset:-7px;border-radius:50%;border:2px solid rgba(242,106,27,.55);animation:wpulse 2.4s ease-out infinite}
.w-pin.done{background:var(--safe)}.w-pin.done::after{border-color:rgba(47,107,64,.5)}
.w-pin.on{background:var(--you);transform:translate(-50%,-50%) scale(1.12)}
.w-pin.on::after{display:none}
.w-pin:hover{transform:translate(-50%,-50%) scale(1.12)}
.w-pin:focus-visible{outline:3px solid var(--hi);outline-offset:3px}
.w-pin span{position:absolute;left:50%;top:calc(100% + 6px);transform:translateX(-50%);background:rgba(15,31,58,.9);color:#fff;font:600 11px/1.2 Jost,system-ui,sans-serif;letter-spacing:.06em;padding:3px 6px;border-radius:3px;white-space:nowrap;opacity:0;transition:opacity .2s;pointer-events:none}
.w-pin:hover span,.w-pin:focus-visible span,.w-overview .w-pin span{opacity:1}
.w-overview .w-pin.crowd:not(:hover):not(:focus-visible) span{opacity:0}
@keyframes wpulse{0%{transform:scale(.85);opacity:1}100%{transform:scale(1.5);opacity:0}}
.w-hud{position:absolute;left:12px;bottom:12px;display:flex;gap:8px;flex-wrap:wrap;z-index:2}
.w-hud button,.w-btn{background:rgba(15,31,58,.86);color:#fff;border:1px solid rgba(255,255,255,.25);border-radius:4px;font:600 12px/1 Jost,system-ui,sans-serif;letter-spacing:.1em;text-transform:uppercase;padding:0 14px;min-height:44px;cursor:pointer;backdrop-filter:blur(4px)}
.w-hud button[aria-pressed="true"]{background:var(--you);border-color:var(--you)}
.w-hud button:focus-visible,.w-btn:focus-visible,.w-panel button:focus-visible,.w-panel a:focus-visible{outline:3px solid var(--hi);outline-offset:2px}
.w-hint{position:absolute;right:12px;bottom:12px;color:#fff;font:500 11px/1.3 "IBM Plex Mono",ui-monospace,monospace;background:rgba(15,31,58,.6);padding:6px 8px;border-radius:3px;pointer-events:none;z-index:2}
.w-caption{position:absolute;left:50%;top:14px;transform:translateX(-50%);width:min(680px,calc(100% - 24px));background:rgba(15,31,58,.9);color:#fff;border-left:4px solid var(--hi);padding:10px 14px;border-radius:3px;font:500 15px/1.4 Inter,system-ui,sans-serif;z-index:2;box-shadow:0 6px 18px rgba(0,0,0,.3);transition:opacity .3s}
.w-caption>b:first-child{color:var(--hi);font:700 11px/1 Jost,system-ui,sans-serif;letter-spacing:.16em;text-transform:uppercase;display:block;margin-bottom:4px}
.w-caption:empty{opacity:0}
.w-load{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:12px;background:linear-gradient(#0f1f3a,#1d3358);color:#fff;z-index:4;transition:opacity .6s}
.w-load.gone{opacity:0;pointer-events:none}
.w-load b{font:700 22px/1 "Barlow Condensed",Jost,sans-serif;letter-spacing:.12em;text-transform:uppercase}
.w-load i{display:block;width:200px;height:4px;background:rgba(255,255,255,.2);overflow:hidden;border-radius:2px}
.w-load i::after{content:"";display:block;height:100%;width:40%;background:var(--orange);animation:wload 1.1s ease-in-out infinite}
@keyframes wload{0%{transform:translateX(-100%)}100%{transform:translateX(250%)}}
.w-nogl{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:24px;text-align:center;color:#fff;background:#1d3358;font:500 16px/1.5 Inter,sans-serif}
/* panel */
.w-panel{background:var(--paper);border-left:1px solid var(--rule);overflow:auto;display:flex;flex-direction:column;min-height:0;overscroll-behavior:contain}
.w-sec{padding:14px 16px;border-bottom:1px solid var(--rule)}
.w-kick{font:600 11px/1.2 Jost,system-ui,sans-serif;letter-spacing:.18em;text-transform:uppercase;color:var(--risk-text);margin:0 0 4px}
.w-panel h2{font:600 26px/1.05 "EB Garamond",Georgia,serif;margin:0 0 4px;letter-spacing:-.01em}
.w-where{font:500 13px/1.3 Jost,system-ui,sans-serif;color:var(--muted);margin:0}
.w-intro p{margin:0 0 10px;color:var(--ink2);font:17px/1.45 "EB Garamond",Georgia,serif}
.w-list{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:6px}
.w-list button{width:100%;display:grid;grid-template-columns:30px 1fr auto;gap:10px;align-items:center;text-align:left;background:var(--card);color:var(--ink);border:1.5px solid var(--rule);border-radius:4px;padding:8px 10px;min-height:48px;cursor:pointer;font:600 14px/1.25 Inter,system-ui,sans-serif}
.w-list button:hover{border-color:var(--you)}
.w-list button[aria-current="true"]{border-color:var(--you);box-shadow:inset 4px 0 0 var(--you)}
.w-list .n{width:28px;height:28px;border-radius:50%;background:var(--orange);color:#fff;display:flex;align-items:center;justify-content:center;font:700 13px/1 Jost,sans-serif}
.w-list .d .n{background:var(--safe)}
.w-list small{display:block;font:500 12px/1.2 Jost,sans-serif;color:var(--muted);margin-top:2px}
.w-list .st{font:600 10px/1 Jost,sans-serif;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.w-list .d .st{color:var(--safe)}
.w-player{display:flex;align-items:center;gap:8px;margin-top:10px}
.w-player button{flex:none;width:44px;height:44px;border-radius:50%;border:0;background:var(--you);color:#fff;cursor:pointer;font:700 16px/1 system-ui;display:flex;align-items:center;justify-content:center}
.w-player button.alt{background:transparent;color:var(--you-text);border:1.5px solid var(--you-text);width:auto;border-radius:4px;padding:0 10px;font:600 11px/1 Jost,sans-serif;letter-spacing:.1em;text-transform:uppercase}
.w-player input[type=range]{flex:1;min-width:0;accent-color:var(--orange);height:44px}
.w-player output{font:600 12px/1 "IBM Plex Mono",monospace;color:var(--muted);min-width:44px;text-align:right}
.w-steps{list-style:none;margin:10px 0 0;padding:0;counter-reset:s;display:grid;gap:4px}
.w-steps li{counter-increment:s;display:grid;grid-template-columns:24px 1fr;gap:8px;padding:6px 8px;border-radius:3px;color:var(--ink2);font:15px/1.4 Inter,system-ui,sans-serif;cursor:pointer;border:1px solid transparent}
.w-steps li::before{content:counter(s);width:22px;height:22px;border-radius:50%;border:1.5px solid var(--rule);display:flex;align-items:center;justify-content:center;font:700 11px/1 Jost,sans-serif;color:var(--muted)}
.w-steps li.past::before{background:var(--safe);border-color:var(--safe);color:#fff}
.w-steps li.now{background:var(--card);border-color:var(--you);color:var(--ink)}
.w-steps li.now::before{background:var(--you);border-color:var(--you);color:#fff}
.w-steps li>span>b:first-child{display:block;color:var(--ink);font-weight:600}
.w-facts{display:grid;grid-template-columns:auto 1fr;gap:6px 12px;margin:8px 0 0;font:14px/1.35 Inter,system-ui,sans-serif}
.w-facts dt{font:600 14px/1.35 "IBM Plex Mono",ui-monospace,monospace;color:var(--you-text);white-space:nowrap}
.w-facts dd{margin:0;color:var(--ink2)}
.w-mist{background:var(--card);border:1.5px solid var(--ink);border-top:4px solid var(--risk);padding:10px 12px;margin-top:8px;font:15px/1.45 Inter,system-ui,sans-serif}
.w-mist b{font:600 11px/1.2 Jost,sans-serif;letter-spacing:.14em;text-transform:uppercase;color:var(--risk-text);display:block;margin-bottom:4px}
.w-quiz h3{font:600 19px/1.25 "EB Garamond",Georgia,serif;margin:4px 0 10px}
.w-opt{display:block;width:100%;text-align:left;background:var(--card);color:var(--ink);border:1.5px solid var(--rule);border-radius:4px;padding:10px 12px;margin:0 0 6px;font:500 15px/1.35 Inter,system-ui,sans-serif;cursor:pointer;min-height:44px}
.w-opt:hover{border-color:var(--you)}
.w-opt.right{border-color:var(--safe);background:var(--safe-t);box-shadow:inset 4px 0 0 var(--safe)}
.w-opt.wrong{border-color:var(--danger);box-shadow:inset 4px 0 0 var(--danger)}
.w-opt[disabled]{cursor:default}
.w-why{margin:8px 0 0;padding:8px 10px;border-left:4px solid var(--you);background:var(--you-t);font:14px/1.45 Inter,system-ui,sans-serif}
.w-src{font:500 12px/1.45 Jost,system-ui,sans-serif;color:var(--muted);margin:0}
.w-src a{color:var(--you-text)}
.w-nav{display:flex;gap:8px;padding:12px 16px 18px;margin-top:auto;position:sticky;bottom:0;background:var(--paper);border-top:1px solid var(--rule)}
.w-nav button{flex:1;min-height:46px;border-radius:4px;border:0;background:var(--you);color:#fff;font:600 12px/1 Jost,system-ui,sans-serif;letter-spacing:.12em;text-transform:uppercase;cursor:pointer}
.w-nav button.alt{background:transparent;color:var(--you-text);border:1.5px solid var(--you-text)}
.w-nav button[disabled]{opacity:.4;cursor:default}
.w-fine{font:500 11px/1.45 Jost,system-ui,sans-serif;color:var(--muted);padding:10px 16px 16px;margin:0}
.w-sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.w-toggle{position:absolute;right:12px;bottom:12px;z-index:3;display:none}
@media (max-width:900px){
  body{overflow:hidden}
  .w-app{grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr) auto}
  .w-panel{grid-row:3;border-left:0;border-top:3px solid var(--orange);max-height:42vh;transition:max-height .35s ease}
  .w-app.full .w-panel{max-height:0;border-top-width:0}
  .w-toggle{display:block}
  .w-hud{right:128px;gap:6px}.w-hud button{padding:0 10px;letter-spacing:.06em}
  .w-hint{display:none}
  .w-caption{font-size:14px;top:8px;padding:8px 10px}
  .w-top h1 small{display:none}
}
@media (max-width:520px){.w-top a.w-alt{display:none}.w-panel h2{font-size:23px}}
@media (prefers-reduced-motion:reduce){.w-pin::after{animation:none}.w-load i::after{animation:none}*{scroll-behavior:auto!important}}
.w-ticks{position:relative;height:6px;margin:-6px 96px 0 52px}
.w-ticks i{position:absolute;top:0;width:2px;height:6px;background:var(--muted);opacity:.6;transform:translateX(-1px)}
.w-spot{position:absolute;left:0;top:0;width:36px;height:36px;border-radius:50%;border:2px solid #fff;background:#0f1f3a;color:#f2b81f;font:700 17px/1 Jost,system-ui,sans-serif;cursor:pointer;box-shadow:0 0 0 4px rgba(242,184,31,.45),0 3px 10px rgba(0,0,0,.4);pointer-events:auto;display:flex;align-items:center;justify-content:center}
.w-spot.bad{background:#b3261e;color:#fff;box-shadow:0 0 0 4px rgba(179,38,30,.4)}
.w-spot.ok{background:#2f6b40;color:#fff;box-shadow:0 0 0 4px rgba(47,107,64,.4)}
.w-spot:focus-visible{outline:3px solid var(--hi);outline-offset:3px}
.w-hunt h3{font:600 19px/1.25 "EB Garamond",Georgia,serif;margin:4px 0 6px}
.w-hunt-n{font:600 13px/1.3 Jost,sans-serif;color:var(--you-text);margin:0 0 8px}
.w-cert{display:grid;gap:4px;background:var(--safe-t);border:2px solid var(--safe);border-radius:4px;padding:12px 14px;margin:0 0 12px;font:14px/1.4 Inter,sans-serif}
.w-cert b{font:700 13px/1.2 Jost,sans-serif;letter-spacing:.12em;text-transform:uppercase;color:var(--safe)}
@media print{.w-stage,.w-top,.w-nav{display:none}.w-app{display:block;position:static}.w-panel{overflow:visible}body{overflow:visible;background:#fff}}
.w-top a.w-lang{border:1px solid currentColor;border-radius:999px;padding:4px 10px;color:#fff}
