*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden}body{background:#020b21}button{font:inherit}h1,h2,p{margin:0}.platform-stage{background:#03142f;overflow:hidden}.environment{position:absolute;z-index:0}.panel{position:absolute;z-index:10;background:rgba(6,39,79,.64);border:1px solid #21405d}.label,.section-title{position:absolute;z-index:50}.label{font-size:21px;line-height:1.35}.main-title{text-align:center;font-size:48px;letter-spacing:3px;font-weight:800;line-height:58px}.subtitle{text-align:center;font-size:25px;letter-spacing:2px;color:#d1e6ff}.section-title{display:flex;align-items:center;justify-content:center;font-size:32px;letter-spacing:2px}.card-title{font-size:26px;font-weight:700;letter-spacing:1px}.description{font-size:19px;color:#c4e5ff}.module-title{display:flex;align-items:center;justify-content:center;font-size:24px;font-weight:700;border:1px solid #275577;background:#062955;color:#f5f9ff}.hub-title{text-align:center;font-size:30px;font-weight:800;background:#06316a;border-radius:50%;text-shadow:0 0 5px #358fd9}.skill{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;background:#083568;border:1px solid #175c91;font-size:18px}.scene-slot{position:absolute;z-index:30;pointer-events:none}.placeholder{background:rgba(51,104,149,.12);border:1px dashed #254e71}.case-title{font-size:25px;font-weight:700;line-height:1.4}.case-button{border:1px solid #239fd2;background:#063c76;color:white;font-size:20px;cursor:pointer}.case-button:disabled{cursor:default;opacity:1}.tag{border:1px solid #2776a4;background:#083867;font-size:18px;display:flex;align-items:center;justify-content:center;border-radius:3px}.role,.step-caption,.report-label{text-align:center;font-size:17px;color:#c4e5ff}.small{font-size:17px;text-align:center;color:#b7ebff}.record{font-size:16px;padding:5px 8px;background:#0b4280;border:1px solid #3385b4;text-align:center}.dimension{font-size:15px;display:flex;align-items:center;gap:4px}.dimension:before{content:'✓';display:inline-block;color:#77e6ea;font-size:17px}.flow-step{display:flex;align-items:center;gap:19px}.flow-step .platform-icon{width:70px;height:70px;border:1px solid #1684bf;border-radius:50%;padding:12px;background:#043569}.flow-step strong{font-size:24px;white-space:nowrap;display:block}.flow-number{color:#8bdeff;display:block;font-size:18px;margin-bottom:4px}.top-frame{position:absolute;border-top:1px solid #1674ad;z-index:10;clip-path:polygon(0 0,23% 0,26% 85%,74% 85%,77% 0,100% 0,100% 100%,0 100%)}
body[data-stage="1"] .platform-icon{visibility:hidden}body[data-stage="1"] .hub-title{background:transparent}body:not([data-stage="1"]) .environment{background:linear-gradient(#03142f70,#021027a8),url('assets/background-hall.png') center/cover;opacity:.48}body:not([data-stage="1"]) .panel{border:1px solid #1683c4;background:linear-gradient(135deg,#053366aa,#031d43b8);clip-path:polygon(10px 0,calc(100% - 10px) 0,100% 10px,100% calc(100% - 10px),calc(100% - 10px) 100%,10px 100%,0 calc(100% - 10px),0 10px);box-shadow:inset 0 0 24px #087bdd24}body:not([data-stage="1"]) .section-title{background:linear-gradient(180deg,#07417b,#06316b 65%,#06498d);border:1px solid #168cce;clip-path:polygon(15px 0,calc(100% - 15px) 0,100% 50%,calc(100% - 15px) 100%,15px 100%,0 50%);text-shadow:0 0 5px #6ba9ff55}body:not([data-stage="1"]) .card-title:before{content:'';position:absolute;width:4px;height:55px;left:-17px;top:0;background:linear-gradient(#8df5ff,#00a6f5);box-shadow:0 0 4px #009dff88}body:not([data-stage="1"]) .module-title{clip-path:polygon(12px 0,calc(100% - 12px) 0,100% 50%,calc(100% - 12px) 100%,12px 100%,0 50%);background:linear-gradient(#07508c,#042b63);border-color:#219de0}body:not([data-stage="1"]) .case-entry{background:linear-gradient(135deg,#0b4a89bb,#032455dd);border-color:#37baff}body:not([data-stage="1"]) .case-button{border-radius:6px;box-shadow:inset 0 0 10px #1484e76b}button:focus-visible{outline:3px solid #9af9ff;outline-offset:4px}dialog{color:#e8f5ff;background:#052449;border:1px solid #28b8ef;border-radius:10px;width:min(950px,90vw);max-height:85vh;padding:35px;font:20px/1.7 var(--font-body)}dialog::backdrop{background:#010917d9}#close-detail{float:right;background:#084378;color:white;border:1px solid #3badd6;padding:8px 20px;cursor:pointer}#detail-title{font-size:28px;margin:0 100px 24px 0}
.main-title{height:64px!important}.subtitle{height:36px!important;line-height:32px}
.section-title{line-height:1.15}.card-title{overflow:visible}
.scene-slot[data-slot="training-solid"]{top:640px!important;height:195px!important;left:95px!important;width:275px!important}.scene-slot[data-slot="demand-solid"]{top:229px!important;height:125px!important}.scene-slot[data-slot="outcome-report"]{top:231px!important;height:128px!important}.scene-slot[data-slot="case-solid"],.scene-slot[data-slot="case-wireframe"],.scene-slot[data-slot="case-stress"]{top:691px!important;height:112px!important}.scene-slot[data-slot="resource-knowledge"]{left:1065px!important;width:275px!important}.scene-slot[data-slot="operations-console"] img{transform:scale(1.3)}.scene-slot[data-slot="collaborative-rd"] img{transform:scale(1.16)}.scene-slot[data-slot="supply-demand"] img{transform:scale(1.13)}
.section-title:last-of-type{font-size:30px;letter-spacing:1px}
.connections{position:absolute;inset:0;width:1920px;height:1080px;z-index:20;pointer-events:none}.connections path{fill:none;stroke-linejoin:round}.connections marker path{fill:#2ddeff;stroke:none}.link-wide{stroke:#077be7;stroke-width:12;opacity:.4}.link{stroke:#65e5ff;stroke-width:2}.forward{stroke:#149eef;stroke-width:4}.return{stroke:#2ddeff;stroke-width:3}.case-arrow{stroke:#59b4ff;stroke-width:2}
.frame-decoration{position:absolute;inset:0;width:1920px;height:1080px;z-index:40;pointer-events:none;fill:none;stroke:#1687c1;stroke-width:1}.frame-decoration path+path{stroke:#39c7ff;stroke-width:2}body[data-stage="5"] .top-frame,body[data-stage="6"] .top-frame{display:none}body:is([data-stage="5"],[data-stage="6"]) .scene-slot[data-slot="training-solid"]{top:621px!important;height:218px!important;width:290px!important;left:108px!important}body:is([data-stage="5"],[data-stage="6"]) .scene-slot[data-slot="outcome-report"]{top:225px!important;height:136px!important}body:is([data-stage="5"],[data-stage="6"]) .scene-slot[data-slot="institution-campus"] img{transform:scale(1.12)}
body[data-stage="6"] .module-title{cursor:pointer;padding-right:14px;height:44px!important}body[data-stage="6"] .module-title:after{content:'›';position:absolute;right:14px;color:#9de9ff;font-size:28px}body[data-stage="6"] .module-title:hover,body[data-stage="6"] .case-button:hover{filter:brightness(1.25)}.region-hit{position:absolute;z-index:60;border:0;background:transparent;cursor:pointer;color:#a9eaff}.region-hit:hover{box-shadow:inset 0 0 0 1px #54b8dc80;background:#2a98e008}.archive-hit:after{content:'›';position:absolute;right:20px;top:10px;font-size:32px}.case-button{z-index:61}.region-hit:focus-visible{outline-offset:-4px}.module-title:focus-visible{clip-path:none!important}.detail-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.detail-steps figure{margin:0;text-align:center;background:#062e56;border:1px solid #17587d;border-radius:6px;padding:12px}.detail-steps img{width:100%;height:180px;object-fit:contain}.empty-state{padding:18px;border:1px solid #1d597d;background:#092e50;color:#bbd8ed}dialog h3{color:#8ddcff;font-size:23px}
body[data-stage="6"] .scene-hit:hover { box-shadow:none; }
dialog{transform:scale(var(--detail-scale,1));width:min(950px,calc(90vw / var(--detail-scale,1)));max-height:calc(85vh / var(--detail-scale,1));transform-origin:center}

/* Refinement R1: central scene only. Frozen R0 is in R0-baseline.html.
   The hall and its shade are separate layers; scene opacity is unaffected. */
body[data-stage="6"] .core-panel::before,
body[data-stage="6"] .core-panel::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 548px;
  pointer-events: none;
}
body[data-stage="6"] .core-panel::before {
  background: url('assets/background-hall.png') center / cover no-repeat;
}
body[data-stage="6"] .core-panel::after {
  background: linear-gradient(180deg, rgb(2 13 34 / 28%), rgb(2 13 34 / 12%) 36%, rgb(2 13 34 / 22%));
}
/* Uniform internal scaling relative to R0: teaching +12%, R&D +14%,
   hub +8%, operations +8% (limited by the fixed title/case-strip gap).
   The existing R0 transforms for R&D / operations were 1.16 / 1.30. */
body[data-stage="6"] .scene-slot[data-slot="teaching-training"] img {
  transform: translate(-4px, 4px) scale(1.12);
}
body[data-stage="6"] .scene-slot[data-slot="collaborative-rd"] img {
  transform: translate(8px, -1px) scale(1.3224);
}
body[data-stage="6"] .scene-slot[data-slot="core-hub"] img {
  transform: translate(0, -4px) scale(1.08);
}
body[data-stage="6"] .scene-slot[data-slot="operations-console"] img {
  transform: translate(10px, -9.5px) scale(1.404);
}

/* R2: light lives on the ground (z=20), behind every PNG scene (z=30).
   Blur is attached only to each bounded halo use, never to the whole SVG. */
.central-light-paths { fill:none; stroke-linecap:round; stroke-linejoin:round; }
.central-light-paths .light-halo { stroke:#009cff; stroke-width:15; stroke-opacity:.27; }
.central-light-paths .light-channel { stroke:#008dfa; stroke-width:7.5; stroke-opacity:.87; }
.central-light-paths .light-core { stroke-width:2.3; }

.central-connections { position:absolute; inset:0; width:1920px; height:1080px; z-index:20; pointer-events:none; }

/* R3: text stays HTML; image-relative labels share the actual artwork plane. */
body[data-stage="6"] .scene-slot[data-slot="resource-knowledge"] { left:1070px!important; width:309px!important; height:206px!important; }
.scene-composition { z-index:50; }
.art-plane { position:absolute; }
[data-slot="resource-knowledge"] .art-plane { inset:0; }
[data-slot="supply-demand"] .art-plane { height:100%; aspect-ratio:1672/940; left:50%; transform:translateX(-50%) scale(1.13); }
body[data-stage="6"] .scene-slot[data-slot="supply-demand"] .art-plane img { transform:none; }
.handshake-icon-relocated { position:absolute; inset:0; width:100%; height:100%; z-index:1; overflow:visible; pointer-events:none; }
.handshake-card-bottom-repair { position:absolute; inset:0; width:100%; height:100%; z-index:2; object-fit:fill; pointer-events:none; }
.html-tag { position:absolute; display:flex; align-items:center; justify-content:center; white-space:nowrap; line-height:1.15; }
.knowledge-label { width:20.5%; height:9.77%; font-size:15.5px; font-weight:700; color:#06437b; transform:skewY(8deg); transform-origin:left center; background:none; border:0; }
.knowledge-label.item-0 { left:69.34%; top:24.4%; transform:skewY(8deg); }
.knowledge-label.item-1 { left:68.56%; top:41.5%; transform:skewY(9deg); }
.knowledge-label.item-2 { left:67.97%; top:58.6%; transform:skewY(11deg); }
.supply-label { z-index:3; font-size:14.5px; font-weight:700; color:#effbff; text-shadow:0 1px 2px #002d77; }
.supply-label.item-0 { left:calc(7.3% - 2.2px); top:67.5%; width:20%; height:9%; transform:skewY(16deg); }
.supply-label.item-1 { left:42.75%; top:57%; width:20.5%; height:9%; color:#0b3d82; font-size:10.2px; font-weight:600; text-shadow:none; transform:skewY(8deg); transform-origin:center center; }
.supply-label.item-2 { left:calc(65.5% - 8.5px); top:72%; width:19%; height:9%; transform:skewY(17deg); }
.record-title { font-size:16px; color:#d9efff; text-align:center; white-space:nowrap; }
.evaluation-dimensions { padding:8px 5px; border:1px solid #2079a2; border-radius:5px; background:linear-gradient(145deg,#0b5278c9,#063256b8); display:flex; flex-direction:column; justify-content:space-around; }
.evaluation-dimension { display:flex; align-items:center; gap:4px; font-size:14px; white-space:nowrap; }
.evaluation-dimension:before { content:'✓'; color:#d9fff3; background:#16a797; border-radius:2px; width:16px; line-height:19px; text-align:center; flex:none; }
.institution-records { display:flex; flex-direction:column; gap:8px; }
.institution-record { position:relative; display:flex; align-items:center; gap:9px; height:32px; flex:none; padding:0 10px; border:1px solid #287eaf; clip-path:polygon(5px 0,calc(100% - 5px) 0,100% 5px,100% calc(100% - 5px),calc(100% - 5px) 100%,5px 100%,0 calc(100% - 5px),0 5px); background:linear-gradient(105deg,#0a3971 0%,#082c5c 72%,#062651 100%); box-shadow:inset 0 1px 0 #8bdcff35,inset 0 0 8px #1c7cef14; transform:none; font-size:16px; font-weight:600; line-height:1; white-space:nowrap; color:#e3f4ff; }
.institution-record::before { content:""; position:absolute; inset:5px auto 5px 0; width:1px; background:linear-gradient(180deg,#66ddff25,#67dcffbd,#66ddff25); }
.institution-record .platform-icon { width:22px; height:22px; flex:none; color:#a9e8ff; }
body[data-stage="6"] .scene-slot[data-slot="demand-wireframe"] img { padding:0 3px; }

/* R4: reusable fine frames; stage 6 only, without global font inflation. */
body[data-stage="6"] .panel.r4-panel { border:0; box-shadow:none; background:linear-gradient(180deg,#04356342,#03274b1f); }
body[data-stage="6"] .case-entry.r4-panel { background:linear-gradient(135deg,#0b4a8966,#03245588); }
body[data-stage="6"] .case-entry.r4-panel::before { content:""; position:absolute; inset:0 0 0 350px; pointer-events:none; background:linear-gradient(180deg,#103f7e 0%,#0b3774 10%,#06316b 35%,#02275a 50%,#002251 65%,#002353 80%,#003174 100%); -webkit-mask-image:linear-gradient(90deg,transparent,#000 65px); mask-image:linear-gradient(90deg,transparent,#000 65px); }
.tech-frame__decoration { position:absolute; inset:0; width:100%; height:100%; pointer-events:none; }
.r4-decoration { position:absolute; inset:0; width:100%; height:100%; pointer-events:none; z-index:-1; }
body[data-stage="6"] .module-title.r4-module { height:auto!important; aspect-ratio:210/48; border:0; background:none; clip-path:none; isolation:isolate; padding:0 19px 0 5px; }
body[data-stage="6"] .module-title.r4-module:after { display:none; }
.r4-chevron { position:absolute; right:14px; width:10px; height:18px; color:#b4edff; pointer-events:none; }
body[data-stage="6"] .r4-section,body[data-stage="6"] .r4-core-title,body[data-stage="6"] .r4-loop-title { background:none; border:0; clip-path:none; text-shadow:none; isolation:isolate; }
body[data-stage="6"] .r4-core-title { left:808px!important; top:123px!important; width:304px!important; height:43px!important; font-size:30px; }
body[data-stage="6"] .r4-loop-title { left:773px!important; top:863px!important; width:374px!important; height:47px!important; font-size:30px; letter-spacing:1px; }
body[data-stage="6"] .panel.r4-integrated-panel { border:0; box-shadow:none; background:transparent; }
.r4-integrated-panel>.r4-decoration { z-index:1; }
.r4-header { position:absolute; left:0; top:0; width:1920px; height:120px; z-index:40; pointer-events:none; }
.r4-header .r4-decoration { z-index:0; }
.r4-skill-art { position:relative; display:block; width:80px; height:47px; flex:none; }
.r4-complete .skill { gap:8px; background:linear-gradient(145deg,#105a9566,#062c5255); border-color:#176999; border-radius:6px; }
.r4-complete .talent-skill>span:last-child { font-size:16px; line-height:1.2; }
.r4-symbols,.r4-symbols>svg { position:absolute; width:0; height:0; overflow:hidden; }
.r4-process-ring { display:grid; place-items:center; width:70px; height:70px; flex:none; border:1px solid #1684bf; border-radius:50%; background:radial-gradient(circle,#07578f80,#043569); }
.r4-process-ring>svg { width:49px; height:49px; }
.r4-complete .card-title:before { width:4px; box-shadow:none; background:linear-gradient(90deg,#16aff0,#95edff 48%,#16b3ea); }

/* Teaching connector debug overlay: absent unless ?debugTrainingLight=1. */
.training-band-debug { position:absolute; inset:0; width:1920px; height:1080px; z-index:55; pointer-events:none; }

/* The original case strip includes its own blue background and both arrows. */
body[data-stage="6"] .case-visual-strip { position:absolute; z-index:30; display:block; object-fit:contain; pointer-events:none; -webkit-mask-image:linear-gradient(90deg,transparent,#000 7px,#000 calc(100% - 7px),transparent); mask-image:linear-gradient(90deg,transparent,#000 7px,#000 calc(100% - 7px),transparent); }
body[data-stage="6"] .case-button { display:flex; align-items:center; justify-content:center; gap:5px; padding:0 13px 0 16px; border-radius:12px; border:1px solid #62c9fa; background:linear-gradient(180deg,#126dc0,#0755a1 60%,#064b8e); box-shadow:inset 0 0 0 2px #063969,inset 0 1px 0 #d0f7ff89,0 0 9px #05b9ff66,0 3px 6px #00162d8c; white-space:nowrap; }
body[data-stage="6"] .case-button::after { content:""; position:absolute; inset:4px; border:1px solid #67d9ff6c; border-radius:8px; pointer-events:none; }
.case-button-chevron { width:11px; height:18px; flex:none; color:#e1f8ff; filter:drop-shadow(0 0 2px #43bfff); }

/* Representative training scene: floor stays behind the unmodified metal PNG. */
body[data-stage="6"] .training-scene.r4-panel { background:#061f42 url('assets/svg/training-scene-floor.svg') center/100% 100% no-repeat; }
body[data-stage="6"] .scene-slot[data-slot="training-solid"] { left:75px!important; top:583px!important; width:310px!important; height:240px!important; }
.card-chevron { position:absolute; z-index:51; color:#d1f4ff; filter:drop-shadow(0 0 3px #39b8ff); pointer-events:none; }

/* Original, separately cropped V1/V2 parts; align their visible bases. */
body[data-stage="6"] .scene-slot[data-slot="evaluation-before"] { left:1529px!important; top:491px!important; width:88px!important; height:94px!important; }
body[data-stage="6"] .scene-slot[data-slot="evaluation-after"] { left:1685px!important; top:498px!important; width:89px!important; height:87px!important; }

/* Enlarge the campus art while keeping its alpha-visible lower-right edge anchored. */
body[data-stage="6"] .scene-slot[data-slot="institution-campus"] img { transform:scale(1.288); transform-origin:70% 74%; }

/* Closed loop palette and independently sized SVG connectors. */
body[data-stage="6"] .platform-stage { --loop-background:#04204c; --loop-background-lower:#093171; --loop-icon:#09286c; --loop-blue:#1c7cef; --loop-edge:#36b1fc; --loop-return:#3be5f9; }
body[data-stage="6"] .r4-process-ring { border-color:var(--loop-edge); background:radial-gradient(circle at 35% 30%,#164a9a,var(--loop-icon) 63%,#061a4d); box-shadow:inset 0 0 9px #1c7cef38,0 0 4px #1c7cef2e; }
body[data-stage="6"] .loop-connectors { position:absolute; inset:0; z-index:35; display:block; pointer-events:none; }
