@font-face{font-family:Vax Sans;src:url('../assets/fonts/OpenSans-Regular.ttf')}@font-face{font-family:Vax Sans;src:url('../assets/fonts/OpenSans-Bold.ttf');font-weight:700}@font-face{font-family:Vax Sans;src:url('../assets/fonts/OpenSans-ExtraBold.ttf');font-weight:800}@font-face{font-family:Vax Mono;src:url('../assets/fonts/LiberationMono-Bold.ttf');font-weight:700}
:root{--bg:#191b19;--surface:#242820;--ink:#fafaf7;--muted:#b8bcb3;--lime:#b3ec61;--neutral:#b9b9b9;--line:#ffffff20;--pad:4.8vw;color-scheme:dark;font-family:Vax Sans,system-ui,sans-serif;color:var(--ink);background:var(--bg)}
*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit}button:focus-visible,a:focus-visible{outline:2px solid var(--lime);outline-offset:5px}[hidden]{display:none!important}h1,h2,h3,p{margin:0}a{color:inherit}.presentation{height:100svh;width:100%;position:relative}.slide{position:absolute;inset:0;display:flex;flex-direction:column;padding:3.1vh var(--pad) 2.5vh;background:var(--bg);isolation:isolate;overflow:hidden}.slide-header{display:flex;align-items:center;justify-content:space-between;gap:24px;flex-shrink:0;min-height:5.1vh;padding-bottom:1.5vh;border-bottom:1px solid #ffffff24}.brand-link{color:var(--lime)}.small-brand{font-size:1.55vw;font-weight:700;letter-spacing:-.04em;color:#b8bcb3}.phiz{width:9vw;height:auto}.month,.mode-number,.status{font-family:Vax Mono,monospace;font-weight:700}h1,h2{font-weight:700;letter-spacing:-.055em;line-height:1.06}h2{font-size:4.15vw;line-height:1.12}h1 em,h2 em{font-style:normal;color:var(--lime)}h3{font-size:clamp(19px,1.65vw,32px);line-height:1.25;letter-spacing:-.035em;font-weight:700}p{font-size:clamp(15px,1.2vw,23px);line-height:1.65;color:var(--muted)}.slide-heading{margin-top:4.5vh}.cover-body{flex:1;min-height:0;display:grid;grid-template-columns:1.07fr 1fr;align-items:center;gap:2vw}.cover-copy{position:relative;z-index:2}.cover h1{font-size:6.5vw;line-height:1.06;letter-spacing:-.065em}.status{display:inline-flex;align-items:center;gap:10px;font-size:12px;color:#c4d3c3;margin-top:30px;letter-spacing:.02em}.status i{height:6px;width:6px;border-radius:50%;background:var(--lime);box-shadow:0 0 0 4px #b3ec6110}.scanner-stage{height:min(65vh,700px);position:relative;min-width:0}.scanner-stage:before{content:'';position:absolute;inset:4% -4%;border-radius:50%;background:radial-gradient(ellipse,#ffffff0b,transparent 67%);pointer-events:none}.scanner-stage canvas{position:absolute;inset:0;width:100%;height:100%;z-index:2}.scanner-orbit{position:absolute;width:86%;height:25%;left:7%;bottom:8%;border:1px solid #b9b9b92e;border-radius:50%;transform:rotate(-12deg)}.scanner-orbit:before{content:'';position:absolute;inset:18%;border:1px dashed #b9b9b925;border-radius:50%}.scanner-crosshair{position:absolute;inset:14% 0 13%;border-left:1px solid #ffffff07;border-right:1px solid #ffffff07;pointer-events:none}.scanner-fallback{position:absolute;inset:30% 0;text-align:center;font-size:55px;font-weight:800;color:var(--lime)}.scanner-fallback span{font-size:16px;color:var(--muted)}
.workflow-map{flex:1;display:grid;grid-template-columns:1fr 40px 1fr 40px 1fr;gap:1.5vw;align-items:center;padding:30px 0}.workflow-step{align-self:stretch;display:flex;flex-direction:column;justify-content:center;min-width:0}.workflow-step h3{margin-top:22px}.workflow-step p{margin-top:14px;max-width:29ch;font-size:clamp(14px,1.1vw,21px)}.flow-arrow{color:var(--neutral);font-size:clamp(48px,4.5vw,80px);line-height:1;margin:0;text-align:center}.mode-list{flex:1;display:flex;flex-direction:column;justify-content:center;margin-top:20px;gap:0}.mode-list article{display:grid;grid-template-columns:70px 1fr 110px;gap:24px;align-items:center;border-top:1px solid var(--line);padding:clamp(16px,2.7vh,32px) 0}.mode-number{font-size:13px;color:var(--neutral)}.mode-list h3{font-size:clamp(24px,2vw,38px)}.mode-list p{margin-top:7px;font-size:clamp(14px,1.1vw,21px)}.mode-list svg{width:88px;height:60px;fill:var(--bg);stroke:var(--neutral);stroke-width:1.4}.chart-row:nth-of-type(4) i,.chart-row:nth-of-type(5) i{background:#8e908a}.changes{flex:1;display:grid;grid-template-columns:repeat(3,1fr);gap:3vw;align-items:center;padding:35px 0}.changes article{padding:26px 0 22px;border-top:2px solid #b9b9b988;align-self:stretch;display:flex;flex-direction:column;justify-content:center}.changes h3{font-size:clamp(23px,2vw,38px);margin-top:24px}.changes p{margin-top:20px;font-size:clamp(14px,1.1vw,21px)}.timeline-body{flex:1;display:grid;grid-template-columns:.82fr 1.18fr;gap:5vw;align-items:center;padding:30px 0}.journey{list-style:none;position:relative;padding:0;margin:0}.journey:before{content:'';position:absolute;left:126px;top:14px;bottom:30px;width:2px;background:linear-gradient(var(--neutral),var(--lime))}.journey li{display:grid;grid-template-columns:110px 1fr;gap:44px;position:relative;padding:0 0 clamp(16px,2.3vh,29px)}.journey li:last-child{padding-bottom:0}.journey li:before{content:'';position:absolute;left:121px;top:8px;width:12px;height:12px;background:var(--bg);border:2px solid var(--neutral);border-radius:50%;box-shadow:0 0 0 5px var(--bg)}.journey li:last-child:before{background:var(--lime);border-color:var(--lime);box-shadow:0 0 0 5px var(--bg),0 0 0 6px #b3ec6133}.month{font-size:clamp(12px,1vw,18px);color:var(--neutral);letter-spacing:-.02em;line-height:1.55;padding-top:3px}.journey h3{font-size:clamp(20px,1.55vw,30px);line-height:1.3}.journey p{font-size:clamp(15px,1.1vw,21px);line-height:1.5;margin-top:7px;max-width:47ch}.demo-slide{padding:3.1vh 0 0;background:var(--bg);isolation:auto;gap:1.5vh}.demo-slide .slide-header{margin:0 var(--pad)}.demo-slide iframe{width:100%;flex:1;min-height:0;border:0;display:block;background:#fff;color-scheme:light;position:relative;z-index:1}.demo-loading{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;align-items:center;background:var(--bg);z-index:2;text-align:center;gap:20px}.demo-loading h2{color:var(--ink)}.demo-slide[data-loaded="true"] .demo-loading{display:none}
/* Shared learning and evaluation, kept readable at presentation distance. */
.cohort-body{flex:1;display:flex;flex-direction:column;justify-content:center;padding:25px 0 32px}.cohort-label{font-size:clamp(18px,1.4vw,27px);color:var(--neutral);margin-bottom:20px}.phu-cohort{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.phu-logo{display:flex;justify-content:center;align-items:center;min-width:0;height:clamp(115px,15vh,170px);padding:20px 16px;background:transparent}.phu-logo img{display:block;width:100%;height:100%;max-width:280px;object-fit:contain}.cohort-heading{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:20px}.cohort-heading .cohort-label{margin-bottom:0}.community-convener{display:flex;align-items:center;gap:16px}.convener-logo{width:190px;height:72px;display:grid;place-items:center}.convener-logo img{width:100%;height:100%;object-fit:contain}
.community-milestones{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px;list-style:none;padding:0;margin:42px 0 0}.community-milestones li{position:relative;border-top:1px solid #b9b9b966;padding-top:20px}.community-milestones li:before{content:'';position:absolute;top:-5px;left:0;width:9px;height:9px;border-radius:50%;background:var(--lime);box-shadow:0 0 0 5px var(--bg)}.community-milestones time{font:700 clamp(12px,1vw,18px)/1.5 Vax Mono,monospace;color:var(--neutral)}.community-milestones h3{font-size:clamp(21px,1.7vw,32px);margin-top:14px}.community-milestones p{font-size:clamp(16px,1.2vw,23px);line-height:1.6;margin-top:10px;max-width:32ch}
.impact-grid{flex:1;display:grid;grid-template-columns:1fr 1fr;gap:0 6vw;align-content:center;padding:24px 0}.impact-grid article{display:flex;gap:25px;padding:28px 0;border-top:1px solid var(--line)}.impact-number{font:700 13px/1.8 Vax Mono,monospace;color:var(--neutral);padding-top:3px}.impact-grid h3{font-size:clamp(24px,2vw,38px)}.impact-grid p{font-size:clamp(17px,1.3vw,25px);line-height:1.6;max-width:38ch;margin-top:12px}
.presentation-controls{position:fixed;z-index:100;right:20px;bottom:20px;display:flex;align-items:center;gap:.7rem;min-height:60px;padding:.45rem .65rem;background:#1b241ef5;border:1px solid #ffffff17;border-radius:999px;color:#e7eddd}
.presentation-controls button{display:flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;padding:.45rem .85rem;border:1px solid #ffffff35;border-radius:999px;background:#ffffff04;color:inherit;cursor:pointer}
.presentation-controls button:hover{background:#b3ec6118;border-color:#b3ec6188}
.presentation-controls [data-autoplay]{min-width:76px;border-color:#b3ec6166}
.presentation-controls [data-autoplay][aria-pressed="true"]{background:var(--lime);color:#17211b}
.presentation-controls button svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.slide-counter{font:700 12px Vax Mono,monospace;font-variant-numeric:tabular-nums;white-space:nowrap}
.progress-track{width:50px;height:3px;background:#55695e;border-radius:5px;overflow:hidden}
.progress-bar{display:block;height:100%;background:var(--lime)}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
@media(min-width:1800px){.status{font-size:12px}.month{font-size:13px}}

@media (max-height:800px){#community .cohort-body{padding:16px 0}#community .cohort-heading{margin-bottom:16px}#community .convener-logo{width:170px;height:54px}#community .phu-logo{height:110px}#community .community-milestones{margin-top:28px}#community .community-milestones li{padding-top:16px}#community .community-milestones h3{margin-top:10px}#community .community-milestones p{margin-top:8px}}

/* Organic shared-learning network. Logos float in open space; filaments yield around the marks. */
.network-body{flex:1;min-height:0;display:flex;flex-direction:column;padding:36px 0 6px}
.network-copy{position:relative;z-index:2;flex-shrink:0}
.network-copy h2{font-size:clamp(48px,5.2vw,96px);line-height:1.1;letter-spacing:-.055em}
.network-lead{font-size:clamp(18px,1.4vw,27px);line-height:1.6;margin-top:18px;max-width:70ch;color:var(--muted)}
.network-principles{list-style:none;padding:0;margin:14px 0 0;display:flex;flex-wrap:wrap;gap:8px 28px;font-size:clamp(16px,1.2vw,23px);line-height:1.5;color:#d2dfd4}
.network-principles li{position:relative;padding-left:14px}
.network-principles li:before{content:'';position:absolute;left:0;top:.7em;width:3px;height:3px;border-radius:50%;background:var(--lime)}
.network-map{position:relative;isolation:isolate;flex:1;min-height:300px;min-width:0;margin:4px -8px 0}
.network-connections,.network-energy{position:absolute;inset:0;width:100%;height:100%;overflow:hidden;pointer-events:none}
.network-connections path{fill:none;vector-effect:non-scaling-stroke;stroke-linecap:round}
.network-peer-links,.network-hub-links{stroke:url(#network-thread);stroke-width:2.2}
.network-hub-links{opacity:.9}
.network-thread-haze{stroke:#b3ec61;stroke-width:9;opacity:.16;filter:url(#network-thread-haze)}
.network-trigger{position:absolute;inset:0;z-index:4;width:100%;height:100%;padding:0;border:0;border-radius:16px;background:transparent;cursor:pointer}
.network-trigger:focus-visible{outline:2px solid var(--lime);outline-offset:-6px}
.network-heading-break{display:none}
.network-ribbons path{fill:url(#network-ribbon-fill);stroke:none}
.network-ribbon-edges path{fill:none;stroke:#b3ec61;stroke-width:.85;opacity:.5}
.network-ribbons .ribbon-secondary,.network-ribbon-edges .ribbon-secondary{opacity:.35}
.network-anchors .anchor-haze{fill:#b3ec61;filter:url(#network-anchor-glow);opacity:.65}
.network-anchors .anchor-ring{fill:#b3ec6130;stroke:#b3ec61;stroke-width:1;vector-effect:non-scaling-stroke}
.network-anchors .anchor-core{fill:#f0ffd0}
.network-caption{display:none}
#community[data-network-layout="ribbons"]{background:radial-gradient(ellipse at 100% 100%,#b3ec6110,transparent 38%),radial-gradient(ellipse at 0 0,#b3ec6108,transparent 35%),var(--bg)}
#community[data-network-layout="ribbons"] .network-heading-break{display:inline}
#community[data-network-layout="ribbons"] .network-peer-links{stroke:#b3ec61;stroke-width:1.5;opacity:.3}
#community[data-network-layout="ribbons"] .network-hub-links{stroke:#b3ec61;stroke-width:2.8}
#community[data-network-layout="ribbons"] .ribbon-secondary{opacity:.16}

 #community[data-network-layout="ribbons"] .network-body{display:grid;grid-template-columns:.84fr 1.8fr;align-items:center;gap:2vw;padding:20px 0 24px}
 #community[data-network-layout="ribbons"] .network-copy h2{font-size:clamp(48px,4.35vw,84px);line-height:1.08}
 #community[data-network-layout="ribbons"] .network-lead{font-size:clamp(18px,1.55vw,29px);line-height:1.6;max-width:29ch;margin-top:28px;color:#c8d4cc}
 #community[data-network-layout="ribbons"] .network-principles{font-size:clamp(17px,1.3vw,25px);flex-direction:column;gap:14px;margin-top:30px}
 #community[data-network-layout="ribbons"] .network-principles li{padding-left:20px}
 #community[data-network-layout="ribbons"] .network-principles li:before{width:6px;height:6px;top:.6em}
 #community[data-network-layout="ribbons"] .network-map{align-self:stretch;min-height:0;margin:0}
 #community[data-network-layout="ribbons"] .network-node{width:30%;height:16%}
 #community[data-network-layout="ribbons"] .network-renfrew{width:32%}
 #community[data-network-layout="ribbons"] .network-hub{width:31%;height:20%}
 #community[data-network-layout="ribbons"] .network-caption{display:block;position:absolute;top:0;left:0;width:100%;text-align:center;font:400 clamp(11px,.9vw,17px)/1.5 Vax Sans,sans-serif;color:var(--muted);letter-spacing:0}

@media (max-height:800px){
 #community[data-network-layout="ribbons"] .network-copy h2{font-size:clamp(44px,4.2vw,60px)}
 #community[data-network-layout="ribbons"] .network-lead{font-size:18px;line-height:1.55;margin-top:22px}
 #community[data-network-layout="ribbons"] .network-principles{font-size:17px;gap:12px;margin-top:24px}
}
.network-node,.network-hub{position:absolute;left:var(--node-x);top:var(--node-y);transform:translate(-50%,-50%);width:var(--node-width,22%);height:20%;display:flex;align-items:center;justify-content:center;z-index:2}
.network-grand{--node-x:38%;--node-y:15%}
.network-renfrew{--node-x:84.5%;--node-y:35%;--node-width:24%}
.network-sudbury{--node-x:15.5%;--node-y:52.5%}
.network-thunder{--node-x:71%;--node-y:83.33%;--node-width:24%}
.network-hub{--node-x:54.5%;--node-y:51.67%;--node-width:25%;height:26%}
.network-node img,.network-hub img{display:block;position:relative;width:100%;height:100%;object-fit:contain}
.network-energy{z-index:1}
.network-energy path{fill:none;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}
.electric-halo{stroke:#b3ec61;stroke-width:8;opacity:.26;filter:url(#network-electric-glow)}
.electric-trace{stroke:#b3ec61;stroke-width:2;opacity:.8}
.electric-core{stroke:#f4ffe4;stroke-width:.8}
.electric-arrival{fill:none;stroke:var(--lime);stroke-width:1;vector-effect:non-scaling-stroke}
@media (max-height:800px){
 .network-body{padding-top:24px}.network-copy h2{font-size:clamp(48px,5vw,72px)}.network-lead{font-size:17px;margin-top:10px}
 .network-principles{font-size:16px;margin-top:8px;gap:8px 24px}.network-map{min-height:240px}
}


@media print{html,body,.presentation{height:auto;overflow:visible}.slide,.slide[hidden]{position:relative;display:flex!important;inset:auto;width:100%;height:56.25vw;min-height:0;break-after:page;padding:3vw 4vw;print-color-adjust:exact;-webkit-print-color-adjust:exact}.presentation-controls{display:none!important}.demo-slide{padding:0}.slide h2{font-size:4vw}}

/* Align clinical examples within the desktop composition. */
.changes article{justify-content:flex-start;padding-top:clamp(24px,5vh,60px)}

.scanner-fallback{inset:0}.scanner-fallback img{width:100%;height:100%;object-fit:contain}

.scanner-trigger{position:absolute;inset:0;z-index:4;border:0;padding:0;background:transparent;cursor:pointer;border-radius:18px}
.scanner-trigger:focus-visible{outline:2px solid var(--neutral);outline-offset:-5px}
.scanner-trigger:disabled{cursor:wait}

/* Share row sizing across the three steps so labels, diagrams and copy align. */

  .workflow-map{grid-template-columns:minmax(0,1fr) clamp(56px,5vw,96px) minmax(0,1fr) clamp(56px,5vw,96px) minmax(0,1fr);grid-template-rows:auto 94px auto auto auto;align-content:center;gap:22px 1.5vw}
  .workflow-step{display:grid;grid-row:1 / span 5;grid-template-rows:subgrid;align-content:start;align-items:start}
  .workflow-step:nth-of-type(1){grid-column:1}.workflow-step:nth-of-type(2){grid-column:3}.workflow-step:nth-of-type(3){grid-column:5}
  .workflow-step>h3{grid-row:3;margin-top:0}.workflow-step>p{grid-row:4;margin-top:0}
  .flow-arrow{grid-row:2;align-self:center}.flow-arrow:nth-of-type(1){grid-column:2}.flow-arrow:nth-of-type(2){grid-column:4}


/* A proportional, eight-month timeline: longer work intervals span two columns. */

.timeline-body{display:flex;flex-direction:column;align-items:stretch;justify-content:center;gap:clamp(40px,7vh,88px);padding:30px 0}
.timeline-chart{width:100%}
.timeline-months{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));column-gap:14px;border-bottom:1px solid var(--line);padding-bottom:18px;color:var(--muted);font:700 clamp(13px,1.1vw,21px)/1.5 Vax Mono,monospace}
.timeline-months span{border-left:1px solid var(--line);padding-left:10px}
.journey{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));grid-template-rows:28px 14px auto auto;gap:16px 14px;list-style:none;padding:26px 0 0;margin:0}
.journey:before,.journey li:before{content:none}
.journey li,.journey li:last-child{display:grid;grid-column:var(--start) / span var(--span);grid-row:1 / span 4;grid-template-columns:minmax(0,1fr);grid-template-rows:subgrid;gap:16px;padding:0;min-width:0;align-content:start}
.journey .month{font-size:clamp(12px,1.05vw,20px);padding:0;line-height:1.5;white-space:nowrap;letter-spacing:-.04em}
.timeline-interval{height:10px;background:var(--neutral);border-radius:3px;position:relative;margin-right:2px}
.timeline-interval:before,.timeline-interval:after{content:'';position:absolute;top:-5px;height:20px;width:2px;background:inherit}
.timeline-interval:before{left:0}.timeline-interval:after{right:0}
.journey li[style*="--span:2"] .timeline-interval{background:linear-gradient(90deg,var(--neutral),var(--lime))}
.journey li[style*="--span:2"] .timeline-interval:after{background:var(--lime)}
.journey li:last-child .timeline-interval{background:var(--lime)}
.journey h3{font-size:clamp(18px,1.5vw,29px);line-height:1.25;max-width:19ch}
.journey p{font-size:clamp(14px,1.05vw,20px);line-height:1.55;margin:0;padding-right:8px;max-width:30ch}

/* Desktop presentation layouts. The training app owns its separate, light theme. */
.presentation{min-width:1200px;min-height:675px}
.workflow-map{grid-template-rows:clamp(170px,22vh,245px) auto auto;gap:22px 1.5vw;padding:26px 0 40px;align-content:center}
.workflow-step{grid-row:1 / span 3;grid-template-rows:subgrid;grid-template-columns:minmax(0,1fr);justify-content:normal;align-items:start}
.workflow-step>.step-visual{grid-row:1;width:100%;height:100%;display:flex;align-items:center;justify-content:center}
.step-visual svg{height:100%;width:100%;max-width:330px;overflow:visible}
.matrix-modules{fill:var(--lime)}
.illustration-panel{fill:#ffffff03;stroke:var(--neutral);stroke-width:1.6;stroke-linejoin:round}
.illustration-rule{fill:none;stroke:#ffffff38;stroke-width:1.3;stroke-linejoin:round}
.step-visual text{font:16px Vax Sans,sans-serif;fill:var(--neutral)}
.illustration-check{fill:none;stroke:var(--lime);stroke-width:2.8;stroke-linecap:round;stroke-linejoin:round}
.review-badge{fill:var(--bg);stroke:var(--lime);stroke-width:1.8}
.workflow-step>h3{grid-row:2;margin:0;font-size:clamp(24px,1.95vw,37px);line-height:1.3;letter-spacing:-.04em;white-space:nowrap}
.step-index{font:700 .52em/1.5 Vax Mono,monospace;color:var(--neutral);margin-right:10px;vertical-align:middle;letter-spacing:0}
.workflow-step>p{grid-row:3;font-size:clamp(17px,1.25vw,24px);line-height:1.6;margin:0;max-width:29ch}
.flow-arrow{grid-row:1;color:var(--neutral);font-size:clamp(52px,4.2vw,80px)}

/* Development and the feedback that shaped it share one slide. */
#journey .timeline-body{justify-content:center;padding:24px 0;gap:clamp(24px,3.4vh,40px)}
#journey h2{font-size:clamp(42px,4.15vw,80px);white-space:nowrap}
#journey .timeline-months{padding-bottom:12px;font-size:clamp(12px,.95vw,18px)}
#journey .journey{padding-top:18px;gap:12px 14px;grid-template-rows:24px 12px auto auto}
#journey .journey li{gap:12px}
#journey .journey h3{font-size:clamp(17px,1.4vw,27px)}
#journey .journey p{font-size:clamp(15px,1.12vw,21px);line-height:1.5}
#journey .journey .month{font-size:clamp(12px,.95vw,18px)}
.feedback-summary{display:grid;grid-template-columns:1.15fr 3fr;gap:3vw;border-top:1px solid var(--line);padding-top:22px;align-items:center}
.feedback-total{display:flex;gap:18px;align-items:center}
.feedback-total>strong{font-size:clamp(52px,5vw,90px);line-height:1;letter-spacing:-.075em;color:var(--lime)}
.feedback-total>span{font-size:clamp(16px,1.15vw,22px);line-height:1.5;color:var(--neutral)}
.feedback-topics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}
.feedback-topics>div{display:flex;gap:12px;align-items:flex-start}
.feedback-topics strong{font-size:clamp(24px,2vw,38px);line-height:1.1;color:var(--ink);letter-spacing:-.04em}
.feedback-topics span{font-size:clamp(14px,1.05vw,20px);line-height:1.5;color:var(--muted)}

/* The invitation is a scannable focal point, with the donated hardware offer below. */
.pilot-invite{flex:1;min-height:0;display:grid;grid-template-columns:1.4fr 1fr;align-items:center;gap:4vw;padding:28px 0}
.pilot-invite-copy{position:relative;z-index:1}
.pilot-invite h2{font-size:clamp(68px,6.6vw,126px);line-height:1.03;letter-spacing:-.06em}
.pilot-contact{display:inline-block;font-size:clamp(18px,1.5vw,28px);color:var(--neutral);text-underline-offset:7px;text-decoration-color:#ffffff40;margin-top:30px;letter-spacing:-.02em}
.pilot-contact:hover{color:var(--ink);text-decoration-color:var(--lime)}
.pilot-donation{display:flex;align-items:center;gap:22px;border-top:1px solid var(--line);padding-top:24px;margin-top:clamp(40px,7vh,80px);max-width:660px}
.pilot-donation img{width:clamp(120px,10vw,190px);height:auto;max-height:65px;object-fit:contain;flex-shrink:0}
.pilot-donation p{font-size:clamp(13px,1.02vw,20px);line-height:1.55;color:var(--muted)}
.pilot-donation strong{color:var(--ink);font-weight:700}
.pilot-code-visual{overflow:clip;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;align-self:stretch;isolation:isolate;gap:38px}
.pilot-code-visual:before{content:'';position:absolute;inset:-10% -14%;z-index:-2;background:radial-gradient(ellipse,#b3ec611a,transparent 65%);pointer-events:none}
.pilot-code-orbit{position:absolute;top:50%;left:50%;width:94%;aspect-ratio:1;border:1px solid #b3ec6135;border-radius:50%;transform:translate(-50%,-56%) rotate(-24deg) scaleX(1.18);pointer-events:none;z-index:-1}
.pilot-code-orbit:before,.pilot-code-orbit:after{content:'';position:absolute;inset:7%;border:1px solid #ffffff0b;border-radius:50%}
.pilot-code-orbit:after{inset:-8%;border-color:#ffffff07}
.pilot-qr{display:block;position:relative;width:clamp(270px,24vw,440px);aspect-ratio:1;padding:16px;background:var(--ink);border-radius:18px;box-shadow:0 22px 70px #0005;transform:rotate(-4deg);transition:transform .25s}
.pilot-qr:before,.pilot-qr:after{content:'';position:absolute;width:24%;height:24%;border:4px solid var(--lime);pointer-events:none}
.pilot-qr:before{left:-15px;top:-15px;border-right:0;border-bottom:0;border-radius:15px 0 0 0}
.pilot-qr:after{right:-15px;bottom:-15px;border-left:0;border-top:0;border-radius:0 0 15px 0}
.pilot-qr:hover{transform:rotate(0deg)}
.pilot-qr img{display:block;width:100%;height:100%;object-fit:contain;image-rendering:pixelated}
.pilot-destination{font-size:clamp(27px,2.4vw,46px);letter-spacing:-.045em;line-height:1.3;color:var(--lime);text-decoration:none;position:relative}
.pilot-destination span{display:inline-block;margin-left:16px;font-size:.8em}
.pilot-destination:hover{text-decoration:underline;text-underline-offset:7px}
@media(max-height:800px){
 #journey .timeline-body{gap:22px;padding:18px 0}
 #journey .journey{gap:10px 14px;padding-top:14px}
 #journey .journey li{gap:10px}
 .feedback-summary{padding-top:18px;gap:24px}.feedback-total>strong{font-size:58px}
 .pilot-invite h2{font-size:clamp(64px,6.2vw,100px)}
 .pilot-donation{margin-top:40px;padding-top:20px}
 .pilot-code-visual{gap:30px}.pilot-qr{width:clamp(250px,22vw,340px)}
}

.step-visual .catalogue-header{font-size:11px;font-weight:700;fill:var(--ink)}
