.cp-root{--cp-border:#b9c9bf;--cp-muted:#4a6159;color:var(--gft-night);font-variant-numeric:tabular-nums lining-nums;min-width:0}.cp-root [hidden]{display:none!important}.cp-root p{line-height:1.8}.cp-root button,.cp-root input,.cp-root select{font:inherit;color:inherit}.cp-root button{cursor:pointer;min-height:46px;border:1px solid var(--gft-forest);background:transparent;padding:11px 15px;font-size:11px;font-weight:650;line-height:1.5}.cp-root button:hover{background:#dfe8df}.cp-root button:disabled{cursor:not-allowed;opacity:.45}.cp-root :is(button,input,select,a,[tabindex]):focus-visible{outline:3px solid var(--gft-ochre);outline-offset:4px}.cp-root h3{font-size:clamp(24px,3vw,37px);font-weight:800;line-height:1.13;letter-spacing:-.045em}.cp-root h4{font-size:15px;font-weight:750;line-height:1.5}.cp-root .cp-kicker{font:9px/1.6 var(--gft-font-mono);letter-spacing:.11em;text-transform:uppercase}.cp-root .cp-small{font:11px/1.85 var(--gft-font-display);color:var(--cp-muted)}.cp-intro{display:grid;grid-template-columns:1fr 1fr;gap:16px 44px;margin-bottom:40px}.cp-intro .cp-kicker{grid-column:1/-1}.cp-intro>p:not(.cp-kicker){font-size:14px}.cp-provenance{border-left:2px solid var(--gft-ochre);padding-left:20px;color:var(--cp-muted)}
.cp-controls{display:grid;grid-template-columns:1fr 1fr;gap:40px;margin-bottom:36px}.cp-controls fieldset{border:1px solid var(--cp-border);padding:28px;min-width:0;margin:0}.cp-controls legend{font-weight:750;font-size:17px;letter-spacing:-.025em;padding-inline:8px}.cp-date-fields{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:14px}.cp-date-fields label{display:grid;gap:9px;font-size:11px}.cp-root :is(input[type=number],select){border:1px solid #9daf9f;background:#fdfcf9;border-radius:0;min-height:46px;padding:10px 12px;font:13px var(--gft-font-mono);width:100%;max-width:100%}.cp-paired{display:grid;grid-template-columns:1fr 90px;gap:12px;align-items:center;border-top:1px solid var(--cp-border);padding-top:18px;margin-top:18px}.cp-paired label{font-size:12px;font-weight:650}.cp-paired label span{display:block;font:9px/1.5 var(--gft-font-mono);color:var(--cp-muted);margin-top:6px}.cp-paired input[type=number]{text-align:right}.cp-paired input[type=range]{grid-column:1/-1;min-height:44px;width:100%;margin:0;accent-color:var(--gft-forest);cursor:ew-resize}.cp-config>.cp-small:last-child{margin-top:8px}.cp-switch-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:20px}.cp-switch{display:flex;align-items:center;gap:8px;min-height:46px;font-size:11px;padding:10px;border:1px solid var(--cp-border);cursor:pointer;position:relative}.cp-switch:has(:checked){background:#e2ebe6;border-color:#8ca799}.cp-switch input{width:18px;height:18px;accent-color:var(--gft-forest);flex-shrink:0;cursor:pointer}.cp-switch span{overflow-wrap:anywhere}.cp-switch__mark{margin-left:auto;flex-shrink:0;width:4px;height:4px;border-radius:50%;background:#a4b3a8}.cp-switch:has(:checked) .cp-switch__mark{background:var(--gft-forest)}.cp-presets{display:flex;gap:8px;flex-wrap:wrap;margin-top:22px;margin-bottom:14px}.cp-presets button{font-size:10px;padding:10px 12px}.cp-presets button:first-child{background:var(--gft-forest);color:var(--gft-paper)}.cp-error,.cp-notice{padding:20px;border:1px solid var(--gft-ochre);background:#f3e6d1;margin-bottom:24px;font-size:13px}.cp-notice{background:#e4ebe5;border-color:var(--cp-border)}
.cp-instrument{display:grid;grid-template-columns:1.1fr .9fr;border:1px solid var(--gft-forest);margin-block:24px 60px}.cp-dial-panel{padding:26px;background:var(--gft-night);color:var(--gft-paper);min-width:0}.cp-panel-head{display:flex;align-items:center;justify-content:space-between;gap:16px}.cp-panel-head .cp-kicker{color:#b9d0c1}.cp-status-chip{padding:5px 8px;border:1px solid #6bb68f66;font:8px/1.4 var(--gft-font-mono);color:#b9d0c1}.cp-ring-wrap{position:relative;isolation:isolate;margin:16px auto 8px;max-width:540px;aspect-ratio:1}.cp-ring{display:block;width:100%;height:100%;overflow:visible}.cp-phase-pre{stroke:var(--gft-sage)}.cp-phase-launch{stroke:var(--gft-ochre)}.cp-phase-sustained{stroke:#a4b0df}.cp-fill-pre{fill:var(--gft-sage)}.cp-fill-launch{fill:var(--gft-ochre)}.cp-fill-sustained{fill:#a4b0df}.cp-bg-pre{background:var(--gft-forest)}.cp-bg-launch{background:var(--gft-ochre)}.cp-bg-sustained{background:var(--gft-indigo)}.cp-ring text{user-select:none}.cp-dial-centre{position:absolute;inset:28% 28%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;pointer-events:none}.cp-dial-centre>.cp-kicker{font-size:8px;color:#b9d0c1;white-space:nowrap}.cp-dial-centre strong{font:800 clamp(34px,4vw,60px)/1.25 var(--gft-font-display);letter-spacing:-.06em;display:block}.cp-dial-date{font:10px/1.8 var(--gft-font-mono);color:#bfd2c6}.cp-dial-centre output{display:block;font:550 clamp(16px,2vw,26px)/1.5 var(--gft-font-mono);margin-top:17%;white-space:nowrap}.cp-dial-centre .cp-small{font-size:8px!important;line-height:1.5;color:#c7d8cc!important;white-space:nowrap}.cp-phase-key{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:10px 18px;margin-block:10px 22px;font:9px var(--gft-font-mono);color:#bfd2c6}.cp-phase-key span{display:flex;align-items:center;gap:7px}.cp-phase-key i{width:9px;height:9px;display:inline-block}.cp-phase-key .cp-bg-pre{background:var(--gft-sage)}.cp-phase-key .cp-bg-sustained{background:#a4b0df}.cp-month-navigation{display:grid;grid-template-columns:46px 1fr 46px;gap:10px;align-items:end}.cp-month-navigation>label{font:9px/1.6 var(--gft-font-mono);color:#bfd2c6;display:grid;gap:6px}.cp-dial-panel select{background:#123c36;border-color:#6bb68f66;color:var(--gft-paper);font-size:11px}.cp-dial-panel button{color:var(--gft-paper);border-color:#6bb68f66}.cp-dial-panel button:hover{background:#205447}.cp-month-navigation>button{font-size:18px;padding:8px;min-height:46px}.cp-month-buttons{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px;margin-top:14px}.cp-month-buttons button{padding:8px 2px;font:10px var(--gft-font-mono);min-height:44px}.cp-month-buttons button[aria-pressed=true]{background:var(--gft-sage);border-color:var(--gft-sage);color:var(--gft-night);font-weight:800}.cp-current{width:100%;margin-top:14px;font-size:10px!important}.cp-dial-panel .cp-dial-note{color:#bdd2c4;font-size:10px;margin-top:18px}
.cp-work-order{padding:40px 32px;min-width:0;display:flex;flex-direction:column}.cp-work-order>.cp-kicker{color:var(--cp-muted)}.cp-work-date{font:12px/1.8 var(--gft-font-mono);margin-top:40px}.cp-work-order h3{margin-block:16px;min-height:3.4em}.cp-work-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding-block:24px;margin-block:24px;border-block:1px solid var(--cp-border)}.cp-work-metrics>div{display:flex;flex-direction:column;gap:14px}.cp-work-metrics span{font-size:10px;color:var(--cp-muted)}.cp-work-metrics output{display:block;font:17px var(--gft-font-mono);overflow-wrap:anywhere}.cp-channel-list{display:flex;flex-wrap:wrap;gap:8px;list-style:none;padding:0;margin-top:16px}.cp-channel-list li{border:1px solid #acbfb0;background:#e7eee6;padding:9px 12px;font:11px var(--gft-font-mono)}.cp-omitted{font-size:11px;color:var(--cp-muted);margin-top:16px;min-height:4em}.cp-interpretation{font-size:13px;line-height:1.9;border-left:3px solid var(--gft-ochre);padding:8px 0 8px 18px;margin-top:24px;min-height:140px}.cp-work-order .cp-work-foot{margin-top:auto;padding-top:28px;border-top:1px solid var(--cp-border)}
.cp-year{padding:32px;border:1px solid var(--cp-border);margin-bottom:48px;min-width:0}.cp-section-head{display:grid;grid-template-columns:1.2fr .8fr;gap:32px;align-items:end}.cp-section-head h3{margin-top:14px;font-size:28px;max-width:22ch}.cp-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;margin-top:32px;padding-block:24px;border-block:1px solid var(--cp-border)}.cp-kpis>div{display:grid;gap:12px}.cp-kpis span{font-size:10px;color:var(--cp-muted)}.cp-kpis output{display:block;font:24px/1.4 var(--gft-font-mono);letter-spacing:-.05em;overflow-wrap:anywhere}.cp-load-chart{position:relative;margin-top:32px;padding-top:40px;height:220px;isolation:isolate}.cp-capacity-rule{position:absolute;left:0;right:0;border-top:1px dashed #7f6140;z-index:3;pointer-events:none}.cp-capacity-rule>span{position:absolute;right:0;bottom:5px;font:9px/1.4 var(--gft-font-mono);background:var(--gft-paper);padding:3px 5px;color:#65400f}.cp-chart-columns{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:10px;height:180px}.cp-chart-col{position:relative;display:flex;flex-direction:column;justify-content:end;text-align:center;min-width:0}.cp-chart-col>output{position:absolute;top:-28px;left:0;right:0;font:10px var(--gft-font-mono);overflow-wrap:anywhere}.cp-bar-track{position:relative;height:150px;width:100%}.cp-bar-a,.cp-bar-b{position:absolute;display:block;bottom:0;height:100%;transform-origin:center bottom}.cp-bar-b{left:20%;width:60%;z-index:1}.cp-bar-a{left:5%;width:90%;border:1px solid #4a6159;background:transparent;z-index:2}.cp-chart-month{height:30px;display:block;padding-top:10px;font:9px var(--gft-font-mono)}.cp-phase-totals{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;border-top:1px solid var(--cp-border);padding-block:20px;margin-top:18px}.cp-phase-totals>div{display:grid;gap:10px}.cp-phase-totals span{font-size:11px}.cp-phase-totals output{display:block;font:12px var(--gft-font-mono)}
.cp-scenarios{display:grid;grid-template-columns:1.1fr .9fr;gap:24px 40px;background:#e2ebe6;padding:32px;margin-block:48px}.cp-scenarios h3{font-size:28px;margin-block:16px}.cp-scenarios p{font-size:13px}.cp-compare-readout{padding:24px;border:1px solid #9db4a7;display:flex;flex-direction:column;justify-content:center;min-height:200px}.cp-compare-readout>p:first-child{font:10px/1.8 var(--gft-font-mono);min-height:3.6em}.cp-compare-readout output{display:block;font-size:24px;line-height:1.3;font-weight:750;letter-spacing:-.04em;margin-block:12px;min-height:2.6em}.cp-actions{display:flex;flex-wrap:wrap;gap:10px;grid-column:1/-1}.cp-actions button:first-child{background:var(--gft-forest);color:var(--gft-paper)}.cp-scenarios>[data-cp-action-status]{grid-column:1/-1;min-height:2em}.cp-link-fallback{grid-column:1/-1;font-size:11px}.cp-link-fallback input{display:block;width:100%;min-height:46px;font:11px var(--gft-font-mono);margin-top:10px;padding:12px;border:1px solid var(--gft-forest);background:var(--gft-paper)}
.cp-calendar,.cp-method,.cp-assumptions,.cp-limits{padding-top:40px;margin-top:52px;border-top:1px solid var(--cp-border)}.cp-root :is(.cp-calendar,.cp-method,.cp-assumptions,.cp-limits)>h3{margin-block:18px 24px;max-width:26ch}.cp-root :is(.cp-calendar,.cp-method,.cp-limits)>p:not(.cp-kicker){max-width:87ch;font-size:14px;margin-bottom:20px}.cp-table-scroll{overflow-x:auto;margin-top:24px;max-width:100%;overscroll-behavior-x:contain}.cp-root table{width:100%;border-collapse:collapse;text-align:left;line-height:1.7;font-size:11px}.cp-root caption{padding:0 0 16px;text-align:left;font:10px/1.7 var(--gft-font-mono);color:var(--cp-muted)}.cp-root th,.cp-root td{padding:16px 14px;vertical-align:top;border-bottom:1px solid var(--cp-border)}.cp-root thead{background:var(--gft-night);color:var(--gft-paper)}.cp-root thead th{font-size:10px;font-weight:600;white-space:nowrap}.cp-calendar table{min-width:890px}.cp-calendar tbody th{white-space:nowrap;font:12px var(--gft-font-mono);font-weight:550}.cp-calendar small{display:block;font-size:9px;margin-top:8px;color:var(--cp-muted)}.cp-calendar td:nth-child(2){min-width:230px;max-width:260px}.cp-calendar td:nth-child(3),.cp-calendar td:nth-child(4){min-width:145px}.cp-calendar td:nth-child(n+5){font:11px/1.8 var(--gft-font-mono);white-space:nowrap}.cp-table-phase{display:block;font:8px/1.7 var(--gft-font-mono);letter-spacing:.08em;text-transform:uppercase;margin-bottom:8px;color:var(--cp-muted)}.cp-calendar [data-cp-selected]{background:#e2ebe6}.cp-calendar [data-cp-selected] th{box-shadow:inset 3px 0 var(--gft-forest)}.cp-equations{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-block:28px}.cp-equations>div{background:#e9ede6;padding:24px}.cp-equations span{display:block;font-size:11px;font-weight:650}.cp-equations code{display:block;font:clamp(11px,1.15vw,16px)/1.8 var(--gft-font-mono);margin-block:18px;white-space:nowrap}.cp-equations p{font-size:11px}.cp-assumptions table{min-width:630px}.cp-assumptions tbody th{width:25%;font-weight:650}.cp-assumptions td:nth-child(2){width:20%;font-family:var(--gft-font-mono);font-size:10px}.cp-related{display:grid;grid-template-columns:1fr 1fr;gap:40px;margin-top:40px;padding:32px;background:var(--gft-night);color:var(--gft-paper)}.cp-related ul{list-style:none;padding:0}.cp-related li{display:flex;flex-direction:column;gap:7px;padding-block:20px;border-bottom:1px solid #6bb68f44;font-size:11px}.cp-paper-id{font:9px var(--gft-font-mono);color:var(--gft-sage)}.cp-related li>span:last-child{color:#bed2c4;font-size:10px;line-height:1.8}.cp-related p{font-size:12px;margin-top:20px;color:#c7d8cc}.cp-related .cp-small{color:#bed2c4;margin-top:18px}.cp-related-link{display:inline-flex;align-items:center;min-height:46px;padding-block:8px;font-size:12px;color:var(--gft-sage);margin-top:20px}.cp-nojs{padding:24px;border:1px solid var(--gft-ochre);margin-top:28px}.cp-root input[aria-invalid=true]{border-color:#9c420b;background:#fff1e4}
/* A dedicated source-derived splash grammar, scoped to this instrument only. */
[data-splash="comms-planner"] .gft-structure__warp,[data-splash="comms-planner"] .gft-structure__weft,[data-splash="comms-planner"] .gft-structure__nodes{display:none}[data-splash="comms-planner"] .gft-structure>path:not([data-splash-draw]){display:none}[data-splash="comms-planner"] .gft-structure>path[data-splash-draw]{stroke:#6bb68f;stroke-width:7px}[data-splash="comms-planner"] .gft-structure>path[data-splash-draw]:nth-of-type(1){display:none}[data-splash="comms-planner"] .gft-structure>path[data-splash-draw]:nth-of-type(2){stroke:#6bb68f}[data-splash="comms-planner"] .gft-structure>path[data-splash-draw]:nth-of-type(3){stroke:#c98a2b}[data-splash="comms-planner"] .gft-structure>path[data-splash-draw]:nth-of-type(4){stroke:#a4b0df}[data-splash="comms-planner"] .gft-splash__structure{inset:0 -4% 0 0}[data-splash="comms-planner"] .gft-splash__structure::after{background:linear-gradient(90deg,#072d2b 0%,#072d2b55 35%,transparent 65%)}.cp-splash-preview{display:none;position:absolute;left:64.2%;top:50%;width:270px;transform:translate(-50%,-50%);text-align:center;color:var(--gft-paper);pointer-events:none}.gft-splash__structure>.cp-splash-preview{display:flex;flex-direction:column;gap:16px}.cp-splash-preview>p{font:8px var(--gft-font-mono);letter-spacing:.1em;color:#b9d0c1}.cp-splash-preview>strong{font:800 66px/1 var(--gft-font-display);letter-spacing:-.06em}.cp-splash-preview strong>span{display:block;font:10px/1.5 var(--gft-font-mono);letter-spacing:0;margin-top:8px}.cp-splash-preview>span{font:8px/1.8 var(--gft-font-mono);color:#bfd2c6}.cp-splash-preview>small{font:9px var(--gft-font-mono);color:var(--gft-sage)}
@media(min-width:1500px){.cp-dial-centre strong{font-size:60px}.cp-dial-centre output{font-size:26px}}
@media(max-width:1100px){.cp-controls{gap:24px}.cp-controls fieldset{padding:22px}.cp-instrument{grid-template-columns:1fr 1fr}.cp-work-order{padding:28px 24px}.cp-work-order h3{font-size:29px}.cp-dial-panel{padding:20px}.cp-panel-head{align-items:start;flex-direction:column;gap:8px}.cp-work-metrics{grid-template-columns:1fr 1fr;gap:20px}.cp-work-metrics>div:last-child{grid-column:1/-1}.cp-ring-wrap{margin-top:24px}.cp-phase-key{font-size:8px;gap:12px}.cp-year{padding:24px}.cp-kpis output{font-size:21px}.cp-equations{gap:12px}.cp-equations>div{padding:18px}.cp-dial-centre>.cp-kicker{font-size:7px}.cp-dial-centre output{margin-top:10%;font-size:18px}.cp-splash-preview{left:69%;width:220px}.cp-splash-preview>strong{font-size:54px}}
@media(max-width:800px){.cp-controls,.cp-intro{grid-template-columns:1fr;gap:24px}.cp-intro{gap:20px}.cp-instrument{grid-template-columns:1fr}.cp-dial-panel{padding:26px}.cp-panel-head{flex-direction:row;align-items:center}.cp-ring-wrap{max-width:500px}.cp-dial-centre strong{font-size:clamp(42px,10vw,60px)}.cp-dial-centre output{font-size:25px}.cp-dial-centre>.cp-kicker{font-size:9px}.cp-dial-centre .cp-small{font-size:10px!important}.cp-month-buttons{grid-template-columns:repeat(6,minmax(0,1fr))}.cp-work-order{padding:32px}.cp-work-order h3{min-height:0;max-width:20ch}.cp-work-date{margin-top:24px}.cp-work-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}.cp-work-metrics>div:last-child{grid-column:auto}.cp-work-foot{margin-top:28px!important}.cp-interpretation{min-height:100px}.cp-omitted{min-height:0}.cp-section-head{grid-template-columns:1fr;gap:20px}.cp-scenarios{grid-template-columns:1fr;padding:24px}.cp-compare-readout{min-height:160px}.cp-compare-readout output{min-height:0}.cp-compare-readout>p:first-child{min-height:0}.cp-equations{grid-template-columns:1fr}.cp-equations code{font-size:18px}.cp-related{grid-template-columns:1fr;gap:28px}.cp-kpis{grid-template-columns:1fr 1fr;gap:24px}.cp-chart-columns{gap:6px}.cp-chart-month{font-size:8px}.cp-phase-totals{gap:12px}.cp-phase-totals output{font-size:10px}.cp-splash-preview{left:64.2%;top:50%;transform:translate(-50%,-50%) scale(.8)}}
@media(max-width:640px){.cp-root .cp-kicker{font-size:8px}.cp-intro{margin-bottom:32px}.cp-controls{gap:28px;margin-bottom:28px}.cp-controls fieldset{padding:20px 16px}.cp-controls legend{font-size:16px}.cp-date-fields{gap:12px}.cp-switch{padding:10px 8px;gap:7px}.cp-switch-grid{gap:6px}.cp-switch__mark{display:none}.cp-presets{gap:8px}.cp-presets button{flex:1 1 100%}.cp-instrument{margin-bottom:36px}.cp-dial-panel{padding:20px 14px}.cp-panel-head{gap:8px}.cp-status-chip{font-size:7px}.cp-ring-wrap{margin:18px -6px 10px}.cp-dial-centre strong{font-size:40px}.cp-dial-centre>.cp-kicker{font-size:7px;letter-spacing:.05em}.cp-dial-date{font-size:9px}.cp-dial-centre output{font-size:18px;margin-top:12%}.cp-dial-centre .cp-small{font-size:7px!important}.cp-phase-key{gap:9px;font-size:8px;margin-block:10px 18px}.cp-phase-key i{width:7px;height:7px}.cp-month-navigation{gap:8px}.cp-month-buttons{grid-template-columns:repeat(4,minmax(0,1fr))}.cp-work-order{padding:26px 20px}.cp-work-order h3{font-size:29px}.cp-work-metrics{gap:10px}.cp-work-metrics span{font-size:9px}.cp-work-metrics output{font-size:16px}.cp-year{padding:22px 16px}.cp-section-head h3{font-size:27px}.cp-kpis{gap:20px 12px}.cp-kpis output{font-size:22px}.cp-kpis span{font-size:9px}.cp-chart-columns{gap:3px}.cp-chart-col>output{font-size:8px;top:-30px}.cp-chart-month{font-size:7px;padding-top:12px}.cp-phase-totals{grid-template-columns:1fr;gap:14px;padding-top:22px}.cp-phase-totals>div{grid-template-columns:1fr 1fr;gap:10px;align-items:center}.cp-phase-totals output{text-align:right;font-size:11px}.cp-scenarios{padding:24px 18px;gap:22px}.cp-scenarios h3{font-size:28px}.cp-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.cp-actions button{font-size:10px;padding:10px 8px}.cp-compare-readout{padding:20px}.cp-related{padding:24px 20px}.cp-root :is(.cp-calendar,.cp-method,.cp-assumptions,.cp-limits)>h3{font-size:29px}.cp-root :is(.cp-calendar,.cp-method,.cp-limits)>p:not(.cp-kicker){font-size:13px}.cp-root th,.cp-root td{padding:14px 12px}.cp-calendar,.cp-method,.cp-assumptions,.cp-limits{padding-top:28px;margin-top:40px}.cp-equations code{white-space:normal}.cp-root .cp-table-scroll{margin-right:0}[data-splash="comms-planner"] .gft-splash__structure{inset:auto -36% 72px -36%;height:290px}[data-splash="comms-planner"] .gft-structure{transform:translateX(-22%)}[data-splash="comms-planner"] .gft-splash__structure::after{background:transparent}.cp-splash-preview{left:50%;top:50%;transform:translate(-50%,-50%) scale(.57);width:270px}.cp-splash-preview>strong{font-size:66px}.cp-splash-preview>p{font-size:8px}.cp-splash-preview>span{font-size:8px}}
@media(prefers-reduced-motion:reduce){.cp-root *,.cp-splash-preview{scroll-behavior:auto}.cp-root [data-cp-rotor],.cp-root [data-cp-ring-label],.cp-root [data-cp-bar-a],.cp-root [data-cp-bar-b]{transition:none!important;animation:none!important}}

/* Match the preview centre to the SVG meet geometry; keep the selected month legible. */
[data-splash="comms-planner"] .gft-splash__structure{container-type:size}
[data-splash="comms-planner"] .cp-splash-preview{left:calc(50% + 28.75cqh);width:220px}
.cp-root .cp-dial-panel select{background:#123c36;border-color:#6bb68f66;color:var(--gft-paper)}
@media(max-width:640px){[data-splash="comms-planner"] .gft-splash__structure{height:360px}[data-splash="comms-planner"] .gft-structure{transform:translateX(-28.75cqh)}[data-splash="comms-planner"] .cp-splash-preview{left:50%;width:270px;transform:translate(-50%,-50%) scale(.7)}}

@media(max-width:640px){[data-splash="comms-planner"] .cp-splash-preview{width:180px;gap:10px;transform:translate(-50%,-50%) scale(.8)}[data-splash="comms-planner"] .cp-splash-preview>p,[data-splash="comms-planner"] .cp-splash-preview>span{display:none}[data-splash="comms-planner"] .cp-splash-preview>small{font-size:8px}}
/* Communications planner film: one ring motif, carried from the splash to the closing. Page-specific. */
.cp-root{--cp-muted:#3d5148;--cp-border:#b9c9bf;--cp-track:240px;--cp-pre:#6bb68f;--cp-launch:#c98a2b;--cp-sus:#a4b0df}
.cp-root .cp-kicker{font-size:12px;letter-spacing:.1em;line-height:1.6}
.cp-root .cp-small{font-size:13px;line-height:1.7}
.cp-root p{line-height:1.7}
.cp-root button{font-size:13px}
.cp-vh{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.cp-s{padding-block:clamp(56px,8vw,112px)}
.cp-s h2,.cp-night h2,.cp-close h2{font-size:clamp(2rem,3.5vw,3.5rem);font-weight:850;letter-spacing:-.05em;line-height:1.06;max-width:19ch}
.cp-root h2 .gft-serif{font-weight:400;font-style:italic;letter-spacing:-.03em;color:var(--gft-leaf)}
.cp-root h3{font-size:clamp(22px,2.4vw,32px)}
/* ---- 1 instrument ---- */
.cp-s--shell{background:var(--gft-paper)}
.cp-head{display:grid;grid-template-columns:1.1fr .9fr;gap:40px;align-items:end;margin-bottom:40px}
.cp-head h2{margin-top:20px;max-width:15ch}
.cp-head__note p{font-size:15px;max-width:60ch}
.cp-head__note .cp-provenance{margin-top:16px;font-size:14px}
.cp-stage{display:grid;grid-template-columns:minmax(0,1.06fr) minmax(0,1fr);grid-template-areas:"dial work" "dial cfg";gap:0 40px;align-items:start}
.cp-stage>.cp-dial-panel{grid-area:dial;align-self:stretch}
.cp-stage>.cp-work-order{grid-area:work}
.cp-stage>.cp-config{grid-area:cfg}
.cp-dial-panel{padding:28px 28px 20px;background:var(--gft-night);position:relative;isolation:isolate}
.cp-dial-panel::before{content:'';position:absolute;inset:0;z-index:-1;background:radial-gradient(60% 40% at 50% 28%,rgba(107,182,143,.16),transparent 70%)}
.cp-root .cp-status-chip{font-size:11px;padding:5px 9px}
.cp-root .cp-dial-centre>.cp-kicker{font-size:11px}
.cp-root .cp-dial-date{font-size:13px}
.cp-root .cp-dial-centre .cp-small{font-size:12px!important}
.cp-root .cp-phase-key{font-size:12px}
.cp-root .cp-month-navigation>label{font-size:12px}
.cp-root .cp-month-buttons button{font-size:13px}
.cp-root .cp-dial-panel .cp-dial-note{font-size:13px}
.cp-dial-sliders{margin-top:22px;border-top:1px solid rgba(107,182,143,.3)}
.cp-dial-panel .cp-paired{border-top:0;padding-top:12px;margin-top:10px}
.cp-dial-panel .cp-paired label{font-size:14px;color:var(--gft-paper)}
.cp-root .cp-dial-panel .cp-paired label span{font-size:12px;color:#c4d6cb}
.cp-dial-panel input[type=number]{background:#123c36;color:var(--gft-paper);border-color:#6bb68f66}
.cp-dial-panel input[type=range]{accent-color:var(--gft-sage)}
.cp-work-order{padding:8px 0 0}
.cp-root .cp-work-order>.cp-kicker{color:var(--cp-muted)}
.cp-work-order .cp-work-date{margin-top:20px;font-size:14px}
.cp-work-order h3{font-size:clamp(26px,2.8vw,40px);min-height:2.3em;margin-block:10px 8px}
.cp-root .cp-work-metrics span{font-size:12px}
.cp-root .cp-work-metrics output{font-size:22px}
.cp-root .cp-channel-list li{font-size:13px}
.cp-root .cp-omitted{font-size:13px;min-height:2.4em}
.cp-root .cp-interpretation{font-size:14px;min-height:110px;margin-top:14px}
.cp-work-order .cp-work-foot{margin-top:0;padding-top:16px}
.cp-config{border:1px solid var(--cp-border);padding:26px 28px;margin:28px 0 0;min-width:0}
.cp-config legend{font-weight:750;font-size:19px;letter-spacing:-.025em;padding-inline:8px}
.cp-config .cp-switch-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.cp-root .cp-switch{font-size:13px}
.cp-config .cp-date-fields{margin-top:20px}
.cp-root .cp-date-fields label{font-size:13px}
.cp-root .cp-presets button{font-size:12px}
.cp-method-band{display:grid;grid-template-columns:1fr 1fr;gap:64px;padding-top:36px;margin-top:56px;border-top:1px solid var(--cp-border)}
.cp-method-band h3{margin-bottom:14px}
.cp-method-band p{font-size:14px}
.cp-method-band .gft-eyebrow{margin-bottom:14px;font-size:12px}
/* ---- 3 annual load ---- */
.cp-year{background:var(--gft-mist);padding:clamp(56px,8vw,112px) 0 0;margin:0;border:0;--cp-track:250px}
.cp-year__grid{display:grid;grid-template-columns:minmax(260px,.62fr) minmax(0,1.7fr);gap:clamp(32px,5vw,72px);align-items:start}
.cp-year__side{position:sticky;top:96px}
.cp-year__side h2{margin-block:18px 18px;font-size:clamp(2rem,3vw,3rem)}
.cp-year .cp-kpis{grid-template-columns:1fr 1fr;gap:22px 16px;margin-top:28px;padding-block:22px}
.cp-root .cp-kpis span{font-size:12px}
.cp-root .cp-kpis output{font-size:26px}
.cp-chart-read{display:flex;gap:16px;align-items:baseline;padding:14px 18px;background:var(--gft-night);color:var(--gft-paper);min-height:56px}
.cp-chart-read .cp-kicker{color:#b9d0c1;flex:none}
.cp-chart-read output{font:14px/1.5 var(--gft-font-mono)}
.cp-load-chart{height:calc(28px + var(--cp-track) + 34px);margin-top:28px;padding-top:0}
.cp-capacity-rule{bottom:calc(34px + var(--cp-track) * 1)}
.cp-root .cp-capacity-rule>span{font-size:12px;background:var(--gft-mist)}
.cp-chart-columns{height:100%;gap:8px}
.cp-root .cp-chart-col{border:0;background:transparent;padding:0;min-height:0;height:100%;font:inherit;display:flex;flex-direction:column;justify-content:flex-end;position:relative;cursor:pointer}
.cp-root .cp-chart-col:hover,.cp-root .cp-chart-col[data-selected]{background:rgba(14,77,74,.09)}
.cp-chart-col>output{top:0}
.cp-root .cp-chart-col>output{font-size:13px}
.cp-bar-track{height:var(--cp-track);display:block}
.cp-bar-b{left:16%;width:68%}
.cp-bar-a{left:6%;width:88%}
.cp-root .cp-chart-month{font-size:12px;height:34px;padding-top:10px}
.cp-chart-col[data-selected] .cp-chart-month{font-weight:800}
.cp-chart-col[data-selected] .cp-bar-b{filter:brightness(1.25) saturate(1.1)}
.cp-chart-col[data-over] .cp-bar-b{background-image:repeating-linear-gradient(45deg,rgba(255,255,255,.55) 0 3px,transparent 3px 7px)}
.cp-chart-col[data-over]>output{color:#9c420b;font-weight:800}
.cp-phase-totals{margin-top:26px}
.cp-root .cp-phase-totals span{font-size:13px}.cp-root .cp-phase-totals output{font-size:14px}
.cp-year .cp-scenarios{display:grid;grid-template-columns:1.15fr .85fr;gap:24px 40px;background:var(--gft-night);color:var(--gft-paper);padding:40px;margin:56px 0 0;position:relative}
.cp-year .cp-scenarios h3{margin-block:14px;font-size:clamp(24px,2.4vw,32px)}
.cp-year .cp-scenarios p{font-size:14px}
.cp-year .cp-scenarios .cp-kicker{color:#b9d0c1}
.cp-year .cp-compare-readout{border-color:rgba(107,182,143,.45);min-height:0;padding:20px}
.cp-year .cp-compare-readout>p:first-child{font-size:12px;min-height:0}
.cp-year .cp-compare-readout output{font-size:24px;min-height:0}
.cp-year .cp-scenarios .cp-small{color:#c4d6cb}
.cp-year .cp-actions button{border-color:var(--gft-sage);color:var(--gft-paper)}
.cp-year .cp-actions button:first-child{background:var(--gft-sage);color:var(--gft-night)}
.cp-year .cp-actions button:hover{background:#205447}
.cp-year .cp-actions button:first-child:hover{background:#85c8a4}
/* ---- shared ring ---- */
.cp-ring2{display:block;width:100%;height:100%;overflow:visible}
.cp-rm-pre{--cp-ph:#6bb68f}.cp-rm-launch{--cp-ph:#c98a2b}.cp-rm-sustained{--cp-ph:#a4b0df}
.cp-r-core{fill:#072d2b;stroke:rgba(107,182,143,.3)}
.cp-r-guide{fill:none;stroke:rgba(107,182,143,.22);stroke-dasharray:1 6}
.cp-rcap{fill:none;stroke:var(--gft-ochre);stroke-width:2;stroke-dasharray:7 6;opacity:0}
.cp-rc-o{fill:none;stroke:var(--cp-ph);stroke-width:1.5;opacity:.8}
.cp-rc-f{fill:var(--cp-ph);opacity:0}
.cp-rcell:not(.on) .cp-rc-o{stroke-dasharray:3 4;opacity:.35}
.cp-rh{fill:var(--cp-ph);opacity:0;stroke:none}
.cp-rha{fill:none;stroke:#f6f4ef;stroke-width:1.8;stroke-dasharray:5 4;opacity:.95}
.cp-rm[data-over] .cp-rh{fill:#f1c36f}
.cp-rt{font:600 15px var(--gft-font-mono);fill:#e2eee7;opacity:0}
.cp-rt-m{opacity:.8;font-size:14px;fill:#c4d6cb}
.cp-rhit{fill:transparent;stroke:none;cursor:pointer;pointer-events:all}
.cp-rhit:focus-visible{outline:none;stroke:#f6f4ef;stroke-width:3}
.cp-rm[data-selected] .cp-rc-o{stroke:#fff;stroke-width:2.4;opacity:1}
.cp-rm[data-hover] .cp-rc-o{stroke:#fff;opacity:1}
.cp-rc-f,.cp-rh,.cp-rt,.cp-rcap,.cp-rc-o{transition:opacity 600ms var(--m-out,ease-out)}
/* ---- 5 method interlude (dark, full bleed, sticky multi-state ring) ---- */
.cp-night{position:relative;background:var(--gft-night);color:var(--gft-paper);padding-block:clamp(72px,9vw,128px) 6svh;overflow-x:clip;isolation:isolate}
.cp-root.cp-night{color:var(--gft-paper)}
.cp-night__aura{position:absolute;z-index:-1;width:64vw;height:64vw;left:-14vw;top:12%;background:radial-gradient(closest-side,rgba(107,182,143,.22),transparent);pointer-events:none}
.cp-night__aura--b{left:auto;right:-18vw;top:52%;background:radial-gradient(closest-side,rgba(164,176,223,.2),transparent)}
.cp-night__head{max-width:980px;margin-bottom:clamp(24px,4vw,56px)}
.cp-night__head .cp-kicker{color:#9ccbb0}
.cp-night__head h2{margin-top:18px;max-width:20ch;color:var(--gft-paper)}
.cp-night h2 .gft-serif{color:var(--gft-sage)}
.cp-night__grid{display:grid;grid-template-columns:minmax(0,.78fr) minmax(0,1.22fr);gap:clamp(24px,5vw,88px);align-items:start}
.cp-night__steps{list-style:none;margin:0;padding:0}
.cp-nstep{position:relative;min-height:80svh;display:flex;flex-direction:column;justify-content:center;gap:14px;padding:6svh 0 6svh 30px;opacity:.62;transition:opacity 600ms var(--m-out,ease-out)}
.cp-nstep[data-active]{opacity:1}
.cp-nstep::before,.cp-nstep::after{content:'';position:absolute;left:0;top:7svh;bottom:7svh;width:2px;background:rgba(107,182,143,.28)}
.cp-nstep::after{background:var(--gft-sage);box-shadow:0 0 14px rgba(107,182,143,.5);transform-origin:50% 0;transform:scaleY(0);transition:transform 700ms var(--m-out,ease-out)}
.cp-nstep[data-active]::after{transform:scaleY(1)}
.cp-night .cp-nstep .cp-kicker{color:#9ccbb0}
.cp-night .cp-nstep h3{font-size:clamp(24px,2.6vw,36px);max-width:18ch;color:var(--gft-paper)}
.cp-night .cp-nstep p:not(.cp-kicker):not(.cp-formula){font-size:15px;max-width:44ch;color:#d6e4db}
.cp-night .cp-night__note{color:#b9d0c1}
.cp-formula{display:grid;gap:6px;border:1px solid rgba(107,182,143,.35);background:rgba(18,60,54,.6);padding:14px 16px;max-width:46ch}
.cp-formula code{font:600 clamp(14px,1.3vw,18px)/1.5 var(--gft-font-mono);color:var(--gft-sage)}
.cp-formula output{font:13px/1.6 var(--gft-font-mono);color:#e2eee7;overflow-wrap:anywhere}
.cp-formulas{display:grid;gap:10px}
.cp-night__visual{position:sticky;top:84px;display:grid;gap:12px;justify-items:center;align-self:start}
.cp-night__stage{position:relative;width:min(100%,max(300px,calc(100svh - 220px)));aspect-ratio:1}
.cp-night__centre{position:absolute;inset:0;pointer-events:none}
.cp-nc{position:absolute;inset:26% 26%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;opacity:0;transition:opacity 500ms var(--m-out,ease-out)}
.cp-nc strong{font:850 clamp(30px,4.4vw,62px)/1.05 var(--gft-font-display);letter-spacing:-.05em;color:var(--gft-paper)}
.cp-nc span{font:12px/1.5 var(--gft-font-mono);color:#c4d6cb;max-width:16ch;margin-top:6px}
.cp-night__grid[data-step="0"] [data-cp-nc="0"],.cp-night__grid[data-step="1"] [data-cp-nc="1"],.cp-night__grid[data-step="2"] [data-cp-nc="2"],.cp-night__grid[data-step="3"] [data-cp-nc="3"]{opacity:1}
.cp-night__grid[data-step="1"] .cp-rcell.on .cp-rc-f{opacity:.92}
.cp-night__grid[data-step="1"] .cp-rt-n{opacity:1}
.cp-night__grid[data-step="2"] .cp-rcell.on .cp-rc-f{opacity:.3}
.cp-night__grid[data-step="2"] .cp-rh{opacity:.95}
.cp-night__grid[data-step="2"] .cp-rt-h,.cp-night__grid[data-step="2"] .cp-rcap{opacity:1}
.cp-night__grid[data-step="3"] .cp-rcell.on .cp-rc-f{opacity:.14}
.cp-night__grid[data-step="3"] .cp-rh{opacity:.32}
.cp-night__grid[data-step="3"] .cp-rcap{opacity:1}
.cp-night__grid[data-step="3"] .cp-rm[data-peak] .cp-rh{opacity:1}
.cp-night__grid[data-step="3"] .cp-rm[data-peak] .cp-rt-h,.cp-night__grid[data-step="3"] .cp-rm[data-over] .cp-rt-h{opacity:1}
.cp-night__grid[data-step="3"] .cp-rm[data-over] .cp-rh{opacity:1}
.cp-night__read{display:grid;gap:4px;text-align:center;min-height:3.6em;margin:0;max-width:60ch}
.cp-night__read .cp-kicker{color:#9ccbb0}
.cp-night__read output{font:14px/1.5 var(--gft-font-mono);color:var(--gft-paper)}
.cp-night__legend{display:flex;flex-wrap:wrap;gap:8px 20px;justify-content:center;margin:0;font:12px var(--gft-font-mono);color:#c4d6cb}
.cp-lg::before{content:'';display:inline-block;width:10px;height:10px;margin-right:8px;background:var(--c)}
.cp-lg--pre{--c:var(--gft-sage)}.cp-lg--launch{--c:var(--gft-ochre)}.cp-lg--sustained{--c:#a4b0df}.cp-lg--cap::before{background:transparent;border-top:2px dashed var(--gft-ochre);height:0;width:14px;vertical-align:middle}
/* ---- 6 calendar ---- */
.cp-cal{background:var(--gft-paper)}
.cp-cal__head{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:end;margin-bottom:40px}
.cp-cal__head h2{margin-top:16px;max-width:15ch}
.cp-cal__head p{font-size:15px}
.cp-cal__grid{display:grid;grid-template-columns:minmax(250px,.42fr) minmax(0,1.58fr);gap:clamp(28px,4vw,56px);align-items:start}
.cp-cal__rail{position:sticky;top:96px;background:var(--gft-night);color:var(--gft-paper);padding:22px;display:grid;gap:14px}
.cp-cal__ring{position:relative;aspect-ratio:1}
.cp-ring2--mini .cp-rc-f{opacity:.9}.cp-ring2--mini .cp-rh{opacity:.9}.cp-ring2--mini .cp-rcap{opacity:1}
.cp-ring2--mini .cp-rcell.on .cp-rc-f{opacity:.28}
.cp-cal__centre{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;pointer-events:none}
.cp-cal__centre strong{font:850 clamp(26px,3vw,40px)/1 var(--gft-font-display);letter-spacing:-.05em}
.cp-cal__centre span{font:12px var(--gft-font-mono);color:#c4d6cb;margin-top:4px}
.cp-cal__read{display:grid;gap:4px;margin:0}
.cp-cal__read .cp-kicker{color:#9ccbb0}
.cp-cal__read output{font:13px/1.5 var(--gft-font-mono)}
.cp-root .cp-cal__rail .cp-small{color:#c4d6cb}
.cp-filter{display:grid;gap:12px;margin-bottom:22px}
.cp-filter__chips{display:flex;flex-wrap:wrap;gap:8px}
.cp-root .cp-fchip{min-height:44px;padding:8px 14px;font-size:13px;border-color:#8ca799}
.cp-root .cp-fchip[aria-pressed=true]{background:var(--gft-forest);color:var(--gft-paper);border-color:var(--gft-forest)}
.cp-root .cp-fchip--clear{border-style:dashed}
.cp-cal .cp-table-scroll{overflow:visible;margin-top:0}
.cp-root .cp-cal__table{font-size:14px;line-height:1.55}
.cp-root .cp-cal__table caption{font-size:12px}
.cp-root .cp-cal__table th,.cp-root .cp-cal__table td{padding:14px 12px}
.cp-root .cp-cal__table thead{background:transparent}
.cp-root .cp-cal__table thead th{vertical-align:middle;position:sticky;top:70px;z-index:3;background:var(--gft-night);color:var(--gft-paper);font-size:12px;padding:0 12px;white-space:nowrap}
.cp-root .cp-cal__table thead button{border:0;background:transparent;color:inherit;font:600 12px var(--gft-font-mono);letter-spacing:.04em;min-height:48px;padding:0;display:inline-flex;align-items:center;gap:8px;text-align:left}
.cp-root .cp-cal__table thead button:hover{background:transparent;color:var(--gft-sage)}
.cp-cal__table thead button span::after{content:'↕';opacity:.5}
.cp-cal__table thead [aria-sort=ascending] button span::after{content:'↑';opacity:1;color:var(--gft-sage)}
.cp-cal__table thead [aria-sort=descending] button span::after{content:'↓';opacity:1;color:var(--gft-sage)}
.cp-cal__table tbody th{white-space:nowrap}
.cp-cal__table tbody th small{display:block;font-size:12px;margin-top:6px;color:var(--cp-muted)}
.cp-root .cp-cal__table tbody th button{min-height:44px;min-width:58px;padding:6px 10px;font:700 14px var(--gft-font-mono)}
.cp-cal__table td:nth-child(2){min-width:210px;max-width:250px}
.cp-cal__table td:nth-child(n+3):nth-child(-n+5){font:14px/1.6 var(--gft-font-mono);white-space:nowrap}
.cp-cal__table .cp-table-phase{font-size:11px}
.cp-cal__table tbody tr{transition:background-color 200ms}
.cp-cal__table tbody tr[data-cp-hover]{background:#e4ece6}
.cp-root .cp-cal__table tbody [data-cp-selected]{background:#d6e4db}
.cp-cal__table [data-cp-selected] th{box-shadow:inset 4px 0 var(--gft-forest)}
.cp-load{display:inline-block;width:70px;height:9px;background:#d2ddd5;vertical-align:middle;margin-right:10px;overflow:hidden}
.cp-load>i{display:block;height:100%;background:var(--gft-forest);transform-origin:0 50%}
.cp-load>i[data-over]{background:var(--gft-ochre)}
.cp-chip{display:inline-block;padding:3px 9px;margin:2px 4px 2px 0;font:12px/1.5 var(--gft-font-mono);border:1px solid #8ca799;background:#e2ebe6;position:relative}
.cp-chip.off{text-decoration:line-through;opacity:.6;border-style:dashed;background:transparent}
/* ---- 7 assumptions ---- */
.cp-assume{background:var(--gft-sand)}
.cp-assume__grid{display:grid;grid-template-columns:minmax(300px,.72fr) minmax(0,1.5fr);gap:clamp(28px,4.5vw,64px);align-items:start}
.cp-assume__panel{position:sticky;top:96px;background:var(--gft-forest);color:var(--gft-paper);padding:34px 32px;display:grid;gap:18px}
.cp-assume__panel .cp-kicker{color:#a9d3bc}
.cp-assume__panel h2{max-width:13ch;font-size:clamp(1.9rem,2.8vw,2.8rem);color:var(--gft-paper)}
.cp-assume__panel h2 .gft-serif{color:var(--gft-sage)}
.cp-assume__big{display:grid;gap:4px;margin:0}
.cp-assume__big output{font:850 clamp(48px,5.4vw,84px)/1 var(--gft-font-display);letter-spacing:-.06em}
.cp-assume__big span{font:12px var(--gft-font-mono);color:#c4d6cb}
.cp-assume__count{margin:0}
.cp-assume__count output{font:13px var(--gft-font-mono);color:#e2eee7}
.cp-root .cp-reset{border-color:var(--gft-sage);color:var(--gft-paper);justify-self:start;font-size:13px}
.cp-root .cp-reset:hover{background:#205447}
.cp-root .cp-reset[data-changed]{background:var(--gft-ochre);border-color:var(--gft-ochre);color:var(--gft-night)}
.cp-assume__read{display:grid;gap:6px;margin:0;padding-top:16px;border-top:1px solid rgba(107,182,143,.35);min-height:9em}
.cp-assume__read output{font-size:14px;line-height:1.6;color:#e2eee7}
.cp-assume .cp-table-scroll{margin-top:0}
.cp-root .cp-assume__table{font-size:14px;line-height:1.6}
.cp-root .cp-assume__table caption{font-size:12px}
.cp-root .cp-assume__table thead th{font-size:12px}
.cp-assume__table tbody tr{transition:background-color 200ms}
.cp-assume__table tbody tr:hover,.cp-assume__table tbody tr:focus-within{background:#e6eee8}
.cp-assume__table tbody th{width:22%}
.cp-assume__table td:nth-child(2){width:22%;font:14px var(--gft-font-mono)}
.cp-ainput{display:flex;align-items:center;gap:8px}
.cp-ainput small{font:12px var(--gft-font-mono);color:var(--cp-muted)}
.cp-root .cp-ainput input,.cp-root .cp-ainput select{width:110px;font-size:14px}
.cp-root .cp-ainput--two select{width:84px}
.cp-root .cp-ainput--two input{width:96px}
.cp-state{display:inline-block;padding:4px 9px;font:12px var(--gft-font-mono);border:1px solid #8ca799;white-space:nowrap}
.cp-state--src{background:#dbe7df}
.cp-state[data-changed]{background:var(--gft-ochre);border-color:var(--gft-ochre);color:var(--gft-night);font-weight:700}
/* ---- 8 judgement ---- */
.cp-limits{background:var(--gft-paper)}
.cp-limits__grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(28px,5vw,80px);align-items:start}
.cp-limits__text h2{margin-block:18px 28px}
.cp-limits__cards{display:grid;gap:0}
.cp-limits__cards article{border-top:1px solid var(--cp-border);padding:22px 0}
.cp-limits__cards h3{font-size:clamp(20px,1.9vw,26px);margin-bottom:10px}
.cp-limits__cards p{font-size:15px;max-width:52ch}
.cp-limits__panel{background:var(--gft-night);color:var(--gft-paper);padding:26px;position:sticky;top:96px;display:grid;gap:18px}
.cp-tabs{display:flex;border:1px solid rgba(107,182,143,.45)}
.cp-root .cp-tabs button{flex:1;border:0;border-right:1px solid rgba(107,182,143,.3);min-height:48px;color:var(--gft-paper);font-size:14px;background:transparent}
.cp-root .cp-tabs button:last-child{border-right:0}
.cp-root .cp-tabs button[aria-selected=true]{background:var(--gft-sage);color:var(--gft-night);font-weight:800}
.cp-limits__stage{width:min(100%,430px);margin-inline:auto;aspect-ratio:1}
.cp-tabpanel h3{font-size:clamp(20px,2vw,26px);color:var(--gft-paper);margin-bottom:8px}
.cp-tabpanel p{font-size:15px;color:#d6e4db}
.cp-tabpanel output{display:block;margin-top:12px;font:13px/1.5 var(--gft-font-mono);color:var(--gft-sage);min-height:3em}
.cp-limits__panel[data-tab="0"] .cp-ring2--read .cp-rm-launch .cp-rc-f{opacity:.95}
.cp-limits__panel[data-tab="0"] .cp-ring2--read .cp-rm:not(.cp-rm-launch){opacity:.7}
.cp-limits__panel[data-tab="1"] .cp-ring2--read .cp-rcell.on .cp-rc-f{opacity:.22}
.cp-limits__panel[data-tab="1"] .cp-ring2--read .cp-rcell:not(.on) .cp-rc-o{stroke:var(--gft-ochre);stroke-width:3;stroke-dasharray:none;opacity:1}
.cp-limits__panel[data-tab="1"] .cp-ring2--read .cp-rcell:not(.on) .cp-rc-f{fill:var(--gft-ochre);opacity:.6}
.cp-limits__panel[data-tab="2"] .cp-ring2--read .cp-rcell.on .cp-rc-f{opacity:.18}
.cp-limits__panel[data-tab="2"] .cp-ring2--read .cp-rh{opacity:.95}
.cp-limits__panel[data-tab="2"] .cp-ring2--read .cp-rcap{opacity:1}
/* ---- closing: the ring again, as the last instrument ---- */
.cp-close{position:relative;background:var(--gft-night);color:var(--gft-paper);padding-block:clamp(72px,9vw,128px) 0;overflow-x:clip;isolation:isolate}
.cp-close .cp-night__aura{left:30vw;top:-10%}
.cp-close__grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr) minmax(0,.82fr);gap:clamp(24px,3.6vw,56px);align-items:center}
.cp-close .cp-kicker{color:#9ccbb0}
.cp-close h2{color:var(--gft-paper);margin-block:18px 22px;font-size:clamp(2.2rem,3.9vw,4rem);max-width:12ch}
.cp-close h2 .gft-serif{color:var(--gft-sage);display:block}
.cp-close__lede{font-size:16px;color:#d6e4db;max-width:46ch}
.cp-close__callout{border-left:3px solid var(--gft-ochre);padding:4px 0 4px 20px;margin-top:26px;max-width:46ch}
.cp-close__callout h3{font-size:19px;margin-bottom:8px;color:var(--gft-paper)}
.cp-close__callout p{font-size:14px;color:#c4d6cb}
.cp-close__links{display:flex;flex-wrap:wrap;gap:8px 24px;margin-top:22px}
.cp-close__links a{color:var(--gft-sage);font-size:14px;min-height:44px;display:inline-flex;align-items:center}
.cp-close__ring{position:relative;aspect-ratio:1;width:100%}
.cp-ring2--close .cp-rcell.on .cp-rc-f{opacity:.3}
.cp-ring2--close .cp-rh{opacity:.95}.cp-ring2--close .cp-rcap{opacity:1}
.cp-gates{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.cp-gate{fill:var(--gft-sage);stroke:var(--gft-night);stroke-width:2;opacity:.14;transition:opacity 500ms var(--m-out,ease-out)}
.cp-gate[data-on]{opacity:1}
.cp-close__ring[data-complete] .cp-gates{filter:drop-shadow(0 0 12px rgba(107,182,143,.8))}
.cp-close__centre{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;pointer-events:none;padding-top:0}
.cp-close__centre strong{font:850 clamp(20px,2.4vw,34px)/1 var(--gft-font-display);letter-spacing:-.04em}
.cp-close__centre span{font:11px/1.4 var(--gft-font-mono);color:#c4d6cb;max-width:11ch;text-align:center;margin-top:4px}
.cp-close__compare{display:grid;gap:4px;text-align:center;margin:14px auto 0}
.cp-close__compare output{font:700 clamp(18px,1.8vw,24px)/1.3 var(--gft-font-display);letter-spacing:-.03em}
.cp-close__key{display:flex;gap:8px 16px;justify-content:center;align-items:center;flex-wrap:wrap;margin:10px auto 0;color:#c4d6cb}
.cp-key{display:inline-block;width:14px;height:10px;margin-right:6px}
.cp-key--b{background:var(--gft-sage)}.cp-key--a{border:1.5px dashed #f6f4ef}
.cp-gatelist{border:1px solid rgba(107,182,143,.4);padding:20px 22px;margin:0;min-width:0}
.cp-gatelist legend{font-weight:750;font-size:17px;padding-inline:8px}
.cp-root .cp-gatelist .cp-small{color:#c4d6cb;margin-bottom:6px}
.cp-gate-item{display:flex;gap:12px;align-items:flex-start;min-height:44px;padding:10px 0;border-top:1px solid rgba(107,182,143,.22);font-size:14px;line-height:1.5;cursor:pointer}
.cp-gate-item input{width:20px;height:20px;margin-top:1px;flex:none;accent-color:var(--gft-sage)}
.cp-close__panel .cp-actions{margin-top:18px}
.cp-close .cp-actions button{border-color:var(--gft-sage);color:var(--gft-paper)}
.cp-close .cp-actions button:first-child{background:var(--gft-sage);color:var(--gft-night)}
.cp-close .cp-actions button:hover{background:#205447}
.cp-close .cp-actions button:first-child:hover{background:#85c8a4}
.cp-close .cp-small{color:#c4d6cb}
.cp-close .cp-link-fallback input{background:#123c36;color:var(--gft-paper);border-color:var(--gft-sage)}
.cp-close__related{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,5vw,72px);margin-top:clamp(56px,7vw,96px);padding-block:44px 64px;border-top:1px solid rgba(107,182,143,.28)}
.cp-close__related h3{font-size:clamp(20px,1.9vw,26px);color:var(--gft-paper);margin-bottom:12px}
.cp-close__related p{font-size:14px;color:#d6e4db}
.cp-close__related .cp-small{margin-top:14px}
/* ---- page rail: a month wheel that follows the film ---- */
.cp-rail{position:fixed;left:4px;bottom:14px;z-index:30;display:flex;align-items:center;gap:10px;pointer-events:none;opacity:0;transform:translateY(14px);transition:opacity 500ms var(--m-out,ease-out),transform 600ms var(--m-out,ease-out)}
.cp-rail[data-on]{opacity:1;transform:none}
.cp-rail svg{width:44px;height:44px;overflow:visible}
.cp-rail__disc{fill:rgba(7,45,43,.94);stroke:rgba(107,182,143,.55)}
.cp-rail__tick{stroke:rgba(107,182,143,.28);stroke-width:2.2;stroke-linecap:round}
.cp-rail__tick.on{stroke:#6bb68f}
.cp-rail__rotor{transform-origin:32px 32px}
.cp-rail__dot{fill:#c98a2b}
.cp-rail__n{font:700 17px var(--gft-font-mono);fill:#f6f4ef}
.cp-rail__label{display:none;background:rgba(7,45,43,.94);color:#f6f4ef;font:12px var(--gft-font-mono);padding:6px 10px}
@media(min-width:1760px){.cp-rail__label{display:block}}
/* ---- responsive ---- */
@media(max-width:1100px){
 .cp-rail{display:none}
 .cp-stage{grid-template-columns:1fr;grid-template-areas:"dial" "work" "cfg";gap:24px}
 .cp-stage>.cp-dial-panel{align-self:start}
 .cp-head,.cp-cal__head{grid-template-columns:1fr;gap:20px}
 .cp-year__grid,.cp-cal__grid,.cp-assume__grid,.cp-limits__grid{grid-template-columns:1fr}
 .cp-year__side,.cp-cal__rail,.cp-assume__panel,.cp-limits__panel{position:static}
 .cp-year .cp-kpis{grid-template-columns:repeat(4,minmax(0,1fr))}
 .cp-close__grid{grid-template-columns:1fr 1fr}
 .cp-close__copy{grid-column:1/-1}
 .cp-cal__rail{grid-template-columns:minmax(180px,260px) 1fr;align-items:center}
 .cp-cal .cp-table-scroll,.cp-assume .cp-table-scroll{overflow-x:auto}
 .cp-root .cp-cal__table thead th{position:static}
 .cp-cal__table{min-width:760px}.cp-assume__table{min-width:720px}
 .cp-method-band{gap:32px}
}
@media(max-width:900px){
 .cp-night__grid{grid-template-columns:1fr;gap:0}
 .cp-night__visual{order:-1;top:60px;z-index:3;background:var(--gft-night);padding:10px 0 8px;margin-inline:-28px;padding-inline:28px;box-shadow:0 14px 18px -10px var(--gft-night)}
 .cp-night__stage{width:min(100%,46svh,380px)}
 .cp-nstep{min-height:62svh;padding:4svh 0 4svh 22px}
 .cp-night__read{min-height:2.8em}.cp-night__legend{display:none}
 .cp-year .cp-scenarios{grid-template-columns:1fr;padding:28px}
 .cp-method-band,.cp-close__related{grid-template-columns:1fr;gap:28px}
}
@media(max-width:640px){
 .cp-s{padding-block:52px}
 .cp-night__visual{margin-inline:-20px;padding-inline:20px}
 .cp-dial-panel{padding:22px 16px 16px}
 .cp-config{padding:20px 16px}
 .cp-config .cp-switch-grid{grid-template-columns:1fr 1fr}
 .cp-year .cp-kpis{grid-template-columns:1fr 1fr}
 .cp-load-chart{--cp-track:190px}.cp-year{--cp-track:190px}
 .cp-chart-columns{gap:2px}
 .cp-root .cp-chart-col>output{font-size:10px}.cp-root .cp-chart-month{font-size:10px}
 .cp-chart-read{flex-direction:column;gap:4px}
 .cp-year .cp-scenarios{padding:24px 18px}
 .cp-cal__rail{grid-template-columns:1fr}
 .cp-cal__ring{max-width:300px;margin-inline:auto;width:100%}
 .cp-assume__panel{padding:26px 20px}
 .cp-limits__panel{padding:20px 16px}
 .cp-root .cp-tabs button{font-size:12px;padding-inline:4px}
 .cp-close__grid{grid-template-columns:1fr}
 .cp-close h2{max-width:none}
 .cp-rail{display:none}
 .cp-night__aura{width:120vw;height:120vw}
}
@media(prefers-reduced-motion:reduce){.cp-root *,.cp-rail,.cp-rail *{transition:none!important}}
:root[data-motion=calm] .cp-root *,:root[data-motion=calm] .cp-rail,:root[data-motion=calm] .cp-rail *{transition:none!important}

/* ======== Round 3: dark band under the splash, lenses, handover ======== */
[data-m-live~=turn]{overflow-anchor:none}
:root[data-m-go] [data-m-live~=turn][data-m-on]{animation-name:cp-turn;animation-duration:90s;animation-timing-function:linear;animation-iteration-count:infinite;animation-direction:normal}
@keyframes cp-turn{to{transform:rotate(360deg)}}
/* splash: the ring is larger, copy is larger and brighter */
@media(min-width:1001px){[data-splash="comms-planner"] .gft-structure{scale:1}}
[data-splash="comms-planner"] .gft-splash__lede{color:#eaf2ed;font-size:clamp(17px,1.5vw,21px);max-width:40ch}
[data-splash="comms-planner"] .gft-eyebrow{font-size:13px;color:#b9d6c6}
[data-splash="comms-planner"] .gft-splash__actions .gft-button{font-size:16px;min-height:54px;padding-inline:26px}
[data-splash="comms-planner"] .gft-splash__data,[data-splash="comms-planner"] .gft-splash__caption,[data-splash="comms-planner"] .gft-splash__cue,[data-splash="comms-planner"] .gft-splash__position{font-size:12px;color:#c4d6cb}
[data-splash="comms-planner"] .cp-splash-preview>p,[data-splash="comms-planner"] .cp-splash-preview>span,[data-splash="comms-planner"] .cp-splash-preview>small,[data-splash="comms-planner"] .cp-splash-preview strong>span{font-size:12px;color:#d3e3da}
@media(max-width:640px){[data-splash="comms-planner"] .gft-splash__data{font-size:12px}}
/* 1 instrument: a dark band continues the splash, the dial rises into it */
.cp-root{--cp-lap:clamp(72px,7vw,104px)}
.cp-s--shell{padding-top:0}
.cp-band{position:relative;isolation:isolate;overflow:clip;background:var(--gft-night);color:var(--gft-paper);padding-block:clamp(40px,5vw,84px) calc(var(--cp-lap) + 48px)}
.cp-band__aura{position:absolute;z-index:-2;left:-12vw;bottom:-30%;width:58vw;height:58vw;background:radial-gradient(closest-side,rgba(107,182,143,.2),transparent);pointer-events:none}
.cp-band__ring{position:absolute;z-index:-1;right:-13vw;top:50%;width:min(62vw,880px);aspect-ratio:1;transform:translateY(-50%);pointer-events:none;-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 30%);mask-image:linear-gradient(90deg,transparent 0,#000 30%)}
.cp-band__spin{width:100%;height:100%}
.cp-ring2--hero .cp-rcell.on .cp-rc-f{opacity:.3}
.cp-ring2--hero .cp-rh{opacity:.95}.cp-ring2--hero .cp-rcap{opacity:1}
.cp-band__copy{max-width:min(640px,54%)}
.cp-root .cp-band__kicker{color:#9ccbb0}
.cp-band h2{margin:18px 0 24px;color:var(--gft-paper);font-size:clamp(2.4rem,4.4vw,4.6rem);max-width:12ch}
.cp-band__lede{font-size:clamp(16px,1.3vw,19px);color:#dbe8e0;max-width:46ch;margin:0}
.cp-strip{display:grid;gap:8px;margin:28px 0 0;max-width:540px;border:1px solid rgba(107,182,143,.55);background:rgba(18,60,54,.72);padding:16px 20px}
.cp-strip__k{font:12px/1.4 var(--gft-font-mono);letter-spacing:.08em;text-transform:uppercase;color:#9ccbb0}
.cp-strip__v{display:block;font:600 clamp(16px,1.5vw,20px)/1.45 var(--gft-font-mono);color:#fff}
.cp-root .cp-band .cp-provenance{margin:24px 0 0;max-width:56ch;font-size:14px;color:#c4d6cb;border-left-color:var(--gft-ochre)}
.cp-s__body{padding-bottom:clamp(56px,8vw,112px)}
.cp-stage>.cp-dial-panel{margin-top:calc(-1 * var(--cp-lap));box-shadow:0 24px 60px -30px rgba(7,45,43,.7)}
.cp-root .cp-switch{min-height:54px;font-size:14px;font-weight:600;padding:10px 14px;gap:10px;border-width:1.5px;transition:background-color 220ms}
.cp-switch:has(:checked){background:var(--gft-forest);color:var(--gft-paper);border-color:var(--gft-forest)}
.cp-root .cp-switch input{width:20px;height:20px;accent-color:var(--gft-sage)}
.cp-root .cp-switch__mark{width:10px;height:10px;background:#b4c2b9}
.cp-switch:has(:checked) .cp-switch__mark{background:var(--gft-sage);box-shadow:0 0 0 4px rgba(107,182,143,.32)}
.cp-root .cp-presets button{font-size:13px;min-height:48px}
.cp-method-band{grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);align-items:start}
.cp-method-band__live{display:grid;gap:12px}
.cp-method-band__live>.cp-kicker{color:var(--cp-muted)}
.cp-formula--light{background:var(--gft-night);border-color:rgba(107,182,143,.5);max-width:none;margin:0}
.cp-formula--light code{color:var(--gft-sage)}.cp-formula--light output{color:#f1f7f3;font-size:14px}
.cp-method-band p.cp-small{font-size:13px}
/* 3 annual: ghost A over B by default, delta row, tooltips */
.cp-root .cp-bar-a{border:2px dashed #0b2f2c;background:transparent}
.cp-load-chart{margin-top:44px}
.cp-chart-col::after{content:attr(data-tip);position:absolute;left:50%;bottom:calc(100% + 4px);transform:translateX(-50%);z-index:6;width:max-content;max-width:min(260px,70vw);padding:8px 10px;background:var(--gft-night);color:#f1f7f3;font:12px/1.4 var(--gft-font-mono);text-align:left;white-space:normal;opacity:0;pointer-events:none;transition:opacity 160ms}
.cp-chart-col:nth-child(-n+3)::after{left:0;transform:none}
.cp-chart-col:nth-last-child(-n+3)::after{left:auto;right:0;transform:none}
.cp-chart-col:hover::after,.cp-chart-col:focus-visible::after{opacity:1}
.cp-delta-k{font:12px/1.4 var(--gft-font-mono);color:var(--cp-muted);margin:14px 0 6px}
.cp-delta-row{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:8px}
.cp-delta{font:700 12px/1 var(--gft-font-mono);text-align:center;padding:8px 0;background:#d6e4db;color:#0b2f2c}
.cp-delta[data-d=up]{background:var(--gft-ochre);color:var(--gft-night)}
.cp-delta[data-d=down]{background:var(--gft-forest);color:var(--gft-paper)}
.cp-year .cp-actions button{min-height:52px;font-size:14px;padding-inline:22px}
.cp-year .cp-actions button:first-child{color:var(--gft-night)}
/* 5 method: cross-fades hand over, never overlap */
.cp-night .cp-nc{transition:opacity 220ms ease-out}
.cp-night__grid[data-step="0"] [data-cp-nc="0"],.cp-night__grid[data-step="1"] [data-cp-nc="1"],.cp-night__grid[data-step="2"] [data-cp-nc="2"],.cp-night__grid[data-step="3"] [data-cp-nc="3"]{transition:opacity 420ms ease-out 280ms}
.cp-ring2 .cp-rt{transition:opacity 220ms ease-out}
.cp-night__grid[data-step="1"] .cp-rt-n,.cp-night__grid[data-step="2"] .cp-rt-h,.cp-night__grid[data-step="3"] .cp-rm[data-peak] .cp-rt-h,.cp-night__grid[data-step="3"] .cp-rm[data-over] .cp-rt-h{transition-delay:280ms;transition-duration:420ms}
/* 6 calendar: larger rail, phase tint, heat */
.cp-cal__grid{grid-template-columns:minmax(300px,.58fr) minmax(0,1.42fr)}
.cp-cal__rail{padding:26px}
.cp-cal__key{margin:0;justify-content:flex-start}
.cp-root .cp-cal__table tbody tr[data-phase=pre]:not([data-cp-hover]):not([data-cp-selected]){background-color:#eef5f0}
.cp-root .cp-cal__table tbody tr[data-phase=launch]:not([data-cp-hover]):not([data-cp-selected]){background-color:#f8f0df}
.cp-root .cp-cal__table tbody tr[data-phase=sustained]:not([data-cp-hover]):not([data-cp-selected]){background-color:#eef0f9}
.cp-cal__table tbody tr{background-image:linear-gradient(90deg,rgba(201,138,43,calc(var(--heat,0) * .2)),transparent 60%)}
.cp-cal__table tbody tr[data-phase=pre]:not([data-cp-selected]) th{box-shadow:inset 4px 0 var(--cp-pre)}
.cp-cal__table tbody tr[data-phase=launch]:not([data-cp-selected]) th{box-shadow:inset 4px 0 var(--cp-launch)}
.cp-cal__table tbody tr[data-phase=sustained]:not([data-cp-selected]) th{box-shadow:inset 4px 0 #6f7fc4}
.cp-load{width:96px;height:12px}
:root[data-m-go] .cp-cal__table tbody[data-m=cascade]:not([data-m-in])>tr:nth-child(even){translate:1.8rem 0}
:root[data-m-go] .cp-cal__table tbody[data-m=cascade][data-m-in]>tr:nth-child(even){animation-name:cp-cascade-r}
@keyframes cp-cascade-r{from{opacity:0;translate:1.8rem 0}}
/* 7 assumptions: room above, diff against the default */
.cp-assume{padding-top:clamp(88px,10vw,144px)}
.cp-assume__panel h2{line-height:1.12;padding-bottom:.06em}
.cp-assume__read{min-height:7em}
.cp-diff{display:block;margin-top:8px;font:12px/1.45 var(--gft-font-mono);color:var(--cp-muted);max-width:20ch;white-space:normal}
.cp-state[data-changed]+.cp-diff{color:#5b3a05;font-weight:700}
.cp-assume__table td:nth-child(4){min-width:150px}
/* 8 judgement: scroll-linked lenses on a sticky ring */
.cp-limits__head{margin-bottom:clamp(28px,4vw,56px)}
.cp-limits__head h2{margin-top:18px;max-width:20ch}
.cp-limits__grid{grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr)}
.cp-limits__cards{list-style:none;margin:0;padding:0;display:grid;gap:28px}
.cp-lcard{position:relative;isolation:isolate;min-height:54svh;display:flex;flex-direction:column;justify-content:center;gap:14px;padding:32px 32px 32px 44px;border:1px solid var(--cp-border)}
.cp-lcard::before{content:'';position:absolute;left:0;top:0;bottom:0;width:6px;background:var(--gft-forest);transform-origin:50% 0;transform:scaleY(0);transition:transform 600ms var(--m-out,ease-out)}
.cp-lcard::after{content:'';position:absolute;inset:0;z-index:-1;background:#fff;opacity:0;transition:opacity 500ms var(--m-out,ease-out)}
.cp-lcard[data-active]::before{transform:scaleY(1)}.cp-lcard[data-active]::after{opacity:1}
.cp-lcard__n{font:850 clamp(44px,5.4vw,80px)/1 var(--gft-font-display);letter-spacing:-.06em;color:var(--gft-leaf)}
.cp-limits__cards .cp-lcard h3{font-size:clamp(24px,2.5vw,34px);max-width:18ch;margin:0}
.cp-limits__cards .cp-lcard p{font-size:16px;max-width:46ch;margin:0}
.cp-lcard__lens{display:flex;flex-wrap:wrap;gap:6px 12px;align-items:baseline;font:13px/1.5 var(--gft-font-mono);color:var(--cp-muted);border-top:1px solid var(--cp-border);padding-top:14px}
.cp-lcard__lens .cp-kicker{color:#2f5a4c}
.cp-limits__stage{position:relative;width:min(100%,520px,max(280px,calc(100svh - 470px)))}
.cp-limits__halo{position:absolute;inset:-3%;border:2px dashed var(--gft-ochre);border-radius:50%;opacity:0;transition:opacity 500ms var(--m-out,ease-out);pointer-events:none}
.cp-limits__panel[data-card="2"] .cp-limits__halo{opacity:.95}
.cp-ring2--read .cp-rcell.on .cp-rc-f{opacity:.26}
.cp-limits__panel[data-card="0"] .cp-ring2--read .cp-rh{opacity:.9}
.cp-limits__panel[data-card="0"] .cp-ring2--read .cp-rcap{opacity:1}
.cp-limits__panel[data-card="1"] .cp-ring2--read .cp-rcell .cp-rc-o{stroke:#fff;stroke-width:2.4;opacity:1}
.cp-limits__panel[data-card="2"] .cp-ring2--read .cp-rm{opacity:.75}
.cp-tabpanel p{max-width:none}
.cp-tabpanel output{font-size:14px;min-height:2.6em}
/* closing: sweep, gate hint, buttons, cards, finale */
.cp-close__sweep{position:absolute;inset:3%;border-radius:50%;pointer-events:none;background:conic-gradient(from 0deg,transparent 0 80%,rgba(107,182,143,.36) 100%);-webkit-mask-image:radial-gradient(closest-side,transparent 60%,#000 62%,#000 99%,transparent 100%);mask-image:radial-gradient(closest-side,transparent 60%,#000 62%,#000 99%,transparent 100%)}
.cp-close .cp-actions button{min-height:54px;font-size:15px;font-weight:700;padding-inline:24px}
.cp-close .cp-actions button:last-child{background:var(--gft-paper);color:var(--gft-night);border-color:var(--gft-paper)}
.cp-close .cp-actions button:last-child:hover{background:#fff}
.cp-close .cp-gate-item{font-size:15px;min-height:52px}
.cp-close .cp-gatelist .cp-small,.cp-close .cp-small{font-size:13px}
.cp-close__related{padding-block:44px 28px;gap:clamp(28px,4vw,56px)}
.cp-rcards{list-style:none;padding:0;margin:0 0 18px;display:grid;gap:12px}
.cp-rcard{position:relative;display:grid;grid-template-columns:72px minmax(0,1fr);grid-template-areas:"ring id" "ring title" "ring sub";column-gap:18px;row-gap:4px;align-items:center;padding:18px 48px 18px 18px;min-height:104px;border:1px solid rgba(107,182,143,.42);background:rgba(18,60,54,.55);color:var(--gft-paper);text-decoration:none}
.cp-rcard__ring{grid-area:ring;width:72px;height:72px;transition:transform 700ms cubic-bezier(.16,1,.3,1)}
.cp-rcard__seg{fill:var(--gft-sage);opacity:.2;transition:opacity 400ms ease-out}
.cp-rcard__seg.is-lit{opacity:.85}
.cp-rcard:hover .cp-rcard__ring,.cp-rcard:focus-visible .cp-rcard__ring{transform:rotate(60deg)}
.cp-rcard:hover .cp-rcard__seg,.cp-rcard:focus-visible .cp-rcard__seg{opacity:.9}
.cp-rcard .cp-paper-id{grid-area:id;font:12px/1.4 var(--gft-font-mono);color:#9ccbb0;letter-spacing:.08em;text-transform:uppercase}
.cp-rcard strong{grid-area:title;font-size:19px;line-height:1.25;letter-spacing:-.02em}
.cp-rcard__sub{grid-area:sub;font-size:14px;line-height:1.5;color:#d6e4db}
.cp-rcard__go{position:absolute;right:18px;top:16px;font-size:20px;color:var(--gft-sage)}
.cp-close__rel-col .cp-small{color:#c4d6cb}
.cp-close__finale{position:relative;display:grid;place-items:center;height:clamp(200px,24vw,320px);overflow:clip;margin-top:8px}
.cp-close__finale svg{position:absolute;left:50%;top:0;width:min(78vw,440px);height:auto;aspect-ratio:1;translate:-50% 0}
.cp-close__tag{position:relative;margin:0;font:italic 400 clamp(24px,3vw,40px)/1.2 var(--gft-font-serif,'Playfair Display',serif);color:var(--gft-paper);align-self:end;padding-bottom:28px}
/* phone and tablet */
@media(max-width:1100px){
 .cp-band__copy{max-width:62%}
 .cp-limits__grid{grid-template-columns:1fr}
 .cp-lcard{min-height:0}
 .cp-limits__panel{margin-top:24px}
}
@media(max-width:900px){
 .cp-band{padding-top:24px}
 .cp-band__ring{position:relative;right:auto;top:auto;transform:none;width:min(84vw,380px);margin:0 auto 16px;-webkit-mask-image:none;mask-image:none;opacity:.9}
 .cp-band__copy{max-width:none}
 .cp-method-band{grid-template-columns:1fr}
 .cp-cal__grid{grid-template-columns:1fr}
}
@media(max-width:640px){
 .cp-delta-row{gap:2px}
 .cp-delta{font-size:12px;padding:8px 0}
 .cp-root .cp-chart-col>output,.cp-root .cp-chart-month{font-size:12px}
 .cp-root .cp-kicker{font-size:12px}
 .cp-root .cp-status-chip,.cp-root .cp-dial-centre>.cp-kicker,.cp-root .cp-dial-centre .cp-small,.cp-root .cp-work-metrics span,.cp-root .cp-kpis span{font-size:12px!important}
 .cp-root .cp-phase-key{font-size:12px}
 .cp-rcard{grid-template-columns:56px minmax(0,1fr);padding-right:40px}.cp-rcard__ring{width:56px;height:56px}
 .cp-chart-col::after{display:none}
}
@media(prefers-reduced-motion:reduce){.cp-lcard::before,.cp-lcard::after,.cp-limits__halo,.cp-rcard__ring,.cp-rcard__seg,.cp-chart-col::after{transition:none!important}}
:root[data-motion=calm] .cp-lcard::before,:root[data-motion=calm] .cp-lcard::after,:root[data-motion=calm] .cp-limits__halo,:root[data-motion=calm] .cp-rcard__ring,:root[data-motion=calm] .cp-rcard__seg,:root[data-motion=calm] .cp-chart-col::after{transition:none!important}
/* ======== Round 3 audit fixes: 12 px floor, contrast, no empty dial ======== */
.cp-stage>.cp-dial-panel{align-self:start}
@media(min-width:1001px){[data-splash="comms-planner"] .gft-splash__structure{scale:1.28;translate:5% 0;transform-origin:69.17% 50%}[data-splash="comms-planner"] .gft-structure{scale:1}}
.cp-root .cp-status-chip,.cp-root .cp-dial-centre>.cp-kicker{font-size:12px}
.cp-root .cp-current{font-size:13px!important;min-height:48px}
.cp-root .cp-month-buttons button{font-size:13px}
.cp-cal__table .cp-table-phase,.cp-root .cp-cal__table .cp-table-phase{font-size:12px}
.cp-close__centre span{font-size:12px;max-width:13ch}
.cp-nstep{opacity:.74}
.cp-night .cp-nstep .cp-kicker{color:#b9dcc9}
.cp-night .cp-formula code{color:#9fe0bd}
.cp-assume__panel h2 .gft-serif{color:#9fe0bd}
.cp-year .cp-actions button:disabled{opacity:.72}
.cp-root .cp-kicker{font-weight:600}
[data-splash="comms-planner"] .cp-splash-preview{width:200px;gap:6px;isolation:isolate}
[data-splash="comms-planner"] .cp-splash-preview::before{content:'';position:absolute;inset:-26px -34px;z-index:-1;background:radial-gradient(closest-side,rgba(7,45,43,.92) 62%,transparent);pointer-events:none}
[data-splash="comms-planner"] .cp-splash-preview>p{letter-spacing:.04em}
[data-splash="comms-planner"] .cp-splash-preview>strong{font-size:64px}
@media(max-width:640px){[data-splash="comms-planner"] .cp-splash-preview{width:180px}[data-splash="comms-planner"] .cp-splash-preview::before{inset:-14px -20px}[data-splash="comms-planner"] .cp-splash-preview>strong{font-size:54px}}
.cp-root .cp-band__kicker,.cp-strip__k{color:#bfe3cf}
.cp-close__finale{height:clamp(320px,36vw,480px);margin-top:0;place-items:center}
.cp-close__finale svg{top:50%;width:min(80vw,440px);translate:-50% -50%}
.cp-close__tag{align-self:center;padding-bottom:0;font-size:clamp(20px,2.1vw,28px);text-align:center;max-width:15ch}

/* ---- round 4: blocking fixes (empty card, dead bands, clipped heading, contrast) and live echoes ---- */
.cp-s--shell{padding-bottom:clamp(40px,5vw,72px)}
.cp-year{padding-top:clamp(40px,5vw,72px)}
.cp-assume{padding-bottom:clamp(40px,5vw,72px)}
.cp-limits{padding-top:clamp(48px,5vw,72px);padding-bottom:clamp(48px,5vw,72px)}
.cp-limits__head{margin-bottom:clamp(20px,3vw,40px)}
.cp-lcard{min-height:clamp(0px,32svh,300px);justify-content:flex-start;padding:28px 32px 28px 44px}
.cp-lcard__n{font-size:clamp(40px,4.4vw,64px)}
.cp-limits__panel[data-tab="0"] .cp-ring2--read .cp-rm:not(.cp-rm-launch){opacity:.92}
.cp-limits__panel[data-card="2"] .cp-ring2--read .cp-rm{opacity:.95}
.cp-limits__panel .cp-tabpanel h3{font-size:clamp(22px,2.2vw,30px)}
.cp-limits__panel .cp-tabpanel p{font-size:16px}
.cp-limits__panel .cp-tabpanel output{font-size:14px;color:#b9e3cd}
/* method band: a live bar echoes the formulas */
.cp-hbar{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center}
.cp-hbar__track{display:block;height:14px;background:rgba(14,77,74,.14);border:1px solid var(--cp-border);overflow:hidden}
.cp-hbar__fill{display:block;height:100%;background:var(--gft-forest);transform-origin:0 50%;transition:transform 520ms var(--m-out,ease-out),background-color 300ms}
.cp-hbar__fill[data-over]{background:var(--gft-ochre)}
.cp-hbar__cap{font:12px var(--gft-font-mono);color:var(--cp-muted)}
.cp-hbar__label{margin:0}
.cp-method-band{margin-top:40px}
/* assumptions: delta strip, changed rows, larger inputs */
.cp-assume__bar{display:flex;flex-wrap:wrap;gap:14px 24px;align-items:center;justify-content:space-between;padding:16px 20px;margin-bottom:16px;background:var(--gft-forest);color:var(--gft-paper)}
.cp-assume__delta{display:grid;gap:6px;min-width:min(100%,280px);flex:1 1 320px}
.cp-assume__bar .cp-kicker{color:#b9dcc9}
.cp-assume__bar output{font:600 15px/1.5 var(--gft-font-mono);color:#f1f7f3}
.cp-assume__meter{display:block;position:relative;height:8px;background:rgba(255,255,255,.18)}
.cp-assume__meter i{display:block;height:100%;background:var(--gft-sage);transform-origin:0 50%;transform:scaleX(.5);transition:transform 520ms var(--m-out,ease-out),background-color 300ms}
.cp-assume__meter i[data-up]{background:var(--gft-ochre)}
.cp-assume__meter b{position:absolute;left:50%;top:-3px;bottom:-3px;width:2px;background:#fff}
.cp-assume__bar .cp-reset{color:var(--gft-paper);border-color:var(--gft-sage);min-height:44px;padding-inline:18px}
.cp-assume__bar .cp-reset[data-changed]{color:var(--gft-night)}
.cp-assume__table tbody tr:has(.cp-state[data-changed]){background:#f6e7c6}
.cp-root .cp-assume__table caption,.cp-root .cp-assume__table thead th{font-size:13px}
.cp-root .cp-ainput input,.cp-root .cp-ainput select{font-size:16px;min-height:44px}
.cp-ainput small,.cp-state,.cp-diff{font-size:13px}
.cp-assume__table td:nth-child(2){font-size:15px}
/* closing: soft handover from the paper limits band, and larger related tiles */
.cp-close::before{content:'';position:absolute;left:0;right:0;top:0;height:calc(clamp(72px,9vw,128px) - 20px);z-index:-1;background:linear-gradient(to bottom,var(--gft-paper),var(--gft-night));pointer-events:none}
.cp-rcard{padding-block:22px;min-height:120px}
.cp-rcard strong{font-size:clamp(20px,1.9vw,24px)}
.cp-rcard__sub{font-size:15px;color:#e2eee7}
.cp-rcard .cp-paper-id{font-size:12px;color:#b9dcc9}
.cp-close__finale{height:clamp(300px,26vw,380px)}
.cp-close__finale svg{width:min(70vw,300px)}
@media(max-width:640px){.cp-lcard{min-height:0}.cp-assume__bar{padding:14px}}
@media(prefers-reduced-motion:reduce){.cp-hbar__fill,.cp-assume__meter i{transition:none!important}}
:root[data-motion=calm] .cp-hbar__fill,:root[data-motion=calm] .cp-assume__meter i{transition:none!important}

/* ======== Round 4: dark model band, tracking rail, offset lenses, iris handover, tile finale ======== */
/* 1 instrument: the hero ring sits fully inside the frame */
@media(min-width:901px){.cp-band__ring{right:1vw;width:min(54vw,780px)}}
.cp-s--shell{padding-bottom:0}
.cp-s__body{padding-bottom:clamp(40px,5vw,64px)}
.cp-root .cp-strip__v{font-size:clamp(16px,1.5vw,20px)}
/* 2 the model band: dark, full bleed, a live ring echo of the selected month */
.cp-method{position:relative;isolation:isolate;overflow:clip;background:var(--gft-night);color:var(--gft-paper);padding-block:clamp(56px,7vw,104px)}
.cp-method__aura{left:auto;right:-10vw;top:-12%}
.cp-method__grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.9fr);gap:clamp(28px,5vw,88px);align-items:center}
.cp-method .cp-kicker{color:#9ccbb0}
.cp-method h2{color:var(--gft-paper);margin:16px 0 20px;max-width:14ch}
.cp-root .cp-method h2 .gft-serif{color:#9fe0bd}
.cp-method__text{font-size:16px;color:#e8f1ec;max-width:54ch;margin:0}
.cp-method__sums{display:grid;gap:10px;margin:24px 0 18px;max-width:560px}
.cp-method .cp-formula--light{background:rgba(18,60,54,.72);border-color:rgba(107,182,143,.5);padding:14px 18px}
.cp-method .cp-formula--light code{font-size:clamp(15px,1.3vw,18px);color:#9fe0bd}
.cp-method .cp-formula--light output{font-size:15px;color:#f1f7f3}
.cp-method .cp-hbar{max-width:560px}
.cp-method .cp-hbar__track{background:rgba(255,255,255,.12);border-color:rgba(107,182,143,.45)}
.cp-method .cp-hbar__fill{background:var(--gft-sage)}
.cp-method .cp-hbar__fill[data-over]{background:#f1c36f}
.cp-method .cp-hbar__cap{color:#c4d6cb}
.cp-method .cp-small{color:#c4d6cb}
.cp-method__src{max-width:62ch;margin:12px 0 0}
.cp-method__visual{display:grid;gap:14px;justify-items:center}
.cp-method__ring{position:relative;width:min(100%,560px,calc(100svh - 170px));aspect-ratio:1}
.cp-ring2--method .cp-rcell.on .cp-rc-f{opacity:.3}
.cp-ring2--method .cp-rh{opacity:.95}.cp-ring2--method .cp-rcap{opacity:1}
.cp-ring2--method .cp-rm{opacity:.55;transition:opacity 500ms var(--m-out,ease-out)}
.cp-ring2--method .cp-rm[data-selected],.cp-ring2--method .cp-rm[data-hover]{opacity:1}
.cp-ring2--method .cp-rm[data-selected] .cp-rc-f{opacity:.8}
.cp-method__centre{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;pointer-events:none;text-align:center}
.cp-method__centre strong{font:850 clamp(34px,4.4vw,66px)/1 var(--gft-font-display);letter-spacing:-.05em;color:var(--gft-paper)}
.cp-method__centre span:last-child{font:12px/1.4 var(--gft-font-mono);color:#c4d6cb;max-width:14ch}
.cp-method__hint{margin:0;max-width:46ch;text-align:center}
/* 3 annual load: the chart enters in the first screen */
.cp-year{padding-top:clamp(32px,4vw,56px)}
/* 4 calendar: the rail tracks the row in view */
.cp-cal__track{display:none;font:600 12px/1.4 var(--gft-font-mono);letter-spacing:.06em;text-transform:uppercase;color:#f1c36f!important}
.cp-cal__rail[data-tracking] .cp-cal__track{display:block}
.cp-root .cp-cal__table tbody tr[data-cp-track]{outline:2px solid var(--gft-forest);outline-offset:-2px}
.cp-cal__table tbody tr[data-cp-track] th{box-shadow:inset 6px 0 var(--gft-ochre)!important}
.cp-cal__ring{transition:transform 500ms var(--m-out,ease-out)}
.cp-cal__rail[data-tracking] .cp-cal__ring{transform:scale(1.04)}
/* ======== Round 9 fixes: sticky instrument ring, dark assumptions dial & cards, non-overlapping limits, spoke constellation & high-contrast finale ======== */
.cp-root .cp-kicker{font-size:13px;font-weight:600}
.cp-root .cp-small{font-size:13px;color:#2b4037}
.cp-root.cp-method .cp-small,.cp-root.cp-night .cp-small,.cp-root.cp-assume .cp-small,.cp-root.cp-close .cp-small,.cp-dial-panel .cp-small,.cp-cal__rail .cp-small,.cp-year .cp-scenarios .cp-small{color:#d4ecdf}
/* 1 instrument: sticky ring at 45% width, two-column work order & larger channel chips with visible slot/hour effect */
.cp-band{padding-block:clamp(36px,4.5vw,68px) clamp(36px,4.5vw,56px)}
.cp-stage>.cp-dial-panel{margin-top:0;align-self:start}
@media(min-width:1101px){
 .cp-stage{grid-template-columns:minmax(0,.45fr) minmax(0,.55fr);gap:24px 36px;align-items:start}
 .cp-stage>.cp-dial-panel{position:sticky;top:74px;padding:18px 20px 16px}
 .cp-dial-panel .cp-ring-wrap{max-width:300px;margin:6px auto 4px}
 .cp-dial-panel .cp-dial-centre strong{font-size:clamp(28px,2.5vw,40px);line-height:1.05}
 .cp-dial-panel .cp-dial-centre output{font-size:clamp(15px,1.4vw,19px);margin-top:6%}
 .cp-dial-panel .cp-phase-key{margin-block:4px 8px;gap:6px 14px;font-size:12px}
 .cp-dial-panel .cp-month-buttons{margin-top:8px;gap:5px}
 .cp-dial-panel .cp-month-buttons button{min-height:44px;padding:4px 2px;font-size:13px}
 .cp-dial-panel .cp-current{margin-top:8px;min-height:44px;padding:8px 12px;font-size:13px!important}
 .cp-dial-panel .cp-dial-sliders{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:10px;padding-top:10px}
 .cp-dial-panel .cp-paired{margin-top:0;padding-top:0;gap:6px}
}
.cp-work-order{border:1px solid var(--cp-border);background:#fbfaf6;padding:24px 28px}
.cp-work-order__head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px 16px}
.cp-work-order .cp-work-date{margin-top:0;font-size:14px;font-weight:600;color:var(--gft-night)}
.cp-work-order h3{min-height:0;margin-block:8px 4px;font-size:clamp(24px,2.4vw,32px)}
.cp-work-order__sub{margin:0;font-size:14px;color:#2b4037}
.cp-work-order__grid{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);gap:24px;align-items:start;margin-top:16px;padding-top:16px;border-top:1px solid var(--cp-border)}
.cp-work-order__col{display:grid;gap:12px;min-width:0}
.cp-work-metrics{margin:0;padding:0 0 14px;border-top:0;border-bottom:1px solid var(--cp-border)}
.cp-root .cp-work-metrics span{font-size:13px;font-weight:600;color:#2b4037}
.cp-root .cp-work-metrics output{font-size:24px;font-weight:700;color:var(--gft-night)}
.cp-root .cp-interpretation{font-size:14px;line-height:1.65;min-height:0;margin-top:0;color:var(--gft-night)}
.cp-work-order h4{font-size:15px;margin:0}
.cp-channel-list{margin-top:2px}
.cp-root .cp-channel-list li{font-size:13px;font-weight:600;color:var(--gft-night);background:#e3ede6;border-color:#7c9b8b}
.cp-root .cp-omitted{font-size:13px;color:#2b4037;margin-top:0;min-height:0}
.cp-work-order .cp-work-foot{font-size:13px;color:#2b4037;padding-top:12px}
.cp-config{margin-top:0;background:#fbfaf6;padding:24px 28px}
.cp-config .cp-switch-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.cp-root .cp-switch{display:grid;grid-template-columns:20px minmax(0,1fr) auto;grid-template-areas:"cb name mark" "cb eff mark";align-items:center;gap:2px 12px;min-height:58px;padding:10px 14px;background:#f2f5f1;border-color:#8ca799;color:var(--gft-night)}
.cp-switch input{grid-area:cb}
.cp-switch__name{grid-area:name;font-size:15px;font-weight:700;line-height:1.3}
.cp-switch__effect{grid-area:eff;font:500 13px/1.35 var(--gft-font-mono);color:#2b4037}
.cp-switch__mark{grid-area:mark}
.cp-switch:has(:checked){background:var(--gft-forest);color:var(--gft-paper);border-color:var(--gft-forest)}
.cp-switch:has(:checked) .cp-switch__effect{color:#d4ecdf}
.cp-root .cp-date-fields label{font-size:14px;font-weight:600;color:var(--gft-night)}
/* 5 assumptions: dark full-bleed band with sticky ring dial and 2-col delta-bar cards */
.cp-assume{position:relative;isolation:isolate;overflow-x:clip;background:var(--gft-night);color:var(--gft-paper);padding-block:clamp(64px,7vw,96px)}
.cp-root.cp-assume{color:var(--gft-paper)}
.cp-assume__aura{left:auto;right:-12vw;top:8%}
.cp-assume__grid{grid-template-columns:minmax(320px,.82fr) minmax(0,1.18fr);gap:clamp(28px,4vw,52px);align-items:start}
.cp-assume__panel{position:sticky;top:80px;background:rgba(14,77,74,.74);border:1px solid rgba(107,182,143,.44);padding:26px 28px;display:grid;gap:16px}
.cp-assume__panel h2{max-width:15ch;font-size:clamp(1.85rem,2.6vw,2.5rem)}
.cp-assume__dial{position:relative}
.cp-assume__ringwrap{position:relative;width:min(100%,290px);aspect-ratio:1;margin-inline:auto}
.cp-ring2--assume .cp-rcell.on .cp-rc-f{opacity:.32}
.cp-ring2--assume .cp-rh{opacity:.95}.cp-ring2--assume .cp-rcap{opacity:1}
.cp-assume__centre{position:absolute;inset:20%;border-radius:50%;background:#072d2b;border:1.5px solid rgba(107,182,143,.45);box-shadow:0 0 0 6px rgba(7,45,43,.85);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:4px;pointer-events:none;padding:8px}
.cp-assume__big{display:grid;gap:2px;margin:0}
.cp-assume__big output{font:850 clamp(32px,3.2vw,48px)/1 var(--gft-font-display);letter-spacing:-.05em;color:var(--gft-paper)}
.cp-assume__big span{font:12px/1.3 var(--gft-font-mono);color:#d4ecdf}
.cp-assume__delta2{display:grid;gap:2px;margin:0}
.cp-assume__delta2 .cp-kicker{font-size:12px;color:#b9e3cd}
.cp-assume__delta2 output{font:800 clamp(18px,1.8vw,24px)/1.1 var(--gft-font-mono);letter-spacing:-.03em;color:#f1c36f}
.cp-assume__delta2 output[data-d=up]{color:#f1c36f}
.cp-assume__delta2 output[data-d=down]{color:#9fe0bd}
.cp-assume__foot{display:grid;gap:12px}
.cp-assume__meta{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px}
.cp-assume__read{min-height:4.6em;padding-top:12px}
.cp-assume__bar{background:rgba(14,77,74,.82);border:1px solid rgba(107,182,143,.45);margin-bottom:14px}
.cp-assume__bar .cp-reset{min-height:48px;font-size:14px}
.cp-assume__caption{font-size:15px;color:#dbe8e0;margin:0 0 18px;max-width:64ch}
.cp-assume__table{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;min-width:0}
.cp-acard{background:#103832;border:1px solid rgba(107,182,143,.45);padding:18px 20px;display:grid;gap:10px;align-content:start;transition:border-color 220ms,background-color 220ms}
.cp-acard:hover,.cp-acard:focus-within,.cp-acard:focus-visible{border-color:var(--gft-sage);background:#15463e}
.cp-acard:has(.cp-state[data-changed]){border-color:var(--gft-ochre);box-shadow:inset 4px 0 var(--gft-ochre)}
.cp-acard__top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.cp-acard__title{font:750 17px/1.3 var(--gft-font-display);color:var(--gft-paper);margin:0}
.cp-acard .cp-state{background:#072d2b;color:#d4ecdf;border-color:rgba(107,182,143,.52);font-size:12px;padding:4px 9px}
.cp-acard .cp-state--src{background:#174d44;color:#f1f7f3}
.cp-acard .cp-state[data-changed]{background:var(--gft-ochre);color:var(--gft-night);border-color:var(--gft-ochre);font-weight:700}
.cp-acard__control{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 12px}
.cp-acard__fixed,.cp-acard__out{font:600 14px/1.4 var(--gft-font-mono);color:#e9efe8}
.cp-root .cp-acard .cp-ainput input,.cp-root .cp-acard .cp-ainput select{background:#072d2b;color:var(--gft-paper);border-color:rgba(107,182,143,.6);font-size:15px;min-height:46px;width:108px}
.cp-root .cp-acard .cp-ainput--two select{width:92px}.cp-root .cp-acard .cp-ainput--two input{width:98px}
.cp-acard .cp-ainput small,.cp-acard .cp-diff{color:#d4ecdf;font-size:13px;margin:0}
.cp-acard__bar{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center}
.cp-acard__track{position:relative;display:block;height:8px;background:rgba(255,255,255,.15);overflow:hidden}
.cp-acard__fill{display:block;height:100%;background:var(--gft-sage);transform-origin:0 50%;transition:transform 420ms var(--m-out,ease-out),background-color 260ms}
.cp-acard__fill--src{background:#9fe0bd}
.cp-acard__fill[data-changed]{background:var(--gft-ochre)}
.cp-acard__track b{position:absolute;left:50%;top:0;bottom:0;width:2px;background:rgba(246,244,239,.75)}
.cp-acard__ref{font:12px/1.3 var(--gft-font-mono);color:#d4ecdf}
.cp-acard__basis{font-size:13px;line-height:1.55;color:#d4ecdf;margin:0}
/* 6 judgement: non-overlapping layout, sticky ring column on left, single column of cards on right */
.cp-limits__grid{grid-template-columns:minmax(360px,.92fr) minmax(0,1.08fr);gap:clamp(32px,4.5vw,64px);align-items:start}
.cp-limits__panel{position:sticky;top:82px;z-index:1;padding:26px 28px;background:var(--gft-night);color:var(--gft-paper);display:grid;gap:16px}
.cp-limits__stage{position:relative;width:min(100%,300px);margin-inline:auto;aspect-ratio:1}
.cp-limits__cards{position:relative;z-index:2;display:grid;gap:28px;margin:0;padding:0;list-style:none}
.cp-lcard,.cp-lcard:nth-child(2),.cp-lcard:nth-child(3){margin:0;min-height:0;padding:28px 32px 28px 40px;background:#fff;border:1px solid var(--cp-border);box-shadow:0 18px 38px -28px rgba(7,45,43,.35);cursor:pointer}
.cp-limits__lens{margin:0;min-height:3.2em;display:grid;align-content:start}
.cp-limits__lens>span{display:none;font:600 clamp(16px,1.5vw,19px)/1.4 var(--gft-font-display);color:var(--gft-paper)}
.cp-limits__lens>span b{display:block;font:600 12px/1.6 var(--gft-font-mono);letter-spacing:.1em;text-transform:uppercase;color:#9fe0bd;margin-bottom:2px}
.cp-limits__panel[data-card="0"] [data-cp-lens="0"],.cp-limits__panel[data-card="1"] [data-cp-lens="1"],.cp-limits__panel[data-card="2"] [data-cp-lens="2"]{display:block}
.cp-limits__panel .cp-ring2--read .cp-rm{opacity:1}
.cp-limits__panel[data-card="0"] .cp-ring2--read .cp-rcell.on .cp-rc-f{opacity:.55}
.cp-limits__panel[data-card="1"] .cp-ring2--read .cp-rcell.on .cp-rc-f{opacity:.1}
.cp-limits__panel[data-card="2"] .cp-ring2--read .cp-rcell.on .cp-rc-f{opacity:.4}
.cp-limits__panel[data-card="2"] .cp-ring2--read .cp-rh{opacity:.35}
.cp-limits__halo{inset:-6%;border-width:2.5px;box-shadow:0 0 0 8px rgba(201,138,43,.12)}
.cp-limits__panel[data-card="2"] .cp-limits__halo{opacity:1}
.cp-limits__panel .cp-tabpanel h3{font-size:clamp(22px,2.2vw,30px);line-height:1.15}
.cp-limits__panel .cp-tabpanel p{font-size:16px;line-height:1.6}
.cp-limits__panel .cp-tabpanel output{font-size:14px}
/* 7 closing: no circular iris bleed, spoke-ring constellation & high-contrast finale with handover wipe */
.cp-close::before{display:none}
.cp-close__lede{font-size:17px;color:#eef5f0;max-width:48ch}
.cp-close__callout p{font-size:15px;color:#e2eee7}
.cp-close .cp-gate-item{font-size:16px}
.cp-close__related{display:grid;grid-template-columns:1fr;gap:28px;margin-top:clamp(56px,6vw,84px);padding-block:44px 36px;border-top:1px solid rgba(107,182,143,.32)}
.cp-close__rel-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px 40px;align-items:end}
.cp-close__rel-title{font-size:clamp(24px,2.5vw,34px);line-height:1.12;color:var(--gft-paper);margin:10px 0 0;max-width:22ch}
.cp-close__rel-bar{display:grid;gap:6px;margin:0;padding:14px 18px;background:rgba(18,60,54,.82);border:1px solid rgba(107,182,143,.55)}
.cp-close__rel-bar output{font:600 14px/1.5 var(--gft-font-mono);color:#e9efe8}
.cp-close__constellation{display:grid;grid-template-columns:minmax(0,1fr) minmax(290px,.92fr) minmax(0,1fr);gap:clamp(20px,2.5vw,34px);align-items:center}
.cp-close__rel-col--b{margin-top:0}
.cp-close__col-head{font-size:18px;font-weight:750;color:#e9efe8;margin:0 0 14px}
.cp-rcards{gap:12px;margin:0 0 14px}
.cp-rcard{grid-template-columns:68px minmax(0,1fr);min-height:116px;padding:18px 44px 18px 18px;column-gap:16px;background:rgba(18,60,54,.68);border:1px solid rgba(107,182,143,.45);transition:translate 400ms var(--m-out,ease-out),background-color 300ms,border-color 300ms}
.cp-rcard[data-active]{border-color:#f1c36f;background:rgba(24,76,68,.95);box-shadow:inset 4px 0 #f1c36f}
.cp-rcard__ring{width:68px;height:68px}
.cp-rcard .cp-paper-id{font-size:13px;font-weight:600;color:#d4ecdf}
.cp-rcard strong{font-size:clamp(18px,1.6vw,22px);color:#fff}
.cp-rcard__sub{font-size:14px;color:#e2eee7}
.cp-rcard:hover,.cp-rcard:focus-visible,.cp-rcard:focus-within{translate:8px 0;background:rgba(24,76,68,.95);border-color:var(--gft-sage)}
.cp-close__hub{display:grid;gap:14px;justify-items:center}
.cp-close__hub-stage{position:relative;width:min(100%,350px);aspect-ratio:1}
.cp-close__hub-svg{display:block;width:100%;height:100%;overflow:visible}
.cp-hub-seg{fill:#6bb68f;fill-opacity:.18;stroke:#6bb68f;stroke-opacity:.45;stroke-width:1.5;transition:fill-opacity 300ms,stroke 300ms}
.cp-hub-seg.is-lit{fill-opacity:.78;stroke:#e9efe8}
.cp-hub-spoke line{stroke:rgba(107,182,143,.58);stroke-width:2;stroke-dasharray:4 3;transition:stroke 260ms,stroke-width 260ms}
.cp-hub-spoke circle{fill:#123c36;stroke:#6bb68f;stroke-width:2.2;transition:fill 260ms,stroke 260ms}
.cp-hub-spoke text{font:700 13px var(--gft-font-mono);fill:#d4ecdf}
.cp-hub-spoke[data-active] line{stroke:#f1c36f;stroke-width:3;stroke-dasharray:none}
.cp-hub-spoke[data-active] circle{fill:#f1c36f;stroke:#e9efe8}
.cp-hub-spoke[data-active] text{fill:#fff}
.cp-close__hub-centre{position:absolute;inset:28%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:4px;pointer-events:none}
.cp-close__hub-centre strong{font:850 clamp(24px,2.4vw,34px)/1.05 var(--gft-font-display);color:#e9efe8}
.cp-close__hub-centre span:last-child{font:12px/1.35 var(--gft-font-mono);color:#d4ecdf}
.cp-close__spoke-btns{display:flex;flex-wrap:wrap;justify-content:center;gap:6px}
.cp-root .cp-spoke-btn{min-height:44px;padding:6px 11px;font:600 12px/1.3 var(--gft-font-mono);color:#e9efe8;border-color:rgba(107,182,143,.55);background:rgba(18,60,54,.65)}
.cp-root .cp-spoke-btn[aria-pressed=true]{background:#f1c36f;border-color:#f1c36f;color:var(--gft-night);font-weight:800}
.cp-close__finale-wrap{padding-block:28px 56px;border-top:1px solid rgba(107,182,143,.32)}
.cp-close__finale{height:auto;min-height:310px;display:grid;grid-template-columns:minmax(280px,.88fr) minmax(0,1.12fr);gap:clamp(28px,4vw,52px);align-items:center;overflow:visible}
.cp-close__finale-ring{position:relative;width:min(100%,320px);aspect-ratio:1;margin-inline:auto;display:grid;place-items:center}
.cp-close__finale-ring svg{position:absolute;inset:0;width:100%;height:100%;translate:none;top:0;left:0}
.cp-fin-rotor{transform-origin:210px 210px;transition:transform 900ms var(--m-out,cubic-bezier(.16,1,.3,1));transform:rotate(var(--cp-fin,0deg))}
.cp-fin-seg{fill:#6bb68f;fill-opacity:.38;stroke:#e9efe8;stroke-width:2.2;transition:fill-opacity 420ms ease-out calc(var(--seg-i,0) * 55ms),stroke 420ms ease-out calc(var(--seg-i,0) * 55ms)}
.cp-close__finale[data-lit] .cp-fin-seg{fill-opacity:.68;stroke:#e9efe8}
.cp-close__finale svg path.is-aim{stroke:#f1c36f;stroke-width:5;fill:#f1c36f;fill-opacity:.85}
.cp-close__finale-copy{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:6px;max-width:180px;padding:12px}
.cp-close__finale-copy .cp-kicker{color:#d4ecdf;font-size:12px}
.cp-close__tag{position:static;padding:0;margin:0;font:italic 600 clamp(22px,2.2vw,28px)/1.18 var(--gft-font-serif,'Playfair Display',serif);color:#e9efe8;max-width:11ch}
.cp-close__sub{margin:2px 0 0;font:500 13px/1.4 var(--gft-font-mono);color:#d4ecdf}
.cp-close__handover{display:grid;grid-template-columns:56px minmax(0,1fr) auto;gap:20px;align-items:center;padding:26px 28px;background:rgba(18,60,54,.85);border:1.5px solid #e9efe8;color:#e9efe8;text-decoration:none;transition:background-color 260ms,border-color 260ms,translate 300ms var(--m-out,ease-out)}
.cp-close__handover:hover,.cp-close__handover:focus-visible{background:rgba(26,84,74,.96);border-color:#f1c36f;translate:6px 0}
.cp-close__handover-ring{width:56px;height:56px;display:block}
.cp-close__handover-ring svg{position:static;width:56px;height:56px;translate:none;transition:transform 600ms cubic-bezier(.16,1,.3,1)}
.cp-close__handover:hover .cp-close__handover-ring svg,.cp-close__handover:focus-visible .cp-close__handover-ring svg{transform:rotate(90deg)}
.cp-close__handover-body{display:grid;gap:6px}
.cp-close__handover-body .cp-kicker{color:#f1c36f;font-size:12px}
.cp-close__handover-body strong{font:800 clamp(20px,2.2vw,28px)/1.15 var(--gft-font-display);letter-spacing:-.03em;color:#e9efe8}
.cp-close__handover-sub{font-size:14px;line-height:1.5;color:#d4ecdf}
.cp-close__wipe{display:inline-flex;align-items:center;gap:10px;font:700 22px/1 var(--gft-font-mono);color:#f1c36f}
.cp-close__wipe span{display:inline-block;width:44px;height:2px;background:#f1c36f;transform-origin:0 50%;transition:transform 400ms cubic-bezier(.16,1,.3,1)}
.cp-close__handover:hover .cp-close__wipe span,.cp-close__handover:focus-visible .cp-close__wipe span{transform:scaleX(1.35)}
@media(max-width:1100px){
 .cp-assume__grid,.cp-limits__grid,.cp-close__constellation,.cp-close__rel-head,.cp-close__finale{grid-template-columns:1fr}
 .cp-assume__panel,.cp-limits__panel{position:static}
 .cp-assume__table{min-width:0}
}
@media(max-width:900px){
 .cp-method__grid,.cp-work-order__grid,.cp-assume__table{grid-template-columns:1fr}
 .cp-method__ring{width:min(100%,420px)}
 .cp-assume__ringwrap{max-width:220px}
}
@media(max-width:640px){
 .cp-config .cp-switch-grid{grid-template-columns:1fr}
 .cp-work-order,.cp-config,.cp-assume__panel,.cp-limits__panel,.cp-lcard{padding:20px 16px}
 .cp-close__handover{grid-template-columns:1fr;padding:20px 18px}
}
@media(prefers-reduced-motion:reduce){.cp-close__finale-ring svg,.cp-fin-seg,.cp-close__handover,.cp-close__handover-ring svg,.cp-close__wipe span,.cp-acard__fill,.cp-rcard,.cp-cal__ring,.cp-ring2--method .cp-rm{transition:none!important}}
:root[data-motion=calm] .cp-close__finale-ring svg,:root[data-motion=calm] .cp-fin-seg,:root[data-motion=calm] .cp-close__handover,:root[data-motion=calm] .cp-close__handover-ring svg,:root[data-motion=calm] .cp-close__wipe span,:root[data-motion=calm] .cp-acard__fill,:root[data-motion=calm] .cp-rcard,:root[data-motion=calm] .cp-cal__ring,:root[data-motion=calm] .cp-ring2--method .cp-rm{transition:none!important}
