:root {
  --blue-950:#142f4d;
  --blue-900:#19395f;
  --blue-800:#1d416d;
  --blue-700:#244f88;
  --blue-600:#2d63a4;
  --sky:#5aa9dc;
  --gold:#e8bf60;
  --green:#3e784a;
  --ink:#142f4d;
  --text:#25394d;
  --muted:#506173;
  --line:rgba(20,47,77,.14);
  --soft:#edf4fc;
  --cream:#fbf8ef;
  --trim:#b28a3e;
  --violet:#7754b0;
  --violet-soft:#f4effa;
  --white:#fff;
  --shadow:0 24px 70px rgba(22,71,150,.13);
  --radius:28px;
  --max:1240px;
  --section-space:104px;
  --section-space-mobile:76px;
  --ease:cubic-bezier(.2,.8,.2,1);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:"Nunito Sans",system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--text);background:#fff;line-height:1.62;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;font-kerning:normal;font-optical-sizing:auto}
a{color:inherit;text-decoration:none}img{display:block;max-width:100%}button{font:inherit}.container{width:min(calc(100% - 44px),var(--max));margin:0 auto}.section{padding:var(--section-space) 0;scroll-margin-top:92px}.soft{background:linear-gradient(180deg,#f7fbff 0%,#eef7ff 100%)}
.site-header{position:sticky;top:0;z-index:40;background:rgba(255,255,255,.92);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border-bottom:1px solid var(--line);transition:box-shadow .25s var(--ease),background .25s var(--ease)}.site-header.scrolled{background:rgba(255,255,255,.96);box-shadow:0 10px 30px rgba(9,39,93,.08)}.nav-row{min-height:84px;display:flex;align-items:center;justify-content:space-between;gap:28px}.site-logo{width:150px;height:auto}.main-nav{display:flex;align-items:center;gap:24px;font-weight:800;color:var(--ink);font-size:.94rem}.main-nav a:not(.nav-cta){position:relative;padding:8px 0;transition:color .2s var(--ease)}.main-nav a:not(.nav-cta)::after{content:"";position:absolute;left:0;right:0;bottom:1px;height:2px;border-radius:999px;background:var(--blue-600);transform:scaleX(0);transform-origin:center;transition:transform .22s var(--ease)}.main-nav a:not(.nav-cta):hover{color:var(--blue-700)}.main-nav a:not(.nav-cta):hover::after{transform:scaleX(1)}.nav-cta{background:var(--blue-900);color:#fff;padding:13px 20px;border-radius:999px;box-shadow:0 10px 22px rgba(8,36,93,.13);transition:transform .2s var(--ease),box-shadow .2s var(--ease),background .2s var(--ease)}.nav-cta:hover{transform:translateY(-1px);background:var(--blue-800);box-shadow:0 14px 28px rgba(8,36,93,.18)}.menu-toggle,.mobile-nav{display:none}.menu-toggle{width:42px;height:42px;border:0;background:transparent;padding:9px;align-items:center;justify-content:center;flex-direction:column;gap:5px}.menu-toggle span{display:block;width:22px;height:2px;border-radius:999px;background:var(--ink);transition:transform .2s var(--ease),opacity .2s var(--ease)}.menu-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}.menu-toggle[aria-expanded="true"] span:nth-child(2){opacity:0}.menu-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
.hero{position:relative;overflow:hidden;color:#fff;background:linear-gradient(104deg,#07348f 0%,#0746bd 50%,#0a58e7 100%)}
.hero::before{content:"";position:absolute;inset:0;z-index:0;background:radial-gradient(circle at 13% 20%,rgba(255,255,255,.04),transparent 30%);pointer-events:none}
.hero-grid{min-height:clamp(660px,49vw,790px);width:min(calc(100% - 56px),1360px);margin:0 auto;display:flex;align-items:center;padding:40px 0 58px}
.hero-copy{position:relative;z-index:3;width:min(40vw,590px);max-width:590px}
.hero h1,.section-head h2,.world-copy h2,.purpose h2,.contact-inner h2{margin:0;font-weight:900;letter-spacing:-.003em;line-height:1.06;color:var(--ink)}
.hero h1{font-size:clamp(3.15rem,3.55vw,4rem);color:#fff;max-width:590px;letter-spacing:-.003em;line-height:1.04}
.hero h1 .hero-line-two{display:inline-block;color:#fff;white-space:nowrap}
.hero h1 em{font-style:normal;color:var(--gold)}
.hero-lede{max-width:555px;margin:26px 0 0;color:rgba(255,255,255,.90);font-size:1.08rem;line-height:1.65}
.hero-actions{display:flex;gap:12px;flex-wrap:nowrap;margin-top:30px}
.hero-actions .btn{padding:15px 20px;font-size:.96rem;white-space:nowrap}
.btn{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:16px 24px;font-weight:900;transition:transform .2s var(--ease),box-shadow .2s var(--ease),background .2s}
.btn:hover{transform:translateY(-2px)}
.btn-primary{background:#fff;color:var(--blue-950);box-shadow:0 16px 32px rgba(0,0,0,.14)}
.btn-secondary{color:#fff;border:1px solid rgba(255,255,255,.30);background:rgba(255,255,255,.06)}
.hero-art{position:absolute;z-index:1;inset:0;margin:0;pointer-events:none;overflow:hidden}
.hero-art::before{display:none}
.hero-image{position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:cover;object-position:50% 50%;filter:none;-webkit-mask-image:none;mask-image:none}
.hero-fade{position:absolute;z-index:5;left:0;right:0;bottom:-1px;height:42px;background:linear-gradient(180deg,transparent 0%,rgba(255,255,255,.22) 74%,#fff 100%)}
.eyebrow{margin:0 0 14px;color:var(--blue-600);font-size:.79rem;font-weight:900;letter-spacing:.13em;text-transform:uppercase}.trailer-eyebrow{margin-bottom:16px;color:#73839d;font-size:.72rem;letter-spacing:.11em}.dark .eyebrow{color:var(--gold)}.section-head{margin-bottom:42px}.section-head h2,.world-copy h2,.purpose h2,.contact-inner h2{font-size:clamp(2.9rem,5vw,5rem)}.section-head p,.world-copy p,.purpose-copy p,.contact-inner p{color:var(--muted);font-size:1.05rem}.section-head h2 + p{margin-top:22px}.world-copy h2 + .lead{margin-top:24px}.purpose-copy h2 + p{margin-top:22px}.purpose-tagline{margin:22px 0 24px!important;color:var(--ink)!important;font-size:1.5rem!important;font-weight:800;line-height:1.35;letter-spacing:-.006em}.contact-inner h2 + p{margin-top:24px}.section-head.centered{text-align:center}.section-head.narrow{max-width:780px;margin-left:auto;margin-right:auto}.section-head.narrow>p:last-child{max-width:630px;margin:22px auto 0}.section-head.split{display:grid;grid-template-columns:1.15fr .85fr;align-items:end;gap:70px}.section-head.split>p{margin:0 0 6px}
.trailer{padding-top:70px}.trailer-card{position:relative;width:100%;aspect-ratio:16/9;border:0;border-radius:30px;overflow:hidden;padding:0;cursor:pointer;background:#071a45;box-shadow:var(--shadow);isolation:isolate}.trailer-card img{width:100%;height:100%;object-fit:cover;object-position:65% 48%;transform:scale(1.04);transition:transform .6s var(--ease)}.trailer-card:hover img{transform:scale(1.075)}.trailer-overlay{position:absolute;inset:0;background:linear-gradient(180deg,rgba(4,23,65,.08),rgba(4,23,65,.35))}.play-button{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:88px;height:88px;border-radius:50%;display:grid;place-items:center;padding-left:6px;color:var(--blue-950);background:#fff;font-size:1.45rem;box-shadow:0 18px 50px rgba(0,0,0,.25)}.trailer-label{position:absolute;left:26px;bottom:24px;background:rgba(5,31,82,.72);backdrop-filter:blur(10px);color:#fff;border:1px solid rgba(255,255,255,.18);border-radius:999px;padding:10px 16px;font-weight:800;font-size:.85rem}.trailer-card iframe{position:absolute;inset:0;width:100%;height:100%;border:0;background:#000}.trailer-card.is-playing{cursor:default}.trailer-card.is-playing>img,.trailer-card.is-playing>.trailer-overlay,.trailer-card.is-playing>.play-button,.trailer-card.is-playing>.trailer-label{display:none}
.world-copy{max-width:840px;margin-bottom:48px}.world-copy .lead{font-size:1.32rem;color:var(--text);font-weight:700;max-width:830px;margin:24px 0 12px;line-height:1.5}.world-copy>p:last-child{margin:0}.world-gallery{display:grid;grid-template-columns:1.18fr .88fr .88fr;gap:20px}.world-shot{margin:0;position:relative;overflow:hidden;border-radius:26px;min-height:440px;background:var(--blue-900);box-shadow:var(--shadow)}.world-shot img{position:absolute;width:155%;height:100%;max-width:none;object-fit:cover}.shot-world img{width:180%;left:-65%;object-position:80% 44%}.shot-adventure img{width:190%;left:-90%;object-position:72% 58%}.shot-play img{width:180%;left:-76%;object-position:88% 56%}.world-shot::after{content:"";position:absolute;inset:45% 0 0;background:linear-gradient(180deg,transparent,rgba(5,30,75,.78))}.world-shot figcaption{position:absolute;z-index:3;left:24px;right:24px;bottom:22px;color:#fff}.world-shot strong{display:block;font-size:1.4rem;font-weight:900}.world-shot span{display:block;color:rgba(255,255,255,.82);margin-top:3px}.how{background:#fff}.how-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.how-step{border:1px solid var(--line);border-radius:26px;padding:22px;background:#fff;box-shadow:0 14px 42px rgba(20,59,120,.08)}.step-number{font-size:.75rem;font-weight:900;color:var(--blue-600);letter-spacing:.12em}.step-visual{height:190px;margin:16px 0 22px;border-radius:20px;overflow:hidden;background:linear-gradient(145deg,#f0f7ff,#dff0ff);position:relative;display:grid;place-items:center}.how-step h3{font-size:1.65rem;color:var(--ink);margin:0 0 8px;font-weight:900;letter-spacing:0;line-height:1.08}.how-step p{margin:0;color:var(--muted)}.mini-card{width:116px;height:146px;border-radius:8px;background:linear-gradient(160deg,#1365c8,#102d76);box-shadow:0 18px 26px rgba(11,49,125,.25);transform:rotate(-7deg);display:grid;place-items:center;border:5px solid #fff}.mini-card img{width:92%;filter:drop-shadow(0 5px 4px rgba(0,0,0,.16))}.give-visual{background:linear-gradient(180deg,#fff6e5,#fcebd0)}.hand-card{width:110px;height:142px;border-radius:9px;background:linear-gradient(145deg,#0b4fb4,#2e83ed);box-shadow:0 16px 26px rgba(40,77,130,.18);position:relative}.hand-card::before,.hand-card::after{content:"";position:absolute;width:72px;height:34px;background:#dca47f;border-radius:999px;bottom:-13px}.hand-card::before{left:-42px;transform:rotate(24deg)}.hand-card::after{right:-42px;transform:rotate(-24deg)}.hand-card span{position:absolute;inset:18px;background:rgba(255,255,255,.88);border-radius:7px}.scan-visual{background:linear-gradient(145deg,#f0f8ff,#e7f2ff)}.qr-grid{width:110px;height:110px;background:conic-gradient(from 90deg at 25% 25%,var(--ink) 25%,transparent 0 50%,var(--ink) 0 75%,transparent 0) 0 0/28px 28px;border:10px solid #fff;box-shadow:0 12px 28px rgba(15,42,83,.12)}.scan-line{position:absolute;left:44px;right:44px;top:50%;height:3px;background:var(--green);box-shadow:0 0 15px rgba(123,216,53,.9)}.enter-visual img{width:190%;max-width:none;height:100%;object-fit:cover;object-position:84% 54%}
.why{background:linear-gradient(180deg,#fff 0%,#f8fbff 100%)}.equation{display:grid;grid-template-columns:1fr 56px 1fr 56px 1.2fr;align-items:center;gap:0;margin-top:10px}.equation-card{min-height:230px;border-radius:26px;padding:28px;background:#fff;border:1px solid var(--line);box-shadow:0 15px 45px rgba(28,75,145,.08);display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center}.equation-icon{width:52px;height:52px;border-radius:17px;background:var(--soft);display:grid;place-items:center;color:var(--blue-600);font-weight:900;margin-bottom:18px}.equation-card strong{font-size:1.42rem;color:var(--ink);font-weight:900;letter-spacing:0;line-height:1.12}.equation-card small{display:block;color:var(--muted);font-size:.9rem;margin-top:8px}.operator{text-align:center;font-size:2.4rem;color:var(--blue-600);font-weight:900}.audience-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:24px}.audience-card{padding:28px;border-radius:24px;background:var(--cream);border-bottom:5px solid #ff9a54}.audience-card:nth-child(2){background:#edf9ff;border-bottom-color:var(--sky)}.audience-card:nth-child(3){background:#eff9e9;border-bottom-color:var(--green)}.audience-card span{font-size:.78rem;text-transform:uppercase;letter-spacing:.09em;font-weight:900;color:var(--muted)}.audience-card h3{font-size:1.45rem;line-height:1.18;color:var(--ink);margin:10px 0 0;font-weight:900;letter-spacing:0}
.dark{color:#fff;background:radial-gradient(circle at 15% 25%,rgba(80,201,255,.14),transparent 28%),radial-gradient(circle at 88% 18%,rgba(119,84,176,.13),transparent 24%),linear-gradient(130deg,var(--blue-950),var(--blue-900) 60%,var(--blue-700))}.dark .section-head h2,.dark .section-head p{color:#fff}.dark .section-head p{color:rgba(255,255,255,.75)}.fit-flow{display:grid;grid-template-columns:1fr 72px 1fr 72px 1.06fr;align-items:stretch}.flow-panel{border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.075);border-radius:26px;padding:28px;backdrop-filter:blur(10px)}.flow-panel.highlight{background:#fff;color:var(--ink)}.flow-label{text-transform:uppercase;letter-spacing:.1em;font-size:.75rem;font-weight:900;color:var(--sky)}.highlight .flow-label{color:var(--blue-600)}.flow-panel h3{font-size:1.55rem;line-height:1.18;margin:12px 0 18px;font-weight:900;letter-spacing:0}.flow-panel ul{padding-left:20px;margin:0;color:rgba(255,255,255,.8)}.flow-panel li+li{margin-top:8px}.flow-panel.highlight p{color:var(--muted);margin:18px 0 0}.flow-panel.highlight strong{color:var(--ink)}.flow-operator{display:grid;place-items:center;font-size:2rem;font-weight:900;color:var(--gold)}.fit-note{text-align:center;color:rgba(255,255,255,.66);margin:24px 0 0;font-size:.9rem}
.return{background:#fff}.lifecycle{display:grid;grid-template-columns:1fr 34px 1fr 34px 1fr 34px 1fr 34px 1fr;align-items:center;margin-top:16px}.life-step{min-height:150px;border-top:4px solid var(--sky);padding:18px 8px 8px}.life-step:nth-of-type(5){border-top-color:var(--green)}.life-step span{display:block;color:var(--blue-600);font-size:.72rem;font-weight:900;letter-spacing:.1em}.life-step strong{display:block;color:var(--ink);font-size:1.25rem;margin-top:10px;font-weight:900;letter-spacing:0;line-height:1.15}.life-step small{display:block;color:var(--muted);margin-top:5px}.lifecycle i{text-align:center;color:#a8b3c3;font-style:normal;font-size:1.4rem}
.purpose{background:linear-gradient(180deg,#f4faff,#fff)}.purpose-panel{position:relative;overflow:hidden;border-radius:34px;min-height:430px;padding:62px;display:grid;grid-template-columns:1.15fr .85fr;align-items:center;background:#fff;border:1px solid var(--line);box-shadow:var(--shadow)}.purpose-copy{position:relative;z-index:2}.purpose-copy h2{max-width:670px}.purpose-copy p{max-width:660px}.purpose-art{position:absolute;right:-10%;top:-20%;width:53%;height:145%;border-radius:50%;background:radial-gradient(circle at 40% 35%,#fff 0 12%,transparent 30%),linear-gradient(145deg,#d7f3ff,#91d9ff 48%,#53bdff 100%)}.cloud{position:absolute;background:rgba(255,255,255,.65);border-radius:999px;filter:blur(4px)}.cloud-a{width:220px;height:80px;left:20%;top:32%}.cloud-b{width:160px;height:58px;left:47%;top:53%}.star{position:absolute;color:#fff;text-shadow:0 0 20px rgba(255,255,255,.9)}.star-a{left:31%;top:20%;font-size:2.4rem}.star-b{left:66%;top:35%;font-size:3.2rem}
.contact-section{padding:100px 0}.contact-inner{text-align:center;max-width:900px}.contact-inner h2{color:#fff}.contact-inner p{color:rgba(255,255,255,.76);max-width:700px;margin:22px auto}.btn-light{background:#fff;color:var(--blue-950);margin-top:10px}.site-footer{background:var(--blue-950);color:#fff;border-top:1px solid rgba(255,255,255,.09)}.footer-main{display:grid;grid-template-columns:1.3fr .9fr;gap:80px;padding:64px 0 52px}.footer-brand{max-width:430px}.footer-logo-link{display:inline-block}.footer-brand img{width:150px;height:auto}.footer-tagline{margin:18px 0 4px;font-weight:900;font-size:1.15rem;line-height:1.3;color:#fff}.footer-summary{margin:0;color:rgba(255,255,255,.64);max-width:360px}.footer-email{display:inline-block;margin-top:20px;color:var(--sky);font-weight:800}.footer-email:hover{color:#fff}.footer-links{display:grid;grid-template-columns:1fr 1fr;gap:48px}.footer-column{display:grid;align-content:start;gap:11px}.footer-column span{margin-bottom:4px;color:rgba(255,255,255,.48);font-size:.72rem;font-weight:900;letter-spacing:.12em;text-transform:uppercase}.footer-column a{color:rgba(255,255,255,.80);font-weight:700;transition:color .2s var(--ease)}.footer-column a:hover{color:#fff}.footer-bottom{padding:22px 0 28px;border-top:1px solid rgba(255,255,255,.09)}.footer-bottom p{margin:0;color:rgba(255,255,255,.46);font-size:.82rem}
.reveal{opacity:0;transform:translateY(16px);transition:opacity .65s var(--ease),transform .65s var(--ease)}.reveal.visible{opacity:1;transform:none}

:focus-visible{outline:3px solid rgba(83,200,255,.75);outline-offset:4px;border-radius:8px}
.world-shot,.how-step,.equation-card,.audience-card,.flow-panel{transition:transform .28s var(--ease),box-shadow .28s var(--ease),border-color .28s var(--ease)}
@media(hover:hover){.world-shot:hover{transform:translateY(-4px);box-shadow:0 28px 74px rgba(22,71,150,.16)}.world-shot:hover img{transform:scale(1.025)}.world-shot img{transition:transform .5s var(--ease)}.how-step:hover,.equation-card:hover{transform:translateY(-3px);box-shadow:0 20px 52px rgba(20,59,120,.11)}}
@media(prefers-reduced-motion:no-preference){.hero-image{animation:heroFloat 9s ease-in-out infinite}.scan-line{animation:scanPulse 2.4s ease-in-out infinite}@keyframes heroFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}@keyframes scanPulse{0%,100%{opacity:.65;transform:translateY(-16px)}50%{opacity:1;transform:translateY(16px)}}}
@media(max-width:1499px) and (min-width:1021px){.hero-grid{min-height:clamp(620px,50vw,700px);width:min(calc(100% - 44px),1180px);padding:34px 0 48px}.hero-copy{width:min(40vw,535px);max-width:535px}.hero h1{font-size:clamp(2.9rem,3.7vw,3.45rem);max-width:535px}.hero-lede{max-width:500px;margin-top:24px;font-size:1.03rem}.hero-actions{gap:10px;margin-top:27px}.hero-actions .btn{padding:14px 18px;font-size:.91rem}.hero-image{object-position:52% 50%}.hero-fade{height:40px}}
@media(max-width:1020px){.main-nav{display:none}.menu-toggle{display:flex}.mobile-nav{display:none;padding:14px 22px 22px;background:#fff;border-top:1px solid var(--line)}.mobile-nav.open{display:grid;gap:8px}.mobile-nav a{font-weight:800;padding:10px 0}.mobile-nav .mobile-cta{margin-top:4px;background:var(--blue-900);color:#fff;padding:12px 16px;border-radius:999px;text-align:center}.hero-grid{display:grid;grid-template-columns:1fr;min-height:auto;width:min(calc(100% - 44px),var(--max));padding:68px 0 38px;gap:20px}.hero-copy{width:100%;max-width:760px}.hero-art{position:relative;inset:auto;width:112%;height:auto;aspect-ratio:16/9;margin:4px -6% 0;overflow:visible}.hero-image{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;object-position:center center}.hero h1{max-width:760px}.hero h1 .hero-line-two{white-space:normal}.hero-lede{max-width:660px}.section-head.split{grid-template-columns:1fr;gap:18px}.world-gallery{grid-template-columns:1fr 1fr}.world-shot:first-child{grid-column:1/-1}.how-grid{grid-template-columns:1fr 1fr}.equation{grid-template-columns:1fr 40px 1fr;gap:0}.equation-card:last-child{grid-column:1/-1;margin-top:18px}.equation .operator:nth-of-type(2){display:none}.audience-grid{grid-template-columns:1fr}.fit-flow{grid-template-columns:1fr}.flow-operator{min-height:52px}.lifecycle{grid-template-columns:1fr}.lifecycle i{transform:rotate(90deg);height:30px}.purpose-panel{grid-template-columns:1fr;padding:48px}.purpose-art{opacity:.48;width:65%;right:-25%}}
@media(max-width:680px){.container{width:min(calc(100% - 28px),var(--max))}.section{padding:var(--section-space-mobile) 0}.nav-row{min-height:76px}.site-logo{width:138px}.hero-grid{padding-top:52px;gap:18px}.hero h1{font-size:clamp(2.85rem,12.8vw,4rem)}.hero h1 .hero-line-two{white-space:normal}.hero-lede{font-size:1.02rem}.hero-actions{flex-direction:column;align-items:stretch}.btn{width:100%}.hero-art{width:126%;margin:0 -13%}.hero-image{object-fit:contain}.hero-fade{height:32px}.section-head h2,.world-copy h2,.purpose h2,.contact-inner h2{font-size:clamp(2.55rem,11vw,3.7rem)}.trailer-card{aspect-ratio:16/9;border-radius:22px}.play-button{width:66px;height:66px}.trailer-label{left:14px;bottom:13px}.world-gallery{grid-template-columns:1fr}.world-shot:first-child{grid-column:auto}.world-shot{min-height:340px}.asset-note{text-align:left}.how-grid{grid-template-columns:1fr}.equation{grid-template-columns:1fr}.equation .operator{padding:10px 0}.equation .operator:nth-of-type(2){display:block}.equation-card:last-child{grid-column:auto;margin-top:0}.purpose-panel{padding:34px 26px;min-height:500px}.purpose-art{width:95%;height:70%;right:-34%;top:45%}.footer-main{grid-template-columns:1fr;gap:42px;padding:48px 0 38px}.footer-links{gap:34px}.footer-bottom{text-align:left}.footer-brand img{width:138px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transform:none;transition:none}.trailer-card img,.btn,.world-shot,.how-step,.equation-card,.audience-card,.flow-panel{transition:none}.hero-image,.scan-line{animation:none!important;transform:none!important}}


/* =========================================================
   HERO PRODUCTION LAYOUT
   Approved artwork: wide desktop / compact stacked canvas.
   Keep these widths in sync with the picture and preload sizes.
   ========================================================= */

.hero{
  position:relative;
  overflow:hidden;
  color:#fff;
  min-height:clamp(640px,45vw,720px);
  background:linear-gradient(105deg,#07358f 0%,#0644bd 48%,#0142ce 100%);
}
.hero::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:0;
  pointer-events:none;
  background:radial-gradient(circle at 16% 28%,rgba(255,255,255,.04),transparent 32%);
}
.hero-grid{
  position:relative;
  z-index:2;
  width:min(calc(100% - 64px),1360px);
  min-height:clamp(640px,45vw,720px);
  margin:0 auto;
  padding:54px 0 70px;
  display:flex;
  align-items:center;
}
.hero-copy{
  position:relative;
  z-index:3;
  width:min(40vw,560px);
  max-width:560px;
}
.hero h1{
  margin:0;
  max-width:100%;
  color:#fff;
  font-size:clamp(3.2rem,3.8vw,3.65rem);
  font-weight:900;
  line-height:1.04;
  letter-spacing:-.003em;
}
.hero h1 .hero-line-two{
  display:inline-block;
  max-width:100%;
  white-space:normal;
  color:#fff;
}
.hero h1 em{font-style:normal;color:var(--gold)}
.hero-lede{
  max-width:520px;
  margin:27px 0 0;
  color:rgba(255,255,255,.90);
  font-size:1.08rem;
  line-height:1.65;
}
.hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:30px}
.hero-actions .btn{flex:0 0 auto;white-space:nowrap;padding:15px 20px}

/* Flex alignment avoids transform-based centering and keeps the image
   correctly placed when reduced motion disables legacy transforms. */
.hero-art{
  position:absolute;
  inset:0;
  z-index:1;
  width:auto;
  height:auto;
  margin:0;
  display:flex;
  align-items:center;
  justify-content:flex-end;
  aspect-ratio:auto;
  overflow:visible;
  pointer-events:none;
}
.hero-art::before{display:none}
.hero-picture{
  display:block;
  flex:0 0 84%;
  width:84%;
  margin:0 -2% 0 0;
}
.hero-image{
  position:static;
  inset:auto;
  display:block;
  width:100%;
  height:auto;
  max-width:none;
  object-fit:contain;
  object-position:center;
  transform:none;
  filter:none;
  -webkit-mask-image:none;
  mask-image:none;
  animation:none!important;
}
.hero-fade{
  position:absolute;
  z-index:5;
  left:0;
  right:0;
  bottom:-1px;
  height:64px;
  pointer-events:none;
  background:linear-gradient(180deg,transparent 0%,rgba(255,255,255,.30) 70%,#fff 100%);
}

@media (min-width:1200px) and (max-width:1499px){
  .hero-grid{width:min(calc(100% - 52px),1280px)}
  .hero-copy{width:min(40vw,520px);max-width:520px}
  .hero h1{font-size:clamp(3rem,3.65vw,3.65rem)}
  .hero-lede{max-width:510px;font-size:1.03rem}
  .hero-actions{gap:10px}
  .hero-actions .btn{padding:14px 18px;font-size:.94rem}
}

@media (min-width:960px) and (max-width:1199px){
  .hero{min-height:560px}
  .hero-grid{
    width:min(calc(100% - 42px),1120px);
    min-height:560px;
    padding:44px 0 58px;
  }
  .hero-copy{width:min(38vw,430px);max-width:430px}
  .hero-picture{margin-right:-1.5%}
  .hero h1{font-size:clamp(2.4rem,3.8vw,3rem)}
  .hero-lede{max-width:100%;margin-top:22px;font-size:.98rem;line-height:1.6}
  .hero-actions{gap:9px;margin-top:25px}
  .hero-actions .btn{padding:13px 16px;font-size:.88rem}
  .hero-fade{height:50px}
}

/* Match the compact artwork's left feather on the wide desktop canvas.
   The fade spans source pixels 380–492 of 1672, ending before the card.
   Masking preserves the existing image size, placement, and detail. */
@media (min-width:960px){
  .hero-image{
    --hero-left-feather:linear-gradient(to right,
      transparent 22.7273%,
      rgba(0,0,0,.104) 24.0670%,
      rgba(0,0,0,.352) 25.4067%,
      rgba(0,0,0,.648) 26.7464%,
      rgba(0,0,0,.896) 28.0861%,
      #000 29.4258%);
    -webkit-mask-image:var(--hero-left-feather);
    mask-image:var(--hero-left-feather);
    -webkit-mask-repeat:no-repeat;
    mask-repeat:no-repeat;
    -webkit-mask-size:100% 100%;
    mask-size:100% 100%;
  }
}

/* The compact source removes spare blue canvas at export time. Every
   subject stays visible; no cover fit, oversizing, or CSS image cropping. */
@media (max-width:959px){
  .hero{min-height:auto}
  .hero-grid{
    width:min(calc(100% - 44px),var(--max));
    min-height:auto;
    padding:50px 0 22px;
    display:grid;
    grid-template-columns:1fr;
    gap:14px;
  }
  .hero-copy{width:100%;max-width:680px}
  .hero h1{font-size:clamp(2.8rem,6.7vw,3.7rem)}
  .hero-lede{max-width:610px;margin-top:22px}
  .hero-actions{margin-top:24px}
  .hero-art{
    position:relative;
    inset:auto;
    display:block;
    width:100%;
    max-width:780px;
    height:auto;
    margin:0;
    justify-self:center;
  }
  .hero-picture{width:100%;margin:0}
  .hero-image{aspect-ratio:1292/941}
  .hero-fade{height:38px}
}

@media (max-width:680px){
  .hero-grid{
    width:min(calc(100% - 28px),var(--max));
    padding:44px 0 20px;
    gap:12px;
  }
  .hero-copy{max-width:none}
  .hero h1{font-size:clamp(2.3rem,10.7vw,3.55rem)}
  .hero-lede{font-size:1rem;margin-top:20px;max-width:none}
  .hero-actions{flex-direction:column;align-items:stretch;gap:10px}
  .hero-actions .btn{width:100%}
  .hero-fade{height:30px}
}

@media (prefers-reduced-motion:reduce){
  .hero-image{animation:none!important;transform:none!important}
}

/* =========================================================
   APPROVED COPY AND LAYOUT PASS
   Keep the established palette, header, and feathered hero.
   ========================================================= */
:root{
  --section-space:92px;
  --section-space-mobile:64px;
}
.skip-link{
  position:fixed;top:12px;left:12px;z-index:100;
  padding:12px 18px;border-radius:12px;background:#fff;color:var(--blue-950);
  font-weight:800;transform:translateY(-160%);
}
.skip-link:focus{transform:none}
main:focus{outline:none}
.section h2,.contact-inner h2{
  font-size:clamp(2.3rem,4.1vw,3.8rem);
  line-height:1.08;letter-spacing:-.018em;text-wrap:balance;
}
.section h3{text-wrap:balance}
.section p{overflow-wrap:break-word}
.section-head{margin-bottom:36px}
.section-head.narrow{max-width:830px}
.section-head.split{gap:42px;grid-template-columns:1.1fr 1fr}
.section-head.split>p{max-width:450px}
.trailer{padding-top:54px;padding-bottom:84px}
.trailer .section-head{margin-bottom:30px}
.trailer-eyebrow{margin-bottom:12px}
.trailer-card{display:block;border:1px solid rgba(9,39,93,.1)}
.trailer-card:focus-visible{outline-offset:6px}
.play-button{transition:box-shadow .25s var(--ease)}
.world-copy{max-width:880px;margin-bottom:38px}
.world-copy .lead{font-size:clamp(1.12rem,1.5vw,1.3rem);line-height:1.55}
.world-copy>p:last-child{max-width:800px;font-size:1.05rem;line-height:1.75}
.world-gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.world-shot,.world-shot:first-child{
  grid-column:auto;min-height:0;aspect-ratio:4/3;
  border:1px solid rgba(10,60,150,.1);border-radius:28px;
  background:linear-gradient(145deg,#0b317d,#1657c2);
}
.world-shot::after{display:none}
.world-shot img{
  position:absolute;inset:0;width:100%;height:100%;max-width:100%;
  object-fit:cover;transition:transform .6s var(--ease);
}
.shot-world img{object-position:100% 40%}
.shot-adventure img{object-position:67% 65%}
.how-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}
.how-step{position:relative;min-width:0;padding:24px;border-radius:26px}
.step-number{
  display:inline-flex;align-items:center;justify-content:center;
  width:34px;height:34px;border-radius:50%;letter-spacing:0;
  background:#edf5ff;color:var(--blue-800);border:1px solid #d9e8ff;
}
.step-visual{height:164px;margin:20px 0 24px}
.how-step h3{font-size:1.5rem;line-height:1.2}
.how-step p{font-size:.97rem;line-height:1.65}
.mini-card{width:100px;height:130px}
.hand-card{width:96px;height:126px}
.hand-card span{background:linear-gradient(155deg,#fff9e8,#ffe5a5);display:grid;place-items:center}
.hand-card span::after{content:"✦";color:#e6ac22;font-size:2.5rem}
.scan-visual::after{
  content:"";position:absolute;inset:23px 36px;border:2px solid rgba(40,103,238,.25);
  border-radius:20px;pointer-events:none;
}
.scan-line{z-index:1}
.enter-visual{border-radius:70px 70px 20px 20px;border:3px solid #edcd74;background:#0b317d}
.enter-visual img{object-position:90% 50%;width:100%;max-width:100%}
.audience-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;margin-top:0}
.audience-card{
  min-width:0;padding:30px;border-radius:26px;
  border:1px solid rgba(179,120,35,.1);border-bottom:4px solid #ffc978;
  background:linear-gradient(150deg,#fff8e9,#fff0d6);
}
.audience-card:nth-child(2){background:linear-gradient(150deg,#effaff,#def3ff);border-bottom-color:var(--sky)}
.audience-card:nth-child(3){background:linear-gradient(150deg,#f2faee,#e6f5de);border-bottom-color:var(--green)}
.benefit-icon{
  width:54px;height:54px;display:grid;place-items:center;border-radius:18px;
  background:rgba(255,255,255,.8);color:var(--blue-800);margin-bottom:24px;
  box-shadow:0 6px 20px rgba(25,60,110,.05);
}
.benefit-icon svg{width:30px;height:30px}
.audience-card>span{font-size:.69rem;color:#51617a;letter-spacing:.075em}
.audience-card h3{font-size:clamp(1.35rem,1.85vw,1.65rem);margin:12px 0;line-height:1.2}
.audience-card p{margin:0;color:#4a5d74;line-height:1.7;font-size:1rem}
.partner-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;max-width:1000px;margin:0 auto}
.partner-panel{
  min-width:0;padding:34px;border:1px solid rgba(255,255,255,.18);border-radius:26px;
  background:linear-gradient(140deg,rgba(255,255,255,.1),rgba(255,255,255,.035));
}
.partner-panel h3{font-size:clamp(1.45rem,2.2vw,1.85rem);line-height:1.22;margin:22px 0 14px;font-weight:900;color:#fff}
.partner-panel p{font-size:1.04rem;line-height:1.75;margin:0;color:rgba(255,255,255,.82)}
.partner-symbol{height:60px;position:relative}
.partner-card span{
  display:block;width:43px;height:55px;transform:rotate(-9deg);border:2px solid #b9e8ff;
  border-radius:5px;background:linear-gradient(145deg,#2159aa,#3f8cdd);box-shadow:6px 4px 0 rgba(255,255,255,.11);
}
.partner-card span::after{content:"✦";display:grid;place-items:center;height:100%;color:var(--gold);font-size:1.8rem}
.partner-portal span{
  display:grid;place-items:center;width:44px;height:58px;border-radius:24px 24px 5px 5px;
  border:2px solid #f5d36c;background:radial-gradient(ellipse at center,#397ac9,#0b317d);
  color:#ffe8a2;font-size:1.6rem;box-shadow:0 0 22px rgba(83,200,255,.14);
}
.personalization-note{
  max-width:1000px;margin:28px auto 0;padding:26px 30px;border-left:3px solid var(--gold);
  border-radius:0 18px 18px 0;background:rgba(255,255,255,.04);
}
.personalization-note h3{margin:0 0 8px;color:#ffe48a;font-size:1.2rem;font-weight:800}
.personalization-note p{margin:0;max-width:860px;color:rgba(255,255,255,.8);font-size:1rem;line-height:1.7}
.return{background:linear-gradient(145deg,#fff,#f4f9ff)}
.return-inner{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:64px}
.return h2{margin:0;color:var(--ink);font-weight:900}
.return-copy p{margin:0;color:var(--muted);font-size:1.08rem;line-height:1.75}
.return-copy p+p{margin-top:20px}
.occasion-art{display:flex;align-items:center;gap:10px;margin-bottom:24px;height:45px}
.occasion-art span{
  display:grid;place-items:center;width:32px;height:42px;border-radius:5px;
  background:#e0efff;border:1px solid #c3ddfb;color:var(--blue-700);transform:rotate(-10deg);
}
.occasion-art span:nth-child(2){background:#fff1c9;border-color:#f6de97;color:#aa7900;transform:translateY(-4px)}
.occasion-art span:nth-child(3){background:#e9f6df;border-color:#cfe7b6;color:#4b8129;transform:rotate(10deg)}
.purpose-panel{padding:54px;grid-template-columns:1.5fr .5fr;min-height:430px}
.purpose-copy{max-width:780px}
.purpose-copy p{line-height:1.75}
.purpose-art{opacity:.5;right:-23%;width:58%;pointer-events:none}
.purpose-tagline{font-size:clamp(1.18rem,2vw,1.5rem)!important;line-height:1.4}
.contact-section{padding:88px 0}
.contact-inner{max-width:950px}
.contact-inner p{max-width:610px}
.contact-inner .btn{min-height:52px;min-width:172px}
.footer-column a{padding:5px 0}

/* Content is visible without JavaScript. The observer opts individual
   sections into motion only when it can reveal them reliably. */
.reveal{
  opacity:1;transform:none;
  transition:opacity .65s var(--ease),transform .65s var(--ease),box-shadow .28s var(--ease),border-color .28s var(--ease);
}
.reveal.reveal-pending{opacity:0;transform:translateY(18px)}
.reveal.reveal-arriving{transition-delay:var(--reveal-delay,0ms)}
@media (hover:hover) and (prefers-reduced-motion:no-preference){
  .audience-card:not(.reveal-pending):hover,.partner-panel:not(.reveal-pending):hover{
    transform:translateY(-4px);box-shadow:0 20px 48px rgba(16,49,105,.12);
  }
  .partner-panel:hover{border-color:rgba(255,255,255,.36)}
  .trailer-card:hover .play-button{box-shadow:0 0 0 10px rgba(255,255,255,.12),0 18px 50px rgba(0,0,0,.25)}
}
@media (max-width:1100px){
  .how-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .step-visual{height:180px}
}
@media (max-width:1020px){
  .section-head.split{grid-template-columns:1fr;gap:18px}
  .section-head.split>p{max-width:610px}
  .audience-card{padding:24px}
  .return-inner{gap:34px}
  .purpose-panel{padding:42px;grid-template-columns:1fr}
  .purpose-copy{max-width:690px}
  .purpose-art{opacity:.28;right:-35%}
  .menu-toggle{display:none}
  .js-ready .menu-toggle{display:flex}
  html:not(.js-ready) .mobile-nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
}
@media (max-width:900px){
  .audience-grid{grid-template-columns:1fr}
  .audience-card{padding:28px}
  .audience-card h3{font-size:1.6rem}
  .benefit-icon{margin-bottom:18px}
  .return-inner{grid-template-columns:1fr;gap:26px}
  .return-heading{max-width:620px}
}
@media (max-width:760px){
  .partner-grid{grid-template-columns:1fr}
  .partner-panel{padding:28px}
  .personalization-note{padding:22px 24px}
}
@media (max-width:680px){
  .section h2,.contact-inner h2{font-size:clamp(2.15rem,8.8vw,3.3rem)}
  .section-head{margin-bottom:28px}
  .trailer{padding-top:38px;padding-bottom:60px}
  .trailer .section-head{margin-bottom:24px}
  .world-copy{margin-bottom:28px}
  .world-copy .lead{font-size:1.12rem}
  .world-copy>p:last-child{font-size:1rem}
  .world-gallery{grid-template-columns:1fr;gap:20px}
  .world-shot,.world-shot:first-child{border-radius:22px;min-height:0;aspect-ratio:4/3}
  .how-grid{gap:16px}
  .how-step{padding:20px}
  .how-step h3{font-size:1.4rem}
  .step-visual{height:156px}
  .audience-grid{gap:16px}
  .purpose-panel{padding:32px 24px;min-height:0;border-radius:26px}
  .purpose-art{width:100%;right:-60%;top:10%;height:120%}
  .purpose-tagline{margin:20px 0!important}
  .contact-section{padding:68px 0}
  .contact-inner .btn{width:auto;min-width:180px;max-width:100%}
  .return-copy p{font-size:1rem}
}
@media (max-width:560px){
  .how-grid{grid-template-columns:1fr}
  .how-step{padding:24px}
  .step-visual{height:176px}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .reveal,.reveal.reveal-pending,.reveal.reveal-arriving{
    opacity:1;transform:none;transition:none;transition-delay:0s;
  }
  .world-shot img,.partner-panel,.play-button,.btn{transition:none;animation:none}
  .world-shot:hover,.world-shot:hover img,.how-step:hover,.audience-card:hover,.partner-panel:hover,.btn:hover{transform:none}
  .scan-line{animation:none!important}
}

/* =========================================================
   HERO VISUAL REFINEMENT
   Approved artwork and export sizes stay unchanged.
   ========================================================= */
.hero{
  background:linear-gradient(105deg,
    #082962 0%,#093589 34%,#0644bd 62%,#0142ce 100%);
}
.hero::before{
  background:radial-gradient(ellipse at 76% 55%,rgba(70,137,255,.08),transparent 48%);
}
.hero-grid{padding:52px 0 84px}
.hero h1{line-height:1.06;letter-spacing:-.014em}
.hero-lede{
  max-width:min(100%,480px);
  margin-top:24px;
  color:rgba(255,255,255,.94);
  line-height:1.7;
  text-wrap:pretty;
}
.hero-picture{position:relative;isolation:isolate}
/* A narrow transparent glow follows the existing card edge at source x=990.
   It is anchored to the picture, so it scales with either responsive source. */
.hero-picture::after{
  content:"";
  position:absolute;
  z-index:1;
  left:54.7%;top:28%;width:9%;height:52%;
  pointer-events:none;
  background:radial-gradient(ellipse at center,
    rgba(255,237,186,.48) 0%,rgba(255,215,121,.14) 34%,transparent 72%);
  opacity:.18;
}
.hero-fade{
  height:48px;
  background:linear-gradient(180deg,
    transparent 0%,rgba(255,255,255,.08) 40%,rgba(255,255,255,.4) 76%,#fff 100%);
}
@media (min-width:960px) and (max-width:1199px){
  .hero-grid{padding:42px 0 66px}
  .hero-lede{margin-top:20px;line-height:1.65}
  .hero-fade{height:40px}
}
@media (max-width:959px){
  .hero{
    background:linear-gradient(160deg,
      #082962 0%,#093589 22%,#0644bd 52%,#0142ce 100%);
  }
  .hero-grid{padding:42px 0 20px;gap:4px}
  .hero-copy{max-width:680px}
  .hero-lede{max-width:36rem;margin-top:20px;line-height:1.65}
  .hero-picture::after{left:41.4%;width:11.65%}
  .hero-fade{height:32px}
}
@media (max-width:680px){
  .hero-grid{padding:36px 0 18px;gap:0}
  .hero-copy{max-width:none}
  .hero h1{font-size:clamp(2.2rem,10.2vw,3.4rem);line-height:1.08}
  .hero-lede{max-width:34rem;margin-top:18px;font-size:1rem;line-height:1.65}
  .hero-art{margin-top:-4px}
  .hero-fade{height:24px}
}
/* One restrained pulse, then a steady glow. No ongoing motion to distract
   from reading; the card and text never float or scale. */
@media (prefers-reduced-motion:no-preference){
  .hero-picture::after{animation:heroEdgeGlow 4.8s ease-in-out 1 both}
  @keyframes heroEdgeGlow{
    0%,100%{opacity:.18}
    50%{opacity:.35}
  }
}
@media (prefers-reduced-motion:reduce){
  .hero-picture::after{animation:none;opacity:.18}
}

/* Process illustrations and clearer desktop motion. */
.step-visual.process-illustration{
  display:block;height:auto;aspect-ratio:1;margin:20px 0 24px;
  border:1px solid #e2edfa;border-radius:20px;background:#edf5ff;
}
.process-illustration img{width:100%;height:100%;max-width:100%;object-fit:contain}
.hero-picture::after{animation:none;opacity:.18}
@media (prefers-reduced-motion:no-preference){
  .hero-picture.hero-glow-active::after{animation:heroEdgeGlowVisible 4.8s ease-in-out 1}
  @keyframes heroEdgeGlowVisible{0%,100%{opacity:.18}45%,55%{opacity:.62}}
}
@media (min-width:960px) and (prefers-reduced-motion:no-preference){
  .reveal{transition-duration:.85s,.85s,.28s,.28s}
  .reveal.reveal-pending{transform:translateY(28px)}
  .reveal.reveal-initial{animation:desktopSectionEnter .85s var(--ease) var(--reveal-delay,0ms) both}
  @keyframes desktopSectionEnter{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}
}
@media (prefers-reduced-motion:reduce){
  .reveal.reveal-initial{animation:none;opacity:1;transform:none}
  .hero-picture.hero-glow-active::after{animation:none;opacity:.18}
}

/* Soft transformation glow and scattered twinkles; no drawn trail. */
.hero-magic{
  position:absolute;z-index:2;top:50%;right:-2%;width:84%;height:auto;
  aspect-ratio:1672/941;transform:translateY(-50%);overflow:visible;
  opacity:0;pointer-events:none;
}
.hero-magic-compact{display:none}
.magic-wave,.magic-spark{opacity:0}
.magic-spark{fill:#fff6d7;filter:drop-shadow(0 0 6px #ffd66b);transform-box:fill-box;transform-origin:center}
@media (min-width:960px) and (max-width:1199px){
  .hero-magic{right:-1.5%}
}
@media (max-width:959px){
  .hero-magic-wide{display:none}
  .hero-magic-compact{display:block}
  .hero-magic{inset:0;width:100%;height:100%;aspect-ratio:1292/941;transform:none}
}
@media (prefers-reduced-motion:no-preference){
  .hero-picture.hero-glow-active ~ .hero-magic{opacity:1}
  .hero-picture.hero-glow-active ~ .hero-magic .magic-wave{animation:magicGoldenWave 4.8s ease-in-out 1 both}
  .hero-picture.hero-glow-active ~ .hero-magic .spark-a{animation:magicTwinkleA 4.8s ease-in-out 1 both}
  .hero-picture.hero-glow-active ~ .hero-magic .spark-b{animation:magicTwinkleB 4.8s ease-in-out 1 both}
  .hero-picture.hero-glow-active ~ .hero-magic .spark-c{animation:magicTwinkleC 4.8s ease-in-out 1 both}
  @keyframes magicGoldenWave{
    0%{opacity:0;transform:translateX(0) scale(.16,.45)}
    18%{opacity:.85;transform:translateX(20px) scale(.45,.8)}
    48%{opacity:.8;transform:translateX(110px) scale(.95,1.12)}
    75%{opacity:.45;transform:translateX(200px) scale(1.3,1.2)}
    100%{opacity:0;transform:translateX(230px) scale(1.35,1.25)}
  }
  @keyframes magicTwinkleA{0%,48%,100%{opacity:0;transform:scale(.55)}24%{opacity:.95;transform:scale(1.15)}74%{opacity:.5;transform:scale(.9)}}
  @keyframes magicTwinkleB{0%,18%,76%,100%{opacity:0;transform:scale(.6)}44%{opacity:1;transform:scale(1.2)}}
  @keyframes magicTwinkleC{0%,34%,100%{opacity:0;transform:scale(.55)}64%{opacity:.9;transform:scale(1.1)}}
}
@media (prefers-reduced-motion:reduce){
  .hero-magic{display:none}
}

/* Recognizable occasion cards replace the three abstract star icons. */
.occasion-cards{width:100%;max-width:480px;margin:0 0 28px}
.occasion-cards img{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:contain;border-radius:20px;background:#f7faff}
@media (max-width:680px){
  .occasion-cards{margin-bottom:24px}
  .occasion-cards img{border-radius:16px}
}

/* Play With Purpose: shared imagination in a children's hospital. */
.purpose-panel{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:32px;padding:48px}
.purpose-copy{min-width:0}
.purpose-illustration{position:relative;isolation:isolate;width:100%;max-width:560px;margin:0 auto}
.purpose-illustration img{display:block;width:100%;height:auto;aspect-ratio:1;object-fit:contain}
.purpose-illustration::after{content:"";position:absolute;pointer-events:none;left:57%;top:35%;width:36%;height:40%;border-radius:50%;background:radial-gradient(ellipse,rgba(255,216,90,.22),rgba(255,216,90,0) 70%);opacity:0}
@keyframes purposeDragonGlow{0%,100%{opacity:0;transform:scale(.95)}50%{opacity:1;transform:scale(1.08)}}
@media (prefers-reduced-motion:no-preference){
  .purpose-panel.visible .purpose-illustration::after{animation:purposeDragonGlow 4s ease-in-out 2}
}
@media(max-width:1020px){
  .purpose-panel{grid-template-columns:minmax(0,1fr);gap:24px;padding:42px}
}
@media(max-width:680px){
  .purpose-panel{padding:32px 24px;gap:16px}
}

/* Approved world concepts: retain the complete 3:2 compositions on every screen. */
.world-gallery .world-shot{aspect-ratio:3/2}
.world-gallery .world-shot img{object-fit:contain;object-position:center}

/* Compact desktop gallery; columns account for the 24px row gap to preserve 3:2 artwork. */
@media(min-width:960px){
  .world-gallery{grid-template-columns:minmax(0,calc(66.666667% - 4px)) minmax(0,1fr);gap:24px;align-items:stretch}
  .world-gallery .shot-kingdom{grid-column:1;grid-row:1 / span 2;aspect-ratio:auto}
  .world-gallery .shot-world{grid-column:2;grid-row:1}
  .world-gallery .shot-adventure{grid-column:2;grid-row:2}
}
@media(max-width:959px){
  .world-gallery{grid-template-columns:minmax(0,1fr);gap:20px}
  .world-gallery .world-shot{grid-column:auto;grid-row:auto;aspect-ratio:3/2}
}

/* Pass 25: full supplied hero artwork on its native near-white background. */
.hero{background:#fdfdfd;color:var(--ink);min-height:0}
.hero::before{display:none}
.hero-grid{display:grid;grid-template-columns:minmax(0,38fr) minmax(0,62fr);gap:24px;width:min(calc(100% - 64px),1440px);min-height:536px;padding:40px 0 72px;align-items:center}
.hero-copy{width:100%;max-width:100%;min-width:0}
.hero h1{font-size:clamp(2.5rem,3.65vw,3.65rem);color:var(--ink);max-width:100%}
.hero h1 .hero-line-two{color:var(--ink);white-space:normal}
.hero h1 em{color:var(--blue-600)}
.hero-lede{color:var(--muted);max-width:480px}
.hero-art{position:relative;inset:auto;display:block;width:100%;height:auto;aspect-ratio:1672/941;margin:0;overflow:visible;min-width:0}
.hero-picture{display:block;width:100%;margin:0;flex:none}
.hero-image{position:static;width:100%;height:auto;aspect-ratio:1672/941;object-fit:contain;object-position:center;-webkit-mask-image:none;mask-image:none}
.hero-picture::after{left:37%;top:24%;width:12%;height:62%}
.hero-magic{inset:0;width:100%;height:100%;aspect-ratio:1672/941;transform:none}
.hero-fade{height:24px;background:linear-gradient(transparent,#fff)}
@media(max-width:959px){
 .hero-grid{grid-template-columns:minmax(0,1fr);width:calc(100% - 44px);min-height:0;padding:40px 0 28px;gap:24px}
 .hero-copy{max-width:680px}
 .hero h1{font-size:clamp(2.8rem,6.7vw,3.7rem)}
 .hero-lede{max-width:610px}
}
@media(max-width:680px){
 .hero-grid{width:calc(100% - 28px);padding:32px 0 24px;gap:20px}
 .hero h1{font-size:clamp(2.2rem,10.2vw,3.4rem)}
 .hero-lede{font-size:1rem}
}

/* Partnership inquiries: native form validation and hosted email delivery. */
.partner-contact-form{max-width:700px;margin:32px auto 0;text-align:left}
.contact-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.contact-fields label{display:block;min-width:0;font-size:1rem;font-weight:800;color:#fff}
.contact-fields label span{font-weight:400;color:#d0dcf1}
.contact-fields input,.contact-fields textarea{display:block;box-sizing:border-box;width:100%;margin-top:8px;border:1px solid #b3c8e8;border-radius:12px;padding:13px 15px;background:#fff;color:#10203c;font:inherit;font-weight:400;font-size:16px;line-height:1.5}
.contact-fields textarea{resize:vertical;min-height:140px}
.contact-fields input:focus-visible,.contact-fields textarea:focus-visible{outline:3px solid #ffd83d;outline-offset:3px}
.contact-full{grid-column:1/-1}
.contact-inner .contact-form-note{margin:18px 0 10px;font-size:.9rem;color:#d0dcf1}
.partner-contact-form .btn{cursor:pointer;border:0;margin-top:8px}
@media(max-width:600px){.contact-fields{grid-template-columns:minmax(0,1fr)}.partner-contact-form .btn{width:100%}}
.contact-thanks{min-height:100vh;display:grid;place-items:center;padding:40px 24px;background:#f2f8ff;text-align:center}
.contact-thanks-inner{max-width:640px}
.contact-thanks h1{color:#10203c;font-size:clamp(2.2rem,6vw,3.3rem);line-height:1.12}
.contact-thanks p{color:#50627c}
.contact-thanks .btn{background:#0b317d;color:#fff;margin-top:20px}

/* Disclosure beneath the representative gameplay images. */
.world-image-note{margin:16px 0 0;color:#5c6d86;font-size:.875rem;line-height:1.6;text-align:center}
@media(max-width:680px){.world-image-note{text-align:left}}

/* Shared game palette: royal-blue controls, warm gold actions and crystal detail. */
.nav-cta,.mobile-nav .mobile-cta {background:linear-gradient(180deg,#326caf,var(--blue-700));box-shadow:inset 0 0 0 1px var(--trim),inset 0 2px 0 #ffffff24}
.nav-cta:hover {background:linear-gradient(180deg,var(--blue-600),var(--blue-800))}
.btn-light {background:linear-gradient(180deg,#f5da91,var(--gold));color:var(--blue-950);box-shadow:inset 0 0 0 1px var(--trim)}
.eyebrow {color:var(--green)}
.dark .eyebrow {color:var(--gold)}
.partner-portal span {border-color:var(--gold);background:radial-gradient(ellipse at center,var(--blue-600),var(--blue-950));box-shadow:0 0 22px #7754b026}
.contact-thanks {background:var(--soft)}
.contact-thanks h1 {color:var(--ink)}
.contact-thanks p {color:var(--muted)}
.contact-thanks .btn {background:var(--blue-700)}
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible {outline:3px solid var(--violet);outline-offset:4px}

/* Clear first action for prospective card partners. */
.hero-actions{display:flex;align-items:center;flex-wrap:wrap;gap:18px 24px;margin-top:26px}.hero-actions .btn-partner-primary{background:#214f6b;color:#fff;border:1px solid #214f6b;box-shadow:0 6px 18px rgba(22,58,79,.12)}.hero-actions .btn-partner-primary:hover{background:#193f5a}.partner-how-link{font-weight:800;color:#214f6b;text-decoration:underline;text-underline-offset:4px}.contact-form-note a{text-decoration:underline;text-underline-offset:3px}
