/* NEXITT institutional rationale — evidence-led interactive scenes. */
.rail .scene-nav{min-height:0;flex:1;overflow-y:auto;scrollbar-color:#28566a transparent;scrollbar-width:thin;padding-right:2px}
.rail .nav-item{padding:11px 9px;gap:11px;font-size:11px}
.rail .nav-item b{flex:0 0 22px}
.rail .rail-bottom{flex:0 0 auto;padding-top:10px;padding-bottom:4px}
.rail .rail-line{margin:9px 0}
.why-distinction{display:grid;grid-template-columns:230px 1fr;gap:30px;align-items:center;padding:20px 24px;margin-top:17px;background:linear-gradient(95deg,rgba(37,188,193,.13),rgba(255,188,95,.055));border:1px solid rgba(66,220,221,.22);border-radius:18px}
.why-distinction span{font-size:10px;letter-spacing:.15em;color:#8cdee1;font-weight:700;line-height:1.8}
.why-distinction p{font-size:12px;line-height:1.75;color:#c8dadf}
.rationale-scene::before{content:'';position:absolute;width:430px;height:430px;top:-250px;right:-150px;background:radial-gradient(circle,rgba(41,193,202,.10),transparent 70%);pointer-events:none}
.evidence-trio{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.evidence-tile{min-height:208px;display:flex;flex-direction:column;align-items:flex-start;text-align:left;padding:23px;border-radius:19px;border:1px solid rgba(158,213,225,.15);background:linear-gradient(155deg,rgba(28,64,82,.8),rgba(8,32,51,.95));transition:transform .2s,border-color .2s,background .2s;position:relative}
.evidence-tile:hover{transform:translateY(-3px);border-color:rgba(88,218,225,.42)}
.evidence-tile.active{border-color:rgba(101,239,226,.7);background:linear-gradient(150deg,rgba(26,98,110,.64),rgba(12,40,60,.96));box-shadow:0 20px 55px rgba(4,12,27,.18)}
.evidence-tile small,.portfolio-tag{letter-spacing:.16em;color:#70bbc9;font-size:10px;font-weight:700}
.evidence-tile strong{font:500 clamp(65px,7vw,102px)/1.04 var(--serif);color:#f3fffc;letter-spacing:-.065em;margin:16px 0 5px}
.evidence-tile.active strong{color:#9ce8e3}
.evidence-tile>span{font-size:13px;color:#d1e3e9}
.evidence-tile i{font-size:10px;color:#75e0d9;font-style:normal;margin-top:auto;padding-top:12px}
.evidence-explainer{display:grid;grid-template-columns:1fr auto;align-items:center;gap:30px;padding:22px 26px;margin-top:16px;border-radius:18px;background:rgba(17,53,71,.7);border:1px solid rgba(108,205,213,.16)}
.evidence-explainer h3,.kou-detail h3,.timing-detail h3,.portfolio-explanation h3{font:500 clamp(23px,2.4vw,31px)/1.12 var(--serif);margin:10px 0;color:#f5f9f3}
.evidence-explainer p,.kou-detail p,.timing-detail p,.portfolio-explanation p{font-size:12px;color:#b9d0d9;line-height:1.7;max-width:680px}
.evidence-explainer a,.kou-detail a,.timing-detail a{flex-shrink:0;border:1px solid rgba(89,211,216,.4);padding:12px 15px;border-radius:99px;font-size:11px;font-weight:700;color:#7ce7de;text-decoration:none}
.evidence-explainer a:hover,.kou-detail a:hover,.timing-detail a:hover{background:rgba(68,205,210,.1)}
.evidence-caution{padding:12px 1px 0;font-size:10px;line-height:1.6;color:#83a5b5;letter-spacing:.025em}
.kou-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:18px}
.kou-goals{display:grid;gap:10px}
.kou-goal{display:grid;grid-template-columns:58px minmax(0,1fr) 15px;gap:14px;align-items:center;text-align:left;min-height:67px;background:rgba(13,44,63,.83);border:1px solid rgba(127,201,215,.17);border-radius:14px;padding:13px 17px;color:#bdd4dc;font-size:12px}
.kou-goal b{font-size:17px;color:#79cbd1;font-family:var(--serif)}
.kou-goal i{font-style:normal;color:#4ea1b4}
.kou-goal:hover,.kou-goal.active{background:rgba(26,79,91,.7);border-color:rgba(71,220,213,.5);color:#fff}
.kou-detail{display:flex;flex-direction:column;align-items:flex-start;background:linear-gradient(150deg,rgba(29,85,91,.45),rgba(8,35,55,.98));border:1px solid rgba(95,210,211,.23);border-radius:21px;padding:34px;min-height:345px}
.kou-detail p{font-size:14px;line-height:1.85}
.kou-detail a{margin-top:auto}
.verification-label{margin:23px 0;font-size:11px;color:#e3ba7e;border-left:2px solid #e0aa66;padding-left:12px}
.research-mission{margin-top:17px;background:radial-gradient(ellipse at 90% 0,rgba(50,181,187,.16),transparent 55%),linear-gradient(140deg,rgba(10,42,62,.98),rgba(9,29,48,.98));border:1px solid rgba(99,209,212,.28);border-radius:20px;overflow:hidden;box-shadow:0 16px 52px rgba(3,14,29,.12)}
.research-mission-intro{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:28px;align-items:center;padding:23px 27px}
.research-mission-intro h3{font:500 clamp(24px,2.5vw,34px)/1.1 var(--serif);color:#f3f9f7;margin:10px 0 9px}
.research-mission-intro h3 em{font-style:italic;color:#9ceee1}
.research-mission-intro p{font-size:11px;line-height:1.7;color:#b0cbd4;max-width:900px}
.research-open{display:flex;align-items:center;gap:12px;justify-content:space-between;min-width:220px;padding:12px 15px;border:1px solid rgba(100,219,220,.46);border-radius:999px;background:rgba(27,101,108,.24);color:#b4f5ea;font-weight:700;font-size:11px;white-space:nowrap;transition:background .2s,border-color .2s}
.research-open:hover,.research-open[aria-expanded=true]{background:rgba(37,154,151,.23);border-color:#8be7dd}
.research-open span{font-size:20px;font-weight:400;line-height:1}
.research-mission-body{display:grid;gap:16px;padding:0 27px 23px}
.research-mission-body[hidden]{display:none}
.research-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.research-tab{display:flex;flex-direction:column;align-items:flex-start;text-align:left;gap:6px;padding:16px 19px;border:1px solid rgba(120,200,211,.18);border-radius:13px;background:rgba(4,31,50,.62);color:#c5dce2;min-height:104px;transition:border-color .2s,background .2s,transform .2s}
.research-tab small{font-size:9px;letter-spacing:.16em;color:#6ebac3;font-weight:700}
.research-tab strong{font:500 clamp(17px,1.8vw,22px) var(--serif);color:#eaf7f5}
.research-tab span{font-size:10px;color:#9bbbc6;margin-top:auto}
.research-tab:hover{transform:translateY(-2px);border-color:rgba(120,234,221,.56)}
.research-tab.active{border-color:#7ae5d9;background:linear-gradient(125deg,rgba(23,102,106,.55),rgba(17,51,72,.78))}
.research-insight{display:grid;grid-template-columns:minmax(0,1fr) minmax(240px,.64fr);gap:20px;padding:22px 23px;background:rgba(21,59,75,.48);border:1px solid rgba(131,215,212,.15);border-radius:14px}
.research-insight h4{font:500 clamp(22px,2.3vw,29px)/1.15 var(--serif);margin:9px 0 8px;color:#f5faf7}
.research-insight p{font-size:12px;line-height:1.7;color:#bed7dd;max-width:660px}
.research-output{display:grid;gap:8px;border-left:1px solid rgba(109,198,208,.24);padding-left:22px;align-content:start}
.research-output small{font-size:9px;letter-spacing:.13em;color:#82d7d3;font-weight:700}
.research-output strong,.research-output span{font-size:11px;line-height:1.6;font-weight:500;color:#e0eeee}
.research-output strong{margin-bottom:6px}
.research-evidence{display:flex;align-items:center;justify-content:space-between;gap:17px;color:#9bb9c4;font-size:10px;line-height:1.7}
.research-evidence>span{max-width:710px}
.research-evidence>div{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:9px}
.research-evidence a{color:#97e7df;border-bottom:1px solid rgba(127,228,219,.4);padding-bottom:2px;white-space:nowrap;font-weight:700;text-decoration:none}
.research-evidence a:hover{color:#fff;border-color:#fff}
.systems-boundary{display:grid;grid-template-columns:220px 1fr;gap:5px 20px;padding:21px 24px;margin-top:17px;background:rgba(10,39,57,.82);border-radius:17px;border:1px solid rgba(120,201,206,.13)}
.systems-boundary b{font-size:11px;letter-spacing:.13em;color:#77ced1}
.systems-boundary span{font:500 18px var(--serif);letter-spacing:.02em;color:#dbe9ec}
.systems-boundary small{grid-column:2;font-size:11px;color:#8fb1bd}
.timing-axis{display:grid;grid-template-columns:repeat(3,1fr);gap:13px;margin-top:12px}
.timing-event{padding:23px 22px;min-height:167px;text-align:left;display:flex;align-items:flex-start;flex-direction:column;gap:10px;background:rgba(12,47,65,.88);border:1px solid rgba(138,198,213,.19);border-radius:18px;transition:.18s}
.timing-event span{font:500 29px var(--serif);color:#80d5da}
.timing-event b{font-size:13px;color:#e6f1ee}
.timing-event small{font-size:11px;color:#8fafbb}
.timing-event:hover,.timing-event.active{border-color:rgba(89,233,221,.68);background:linear-gradient(155deg,rgba(31,100,103,.65),rgba(10,44,61,.96))}
.timing-detail{display:grid;grid-template-columns:1.4fr .8fr;gap:20px;margin-top:17px}
.timing-detail>div{border:1px solid rgba(117,197,208,.2);background:rgba(15,53,71,.8);padding:24px;border-radius:20px;display:flex;flex-direction:column;align-items:flex-start}
.timing-detail h3{margin:12px 0}
.timing-detail a{margin-top:22px}
.timing-ask{background:linear-gradient(135deg,rgba(30,109,111,.7),rgba(22,62,79,.85))!important}
.timing-ask small{letter-spacing:.15em;font-size:10px;color:#7ce4dd}
.timing-ask strong{font:500 29px/1.14 var(--serif);margin:17px 0;color:#f1fcf7}
.portfolio-grid{display:grid;grid-template-columns:1fr .87fr;gap:17px}
.portfolio-showcase{min-height:480px;display:flex;flex-direction:column;align-items:flex-start;padding:29px 33px;border-radius:23px;border:1px solid rgba(81,218,218,.29);background:radial-gradient(circle at 40% 36%,rgba(15,154,165,.2),transparent 55%),linear-gradient(155deg,#10384d,#081f36 80%);overflow:hidden}
.portfolio-symbol{height:160px;width:100%;position:relative;display:grid;place-items:center;margin:15px 0 8px}
.portfolio-symbol span{position:absolute;width:115px;height:115px;border:1px solid rgba(74,211,221,.7);border-radius:50%;box-shadow:0 0 40px rgba(44,210,206,.09);transform:rotateX(65deg) rotate(-25deg)}
.portfolio-symbol span:nth-child(2){transform:rotateY(70deg) rotate(44deg);border-color:rgba(232,176,93,.7)}
.portfolio-symbol span:nth-child(3){width:58px;height:58px;transform:none;background:radial-gradient(circle at 30% 25%,#8bf5e4,#12648b 67%,#06243f);border:0;box-shadow:0 0 35px #2ae7da45}
.portfolio-showcase h3{font:500 clamp(28px,3vw,42px)/1.05 var(--serif);margin:12px 0}
.portfolio-showcase p{font-size:13px;color:#b9d5dc;line-height:1.8}
.portfolio-status{margin-top:auto;padding-top:16px;color:#dbb77f;font-size:11px}
.portfolio-stages{border-radius:22px;border:1px solid rgba(106,188,200,.17);padding:29px;background:rgba(11,42,60,.82)}
.portfolio-options{display:grid;gap:10px;margin:22px 0}
.portfolio-options button{border:1px solid rgba(112,202,213,.16);border-radius:13px;background:#10364b;color:#93b9c7;text-align:left;padding:15px;font-size:12px}
.portfolio-options button:hover,.portfolio-options button.active{border-color:rgba(78,229,220,.54);background:#1b5965;color:#fff}
.portfolio-explanation{border-top:1px solid var(--line);padding-top:10px;min-height:130px}
.portfolio-protection{font-size:11px;color:#cba879;border-left:2px solid #cba879;padding-left:12px;line-height:1.7;margin-top:26px}
@media (max-width:1180px){.evidence-tile{min-height:185px;padding:18px}.evidence-tile strong{font-size:68px}.portfolio-showcase{min-height:420px}}
@media (max-width:800px){.rail .scene-nav{display:flex;overflow-x:auto;overflow-y:hidden;flex:initial}.rail .nav-item{padding:8px 12px}.why-distinction{grid-template-columns:1fr;gap:8px}.evidence-trio{grid-template-columns:1fr 1fr}.evidence-tile{min-height:165px}.evidence-explainer{grid-template-columns:1fr}.kou-grid,.timing-detail,.portfolio-grid{grid-template-columns:1fr}.kou-detail{min-height:290px}.timing-axis{grid-template-columns:1fr 1fr}.portfolio-showcase{min-height:360px}.systems-boundary{grid-template-columns:1fr}.systems-boundary small{grid-column:auto}}
@media (max-width:540px){.evidence-trio,.timing-axis{grid-template-columns:1fr}.evidence-tile{min-height:140px}.evidence-tile strong{font-size:55px;margin:10px 0}.evidence-explainer,.kou-detail,.timing-detail>div,.portfolio-stages,.portfolio-showcase{padding:20px}.kou-goal{grid-template-columns:50px 1fr 10px}.portfolio-symbol{height:130px}}
@media (prefers-reduced-motion:reduce){.evidence-tile,.timing-event{transition:none}}

/* NEXITT institutional model: governance draft vs pilot behavior. */
.draft-banner{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:15px 20px;margin-top:15px;border-radius:15px;border:1px solid rgba(232,180,104,.25);background:linear-gradient(120deg,rgba(151,104,43,.15),rgba(17,52,69,.8))}
.head-actions a.icon-button,.zip-download{text-decoration:none}.offline-label{cursor:default;opacity:.85}
.draft-banner strong,.governance-disclaimer b,.trace-rule b{flex:0 0 220px;font-size:10px;letter-spacing:.14em;color:#eac08b;line-height:1.6}
.draft-banner span,.governance-disclaimer span,.trace-rule span{color:#bad0d6;font-size:11px;line-height:1.7}
.workflow-head{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:17px}
.workflow-toggle{display:flex;flex-wrap:wrap;padding:5px;border-radius:14px;background:rgba(7,29,47,.9);border:1px solid rgba(93,184,204,.22);gap:5px}
.workflow-toggle button{border:0;border-radius:10px;background:transparent;color:#8aafbe;font-size:12px;padding:12px 15px;transition:background .2s,color .2s}
.workflow-toggle button.selected{background:linear-gradient(115deg,#1b6571,#225365);color:#effffb;box-shadow:0 5px 18px rgba(1,11,24,.2)}
.workflow-context{font-size:10px;letter-spacing:.04em;color:#91abb8;text-align:right}
.process-note{margin-top:15px;border:1px solid rgba(80,196,193,.17);border-radius:12px;background:rgba(11,47,63,.72);padding:15px 19px;display:flex;gap:18px;align-items:center}
.process-note b{font-size:11px;color:#9ce8de;white-space:nowrap}.process-note span{font-size:11px;color:#9fb9c5;line-height:1.6}
.institution-forms{margin-top:20px;border:1px solid rgba(107,207,211,.22);border-radius:23px;padding:28px;background:radial-gradient(ellipse at 88% 0%,rgba(40,179,189,.12),transparent 45%),#09263b}
.forms-title{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:22px}.forms-title h3{font:500 clamp(28px,3.3vw,44px)/1.08 var(--serif);letter-spacing:-.02em;margin:12px 0 0}.forms-title h3 em{color:#8fe8df;font-style:normal}.forms-version{font-size:10px;letter-spacing:.12em;color:#bb9f7e;border:1px solid rgba(208,169,111,.28);border-radius:999px;padding:10px 13px;white-space:nowrap}
.forms-explorer{display:grid;grid-template-columns:.86fr 1.14fr;gap:22px}.form-choices{display:grid;grid-template-columns:1fr;gap:7px;align-content:start}.form-choices button{text-align:left;padding:11px 15px;border:1px solid rgba(108,177,189,.22);background:rgba(15,55,72,.8);color:#9abec8;border-radius:10px;font-size:12px}.form-choices button.active,.form-choices button:hover{background:linear-gradient(100deg,#17566a,#1a4456);border-color:#56c7c8;color:#f3fffb}
.form-inspect{padding:26px;min-height:270px;display:flex;flex-direction:column;border-radius:18px;background:linear-gradient(125deg,rgba(27,91,100,.56),rgba(10,43,62,.9));border:1px solid rgba(79,196,207,.23)}
.form-inspect small{font-size:11px;letter-spacing:.1em;color:#7bced1}.form-inspect h4{font:500 clamp(23px,2.5vw,34px)/1.1 var(--serif);margin:13px 0;color:#f3fffb}.form-inspect p{font-size:13px;color:#c3dbe0;line-height:1.75}
.form-scope{margin-top:auto;padding-top:18px;display:flex;gap:8px 24px;flex-wrap:wrap;justify-content:space-between;border-top:1px solid rgba(126,222,223,.19)}.form-scope span,.form-scope strong{font-size:11px;font-weight:500;color:#99d8d6}.form-scope strong{color:#eac08b}
.trace-rule{display:flex;gap:22px;align-items:center;margin-top:18px;padding:15px 19px;border-radius:13px;background:rgba(16,43,60,.75);border:1px solid rgba(116,195,211,.16)}
.governance-layout .roles{max-height:510px;overflow-y:auto;align-content:start;gap:6px;padding-right:7px;scrollbar-color:#36788c transparent;scrollbar-width:thin}
.governance-layout .roles button{padding:10px 14px;min-height:40px;font-size:12px}
.role-group-title{font-size:10px;letter-spacing:.15em;color:#79bfc3;font-weight:700;padding:13px 5px 5px}
.governance-disclaimer{display:flex;align-items:center;gap:25px;margin-top:14px;padding:16px 21px;background:rgba(68,85,83,.15);border:1px solid rgba(214,177,125,.22);border-radius:14px}
@media(max-width:1100px){.workflow-head{align-items:flex-start;flex-direction:column}.workflow-context{text-align:left}.forms-explorer{grid-template-columns:1fr 1fr}.governance-layout .roles{max-height:360px}.draft-banner strong,.governance-disclaimer b,.trace-rule b{flex-basis:170px}}
@media(max-width:800px){.forms-explorer{grid-template-columns:1fr}.form-choices{grid-template-columns:repeat(2,minmax(0,1fr))}.forms-title{align-items:flex-start;flex-direction:column}.form-inspect{min-height:220px}.workflow-toggle{width:100%}.workflow-toggle button{flex:1 1 190px}.draft-banner,.governance-disclaimer,.trace-rule{align-items:flex-start;flex-direction:column;gap:8px}.draft-banner strong,.governance-disclaimer b,.trace-rule b{flex-basis:auto}.process-note{align-items:flex-start;flex-direction:column;gap:5px}}
@media(max-width:540px){.institution-forms{padding:18px}.form-choices{grid-template-columns:1fr}.form-inspect{padding:20px}.governance-layout .roles{max-height:340px}.workflow-toggle button{font-size:11px;padding:11px}.forms-title h3{font-size:33px}}
@media(prefers-reduced-motion:reduce){.workflow-toggle button{transition:none}}

/* 3D ecosystem → twelve real-logo jigsaw pieces. Pure SVG; no video or heavy 3D asset. */
.ecosystem-puzzle-layout{grid-template-columns:minmax(0,1.08fr) minmax(340px,.92fr);gap:16px;align-items:stretch}
.ecosystem-puzzle-layout .webgl-stage{height:575px;border-radius:23px;border-color:rgba(85,218,216,.37);background:radial-gradient(ellipse at 50% 48%,#1b4c63 0%,#0b2b41 40%,#041625 88%);box-shadow:inset 0 0 90px rgba(4,18,34,.8),0 20px 55px rgba(1,12,25,.2)}
.ecosystem-puzzle-layout .webgl-stage::after{content:'';position:absolute;inset:24px;border:1px solid rgba(117,220,214,.13);border-radius:50%;pointer-events:none;transform:scaleX(.72) rotate(-25deg);box-shadow:0 0 0 55px rgba(20,108,122,.025)}
.ecosystem-puzzle-layout .model-meta{z-index:2}
.puzzle-assembly{position:relative;isolation:isolate;min-height:575px;overflow:hidden;padding:26px 28px 22px;border:1px solid rgba(93,208,213,.33);border-radius:23px;background:radial-gradient(ellipse at 50% 53%,rgba(33,151,167,.22),transparent 54%),linear-gradient(145deg,#14394d 0%,#092637 54%,#071c30 100%);box-shadow:inset 0 1px rgba(213,252,246,.06),0 23px 60px rgba(1,9,21,.23)}
.puzzle-assembly::before{content:'';position:absolute;inset:0;background:linear-gradient(120deg,transparent 12%,rgba(255,255,255,.025) 34%,transparent 54%);pointer-events:none}
.puzzle-topline{display:flex;align-items:center;justify-content:space-between;gap:12px;color:#83bdc7;font-size:10px;letter-spacing:.17em;font-weight:700;position:relative;z-index:1}
.puzzle-topline strong{font:400 23px/1 var(--serif);letter-spacing:.01em;color:#c5f9e9;font-variant-numeric:tabular-nums}
.puzzle-spark{color:#e9b873;font-size:14px;letter-spacing:0;margin-right:5px}
.puzzle-assembly h3{position:relative;z-index:1;font:500 clamp(26px,2.7vw,38px)/1.06 var(--serif);letter-spacing:-.028em;color:#f5fffa;margin:20px 0 2px}
.puzzle-assembly h3 em{color:#90e6da;font-style:normal}
.puzzle-artwork{position:relative;display:grid;place-items:center;height:330px;width:min(100%,360px);margin:0 auto;isolation:isolate}
.puzzle-artwork::before{content:'';position:absolute;inset:10%;background:radial-gradient(circle,rgba(58,242,213,.18),transparent 67%);filter:blur(21px);pointer-events:none}
.puzzle-orbit{position:absolute;left:14%;top:14%;width:72%;height:72%;border:1px solid rgba(112,225,216,.22);border-radius:50%;transform:rotateX(70deg) rotate(25deg);pointer-events:none}
.puzzle-orbit-b{border-color:rgba(231,176,97,.22);transform:rotateY(68deg) rotate(-31deg)}
.puzzle-canvas{position:relative;z-index:1;width:100%;height:100%;overflow:visible;filter:drop-shadow(0 20px 32px rgba(3,10,24,.38))}
.puzzle-slot{fill:rgba(15,53,70,.40);stroke:rgba(125,215,216,.37);stroke-width:1.7;stroke-dasharray:5 7;vector-effect:non-scaling-stroke}
.puzzle-fragment-glass{fill:rgba(67,170,179,.15);stroke:rgba(160,245,221,.47);stroke-width:2;vector-effect:non-scaling-stroke}
.puzzle-piece{opacity:0;transform:translate(var(--arrival-x,38px),var(--arrival-y,-42px)) scale(.84) rotate(-8deg);transform-box:fill-box;transform-origin:center;transition:transform .88s cubic-bezier(.19,1,.22,1),opacity .44s ease;pointer-events:none;will-change:transform,opacity}
.puzzle-piece.is-fitted{opacity:1;transform:translate(0,0) scale(1) rotate(0deg)}
.puzzle-piece.just-fitted{animation:puzzle-piece-glint 1.05s ease-out 1}
.puzzle-final-image{opacity:0;transform:scale(.96);transform-origin:center;transition:opacity 1s ease,transform 1.1s cubic-bezier(.18,1,.22,1);pointer-events:none;filter:drop-shadow(0 0 9px rgba(61,231,211,.4))}
.puzzle-assembly.is-complete .puzzle-final-image{opacity:1;transform:scale(1)}
.puzzle-assembly.is-complete .puzzle-slot{opacity:.1}
.puzzle-assembly.is-complete .puzzle-artwork::before{background:radial-gradient(circle,rgba(65,241,199,.28),transparent 74%)}
.puzzle-complete-badge{position:absolute;bottom:8px;left:50%;white-space:nowrap;transform:translate(-50%,9px);z-index:3;opacity:0;padding:8px 15px;border-radius:999px;border:1px solid rgba(119,248,216,.53);color:#d1fff2;font-size:9px;letter-spacing:.17em;font-weight:700;background:rgba(7,57,62,.89);box-shadow:0 8px 22px rgba(0,15,22,.4);transition:opacity .5s,transform .5s;pointer-events:none}
.puzzle-assembly.is-complete .puzzle-complete-badge{opacity:1;transform:translate(-50%,0)}
.puzzle-progress-track{height:6px;overflow:hidden;border-radius:999px;background:rgba(125,205,211,.14);border:1px solid rgba(128,211,209,.13)}
.puzzle-progress-track span{display:block;width:0;height:100%;background:linear-gradient(90deg,#2a91a9,#5de3d2 65%,#e7c28b);border-radius:inherit;box-shadow:0 0 18px rgba(79,231,210,.6);transition:width .6s cubic-bezier(.2,.8,.2,1)}
.puzzle-status{min-height:34px;padding-top:13px;color:#d4ede9;font-size:12px;line-height:1.45;font-weight:600}
.puzzle-footer{margin-top:10px;display:flex;align-items:center;justify-content:space-between;gap:12px}
.puzzle-footer span{font-size:10px;color:#7eb5bc;line-height:1.4}
.puzzle-reset{flex-shrink:0;background:rgba(14,73,82,.42);border-color:rgba(113,218,218,.3);white-space:nowrap}
.ecosystem-puzzle-layout .ecosystem-controls{grid-column:1/-1;min-height:auto;display:grid;grid-template-columns:minmax(0,1.03fr) minmax(0,.83fr) minmax(0,1.14fr);align-items:stretch;gap:23px;padding:23px 26px;border-radius:22px;background:linear-gradient(120deg,rgba(12,45,62,.97),rgba(8,36,52,.93));border-color:rgba(99,194,207,.23)}
.ecosystem-control-group .card-head,.ecosystem-node-panel .card-head{margin-bottom:16px}
.ecosystem-puzzle-layout .zoom-control{margin-top:15px}
.ecosystem-puzzle-layout .model-actions{margin-top:8px}
.ecosystem-puzzle-layout .selected-node{margin-top:0;padding:3px 23px;border-top:0;border-left:1px solid rgba(115,204,212,.18);border-right:1px solid rgba(115,204,212,.18)}
.ecosystem-puzzle-layout .selected-node h3{font:500 clamp(26px,3vw,38px)/1.09 var(--serif);margin:12px 0}
.ecosystem-puzzle-layout .selected-node p{font-size:12px;line-height:1.75;color:#afcdd4}
.puzzle-selection-note{font-size:10px;color:#7ed4cb;display:block;margin-top:21px;line-height:1.6}
.ecosystem-puzzle-layout .node-pills{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;overflow:visible;max-height:none;margin-top:0}
.ecosystem-puzzle-layout .node-pills button{text-align:left;position:relative;min-height:41px;border-radius:10px;padding:8px 19px 8px 9px;font-size:10px;line-height:1.3;transition:background .2s,border-color .2s;overflow:hidden}
.ecosystem-puzzle-layout .node-pills button.collected{border-color:rgba(96,240,205,.57);color:#c3f3e6;background:rgba(34,118,116,.36)}
.ecosystem-puzzle-layout .node-pills button.collected::after{content:'✓';position:absolute;right:7px;top:50%;transform:translateY(-50%);font-size:10px;color:#8ff7d5}
.ecosystem-puzzle-layout .node-pills button.active{outline:1px solid rgba(112,250,228,.4);outline-offset:1px}
.ecosystem-puzzle-layout .node-pills button:hover{background:rgba(36,113,126,.7);border-color:rgba(124,234,219,.7)}
.ecosystem-concept-note{font-size:10px;color:#7a9fac;line-height:1.7;margin-top:13px;padding-left:4px}
@keyframes puzzle-piece-glint{0%,100%{filter:brightness(1)}45%{filter:brightness(1.65) drop-shadow(0 0 11px rgba(110,255,221,.55))}}
@media(max-width:1180px){.ecosystem-puzzle-layout{grid-template-columns:1fr 1fr}.ecosystem-puzzle-layout .webgl-stage{height:550px}.puzzle-assembly{min-height:550px;padding:24px}.puzzle-artwork{height:315px}.ecosystem-puzzle-layout .ecosystem-controls{gap:16px;padding:21px}.ecosystem-puzzle-layout .node-pills{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:950px){.ecosystem-puzzle-layout{grid-template-columns:1fr}.ecosystem-puzzle-layout .webgl-stage{height:420px}.puzzle-assembly{min-height:540px}.ecosystem-puzzle-layout .ecosystem-controls{grid-template-columns:1fr 1fr}.ecosystem-puzzle-layout .ecosystem-node-panel{grid-column:1/-1}.ecosystem-puzzle-layout .node-pills{grid-template-columns:repeat(4,minmax(0,1fr))}.ecosystem-puzzle-layout .selected-node{border-right:0}}
@media(max-width:640px){.ecosystem-puzzle-layout .webgl-stage{height:360px}.puzzle-assembly{min-height:0;padding:20px 18px 21px}.puzzle-assembly h3{font-size:30px}.puzzle-artwork{height:285px}.ecosystem-puzzle-layout .ecosystem-controls{grid-template-columns:1fr;gap:19px;padding:19px}.ecosystem-puzzle-layout .selected-node{border:0;border-top:1px solid rgba(115,204,212,.2);border-bottom:1px solid rgba(115,204,212,.2);padding:18px 0}.ecosystem-puzzle-layout .ecosystem-node-panel{grid-column:auto}.ecosystem-puzzle-layout .node-pills{grid-template-columns:repeat(2,minmax(0,1fr))}.puzzle-footer{align-items:flex-start}.puzzle-footer span{max-width:45%}}
@media(prefers-reduced-motion:reduce){.puzzle-piece,.puzzle-final-image,.puzzle-progress-track span,.puzzle-complete-badge{transition:none!important;animation:none!important}}
@media(max-width:1000px){.research-mission-intro{grid-template-columns:1fr;gap:14px}.research-open{justify-self:start}.research-insight{grid-template-columns:1fr}.research-output{border-left:0;border-top:1px solid rgba(109,198,208,.24);padding:16px 0 0}}
@media(max-width:700px){.research-mission-intro{padding:21px}.research-mission-body{padding:0 21px 21px}.research-tabs{grid-template-columns:1fr}.research-tab{min-height:0}.research-evidence{flex-direction:column;align-items:flex-start}.research-evidence>div{justify-content:flex-start}}
@media(prefers-reduced-motion:reduce){.research-tab,.research-open{transition:none}.research-tab:hover{transform:none}}
body.reduce-motion .puzzle-piece,body.reduce-motion .puzzle-final-image,body.reduce-motion .puzzle-progress-track span,body.reduce-motion .puzzle-complete-badge{transition:none!important;animation:none!important}
