/* Scroll Craft refinement. Shared engine files remain unmodified. */
:root {
  --sc-canvas:#f7f7ef; --sc-surface:#e9eee3; --sc-ink:#163d37;
  --sc-ink-soft:#526b5b; --sc-accent:#f5a48b; --sc-accent-ink:#103d39;
  --sc-font-display:'Manrope',Arial,sans-serif; --sc-font-text:'DM Sans',Arial,sans-serif;
  --sc-font-mono:'DM Sans',Arial,sans-serif; --sc-section:clamp(64px,7vw,112px);
  --sc-gutter:clamp(24px,4vw,56px); --muted:#566f5b;
}
html { scrollbar-color:#6b8876 #e9eee3; }
body { overflow-x:clip; }
h1,h2,h3 { text-wrap:balance; }
p { text-wrap:pretty; }
p { color:#536b5b; }
:focus-visible { outline-color:#9b4b2d; }
.header :focus-visible,.hero :focus-visible,.report-story :focus-visible,.difference :focus-visible,.impact :focus-visible,footer :focus-visible { outline-color:#ffc2a6; }
.menu-toggle { min-width:44px; min-height:44px; }
em { font-family:var(--heading); font-style:normal; font-weight:500; }
.container { width:100%; }
.section { padding-block:var(--sc-section); }
.section-intro { gap:56px; margin-bottom:40px; }
.section-intro>p,.section-intro>div:last-child:not(:first-child) { font-size:16px; line-height:1.75; max-width:440px; }
.section-intro>div>p+p { margin-top:16px; }
h2 { font-size:clamp(32px,3.8vw,52px); letter-spacing:-.045em; }
.button { min-height:48px; font-size:14px; transition:transform 160ms var(--sc-ease-out),background 160ms; }
.button:active,.text-link:active,.solution-tabs button:active { transform:translateY(1px); }
.button:hover { transform:none; }
.text-link { font-size:14px; min-height:44px; }
.quiet-link { min-height:44px; }
button:disabled { cursor:default; opacity:.65; }
.header { height:80px; }
nav>a { font-size:13px; }
.nav-cta { min-height:44px; padding:10px 22px; }
.hero { min-height:680px; background:#103d39; }
.hero-content { min-height:680px; padding-top:104px; padding-bottom:104px; z-index:3; pointer-events:none; }
.hero-content>* { pointer-events:auto; }
.hero-image { left:38%; right:-5%; top:-55px; bottom:-55px; opacity:1; background-position:68% 60%; mask-image:linear-gradient(90deg,transparent,#000 40%); }
.hero-category { font-size:12px; font-weight:500; letter-spacing:.035em; color:#c8dccc; margin-bottom:32px; }
.hero h1 { font-size:clamp(64px,6.4vw,92px); letter-spacing:-.055em; line-height:1.04; max-width:660px; }
.hero h1 em { color:#c3dec7; letter-spacing:-.055em; }
.hero-description { font-size:17px; line-height:1.65; max-width:390px; color:#d3e2d5; margin-top:28px; }
.hero-actions { margin-top:32px; gap:28px; }
.hero-actions .light-link { font-size:14px; }
.hero-scene { position:absolute; z-index:2; width:500px; height:500px; right:max(calc((100vw - 1220px)/2),28px); top:92px; perspective:900px; }
.scene-orbit { position:absolute; border:1px solid #c2dfce40; width:450px; height:450px; border-radius:50%; left:25px; top:15px; transform:rotateX(22deg); }
.orbit-inner { width:290px; height:290px; top:95px; left:105px; border-style:dashed; }
.scene-sheet { position:absolute; width:185px; padding:18px 20px; background:#f3f6eb; color:var(--ink); border-radius:6px; border:1px solid #eef5e8; border-top:2px solid #fff; box-shadow:0 20px 38px #00272144; }
.scene-sheet>span { font-size:9px; letter-spacing:1.1px; font-weight:600; }
.scene-sheet>p { font-size:15px; font-weight:500; color:#173e37; margin:7px 0 14px; line-height:1.5; }
.scene-sheet>small { font-size:10px; color:#486553; display:block; margin-top:14px; }
.paper-line { width:100%; height:2px; background:#d0dbcd; margin-top:7px; }
.paper-line.short { width:63%; }
.sheet-sales { left:25px; top:12px; rotate:-8deg; }
.sheet-stock { right:0; top:74px; rotate:9deg; }
.sheet-report { left:16px; bottom:65px; rotate:-5deg; }
.scene-hub { position:absolute; top:173px; left:182px; width:158px; height:145px; background:#173f38; border:1px solid #bed8c167; border-top-color:#c8dec596; border-radius:10px; box-shadow:0 22px 32px #0029224d; display:flex; align-items:center; justify-content:center; flex-direction:column; }
.scene-hub span { font-family:var(--heading); font-size:18px; letter-spacing:-.6px; }
.scene-hub small { font-size:9px; color:#c6dccc; margin-top:5px; }
.scene-request { position:absolute; right:2px; bottom:20px; width:285px; background:#e2eddb; color:var(--ink); border:1px solid #edf7e4; border-radius:5px; box-shadow:0 20px 30px #002c2440; display:flex; align-items:center; gap:15px; padding:15px 18px; }
.scene-request>span { font-size:25px; }
.scene-request p { color:var(--ink); font-size:14px; font-weight:500; }
.scene-request small { display:block; font-size:10px; color:#506b52; margin-top:3px; font-weight:400; }
.platform { padding-block:96px 80px; }
.platform .section-intro { align-items:flex-start; }
.platform-grid { gap:64px; }
.platform-copy h3 { font-size:30px; }
.platform-copy>p { font-size:15px; line-height:1.8; }
.mini-label { font-size:10px; letter-spacing:1px; color:#526b53; }
.check-list { font-size:13px; }
.scope-note { color:#536d51; font-size:11px; }
.diagram-label { font-size:10px; letter-spacing:1px; }
.diagram-footer { font-size:11px; color:#466247; }
.diagram-footer span:last-child { font-size:9px; }
.system-node { font-size:12px; }
.core small { font-size:9px; color:#c6dbbd; }
.report-story { position:relative; background:#123e38; color:#f7f7ef; }
.relay-stage { background:#123e38; display:flex; align-items:center; overflow:clip; }
.relay-layout { display:grid; grid-template-columns:.8fr 1.2fr; gap:50px; align-items:center; padding-block:60px; }
.section-kicker { color:#d0e0c9; font-size:11px; letter-spacing:1px; margin-bottom:24px; }
.relay-copy h2 { font-size:clamp(34px,3.6vw,50px); line-height:1.13; }
.relay-copy>p:not(.section-kicker) { color:#d0decc; font-size:16px; line-height:1.8; margin-top:24px; max-width:38ch; }
.relay-controls { display:flex; border:1px solid #839f805e; border-radius:5px; margin-top:28px; width:fit-content; }
.relay-controls button { background:transparent; color:#d0dfc9; padding:10px 18px; min-height:44px; font-size:13px; }
.relay-controls button[aria-pressed=true] { background:#d6e4cb; color:#103d39; border-radius:3px; }
.relay-controls button:focus-visible { outline-color:var(--coral); outline-offset:5px; }
.relay-copy .relay-disclosure { font-size:11px!important; color:#bacfb7!important; max-width:38ch; }
#follow-scroll { color:#d3e3cb; margin-top:8px; font-size:11px; }
.relay-visual { --gather:0; --connect:0; position:relative; height:480px; width:100%; }
.relay-paths { position:absolute; inset:0; width:100%; height:100%; fill:none; stroke:#d2e0c1; stroke-width:1; stroke-dasharray:4 6; opacity:calc(.2 + var(--gather)*.6); }
.relay-input { position:absolute; width:200px; background:#edf3e5; color:#163d37; border-radius:5px; padding:18px; box-shadow:0 16px 36px #03282150; border-top:1px solid #fff; z-index:2; }
.relay-input span { display:block; font-size:10px; letter-spacing:1px; margin-bottom:9px; }
.relay-input strong { display:block; font-size:14px; font-weight:500; line-height:1.5; }
.relay-input small { display:block; font-size:10px; color:#47634c; margin-top:9px; }
.input-sales { top:12px; left:0; transform:translate(calc(var(--gather)*48px),calc(var(--gather)*55px)) rotate(calc(-7deg + var(--gather)*7deg)); }
.input-finance { top:65px; right:-5px; transform:translate(calc(var(--gather)*-26px),calc(var(--gather)*-10px)) rotate(calc(8deg - var(--gather)*8deg)); }
.input-operations { top:346px; left:0; transform:translate(calc(var(--gather)*35px),calc(var(--gather)*-4px)) rotate(calc(-4deg + var(--gather)*4deg)); }
.relay-request { position:absolute; top:167px; left:30%; width:270px; z-index:3; background:#14372f; border:1px solid #b0cca7; border-top-color:#e4efd3; box-shadow:0 24px 40px #062a2455; border-radius:7px; padding:21px; transform:scale(calc(.95 + var(--gather)*.05)); }
.relay-request p { color:#f4f6e9; font-size:20px; line-height:1.4; letter-spacing:-.5px; margin-top:9px; }
.relay-request>span { color:#c8dcba; font-size:11px; display:block; margin-top:15px; }
.relay-output { position:absolute; bottom:6px; right:0; max-width:335px; z-index:4; background:#f4aa8d; color:#113e34; display:flex; gap:12px; align-items:flex-start; padding:17px 20px; border-radius:5px; opacity:calc(.18 + var(--connect)*.82); transform:translateY(calc((1 - var(--connect))*20px)); }
.relay-output .output-check { font-size:22px; }
.relay-output strong { font-size:13px; font-weight:600; }
.relay-output p { color:#244e3d; font-size:12px; margin-top:4px; }
.relay-visual[data-phase="0"] .relay-output,.relay-visual[data-phase="1"] .relay-output { visibility:hidden; }
.relay-visual[data-phase="2"] .relay-output { opacity:1; }
.relay-state { position:absolute; bottom:-43px; right:0; color:#d5e5c9; font-size:12px; }
.relay-use { padding:22px var(--sc-gutter); border-top:1px solid #b8cdb132; display:flex; justify-content:center; align-items:center; gap:30px; background:#123e38; position:relative; z-index:2; }
.relay-use>p { color:#d2e0c8; font-size:13px; }
.relay-use .text-link { color:#f5b19a; font-size:13px; }
.report-story.sc-act--pinned .relay-use { position:absolute; bottom:0; width:100%; }
.solutions { background:#edf0e5; }
.solution-tabs button { padding:23px 12px; }
.solution-tabs button>div { font-size:19px; line-height:1.4; }
.solution-tabs button small { font-size:13px; color:#526b4e; margin-top:7px; }
.solution-panel { padding:32px; }
.panel-top .mini-label { margin:0; }
.concept-badge { font-size:10px; color:#4f6b4a; border-color:#a9bca1; }
.solution-panel h3 { font-size:29px; }
.solution-panel>p { font-size:14px; }
.command { font-size:13px; }
.workflow-steps { font-size:13px; }
.demo-button { font-size:13px; }
.solution-panel .demo-note { font-size:11px; color:#506b4b; }
.demo-result { font-size:13px; }
.solution-footer p,.solution-footer .text-link { font-size:13px; }
.approach { padding-bottom:80px; }
.steps-grid { gap:48px; }
.steps-grid article { border-top:1px solid #a4b69c; padding-top:24px; }
.steps-grid h3 { font-size:23px; margin-bottom:16px; }
.steps-grid p { font-size:15px; }
.difference { padding:72px 0; }
.difference-points h3 { font-size:20px; }
.difference-points p { font-size:14px; color:#c4d7bf; }
.difference-points article>span { color:#c3d9bb; }
.about { padding-top:var(--sc-section); }
.team-grid article { padding-block:24px; }
.role-symbol { height:60px; color:#54714e; }
.team-grid article>span { font-size:10px; color:#506b49; }
.team-grid h3 { font-size:20px; }
.team-grid p { font-size:13px; }
.impact { background:#103d39; position:relative; isolation:isolate; overflow:clip; }
.impact::before { content:''; position:absolute; inset:-60px -20px -60px 30%; background:url('assets/caribbean-coast.webp') 75% center/cover; mask-image:linear-gradient(90deg,transparent,#000 45%); z-index:-1; transform:translateY(calc((var(--sc-p,.5) - .5)*40px)); }
.impact-content { padding-top:80px; position:relative; }
.impact h2 { font-size:48px; max-width:690px; }
.impact h2 em { color:inherit; }
.impact-content>p { color:#d1dfcc; font-size:16px; max-width:430px; }
.impact-plan { background:#113e38; padding:28px; margin-left:-28px; border-radius:6px; max-width:740px; }
.impact-plan p { color:#c9dbc3; font-size:13px; }
.plan-label { color:#d0e2c7; font-size:10px; }
.impact-plan h3 { font-size:21px; }
.impact-caption { color:#d4e6c6; font-size:10px; }
.faq h2 { font-size:44px; }
summary { font-size:15px; min-height:60px; }
details p { font-size:14px; }
.contact { text-align:left; }
.contact-inner { align-items:flex-start; }
.contact h2 { font-size:clamp(38px,4.5vw,64px); }
.contact p { color:#2f523f; font-size:16px; }
.contact-actions { margin-top:28px; }
.contact-note { font-size:12px; color:#244a37; }
.footer-top>p { font-family:var(--font); font-style:normal; font-size:17px; }
.footer-top .text-link { font-size:12px; }
.footer-bottom,.footer-bottom .quiet-link { font-size:11px; color:#c5d8bf; }
dialog>p { font-size:14px; }
label { font-size:13px; }
input,textarea,select { font-size:14px; padding:12px; min-height:46px; }
fieldset { border:0; padding:0; margin:0; min-width:0; }
.form-notice { font-size:12px; color:#526b49; }
#enquiry-result p { font-size:14px; }
#enquiry-preview { font-size:13px; }
.close-dialog { width:44px; height:44px; }
.report-story:not(.sc-act--pinned) .relay-stage { min-height:650px; }
html:not(.sc-ready) [data-sc-in] { opacity:1; transform:none; }
[hidden] { display:none!important; }
.nojs-note { background:#e1e9d8; color:#1a4438; margin:0; padding:16px var(--sc-gutter); font-size:14px; }
@media(hover:hover) and (pointer:fine) {
  .button:hover { transform:translateY(-2px); }
  .scene-sheet:hover { box-shadow:0 24px 40px #00272170; }
}
@media(max-width:1100px) {
 .hero-scene { right:24px; width:430px; scale:.87; transform-origin:right center; }
 .hero h1 { font-size:76px; }
 .hero-description { max-width:360px; }
 .hero-content { padding-top:95px; }
 .relay-layout { gap:30px; grid-template-columns:.8fr 1.2fr; }
 .relay-visual { scale:.87; transform-origin:center; }
 .relay-copy h2 { font-size:38px; }
 .relay-copy>p:not(.section-kicker) { font-size:15px; }
 .relay-controls button { padding-inline:14px; }
 .platform-grid { gap:36px; }
 .solution-tabs button>div { font-size:17px; }
 .solutions-layout { gap:36px; }
}
@media(max-width:850px) {
 .header { height:74px; }
 .hero-content { padding-top:80px; min-height:640px; }
 .hero { min-height:640px; }
 .hero h1 { font-size:65px; max-width:500px; }
 .hero-description { font-size:16px; max-width:315px; }
 .hero-scene { width:450px; right:12px; top:110px; scale:.72; }
 .hero-actions { flex-direction:column; gap:16px; align-items:flex-start; }
 .section-intro>p,.section-intro>div:last-child:not(:first-child) { font-size:15px; }
 .platform-grid { grid-template-columns:1fr; gap:36px; }
 .platform-copy { display:grid; grid-template-columns:1fr 1fr; gap:20px 40px; }
 .platform-copy .mini-label { grid-column:1/-1; margin:0; }
 .platform-copy h3 { grid-row:span 2; }
 .platform-copy .check-list { margin:0; }
 .scope-note { grid-column:2; margin-top:0; }
 .diagram { height:320px; }
 .core { width:174px; height:144px; }
 .core strong { font-size:18px; }
 .system-node { font-size:12px; padding:10px 14px; }
 .relay-layout { gap:24px; grid-template-columns:1fr 1.1fr; }
 .relay-visual { scale:.72; width:470px; margin-left:-55px; }
 .relay-copy h2 { font-size:34px; }
 .relay-copy>p:not(.section-kicker) { font-size:14px; }
 .relay-controls button { padding-inline:12px; font-size:12px; }
 .solution-panel { padding:25px; }
 .solution-panel h3 { font-size:25px; }
 .concept-badge { font-size:9px; }
 .steps-grid p { font-size:14px; }
 .steps-grid h3 { font-size:20px; }
 .difference-grid { gap:35px; }
 .difference h2 { font-size:36px; }
 .team-grid h3 { font-size:17px; }
 .team-grid p { font-size:12px; }
 .impact h2 { font-size:43px; }
}
@media(max-width:650px) {
 .header { height:70px; }
 .hero,.hero-content { min-height:0; }
 .hero-content { padding:48px 24px 0; }
 .hero-category { font-size:11px; margin-bottom:24px; letter-spacing:0; }
 .hero h1 { font-size:clamp(45px,11.9vw,64px); line-height:1.06; max-width:100%; letter-spacing:-.055em; }
 .hero h1 em { letter-spacing:-.055em; }
 .hero-description { font-size:16px; margin-top:24px; max-width:37ch; }
 .hero-actions { flex-direction:row; align-items:center; gap:24px; margin-top:24px; }
 .hero-actions .button { font-size:14px; padding:14px 21px; }
 .hero-actions .text-link { font-size:13px; }
 .hero-image { left:-30%; top:280px; bottom:-120px; right:-30%; mask-image:linear-gradient(0deg,#000,transparent 90%); background-position:80% center; }
 .hero-scene { width:342px; height:320px; right:auto; top:auto; position:relative; margin:20px auto 20px; scale:1; transform-origin:center; }
 .scene-orbit { width:310px; height:300px; top:0; left:16px; }
 .orbit-inner { width:210px; height:210px; top:45px; left:66px; }
 .scene-sheet { width:137px; padding:12px 14px; }
 .scene-sheet>span { font-size:8px; }
 .scene-sheet>p { font-size:12px; margin:6px 0 8px; }
 .scene-sheet>small { font-size:9px; margin-top:9px; }
 .sheet-sales { top:12px; left:8px; rotate:-5deg; }
 .sheet-stock { top:38px; right:6px; rotate:6deg; }
 .sheet-report { bottom:40px; left:8px; }
 .scene-hub { width:125px; height:120px; left:114px; top:101px; }
 .scene-hub img { width:37px; height:37px; }
 .scene-hub span { font-size:16px; }
 .scene-hub small { font-size:8px; }
 .scene-request { width:215px; right:0; bottom:4px; padding:10px 13px; gap:9px; }
 .scene-request p { font-size:11px; }
 .scene-request small { font-size:9px; }
 .scene-request>span { font-size:20px; }
 .section-intro { gap:24px; margin-bottom:32px; }
 .section-intro>p,.section-intro>div:last-child:not(:first-child) { font-size:15px; }
 .platform { padding:64px 0; }
 .platform-grid { gap:32px; }
 .platform-copy { display:block; }
 .platform-copy .mini-label { margin-bottom:16px; }
 .platform-copy h3 { font-size:28px; }
 .platform-copy>p { font-size:15px; }
 .platform-copy .check-list { margin:20px 0; font-size:13px; }
 .scope-note { margin-top:14px; }
 .diagram-footer { font-size:10px; }
 .diagram-footer span:last-child { font-size:8px; }
 .system-node { font-size:10px; padding:8px; }
 .core { width:150px; height:130px; }
 .core small { font-size:8px; }
 .relay-layout { display:block; padding-block:56px 35px; }
 .relay-copy h2 { font-size:37px; }
 .section-kicker { font-size:10px; margin-bottom:20px; }
 .relay-copy>p:not(.section-kicker) { font-size:15px; max-width:100%; margin-top:20px; }
 .relay-controls { margin-top:24px; width:100%; }
 .relay-controls button { flex:1; min-height:46px; font-size:13px; }
 .relay-copy .relay-disclosure { margin-top:16px!important; font-size:11px!important; }
 .relay-visual { scale:1; width:100%; height:500px; margin:24px 0 0; }
 .relay-input { width:100%; padding:13px 15px; height:72px; display:grid; grid-template-columns:94px 1fr; align-content:center; }
 .relay-input span { font-size:9px; grid-row:span 2; margin:4px 0 0; }
 .relay-input strong { font-size:12px; }
 .relay-input small { font-size:9px; margin-top:3px; }
 .input-sales { top:10px; left:0; transform:none; }
 .input-finance { top:94px; right:0; transform:none; }
 .input-operations { top:178px; left:0; transform:none; }
 .relay-request { width:100%; top:270px; left:0; right:auto; padding:18px; display:flex; flex-wrap:wrap; align-items:center; gap:12px; }
 .relay-request p { font-size:17px; margin:0; flex:1; }
 .relay-request>span { width:100%; margin-top:0; }
 .relay-output { width:100%; bottom:0; right:0; padding:18px; }
 .relay-output p { font-size:11px; }
 .relay-state { bottom:-30px; font-size:11px; }
 .relay-use { display:block; padding:35px 24px 25px; }
 .relay-use p { margin-bottom:8px; }
 .relay-use .text-link { font-size:12px; }
 .solution-tabs button { padding:19px 12px; }
 .solution-tabs button>div { font-size:17px; }
 .solution-tabs button small { font-size:12px; }
 .solution-panel { padding:24px; }
 .solution-panel h3 { font-size:27px; }
 .solution-panel>p { font-size:14px; }
 .command { font-size:12px; }
 .workflow-steps { font-size:12px; }
 .solution-footer p,.solution-footer .text-link { font-size:13px; }
 .approach { padding-bottom:64px; }
 .steps-grid { gap:24px; }
 .steps-grid h3 { font-size:22px; }
 .steps-grid p { font-size:15px; }
 .difference { padding:60px 0; }
 .difference h2 { font-size:36px; }
 .difference-points h3 { font-size:20px; }
 .difference-points p { font-size:14px; }
 .about { padding-top:var(--sc-section); }
 .team-grid article { padding-block:20px!important; }
 .team-grid h3 { font-size:18px; }
 .team-grid p { font-size:13px; }
 .impact::before { inset:0 -30% 0 -10%; opacity:.4; mask-image:linear-gradient(0deg,#000,transparent 85%); }
 .impact-content { padding-top:60px; }
 .impact h2 { font-size:39px; }
 .impact-content>p { font-size:15px; }
 .impact-plan { margin-left:0; padding:24px 0 0; background:transparent; }
 .impact-plan p { font-size:14px; }
 .impact-caption { font-size:9px; margin-top:32px; }
 .faq h2 { font-size:36px; }
 summary { font-size:14px; }
 details p { font-size:14px; }
 .contact { padding:60px 0; }
 .contact h2 { font-size:39px; }
 .contact h2 br { display:block; }
 .contact p { font-size:15px; }
 .contact-actions { flex-direction:row; align-items:center; gap:22px; flex-wrap:wrap; }
 .contact-actions .button { font-size:14px; }
 .contact-note { font-size:11px; }
 .footer-top>p { font-size:14px; }
 .footer-bottom,.footer-bottom .quiet-link { font-size:11px; }
 .report-story:not(.sc-act--pinned) .relay-stage { min-height:0; }
}
@media(max-width:359px) {
 .hero-scene { width:290px; scale:.9; margin-left:calc((100% - 290px)/2); transform-origin:center; }
 .scene-sheet { width:120px; }
 .scene-hub { left:92px; }
 .relay-input { grid-template-columns:85px 1fr; }
 .hero-actions { gap:16px; }
 .hero-actions .button { padding-inline:16px; }
}
@media(prefers-reduced-motion:reduce) {
 .hero-image,.scene-sheet,.scene-request,.impact::before { transform:none!important; }
 .relay-input,.relay-request,.relay-output { transform:none!important; }
 .relay-output { opacity:1; }
 .report-story { height:auto!important; min-height:0!important; }
 .relay-stage { position:static!important; height:auto!important; min-height:650px; }
 [data-sc-reveal] { clip-path:none!important; }
}
