/* Luna demo template. Theme colors come from org.config.js through CSS variables set by render.js. */
:root{--org-navy:#0b1f3a;--org-deep:#050f1f;--org-ink:#10243f;--org-primary:#0f766e;--org-primary2:#14b8a6;--org-accent:#5eead4;--org-hq:#fbbf24;--navy:var(--org-navy);--deep:var(--org-deep);--ink:var(--org-ink);--blue:var(--org-primary);--blue2:var(--org-primary2);--cyan:var(--org-accent);--amber:var(--org-hq);--line:rgba(255,255,255,.16);--glass:color-mix(in srgb,var(--navy) 58%,transparent);--ease:cubic-bezier(.22,1,.36,1);--nav:76px}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:var(--nav)}
html,body{overflow-x:clip;max-width:100%}
body{margin:0;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:16px;line-height:1.55;color:#111a33;background:#fff;-webkit-font-smoothing:antialiased}
a{color:inherit}img{max-width:100%}
.wrap{max-width:1200px;margin:0 auto;padding:0 24px}
h1,h2,h3,h4{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;letter-spacing:-.02em;line-height:1.1;font-weight:700;overflow-wrap:normal;word-break:normal;hyphens:manual}
.eyebrow{font-size:11px;letter-spacing:.24em;font-weight:700;text-transform:uppercase;color:var(--blue)}
.sh{font-size:clamp(28px,4vw,50px);line-height:1.1;margin:.25em 0 .6em;font-weight:700;letter-spacing:-.025em;color:var(--navy)}
.lead{max-width:600px;font-size:18px;line-height:1.7;color:#3a4566}
.ico{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex:0 0 auto}
.prog{position:fixed;left:0;top:0;height:3px;background:linear-gradient(90deg,var(--blue2),var(--cyan));z-index:70;width:0}
/* nav: white, black menu */
.nav{position:fixed;inset:0 0 auto;z-index:60;height:var(--nav);background:#fff;border-bottom:1px solid #e7ebf3;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:0 32px;box-shadow:0 4px 24px color-mix(in srgb,var(--navy) 6%,transparent)}
.brand{display:flex;align-items:center;gap:12px;min-width:0;text-decoration:none;color:#111}
.brand img{height:30px;width:auto;display:block}
.brand a{display:flex;align-items:center;gap:8px;text-decoration:none}
.brand img.brand-wm{height:18px;margin-top:4px}
.credit{font-size:11px;line-height:1.3;color:#5b6378;white-space:nowrap}
.credit a{color:inherit;text-decoration:none}.credit a:hover,.credit a:focus-visible{text-decoration:underline;text-underline-offset:2px}
.nav ul{display:flex;align-items:center;gap:26px;list-style:none;margin:0;padding:0}
.nav ul a{color:#000;text-decoration:none;font-weight:600;font-size:14px;letter-spacing:.02em;white-space:nowrap}
.nav ul a:hover,.nav ul a:focus-visible{color:var(--blue)}
.nav-r{display:flex;align-items:center;gap:10px}
.adtg{height:32px;min-width:44px;padding:0 10px;border:1.5px solid #000;border-radius:6px;background:#fff;color:#000;font:700 12px/1 "Helvetica Neue",Helvetica,Arial,sans-serif;letter-spacing:.08em;cursor:pointer}
.adtg[aria-pressed="true"]{background:#000;color:#fff}
.burger{display:none;width:44px;height:44px;border:0;background:none;cursor:pointer;padding:11px;flex-direction:column;justify-content:center;gap:5px}
.burger span{display:block;height:2px;background:#000;border-radius:2px;transition:.3s}
.nav.open .burger span:nth-child(1){transform:translateY(7px) rotate(45deg)}.nav.open .burger span:nth-child(2){opacity:0}.nav.open .burger span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
@media(max-width:1100px){.nav ul{gap:18px}.nav ul a{font-size:13px}}
@media(max-width:1023px){:root{--nav:64px}.nav{padding:0 12px 0 16px}.brand{flex-direction:column;align-items:flex-start;gap:2px}.brand img{height:24px}.brand img.brand-wm{height:15px}.credit{font-size:10px}
 .burger{display:flex}.nav ul{position:fixed;left:0;right:0;top:var(--nav);flex-direction:column;align-items:stretch;gap:0;background:#fff;border-bottom:1px solid #e7ebf3;padding:8px 0;transform:translateY(-8px);opacity:0;pointer-events:none;transition:.3s var(--ease)}
 .nav.open ul{transform:none;opacity:1;pointer-events:auto}.nav ul a{display:block;padding:14px 24px;font-size:16px}}
@media(max-width:380px){.brand img{height:22px}.brand img.brand-wm{height:14px}.credit{font-size:9.5px}}
/* buttons: less-rounded pills */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:12px 22px;border-radius:10px;border:1px solid rgba(255,255,255,.18);cursor:pointer;text-decoration:none;font:700 15px/1.2 "Helvetica Neue",Helvetica,Arial,sans-serif;background:#000;color:#fff;box-shadow:0 8px 22px rgba(0,0,0,.2);transition:transform .35s var(--ease),box-shadow .35s var(--ease),background .2s}
.btn:hover{transform:translateY(-2px);background:#222;box-shadow:0 14px 30px rgba(0,0,0,.3)}
.btn.ghost{background:rgba(255,255,255,.08);color:#fff;border:1px solid rgba(255,255,255,.35);box-shadow:none;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.btn.ghost:hover{background:rgba(255,255,255,.16)}
.btn.line{background:#000;color:#fff;border:1px solid rgba(255,255,255,.18);box-shadow:0 8px 22px rgba(0,0,0,.2)}
.btn.line:hover{background:#222}
.btn .ico{width:18px;height:18px}
.btns{display:flex;flex-wrap:wrap;gap:12px;margin-top:26px}
/* hero */
.hero{position:relative;min-height:100svh;display:flex;flex-direction:column;overflow:hidden;background:#020a1f;color:#fff}
.hero .bgm{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity 1.8s ease}
.hero .bgm.on{opacity:1}.hero video.bgm.on{animation:cam 9s linear forwards}
@keyframes cam{from{transform:scale(1.02)}to{transform:scale(1.1) translateX(-1.2%)}}
.hero:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(2,10,31,.86) 0%,rgba(2,10,31,.5) 48%,rgba(2,10,31,.1) 100%),linear-gradient(180deg,rgba(2,10,31,.35),transparent 30%,rgba(2,10,31,.75) 92%);pointer-events:none;z-index:1}
.grain{position:absolute;inset:0;z-index:2;opacity:.07;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence baseFrequency='.9'/%3E%3C/filter%3E%3Crect width='120' height='120' filter='url(%23n)'/%3E%3C/svg%3E");animation:gr .6s steps(3) infinite}
@keyframes gr{50%{transform:translate(-3%,2%)}}
.hcopy{position:relative;z-index:3;flex:1;display:flex;align-items:center;padding:calc(var(--nav) + 6vh) 0 36px}.hcopy .wrap{width:100%}
.hero .eyebrow{color:var(--cyan)}
.hero h1{font-size:clamp(38px,5.6vw,80px);line-height:1;margin:.3em 0 .35em;font-weight:700;letter-spacing:-.03em}
.hero h1 span{display:block;overflow:hidden;padding-bottom:.04em}.hero h1 i{display:block;font-style:normal;transform:translateY(110%);animation:up 1.2s var(--ease) forwards}
.hero h1 span:nth-child(2) i{animation-delay:.15s;background:linear-gradient(90deg,color-mix(in srgb,var(--cyan) 55%,#fff),var(--cyan));-webkit-background-clip:text;background-clip:text;color:transparent}.hero h1 span:nth-child(3) i{animation-delay:.3s}
@keyframes up{to{transform:none}}
.hero .lead{color:#e6ecfa;text-shadow:0 2px 18px rgba(0,0,0,.6)}
.showcase{position:relative;z-index:3;padding:0 0 5vh}
.show-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px}
.show-card{display:flex;flex-direction:column;gap:6px;min-width:0;text-decoration:none;color:#fff;padding:16px 14px;border-radius:12px;border:1px solid var(--line);background:color-mix(in srgb,var(--navy) 55%,transparent);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);transition:transform .45s var(--ease),background .45s}
.show-card:hover{transform:translateY(-3px);background:color-mix(in srgb,var(--blue) 70%,transparent)}
.show-card .ico{color:var(--cyan)}.show-card b{font-size:12px;letter-spacing:.16em}.show-card span{font-size:13px;line-height:1.35;color:#e6ecfa}
@media(max-width:1023px){.show-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.show-card:nth-child(n+4){display:none}}
@media(max-width:600px){.hcopy{padding-top:calc(var(--nav) + 28px)}.show-grid{gap:8px}.show-card{padding:12px 10px}.show-card span{display:none}.show-card b{font-size:10.5px;letter-spacing:.1em}.hero .lead{font-size:16px}.btns .btn{flex:1 1 100%}}
/* logo strip */
.logos{padding:34px 0;background:#fff;border-bottom:1px solid #eef1f7}
.logo-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:28px 44px}
.logo-row img{height:44px;width:auto;object-fit:contain;filter:grayscale(1) contrast(1.1);opacity:.75;transition:.4s}.logo-row img:hover{filter:none;opacity:1}
.logo-row small{flex-basis:100%;text-align:center;font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:#6b7590;font-weight:700}
section{padding:100px 0}
@media(max-width:600px){section{padding:72px 0}}
/* solutions */
#solutions{background:#f6f8fd}
.biz{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px}
.card{background:#fff;border:1px solid #e3e7f3;border-radius:14px;padding:24px 22px;min-width:0;box-shadow:0 1px 2px rgba(11,21,64,.04),0 10px 30px rgba(11,21,64,.06);transition:transform .5s var(--ease),box-shadow .5s var(--ease),border-color .4s}
.card:hover{transform:translateY(-4px);box-shadow:0 18px 40px rgba(11,21,64,.12);border-color:color-mix(in srgb,var(--blue) 40%,transparent)}
.card .ico{width:30px;height:30px;color:var(--blue);margin-bottom:12px}
.card h3{margin:0 0 6px;font-size:19px;color:var(--navy)}.card p{margin:0;font-size:14.5px;line-height:1.55;color:#3d4466}
/* stats */
#reach{background:var(--navy);color:#fff;padding:84px 0}
.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;text-align:center}
.stat b{display:block;font-size:clamp(40px,5vw,60px);font-weight:700;line-height:1.1;color:#fff}.stat span{color:#c9d3ee;font-size:15px}
@media(max-width:800px){.stats{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* trust */
#trust{background:#fff}
.trust-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:40px;align-items:center}
.trust-logos{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.trust-logos div{display:flex;align-items:center;justify-content:center;height:96px;border:1px solid #e3e7f3;border-radius:12px;background:#fff;padding:14px}
.trust-logos img{max-height:58px;width:auto;object-fit:contain}
.ticks{list-style:none;padding:0;margin:18px 0 0;display:grid;gap:10px}
.ticks li{display:flex;gap:10px;align-items:flex-start;color:#26304f}.ticks .ico{color:var(--blue);margin-top:2px}
@media(max-width:900px){.trust-grid{grid-template-columns:1fr}}
/* story */
#story{position:relative;background:var(--deep);color:#fff;padding:0}
.story-head{position:relative;z-index:3;padding:88px 0 10px;text-align:left;background:linear-gradient(var(--deep),var(--deep)00)}
.story-head .eyebrow{color:var(--cyan)}.story-head .sh{color:#fff}
.chap{position:relative;min-height:100svh;display:flex;align-items:center;overflow:hidden}
.chap .bg{position:absolute;inset:-8% 0;overflow:hidden;opacity:.95;transition:opacity 1.4s var(--ease);will-change:transform}
#story.narrating .chap:not(.active) .bg{opacity:.35}
.chap:before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,transparent 35%,color-mix(in srgb,var(--deep) 60%,transparent) 100%)}
@media(min-width:1024px){.chap:before{background:linear-gradient(90deg,color-mix(in srgb,var(--deep) 65%,transparent) 0%,color-mix(in srgb,var(--deep) 20%,transparent) 50%,transparent 75%)}}
.chap .wrap{position:relative;z-index:2;width:100%}
.glass{background:var(--glass);backdrop-filter:blur(14px) saturate(1.2);-webkit-backdrop-filter:blur(14px) saturate(1.2);border:1px solid var(--line);border-radius:18px;padding:24px 22px;box-shadow:0 20px 50px rgba(0,0,0,.28);max-width:560px;transform:translateY(24px);opacity:0;transition:transform 1.3s var(--ease),opacity 1.1s var(--ease),border-color .6s}
.chap.in .glass{transform:none;opacity:1}
.chap.active .glass{border-color:color-mix(in srgb,var(--cyan) 70%,transparent);box-shadow:0 0 0 1px color-mix(in srgb,var(--cyan) 25%,transparent),0 24px 60px rgba(0,0,0,.35)}
.year{font-size:clamp(34px,5.4vw,72px);font-weight:700;line-height:.95;letter-spacing:-.03em;color:transparent;-webkit-text-stroke:1.5px var(--cyan);overflow-wrap:normal;word-break:keep-all;hyphens:manual;white-space:nowrap;max-width:100%;opacity:.9}
.chap.active .year{font-size:clamp(34px,5.4vw,72px);font-weight:700;line-height:.95;letter-spacing:-.03em;color:transparent;-webkit-text-stroke:1.5px var(--cyan);overflow-wrap:normal;word-break:keep-all;hyphens:manual;white-space:nowrap;max-width:100%;opacity:.9}
.chap h3{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-weight:700;font-size:clamp(26px,2.6vw,40px);margin:14px 0 0;color:#fff;line-height:1.06;letter-spacing:-.02em;overflow-wrap:normal;word-break:keep-all;hyphens:manual;text-wrap:balance}.chap p{font-size:clamp(16px,1.15vw,18px);line-height:1.6;color:#dfe7f7;margin:14px 0 0;max-width:46ch;text-wrap:pretty}
.chap .pill{display:inline-flex;align-items:center;gap:6px;margin-top:14px;font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:6px 10px;border-radius:6px;border:1px solid var(--line);color:#cfe9ff}
.tl{position:absolute;z-index:3;left:24px;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;gap:10px}
.sp{position:sticky;top:calc(var(--nav) + 12px);z-index:5;display:flex;justify-content:center;padding:0 12px;height:0}
.sp-in{display:flex;align-items:center;gap:12px;padding:6px 16px 6px 6px;border-radius:14px;background:color-mix(in srgb,var(--navy) 70%,transparent);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid var(--line);box-shadow:0 10px 30px rgba(0,0,0,.3);height:56px;max-width:100%}
.sp-btn{flex:0 0 44px;height:44px;border-radius:10px;border:1px solid rgba(255,255,255,.18);cursor:pointer;color:#fff;background:#000;display:flex;align-items:center;justify-content:center}
.sp-btn:hover{background:#222}
.sp-btn .ico{width:18px;height:18px}.sp-meta{min-width:0}.sp-meta b{display:block;font-size:13px;white-space:nowrap}.sp-meta span{font-size:12px;color:#c9d3ee;white-space:nowrap}
/* narration dock (story + tour) */
.dock{position:fixed;z-index:58;left:50%;top:calc(var(--nav) + 10px);transform:translate(-50%,-12px);opacity:0;pointer-events:none;width:min(680px,calc(100vw - 20px));background:color-mix(in srgb,var(--navy) 86%,transparent);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1px solid rgba(255,255,255,.2);border-radius:14px;padding:10px 12px 12px;color:#fff;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 10px;align-items:center;box-shadow:0 14px 40px rgba(0,0,0,.35);transition:opacity .4s,transform .4s var(--ease)}
.dock.on{opacity:1;transform:translate(-50%,0);pointer-events:auto}
.dock-l{min-width:0}.dock-l small{display:block;font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--cyan);font-weight:700}
.dock-cap{margin:2px 0 0;font-size:15px;line-height:1.4;font-weight:600;min-height:1.4em;overflow-wrap:anywhere}
.dock-ctl{display:flex;gap:4px}.dock-ctl button{width:44px;height:44px;border-radius:10px;border:0;background:rgba(255,255,255,.12);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center}
.dock-ctl button:hover,.dock-ctl button:focus-visible{background:rgba(255,255,255,.26)}.dock-ctl .ico{width:18px;height:18px}
.dock-bar{grid-column:1/-1;height:4px;border-radius:2px;background:rgba(255,255,255,.18);cursor:pointer}.dock-bar i{display:block;height:100%;width:0;border-radius:2px;background:linear-gradient(90deg,var(--blue2),var(--cyan))}
@media(max-width:600px){.dock{grid-template-columns:minmax(0,1fr)}.dock-ctl{justify-content:flex-end}.dock-cap{font-size:14px}}
.tour-on{position:relative}.tour-on:after{content:"";position:absolute;inset:6px;border:2px solid var(--cyan);border-radius:16px;pointer-events:none;box-shadow:0 0 0 6px color-mix(in srgb,var(--cyan) 12%,transparent);z-index:4;animation:tg 1s var(--ease)}
@keyframes tg{from{opacity:0;transform:scale(.99)}}
/* globe */
#global{background:#02040d;color:#fff;padding:96px 0 0;overflow:hidden}
#global .eyebrow{color:var(--cyan)}#global .sh{color:#fff}#global .lead{color:#c9d3ee}
.earth{position:relative;height:min(92svh,880px);min-height:520px;margin-top:20px}
.earth canvas{position:absolute;inset:0;width:100%!important;height:100%!important;display:block;cursor:grab;touch-action:pan-y}
.earth canvas:active{cursor:grabbing}
.earth-fb{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.75}
.earth.live .earth-fb{display:none}
.earth-lbl{position:absolute;left:0;top:0;z-index:2;pointer-events:none;font-size:12px;font-weight:700;white-space:nowrap;padding:4px 8px;border-radius:6px;background:rgba(2,4,13,.72);border:1px solid color-mix(in srgb,var(--cyan) 50%,transparent);transform:translate(-50%,-140%);transition:opacity .3s}
.earth-ui{position:absolute;z-index:3;left:24px;top:24px;display:flex;flex-wrap:wrap;gap:6px;max-width:min(520px,calc(100% - 48px))}
.earth-ui button{height:36px;padding:0 12px;border-radius:8px;border:1px solid rgba(255,255,255,.25);background:color-mix(in srgb,var(--navy) 70%,transparent);color:#fff;font:600 12.5px "Helvetica Neue",Helvetica,Arial,sans-serif;cursor:pointer;backdrop-filter:blur(6px)}
.earth-ui button[aria-pressed="true"],.earth-ui button:hover{border-color:var(--cyan);color:var(--cyan)}
.earth-cap{position:absolute;z-index:3;left:50%;bottom:28px;transform:translateX(-50%);max-width:calc(100% - 24px);text-align:center;font-size:14px;padding:8px 14px;border-radius:10px;background:rgba(2,4,13,.78);color:#fff}
.earth-credit{position:absolute;z-index:3;right:10px;bottom:6px;font-size:10px;color:#9aa6c6}
@media(max-width:600px){.earth{min-height:480px;height:78svh}.earth-ui{left:12px;right:12px;top:12px;max-width:none}.earth-ui button{height:32px;padding:0 9px;font-size:11.5px}.earth-cap{bottom:24px;font-size:12.5px}}
/* assistant restyle */
#ea-section{padding:100px 0;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;background:#fff}
.ea-ico svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.ea-btn{border-radius:10px;min-height:44px}
/* ads */
.ads{display:none;padding:56px 0;background:var(--ink);color:#fff}
body.ads-on .ads{display:block}
.ad-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px}
.ad-card{border:1px dashed rgba(255,255,255,.35);border-radius:12px;padding:18px;background:rgba(255,255,255,.06)}
.ad-card small{font-size:10.5px;letter-spacing:.18em;color:var(--amber);font-weight:700}.ad-card b{display:block;font-size:17px;margin:6px 0 4px}.ad-card p{margin:0;font-size:14px;color:#d6dcf2}
/* luna section + cta */
.luna{background:radial-gradient(circle at 70% 20%,#0d3aa6,var(--navy) 65%);color:#fff}
.luna .eyebrow{color:var(--cyan)}.luna .sh{color:#fff}.luna .lead{color:#d6dcf2}
.feat{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px;margin-top:30px}
.feat div{display:flex;gap:12px;align-items:flex-start;padding:18px;border-radius:12px;border:1px solid var(--line);background:rgba(255,255,255,.06);min-width:0}
.feat .ico{color:var(--cyan);margin-top:3px}.feat h3{margin:0 0 4px;font-size:16px}.feat p{margin:0;font-size:14px;color:#d6dcf2;line-height:1.5}
.cta{text-align:center;background:#fff;padding:120px 0}.cta .lead{margin:0 auto}
/* footer */
footer{background:var(--navy);color:#fff;padding:56px 0 34px;font-size:14px}
.f-logo{display:inline-block;background:#fff;border-radius:8px;padding:8px 12px;line-height:0;margin-bottom:26px}.f-logo img{height:30px;width:auto}
.fcols{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;margin-bottom:26px}
.fcols h4{font-size:12px;letter-spacing:.18em;margin:0 0 12px;text-transform:uppercase}.fcols a{display:block;opacity:.85;text-decoration:none;margin:6px 0;overflow-wrap:anywhere}.fcols a:hover{opacity:1;text-decoration:underline}
.f-certs{display:flex;flex-wrap:wrap;gap:10px;margin:8px 0 22px}.f-certs span{display:flex;align-items:center;justify-content:center;background:#fff;border-radius:8px;padding:6px 10px;height:48px}.f-certs img{max-height:34px;width:auto}
.credit-f{font-size:12px;opacity:.8;margin:0 0 6px}.credit-f a{color:inherit;text-decoration:none}.credit-f a:hover{text-decoration:underline}
.fine{font-size:12px;opacity:.65;margin:0}
@media(max-width:760px){.fcols{grid-template-columns:repeat(2,minmax(0,1fr))}}
.reveal{opacity:0;transform:translateY(36px);transition:opacity 1.1s var(--ease),transform 1.1s var(--ease)}.reveal.in{opacity:1;transform:none}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}.hero video.bgm{display:none}.hero h1 i{transform:none}.reveal,.glass{opacity:1!important;transform:none!important}}
/* template additions */
.trust-logos .tb{flex-direction:column;gap:8px;text-align:center;font-weight:700;font-size:14px;line-height:1.3;color:var(--ink)}
.trust-logos .tb .ico{width:28px;height:28px;color:var(--blue)}
.lw-help{display:grid;gap:8px}.lw-help details{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:10px 12px}
.lw-help summary{cursor:pointer;font-weight:650;font-size:13.5px;list-style:none;display:flex;justify-content:space-between;gap:8px}
.lw-help summary::-webkit-details-marker{display:none}.lw-help summary::after{content:"+";color:var(--mute)}.lw-help details[open] summary::after{content:"\2212"}
.lw-help p{margin:8px 0 0;font-size:13px;line-height:1.5;color:var(--mute)}

/* story v2: cinematic layer */
.chap .kb{position:absolute;inset:0;background-size:cover;background-position:center;transform-origin:60% 40%;animation:kb 26s ease-in-out infinite alternate;filter:saturate(1.08) contrast(1.06)}
.chap:nth-child(even) .kb{transform-origin:30% 60%;animation-duration:30s}
@keyframes kb{from{transform:scale(1)}to{transform:scale(1.12) translate3d(-1.5%,-1%,0)}}
.chap .fx{position:absolute;inset:0;z-index:1;pointer-events:none;background:radial-gradient(ellipse 120% 90% at 50% 50%,transparent 45%,rgba(0,0,0,.55) 100%),linear-gradient(180deg,rgba(0,0,0,.55) 0,transparent 14%,transparent 86%,rgba(0,0,0,.6) 100%)}
.chap .fx:after{content:"";position:absolute;inset:-50%;opacity:.09;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");animation:grain 1.2s steps(6) infinite}
@keyframes grain{0%{transform:translate3d(0,0,0)}20%{transform:translate3d(-4%,3%,0)}40%{transform:translate3d(3%,-2%,0)}60%{transform:translate3d(-2%,-4%,0)}80%{transform:translate3d(4%,2%,0)}100%{transform:translate3d(0,0,0)}}
.chap .glass{position:relative;padding:clamp(24px,3vw,40px) clamp(22px,2.8vw,40px);border-radius:22px;max-width:min(560px,100%);border:1px solid transparent;background:linear-gradient(160deg,rgba(14,24,52,.62),rgba(8,14,32,.42)) padding-box,linear-gradient(140deg,rgba(255,255,255,.45),rgba(120,200,255,.12) 40%,rgba(255,255,255,.04) 70%,rgba(120,200,255,.3)) border-box;backdrop-filter:blur(18px) saturate(1.3);-webkit-backdrop-filter:blur(18px) saturate(1.3);box-shadow:0 30px 80px rgba(0,0,0,.45),inset 0 1px 0 rgba(255,255,255,.08)}
.ch-eb{display:flex;align-items:center;gap:10px;font-size:11px;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:#bfe6ff;margin-bottom:14px}
.ch-n{color:var(--cyan)}.ch-dot{width:4px;height:4px;border-radius:50%;background:currentColor;opacity:.6}
.chap .btns{margin-top:22px}
.chap .glass>*{opacity:0;transform:translate3d(0,14px,0);filter:blur(6px);transition:opacity .9s var(--ease),transform .9s var(--ease),filter .9s var(--ease)}
.chap.in .glass>*,.chap.active .glass>*{opacity:1;transform:none;filter:none}
.chap .glass>:nth-child(2){transition-delay:.12s}.chap .glass>:nth-child(3){transition-delay:.24s}.chap .glass>:nth-child(4){transition-delay:.36s}.chap .glass>:nth-child(5){transition-delay:.48s}
.floats{position:absolute;inset:0;z-index:2;pointer-events:none}
.fl{position:absolute;opacity:0;transition:opacity 1.2s var(--ease) var(--d)}
.chap.in .fl{opacity:1}
.fl-in{display:flex;align-items:center;gap:10px;padding:10px 14px 10px 10px;border-radius:14px;color:#fff;background:linear-gradient(160deg,rgba(255,255,255,.16),rgba(255,255,255,.05));border:1px solid rgba(255,255,255,.22);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);box-shadow:0 18px 40px rgba(0,0,0,.35);animation:flt 7s ease-in-out infinite alternate;animation-delay:calc(var(--d) * -1);will-change:transform}
.fl-in .ico{width:30px;height:30px;padding:7px;border-radius:9px;background:color-mix(in srgb,var(--cyan) 28%,transparent);color:#dff6ff;flex:0 0 auto}
.fl-t{display:flex;flex-direction:column;line-height:1.2}.fl-t b{font-size:14px;font-weight:700;white-space:nowrap}.fl-t small{font-size:11px;color:#c7d5ee;letter-spacing:.04em;white-space:nowrap}
.wv{display:flex;align-items:center;gap:3px;height:22px}.wv i{width:3px;height:100%;border-radius:2px;background:var(--cyan);animation:wv 1.1s ease-in-out infinite;transform-origin:center}
.wv i:nth-child(2){animation-delay:-.2s}.wv i:nth-child(3){animation-delay:-.5s}.wv i:nth-child(4){animation-delay:-.1s}.wv i:nth-child(5){animation-delay:-.7s}.wv i:nth-child(6){animation-delay:-.3s}.wv i:nth-child(7){animation-delay:-.6s}
@keyframes wv{0%,100%{transform:scaleY(.25)}50%{transform:scaleY(1)}}
@keyframes flt{from{transform:translate3d(0,0,0) rotate(-1deg)}to{transform:translate3d(10px,-18px,0) rotate(1.2deg)}}
.fl1{right:8%;top:18%}.fl2{right:26%;top:42%;filter:blur(.6px);transform:scale(.92)}.fl3{right:10%;top:64%}.fl4{right:32%;top:76%;filter:blur(1.2px);transform:scale(.85);opacity:.85}
.chap.in .fl4{opacity:.8}
.floats{transform:translate3d(var(--mx,0),var(--my,0),0);transition:transform .8s var(--ease)}
@media(max-width:1023px){.fl1{right:5%;top:auto;bottom:21%}.fl2{left:5%;right:auto;top:auto;bottom:8%}.fl3,.fl4{display:none}.fl2{filter:none;transform:scale(.9)}}
@media(max-width:480px){.fl-in{padding:7px 10px 7px 7px}.fl-in .ico{width:24px;height:24px;padding:5px}.fl-t b{font-size:12px}.fl-t small{display:none}.chap .glass{padding:22px 20px}}
@media(prefers-reduced-motion:reduce){.chap .kb,.chap .fx:after,.fl-in,.wv i{animation:none}.chap .glass>*{transition:none;filter:none}.floats{transition:none}}

/* helvetica simplification */
button,input,select,textarea{font-family:inherit}
.chap .year{display:none}
.chap h3{font-size:clamp(26px,2.8vw,40px);line-height:1.1;letter-spacing:-.02em;margin-top:6px}
.ch-eb{font-weight:600;letter-spacing:.16em}
.fl-in,.fl-t b{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif}

/* luna hero clips */
.hero .bgm{object-position:center center}
@media(max-width:1023px){.hero .bgm{object-position:var(--pos,70% center)}.hero:after{background:linear-gradient(180deg,rgba(2,10,31,.55) 0%,rgba(2,10,31,.35) 30%,rgba(2,10,31,.8) 62%,rgba(2,10,31,.92) 100%)}}

/* jumping arcs fx */
.chap .kb canvas.fx-arcs{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;mix-blend-mode:screen;-webkit-mask-image:linear-gradient(90deg,rgba(0,0,0,.35) 0%,rgba(0,0,0,.55) 30%,#000 50%);mask-image:linear-gradient(90deg,rgba(0,0,0,.35) 0%,rgba(0,0,0,.55) 30%,#000 50%)}
@media(max-width:1023px){.chap .kb canvas.fx-arcs{-webkit-mask-image:none;mask-image:none;opacity:.85}}
.chap:has(canvas.fx-arcs) .kb{filter:saturate(1.05) contrast(1.06) brightness(.82)}
.chap .kb canvas.fx-arcs{filter:brightness(1.25)}
/* rotating hero stories (smartstart.us style) */
.hs{display:grid;max-width:640px}
.hs-item{grid-area:1/1;visibility:hidden;opacity:0;transition:opacity .35s ease,visibility 0s .35s}
.hs-item.on{visibility:visible;opacity:1;transition:opacity .26s ease}
.hs-eb{display:flex;align-items:center;gap:10px}
.hs-dot{width:11px;height:11px;border-radius:50%;background:var(--cyan);box-shadow:0 0 0 4px color-mix(in srgb,var(--cyan) 22%,transparent);flex:0 0 auto;animation:hsPulse 2s ease-out infinite}
@keyframes hsPulse{0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--cyan) 50%,transparent)}70%{box-shadow:0 0 0 9px transparent}100%{box-shadow:0 0 0 0 transparent}}
.hs-h{font-size:clamp(36px,5vw,72px);line-height:1.04;letter-spacing:-.035em;font-weight:700;margin:.3em 0 .3em;color:#fff}
.hs-l{display:block;white-space:nowrap}
.hs-l i{display:inline-block;font-style:normal;opacity:0}
.hs-acc em{font-style:normal;color:var(--cyan)}
.hs-caret{display:inline-block;width:.06em;height:.82em;margin-left:.06em;background:var(--cyan);vertical-align:-.04em;animation:hsBlink .9s steps(1) infinite}
@keyframes hsBlink{50%{opacity:0}}
.hs-item.on .hs-eb{animation:hsEb .58s cubic-bezier(.22,1,.36,1) both}
.hs-item.on .hs-lead{animation:hsLede .68s cubic-bezier(.22,1,.36,1) .22s both}
.hs-item.on[data-anim=typewriter] .hs-l i{animation:hsRise .56s cubic-bezier(.16,1,.3,1) calc(var(--w)*70ms + 80ms) both}
.hs-item.on[data-anim=fade-up] .hs-l i{animation:hsRise .56s cubic-bezier(.16,1,.3,1) calc(var(--w)*70ms + 80ms) both}
.hs-item.on[data-anim=slide-accent] .hs-l i{animation:hsSlide .52s cubic-bezier(.22,1,.36,1) calc(var(--w)*70ms + 80ms) both}
.hs-item.on[data-anim=blur-in] .hs-l i{animation:hsFocus .62s cubic-bezier(.22,1,.36,1) calc(var(--w)*70ms + 80ms) both}
@keyframes hsEb{from{letter-spacing:.08em;opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@keyframes hsLede{from{filter:blur(6px);opacity:0;transform:translateY(12px)}to{filter:none;opacity:1;transform:none}}
@keyframes hsRise{from{filter:blur(4px);opacity:0;transform:translateY(12px) scale(.985)}to{filter:none;opacity:1;transform:none}}
@keyframes hsSlide{from{filter:blur(3px);opacity:0;transform:translateX(-.16em)}to{filter:none;opacity:1;transform:none}}
@keyframes hsFocus{from{filter:blur(8px);opacity:0;transform:translateX(-7px)}to{filter:none;opacity:1;transform:none}}
.hgreet{position:absolute;inset:0;z-index:1;pointer-events:none;overflow:hidden}
.hg{position:absolute;right:calc(6% + (var(--k) * 37 % 22) * 1%);bottom:-40px;padding:8px 14px;border-radius:16px 16px 16px 4px;font-size:14px;font-weight:600;color:#fff;background:linear-gradient(160deg,rgba(255,255,255,.2),rgba(255,255,255,.06));border:1px solid rgba(255,255,255,.28);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);opacity:0;animation:hgRise 16s linear calc(var(--k) * 2s) infinite}
@keyframes hgRise{0%{opacity:0;transform:translateY(0) scale(.94)}8%{opacity:.95}46%{opacity:.9;transform:translateY(-46vh) scale(1)}62%,100%{opacity:0;transform:translateY(-62vh) scale(1.02);filter:blur(2px)}}
@media(max-width:600px){.hs-h{font-size:clamp(32px,10.4vw,44px)}.hg{font-size:12px;padding:6px 10px}.hg:nth-child(n+5){display:none}}
@media(prefers-reduced-motion:reduce){.hs-caret{display:none}.hs-l i{opacity:1}.hgreet{display:none}}
.hero h1.hs-h{font-size:clamp(36px,5vw,72px);line-height:1.04;letter-spacing:-.035em;margin:.3em 0 .3em}
.hero .hs-h span.hs-l{display:block;overflow:visible;padding-bottom:.02em}
.hero .hs-h .hs-l i{display:inline-block;transform:none;animation:none}
@media(max-width:600px){.hero h1.hs-h{font-size:clamp(32px,10.4vw,44px)}}

.hero .hs-item.on[data-anim=typewriter] .hs-l i{animation:hsRise .56s cubic-bezier(.16,1,.3,1) calc(var(--w)*70ms + 80ms) both}
.hero .hs-item.on[data-anim=fade-up] .hs-l i{animation:hsRise .56s cubic-bezier(.16,1,.3,1) calc(var(--w)*70ms + 80ms) both}
.hero .hs-item.on[data-anim=slide-accent] .hs-l i{animation:hsSlide .52s cubic-bezier(.22,1,.36,1) calc(var(--w)*70ms + 80ms) both}
.hero .hs-item.on[data-anim=blur-in] .hs-l i{animation:hsFocus .62s cubic-bezier(.22,1,.36,1) calc(var(--w)*70ms + 80ms) both}
@media(prefers-reduced-motion:reduce){.hero .hs-item .hs-l i{animation:none!important;opacity:1}}
.hero .hs-h .hs-l i{background:none;color:#fff;-webkit-text-fill-color:#fff}
.hg{right:8%;left:auto}.hg1{right:22%}.hg2{right:4%}.hg3{right:30%}.hg4{right:14%}.hg5{right:26%}.hg6{right:6%}.hg7{right:18%}
/* blinking LEDs fx */
.chap .kb canvas.fx-blink{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;mix-blend-mode:screen;-webkit-mask-image:linear-gradient(90deg,rgba(0,0,0,.3) 0%,rgba(0,0,0,.5) 30%,#000 50%);mask-image:linear-gradient(90deg,rgba(0,0,0,.3) 0%,rgba(0,0,0,.5) 30%,#000 50%)}
@media(max-width:1023px){.chap .kb canvas.fx-blink{-webkit-mask-image:none;mask-image:none;opacity:.85}}
/* light fx layer */
.chap .kb canvas.fx-light{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;mix-blend-mode:screen;-webkit-mask-image:linear-gradient(90deg,rgba(0,0,0,.35) 0%,rgba(0,0,0,.55) 30%,#000 50%);mask-image:linear-gradient(90deg,rgba(0,0,0,.35) 0%,rgba(0,0,0,.55) 30%,#000 50%)}
@media(max-width:1023px){.chap .kb canvas.fx-light{-webkit-mask-image:none;mask-image:none;opacity:.85}}
/* stats */
#reach{position:relative;overflow:hidden}
#reach:before{content:"";position:absolute;top:0;bottom:0;width:40%;left:-40%;background:linear-gradient(100deg,transparent,rgba(120,200,255,.08),transparent);animation:reachSweep 9s ease-in-out infinite}
@keyframes reachSweep{to{left:110%}}
.stat b{font-variant-numeric:tabular-nums}
.stat b .cs{display:inline-block;opacity:0;transform:translateX(-14px);filter:blur(4px);transition:all .6s cubic-bezier(.22,1,.36,1)}
.stat b.done .cs{opacity:1;transform:none;filter:none}
/* offer grid */
#services .biz{grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}
@media(max-width:1100px){#services .biz{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){#services .biz{grid-template-columns:minmax(0,1fr)}}
#services .card,.trust-logos .tb{position:relative;overflow:hidden;isolation:isolate;transition:transform .6s cubic-bezier(.22,1,.36,1),box-shadow .6s cubic-bezier(.22,1,.36,1),border-color .4s,opacity 1s cubic-bezier(.22,1,.36,1),filter 1s cubic-bezier(.22,1,.36,1)}
#services .card.reveal{filter:blur(6px);transition-delay:calc(var(--i) * 70ms)}
#services .card.reveal.in{filter:none}
#services .card.in:hover{transition-delay:0s}
#services .card:before,.trust-logos .tb:before{content:"";position:absolute;inset:0;z-index:-1;opacity:0;transition:opacity .4s;background:radial-gradient(260px circle at var(--mx,50%) var(--my,0),color-mix(in srgb,var(--blue) 14%,transparent),transparent 70%)}
#services .card:hover:before,.trust-logos .tb:hover:before{opacity:1}
#services .card:after,.trust-logos .tb:after{content:"";position:absolute;top:-50%;bottom:-50%;width:40%;left:-60%;z-index:-1;transform:rotate(18deg);background:linear-gradient(90deg,transparent,rgba(255,255,255,.7),transparent);transition:left .8s cubic-bezier(.22,1,.36,1)}
#services .card:hover:after,.trust-logos .tb:hover:after{left:130%}
#services .card:hover{transform:translateY(-6px)}
.card-ico{display:inline-flex;width:44px;height:44px;border-radius:12px;align-items:center;justify-content:center;margin-bottom:14px;background:color-mix(in srgb,var(--blue) 9%,#fff);transition:transform .5s cubic-bezier(.22,1,.36,1)}
.card-ico .ico{margin:0!important;width:22px!important;height:22px!important}
#services .card:hover .card-ico{transform:translateY(-2px) rotate(-6deg) scale(1.08)}
.card-tag{display:inline-block;margin-bottom:8px;font-size:10.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--blue);background:color-mix(in srgb,var(--blue) 8%,transparent);border-radius:999px;padding:3px 9px}
.motif{display:block;width:100%;height:18px;margin-top:16px;fill:none;stroke:color-mix(in srgb,var(--blue) 35%,transparent);stroke-width:1.5}
.motif circle{fill:#fff}.motif .dot{fill:var(--blue);stroke:none;filter:drop-shadow(0 0 4px var(--blue));animation:motif 3.2s cubic-bezier(.45,0,.55,1) infinite}
@keyframes motif{0%{transform:translateX(0)}100%{transform:translateX(184px)}}
.trust-logos .tb{transition-delay:0s}.trust-logos .tb:hover{transform:translateY(-4px);box-shadow:0 16px 36px rgba(11,21,64,.1)}
.trust-logos.reveal .tb{opacity:0;transform:translateY(14px)}
.trust-logos.reveal.in .tb{opacity:1;transform:none;transition-delay:calc(var(--i) * 80ms)}
.trust-logos.reveal.in .tb:hover{transform:translateY(-4px);transition-delay:0s}
.ticks.reveal li{opacity:0;transform:translateX(-10px);transition:all .7s cubic-bezier(.22,1,.36,1)}
.ticks.reveal.in li{opacity:1;transform:none}.ticks.reveal.in li:nth-child(2){transition-delay:.1s}.ticks.reveal.in li:nth-child(3){transition-delay:.2s}.ticks.reveal.in li:nth-child(4){transition-delay:.3s}
.reveal{transition-timing-function:cubic-bezier(.22,1,.36,1)}
@media(prefers-reduced-motion:reduce){#reach:before,.motif .dot{animation:none}#services .card.reveal{filter:none}.trust-logos .tb,.ticks li{opacity:1!important;transform:none!important}}
.stat b span{font-size:inherit;color:inherit;font-weight:inherit}
.card-tag{display:table}.motif{height:auto;margin-top:auto;padding-top:14px}#services .card{display:flex;flex-direction:column}
.card .card-tag{align-self:flex-start;width:auto;max-width:max-content}

/* hero video: one continuous slow drift on the container, no per clip reset */
.hero video.bgm.on{animation:none}
.hero .bgm{transition:opacity 1.2s cubic-bezier(.45,0,.55,1)}
.hero{--kbz:1}
.hero>.bgm,.hero .bgm{transform-origin:65% 45%;animation:heroDrift 40s ease-in-out infinite alternate!important}
@keyframes heroDrift{from{transform:scale(1.02)}to{transform:scale(1.08) translate3d(-1%,-.5%,0)}}
@media(prefers-reduced-motion:reduce){.hero .bgm{animation:none!important}}
