:root{--tech:#173f40;--tech-deep:#102b2d;--tech-line:rgba(223,236,224,.19);--tech-paper:#e9e7dc}
.home-hero{grid-template-columns:minmax(0,1fr) minmax(430px,.98fr);gap:clamp(2.5rem,5vw,6rem);min-height:720px;background-image:linear-gradient(rgba(28,71,68,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(28,71,68,.035) 1px,transparent 1px);background-size:44px 44px;background-position:-1px -1px}
.hero-copy{max-width:730px}
.hero-title{font-size:clamp(3.8rem,6.25vw,8rem);max-width:none}
.hero-intro{max-width:40ch}
.hero-trust{margin-top:3.1rem}
.learning-system{position:relative;isolation:isolate;min-width:0;width:100%;max-width:650px;min-height:570px;justify-self:center;display:flex;flex-direction:column;overflow:hidden;background:var(--tech-deep);color:#f2eee4;box-shadow:18px 18px 0 rgba(34,79,76,.11),0 24px 60px rgba(24,50,45,.12);border:1px solid #436667}
.learning-system::before{content:"";position:absolute;inset:0;z-index:-1;background-image:linear-gradient(var(--tech-line) 1px,transparent 1px),linear-gradient(90deg,var(--tech-line) 1px,transparent 1px);background-size:38px 38px;mask-image:linear-gradient(90deg,transparent 10%,#000 100%);opacity:.3}
.learning-system::after{content:"";position:absolute;top:-50%;left:-42%;width:35%;height:220%;z-index:-1;background:linear-gradient(90deg,transparent,rgba(246,223,170,.055),transparent);transform:rotate(25deg) translateX(-110%);animation:system-scan 4.8s ease-in-out both}
.system-top,.system-bottom{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.4rem;font:600 .59rem/1.4 Poppins,Arial,sans-serif;letter-spacing:.16em;text-transform:uppercase}
.system-top{border-bottom:1px solid var(--tech-line);color:#c1d7d0}.system-top>span:first-child{display:flex;align-items:center;gap:.65rem}.system-top>span:last-child{color:#91ada7}
.system-top{flex-wrap:wrap;gap:.4rem 1rem}
.system-signal{display:block;width:10px;height:9px;background:linear-gradient(90deg,#deb567 0 3px,transparent 3px 6px,#deb567 6px 9px)}
.system-heading{padding:2.15rem 2.3rem 1.7rem}.system-heading>span,.system-output>span{color:#d2aa64;font-size:.63rem;font-weight:700;letter-spacing:.18em}.system-heading strong{display:block;font-size:clamp(2.65rem,4.1vw,4.5rem);line-height:.97;letter-spacing:-.075em;font-weight:600;margin:.65rem 0 1.1rem}.system-heading strong span{color:#d9ad64}.system-heading p{font-size:.88rem;line-height:1.65;color:#bed1c9;max-width:34ch;margin:0}
.system-flow{position:relative;margin:0 1.4rem;border:1px solid var(--tech-line);background:rgba(6,26,28,.35)}
.flow-rail{position:absolute;left:1.85rem;top:2.05rem;bottom:2.1rem;width:1px;background:#4f7070}.flow-progress{position:absolute;top:0;left:0;width:1px;height:100%;background:#d7aa60;transform-origin:top;animation:flow-fill 3s .3s cubic-bezier(.4,0,.15,1) both}.flow-tracer{position:absolute;left:-4px;top:0;width:9px;height:9px;border-radius:50%;background:#f4c572;box-shadow:0 0 0 5px rgba(228,181,95,.14),0 0 18px #dba94e;animation:flow-trace 3.6s .3s ease-in-out both}
.flow-step{width:100%;min-height:77px;display:grid;grid-template-columns:2.75rem 1fr;align-items:center;gap:.8rem;text-align:left;padding:.7rem 1.2rem;background:transparent;color:#f2eee4;border:0;border-bottom:1px solid var(--tech-line);cursor:pointer;transition:background .25s ease,padding-left .25s ease}.flow-step:last-child{border-bottom:0}.flow-step:hover,.flow-step.is-active{background:rgba(205,158,77,.095)}.flow-step:hover{padding-left:1.45rem}.flow-index{position:relative;z-index:1;width:1.25rem;height:1.25rem;display:grid;place-items:center;background:var(--tech-deep);color:#e6b86b;font-size:.67rem;font-weight:700;letter-spacing:0}.flow-copy{display:grid;gap:.12rem}.flow-copy strong{font-size:1.16rem;letter-spacing:-.04em;font-weight:600}.flow-copy small{font-size:.7rem;line-height:1.35;color:#a9c0b7}
.system-output{display:grid;grid-template-columns:128px 1fr;gap:1rem;align-items:start;min-height:73px;padding:1.3rem 2.3rem;border-bottom:1px solid var(--tech-line)}.system-output p{margin:0;color:#e4ebe1;font-size:.77rem;line-height:1.6}.system-bottom{margin-top:auto;color:#91ada7}
.page-home .intro-strip{background:var(--tech-deep)}
.page-home .home-organisations,.page-home .cta-band{background-color:#173f40}
.web-spotlight{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);align-items:center;min-height:480px;background:#173f40;padding:clamp(1.5rem,4vw,4rem);gap:clamp(2rem,5vw,5rem)}.web-spotlight:hover{background:#1c4949}.web-spotlight::before{display:none}.web-spotlight h3{font-size:clamp(2.65rem,4.5vw,5rem);line-height:1.07;letter-spacing:-.075em}.web-spotlight h3 em{color:#e1b66f}.web-spotlight p{max-width:42ch}.web-spotlight .spotlight-copy{position:relative;z-index:1}
.website-sequence{width:100%;max-width:580px;justify-self:end;background:#e9e7dc;color:#143334;border:1px solid #bfcfc6;box-shadow:11px 11px 0 rgba(8,31,31,.3);overflow:hidden;transform:translateY(0);transition:transform .45s cubic-bezier(.2,.7,.2,1)}.web-spotlight:hover .website-sequence{transform:translateY(-7px)}.sequence-top,.sequence-bottom{display:flex;align-items:center;justify-content:space-between;gap:.6rem;padding:.85rem 1rem;font-size:.58rem;font-weight:700;letter-spacing:.15em}.sequence-top{border-bottom:1px solid #abbfb4}.sequence-bottom{background:#d6e0d7;color:#315657;justify-content:flex-start}.sequence-bottom b{margin:0 auto;color:#a97e3e}.sequence-node{position:relative;display:grid;grid-template-columns:120px 1fr 26px;align-items:center;gap:1rem;padding:1.25rem 1rem;border-bottom:1px solid #b7c8bd}.sequence-node>span{font-size:.58rem;font-weight:700;letter-spacing:.13em;color:#557673}.sequence-node strong{font-size:clamp(1.15rem,1.65vw,1.75rem);line-height:1.2;letter-spacing:-.06em}.sequence-node i{display:block;width:9px;height:9px;background:#c69b51;transform:rotate(45deg);transition:transform .4s ease}.web-spotlight:hover .sequence-node i{transform:rotate(225deg)}

.brand-link .wordmark-svg{animation:mark-in .8s var(--ease) both,logo-drift 5.4s .8s ease-in-out infinite;will-change:transform}
.brand-link .wordmark-svg .mark-gold{transform-box:fill-box;transform-origin:center;animation:logo-gold-live 3.8s ease-in-out infinite}
.brand-link .wordmark-svg .mark-gold-last{animation-delay:-1.9s}
@keyframes logo-drift{0%,100%{transform:translate3d(0,0,0)}50%{transform:translate3d(0,-2px,0)}}
@keyframes logo-gold-live{0%,100%{fill:#c19446;transform:translateY(0)}28%{fill:#edc574;transform:translateY(-2px)}52%{fill:#d5a558;transform:translateY(0)}}
.button{font-size:.875rem}.system-top,.system-bottom{font-size:.75rem;letter-spacing:.08em}.system-heading>span,.system-output>span{font-size:.75rem;letter-spacing:.1em}.flow-copy small{font-size:.875rem}.system-output p{font-size:.875rem}.flow-index{font-size:.75rem}.sequence-top,.sequence-bottom,.sequence-node>span{font-size:.75rem;letter-spacing:.06em}.sequence-node{grid-template-columns:130px 1fr 18px}.section-tag,.card-index,.row-number,.row-detail,.card-kicker,.spotlight-kicker,.editorial-kicker{font-size:.75rem!important;letter-spacing:.08em}.programme-card p,.service-card p{font-size:1rem}.eyebrow{font-size:.75rem;letter-spacing:.1em}
@keyframes system-scan{0%,22%{transform:rotate(25deg) translateX(-110%)}52%,100%{transform:rotate(25deg) translateX(590%)}}
@keyframes system-blink{50%{opacity:.35;box-shadow:0 0 0 8px rgba(222,181,103,.03)}}
@keyframes flow-fill{from{transform:scaleY(0)}to{transform:scaleY(1)}}
@keyframes flow-trace{from{top:0}to{top:calc(100% - 8px)}}
@media(max-width:1100px){.home-hero{grid-template-columns:minmax(0,1fr) minmax(390px,.96fr);gap:2rem}.hero-title{font-size:clamp(3.3rem,5.8vw,6rem)}.system-heading{padding:1.8rem 1.7rem 1.5rem}.system-output{padding:1.2rem 1.7rem}}
@media(max-width:900px){.home-hero{grid-template-columns:1fr;min-height:0}.hero-copy{max-width:700px}.learning-system{max-width:690px;margin:1rem 0 2rem}.hero-title{font-size:clamp(4rem,9vw,7rem)}}
@media(max-width:900px){.web-spotlight{grid-template-columns:1fr;gap:1.6rem}.website-sequence{justify-self:stretch;max-width:none}}
@media(max-width:600px){.home-hero{background-size:30px 30px}.hero-title{font-size:clamp(3.35rem,12.5vw,5.5rem)}.learning-system{min-height:0;margin:1.4rem 0 0;box-shadow:7px 7px 0 rgba(34,79,76,.12)}.system-top,.system-bottom{padding:.9rem 1rem;font-size:.5rem;letter-spacing:.1em}.system-top>span:last-child{display:none}.system-heading{padding:1.6rem 1.1rem 1.2rem}.system-heading strong{font-size:clamp(2.75rem,10vw,4.2rem)}.system-heading p{font-size:.78rem}.system-flow{margin:0 .7rem}.flow-step{min-height:72px;grid-template-columns:2.2rem 1fr;padding:.55rem .8rem;gap:.5rem}.flow-rail{left:1.32rem}.flow-copy strong{font-size:1.02rem}.flow-copy small{font-size:.65rem}.system-output{grid-template-columns:1fr;gap:.4rem;min-height:0;padding:1.1rem}.system-output p{font-size:.72rem}}
@media(max-width:600px){.web-spotlight{min-height:0;padding:1.5rem;display:grid}.web-spotlight h3{font-size:clamp(2.75rem,10vw,4.5rem)}.website-sequence{box-shadow:5px 5px 0 rgba(8,31,31,.3)}.sequence-node{grid-template-columns:1fr 16px;gap:.3rem;padding:1rem}.sequence-node>span{grid-column:1/-1}.sequence-node strong{font-size:1.12rem}.sequence-node i{grid-column:2;grid-row:2}.sequence-bottom{font-size:.47rem;letter-spacing:.07em}.web-spotlight p{font-size:.87rem}}
@media(prefers-reduced-motion:reduce){.learning-system::after,.system-signal,.flow-progress,.flow-tracer,.wordmark-svg .mark-gold{animation:none!important}.flow-progress{transform:none}.flow-tracer{top:calc(100% - 8px)}.flow-step{transition:none}}
@media(max-width:600px){.system-top,.system-bottom{font-size:.75rem}.system-top{line-height:1.5}.system-heading p{font-size:1rem}.flow-copy small{font-size:.875rem}.system-output p{font-size:.875rem}.flow-copy strong{font-size:1.15rem}.sequence-top,.sequence-bottom,.sequence-node>span{font-size:.75rem}.sequence-top{flex-wrap:wrap}.system-bottom>span:first-child{max-width:24ch}.sequence-node{grid-template-columns:1fr 16px}.web-spotlight p{font-size:1rem}.eyebrow{font-size:.75rem;letter-spacing:.07em}.hero-trust p{font-size:.875rem}}


.site-frame{position:relative;z-index:1}



body::after{content:"";position:fixed;inset:0;z-index:9999;pointer-events:none;opacity:.05;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='150' height='150'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.82' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");background-size:150px 150px}


.aurora{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden}
.aurora-blob{position:absolute;border-radius:50%;filter:blur(55px);opacity:.55;will-change:transform}
.aurora .blob-1{width:48vmax;height:48vmax;left:-10vmax;top:-12vmax;background:radial-gradient(circle,rgba(204,159,76,.6),transparent 64%);animation:aurora-1 14s linear infinite}
.aurora .blob-2{width:42vmax;height:42vmax;right:-8vmax;top:2vmax;background:radial-gradient(circle,rgba(58,146,132,.42),transparent 64%);animation:aurora-2 17s linear infinite}
.aurora .blob-3{width:52vmax;height:52vmax;left:28vmax;bottom:-20vmax;background:radial-gradient(circle,rgba(204,159,76,.45),transparent 64%);animation:aurora-3 20s linear infinite}
.aurora .blob-cursor{width:38vmax;height:38vmax;left:var(--px,50%);top:var(--py,50%);margin:-19vmax 0 0 -19vmax;opacity:.4;background:radial-gradient(circle,rgba(230,184,107,.5),transparent 60%);transition:left .5s ease-out,top .5s ease-out}
@keyframes aurora-1{0%,100%{transform:translate3d(0,0,0)}25%{transform:translate3d(18vmax,6vmax,0)}50%{transform:translate3d(26vmax,22vmax,0)}75%{transform:translate3d(6vmax,20vmax,0)}}
@keyframes aurora-2{0%,100%{transform:translate3d(0,0,0)}25%{transform:translate3d(-16vmax,14vmax,0)}50%{transform:translate3d(-28vmax,4vmax,0)}75%{transform:translate3d(-10vmax,-8vmax,0)}}
@keyframes aurora-3{0%,100%{transform:translate3d(0,0,0)}25%{transform:translate3d(-20vmax,-14vmax,0)}50%{transform:translate3d(-6vmax,-26vmax,0)}75%{transform:translate3d(14vmax,-10vmax,0)}}
@media(max-width:760px){.aurora-blob{filter:blur(32px);opacity:.42}.aurora .blob-cursor{display:none}}



.reveal{opacity:0;transform:translateY(30px);transition:opacity .9s cubic-bezier(.16,.72,.2,1),transform .9s cubic-bezier(.16,.72,.2,1);transition-delay:calc(var(--reveal-i,0)*75ms)}
.reveal.is-visible{opacity:1;transform:none}


@media(prefers-reduced-motion:no-preference){
  .hero-title .hero-line{display:inline-block;animation:hero-line-in 1s cubic-bezier(.2,.78,.2,1) both}
  .hero-title .hero-line:last-of-type{animation-delay:.14s}
}
@keyframes hero-line-in{from{opacity:0;transform:translateY(40%)}to{opacity:1;transform:none}}

@media(prefers-reduced-motion:reduce){
  .aurora-blob{animation:none}
  .reveal{opacity:1;transform:none;transition:none}
  .hero-title .hero-line{animation:none}
}


.method-scroll{position:relative;background:var(--tech-deep);color:#f2eee4;isolation:isolate}
.method-scroll::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
  background-image:linear-gradient(var(--tech-line) 1px,transparent 1px),linear-gradient(90deg,var(--tech-line) 1px,transparent 1px);
  background-size:46px 46px;opacity:.25;mask-image:radial-gradient(120% 90% at 70% 30%,#000,transparent 75%)}
.method-sticky{background:var(--tech-deep);padding:clamp(3.2rem,8vw,8rem) clamp(1.25rem,6.2vw,7.5rem);display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:clamp(2rem,6vw,7rem);align-items:center;min-height:auto}
.method-kicker{color:#d2aa64;font-size:.72rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase}
.method-head h2{font-size:clamp(2.7rem,5.2vw,5.6rem);line-height:.97;letter-spacing:-.075em;font-weight:600;margin:1rem 0 1.1rem}
.method-head h2 em{color:#e1b66f;font-style:normal}
.method-lede{color:#bed1c9;font-size:clamp(.95rem,1.15vw,1.15rem);line-height:1.6;max-width:34ch;margin:0}
.method-stage{position:relative}
.method-rail{position:absolute;left:1.02rem;top:.7rem;bottom:.7rem;width:2px;background:rgba(223,236,224,.16)}
.method-rail-fill{position:absolute;left:0;top:0;width:100%;height:100%;background:linear-gradient(#f4c572,#d7aa60);transform-origin:top;transform:scaleY(0);box-shadow:0 0 16px rgba(228,181,95,.4)}
.method-steps{list-style:none;margin:0;padding:0;display:grid;gap:clamp(1.5rem,3.4vw,3rem)}
.method-step{display:grid;grid-template-columns:2.1rem 1fr;gap:clamp(1rem,1.8vw,1.8rem);align-items:start}
.method-num{font-size:.78rem;font-weight:700;color:#0f2a2c;background:#e6b86b;width:2.1rem;height:2.1rem;display:grid;place-items:center;position:relative;z-index:1}
.method-step-copy h3{font-size:clamp(1.9rem,2.8vw,3.1rem);letter-spacing:-.045em;font-weight:600;margin:0 0 .45rem;line-height:1}
.method-step-copy p{font-size:clamp(.95rem,1.1vw,1.12rem);line-height:1.62;color:#c3d4cc;max-width:44ch;margin:0}


.method-live{height:260vh}
.method-live .method-sticky{position:sticky;top:0;min-height:100vh}
@media(prefers-reduced-motion:no-preference){
  .method-live .method-step{opacity:.66;transform:translateY(10px);transition:opacity .55s cubic-bezier(.16,.72,.2,1),transform .55s cubic-bezier(.16,.72,.2,1)}
  .method-live .method-step.is-active{opacity:1;transform:none}
  .method-live .method-num{transition:transform .45s ease}
  .method-live .method-step.is-active .method-num{transform:scale(1.12)}
}
@media(max-width:900px){.method-sticky{grid-template-columns:1fr;gap:1.8rem}.method-live{height:240vh}}
@media(max-width:760px){.method-live{height:auto}.method-live .method-sticky{position:static;min-height:0}.method-live .method-step{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.method-live{height:auto}.method-live .method-sticky{position:static;min-height:0}}


.site-frame{overflow:clip}


.scroll-progress{position:fixed;left:0;top:0;height:3px;width:100%;transform:scaleX(0);transform-origin:0 50%;background:linear-gradient(90deg,#cc9f4c,#e4bf79);z-index:10001;pointer-events:none}
.feel-card{position:relative;transition:transform .45s cubic-bezier(.2,.7,.2,1),box-shadow .45s ease}
.feel-card::after{content:"";position:absolute;left:0;bottom:0;height:2px;width:100%;background:var(--gold);transform:scaleX(0);transform-origin:left;transition:transform .45s cubic-bezier(.2,.7,.2,1);pointer-events:none}
@media(prefers-reduced-motion:no-preference) and (hover:hover){
  .feel-card:hover{transform:translateY(-6px);box-shadow:0 22px 50px rgba(24,36,30,.14)}
  .feel-card:hover::after{transform:scaleX(1)}
}
.text-link span[aria-hidden],.spotlight-link span[aria-hidden]{display:inline-block;transition:transform .3s ease}
.text-link:hover span[aria-hidden],.spotlight-link:hover span[aria-hidden]{transform:translate(4px,-4px)}
@media(prefers-reduced-motion:reduce){.feel-card,.feel-card::after{transition:none}}


.footer-social{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1.1rem}
.footer-social .social-link{width:2.85rem;height:2.85rem;display:inline-flex;align-items:center;justify-content:center;gap:0;border:1px solid rgba(240,231,214,.3);border-radius:50%;color:var(--ivory);transition:background .3s ease,color .3s ease,border-color .3s ease,transform .3s ease}
.footer-social .social-link svg{flex:none;width:1.15rem;height:1.15rem;fill:currentColor}
.footer-social .social-link:hover,.footer-social .social-link:focus-visible{background:var(--gold);border-color:var(--gold);color:#171719;transform:translateY(-3px)}
@media(prefers-reduced-motion:reduce){.social-link{transition:none}.social-link:hover,.social-link:focus-visible{transform:none}}


.has-glow{isolation:isolate}
.section-glow{position:absolute;inset:0;z-index:-1;overflow:hidden;pointer-events:none}
.section-glow > i{position:absolute;inset:-35%;display:block;animation:glow-drift 12s linear infinite paused;will-change:transform}
.has-glow.is-glowing .section-glow > i{animation-play-state:running}
.glow-dark .section-glow > i{background:
  radial-gradient(28% 34% at 26% 32%, rgba(214,170,96,.26), transparent 70%),
  radial-gradient(30% 36% at 76% 70%, rgba(118,186,170,.17), transparent 72%),
  radial-gradient(20% 24% at 58% 18%, rgba(244,197,114,.12), transparent 70%)}
.glow-light .section-glow > i{background:
  radial-gradient(30% 36% at 24% 30%, rgba(255,252,244,.6), transparent 70%),
  radial-gradient(28% 34% at 78% 72%, rgba(204,159,76,.2), transparent 72%)}
.section-glow > b{position:absolute;width:44vmax;height:44vmax;left:var(--gx,50%);top:var(--gy,50%);margin:-22vmax 0 0 -22vmax;border-radius:50%;opacity:0;transition:opacity .5s ease,left .3s ease-out,top .3s ease-out}
.glow-dark .section-glow > b{background:radial-gradient(circle,rgba(230,184,107,.2),transparent 62%)}
.glow-light .section-glow > b{background:radial-gradient(circle,rgba(255,255,255,.5),transparent 62%)}
.has-glow.is-pointer .section-glow > b{opacity:1}
@keyframes glow-drift{0%{transform:translate3d(0,0,0) rotate(0deg) scale(1)}25%{transform:translate3d(9%,-7%,0) rotate(8deg) scale(1.08)}50%{transform:translate3d(-2%,-12%,0) rotate(14deg) scale(1.02)}75%{transform:translate3d(-9%,4%,0) rotate(6deg) scale(1.1)}100%{transform:translate3d(0,0,0) rotate(0deg) scale(1)}}
@media(prefers-reduced-motion:reduce){.section-glow > i{animation:none}.section-glow > b{display:none}}
@media(hover:none){.section-glow > b{display:none}}


.service-marquee{background:var(--ink);color:var(--ivory);padding:clamp(1.6rem,3.5vw,2.8rem) 0;overflow:hidden}
.marquee-track{display:flex;width:max-content;animation:marquee 38s linear infinite}
.service-marquee:hover .marquee-track{animation-play-state:paused}
.marquee-row{display:flex;align-items:center;list-style:none;margin:0;padding:0;flex:none}
.marquee-row li{display:flex;align-items:center;font-size:clamp(2rem,4.6vw,4.4rem);font-weight:600;letter-spacing:-.05em;line-height:1.1;white-space:nowrap;padding-right:clamp(1.4rem,3vw,2.6rem)}
.marquee-row li::after{content:"";flex:none;width:.3em;height:.3em;background:var(--gold);transform:rotate(45deg);margin-left:clamp(1.4rem,3vw,2.6rem)}
.marquee-row li:nth-child(even){color:transparent;-webkit-text-stroke:1.2px rgba(240,231,214,.8)}
@keyframes marquee{to{transform:translate3d(-50%,0,0)}}
@media(prefers-reduced-motion:reduce){.marquee-track{animation:none;width:auto}.marquee-row[aria-hidden]{display:none}.marquee-row{flex-wrap:wrap;row-gap:.6rem;padding:0 clamp(1.25rem,6.2vw,7.5rem)}}


.magnetic{transform:translate3d(var(--mx,0px),var(--my,0px),0);transition:transform .35s cubic-bezier(.2,.7,.2,1),background .25s,color .25s,border-color .25s}
.magnetic:hover{transform:translate3d(var(--mx,0px),calc(var(--my,0px) - 3px),0)}
.count-up{display:inline-block;font-variant-numeric:tabular-nums}


.brand-lc{text-transform:none!important}


.glow-dark :focus-visible,.site-footer :focus-visible,.method-scroll :focus-visible,.service-marquee :focus-visible,.page-hero-dark :focus-visible,.intro-strip :focus-visible,.cta-band :focus-visible,.home-organisations :focus-visible,.learning-system :focus-visible{outline:3px solid #e6b86b;outline-offset:3px}


.aurora::before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(23,63,64,.048) 1px,transparent 1px),linear-gradient(90deg,rgba(23,63,64,.048) 1px,transparent 1px),radial-gradient(circle,rgba(23,63,64,.2) 1px,transparent 1.5px);background-size:78px 78px,78px 78px,78px 78px;background-position:0 0,0 0,39px 39px;mask-image:linear-gradient(110deg,transparent 5%,#000 48%,transparent 95%);animation:signal-grid-drift 32s ease-in-out infinite alternate}
.aurora .blob-1{opacity:.43;animation-duration:25s}.aurora .blob-2{opacity:.34;animation-duration:29s}.aurora .blob-3{display:none}.aurora .blob-cursor{opacity:.2}
@keyframes signal-grid-drift{to{transform:translate3d(-30px,22px,0)}}
.hero-network{position:absolute;inset:0 0 0 auto;width:64%;height:100%;z-index:0;pointer-events:none;overflow:visible;opacity:.42}
.hero-network path{stroke:#6b9c91;stroke-width:1;stroke-dasharray:4 10;animation:network-flow 25s linear infinite}
.hero-network path:nth-child(2){stroke:#bb8f4a;animation-duration:31s;animation-direction:reverse}.hero-network path:nth-child(3){opacity:.55;animation-duration:35s}
.hero-network circle{fill:#bd8c3c;stroke:#f0e7d6;stroke-width:3;transform-box:fill-box;transform-origin:center;animation:network-pulse 3.5s ease-in-out infinite alternate}
.hero-network circle:nth-of-type(even){animation-delay:1.4s;fill:#34766e}
@keyframes network-flow{to{stroke-dashoffset:-280}}@keyframes network-pulse{to{transform:scale(1.8);opacity:.48}}


.learning-image{isolation:isolate}.learning-image img{height:clamp(430px,50vw,720px);object-position:center 44%}
.learning-image::after{background:linear-gradient(180deg,transparent 58%,rgba(8,30,30,.72))}
.learning-image .image-chapter-caption{color:#fff7e9;text-shadow:0 1px 8px rgba(0,0,0,.4)}.learning-image .image-caption-line{background:#e6bb72;opacity:.85}
.platform-field{display:grid;grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr);gap:clamp(2rem,5vw,6rem);align-items:center;background:#e8e7db;border-block:1px solid #c3cbbc}
.platform-field-intro h2,.work-story h2{font-size:clamp(2.8rem,4.7vw,5.8rem);line-height:1.04;letter-spacing:-.075em;font-weight:600;margin:1.1rem 0 1.25rem}
.platform-field-intro h2 em,.work-story h2 em{font-style:normal;color:#946a25}.platform-field-intro p,.work-story-copy p{max-width:47ch;color:#3e5350;font-size:1.05rem;line-height:1.75}
.platform-spiral{position:relative;isolation:isolate;justify-self:end;width:min(100%,680px);aspect-ratio:1;min-width:0;overflow:visible;background:transparent;border:0;box-shadow:none}
.platform-spiral::after{content:"";position:absolute;z-index:0;left:50%;top:50%;width:26%;aspect-ratio:1;transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(circle,rgba(199,153,69,.14),transparent 72%);pointer-events:none}
.spiral-guide{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}.spiral-guide path{fill:none}.spiral-track{stroke:#315f59;stroke-width:2.4;opacity:.28}.spiral-flow{stroke:#aa7524;stroke-width:3;stroke-linecap:round;stroke-dasharray:4 11;opacity:.52;animation:spiral-wire 20s linear infinite}
@keyframes spiral-wire{to{stroke-dashoffset:-120}}
.spiral-logo{position:absolute;z-index:2;width:clamp(43px,5vw,62px);aspect-ratio:1;display:grid;place-items:center;transform:translate(-50%,-50%);background:rgba(250,248,240,.88);border:1px solid rgba(151,121,65,.34);border-radius:15px;box-shadow:0 7px 18px rgba(23,63,64,.12),inset 0 1px rgba(255,255,255,.9);backdrop-filter:blur(7px);will-change:transform,opacity;pointer-events:none}
.spiral-logo img{display:block;width:66%;height:66%;object-fit:contain}

.work-story{display:grid;grid-template-columns:minmax(0,.76fr) minmax(0,1.24fr);align-items:center;gap:clamp(2rem,6vw,7rem);background:#ece9dc}
.work-story-copy{max-width:580px}.work-story-copy .text-link{margin-top:1.7rem;display:inline-flex}.work-story-visual{position:relative;margin:0;min-width:0;overflow:hidden;box-shadow:18px 18px 0 rgba(23,63,64,.12)}
.work-story-visual img{display:block;width:100%;height:clamp(390px,38vw,620px);object-fit:cover;object-position:55% center;transition:transform .8s cubic-bezier(.2,.7,.2,1)}.work-story-visual:hover img{transform:scale(1.035)}
.work-story-visual figcaption{position:absolute;bottom:0;right:0;background:#173f40;color:#f0e7d6;padding:.75rem 1rem;font-size:.64rem;font-weight:700;letter-spacing:.14em}
.motion-headline{opacity:0;transform:translateY(21px);transition:opacity .8s cubic-bezier(.2,.7,.2,1),transform .8s cubic-bezier(.2,.7,.2,1)}.motion-headline.is-visible{opacity:1;transform:none}


.route-arrival main>:first-child{animation:route-settle .58s cubic-bezier(.2,.7,.2,1) both}
@keyframes route-settle{from{opacity:.3;transform:translate3d(0,16px,0)}to{opacity:1;transform:translate3d(0,0,0)}}
@media(max-width:900px){.platform-field,.work-story{grid-template-columns:1fr}.platform-spiral{justify-self:center;width:min(100%,600px)}.work-story-visual{order:-1}.hero-network{width:100%;opacity:.24}}
@media(max-width:600px){.platform-spiral{width:100%}.spiral-logo{width:clamp(31px,9vw,40px);border-radius:10px}.learning-image img{height:400px;object-position:55% center}.learning-image .image-chapter-caption{font-size:.58rem;letter-spacing:.07em}.learning-image .image-caption-line{display:none}.work-story-visual img{height:350px}.work-story-visual{box-shadow:8px 8px 0 rgba(23,63,64,.12)}}
@media(prefers-reduced-motion:reduce){.aurora::before,.hero-network path,.hero-network circle,.motion-headline,.brand-link .wordmark-svg,.brand-link .wordmark-svg .mark-gold,.route-arrival main>:first-child,.spiral-guide path{animation:none!important;transition:none!important}.motion-headline{opacity:1;transform:none}.route-arrival main>:first-child{opacity:1;transform:none}.work-story-visual img{transition:none!important}.work-story-visual:hover img{transform:none}}


.site-header{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);height:92px;gap:clamp(1rem,1.8vw,1.8rem);padding:0 clamp(1.25rem,3.2vw,4rem);background:rgba(247,242,232,.96);border-bottom:1px solid rgba(34,74,68,.14);box-shadow:0 12px 30px rgba(23,63,64,.045)}
.site-header::before{content:"";position:absolute;inset:0 auto auto 0;width:100%;height:2px;background:linear-gradient(90deg,#173f40 0%,#b78639 45%,#d8b26e 60%,#173f40 100%);opacity:.8;pointer-events:none}
.site-header .brand-link{position:relative;justify-self:start;flex:none}
.site-header .wordmark-svg{width:clamp(174px,13vw,198px)}
.site-header .main-nav{justify-self:center;margin-left:0;gap:2px;padding:5px;border:1px solid rgba(23,63,64,.1);border-radius:999px;background:rgba(255,255,255,.58);box-shadow:0 9px 26px rgba(23,63,64,.055)}
.site-header .nav-link{padding:.64rem .7rem;border-radius:999px;color:#244842;font-size:.76rem;font-weight:600;line-height:1.3;transition:color .25s ease,background .25s ease}
.site-header .nav-link::after{left:50%;right:auto;bottom:3px;width:4px;height:4px;border-radius:50%;opacity:0;transform:translateX(-50%);transition:opacity .25s ease}
.site-header .nav-link:hover,.site-header .nav-link[aria-current=page]{background:#214b47;color:#f7f0e4}
.site-header .nav-link:hover::after,.site-header .nav-link[aria-current=page]::after{opacity:1}
.site-header .header-contact{display:inline-flex;align-items:center;justify-self:end;gap:.85rem;flex:none;margin:0;padding:6px 6px 6px 18px;border:1px solid #173f40;border-radius:999px;background:#173f40;color:#f8f3e9;font-size:.78rem;font-weight:700;box-shadow:0 10px 22px rgba(23,63,64,.18);transition:transform .3s var(--ease),background .3s ease,box-shadow .3s ease}
.site-header .header-contact:hover{transform:translateY(-2px);background:#24534e;color:#f8f3e9;box-shadow:0 14px 28px rgba(23,63,64,.23)}
.site-header .header-contact-arrow{display:grid;place-items:center;width:31px;height:31px;padding:0;border-radius:50%;background:#dfb666;color:#163c3b;font-size:1.05rem;font-weight:600;line-height:1;transition:transform .3s var(--ease)}
.site-header .header-contact-arrow::before{content:"";display:block;width:9px;height:9px;border-top:1.5px solid currentColor;border-right:1.5px solid currentColor;transform:translate(-1px,1px)}
.site-header .header-contact:hover .header-contact-arrow{transform:rotate(45deg)}
.site-header .brand-link .wordmark-svg{animation:logo-float 5s ease-in-out infinite;will-change:transform}
.site-header .brand-link .wordmark-svg .mark-gold-first{animation:logo-letter 3.6s ease-in-out infinite}
.site-header .brand-link .wordmark-svg .mark-gold-last{animation:logo-letter 3.6s -1.2s ease-in-out infinite}
.site-header .brand-link .wordmark-svg .mark-dot{transform-box:fill-box;transform-origin:center;animation:logo-dot 3.6s -2s ease-in-out infinite}
@keyframes logo-float{0%,100%{transform:translate3d(0,0,0)}50%{transform:translate3d(0,-3px,0)}}
@keyframes logo-letter{0%,100%{fill:#bd8f40;transform:translateY(0) scale(1)}40%{fill:#e7b965;transform:translateY(-3px) scale(1.035)}65%{fill:#c69a4d;transform:translateY(0) scale(1)}}
@keyframes logo-dot{0%,100%{fill:#bd8f40;transform:translateY(0) scale(1)}45%{fill:#f1c775;transform:translateY(-6px) scale(1.13)}}
@media(max-width:1180px){
  .site-header{display:flex;height:84px}
  .site-header .main-nav{display:none}
  .site-header .menu-button{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:6px;flex:none;width:43px;height:43px;margin-left:0;border:1px solid rgba(23,63,64,.22);border-radius:50%;background:rgba(255,255,255,.62);cursor:pointer;transition:background .25s ease,border-color .25s ease}
  .site-header .menu-button:hover{background:#fff;border-color:#b78639}
  .site-header .menu-button span{display:block;width:20px;height:2px;background:#173f40;transition:transform .25s ease}
  .menu-open .site-header .menu-button span:first-child{transform:translateY(4px) rotate(45deg)}
  .menu-open .site-header .menu-button span:last-child{transform:translateY(-4px) rotate(-45deg)}
  .site-header .header-contact{margin-left:auto}
  .mobile-nav:not([hidden]){display:grid;gap:0;position:absolute;z-index:19;top:84px;left:auto;right:clamp(1.25rem,3.2vw,4rem);width:min(370px,calc(100vw - 2.5rem));max-height:calc(100dvh - 96px);overflow:auto;padding:12px 20px 20px;border:1px solid rgba(23,63,64,.15);border-radius:0 0 20px 20px;background:#faf6ed;box-shadow:0 22px 44px rgba(22,54,50,.16)}
  .mobile-nav a{display:block;padding:.8rem .25rem;border-bottom:1px solid rgba(23,63,64,.12);color:#173f40;font-size:.86rem;font-weight:600}
  .mobile-nav a:hover,.mobile-nav a[aria-current=page]{color:#a97629}
  .mobile-nav a[href="/book/"]{margin-top:12px;padding:.84rem 1rem;border:0;border-radius:999px;background:#173f40;color:#f8f3e9;text-align:center}
  .mobile-nav a[href="/contact/"]{border:0;text-align:center}
}
@media(max-width:600px){
  .site-header{height:76px;padding:0 1.25rem}
  .site-header .wordmark-svg{width:166px}
  .site-header .header-contact{display:none}
  .site-header .menu-button{margin-left:auto}
  .mobile-nav:not([hidden]){top:76px;left:12px;right:12px;width:auto;max-height:calc(100dvh - 88px)}
}
@media(prefers-reduced-motion:reduce){.site-header .brand-link .wordmark-svg,.site-header .brand-link .wordmark-svg .mark-gold,.site-header .menu-button span{animation:none!important;transition:none!important}}


.page-home .intro-strip{padding:0 clamp(1.25rem,6.2vw,7.5rem);gap:0}
.intro-route{position:relative;display:flex;flex-direction:column;justify-content:center;min-height:220px;padding:1.8rem clamp(1.2rem,2.5vw,2.8rem);border-left:1px solid rgba(223,182,102,.55);transition:background .3s ease,transform .3s var(--ease)}
.intro-route:last-child{border-right:1px solid rgba(223,182,102,.55)}
.intro-route:hover{background:#24534e}
.intro-route-index{color:#dfb666;font-size:.66rem;font-weight:700;letter-spacing:.16em}
.intro-route strong{max-width:17ch;margin:.75rem 2rem .35rem 0;font-size:clamp(1.35rem,1.8vw,2rem);font-weight:600;line-height:1.15;letter-spacing:-.045em}
.page-home .intro-strip .intro-route p{max-width:34ch;margin:0;padding:0;border:0;color:#d5ded7;font-size:.82rem;font-weight:400;line-height:1.55}
.intro-route-action{align-self:flex-start;margin-top:1.4rem;padding-bottom:.15rem;border-bottom:1px solid rgba(223,182,102,.8);color:#dfb666;font-size:.7rem;font-weight:700;letter-spacing:.04em;transition:color .25s ease,border-color .25s ease}
.intro-route:hover .intro-route-action{color:#f8e6bf;border-color:#f8e6bf}
.hero-service-link{display:inline-flex;align-items:center;gap:.5rem;min-height:44px;border-bottom:1px solid #9d7736;color:#173f40;font-size:.83rem;font-weight:700;white-space:nowrap}
.hero-service-link::after{content:"";display:block;width:7px;height:7px;border-top:1.5px solid #9d7736;border-right:1.5px solid #9d7736;transform:rotate(45deg);transition:transform .25s var(--ease)}
.hero-service-link:hover::after{transform:translateX(3px) rotate(45deg)}
@media(max-width:900px){.page-home .intro-strip{grid-template-columns:1fr}.intro-route{min-height:0;padding:1.8rem 1rem;border-left:0;border-bottom:1px solid rgba(223,182,102,.45)}.intro-route:last-child{border-right:0;border-bottom:0}}
@media(max-width:600px){.page-home .intro-strip{padding:0 1.25rem}.intro-route strong{margin-right:0}}
