@font-face{font-family:Manrope;src:url(assets/fonts/manrope-400.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:Manrope;src:url(assets/fonts/manrope-600.woff2) format("woff2");font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:Manrope;src:url(assets/fonts/manrope-700.woff2) format("woff2");font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:Newsreader;src:url(assets/fonts/newsreader-500.woff2) format("woff2");font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:Newsreader;src:url(assets/fonts/newsreader-500-italic.woff2) format("woff2");font-weight:500;font-style:italic;font-display:swap}
:root{--primary:#891b42;--secondary:#561028;--accent:#d3a083;--surface:#f8eef2;--ink:#1b1b1b;--paper:#fcfaf9;--line:rgba(86,16,40,.15);--shell:min(1320px,calc(100% - 120px));--header:72px}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:var(--header)}body{margin:0;background:var(--paper);color:var(--ink);font-family:Manrope,Arial,sans-serif;-webkit-font-smoothing:antialiased}body.menu-open{overflow:hidden}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer}h1,h2,h3,p{margin-top:0}em{color:var(--primary);font-style:italic}.shell{width:var(--shell);margin-inline:auto}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.focus-ring:focus-visible,a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:2px solid var(--primary);outline-offset:4px}.skip-link{position:fixed;z-index:1000;left:16px;top:16px;transform:translateY(-150%);background:var(--secondary);color:#fff;padding:12px 20px;border-radius:30px;font-size:13px;font-weight:700}.skip-link:focus{transform:none}.texture{position:relative}.texture:after{content:"";position:absolute;inset:0;pointer-events:none;opacity:.04;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}.eyebrow{margin:0;color:var(--primary);font-size:11px;font-weight:700;letter-spacing:.18em;text-transform:uppercase}.eyebrow-light{color:var(--accent)}.lead{color:rgba(27,27,27,.66);font-size:17px;line-height:1.75}.fine-print{margin-top:22px;color:rgba(27,27,27,.48);font-size:12px;line-height:1.7}.section{padding:120px 0}.section h2{margin:24px 0 0;color:var(--secondary);font-family:Newsreader,Georgia,serif;font-size:clamp(48px,5.2vw,76px);font-weight:500;letter-spacing:-.045em;line-height:.96}.site-header{position:sticky;z-index:100;top:0;height:var(--header);border-bottom:1px solid rgba(86,16,40,.1);background:rgba(252,250,249,.9);backdrop-filter:blur(18px);transition:box-shadow .25s}.site-header.is-scrolled{box-shadow:0 8px 30px rgba(86,16,40,.06)}.header-inner{height:100%;display:flex;align-items:center;justify-content:space-between}.wordmark{font-family:Newsreader,Georgia,serif;color:var(--secondary);font-size:26px;font-weight:500;letter-spacing:-.04em}.wordmark span{color:var(--primary)}.desktop-nav{display:flex;align-items:center;gap:30px}.desktop-nav>a:not(.nav-cta){color:rgba(27,27,27,.58);font-size:12px;font-weight:600;transition:color .2s}.desktop-nav>a:hover{color:var(--primary)}.nav-cta{display:inline-flex;align-items:center;gap:10px;min-height:40px;padding:0 18px;border:1px solid rgba(86,16,40,.18);border-radius:30px;color:var(--secondary);font-size:12px;font-weight:700}.menu-toggle,.mobile-nav{display:none}.hero{min-height:calc(100svh - var(--header));overflow:hidden;background:var(--surface)}.hero-grid{position:absolute;inset:0 0 0 55%;background-image:linear-gradient(rgba(86,16,40,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(86,16,40,.06) 1px,transparent 1px);background-size:44px 44px;mask-image:linear-gradient(to left,#000,transparent)}.hero-inner{position:relative;z-index:1;min-height:calc(100svh - var(--header));display:flex;flex-direction:column;justify-content:space-between;padding:28px 0}.section-rail,.hero-footer{display:flex;align-items:center;justify-content:space-between;border-color:var(--line);color:rgba(86,16,40,.52);font-size:11px;font-weight:700;letter-spacing:.16em;text-transform:uppercase}.section-rail{border-bottom:1px solid var(--line);padding-bottom:16px}.hero-content{display:grid;grid-template-columns:minmax(0,9fr) minmax(220px,3fr);align-items:end;gap:54px;padding:115px 0 64px}.hero h1{max-width:1110px;margin:26px 0 0;color:var(--secondary);font-family:Newsreader,Georgia,serif;font-size:clamp(66px,8.5vw,118px);font-weight:500;letter-spacing:-.052em;line-height:.88}.hero-aside>p{color:rgba(27,27,27,.65);font-size:14px;line-height:1.7}.button-stack{display:grid;gap:16px;margin-top:28px}.button{display:inline-flex;min-height:50px;align-items:center;justify-content:center;gap:12px;padding:0 22px;border:0;border-radius:30px;font-size:12px;font-weight:700;transition:background .2s,color .2s,transform .2s}.button:hover{transform:translateY(-2px)}.button-primary{background:var(--primary);color:#fff}.button-primary:hover{background:var(--secondary)}.button-outline{border:1px solid rgba(86,16,40,.2);background:transparent;color:var(--secondary)}.text-link{display:inline-flex;align-items:center;gap:10px;color:var(--primary);font-size:12px;font-weight:700}.hero-footer{align-items:flex-end;border-top:1px solid var(--line);padding-top:16px;letter-spacing:0;text-transform:none}.hero-footer p{max-width:600px;margin:0;font-weight:400;line-height:1.6}.round-link{display:grid;width:40px;height:40px;flex:none;place-items:center;border:1px solid rgba(86,16,40,.18);border-radius:50%;font-size:16px}.vision-grid{display:grid;grid-template-columns:7fr 5fr;gap:80px}.vision-copy .lead{max-width:700px;margin:34px 0 0}.framework-panel{border-left:1px solid var(--line);padding-left:52px}.supporting-copy{max-width:430px;margin:22px 0 0;color:rgba(27,27,27,.56);font-size:14px;line-height:1.7}.framework-grid{display:grid;grid-template-columns:1fr 1fr;margin:36px 0 0;border-top:1px solid var(--line);border-left:1px solid var(--line)}.framework-grid div{display:flex;min-height:150px;flex-direction:column-reverse;justify-content:space-between;border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:24px}.framework-grid dt{color:rgba(27,27,27,.48);font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase}.framework-grid dd{margin:0;color:var(--primary);font-family:Newsreader,Georgia,serif;font-size:50px}.ecosystem-section{border-block:1px solid rgba(86,16,40,.1);background:var(--surface)}.split-heading{display:grid;grid-template-columns:8fr 4fr;gap:60px;align-items:end}.split-heading .lead{margin:0}.branch-list{margin-top:58px;border-top:1px solid rgba(86,16,40,.2)}.branch{display:grid;grid-template-columns:.7fr 3fr 2.7fr 4fr .3fr;gap:24px;align-items:center;border-bottom:1px solid var(--line);padding:25px 16px;transition:background .2s,padding .2s}.branch:hover{padding-inline:24px;background:var(--paper)}.branch-index,.status,.branch-category{color:var(--primary);font-size:11px;font-weight:700;letter-spacing:.13em;text-transform:uppercase}.branch h3{margin:0;color:var(--secondary);font-family:Newsreader,Georgia,serif;font-size:33px;font-weight:500;letter-spacing:-.035em;line-height:1}.status{display:block;margin-top:8px;font-size:10px}.branch-category{margin:0;color:rgba(86,16,40,.6);line-height:1.5;font-size:11px}.branch-summary{margin:0;color:rgba(27,27,27,.55);font-size:13px;line-height:1.65}.branch-arrow{justify-self:end;color:var(--primary);transition:transform .2s}.branch:hover .branch-arrow{transform:translateX(5px)}.infrastructure-section{overflow:hidden;background:var(--secondary);color:#fff}.infrastructure-shell{position:relative;z-index:1}.infrastructure-intro{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center}.infrastructure-section h2{color:#fff}.infrastructure-section h2 em{color:var(--accent)}.infrastructure-section .lead{max-width:620px;margin:32px 0 0;color:rgba(255,255,255,.58)}.network{width:100%;height:410px}.network-lines{stroke:rgba(255,255,255,.22);stroke-width:1.3}.network-nodes circle{fill:var(--accent);stroke:rgba(255,255,255,.28);stroke-width:7}.layer-grid{display:grid;grid-template-columns:repeat(3,1fr);margin-top:50px;border-top:1px solid rgba(255,255,255,.16);border-left:1px solid rgba(255,255,255,.16)}.layer-grid article{min-height:175px;border-right:1px solid rgba(255,255,255,.16);border-bottom:1px solid rgba(255,255,255,.16);padding:25px}.layer-grid span{color:var(--accent);font-size:11px;font-weight:700}.layer-grid h3{float:right;margin:0;color:#fff;font-family:Newsreader,Georgia,serif;font-size:25px;font-weight:500}.layer-grid p{clear:both;margin:62px 0 0;color:rgba(255,255,255,.48);font-size:11px;line-height:1.6}.capability-list,.audience-list{display:flex;flex-wrap:wrap;gap:8px;margin:28px 0 0;padding:0;list-style:none}.capability-list li{border:1px solid rgba(255,255,255,.16);border-radius:20px;padding:9px 14px;color:rgba(255,255,255,.62);font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase}.impact-grid{display:grid;grid-template-columns:7fr 5fr;gap:80px;align-items:end}.impact-grid .lead{margin:0}.audience-list{margin-top:54px;border-top:1px solid var(--line);padding-top:30px}.audience-list li{border:1px solid var(--line);border-radius:24px;background:var(--surface);padding:12px 18px;color:var(--secondary);font-size:11px;font-weight:600}.contact-section{border-top:1px solid rgba(86,16,40,.1);background:var(--surface)}.contact-grid{display:grid;grid-template-columns:4fr 8fr;gap:64px}.contact-copy h2{font-size:clamp(52px,5vw,74px)}.contact-copy .lead{margin:32px 0}.inquiry-form{position:relative;border:1px solid var(--line);border-radius:24px;background:var(--paper);padding:38px;box-shadow:0 18px 60px rgba(86,16,40,.06)}.form-heading{display:flex;align-items:flex-start;justify-content:space-between;border-bottom:1px solid var(--line);padding-bottom:26px}.form-heading h3{margin:10px 0 0;color:var(--secondary);font-family:Newsreader,Georgia,serif;font-size:38px;font-weight:500}.form-heading>span{color:var(--primary);font-size:22px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-top:28px}.field label{display:block;color:var(--secondary);font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase}.field input,.field select,.field textarea{width:100%;margin-top:9px;border:1px solid rgba(86,16,40,.18);border-radius:11px;background:#fff;color:var(--ink);font-size:13px;outline:none;transition:border-color .2s,box-shadow .2s}.field input,.field select{height:48px;padding:0 14px}.field textarea{min-height:155px;resize:vertical;padding:14px}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(137,27,66,.08)}.field [aria-invalid=true]{border-color:var(--primary)}.message-field{margin-top:22px}.field-hint,.field-error{margin:7px 0 0;font-size:11px;line-height:1.5}.field-hint{color:rgba(27,27,27,.48)}.field-error{min-height:0;color:var(--primary)}.honeypot{position:absolute;left:-10000px}.form-status{margin-top:20px;border:1px solid rgba(137,27,66,.18);border-radius:10px;background:var(--surface);padding:12px 14px;color:var(--secondary);font-size:12px;line-height:1.6}.form-status.success{border-color:rgba(23,108,75,.25);background:#eef8f2;color:#176c4b}.form-footer{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-top:26px}.form-footer p{max-width:390px;margin:0;color:rgba(27,27,27,.48);font-size:11px;line-height:1.6}.form-footer a{color:var(--primary);font-weight:700;text-decoration:underline}.submit-button[disabled]{cursor:wait;opacity:.65}.site-footer{background:var(--ink);color:#fff;padding:28px 0;border-top:1px solid rgba(255,255,255,.1)}.footer-single-line{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap}.footer-wordmark{color:#fff;font-size:22px}.footer-wordmark span{color:var(--accent)}.footer-copy{margin:0;color:rgba(255,255,255,.5);font-size:12px}.footer-single-line nav{display:flex;align-items:center;gap:20px}.footer-single-line nav a{color:rgba(255,255,255,.55);font-size:11px;transition:color .2s}.footer-single-line nav a:hover{color:#fff}.noscript-notice{position:fixed;z-index:200;right:15px;bottom:15px;max-width:390px;border:1px solid var(--line);border-radius:10px;background:var(--paper);padding:12px;color:var(--secondary);font-size:11px}
@media(max-width:900px){:root{--shell:min(100% - 80px,720px)}.desktop-nav{display:none}.menu-toggle{display:grid;width:42px;height:42px;place-content:center;gap:6px;border:1px solid var(--line);border-radius:50%;background:transparent}.menu-line{display:block;width:17px;height:1px;background:var(--secondary);transition:transform .2s}.menu-toggle[aria-expanded=true] .menu-line:first-of-type{transform:translateY(3.5px) rotate(45deg)}.menu-toggle[aria-expanded=true] .menu-line:last-of-type{transform:translateY(-3.5px) rotate(-45deg)}.mobile-nav{position:fixed;z-index:90;inset:var(--header) 0 0;display:flex;flex-direction:column;justify-content:space-between;background:var(--surface);padding:35px 20px 24px}.mobile-nav[hidden]{display:none}.mobile-links{display:grid}.mobile-links a{border-bottom:1px solid var(--line);padding:17px 0;color:var(--secondary);font-family:Newsreader,Georgia,serif;font-size:36px}.mobile-links span{display:inline-block;width:35px;color:var(--primary);font-family:Manrope,Arial,sans-serif;font-size:9px;font-weight:700}.mobile-actions{display:grid;gap:10px}.section{padding:90px 0}.hero-content,.vision-grid,.split-heading,.infrastructure-intro,.impact-grid,.contact-grid{grid-template-columns:1fr}.hero-content{align-items:start;gap:34px}.hero h1{font-size:clamp(56px,15vw,92px)}.hero-aside{max-width:430px}.button-stack{max-width:300px}.vision-grid{gap:60px}.framework-panel{border-left:0;border-top:1px solid var(--line);padding:40px 0 0}.split-heading{gap:30px}.split-heading .lead{max-width:600px}.branch{grid-template-columns:.5fr 2.7fr 2fr;gap:16px}.branch-category{grid-column:2}.branch-summary{grid-column:2/4}.branch-arrow{grid-column:3;grid-row:1;align-self:center}.infrastructure-intro{gap:25px}.network{height:300px}.layer-grid{grid-template-columns:1fr 1fr}.impact-grid{gap:45px}.contact-grid{gap:55px}.contact-copy{max-width:600px}.footer-single-line{justify-content:center;text-align:center}}
@media(max-width:560px){:root{--shell:calc(100% - 40px)}.section{padding:76px 0}.section-rail span:last-child{display:none}.hero-inner{padding:22px 0}.hero-content{padding:50px 0}.hero h1{font-size:clamp(52px,15.2vw,72px);line-height:.91}.hero-aside>p{font-size:13px}.hero-footer p{max-width:250px;font-size:9px}.section h2{font-size:clamp(43px,13vw,58px)}.lead{font-size:15px;line-height:1.65}.framework-grid div{min-height:120px;padding:18px}.framework-grid dd{font-size:40px}.branch{grid-template-columns:34px 1fr;padding:22px 4px}.branch:hover{padding-inline:4px}.branch>div,.branch-category,.branch-summary{grid-column:2}.branch-arrow{display:none}.branch h3{font-size:30px}.branch-category{font-size:8px}.branch-summary{font-size:12px}.network{height:220px}.layer-grid{grid-template-columns:1fr}.layer-grid article{min-height:125px}.layer-grid p{margin-top:48px}.impact-grid{gap:32px}.audience-list{margin-top:35px}.contact-copy h2{font-size:50px}.inquiry-form{border-radius:18px;padding:24px 18px}.form-heading h3{font-size:32px}.form-grid{grid-template-columns:1fr;gap:16px}.form-footer{align-items:stretch;flex-direction:column}.submit-button{width:100%}.footer-single-line{flex-direction:column;gap:12px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important}}

/* Premium editorial refinement */
.scroll-progress{position:fixed;z-index:1000;top:0;left:0;width:100%;height:2px;pointer-events:none;background:rgba(86,16,40,.06)}
.scroll-progress span{display:block;width:100%;height:100%;background:linear-gradient(90deg,var(--primary),var(--accent));transform:scaleX(0);transform-origin:left center;will-change:transform}
.desktop-nav a[data-nav-link]{position:relative;padding-block:8px}
.desktop-nav a[data-nav-link]:after{content:"";position:absolute;right:0;bottom:1px;left:0;height:1px;background:var(--primary);transform:scaleX(0);transform-origin:right;transition:transform .25s ease}
.desktop-nav a[data-nav-link].is-active{color:var(--primary)}
.desktop-nav a[data-nav-link].is-active:after,.desktop-nav a[data-nav-link]:hover:after{transform:scaleX(1);transform-origin:left}
.hero-grid{animation:gridDrift 22s linear infinite}
@keyframes gridDrift{to{background-position:44px 44px}}
.hero-aside{position:relative;border-left:1px solid rgba(137,27,66,.18);padding-left:25px}
.hero-aside-index{display:block;margin-bottom:18px;color:var(--primary);font-size:9px;font-weight:700;letter-spacing:.16em;text-transform:uppercase}
.hero-aside .button-primary{box-shadow:0 12px 28px rgba(137,27,66,.14)}
.hero .round-link{transition:border-color .2s,background .2s,transform .2s}
.hero .round-link:hover{transform:translateY(3px);border-color:var(--primary);background:rgba(255,255,255,.55)}
.ecosystem-heading{display:grid;grid-template-columns:7fr 5fr;gap:80px;align-items:center}
.ecosystem-overview{border-left:1px solid var(--line);padding-left:50px}
.ecosystem-overview .lead{margin:0}
.ecosystem-map{display:block;width:100%;max-width:440px;margin:20px auto 0;overflow:visible;background:rgba(255,255,255,.4);border:1px solid rgba(86,16,40,.08);border-radius:24px;padding:12px;box-shadow:0 10px 30px rgba(86,16,40,.04)}
.ecosystem-links path{fill:none;stroke:rgba(137,27,66,.25);stroke-width:1.5;stroke-dasharray:5 4;transition:stroke .3s,stroke-width .3s}
.ecosystem-parent circle{fill:var(--secondary);stroke:var(--accent);stroke-width:2.5;filter:drop-shadow(0 6px 16px rgba(86,16,40,.25))}
.ecosystem-parent text{fill:#fff;font-family:Manrope,Arial,sans-serif;font-size:6.5px;font-weight:800;letter-spacing:.14em;text-anchor:middle}
.ecosystem-node circle{fill:#fff;stroke:rgba(86,16,40,.28);stroke-width:1.5;transition:fill .25s,stroke .25s,stroke-width .25s,transform .25s;transform-box:fill-box;transform-origin:center;cursor:pointer;filter:drop-shadow(0 2px 6px rgba(86,16,40,.08))}
.ecosystem-node text{fill:var(--secondary);font-family:Manrope,Arial,sans-serif;font-size:7.5px;font-weight:800;text-anchor:middle;pointer-events:none;transition:fill .25s}
.ecosystem-node{outline:none}
.ecosystem-node.is-active circle,.ecosystem-node:hover circle,.ecosystem-node:focus-visible circle{fill:var(--primary);stroke:var(--accent);stroke-width:3;transform:scale(1.22);filter:drop-shadow(0 6px 18px rgba(137,27,66,.35))}
.ecosystem-node.is-active text,.ecosystem-node:hover text,.ecosystem-node:focus-visible text{fill:#fff}
.ecosystem-map:has(.ecosystem-node.is-active) .ecosystem-links path,.ecosystem-map:has(.ecosystem-node:hover) .ecosystem-links path{stroke:rgba(137,27,66,.45);stroke-dasharray:none}
.map-caption{display:flex;align-items:center;justify-content:center;gap:8px;margin:4px 0 0;color:rgba(27,27,27,.38);font-size:9px;letter-spacing:.08em;text-transform:uppercase}
.map-caption span{width:18px;height:1px;background:var(--primary)}
.branch{position:relative;isolation:isolate;overflow:hidden;outline:none}
.branch:before{content:"";position:absolute;z-index:-1;inset:0;background:linear-gradient(90deg,rgba(211,160,131,.15),rgba(248,238,242,.5));transform:scaleX(0);transform-origin:right;transition:transform .32s cubic-bezier(.22,1,.36,1)}
.branch:hover:before,.branch:focus-visible:before,.branch.is-active:before{transform:scaleX(1);transform-origin:left}
.branch:focus-visible{outline:2px solid var(--primary);outline-offset:-2px}
.branch:hover h3,.branch:focus-visible h3,.branch.is-active h3{color:var(--primary)}
.branch h3{transition:color .2s}
.branch-index{position:relative}
.branch-index:after{content:"";position:absolute;top:50%;left:calc(100% + 8px);width:0;height:1px;background:var(--primary);transition:width .25s}
.branch:hover .branch-index:after,.branch:focus-visible .branch-index:after{width:18px}
.infrastructure-section{background-image:radial-gradient(circle at 77% 18%,rgba(211,160,131,.12),transparent 28%),linear-gradient(135deg,#561028 0%,#6d1232 100%)}
.network-lines path{stroke-dasharray:8 5;animation:networkFlow 16s linear infinite}
.network-nodes circle:nth-child(3n+1){animation:nodePulse 4s ease-in-out infinite}
@keyframes networkFlow{to{stroke-dashoffset:-130}}
@keyframes nodePulse{50%{opacity:.5}}
.layer-grid article{transition:background .25s}
.layer-grid article:hover{background:rgba(255,255,255,.045)}
.inquiry-form:before{content:"";position:absolute;top:-1px;left:38px;width:72px;height:2px;background:linear-gradient(90deg,var(--primary),var(--accent))}
.inquiry-form{transition:transform .3s,box-shadow .3s}
.inquiry-form:focus-within{transform:translateY(-3px);box-shadow:0 26px 80px rgba(86,16,40,.1)}
.site-footer{background-image:radial-gradient(circle at 10% 0,rgba(137,27,66,.18),transparent 28%)}

@media(max-width:900px){
  .hero-aside{max-width:480px;border-left:0;border-top:1px solid rgba(137,27,66,.18);padding:22px 0 0}
  .ecosystem-heading{grid-template-columns:1fr;gap:46px}
  .ecosystem-overview{display:grid;grid-template-columns:1fr 1fr;gap:24px;align-items:center;border-left:0;border-top:1px solid var(--line);padding:35px 0 0}
  .ecosystem-map{margin:0}
  .map-caption{grid-column:1/-1}
}
@media(max-width:560px){
  .ecosystem-overview{grid-template-columns:1fr}
  .ecosystem-map{max-width:330px;margin-inline:auto}
  .map-caption{display:none}
  .branch-index:after{display:none}
  .inquiry-form:before{left:20px}
}
@media(prefers-reduced-motion:reduce){
  .hero-grid,.network-lines path,.network-nodes circle{animation:none!important}
}

/* ── Illuminati Theme Accents ─────────────────────────────────── */

/* Large Eye-of-Providence watermark in the hero — centred */
.hero-triangle-watermark{
  position:absolute;
  left:50%;
  top:50%;
  /* JS sets --tx (scroll parallax) and --rot (rotation) via inline style.
     Translate(-50%,-50%) centres the element; translateY(--tx) drifts it
     down as the user scrolls; rotate(--rot) keeps the spin running.      */
  transform:translate(calc(-50% + var(--tx,0px)), calc(-50% + var(--ty,0px))) rotate(var(--rot,0deg));
  width:min(560px,58vw);
  height:auto;
  pointer-events:none;
  z-index:0;
  color:var(--secondary);
  opacity:.38;
  will-change:transform;
}
/* No separate @keyframes rotation — JS drives --rot instead */

/* Small triangle + eye accent between eyebrow and h1 */
.hero-triangle-accent{
  display:inline-flex;
  align-items:center;
  margin:10px 0 6px;
  color:var(--primary);
  opacity:.72;
  animation:eyePulse 4.5s ease-in-out infinite;
}
@keyframes eyePulse{
  0%,100%{opacity:.72;transform:scale(1)}
  50%{opacity:1;transform:scale(1.08)}
}

/* Triangle guide lines inside the ecosystem map — gold tint on hover */
.ecosystem-map:hover .triangle-guides polygon,
.ecosystem-map:has(.ecosystem-node.is-active) .triangle-guides polygon{
  stroke:rgba(211,160,131,.28);
  transition:stroke .4s;
}
.triangle-guides polygon{transition:stroke .4s}

/* Make the ecosystem map a bit taller to fit the new viewBox */
.ecosystem-map{max-width:460px}

/* ── Layer-grid triangle layout ──────────────────────────────── */
/* 6 items in a triangle: 1 top-centre / 2 middle row / 3 bottom row */
.layer-grid{
  display:grid;
  grid-template-columns:repeat(6,1fr);
  grid-template-areas:
    ". . a a . ."
    ". b b c c ."
    "d d e e f f";
  margin-top:50px;
  border-top:1px solid rgba(255,255,255,.16);
  border-left:1px solid rgba(255,255,255,.16);
  gap:0;
}
.layer-grid article:nth-child(1){grid-area:a}
.layer-grid article:nth-child(2){grid-area:b}
.layer-grid article:nth-child(3){grid-area:c}
.layer-grid article:nth-child(4){grid-area:d}
.layer-grid article:nth-child(5){grid-area:e}
.layer-grid article:nth-child(6){grid-area:f}

/* Glow ring on the central hub when any node is active */
.ecosystem-map:has(.ecosystem-node.is-active) .ecosystem-parent circle,
.ecosystem-map:has(.ecosystem-node:hover) .ecosystem-parent circle{
  filter:drop-shadow(0 0 22px rgba(211,160,131,.45));
  transition:filter .35s;
}

/* Node size increase to r=16 — update hover scale slightly */
.ecosystem-node.is-active circle,
.ecosystem-node:hover circle,
.ecosystem-node:focus-visible circle{
  fill:var(--primary);
  stroke:var(--accent);
  stroke-width:3;
  transform:scale(1.18);
  filter:drop-shadow(0 6px 18px rgba(137,27,66,.38));
}

/* Subtle golden shimmer on the hero heading italic (em) on hover */
.hero h1 em{
  background:linear-gradient(90deg,var(--primary) 0%,#c06030 50%,var(--primary) 100%);
  background-size:200% auto;
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;
  background-clip:text;
  animation:shimmer 5s linear infinite;
}
@keyframes shimmer{to{background-position:200% center}}

/* Responsive: hide watermark on small screens to keep layout clean */
@media(max-width:900px){
  .hero-triangle-watermark{width:min(380px,80vw);opacity:.25}
  /* Triangle collapses to 2-col on tablet */
  .layer-grid{
    grid-template-columns:1fr 1fr;
    grid-template-areas:
      "a a"
      "b c"
      "d e"
      "f f";
  }
}
@media(max-width:560px){
  .hero-triangle-watermark{display:none}
}
@media(prefers-reduced-motion:reduce){
  /* Rotation is now JS-driven; the JS checks this media query and skips it.
     We only need to freeze the CSS animations here.                         */
  .hero-triangle-accent,.hero h1 em{animation:none!important}
  .hero-triangle-watermark{opacity:.2}
}

/* ═══════════════════════════════════════════════════════════════
   BRANCH LIST — TRIANGLE CARD LAYOUT
   Pyramid: 1 card (top) · 2 cards (middle) · 3 cards (base)
   data-branch hooks, sweep animations & map sync: fully intact.
   ═══════════════════════════════════════════════════════════════ */

/* 1. Triangle grid container */
.branch-list {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  grid-template-areas:
    ".  .  a  a  .  ."
    ".  b  b  c  c  ."
    "d  d  e  e  f  f";
  gap: 20px;
  margin-top: 52px;
  border-top: none;
}

/* 2. Assign triangle positions */
.branch-list > .branch:nth-child(1) { grid-area: a }
.branch-list > .branch:nth-child(2) { grid-area: b }
.branch-list > .branch:nth-child(3) { grid-area: c }
.branch-list > .branch:nth-child(4) { grid-area: d }
.branch-list > .branch:nth-child(5) { grid-area: e }
.branch-list > .branch:nth-child(6) { grid-area: f }

/* 3. Vertical card — position/isolation/overflow kept from above */
.branch {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0;
  padding: 28px 26px 22px;
  min-height: 220px;
  border: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  border-radius: 6px;
  background: var(--paper);
  box-shadow: 0 2px 12px rgba(86,16,40,.045);
  transition: background .2s, box-shadow .25s, transform .22s;
}
.branch:hover {
  padding-inline: 26px;
  box-shadow: 0 8px 32px rgba(86,16,40,.10);
  transform: translateY(-3px);
}
.branch.is-active {
  box-shadow: 0 8px 32px rgba(86,16,40,.13);
}

/* 4. Internal card flow */
.branch .branch-index { margin-bottom: 14px }
.branch .branch-index::after { display: none }
.branch h3 { font-size: 28px; line-height: 1.05; margin: 0 0 4px }
.branch .branch-category {
  margin: 10px 0 0;
  grid-column: unset;
}
.branch .branch-summary {
  margin: 10px 0 0;
  flex: 1;
  grid-column: unset;
}
.branch .branch-arrow {
  display: block;
  align-self: flex-end;
  margin-top: auto;
  padding-top: 14px;
  grid-column: unset;
  grid-row: unset;
}

/* 5. Tablet — stagger 1/2/2/1 */
@media (max-width: 900px) {
  .branch-list {
    grid-template-columns: 1fr 1fr;
    grid-template-areas:
      "a  a"
      "b  c"
      "d  e"
      "f  f";
    gap: 14px;
  }
  .branch { min-height: 190px; transform: none }
  .branch:hover { transform: none }
  .branch .branch-category,
  .branch .branch-summary { grid-column: unset }
  .branch .branch-arrow   { grid-column: unset; grid-row: unset; display: block }
}

/* 6. Mobile — single column */
@media (max-width: 560px) {
  .branch-list {
    grid-template-columns: 1fr;
    grid-template-areas: "a" "b" "c" "d" "e" "f";
    gap: 12px;
  }
  .branch { min-height: unset; padding: 22px 20px 18px; border-radius: 4px }
  .branch .branch-arrow { display: block }
}

/* 7. Reduced motion */
@media (prefers-reduced-motion: reduce) {
  .branch { transition: background .01ms !important }
  .branch:hover { transform: none }
}

/* ── Infrastructure layer-grid: improved legibility ──────────── */
.layer-grid span        { font-size: 13px }        /* number badge: 11→13 */
.layer-grid h3          { font-size: 30px }        /* heading: 25→30 */
.layer-grid p           { font-size: 14px; line-height: 1.7; margin-top: 16px; color: rgba(255,255,255,.62) }

/* ══════════════════════════════════════════════════════════════════════
   REACTBITS-INSPIRED PREMIUM ANIMATIONS
   Split-text blur reveal · Scroll fade-up · Cursor glow · Particles
   ══════════════════════════════════════════════════════════════════════ */

/* ─ Scroll reveal — only activates when html.js class is present ──── */
html.js [data-reveal] {
  opacity: 0;
  transform: translateY(36px);
  filter: blur(5px);
  transition:
    opacity   0.85s cubic-bezier(0.16, 1, 0.3, 1),
    transform 0.85s cubic-bezier(0.16, 1, 0.3, 1),
    filter    0.85s cubic-bezier(0.16, 1, 0.3, 1);
}
html.js [data-reveal][data-delay="1"] { transition-delay: 0.14s }
html.js [data-reveal][data-delay="2"] { transition-delay: 0.28s }
html.js [data-reveal][data-delay="3"] { transition-delay: 0.42s }
html.js [data-reveal][data-delay="4"] { transition-delay: 0.56s }
html.js [data-reveal][data-delay="5"] { transition-delay: 0.70s }
html.js [data-reveal].is-revealed {
  opacity: 1;
  transform: translateY(0);
  filter: blur(0);
}

/* ─ H1 spring-word reveal (ReactBits Split Text / spring physics) ── */
.split-word {
  display: inline-block;
  opacity: 0;
  transform: translateY(36px) scale(0.86) rotate(-2deg);
  animation: wordSpringIn 1s cubic-bezier(0.34, 1.56, 0.64, 1) forwards;
  animation-delay: calc(0.06s + var(--i, 0) * 0.21s);
}
@keyframes wordSpringIn {
  to { opacity: 1; transform: translateY(0) scale(1) rotate(0deg); }
}

/* ─ Hero eyebrow entry ───────────────────────────────────────────── */
[data-hero-eyebrow] {
  opacity: 0;
  animation: captionSlideUp 0.65s cubic-bezier(0.16, 1, 0.3, 1) forwards 0.04s;
}
@keyframes captionSlideUp {
  from { opacity: 0; transform: translateY(14px) }
  to   { opacity: 1; transform: translateY(0) }
}

/* ─ Small triangle accent: start invisible then pulse ────────────── */
.hero-triangle-accent {
  opacity: 0;
  animation:
    accentFadeIn 0.55s cubic-bezier(0.16, 1, 0.3, 1) forwards 0.06s,
    eyePulse     4.5s ease-in-out 0.62s infinite;
}
@keyframes accentFadeIn { to { opacity: 0.72 } }

/* ─ Hero aside & footer staggered entry ──────────────────────────── */
.hero-aside {
  opacity: 0;
  animation: heroBlockIn 1s cubic-bezier(0.16, 1, 0.3, 1) forwards 0.9s;
}
.hero-footer {
  opacity: 0;
  animation: heroBlockIn 0.8s cubic-bezier(0.16, 1, 0.3, 1) forwards 1.12s;
}
@keyframes heroBlockIn {
  from { opacity: 0; transform: translateY(22px) }
  to   { opacity: 1; transform: translateY(0) }
}

/* ─ Triangle watermark: soft opacity breathe ─────────────────────── */
@keyframes triBreathe {
  0%, 100% { opacity: 0.36 }
  50%       { opacity: 0.54 }
}
.hero-triangle-watermark { animation: triBreathe 9s ease-in-out infinite }

/* ─ Cursor glow orb ──────────────────────────────────────────────── */
#hero-cursor-glow {
  position: absolute;
  width: 700px;
  height: 700px;
  border-radius: 50%;
  background: radial-gradient(circle at center,
    rgba(137,27,66,.13) 0%,
    rgba(137,27,66,.05) 42%,
    transparent 70%
  );
  pointer-events: none;
  z-index: 0;
  top: 0; left: 0;
  transform: translate(-50%, -50%);
  will-change: left, top;
  opacity: 0;
  transition: opacity 0.65s ease;
}
.hero.cursor-active #hero-cursor-glow { opacity: 1 }

/* ─ Particle canvas ──────────────────────────────────────────────── */
#hero-particles {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  z-index: 0;
}

/* ─ Tablet: stop breathe animation to respect lower opacity target ── */
@media (max-width: 900px) {
  .hero-triangle-watermark { animation: none; opacity: .24 }
}

/* ─ No cursor glow on touch/small screens ────────────────────────── */
@media (max-width: 768px) {
  #hero-cursor-glow { display: none }
}

/* ─ Reduced motion: freeze / disable ALL new animations ─────────── */
@media (prefers-reduced-motion: reduce) {
  .split-word {
    animation: none !important;
    opacity: 1 !important; transform: none !important; filter: none !important;
  }
  html.js [data-reveal] {
    opacity: 1 !important; transform: none !important;
    filter: none !important; transition: none !important;
  }
  [data-hero-eyebrow],
  .hero-triangle-accent,
  .hero-aside,
  .hero-footer {
    animation: none !important;
    opacity: 1 !important; transform: none !important;
  }
  .hero-triangle-watermark { animation: none !important }
  #hero-particles           { display: none }
  #hero-cursor-glow         { display: none }
}

