body:has(.portal-scene){--omni-hud-height:58px;--portal-hero-height:clamp(250px,33svh,280px);position:relative;background:var(--omni-ink)}.main-content:has(.portal-scene){padding:0 12px calc(76px + env(safe-area-inset-bottom));max-width:900px}.app-header:has(.portal-header-context){position:absolute;inset:0 0 auto;width:min(100%,900px);margin:auto;z-index:3;min-height:54px;padding:max(6px,env(safe-area-inset-top)) 12px 6px;background:transparent;border:0}.app-header:has(.portal-header-context) .brand{font-size:23px;letter-spacing:.18em;gap:6px;text-shadow:0 1px 6px var(--omni-ink)}.app-header:has(.portal-header-context) .brand:before{content:"";width:25px;height:25px;border-radius:50%;box-shadow:-6px 2px 0 1px var(--omni-gold-bright);margin-left:5px}.portal-header-context{display:flex;flex-direction:column;text-align:center;border:1px solid var(--omni-border);border-radius:8px;padding:3px 9px;background:var(--omni-panel-soft);font-family:var(--omni-font-heading);font-size:13px;line-height:1.4}.portal-header-context small{font-family:var(--omni-font-body);font-size:9px;color:var(--omni-muted)}.app-header:has(.portal-header-context) .destination-trigger{padding:0;width:44px;font-size:0;background:var(--omni-panel-soft);border-color:var(--omni-border)}.app-header:has(.portal-header-context) .destination-trigger:after{content:"≡";font-size:24px;color:var(--omni-gold-bright)}body:has(.portal-scene) .saku-button{position:fixed;top:auto;bottom:calc(var(--omni-hud-height) + 14px + env(safe-area-inset-bottom));right:max(12px,env(safe-area-inset-right));width:68px;height:68px;gap:1px;box-shadow:0 0 9px var(--omni-border),inset 0 0 6px var(--omni-shadow)}body:has(.portal-scene) .saku-button>svg,body:has(.portal-scene) .saku-face-asset{width:34px;height:34px;object-fit:contain}body:has(.portal-scene) .saku-label{font-size:9px;gap:2px}body:has(.portal-scene) .saku-label svg{width:10px;height:12px}body:has(.portal-scene) .bottom-hud a{min-height:58px;font-size:10px;gap:2px}body:has(.portal-scene) .bottom-hud svg{width:20px;height:20px}.portal-scene{position:relative;isolation:isolate;background:linear-gradient(#0D1624,#080B12)}.portal-scene .facility-hero{height:var(--portal-hero-height);margin-inline:-12px;border:0;border-radius:0;background:#0D1624}.portal-scene .facility-hero:before,.portal-scene .hero-seal{display:none}.portal-scene .hero-image{object-position:var(--hero-position)}.portal-scene .facility-hero:after{background:linear-gradient(0deg,#0D1624,transparent 28%),linear-gradient(180deg,var(--omni-backdrop),transparent 24%)}.portal-accessible-title{position:absolute;width:1px;height:1px;overflow:hidden;-webkit-clip-path:inset(50%);clip-path:inset(50%)}.portal-copy{position:absolute;left:16px;bottom:20px;margin:0;max-width:160px;font-size:12px;line-height:1.5;font-family:var(--omni-font-heading);white-space:pre-line;text-shadow:0 1px 5px #080B12}.portal-dialogue{position:absolute;left:12px;top:54px;width:155px;border:1px solid var(--omni-border);border-radius:9px;overflow:hidden}.portal-dialogue>div{display:flex;align-items:center;gap:5px;padding:1px 7px;font-size:10px;color:var(--omni-gold-bright);background:#080B12}.portal-dialogue svg{width:12px;height:12px}.portal-dialogue p{margin:0;padding:4px 7px;white-space:pre-line;font-size:10px;line-height:1.2;background:var(--omni-moon);color:#080B12}.portal-content{position:relative;display:grid;grid-gap:9px;gap:9px;margin-top:-12px;background:linear-gradient(135deg,color-mix(in srgb,var(--omni-blue) 6%,transparent),transparent 65%)}.portal-panel{min-width:0;padding:6px 7px;border:1px solid var(--omni-border);border-radius:9px;background:color-mix(in srgb,var(--omni-ink) 85%,transparent)}.portal-panel h2{display:flex;align-items:center;gap:4px;font-size:12px;line-height:1.3;color:var(--omni-gold-bright);margin:0 0 6px}.portal-panel h2 svg{width:15px;height:15px;flex-shrink:0}.portal-heading{display:flex;align-items:center;justify-content:space-between;gap:3px}.portal-heading>span{font-size:8px;white-space:nowrap;color:var(--omni-muted)}.portal-controls button{color:var(--omni-moon);font-family:var(--omni-font-body);cursor:pointer;background:var(--omni-panel-soft);border:1px solid var(--omni-border);border-radius:6px}.portal-services{display:flex;gap:5px;overflow-x:auto;scrollbar-width:thin;padding-bottom:3px}.portal-services button{flex:0 0 85px;display:flex;flex-direction:column;align-items:center;gap:5px;padding:5px 3px;min-height:68px}.portal-services svg{width:21px;height:21px;color:var(--omni-blue)}.portal-services strong{font-size:9px;font-weight:500;white-space:nowrap}.portal-services small{font-size:9px;color:var(--omni-muted)}.portal-dashboard{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-gap:5px;gap:5px}.portal-recent ul{padding:0;margin:0;list-style:none}.portal-recent li{padding:5px 0;border-top:1px solid var(--omni-border)}.portal-recent li>div{display:flex;align-items:center;gap:5px;font-size:9px;line-height:1.3}.portal-recent strong{font-weight:500}.portal-recent time{color:var(--omni-muted);font-size:8px}.portal-recent p{margin:3px 0 0;font-size:10px;line-height:1.3;color:var(--omni-muted)}.portal-actions{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:4px;gap:4px}.portal-actions button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-height:70px;padding:4px 2px;font-size:9px;line-height:1.3}.portal-actions svg{width:18px;height:18px;flex-shrink:0;color:var(--omni-gold-bright)}.portal-closing,.portal-recommended{margin-right:76px}.portal-recommended .portal-controls{display:grid}.portal-recommended button{display:grid;grid-template-columns:82px minmax(0,1fr) 8px;align-items:center;grid-gap:3px;gap:3px;border:0;border-top:1px solid var(--omni-border);border-radius:0;background:transparent;padding:6px 0;text-align:left;min-height:36px}.portal-recommended strong{font-size:9px;font-weight:500}.portal-recommended button>span{font-size:9px;line-height:1.3;color:var(--omni-muted)}.portal-closing{min-height:70px;padding:8px;border:1px solid var(--omni-border);border-radius:9px;background:linear-gradient(90deg,var(--omni-panel-soft),transparent),url(/images/heroes/portal.webp) 65% 40%/cover}.portal-closing p{margin:0;font-size:12px;line-height:1.5;font-family:var(--omni-font-heading);white-space:pre-line;text-shadow:0 1px 5px #080B12}.portal-closing>span{display:block;text-align:right;font-size:10px}.portal-notice{position:fixed;z-index:12;left:12px;right:12px;bottom:calc(152px + env(safe-area-inset-bottom));display:flex;align-items:center;gap:8px;padding:8px;border:1px solid var(--omni-border);border-radius:8px;background:#0D1624;color:var(--omni-moon);font-size:11px}.portal-notice button{margin-left:auto;min-width:44px;min-height:44px;color:var(--omni-moon);border:0;background:transparent;font-size:20px}body:has(.portal-scene) .destination-menu a[aria-current=page]{color:var(--omni-gold-bright);border-color:var(--omni-gold)}@media(min-width:640px){body:has(.portal-scene){--portal-hero-height:350px}.portal-scene .hero-image{object-position:var(--hero-position-desktop)}.portal-copy{font-size:20px;max-width:350px}.portal-dialogue{width:190px}.portal-dialogue p{font-size:12px}.portal-services button{flex:1 1}.portal-actions button{min-height:70px;font-size:11px}.portal-recent li>div,.portal-recent p,.portal-recommended button>span,.portal-recommended strong{font-size:12px}}@media(max-width:639px){.portal-dialogue{left:auto;top:auto;right:10px;bottom:22px;width:175px}.portal-dashboard{grid-template-columns:minmax(0,1fr);gap:9px}.portal-recent li{display:grid;grid-template-columns:110px minmax(0,1fr);grid-gap:6px;gap:6px;align-items:center;min-height:25px;padding:4px 0}.portal-recent p{margin:0}.portal-actions button{min-height:48px;font-size:10px}.portal-actions button span{white-space:nowrap}}body:has(.training-scene){--omni-hud-height:58px;--training-hero-height:clamp(202px,32svh,260px);position:relative;background:var(--omni-ink)}.main-content:has(.training-scene){padding:0 12px calc(76px + env(safe-area-inset-bottom));max-width:900px}.app-header:has(.training-header-context){position:absolute;inset:0 0 auto;width:min(100%,900px);margin:auto;z-index:3;min-height:54px;padding:max(6px,env(safe-area-inset-top)) 12px 6px;background:transparent;border:0}.app-header:has(.training-header-context) .brand{font-size:23px;letter-spacing:.18em;gap:6px;text-shadow:0 1px 6px var(--omni-ink)}.app-header:has(.training-header-context) .brand:before{content:"";width:25px;height:25px;border-radius:50%;box-shadow:-6px 2px 0 1px var(--omni-gold-bright);margin-left:5px}.training-header-context{display:flex;flex-direction:column;text-align:center;border:1px solid var(--omni-border);border-radius:8px;padding:3px 9px;background:var(--omni-panel-soft);font-family:var(--omni-font-heading);font-size:13px;line-height:1.4}.training-header-context small{font-family:var(--omni-font-body);font-size:9px;color:var(--omni-muted)}.app-header:has(.training-header-context) .destination-trigger{padding:0;width:44px;font-size:0;background:var(--omni-panel-soft);border-color:var(--omni-border)}.app-header:has(.training-header-context) .destination-trigger:after{content:"≡";font-size:24px;color:var(--omni-gold-bright)}body:has(.training-scene) .saku-button{position:fixed;top:auto;bottom:calc(var(--omni-hud-height) + 14px + env(safe-area-inset-bottom));right:max(12px,env(safe-area-inset-right));width:68px;height:68px;gap:1px;box-shadow:0 0 9px var(--omni-border),inset 0 0 6px var(--omni-shadow)}body:has(.training-scene) .saku-button>svg,body:has(.training-scene) .saku-face-asset{width:34px;height:34px;object-fit:contain}body:has(.training-scene) .saku-label{font-size:9px;gap:2px}body:has(.training-scene) .saku-label svg{width:10px;height:12px}body:has(.training-scene) .bottom-hud a{min-height:58px;font-size:10px;gap:2px}body:has(.training-scene) .bottom-hud svg{width:20px;height:20px}.training-scene{position:relative;isolation:isolate;background:linear-gradient(var(--omni-navy),var(--omni-ink))}.training-scene .facility-hero{height:var(--training-hero-height);margin-inline:-12px;border:0;border-radius:0;background:var(--omni-navy)}.training-scene .facility-hero:before,.training-scene .hero-seal{display:none}.training-scene .facility-hero:after{background:linear-gradient(0deg,var(--omni-navy),transparent 27%),linear-gradient(180deg,var(--omni-backdrop),transparent 27%)}.training-scene .hero-image{object-position:var(--hero-position)}.training-accessible-title{position:absolute;width:1px;height:1px;overflow:hidden;-webkit-clip-path:inset(50%);clip-path:inset(50%)}.training-copy{position:absolute;left:16px;bottom:24px;margin:0;font-family:var(--omni-font-heading);font-size:14px;line-height:1.5;white-space:pre-line;text-shadow:0 1px 5px var(--omni-ink)}.training-dialogue{position:absolute;top:50px;right:10px;width:190px;overflow:hidden;border:1px solid var(--omni-border);border-radius:9px}.training-dialogue>div{display:flex;align-items:center;gap:5px;padding:1px 7px;font-size:10px;line-height:1.3;color:var(--omni-gold-bright);background:var(--omni-ink)}.training-dialogue svg{width:12px;height:12px}.training-dialogue p{white-space:pre-line;margin:0;padding:3px 7px;font-size:10px;line-height:1.2;color:var(--omni-ink);background:var(--omni-moon)}.training-content{position:relative;display:grid;grid-gap:9px;gap:9px;margin-top:-12px;background:linear-gradient(120deg,color-mix(in srgb,var(--omni-warm) 5%,transparent),transparent 65%)}.training-panel{min-width:0;padding:6px 7px;border:1px solid var(--omni-border);border-radius:9px;background:color-mix(in srgb,var(--omni-ink) 85%,transparent);box-shadow:0 2px 5px var(--omni-shadow)}.training-panel h2{font-size:13px;line-height:1.3;color:var(--omni-gold-bright);margin:0 0 5px}.training-heading{display:flex;justify-content:space-between;align-items:center;gap:3px}.training-heading>span{font-size:8px;color:var(--omni-muted);white-space:nowrap}.training-metrics{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));margin-top:3px}.training-metrics>div{padding-inline:3px;border-right:1px solid var(--omni-border);line-height:1.3}.training-metrics>div:first-child{padding-left:0}.training-metrics>div:last-child{border:0;padding-right:0}.training-metrics h3{font-size:9px;font-weight:500;white-space:nowrap;line-height:1.3;margin:0 0 3px}.training-metrics p{margin:0;line-height:1.3;white-space:nowrap}.training-metrics strong{font-size:21px;font-weight:500;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:var(--omni-teal)}.training-metrics small{font-size:9px;margin-left:1px}.training-metrics>div>span{display:block;font-size:8px;line-height:1.3;color:var(--omni-muted);margin-top:3px;white-space:nowrap}.training-dashboard{display:grid;grid-template-columns:minmax(0,58fr) minmax(0,42fr);grid-gap:5px;gap:5px}.training-tasks h2{display:flex;justify-content:space-between;gap:3px;white-space:nowrap;font-size:12px}.training-tasks h2 small{font-size:9px;font-family:var(--omni-font-body)}.training-tasks ol{padding:0;margin:0;list-style:none}.training-tasks li{display:flex;gap:5px;align-items:center;padding:5px 0;border-top:1px solid var(--omni-border)}.training-rank{display:grid;place-items:center;width:18px;height:18px;flex-shrink:0;border-radius:50%;background:var(--omni-gold-bright);color:var(--omni-ink);font-size:13px}.training-tasks li>div{flex:1 1;min-width:0}.training-tasks h3{margin:0;font-size:11px;font-weight:500;line-height:1.3}.training-tasks p{margin:2px 0}.training-task-meta,.training-tasks p{font-size:9px;line-height:1.3;color:var(--omni-muted)}.training-task-meta{display:flex;justify-content:space-between;gap:4px}.training-status{border:1px solid var(--omni-border);border-radius:8px;padding:0 4px}.training-status-important{color:var(--omni-copper)}.training-status-progress{color:var(--omni-gold-bright)}.training-status-normal{color:var(--omni-slate)}.training-overall{display:flex;flex-direction:column;align-items:center;margin:8px 0;font-size:10px}.training-overall svg{width:68px;height:68px}.training-overall circle{fill:none;stroke-width:7}.training-ring-track{stroke:var(--omni-navy-soft)}.training-ring-value{stroke:var(--omni-teal);transform:rotate(-90deg);transform-origin:40px 40px}.training-overall text{fill:var(--omni-moon);font-size:17px;font-family:var(--omni-font-body)}.training-levels{display:grid;grid-gap:9px;gap:9px}.training-levels>div{display:grid;grid-template-columns:24px minmax(0,1fr) 25px;grid-gap:4px;gap:4px;align-items:center;font-size:9px}.training-levels progress{width:100%;height:5px;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;border-radius:4px;overflow:hidden;background:var(--omni-navy-soft)}.training-levels progress::-webkit-progress-bar{background:var(--omni-navy-soft)}.training-levels progress::-webkit-progress-value{background:var(--level-accent)}.training-levels progress::-moz-progress-bar{background:var(--level-accent)}.training-level-beginner{--level-accent:var(--omni-teal)}.training-level-intermediate{--level-accent:var(--omni-amber)}.training-level-advanced{--level-accent:var(--omni-violet)}.training-activity,.training-follow{margin-right:76px}.training-heading a{display:flex;align-items:center;min-height:44px;font-size:9px;white-space:nowrap}.training-follow h2{font-size:12px}.training-follow-list{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:4px;gap:4px}.training-student{--student-accent:var(--omni-teal);text-align:center;min-width:0;border-right:1px solid var(--omni-border)}.training-student:last-child{border:0}.training-student-copper{--student-accent:var(--omni-copper)}.training-student-blue{--student-accent:var(--omni-blue)}.training-student-violet{--student-accent:var(--omni-violet)}.training-avatar{display:grid;place-items:center;width:28px;height:28px;margin:0 auto 3px;border:1px solid var(--student-accent);border-radius:50%;color:var(--student-accent);font-family:var(--omni-font-heading);font-size:18px}.training-student h3{margin:0;font-size:10px;font-weight:500;line-height:1.3;white-space:nowrap}.training-student p{margin:3px 0 0;font-size:9px;line-height:1.3;color:var(--student-accent);white-space:nowrap}.training-activity ul{padding:0;margin:0;list-style:none}.training-activity li{display:grid;grid-template-columns:30px 55px minmax(0,1fr);grid-gap:4px;gap:4px;align-items:center;padding:4px 0;border-top:1px solid var(--omni-border);font-size:10px;line-height:1.3}.training-activity li>span{color:var(--omni-muted)}.training-activity strong{font-weight:500}.training-activity p{margin:0;font-size:10px;line-height:1.3}.training-closing{margin-right:76px;min-height:72px;padding:8px;border:1px solid var(--omni-border);border-radius:9px;background:linear-gradient(90deg,var(--omni-panel-soft),transparent),url(/images/heroes/training.webp) 80% 10% /cover}.training-closing p{margin:0;font-family:var(--omni-font-heading);font-size:13px;line-height:1.5;white-space:pre-line;text-shadow:0 1px 5px var(--omni-ink)}.training-closing span{display:block;font-size:10px;text-align:right}body:has(.training-scene) .destination-menu a[aria-current=page]{color:var(--omni-gold-bright);border-color:var(--omni-gold)}@media(min-width:640px){body:has(.training-scene){--training-hero-height:350px}.training-scene .hero-image{object-position:var(--hero-position-desktop)}.training-dialogue{width:185px;top:80px}.training-dialogue p{font-size:12px}.training-copy{font-size:20px}.training-tasks h3{font-size:13px}.training-tasks p{font-size:11px}.training-metrics strong{font-size:27px}.training-metrics h3{font-size:12px}.training-metrics>div>span{font-size:10px}}