/* =========================================================
   FLIP TO TRIP — design system
   Concept: the logo's world (sky gradient, drifting clouds, teal hills, a plane
   on its way) meets an airport terminal (split-flap board, boarding passes,
   luggage tags, passport stamps). Marigold is the one warm accent, used for
   the actions that convert.
   ========================================================= */
:root{
  --bg:#F2F8FC; --bg-2:#E5F0F7; --surface:#FFFFFF; --ink:#0D1A4F; --muted:#51607E; --line:#D3E2EE;
  --navy:#13246E; --brand:#1E3A9E; --brand-ink:#FFFFFF; --teal:#2F6F7E; --leaf:#3D9A50;
  --sky-1:#C3E2EF; --sky-2:#86BDE4; --cloud:#FFFFFF; --hill-1:#40857F; --hill-2:#346F80;
  --gold:#F2B33D; --gold-ink:#1B1303; --gold-text:#9A6500;
  --band:#13246E; --band-2:#1D3388; --band-ink:#EEF3FF; --band-muted:#B3C1E8;
  --ok:#2E8B57; --err:#C2410C;
  --board:#0A1016; --flap:#1A222B; --flap-lo:#141B22; --flap-ink:#F5EBCB; --board-dim:#7E8D9B; --board-line:#26313C;
  --shadow:0 1px 2px rgba(13,26,79,.06),0 14px 36px -14px rgba(13,26,79,.22);
  --shadow-lg:0 40px 80px -40px rgba(13,26,79,.45);
  --f-display:"Big Shoulders Display","Oswald","Arial Narrow",Impact,sans-serif;
  --f-logo:"Abril Fatface","Playfair Display",Georgia,serif;
  --f-body:"Hanken Grotesk",system-ui,-apple-system,"Segoe UI",sans-serif;
  --f-mono:"IBM Plex Mono",ui-monospace,"SFMono-Regular",Menlo,monospace;
  --f-serif:"Instrument Serif",Georgia,"Times New Roman",serif;
  --gutter:clamp(16px,4vw,40px);
  --ease:cubic-bezier(.2,.75,.2,1);
}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){
  --bg:#070D26; --bg-2:#0B1434; --surface:#0E1A3E; --ink:#E9EEFC; --muted:#A6B3D4; --line:#22305E;
  --navy:#DCE4FF; --brand:#8EB2FF; --brand-ink:#08102E; --teal:#6CC3C9; --leaf:#6CCB7E;
  --sky-1:#0B1940; --sky-2:#1A3474; --cloud:#3A4F8A; --hill-1:#1C4B54; --hill-2:#143A4B;
  --gold-text:#F2B33D;
  --band:#0F1C4E; --band-2:#18296C; --band-ink:#EEF3FF; --band-muted:#A9B9E6;
  --ok:#5CC08A; --err:#FB8A5C;
  --shadow:0 1px 2px rgba(0,0,0,.35),0 18px 40px -18px rgba(0,0,0,.7);
  --shadow-lg:0 40px 80px -40px rgba(0,0,0,.8);
  color-scheme:dark;}}
:root[data-theme="dark"]{
  --bg:#070D26; --bg-2:#0B1434; --surface:#0E1A3E; --ink:#E9EEFC; --muted:#A6B3D4; --line:#22305E;
  --navy:#DCE4FF; --brand:#8EB2FF; --brand-ink:#08102E; --teal:#6CC3C9; --leaf:#6CCB7E;
  --sky-1:#0B1940; --sky-2:#1A3474; --cloud:#3A4F8A; --hill-1:#1C4B54; --hill-2:#143A4B;
  --gold-text:#F2B33D;
  --band:#0F1C4E; --band-2:#18296C; --band-ink:#EEF3FF; --band-muted:#A9B9E6;
  --ok:#5CC08A; --err:#FB8A5C;
  --shadow:0 1px 2px rgba(0,0,0,.35),0 18px 40px -18px rgba(0,0,0,.7);
  --shadow-lg:0 40px 80px -40px rgba(0,0,0,.8);
  color-scheme:dark;}

/* ---------- Base ---------- */
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--f-body);font-size:17px;line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{max-width:100%;display:block}
a{color:inherit}
h1,h2,h3,h4{margin:0;text-wrap:balance;line-height:1.02}
p{margin:0}
button{font:inherit}
[hidden]{display:none!important}
.wrap{max-width:1200px;margin-inline:auto;padding-inline:var(--gutter)}
section{padding-block:clamp(28px,3.6vw,52px)}
.eyebrow{font-family:var(--f-mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--teal);font-weight:500}
.h1{font-family:var(--f-display);font-weight:900;font-size:clamp(56px,10vw,140px);text-transform:uppercase;line-height:.86}
.h2{font-family:var(--f-display);font-weight:800;font-size:clamp(40px,6vw,72px);text-transform:uppercase;letter-spacing:.005em}
.h1 em,.h2 em{font-family:var(--f-serif);font-style:italic;font-weight:400;text-transform:none;letter-spacing:0;color:var(--brand)}
.lede{color:var(--muted);max-width:60ch;font-size:18px}
.sec-head{display:grid;gap:12px;margin-bottom:clamp(20px,3vw,36px)}
.sec-head.center{justify-items:center;text-align:center}
.sec-head.center .lede{margin-inline:auto}
:focus-visible{outline:2px solid var(--gold);outline-offset:3px;border-radius:6px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ---------- Buttons ---------- */
.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:10px;font:600 15px/1 var(--f-body);padding:15px 22px;border-radius:999px;border:1.5px solid transparent;text-decoration:none;cursor:pointer;transition:transform .25s var(--ease),background .2s,color .2s,border-color .2s,box-shadow .25s;white-space:nowrap;overflow:hidden}
.btn:hover{transform:translateY(-2px)}
.btn:active{transform:translateY(0) scale(.98)}
.btn svg{width:18px;height:18px;flex:none;transition:transform .3s var(--ease)}
.btn:hover svg.go{transform:translateX(4px)}
.btn-gold{background:var(--gold);color:var(--gold-ink);box-shadow:0 10px 24px -12px rgba(242,179,61,.9)}
.btn-gold:hover{box-shadow:0 16px 30px -12px rgba(242,179,61,1)}
.btn-blue{background:var(--brand);color:var(--brand-ink)}
.btn-line{border-color:currentColor;background:transparent;color:var(--ink)}
.btn-ghost{background:color-mix(in srgb,var(--surface) 70%,transparent);color:var(--ink);border-color:var(--line);backdrop-filter:blur(6px)}
.btn-sm{padding:11px 16px;font-size:14px}
.btn-shine::after{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 30%,rgba(255,255,255,.55) 50%,transparent 70%);transform:translateX(-120%);animation:shine 3.6s 1.5s infinite}
@keyframes shine{0%,60%{transform:translateX(-120%)}100%{transform:translateX(120%)}}
.linkbtn{background:none;border:0;padding:0;font:600 14px var(--f-body);color:var(--brand);cursor:pointer;display:inline-flex;align-items:center;gap:6px;text-decoration:none}
.linkbtn:hover{text-decoration:underline}

/* ---------- Header ---------- */
.top{position:sticky;top:env(safe-area-inset-top,0px);z-index:60;background:color-mix(in srgb,var(--bg) 82%,transparent);backdrop-filter:blur(16px) saturate(1.4);-webkit-backdrop-filter:blur(16px) saturate(1.4);border-bottom:1px solid transparent;transition:border-color .3s,box-shadow .3s}
.top.scrolled{border-bottom-color:var(--line);box-shadow:0 8px 30px -20px rgba(13,26,79,.4)}
.top .bar{display:flex;align-items:center;justify-content:space-between;gap:16px;height:74px}
.logo{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--navy);flex:none}
.logo img{width:36px;height:auto;transition:transform .5s var(--ease)}
.logo:hover img{transform:translateY(-3px) rotate(-6deg)}
.logo .wm{display:grid;line-height:1}
.logo .wm b{font-family:var(--f-logo);font-weight:400;font-size:23px;letter-spacing:.06em}
.logo .wm small{font-family:var(--f-logo);font-size:9.5px;letter-spacing:.2em;color:var(--teal);margin-top:4px}
.nav{display:flex;align-items:center;gap:6px}
.nav a.l{position:relative;text-decoration:none;font-weight:600;font-size:14.5px;color:var(--muted);padding:10px 12px;border-radius:999px;transition:color .2s,background .2s}
.nav a.l:hover{color:var(--ink);background:var(--bg-2)}
.nav a.l[aria-current="page"]{color:var(--ink)}
.nav a.l[aria-current="page"]::after{content:"";position:absolute;left:50%;bottom:3px;width:5px;height:5px;margin-left:-2.5px;border-radius:50%;background:var(--gold)}
.nav .btn{margin-left:8px}
.menu-btn{display:none;background:var(--surface);border:1.5px solid var(--line);border-radius:12px;width:46px;height:46px;color:var(--ink);cursor:pointer;place-items:center}
.menu-btn span,.menu-btn span::before,.menu-btn span::after{display:block;width:18px;height:2px;background:currentColor;border-radius:2px;transition:transform .3s var(--ease),opacity .2s;position:relative}
.menu-btn span::before,.menu-btn span::after{content:"";position:absolute;left:0}
.menu-btn span::before{top:-6px}.menu-btn span::after{top:6px}
.menu-btn[aria-expanded="true"] span{background:transparent}
.menu-btn[aria-expanded="true"] span::before{transform:translateY(6px) rotate(45deg)}
.menu-btn[aria-expanded="true"] span::after{transform:translateY(-6px) rotate(-45deg)}
.drawer{border-top:1px solid var(--line);padding-block:8px 20px;animation:drop .35s var(--ease)}
.drawer a{display:flex;justify-content:space-between;align-items:center;padding:14px 0;text-decoration:none;font-family:var(--f-display);font-weight:800;font-size:28px;text-transform:uppercase;border-bottom:1px solid var(--line)}
.drawer a[aria-current="page"]{color:var(--brand)}
.drawer .btn{margin-top:16px;width:100%}
@keyframes drop{from{opacity:0;transform:translateY(-10px)}}
@media (max-width:1060px){.nav a.l{display:none}.menu-btn{display:grid}}
@media (max-width:420px){.logo .wm small{font-size:8px;letter-spacing:.16em;margin-top:3px}.logo .wm b{font-size:19px}.nav .btn{padding:11px 14px;font-size:13.5px}}

/* flight progress line */
.flight{position:absolute;left:0;right:0;bottom:-1px;height:2px;pointer-events:none}
.flight::before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(90deg,var(--line) 0 6px,transparent 6px 11px)}
.flight i{position:absolute;left:0;top:0;height:2px;width:var(--p,0%);background:var(--gold)}
.flight svg{position:absolute;top:-8px;left:calc(var(--p,0%) - 9px);width:18px;height:18px;color:var(--gold-text);transition:left .1s linear}

/* ---------- Sky hero (logo world) ---------- */
.sky{position:relative;overflow:hidden;background:linear-gradient(180deg,var(--sky-1) 0%,var(--sky-2) 100%);isolation:isolate}
.sky .clouds,.sky .stars{position:absolute;inset:0;pointer-events:none;z-index:-1}
.cloud{position:absolute;height:var(--h,34px);width:var(--w,160px);background:var(--cloud);border-radius:999px 999px 0 0;opacity:.95;animation:drift var(--d,60s) linear infinite;animation-delay:var(--dl,0s)}
.cloud::before,.cloud::after{content:"";position:absolute;bottom:0;background:var(--cloud);border-radius:50%}
.cloud::before{width:44%;height:180%;left:16%}
.cloud::after{width:34%;height:130%;left:50%}
@keyframes drift{from{transform:translateX(-30vw)}to{transform:translateX(130vw)}}
.star{position:absolute;width:var(--s,8px);height:var(--s,8px);border-radius:50%;background:#fff;opacity:.9;animation:twinkle var(--t,4s) ease-in-out infinite;animation-delay:var(--dl,0s)}
@keyframes twinkle{50%{opacity:.25;transform:scale(.6)}}
.hills{position:absolute;left:0;right:0;bottom:-1px;height:clamp(70px,12vw,150px);z-index:-1;pointer-events:none}
.hills svg{width:100%;height:100%;display:block}
.hills .h1f{fill:var(--hill-2)}.hills .h2f{fill:var(--hill-1)}.hills .h3f{fill:var(--bg)}
.sky .hero-plane{position:absolute;width:120px;top:18%;left:-140px;color:#fff;z-index:-1;animation:fly 26s linear infinite;opacity:.95}
@keyframes fly{0%{transform:translate(0,40px) rotate(-8deg)}100%{transform:translate(calc(100vw + 300px),-120px) rotate(-14deg)}}
.trail{position:absolute;height:2px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.8));width:220px;right:100%;top:50%}

/* ---------- Page hero (inner pages) ---------- */
.phero{padding-block:clamp(48px,7vw,96px) clamp(110px,16vw,200px)}
.phero .grid{display:grid;grid-template-columns:1.2fr 1fr;gap:clamp(24px,5vw,64px);align-items:center}
.phero .copy{display:grid;gap:22px}
.phero .h1{font-size:clamp(52px,8.4vw,120px)}
.crumb{font-family:var(--f-mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink);opacity:.75;display:flex;gap:8px;align-items:center}
.crumb a{text-decoration:none}
.crumb a:hover{text-decoration:underline}
@media (max-width:900px){.phero .grid{grid-template-columns:1fr}}
.cta-row{display:flex;flex-wrap:wrap;gap:12px}

/* ---------- Reveal ---------- */
.rv{transform:translateY(28px);transition:transform .9s var(--ease)}
.rv.in{transform:none}
.rv-d1{transition-delay:.08s}.rv-d2{transition-delay:.16s}.rv-d3{transition-delay:.24s}.rv-d4{transition-delay:.32s}

/* ---------- Split-flap board ---------- */
.board{background:var(--board);border-radius:18px;padding:clamp(14px,2.4vw,28px);color:var(--flap-ink);box-shadow:var(--shadow-lg),inset 0 0 0 1px var(--board-line);position:relative;
  --cw:min(24px,calc((min(100vw,1200px) - 2*var(--gutter) - 2*clamp(14px,2.4vw,28px) - 110px)/41.7)); --gap:3px}
.board-head{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;padding-bottom:14px;margin-bottom:14px;border-bottom:1px dashed var(--board-line)}
.board-title{display:flex;align-items:center;gap:12px;font-family:var(--f-display);font-weight:800;font-size:clamp(22px,3vw,34px);letter-spacing:.06em;text-transform:uppercase}
.board-title svg{width:30px;height:30px;color:var(--gold)}
.board-meta{font-family:var(--f-mono);font-size:12px;letter-spacing:.12em;color:var(--board-dim);text-transform:uppercase;display:flex;gap:18px;font-variant-numeric:tabular-nums}
.board-meta b{color:var(--flap-ink);font-weight:500}
.board-scroll{overflow-x:auto}
.grid-rows{display:grid;gap:7px;width:max-content}
.brow{display:flex;gap:calc(var(--cw)*.9);cursor:pointer;border-radius:6px}
.brow:not(.labels):hover .cell{filter:brightness(1.25)}
.col{display:flex;gap:var(--gap)}
.col-label{font-family:var(--f-mono);font-size:11px;letter-spacing:.14em;color:var(--board-dim);text-transform:uppercase;white-space:nowrap;overflow:hidden}
.labels{cursor:default}
.labels .col{display:block}
.cell{position:relative;width:var(--cw);height:calc(var(--cw)*1.42);perspective:240px;font-family:var(--f-display);font-weight:700;font-size:calc(var(--cw)*1.08);color:var(--flap-ink);flex:none}
.cell.hot{color:var(--gold)}
.cell::after{content:"";position:absolute;left:0;right:0;top:50%;height:1px;margin-top:-.5px;background:#000;z-index:4}
.h,.leaf{position:absolute;left:0;right:0;height:50%;overflow:hidden;background:var(--flap)}
.t,.lt{top:0;border-radius:3px 3px 0 0}
.b,.lb{bottom:0;border-radius:0 0 3px 3px;background:var(--flap-lo)}
.h i,.leaf i{position:absolute;left:0;right:0;height:200%;display:flex;align-items:center;justify-content:center;font-style:normal;line-height:1}
.t i,.lt i{top:0}.b i,.lb i{bottom:0}
.leaf{z-index:2;backface-visibility:hidden;-webkit-backface-visibility:hidden}
.lt{transform-origin:50% 100%}
.lb{transform-origin:50% 0;transform:rotateX(90deg)}
.board-foot{display:flex;justify-content:space-between;align-items:center;gap:14px 24px;flex-wrap:wrap;margin-top:18px;padding-top:16px;border-top:1px dashed var(--board-line)}
.next-stop{font-family:var(--f-mono);font-size:13px;letter-spacing:.08em;color:var(--board-dim);text-transform:uppercase}
.next-stop a{color:var(--flap-ink);text-decoration:none;border-bottom:1px solid var(--gold)}
.next-stop a:hover{color:var(--gold)}
@media (max-width:700px){
  .board{--cw:min(22px,calc((100vw - 2*var(--gutter) - 2*clamp(14px,2.4vw,28px) - 60px)/20.9))}
  .c-when,.c-trip{display:none!important}
}

/* ---------- Home hero ---------- */
.hero{padding-block:clamp(40px,6vw,72px) clamp(120px,16vw,210px)}
.hero-top{display:grid;grid-template-columns:1.25fr 1fr;gap:clamp(24px,4vw,64px);align-items:end;margin-bottom:clamp(28px,4vw,44px)}
.hero h1 .gold{color:var(--gold-text)}
.hero h1 .serif,.phero h1 .serif{display:block;font-family:var(--f-serif);font-style:italic;font-weight:400;text-transform:none;font-size:.42em;line-height:1.05;margin-top:.22em;color:var(--brand);letter-spacing:0}
.hero-side{display:grid;gap:22px}
.hero-side .lede{color:var(--ink);opacity:.82}
@media (max-width:860px){.hero-top{grid-template-columns:1fr}}

/* ---------- Service tiles (home) ---------- */
.services{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.svc{position:relative;display:grid;gap:14px;align-content:start;padding:26px;border-radius:22px;background:var(--surface);border:1px solid var(--line);text-decoration:none;overflow:hidden;transition:transform .4s var(--ease),box-shadow .4s,border-color .3s;min-height:290px}
.svc:hover{transform:translateY(-6px);box-shadow:var(--shadow);border-color:transparent}
.svc .ic{width:58px;height:58px;border-radius:16px;display:grid;place-items:center;background:var(--bg-2);color:var(--brand);transition:transform .5s var(--ease),background .3s,color .3s}
.svc:hover .ic{transform:rotate(-8deg) scale(1.08);background:var(--gold);color:var(--gold-ink)}
.svc .ic svg{width:30px;height:30px}
.svc h3{font-family:var(--f-display);font-weight:800;font-size:32px;text-transform:uppercase}
.svc p{color:var(--muted);font-size:15.5px}
.svc .more{margin-top:auto;font-family:var(--f-mono);font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--brand);display:flex;align-items:center;gap:8px}
.svc .more svg{width:16px;transition:transform .3s var(--ease)}
.svc:hover .more svg{transform:translateX(6px)}
.svc .bgnum{position:absolute;right:-6px;bottom:-26px;font-family:var(--f-display);font-weight:900;font-size:150px;line-height:1;color:var(--bg-2);z-index:-1;transition:transform .6s var(--ease)}
.svc{isolation:isolate}
.svc:hover .bgnum{transform:translateY(-10px)}
@media (max-width:1000px){.services{grid-template-columns:1fr 1fr}}
@media (max-width:540px){.services{grid-template-columns:1fr}.svc{min-height:0}}

/* ---------- Facts strip ---------- */
.facts{border-block:1px solid var(--line);padding-block:0;background:var(--surface)}
.facts .wrap{display:grid;grid-template-columns:repeat(4,1fr)}
.fact{padding:22px 20px;display:grid;gap:2px;border-left:1px solid var(--line)}
.fact:first-child{border-left:0;padding-left:0}
.fact b{font-family:var(--f-display);font-size:30px;font-weight:800;text-transform:uppercase;line-height:1.1}
.fact span{font-size:14px;color:var(--muted)}
.stars-txt{color:var(--gold-text);letter-spacing:2px}
@media (max-width:860px){.facts .wrap{grid-template-columns:1fr 1fr}.fact:nth-child(3){border-left:0;padding-left:0}.fact:nth-child(n+3){border-top:1px solid var(--line)}}
@media (max-width:420px){.fact{padding:16px 12px}.fact b{font-size:24px}}

/* marquee */
.marquee{overflow:hidden;background:var(--band);color:var(--band-ink);padding-block:18px;border-block:1px solid var(--band-2)}
.marquee .track{display:flex;gap:42px;width:max-content;animation:marq 40s linear infinite;font-family:var(--f-display);font-weight:800;font-size:clamp(26px,3.4vw,40px);text-transform:uppercase;letter-spacing:.02em}
.marquee .track span{display:flex;align-items:center;gap:42px;white-space:nowrap}
.marquee .track span::after{content:"";width:12px;height:12px;border-radius:50%;background:var(--gold)}
.marquee:hover .track{animation-play-state:paused}
@keyframes marq{to{transform:translateX(-50%)}}

/* ---------- Boarding pass ---------- */
.pass{display:grid;grid-template-columns:1fr auto;background:var(--surface);border-radius:22px;box-shadow:var(--shadow);overflow:hidden;position:relative;border:1px solid var(--line)}
.pass-main{padding:clamp(24px,4vw,44px);display:grid;gap:28px;min-width:0}
.pass-top{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap}
.tag-pill{display:inline-flex;align-items:center;gap:8px;font-family:var(--f-mono);font-size:12px;letter-spacing:.12em;text-transform:uppercase;padding:7px 12px;border-radius:999px;background:color-mix(in srgb,var(--gold) 22%,transparent);color:var(--gold-text)}
.tag-pill::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--gold);animation:pulse 1.6s infinite}
@keyframes pulse{50%{opacity:.25}}
.route{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:clamp(12px,3vw,28px)}
.route .code{font-family:var(--f-display);font-weight:900;font-size:clamp(54px,9vw,112px);line-height:.85}
.route .city{font-family:var(--f-mono);font-size:12px;letter-spacing:.12em;color:var(--muted);text-transform:uppercase;margin-top:8px}
.route .path{position:relative;height:2px;background:repeating-linear-gradient(90deg,var(--line) 0 8px,transparent 8px 14px)}
.route .path svg{position:absolute;left:0;top:50%;width:34px;height:34px;transform:translate(-50%,-50%);color:var(--brand);background:var(--surface);padding:4px;animation:cross 5s var(--ease) infinite}
@keyframes cross{0%{left:0}70%,100%{left:100%}}
.pass-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;border-top:1px dashed var(--line);padding-top:24px}
.pf{display:grid;gap:4px;min-width:0}
.pf small{font-family:var(--f-mono);font-size:11px;letter-spacing:.14em;color:var(--muted);text-transform:uppercase}
.pf b{font-family:var(--f-display);font-weight:800;font-size:clamp(22px,2.6vw,30px);line-height:1.05;text-transform:uppercase;font-variant-numeric:tabular-nums}
.pass-note{color:var(--muted);max-width:62ch}
.pass-stub{width:clamp(220px,24vw,290px);background:var(--band);color:var(--band-ink);padding:clamp(24px,3vw,36px);display:flex;flex-direction:column;justify-content:space-between;gap:24px;position:relative;border-left:2px dashed color-mix(in srgb,var(--band-ink) 30%,transparent)}
.pass-stub::before,.pass-stub::after{content:"";position:absolute;left:-15px;width:28px;height:28px;border-radius:50%;background:var(--bg)}
.pass-stub::before{top:-14px}.pass-stub::after{bottom:-14px}
.countdown b{display:block;font-family:var(--f-display);font-weight:900;font-size:clamp(64px,7vw,92px);line-height:.85;color:var(--gold);font-variant-numeric:tabular-nums}
.countdown span{font-family:var(--f-mono);font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--band-muted)}
.barcode{height:56px;background:repeating-linear-gradient(90deg,var(--band-ink) 0 2px,transparent 2px 4px,var(--band-ink) 4px 5px,transparent 5px 9px,var(--band-ink) 9px 12px,transparent 12px 14px);opacity:.85;border-radius:2px}
@media (max-width:900px){.pass{grid-template-columns:1fr}.pass-stub{width:auto;border-left:0;border-top:2px dashed color-mix(in srgb,var(--band-ink) 30%,transparent)}.pass-stub::before,.pass-stub::after{top:-14px;bottom:auto}.pass-stub::before{left:-14px}.pass-stub::after{left:auto;right:-14px}.pass-grid{grid-template-columns:1fr 1fr}}

/* ---------- Traveller flip cards ---------- */
.types{display:grid;grid-template-columns:repeat(5,1fr);gap:16px}
.tcard{perspective:1200px;border:0;padding:0;background:none;text-align:left;cursor:pointer;color:inherit;font:inherit;height:340px}
.tin{position:relative;width:100%;height:100%;transition:transform .8s var(--ease);transform-style:preserve-3d}
.tcard:hover .tin,.tcard:focus-visible .tin,.tcard.on .tin{transform:rotateY(180deg)}
.tf,.tb{position:absolute;inset:0;border-radius:18px;backface-visibility:hidden;-webkit-backface-visibility:hidden;padding:22px;display:flex;flex-direction:column;justify-content:space-between;overflow:hidden}
.tf{background:var(--surface);border:1px solid var(--line)}
.tf .num{font-family:var(--f-mono);font-size:12px;color:var(--muted);letter-spacing:.12em}
.tf h3{font-family:var(--f-display);font-weight:900;font-size:44px;text-transform:uppercase;line-height:.9}
.tf .glyph{width:64px;height:64px;color:var(--teal)}
.tf .hint{font-family:var(--f-mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.tb{background:var(--band);color:var(--band-ink);transform:rotateY(180deg)}
.tb p{font-size:15.5px;line-height:1.55}
.tb ul{margin:0;padding:0;list-style:none;display:grid;gap:6px;font-size:14px;color:var(--band-muted)}
.tb li::before{content:"→ ";color:var(--gold)}
.tb .go{font-family:var(--f-mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--gold)}
@media (max-width:1100px) and (min-width:641px){.types{grid-template-columns:repeat(6,1fr)}.tcard{grid-column:span 2}.tcard:nth-child(4){grid-column:2/span 2}}
@media (max-width:640px){.types{grid-template-columns:1fr 1fr}.tcard{height:300px}.tcard:last-child{grid-column:1/-1;height:240px}.tf h3{font-size:36px}}

/* ---------- Luggage tags ---------- */
.routes{display:grid;grid-template-columns:repeat(4,1fr);gap:22px 18px}
@media (max-width:1000px){.routes{grid-template-columns:repeat(2,1fr)}}
@media (max-width:520px){.routes{grid-template-columns:1fr}}
.ltag{position:relative;background:var(--surface);border:1px solid var(--line);clip-path:polygon(16% 0,84% 0,100% 7%,100% 100%,0 100%,0 7%);border-radius:0 0 16px 16px;display:flex;flex-direction:column;transition:transform .45s var(--ease);transform-origin:50% 0}
.ltag:hover{transform:rotate(-2deg) translateY(-4px)}
.ltag:nth-child(even):hover{transform:rotate(2deg) translateY(-4px)}
.tsky{position:relative;height:190px;background:var(--sky);display:flex;flex-direction:column;justify-content:flex-end;padding:18px;color:#fff;overflow:hidden}
.tsky::before{content:"";position:absolute;top:16px;left:50%;width:18px;height:18px;margin-left:-9px;border-radius:50%;background:var(--bg);box-shadow:inset 0 0 0 3px rgba(255,255,255,.55);z-index:2}
.tsky .iata{font-family:var(--f-display);font-weight:900;font-size:84px;line-height:.8;letter-spacing:.01em;text-shadow:0 2px 20px rgba(0,0,0,.18);position:relative;z-index:1;transition:transform .5s var(--ease)}
.ltag:hover .iata{transform:translateY(-6px) scale(1.04)}
.tsky .sun{position:absolute;right:-30px;top:30px;width:120px;height:120px;border-radius:50%;background:var(--sun);opacity:.9;transition:transform .8s var(--ease)}
.ltag:hover .sun{transform:translate(-18px,10px)}
.tsky .ridge{position:absolute;left:0;right:0;bottom:0;height:60px;background:var(--ridge);clip-path:var(--shape)}
.tsky .country{position:relative;z-index:1;font-family:var(--f-mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;opacity:.9;margin-top:6px}
.tag-body{padding:18px;display:grid;gap:12px;flex:1;align-content:start}
.tag-body h3{font-family:var(--f-display);font-weight:800;font-size:28px;text-transform:uppercase}
.tag-body p{font-size:15px;color:var(--muted);line-height:1.5}
.tag-foot{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:14px 18px;border-top:1px dashed var(--line);margin-top:auto}
.tag-foot small{font-family:var(--f-mono);font-size:11px;letter-spacing:.1em;color:var(--muted);text-transform:uppercase}

/* ---------- Process ---------- */
.process{background:var(--surface);border-block:1px solid var(--line)}
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(18px,3vw,36px);position:relative;list-style:none;margin:0;padding:0}
.steps::before{content:"";position:absolute;left:0;right:0;top:27px;height:2px;background:repeating-linear-gradient(90deg,var(--line) 0 10px,transparent 10px 18px)}
.steps .plane-run{position:absolute;top:16px;left:0;width:24px;height:24px;color:var(--gold-text);animation:run 7s var(--ease) infinite}
@keyframes run{0%{left:0}80%,100%{left:calc(100% - 24px)}}
.step{position:relative;display:grid;gap:14px;align-content:start}
.step .dot{width:56px;height:56px;border-radius:50%;display:grid;place-items:center;background:var(--bg);border:2px solid var(--brand);font-family:var(--f-display);font-weight:900;font-size:26px;color:var(--brand);position:relative;z-index:1}
.step:last-child .dot{background:var(--gold);border-color:var(--gold);color:var(--gold-ink)}
.step h3{font-family:var(--f-display);font-weight:800;font-size:28px;text-transform:uppercase}
.step p{color:var(--muted);font-size:15.5px}
@media (max-width:860px){.steps{grid-template-columns:1fr 1fr;row-gap:40px}.steps::before,.steps .plane-run{display:none}}
@media (max-width:480px){.steps{grid-template-columns:1fr}}

/* ---------- Trust ---------- */
.trust{display:grid;grid-template-columns:1fr 1.3fr;gap:20px}
.rating,.founder{border-radius:22px;padding:clamp(24px,4vw,44px);display:grid;gap:18px;align-content:space-between}
.rating{background:var(--gold);color:var(--gold-ink);position:relative;overflow:hidden}
.rating .big{font-family:var(--f-display);font-weight:900;font-size:clamp(110px,14vw,170px);line-height:.8}
.rating .st{font-size:28px;letter-spacing:4px}
.rating .st span{display:inline-block;animation:pop .6s var(--ease) both}
.rating .st span:nth-child(2){animation-delay:.1s}.rating .st span:nth-child(3){animation-delay:.2s}.rating .st span:nth-child(4){animation-delay:.3s}.rating .st span:nth-child(5){animation-delay:.4s}
@keyframes pop{from{transform:scale(.3) rotate(-30deg)}}
.rating p{font-size:17px;max-width:34ch}
.rating .btn{background:var(--gold-ink);color:var(--gold);justify-self:start}
.founder{background:var(--surface);border:1px solid var(--line);grid-template-columns:auto 1fr;align-items:start;column-gap:28px}
.mono{width:96px;height:96px;border-radius:50%;background:var(--band);color:var(--band-ink);display:grid;place-items:center;font-family:var(--f-serif);font-size:44px;font-style:italic;position:relative}
.mono::after{content:"15";position:absolute;right:-8px;bottom:-4px;width:38px;height:38px;border-radius:50%;background:var(--gold);color:var(--gold-ink);font:800 18px/38px var(--f-display);text-align:center;font-style:normal}
.founder h3{font-family:var(--f-display);font-weight:800;font-size:clamp(30px,3.6vw,42px);text-transform:uppercase}
.founder .role{font-family:var(--f-mono);font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--teal);margin-top:6px}
.founder .txt{display:grid;gap:14px;color:var(--muted)}
.flags{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:8px;padding-top:18px;border-top:1px dashed var(--line)}
.flags span{font-family:var(--f-mono);font-size:11.5px;letter-spacing:.06em;text-transform:uppercase;padding:6px 10px;border:1px solid var(--line);border-radius:6px;color:var(--muted);transition:background .2s,color .2s,transform .2s}
.flags span:hover{background:var(--brand);color:var(--brand-ink);transform:translateY(-2px) rotate(-3deg)}
@media (max-width:900px){.trust{grid-template-columns:1fr}}
@media (max-width:520px){.founder{grid-template-columns:1fr}.mono{width:80px;height:80px;font-size:36px}}

/* =========================================================
   LEAD FORM (shared, animated)
   ========================================================= */
.contact{background:var(--band);color:var(--band-ink);position:relative;overflow:hidden;isolation:isolate}
.contact::before{content:"";position:absolute;inset:auto -10% -40% -10%;height:70%;background:radial-gradient(60% 60% at 50% 100%,color-mix(in srgb,var(--teal) 55%,transparent),transparent 70%);z-index:-1}
.contact .eyebrow{color:var(--gold)}
.contact .h2 em{color:var(--gold)}
.contact .lede{color:var(--band-muted)}
.lead-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(28px,5vw,72px);align-items:start}
.lead-side{display:grid;gap:26px;min-width:0}
.route-map{position:relative;width:100%;max-width:440px;aspect-ratio:440/220}
.route-map svg{width:100%;height:100%;overflow:visible}
.route-map .track-bg{fill:none;stroke:color-mix(in srgb,var(--band-ink) 25%,transparent);stroke-width:2;stroke-dasharray:6 8}
.route-map .track-fg{fill:none;stroke:var(--gold);stroke-width:3;stroke-linecap:round;transition:stroke-dashoffset .8s var(--ease)}
.route-map .pin{fill:var(--band-ink)}
.route-map .pin-to{fill:var(--gold)}
.route-map text{font-family:var(--f-mono);font-size:12px;letter-spacing:.1em;fill:var(--band-muted);text-transform:uppercase}
.route-map .pct{font-family:var(--f-display);font-weight:900;font-size:40px;fill:var(--band-ink);letter-spacing:0}
.route-map .rplane{transition:transform .8s var(--ease)}
.lead-contacts{display:grid;gap:12px}
.lc{display:flex;align-items:center;gap:14px;padding:14px 16px;border-radius:14px;background:var(--band-2);text-decoration:none;color:var(--band-ink);transition:transform .3s var(--ease),background .3s}
.lc:hover{transform:translateX(6px);background:color-mix(in srgb,var(--band-2) 80%,var(--teal))}
.lc svg{width:22px;height:22px;color:var(--gold);flex:none}
.lc small{display:block;font-family:var(--f-mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--band-muted)}
.lc b{font-weight:600;font-size:15.5px;word-break:break-word}

.lead-card{position:relative;perspective:1600px;min-width:0}
.lead-flip{position:relative;transition:transform 1s var(--ease);transform-style:preserve-3d}
.lead-card.done .lead-flip{transform:rotateY(180deg)}
.lead-front,.lead-back{background:var(--surface);color:var(--ink);border-radius:26px;padding:clamp(22px,3.4vw,40px);box-shadow:0 50px 100px -40px rgba(0,0,0,.6);backface-visibility:hidden;-webkit-backface-visibility:hidden}
.lead-back{position:absolute;inset:0;transform:rotateY(180deg);display:grid;place-items:center;text-align:center;align-content:center;gap:16px;overflow:hidden}
.lead-front h3{font-family:var(--f-display);font-weight:800;font-size:clamp(28px,3vw,36px);text-transform:uppercase;margin-bottom:6px}
.lead-front .sub{color:var(--muted);font-size:15px;margin-bottom:22px}
.lead-form{display:grid;gap:16px}
.fgrid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.fgrid .full{grid-column:1/-1}
@media (max-width:560px){.fgrid{grid-template-columns:1fr}}
.fl{position:relative;min-width:0}
.fl input,.fl select,.fl textarea{width:100%;font:500 16px var(--f-body);color:var(--ink);background:var(--bg);border:1.5px solid var(--line);border-radius:14px;padding:24px 16px 9px;appearance:none;-webkit-appearance:none;transition:border-color .25s,box-shadow .25s,background .25s}
.fl textarea{min-height:110px;resize:vertical;line-height:1.5}
.fl select{background-image:linear-gradient(45deg,transparent 50%,var(--muted) 50%),linear-gradient(135deg,var(--muted) 50%,transparent 50%);background-position:calc(100% - 22px) 55%,calc(100% - 17px) 55%;background-size:5px 5px;background-repeat:no-repeat;padding-right:40px}
.fl label{position:absolute;left:17px;top:17px;font-size:15.5px;color:var(--muted);pointer-events:none;transform-origin:0 0;transition:transform .25s var(--ease),color .25s}
.fl input:focus,.fl select:focus,.fl textarea:focus{outline:none;border-color:var(--brand);background:var(--surface);box-shadow:0 0 0 4px color-mix(in srgb,var(--brand) 16%,transparent)}
.fl input:focus+label,.fl input:not(:placeholder-shown)+label,.fl textarea:focus+label,.fl textarea:not(:placeholder-shown)+label,.fl select+label{transform:translateY(-10px) scale(.74);color:var(--teal);font-weight:600;letter-spacing:.02em}
.fl input::placeholder,.fl textarea::placeholder{color:transparent}
.fl .ok-tick{position:absolute;right:14px;top:50%;width:22px;height:22px;margin-top:-11px;border-radius:50%;background:var(--ok);color:#fff;display:grid;place-items:center;transform:scale(0);transition:transform .35s var(--ease)}
.fl textarea~.ok-tick{top:22px;margin-top:0}
.fl .ok-tick svg{width:13px;height:13px}
.fl.valid .ok-tick{transform:scale(1)}
.fl.bad input,.fl.bad textarea{border-color:var(--err);animation:shake .45s}
.fl .msg{display:block;font-size:12.5px;color:var(--err);margin-top:6px;padding-left:4px}
@keyframes shake{20%,60%{transform:translateX(-6px)}40%,80%{transform:translateX(6px)}}
.chip-label{font-family:var(--f-mono);font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:10px;display:block}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{position:relative}
.chip input{position:absolute;opacity:0;pointer-events:none}
.chip span{display:inline-flex;align-items:center;gap:8px;padding:10px 15px;border-radius:999px;border:1.5px solid var(--line);font-weight:600;font-size:14.5px;cursor:pointer;transition:background .25s,color .25s,border-color .25s,transform .25s var(--ease);user-select:none;color:var(--ink)}
.chip span:hover{border-color:var(--brand);transform:translateY(-2px)}
.chip input:checked+span{background:var(--brand);color:var(--brand-ink);border-color:var(--brand);animation:bump .35s var(--ease)}
.chip input:focus-visible+span{outline:2px solid var(--gold);outline-offset:3px}
@keyframes bump{50%{transform:scale(1.08)}}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.consent{font-size:12.5px;color:var(--muted)}
.send{position:relative;width:100%;height:60px;border:0;border-radius:999px;background:var(--gold);color:var(--gold-ink);font:700 16px var(--f-body);cursor:pointer;overflow:hidden;transition:width .5s var(--ease),transform .25s,box-shadow .3s;box-shadow:0 14px 30px -14px rgba(242,179,61,.95)}
.send:hover{transform:translateY(-2px)}
.send .lbl{display:inline-flex;align-items:center;gap:10px;white-space:nowrap;transition:opacity .2s,transform .3s}
.send .lbl svg{width:18px;height:18px}
.send .pp{position:absolute;left:50%;top:50%;width:26px;height:26px;margin:-13px 0 0 -13px;opacity:0}
.send.sending{width:60px;margin-inline:auto;display:block}
.send.sending .lbl{opacity:0;transform:translateY(-10px)}
.send.sending .pp{opacity:1;animation:wobble .6s ease-in-out infinite}
.send.launch .pp{animation:launch .9s cubic-bezier(.5,0,.75,0) forwards}
@keyframes wobble{50%{transform:translateY(-3px) rotate(-6deg)}}
@keyframes launch{to{transform:translate(260px,-240px) rotate(-20deg) scale(.4);opacity:0}}
.form-err{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;border-radius:12px;background:color-mix(in srgb,var(--err) 12%,transparent);color:var(--err);font-size:14px}
.stamp-ok{width:200px;height:200px;border-radius:50%;border:4px solid var(--ok);color:var(--ok);display:grid;place-items:center;text-align:center;font-family:var(--f-display);font-weight:900;font-size:30px;line-height:.95;text-transform:uppercase;position:relative;transform:rotate(-12deg) scale(2.4);opacity:0}
.stamp-ok::before{content:"";position:absolute;inset:8px;border:2px dashed var(--ok);border-radius:50%}
.stamp-ok small{display:block;font-family:var(--f-mono);font-weight:500;font-size:11px;letter-spacing:.16em;margin-top:6px}
.lead-card.done .stamp-ok{animation:slam .55s .75s cubic-bezier(.3,1.6,.5,1) forwards}
@keyframes slam{to{transform:rotate(-12deg) scale(1);opacity:1}}
.lead-back h3{font-family:var(--f-display);font-weight:800;font-size:clamp(30px,3.4vw,40px);text-transform:uppercase}
.lead-back p{color:var(--muted);max-width:40ch}
.lead-back .ref{font-family:var(--f-mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--teal)}
.preview-note{font-size:12.5px;padding:8px 12px;border-radius:10px;background:var(--bg-2);color:var(--muted)}
.confetti{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.confetti i{position:absolute;top:-20px;width:9px;height:14px;border-radius:2px;animation:fall 2.4s ease-in forwards}
@keyframes fall{to{transform:translateY(720px) rotate(540deg);opacity:0}}
@media (max-width:900px){.lead-grid{grid-template-columns:1fr}.route-map{max-width:360px}}

/* ---------- Footer ---------- */
footer{background:var(--board);color:var(--flap-ink);padding-block:clamp(44px,6vw,72px) 28px;position:relative;overflow:hidden}
.f-cta{display:flex;justify-content:space-between;align-items:flex-end;gap:28px;flex-wrap:wrap}
.f-big{font-family:var(--f-display);font-weight:900;font-size:clamp(64px,12vw,180px);text-transform:uppercase;line-height:.82;letter-spacing:-.01em}
.f-big span{color:var(--gold)}
.f-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.1fr;gap:32px;margin-top:clamp(40px,6vw,72px);padding-top:36px;border-top:1px solid var(--board-line)}
.f-brand{display:grid;gap:16px;align-content:start}
.f-brand .logo{color:var(--flap-ink)}
.f-brand .logo .wm small{color:#8FC7CE}
.f-grid h4{margin:0 0 14px;font-family:var(--f-mono);font-weight:500;font-size:11.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--board-dim)}
.f-grid ul{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.f-grid a{text-decoration:none;color:var(--flap-ink);font-size:15.5px;background:linear-gradient(var(--gold),var(--gold)) 0 100%/0 1px no-repeat;transition:background-size .3s var(--ease),color .2s}
.f-grid a:hover{background-size:100% 1px;color:var(--gold)}
.f-contact li{display:grid;grid-template-columns:20px 1fr;gap:12px;font-size:15px;color:var(--flap-ink);line-height:1.5}
.f-contact svg{width:18px;height:18px;color:var(--gold);margin-top:3px}
.socials{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}
.socials a{display:inline-flex;align-items:center;gap:8px;padding:9px 13px;border-radius:999px;border:1px solid var(--board-line);font-size:13.5px;background:none;transition:background .25s,border-color .25s,transform .25s var(--ease),color .2s}
.socials a:hover{background:var(--gold);border-color:var(--gold);color:var(--gold-ink);transform:translateY(-3px)}
.socials a svg{width:15px;height:15px}
.f-bottom{display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;margin-top:48px;font-family:var(--f-mono);font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--board-dim)}
@media (max-width:980px){.f-grid{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.f-grid{grid-template-columns:1fr}}

/* ---------- Floating chat ---------- */
.fab{position:fixed;right:max(16px,env(safe-area-inset-right,0px));bottom:calc(18px + env(safe-area-inset-bottom,0px));z-index:70;display:flex;align-items:center;gap:10px;padding:12px 18px 12px 14px;border-radius:999px;background:#1E8E57;color:#fff;text-decoration:none;font-weight:700;font-size:14.5px;box-shadow:0 18px 40px -14px rgba(0,0,0,.5);transition:transform .3s var(--ease);animation:fabin .8s 1.2s var(--ease) both}
.fab:hover{transform:translateY(-4px) scale(1.03)}
.fab svg{width:24px;height:24px}
.fab::before{content:"";position:absolute;inset:0;border-radius:inherit;border:2px solid #1E8E57;animation:ring 2.4s 2s infinite}
@keyframes ring{0%{transform:scale(1);opacity:.8}100%{transform:scale(1.35);opacity:0}}
@keyframes fabin{from{transform:translateY(120px)}}
@media (max-width:520px){.fab .t{display:none}.fab{padding:14px}}

.toast{position:fixed;left:50%;bottom:calc(90px + env(safe-area-inset-bottom,0px));transform:translate(-50%,20px);background:var(--ink);color:var(--bg);padding:12px 18px;border-radius:999px;font-weight:600;font-size:14px;opacity:0;transition:.3s var(--ease);pointer-events:none;z-index:100;max-width:calc(100vw - 32px)}
.toast.show{opacity:1;transform:translate(-50%,0)}

/* =========================================================
   GROUP TRIPS
   ========================================================= */
.petals{position:absolute;inset:0;z-index:-1;pointer-events:none;width:100%;height:100%}
.sakura-sky{--sky-1:#FCE3EC;--sky-2:#F4B3C8}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .sakura-sky{--sky-1:#1A1035;--sky-2:#4A2150}}
:root[data-theme="dark"] .sakura-sky{--sky-1:#1A1035;--sky-2:#4A2150}
.clock{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;max-width:520px}
.clock div{background:var(--board);color:var(--flap-ink);border-radius:14px;padding:14px 8px 10px;text-align:center;position:relative;box-shadow:var(--shadow)}
.clock div::after{content:"";position:absolute;left:0;right:0;top:46%;height:1px;background:#000}
.clock b{display:block;font-family:var(--f-display);font-weight:900;font-size:clamp(38px,5vw,58px);line-height:1;font-variant-numeric:tabular-nums}
.clock b.tick{animation:tick .45s var(--ease)}
@keyframes tick{0%{transform:rotateX(-80deg);opacity:.2}100%{transform:none}}
.clock span{font-family:var(--f-mono);font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--board-dim)}
.price-card{background:var(--surface);border-radius:24px;padding:clamp(22px,3vw,34px);box-shadow:var(--shadow-lg);display:grid;gap:18px;border:1px solid var(--line)}
.price-card .amt{font-family:var(--f-display);font-weight:900;font-size:clamp(54px,6vw,76px);line-height:.9}
.price-card .amt small{font-family:var(--f-mono);font-weight:500;font-size:12px;letter-spacing:.12em;color:var(--muted);text-transform:uppercase;display:block;margin-top:8px}
.kv{display:grid;grid-template-columns:1fr 1fr;gap:14px;border-block:1px dashed var(--line);padding-block:16px}
.kv small{display:block;font-family:var(--f-mono);font-size:10.5px;letter-spacing:.14em;color:var(--muted);text-transform:uppercase}
.kv b{font-family:var(--f-display);font-weight:800;font-size:22px;text-transform:uppercase}
.incl{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.incl-item{background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:24px;display:grid;gap:12px;align-content:start;transition:transform .4s var(--ease),box-shadow .4s}
.incl-item:hover{transform:translateY(-5px) rotate(-.6deg);box-shadow:var(--shadow)}
.incl-item svg{width:40px;height:40px;color:var(--teal)}
.incl-item h3{font-family:var(--f-display);font-weight:800;font-size:26px;text-transform:uppercase}
.incl-item p{color:var(--muted);font-size:15.5px}
@media (max-width:900px){.incl{grid-template-columns:1fr 1fr}}
@media (max-width:540px){.incl{grid-template-columns:1fr}}
.fit{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.fit div{padding:20px;border-radius:18px;background:var(--bg-2);display:grid;gap:6px}
.fit b{font-family:var(--f-display);font-weight:800;font-size:24px;text-transform:uppercase}
.fit span{font-size:14.5px;color:var(--muted)}
@media (max-width:860px){.fit{grid-template-columns:1fr 1fr}}
.timeline{list-style:none;margin:0;padding:0;display:grid;gap:0;position:relative}
.timeline li{display:grid;grid-template-columns:120px 1fr;gap:24px;padding:22px 0;border-bottom:1px solid var(--line);align-items:baseline}
.timeline .when{font-family:var(--f-mono);font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--teal)}
.timeline h3{font-family:var(--f-display);font-weight:800;font-size:26px;text-transform:uppercase}
.timeline p{color:var(--muted);font-size:15.5px;margin-top:4px}
@media (max-width:560px){.timeline li{grid-template-columns:1fr;gap:6px}}
.custom-groups{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.cg{border-radius:20px;padding:22px;min-height:200px;display:flex;flex-direction:column;justify-content:space-between;color:#fff;background:var(--g);position:relative;overflow:hidden;cursor:pointer;border:0;text-align:left;font:inherit;transition:transform .4s var(--ease)}
.cg:hover{transform:translateY(-6px) rotate(-1deg)}
.cg h3{font-family:var(--f-display);font-weight:900;font-size:32px;text-transform:uppercase;line-height:.95}
.cg p{font-size:14.5px;opacity:.9}
.cg .arrow{font-family:var(--f-mono);font-size:12px;letter-spacing:.12em;text-transform:uppercase}
@media (max-width:900px){.custom-groups{grid-template-columns:1fr 1fr}}
@media (max-width:480px){.custom-groups{grid-template-columns:1fr}}

/* FAQ */
.faq{display:grid;gap:10px;max-width:860px}
.faq details{background:var(--surface);border:1px solid var(--line);border-radius:16px;overflow:hidden;transition:box-shadow .3s}
.faq details[open]{box-shadow:var(--shadow)}
.faq summary{list-style:none;cursor:pointer;padding:20px 22px;font-weight:700;font-size:17px;display:flex;justify-content:space-between;align-items:center;gap:16px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-family:var(--f-display);font-weight:800;font-size:28px;line-height:1;color:var(--brand);transition:transform .3s var(--ease)}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq details p{padding:0 22px 20px;color:var(--muted)}

/* =========================================================
   CUSTOMISE WIZARD
   ========================================================= */
.wiz{display:grid;grid-template-columns:1.35fr .9fr;gap:clamp(20px,3vw,40px);align-items:start}
.wiz-main{background:var(--surface);border:1px solid var(--line);border-radius:26px;box-shadow:var(--shadow);overflow:hidden;min-width:0}
.wiz-top{padding:18px clamp(18px,3vw,32px);border-bottom:1px solid var(--line);display:grid;gap:14px}
.wiz-steps{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none}
.wiz-steps::-webkit-scrollbar{display:none}
.wiz-steps button{flex:none;border:1.5px solid var(--line);background:none;border-radius:999px;padding:8px 13px;font:600 13px var(--f-body);color:var(--muted);cursor:pointer;display:flex;gap:7px;align-items:center;transition:background .25s,color .25s,border-color .25s}
.wiz-steps button i{font-style:normal;font-family:var(--f-mono);font-size:11px}
.wiz-steps button.done{color:var(--ink);border-color:var(--teal)}
.wiz-steps button.cur{background:var(--brand);color:var(--brand-ink);border-color:var(--brand)}
.wiz-steps button:disabled{opacity:.45;cursor:not-allowed}
.wiz-bar{height:6px;border-radius:999px;background:var(--bg-2);position:relative;overflow:visible}
.wiz-bar i{position:absolute;left:0;top:0;bottom:0;border-radius:inherit;background:linear-gradient(90deg,var(--teal),var(--brand));width:var(--p,12%);transition:width .6s var(--ease)}
.wiz-bar svg{position:absolute;top:-9px;left:calc(var(--p,12%) - 12px);width:24px;height:24px;color:var(--brand);transition:left .6s var(--ease)}
.wiz-body{padding:clamp(22px,3.4vw,40px);min-height:460px;position:relative}
.wstep{display:grid;gap:22px;animation:stepin .55s var(--ease)}
.wstep.back{animation:stepback .55s var(--ease)}
@keyframes stepin{from{opacity:0;transform:translateX(40px)}}
@keyframes stepback{from{opacity:0;transform:translateX(-40px)}}
.wstep h2{font-family:var(--f-display);font-weight:800;font-size:clamp(34px,4.4vw,52px);text-transform:uppercase}
.wstep h2 em{font-family:var(--f-serif);font-style:italic;font-weight:400;text-transform:none;color:var(--brand)}
.wstep .hint{color:var(--muted);margin-top:-12px}
.dest-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.dpick{position:relative;border:0;padding:0;background:none;cursor:pointer;border-radius:16px;overflow:hidden;aspect-ratio:1/1.05;text-align:left;color:#fff;font:inherit;transition:transform .35s var(--ease)}
.dpick .bg{position:absolute;inset:0;background:var(--sky);transition:transform .6s var(--ease)}
.dpick .bg::after{content:"";position:absolute;left:0;right:0;bottom:0;height:45%;background:var(--ridge);clip-path:var(--shape)}
.dpick:hover{transform:translateY(-4px)}
.dpick:hover .bg{transform:scale(1.06)}
.dpick .tx{position:absolute;inset:auto 12px 10px 12px;display:grid;line-height:1.05}
.dpick .tx b{font-family:var(--f-display);font-weight:900;font-size:clamp(18px,1.9vw,24px);text-transform:uppercase;overflow-wrap:anywhere}
.dpick .tx small{font-family:var(--f-mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;opacity:.9}
.dpick .chk{position:absolute;top:10px;right:10px;width:28px;height:28px;border-radius:50%;background:rgba(255,255,255,.35);border:2px solid #fff;display:grid;place-items:center;transition:background .25s,transform .35s var(--ease);transform:scale(.8)}
.dpick .chk svg{width:14px;height:14px;opacity:0;color:var(--gold-ink)}
.dpick.sel{outline:3px solid var(--gold);outline-offset:-3px}
.dpick.sel .chk{background:var(--gold);border-color:var(--gold);transform:scale(1)}
.dpick.sel .chk svg{opacity:1}
@media (max-width:700px){.dest-grid{grid-template-columns:repeat(2,1fr)}}
.other-dest{display:flex;gap:10px;align-items:stretch;flex-wrap:wrap}
.other-dest .fl{flex:1 1 220px}
.big-chips{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}
.bchip{position:relative}
.bchip input{position:absolute;opacity:0;pointer-events:none}
.bchip span{display:grid;gap:8px;padding:18px 16px;border-radius:18px;border:1.5px solid var(--line);cursor:pointer;transition:all .3s var(--ease);height:100%}
.bchip span svg{width:30px;height:30px;color:var(--teal);transition:transform .4s var(--ease)}
.bchip span b{font-family:var(--f-display);font-weight:800;font-size:22px;text-transform:uppercase;line-height:1}
.bchip span small{color:var(--muted);font-size:13px;line-height:1.35}
.bchip span:hover{border-color:var(--brand);transform:translateY(-3px)}
.bchip input:checked+span{border-color:var(--brand);background:color-mix(in srgb,var(--brand) 9%,var(--surface));box-shadow:inset 0 0 0 1.5px var(--brand)}
.bchip input:checked+span svg{transform:rotate(-10deg) scale(1.15);color:var(--brand)}
.bchip input:focus-visible+span{outline:2px solid var(--gold);outline-offset:3px}
.counter-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}
.counter{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:16px 18px;border:1.5px solid var(--line);border-radius:18px}
.counter b{font-weight:700;display:block}
.counter small{color:var(--muted);font-size:13px}
.stepper{display:flex;align-items:center;gap:6px}
.stepper button{width:40px;height:40px;border-radius:50%;border:1.5px solid var(--line);background:var(--bg);color:var(--ink);font-size:20px;cursor:pointer;transition:background .2s,transform .2s}
.stepper button:hover{background:var(--brand);color:var(--brand-ink);border-color:var(--brand)}
.stepper button:active{transform:scale(.9)}
.stepper output{min-width:34px;text-align:center;font-family:var(--f-display);font-weight:900;font-size:28px;font-variant-numeric:tabular-nums}
.range-wrap{display:grid;gap:10px}
.range-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px}
.range-head b{font-family:var(--f-display);font-weight:900;font-size:clamp(40px,5vw,56px);line-height:1;color:var(--brand);font-variant-numeric:tabular-nums}
input[type=range]{-webkit-appearance:none;appearance:none;width:100%;height:8px;border-radius:999px;background:linear-gradient(90deg,var(--teal) var(--fill,30%),var(--bg-2) var(--fill,30%));outline:none}
input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:30px;height:30px;border-radius:50%;background:var(--gold);border:4px solid var(--surface);box-shadow:0 4px 12px rgba(0,0,0,.25);cursor:grab;transition:transform .2s}
input[type=range]::-webkit-slider-thumb:active{transform:scale(1.15);cursor:grabbing}
input[type=range]::-moz-range-thumb{width:24px;height:24px;border-radius:50%;background:var(--gold);border:4px solid var(--surface);cursor:grab}
.range-scale{display:flex;justify-content:space-between;font-family:var(--f-mono);font-size:11px;letter-spacing:.08em;color:var(--muted)}
.months{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:8px}
.mchip{position:relative}
.mchip input{position:absolute;opacity:0;pointer-events:none}
.mchip span{display:grid;place-items:center;gap:2px;padding:12px 6px;border-radius:14px;border:1.5px solid var(--line);cursor:pointer;transition:all .25s var(--ease);text-align:center}
.mchip span b{font-family:var(--f-display);font-weight:800;font-size:22px;text-transform:uppercase;line-height:1}
.mchip span small{font-family:var(--f-mono);font-size:10.5px;color:var(--muted)}
.mchip span:hover{border-color:var(--brand);transform:translateY(-2px)}
.mchip input:checked+span{background:var(--brand);border-color:var(--brand);color:var(--brand-ink)}
.mchip input:checked+span small{color:var(--brand-ink);opacity:.8}
.mchip input:focus-visible+span{outline:2px solid var(--gold);outline-offset:3px}
.wiz-nav{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:18px clamp(18px,3vw,32px);border-top:1px solid var(--line);background:var(--bg)}
.wiz-nav .btn[disabled]{opacity:.4;pointer-events:none}
.wiz-nav .btn.is-off{opacity:.5;box-shadow:none}
.wiz-nav .btn.sending{pointer-events:none}
.wiz-side{position:sticky;top:96px;display:grid;gap:14px;min-width:0}
.bp{background:var(--flap-ink);color:#1A1407;border-radius:22px;overflow:hidden;box-shadow:var(--shadow-lg);position:relative}
.bp-head{background:var(--board);color:var(--flap-ink);padding:16px 20px;display:flex;justify-content:space-between;align-items:center;gap:10px}
.bp-head img{width:26px}
.bp-head b{font-family:var(--f-display);font-weight:800;font-size:20px;letter-spacing:.06em;text-transform:uppercase}
.bp-head span{font-family:var(--f-mono);font-size:10.5px;letter-spacing:.14em;color:var(--board-dim);text-transform:uppercase}
.bp-body{padding:20px;display:grid;gap:16px}
.bp-route{display:flex;justify-content:space-between;align-items:end;gap:10px}
.bp-route .c{font-family:var(--f-display);font-weight:900;font-size:clamp(34px,3.8vw,48px);line-height:.88;text-transform:uppercase;min-width:0;overflow-wrap:anywhere}
.bp-route .c:first-child{flex:none}
.bp-route .c small{display:block;font-family:var(--f-mono);font-weight:500;font-size:10px;letter-spacing:.14em;color:#6B5A2E;margin-top:4px}
.bp-route svg{width:28px;height:28px;color:#6B5A2E;flex:none;margin-bottom:16px}
.bp-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px 16px;border-block:1.5px dashed rgba(26,20,7,.25);padding-block:14px}
.bp-grid small{display:block;font-family:var(--f-mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:#6B5A2E}
.bp-grid b{font-family:var(--f-display);font-weight:800;font-size:19px;text-transform:uppercase;line-height:1.1;display:block;word-break:break-word}
.bp-grid b.flash{animation:flash .6s}
@keyframes flash{0%{background:rgba(242,179,61,.7)}100%{background:transparent}}
.bp-bar{height:46px;background:repeating-linear-gradient(90deg,#1A1407 0 2px,transparent 2px 4px,#1A1407 4px 5px,transparent 5px 9px,#1A1407 9px 12px,transparent 12px 14px);opacity:.85}
.bp-foot{display:flex;justify-content:space-between;font-family:var(--f-mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:#6B5A2E}
.side-note{display:flex;gap:12px;align-items:flex-start;padding:16px 18px;border-radius:18px;background:var(--surface);border:1px solid var(--line);font-size:14.5px;color:var(--muted)}
.side-note svg{width:22px;height:22px;color:var(--teal);flex:none;margin-top:2px}
.wiz-done{display:grid;justify-items:center;text-align:center;gap:18px;padding-block:20px}
.wiz-done .stamp-ok{animation:slam .55s .3s cubic-bezier(.3,1.6,.5,1) forwards}
.bp.printing{animation:print 1.4s var(--ease)}
@keyframes print{0%{clip-path:inset(0 0 100% 0)}100%{clip-path:inset(0 0 0 0)}}
@media (max-width:980px){.wiz{grid-template-columns:1fr}.wiz-side{position:relative;top:0;order:-1}.wiz-side .side-note{display:none}}

/* =========================================================
   VISA & INSURANCE
   ========================================================= */
.vpick{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:24px}
.vpick button{border:1.5px solid var(--line);background:var(--surface);color:var(--ink);border-radius:999px;padding:10px 16px;font:600 14.5px var(--f-body);cursor:pointer;transition:all .25s var(--ease)}
.vpick button:hover{border-color:var(--brand);transform:translateY(-2px)}
.vpick button[aria-pressed="true"]{background:var(--brand);color:var(--brand-ink);border-color:var(--brand)}
.vbox{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(20px,4vw,48px);align-items:start}
.passport{position:relative;aspect-ratio:3/4;max-width:420px;width:100%;justify-self:center;perspective:1600px}
.pp-page{position:absolute;inset:0;border-radius:10px 18px 18px 10px;background:repeating-linear-gradient(0deg,transparent 0 27px,color-mix(in srgb,var(--line) 75%,transparent) 27px 28px),var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-lg);overflow:hidden}
.pp-page .ph{position:absolute;top:16px;left:18px;right:18px;display:flex;justify-content:space-between;font-family:var(--f-mono);font-size:10.5px;letter-spacing:.16em;color:var(--muted);text-transform:uppercase}
.pp-cover{position:absolute;inset:0;border-radius:10px 18px 18px 10px;background:linear-gradient(135deg,#13246E,#0A1648);transform-origin:0 50%;transition:transform 1.2s var(--ease);display:grid;place-items:center;align-content:center;gap:14px;color:#E9C46A;backface-visibility:hidden;-webkit-backface-visibility:hidden;z-index:3;box-shadow:inset -6px 0 12px rgba(0,0,0,.3)}
.pp-cover b{font-family:var(--f-display);font-weight:800;font-size:26px;letter-spacing:.18em;text-transform:uppercase}
.pp-cover small{font-family:var(--f-mono);font-size:11px;letter-spacing:.2em;text-transform:uppercase}
.pp-cover img{width:64px;filter:drop-shadow(0 4px 12px rgba(0,0,0,.4))}
.passport.open .pp-cover{transform:rotateY(-165deg)}
.vstamp{position:absolute;left:50%;top:50%;display:grid;place-items:center;text-align:center;font-family:var(--f-display);font-weight:900;text-transform:uppercase;color:var(--c,var(--brand));border:4px solid currentColor;border-radius:var(--r,50%);width:210px;height:210px;margin:-105px 0 0 -105px;line-height:.95;font-size:36px;opacity:0;transform:rotate(-14deg) scale(2.2)}
.vstamp::before{content:"";position:absolute;inset:8px;border:2px dashed currentColor;border-radius:inherit}
.vstamp small{display:block;font-family:var(--f-mono);font-weight:500;font-size:11px;letter-spacing:.14em;margin-top:6px}
.vstamp.slam{animation:slam2 .6s cubic-bezier(.3,1.6,.5,1) forwards}
@keyframes slam2{to{opacity:.9;transform:rotate(var(--rot,-14deg)) scale(1)}}
.ghost-stamps .gs{position:absolute;font-family:var(--f-display);font-weight:800;text-transform:uppercase;border:3px solid currentColor;border-radius:50%;width:96px;height:96px;display:grid;place-items:center;font-size:16px;opacity:.16;color:var(--ink)}
.checklist{background:var(--surface);border:1px solid var(--line);border-radius:24px;padding:clamp(20px,3vw,32px);display:grid;gap:16px;min-width:0}
.cl-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap}
.cl-head h3{font-family:var(--f-display);font-weight:800;font-size:clamp(30px,3.4vw,40px);text-transform:uppercase}
.cl-head p{color:var(--muted);font-size:15px;margin-top:4px;max-width:46ch}
.ring{position:relative;width:84px;height:84px;flex:none}
.ring svg{width:100%;height:100%;transform:rotate(-90deg)}
.ring circle{fill:none;stroke-width:8}
.ring .bgc{stroke:var(--bg-2)}
.ring .fgc{stroke:var(--leaf);stroke-linecap:round;transition:stroke-dashoffset .6s var(--ease)}
.ring b{position:absolute;inset:0;display:grid;place-items:center;font-family:var(--f-display);font-weight:900;font-size:24px;font-variant-numeric:tabular-nums}
.cl{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.cl label{display:grid;grid-template-columns:28px 1fr;gap:12px;align-items:start;padding:12px 14px;border-radius:14px;border:1.5px solid var(--line);cursor:pointer;transition:background .25s,border-color .25s}
.cl label:hover{border-color:var(--brand)}
.cl input{position:absolute;opacity:0}
.cl .box{width:24px;height:24px;border-radius:8px;border:2px solid var(--line);display:grid;place-items:center;transition:all .3s var(--ease);margin-top:1px}
.cl .box svg{width:14px;height:14px;color:#fff;transform:scale(0);transition:transform .3s var(--ease)}
.cl input:checked~.box{background:var(--leaf);border-color:var(--leaf)}
.cl input:checked~.box svg{transform:scale(1)}
.cl input:checked~.txt{text-decoration:line-through;text-decoration-color:var(--leaf);color:var(--muted)}
.cl input:focus-visible~.box{outline:2px solid var(--gold);outline-offset:2px}
.cl .txt small{display:block;color:var(--muted);font-size:13px;text-decoration:none}
.vnote{font-size:13px;color:var(--muted);padding:12px 14px;border-radius:12px;background:var(--bg-2)}
@media (max-width:900px){.vbox{grid-template-columns:1fr}.passport{max-width:320px}}
.svc-row{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.svc-mini{padding:22px;border-radius:20px;background:var(--surface);border:1px solid var(--line);display:grid;gap:10px;align-content:start}
.svc-mini svg{width:34px;height:34px;color:var(--brand)}
.svc-mini h3{font-family:var(--f-display);font-weight:800;font-size:24px;text-transform:uppercase}
.svc-mini p{font-size:15px;color:var(--muted)}
@media (max-width:900px){.svc-row{grid-template-columns:1fr 1fr}}
@media (max-width:480px){.svc-row{grid-template-columns:1fr}}
.shield-wrap{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,5vw,64px);align-items:center}
.shield{position:relative;width:min(380px,100%);aspect-ratio:1/1;justify-self:center}
.shield svg{width:100%;height:100%;overflow:visible}
.shield .sh{fill:var(--band);transition:fill .4s}
.shield .orbit{fill:none;stroke:var(--line);stroke-width:2;stroke-dasharray:4 8;transform-origin:50% 50%;animation:spin 40s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.shield .bub{transition:transform .5s var(--ease),opacity .4s}
.shield .bub circle{fill:var(--surface);stroke:var(--line);stroke-width:1.5;transition:fill .3s,stroke .3s}
.shield .bub.on circle{fill:var(--gold);stroke:var(--gold)}
.shield .bub text{font-family:var(--f-mono);font-size:10px;letter-spacing:.1em;fill:var(--ink);text-anchor:middle;text-transform:uppercase}
.shield .bub.on text{fill:var(--gold-ink)}
.shield .num{font-family:var(--f-display);font-weight:900;font-size:76px;fill:var(--band-ink);text-anchor:middle}
.shield .lbl{font-family:var(--f-mono);font-size:11px;letter-spacing:.14em;fill:var(--band-muted);text-anchor:middle;text-transform:uppercase}
.cover-list{display:grid;gap:10px}
.cover{display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:center;padding:14px 16px;border:1.5px solid var(--line);border-radius:16px;cursor:pointer;transition:all .3s var(--ease);background:var(--surface)}
.cover:hover{border-color:var(--brand)}
.cover input{position:absolute;opacity:0}
.cover .ci{width:40px;height:40px;border-radius:12px;background:var(--bg-2);display:grid;place-items:center;color:var(--teal);transition:all .3s}
.cover .ci svg{width:22px;height:22px}
.cover b{display:block;font-weight:700}
.cover small{color:var(--muted);font-size:13.5px}
.cover .sw{width:44px;height:26px;border-radius:999px;background:var(--line);position:relative;transition:background .3s}
.cover .sw::after{content:"";position:absolute;left:3px;top:3px;width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:0 1px 4px rgba(0,0,0,.25);transition:transform .35s var(--ease)}
.cover:has(input:checked){border-color:var(--brand);background:color-mix(in srgb,var(--brand) 6%,var(--surface))}
.cover:has(input:checked) .sw{background:var(--leaf)}
.cover:has(input:checked) .sw::after{transform:translateX(18px)}
.cover:has(input:checked) .ci{background:var(--gold);color:var(--gold-ink)}
.cover:has(input:focus-visible){outline:2px solid var(--gold);outline-offset:3px}
@media (max-width:900px){.shield-wrap{grid-template-columns:1fr}}

/* =========================================================
   FOREX & ESIM
   ========================================================= */
.fx-cards{display:grid;grid-template-columns:repeat(6,1fr);gap:10px}
.fxc{perspective:900px;border:0;background:none;padding:0;cursor:pointer;font:inherit;color:inherit;height:150px}
.fxc .in{position:relative;width:100%;height:100%;transition:transform .7s var(--ease);transform-style:preserve-3d}
.fxc:hover .in,.fxc:focus-visible .in,.fxc.on .in{transform:rotateY(180deg)}
.fxc .f,.fxc .b{position:absolute;inset:0;border-radius:18px;backface-visibility:hidden;-webkit-backface-visibility:hidden;display:grid;place-items:center;align-content:center;gap:4px;text-align:center;padding:10px}
.fxc .f{background:var(--surface);border:1px solid var(--line)}
.fxc .f .sym{font-family:var(--f-serif);font-size:52px;line-height:1;color:var(--brand)}
.fxc .f b{font-family:var(--f-mono);font-size:13px;letter-spacing:.14em}
.fxc .b{background:var(--band);color:var(--band-ink);transform:rotateY(180deg)}
.fxc .b b{font-family:var(--f-display);font-weight:800;font-size:20px;text-transform:uppercase;line-height:1}
.fxc .b small{font-size:12.5px;color:var(--band-muted);line-height:1.35}
@media (max-width:900px){.fx-cards{grid-template-columns:repeat(3,1fr)}}
.fx-split{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.fx-opt{border-radius:24px;padding:clamp(22px,3vw,34px);display:grid;gap:14px;align-content:start;border:1px solid var(--line);background:var(--surface);position:relative;overflow:hidden}
.fx-opt.card-opt{background:var(--band);color:var(--band-ink);border-color:var(--band)}
.fx-opt h3{font-family:var(--f-display);font-weight:800;font-size:clamp(30px,3.4vw,40px);text-transform:uppercase}
.fx-opt ul{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.fx-opt li{display:grid;grid-template-columns:22px 1fr;gap:10px;font-size:15.5px}
.fx-opt li svg{width:18px;height:18px;margin-top:4px;color:var(--leaf)}
.fx-opt.card-opt li svg{color:var(--gold)}
.fx-opt .p{color:var(--muted)}
.fx-opt.card-opt .p{color:var(--band-muted)}
.mini-card{width:220px;aspect-ratio:1.586/1;border-radius:14px;background:linear-gradient(135deg,#F2B33D,#E07B39 60%,#C2410C);padding:14px;display:flex;flex-direction:column;justify-content:space-between;color:#1B1303;box-shadow:0 20px 40px -18px rgba(0,0,0,.6);transform:rotate(-8deg);transition:transform .6s var(--ease);position:absolute;right:-30px;top:-20px}
.fx-opt.card-opt:hover .mini-card{transform:rotate(4deg) translateY(10px)}
.mini-card .chipx{width:34px;height:26px;border-radius:5px;background:linear-gradient(135deg,#FFE7A8,#C99A2E)}
.mini-card b{font-family:var(--f-mono);font-size:13px;letter-spacing:.16em}
@media (max-width:860px){.fx-split{grid-template-columns:1fr}.mini-card{width:160px;right:-30px}}
.docs-row{display:flex;flex-wrap:wrap;gap:8px}
.docs-row span{font-family:var(--f-mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;padding:8px 12px;border-radius:8px;background:var(--bg-2);color:var(--ink)}
.esim{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,5vw,64px);align-items:center}
.phone{width:min(300px,80vw);aspect-ratio:9/18.5;border-radius:44px;background:#0B0F1A;padding:12px;box-shadow:var(--shadow-lg),inset 0 0 0 2px #2A3142;justify-self:center;position:relative}
.phone::before{content:"";position:absolute;top:22px;left:50%;width:84px;height:24px;margin-left:-42px;border-radius:999px;background:#000;z-index:3}
.screen{width:100%;height:100%;border-radius:34px;overflow:hidden;background:linear-gradient(180deg,var(--sky-1),var(--sky-2));position:relative;display:flex;flex-direction:column}
.sbar{display:flex;justify-content:space-between;align-items:center;padding:20px 22px 0;font:600 13px var(--f-body);color:var(--ink);position:relative;z-index:2}
.sig{display:flex;align-items:flex-end;gap:2px;height:12px}
.sig i{width:3px;border-radius:1px;background:currentColor;opacity:.25;transition:opacity .3s}
.sig i:nth-child(1){height:4px}.sig i:nth-child(2){height:6px}.sig i:nth-child(3){height:9px}.sig i:nth-child(4){height:12px}
.sig.l1 i:nth-child(-n+1),.sig.l2 i:nth-child(-n+2),.sig.l3 i:nth-child(-n+3),.sig.l4 i{opacity:1}
.sbar .net{font-size:11px;font-weight:700;margin-left:4px}
.sc-body{flex:1;display:grid;place-items:center;align-content:center;gap:12px;text-align:center;padding:24px;color:var(--ink);position:relative;z-index:1}
.sc-body .flagc{width:110px;height:110px;border-radius:50%;background:var(--surface);display:grid;place-items:center;font-family:var(--f-display);font-weight:900;font-size:38px;color:var(--brand);box-shadow:var(--shadow);position:relative}
.sc-body .flagc::before,.sc-body .flagc::after{content:"";position:absolute;inset:-12px;border-radius:50%;border:2px solid var(--surface);opacity:0}
.phone.connecting .flagc::before{animation:wave 1.4s infinite}
.phone.connecting .flagc::after{animation:wave 1.4s .5s infinite}
@keyframes wave{0%{transform:scale(.9);opacity:.9}100%{transform:scale(1.6);opacity:0}}
.sc-body h4{font-family:var(--f-display);font-weight:800;font-size:30px;text-transform:uppercase;line-height:1}
.sc-body p{font-size:13.5px;color:var(--ink);opacity:.8}
.sc-pill{display:inline-flex;align-items:center;gap:6px;padding:7px 12px;border-radius:999px;background:var(--surface);font:600 12px var(--f-body);color:var(--ink)}
.sc-pill::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--gold)}
.phone.live .sc-pill::before{background:var(--leaf)}
.sc-hills{position:absolute;left:0;right:0;bottom:0;height:90px}
.sc-hills svg{width:100%;height:100%}
.esim-ctrl{display:grid;gap:22px}
.dchips{display:flex;flex-wrap:wrap;gap:8px}
.dchips button{border:1.5px solid var(--line);background:var(--surface);color:var(--ink);border-radius:999px;padding:9px 14px;font:600 14px var(--f-body);cursor:pointer;transition:all .25s var(--ease)}
.dchips button:hover{border-color:var(--brand);transform:translateY(-2px)}
.dchips button[aria-pressed="true"]{background:var(--brand);color:var(--brand-ink);border-color:var(--brand)}
.seg{display:inline-flex;padding:4px;border-radius:999px;background:var(--bg-2);gap:4px;flex-wrap:wrap}
.seg button{border:0;background:none;color:var(--muted);border-radius:999px;padding:9px 16px;font:600 14px var(--f-body);cursor:pointer;transition:all .25s}
.seg button[aria-pressed="true"]{background:var(--surface);color:var(--ink);box-shadow:var(--shadow)}
.ctl-label{font-family:var(--f-mono);font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:10px;display:block}
.esim-steps{list-style:none;margin:0;padding:0;display:grid;gap:10px;counter-reset:s}
.esim-steps li{display:grid;grid-template-columns:36px 1fr;gap:12px;align-items:start;font-size:15.5px;color:var(--muted)}
.esim-steps li::before{counter-increment:s;content:counter(s);width:32px;height:32px;border-radius:50%;background:var(--bg-2);color:var(--brand);display:grid;place-items:center;font-family:var(--f-display);font-weight:900;font-size:18px}
.esim-steps b{color:var(--ink)}
@media (max-width:900px){.esim{grid-template-columns:1fr}}

@media (prefers-reduced-motion:reduce){body:not(.story-page) *,body:not(.story-page) *::before,body:not(.story-page) *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.story-page{scroll-behavior:auto}.rv{transform:none}.stamp-ok,.vstamp{opacity:1;transform:rotate(-12deg)}}

/* ---------- Hero side art (inner pages) ---------- */
.promise{display:grid;gap:12px}
.promise div{display:grid;grid-template-columns:48px 1fr;gap:14px;align-items:center;padding:16px 18px;border-radius:18px;background:color-mix(in srgb,var(--surface) 78%,transparent);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);box-shadow:var(--shadow);animation:floaty 6s ease-in-out infinite}
.promise div:nth-child(2){animation-delay:-2s;margin-left:24px}
.promise div:nth-child(3){animation-delay:-4s}
.promise svg{width:48px;height:48px;padding:11px;border-radius:14px;background:var(--gold);color:var(--gold-ink)}
.promise b{display:block;font-family:var(--f-display);font-weight:800;font-size:22px;text-transform:uppercase;line-height:1.05}
.promise small{color:var(--muted);font-size:14px}
@keyframes floaty{50%{transform:translateY(-8px)}}
.hstamps{position:relative;height:340px}
.hstamp{position:absolute;display:grid;place-items:center;text-align:center;font-family:var(--f-display);font-weight:900;text-transform:uppercase;color:var(--c);border:4px solid currentColor;border-radius:var(--r,50%);width:var(--s);height:var(--s);line-height:.95;font-size:calc(var(--s) * .17);background:color-mix(in srgb,var(--surface) 55%,transparent);transform:rotate(var(--rot));animation:stampin .7s cubic-bezier(.3,1.6,.5,1) both;animation-delay:var(--dl)}
.hstamp::before{content:"";position:absolute;inset:7px;border:2px dashed currentColor;border-radius:inherit}
.hstamp small{display:block;font-family:var(--f-mono);font-weight:500;font-size:10px;letter-spacing:.12em;margin-top:4px}
@keyframes stampin{from{transform:rotate(var(--rot)) scale(2.2);opacity:0}}
.syms{position:relative;height:340px}
.syms span{position:absolute;display:grid;place-items:center;border-radius:50%;background:var(--surface);box-shadow:var(--shadow);font-family:var(--f-serif);color:var(--brand);width:var(--s);height:var(--s);font-size:calc(var(--s) * .5);animation:floaty var(--t,6s) ease-in-out infinite;animation-delay:var(--dl,0s)}
.syms span.g{background:var(--gold);color:var(--gold-ink)}
@media (max-width:900px){.hstamps,.syms{height:240px}.promise div:nth-child(2){margin-left:0}}
.note-card{display:flex;gap:14px;align-items:flex-start;padding:18px 20px;border-radius:18px;background:var(--bg-2);color:var(--ink);font-size:15px}
.note-card svg{width:24px;height:24px;flex:none;color:var(--teal);margin-top:1px}
@media (prefers-reduced-motion:reduce){.promise div,.hstamp,.syms span{animation:none!important}}

/* =========================================================
   CUSTOMISE v2 — globe stage, combobox, take-off sequence
   ========================================================= */
.gstage{--sky-1:#070D26;--sky-2:#13246E;color:#EEF3FF;padding-block:clamp(36px,5vw,64px) clamp(48px,6vw,80px);text-align:center}
.gstage .crumb{color:#EEF3FF;justify-content:center}
.gstage .eyebrow{color:var(--gold)}
.gstage .h1{font-size:clamp(48px,8vw,104px);color:#fff}
.gstage .h1 .serif{display:block;font-family:var(--f-serif);font-style:italic;font-weight:400;text-transform:none;font-size:.38em;line-height:1.1;margin-top:.25em;color:#A9C4F5}
.g-head{display:grid;gap:14px;justify-items:center;max-width:820px;margin-inline:auto}
.globe-wrap{position:relative;width:min(520px,88vw,58vh);min-width:min(300px,88vw);margin:clamp(12px,2vw,24px) auto 0;aspect-ratio:1/1}
.globe-wrap canvas{width:100%;height:100%;display:block;cursor:grab;touch-action:pan-y;border-radius:50%}
.globe-wrap canvas:active{cursor:grabbing}
.globe-wrap canvas:focus-visible{outline:3px solid var(--gold);outline-offset:6px}
.globe-tip{position:absolute;left:0;top:0;pointer-events:none;background:rgba(10,16,22,.9);color:#F5EBCB;font:600 12px var(--f-mono);letter-spacing:.06em;padding:6px 10px;border-radius:8px;white-space:nowrap;z-index:3}
.g-hint{font-family:var(--f-mono);font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;color:#A9B9E6;margin-top:6px}
.gsearch{max-width:620px;margin:18px auto 0;display:grid;gap:12px;text-align:left}
.gs-box{display:flex;align-items:center;gap:6px;background:#fff;border-radius:999px;padding:6px 6px 6px 18px;box-shadow:0 20px 50px -20px rgba(0,0,0,.6)}
.gs-box.bad{animation:shake .45s}
.gs-box > svg{width:20px;height:20px;color:#51607E;flex:none}
.gs-box .combo{flex:1;min-width:0;position:relative}
.gs-box input{width:100%;border:0;background:none;font:500 17px var(--f-body);color:#0D1A4F;padding:12px 6px;outline:none}
.gs-box input::placeholder{color:#7B88A6}
.gs-box .btn{flex:none}
.combo{position:relative}
.cb-list{position:absolute;left:0;right:0;top:calc(100% + 8px);z-index:20;list-style:none;margin:0;padding:6px;background:var(--surface);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow-lg);max-height:300px;overflow:auto;text-align:left}
.gs-box .cb-list{left:-24px;right:-6px;background:#fff;border-color:#D3E2EE}
.cb-list li{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;border-radius:10px;cursor:pointer;color:var(--ink);font-weight:600;font-size:15px}
.gs-box .cb-list li{color:#0D1A4F}
.cb-list li small{font-family:var(--f-mono);font-size:11px;letter-spacing:.08em;color:var(--muted);font-weight:500}
.cb-list li:hover,.cb-list li.act{background:color-mix(in srgb,var(--gold) 28%,transparent)}
.gs-box .cb-list li:hover,.gs-box .cb-list li.act{background:#FCE9C4}
.gquick{display:flex;flex-wrap:wrap;justify-content:center;gap:8px}
.gquick button{border:1.5px solid rgba(238,243,255,.25);background:rgba(255,255,255,.06);color:#EEF3FF;border-radius:999px;padding:8px 14px;font:600 14px var(--f-body);cursor:pointer;transition:all .25s var(--ease)}
.gquick button:hover{border-color:#EEF3FF;transform:translateY(-2px)}
.gquick button[aria-pressed="true"]{background:var(--gold);border-color:var(--gold);color:var(--gold-ink)}
.sel-card{max-width:620px;margin:18px auto 0;background:var(--surface);color:var(--ink);border-radius:24px;padding:clamp(18px,3vw,26px);display:grid;grid-template-columns:auto 1fr;gap:16px 20px;align-items:center;text-align:left;box-shadow:0 30px 70px -30px rgba(0,0,0,.7)}
.sel-card.pop{animation:selpop .6s var(--ease)}
@keyframes selpop{from{transform:translateY(16px) scale(.97);opacity:0}}
.sel-pin{width:56px;height:56px;border-radius:16px;background:var(--gold);color:var(--gold-ink);display:grid;place-items:center}
.sel-pin svg{width:28px;height:28px}
.sel-card small{font-family:var(--f-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.sel-card h2{font-family:var(--f-display);font-weight:900;font-size:clamp(32px,4vw,46px);text-transform:uppercase;line-height:.95}
.sel-row{grid-column:1/-1;display:grid;grid-template-columns:1fr auto;gap:12px;align-items:start}
.sel-row .btn{height:58px}
@media (max-width:600px){.sel-row{grid-template-columns:1fr}.sel-row .btn{width:100%}.gs-box .btn span{display:none}}
.fixed-pax{display:flex;gap:14px;align-items:center;padding:16px 18px;border-radius:18px;border:1.5px dashed var(--teal);background:color-mix(in srgb,var(--teal) 8%,var(--surface));animation:stepin .45s var(--ease)}
.fixed-pax svg{width:26px;height:26px;color:var(--teal);flex:none}
.fixed-pax b{display:block;font-family:var(--f-display);font-weight:800;font-size:24px;text-transform:uppercase}
.fixed-pax small{color:var(--muted);font-size:14px}
.wstep.quiet{animation:none}
.wiz-body .fgrid{margin-top:2px}
.bp-route .c small{display:block}
body.no-scroll{overflow:hidden}

/* Journey overlay */
.journey{position:fixed;inset:0;z-index:200;background:radial-gradient(120% 80% at 50% 0%,#1A2F7A,#070D26 60%);color:#EEF3FF;display:grid;place-items:center;overflow:auto;padding:calc(64px + env(safe-area-inset-top,0px)) 16px calc(32px + env(safe-area-inset-bottom,0px));animation:jin .5s var(--ease)}
@keyframes jin{from{opacity:0}}
.journey::before{content:"";position:fixed;inset:0;background-image:radial-gradient(1.5px 1.5px at 10% 20%,#fff,transparent),radial-gradient(1px 1px at 30% 70%,#fff,transparent),radial-gradient(1.5px 1.5px at 70% 30%,#fff,transparent),radial-gradient(1px 1px at 85% 80%,#fff,transparent),radial-gradient(1px 1px at 55% 12%,#fff,transparent),radial-gradient(1.5px 1.5px at 18% 88%,#fff,transparent),radial-gradient(1px 1px at 92% 45%,#fff,transparent);opacity:.7;pointer-events:none}
.j-skip{position:fixed;top:calc(16px + env(safe-area-inset-top,0px));right:16px;z-index:3;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.25);color:#EEF3FF;border-radius:999px;padding:9px 16px;font:600 14px var(--f-body);cursor:pointer}
.j-skip:hover{background:rgba(255,255,255,.2)}
.j-brand{position:fixed;top:calc(16px + env(safe-area-inset-top,0px));left:16px;display:flex;align-items:center;gap:8px;font-family:var(--f-logo);letter-spacing:.06em;font-size:18px}
.j-brand img{width:26px}
.j-inner{position:relative;width:min(760px,100%);display:grid;justify-items:center;gap:18px}
.j-pass{width:min(400px,92vw);position:relative;transition:transform .8s var(--ease),opacity .6s}
.j-pass .bp{box-shadow:0 40px 90px -30px rgba(0,0,0,.8)}
.j-stamp{position:absolute;right:-6px;top:38%;width:150px;height:150px;border-radius:50%;border:4px solid #2E8B57;color:#2E8B57;background:rgba(245,235,203,.6);display:grid;place-items:center;text-align:center;font-family:var(--f-display);font-weight:900;font-size:26px;line-height:.95;text-transform:uppercase;opacity:0;transform:rotate(-14deg) scale(2.2);animation:slam .55s 1.4s cubic-bezier(.3,1.6,.5,1) forwards}
.j-stamp::before{content:"";position:absolute;inset:7px;border:2px dashed currentColor;border-radius:50%}
.j-stamp small{display:block;font-family:var(--f-mono);font-weight:500;font-size:10px;letter-spacing:.14em;margin-top:5px}
.j-globe{width:min(520px,82vw,62vh);aspect-ratio:1/1;display:none}
.j-globe canvas{width:100%;height:100%;display:block}
.j-cap{min-height:1.6em;font-family:var(--f-display);font-weight:800;font-size:clamp(24px,3.4vw,36px);text-transform:uppercase;letter-spacing:.02em;text-align:center}
.j-cap.in{animation:capin .6s var(--ease)}
@keyframes capin{from{opacity:0;transform:translateY(10px)}}
.journey.phase-globe .j-pass{display:none}
.journey.phase-globe .j-globe{display:block;animation:gin .9s var(--ease)}
@keyframes gin{from{opacity:0;transform:scale(.6)}}
.journey.phase-scene .j-pass,.journey.phase-scene .j-globe{display:none}
.j-scene{width:100%;border-radius:24px;overflow:hidden;aspect-ratio:16/9;box-shadow:0 40px 90px -30px rgba(0,0,0,.8);position:relative;display:none}
.journey.phase-scene .j-scene{display:block;animation:gin .8s var(--ease)}
.j-scene svg{width:100%;height:100%;display:block}
.j-final{display:grid;gap:14px;justify-items:center;text-align:center;max-width:620px;animation:capin .8s .3s var(--ease) both}
.j-final h2{font-family:var(--f-display);font-weight:900;font-size:clamp(34px,5vw,56px);text-transform:uppercase;line-height:.95}
.j-final h2 em{font-family:var(--f-serif);font-style:italic;font-weight:400;text-transform:none;color:var(--gold)}
.j-final p{color:#C8D4F2;font-size:17px}
.j-final p b{color:#fff}
.j-final .preview-note{background:rgba(255,255,255,.08);color:#C8D4F2}
.j-final .btn-ghost{color:#EEF3FF;border-color:rgba(255,255,255,.3);background:rgba(255,255,255,.06)}

/* Scene animations */
.j-scene svg *{transform-box:fill-box}
.s-sun{animation:sunrise 3s var(--ease) both}
@keyframes sunrise{from{transform:translateY(80px);opacity:.3}}
.s-petal{animation:petal var(--d) linear infinite;animation-delay:var(--dl)}
@keyframes petal{from{transform:translate(var(--x),-20px) rotate(0)}to{transform:translate(calc(var(--x) - 120px),470px) rotate(540deg)}}
.s-bird{animation:bird var(--d) linear infinite;animation-delay:var(--dl)}
@keyframes bird{from{transform:translate(-60px,var(--y)) scaleY(1)}50%{transform:translate(400px,calc(var(--y) - 20px)) scaleY(.6)}to{transform:translate(860px,var(--y)) scaleY(1)}}
.s-wave{animation:swave 7s linear infinite}
.s-wave.s2{animation-duration:10s;animation-direction:reverse}
@keyframes swave{to{transform:translateX(-800px)}}
.s-palm{transform-origin:20% 100%;animation:sway 4s ease-in-out infinite}
@keyframes sway{50%{transform:rotate(-3deg)}}
.s-cloudg{animation:drift2 30s linear infinite alternate}
@keyframes drift2{to{transform:translateX(120px)}}
.s-star{animation:twinkle 3s ease-in-out infinite;animation-delay:var(--dl)}
.s-aur{animation:aur 7s ease-in-out infinite alternate}
.s-aur.a2{animation-duration:9s}
@keyframes aur{to{transform:translate(-60px,16px) skewX(-8deg);opacity:.95}}
.s-win{animation:winlit 4s ease-in-out infinite;animation-delay:var(--dl,0s)}
@keyframes winlit{50%{opacity:.25}}
.s-jet{animation:jet 9s linear infinite}
@keyframes jet{from{transform:translate(-60px,120px) rotate(-6deg)}to{transform:translate(860px,40px) rotate(-6deg)}}
.s-dune{animation:shimmer 5s ease-in-out infinite alternate}
@keyframes shimmer{to{transform:translateY(-4px)}}
.s-flag{transform-origin:0 50%;animation:flag 1.2s ease-in-out infinite alternate}
@keyframes flag{to{transform:scaleX(.8) skewY(6deg)}}
.s-diya{animation:flick 1.4s ease-in-out infinite alternate;animation-delay:var(--dl)}
@keyframes flick{to{opacity:.6}}
.s-balloon{animation:bob var(--d) ease-in-out infinite alternate;animation-delay:var(--dl)}
@keyframes bob{to{transform:translateY(-30px)}}
.s-land{animation:land 3.2s cubic-bezier(.2,.75,.2,1) both}
@keyframes land{from{transform:translate(-80px,40px) scale(3)}to{transform:translate(860px,-60px) scale(2)}}
@media (prefers-reduced-motion:reduce){.journey *{animation:none!important}.j-stamp{opacity:1;transform:rotate(-14deg)}}
.gstage{overflow:visible}
.journey{display:flex;flex-direction:column}
.j-inner{margin:auto}
.j-scene{max-width:calc(50vh * 16 / 9);margin-inline:auto}
.s-berg{animation:berg 5s ease-in-out infinite alternate}
.s-berg.b2{animation-duration:6.5s}
@keyframes berg{to{transform:translateY(6px) rotate(1deg)}}
.s-peng{animation:waddle .5s ease-in-out infinite alternate;animation-delay:var(--dl)}
@keyframes waddle{from{transform:rotate(-6deg)}to{transform:rotate(6deg) translateX(3px)}}

/* Customise v3 — tidy trip bar under the globe, typed budget */
.gstage .g-head{gap:10px}
.gstage .globe-wrap{margin-top:clamp(8px,1.6vw,18px)}
.tripbar{max-width:760px;margin:clamp(14px,2vw,22px) auto 0;text-align:left}
.tripbar .gs-box{max-width:620px;margin-inline:auto}
.tb-sel{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:8px;align-items:center;background:#fff;color:#0D1A4F;border-radius:22px;padding:8px;box-shadow:0 24px 60px -24px rgba(0,0,0,.7)}
.tb-sel.pop{animation:selpop .55s var(--ease)}
.tb-dest{display:flex;align-items:center;gap:10px;border:0;background:#FDF3DF;border-radius:16px;padding:8px 14px 8px 8px;cursor:pointer;font:inherit;color:#0D1A4F;text-align:left;min-width:0;transition:background .2s}
.tb-dest:hover{background:#FBE7BF}
.tb-dest .sel-pin{width:40px;height:40px;border-radius:12px;flex:none}
.tb-dest .sel-pin svg{width:22px;height:22px}
.tb-dest span{display:grid;line-height:1.1;min-width:0}
.tb-dest small{font-family:var(--f-mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:#51607E}
.tb-dest b{font-family:var(--f-display);font-weight:900;font-size:24px;text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:220px}
.tb-dest i{font-style:normal;font-size:12px;font-weight:700;color:#1E3A9E;text-decoration:underline;text-underline-offset:3px;margin-left:4px}
.tb-sel .fl input{background:#F2F8FC;border-color:#D3E2EE;color:#0D1A4F}
.tb-sel .fl label{color:#51607E}
.tb-sel .fl input:focus+label,.tb-sel .fl input:not(:placeholder-shown)+label{color:#2F6F7E}
.tb-sel .cb-list{background:#fff;border-color:#D3E2EE}
.tb-sel .cb-list li{color:#0D1A4F}
.tb-sel .cb-list li small{color:#51607E}
.tb-sel .btn{height:58px}
@media (max-width:700px){.tb-sel{grid-template-columns:1fr}.tb-dest b{max-width:none}.tb-sel .btn{width:100%}}
.money{display:flex;align-items:baseline;gap:4px;border-bottom:2px dashed var(--line);padding-bottom:2px;transition:border-color .2s}
.money:focus-within{border-color:var(--brand)}
.money span{font-family:var(--f-display);font-weight:900;font-size:clamp(34px,4vw,48px);color:var(--brand);line-height:1}
.money input{width:7.2ch;border:0;background:none;outline:none;font-family:var(--f-display);font-weight:900;font-size:clamp(40px,5vw,56px);line-height:1;color:var(--brand);font-variant-numeric:tabular-nums;text-align:right;padding:0}
.range-scale.ticks{position:relative;display:block;height:16px;margin-inline:0}
.range-scale.ticks span{position:absolute;top:0;left:calc(15px + (100% - 30px) * var(--p));transform:translateX(-50%);white-space:nowrap}
.range-scale.ticks span:first-child{transform:translateX(-15px)}
.range-scale.ticks span:last-child{transform:translateX(calc(-100% + 15px))}
.bp-route .c{overflow-wrap:break-word}
.bp-route .c.long{font-size:clamp(26px,2.8vw,34px)}
.bp-route .c.xlong{font-size:clamp(20px,2.1vw,26px);line-height:1}
.gstage .h1{font-size:clamp(42px,6.4vw,84px)}
.gstage .globe-wrap{width:min(520px,88vw,54vh)}
.fl .msg .fixbtn{border:0;background:none;padding:0 0 0 4px;font:700 12.5px var(--f-body);color:var(--brand);text-decoration:underline;cursor:pointer}

/* =========================================================
   SUPPORT + ABOUT PAGES
   ========================================================= */
.step h3{font-size:clamp(24px,2.2vw,28px)}
.doc-hero{padding-block:clamp(40px,6vw,80px) clamp(96px,13vw,170px)}
.doc-grid{display:grid;grid-template-columns:260px minmax(0,1fr);gap:clamp(28px,5vw,72px);align-items:start}
.doc-toc{position:sticky;top:100px;display:grid;gap:14px;align-content:start}
.doc-toc ol{list-style:none;margin:0;padding:0;display:grid;gap:2px;border-left:2px solid var(--line)}
.doc-toc a{display:block;padding:7px 14px;margin-left:-2px;border-left:2px solid transparent;text-decoration:none;color:var(--muted);font-weight:600;font-size:14.5px;transition:color .2s,border-color .2s}
.doc-toc a:hover{color:var(--ink)}
.doc-toc a.on{color:var(--brand);border-left-color:var(--gold)}
.doc-toc .btn{justify-self:start;margin-top:6px}
.doc{max-width:72ch;min-width:0}
.doc-sec{padding-block:6px 30px;scroll-margin-top:100px;border-bottom:1px dashed var(--line);margin-bottom:28px}
.doc-sec:last-of-type{border-bottom:0}
.doc h2{font-family:var(--f-display);font-weight:800;font-size:clamp(28px,3vw,36px);text-transform:uppercase;margin-bottom:14px}
.doc p{margin-bottom:12px;color:var(--ink);opacity:.86}
.doc ul{margin:0 0 12px;padding-left:20px;display:grid;gap:8px}
.doc li{color:var(--ink);opacity:.86}
.doc li::marker{color:var(--gold-text)}
.doc a{color:var(--brand);font-weight:600}
@media (max-width:900px){.doc-grid{grid-template-columns:1fr}.doc-toc{position:relative;top:0}.doc-toc ol{display:flex;flex-wrap:wrap;gap:6px;border:0}.doc-toc a{border:1px solid var(--line);border-radius:999px;padding:6px 12px;margin:0;font-size:13.5px}.doc-toc a.on{border-color:var(--gold)}}
.faq-search{max-width:620px;margin-top:6px}
.faq-cats{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:28px}
.faq-cats button{border:1.5px solid var(--line);background:var(--surface);color:var(--ink);border-radius:999px;padding:9px 16px;font:600 14.5px var(--f-body);cursor:pointer;transition:all .25s var(--ease)}
.faq-cats button:hover{border-color:var(--brand);transform:translateY(-2px)}
.faq-cats button[aria-pressed="true"]{background:var(--brand);color:var(--brand-ink);border-color:var(--brand)}
.faq-wrap{display:grid;gap:36px;max-width:900px}
.faq-group .faq{max-width:none}
.faq-h{font-family:var(--f-display);font-weight:800;font-size:clamp(26px,3vw,34px);text-transform:uppercase;margin-bottom:14px}
.faq details p a{color:var(--brand);font-weight:600}
.faq mark{background:color-mix(in srgb,var(--gold) 45%,transparent);color:inherit;border-radius:3px;padding:0 2px}
.faq-empty{display:grid;justify-items:start;gap:10px;padding:26px;border-radius:20px;background:var(--bg-2);max-width:900px}
.contact-cards{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.ccard{display:flex;gap:14px;align-items:flex-start;padding:18px;border-radius:20px;background:color-mix(in srgb,var(--surface) 82%,transparent);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);box-shadow:var(--shadow);text-decoration:none;color:var(--ink);transition:transform .35s var(--ease);min-width:0}
a.ccard:hover,.ccard:hover{transform:translateY(-4px)}
.ccard > svg{width:44px;height:44px;padding:10px;border-radius:14px;background:var(--gold);color:var(--gold-ink);flex:none}
.ccard span{display:grid;gap:3px;min-width:0}
.ccard small{font-family:var(--f-mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.ccard b{font-weight:700;font-size:15.5px;overflow-wrap:anywhere}
.ccard b a{text-decoration:none}
.ccard em{font-style:normal;font-size:13px;color:var(--teal);font-weight:600}
.copy-chip{justify-self:start;border:1px solid var(--line);background:none;color:var(--muted);font:600 11px var(--f-mono);letter-spacing:.1em;text-transform:uppercase;padding:4px 9px;border-radius:6px;cursor:pointer;margin-top:4px}
.copy-chip:hover{color:var(--ink);border-color:var(--muted)}
@media (max-width:560px){.contact-cards{grid-template-columns:1fr}}
.story-card{background:var(--surface);border-radius:26px;padding:clamp(22px,3vw,34px);box-shadow:var(--shadow-lg);display:grid;gap:16px;justify-items:start;max-width:420px;justify-self:end}
.story-card h3{font-family:var(--f-display);font-weight:800;font-size:34px;text-transform:uppercase}
.story-card .role{font-family:var(--f-mono);font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--teal);margin-top:6px}
.story-card p:last-child{font-family:var(--f-serif);font-style:italic;font-size:24px;line-height:1.25;color:var(--brand)}
@media (max-width:900px){.story-card{justify-self:start}}
.story-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);gap:clamp(28px,5vw,72px)}
.story-text{display:grid;gap:16px;font-size:18px;color:var(--ink)}
.story-text p{opacity:.86}
.story-text .flags{padding-top:12px}
@media (max-width:860px){.story-grid{grid-template-columns:1fr}}
.values{grid-template-columns:repeat(4,1fr)}
@media (max-width:1000px){.values{grid-template-columns:1fr 1fr}}
@media (max-width:540px){.values{grid-template-columns:1fr}}

/* =========================================================
   VISA & INSURANCE v2 — numbered services, request forms, animations
   ========================================================= */
.svc-mini.numbered{position:relative;padding-top:26px}
.svc-mini .sn{position:absolute;top:18px;right:20px;font-family:var(--f-display);font-weight:900;font-size:40px;line-height:1;color:var(--bg-2)}
.svc-mini.numbered h3{font-size:clamp(22px,2vw,26px)}
.vsteps{list-style:none;margin:0;padding:0;display:grid;gap:14px;counter-reset:v}
.vsteps li{display:grid;grid-template-columns:44px 1fr;column-gap:14px;align-items:start}
.vsteps li::before{counter-increment:v;content:"0" counter(v);grid-row:span 2;width:44px;height:44px;border-radius:50%;background:var(--gold);color:var(--gold-ink);display:grid;place-items:center;font-family:var(--f-display);font-weight:900;font-size:18px}
.vsteps b{font-family:var(--f-display);font-weight:800;font-size:22px;text-transform:uppercase;line-height:1.1}
.vsteps span{color:var(--band-muted);font-size:15px}
.note-card.dark{background:var(--band-2);color:var(--band-ink)}
.note-card.dark svg{color:var(--gold)}
.vcard .fgrid{margin-bottom:16px}
.vcard .chips{margin-bottom:2px}
.fl input[type=date]+label,.fl input[type=number]+label{transform:translateY(-10px) scale(.74);color:var(--teal);font-weight:600}
.fl input[type=number]:placeholder-shown:not(:focus)+label{transform:none;color:var(--muted);font-weight:400}
.fl input[type=date]{min-height:58px}
.process .vcard{box-shadow:var(--shadow-lg)}
.cover-summary{display:grid;gap:10px;padding:20px;border-radius:20px;background:var(--surface);border:1px solid var(--line)}
.cs-chips{display:flex;flex-wrap:wrap;gap:8px}
.cs-chips span{display:inline-flex;align-items:center;gap:6px;padding:7px 12px;border-radius:999px;background:color-mix(in srgb,var(--leaf) 14%,var(--surface));color:var(--ink);font-weight:600;font-size:14px;animation:bump .35s var(--ease)}
.cs-chips span svg{width:14px;height:14px;color:var(--leaf)}
.cs-chips em{color:var(--muted);font-size:14px}
.cs-type{font-size:14px;color:var(--muted)}
.cs-type b{color:var(--ink)}

/* overlay shared */
.vj .j-inner{gap:14px}
.vj-stage{width:min(720px,100%);display:grid;justify-items:center}
.vj .j-final .fine{font-size:13.5px;color:#9FB0D6}

/* ---- visa scene ---- */
.vscene{position:relative;width:100%;display:grid;justify-items:center;min-height:min(500px,62vh)}
.vbook{position:relative;width:min(330px,72vw);aspect-ratio:3/4.1;perspective:2000px;transition:transform .9s var(--ease),opacity .6s;margin-top:8px}
.vb-page,.vb-cover{position:absolute;inset:0;border-radius:8px 16px 16px 8px;overflow:hidden;transform-origin:0 50%;backface-visibility:hidden;-webkit-backface-visibility:hidden;transition:transform 1.1s cubic-bezier(.6,.05,.3,1)}
.vb-cover{z-index:3;background:linear-gradient(135deg,#13246E,#0A1648);display:grid;place-items:center;align-content:center;gap:12px;color:#E9C46A;box-shadow:inset -8px 0 14px rgba(0,0,0,.35),0 30px 60px -20px rgba(0,0,0,.7)}
.vb-cover img{width:70px;filter:drop-shadow(0 4px 12px rgba(0,0,0,.4))}
.vb-cover b{font-family:var(--f-display);font-weight:800;font-size:24px;letter-spacing:.16em;text-transform:uppercase}
.vb-cover small{font-family:var(--f-mono);font-size:10.5px;letter-spacing:.2em;text-transform:uppercase}
.vb-data,.vb-visa{background:repeating-linear-gradient(0deg,transparent 0 23px,rgba(19,36,110,.06) 23px 24px),linear-gradient(160deg,#FBF7EC,#EEF3F8);color:#13246E;box-shadow:0 30px 60px -20px rgba(0,0,0,.7)}
.vb-data{z-index:2}.vb-visa{z-index:1}
.vb-head{display:flex;justify-content:space-between;padding:14px 16px 0;font-family:var(--f-mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:#51607E}
.vd-row{display:grid;grid-template-columns:86px 1fr;gap:14px;padding:16px}
.vd-photo{aspect-ratio:4/5;border-radius:6px;background:#DCE5F2;display:grid;place-items:end center;overflow:hidden}
.vd-photo svg{width:84%}
.vd-fields{display:grid;gap:1px;align-content:start;min-width:0}
.vd-fields small{font-family:var(--f-mono);font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:#7A86A3;margin-top:6px}
.vd-fields span{font-family:var(--f-display);font-weight:800;font-size:18px;text-transform:uppercase;min-height:1.1em;line-height:1.1;overflow-wrap:anywhere}
.vd-mrz,.vs-mrz{font-family:var(--f-mono);font-size:11px;letter-spacing:.06em;color:#13246E;word-break:break-all}
.vd-mrz{position:absolute;left:16px;right:16px;bottom:16px;padding-top:10px;border-top:1px dashed rgba(19,36,110,.25);min-height:2.6em}
.vj.s1 .vb-cover{transform:rotateY(-178deg)}
.vj.s2 .vb-data{transform:rotateY(-178deg)}
.vsticker{position:absolute;left:7%;right:7%;top:12%;border-radius:10px;padding:12px 14px;background:repeating-radial-gradient(circle at 30% 40%,rgba(255,255,255,.35) 0 2px,transparent 2px 7px),linear-gradient(135deg,#F7D9E3,#D6E6F7 50%,#E3F2DD);box-shadow:0 2px 0 rgba(0,0,0,.05);color:#13246E;opacity:0;transform:translateY(-160%) rotate(-10deg) scale(1.15);overflow:hidden}
.vsticker::after{content:"";position:absolute;inset:-20%;background:linear-gradient(115deg,transparent 40%,rgba(255,255,255,.75) 50%,transparent 60%);transform:translateX(-120%)}
.vj.s3 .vsticker{animation:stick .9s cubic-bezier(.3,1.4,.5,1) forwards}
.vj.s3 .vsticker::after{animation:holo 1.4s .9s ease-in-out}
@keyframes stick{0%{opacity:1;transform:translateY(-160%) rotate(-10deg) scale(1.15);box-shadow:0 40px 40px -10px rgba(0,0,0,.4)}70%{transform:translateY(4%) rotate(1deg) scale(.98)}100%{opacity:1;transform:none;box-shadow:0 2px 0 rgba(0,0,0,.05)}}
@keyframes holo{to{transform:translateX(120%)}}
.vs-top{display:flex;justify-content:space-between;font-family:var(--f-display);font-weight:900;font-size:20px;letter-spacing:.12em;text-transform:uppercase;border-bottom:1px solid rgba(19,36,110,.2);padding-bottom:6px;margin-bottom:8px}
.vs-body{display:grid;grid-template-columns:62px 1fr;gap:12px}
.vs-photo{aspect-ratio:4/5;border-radius:4px;background:#C7D3E8 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 48'%3E%3Ccircle cx='20' cy='17' r='9' fill='%237F92B8'/%3E%3Cpath d='M4 48c0-11 7-17 16-17s16 6 16 17z' fill='%237F92B8'/%3E%3C/svg%3E") center bottom/84% no-repeat}
.vs-fields{display:grid;min-width:0}
.vs-fields b{font-family:var(--f-display);font-weight:900;font-size:24px;text-transform:uppercase;line-height:1;margin-bottom:4px;overflow-wrap:anywhere}
.vs-fields small{font-family:var(--f-mono);font-size:8.5px;letter-spacing:.14em;text-transform:uppercase;color:#51607E;margin-top:3px}
.vs-fields span{font-weight:700;font-size:12.5px;text-transform:uppercase;overflow-wrap:anywhere}
.vs-mrz{margin-top:10px;font-size:10px}
.vmark{position:absolute;right:9%;bottom:9%;width:58%;padding:10px 12px;border:3px double #7C3AED;border-radius:12px;color:#7C3AED;text-align:center;display:grid;line-height:1.05;transform:rotate(-12deg) scale(1.8);opacity:0;mix-blend-mode:multiply}
.vmark small{font-family:var(--f-mono);font-size:9px;letter-spacing:.18em;text-transform:uppercase}
.vmark b{font-family:var(--f-display);font-weight:900;font-size:30px;text-transform:uppercase;letter-spacing:.06em}
.vmark span{font-family:var(--f-display);font-weight:800;font-size:15px;text-transform:uppercase}
.vj.s6 .vmark{animation:inkin .35s .45s cubic-bezier(.3,1.6,.5,1) forwards}
@keyframes inkin{to{opacity:.88;transform:rotate(-12deg) scale(1)}}
.vtool{position:absolute;right:16%;bottom:16%;width:110px;height:150px;transform:translateY(-140%);opacity:0;pointer-events:none;z-index:4}
.vtool i{position:absolute;left:38px;top:0;width:34px;height:70px;border-radius:17px 17px 6px 6px;background:linear-gradient(90deg,#7A4A22,#A8723F 50%,#7A4A22)}
.vtool b{position:absolute;left:8px;right:8px;bottom:30px;height:44px;border-radius:8px;background:linear-gradient(#2A3142,#151A24);box-shadow:0 6px 0 #5B2EA6}
.vj.s6 .vtool{animation:thump 1.2s ease-in-out forwards}
@keyframes thump{0%{opacity:1;transform:translateY(-160%)}40%{opacity:1;transform:translateY(8%)}55%{transform:translateY(0)}100%{opacity:0;transform:translateY(-180%)}}
.vj.s6 .vbook{animation:shake .4s .45s}
.vflight{position:absolute;inset:0;display:grid;place-items:center;opacity:0;pointer-events:none;transition:opacity .6s}
.vf-sky{position:absolute;inset:0;overflow:hidden;border-radius:24px}
.vf-sky i{position:absolute;height:28px;border-radius:999px;background:rgba(255,255,255,.18)}
.vf-sky .c1{width:180px;top:18%;animation:cloudby 2.6s linear infinite}
.vf-sky .c2{width:120px;top:52%;animation:cloudby 3.4s .6s linear infinite}
.vf-sky .c3{width:220px;top:76%;animation:cloudby 2.2s 1.1s linear infinite}
@keyframes cloudby{from{transform:translateX(110vw)}to{transform:translateX(-40vw)}}
.vf-route{position:relative;display:flex;align-items:center;gap:16px;width:min(560px,90%);font-family:var(--f-display);font-weight:900;font-size:clamp(34px,6vw,56px);color:#fff}
.vf-line{flex:1;position:relative;height:3px;background:repeating-linear-gradient(90deg,rgba(255,255,255,.5) 0 8px,transparent 8px 14px)}
.vf-plane{position:absolute;top:50%;left:0;width:56px;height:56px;margin:-28px 0 0 -28px;color:var(--gold);filter:drop-shadow(0 6px 10px rgba(0,0,0,.4))}
.vf-plane svg{width:100%;height:100%}
.vj.s4 .vflight{opacity:1}
.vj.s4 .vbook{opacity:0;transform:scale(.6) translateY(-30px)}
.vj.s4 .vf-plane{animation:planego 2.6s cubic-bezier(.5,0,.4,1) forwards}
@keyframes planego{0%{left:0;transform:translateY(0)}50%{transform:translateY(-14px) rotate(-6deg)}100%{left:100%;transform:translateY(0)}}
.vj.s5 .vbook,.vj.s6 .vbook{opacity:1}
.vj.v-done .vbook{transform:scale(.82)}
@media (max-height:760px){.vbook{width:min(280px,62vw)}}

/* ---- insurance scene ---- */
.iscene{position:relative;width:100%;display:grid;justify-items:center;gap:14px}
.isvg{width:min(640px,100%);border-radius:24px;box-shadow:0 40px 90px -30px rgba(0,0,0,.8);display:block}
.isky1{stop-color:#BFE0F7;transition:stop-color 1.2s}.isky2{stop-color:#FFF0D6;transition:stop-color 1.2s}
.vj.s1 .isky1{stop-color:#5E6E8C}.vj.s1 .isky2{stop-color:#A9B6CC}
.i-ground{fill:#40857F}.i-dash{fill:#F5EBCB;opacity:.6}
.i-road{animation:road .6s linear infinite}
@keyframes road{to{transform:translateX(-40px)}}
.i-dash{transform:scaleX(1)}
.i-clouds .ic{fill:#fff;opacity:.9;transform:translateY(-130px);transition:transform 1.2s var(--ease),fill 1.2s}
.vj.s1 .i-clouds .ic{transform:none;fill:#7C8AA5}
.ic2{transition-delay:.2s!important}
.i-rain{opacity:0;transition:opacity .6s}
.vj.s1 .i-rain{opacity:1}
.drop{stroke:#D6E9F7;stroke-width:2;stroke-linecap:round;animation:raindrop var(--d) linear infinite;animation-delay:var(--dl)}
@keyframes raindrop{to{transform:translate(-40px,380px)}}
.i-leg{transform-box:fill-box;transform-origin:50% 0;animation:leg .6s ease-in-out infinite alternate}
.i-leg.l2{animation-direction:alternate-reverse}
@keyframes leg{from{transform:rotate(14deg)}to{transform:rotate(-14deg)}}
.i-walker{animation:bobw .3s ease-in-out infinite alternate}
@keyframes bobw{to{transform:translateY(-2px)}}
.i-umb{transform-box:fill-box;transform-origin:50% 100%;transform:scale(0,.2);transition:transform .7s cubic-bezier(.3,1.6,.5,1)}
.vj.s2 .i-umb{transform:none}
.i-splash{opacity:0}
.vj.s2 .i-splash{animation:splash .5s .6s infinite alternate}
@keyframes splash{to{opacity:1}}
.ipolicy{position:relative;width:min(460px,100%);background:#F5EBCB;color:#1A1407;border-radius:18px;overflow:hidden;box-shadow:0 30px 70px -30px rgba(0,0,0,.8);transform:translateY(30px);opacity:0;transition:transform .7s var(--ease),opacity .5s;display:none}
.vj.s3 .ipolicy{display:block}
.vj.s3 .ipolicy.on,.vj.s3 .ipolicy{opacity:1;transform:none}
.ip-head{display:flex;align-items:center;gap:10px;background:#0A1016;color:#F5EBCB;padding:12px 16px}
.ip-head img{width:22px}
.ip-head b{flex:1;font-family:var(--f-display);font-weight:800;font-size:18px;letter-spacing:.06em;text-transform:uppercase}
.ip-head span{font-family:var(--f-mono);font-size:10.5px;letter-spacing:.12em;color:#7E8D9B}
.ip-trip{padding:12px 16px 4px;display:grid}
.ip-trip b{font-family:var(--f-display);font-weight:900;font-size:26px;text-transform:uppercase;line-height:1}
.ip-trip span{font-family:var(--f-mono);font-size:11px;letter-spacing:.06em;color:#6B5A2E;margin-top:4px}
.ipolicy ul{list-style:none;margin:0;padding:8px 16px 16px;display:grid;gap:6px}
.ipolicy li{display:flex;align-items:center;gap:10px;font-weight:700;font-size:14.5px;opacity:0;transform:translateX(-10px)}
.vj.s3 .ipolicy li{animation:lin .4s var(--ease) forwards;animation-delay:calc(.4s + var(--i) * .3s)}
@keyframes lin{to{opacity:1;transform:none}}
.ipolicy li i{width:22px;height:22px;border-radius:50%;background:#2E8B57;color:#fff;display:grid;place-items:center;flex:none}
.ipolicy li i svg{width:12px;height:12px}
.ip-stamp{position:absolute;right:16px;bottom:16px;width:110px;height:110px;border-radius:50%;border:4px solid #2E8B57;color:#2E8B57;display:grid;place-items:center;text-align:center;font-family:var(--f-display);font-weight:900;font-size:19px;line-height:.95;text-transform:uppercase;opacity:0;transform:rotate(-14deg) scale(2)}
.ip-stamp::before{content:"";position:absolute;inset:6px;border:2px dashed currentColor;border-radius:50%}
.vj.s4 .ip-stamp{animation:inkin2 .5s cubic-bezier(.3,1.6,.5,1) forwards}
@keyframes inkin2{to{opacity:.9;transform:rotate(-14deg) scale(1)}}
.vj.ik.s3 .isvg{width:min(420px,100%)}
@media (prefers-reduced-motion:reduce){.vj *{animation:none!important;transition:none!important}.vj .vsticker,.vj .vmark,.vj .ip-stamp,.vj .ipolicy li{opacity:1;transform:none}}
.vf-sky i{left:100%}
.vf-sky .c1{animation:cloudby2 2.6s linear infinite}
.vf-sky .c2{animation:cloudby2 3.4s .6s linear infinite}
.vf-sky .c3{animation:cloudby2 2.2s 1.1s linear infinite}
@keyframes cloudby2{from{left:100%}to{left:-45%}}
.vj.v-done .vscene{min-height:0}
.vj.v-done .vbook{transform:none;width:min(230px,52vw)}
.vj.v-done .vflight{display:none}
.vj.ik.s3 .isvg{width:min(360px,100%)}

/* =========================================================
   VISA + INSURANCE v3 — one form, one story
   ========================================================= */
.vgrid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:clamp(20px,4vw,48px);align-items:start}
.vassist{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:10px}
.vassist li{display:flex;gap:12px;align-items:flex-start;padding:16px;border-radius:16px;background:var(--surface);border:1px solid var(--line);font-weight:600;font-size:15.5px;line-height:1.35}
.vassist .vi{width:26px;height:26px;border-radius:50%;background:var(--leaf);color:#fff;display:grid;place-items:center;flex:none}
.vassist .vi svg{width:14px;height:14px}
.vdocs{background:var(--band);color:var(--band-ink);border-radius:24px;padding:clamp(20px,3vw,30px);display:grid;gap:14px;position:sticky;top:100px}
.vdocs .eyebrow{color:var(--gold)}
.vdocs ul{margin:0;padding:0;list-style:none;display:grid;gap:8px;counter-reset:d}
.vdocs li{display:grid;grid-template-columns:28px 1fr;gap:10px;align-items:start;font-size:15px}
.vdocs li::before{counter-increment:d;content:counter(d);width:24px;height:24px;border-radius:50%;background:var(--band-2);color:var(--gold);display:grid;place-items:center;font:700 12px var(--f-mono)}
.vdocs .vnote{background:var(--band-2);color:var(--band-muted)}
.vdocs .linkbtn{color:var(--gold)}
.fmts{margin-top:clamp(28px,4vw,44px);display:grid;gap:14px}
.fmt-row{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}
.fmt{padding:16px;border-radius:16px;border:1.5px dashed var(--line);display:grid;gap:4px}
.fmt b{font-family:var(--f-display);font-weight:800;font-size:22px;text-transform:uppercase;line-height:1}
.fmt span{font-size:13.5px;color:var(--muted)}
@media (max-width:980px){.vgrid{grid-template-columns:1fr}.vdocs{position:relative;top:0}.fmt-row{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.vassist{grid-template-columns:1fr}}
.ins-head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;flex-wrap:wrap;margin-bottom:clamp(28px,4vw,44px)}
.ins-stat{background:var(--gold);color:var(--gold-ink);border-radius:22px;padding:18px 24px;display:grid}
.ins-stat b{font-family:var(--f-display);font-weight:900;font-size:clamp(46px,6vw,72px);line-height:.9}
.ins-stat span{font-family:var(--f-mono);font-size:11.5px;letter-spacing:.12em;text-transform:uppercase}
.bgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,330px),1fr));gap:14px;align-items:start}
.bgroup{background:var(--surface);border:1px solid var(--line);border-radius:22px;padding:20px}
.bg-head{display:flex;align-items:center;gap:12px;margin-bottom:12px}
.bg-head svg{width:40px;height:40px;padding:9px;border-radius:12px;background:var(--bg-2);color:var(--teal)}
.bg-head h3{font-family:var(--f-display);font-weight:800;font-size:26px;text-transform:uppercase}
.bgroup ul{list-style:none;margin:0;padding:0;display:grid}
.bgroup li{display:flex;justify-content:space-between;gap:14px;padding:10px 0;border-top:1px dashed var(--line);font-size:15px}
.bgroup li b{font-weight:700;text-align:right;white-space:nowrap;color:var(--brand)}
.bgroup li span{min-width:0}
@media (max-width:420px){.bgroup li{flex-direction:column;gap:2px}.bgroup li b{text-align:left;white-space:normal}}
.ins-foot{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;margin-top:18px;font-size:14px;color:var(--muted)}
.story{list-style:none;margin:0;padding:0;display:grid;gap:0;counter-reset:s;position:relative}
.story::before{content:"";position:absolute;left:19px;top:20px;bottom:20px;border-left:2px dashed color-mix(in srgb,var(--band-ink) 30%,transparent)}
.story li{position:relative;display:grid;grid-template-columns:40px 1fr;column-gap:14px;padding:8px 0}
.story li::before{counter-increment:s;content:counter(s);grid-row:span 2;width:40px;height:40px;border-radius:50%;background:var(--band-2);border:2px solid var(--gold);color:var(--gold);display:grid;place-items:center;font-family:var(--f-display);font-weight:900;font-size:17px;z-index:1}
.story li:last-child::before{background:var(--gold);color:var(--gold-ink)}
.story b{font-family:var(--f-display);font-weight:800;font-size:21px;text-transform:uppercase;line-height:1.15}
.story span{color:var(--band-muted);font-size:14.5px}
/* stepper form */
.pf-steps{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px}
.pf-steps span{font:600 12.5px var(--f-body);padding:6px 11px;border-radius:999px;border:1.5px solid var(--line);color:var(--muted)}
.pf-steps span.on{background:var(--brand);border-color:var(--brand);color:var(--brand-ink)}
.pf-steps span.done{border-color:var(--teal);color:var(--ink)}
.pf-bar{height:5px;border-radius:999px;background:var(--bg-2);margin-bottom:20px;overflow:hidden}
.pf-bar i{display:block;height:100%;width:25%;background:linear-gradient(90deg,var(--teal),var(--brand));transition:width .5s var(--ease)}
.pf-step{border:0;padding:0;margin:0;display:grid;gap:16px;min-width:0}
.pf-step.on{animation:stepin .45s var(--ease)}
.pf-step legend{font-family:var(--f-display);font-weight:800;font-size:clamp(26px,3vw,32px);text-transform:uppercase;padding:0;margin-bottom:12px}
.pf-note{font-size:13px;color:var(--muted);margin-top:4px}
.pf-nav{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:20px}
.pf-nav #pfNext{margin-left:auto}
.pf-nav .send{flex:1}
.pf-nav .send.sending{flex:none}
.pform .fgrid{margin-bottom:0}
/* policy dialog */
.pol-dialog{position:fixed;inset:0;z-index:210;background:rgba(4,8,26,.66);backdrop-filter:blur(4px);display:grid;place-items:center;padding:16px;animation:jin .3s var(--ease)}
.pol-box{width:min(720px,100%);max-height:86vh;background:var(--surface);color:var(--ink);border-radius:24px;display:flex;flex-direction:column;overflow:hidden;box-shadow:var(--shadow-lg)}
.pol-head{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:18px 22px;border-bottom:1px solid var(--line)}
.pol-head h3{font-family:var(--f-display);font-weight:800;font-size:28px;text-transform:uppercase}
.pol-x{position:static;background:var(--bg-2);color:var(--ink);border-color:var(--line)}
.pol-scroll{overflow:auto;padding:8px 22px 22px}
.pol-table{width:100%;border-collapse:collapse;font-size:15px}
.pol-table th,.pol-table td{text-align:left;padding:10px 6px;border-bottom:1px solid var(--line);vertical-align:top}
.pol-table td:last-child{text-align:right;font-weight:700;color:var(--brand)}
.pol-table thead th{font-family:var(--f-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.pol-table thead th:last-child{text-align:right}
.pol-table tr.grp th{padding-top:18px;font-family:var(--f-display);font-weight:800;font-size:20px;text-transform:uppercase;color:var(--teal)}
.pol-note{margin-top:16px;font-size:13.5px;color:var(--muted)}
/* story overlay */
.vj-rail{list-style:none;margin:0 0 6px;padding:0;display:flex;flex-wrap:wrap;justify-content:center;gap:6px}
.vj-rail li{display:flex;align-items:center;gap:6px;padding:5px 10px 5px 5px;border-radius:999px;background:rgba(255,255,255,.07);color:#9FB0D6;font:600 12.5px var(--f-body);transition:all .4s var(--ease)}
.vj-rail i{width:20px;height:20px;border-radius:50%;background:rgba(255,255,255,.12);display:grid;place-items:center;font:700 11px var(--f-mono);font-style:normal}
.vj-rail li.on{background:var(--gold);color:var(--gold-ink);transform:scale(1.06)}
.vj-rail li.on i{background:rgba(0,0,0,.15)}
.vj-rail li.done{color:#EEF3FF}
.vj-rail li.done i{background:#2E8B57;color:#fff}
@media (max-width:560px){.vj-rail li span{display:none}.vj-rail li{padding:5px}}
.st{width:100%;display:grid;place-items:center;min-height:min(380px,50vh);animation:gin .6s var(--ease)}
.sc-form{width:min(400px,92vw);background:#F5EBCB;color:#1A1407;border-radius:18px;overflow:hidden;box-shadow:0 30px 70px -30px rgba(0,0,0,.8)}
.scf-head{display:flex;align-items:center;gap:10px;background:#0A1016;color:#F5EBCB;padding:12px 16px}
.scf-head img{width:22px}
.scf-head b{flex:1;font-family:var(--f-display);font-weight:800;font-size:18px;letter-spacing:.06em;text-transform:uppercase}
.scf-head span{font-family:var(--f-mono);font-size:10.5px;letter-spacing:.12em;color:#7E8D9B}
.scf-row{display:grid;grid-template-columns:110px 1fr;gap:10px;padding:11px 16px;border-top:1px dashed rgba(26,20,7,.18);align-items:baseline}
.scf-row small{font-family:var(--f-mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:#6B5A2E}
.scf-row span{font-weight:700;font-size:15.5px;min-height:1.2em;overflow-wrap:anywhere}
.scf-row span:not(:empty)::after{content:"";display:inline-block;width:2px;height:1em;background:#1A1407;margin-left:2px;vertical-align:-2px;animation:blink .8s steps(1) infinite}
@keyframes blink{50%{opacity:0}}
.sc-docs{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;width:min(620px,94vw)}
.doc{background:#F5EBCB;color:#1A1407;border-radius:14px;padding:14px 12px;display:grid;gap:6px;justify-items:start;opacity:0;transform:translateY(16px);animation:lin .45s var(--ease) forwards;animation-delay:calc(var(--i) * .22s)}
.doc .dico{width:30px;height:36px;border-radius:4px;background:linear-gradient(#fff,#fff) 6px 8px/18px 2px no-repeat,linear-gradient(#fff,#fff) 6px 14px/14px 2px no-repeat,linear-gradient(#fff,#fff) 6px 20px/16px 2px no-repeat,#9AA9C9}
.doc b{font-family:var(--f-display);font-weight:800;font-size:17px;text-transform:uppercase;line-height:1}
.doc em{font-style:normal;font-size:12px;font-weight:700;display:flex;align-items:center;gap:4px;padding:3px 8px;border-radius:999px;background:#FCE9C4;color:#9A6500}
.doc.have em{background:#D7F0DF;color:#1E7A46}
.doc em svg{width:11px;height:11px}
@media (max-width:560px){.sc-docs{grid-template-columns:1fr 1fr}}
.sc-proc{width:min(420px,92vw);background:#F5EBCB;color:#1A1407;border-radius:18px;padding:22px;display:grid;gap:14px;justify-items:center;box-shadow:0 30px 70px -30px rgba(0,0,0,.8)}
.ring-spin{width:64px;height:64px;border-radius:50%;border:6px solid rgba(26,20,7,.12);border-top-color:#13246E;animation:spin 1s linear infinite}
.sc-proc ul{list-style:none;margin:0;padding:0;display:grid;gap:8px;width:100%}
.sc-proc li{display:flex;align-items:center;gap:10px;font-weight:700;font-size:15px;opacity:0;animation:lin .4s var(--ease) forwards;animation-delay:calc(.3s + var(--i) * .5s)}
.sc-proc li svg{width:22px;height:22px;padding:4px;border-radius:50%;background:#2E8B57;color:#fff;flex:none}
.pbar{width:100%;height:8px;border-radius:999px;background:rgba(26,20,7,.12);overflow:hidden}
.pbar i{display:block;height:100%;width:0;background:linear-gradient(90deg,#2F6F7E,#13246E);animation:fillbar 2.4s var(--ease) forwards}
@keyframes fillbar{to{width:100%}}
.sc-pp{position:relative;width:min(330px,76vw);aspect-ratio:3/3.4;border-radius:10px;background:repeating-linear-gradient(0deg,transparent 0 23px,rgba(19,36,110,.06) 23px 24px),linear-gradient(160deg,#FBF7EC,#EEF3F8);box-shadow:0 30px 60px -20px rgba(0,0,0,.7);overflow:hidden}
.pp-head{display:flex;justify-content:space-between;padding:14px 16px 0;font-family:var(--f-mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:#51607E}
.vsticker.go{animation:stick .9s .3s cubic-bezier(.3,1.4,.5,1) forwards}
.vsticker.go::after{animation:holo 1.4s 1.2s ease-in-out}
.entry-stamp{position:absolute;left:50%;top:52%;width:200px;height:200px;margin:-100px 0 0 -100px;border-radius:50%;border:4px solid #0F766E;color:#0F766E;display:grid;place-items:center;align-content:center;text-align:center;gap:2px;opacity:0;transform:rotate(-14deg) scale(2.2);mix-blend-mode:multiply}
.entry-stamp::before{content:"";position:absolute;inset:8px;border:2px dashed currentColor;border-radius:50%}
.entry-stamp small{font-family:var(--f-mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase}
.entry-stamp b{font-family:var(--f-display);font-weight:900;font-size:46px;line-height:1}
.entry-stamp span{font-family:var(--f-display);font-weight:800;font-size:16px;text-transform:uppercase}
.entry-stamp.go{animation:slam2 .55s .4s cubic-bezier(.3,1.6,.5,1) forwards;--rot:-14deg}
.sc-evisa{position:relative;width:min(360px,84vw);height:340px}
.env{position:absolute;left:0;right:0;bottom:0;height:150px;background:#C9D6EC;border-radius:10px;z-index:2;box-shadow:0 30px 60px -20px rgba(0,0,0,.7)}
.env::before{content:"";position:absolute;inset:0;background:linear-gradient(155deg,transparent 49%,#B3C3E0 50%) left/50% 100% no-repeat,linear-gradient(205deg,transparent 49%,#B3C3E0 50%) right/50% 100% no-repeat;border-radius:10px}
.env-flap{position:absolute;left:0;right:0;top:0;height:80px;background:linear-gradient(180deg,#AFC0DE,#C9D6EC);clip-path:polygon(0 0,100% 0,50% 100%);transform-origin:top;animation:flap .5s ease-in forwards}
@keyframes flap{to{transform:rotateX(180deg)}}
.edoc{position:absolute;left:8%;right:8%;bottom:30px;height:250px;background:#fff;color:#13246E;border-radius:8px;padding:14px;display:grid;align-content:start;gap:6px;z-index:1;box-shadow:0 10px 30px -10px rgba(0,0,0,.4)}
.edoc.go{animation:rise 1s .5s var(--ease) forwards}
@keyframes rise{to{transform:translateY(-110px);z-index:3}}
.ed-head{display:flex;justify-content:space-between;align-items:center;border-bottom:2px solid #13246E;padding-bottom:6px}
.ed-head b{font-family:var(--f-display);font-weight:800;font-size:16px;letter-spacing:.06em;text-transform:uppercase}
.ed-head span{font:700 12px var(--f-mono)}
.ed-row{display:grid;grid-template-columns:86px 1fr;gap:8px;font-size:13px}
.ed-row small{font-family:var(--f-mono);font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;color:#7A86A3}
.ed-row span{font-weight:700;overflow-wrap:anywhere}
.ed-qr{width:62px;height:62px;margin-top:4px;background:conic-gradient(#13246E 25%,#fff 0 50%,#13246E 0 75%,#fff 0) 0 0/14px 14px,#fff;border:3px solid #13246E;border-radius:4px}
.ed-stamp{position:absolute;right:14px;bottom:18px;padding:6px 12px;border:3px solid #2E8B57;border-radius:8px;color:#2E8B57;font-family:var(--f-display);font-weight:900;font-size:24px;text-transform:uppercase;letter-spacing:.06em;opacity:0;transform:rotate(-10deg) scale(2)}
.edoc.go .ed-stamp{animation:inkin3 .45s 1.5s cubic-bezier(.3,1.6,.5,1) forwards}
@keyframes inkin3{to{opacity:.95;transform:rotate(-10deg) scale(1)}}
.sc-fly{position:relative;width:100%;height:min(320px,42vh);display:grid;place-items:center;border-radius:24px;overflow:hidden;background:linear-gradient(180deg,rgba(134,189,228,.18),rgba(134,189,228,.04))}
.vf-plane.go{animation:planego 2.4s cubic-bezier(.5,0,.4,1) forwards}
.sc-trip{width:100%;display:grid;justify-items:center}
.story-mode .isvg{width:min(600px,100%)}
.t-sun{transition:opacity 1s}
.story-mode.rainy .t-sun{opacity:0}
.story-mode.rainy .isky1{stop-color:#5E6E8C}.story-mode.rainy .isky2{stop-color:#A9B6CC}
.story-mode.rainy .i-clouds .ic{transform:none;fill:#7C8AA5}
.story-mode.rainy .i-rain{opacity:1}
.story-mode.covered .i-umb{transform:none}
.story-mode.covered .i-splash{animation:splash .5s .6s infinite alternate}
.story-mode .j-final h2{font-size:clamp(30px,4.4vw,48px)}
.story-mode.covered .st,.story-mode .j-final:not([hidden]) ~ .st{min-height:0}
@media (prefers-reduced-motion:reduce){.vj *{animation:none!important;transition:none!important}.vj .doc,.vj .sc-proc li,.vj .vsticker,.vj .entry-stamp,.vj .ed-stamp{opacity:1;transform:none}}
.linkbtn svg{width:16px;height:16px;flex:none}
.bgroup li b{white-space:normal;max-width:58%}
.vdocs .linkbtn{justify-self:start}

/* =========================================================
   VISA + INSURANCE v4 — copy update, multi-country picker
   ========================================================= */
.vdocs ul{gap:7px}
.vdocs li{font-size:14.5px}
.fmt-h{font-family:var(--f-display);font-weight:800;font-size:clamp(26px,3vw,36px);text-transform:uppercase;line-height:1.05}
.fmt-h em{font-family:var(--f-serif);font-style:italic;font-weight:400;text-transform:none;color:var(--brand)}
.fmt-row{grid-template-columns:repeat(auto-fill,minmax(min(100%,200px),1fr))}
.fmt{border-style:solid;background:var(--surface);gap:8px;padding:18px}
.fmt span{line-height:1.45}
.bl li{display:flex;justify-content:flex-start;align-items:flex-start;gap:10px}
.bl li svg{width:18px;height:18px;padding:3px;border-radius:50%;background:var(--leaf);color:#fff;flex:none;margin-top:2px}
.ins-fine{margin-top:18px;font-size:14px;color:var(--muted)}
.story li{padding:7px 0}
.story b{font-size:19px}
.msel{display:grid;gap:10px;min-width:0}
.msel .chip-label{margin:0}
.msel-box{position:relative;display:flex;flex-wrap:wrap;align-items:center;gap:6px;min-height:58px;padding:8px 10px;border:1.5px solid var(--line);border-radius:14px;background:var(--bg);cursor:text;transition:border-color .25s,box-shadow .25s}
.msel-box:focus-within{border-color:var(--brand);background:var(--surface);box-shadow:0 0 0 4px color-mix(in srgb,var(--brand) 16%,transparent)}
.msel-box.bad{border-color:var(--err);animation:shake .45s}
.msel-tags{display:contents}
.mtag{display:inline-flex;align-items:center;gap:4px;padding:5px 6px 5px 11px;border-radius:999px;background:var(--brand);color:var(--brand-ink);font-weight:600;font-size:14px;animation:bump .3s var(--ease)}
.mtag button{border:0;background:rgba(255,255,255,.22);color:inherit;width:20px;height:20px;border-radius:50%;cursor:pointer;font-size:14px;line-height:1;display:grid;place-items:center}
.mtag button:hover{background:rgba(255,255,255,.4)}
.msel-box input{flex:1;min-width:140px;border:0;background:none;outline:none;font:500 16px var(--f-body);color:var(--ink);padding:8px 4px}
.msel-box .cb-list{top:calc(100% + 6px)}
.cb-list li.none{color:var(--muted);cursor:default;font-weight:500}
.msel .msg{color:var(--err);font-size:12.5px;padding-left:4px}
.msel-quick{display:flex;flex-wrap:wrap;gap:6px}
.cq{border:1.5px solid var(--line);background:var(--surface);color:var(--ink);border-radius:999px;padding:6px 12px;font:600 13px var(--f-body);cursor:pointer;transition:all .2s var(--ease)}
.cq:hover{border-color:var(--brand)}
.cq[aria-pressed="true"]{background:color-mix(in srgb,var(--brand) 12%,var(--surface));border-color:var(--brand);color:var(--brand)}
.cq.all{border-style:dashed;color:var(--brand)}
.msel-all{border:1.5px solid var(--line);border-radius:16px;overflow:hidden;animation:drop .3s var(--ease)}
.msel-all-head{display:flex;align-items:center;gap:10px;padding:10px;border-bottom:1px solid var(--line);background:var(--bg)}
.msel-all-head input{flex:1;min-width:0;border:1.5px solid var(--line);border-radius:10px;padding:9px 12px;font:500 15px var(--f-body);background:var(--surface);color:var(--ink);outline:none}
.msel-all-head input:focus{border-color:var(--brand)}
.msel-all-head span{font-family:var(--f-mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);white-space:nowrap}
.msel-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:2px;max-height:260px;overflow:auto;padding:8px}
.cpick{display:flex;align-items:center;gap:8px;padding:7px 8px;border-radius:8px;cursor:pointer;font-size:14px}
.cpick:hover{background:var(--bg-2)}
.cpick input{width:16px;height:16px;accent-color:var(--brand);flex:none}
.cpick:has(input:checked){font-weight:700;color:var(--brand)}
.pform .pf-step{gap:18px}
.doc em{opacity:0;animation:lin .3s var(--ease) forwards;animation-delay:calc(.5s + var(--j) * .22s)}
.fmt b{text-transform:none;font-size:23px}
.ins-fine{margin-top:32px}

/* Documents panel: compact animated deck */
.vdocs{position:relative;top:auto;display:grid;gap:14px;align-content:start;overflow:hidden}
.vd-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px}
.vd-count{font-family:var(--f-mono);font-size:12px;letter-spacing:.1em;color:var(--band-muted);white-space:nowrap}
.vd-count b{font-family:var(--f-display);font-weight:900;font-size:30px;letter-spacing:0;color:var(--band-ink);font-variant-numeric:tabular-nums}
.vd-stage{display:grid;grid-template-columns:84px minmax(0,1fr);gap:16px;align-items:center}
.vd-folder{position:relative;width:84px;height:68px}
.vd-folder svg{width:100%;height:100%;overflow:visible}
.f-back{fill:#C99A2E}.f-paper{fill:#FBF7EC}.f-front{fill:var(--gold);transform-origin:50% 100%}
.f-label{font:700 9px var(--f-mono);letter-spacing:.16em;fill:var(--gold-ink)}
.vdocs.gulp .f-front{animation:gulp .35s var(--ease)}
@keyframes gulp{40%{transform:scaleY(.84) skewX(-4deg)}}
.f-count{position:absolute;right:-6px;top:-8px;min-width:26px;height:26px;padding:0 6px;border-radius:999px;background:#7FD08E;color:#0B2A17;font:800 13px/26px var(--f-body);text-align:center;font-variant-numeric:tabular-nums}
.vdocs.gulp .f-count{animation:bump .35s var(--ease)}
.deck{position:relative;list-style:none;margin:0;padding:0;height:128px}
.dcard{position:absolute;inset:0 0 auto 0;height:112px;border-radius:16px;background:#FBF7EC;color:#13246E;padding:14px 16px 14px 60px;display:flex;flex-direction:column;justify-content:center;gap:6px;box-shadow:0 14px 30px -14px rgba(0,0,0,.6);transition:transform .6s var(--ease),opacity .5s,filter .5s;transform-origin:50% 100%}
.dcard b{font-family:var(--f-display);font-weight:800;font-size:clamp(19px,1.9vw,23px);line-height:1.08;text-transform:uppercase}
.dcard em{align-self:flex-start;font-style:normal;font:700 11px var(--f-mono);letter-spacing:.08em;text-transform:uppercase;padding:3px 8px;border-radius:999px;background:#FCE9C4;color:#9A6500}
.dc-n{position:absolute;right:14px;top:10px;font:700 11px var(--f-mono);letter-spacing:.1em;color:#7A86A3}
.dc-ico{position:absolute;left:16px;top:50%;width:30px;height:38px;margin-top:-19px;border-radius:4px;background:linear-gradient(#fff,#fff) 6px 9px/18px 2px no-repeat,linear-gradient(#fff,#fff) 6px 15px/14px 2px no-repeat,linear-gradient(#fff,#fff) 6px 21px/16px 2px no-repeat,#9AA9C9}
.dcard.p0{transform:none;opacity:1;z-index:3}
.dcard.p1{transform:translateY(9px) scale(.95);opacity:.85;filter:brightness(.92);z-index:2}
.dcard.p2{transform:translateY(17px) scale(.9);opacity:.6;filter:brightness(.85);z-index:1}
.dcard.out{transform:translate(-120px,10px) rotate(-14deg) scale(.4);opacity:0;z-index:4}
.dcard.hide{transform:translateY(17px) scale(.9);opacity:0;z-index:0}
.vd-ctrl{display:grid;grid-template-columns:34px 1fr 34px;gap:10px;align-items:center}
.vd-btn{width:34px;height:34px;border-radius:50%;border:1px solid color-mix(in srgb,var(--band-ink) 28%,transparent);background:none;color:var(--band-ink);font-size:20px;line-height:1;cursor:pointer;transition:background .2s}
.vd-btn:hover{background:var(--band-2)}
.vd-meter{height:5px;border-radius:999px;background:var(--band-2);overflow:hidden}
.vd-meter i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--gold),#7FD08E);transition:width .5s var(--ease)}
.vd-all summary{cursor:pointer;font:600 14px var(--f-body);color:var(--gold);list-style:none;display:inline-flex;align-items:center;gap:6px}
.vd-all summary::-webkit-details-marker{display:none}
.vd-all summary::after{content:"+";font-size:18px;line-height:1;transition:transform .25s}
.vd-all[open] summary::after{transform:rotate(45deg)}
.vd-all ul{list-style:none;margin:10px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:6px;animation:drop .3s var(--ease)}
.vd-all li{font-size:12.5px;padding:5px 10px;border-radius:999px;background:var(--band-2);color:var(--band-ink)}
.vdocs .vnote{font-size:12.5px;margin:0}
.fmts{clear:both}
@media (max-width:560px){.vd-stage{grid-template-columns:64px minmax(0,1fr);gap:12px}.vd-folder{width:64px;height:52px}.dcard{padding-left:54px}.dc-ico{left:12px}}
@media (prefers-reduced-motion:reduce){.vdocs *{animation:none!important;transition:none!important}}
.vdocs .deck{display:block;gap:0}
.vdocs .dcard{display:flex;grid-template-columns:none;font-size:inherit}
.vdocs .dcard::before,.vdocs .vd-all li::before{content:none;display:none}
.vdocs .vd-all ul{display:flex}
.vdocs .vd-all li{display:block;font-size:12.5px}

/* Visa form: confirmation after sending */
.pform.is-done > :not(.pf-done){display:none!important}
.pf-done{display:grid;justify-items:center;text-align:center;gap:14px;padding-block:10px;animation:stepin .5s var(--ease)}
.pf-done .stamp-ok{width:150px;height:150px;font-size:22px;animation:slam .55s .2s cubic-bezier(.3,1.6,.5,1) forwards}
.pf-done h3{font-family:var(--f-display);font-weight:800;font-size:clamp(30px,3.4vw,40px);text-transform:uppercase}
.pf-done p{color:var(--muted);max-width:44ch}
.pf-done p b{color:var(--ink)}
.pf-sum{list-style:none;margin:0;padding:12px 14px;border-radius:14px;background:var(--bg);width:100%;display:grid;gap:8px;text-align:left}
.pf-sum li{display:grid;grid-template-columns:96px 1fr;gap:10px;font-size:14.5px}
.pf-sum small{font-family:var(--f-mono);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);padding-top:2px}
.pf-sum span{font-weight:600;overflow-wrap:anywhere}
.pf-done .cta-row{justify-content:center}
@media (prefers-reduced-motion:reduce){.pf-done .stamp-ok{opacity:1;transform:rotate(-12deg)}}
.pf-done .stamp-ok small{font-size:9px;letter-spacing:.1em}

/* =========================================================
   FOREX & eSIM v2
   ========================================================= */
.fo-head{display:flex;gap:14px;align-items:center}
.fo-ic{width:52px;height:52px;border-radius:16px;display:grid;place-items:center;background:var(--bg-2);color:var(--teal);flex:none}
.fx-opt.card-opt .fo-ic{background:var(--band-2);color:var(--gold)}
.fo-ic svg{width:28px;height:28px}
.fo-head h3{margin-bottom:2px}
.fo-lbl{font-family:var(--f-mono);font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.fx-opt.card-opt .fo-lbl{color:var(--band-muted)}
.fo-good{font-size:14.5px;padding:12px 14px;border-radius:12px;background:var(--bg-2);color:var(--ink)}
.fx-opt.card-opt .fo-good{background:var(--band-2);color:var(--band-ink)}
.fx-opt.card-opt .fo-head{padding-right:120px}
.need-row{display:flex;flex-wrap:wrap;align-items:center;gap:12px 16px;margin-top:16px;padding:16px 20px;border-radius:18px;border:1.5px dashed var(--line)}
.need-row b{font-family:var(--f-display);font-weight:800;font-size:20px;text-transform:uppercase}
.fxc .f .sym.sm{font-family:var(--f-display);font-weight:900;font-size:32px}
.fxc .b em{font-style:normal;font:700 12px var(--f-mono);letter-spacing:.08em;color:var(--gold);margin-top:4px}
.fx-else{display:grid;grid-template-columns:auto 1fr;gap:16px 24px;align-items:center;margin-top:16px;padding:18px 20px;border-radius:20px;background:var(--surface);border:1px solid var(--line)}
.fx-else > div:first-child{display:grid}
.fx-else > div:first-child b{font-family:var(--f-display);font-weight:800;font-size:24px;text-transform:uppercase;line-height:1}
.fx-else > div:first-child span{color:var(--muted);font-size:14.5px}
.fx-else-row{display:flex;gap:10px;align-items:stretch;flex-wrap:wrap}
.fx-else-row .fl{flex:1 1 220px}
.fx-else-row .btn{height:58px}
@media (max-width:760px){.fx-else{grid-template-columns:1fr}.fx-else-row .btn{width:100%}}
.esim-row{display:flex;flex-wrap:wrap;gap:18px 24px;align-items:flex-end}
/* dropdown */
.dd{position:relative;display:inline-block;min-width:min(100%,320px)}
.dd-sm{min-width:170px}
.dd-btn{width:100%;display:flex;align-items:center;gap:10px;padding:10px 14px 10px 10px;border-radius:14px;border:1.5px solid var(--line);background:var(--surface);color:var(--ink);font:600 16px var(--f-body);cursor:pointer;transition:border-color .2s,box-shadow .2s;text-align:left}
.dd-sm .dd-btn{padding-left:14px}
.dd-btn:hover{border-color:var(--brand)}
.dd.open .dd-btn{border-color:var(--brand);box-shadow:0 0 0 4px color-mix(in srgb,var(--brand) 14%,transparent)}
.dd-btn svg{width:18px;height:18px;margin-left:auto;color:var(--muted);transition:transform .25s var(--ease)}
.dd.open .dd-btn svg{transform:rotate(180deg)}
.dd-val{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dd-flag{display:inline-grid;place-items:center;min-width:34px;height:26px;padding:0 6px;border-radius:8px;background:var(--bg-2);color:var(--brand);font:800 12px var(--f-mono);letter-spacing:.06em;flex:none}
.dd-pop{position:absolute;left:0;right:0;top:calc(100% + 8px);z-index:30;background:var(--surface);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow-lg);overflow:hidden;animation:drop .25s var(--ease);min-width:220px}
.dd-search{width:100%;border:0;border-bottom:1px solid var(--line);padding:12px 14px;font:500 15px var(--f-body);background:var(--bg);color:var(--ink);outline:none}
.dd-list{list-style:none;margin:0;padding:6px;max-height:280px;overflow:auto}
.dd-list li{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:10px;cursor:pointer;font-weight:600;font-size:15px;color:var(--ink)}
.dd-list li svg{width:16px;height:16px;margin-left:auto;color:var(--leaf)}
.dd-list li.act{background:var(--bg-2)}
.dd-list li.sel{color:var(--brand)}
.dd-list li.none{color:var(--muted);cursor:default;font-weight:500}
/* form side art */
.fx-art{position:relative;height:220px;max-width:420px}
.fa-note{position:absolute;width:150px;height:76px;border-radius:10px;background:linear-gradient(135deg,#9FD9A8,#4BA45C);display:grid;place-items:center;box-shadow:0 18px 30px -16px rgba(0,0,0,.6);animation:floaty 6s ease-in-out infinite}
.fa-note b{width:46px;height:46px;border-radius:50%;background:rgba(255,255,255,.35);display:grid;place-items:center;font-family:var(--f-serif);font-size:30px;color:#0B2A17}
.fa-note.n1{left:0;top:30px;transform:rotate(-10deg)}
.fa-note.n2{left:60px;top:80px;background:linear-gradient(135deg,#B9D2F7,#5A88D6);animation-delay:-2s}
.fa-note.n3{left:20px;top:140px;background:linear-gradient(135deg,#F7D9A0,#E0A04A);animation-delay:-4s}
.fa-card{position:absolute;right:30px;top:20px;width:190px;aspect-ratio:1.586/1;border-radius:14px;background:linear-gradient(135deg,#F2B33D,#E07B39 60%,#C2410C);padding:14px;display:flex;flex-direction:column;justify-content:space-between;color:#1B1303;box-shadow:0 20px 40px -18px rgba(0,0,0,.7);transform:rotate(8deg);animation:floaty 7s -1s ease-in-out infinite}
.fa-card b{font:700 13px var(--f-mono);letter-spacing:.16em}
.fa-sim{position:absolute;right:70px;bottom:0;width:90px;height:116px;border-radius:12px 34px 12px 12px;background:#EEF3FF;display:grid;place-items:center;align-content:center;gap:8px;box-shadow:0 18px 30px -16px rgba(0,0,0,.6);animation:floaty 6.5s -3s ease-in-out infinite}
.fa-sim i{width:46px;height:36px;border-radius:6px;background:linear-gradient(90deg,transparent 30%,rgba(0,0,0,.2) 30% 34%,transparent 34% 66%,rgba(0,0,0,.2) 66% 70%,transparent 70%),linear-gradient(#E9C46A,#C99A2E)}
.fa-sim b{font:800 13px var(--f-mono);color:var(--band)}
@media (max-width:900px){.fx-art{height:180px}.fa-note{width:120px;height:62px}.fa-card{width:150px}}
.fx-card.is-done .lead-front{display:none}
.fx-card .pf-done{background:var(--surface);color:var(--ink);border-radius:26px;padding:clamp(22px,3.4vw,40px);box-shadow:0 50px 100px -40px rgba(0,0,0,.6)}
.mf-forex,.mf-esim{animation:stepin .35s var(--ease)}
.need-msg{color:var(--err);font-size:12.5px;margin-top:6px}
/* animation */
.sc-cash{position:relative;width:min(560px,94vw);height:min(360px,48vh);display:grid;place-items:center}
.fxdesk{position:relative;width:min(380px,84vw);background:#F5EBCB;border-radius:18px;overflow:hidden;box-shadow:0 30px 70px -30px rgba(0,0,0,.8);z-index:2}
.ct-top{display:flex;align-items:center;gap:10px;background:#0A1016;color:#F5EBCB;padding:12px 16px}
.ct-top img{width:22px}.ct-top b{flex:1;font-family:var(--f-display);font-weight:800;font-size:18px;letter-spacing:.06em;text-transform:uppercase}.ct-top span{font:500 10.5px var(--f-mono);letter-spacing:.12em;color:#7E8D9B}
.ct-window{position:relative;height:190px;display:flex;align-items:center;justify-content:center;gap:24px;padding:16px}
.bills{position:relative;width:140px;height:80px}
.bill{position:absolute;inset:0;border-radius:8px;background:linear-gradient(135deg,#9FD9A8,#3E8F52);display:flex;align-items:center;justify-content:space-between;padding:0 12px;color:#0B2A17;box-shadow:0 6px 14px -6px rgba(0,0,0,.4);transform:translateY(calc(var(--k) * -4px)) rotate(calc((var(--k) - 2) * 3deg));transition:transform .7s var(--ease),opacity .5s}
.bill span{font-family:var(--f-serif);font-size:28px}.bill b{font:800 12px var(--f-mono)}
.fxcard{width:170px;aspect-ratio:1.586/1;border-radius:12px;background:linear-gradient(135deg,#F2B33D,#E07B39 60%,#C2410C);padding:12px;display:flex;flex-direction:column;justify-content:space-between;color:#1B1303;box-shadow:0 10px 20px -10px rgba(0,0,0,.5);transition:transform .7s var(--ease),opacity .5s}
.fxcard b{font:700 11px var(--f-mono);letter-spacing:.14em}
.fxcard em{font-style:normal;font-family:var(--f-display);font-weight:900;font-size:24px;font-variant-numeric:tabular-nums}
.hand{position:absolute;left:-10%;bottom:12%;width:150px;opacity:0;transform:translateX(-60px);transition:transform .8s var(--ease),opacity .4s;z-index:3}
.wallet{position:absolute;right:2%;bottom:6%;width:130px;height:96px;opacity:0;transform:translateY(30px) scale(.8);transition:all .6s var(--ease);z-index:1}
.w-back{position:absolute;inset:0;border-radius:14px;background:#5B3A2A}
.w-front{position:absolute;left:0;right:0;bottom:0;height:62%;border-radius:0 0 14px 14px;background:#7A4A22;z-index:4}
.w-front i{position:absolute;right:10px;top:16px;width:22px;height:16px;border-radius:4px;background:#F2B33D}
.fxj.c1 .hand{opacity:1;transform:none}
.fxj.c2 .bill{transform:translate(calc(80px + var(--k) * 4px),calc(var(--k) * -4px)) rotate(calc((var(--k) - 2) * 4deg))}
.fxj.c2 .fxcard{transform:translateY(-6px) rotate(-4deg)}
.fxj.c3 .wallet{opacity:1;transform:none}
.fxj.c3 .fxdesk{transform:translateX(-14%) scale(.9);transition:transform .7s var(--ease)}
.fxj.c3 .bill{transform:translate(200px,70px) scale(.5) rotate(10deg);opacity:0;transition-delay:calc(var(--k) * .08s)}
.fxj.c3 .fxcard{transform:translate(170px,60px) scale(.5) rotate(10deg);opacity:0;transition-delay:.45s}
.sc-sim{position:relative;width:min(560px,94vw);height:min(440px,56vh);display:grid;place-items:center}
.phone.mini{width:min(220px,56vw);padding:9px;border-radius:34px}
.phone.mini::before{top:16px;width:64px;height:18px;margin-left:-32px}
.phone.mini .screen{border-radius:26px;background:linear-gradient(180deg,#C3E2EF,#86BDE4)}
.phone.mini .sbar{color:#0D1A4F}
.sim-qr,.sim-ok{position:absolute;inset:40px 14px 14px;display:grid;place-items:center;align-content:center;gap:12px;text-align:center;color:#0D1A4F;transition:opacity .5s,transform .5s var(--ease)}
.sim-qr svg{width:120px;height:120px;padding:8px;background:#fff;border-radius:12px;fill:#0D1A4F}
.sim-qr .scan{position:absolute;left:50%;top:calc(50% - 76px);width:136px;height:3px;margin-left:-68px;background:#F2B33D;box-shadow:0 0 12px #F2B33D;animation:scanq 1.2s ease-in-out infinite alternate}
@keyframes scanq{to{transform:translateY(120px)}}
.sim-qr b{font-size:13px}
.sim-ok{opacity:0;transform:scale(.9)}
.sim-ok .flagc{width:80px;height:80px;border-radius:50%;background:#fff;display:grid;place-items:center;font-family:var(--f-display);font-weight:900;font-size:28px;color:#1E3A9E;box-shadow:var(--shadow)}
.sim-ok h4{font-family:var(--f-display);font-weight:800;font-size:22px;text-transform:uppercase;line-height:1}
.sim-ok p{font-size:12.5px;opacity:.8}
.sim-ok .sc-pill{font-size:11.5px}
.fxj.m1 .sim-qr{opacity:0;transform:scale(.9)}
.fxj.m1 .sim-ok{opacity:1;transform:none}
.fxj.m4 .sc-pill::before{background:var(--leaf)}
.land-plane{position:absolute;left:-10%;top:10%;width:60px;color:#fff;opacity:0}
.fxj.m2 .land-plane{animation:landp 1.5s ease-out forwards}
@keyframes landp{0%{opacity:1;transform:translate(0,0) rotate(10deg)}100%{opacity:0;transform:translate(320px,180px) rotate(14deg) scale(.6)}}
.fxj.m4 .phone.mini{animation:bump .5s var(--ease)}
@media (prefers-reduced-motion:reduce){.fxj *{animation:none!important;transition:none!important}.fx-art *{animation:none!important}}
.fx-opt.card-opt .mini-card{width:150px;right:-26px;top:-26px}
.fx-opt.card-opt .fo-head{padding-right:110px}
@media (max-width:860px){.fx-opt.card-opt .mini-card{width:120px}.fx-opt.card-opt .fo-head{padding-right:84px}}
.flip-hint{display:inline-block;margin-top:6px;font-family:var(--f-mono);font-size:12.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--teal)}
.dd-wide{flex:1 1 260px;min-width:0}
.dd-wide .dd-btn{height:58px}
.dd-ph{color:var(--muted);font-weight:500}
.dd.bad .dd-btn{border-color:var(--err);animation:shake .45s}
.fx-else .msg{grid-column:1/-1;color:var(--err);font-size:12.5px;margin-top:-6px}
.fx-else .dd-pop{max-height:none}
.dd-flag:empty{display:none}

/* =========================================================
   GROUP TRIPS — Japan in Sakura (scroll story)
   ========================================================= */
:root{--jp-paper:#FDF0F4;--jp-card:#FFFFFF;--jp-ink:#2A1030;--jp-muted:#7A5A6E;--jp-pink:#E86A8E;--jp-deep:#9E3B63;--jp-tint:#FCE1EA;--jp-line:#F3CFDB}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){--jp-paper:#140C2A;--jp-card:#211443;--jp-ink:#F7E8EF;--jp-muted:#C9AFC4;--jp-pink:#F49AB4;--jp-deep:#F7B7C7;--jp-tint:#3A1F4E;--jp-line:#3E2A5C}}
:root[data-theme="dark"]{--jp-paper:#140C2A;--jp-card:#211443;--jp-ink:#F7E8EF;--jp-muted:#C9AFC4;--jp-pink:#F49AB4;--jp-deep:#F7B7C7;--jp-tint:#3A1F4E;--jp-line:#3E2A5C}

.jp-petals{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:40}
.jp-story{padding:0;position:relative}
.jp-sticky{position:relative;min-height:100vh;min-height:100svh;overflow:hidden}
.jp-js .jp-sticky{position:sticky;top:0;height:100vh;height:100svh}
.jp-js .jp-open{height:260vh}
.jp-js .jp-globe{height:320vh}
.jp-js .jp-days{height:calc(100vh + 9 * 58vh)}
.jp-kicker{font-family:var(--f-mono);font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:#F7B7C7}
.jp-h2{font-family:var(--f-display);font-weight:900;font-size:clamp(38px,5vw,72px);text-transform:uppercase;line-height:.92}
.jp-h2 em,.jp-title em{font-family:var(--f-serif);font-style:italic;font-weight:400;text-transform:none;color:#F7B7C7}

/* --- opening: boarding pass over a parallax Japan --- */
.jp-open .jp-sticky{background:#1A1035;color:#fff}
.jp-scene{position:absolute;inset:0;width:100%;height:100%}
.jp-scene g{transform-box:view-box}
.jp-scene .L0{transform:translateY(calc(var(--p,0) * -70px))}
.jp-scene .L1{transform:translateY(calc(var(--p,0) * 50px)) scale(calc(1 + var(--p,0) * .06));transform-origin:720px 760px}
.jp-scene .L2{transform:translateY(calc(var(--p,0) * 110px))}
.jp-scene .L3{transform:translateY(calc(var(--p,0) * 190px))}
.jp-open .jp-sticky::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(26,16,53,.75),rgba(26,16,53,.15) 60%,transparent);pointer-events:none}
.jp-plane{position:absolute;z-index:3;width:clamp(40px,5vw,64px);color:#fff;left:calc(-8% + var(--plane,0) * 118%);top:calc(34% - var(--plane,0) * 22%);transform:rotate(-12deg);filter:drop-shadow(0 10px 14px rgba(0,0,0,.4));opacity:calc(var(--plane,0) * 30)}
.jp-plane::after{content:"";position:absolute;right:90%;top:50%;width:calc(var(--plane,0) * 60vw);height:2px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.7));transform:translateY(-50%)}
.jp-open-copy{position:absolute;z-index:4;left:var(--gutter);top:clamp(96px,16vh,170px);max-width:min(640px,90vw);display:grid;gap:14px;transform:translateY(calc(var(--p,0) * -60px))}
.jp-crumb{color:#F7E8EF}
.jp-title{font-family:var(--f-display);font-weight:900;font-size:clamp(64px,11vw,164px);text-transform:uppercase;line-height:.84;text-shadow:0 10px 40px rgba(26,16,53,.5)}
.jp-tagline{font-family:var(--f-serif);font-style:italic;font-size:clamp(20px,2.2vw,28px);color:#FFE3EC}
.jp-pass-wrap{position:absolute;z-index:5;right:var(--gutter);bottom:clamp(40px,10vh,110px);width:min(560px,calc(100vw - 2 * var(--gutter)));perspective:1400px}
.jp-pass{position:relative;display:grid;grid-template-columns:1fr 118px;background:#FFF7F9;color:#2A1030;border-radius:22px;box-shadow:0 40px 80px -30px rgba(0,0,0,.7);transform-origin:50% 100%;transform:translateY(calc((1 - var(--pass,0)) * 140px)) rotateX(calc((1 - var(--pass,0)) * 75deg));opacity:calc(var(--pass,0) * 1.6)}
.jpp-main{padding:18px 20px;display:grid;gap:14px;min-width:0}
.jpp-head{display:flex;justify-content:space-between;gap:10px;font-family:var(--f-mono);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:#9E3B63}
.jpp-head span:first-child{display:flex;align-items:center;gap:6px;font-weight:600;color:#2A1030}
.jpp-head img{width:16px;height:auto}
.jpp-route{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px}
.jpp-route b{display:block;font-family:var(--f-display);font-weight:900;font-size:clamp(44px,6vw,64px);line-height:.9}
.jpp-route small{font-family:var(--f-mono);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:#7A5A6E}
.jpp-line{position:relative;height:24px;color:#E86A8E}
.jpp-line::before{content:"";position:absolute;left:0;right:0;top:50%;border-top:2px dashed #F3CFDB}
.jpp-line svg{position:absolute;left:calc(var(--pass,0) * 100% - 24px * var(--pass,0));top:0;width:24px;height:24px}
.jpp-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;border-top:1px dashed #F3CFDB;padding-top:12px}
.jpp-grid small,.jpp-stub small{display:block;font-family:var(--f-mono);font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;color:#7A5A6E}
.jpp-grid b{font-family:var(--f-display);font-weight:800;font-size:17px;text-transform:uppercase;line-height:1.1}
.jpp-stub{border-left:2px dashed #F3CFDB;padding:18px 14px;display:grid;align-content:space-between;gap:10px;background:#FCE1EA;border-radius:0 22px 22px 0}
.jpp-stub b{font-family:var(--f-display);font-weight:900;font-size:26px;text-transform:uppercase;color:#9E3B63}
.jpp-bar{height:56px;background:repeating-linear-gradient(90deg,#2A1030 0 2px,transparent 2px 4px,#2A1030 4px 7px,transparent 7px 9px,#2A1030 9px 10px,transparent 10px 13px)}
.jpp-stamp{position:absolute;right:96px;top:-26px;width:112px;height:112px;border-radius:50%;border:3px solid #E86A8E;color:#E86A8E;display:grid;place-items:center;text-align:center;font-family:var(--f-display);font-weight:900;font-size:16px;line-height:1;text-transform:uppercase;background:rgba(255,247,249,.85);opacity:0;transform:rotate(-16deg) scale(2.2);pointer-events:none}
.jpp-stamp::before{content:"";position:absolute;inset:6px;border:1.5px dashed #E86A8E;border-radius:50%}
.stamped .jpp-stamp{animation:slam2 .5s cubic-bezier(.3,1.6,.5,1) forwards;--rot:-16deg}
.jp-scroll-hint{position:absolute;z-index:4;left:50%;bottom:18px;transform:translateX(-50%);font-family:var(--f-mono);font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:#FFE3EC;opacity:calc(1 - var(--p,0) * 6);display:grid;justify-items:center;gap:6px}
.jp-scroll-hint::after{content:"";width:2px;height:28px;background:linear-gradient(#FFE3EC,transparent);animation:hint 1.6s ease-in-out infinite}
@keyframes hint{0%{transform:scaleY(0);transform-origin:top}50%{transform:scaleY(1);transform-origin:top}51%{transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}
html:not(.jp-js) .jp-pass,.jp-still .jp-pass{transform:none;opacity:1}

/* --- globe --- */
.jp-globe .jp-sticky{background:radial-gradient(90% 70% at 70% 50%,#3A1F5E,#1A1035 55%,#0F0820);color:#fff;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:clamp(20px,4vw,60px);padding:90px max(var(--gutter),calc((100vw - 1200px) / 2)) 30px}
.jg-copy{display:grid;gap:16px;min-width:0}
.jg-lede{color:#E2CCE0;max-width:46ch}
.jg-stats{display:flex;gap:clamp(16px,3vw,34px);flex-wrap:wrap}
.jg-stats b{display:block;font-family:var(--f-display);font-weight:900;font-size:clamp(32px,4vw,48px);line-height:1;color:var(--gold);font-variant-numeric:tabular-nums}
.jg-stats span{font-family:var(--f-mono);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:#C9AFC4}
.jg-route{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:6px 14px}
.jg-route li{display:grid;grid-template-columns:14px auto 1fr;grid-template-rows:auto auto;column-gap:8px;align-items:baseline;padding:7px 10px;border-radius:12px;opacity:.38;transition:opacity .4s,background .4s}
.jg-route i{grid-row:1/3;width:10px;height:10px;border-radius:50%;border:2px solid #F7B7C7;align-self:center;transition:background .3s}
.jg-route b{font-weight:700;font-size:15px}
.jg-route span{font-size:13px;color:#F7B7C7}
.jg-route small{grid-column:2/4;font-family:var(--f-mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:#C9AFC4}
.jg-route li.on{opacity:1}
.jg-route li.on i{background:var(--gold);border-color:var(--gold)}
.jg-route li.cur{background:rgba(247,183,199,.14)}
.jg-wrap{justify-self:center;width:min(560px,42vw,72vh);aspect-ratio:1}
.jg-wrap canvas{width:100%;height:100%;display:block;border-radius:50%}

/* --- day-by-day 3D deck --- */
.jp-days .jp-sticky{background:radial-gradient(70% 60% at 75% 40%,var(--jp-tint),var(--jp-paper) 70%);color:var(--jp-ink);display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);align-items:center;gap:clamp(20px,4vw,56px);padding:96px max(var(--gutter),calc((100vw - 1200px) / 2)) 30px}
.jp-days .jp-kicker{color:var(--jp-deep)}
.jp-days .jp-h2 em{color:var(--jp-pink)}
.jd-head{display:grid;gap:16px;align-content:center}
.jd-note{color:var(--jp-muted);font-size:15px;max-width:38ch}
.jd-rail{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.jd-rail li span{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;border:1.5px solid var(--jp-line);font:700 12px var(--f-mono);color:var(--jp-muted);transition:all .3s var(--ease)}
.jd-rail li.done span{background:var(--jp-tint);border-color:var(--jp-pink);color:var(--jp-deep)}
.jd-rail li.on span{background:var(--jp-pink);border-color:var(--jp-pink);color:#fff;transform:scale(1.15)}
.jd-city{font-family:var(--f-display);font-weight:900;font-size:clamp(34px,4.4vw,60px);text-transform:uppercase;line-height:.95;color:var(--jp-pink);min-height:1em}
.jd-city span{display:inline-block}
.jd-city .swap{animation:cityin .5s var(--ease)}
@keyframes cityin{from{opacity:0;transform:translateY(16px)}}
.jd-stage{position:relative;height:min(600px,calc(100svh - 150px));perspective:1500px;perspective-origin:50% 0%}
.jd-deck{list-style:none;margin:0;padding:0;position:relative;height:100%;transform-style:preserve-3d}
.dcard3{position:absolute;left:0;right:0;top:0;margin-inline:auto;width:min(580px,100%);height:100%;background:var(--jp-card);color:var(--jp-ink);border:1px solid var(--jp-line);border-radius:26px;padding:clamp(20px,2.6vw,30px);display:flex;flex-direction:column;gap:10px;overflow:hidden;box-shadow:0 30px 60px -36px rgba(94,35,64,.55);will-change:transform,opacity;transform-origin:50% 0%;backface-visibility:hidden}
.dcard3.front{box-shadow:0 50px 90px -40px rgba(94,35,64,.7)}
.dc-num{position:absolute;right:-6px;bottom:-46px;font-family:var(--f-display);font-weight:900;font-size:clamp(170px,22vw,260px);line-height:1;color:transparent;-webkit-text-stroke:2px color-mix(in srgb,var(--jp-pink) 28%,transparent);pointer-events:none}
.dc-top{display:flex;justify-content:space-between;align-items:center;gap:10px}
.dc-day{font-family:var(--f-mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--jp-deep);font-weight:600}
.dc-mood{font-family:var(--f-mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;padding:5px 10px;border-radius:999px;background:var(--jp-tint);color:var(--jp-deep)}
.dc-ill{width:48px;height:48px;border-radius:50%;background:var(--jp-tint);color:var(--jp-pink);display:grid;place-items:center}
.dc-ill svg{width:26px;height:26px}
.dc-city{font-family:var(--f-mono);font-size:11.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--jp-muted)}
.dcard3 h3{font-family:var(--f-body);font-weight:800;font-size:clamp(24px,2.8vw,34px);letter-spacing:-.02em;line-height:1.08}
.dc-sub{font-family:var(--f-serif);font-style:italic;font-size:clamp(16px,1.6vw,19px);color:var(--jp-muted);line-height:1.35}
.dc-hl{list-style:none;margin:4px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:6px;position:relative}
.dc-hl li{font-size:13.5px;font-weight:600;padding:6px 11px;border-radius:999px;background:color-mix(in srgb,var(--jp-tint) 70%,transparent);border:1px solid var(--jp-line)}
.dc-foot{margin-top:auto;padding-top:12px;border-top:1px dashed var(--jp-line);display:flex;justify-content:space-between;align-items:flex-end;gap:12px;flex-wrap:wrap;position:relative;font-size:14.5px;font-weight:600}
.dc-foot small{display:block;font-family:var(--f-mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--jp-pink);font-weight:500}
.dc-stay{font-family:var(--f-mono);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;padding:7px 12px;border-radius:999px;background:var(--jp-ink);color:var(--jp-paper);white-space:nowrap}
/* no-JS / reduced motion: a plain list of day cards */
html:not(.jp-js) .jp-days .jp-sticky,.jp-still .jp-days .jp-sticky{grid-template-columns:1fr;height:auto}
.jp-still .jp-days{height:auto!important}
.jp-still .jp-sticky{position:relative!important;height:auto!important}
html:not(.jp-js) .jd-stage,.jp-still .jd-stage{height:auto;perspective:none}
html:not(.jp-js) .jd-deck,.jp-still .jd-deck{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px}
html:not(.jp-js) .dcard3,.jp-still .dcard3{position:relative;height:auto;min-height:420px;transform:none!important;opacity:1!important;width:auto}
.jp-still .jd-rail,.jp-still .jd-city,html:not(.jp-js) .jd-rail{display:none}

/* --- registration + price --- */
.jp-reg{background:radial-gradient(60% 80% at 100% 0%,color-mix(in srgb,#F49AB4 26%,transparent),transparent 70%),var(--bg)}
.jp-reg-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(28px,5vw,72px);align-items:center}
.jp-reg .copy{display:grid;gap:24px;min-width:0}
.jp-reg-title{font-size:clamp(52px,8.4vw,120px)}
.jp-reg-title .serif{display:block;font-family:var(--f-serif);font-style:italic;font-weight:400;text-transform:none;font-size:.3em;line-height:1.15;margin-top:.35em;color:var(--jp-deep)}
.price-card .amt small.from{margin:0 0 8px;color:var(--jp-deep)}
.jp-reg .price-card{border-top:6px solid var(--jp-pink)}

/* --- included, package, suits --- */
.jp-soft{background:color-mix(in srgb,var(--jp-tint) 45%,var(--bg))}
.jp-soft .eyebrow{color:var(--jp-deep)}
.jp-soft .h2 em,.jp-priv .h2 em,.jp-book-wrap .h2 em{font-family:var(--f-serif);font-style:italic;font-weight:400;text-transform:none;color:var(--jp-pink)}
.jp-incl{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px}
.jp-inc{display:flex;gap:14px;align-items:flex-start;background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:20px;box-shadow:var(--shadow)}
.ji{flex:none;width:46px;height:46px;border-radius:14px;background:var(--jp-tint);color:var(--jp-pink);display:grid;place-items:center}
.ji svg{width:24px;height:24px}
.jp-inc h3{font-size:18px;font-weight:800;margin-bottom:4px;line-height:1.2}
.jp-inc p{font-size:15px;color:var(--muted);line-height:1.5}
.jp-pkg{margin-top:28px;display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:14px}
.jp-pkg > div{background:var(--surface);border:1px solid var(--line);border-radius:22px;padding:22px 22px 18px}
.jp-pkg h3{display:flex;align-items:center;gap:10px;font-family:var(--f-display);font-weight:800;font-size:24px;text-transform:uppercase;margin-bottom:12px}
.jp-pkg h3 span{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:var(--jp-pink);color:#fff;font:700 16px var(--f-body)}
.jp-pkg h3 span svg{width:16px;height:16px}
.pk-out h3 span{background:var(--muted)}
.pk-know h3 span{background:var(--teal);font-family:var(--f-serif);font-style:italic}
.jp-pkg ul{list-style:none;margin:0;padding:0;display:grid;gap:9px}
.jp-pkg li{position:relative;padding-left:20px;font-size:15px;line-height:1.45}
.jp-pkg li::before{content:"";position:absolute;left:2px;top:.5em;width:8px;height:8px;border-radius:50% 0;background:var(--jp-pink);transform:rotate(45deg)}
.pk-out li::before{background:var(--muted);border-radius:2px;height:2px;top:.7em;transform:none}
.pk-know li::before{background:var(--teal)}
.pk-note{margin-top:14px;font-family:var(--f-serif);font-style:italic;font-size:18px;color:var(--jp-deep)}
.jp-suits{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.jp-suit{position:relative;background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:20px;display:grid;gap:6px;align-content:start;overflow:hidden;transition:transform .3s var(--ease),box-shadow .3s}
.jp-suit:hover{transform:translateY(-4px);box-shadow:var(--shadow)}
.jp-suit b{font-size:17px;line-height:1.25}
.jp-suit p{font-size:14.5px;color:var(--muted);line-height:1.5}
.sk{width:30px;height:30px;position:relative;margin-bottom:6px}
.sk::before,.sk::after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 50% 18%,var(--jp-pink) 0 22%,transparent 23%),radial-gradient(circle at 18% 45%,var(--jp-pink) 0 22%,transparent 23%),radial-gradient(circle at 82% 45%,var(--jp-pink) 0 22%,transparent 23%),radial-gradient(circle at 30% 82%,var(--jp-pink) 0 22%,transparent 23%),radial-gradient(circle at 70% 82%,var(--jp-pink) 0 22%,transparent 23%)}
.sk::after{background:radial-gradient(circle,#F2B33D 0 14%,transparent 15%)}
.jp-suit:hover .sk{animation:spin 4s linear infinite}

/* --- booking timeline --- */
.jp-book-wrap{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(28px,5vw,72px)}
.jp-book-wrap .sec-head{position:sticky;top:110px;display:grid;gap:16px}
.jp-book{list-style:none;margin:0;padding:0;position:relative;display:grid;gap:12px}
.jp-book::before{content:"";position:absolute;left:19px;top:20px;bottom:20px;width:2px;background:linear-gradient(var(--jp-pink),var(--gold))}
.jp-book li{position:relative;display:grid;gap:4px;padding:16px 18px 16px 58px;background:var(--bg);border:1px solid var(--line);border-radius:18px}
.jp-book li::before{content:"";position:absolute;left:12px;top:20px;width:16px;height:16px;border-radius:50%;background:var(--surface);border:3px solid var(--jp-pink)}
.jp-book li:last-child::before{background:var(--gold);border-color:var(--gold)}
.bw{font-family:var(--f-mono);font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--jp-deep)}
.jp-book h3{font-size:20px;font-weight:800;line-height:1.2}
.jp-book p{font-size:15px;color:var(--muted)}

/* --- apply --- */
.jp-apply{background:linear-gradient(160deg,#2A1546,#1A1035 60%);color:#F7E8EF}
.jp-apply::before{background:radial-gradient(60% 60% at 50% 100%,rgba(244,154,180,.35),transparent 70%)}
.jp-apply .eyebrow{color:#F7B7C7}
.jp-apply .h2 em{color:#F7B7C7;font-family:var(--f-serif);font-style:italic;font-weight:400;text-transform:none}
.jp-apply .lede{color:#D9C2D6}
.jp-mini-pass{display:grid;gap:4px;padding:18px 20px;border-radius:18px;border:1.5px dashed rgba(247,183,199,.5);background:rgba(255,255,255,.04);max-width:380px}
.jp-mini-pass b{font-family:var(--f-display);font-weight:900;font-size:40px;line-height:1;color:#fff}
.jp-mini-pass span{font-family:var(--f-mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:#F7B7C7}

/* --- private groups: one feature at a time --- */
.pv{display:grid;gap:16px}
.pv-pills{display:flex;gap:8px;overflow-x:auto;scroll-snap-type:x mandatory;padding:4px 2px 10px;scrollbar-width:thin;-webkit-mask-image:linear-gradient(90deg,#000 92%,transparent);mask-image:linear-gradient(90deg,#000 92%,transparent)}
.pv-pill{flex:none;scroll-snap-align:start;border:1.5px solid var(--line);background:var(--bg);color:var(--ink);border-radius:999px;padding:10px 16px;font:600 14px var(--f-body);cursor:pointer;transition:all .25s var(--ease);white-space:nowrap}
.pv-pill:hover{border-color:var(--jp-pink)}
.pv-pill[aria-selected="true"]{background:var(--jp-pink);border-color:var(--jp-pink);color:#fff}
.pv-pill:focus-visible{outline:3px solid var(--gold);outline-offset:2px}
.pv-feature{--g1:#E86A8E;--g2:#9E3B63;position:relative;overflow:hidden;display:grid;grid-template-columns:200px 1fr;gap:clamp(18px,3vw,40px);align-items:center;padding:clamp(22px,3.4vw,40px);border-radius:28px;color:#fff;background:linear-gradient(135deg,var(--g1),var(--g2));box-shadow:var(--shadow-lg);min-height:250px;transition:background .5s}
.pv-feature::after{content:"";position:absolute;right:-80px;top:-80px;width:260px;height:260px;border-radius:50%;border:40px solid rgba(255,255,255,.08)}
.pv-feature.swap .pv-art svg{animation:pvpop .6s var(--ease)}
.pv-feature.swap .pv-text > *{animation:capin .5s var(--ease) both}
.pv-feature.swap .pv-text p{animation-delay:.06s}
@keyframes pvpop{from{opacity:0;transform:scale(.6) rotate(-10deg)}}
.pv-art{position:relative;display:grid;place-items:center;aspect-ratio:1;border-radius:50%;background:rgba(255,255,255,.14);border:2px dashed rgba(255,255,255,.35)}
.pv-art svg{width:56%;height:56%}
.pv-count{position:absolute;bottom:-6px;left:50%;transform:translateX(-50%);font-family:var(--f-mono);font-size:11px;letter-spacing:.14em;background:rgba(0,0,0,.25);padding:4px 10px;border-radius:999px;white-space:nowrap}
.pv-text{display:grid;gap:12px;justify-items:start;position:relative;z-index:1}
.pv-text h3{font-family:var(--f-display);font-weight:900;font-size:clamp(34px,4.6vw,58px);text-transform:uppercase;line-height:.92}
.pv-text p{font-size:18px;max-width:46ch;opacity:.92}
.pv-form-wrap{margin-top:clamp(28px,4vw,48px);animation:stepin .5s var(--ease)}
.pv-chosen{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.pv-chosen .chip-label{margin:0}
.pv-tag{font-weight:700;font-size:14px;padding:6px 12px;border-radius:999px;background:var(--jp-tint);color:var(--jp-deep)}

/* --- overlay scenes --- */
.journey.jpj{background:radial-gradient(120% 80% at 50% 0%,#6B2A5E,#1A1035 60%)}
.jpj .vj-rail li.on{background:#F49AB4;color:#2A1030}
.jpj .j-final h2 em{color:#F7B7C7}
.jpj .st > svg{width:min(720px,94vw);height:auto;aspect-ratio:16/9;border-radius:22px;box-shadow:0 40px 80px -30px rgba(0,0,0,.8);overflow:hidden}
.jpj .st svg g{transform-box:fill-box}
.sc-train .t-train{animation:trainx 3.2s cubic-bezier(.45,0,.55,1) both}
@keyframes trainx{from{transform:translateX(-760px)}to{transform:translateX(840px)}}
.sc-train .t-trees,.sc-himeji .t-trees{animation:treesx 3.2s linear both}
@keyframes treesx{to{transform:translateX(-60px)}}
.sc-kyoto .k-gates{transform-origin:50% 100%;animation:gates 3s var(--ease) both}
@keyframes gates{from{transform:scale(.8);opacity:.3}to{transform:scale(1.12)}}
.lant{transform-origin:50% 0;animation:sway 2.4s ease-in-out infinite;animation-delay:var(--dl,0s)}
.sc-himeji .h-castle{animation:hrise 1.4s var(--ease) both}
@keyframes hrise{from{transform:translateY(50px);opacity:0}}
.sc-himeji .deer{animation:capin .8s .3s var(--ease) both}
.sc-himeji .deer-head{transform-box:view-box;transform-origin:266px 360px;animation:bow 3s 1s ease-in-out both}
@keyframes bow{0%,100%{transform:none}30%,55%{transform:rotate(32deg)}}
.sc-himeji .cracker{animation:toss 3s 1s ease-in-out both}
@keyframes toss{0%{transform:translate(120px,-40px);opacity:0}25%{opacity:1}45%,100%{transform:none;opacity:1}}
.sc-bus .hd{animation:bobhd .5s ease-in-out infinite alternate;animation-delay:var(--dl,0s)}
@keyframes bobhd{to{transform:translateY(-4px)}}
.sc-bus .wheel{transform-origin:50% 50%;animation:spin .6s linear infinite}
.sc-bus .bus-body{animation:rumble .25s ease-in-out infinite alternate}
@keyframes rumble{to{transform:translateY(-2px)}}
.sc-bus .b-sign,.sc-bus .b-cheer{opacity:0}
.sc-bus.b1 .bus{animation:busin 2.2s var(--ease) both}
@keyframes busin{from{transform:translateX(-640px)}}
.sc-bus.b1 .b-road,.sc-bus.b2 .b-road{animation:broad .5s linear infinite}
@keyframes broad{to{transform:translateX(-70px)}}
.sc-bus.b2 .b-near{animation:roll 2.4s linear infinite}
.sc-bus.b2 .b-far{animation:roll 9s linear infinite}
@keyframes roll{to{transform:translateX(-800px)}}
.sc-bus.b3 .b-road{animation:broad 1s cubic-bezier(.2,.6,.4,1) 1 both}
.sc-bus.b3 .b-sign{opacity:1;animation:signin 1.4s var(--ease) both}
@keyframes signin{from{transform:translateX(900px)}to{transform:translateX(660px)}}
.sc-bus.b3 .b-sign{transform:translateX(660px)}
.sc-bus.b3 .b-cheer{opacity:1}
.sc-bus.b3 .b-cheer > g{animation:jump .5s ease-in-out infinite alternate;animation-delay:calc(1.2s + var(--dl,0s))}
@keyframes jump{to{transform:translateY(-14px)}}
.sc-bus.b3 .wheel,.sc-bus.b3 .bus-body{animation-iteration-count:3}

/* --- responsive --- */
@media (max-width:1000px){
  .jp-suits{grid-template-columns:repeat(2,1fr)}
  .jp-pkg{grid-template-columns:1fr 1fr}.jp-pkg .pk-in{grid-column:1/-1}
}
@media (max-width:900px){
  .jp-open-copy{top:92px}
  .jp-open .jp-sticky::after{background:linear-gradient(180deg,rgba(26,16,53,.75),rgba(26,16,53,.1) 55%,rgba(26,16,53,.5))}
  .jp-pass-wrap{left:var(--gutter);right:var(--gutter);width:auto;bottom:clamp(28px,7vh,70px)}
  .jp-pass{grid-template-columns:1fr 84px}
  .jpp-grid{grid-template-columns:1fr 1fr}
  .jpp-stub{padding:14px 10px}.jpp-stub b{font-size:20px}
  .jpp-stamp{right:60px;width:92px;height:92px;font-size:13px}
  .jp-globe .jp-sticky{grid-template-columns:1fr;grid-template-rows:auto 1fr;align-content:start;gap:12px;padding-top:86px;text-align:left}
  .jg-wrap{order:-1;width:min(76vw,40svh)}
  .jg-lede{display:none}
  .jg-copy{gap:10px}
  .jg-route{display:flex;flex-wrap:wrap;gap:6px}
  .jg-route li{display:flex;gap:6px;align-items:center;padding:5px 9px;border:1px solid rgba(247,183,199,.25);border-radius:999px}
  .jg-route li small,.jg-route li span{display:none}
  .jg-route b{font-size:13px}
  .jp-days .jp-sticky{grid-template-columns:1fr;grid-template-rows:auto 1fr;align-content:start;gap:12px;padding-top:86px;padding-bottom:16px}
  .jd-head{gap:8px}
  .jd-head .jp-h2{font-size:34px}
  .jd-note{display:none}
  .jd-rail li span{width:26px;height:26px;font-size:11px}
  .jd-city{font-size:26px;position:absolute;right:var(--gutter);top:92px;text-align:right;max-width:50vw}
  .jd-stage{height:auto;min-height:0}
  .dcard3{gap:8px}
  .dc-hl li{font-size:12.5px;padding:5px 9px}
  .jp-reg-grid,.jp-book-wrap{grid-template-columns:1fr}
  .jp-book-wrap .sec-head{position:static}
  .pv-feature{grid-template-columns:1fr;justify-items:start}
  .pv-art{width:120px}
}
@media (max-width:560px){
  .jp-title{font-size:clamp(56px,17vw,80px)}
  .jpp-route b{font-size:40px}
  .jp-suits,.jp-pkg{grid-template-columns:1fr}
  .dc-sub{display:none}
  .dc-num{font-size:150px;bottom:-30px}
  .jg-stats b{font-size:28px}
}
@media (max-height:700px) and (max-width:900px){ .dc-ill{display:none} .jg-route{display:none} }
@media (prefers-reduced-motion:reduce){
  .jp-scene g,.jp-open-copy{transform:none!important}
  .jpj .st *{animation:none!important}
  .sc-bus .b-sign{opacity:1;transform:translateX(660px)}.sc-bus .b-cheer{opacity:1}
}
/* deck refinements: cards waiting behind show as plain paper layers */
.dcard3 > *{transition:opacity .35s var(--ease)}
.dcard3.back > *{opacity:0}
.dcard3.back{background:color-mix(in srgb,var(--jp-card) 88%,var(--jp-tint));box-shadow:0 20px 40px -30px rgba(94,35,64,.45)}
.jp-still .dcard3.back > *,html:not(.jp-js) .dcard3 > *{opacity:1}
@media (max-width:900px){
  .jp-days .jp-sticky{grid-template-rows:auto minmax(0,1fr)}
  .jd-stage{height:100%}
  .jd-city{position:static;font-size:22px;max-width:none;text-align:left}
  .jp-open-copy{transform:none}
}
@media (max-width:900px){.jd-city{display:none}}
@media (max-width:380px){.top .bar{gap:8px}.logo{gap:7px}.logo img{width:30px}.logo .wm b{font-size:18px}.nav .btn{padding:10px 12px;font-size:13px;margin-left:4px}.menu-btn{width:42px;height:42px}}
.wiz > *,.wiz-main,.wiz-top{min-width:0}

/* =========================================================
   GROUP TRIPS — route map (road trip drawn leg by leg)
   ========================================================= */
:root{--rm-sea:#EAF1F5;--rm-land:#F9DFE7;--rm-coast:#E3A6BA;--rm-route:#C2304F;--rm-label:#2A1030;--rm-halo:#F9DFE7;--rm-card:#FFFDFB}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){--rm-sea:#120C28;--rm-land:#3A2352;--rm-coast:#6E4378;--rm-route:#F49AB4;--rm-label:#F7E8EF;--rm-halo:#3A2352;--rm-card:#21173F}}
:root[data-theme="dark"]{--rm-sea:#120C28;--rm-land:#3A2352;--rm-coast:#6E4378;--rm-route:#F49AB4;--rm-label:#F7E8EF;--rm-halo:#3A2352;--rm-card:#21173F}
.jp-js .jp-route{height:calc(100vh + 7 * 62vh)}
.jp-route .jp-sticky{color:var(--jp-ink);background-color:var(--rm-sea);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='48' height='24'%3E%3Cg fill='none' stroke='%237F93B5' stroke-opacity='.16' stroke-width='1.2'%3E%3Cpath d='M0 24a24 24 0 0 1 48 0M7 24a17 17 0 0 1 34 0M14 24a10 10 0 0 1 20 0M-24 12a24 24 0 0 1 48 0M-17 12a17 17 0 0 1 34 0M-10 12a10 10 0 0 1 20 0M24 12a24 24 0 0 1 48 0M31 12a17 17 0 0 1 34 0M38 12a10 10 0 0 1 20 0'/%3E%3C/g%3E%3C/svg%3E");display:grid;grid-template-columns:minmax(0,1.65fr) minmax(0,.75fr);grid-template-rows:auto minmax(0,1fr) auto;gap:10px clamp(24px,3vw,48px);padding:92px max(var(--gutter),calc((100vw - 1240px) / 2)) 22px}
.jp-route .jp-kicker{color:var(--rm-route)}
.jp-route .jp-h2 em{color:var(--rm-route)}
.rm-head{display:grid;gap:10px;grid-column:1;grid-row:1}
.rm-lede{color:var(--jp-muted);max-width:56ch;font-size:16px}
.rm-mapwrap{grid-column:1;grid-row:2;min-height:0;display:grid}
.rm-map{width:100%;height:100%;display:block;overflow:visible}
.rm-map > rect{display:none}
.rm-land{fill:var(--rm-land);stroke:var(--rm-coast);stroke-width:1.3;stroke-linejoin:round;filter:drop-shadow(0 10px 18px rgba(94,35,64,.14))}
.rm-fuji-m{fill:#9C8BCB}
.rm-base path{fill:none;stroke:var(--rm-route);stroke-opacity:.3;stroke-width:3;stroke-dasharray:1 8;stroke-linecap:round}
.rm-legs path{fill:none;stroke:var(--rm-route);stroke-width:5;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1}
.rm-stop text{font:600 19px var(--f-body);fill:var(--rm-label);opacity:.4;paint-order:stroke;stroke:var(--rm-halo);stroke-width:6px;stroke-linejoin:round;transition:opacity .4s}
.rm-kj{font-size:14px;fill:var(--rm-route);font-weight:500}
.rm-dot{fill:var(--rm-card);stroke:var(--rm-route);stroke-width:3;transform-box:fill-box;transform-origin:center;transform:scale(.62);transition:transform .45s cubic-bezier(.3,1.6,.5,1),fill .3s}
.rm-ring{fill:none;stroke:var(--rm-route);stroke-width:2;opacity:0;transform-box:fill-box;transform-origin:center}
.rm-stop.on .rm-dot{fill:var(--rm-route);stroke:var(--rm-card);transform:scale(1)}
.rm-stop.on text{opacity:1}
.rm-stop.cur text{font-weight:800}
.rm-stop.cur .rm-ring{animation:rmping 1.8s ease-out infinite}
@keyframes rmping{0%{transform:scale(1);opacity:.9}100%{transform:scale(3.2);opacity:0}}
.rm-van{filter:drop-shadow(0 4px 5px rgba(0,0,0,.35));transition:opacity .3s}
.rm-van > circle{animation:pulse 1.6s infinite}
.rm-cards{grid-column:2;grid-row:1/4;align-self:center;position:relative;height:min(560px,calc(100svh - 140px))}
.rm-card{position:absolute;left:0;right:0;top:0;margin-inline:auto;width:min(360px,100%);background:var(--rm-card);color:var(--jp-ink);padding:12px 12px 18px;border-radius:8px;box-shadow:0 30px 60px -28px rgba(42,16,48,.55),0 2px 6px rgba(42,16,48,.12);transform:rotate(var(--r));transition:transform .7s var(--ease),opacity .5s}
.rm-card img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:4px;display:block}
.rm-card.next{opacity:0;transform:translate(70px,-40px) rotate(14deg) scale(.94);pointer-events:none}
.rm-card.seen{transform:rotate(var(--r)) translateY(10px) scale(.96)}
.rm-card.on{z-index:30!important;transform:rotate(calc(var(--r) * .35))}
.rm-hanko{position:absolute;top:22px;right:22px;writing-mode:vertical-rl;background:#C2304F;color:#fff;font:600 19px/1.05 "Hiragino Mincho ProN","Yu Mincho","Noto Serif JP",serif;padding:8px 5px;border-radius:5px;letter-spacing:.08em;box-shadow:0 0 0 2px rgba(255,255,255,.7),0 6px 14px rgba(0,0,0,.3);transform:rotate(8deg)}
.rm-card.on .rm-hanko{animation:hanko .6s .25s cubic-bezier(.3,1.6,.5,1) both}
@keyframes hanko{from{transform:rotate(8deg) scale(2.2);opacity:0}}
.rm-ct{display:grid;gap:4px;padding:14px 6px 0}
.rm-days{font-family:var(--f-mono);font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--rm-route);font-weight:600}
.rm-ct h3{font-family:var(--f-display);font-weight:900;font-size:clamp(28px,2.6vw,36px);text-transform:uppercase;line-height:.95}
.rm-ct small{font-family:var(--f-serif);font-style:italic;font-size:18px;color:var(--jp-muted)}
.rm-ct p{font-size:15px;line-height:1.5}
.rm-strip{grid-column:1;grid-row:3;list-style:none;margin:0;padding:0;display:flex;justify-content:space-between;position:relative}
.rm-strip::before{content:"";position:absolute;left:8px;right:8px;top:7px;border-top:2px dashed color-mix(in srgb,var(--rm-route) 35%,transparent)}
.rm-strip li{position:relative;display:grid;justify-items:center;gap:6px;font:600 12.5px var(--f-body);color:var(--jp-muted);transition:color .3s}
.rm-strip i{width:16px;height:16px;border-radius:50%;background:var(--rm-sea);border:2px solid color-mix(in srgb,var(--rm-route) 45%,transparent);transition:all .3s}
.rm-strip li.on{color:var(--jp-ink)}
.rm-strip li.on i{background:var(--rm-route);border-color:var(--rm-route)}
.rm-strip li.cur i{box-shadow:0 0 0 5px color-mix(in srgb,var(--rm-route) 22%,transparent)}
.rm-strip li.cur{color:var(--rm-route)}
html:not(.jp-js) .rm-card,.jp-still .rm-card{opacity:1}
html:not(.jp-js) .rm-legs path{stroke-dashoffset:0}
@media (max-width:900px){
  .jp-route .jp-sticky{grid-template-columns:1fr;grid-template-rows:auto auto minmax(0,1fr);padding-top:84px;padding-bottom:14px;gap:8px}
  .rm-lede,.rm-strip{display:none}
  .rm-head .jp-h2{font-size:34px}
  .rm-mapwrap{grid-row:2;margin-inline:calc(-1 * var(--gutter) + 4px)}
  .rm-map{height:auto;aspect-ratio:5/3}
  .rm-stop text{font-size:30px;stroke-width:8px}
  .rm-kj{display:none}
  .rm-cards{grid-column:1;grid-row:3;height:100%;align-self:stretch}
  .rm-card{width:min(330px,88%);padding:9px 9px 12px}
  .rm-card img{aspect-ratio:16/9}
  .rm-ct{padding-top:8px}
  .rm-ct h3{font-size:26px}
  .rm-ct small{font-size:16px}
  .rm-ct p{font-size:13.5px}
  .rm-hanko{top:16px;right:16px;font-size:15px}
}
@media (max-width:900px) and (max-height:720px){.rm-ct p{display:none}.rm-card img{aspect-ratio:2/1}}

/* =========================================================
   GROUP TRIPS — day cards with photos
   ========================================================= */
.dcard3{padding:0;gap:0}
.dc-photos{position:relative;flex:none;height:43%;display:grid;gap:5px;padding:10px 10px 0}
.dc-photos.n2{grid-template-columns:1.45fr 1fr}
.dc-photos.n3{grid-template-columns:1.25fr 1fr 1fr}
.dc-photos.n1{grid-template-columns:1fr}
.dc-photos figure{margin:0;position:relative;overflow:hidden;border-radius:16px;min-height:0;background:var(--jp-tint)}
.dc-photos img{width:100%;height:100%;object-fit:cover;display:block;transform:scale(1.04)}
.dcard3.front .dc-photos img{animation:kb 10s ease-out both}
.dcard3.front .dc-photos figure:nth-child(2) img{animation-delay:-2s}
@keyframes kb{from{transform:scale(1.16)}to{transform:scale(1.04)}}
.dc-photos figure:first-child::after{content:"";position:absolute;inset:auto 0 0 0;height:60%;background:linear-gradient(transparent,rgba(26,16,53,.7))}
.dc-badge{position:absolute;left:24px;bottom:12px;display:grid;color:#fff;text-shadow:0 2px 18px rgba(0,0,0,.45);pointer-events:none}
.dc-badge b{font-family:var(--f-display);font-weight:900;font-size:clamp(56px,6vw,82px);line-height:.82}
.dc-badge span{font-family:var(--f-mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;margin-top:6px}
.dc-photos .dc-mood{position:absolute;top:20px;left:20px;background:rgba(255,255,255,.88);color:#9E3B63;backdrop-filter:blur(6px)}
.dc-body{flex:1;min-height:0;display:flex;flex-direction:column;gap:8px;padding:16px clamp(18px,2.4vw,26px) 18px}
.dc-city{display:flex;align-items:center;gap:8px;color:var(--jp-deep)}
.dc-city svg{width:17px;height:17px;flex:none}
.dc-sub{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.dc-hl{max-height:68px;overflow:hidden;margin-top:2px}
.dc-hl li{font-size:12.5px;padding:5px 10px}
.dc-foot{padding-top:10px}
html:not(.jp-js) .dc-photos,.jp-still .dc-photos{height:230px}
@media (max-width:900px){
  .dc-photos{height:36%;padding:8px 8px 0;gap:4px}
  .dc-photos figure{border-radius:12px}
  .dc-badge{left:18px;bottom:8px}.dc-badge b{font-size:52px}.dc-badge span{font-size:10px}
  .dc-photos .dc-mood{top:15px;left:15px}
  .dc-body{padding:12px 16px 14px;gap:6px}
  .dcard3 h3{font-size:23px}
  .dc-hl{max-height:60px}
  .dc-foot{font-size:13px}
}
.jp-js .jp-globe{height:230vh}
.rm-card img{height:auto}
@media (max-width:900px){.rm-map{aspect-ratio:900/360}.rm-stop text{font-size:32px}.rm-dot{stroke-width:3.5}}
.rm-head,.jd-head{position:relative;z-index:5}
@media (max-width:900px){.rm-mapwrap{margin-inline:0}.rm-map{aspect-ratio:980/380}.jd-stage{margin-top:14px}}

/* --- Japan in Sakura: continuous panorama journey (after the form) --- */
.sc-pan .pn-mid,.sc-pan .pn-far,.sc-pan .pn-near,.sc-pan .pn-sleep,.sc-pan .pn-sun{transition:transform 2.4s cubic-bezier(.65,0,.35,1)}
.sc-pan .pn-s1,.sc-pan .pn-s2{transition:stop-color 2.4s ease}
.sc-pan .pn-hill,.sc-pan .pn-ground,.sc-pan .pn-disc{transition:fill 2.4s ease}
.sc-pan .pn-stars{transition:opacity 1.6s ease}
.sc-pan.p1 .pn-s1{stop-color:#140B2E}.sc-pan.p1 .pn-s2{stop-color:#5B2A6E}
.sc-pan.p2 .pn-s1{stop-color:#8CC8F0}.sc-pan.p2 .pn-s2{stop-color:#FDE2EA}
.sc-pan.p3 .pn-s1{stop-color:#FF9A6A}.sc-pan.p3 .pn-s2{stop-color:#FFE3C4}
.sc-pan.p4 .pn-s1{stop-color:#F49AB4}.sc-pan.p4 .pn-s2{stop-color:#FFE8EF}
.sc-pan .pn-stars{opacity:0}.sc-pan.p1 .pn-stars{opacity:1}
.sc-pan.p1 .pn-disc{fill:#FFF4D6}.sc-pan.p2 .pn-disc{fill:#FFFFFF}.sc-pan.p3 .pn-disc{fill:#FFE9A8}.sc-pan.p4 .pn-disc{fill:#FFF3F6}
.sc-pan.p3 .pn-sun{transform:translate(-120px,70px)}.sc-pan.p4 .pn-sun{transform:translate(-260px,40px)}
.sc-pan.p1 .pn-hill{fill:#2A1846}.sc-pan.p2 .pn-hill{fill:#9DB4D6}.sc-pan.p3 .pn-hill{fill:#C97B5C}.sc-pan.p4 .pn-hill{fill:#C98AA8}
.sc-pan.p1 .pn-ground{fill:#1F1238}.sc-pan.p2 .pn-ground{fill:#8FB07A}.sc-pan.p3 .pn-ground{fill:#7A3F2E}.sc-pan.p4 .pn-ground{fill:#B9CC92}
.sc-pan.p2 .pn-mid{transform:translateX(-800px)}.sc-pan.p3 .pn-mid{transform:translateX(-1600px)}.sc-pan.p4 .pn-mid{transform:translateX(-2400px)}
.sc-pan.p2 .pn-far{transform:translateX(-260px)}.sc-pan.p3 .pn-far{transform:translateX(-520px)}.sc-pan.p4 .pn-far{transform:translateX(-780px)}
.sc-pan.p2 .pn-near{transform:translateX(-1250px)}.sc-pan.p3 .pn-near{transform:translateX(-2500px)}.sc-pan.p4 .pn-near{transform:translateX(-3750px)}
.sc-pan.p2 .pn-sleep{transform:translateX(-1700px)}.sc-pan.p3 .pn-sleep{transform:translateX(-3400px)}.sc-pan.p4 .pn-sleep{transform:translateX(-5100px)}
.sc-pan .pn-train{transition:transform 2.6s cubic-bezier(.55,0,.75,.4) 1.1s}
.sc-pan.p1 .pn-train{animation:pntrainin 2s cubic-bezier(.2,.7,.3,1) both}
@keyframes pntrainin{from{transform:translateX(-820px)}}
.sc-pan.p4 .pn-train{transform:translateX(980px)}
.sc-pan .pn-train-in{animation:pnhum .18s ease-in-out infinite alternate}
@keyframes pnhum{to{transform:translateY(.8px)}}
.sc-pan .pn-neon{animation:winlit 2.6s ease-in-out infinite;animation-delay:var(--dl,0s)}
.sc-pan .pn-blink{animation:blink 1s steps(1) infinite}
.sc-pan .pn-cloud{animation:pncloud 7s ease-in-out infinite alternate}
@keyframes pncloud{to{transform:translateX(36px)}}
.sc-pan.p4 .pn-deer-in{transform-box:fill-box;transform-origin:20% 100%;animation:pnnod 1.8s 2.6s ease-in-out infinite alternate}
@keyframes pnnod{to{transform:rotate(4deg) translateY(1px)}}
@media (prefers-reduced-motion:reduce){.sc-pan *{transition:none!important}}
/* group-type tabs: wrap on wider screens, swipe + arrows on phones */
.pv-rail{display:flex;align-items:center;gap:6px;min-width:0}
.pv-rail .pv-pills{flex:1;min-width:0;-webkit-mask-image:none;mask-image:none}
.pv-nav{display:none;flex:none;width:38px;height:38px;border-radius:50%;border:1.5px solid var(--line);background:var(--surface);color:var(--ink);font:700 22px/1 var(--f-body);cursor:pointer;place-items:center;padding:0 0 3px}
.pv-nav:hover{border-color:var(--jp-pink);color:var(--jp-pink)}
@media (min-width:700px){.pv-rail .pv-pills{flex-wrap:wrap;overflow:visible;scroll-snap-type:none;padding-bottom:4px}}
@media (max-width:699px){.pv-nav{display:grid}.pv-rail .pv-pills{scrollbar-width:none}.pv-rail .pv-pills::-webkit-scrollbar{display:none}}

/* ---------- social row (contact, founder) ---------- */
.soc-row{display:flex;flex-wrap:wrap;gap:8px}
.soc-row a{display:inline-flex;align-items:center;gap:8px;padding:9px 14px 9px 10px;border-radius:999px;background:color-mix(in srgb,var(--surface) 80%,transparent);border:1px solid var(--line);color:var(--ink);text-decoration:none;font-weight:600;font-size:14px;transition:transform .25s var(--ease),background .25s,border-color .25s}
.soc-row a svg{width:20px;height:20px;color:var(--brand)}
.soc-row a:hover{transform:translateY(-3px);background:var(--gold);border-color:var(--gold);color:var(--gold-ink)}
.soc-row a:hover svg{color:var(--gold-ink)}
@media (max-width:480px){.soc-row a span{display:none}.soc-row a{padding:10px}}

/* ---------- founder portfolio ---------- */
.fpass{position:relative;background:linear-gradient(160deg,#FFFDF7,#F4EEDC);color:#1B2433;border-radius:22px;padding:18px 20px 16px;box-shadow:var(--shadow-lg);display:grid;gap:14px;max-width:520px;width:100%;justify-self:end;border:1px solid #E3D9BE;overflow:hidden}
.fpass::before{content:"";position:absolute;inset:0;background:repeating-radial-gradient(circle at 100% 0,transparent 0 14px,rgba(30,58,158,.04) 14px 15px);pointer-events:none}
.fp-top{display:flex;justify-content:space-between;font-family:var(--f-mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:#7A6A3E;border-bottom:1px dashed #D9CDAE;padding-bottom:10px}
.fp-body{display:grid;grid-template-columns:150px 1fr;gap:18px;align-items:start}
.fp-photo{aspect-ratio:4/5;border-radius:12px;overflow:hidden;background:linear-gradient(150deg,#86BDE4,#1E3A9E);display:grid;place-items:center;box-shadow:inset 0 0 0 3px rgba(255,255,255,.6)}
.fp-photo img{width:100%;height:100%;object-fit:cover}
.fp-mono{font-family:var(--f-logo);font-size:64px;color:#fff;letter-spacing:.04em;text-shadow:0 6px 20px rgba(0,0,0,.25)}
.fp-data{margin:0;display:grid;gap:9px}
.fp-data dt{font-family:var(--f-mono);font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;color:#7A6A3E}
.fp-data dd{margin:0;font-family:var(--f-display);font-weight:800;font-size:21px;text-transform:uppercase;line-height:1.05}
.fp-mrz{font-family:var(--f-mono);font-size:12px;letter-spacing:.12em;color:#3B4650;overflow:hidden;white-space:nowrap;border-top:1px dashed #D9CDAE;padding-top:10px;line-height:1.6}
.fp-stamp{position:absolute;right:22px;top:58px;width:118px;height:118px;border-radius:50%;border:3px solid #C2304F;color:#C2304F;display:grid;place-items:center;align-content:center;text-align:center;font-family:var(--f-display);font-weight:900;font-size:22px;text-transform:uppercase;line-height:1;transform:rotate(-14deg);opacity:.85;mix-blend-mode:multiply}
.fp-stamp::before{content:"";position:absolute;inset:6px;border:1.5px dashed #C2304F;border-radius:50%}
.fp-stamp small{display:block;font-family:var(--f-mono);font-weight:500;font-size:9px;letter-spacing:.14em;margin-top:4px}
.fpass.in .fp-stamp{animation:slam2 .6s .5s cubic-bezier(.3,1.6,.5,1) both;--rot:-14deg}
.pstamps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:18px}
.pstamp{--c:#C2304F;justify-self:center;display:grid;place-items:center;align-content:center;gap:2px;text-align:center;width:140px;height:110px;color:var(--c);border:3px solid var(--c);transform:rotate(var(--rot));position:relative;font-family:var(--f-display);text-transform:uppercase;transition:transform .3s var(--ease)}
.pstamp::before{content:"";position:absolute;inset:5px;border:1.5px dashed var(--c);border-radius:inherit;opacity:.7}
.pstamp.round{width:124px;height:124px;border-radius:50%}
.pstamp.oval{border-radius:50%/40%}
.pstamp.rect{border-radius:10px}
.pstamp small{font-family:var(--f-mono);font-size:9px;letter-spacing:.16em}
.pstamp b{font-weight:900;font-size:20px;line-height:1;max-width:110px}
.pstamp span{font-size:13px}
.pstamp:hover{transform:rotate(0) scale(1.06)}
.fp-follow{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,5vw,64px);align-items:center}
.fp-follow .sec-head{display:grid;gap:14px}
.fp-links{display:grid;gap:12px}
.fp-link{display:grid;gap:4px;padding:20px 22px;border-radius:20px;background:var(--bg);border:1px solid var(--line);text-decoration:none;color:var(--ink);transition:transform .25s var(--ease),border-color .25s}
.fp-link:hover{transform:translateX(6px);border-color:var(--gold)}
.fp-link small{font-family:var(--f-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--teal)}
.fp-link b{font-family:var(--f-display);font-weight:800;font-size:28px;text-transform:uppercase;line-height:1}
.fp-link span{display:inline-flex;align-items:center;gap:6px;font-weight:600;font-size:14px;color:var(--brand)}
.fp-link span svg{width:16px;height:16px}
@media (max-width:900px){.fpass{justify-self:start}.fp-follow{grid-template-columns:1fr}}
@media (max-width:480px){.fp-body{grid-template-columns:110px 1fr;gap:12px}.fp-data dd{font-size:17px}.fp-stamp{width:92px;height:92px;font-size:17px;top:auto;bottom:56px;right:14px}.pstamps{grid-template-columns:repeat(2,1fr)}.pstamp{width:128px}.pstamp.round{width:116px;height:116px}}

/* ---------- blog ---------- */
.bposts{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:18px}
.bpost{display:grid;background:var(--surface);border:1px solid var(--line);border-radius:22px;overflow:hidden;text-decoration:none;color:var(--ink);transition:transform .3s var(--ease),box-shadow .3s}
.bpost:hover{transform:translateY(-5px);box-shadow:var(--shadow)}
.bpo-img{aspect-ratio:16/10;background:linear-gradient(150deg,#86BDE4,#1E3A9E);display:grid;place-items:center;overflow:hidden}
.bpo-img img{width:100%;height:100%;object-fit:cover}
.bpo-ph svg{width:48px;height:48px;color:#fff}
.bpo-body{padding:18px 20px 20px;display:grid;gap:8px}
.bpo-body small{font-family:var(--f-mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--teal)}
.bpo-body h3{font-size:21px;font-weight:800;line-height:1.2}
.bpo-body p{color:var(--muted);font-size:15px}
.bpo-body span{display:inline-flex;gap:6px;align-items:center;font-weight:600;color:var(--brand);font-size:14px}
.bpo-body span svg{width:16px}
.blog-empty{max-width:640px;margin-inline:auto;text-align:center;display:grid;justify-items:center;gap:14px;padding:clamp(30px,5vw,56px);border-radius:28px;background:var(--surface);border:1.5px dashed var(--line)}
.be-ic{width:72px;height:72px;border-radius:22px;background:var(--gold);color:var(--gold-ink);display:grid;place-items:center}
.be-ic svg{width:36px;height:36px}
.blog-empty h2{font-family:var(--f-display);font-weight:800;font-size:clamp(30px,4vw,44px);text-transform:uppercase}
.blog-empty p{color:var(--muted);max-width:46ch}
.contact-hero{grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr)!important;align-items:center}
.contact-hero .contact-cards{grid-template-columns:1fr 1fr}
@media (max-width:900px){.contact-hero{grid-template-columns:1fr!important}}
@media (max-width:520px){.contact-hero .contact-cards{grid-template-columns:1fr}}
.fp-stamp{top:auto;bottom:46px;right:18px;width:104px;height:104px;font-size:19px}
.pstamp.long b{font-size:15px}
.fp-stamp{left:122px;right:auto;bottom:50px;width:96px;height:96px;font-size:17px}
@media (max-width:480px){.fp-stamp{left:80px;bottom:52px;width:80px;height:80px;font-size:14px}}
.fp-stamp{left:44px;bottom:44px}
@media (max-width:480px){.fp-stamp{left:28px;bottom:48px;width:76px;height:76px;font-size:13px}}

/* ---------- Our Story ---------- */
.os-motto{display:flex;align-items:center;gap:14px;flex-wrap:wrap;font-family:var(--f-mono);font-size:13px;letter-spacing:.24em;text-transform:uppercase;color:var(--ink)}
.os-motto i{width:6px;height:6px;border-radius:50%;background:var(--gold)}
.os-rv-head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;flex-wrap:wrap;margin-bottom:clamp(24px,4vw,40px)}
.g-rating{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:14px;row-gap:6px;align-items:center;padding:18px 22px;border-radius:22px;background:var(--bg);border:1px solid var(--line);text-decoration:none;color:var(--ink);box-shadow:var(--shadow);transition:transform .25s var(--ease)}
.g-rating:hover{transform:translateY(-4px)}
.gr-g,.rvw-g{display:grid;place-items:center;border-radius:50%;background:#fff;color:#4285F4;font:800 22px/1 var(--f-body);box-shadow:0 2px 8px rgba(0,0,0,.12)}
.gr-g{width:48px;height:48px;grid-row:1/3}
.g-rating b{font-family:var(--f-display);font-weight:900;font-size:40px;line-height:1;margin-right:8px}
.gr-st{color:#F2B33D;letter-spacing:2px;font-size:18px}
.g-rating small{display:block;font-family:var(--f-mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.g-rating em{grid-column:2;font-style:normal;font-weight:600;font-size:14px;color:var(--brand);display:inline-flex;gap:6px;align-items:center}
.g-rating em svg{width:15px}
.rvw-wall{display:grid;gap:16px;-webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent)}
.rvw-row{overflow:hidden}
.rvw-track{display:flex;gap:16px;width:max-content;animation:rvwscroll 60s linear infinite}
.rvw-row.rev .rvw-track{animation-direction:reverse;animation-duration:70s}
.rvw-wall:hover .rvw-track{animation-play-state:paused}
@keyframes rvwscroll{to{transform:translateX(calc(-50% - 8px))}}
.rvw{margin:0;width:340px;flex:none;background:var(--bg);border:1px solid var(--line);border-radius:20px;padding:18px 20px;display:grid;gap:10px;align-content:start}
.rvw-top{display:flex;align-items:center;gap:10px}
.rvw-top > span:nth-child(2){flex:1;display:grid;min-width:0}
.rvw-top b{font-size:15px}
.rvw-top small{font-size:12.5px;color:var(--muted)}
.rvw-av{width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,var(--brand),var(--teal));color:#fff;display:grid;place-items:center;font-weight:700;font-size:14px}
.rvw-g{width:26px;height:26px;font-size:14px}
.rvw-st{color:#F2B33D;letter-spacing:2px}
.rvw blockquote{margin:0;font-size:15px;line-height:1.55;display:-webkit-box;-webkit-line-clamp:6;-webkit-box-orient:vertical;overflow:hidden}
@media (prefers-reduced-motion:reduce){.rvw-track{animation:none}.rvw-row{overflow-x:auto}}
.os-end{display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap}

/* ---------- Our Story v2 ---------- */
.os-hero-rating{justify-self:end;align-self:center;background:color-mix(in srgb,var(--surface) 88%,transparent)}
@media (max-width:900px){.os-hero-rating{justify-self:start}}
.os-intro{display:grid;grid-template-columns:1fr 1.2fr;gap:clamp(24px,5vw,64px);align-items:start}
@media (max-width:820px){.os-intro{grid-template-columns:1fr}}
.os-who{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px}
.os-who span{padding:8px 14px;border-radius:999px;background:var(--surface);border:1px solid var(--line);font-size:14px;font-weight:600}
.tour-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.tour{position:relative;display:grid;gap:12px;align-content:start;padding:22px 20px;border-radius:22px;background:var(--surface);border:1px solid var(--line);text-decoration:none;color:var(--ink);overflow:hidden;min-height:170px;transition:transform .3s var(--ease),background .3s,color .3s}
.tour::after{content:"";position:absolute;right:-30px;bottom:-30px;width:110px;height:110px;border-radius:50%;background:color-mix(in srgb,var(--gold) 22%,transparent);transition:transform .4s var(--ease)}
.tour-ic{width:50px;height:50px;border-radius:16px;background:var(--gold);color:var(--gold-ink);display:grid;place-items:center;position:relative;z-index:1}
.tour-ic svg{width:26px;height:26px}
.tour b{font-family:var(--f-display);font-weight:800;font-size:24px;text-transform:uppercase;line-height:1.05;position:relative;z-index:1}
.tour-go{display:inline-flex;align-items:center;gap:6px;font-size:13.5px;font-weight:600;color:var(--brand);position:relative;z-index:1;opacity:.85}
.tour-go svg{width:15px}
.tour:hover{transform:translateY(-5px);background:var(--brand);color:#fff}
.tour:hover .tour-go{color:var(--gold)}
.tour:hover::after{transform:scale(1.8)}
@media (max-width:980px){.tour-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:420px){.tour b{font-size:20px}.tour{padding:18px 16px;min-height:150px}}
.os-video{display:block;max-width:960px;margin:0 auto;aspect-ratio:16/9;border-radius:26px;overflow:hidden;box-shadow:var(--shadow-lg);background:#0E1A3A}
.os-video iframe{width:100%;height:100%;border:0}
.os-video-ph{display:grid;place-items:center;align-content:center;gap:12px;text-decoration:none;color:#fff;background:radial-gradient(circle at 30% 20%,#2B4FC7,transparent 60%),linear-gradient(150deg,#1E3A9E,#0E1A3A);text-align:center;padding:20px}
.osv-play{width:84px;height:84px;border-radius:50%;background:#FF0033;display:grid;place-items:center;box-shadow:0 0 0 12px rgba(255,0,51,.18);transition:transform .3s var(--ease)}
.osv-play svg{width:36px;height:36px;margin-left:4px}
.os-video-ph b{font-family:var(--f-display);font-weight:800;font-size:clamp(24px,3vw,36px);text-transform:uppercase}
.os-video-ph small{display:inline-flex;gap:6px;align-items:center;opacity:.8;font-size:15px}
.os-video-ph small svg{width:15px}
.os-video-ph:hover .osv-play{transform:scale(1.08)}
.rvw-more{display:inline-flex;align-items:center;gap:5px;font-size:13px;font-weight:600;color:var(--brand);text-decoration:none;margin-top:auto}
.rvw-more svg{width:13px}
.rvw-more:hover{text-decoration:underline}
.rvw{grid-template-rows:auto auto 1fr auto}
.rvw blockquote{-webkit-line-clamp:5}

/* =========================================================
   OUR STORY — scroll story
   ========================================================= */
.st-narrow{max-width:900px}
.st-split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,6vw,90px);align-items:center}
@media (max-width:900px){.st-split{grid-template-columns:1fr}}
.st-body{font-size:clamp(17px,1.5vw,19px);color:var(--muted);max-width:60ch}
.st-body b{color:var(--ink)}
.st-strong{font-size:clamp(20px,2vw,24px);line-height:1.35}
.st-strong b{background:linear-gradient(transparent 62%,color-mix(in srgb,var(--gold) 45%,transparent) 62%) no-repeat 0 0/0% 100%;transition:background-size 1.2s .3s var(--ease)}
.st-strong.in b,.st-strong b.in{background-size:100% 100%}
.st-flow{display:grid;gap:14px;font-size:clamp(17px,1.4vw,18.5px)}
.st-flow > p{color:var(--muted)}
.st-flow > p b{color:var(--ink)}
.st-flow > .st-strong{color:var(--ink)}
/* stagger groups */
.st-stag > *{opacity:0;transform:translateY(16px);transition:opacity .6s var(--ease),transform .6s var(--ease);transition-delay:calc(var(--i,0) * .14s + .1s)}
.st-stag.in > *{opacity:1;transform:none}

/* hero */
.st-kicker{font-family:var(--f-serif);font-style:italic;font-size:clamp(22px,2.4vw,30px);color:var(--ink);opacity:.8}
.st-h1{font-size:clamp(48px,7.4vw,108px)}
.st-scroll{display:inline-flex;gap:10px;align-items:center;font-family:var(--f-mono);font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink);text-decoration:none;margin-top:8px}
.st-scroll span{display:inline-grid;place-items:center;width:34px;height:34px;border-radius:50%;border:1.5px solid currentColor;animation:stbob 2s ease-in-out infinite}
@keyframes stbob{50%{transform:translateY(6px)}}
.st-board{--cw:min(24px,calc((min(560px,44vw) - 60px) / 17));--gap:3px;align-self:center;justify-self:end;max-width:100%}
.st-rows{display:grid;gap:8px}
.st-row{display:flex;gap:var(--gap)}
.st-row.gold .cell{color:var(--gold)}
@media (max-width:900px){.st-board{justify-self:start;--cw:min(22px,calc((100vw - 2*var(--gutter) - 40px - 16*3px) / 17))}}

/* questions */
.st-q{background:var(--surface)}
.st-big{font-family:var(--f-display);font-weight:800;font-size:clamp(34px,5vw,64px);text-transform:uppercase;line-height:.95}
.st-asks{list-style:none;margin:26px 0 0;padding:0;display:grid;gap:10px}
.st-asks li{position:relative;width:max-content;max-width:100%;font-family:var(--f-serif);font-style:italic;font-size:clamp(24px,3vw,38px);color:var(--muted)}
.st-asks li::after{content:"";position:absolute;left:-4px;right:-4px;top:55%;height:3px;border-radius:3px;background:var(--gold);transform:scaleX(0);transform-origin:left;transition:transform .7s 1.1s var(--ease)}
.st-asks li.in::after{transform:scaleX(1)}
.st-asks li.in{color:color-mix(in srgb,var(--muted) 60%,transparent);transition:transform .9s var(--ease),color .6s 1.3s}
.st-else{margin-top:34px;font-family:var(--f-mono);font-size:14px;letter-spacing:.18em;text-transform:uppercase;color:var(--teal)}
.st-question{position:relative;margin:14px 0 30px;font-family:var(--f-display);font-weight:900;font-size:clamp(42px,6.6vw,92px);line-height:.92;text-transform:uppercase}
.st-question em{display:block;font-family:var(--f-serif);font-weight:400;text-transform:none;font-size:1.05em;color:var(--brand);letter-spacing:-.01em}
.st-swash{display:block;width:min(100%,640px);height:26px;margin-top:4px}
.st-swash path{fill:none;stroke:var(--gold);stroke-width:5;stroke-linecap:round;stroke-dasharray:640;stroke-dashoffset:640;transition:stroke-dashoffset 1.4s .5s var(--ease)}
.st-question.in .st-swash path{stroke-dashoffset:0}
.st-personas{list-style:none;padding:0;margin:26px 0 30px;display:flex;flex-wrap:wrap;gap:10px}
.st-persona{display:inline-flex;align-items:center;gap:10px;padding:10px 18px 10px 10px;border-radius:999px;background:var(--bg);border:1px solid var(--line);font-weight:600;font-size:15.5px}
.st-persona svg{width:34px;height:34px;padding:7px;border-radius:50%;background:var(--gold);color:var(--gold-ink)}
.st-persona:nth-child(even) svg{background:var(--brand);color:#fff}

/* origin */
.st-origin{background:var(--bg-2);padding-bottom:0;overflow:hidden}
.st-origin .st-split{align-items:start}
.st-sticky{position:sticky;top:110px;display:grid;gap:18px}
@media (max-width:900px){.st-sticky{position:static}}
.st-count{display:flex;align-items:baseline;flex-wrap:wrap;gap:0 4px;margin-top:6px}
.st-count b{font-family:var(--f-display);font-weight:900;font-size:clamp(120px,16vw,220px);line-height:.8;color:var(--brand);font-variant-numeric:tabular-nums}
.st-count span{font-family:var(--f-display);font-weight:900;font-size:clamp(70px,9vw,120px);line-height:.8;color:var(--gold)}
.st-count small{flex-basis:100%;font-family:var(--f-mono);font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);margin-top:12px}
.st-some{list-style:none;padding:0;margin:6px 0;display:grid;gap:10px}
.st-some li{display:flex;align-items:center;gap:14px;padding:14px 18px;border-radius:18px;background:var(--surface);border:1px solid var(--line);font-size:18px}
.st-some li svg{width:40px;height:40px;padding:9px;border-radius:12px;background:color-mix(in srgb,var(--brand) 10%,transparent);color:var(--brand);flex:none}
.st-some li:nth-child(odd){margin-left:clamp(0px,3vw,36px)}
.st-stamps{margin-top:clamp(50px,7vw,90px);padding:26px 0 clamp(40px,6vw,70px);overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.st-stamps-track{display:flex;gap:26px;width:max-content;animation:rvwscroll 50s linear infinite;align-items:center}
.st-stamp{--c:#C2304F;flex:none;display:grid;place-items:center;align-content:center;text-align:center;width:130px;height:96px;color:var(--c);border:3px solid var(--c);transform:rotate(var(--rot));position:relative;font-family:var(--f-display);text-transform:uppercase;opacity:.9}
.st-stamp::before{content:"";position:absolute;inset:5px;border:1.5px dashed var(--c);border-radius:inherit;opacity:.7}
.st-stamp.round{width:110px;height:110px;border-radius:50%}.st-stamp.oval{border-radius:50%/40%}.st-stamp.rect{border-radius:10px}
.st-stamp small{font-family:var(--f-mono);font-size:8.5px;letter-spacing:.16em}
.st-stamp b{font-weight:900;font-size:17px;line-height:1;max-width:96px}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .st-stamp{filter:brightness(1.7) saturate(.8)}}
:root[data-theme="dark"] .st-stamp{filter:brightness(1.7) saturate(.8)}

/* quote (scroll-linked word reveal) */
.st-quote{background:var(--band);color:var(--band-ink);padding-block:clamp(90px,14vw,180px)}
.st-words{margin:0;max-width:1080px}
.st-words p{font-family:var(--f-serif);font-size:clamp(38px,6vw,84px);line-height:1.08;letter-spacing:-.01em}
.st-words .w{opacity:.16;transition:opacity .35s,color .35s}
.st-words .w.on{opacity:1}
.st-words .w.gold{color:var(--gold)}

/* asking */
.st-ask{background:var(--surface)}
.st-phone{justify-self:center;width:min(360px,100%);border-radius:36px;background:#E9EEF5;border:10px solid #0D1A4F;box-shadow:var(--shadow-lg);overflow:hidden}
.st-ph-top{display:flex;gap:10px;align-items:center;padding:14px 16px;background:#0D1A4F;color:#fff}
.st-ph-top b{display:block;font-size:15px}.st-ph-top small{font-size:12px;opacity:.7}
.st-ph-av{width:36px;height:36px;border-radius:50%;background:var(--gold);color:var(--gold-ink);display:grid;place-items:center;font-weight:800;font-size:13px}
.st-chat{display:grid;gap:10px;padding:18px 14px 22px;min-height:330px;align-content:start;background:repeating-linear-gradient(45deg,#E9EEF5 0 14px,#E3E9F1 14px 28px)}
.st-msg{max-width:82%;justify-self:start;background:#fff;color:#0D1A4F;padding:9px 13px 10px;border-radius:4px 16px 16px 16px;font-size:15px;line-height:1.35;box-shadow:0 1px 1px rgba(0,0,0,.08)}
.st-msg small{display:block;font-size:11.5px;font-weight:700;color:var(--teal);margin-bottom:2px}
.st-msg.me{justify-self:end;background:#D7F5C9;border-radius:16px 4px 16px 16px;font-weight:600}
.st-chat.in > *{transition-delay:calc(var(--i) * .55s + .2s)}
.st-typing{justify-self:start;display:flex;gap:4px;padding:12px 14px;background:#fff;border-radius:16px}
.st-typing i{width:7px;height:7px;border-radius:50%;background:#8C98AF;animation:sttype 1.2s infinite}
.st-typing i:nth-child(2){animation-delay:.15s}.st-typing i:nth-child(3){animation-delay:.3s}
@keyframes sttype{30%{transform:translateY(-4px);opacity:1}0%,60%,100%{opacity:.5}}
.st-idea{margin-top:clamp(40px,6vw,80px);display:flex;align-items:center;justify-content:center;gap:clamp(14px,3vw,36px);flex-wrap:wrap}
.st-step{display:grid;gap:4px;font-family:var(--f-display);font-weight:900;font-size:clamp(32px,4.4vw,60px);text-transform:uppercase;line-height:.95;padding:22px 28px;border-radius:24px;background:var(--bg);border:1.5px solid var(--line)}
.st-step small{font-family:var(--f-mono);font-weight:500;font-size:12px;letter-spacing:.18em;color:var(--teal)}
.st-step.gold{background:var(--gold);color:var(--gold-ink);border-color:var(--gold)}
.st-step.gold small{color:var(--gold-ink)}
.st-arrow{width:clamp(60px,9vw,120px);height:24px}
.st-arrow path{fill:none;stroke:var(--brand);stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:160;stroke-dashoffset:160;transition:stroke-dashoffset 1s .5s var(--ease)}
.st-idea.in .st-arrow path{stroke-dashoffset:0}
@media (max-width:700px){.st-arrow{transform:rotate(90deg)}.st-idea{flex-direction:column}}

/* listen */
.st-listen{background:var(--bg)}
.st-feel{margin-top:30px;display:grid;gap:8px}
.st-feel p{font-size:clamp(19px,1.8vw,22px);color:var(--muted)}
.st-feel s{text-decoration-color:var(--gold);text-decoration-thickness:3px}
.st-feel-b{font-family:var(--f-display);font-weight:900;font-size:clamp(32px,4vw,52px)!important;text-transform:uppercase;line-height:.95;color:var(--ink)!important}
.st-feel-b em{display:block;font-family:var(--f-serif);font-weight:400;text-transform:none;color:var(--brand)}
.st-tag{position:relative;justify-self:center;width:min(440px,100%);background:linear-gradient(160deg,#FFFDF7,#F4EEDC);color:#1B2433;border-radius:14px 14px 22px 22px;padding:52px 26px 24px;box-shadow:var(--shadow-lg);border:1px solid #E3D9BE;transform:rotate(-2deg)}
.st-tag-hole{position:absolute;top:16px;left:50%;width:22px;height:22px;margin-left:-11px;border-radius:50%;background:var(--bg);box-shadow:inset 0 2px 4px rgba(0,0,0,.2)}
.st-tag-h{display:flex;justify-content:space-between;align-items:center;font-family:var(--f-mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:#7A6A3E;border-bottom:1px dashed #D9CDAE;padding-bottom:12px;margin-bottom:8px}
.st-wave{display:flex;gap:3px;align-items:center;height:18px}
.st-wave i{width:3px;height:100%;border-radius:2px;background:#C2304F;animation:stwave 1s ease-in-out infinite}
.st-wave i:nth-child(2){animation-delay:.1s}.st-wave i:nth-child(3){animation-delay:.2s}.st-wave i:nth-child(4){animation-delay:.3s}.st-wave i:nth-child(5){animation-delay:.4s}
@keyframes stwave{50%{transform:scaleY(.3)}}
.st-tag ul{list-style:none;margin:0;padding:0;display:grid}
.st-tag li{display:flex;align-items:center;gap:12px;padding:12px 2px;border-bottom:1px solid #EADFC4;font-family:var(--f-display);font-weight:800;font-size:22px;text-transform:uppercase;line-height:1.05}
.st-tag li:last-child{border-bottom:0}
.st-dot{width:9px;height:9px;border-radius:50%;background:#C9BB93;flex:none}
.st-tick{margin-left:auto;width:26px;height:26px;border-radius:50%;background:var(--ok);color:#fff;display:grid;place-items:center;transform:scale(0);transition:transform .45s cubic-bezier(.3,1.6,.5,1);transition-delay:calc(var(--i) * .18s + .7s);flex:none}
.st-tick svg{width:15px;height:15px}
.st-tag ul.in .st-tick{transform:scale(1)}

/* pieces fit (dark) */
.st-fit{background:var(--board);color:var(--flap-ink);overflow:hidden}
.st-fit .h2{color:var(--flap-ink)}
.st-fit .h2 em{color:var(--gold)}
.st-fit .st-body{color:var(--board-dim)}
.st-fit-head{display:grid;gap:14px;max-width:760px}
.st-verbs{font-family:var(--f-display);font-weight:900;font-size:clamp(40px,6vw,80px);text-transform:uppercase;line-height:1;color:var(--gold);height:1.05em;overflow:hidden}
.st-verbs span{display:inline-block}
.st-verbs span.out{animation:stvout .35s forwards}.st-verbs span.inn{animation:stvin .45s var(--ease)}
@keyframes stvout{to{transform:translateY(-100%);opacity:0}}@keyframes stvin{from{transform:translateY(100%);opacity:0}}
.st-pieces{list-style:none;padding:0;margin:clamp(40px,6vw,70px) 0 0;display:grid;grid-template-columns:repeat(8,1fr);gap:0;position:relative}
.st-pieces::before{content:"";position:absolute;left:4%;right:4%;top:50%;height:2px;background:repeating-linear-gradient(90deg,var(--gold) 0 10px,transparent 10px 18px);transform:scaleX(0);transform-origin:left;transition:transform 1.2s 1.3s var(--ease)}
.st-pieces.in::before{transform:scaleX(1)}
.st-pieces li{position:relative;z-index:1;margin:0 4px;display:grid;justify-items:center;gap:6px;padding:16px 8px;border-radius:16px;background:var(--flap);border:1px solid var(--board-line);font-family:var(--f-display);font-weight:800;font-size:clamp(15px,1.6vw,20px);text-transform:uppercase;text-align:center;line-height:1.05;transform:translate(var(--x),var(--y)) rotate(var(--r));opacity:.35;transition:transform 1s var(--ease),opacity .6s,background .4s,border-color .4s;transition-delay:calc(var(--i) * .09s)}
.st-pieces.in li{transform:none;opacity:1;background:#18212B;border-color:color-mix(in srgb,var(--gold) 55%,transparent)}
.st-pn{font-family:var(--f-mono);font-size:10.5px;font-weight:500;letter-spacing:.14em;color:var(--gold)}
@media (max-width:900px){.st-pieces{grid-template-columns:repeat(4,1fr);row-gap:12px}.st-pieces::before{display:none}}
@media (max-width:480px){.st-pieces{grid-template-columns:repeat(2,1fr)}}
.st-fit-p{margin-top:clamp(36px,5vw,56px);max-width:62ch;color:var(--board-dim);font-size:clamp(17px,1.5vw,19px)}
.st-fit-end{margin-top:22px;display:grid;gap:4px}
.st-fit-end span{font-family:var(--f-serif);font-style:italic;font-size:clamp(24px,3vw,36px);color:var(--board-dim)}
.st-fit-end b{font-family:var(--f-display);font-weight:900;font-size:clamp(36px,5.4vw,72px);text-transform:uppercase;line-height:.95}

/* packing */
.st-pack{background:var(--surface)}
.st-pass{justify-self:center;width:min(440px,100%);border-radius:24px;background:var(--bg);border:1px solid var(--line);box-shadow:var(--shadow-lg);overflow:hidden}
.st-pass-top{display:flex;justify-content:space-between;padding:16px 22px;background:var(--brand);color:#fff;font-family:var(--f-mono);font-size:11.5px;letter-spacing:.16em;text-transform:uppercase}
.st-checks{list-style:none;margin:0;padding:12px 22px}
.st-checks li{display:flex;align-items:center;gap:14px;padding:12px 0;border-bottom:1px dashed var(--line);font-weight:600;font-size:17.5px}
.st-checks li:last-child{border-bottom:0}
.st-box{width:28px;height:28px;border-radius:9px;border:2px solid var(--line);display:grid;place-items:center;color:transparent;flex:none;transition:background .3s,border-color .3s,color .3s;transition-delay:calc(var(--i) * .3s + .5s)}
.st-box svg{width:16px;height:16px}
.st-checks.in .st-box{background:var(--ok);border-color:var(--ok);color:#fff}
.st-pass-stub{display:flex;justify-content:space-between;align-items:center;padding:16px 22px;border-top:2px dashed var(--line);font-family:var(--f-mono);font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.st-pass-stub b{font-family:var(--f-display);font-size:20px;letter-spacing:.02em;color:var(--ok)}
.st-journey{--p:0;margin-top:clamp(50px,7vw,90px);display:grid;gap:18px}
.st-jline{position:relative;height:40px}
.st-jline::before{content:"";position:absolute;left:0;right:0;top:50%;height:2px;background:repeating-linear-gradient(90deg,var(--line) 0 10px,transparent 10px 18px)}
.st-jline i{position:absolute;left:0;top:50%;height:2px;width:calc(var(--p) * 100%);background:var(--gold);margin-top:-1px}
.st-jplane{position:absolute;top:50%;left:calc(var(--p) * 100%);width:40px;height:40px;margin:-20px 0 0 -20px;border-radius:50%;background:var(--gold);color:var(--gold-ink);display:grid;place-items:center;box-shadow:0 8px 20px -6px rgba(242,179,61,.8)}
.st-jplane svg{width:20px;height:20px;transform:rotate(90deg)}
.st-journey ol{list-style:none;margin:0;padding:0;display:flex;justify-content:space-between;font-family:var(--f-display);font-weight:800;font-size:clamp(18px,2.4vw,30px);text-transform:uppercase}
.st-journey ol li:nth-child(2){text-align:center}.st-journey ol li:last-child{text-align:right}
.st-journey p{color:var(--muted);font-size:17px}
.st-journey p a{color:var(--brand);font-weight:700;display:inline-flex;gap:6px;align-items:center}
.st-journey p a svg{width:16px}

/* ways */
.st-way{background:var(--bg);padding-bottom:0;overflow:hidden}
.st-ways{display:grid;grid-template-columns:1fr auto 1fr;gap:18px;align-items:center;max-width:1000px;margin:0 auto}
.st-wcard{display:grid;gap:14px;padding:clamp(24px,3vw,36px);border-radius:28px;background:var(--surface);border:1px solid var(--line);text-decoration:none;color:var(--ink);box-shadow:var(--shadow);min-height:250px;align-content:space-between;transition:transform .35s var(--ease)}
.st-wcard:hover{transform:translateY(-6px) rotate(-.6deg)}
.st-wcard.gold{background:var(--brand);color:#fff;border-color:var(--brand)}
.st-wcard.gold:hover{transform:translateY(-6px) rotate(.6deg)}
.st-wk{font-family:var(--f-display);font-weight:900;font-size:clamp(28px,3.2vw,40px);text-transform:uppercase;line-height:.95}
.st-wcard p{font-size:17px;opacity:.85}
.st-wcard b{display:inline-flex;gap:8px;align-items:center;color:var(--brand);font-size:15px}
.st-wcard.gold b{color:var(--gold)}
.st-wcard b svg{width:16px}
.st-or{font-family:var(--f-serif);font-style:italic;font-size:30px;color:var(--muted)}
@media (max-width:760px){.st-ways{grid-template-columns:1fr}.st-or{text-align:center}}
.st-principle{text-align:center;margin:clamp(40px,6vw,70px) auto 0;font-size:clamp(18px,1.8vw,21px);color:var(--muted)}
.st-principle b{display:block;margin-top:8px;font-family:var(--f-display);font-weight:900;font-size:clamp(48px,8vw,110px);text-transform:uppercase;line-height:.9;color:var(--ink)}
.st-principle em{font-family:var(--f-serif);font-weight:400;text-transform:none;color:var(--brand)}
.st-marq{margin-top:clamp(40px,6vw,70px);background:var(--gold);color:var(--gold-ink);padding:18px 0;overflow:hidden;transform:rotate(-1.5deg) scale(1.03)}
.st-marq-track{display:flex;gap:28px;width:max-content;align-items:center;animation:rvwscroll 38s linear infinite;font-family:var(--f-display);font-weight:900;font-size:clamp(24px,3vw,36px);text-transform:uppercase;white-space:nowrap}
.st-marq-track i{font-style:normal;font-size:.6em}

/* stand for */
.st-stand{background:var(--band);color:var(--band-ink);margin-top:-10px}
.st-stand .h2{color:var(--band-ink)}.st-stand .h2 em{color:var(--gold)}
.st-stands{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(5,1fr);gap:14px}
.st-stands li{position:relative;display:grid;gap:10px;align-content:start;padding:24px 20px 26px;border-radius:22px;background:var(--band-2);border:1px solid rgba(255,255,255,.08);overflow:hidden;transition:transform .35s var(--ease),background .35s}
.st-stands li:hover{transform:translateY(-6px);background:#243C99}
.st-sn{font-family:var(--f-display);font-weight:900;font-size:64px;line-height:.9;color:transparent;-webkit-text-stroke:1.5px var(--gold)}
.st-stands h3{font-family:var(--f-display);font-weight:800;font-size:24px;text-transform:uppercase;line-height:1}
.st-stands p{color:var(--band-muted);font-size:15.5px}
@media (max-width:1000px){.st-stands{grid-template-columns:repeat(2,1fr)}.st-stands li:last-child{grid-column:1/-1}}
@media (max-width:520px){.st-stands{grid-template-columns:1fr}}

/* meet */
.st-meet{background:var(--surface)}
.st-meet .fpass{justify-self:center}
.st-hi{font-family:var(--f-serif);font-size:clamp(34px,4vw,52px);margin:14px 0 18px;line-height:1}
.st-hi em{color:var(--brand)}
.st-little{display:grid;gap:2px;margin:6px 0;padding-left:18px;border-left:3px solid var(--gold)}
.st-little span{font-family:var(--f-display);font-weight:800;font-size:clamp(22px,2.4vw,30px);text-transform:uppercase;line-height:1.1;color:var(--ink)}
.st-little span:last-child{font-family:var(--f-serif);font-weight:400;text-transform:none;font-size:clamp(22px,2.2vw,28px);color:var(--brand)}
.st-little span:last-child b{color:var(--ink)}

/* more than bookings */
.st-more{background:var(--bg-2)}
.st-servs{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.st-serv{display:flex;align-items:center;gap:14px;padding:18px;border-radius:18px;background:var(--surface);border:1px solid var(--line);text-decoration:none;color:var(--ink);transition:transform .25s var(--ease),border-color .25s}
.st-serv > svg{width:44px;height:44px;padding:10px;border-radius:13px;background:var(--gold);color:var(--gold-ink);flex:none}
.st-serv b{flex:1;font-size:16.5px}
.st-serv > span svg{width:17px;color:var(--muted);transition:transform .25s}
.st-serv:hover{transform:translateY(-4px);border-color:var(--gold)}
.st-serv:hover > span svg{transform:translateX(4px);color:var(--brand)}
.st-roof{margin-top:20px;font-family:var(--f-serif);font-style:italic;font-size:clamp(26px,3vw,36px);color:var(--brand);text-align:right}
@media (max-width:480px){.st-servs{grid-template-columns:1fr}}

/* three years */
.st-three{background:var(--surface)}
.st-three .h2{margin-top:6px}
.st-q2{font-size:clamp(36px,5.4vw,72px);margin:24px auto}
.st-q2 em{display:inline}
.st-adverbs{display:flex;justify-content:center;flex-wrap:wrap;gap:6px 22px;margin:22px 0}
.st-adv{font-family:var(--f-display);font-weight:900;font-size:clamp(36px,6vw,80px);text-transform:uppercase;line-height:1}
.st-adverbs.in .st-adv{transition-delay:calc(var(--i) * .45s + .2s)}
.st-adv:nth-child(2){color:var(--brand)}.st-adv:nth-child(3){color:var(--gold-text)}

/* where to next */
.st-next{background:var(--board);color:var(--flap-ink);padding-block:clamp(80px,11vw,140px) clamp(40px,6vw,70px);position:relative;overflow:hidden}
.st-next::before{content:"";position:absolute;inset:auto -10% -60% auto;width:70vw;height:70vw;border-radius:50%;background:radial-gradient(circle,rgba(242,179,61,.18),transparent 60%)}
.st-next-in{position:relative;display:grid;grid-template-columns:1.2fr 1fr;gap:clamp(28px,5vw,64px);align-items:end}
.st-next-h{font-family:var(--f-display);font-weight:900;font-size:clamp(70px,12vw,170px);text-transform:uppercase;line-height:.82;color:var(--flap-ink)}
.st-next-h em{display:block;font-family:var(--f-serif);font-weight:400;text-transform:none;color:var(--gold)}
.st-next-in > div{display:grid;gap:14px;font-size:18px;color:var(--board-dim)}
.st-next-in b{color:var(--flap-ink)}
.st-wa{background:#25D366;color:#06210F;border-color:#25D366}
.st-wa svg{width:18px;height:18px}
@media (max-width:820px){.st-next-in{grid-template-columns:1fr}}
.st-next + footer{padding-top:0}
.st-next + footer .f-grid{margin-top:0}


.st-jplane{left:calc(var(--p) * (100% - 40px) + 20px)}
.st-journey{overflow:hidden;padding-block:4px}
.flight svg{left:min(calc(var(--p,0%) - 9px),calc(100% - 18px))}
.st-next-h{font-size:clamp(64px,9vw,128px);white-space:nowrap}
.st-next-h em{white-space:normal}
@media (max-width:420px){.st-next-h{font-size:clamp(54px,17vw,72px)}}
/* single-row review wall */
.rvw-one .rvw-track{animation-name:rvwscroll;animation-timing-function:linear;animation-iteration-count:infinite;align-items:stretch}
.rvw-one .rvw-track{will-change:transform}
.rvw-short{width:260px;align-content:start}
.rvw-only{font-size:14px;color:var(--muted);font-style:italic}
.rvw blockquote{-webkit-line-clamp:6}

/* =========================================================
   HOME — Google reviews carousel
   ========================================================= */
.trust-solo{grid-template-columns:1fr}
.hrv{background:var(--bg-2);overflow:hidden;position:relative}
.hrv::before{content:"";position:absolute;right:-12%;top:-30%;width:60vw;height:60vw;border-radius:50%;background:radial-gradient(circle,color-mix(in srgb,var(--gold) 16%,transparent),transparent 62%);pointer-events:none}
.hrv-head{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;flex-wrap:wrap;margin-bottom:clamp(26px,4vw,44px);position:relative}
.hrv-nav{display:flex;align-items:center;gap:10px}
.hrv-count{font-family:var(--f-mono);font-size:13px;letter-spacing:.14em;color:var(--muted);margin-right:8px;font-variant-numeric:tabular-nums}
.hrv-count b{color:var(--ink);font-weight:600}
.hrv-btn{width:54px;height:54px;border-radius:50%;border:1.5px solid var(--line);background:var(--surface);color:var(--ink);display:grid;place-items:center;cursor:pointer;box-shadow:var(--shadow);transition:transform .25s var(--ease),background .25s,color .25s,border-color .25s}
.hrv-btn svg{width:22px;height:22px}
.hrv-btn:hover{background:var(--gold);border-color:var(--gold);color:var(--gold-ink);transform:scale(1.07)}
.hrv-btn:active{transform:scale(.95)}
.hrv-btn:focus-visible{outline:3px solid var(--brand);outline-offset:3px}
.hrv-body{display:grid;grid-template-columns:300px minmax(0,1fr);gap:20px;align-items:stretch;position:relative}
.hrv-score{position:relative;overflow:hidden;background:var(--gold);color:var(--gold-ink);border-radius:26px;padding:28px 26px;display:grid;gap:14px;align-content:start}
.hrv-score::after{content:"★";position:absolute;right:-30px;bottom:-70px;font-size:240px;line-height:1;opacity:.12;transform:rotate(-12deg)}
.hrv-g{width:46px;height:46px;border-radius:50%;background:#fff;color:#4285F4;display:grid;place-items:center;font:800 22px/1 var(--f-body);box-shadow:0 4px 14px rgba(0,0,0,.12)}
.hrv-big{font-family:var(--f-display);font-weight:900;font-size:clamp(96px,10vw,132px);line-height:.8;margin-top:6px}
.hrv-stars{font-size:26px;letter-spacing:4px}
.hrv-stars span{display:inline-block}
.hrv-score.in .hrv-stars span{animation:pop .6s var(--ease) both}
.hrv-score.in .hrv-stars span:nth-child(2){animation-delay:.1s}.hrv-score.in .hrv-stars span:nth-child(3){animation-delay:.2s}.hrv-score.in .hrv-stars span:nth-child(4){animation-delay:.3s}.hrv-score.in .hrv-stars span:nth-child(5){animation-delay:.4s}
.hrv-score p{font-size:16.5px;line-height:1.45}
.hrv-stack{display:flex;align-items:center}
.hrv-stack span{width:38px;height:38px;border-radius:50%;background:var(--av);color:#fff;display:grid;place-items:center;font-weight:700;font-size:12.5px;border:3px solid var(--gold);margin-left:-10px}
.hrv-stack span:first-child{margin-left:0}
.hrv-stack .more{background:var(--gold-ink);color:var(--gold);font-size:12px}
.hrv-cta{background:var(--gold-ink);color:var(--gold);justify-self:start;margin-top:auto;position:relative;z-index:1}
.hrv-viewport{position:relative;min-width:0}
.hrv-viewport::after{content:"";position:absolute;right:0;top:0;bottom:22px;width:70px;background:linear-gradient(90deg,transparent,var(--bg-2));pointer-events:none;opacity:.9}
.hrv-track{display:flex;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;scrollbar-width:none;padding:4px 70px 8px 2px;align-items:flex-start;outline:none;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain}
.hrv-track::-webkit-scrollbar{display:none}
.hrv-track:focus-visible{box-shadow:0 0 0 3px var(--brand);border-radius:20px}
.hcard{flex:0 0 clamp(280px,30vw,350px);scroll-snap-align:start;background:var(--surface);border:1px solid var(--line);border-radius:24px;padding:22px 22px 20px;display:grid;gap:10px;position:relative;box-shadow:var(--shadow);transition:transform .35s var(--ease),box-shadow .35s;min-height:300px;grid-template-rows:auto auto 1fr auto auto}
.hcard:hover{transform:translateY(-5px);box-shadow:var(--shadow-lg)}
.hcard.feat{background:var(--brand);color:#fff;border-color:var(--brand)}
.hc-top{display:flex;align-items:center;gap:8px}
.hc-tag{font-family:var(--f-mono);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;padding:5px 10px;border-radius:999px;background:color-mix(in srgb,var(--teal) 12%,transparent);color:var(--teal);white-space:nowrap}
.hcard.feat .hc-tag{background:rgba(255,255,255,.14);color:#fff}
.hc-st{color:#F2B33D;letter-spacing:2px;font-size:15px;margin-left:auto}
.hc-g{width:24px;height:24px;border-radius:50%;background:#fff;color:#4285F4;display:grid;place-items:center;font:800 13px/1 var(--f-body);box-shadow:0 1px 4px rgba(0,0,0,.15)}
.hc-q{font-family:var(--f-serif);font-size:84px;line-height:.5;height:34px;color:var(--gold);margin-top:10px}
.hc-txt{margin:0;font-size:16px;line-height:1.6}
.hc-txt.clamp{display:-webkit-box;-webkit-line-clamp:7;-webkit-box-orient:vertical;overflow:hidden}
.hcard.open .hc-txt.clamp{-webkit-line-clamp:unset;display:block}
.hc-more{justify-self:start;background:none;border:0;padding:0;font-weight:700;font-size:14px;color:var(--brand);cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.hcard.feat .hc-more{color:var(--gold)}
.hc-who{display:flex;align-items:center;gap:12px;padding-top:14px;margin-top:4px;border-top:1px dashed var(--line)}
.hcard.feat .hc-who{border-color:rgba(255,255,255,.25)}
.hc-av{width:42px;height:42px;border-radius:50%;background:var(--av);color:#fff;display:grid;place-items:center;font-weight:700;font-size:14px;flex:none}
.hcard.feat .hc-av{box-shadow:0 0 0 2px #fff}
.hc-who b{display:block;font-size:15.5px;line-height:1.25}
.hc-who small{font-size:12.5px;color:var(--muted)}
.hcard.feat .hc-who small{color:rgba(255,255,255,.75)}
.hrv-bar{height:4px;border-radius:4px;background:var(--line);margin-top:18px;margin-right:70px;overflow:hidden}
.hrv-bar i{display:block;height:100%;width:var(--w,10%);border-radius:4px;background:var(--gold);transform:translateX(var(--x,0));transition:transform .3s var(--ease)}
@media (max-width:900px){
  .hrv-body{grid-template-columns:1fr}
  .hrv-score{grid-template-columns:auto 1fr;align-items:center;column-gap:18px;padding:22px}
  .hrv-score .hrv-g{grid-row:1}
  .hrv-big{grid-row:1/3;grid-column:1;font-size:88px}
  .hrv-stars{grid-column:2;grid-row:1}
  .hrv-score p{grid-column:2;grid-row:2}
  .hrv-score .hrv-g{display:none}
  .hrv-stack,.hrv-cta{grid-column:1/-1}
  .hrv-viewport::after{width:40px}
  .hrv-track{padding-right:40px}
  .hrv-bar{margin-right:0}
}
@media (max-width:520px){.hrv-nav{width:100%;justify-content:flex-end}.hcard{flex-basis:84vw}.hrv-btn{width:48px;height:48px}}
@media (prefers-reduced-motion:reduce){.hrv-track{scroll-behavior:auto}}
.hrv-nav{margin-left:auto}
@media (min-width:901px){.hrv-head{flex-wrap:nowrap}.hrv-head .sec-head{flex:1 1 auto;min-width:0}.hrv-nav{flex:none;padding-bottom:6px}}

/* ---------- Our Story v4 additions ---------- */
/* headings rise out of a mask */
.st-rise{clip-path:inset(0 0 100% 0);transform:translateY(24px);transition:clip-path 1s var(--ease),transform 1s var(--ease)}
.st-rise.in{clip-path:inset(-10% -5% -20% -5%);transform:none}
/* persona cards */
.st-personas{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:12px}
.st-persona{border-radius:18px;padding:14px 16px 14px 12px;font-size:16px;line-height:1.35;align-items:center;transition:transform .3s var(--ease),border-color .3s}
.st-persona:hover{transform:translateY(-4px) rotate(-.6deg);border-color:var(--gold)}
.st-persona svg{flex:none;width:40px;height:40px;padding:9px}
.st-q .st-scroll{margin-top:28px}
.st-strong-xl{font-family:var(--f-display);font-weight:900;font-size:clamp(30px,3.6vw,46px);text-transform:uppercase;line-height:1}
.st-strong-xl b{background-position:0 88%}
/* explored */
.st-explored{background:var(--surface)}
.st-ex-head{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;flex-wrap:wrap}
.st-mapbtn{gap:10px}
.st-mapbtn-ic{display:inline-grid;transition:transform .35s var(--ease)}
.st-mapbtn[aria-expanded="true"] .st-mapbtn-ic{transform:rotate(90deg)}
.st-countries{list-style:none;padding:0;margin:clamp(24px,3vw,34px) 0 0;display:flex;flex-wrap:wrap;gap:10px}
.st-countries li{padding:10px 18px;border-radius:999px;background:var(--bg);border:1px solid var(--line);font-family:var(--f-display);font-weight:800;font-size:20px;text-transform:uppercase;letter-spacing:.02em;transition:background .25s,color .25s,transform .25s var(--ease),border-color .25s;transition-delay:0s}
.st-countries.in li{transition:opacity .6s var(--ease),transform .6s var(--ease),background .25s,color .25s,border-color .25s;transition-delay:calc(var(--i) * .05s),calc(var(--i) * .05s),0s,0s,0s}
.st-countries li:hover{background:var(--brand);color:#fff;border-color:var(--brand);transform:translateY(-3px)}
.st-map{margin-top:28px;border-radius:28px;background:linear-gradient(180deg,#0E1A3E,#13246E);padding:clamp(14px,2.4vw,28px);box-shadow:var(--shadow-lg);overflow:hidden;animation:stmapin .6s var(--ease)}
@keyframes stmapin{from{opacity:0;transform:translateY(16px) scale(.98)}}
.st-map-in{overflow-x:auto;scrollbar-width:thin}
.wmap{display:block;width:100%;min-width:640px;height:auto}
.wm-land{fill:#24387A;stroke:#2E4691;stroke-width:.5}
.wm-v{fill:#24387A;stroke:#0E1A3E;stroke-width:.6;transition:fill .6s;transition-delay:calc(var(--i) * .08s)}
.st-map.on .wm-v{fill:var(--gold)}
.wm-v:hover{fill:#FFD27A}
.wm-arc{fill:none;stroke:#F2B33D;stroke-width:1.2;stroke-dasharray:4 4;opacity:.75;stroke-dashoffset:0;clip-path:inset(0 100% 0 0)}
.st-map.on .wm-arc{animation:starc 1.4s var(--ease) forwards;animation-delay:calc(var(--i) * .1s + .4s)}
@keyframes starc{to{clip-path:inset(0 0 0 0)}}
.wm-pin{opacity:0;transform-box:fill-box;transform-origin:center}
.st-map.on .wm-pin{animation:stpin .5s cubic-bezier(.3,1.6,.5,1) forwards;animation-delay:calc(var(--i) * .1s + 1.1s)}
@keyframes stpin{from{opacity:0;transform:scale(.2)}to{opacity:1;transform:none}}
.wm-pin circle{fill:#fff}
.wm-pin text,.wm-home text{fill:#EEF3FF;font:600 11px var(--f-body);paint-order:stroke;stroke:#0E1A3E;stroke-width:3px}
.wm-ring{fill:none!important;stroke:#fff;stroke-width:1.2;transform-box:fill-box;transform-origin:center;animation:string 2.4s ease-out infinite}
.wm-home circle{fill:var(--gold)}
.wm-home .wm-ring{stroke:var(--gold)}
.wm-home text{font-weight:800;font-size:12px}
@keyframes string{from{transform:scale(1);opacity:.9}to{transform:scale(3.4);opacity:0}}
.st-map-note{margin-top:12px;font-family:var(--f-mono);font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;color:#A9B9E6}
/* chapter two lines */
.st-asked{display:grid;gap:2px}
.st-asked span{font-family:var(--f-display);font-weight:800;font-size:clamp(24px,2.6vw,32px);text-transform:uppercase;line-height:1.1;color:var(--ink)}
.st-asked span:last-child{color:var(--brand)}
.st-phone{animation:stfloat 6s ease-in-out infinite}
@keyframes stfloat{50%{transform:translateY(-10px) rotate(.6deg)}}
/* journey message */
.st-j-msg{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;margin-top:6px}
.st-j-msg p{display:grid;gap:2px}
.st-j-msg span{font-family:var(--f-serif);font-style:italic;font-size:clamp(22px,2.4vw,30px);color:var(--muted)}
.st-j-msg b{font-family:var(--f-display);font-weight:900;font-size:clamp(30px,4vw,52px);text-transform:uppercase;line-height:1}
/* meet */
.st-meetbtn{margin-top:6px;justify-self:start}
.st-meet .fpass{transition:transform .5s var(--ease)}
.st-meet .fpass:hover{transform:rotate(-1.5deg) translateY(-6px)}
/* finale */
.st-final{display:block;margin:clamp(30px,5vw,56px) auto 0;font-family:var(--f-display);font-weight:900;text-transform:uppercase;line-height:.95}
.st-fa{display:block;font-size:clamp(28px,4vw,52px);color:var(--muted)}
.st-fb{display:inline-block;font-family:var(--f-serif);font-weight:400;text-transform:none;font-size:clamp(70px,11vw,150px);color:var(--gold-text);line-height:1}
.st-final.in .st-fb{transition:opacity .6s,transform .9s cubic-bezier(.3,1.5,.5,1);transition-delay:.7s;transform:none}
.st-final .st-fb{transform:scale(.6) translateY(30px)}
.st-ready{margin-top:clamp(40px,6vw,70px);padding:clamp(26px,4vw,40px);border-radius:28px;background:var(--bg);border:1px solid var(--line);display:grid;gap:18px;justify-items:center}
.st-ready h3{font-family:var(--f-display);font-weight:900;font-size:clamp(32px,4vw,52px);text-transform:uppercase}

.st-rise{clip-path:none;opacity:0;transform:translateY(30px);filter:blur(6px);transition:opacity .9s var(--ease),transform 1s var(--ease),filter .9s var(--ease)}
.st-rise.in{clip-path:none;opacity:1;transform:none;filter:none}

.wmap{min-width:560px}
.wm-pin text{font-size:7.2px;stroke-width:2px}
.wm-home text{font-size:8px;stroke-width:2px}
.wm-land,.wm-v{stroke-width:.35}
.wm-arc{stroke-width:.8;stroke-dasharray:2.5 2.5}

/* ---------- Our Story: pinned sequence map (Japan route style) ---------- */
.st-explored{height:340vh;padding:0;position:relative;background:var(--surface)}
.st-ex-sticky{position:sticky;top:0;height:100vh;display:flex;align-items:center;padding:86px 0 24px;overflow:hidden}
.st-ex-sticky .wrap{width:100%;display:grid;gap:14px}
.st-ex-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap}
.st-ctry{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:4px 10px;align-items:center;font-family:var(--f-display);font-weight:800;font-size:clamp(16px,1.7vw,22px);text-transform:uppercase;letter-spacing:.02em}
.st-ctry li{color:color-mix(in srgb,var(--muted) 55%,transparent);transition:color .4s,transform .4s var(--ease)}
.st-ctry li.sep{color:var(--line)}
.st-ctry li.on{color:var(--ink)}
.st-ctry li.cur{color:var(--gold-text);transform:translateY(-2px)}
.st-map2{border-radius:26px;background:radial-gradient(120% 90% at 70% 40%,#18307E,#0E1A3E 70%);padding:clamp(8px,1.6vw,18px);box-shadow:var(--shadow-lg);overflow:hidden;max-height:calc(100vh - 260px);display:grid;place-items:center}
.st-map2 .wmap{min-width:0;width:100%;max-height:calc(100vh - 300px)}
.wm-v{fill:#24387A;transition:fill .7s var(--ease)}
.wm-v.on{fill:var(--gold)}
.wm-ghost path{fill:none;stroke:#F2B33D;stroke-width:.6;stroke-dasharray:2 3;opacity:.22}
.wm-legs path{fill:none;stroke:#F2B33D;stroke-width:1.3;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1}
.wm-pin{opacity:0;transform-box:fill-box;transform-origin:center;transition:opacity .3s}
.wm-pin.on{opacity:1;animation:stpin .5s cubic-bezier(.3,1.6,.5,1)}
.wm-pin circle{fill:#fff}
.wm-pin .wm-ring{display:none}
.wm-pin.cur .wm-ring{display:block}
.wm-home circle{fill:var(--gold)}
.wm-home .wm-ring{stroke:var(--gold)}
.wm-plane{color:#fff}
.wm-plane path{fill:#fff;filter:drop-shadow(0 1px 2px rgba(0,0,0,.5))}
.st-map-note{margin:0;color:var(--muted)}
@media (max-width:700px){
  .st-explored{height:300vh}
  .st-ex-sticky{padding-top:78px}
  .st-map2{max-height:none}
  .st-map2 .wmap{max-height:none}
  .st-ctry{font-size:14px;gap:2px 7px}
}

.st-ex-sticky{align-items:flex-start;padding-top:clamp(92px,12vh,120px)}
.st-map2{max-height:calc(100vh - 330px)}
.st-map2 .wmap{max-height:calc(100vh - 360px)}
@media (max-width:700px){.st-ex-sticky{align-items:center;padding-top:70px}.st-map2,.st-map2 .wmap{max-height:none}}
@media (min-width:701px){
  .st-ex-head{flex-wrap:nowrap;align-items:center}
  .st-ex-head .h2{font-size:clamp(34px,3.8vw,54px)}
  .st-ex-sticky{padding-top:96px}
  .st-ex-sticky .wrap{gap:12px}
  .st-ctry{font-size:clamp(15px,1.4vw,19px)}
  .st-map2{max-height:calc(100vh - 290px)}
  .st-map2 .wmap{max-height:calc(100vh - 320px)}
}

/* ---------- Our Story: map labels in sequence ---------- */
.wm-pin text{fill:#EEF3FF;font:700 7.4px var(--f-body);paint-order:stroke;stroke:#0E1A3E;stroke-width:2.2px;opacity:0;transition:opacity .4s,fill .4s}
.wm-pin.on text{opacity:.85}
.wm-pin.cur text{opacity:1;fill:var(--gold);font-size:9px}
.wm-pin.cur circle:first-child{fill:var(--gold)}

/* ---------- chapter rail ---------- */
.st-rail{position:fixed;left:clamp(10px,1.6vw,24px);top:50%;transform:translateY(-50%);z-index:40;display:grid;gap:12px;opacity:0;pointer-events:none;transition:opacity .4s}
.st-rail.show{opacity:1;pointer-events:auto}
.st-rail a{position:relative;display:block;width:10px;height:10px;border-radius:50%;background:color-mix(in srgb,var(--muted) 35%,transparent);transition:transform .3s var(--ease),background .3s}
.st-rail a::before{content:"";position:absolute;inset:-7px}
.st-rail a.on{background:var(--gold);transform:scale(1.5)}
.st-rail a.done{background:var(--brand)}
.st-rail a span{position:absolute;left:20px;top:50%;transform:translate(-6px,-50%);white-space:nowrap;font-family:var(--f-mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink);background:var(--surface);border:1px solid var(--line);padding:4px 9px;border-radius:999px;opacity:0;pointer-events:none;transition:opacity .25s,transform .25s}
.st-rail a:hover span,.st-rail a:focus-visible span,.st-rail a.on span{opacity:1;transform:translate(0,-50%)}
.st-rail a.on span{opacity:.9}
.st-rail.dark a:not(.on):not(.done){background:rgba(255,255,255,.35)}
@media (max-width:1100px){.st-rail{display:none}}

/* ---------- tilt + spotlight ---------- */
.st-tilt{transform-style:preserve-3d;will-change:transform}
.st-fit,.st-stand,.st-quote{position:relative;isolation:isolate}
.st-fit::after,.st-stand::after,.st-quote::after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(420px circle at var(--mx,50%) var(--my,30%),rgba(242,179,61,.13),transparent 60%);opacity:var(--spot,0);transition:opacity .4s}

/* extra polish */
.st-hero .h1 .serif{background:linear-gradient(90deg,var(--brand),var(--teal),var(--brand));background-size:200% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:stshine 6s linear infinite}
@keyframes stshine{to{background-position:200% 0}}
.st-step{transition:transform .35s var(--ease),box-shadow .35s}
.st-step:hover{transform:translateY(-6px) rotate(-1deg);box-shadow:var(--shadow-lg)}
.st-checks li{transition:transform .3s var(--ease)}
.st-checks li:hover{transform:translateX(6px)}
.st-stands li::after{content:"";position:absolute;left:0;bottom:0;height:3px;width:0;background:var(--gold);transition:width .5s var(--ease)}
.st-stands li:hover::after{width:100%}

.st-stands{grid-template-columns:repeat(4,1fr)}
@media (max-width:1000px){.st-stands{grid-template-columns:repeat(2,1fr)}.st-stands li:last-child{grid-column:auto}}
@media (max-width:520px){.st-stands{grid-template-columns:1fr}}

/* =========================================================
   OUR STORY — section animations (fun layer)
   ========================================================= */
/* Begin: persona icons wiggle hello */
.st-personas.in .st-persona svg{animation:stwig .7s ease-in-out both;animation-delay:calc(var(--i) * .14s + .5s)}
@keyframes stwig{0%,100%{transform:rotate(0)}25%{transform:rotate(-14deg) scale(1.1)}55%{transform:rotate(10deg) scale(1.1)}80%{transform:rotate(-4deg)}}

/* Chapter one: trips slide in from alternating sides */
.st-some.st-stag > li:nth-child(odd){transform:translateX(-50px)}
.st-some.st-stag > li:nth-child(even){transform:translateX(50px)}
.st-some.st-stag.in > li{transform:none}
.st-some li svg{transition:transform .4s var(--ease)}
.st-some li:hover svg{transform:rotate(-10deg) scale(1.12)}
.st-count.in b{animation:stpulse 1.6s 1.4s ease-out}
@keyframes stpulse{30%{text-shadow:0 0 0 rgba(242,179,61,0)}50%{text-shadow:0 0 40px rgba(242,179,61,.55)}100%{text-shadow:0 0 0 rgba(242,179,61,0)}}

/* Chapter two: bubbles pop, planes fly out of the phone */
.st-chat.st-stag > *{transform:scale(.5) translateY(14px);transform-origin:0 100%;transition-timing-function:cubic-bezier(.3,1.6,.5,1)}
.st-chat.st-stag.in > *{transform:none}
.st-phone{position:relative;overflow:visible}
.st-phone > .st-ph-top,.st-phone > .st-chat{border-radius:0}
.st-phone{border-radius:36px}
.st-fly{position:absolute;right:-6px;top:30px;width:1px;height:1px;pointer-events:none}
.st-fly i{position:absolute;font-style:normal;font-size:20px;color:var(--gold);opacity:0;animation:stflyout 4.8s ease-out infinite}
.st-fly i:nth-child(2){animation-delay:1.6s;font-size:15px}
.st-fly i:nth-child(3){animation-delay:3.2s;font-size:24px}
@keyframes stflyout{0%{opacity:0;transform:translate(0,0) rotate(-20deg) scale(.6)}15%{opacity:1}100%{opacity:0;transform:translate(110px,-120px) rotate(-30deg) scale(1)}}
.st-ph-top{border-radius:26px 26px 0 0}
.st-phone .st-chat{border-radius:0 0 26px 26px}
.st-idea.in .st-step{animation:stdrop .8s cubic-bezier(.3,1.5,.5,1) both}
.st-idea.in .st-step.gold{animation-delay:.9s}
@keyframes stdrop{from{opacity:0;transform:translateY(-40px) rotate(-4deg)}}

/* We listen: the luggage tag swings in on its string */
.st-tag{transform-origin:50% -40px}
.st-tag::before{content:"";position:absolute;left:50%;top:-40px;width:2px;height:58px;margin-left:-1px;background:repeating-linear-gradient(#C9BB93 0 4px,#B3A57C 4px 8px);border-radius:2px;z-index:-1}
.st-tag.rv{transform:rotate(-24deg)}
.st-tag.rv.in{transform:rotate(-2deg);animation:stswing 2.4s ease-out}
@keyframes stswing{0%{transform:rotate(-24deg)}30%{transform:rotate(12deg)}52%{transform:rotate(-8deg)}70%{transform:rotate(4deg)}86%{transform:rotate(-3deg)}100%{transform:rotate(-2deg)}}
.st-wave i{animation-duration:.9s}

/* Behind the scenes: pieces keep gently floating once they fit */
.st-pieces.in li{animation:stfloat2 3.6s ease-in-out infinite;animation-delay:calc(var(--i) * .25s + 2s)}
@keyframes stfloat2{50%{translate:0 -6px}}
.st-pieces.in::after{content:"";position:absolute;top:50%;left:4%;width:60px;height:4px;margin-top:-2px;border-radius:4px;background:linear-gradient(90deg,transparent,#fff,transparent);opacity:.7;animation:stspark 3s linear infinite 2.5s}
@keyframes stspark{from{left:4%}to{left:92%}}
@media (max-width:900px){.st-pieces.in::after{display:none}}

/* Ready to go: stamp slams onto the boarding pass */
.st-pass{position:relative}
.st-pass-stamp{position:absolute;right:22px;bottom:58px;display:grid;place-items:center;align-content:center;width:96px;height:96px;border-radius:50%;border:3px solid var(--ok);color:var(--ok);font-family:var(--f-display);font-weight:900;font-size:22px;text-transform:uppercase;line-height:1;transform:rotate(-16deg) scale(2.4);opacity:0;pointer-events:none;mix-blend-mode:multiply}
.st-pass-stamp::before{content:"";position:absolute;inset:6px;border:1.5px dashed var(--ok);border-radius:50%}
.st-pass-stamp small{font-family:var(--f-mono);font-weight:500;font-size:8px;letter-spacing:.14em;margin-top:3px}
.st-pass.in .st-pass-stamp{animation:stslam .5s 2.4s cubic-bezier(.3,1.6,.5,1) forwards}
@keyframes stslam{to{opacity:.9;transform:rotate(-16deg) scale(1)}}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .st-pass-stamp{mix-blend-mode:normal}}

/* Two ways: cards arrive from opposite sides, "or" spins */
.st-wcard.rv{transform:translateX(-70px) rotate(-3deg)}
.st-wcard.gold.rv{transform:translateX(70px) rotate(3deg)}
.st-wcard.rv.in{transform:none}
.st-way .st-or{display:inline-block}
.st-ways:has(.st-wcard.in) .st-or{animation:stspin .9s .4s cubic-bezier(.3,1.5,.5,1) both}
@keyframes stspin{from{opacity:0;transform:rotate(-180deg) scale(.3)}}
.st-principle.in b{animation:stzoom 1s .3s cubic-bezier(.3,1.4,.5,1) both}
@keyframes stzoom{from{opacity:0;transform:scale(.85);letter-spacing:.06em}}

/* What we believe: cards flip in like departure flaps */
.st-stands li.rv{transform:perspective(900px) rotateX(-75deg);transform-origin:50% 0;opacity:.2;transition:transform .9s cubic-bezier(.3,1.3,.5,1),opacity .6s}
.st-stands li.rv.in{transform:none;opacity:1}
.st-stands li.in .st-sn{animation:stnum 1s .5s ease-out both}
@keyframes stnum{from{-webkit-text-stroke-color:transparent;opacity:0;transform:translateY(10px)}}

/* Akhila: passport opens like a cover */
.st-meet .fpass.rv{transform:perspective(1200px) rotateY(-70deg);transform-origin:0 50%;transition:transform 1.3s cubic-bezier(.2,.9,.3,1.1)}
.st-meet .fpass.rv.in{transform:none}
.st-hi.in em{display:inline-block;animation:stwave2 1.4s 1s ease-in-out}
@keyframes stwave2{20%{transform:rotate(-6deg)}40%{transform:rotate(5deg)}60%{transform:rotate(-3deg)}80%{transform:rotate(2deg)}}

/* Today: confetti for "You are." */
.st-final{position:relative}
.st-conf{position:absolute;left:50%;top:70%;width:8px;height:8px;border-radius:2px;pointer-events:none;animation:stconf 1.6s cubic-bezier(.15,.7,.3,1) forwards}
@keyframes stconf{0%{transform:translate(0,0) rotate(0);opacity:1}100%{transform:translate(var(--dx),var(--dy)) rotate(var(--rr));opacity:0}}
.st-adverbs.in .st-adv{animation:stbounce .7s cubic-bezier(.3,1.6,.5,1) both;animation-delay:calc(var(--i) * .45s + .2s)}
@keyframes stbounce{from{transform:translateY(30px) scale(.8);opacity:0}}
.st-ready.in{animation:stglow 2.6s 1s ease-in-out infinite}
@keyframes stglow{50%{box-shadow:0 0 0 6px color-mix(in srgb,var(--gold) 25%,transparent)}}


.st-ask,.st-listen,.st-way,.st-pack,.st-meet,.st-three{overflow-x:clip}

/* ---------- spacing fixes above blue/dark blocks + crisp resting states ---------- */
.st-origin{padding-bottom:clamp(64px,9vw,120px)}
.st-way{padding-bottom:clamp(64px,9vw,120px)}
.st-stand{margin-top:0}
.st-principle b{padding-bottom:.08em}

.st-j-msg b{color:var(--ink)}
.st-journey ol li{color:color-mix(in srgb,var(--muted) 55%,transparent);transition:color .4s,transform .4s var(--ease)}
.st-journey ol li.on{color:var(--ink)}
.st-journey ol li.cur{color:var(--gold-text);transform:translateY(-3px)}
@media (max-width:520px){.st-journey ol{font-size:15px}}

/* Our Story, reduced motion: keep reveals (they play once, on scroll), stop endless loops */
@media (prefers-reduced-motion:reduce){
  .st-phone,.st-fly i,.st-pieces.in li,.st-ready.in,.st-hero .h1 .serif,.st-scroll span,.st-wave i,.st-typing i,.wm-ring{animation:none}
}

/* Forex & eSIM success journey: keep the phone inside its stage on short screens */
.fxj .phone.mini{width:min(220px,56vw,calc((min(440px,56vh) - 12px) * 9 / 18.5))}
.fxj .sc-sim{height:min(440px,56vh)}
.fxj.s-done .vj-stage{zoom:.72}
.fxj.s-done .j-inner{gap:10px}
@media (max-height:700px){.fxj.s-done .vj-stage{zoom:.62}.fxj .j-final h2{font-size:clamp(28px,4vw,44px)}}

/* =========================================================
   MOBILE POLISH — menu, footer, less scrolling
   ========================================================= */
/* menu button: slimmer, lighter */
.menu-btn{width:40px;height:40px;border-radius:12px;border:1px solid var(--line);background:color-mix(in srgb,var(--surface) 85%,transparent)}
.menu-btn span,.menu-btn span::before,.menu-btn span::after{width:16px;height:1.8px}
.menu-btn span::before{top:-5px}.menu-btn span::after{top:5px}
.menu-btn[aria-expanded="true"] span::before{transform:translateY(5px) rotate(45deg)}
.menu-btn[aria-expanded="true"] span::after{transform:translateY(-5px) rotate(-45deg)}
/* drawer: compact list */
.drawer{padding-block:6px 18px;max-height:calc(100vh - 70px);overflow:auto}
.drawer-main a{display:flex;justify-content:space-between;align-items:center;padding:12px 2px;text-decoration:none;font-family:var(--f-body);font-weight:600;font-size:16.5px;text-transform:none;letter-spacing:0;border-bottom:1px solid var(--line);color:var(--ink)}
.drawer-main a svg{width:16px;height:16px;color:var(--muted);transition:transform .25s var(--ease)}
.drawer-main a:hover svg,.drawer-main a[aria-current="page"] svg{transform:translateX(3px);color:var(--brand)}
.drawer-main a[aria-current="page"]{color:var(--brand)}
.drawer-sub{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.drawer-sub a{padding:7px 13px;border-radius:999px;border:1px solid var(--line);font-size:13.5px;font-weight:600;text-decoration:none;color:var(--ink);background:var(--surface)}
.drawer-quick{display:grid;grid-template-columns:1fr 46px 46px;gap:8px;margin-top:14px}
.drawer-quick .btn{margin:0;width:auto;justify-content:center}
.drawer-quick .btn svg{width:18px;height:18px}
.dq-wa,.dq-call{padding:0;border-radius:14px;display:grid;place-items:center}
.dq-wa{background:#25D366;color:#06210F;border-color:#25D366}
.dq-call{background:var(--surface);color:var(--ink);border:1px solid var(--line)}
.drawer .btn{margin-top:0}

/* footer: icon socials + compact grid */
.socials{gap:8px}
.socials a{width:40px;height:40px;padding:0;justify-content:center;border-radius:50%}
.socials a svg{width:19px;height:19px}

@media (max-width:640px){
  /* rhythm */
  section{padding-block:26px}
  .sec-head{margin-bottom:22px;gap:10px}
  .h2{font-size:clamp(30px,8.6vw,38px)}
  .h1{font-size:clamp(44px,13vw,60px)}
  .lede{font-size:16px}
  /* swipe rows instead of tall stacks */
  .services,.types,.routes,.steps,.jp-incl,.jp-suits,.jp-book,.bgrid,.fmt-row,.st-personas,.st-stands,.st-some{
    display:flex!important;flex-direction:row!important;overflow-x:auto;scroll-snap-type:x mandatory;gap:12px;
    margin-inline:calc(-1 * var(--gutter));padding:4px var(--gutter) 14px;scrollbar-width:none;-webkit-overflow-scrolling:touch;grid-template-columns:none!important}
  .services::-webkit-scrollbar,.types::-webkit-scrollbar,.routes::-webkit-scrollbar,.steps::-webkit-scrollbar,.jp-incl::-webkit-scrollbar,.jp-suits::-webkit-scrollbar,.jp-book::-webkit-scrollbar,.bgrid::-webkit-scrollbar,.fmt-row::-webkit-scrollbar,.st-personas::-webkit-scrollbar,.st-stands::-webkit-scrollbar,.st-some::-webkit-scrollbar{display:none}
  .services > *,.types > *,.routes > *,.steps > *,.jp-incl > *,.jp-suits > *,.jp-book > *,.bgrid > *,.fmt-row > *,.st-stands > *{flex:0 0 80%;scroll-snap-align:start;margin:0!important}
  .st-personas > *,.st-some > *{flex:0 0 68%;scroll-snap-align:start;margin:0!important}
  .st-some li:nth-child(odd){margin-left:0}
  /* shorter scroll scenes */
  .jp-js .jp-open{height:180vh}
  .jp-js .jp-globe{height:170vh}
  .jp-js .jp-days{height:calc(100vh + 9 * 34vh)}
  .jp-js .jp-route{height:calc(100vh + 7 * 36vh)}
  .st-explored{height:200vh}
  /* lead forms: drop decorative extras (contact info lives in the footer) */
  .lead-side .route-map,.lead-side .lead-contacts{display:none}
  .lead-grid{gap:20px}
  /* footer */
  footer{padding-block:44px 24px}
  .f-cta{gap:16px}
  .f-big{font-size:clamp(44px,13vw,60px)!important}
  .f-grid{grid-template-columns:1fr 1fr!important;gap:26px 18px;margin-top:28px;padding-top:24px}
  .f-grid > .f-brand,.f-grid > div:nth-child(2){grid-column:1 / -1}
  .f-brand p{font-size:14px!important}
  .f-bottom{flex-direction:column;gap:6px;align-items:flex-start;font-size:11px}
}
.drawer-sub a,.drawer-quick a{font-family:var(--f-body);text-transform:none;letter-spacing:0;border-bottom:0}
.drawer-sub a{font-size:13.5px;font-weight:600;padding:7px 13px;border:1px solid var(--line)}
.drawer-quick .btn-gold{font-size:15px;font-weight:700;padding:12px 18px;border-radius:14px}
.drawer-quick .dq-wa{border:0}
@media (max-width:640px){
  .steps{padding-inline:var(--gutter)!important;scroll-padding-inline:var(--gutter)}
  .services,.types,.routes,.jp-incl,.jp-suits,.jp-book,.bgrid,.fmt-row,.st-personas,.st-stands,.st-some{scroll-padding-inline:var(--gutter)}
}

/* =========================================================
   HOME — Window seat hero
   ========================================================= */
.hw .hw-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:clamp(28px,5vw,72px);align-items:center;position:relative;z-index:2}
.hw-copy{display:grid;gap:18px;align-content:start}
.hw-copy .eyebrow{color:var(--ink);opacity:.75}
.hw-h1{font-family:var(--f-display);font-weight:900;font-size:clamp(46px,6.4vw,92px);text-transform:uppercase;line-height:.88;color:var(--ink)}
.hw-h1 .serif{display:block;font-family:var(--f-serif);font-weight:400;text-transform:none;font-size:.62em;line-height:1.05;color:var(--brand);margin-top:.12em}
/* the sentence form */
.hw-form{display:grid;gap:16px;background:color-mix(in srgb,var(--surface) 82%,transparent);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid color-mix(in srgb,var(--line) 70%,transparent);border-radius:28px;padding:clamp(18px,2.4vw,28px);box-shadow:var(--shadow-lg)}
.hw-sentence{margin:0;font-family:var(--f-serif);font-size:clamp(24px,2.6vw,34px);line-height:1.5;color:var(--ink);display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 10px}
.hw-blank{position:relative;display:inline-flex}
.hw-blank input,.hw-blank select{font:inherit;font-family:var(--f-body);font-weight:700;font-size:.78em;color:var(--brand);background:transparent;border:0;border-bottom:2.5px dashed color-mix(in srgb,var(--brand) 45%,transparent);padding:2px 4px 3px;border-radius:0;outline:none;cursor:pointer;transition:border-color .25s,background .25s}
.hw-blank select{appearance:none;-webkit-appearance:none;padding-right:20px;background-image:linear-gradient(45deg,transparent 50%,var(--brand) 50%),linear-gradient(135deg,var(--brand) 50%,transparent 50%);background-size:5px 5px;background-position:calc(100% - 9px) 55%,calc(100% - 4px) 55%;background-repeat:no-repeat}
.hw-blank select option{color:#0D1A4F}
.hw-dest input{width:7.5ch;min-width:5ch;max-width:13ch;cursor:text}
.hw-blank input::placeholder{color:color-mix(in srgb,var(--brand) 40%,transparent)}
.hw-blank input:focus,.hw-blank select:focus{border-bottom-style:solid;border-color:var(--gold);background:color-mix(in srgb,var(--gold) 10%,transparent)}
.hw-typetag{margin:-4px 0 0;display:inline-flex;align-items:center;gap:8px;justify-self:start;padding:5px 6px 5px 12px;border-radius:999px;background:color-mix(in srgb,var(--gold) 22%,transparent);font-size:14px}
.hw-typetag span{font-family:var(--f-mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.hw-typetag button{width:22px;height:22px;border-radius:50%;border:0;background:var(--surface);color:var(--ink);cursor:pointer;line-height:1}
.hw-row{display:grid;grid-template-columns:1fr 1fr auto;gap:10px;align-items:start}
.hw-row .fl{margin:0}
.hw-send{height:56px;padding-inline:24px;white-space:nowrap}
.hw-send.sending{opacity:.8;pointer-events:none}
.hw-alt{margin:0;display:flex;flex-wrap:wrap;gap:4px 14px;align-items:center;font-size:14px;color:var(--muted)}
.hw-alt a{display:inline-flex;align-items:center;gap:6px;font-weight:700;color:#128C4A;text-decoration:none}
.hw-alt a svg{width:17px;height:17px}
.hw-done{background:color-mix(in srgb,var(--surface) 90%,transparent);border:1px solid var(--line);border-radius:28px;padding:clamp(22px,3vw,32px);box-shadow:var(--shadow-lg);display:grid;gap:12px;justify-items:start;animation:stepin .5s var(--ease)}
.hw-done h3{font-family:var(--f-display);font-weight:900;font-size:clamp(30px,3.4vw,44px);text-transform:uppercase;line-height:.95}
.hw-done h3 em{font-family:var(--f-serif);font-weight:400;text-transform:none;color:var(--brand)}
.hw-done p{color:var(--muted)}
.hw-done .ref{font-family:var(--f-mono);font-size:12px;letter-spacing:.14em;color:var(--teal)}

/* the window */
.hw-window{justify-self:center;width:min(400px,100%);perspective:1200px}
.hw-frame{position:relative;padding:20px;border-radius:150px;background:linear-gradient(150deg,#FFFFFF,#DCE3EC 55%,#C7D1DE);box-shadow:0 40px 80px -30px rgba(13,26,79,.45),inset 0 2px 0 #fff,inset 0 -6px 14px rgba(13,26,79,.12);animation:hwbob 7s ease-in-out infinite}
@keyframes hwbob{50%{transform:translateY(-8px) rotate(-.4deg)}}
.hw-frame::after{content:"";position:absolute;inset:9px;border-radius:142px;border:2px solid rgba(255,255,255,.7);pointer-events:none}
.hw-view{--sky1:#5FA8E6;--sky2:#CFE9F8;position:relative;aspect-ratio:3/4;border-radius:130px;overflow:hidden;background:linear-gradient(180deg,var(--sky1),var(--sky2));box-shadow:inset 0 0 0 3px rgba(13,26,79,.18),inset 0 18px 40px rgba(13,26,79,.25);transition:background 1.2s}
.hw-view.morning{--sky1:#8CC9EE;--sky2:#FFE7C7}
.hw-view.day{--sky1:#4E9BE0;--sky2:#D3ECFA}
.hw-view.sunset{--sky1:#2E3C80;--sky2:#F59A6A}
.hw-view.night{--sky1:#060C2A;--sky2:#24386F}
.hw-view.above{--sky1:#2D5BC4;--sky2:#F7D58C}
.hw-sun{position:absolute;right:22%;top:20%;width:54px;height:54px;border-radius:50%;background:radial-gradient(circle,#FFF6D6,#FFD36B 60%,rgba(255,211,107,0) 72%);box-shadow:0 0 60px 20px rgba(255,214,120,.45);transition:all 1.2s}
.hw-view.sunset .hw-sun{top:52%;background:radial-gradient(circle,#FFE2B8,#FF8A4C 60%,rgba(255,138,76,0) 72%);box-shadow:0 0 70px 26px rgba(255,140,80,.5)}
.hw-view.night .hw-sun{width:36px;height:36px;background:radial-gradient(circle at 35% 35%,#FFFFFF,#DDE4F5 60%,rgba(221,228,245,0) 72%);box-shadow:0 0 40px 10px rgba(220,228,255,.25)}
.hw-stars{position:absolute;inset:0;opacity:0;transition:opacity 1.2s;background-image:radial-gradient(1.4px 1.4px at 20% 18%,#fff,transparent),radial-gradient(1px 1px at 70% 12%,#fff,transparent),radial-gradient(1.2px 1.2px at 40% 34%,#fff,transparent),radial-gradient(1px 1px at 82% 40%,#fff,transparent),radial-gradient(1.3px 1.3px at 12% 46%,#fff,transparent),radial-gradient(1px 1px at 58% 22%,#fff,transparent)}
.hw-view.night .hw-stars{opacity:1;animation:twinkle2 3s ease-in-out infinite alternate}
@keyframes twinkle2{to{opacity:.55}}
.hw-cl{position:absolute;left:100%;top:var(--t);width:calc(130px * var(--s));height:calc(38px * var(--s));border-radius:50px;background:#fff;opacity:.92;filter:blur(1px);box-shadow:calc(30px * var(--s)) calc(-14px * var(--s)) 0 calc(4px * var(--s)) #fff,calc(-26px * var(--s)) calc(-8px * var(--s)) 0 calc(2px * var(--s)) #fff;animation:hwcloud var(--d) linear infinite;animation-delay:calc(var(--o) * 1s)}
.hw-view.night .hw-cl{background:#5A6E9E;box-shadow:calc(30px * var(--s)) calc(-14px * var(--s)) 0 calc(4px * var(--s)) #5A6E9E,calc(-26px * var(--s)) calc(-8px * var(--s)) 0 calc(2px * var(--s)) #5A6E9E;opacity:.55}
.hw-view.sunset .hw-cl{background:#FFE3D2;box-shadow:calc(30px * var(--s)) calc(-14px * var(--s)) 0 calc(4px * var(--s)) #FFE3D2,calc(-26px * var(--s)) calc(-8px * var(--s)) 0 calc(2px * var(--s)) #FFE3D2}
@keyframes hwcloud{from{transform:translateX(0)}to{transform:translateX(calc(-100% - 560px))}}
.hw-floor{position:absolute;left:-10%;right:-10%;bottom:-8%;height:34%;background:radial-gradient(60% 70% at 20% 30%,#fff,transparent 70%),radial-gradient(50% 60% at 70% 20%,#fff,transparent 70%),radial-gradient(70% 80% at 50% 70%,#fff,transparent 70%);opacity:.95;transition:opacity 1.2s}
.hw-view.night .hw-floor{opacity:.18}
.hw-view.sunset .hw-floor{opacity:.75}
.hw-wing{position:absolute;left:-6%;bottom:6%;width:100%;height:46%;filter:drop-shadow(0 8px 10px rgba(13,26,79,.25))}
.hw-route{position:absolute;left:12%;right:12%;bottom:9%;display:flex;align-items:center;gap:8px;padding:9px 14px;border-radius:999px;background:rgba(13,26,79,.55);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);color:#fff;font-family:var(--f-mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;opacity:.75;transition:opacity .4s,transform .4s var(--ease)}
.hw-route b{font-weight:600;white-space:nowrap;max-width:9ch;overflow:hidden;text-overflow:ellipsis}
.hw-line{position:relative;flex:1;height:2px;background:repeating-linear-gradient(90deg,rgba(255,255,255,.35) 0 4px,transparent 4px 8px)}
.hw-line em{position:absolute;left:0;top:0;height:2px;width:0;background:var(--gold);transition:width 1.2s var(--ease)}
.hw-plane{position:absolute;top:50%;left:0;width:18px;height:18px;margin:-9px 0 0 -9px;color:var(--gold);transition:left 1.2s var(--ease)}
.hw-plane svg{width:100%;height:100%;transform:rotate(90deg)}
.hw-view.has-dest .hw-route{opacity:1;transform:translateY(-3px)}
.hw-view.has-dest .hw-line em{width:100%}
.hw-view.has-dest .hw-plane{left:100%}
.hw-msg{position:absolute;left:10%;right:10%;top:34%;display:grid;gap:4px;text-align:center;color:#fff;opacity:0;transform:translateY(10px);transition:opacity .6s,transform .6s var(--ease);text-shadow:0 2px 14px rgba(13,26,79,.5)}
.hw-msg small{font-family:var(--f-mono);font-size:11px;letter-spacing:.2em;text-transform:uppercase}
.hw-msg b{font-family:var(--f-serif);font-weight:400;font-size:clamp(26px,3vw,36px);line-height:1.1}
.hw-view.above .hw-msg{opacity:1;transform:none}
.hw-view.above .hw-wing{transform:translateY(8%)}
.hw-shade{position:absolute;inset:0;background:linear-gradient(180deg,#EEF2F7,#D6DEE8);transform:translateY(-94%);transition:transform .7s cubic-bezier(.6,0,.3,1);box-shadow:0 4px 10px rgba(13,26,79,.18);z-index:3}
.hw-shade i{position:absolute;left:50%;bottom:10px;width:46px;height:6px;margin-left:-23px;border-radius:6px;background:#B4C0CF}
.hw-view.shut .hw-shade{transform:translateY(0)}
/* trust strip */
.hw-trust{list-style:none;margin:clamp(28px,4vw,48px) 0 0;padding:14px 22px;display:flex;flex-wrap:wrap;justify-content:center;gap:8px 28px;border-radius:999px;background:color-mix(in srgb,var(--surface) 75%,transparent);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid color-mix(in srgb,var(--line) 70%,transparent);font-size:14.5px;color:var(--ink);position:relative;z-index:2}
.hw-trust li{display:flex;align-items:center;gap:8px}
.hw-trust li+li::before{content:"";width:5px;height:5px;border-radius:50%;background:var(--gold);margin-right:20px;margin-left:-8px}
.hw-trust b{color:var(--gold-text)}
@media (max-width:900px){
  .hw .hw-grid{grid-template-columns:1fr}
  .hw-window{order:-1;width:100%}
  .hw-frame{border-radius:90px;padding:12px;animation:none}
  .hw-frame::after{border-radius:84px;inset:5px}
  .hw-view{aspect-ratio:auto;height:190px;border-radius:80px}
  .hw-wing{height:70%;bottom:0;width:70%;left:-4%}
  .hw-route{bottom:14px;left:16%;right:16%;padding:7px 12px;font-size:10px}
  .hw-msg{top:24%}
  .hw-sun{top:16%;width:40px;height:40px}
}
@media (max-width:640px){
  .hw-h1{font-size:clamp(38px,11vw,52px)}
  .hw-sentence{font-size:22px;line-height:1.55}
  .hw-row{grid-template-columns:1fr}
  .hw-send{width:100%}
  .hw-trust{border-radius:20px;justify-content:flex-start;font-size:13px;gap:6px 16px;padding:12px 16px}
  .hw-trust li+li::before{margin-right:10px;margin-left:0}
  .hw-form{padding:16px;border-radius:22px}
}

/* =========================================================
   HOME — trip types (moving ribbon of chips)
   ========================================================= */
.ty{background:var(--surface);overflow:hidden}
.ty-head{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;flex-wrap:wrap}
.ty-marq{margin-top:clamp(26px,4vw,44px);display:grid;gap:14px;-webkit-mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent);mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent)}
.ty-row{overflow:hidden}
.ty-track{display:flex;gap:14px;width:max-content;animation:tyscroll 46s linear infinite}
.ty-row.rev .ty-track{animation-direction:reverse;animation-duration:52s}
.ty-marq:hover .ty-track,.ty-marq:focus-within .ty-track{animation-play-state:paused}
@keyframes tyscroll{to{transform:translateX(calc(-100% / 3))}}
.ty-chip{display:inline-flex;align-items:center;gap:14px;padding:14px 24px 14px 14px;border-radius:999px;border:1.5px solid var(--line);background:var(--bg);color:var(--ink);font:inherit;font-family:var(--f-display);font-weight:800;font-size:clamp(20px,2vw,26px);text-transform:uppercase;letter-spacing:.01em;white-space:nowrap;cursor:pointer;transition:transform .3s var(--ease),background .3s,color .3s,border-color .3s,box-shadow .3s}
.ty-chip svg{width:46px;height:46px;padding:11px;border-radius:50%;background:var(--surface);color:var(--brand);border:1px solid var(--line);transition:background .3s,color .3s}
.ty-chip:hover,.ty-chip:focus-visible,.ty-chip.on{background:var(--brand);color:#fff;border-color:var(--brand);transform:translateY(-4px);box-shadow:var(--shadow)}
.ty-chip:hover svg,.ty-chip:focus-visible svg,.ty-chip.on svg{background:var(--gold);color:var(--gold-ink);border-color:var(--gold)}
.ty-chip:focus-visible{outline:3px solid var(--gold);outline-offset:3px}
.ty-hint{margin-top:16px;font-family:var(--f-mono);font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);text-align:center}
@media (max-width:640px){.ty-chip{font-size:17px;padding:10px 18px 10px 10px;gap:10px}.ty-chip svg{width:38px;height:38px;padding:9px}.ty-cta{width:100%;justify-content:center}}

/* =========================================================
   HOME — essentials grid
   ========================================================= */
.ess{background:var(--bg)}
.ess-head{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;flex-wrap:wrap;margin-bottom:clamp(26px,4vw,44px)}
.ess-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:14px}
.ess-tile{position:relative;display:grid;gap:14px;align-content:space-between;min-height:168px;padding:20px;border-radius:24px;background:var(--surface);border:1px solid var(--line);text-decoration:none;color:var(--ink);overflow:hidden;transition:transform .35s var(--ease),box-shadow .35s,border-color .35s}
.ess-tile::before{content:"";position:absolute;right:-40px;top:-40px;width:120px;height:120px;border-radius:50%;background:radial-gradient(circle,color-mix(in srgb,var(--gold) 30%,transparent),transparent 70%);opacity:0;transition:opacity .4s,transform .5s var(--ease)}
.ess-ic{width:52px;height:52px;border-radius:16px;display:grid;place-items:center;background:linear-gradient(145deg,color-mix(in srgb,var(--brand) 14%,transparent),color-mix(in srgb,var(--teal) 14%,transparent));color:var(--brand);transition:background .35s,color .35s,transform .35s var(--ease)}
.ess-ic svg{width:26px;height:26px}
.ess-tile b{font-size:16.5px;line-height:1.3;position:relative}
.ess-go{position:absolute;right:16px;bottom:16px;color:var(--muted);opacity:0;transform:translateX(-6px);transition:opacity .3s,transform .3s var(--ease)}
.ess-go svg{width:18px;height:18px}
.ess-tile:hover{transform:translateY(-6px);box-shadow:var(--shadow-lg);border-color:var(--gold)}
.ess-tile:hover::before{opacity:1;transform:scale(1.4)}
.ess-tile:hover .ess-ic{background:var(--gold);color:var(--gold-ink);transform:rotate(-6deg) scale(1.06)}
.ess-tile:hover .ess-go{opacity:1;transform:none;color:var(--brand)}
@media (max-width:1000px){.ess-grid{grid-template-columns:repeat(3,1fr)}}
@media (max-width:640px){.ess-grid{grid-template-columns:1fr 1fr;gap:10px}.ess-tile{min-height:132px;padding:16px;border-radius:20px}.ess-ic{width:44px;height:44px}.ess-tile b{font-size:15px}.ess-head .btn{width:100%;justify-content:center}}
@media (prefers-reduced-motion:reduce){.hw-frame{animation:none}.hw-cl{animation-duration:200s}.ty-track{animation:none}.ty-row{overflow-x:auto}}
.hw-dest input::-webkit-calendar-picker-indicator{display:none!important;opacity:0}

/* =========================================================
   HOME — passport hero (fills itself as the form is filled)
   ========================================================= */
.pp{justify-self:center;width:min(560px,100%);display:grid;gap:14px;justify-items:center}
.pp-book{position:relative;width:100%;aspect-ratio:1.44;perspective:1800px;transform:translateX(-25%);transition:transform 1.4s cubic-bezier(.6,.05,.25,1)}
.pp.open .pp-book{transform:none}
.pp-book.jolt{animation:ppjolt .35s ease-out}
@keyframes ppjolt{30%{transform:translate(2px,3px) rotate(.4deg)}60%{transform:translate(-2px,-1px) rotate(-.3deg)}}
.pp-page{position:absolute;top:0;width:50%;height:100%;padding:16px 18px;background:
  radial-gradient(circle at 30% 20%,rgba(30,58,158,.06) 0 1px,transparent 1.5px) 0 0/14px 14px,
  repeating-radial-gradient(circle at 70% 60%,transparent 0 10px,rgba(47,111,126,.07) 10px 11px),
  linear-gradient(160deg,#FFFDF6,#F3EDDC);color:#1B2433;overflow:hidden}
.pp-right{left:50%;border-radius:4px 16px 16px 4px;box-shadow:0 30px 60px -28px rgba(13,26,79,.55),inset 10px 0 18px -10px rgba(13,26,79,.25)}
.pp-left{border-radius:16px 4px 4px 16px;box-shadow:inset -10px 0 18px -10px rgba(13,26,79,.25)}
.pp-head{display:flex;justify-content:space-between;font-family:var(--f-mono);font-size:9px;letter-spacing:.16em;text-transform:uppercase;color:#7A6A3E;border-bottom:1px dashed #D9CDAE;padding-bottom:7px}
.pp-cover{position:absolute;left:50%;top:0;width:50%;height:100%;transform-origin:left center;transform-style:preserve-3d;transition:transform 1.4s cubic-bezier(.6,.05,.25,1);z-index:2}
.pp.open .pp-cover{transform:rotateY(-180deg)}
.pp-front,.pp-back{position:absolute;inset:0;backface-visibility:hidden;-webkit-backface-visibility:hidden}
.pp-back{transform:rotateY(180deg);left:0;width:100%}
.pp-front{border-radius:4px 16px 16px 4px;background:radial-gradient(120% 90% at 30% 20%,#25409E,#13246E 65%,#0D1A4F);color:#E9C46A;display:grid;place-items:center;align-content:center;gap:6px;text-align:center;box-shadow:0 30px 60px -24px rgba(13,26,79,.6),inset 8px 0 14px -8px rgba(0,0,0,.4);font-family:var(--f-display);text-transform:uppercase}
.pp-front::before{content:"";position:absolute;inset:10px;border:1px solid rgba(233,196,106,.35);border-radius:3px 12px 12px 3px}
.pp-emblem{width:30%;color:#E9C46A}
.pp-front b{font-weight:800;font-size:clamp(18px,2.2vw,26px);letter-spacing:.24em}
.pp-front small{font-family:var(--f-mono);font-size:10px;letter-spacing:.24em;opacity:.85}
.pp-chip{position:absolute;bottom:16px;left:50%;width:30px;height:20px;margin-left:-15px;border:1.5px solid rgba(233,196,106,.7);border-radius:4px}
.pp-id{display:grid;grid-template-columns:34% 1fr;gap:12px;margin-top:12px}
.pp-photo{aspect-ratio:4/5;border-radius:6px;background:linear-gradient(160deg,#C3E2EF,#86BDE4);display:grid;place-items:end center;overflow:hidden;box-shadow:inset 0 0 0 2px rgba(255,255,255,.6)}
.pp-photo svg{width:80%;fill:#1E3A9E;opacity:.75}
.pp-id dl{margin:0;display:grid;gap:7px;min-width:0}
.pp-id dt{font-family:var(--f-mono);font-size:8px;letter-spacing:.16em;text-transform:uppercase;color:#7A6A3E}
.pp-id dd{margin:0;font-family:var(--f-display);font-weight:800;font-size:clamp(13px,1.35vw,17px);text-transform:uppercase;line-height:1.05;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:color .3s}
.pp-id dd.flash{animation:ppflash .8s ease-out}
@keyframes ppflash{0%{color:var(--gold-text);transform:translateX(3px)}100%{color:inherit}}
.pp-mrz{position:absolute;left:18px;right:18px;bottom:14px;margin:0;font-family:var(--f-mono);font-size:clamp(8px,.85vw,10.5px);letter-spacing:.1em;color:#3B4650;white-space:nowrap;overflow:hidden;border-top:1px dashed #D9CDAE;padding-top:7px}
.pp-num{position:absolute;right:16px;bottom:12px;font-family:var(--f-mono);font-size:9px;letter-spacing:.14em;color:#B3A57C}
/* stamps */
.pp-stamp{--c:#C2304F;--r:-12deg;position:absolute;display:grid;place-items:center;align-content:center;text-align:center;color:var(--c);border:2.5px solid var(--c);font-family:var(--f-display);text-transform:uppercase;line-height:1;opacity:0;transform:scale(2.4) rotate(var(--r));pointer-events:none;mix-blend-mode:multiply}
.pp-stamp::before{content:"";position:absolute;inset:4px;border:1.2px dashed var(--c);border-radius:inherit;opacity:.8}
.pp-stamp small{font-family:var(--f-mono);font-size:7.5px;letter-spacing:.16em}
.pp-stamp b{font-weight:900}
.pp-stamp.on{animation:ppslam .45s cubic-bezier(.3,1.6,.5,1) forwards}
@keyframes ppslam{0%{opacity:0;transform:scale(2.4) rotate(var(--r))}60%{opacity:.95}100%{opacity:.9;transform:scale(1) rotate(var(--r))}}
.st-dest{--c:#C2304F;--r:-14deg;left:9%;top:16%;width:42%;aspect-ratio:1;border-radius:50%;gap:3px}
.st-dest b{font-size:clamp(14px,1.9vw,24px);max-width:86%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.st-who{--c:#1E3A9E;--r:8deg;right:7%;top:20%;padding:8px 10px;border-radius:6px;gap:4px;max-width:44%}
.st-who b{font-size:clamp(12px,1.4vw,17px)}
.st-when{--c:#2E7D4F;--r:-6deg;left:12%;bottom:13%;padding:8px 14px;border-radius:50%/42%;gap:3px}
.st-when b{font-size:clamp(11px,1.25vw,15px)}
.st-type{--c:#6B2A5E;--r:12deg;right:9%;bottom:18%;padding:7px 10px;border-radius:4px;gap:3px;max-width:42%}
.st-type b{font-size:clamp(11px,1.2vw,14px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.st-ok{--c:#2E7D4F;--r:-18deg;left:50%;top:50%;margin:-38px 0 0 -38%;width:76%;height:76px;border-width:4px;border-radius:10px;gap:4px;background:rgba(46,125,79,.06)}
.st-ok::before{border-width:1.5px}
.st-ok b{font-size:clamp(26px,3.4vw,40px);letter-spacing:.06em}
.st-ok small{font-size:8px}
.pp-ghost{position:absolute;left:9%;top:16%;width:42%;aspect-ratio:1;border-radius:50%;border:2px dashed rgba(122,106,62,.45);display:grid;place-items:center;align-content:center;gap:4px;color:rgba(122,106,62,.6);font-family:var(--f-display);text-transform:uppercase;transform:rotate(-14deg);animation:ppghost 2.2s ease-in-out infinite;transition:opacity .3s}
.pp-ghost b{font-weight:800;font-size:clamp(14px,1.8vw,22px)}
.pp-ghost small{font-family:var(--f-mono);font-size:7px;letter-spacing:.14em}
@keyframes ppghost{50%{transform:rotate(-14deg) scale(1.05);opacity:.7}}
.pp.has-dest .pp-ghost{opacity:0;animation:none}
.pp-cap{margin:0;font-family:var(--f-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink);opacity:.65;text-align:center}
@media (max-width:900px){.pp{order:-1;width:min(460px,100%)}.pp-cap{display:none}}
@media (max-width:640px){.pp-page{padding:10px 11px}.pp-id{gap:8px;margin-top:8px}.pp-id dl{gap:4px}.pp-mrz{left:11px;right:11px;bottom:9px}.pp-stamp small{font-size:6px}.st-ok{height:58px;margin-top:-29px}}
@media (prefers-reduced-motion:reduce){.pp-book,.pp-cover{transition:none}.pp-ghost{animation:none}}
/* passport polish */
.hw .hw-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.pp{width:min(620px,100%)}
.pp-head{gap:8px}
.pp-head span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.st-ok{width:64%;margin:-36px 0 0 -32%;height:72px}
.st-who{top:47%;right:6%}
.st-type{top:13%;bottom:auto;right:7%}
.st-when{bottom:11%}
@media (max-width:900px){.hw .hw-grid{grid-template-columns:1fr}.pp{width:min(480px,100%)}}
@media (max-width:640px){.st-ok{height:52px;margin-top:-26px}}
.st-ok{width:58%;margin:-32px 0 0 -29%;height:64px}
.st-ok b{font-size:clamp(20px,2.6vw,32px)}
.hw-row{grid-template-columns:1fr 1fr}
.hw-row .hw-send{grid-column:1 / -1;width:100%}
@media (max-width:640px){.hw-row{grid-template-columns:1fr}}

/* ---------- Home: destination picker ---------- */
.hw-pick{font:inherit;font-family:var(--f-body);font-weight:700;font-size:.78em;color:var(--brand);background:transparent;border:0;border-bottom:2.5px dashed color-mix(in srgb,var(--brand) 45%,transparent);padding:2px 22px 3px 4px;cursor:pointer;position:relative;max-width:16ch;text-align:left}
.hw-pick::after{content:"";position:absolute;right:5px;top:50%;width:7px;height:7px;margin-top:-6px;border-right:2px solid var(--brand);border-bottom:2px solid var(--brand);transform:rotate(45deg)}
.hw-pick-t{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hw-pick-t.is-ph{color:color-mix(in srgb,var(--brand) 42%,transparent);font-style:italic}
.hw-pick:hover,.hw-pick[aria-expanded="true"]{border-bottom-style:solid;border-color:var(--gold);background:color-mix(in srgb,var(--gold) 10%,transparent)}
.hw-pick:focus-visible{outline:3px solid var(--gold);outline-offset:2px}
.hw-form{position:relative}
.dp{position:absolute;left:12px;right:12px;top:calc(100% - 140px);z-index:30}
.dp-sheet{background:var(--surface);border:1px solid var(--line);border-radius:22px;box-shadow:0 30px 70px -20px rgba(13,26,79,.45);padding:16px 18px 18px;display:grid;gap:10px;animation:dpin .28s var(--ease)}
@keyframes dpin{from{opacity:0;transform:translateY(-8px) scale(.98)}}
.dp-top{display:flex;justify-content:space-between;align-items:center;font-size:16px}
.dp-x{width:32px;height:32px;border-radius:50%;border:1px solid var(--line);background:var(--bg);font-size:18px;cursor:pointer;color:var(--ink)}
.dp-g{margin:4px 0 0;font-family:var(--f-mono);font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--teal)}
.dp-chips{display:flex;flex-wrap:wrap;gap:7px}
.dp-chip{font:inherit;font-size:14.5px;font-weight:600;padding:8px 14px;border-radius:999px;border:1.5px solid var(--line);background:var(--bg);color:var(--ink);cursor:pointer;transition:background .2s,color .2s,border-color .2s,transform .2s}
.dp-chip:hover,.dp-chip.on{background:var(--brand);color:#fff;border-color:var(--brand);transform:translateY(-2px)}
.dp-type{display:flex;gap:8px;margin-top:4px}
.dp-type input{flex:1;min-width:0;font:inherit;font-size:15px;padding:11px 14px;border-radius:12px;border:1.5px solid var(--line);background:var(--bg);color:var(--ink)}
.dp-type input:focus{outline:none;border-color:var(--brand)}
.dp-unsure{font:inherit;font-size:14.5px;font-weight:700;padding:11px 14px;border-radius:12px;border:1.5px dashed var(--gold);background:color-mix(in srgb,var(--gold) 12%,transparent);color:var(--ink);cursor:pointer;text-align:left}
.dp-unsure:hover{background:color-mix(in srgb,var(--gold) 24%,transparent)}
.dp-scrim{display:none}
@media (max-width:640px){
  .dp{position:fixed;left:0;right:0;top:auto;bottom:0;z-index:300}
  .dp::before{content:"";position:fixed;inset:0;background:rgba(7,13,38,.45);z-index:-1;animation:fadein .25s}
  .dp-sheet{border-radius:24px 24px 0 0;padding:18px 18px calc(22px + env(safe-area-inset-bottom,0px));max-height:80vh;overflow:auto;animation:dpup .32s var(--ease)}
  .dp-chip{font-size:15px;padding:10px 15px}
}
@keyframes dpup{from{transform:translateY(100%)}}
@keyframes fadein{from{opacity:0}}

/* ---------- Home: suitcase sticker board ---------- */
.ty-grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(28px,5vw,64px);align-items:center}
.ty-copy{display:grid;gap:18px;align-content:start}
.ty-copy .ty-cta{justify-self:start}
.ty-hint{margin:0;font-family:var(--f-mono);font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);text-align:left}
.case{position:relative;width:100%;aspect-ratio:1.4;margin-top:24px}
.case-body{position:absolute;inset:8% 2% 2%;border-radius:34px;background:linear-gradient(160deg,#2F6F7E,#1F4F5C);box-shadow:0 40px 70px -30px rgba(13,26,79,.55),inset 0 3px 0 rgba(255,255,255,.18),inset 0 -10px 20px rgba(0,0,0,.25)}
.case-body::before{content:"";position:absolute;inset:14px;border-radius:24px;border:2px dashed rgba(255,255,255,.18)}
.case-handle{position:absolute;left:50%;top:-11%;width:26%;height:14%;margin-left:-13%;border:9px solid #1F4F5C;border-bottom:0;border-radius:22px 22px 0 0}
.case-strap{position:absolute;top:0;bottom:0;width:7%;background:linear-gradient(90deg,#7A4A2A,#8F5A35 50%,#7A4A2A);box-shadow:inset 0 0 0 2px rgba(0,0,0,.12)}
.case-strap::after{content:"";position:absolute;left:12%;right:12%;top:46%;height:9%;border:3px solid #D9B26A;border-radius:4px}
.case-strap.s1{left:24%}.case-strap.s2{right:24%}
.case-corner{position:absolute;width:44px;height:44px;border:5px solid #D9B26A;opacity:.9}
.case-corner.c1{left:-2px;top:-2px;border-right:0;border-bottom:0;border-radius:34px 0 0 0}
.case-corner.c2{right:-2px;top:-2px;border-left:0;border-bottom:0;border-radius:0 34px 0 0}
.case-corner.c3{left:-2px;bottom:-2px;border-right:0;border-top:0;border-radius:0 0 0 34px}
.case-corner.c4{right:-2px;bottom:-2px;border-left:0;border-top:0;border-radius:0 0 34px 0}
.stk{--c:#F2B33D;position:absolute;left:var(--x);top:var(--y);transform:translate(-50%,-50%) rotate(var(--r));font:inherit;border:0;padding:0;background:none;cursor:pointer;z-index:1;transition:transform .35s cubic-bezier(.3,1.5,.5,1),filter .3s;filter:drop-shadow(0 6px 8px rgba(0,0,0,.28))}
.stk-in{display:grid;justify-items:center;gap:5px;padding:12px 14px;max-width:150px;background:var(--c);color:#fff;border:3px solid #fff;font-family:var(--f-display);font-weight:800;font-size:clamp(12px,1.15vw,15px);text-transform:uppercase;line-height:1.05;text-align:center}
.stk-in svg{width:24px;height:24px}
.stk-circle .stk-in{border-radius:50%;width:116px;height:116px;align-content:center;padding:12px}
.stk-rect .stk-in{border-radius:12px}
.stk-pill .stk-in{border-radius:999px;padding:10px 18px;grid-auto-flow:column;align-items:center;max-width:none;white-space:nowrap}
.stk-oval .stk-in{border-radius:50%/44%;padding:16px 22px}
.stk-badge .stk-in{border-radius:28% 72% 30% 70%/60% 30% 70% 40%;padding:16px 16px}
.stk-heart .stk-in{border-radius:50% 50% 14px 50%;padding:16px 16px}
.stk:hover,.stk:focus-visible{transform:translate(-50%,-58%) rotate(0deg) scale(1.08);z-index:3;filter:drop-shadow(0 14px 16px rgba(0,0,0,.35))}
.stk:focus-visible{outline:none}
.stk:focus-visible .stk-in{outline:3px solid var(--gold);outline-offset:3px}
.stk-ok{position:absolute;right:-6px;top:-6px;width:26px;height:26px;border-radius:50%;background:var(--gold);color:var(--gold-ink);display:grid;place-items:center;border:2px solid #fff;transform:scale(0);transition:transform .3s cubic-bezier(.3,1.6,.5,1)}
.stk-ok svg{width:14px;height:14px}
.stk.on{transform:translate(-50%,-50%) rotate(0deg) scale(1.1);z-index:4}
.stk.on .stk-ok{transform:scale(1)}
.stk.on .stk-in{box-shadow:0 0 0 4px var(--gold)}
.stk.peel{animation:stkpeel .55s ease-in-out}
@keyframes stkpeel{0%{transform:translate(-50%,-50%) rotate(var(--r))}40%{transform:translate(-50%,-62%) rotate(calc(var(--r) - 14deg)) scale(1.12)}100%{transform:translate(-50%,-50%) rotate(0) scale(1.1)}}
.case.in .stk{animation:stkdrop .6s cubic-bezier(.3,1.5,.5,1) both;animation-delay:calc(var(--i) * .07s)}
@keyframes stkdrop{from{opacity:0;transform:translate(-50%,-80%) rotate(calc(var(--r) - 20deg)) scale(1.3)}}
.ty-chip.on svg{background:none;border:0}
@media (max-width:1000px){.stk-circle .stk-in{width:100px;height:100px}.stk-in{max-width:128px;font-size:12px}}
@media (max-width:900px){
  .ty-grid{grid-template-columns:1fr}
  .case{aspect-ratio:auto;margin-top:0;display:grid;grid-template-columns:1fr 1fr;gap:12px}
  .case-body{display:none}
  .stk{position:relative;left:auto;top:auto;transform:rotate(calc(var(--r) * .4));justify-self:stretch}
  .stk-in,.stk-circle .stk-in,.stk-pill .stk-in,.stk-oval .stk-in,.stk-badge .stk-in,.stk-heart .stk-in{width:100%;height:auto;max-width:none;border-radius:16px;padding:12px;grid-auto-flow:row;white-space:normal;min-height:84px;align-content:center}
  .stk:hover,.stk:focus-visible,.stk.on{transform:rotate(0) scale(1.03)}
  .case.in .stk{animation:none}
  .stk.peel{animation:none}
  .ty-copy .ty-cta{justify-self:stretch;justify-content:center}
}
.dp{top:120px}@media (max-width:640px){.dp{top:auto!important}}
.stk-in svg{padding:0;background:none;border:0;border-radius:0;color:#fff;width:24px;height:24px}
.stk-in > span{display:block}
.stk-circle .stk-in{font-size:clamp(11px,1vw,13px)}
.stk-heart .stk-in,.stk-badge .stk-in{max-width:138px}
@media (max-width:640px){.dp{z-index:400}body.dp-open{overflow:hidden}body.dp-open .fab{display:none}}
/* picker: two dropdowns */
.dp-two{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.dp-sel{display:grid;gap:7px;padding:12px;border-radius:16px;border:1.5px solid var(--line);background:var(--bg);cursor:pointer;transition:border-color .2s}
.dp-sel:focus-within{border-color:var(--brand)}
.dp-sel .dp-g{margin:0;display:flex;align-items:center;gap:6px}
.dp-sel .dp-g i{font-style:normal;font-size:15px;letter-spacing:0}
.dp-sel select{font:inherit;font-size:15px;font-weight:600;color:var(--ink);padding:10px 34px 10px 12px;border-radius:10px;border:1px solid var(--line);background:var(--surface);appearance:none;-webkit-appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--brand) 50%),linear-gradient(135deg,var(--brand) 50%,transparent 50%);background-size:6px 6px;background-position:calc(100% - 16px) 52%,calc(100% - 10px) 52%;background-repeat:no-repeat;width:100%;cursor:pointer}
.dp-sel select:focus{outline:none;border-color:var(--brand)}
@media (max-width:480px){.dp-two{grid-template-columns:1fr}}

/* =========================================================
   BLOG ARTICLE
   ========================================================= */
.ar-hgrid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:clamp(24px,5vw,64px);align-items:center}
.ar-hgrid .copy{display:grid;gap:16px}
.ar-cat{display:flex;flex-wrap:wrap;gap:8px;margin:0}
.ar-cat span{font-family:var(--f-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;padding:6px 12px;border-radius:999px;background:color-mix(in srgb,var(--surface) 75%,transparent);color:var(--ink)}
.ar-cat span:first-child{background:var(--gold);color:var(--gold-ink);font-weight:600}
.ar-h1{font-family:var(--f-display);font-weight:900;font-size:clamp(40px,5.6vw,80px);text-transform:uppercase;line-height:.9;color:var(--ink)}
.ar-h1 em{display:block;font-family:var(--f-serif);font-weight:400;text-transform:none;font-size:.78em;line-height:1.02;color:var(--brand);margin-top:.12em}
/* cover art */
.ar-cover{position:relative;aspect-ratio:4/3;border-radius:26px;overflow:hidden;box-shadow:var(--shadow-lg);transform:rotate(2deg);border:8px solid #FFFDF6;background:#F7B58A}
.ar-scene{position:absolute;inset:0;width:100%;height:100%}
.ar-sun{animation:arsun 6s ease-in-out infinite}
@keyframes arsun{50%{transform:translateY(-6px)}}
.ar-path{stroke-dashoffset:0;animation:arpath 6s linear infinite}
@keyframes arpath{to{stroke-dashoffset:-130}}
.ar-pin{animation:arpin 2.4s ease-in-out infinite}
@keyframes arpin{50%{transform:translate(370px,140px)}}
.ar-cover-t{position:absolute;left:22px;top:20px;right:22px;display:grid;gap:6px;color:#3E2F6B}
.ar-cover-t small{justify-self:start;font-family:var(--f-mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;background:#3E2F6B;color:#FFE7A8;padding:5px 10px;border-radius:999px}
.ar-cover-t b{font-family:var(--f-display);font-weight:900;font-size:clamp(26px,3vw,38px);text-transform:uppercase;line-height:.95}
.ar-cover-t em{font-family:var(--f-serif);font-weight:400;text-transform:none;color:#8E2F55}
.ar-cover-sm{transform:none;border:0;border-radius:0;aspect-ratio:auto;width:100%;height:100%;box-shadow:none}
.ar-cover-sm .ar-cover-t b{font-size:clamp(20px,2.2vw,26px)}
/* layout */
.ar-wrap{padding-top:clamp(36px,5vw,64px)}
.ar-grid{display:grid;grid-template-columns:250px minmax(0,700px);gap:clamp(28px,5vw,72px);justify-content:center;align-items:start}
.ar-toc{position:sticky;top:96px;display:grid;gap:18px}
.ar-toc details{border:1px solid var(--line);border-radius:20px;background:var(--surface);padding:16px}
.ar-toc summary{font-family:var(--f-mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--teal);cursor:pointer;list-style:none}
.ar-toc summary::-webkit-details-marker{display:none}
.ar-toc ol{list-style:none;margin:12px 0 0;padding:0;display:grid;gap:2px}
.ar-toc button{display:grid;grid-template-columns:26px 1fr;gap:8px;width:100%;text-align:left;font:inherit;font-size:14px;line-height:1.35;color:var(--muted);background:none;border:0;padding:7px 8px;border-radius:10px;cursor:pointer;transition:background .2s,color .2s}
.ar-toc button span{font-family:var(--f-mono);font-size:11px;color:var(--teal);padding-top:2px}
.ar-toc button:hover{background:var(--bg);color:var(--ink)}
.ar-toc button.on{background:color-mix(in srgb,var(--gold) 20%,transparent);color:var(--ink);font-weight:600}
.ar-share{display:flex;align-items:center;gap:8px;font-family:var(--f-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.ar-share a,.ar-share button{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;border:1px solid var(--line);background:var(--surface);color:var(--ink);cursor:pointer}
.ar-share a{background:#25D366;border-color:#25D366;color:#06210F}
.ar-share svg{width:17px;height:17px}
/* article typography */
.ar{font-size:clamp(17px,1.4vw,19px);line-height:1.75;color:color-mix(in srgb,var(--ink) 88%,var(--muted))}
.ar p{margin:0 0 1.1em}
.ar a:not(.btn){color:var(--brand);font-weight:600;text-decoration-thickness:1.5px;text-underline-offset:3px}
.ar-lead{font-family:var(--f-serif);font-size:clamp(26px,2.6vw,34px);line-height:1.3;color:var(--ink)}
.ar-lead::first-letter{float:left;font-family:var(--f-display);font-weight:900;font-size:3.1em;line-height:.82;margin:.06em .1em 0 0;color:var(--gold-text)}
.ar-turn{margin:1.6em 0;padding:22px 24px;border-left:4px solid var(--gold);background:color-mix(in srgb,var(--gold) 9%,transparent);border-radius:0 18px 18px 0}
.ar-turn p{margin:0;font-family:var(--f-display);font-weight:800;font-size:clamp(22px,2.4vw,30px);text-transform:uppercase;line-height:1.05;color:var(--ink)}
.ar-turn em{font-family:var(--f-serif);font-weight:400;text-transform:none;color:var(--brand)}
.ar-pull{margin:1.8em 0;padding:0 0 0 28px;position:relative;font-family:var(--f-serif);font-size:clamp(26px,2.8vw,36px);line-height:1.2;color:var(--brand)}
.ar-pull::before{content:"“";position:absolute;left:-10px;top:-28px;font-size:96px;color:var(--gold);line-height:1}
.ar-big{font-family:var(--f-display);font-weight:800;font-size:clamp(24px,2.4vw,30px)!important;text-transform:uppercase;line-height:1.05;color:var(--ink)}
.ar-note{padding:16px 20px;border-radius:16px;background:var(--surface);border:1px dashed var(--line)}
.ar-note b{color:var(--ink)}
/* steps */
.ar-step{padding-top:clamp(40px,6vw,72px);scroll-margin-top:90px}
.ar-sh{display:flex;align-items:center;gap:18px;margin-bottom:22px}
.ar-num{flex:none;width:72px;height:72px;border-radius:22px;display:grid;place-items:center;font-family:var(--f-display);font-weight:900;font-size:34px;color:var(--gold-ink);background:var(--gold);transform:rotate(-5deg);box-shadow:0 12px 24px -10px rgba(242,179,61,.8)}
.ar-step:nth-of-type(even) .ar-num{background:var(--brand);color:#fff;transform:rotate(4deg);box-shadow:0 12px 24px -10px rgba(30,58,158,.6)}
.ar-sh small{font-family:var(--f-mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--teal)}
.ar-sh h2{font-family:var(--f-display);font-weight:900;font-size:clamp(28px,3vw,40px);text-transform:uppercase;line-height:1;color:var(--ink)}
.ar-stag > *{opacity:0;transform:translateY(14px);transition:opacity .5s var(--ease),transform .5s var(--ease);transition-delay:calc(var(--i) * .1s)}
.ar-stag.in > *{opacity:1;transform:none}
/* step 1: question bubbles */
.ar-qs{list-style:none;margin:0 0 1.2em;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:10px}
.ar-qs li{position:relative;padding:14px 16px;border-radius:18px 18px 18px 4px;background:var(--surface);border:1px solid var(--line);font-weight:600;font-size:16px;line-height:1.4;color:var(--ink);box-shadow:var(--shadow)}
.ar-qs li:nth-child(even){border-radius:18px 18px 4px 18px;background:color-mix(in srgb,var(--brand) 8%,var(--surface))}
.ar-qs li:last-child{grid-column:1/-1}
/* step 2: fit cards */
.ar-fits{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:0 0 1.2em}
.ar-fit{display:grid;gap:10px;padding:18px;border-radius:20px;background:var(--surface);border:1px solid var(--line);transition:transform .3s var(--ease)}
.ar-fit:hover{transform:translateY(-4px)}
.ar-fit svg{width:42px;height:42px;padding:9px;border-radius:13px;background:color-mix(in srgb,var(--teal) 14%,transparent);color:var(--teal)}
.ar-fit p{margin:0;font-size:16px;line-height:1.5}
/* step 3: overpacked day */
.ar-packed{margin:0 0 1.2em;padding:18px 20px;border-radius:20px;background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);transform:rotate(-1deg)}
.ar-pk-top{display:flex;justify-content:space-between;font-family:var(--f-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:10px}
.ar-pk-warn{color:#C2304F;font-weight:600}
.ar-x{position:relative;margin:0 0 6px!important;font-family:var(--f-display);font-weight:800;font-size:clamp(20px,2vw,26px);text-transform:uppercase;line-height:1.15;color:var(--ink);width:fit-content}
.ar-x::after{content:"";position:absolute;left:-2px;right:-2px;top:52%;height:3px;border-radius:3px;background:#C2304F;transform:scaleX(0);transform-origin:left;transition:transform .7s var(--ease)}
.ar-packed.in .ar-x::after{transform:scaleX(1);transition-delay:.6s}
.ar-packed.in .ar-x:nth-child(3)::after{transition-delay:1.1s}
/* step 4: tags */
.ar-tags{list-style:none;margin:0 0 1.2em;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.ar-tags li{padding:9px 16px;border-radius:999px;border:1.5px solid var(--line);background:var(--surface);font-family:var(--f-display);font-weight:800;font-size:18px;text-transform:uppercase;color:var(--ink)}
.ar-tags li:nth-child(3n+1){border-color:var(--gold);background:color-mix(in srgb,var(--gold) 14%,var(--surface))}
/* step 5: pace slider */
.ar-pace{display:flex;align-items:center;gap:14px;margin:0 0 1.4em;padding:18px 20px;border-radius:20px;background:var(--surface);border:1px solid var(--line);font-family:var(--f-mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.ar-track{position:relative;flex:1;height:6px;border-radius:6px;background:linear-gradient(90deg,var(--teal),var(--gold),#E4572E)}
.ar-knob{position:absolute;top:50%;left:20%;width:24px;height:24px;margin:-12px 0 0 -12px;border-radius:50%;background:var(--surface);border:3px solid var(--ink);box-shadow:var(--shadow)}
.ar-pace.in .ar-knob{animation:arknob 5s ease-in-out infinite}
@keyframes arknob{0%,100%{left:18%}50%{left:82%}}
/* step 6: polaroids */
.ar-polas{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin:0 0 1.4em}
.ar-pola{margin:0;padding:10px 10px 12px;background:#fff;border-radius:6px;box-shadow:var(--shadow);transform:rotate(var(--r));display:grid;gap:8px;transition:transform .3s var(--ease)}
.ar-pola:hover{transform:rotate(0) translateY(-6px) scale(1.04);z-index:2}
.ar-pola > span{aspect-ratio:1;border-radius:4px;display:grid;place-items:center;background:linear-gradient(150deg,#C3E2EF,#86BDE4);color:#1E3A9E}
.ar-pola:nth-child(2) > span{background:linear-gradient(150deg,#FFE0B8,#F7B58A);color:#8E2F55}
.ar-pola:nth-child(3) > span{background:linear-gradient(150deg,#D7F0DA,#9FD3A8);color:#2E6B3F}
.ar-pola:nth-child(4) > span{background:linear-gradient(150deg,#FFE8A8,#F2B33D);color:#6B4A00}
.ar-pola:nth-child(5) > span{background:linear-gradient(150deg,#E6DAF2,#B9A3D9);color:#4E2F7A}
.ar-pola svg{width:40%;height:40%}
.ar-pola figcaption{font-family:var(--f-serif);font-style:italic;font-size:14.5px;line-height:1.3;color:#1B2433}
/* step 7: checklist */
.ar-checks{list-style:none;margin:0 0 1.2em;padding:6px 20px;border-radius:20px;background:var(--surface);border:1px solid var(--line)}
.ar-checks li{display:flex;align-items:center;gap:12px;padding:11px 0;border-bottom:1px dashed var(--line);font-size:16.5px;color:var(--ink)}
.ar-checks li:last-child{border-bottom:0}
.ar-checks i{flex:none;width:26px;height:26px;border-radius:8px;display:grid;place-items:center;border:2px solid var(--line);color:transparent;transition:background .3s,border-color .3s,color .3s;transition-delay:calc(var(--i) * .2s + .4s)}
.ar-checks i svg{width:15px;height:15px}
.ar-checks.in i{background:var(--ok);border-color:var(--ok);color:#fff}
/* step 8: chain */
.ar-chain{list-style:none;margin:0 0 1.2em;padding:0;display:grid;gap:0;position:relative}
.ar-chain::before{content:"";position:absolute;left:26px;top:26px;bottom:26px;width:2px;background:repeating-linear-gradient(var(--gold) 0 6px,transparent 6px 12px)}
.ar-chain li{position:relative;display:flex;align-items:center;gap:16px;padding:8px 0}
.ar-chain li > span{flex:none;width:54px;height:54px;border-radius:50%;display:grid;place-items:center;background:var(--surface);border:2px solid var(--gold);color:var(--brand);z-index:1}
.ar-chain li > span svg{width:24px;height:24px}
.ar-chain p{margin:0!important;font-weight:600;color:var(--ink)}
/* final */
.ar-final{margin-top:clamp(48px,7vw,80px);padding:clamp(24px,4vw,40px);border-radius:28px;background:var(--band);color:var(--band-ink);scroll-margin-top:90px}
.ar-final h2{font-family:var(--f-display);font-weight:900;font-size:clamp(30px,3.6vw,46px);text-transform:uppercase;line-height:.98;margin-bottom:16px}
.ar-final h2 em{display:block;font-family:var(--f-serif);font-weight:400;text-transform:none;color:var(--gold)}
.ar-final p{color:var(--band-muted)}
.ar-self{list-style:none;margin:0 0 1.2em;padding:0;display:grid;gap:8px}
.ar-self label{display:flex;align-items:center;gap:12px;padding:13px 16px;border-radius:14px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.12);cursor:pointer;font-size:16.5px;color:var(--band-ink);transition:background .25s,border-color .25s}
.ar-self input{position:absolute;opacity:0;pointer-events:none}
.ar-box{flex:none;width:26px;height:26px;border-radius:8px;border:2px solid rgba(255,255,255,.4);display:grid;place-items:center;color:transparent;transition:all .25s}
.ar-box svg{width:15px;height:15px}
.ar-self input:checked + .ar-box{background:var(--gold);border-color:var(--gold);color:var(--gold-ink);transform:scale(1.1)}
.ar-self label:has(input:checked){background:rgba(242,179,61,.14);border-color:rgba(242,179,61,.5)}
.ar-self input:focus-visible + .ar-box{outline:3px solid var(--gold);outline-offset:2px}
.ar-ask{font-family:var(--f-serif);font-size:clamp(28px,3vw,40px)!important;line-height:1.15;color:#fff!important}
.ar-final .ar-note{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.2)}
.ar-final .ar-note b{color:var(--gold)}
.ar-cta{margin-top:24px;display:grid;gap:16px;padding:clamp(22px,3.6vw,34px);border-radius:28px;background:linear-gradient(140deg,color-mix(in srgb,var(--gold) 26%,var(--surface)),var(--surface));border:1px solid var(--line);box-shadow:var(--shadow)}
.ar-cta h3{font-family:var(--f-display);font-weight:900;font-size:clamp(28px,3vw,40px);text-transform:uppercase;line-height:1}
.ar-cta p{margin:0 0 4px}
.ar-back{display:inline-block;margin-top:26px;font-weight:600}
@media (max-width:980px){
  .ar-hgrid{grid-template-columns:1fr}
  .ar-cover{max-width:520px}
  .ar-grid{grid-template-columns:1fr}
  .ar-toc{position:static}
  .ar-toc details:not([open]) ol{display:none}
  .ar-polas{grid-template-columns:repeat(3,1fr)}
}
@media (max-width:640px){
  .ar-qs,.ar-fits{grid-template-columns:1fr}
  .ar-polas{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;margin-inline:calc(-1 * var(--gutter));padding:6px var(--gutter) 14px;scrollbar-width:none}
  .ar-pola{flex:0 0 42%;scroll-snap-align:start}
  .ar-num{width:56px;height:56px;font-size:26px;border-radius:18px}
  .ar-sh{gap:14px}
}
/* blog listing card cover */
.bpo-img .ar-cover-sm{position:relative}
@keyframes arpin{0%,100%{transform:translate(370px,146px)}50%{transform:translate(370px,138px)}}.ar-pin{transform:translate(370px,146px)}
@media (max-width:980px){.ar-grid{grid-template-columns:minmax(0,1fr)}.ar-hgrid{grid-template-columns:minmax(0,1fr)}.ar-cover{transform:rotate(1deg);margin-inline:6px}}
.bposts .bpost:first-child{grid-column:1/-1;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);align-items:stretch}
.bposts .bpost:first-child .bpo-img{aspect-ratio:auto;min-height:320px}
.bposts .bpost:first-child .bpo-body{padding:clamp(22px,3vw,40px);align-content:center;gap:12px}
.bposts .bpost:first-child .bpo-body h3{font-family:var(--f-display);font-weight:900;font-size:clamp(28px,3.2vw,44px);text-transform:uppercase;line-height:.98}
.bposts .bpost:first-child .bpo-body p{font-size:17px}
@media (max-width:760px){.bposts .bpost:first-child{grid-template-columns:1fr}.bposts .bpost:first-child .bpo-img{min-height:220px}}
/* blog CTA card, redesigned */
.ar-cta{position:relative;overflow:hidden;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:20px 28px;background:var(--surface);border:1px solid var(--line);border-left:6px solid var(--gold);box-shadow:var(--shadow);border-radius:24px}
.ar-cta::after{content:"";position:absolute;right:-60px;top:-60px;width:200px;height:200px;border-radius:50%;background:radial-gradient(circle,color-mix(in srgb,var(--gold) 22%,transparent),transparent 70%);pointer-events:none}
.ar-cta h3{color:var(--ink);font-size:clamp(26px,2.6vw,34px);margin-bottom:8px}
.ar-cta p{color:var(--muted);font-size:16.5px;line-height:1.55}
.ar-cta p b{color:var(--ink)}
.ar-cta .cta-row{position:relative;z-index:1;flex-direction:column;align-items:stretch;gap:10px}
.ar-cta .btn{justify-content:center;text-decoration:none}
.ar-cta .btn-gold{color:var(--gold-ink)}
.ar-cta .st-wa{color:#06210F}
@media (max-width:720px){.ar-cta{grid-template-columns:1fr}.ar-cta .cta-row{flex-direction:row;flex-wrap:wrap}.ar-cta .btn{flex:1}}
/* tighter article rhythm */
.ar-step{padding-top:clamp(26px,3.4vw,44px)}
.ar-sh{margin-bottom:16px}
.ar p{margin:0 0 .9em}
.ar-final{margin-top:clamp(30px,4vw,48px)}
.ar-turn,.ar-pull{margin:1.2em 0}
.ar-wrap{padding-top:clamp(28px,4vw,48px);padding-bottom:clamp(36px,5vw,64px)}
.ar-qs,.ar-fits,.ar-packed,.ar-tags,.ar-pace,.ar-polas,.ar-checks,.ar-chain,.ar-self{margin-bottom:1em}
.f-cta-r{display:grid;gap:16px;justify-items:start;max-width:420px}
.f-cta-r p{margin:0;color:var(--board-dim);font-size:17px;line-height:1.55}
.f-cta-r p b{color:var(--flap-ink)}

/* Home hero: dotted world map with routes */
.hw-map{position:relative;overflow:hidden;isolation:isolate;background:radial-gradient(120% 90% at 75% 20%,#F4F9FD,#E3EEF8 55%,#D6E6F4);padding-block:clamp(28px,4vw,56px) clamp(36px,5vw,64px)}
.hw-bg{position:absolute;inset:0;z-index:-1;pointer-events:none}
.hw-dots,.hw-routes{position:absolute;inset:0;width:100%;height:100%}
.hw-dots{object-fit:cover;object-position:center;opacity:.14}
.hwr-arc{fill:none;stroke:var(--gold);stroke-width:1.6;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1;opacity:0;animation:hwarc 9s ease-in-out infinite;animation-delay:calc(var(--i) * .9s)}
@keyframes hwarc{0%{stroke-dashoffset:1;opacity:0}6%{opacity:.85}30%{stroke-dashoffset:0;opacity:.85}70%{stroke-dashoffset:0;opacity:.5}100%{stroke-dashoffset:0;opacity:0}}
.hwr-dot{fill:var(--brand);opacity:0;transform-box:fill-box;transform-origin:center;animation:hwdot 9s ease-in-out infinite;animation-delay:calc(var(--i) * .9s + 2.4s)}
@keyframes hwdot{0%{opacity:0;transform:scale(.3)}8%{opacity:.9;transform:scale(1.4)}16%{transform:scale(1)}60%{opacity:.7}100%{opacity:0}}
.hwr-home circle{fill:var(--gold)}
.hwr-home .hwr-ring{fill:none;stroke:var(--gold);stroke-width:2;transform-box:fill-box;transform-origin:center;animation:string 2.6s ease-out infinite}
.hwr-home text{font:600 13px var(--f-mono);letter-spacing:.14em;fill:var(--ink);opacity:.6}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .hw-map{background:radial-gradient(120% 90% at 75% 20%,#13246E,#0B1434 60%,#070D26)}:root:not([data-theme="light"]) .hw-dots{opacity:.22;filter:brightness(2.4)}}
:root[data-theme="dark"] .hw-map{background:radial-gradient(120% 90% at 75% 20%,#13246E,#0B1434 60%,#070D26)}
@media (max-width:640px){.hw-dots{opacity:.12}.hw-routes{opacity:.8}}
@media (prefers-reduced-motion:reduce){.hwr-arc{animation:none;stroke-dashoffset:0;opacity:.6}.hwr-dot{animation:none;opacity:.7}}
/* passport caption + status */
.pp-cap{font-family:var(--f-serif);font-size:clamp(18px,1.6vw,22px);letter-spacing:0;text-transform:none;opacity:.9}
.pp-cap b{font-weight:400;color:var(--brand)}
/* sentence dropdowns: keep the opened list a normal size */
.hw-blank select option{font-family:var(--f-body);font-size:15px;font-weight:500}
.hw-sentence{font-size:clamp(22px,2.2vw,30px)}
/* success card */
.hw-done h3{font-size:clamp(26px,2.8vw,36px)}
.hw-done h3 em{display:block;margin-top:4px}
.hw-done-b{font-weight:700;color:var(--ink)!important}

/* =========================================================
   HOME — customer journey film
   ========================================================= */
.jr{background:var(--surface)}
.jr-head{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;flex-wrap:wrap;margin-bottom:clamp(22px,3vw,36px)}
.jr-film{display:grid;grid-template-columns:minmax(0,1fr) 270px;gap:18px;align-items:stretch}
.jr-stage{--bg:#E8F1FB;--s:1;position:relative;aspect-ratio:16/9;border-radius:28px;overflow:hidden;background:radial-gradient(120% 100% at 50% 0%,#fff,var(--bg));box-shadow:var(--shadow-lg);border:1px solid var(--line);transition:background .8s}
.jr-sc{position:absolute;inset:0;display:grid;place-items:center;opacity:0;transition:opacity .6s ease;pointer-events:none}
.jr-sc.on{opacity:1}
.jr-art{position:relative;width:560px;height:300px;transform:scale(var(--s));flex:none}
.jr-cap{position:absolute;left:22px;bottom:22px;display:flex;align-items:center;gap:12px;padding:10px 18px 10px 10px;border-radius:999px;background:rgba(13,26,79,.88);color:#fff;backdrop-filter:blur(8px);box-shadow:var(--shadow);max-width:calc(100% - 100px)}
.jr-n{width:34px;height:34px;border-radius:50%;background:var(--gold);color:var(--gold-ink);display:grid;place-items:center;font:700 13px var(--f-mono);flex:none}
.jr-cap b{font-family:var(--f-display);font-weight:800;font-size:clamp(16px,1.6vw,22px);text-transform:uppercase;letter-spacing:.02em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.jr-cap.swap b{animation:capin .45s var(--ease)}
.jr-play{position:absolute;right:20px;bottom:22px;width:44px;height:44px;border-radius:50%;border:0;background:#fff;box-shadow:var(--shadow);cursor:pointer;display:grid;place-items:center}
.jr-play i{width:12px;height:14px;border-left:4px solid var(--ink);border-right:4px solid var(--ink)}
.jr-play.paused i{width:0;height:0;border-left:13px solid var(--ink);border-right:0;border-top:8px solid transparent;border-bottom:8px solid transparent;margin-left:4px}
.jr-prog{position:absolute;left:0;right:0;bottom:0;height:4px;background:rgba(13,26,79,.08)}
.jr-prog i{display:block;height:100%;width:0;background:var(--gold)}
.jr-chaps{list-style:none;margin:0;padding:8px;border-radius:24px;background:var(--bg);border:1px solid var(--line);display:grid;gap:2px;align-content:space-between}
.jr-chaps button{display:grid;grid-template-columns:30px 1fr;gap:6px;align-items:center;width:100%;text-align:left;font:inherit;font-size:14px;font-weight:600;line-height:1.25;color:var(--muted);background:none;border:0;padding:8px 10px;border-radius:12px;cursor:pointer;transition:background .25s,color .25s}
.jr-chaps button span{font:600 11px var(--f-mono);color:var(--teal)}
.jr-chaps button:hover{background:var(--surface);color:var(--ink)}
.jr-chaps button.on{background:var(--brand);color:#fff}
.jr-chaps button.on span{color:var(--gold)}
.jr-chaps button.done{color:var(--ink)}
.jr-svcs{margin-top:16px;display:grid;grid-template-columns:repeat(5,1fr);gap:10px}
.jr-svc{display:flex;align-items:center;gap:10px;padding:12px 14px;border-radius:16px;border:1px solid var(--line);background:var(--bg);text-decoration:none;color:var(--ink);font-weight:600;font-size:14px;line-height:1.25;transition:background .3s,border-color .3s,transform .3s var(--ease),box-shadow .3s}
.jr-svc svg{width:32px;height:32px;padding:7px;border-radius:10px;background:var(--surface);color:var(--brand);flex:none;transition:background .3s,color .3s}
.jr-svc:hover{transform:translateY(-3px);border-color:var(--gold)}
.jr-svc.lit{background:color-mix(in srgb,var(--gold) 18%,var(--surface));border-color:var(--gold);box-shadow:var(--shadow)}
.jr-svc.lit svg{background:var(--gold);color:var(--gold-ink)}
@media (max-width:1000px){.jr-film{grid-template-columns:1fr}.jr-chaps{display:flex;overflow-x:auto;scrollbar-width:none;border-radius:18px}.jr-chaps::-webkit-scrollbar{display:none}.jr-chaps li{flex:none}.jr-chaps button{white-space:nowrap;grid-template-columns:auto auto}.jr-svcs{grid-template-columns:repeat(3,1fr)}}
@media (max-width:640px){.jr-stage{aspect-ratio:4/3.4;border-radius:22px}.jr-cap{left:12px;bottom:14px;right:64px;padding:8px 14px 8px 8px}.jr-play{right:12px;bottom:14px;width:40px;height:40px}.jr-svcs{grid-template-columns:1fr 1fr}.jr-svc{font-size:13px;padding:10px}.jr-head .btn{width:100%;justify-content:center}}

/* --- scene art (designed on a 560 x 300 box) --- */
.jr-art *{box-sizing:border-box}
/* 1 chat */
.ja-phone{position:absolute;left:50%;top:6px;width:250px;margin-left:-125px;height:290px;border-radius:30px;background:#fff;border:8px solid #0D1A4F;box-shadow:0 20px 40px -18px rgba(13,26,79,.5);padding:12px;display:grid;align-content:start;gap:10px;overflow:hidden}
.ja-ph-top{display:flex;align-items:center;gap:8px;font-size:13px;color:#0D1A4F;border-bottom:1px solid #E5ECF4;padding-bottom:8px}
.ja-b{margin:0;max-width:85%;padding:9px 12px;border-radius:14px 14px 14px 4px;background:#EEF3FA;color:#0D1A4F;font-size:13px;line-height:1.35;opacity:0;transform:translateY(10px) scale(.9)}
.ja-b.me{justify-self:end;border-radius:14px 14px 4px 14px;background:#DCF8C6}
.ja-typing{margin:0;display:flex;gap:4px;padding:10px 12px;border-radius:14px;background:#EEF3FA;justify-self:start;opacity:0}
.ja-typing i{width:6px;height:6px;border-radius:50%;background:#8C98AF;animation:sttype 1.2s infinite}
.ja-typing i:nth-child(2){animation-delay:.15s}.ja-typing i:nth-child(3){animation-delay:.3s}
.sc-chat.on .ja-b.me{animation:jpop .5s .3s cubic-bezier(.3,1.6,.5,1) forwards}
.sc-chat.on .ja-typing{animation:jtype 1.1s 1s forwards}
.sc-chat.on .ja-b:not(.me){animation:jpop .5s 2s cubic-bezier(.3,1.6,.5,1) forwards}
@keyframes jpop{to{opacity:1;transform:none}}
@keyframes jtype{0%{opacity:0}15%,85%{opacity:1}100%{opacity:0;height:0;padding:0;margin:-5px 0}}
/* 2 itinerary */
.ja-plan{position:absolute;left:50%;top:22px;width:320px;margin-left:-160px;border-radius:20px;background:#fff;box-shadow:0 20px 40px -18px rgba(13,26,79,.4);padding:16px 18px;display:grid;gap:10px}
.ja-plan-h{display:flex;justify-content:space-between;align-items:baseline;border-bottom:1px dashed #D3E2EE;padding-bottom:8px;color:#0D1A4F}
.ja-plan-h span{font:500 11px var(--f-mono);letter-spacing:.1em;color:#2F6F7E;text-transform:uppercase}
.ja-plan p{margin:0;display:flex;align-items:center;gap:10px;font-size:14px;color:#0D1A4F;opacity:0;transform:translateX(-12px)}
.ja-plan p i{width:20px;height:20px;border-radius:6px;border:2px solid #D3E2EE;flex:none;position:relative}
.ja-plan p i::after{content:"";position:absolute;left:5px;top:1px;width:5px;height:10px;border-right:2.5px solid #fff;border-bottom:2.5px solid #fff;transform:rotate(45deg) scale(0);transition:transform .3s}
.sc-plan.on .ja-plan p{animation:jslide .45s forwards}
.sc-plan.on .ja-plan p:nth-child(2){animation-delay:.3s}.sc-plan.on .ja-plan p:nth-child(3){animation-delay:.75s}.sc-plan.on .ja-plan p:nth-child(4){animation-delay:1.2s}.sc-plan.on .ja-plan p:nth-child(5){animation-delay:1.65s}
.sc-plan.on .ja-plan p i{animation:jtick .3s forwards}
.sc-plan.on .ja-plan p:nth-child(2) i{animation-delay:.6s}.sc-plan.on .ja-plan p:nth-child(3) i{animation-delay:1.05s}.sc-plan.on .ja-plan p:nth-child(4) i{animation-delay:1.5s}.sc-plan.on .ja-plan p:nth-child(5) i{animation-delay:1.95s}
@keyframes jslide{to{opacity:1;transform:none}}
@keyframes jtick{to{background:#2E8B57;border-color:#2E8B57}}
.sc-plan.on .ja-plan p i::after{transform:rotate(45deg) scale(1);transition-delay:2s}
/* 3 visa + insurance */
.ja-pass{position:absolute;left:120px;top:40px;width:150px;height:210px;border-radius:8px 16px 16px 8px;background:radial-gradient(120% 90% at 30% 20%,#25409E,#13246E 65%,#0D1A4F);color:#E9C46A;display:grid;place-items:center;align-content:center;gap:10px;font:800 16px var(--f-display);letter-spacing:.2em;box-shadow:0 20px 40px -16px rgba(13,26,79,.6);transform:rotate(-6deg)}
.ja-pass-e svg{width:50px;height:50px;color:#E9C46A}
.ja-stamp{position:absolute;left:200px;top:70px;width:120px;height:120px;border-radius:50%;border:4px solid #C2304F;color:#C2304F;display:grid;place-items:center;text-align:center;font:900 20px/1 var(--f-display);text-transform:uppercase;transform:rotate(-16deg) scale(2.2);opacity:0;mix-blend-mode:multiply;background:rgba(255,255,255,.6)}
.ja-shield{position:absolute;right:120px;top:70px;width:110px;height:130px;display:grid;place-items:center;align-content:center;gap:6px;color:#2E8B57;opacity:0;transform:scale(.4)}
.ja-shield svg{width:96px;height:96px}
.ja-shield small{font:700 11px var(--f-mono);letter-spacing:.14em;text-transform:uppercase}
.sc-visa.on .ja-stamp{animation:jslam .5s .7s cubic-bezier(.3,1.6,.5,1) forwards}
.sc-visa.on .ja-shield{animation:jpop2 .6s 1.5s cubic-bezier(.3,1.6,.5,1) forwards}
@keyframes jslam{to{opacity:.95;transform:rotate(-16deg) scale(1)}}
@keyframes jpop2{to{opacity:1;transform:none}}
/* 4 bookings */
.ja-tix{position:absolute;left:60px;top:50px;width:250px;height:110px;border-radius:16px;background:#fff;box-shadow:0 18px 36px -16px rgba(13,26,79,.45);padding:14px 18px;opacity:0;transform:translateX(-60px) rotate(-4deg)}
.ja-t-l{display:grid;grid-template-columns:auto 1fr auto;grid-template-rows:auto auto;align-items:center;column-gap:10px;color:#0D1A4F}
.ja-t-l small{grid-column:1/-1;font:600 10px var(--f-mono);letter-spacing:.14em;text-transform:uppercase;color:#2F6F7E}
.ja-t-l b{font:900 36px/1 var(--f-display)}
.ja-t-l span{height:2px;background:repeating-linear-gradient(90deg,#9FB0C9 0 5px,transparent 5px 9px);position:relative}
.ja-t-l span svg{position:absolute;left:50%;top:50%;width:20px;height:20px;margin:-10px 0 0 -10px;color:#1E3A9E;transform:rotate(90deg)}
.ja-vou{position:absolute;right:60px;top:130px;width:230px;border-radius:16px;background:#fff;box-shadow:0 18px 36px -16px rgba(13,26,79,.45);padding:14px 18px;display:grid;gap:3px;color:#0D1A4F;opacity:0;transform:translateX(60px) rotate(4deg);border-left:5px solid #F2B33D}
.ja-vou small{font:600 10px var(--f-mono);letter-spacing:.14em;text-transform:uppercase;color:#9A6500}
.ja-vou b{font-size:16px}.ja-vou span{font-size:12.5px;color:#51607E}
.ja-ok{position:absolute;left:230px;top:120px;padding:8px 16px;border:3px solid #2E8B57;border-radius:8px;color:#2E8B57;font:900 22px var(--f-display);text-transform:uppercase;transform:rotate(-10deg) scale(2);opacity:0;background:rgba(255,255,255,.75)}
.sc-book.on .ja-tix{animation:jain .6s .2s var(--ease) forwards}
.sc-book.on .ja-vou{animation:jain .6s .8s var(--ease) forwards}
.sc-book.on .ja-ok{animation:jslam2 .45s 1.7s cubic-bezier(.3,1.6,.5,1) forwards}
@keyframes jain{to{opacity:1;transform:none}}
@keyframes jslam2{to{opacity:1;transform:rotate(-10deg) scale(1)}}
/* 5 forex + esim */
.ja-card{position:absolute;left:90px;top:70px;width:230px;height:140px;border-radius:16px;background:linear-gradient(135deg,#F7C66B,#E4572E);color:#fff;padding:16px 18px;display:grid;align-content:space-between;box-shadow:0 20px 40px -16px rgba(228,87,46,.55);transform:rotate(-6deg) translateY(30px);opacity:0}
.ja-card small{font:600 10px var(--f-mono);letter-spacing:.16em;text-transform:uppercase;opacity:.9}
.ja-card b{font:900 40px/1 var(--f-display)}
.ja-card span{font:500 13px var(--f-mono);letter-spacing:.1em}
.ja-phone2{position:absolute;right:110px;top:40px;width:120px;height:220px;border-radius:24px;background:#fff;border:6px solid #0D1A4F;display:grid;place-items:center;align-content:center;gap:8px;color:#0D1A4F;opacity:0;transform:translateY(30px)}
.ja-phone2 b{font:900 24px var(--f-display)}
.ja-phone2 small{font:700 10px var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:#2E8B57;opacity:0}
.ja-bars{display:flex;align-items:flex-end;gap:4px;height:30px}
.ja-bars i{width:8px;border-radius:2px;background:#D3E2EE}
.ja-bars i:nth-child(1){height:8px}.ja-bars i:nth-child(2){height:15px}.ja-bars i:nth-child(3){height:22px}.ja-bars i:nth-child(4){height:30px}
.sc-fx.on .ja-card{animation:jcard .7s .2s cubic-bezier(.3,1.4,.5,1) forwards}
.sc-fx.on .ja-phone2{animation:jain .6s .7s var(--ease) forwards}
.sc-fx.on .ja-bars i{animation:jbar .3s forwards}
.sc-fx.on .ja-bars i:nth-child(1){animation-delay:1.3s}.sc-fx.on .ja-bars i:nth-child(2){animation-delay:1.5s}.sc-fx.on .ja-bars i:nth-child(3){animation-delay:1.7s}.sc-fx.on .ja-bars i:nth-child(4){animation-delay:1.9s}
.sc-fx.on .ja-phone2 small{animation:jain .4s 2.1s forwards}
@keyframes jcard{to{opacity:1;transform:rotate(-6deg)}}
@keyframes jbar{to{background:#2E8B57}}
/* 6 fly */
.ja-cl{position:absolute;height:34px;border-radius:30px;background:#fff;opacity:.95;box-shadow:24px -12px 0 4px #fff,-20px -6px 0 2px #fff}
.ja-cl.c1{width:110px;left:60px;top:70px}.ja-cl.c2{width:150px;left:330px;top:180px}.ja-cl.c3{width:90px;left:420px;top:50px}
.sc-fly.on .ja-cl{animation:jcloud 3.4s linear forwards}
.sc-fly.on .ja-cl.c2{animation-duration:2.6s}
@keyframes jcloud{to{transform:translateX(-90px)}}
.ja-plane{position:absolute;left:-40px;top:200px;width:70px;height:70px;color:#1E3A9E;transform:rotate(60deg)}
.ja-plane svg{width:100%;height:100%}
.ja-trail{position:absolute;left:0;top:235px;height:3px;width:0;background:repeating-linear-gradient(90deg,#F2B33D 0 8px,transparent 8px 14px);transform-origin:left;transform:rotate(-14deg)}
.sc-fly.on .ja-plane{animation:jflyp 2.8s .1s cubic-bezier(.45,.05,.4,1) forwards}
.sc-fly.on .ja-trail{animation:jtrail 2.8s .1s cubic-bezier(.45,.05,.4,1) forwards}
@keyframes jflyp{to{transform:translate(560px,-140px) rotate(60deg)}}
@keyframes jtrail{to{width:600px}}
/* 7 stays */
.ja-ground{position:absolute;left:30px;right:30px;bottom:30px;height:4px;border-radius:4px;background:#C9D6E4}
.ja-bld{position:absolute;bottom:34px;transform-origin:bottom;transform:scaleY(0);display:grid;place-items:end center}
.ja-bld small{position:absolute;bottom:-26px;left:50%;transform:translateX(-50%);font:700 11px var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:#51607E;white-space:nowrap}
.ja-bld.hotel{left:90px;width:100px;height:200px;border-radius:8px 8px 0 0;background:linear-gradient(180deg,#1E3A9E,#13246E);display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:18px 16px;align-content:start}
.ja-bld.hotel i{height:22px;border-radius:3px;background:#F7D58C;opacity:.85}
.ja-bld.resort{left:235px;width:130px;height:90px;border-radius:40px 40px 0 0;background:linear-gradient(180deg,#E86A8E,#C2486E)}
.ja-bld.resort .palm{position:absolute;right:-18px;bottom:0;width:6px;height:120px;background:#7A4A2A;border-radius:3px}
.ja-bld.resort .palm::before{content:"";position:absolute;left:-26px;top:-14px;width:58px;height:28px;border-radius:50% 50% 0 50%;background:#3D9A50;transform:rotate(-20deg);box-shadow:24px 6px 0 -4px #2E8B57}
.ja-bld.villa{left:400px;width:110px;height:80px;background:#FFFDF6;border:3px solid #E3D9BE;border-bottom:0}
.ja-bld.villa .roof{position:absolute;left:-12px;right:-12px;top:-40px;height:40px;background:#C77700;clip-path:polygon(50% 0,100% 100%,0 100%)}
.ja-bld.villa .pool{position:absolute;left:-30px;bottom:-4px;width:170px;height:10px;border-radius:6px;background:#86BDE4}
.sc-stay.on .ja-bld{animation:jrise .7s cubic-bezier(.3,1.4,.5,1) forwards}
.sc-stay.on .ja-bld.resort{animation-delay:.5s}.sc-stay.on .ja-bld.villa{animation-delay:1s}
@keyframes jrise{to{transform:scaleY(1)}}
/* 8 move */
.ja-sea{position:absolute;left:0;right:0;top:120px;height:60px;background:linear-gradient(180deg,#86BDE4,#5FA8E6);border-radius:12px;opacity:.6}
.ja-road{position:absolute;left:0;right:0;bottom:30px;height:36px;background:#51607E;border-radius:6px}
.ja-road::after{content:"";position:absolute;left:0;right:0;top:50%;height:3px;margin-top:-1.5px;background:repeating-linear-gradient(90deg,#F7D58C 0 22px,transparent 22px 40px)}
.ja-ship{position:absolute;left:20px;top:84px;width:70px;height:70px;color:#13246E}
.ja-ship svg{width:100%;height:100%}
.ja-car{position:absolute;left:-80px;bottom:34px;width:64px;height:64px;color:#E4572E}
.ja-car svg{width:100%;height:100%}
.ja-train{position:absolute;left:600px;top:40px;display:flex;gap:4px}
.ja-train i{width:62px;height:30px;border-radius:8px;background:#2F6F7E;position:relative}
.ja-train i:first-child{border-radius:16px 8px 8px 8px;background:#1E3A9E}
.ja-train i::after{content:"";position:absolute;left:8px;right:8px;top:7px;height:9px;border-radius:3px;background:#DCEEFB}
.sc-move.on .ja-ship{animation:jship 3.2s ease-in-out forwards}
.sc-move.on .ja-car{animation:jcar 2.6s .3s ease-in-out forwards}
.sc-move.on .ja-train{animation:jtrain 3s .2s linear forwards}
@keyframes jship{50%{transform:translate(120px,-5px) rotate(-3deg)}100%{transform:translate(240px,0)}}
@keyframes jcar{to{transform:translateX(560px)}}
@keyframes jtrain{to{transform:translateX(-760px)}}
/* 9 sightseeing */
.ja-sun{position:absolute;right:120px;top:40px;width:60px;height:60px;border-radius:50%;background:radial-gradient(circle,#FFF3D6,#FFC56B);box-shadow:0 0 50px 14px rgba(255,197,107,.5)}
.ja-mtn{position:absolute;left:40px;right:40px;bottom:20px;height:130px;background:linear-gradient(180deg,#8E4C78,#3E2F6B);clip-path:polygon(0 100%,18% 40%,30% 62%,48% 10%,64% 55%,78% 30%,100% 100%)}
.ja-balloon{position:absolute;left:150px;top:180px;width:56px;height:68px;border-radius:50% 50% 45% 45%;background:linear-gradient(90deg,#E4572E 0 33%,#F2B33D 33% 66%,#1E3A9E 66%);opacity:0}
.ja-balloon i{position:absolute;left:50%;bottom:-20px;width:18px;height:14px;margin-left:-9px;background:#7A4A2A;border-radius:3px}
.ja-balloon.b2{left:360px;top:200px;width:42px;height:52px;background:linear-gradient(90deg,#E86A8E 0 50%,#FFFDF6 50%)}
.sc-see.on .ja-balloon{animation:jballoon 3s ease-out forwards}
.sc-see.on .ja-balloon.b2{animation-delay:.6s}
@keyframes jballoon{0%{opacity:0;transform:translateY(40px)}20%{opacity:1}100%{opacity:1;transform:translateY(-120px)}}
.ja-cam{position:absolute;left:250px;top:100px;width:64px;height:64px;padding:12px;border-radius:18px;background:#fff;color:#0D1A4F;box-shadow:0 12px 26px -10px rgba(13,26,79,.45);opacity:0;transform:scale(.4)}
.ja-cam svg{width:100%;height:100%}
.ja-flash{position:absolute;inset:-40px;background:#fff;opacity:0;pointer-events:none}
.sc-see.on .ja-cam{animation:jpop2 .5s 1.2s cubic-bezier(.3,1.6,.5,1) forwards}
.sc-see.on .ja-flash{animation:jflash .5s 1.9s ease-out}
@keyframes jflash{20%{opacity:.85}100%{opacity:0}}
@media (prefers-reduced-motion:reduce){.jr-sc *{animation:none!important;opacity:1!important;transform:none!important}}
.jr-sc{place-items:start center;padding-top:3%}
.jr-art{transform-origin:top center}
.ja-bld.hotel{justify-items:stretch;place-items:stretch}
.ja-bld.hotel i{align-self:start}
.ja-ok{left:300px;top:24px}
.ja-phone{top:0;height:280px}
.jr-sc{display:block;padding:0}
.jr-art{position:absolute;left:50%;top:3%;margin-left:-280px}
@media (max-width:640px){.jr-stage{aspect-ratio:1/1}.jr-cap b{white-space:normal;font-size:15px;line-height:1.1}.jr-cap{border-radius:18px}}

/* ---------- Home: trip-type cards ---------- */
.ty-grid-cards{grid-template-columns:minmax(0,1fr) auto;align-items:end;margin-bottom:clamp(20px,3vw,32px)}
.ty-grid-cards .ty-copy{grid-template-columns:minmax(0,1fr);gap:12px}
.tt-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.stk.tt-card{position:relative;left:auto;top:auto;transform:none;filter:none;animation:none;display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:14px;row-gap:2px;align-items:center;text-align:left;padding:16px;border-radius:20px;background:var(--surface);border:1.5px solid var(--line);color:var(--ink);font:inherit;cursor:pointer;transition:transform .3s var(--ease),border-color .3s,box-shadow .3s,background .3s}
.tt-ic{grid-row:1/3;width:48px;height:48px;border-radius:15px;display:grid;place-items:center;background:color-mix(in srgb,var(--c) 16%,transparent);color:var(--c);transition:background .3s,color .3s,transform .3s var(--ease)}
.tt-ic svg{width:24px;height:24px}
.tt-card b{font-size:16px;line-height:1.25}
.tt-card small{font-size:13px;color:var(--muted);line-height:1.35}
.stk.tt-card:hover,.stk.tt-card:focus-visible{transform:translateY(-4px);border-color:var(--c);box-shadow:var(--shadow);filter:none}
.stk.tt-card:hover .tt-ic,.stk.tt-card.on .tt-ic{background:var(--c);color:#fff;transform:rotate(-6deg)}
.stk.tt-card.on{transform:none;border-color:var(--c);background:color-mix(in srgb,var(--c) 7%,var(--surface));box-shadow:var(--shadow)}
.stk.tt-card.on .stk-in{box-shadow:none}
.stk.tt-card .stk-ok{right:10px;top:10px}
.stk.tt-card.peel{animation:ttpick .45s var(--ease)}
@keyframes ttpick{40%{transform:scale(.96)}100%{transform:none}}
.stk.tt-card:focus-visible{outline:3px solid var(--gold);outline-offset:3px}
@media (max-width:1000px){.tt-grid{grid-template-columns:repeat(3,1fr)}}
@media (max-width:900px){.ty-grid-cards{grid-template-columns:1fr}}
@media (max-width:640px){.tt-grid{grid-template-columns:1fr 1fr;gap:10px}.stk.tt-card{grid-template-columns:1fr;grid-template-rows:auto;row-gap:8px;padding:14px;transform:none}.tt-ic{grid-row:auto;width:42px;height:42px}.tt-card small{display:none}.tt-card b{font-size:14.5px}}

/* ---------- Home: traveller wall ---------- */
.tw{background:var(--surface)}
.tw-head{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;flex-wrap:wrap;margin-bottom:clamp(20px,3vw,32px)}
.tw-stat{margin:0;display:flex;align-items:center;gap:12px}
.tw-stat b{font-family:var(--f-display);font-weight:900;font-size:clamp(48px,5vw,68px);line-height:.85;color:var(--gold-text)}
.tw-stat span{font-size:14px;color:var(--muted);line-height:1.3}
.tw-names{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px;justify-content:center;-webkit-mask-image:linear-gradient(180deg,#000 70%,transparent);mask-image:linear-gradient(180deg,#000 70%,transparent);max-height:300px;overflow:hidden;transition:max-height .6s var(--ease)}
.tw-names.all{max-height:2000px;-webkit-mask-image:none;mask-image:none}
.tw-t{display:inline-flex;align-items:center;gap:9px;padding:6px 14px 6px 6px;border-radius:999px;background:var(--bg);border:1px solid var(--line);transition:transform .25s var(--ease),border-color .25s}
.tw-t:hover{transform:translateY(-3px) rotate(-1deg);border-color:var(--av)}
.tw-av{width:34px;height:34px;border-radius:50%;background:var(--av);color:#fff;display:grid;place-items:center;font-weight:700;font-size:12px;flex:none}
.tw-n{display:grid;line-height:1.15}
.tw-n b{font-size:14px}
.tw-n small{font-size:11px;color:var(--gold-text);font-weight:600}
.tw-more{display:block;margin:14px auto 0;font:inherit;font-weight:700;font-size:14px;color:var(--brand);background:none;border:0;cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.tw-photos{columns:4 220px;column-gap:12px}
.tw-ph{margin:0 0 12px;break-inside:avoid;border-radius:18px;overflow:hidden;box-shadow:var(--shadow)}
.tw-ph img{width:100%;height:auto;display:block;transition:transform .5s var(--ease)}
.tw-ph:hover img{transform:scale(1.05)}

/* ---------- Home: blog teaser ---------- */
.hb{background:var(--bg)}
.hb-head{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;flex-wrap:wrap;margin-bottom:16px}
.hb-cats{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:clamp(18px,2.6vw,28px)}
.hb-cat{padding:8px 14px;border-radius:999px;border:1px solid var(--line);background:var(--surface);font-size:14px;font-weight:600;color:var(--ink);text-decoration:none;transition:background .25s,color .25s,border-color .25s}
.hb-cat:hover{background:var(--brand);color:#fff;border-color:var(--brand)}
.hb-posts{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.hb-post{display:grid;grid-template-rows:auto 1fr;border-radius:22px;overflow:hidden;background:var(--surface);border:1px solid var(--line);text-decoration:none;color:var(--ink);transition:transform .3s var(--ease),box-shadow .3s}
.hb-post:hover{transform:translateY(-5px);box-shadow:var(--shadow-lg)}
.hb-img{aspect-ratio:16/9;position:relative;overflow:hidden;background:linear-gradient(150deg,#86BDE4,#1E3A9E)}
.hb-body{padding:18px 20px 20px;display:grid;gap:8px;align-content:start}
.hb-body small{font-family:var(--f-mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--teal)}
.hb-body h3{font-size:19px;font-weight:800;line-height:1.25}
.hb-body span{display:inline-flex;gap:6px;align-items:center;font-weight:700;font-size:14px;color:var(--brand)}
.hb-body span svg{width:15px}
.hb-posts.n1{grid-template-columns:1fr}
.hb-posts.n1 .hb-post{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);grid-template-rows:none}
.hb-posts.n1 .hb-img{aspect-ratio:auto;min-height:260px}
.hb-posts.n1 .hb-body{align-content:center;padding:clamp(22px,3vw,40px)}
.hb-posts.n1 .hb-body h3{font-family:var(--f-display);font-weight:900;font-size:clamp(26px,3vw,40px);text-transform:uppercase;line-height:1}
@media (max-width:900px){.hb-posts{grid-template-columns:1fr}.hb-posts.n1 .hb-post{grid-template-columns:1fr}.hb-posts.n1 .hb-img{min-height:200px}}
@media (max-width:640px){.hb-head .btn{width:100%;justify-content:center}.hb-cats{flex-wrap:nowrap;overflow-x:auto;margin-inline:calc(-1 * var(--gutter));padding:0 var(--gutter) 4px;scrollbar-width:none}.hb-cat{flex:none}}

/* ---------- Home: tighter rhythm ---------- */

body:has(.hw-map) main > section .sec-head{margin-bottom:0}
body:has(.hw-map) .ty{padding-top:0}
body:has(.hw-map) .pass{margin-top:clamp(18px,2.6vw,28px)}
body:has(.hw-map) #japan .sec-head{margin-bottom:0}

/* floating WhatsApp button (logo only) */
.fab.fab-wa{width:58px;height:58px;padding:0;border-radius:50%;display:grid;place-items:center;background:#25D366;color:#fff;box-shadow:0 10px 26px -8px rgba(18,140,74,.65)}
.fab.fab-wa svg{width:32px;height:32px}
.fab.fab-wa .t{display:none}
.fab.fab-wa::after{content:"";position:absolute;inset:0;border-radius:50%;box-shadow:0 0 0 0 rgba(37,211,102,.55);animation:fabpulse 2.6s ease-out infinite}
@keyframes fabpulse{70%{box-shadow:0 0 0 14px rgba(37,211,102,0)}100%{box-shadow:0 0 0 0 rgba(37,211,102,0)}}
.fab.fab-wa:hover{transform:translateY(-3px) scale(1.05)}
@media (max-width:640px){.fab.fab-wa{width:52px;height:52px}.fab.fab-wa svg{width:28px;height:28px}}
@media (prefers-reduced-motion:reduce){.fab.fab-wa::after{animation:none}}
@media (max-width:640px){.jr-stage{aspect-ratio:5/4.2}}
/* footer without the call-to-action block */
footer.no-cta{padding-top:clamp(40px,5vw,64px)}
footer.no-cta .f-grid{margin-top:0;padding-top:0;border-top:0}
/* traveller collage (photos in assets/travellers) */
.tw-collage{margin-top:clamp(24px,4vw,40px);columns:4 220px;column-gap:16px}
.tw-ph{margin:0 0 16px;break-inside:avoid;padding:10px 10px 12px;background:#fff;border-radius:8px;box-shadow:var(--shadow);transform:rotate(var(--r));transition:transform .35s var(--ease),box-shadow .35s}
.tw-ph img{width:100%;height:auto;border-radius:4px}
.tw-ph:hover{transform:rotate(0) scale(1.03);box-shadow:var(--shadow-lg);position:relative;z-index:2}
@media (max-width:640px){.tw-collage{columns:2;column-gap:10px}.tw-ph{padding:6px 6px 8px;margin-bottom:10px}}



/* =========================================================
   HOME — Pack your trip (suitcase packs itself)
   ========================================================= */
.pk{background:var(--bg);overflow:hidden}
.pk-grid{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:clamp(28px,5vw,64px);align-items:center}
.pk-copy{display:grid;gap:20px;align-content:start}
.pk-copy > .btn{justify-self:start}
.pk-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:8px}
.pk-list a{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:14px;border:1px solid var(--line);background:var(--surface);text-decoration:none;color:var(--ink);font-size:14.5px;font-weight:600;line-height:1.25;transition:border-color .3s,background .3s,transform .25s var(--ease)}
.pk-list a > svg{width:20px;height:20px;color:var(--brand);flex:none}
.pk-tick{flex:none;width:20px;height:20px;border-radius:50%;border:1.5px solid var(--line);display:grid;place-items:center;color:transparent;transition:all .35s cubic-bezier(.3,1.6,.5,1)}
.pk-tick svg{width:12px;height:12px}
.pk-list a.done .pk-tick{background:var(--ok);border-color:var(--ok);color:#fff;transform:scale(1.15)}
.pk-list a.now{border-color:var(--gold);background:color-mix(in srgb,var(--gold) 14%,var(--surface))}
.pk-list a:hover{transform:translateX(3px);border-color:var(--gold)}
/* stage */
.pk-stage{container-type:inline-size;position:relative;display:grid;gap:14px;justify-items:center}
.pk-case{position:relative;width:100%;aspect-ratio:1.7;display:grid;grid-template-columns:1fr 1fr;perspective:2200px;margin-top:6cqw}
.pk-half{position:relative}
.pk-lidh{z-index:3}
.pk-lid{position:absolute;inset:0;transform-origin:right center;transform-style:preserve-3d;transition:transform 1.1s cubic-bezier(.6,.05,.25,1)}
.pk-lid-in,.pk-lid-out,.pk-base{position:absolute;inset:0;border-radius:3.6cqw}
.pk-lid-in{backface-visibility:hidden;-webkit-backface-visibility:hidden;background:linear-gradient(160deg,#4A8C97,#2F6F7E);border:1.4cqw solid #1F4F5C;border-right-width:.7cqw;border-radius:3.6cqw 1cqw 1cqw 3.6cqw;box-shadow:inset 0 0 0 .5cqw rgba(255,255,255,.12),inset 0 1.4cqw 2.4cqw rgba(0,0,0,.25)}
.pk-mesh{position:absolute;left:8%;right:8%;bottom:7%;height:28%;border-radius:1.6cqw;background:repeating-linear-gradient(45deg,rgba(255,255,255,.16) 0 .4cqw,transparent .4cqw 1.4cqw),repeating-linear-gradient(-45deg,rgba(255,255,255,.16) 0 .4cqw,transparent .4cqw 1.4cqw);border-top:.5cqw solid rgba(255,255,255,.3)}
.pk-lid-out{backface-visibility:hidden;-webkit-backface-visibility:hidden;transform:rotateY(180deg);background:linear-gradient(200deg,#3D8592,#24606C);border:.6cqw solid #1F4F5C;border-radius:1cqw 3.6cqw 3.6cqw 1cqw;box-shadow:inset 0 .8cqw 0 rgba(255,255,255,.15),inset 0 -1.6cqw 2.4cqw rgba(0,0,0,.25)}
.pk-lid-out::before,.pk-lid-out::after{content:"";position:absolute;top:0;bottom:0;width:7%;background:linear-gradient(90deg,#7A4A2A,#8F5A35 50%,#7A4A2A)}
.pk-lid-out::before{left:22%}.pk-lid-out::after{right:22%}
.pk-handle{position:absolute;left:50%;top:-5.2cqw;width:14cqw;height:5.6cqw;margin-left:-7cqw;border:1.6cqw solid #1F4F5C;border-bottom:0;border-radius:2.6cqw 2.6cqw 0 0}
.pk-st{position:absolute;display:grid;place-items:center;font-family:var(--f-display);font-weight:900;text-transform:uppercase;color:#fff;font-size:2.2cqw;line-height:1;border:.4cqw solid #fff;box-shadow:0 .6cqw 1cqw rgba(0,0,0,.25);z-index:1}
.pk-st.s1{left:30%;top:16%;padding:1.2cqw 1.8cqw;border-radius:1cqw;background:#E86A8E;transform:rotate(-8deg)}
.pk-st.s2{right:14%;top:44%;width:8cqw;height:8cqw;border-radius:50%;background:#F2B33D;color:#1B1303;font-size:3.6cqw;transform:rotate(12deg)}
.pk-st.s3{left:12%;bottom:14%;padding:1.2cqw 2cqw;border-radius:999px;background:#1E3A9E;transform:rotate(6deg)}
.pk-base{background:linear-gradient(160deg,#2F6F7E,#1F4F5C);border:1.4cqw solid #183F4A;border-left-width:.7cqw;border-radius:1cqw 3.6cqw 3.6cqw 1cqw;box-shadow:inset 0 0 0 .5cqw rgba(255,255,255,.08),inset 0 1.6cqw 3cqw rgba(0,0,0,.35),0 3cqw 5cqw -2cqw rgba(13,26,79,.45)}
.pk-strap{position:absolute;left:46%;top:-1.4cqw;bottom:-1.4cqw;width:6%;background:linear-gradient(90deg,#7A4A2A,#8F5A35 50%,#7A4A2A);opacity:.85}
.pk-strap::after{content:"";position:absolute;left:10%;right:10%;top:46%;height:8%;border:.5cqw solid #D9B26A;border-radius:.6cqw}
/* items */
.pk-it{position:absolute;left:var(--x);top:var(--y);transform:translate(var(--sx),var(--sy)) rotate(calc(var(--r) * -3)) scale(1.25);opacity:0;transition:transform .7s cubic-bezier(.3,1.35,.5,1),opacity .3s;z-index:2;filter:drop-shadow(0 .8cqw 1cqw rgba(0,0,0,.3))}
.pk-it.in{transform:rotate(var(--r));opacity:1}
.pk-it.hl .pi{animation:pkwig .5s ease-in-out}
@keyframes pkwig{30%{transform:rotate(-8deg) scale(1.08)}60%{transform:rotate(6deg) scale(1.08)}}
.pi{position:relative;display:grid;align-content:center;justify-items:center;text-align:center;font-family:var(--f-display);text-transform:uppercase;line-height:1}
.pi small{font-family:var(--f-mono);font-size:1.3cqw;letter-spacing:.1em}
.pi-pass{width:24cqw;height:11cqw;background:#fff;color:#0D1A4F;border-radius:1.2cqw;justify-items:start;padding-left:4cqw;gap:.8cqw}
.pi-pass > i{position:absolute;left:0;top:0;bottom:0;width:2.6cqw;background:#1E3A9E;border-radius:1.2cqw 0 0 1.2cqw}
.pi-pass::after{content:"";position:absolute;right:6cqw;top:1cqw;bottom:1cqw;border-left:.3cqw dashed #C9D3E4}
.pi-pass b{display:flex;align-items:center;gap:1cqw;font-weight:900;font-size:3cqw}
.pi-pass b span{width:2.6cqw;height:2.6cqw;color:#F2B33D}.pi-pass b svg{width:100%;height:100%;transform:rotate(90deg)}
.pi-key{width:15cqw;height:10cqw;background:linear-gradient(140deg,#25409E,#0D1A4F);color:#E9C46A;border-radius:1.2cqw;gap:.6cqw}
.pi-key svg{width:5.6cqw;height:5.6cqw}
.pi-map{width:20cqw;height:14cqw;display:flex;border-radius:.6cqw;overflow:hidden}
.pi-map > i{flex:1;background:#CDE8D2}.pi-map > i:nth-child(2){background:#B6DCC0}.pi-map > i:nth-child(3){background:#DDEFD8}
.pi-map svg{position:absolute;inset:0;width:100%;height:100%}
.pi-tix{width:15cqw;height:8cqw;background:#E4572E;color:#fff;border-radius:1cqw;-webkit-mask:radial-gradient(1.4cqw at 0 50%,transparent 98%,#000) left/51% 100% no-repeat,radial-gradient(1.4cqw at 100% 50%,transparent 98%,#000) right/51% 100% no-repeat;mask:radial-gradient(1.4cqw at 0 50%,transparent 98%,#000) left/51% 100% no-repeat,radial-gradient(1.4cqw at 100% 50%,transparent 98%,#000) right/51% 100% no-repeat;gap:.6cqw}
.pi-tix b{font-size:3cqw;font-weight:900}
.pi-fob{width:8cqw;height:12cqw;background:linear-gradient(160deg,#3B4650,#151B22);border-radius:4cqw 4cqw 3cqw 3cqw}
.pi-fob .r{position:absolute;top:-3cqw;left:50%;width:5cqw;height:5cqw;margin-left:-2.5cqw;border:.8cqw solid #B8C2CC;border-radius:50%}
.pi-fob .b1,.pi-fob .b2{position:absolute;left:50%;width:3.6cqw;height:2.2cqw;margin-left:-1.8cqw;border-radius:1cqw;background:#5A6672}
.pi-fob .b1{top:3.4cqw}.pi-fob .b2{top:6.6cqw;background:#C2304F}
.pi-cruise{width:17cqw;height:9cqw;background:linear-gradient(140deg,#2F9FB0,#1E6F7E);color:#fff;border-radius:1cqw;grid-auto-flow:column;gap:1.4cqw}
.pi-cruise svg{width:4.6cqw;height:4.6cqw}
.pi-ppt{width:11cqw;height:15cqw;background:linear-gradient(150deg,#25409E,#13246E);color:#E9C46A;border-radius:.6cqw 1.4cqw 1.4cqw .6cqw;gap:1cqw}
.pi-ppt svg{width:5.4cqw;height:5.4cqw}
.pi-visa{position:absolute;right:-3cqw;bottom:-1.6cqw;width:7.4cqw;height:7.4cqw;border-radius:50%;border:.5cqw solid #C2304F;color:#C2304F;background:rgba(255,255,255,.88);display:grid;place-items:center;font-family:var(--f-display);font-weight:900;font-size:1.8cqw;transform:rotate(-14deg)}
.pi-ins{width:13cqw;height:13cqw;background:#fff;color:#2E7D4F;border-radius:2cqw;gap:.8cqw}
.pi-ins svg{width:6.4cqw;height:6.4cqw}
.pi-fx{width:16cqw;height:10cqw;background:linear-gradient(140deg,#F7CE68,#E0A42D);color:#1B1303;border-radius:1.2cqw;justify-items:start;padding-left:2cqw;gap:1cqw}
.pi-fx > i{width:3.4cqw;height:2.6cqw;border-radius:.6cqw;background:linear-gradient(135deg,#FFF3C4,#C9A04A)}
.pi-fx b{font-family:var(--f-mono);font-size:1.6cqw;font-weight:600}
.pi-ph{width:8cqw;height:15cqw;background:#0D1A4F;color:#fff;border-radius:1.6cqw;border:.5cqw solid #2A3142;gap:.8cqw}
.pi-ph .bars{display:flex;align-items:flex-end;gap:.4cqw;height:2.6cqw}
.pi-ph .bars i{width:.7cqw;background:#5CC08A;border-radius:.2cqw}
.pi-ph .bars i:nth-child(1){height:30%}.pi-ph .bars i:nth-child(2){height:55%}.pi-ph .bars i:nth-child(3){height:80%}.pi-ph .bars i:nth-child(4){height:100%}
.pi-ph b{font-size:2.4cqw;font-weight:900}
/* closing + tag */
.pk-case.closed .pk-lid{transform:rotateY(180deg)}
.pk-tag{position:absolute;right:20%;top:-3cqw;z-index:6;display:grid;justify-items:center;gap:.4cqw;padding:2cqw 2.6cqw 1.8cqw;background:#FFF7E3;color:#1B1303;border-radius:1.2cqw 1.2cqw 2cqw 2cqw;box-shadow:0 1.4cqw 2.4cqw -1cqw rgba(0,0,0,.4);transform-origin:50% -2cqw;transform:scale(0) rotate(-20deg);opacity:0;font-family:var(--f-display);text-transform:uppercase}
.pk-tag > i{position:absolute;top:1cqw;left:50%;width:1.6cqw;height:1.6cqw;margin-left:-.8cqw;border-radius:50%;background:var(--bg);box-shadow:inset 0 .2cqw .4cqw rgba(0,0,0,.3)}
.pk-tag > i::before{content:"";position:absolute;left:50%;bottom:100%;width:.3cqw;height:4cqw;background:#7A4A2A;margin-left:-.15cqw}
.pk-tag b{font-weight:900;font-size:3.4cqw;margin-top:1.4cqw}
.pk-tag small{display:flex;align-items:center;gap:.6cqw;font-family:var(--f-mono);font-size:1.4cqw;letter-spacing:.1em;color:var(--ok)}
.pk-tag small svg{width:1.8cqw;height:1.8cqw}
.pk-case.tagged .pk-tag{opacity:1;animation:pktag 1.6s cubic-bezier(.3,1.4,.5,1) forwards}
@keyframes pktag{0%{transform:scale(0) rotate(-20deg)}40%{transform:scale(1) rotate(10deg)}65%{transform:scale(1) rotate(-6deg)}85%{transform:scale(1) rotate(3deg)}100%{transform:scale(1) rotate(-2deg)}}
.pk-cap{margin:0;min-height:1.4em;font-family:var(--f-mono);font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);text-align:center}
.pk-cap span{display:inline-block;animation:capin .4s var(--ease)}
.pk-again{font:inherit;font-size:14px;font-weight:700;padding:9px 16px;border-radius:999px;border:1.5px solid var(--line);background:var(--surface);color:var(--ink);cursor:pointer;opacity:0;pointer-events:none;transition:opacity .4s}
.pk-stage.done .pk-again{opacity:1;pointer-events:auto}
.pk-again:hover{border-color:var(--gold)}
@media (max-width:900px){
  .pk-grid{grid-template-columns:1fr}
  .pk-copy{display:contents}
  .pk-copy .sec-head{order:1}.pk-stage{order:2}.pk-list{order:3}.pk-copy > .btn{order:4;justify-self:stretch;justify-content:center}
  .pk-grid{gap:22px}
}
@media (max-width:420px){.pk-list{grid-template-columns:1fr 1fr;gap:6px}.pk-list a{font-size:13px;padding:8px 9px;gap:7px}.pk-list a > svg{display:none}}
@media (prefers-reduced-motion:reduce){.pk-it{transition:none}.pk-lid{transition:none}.pk-case.tagged .pk-tag{animation:none;transform:rotate(-2deg)}}
.hw-doodle .hw-bg{overflow:hidden}
.hw-doodle{overflow-x:clip}
.pk-case{transition:transform 1.1s cubic-bezier(.6,.05,.25,1)}
.pk-case.closed{transform:translateX(-25%)}

/* =========================================================
   HOME hero — skyline of the world
   ========================================================= */
.hw-sky{background:linear-gradient(180deg,#9FD0F0 0%,#C9E6F7 38%,#FCE7CF 74%,#F9D3B4 100%);overflow:hidden;overflow-x:clip;padding-bottom:clamp(150px,18vw,230px)}
.hw-sky .hw-bg{position:absolute;inset:0;pointer-events:none;z-index:0;overflow:hidden}
.hw-sky .wrap,.hw-sky .hw-grid{position:relative;z-index:2}
.sk-sun{position:absolute;right:12%;bottom:24%;width:clamp(120px,14vw,200px);aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,#FFF8E6 0 40%,#FFE1A8 58%,rgba(255,215,150,0) 72%);filter:blur(.5px);animation:sksun 10s ease-in-out infinite}
@keyframes sksun{50%{transform:translateY(-10px) scale(1.03)}}
.sk-cl{position:absolute;left:100%;top:var(--t);width:calc(160px * var(--s));height:calc(44px * var(--s));border-radius:60px;background:#fff;opacity:.85;filter:blur(2px);box-shadow:calc(40px * var(--s)) calc(-18px * var(--s)) 0 calc(6px * var(--s)) #fff,calc(-34px * var(--s)) calc(-10px * var(--s)) 0 calc(2px * var(--s)) #fff;animation:skcl var(--d) linear infinite;animation-delay:var(--o)}
@keyframes skcl{to{transform:translateX(calc(-100vw - 400px))}}
.sk-l{position:absolute;left:-3%;width:106%;bottom:0;transition:transform .6s cubic-bezier(.2,.7,.2,1);will-change:transform}
.sk-far{height:44%;fill:#B9A7C9;opacity:.55;transform:translate3d(calc(var(--mx,0) * -8px),calc(var(--sy,0) * 30px),0)}
.sk-mid{height:46%;fill:#6E7FB0;opacity:.75;transform:translate3d(calc(var(--mx,0) * -18px),calc(var(--sy,0) * 18px),0)}
.sk-near{height:34%;fill:#2B3F7E;color:#2B3F7E;transform:translate3d(calc(var(--mx,0) * -32px),0,0)}
.sk-trail{position:absolute;inset:0;width:100%;height:100%}
.sk-trail path{stroke:#fff;stroke-width:2;stroke-dasharray:3 10;stroke-linecap:round;opacity:.8}
.sk-plane{fill:#13246E}
:root[data-theme="dark"] .hw-sky{background:linear-gradient(180deg,#0B1434,#1A2A63 55%,#3A2F6B)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .hw-sky{background:linear-gradient(180deg,#0B1434,#1A2A63 55%,#3A2F6B)}}
@media (max-width:900px){.hw-sky{padding-bottom:120px}.sk-mid{height:30%}.sk-far{height:30%}.sk-near{height:22%}.sk-sun{bottom:16%;right:6%}}
@media (prefers-reduced-motion:reduce){.sk-cl,.sk-sun{animation:none}.sk-plane{display:none}}

/* =========================================================
   HOME — 3D service ring, driven by scroll
   ========================================================= */
.rg{position:relative;height:calc(100vh + var(--n) * 38vh);background:radial-gradient(90% 70% at 70% 50%,#E6F0FF,var(--bg) 70%)}
.rg-sticky{position:sticky;top:0;height:100vh;display:flex;align-items:center;overflow:hidden;padding-top:70px}
.rg-grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(20px,4vw,56px);align-items:center;width:100%}
.rg-copy{display:grid;gap:18px;align-content:start}
.rg-copy > .btn{justify-self:start}
.rg-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:4px 14px}
.rg-list a{display:flex;align-items:center;gap:10px;padding:6px 0;text-decoration:none;color:var(--muted);font-weight:600;font-size:14.5px;transition:color .3s}
.rg-dot{flex:none;width:10px;height:10px;border-radius:50%;border:2px solid var(--line);transition:all .35s}
.rg-list a.on{color:var(--ink)}
.rg-list a.on .rg-dot{background:var(--gold);border-color:var(--gold);transform:scale(1.4);box-shadow:0 0 0 4px color-mix(in srgb,var(--gold) 25%,transparent)}
.rg-list a.seen .rg-dot{background:var(--brand);border-color:var(--brand)}
.rg-stage{--cw:clamp(180px,17vw,236px);position:relative;height:min(70vh,560px);perspective:1400px;perspective-origin:50% 40%;display:grid;place-items:center}
.rg-ring{position:relative;width:var(--cw);height:calc(var(--cw) * 1.32);transform-style:preserve-3d;transform:translateZ(calc(var(--r) * -1)) rotateX(-6deg) rotateY(var(--rot,0deg))}
.rg-card{position:absolute;inset:0;display:grid;align-content:start;gap:10px;padding:20px 18px;border-radius:24px;text-decoration:none;color:#fff;background:linear-gradient(155deg,color-mix(in srgb,var(--c) 78%,#fff),var(--c) 55%,color-mix(in srgb,var(--c) 70%,#000));box-shadow:0 30px 50px -24px rgba(13,26,79,.6),inset 0 1px 0 rgba(255,255,255,.35);transform:rotateY(calc(var(--i) * 360deg / var(--n))) translateZ(var(--r));backface-visibility:hidden;-webkit-backface-visibility:hidden;overflow:hidden;transition:filter .4s,opacity .4s}
.rg-card::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(0,0,0,.18));pointer-events:none}
.rg-n{font-family:var(--f-mono);font-size:11px;letter-spacing:.16em;opacity:.8}
.rg-ic{width:64px;height:64px;border-radius:20px;display:grid;place-items:center;background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.35);margin:6px 0 4px}
.rg-ic svg{width:34px;height:34px}
.rg-card b{font-family:var(--f-display);font-weight:900;font-size:clamp(20px,1.8vw,26px);text-transform:uppercase;line-height:1}
.rg-card small{font-size:14px;line-height:1.4;opacity:.92}
.rg-shine{position:absolute;top:-40%;left:-60%;width:50%;height:180%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.35),transparent);transform:rotate(20deg);opacity:0}
.rg-card.front{filter:none}
.rg-card.front .rg-shine{animation:rgshine 1.2s ease-out}
@keyframes rgshine{0%{opacity:1;left:-60%}100%{opacity:0;left:120%}}
.rg-card:not(.front){filter:saturate(.75) brightness(.92)}
.rg-floor{position:absolute;left:10%;right:10%;bottom:6%;height:22%;border-radius:50%;background:radial-gradient(closest-side,rgba(13,26,79,.22),transparent);filter:blur(6px)}
.rg-count{position:absolute;left:50%;bottom:0;transform:translateX(-50%);margin:0;font-family:var(--f-mono);font-size:12px;letter-spacing:.16em;color:var(--muted);display:flex;gap:10px;align-items:center;white-space:nowrap}
.rg-count b{color:var(--ink);font-weight:600}
.rg-count span{padding-left:10px;border-left:1px solid var(--line)}
@media (max-width:900px){
  .rg{height:calc(100vh + var(--n) * 28vh)}
  .rg-sticky{align-items:flex-start;padding-top:84px}
  .rg-grid{grid-template-columns:1fr;gap:6px}
  .rg-copy .lede,.rg-list,.rg-copy > .btn{display:none}
  .rg-copy .h2{font-size:clamp(28px,8vw,36px)}
  .rg-stage{--cw:min(54vw,220px);height:min(60vh,480px);perspective:1000px}
}
@media (prefers-reduced-motion:reduce){
  .rg{height:auto}.rg-sticky{position:static;height:auto;padding-block:60px}
  .rg-stage{height:auto;perspective:none}
  .rg-ring{transform:none;width:100%;height:auto;display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px}
  .rg-card{position:relative;transform:none;min-height:200px}
  .rg-floor,.rg-count{display:none}
}
.hw-sky{position:relative;isolation:isolate}

/* =========================================================
   HOME — journey story, 3D fly-through
   ========================================================= */
.js{position:relative;height:calc(100vh + var(--n) * 46vh);background:radial-gradient(100% 70% at 70% 50%,#EAF2FF,var(--bg) 70%)}
.js-sticky{position:sticky;top:0;height:100vh;display:flex;align-items:center;overflow:hidden;padding-top:70px}
.js-grid{display:grid;grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr);gap:clamp(20px,4vw,56px);align-items:center;width:100%}
.js-copy{display:grid;gap:16px;align-content:start}
.js-copy .lede{font-size:16px}
.js-cap{display:flex;gap:14px;align-items:flex-start;padding:16px 18px;border-radius:20px;background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);min-height:98px}
.js-n{flex:none;width:46px;height:46px;border-radius:14px;display:grid;place-items:center;background:var(--gold);color:var(--gold-ink);font-family:var(--f-display);font-weight:900;font-size:22px}
.js-cap b{display:block;font-family:var(--f-display);font-weight:900;font-size:clamp(22px,2.2vw,28px);text-transform:uppercase;line-height:1}
.js-cap p{margin:6px 0 0;color:var(--muted);font-size:15px}
.js-cap.swap > *{animation:capin .45s var(--ease)}
.js-dots{display:flex;gap:6px}
.js-dots i{flex:1;height:4px;border-radius:4px;background:var(--line);transition:background .3s}
.js-dots i.done{background:var(--brand)}.js-dots i.on{background:var(--gold)}
.js-svcs{display:flex;flex-wrap:wrap;gap:6px}
.js-svc{display:inline-flex;align-items:center;gap:6px;padding:6px 11px 6px 8px;border-radius:999px;border:1px solid var(--line);background:var(--surface);font-size:12.5px;font-weight:600;color:var(--muted);text-decoration:none;transition:all .35s}
.js-svc svg{width:15px;height:15px}
.js-svc.lit{background:var(--brand);border-color:var(--brand);color:#fff;transform:translateY(-2px);box-shadow:0 8px 16px -8px rgba(30,58,158,.6)}
.js-cta{justify-self:start}
.js-stage{position:relative;height:min(68vh,560px);perspective:1100px;perspective-origin:50% 45%}
.js-world{position:absolute;inset:0;transform-style:preserve-3d}
.js-sc{--d:5;position:absolute;left:50%;top:50%;width:min(100%,560px);aspect-ratio:400/250;margin:0;border-radius:26px;overflow:hidden;background:#fff;
  box-shadow:0 40px 70px -30px rgba(13,26,79,.55),0 0 0 6px #fff;
  transform:translate(-50%,-50%) translate3d(calc(var(--sx,0) * 1px),calc(var(--sy,0) * 1px),calc(var(--z,0) * 1px)) rotateY(calc(var(--ry,0) * 1deg)) rotateX(calc(var(--rx,0) * 1deg));
  opacity:var(--o,0);will-change:transform,opacity}
.js-sc svg{display:block;width:100%;height:100%}
.js-badge{position:absolute;left:14px;top:12px;font-family:var(--f-mono);font-size:11px;letter-spacing:.14em;padding:4px 9px;border-radius:999px;background:rgba(255,255,255,.85);color:#0D1A4F}
.js-hint{position:absolute;left:50%;bottom:-6px;transform:translateX(-50%);margin:0;font-family:var(--f-mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);white-space:nowrap}
/* per-scene micro animations (when in front) */
.js-sc .js-bub,.js-sc .js-cloud{transform-origin:270px 70px;transform:scale(.4);opacity:0;transition:all .9s cubic-bezier(.3,1.4,.5,1)}
.js-sc.on .js-bub,.js-sc.on .js-cloud{transform:none;opacity:1}
.js-sc.on .js-sun{animation:jsrise 3s ease-in-out infinite alternate}
@keyframes jsrise{to{transform:translateY(-6px)}}
.js-pplane{offset-path:path("M150 150C220 60 280 60 330 110");offset-distance:0%;offset-rotate:auto}
.js-sc.on .js-pplane{animation:jspp 2.4s ease-in-out infinite}
@keyframes jspp{0%{offset-distance:0%;opacity:0}10%{opacity:1}85%{opacity:1}100%{offset-distance:100%;opacity:0}}
.js-sc.on .js-btn{animation:jsbtn 2.4s ease-in-out infinite}
@keyframes jsbtn{0%,10%{fill:#F2B33D}5%{fill:#FFD27A}}
.js-rows > g{opacity:0;transform:translateX(-10px);transition:all .5s var(--ease)}
.js-sc.on .js-rows > g{opacity:1;transform:none}
.js-sc.on .js-rows > g:nth-child(2){transition-delay:.25s}.js-sc.on .js-rows > g:nth-child(3){transition-delay:.5s}.js-sc.on .js-rows > g:nth-child(4){transition-delay:.75s}
.js-sc.on .js-pin{animation:jsbob 1.6s ease-in-out infinite}
@keyframes jsbob{50%{transform:translate(300px,32px)}}
.js-stamp,.js-shield{opacity:0;transition:opacity .2s}
.js-sc.on .js-stamp{opacity:.9;animation:jsslam .5s .3s cubic-bezier(.3,1.6,.5,1) both}
@keyframes jsslam{from{transform:translate(258px,110px) rotate(-14deg) scale(2.2);opacity:0}to{transform:translate(258px,110px) rotate(-14deg) scale(1)}}
.js-sc.on .js-shield{opacity:1;animation:jspop .6s 1s cubic-bezier(.3,1.6,.5,1) both}
@keyframes jspop{from{transform:translate(320px,170px) scale(0)}to{transform:translate(320px,170px) scale(1)}}
.js-postman{transform:translateX(-200px);transition:transform 1.2s var(--ease)}
.js-sc.on .js-postman{transform:none}
.js-items{opacity:0;transform:translateY(20px);transition:all .6s 1.1s var(--ease)}
.js-sc.on .js-items{opacity:1;transform:none}
.js-sc.on .js-clouds{animation:jscl 3s linear infinite}
@keyframes jscl{to{transform:translateX(-160px)}}
.js-sc.on .js-plane{animation:jsfly 2s ease-in-out infinite alternate}
@keyframes jsfly{from{transform:translate(170px,130px) rotate(78deg) scale(5)}to{transform:translate(210px,118px) rotate(80deg) scale(5)}}
.js-car{transform:translateX(0);transition:transform 2.2s cubic-bezier(.5,0,.3,1)}
.js-sc.on .js-car{transform:translateX(150px)}
.js-sc.on .js-bal{animation:jsballoon 3s ease-in-out infinite alternate}
@keyframes jsballoon{to{translate:0 -10px}}
.js-sc.on .js-flash{animation:jsflash 2.6s ease-out infinite}
@keyframes jsflash{0%,80%{opacity:0}84%{opacity:.85}100%{opacity:0}}
.js-sc.on .js-ship{animation:jsship 2.4s ease-in-out infinite alternate}
@keyframes jsship{from{transform:translate(120px,120px) rotate(-1.5deg)}to{transform:translate(140px,124px) rotate(1.5deg)}}
.js-sc.on .js-waves{animation:jswave 3s linear infinite}
@keyframes jswave{to{transform:translateX(120px)}}
.js-sc.on .js-plane2{animation:jsfly2 2s ease-in-out infinite alternate}
@keyframes jsfly2{from{transform:translate(240px,110px) rotate(-102deg) scale(5)}to{transform:translate(200px,124px) rotate(-100deg) scale(5)}}
.js-flap{transform-origin:0 -60px;transition:transform .8s var(--ease)}
.js-sc.on .js-flap{transform:scaleY(-1)}
.js-letter{position:absolute;left:50%;top:56%;width:62%;display:grid;justify-items:center;gap:4px;padding:16px 14px;background:#fff;border-radius:10px;box-shadow:0 14px 30px -12px rgba(0,0,0,.35);text-align:center;transform:translate(-50%,-10%);opacity:0;transition:transform 1s .5s cubic-bezier(.3,1.3,.5,1),opacity .6s .5s}
.js-sc.on .js-letter{transform:translate(-50%,-62%);opacity:1}
.js-letter small{font-family:var(--f-mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--teal)}
.js-letter b{font-family:var(--f-display);font-weight:900;font-size:clamp(18px,2.4vw,28px);text-transform:uppercase;line-height:1;color:#0D1A4F}
.js-letter b.g{font-family:var(--f-serif);font-weight:400;text-transform:none;color:#9A6500}
@media (max-width:900px){
  .js{height:calc(100vh + var(--n) * 34vh)}
  .js-sticky{align-items:flex-start;padding-top:80px}
  .js-grid{grid-template-columns:1fr;gap:10px}
  .js-copy{display:contents}
  .js-copy .sec-head{order:1}.js-copy .lede{display:none}
  .js-stage{order:2;height:min(34vh,300px)}
  .js-cap{order:3;min-height:0;padding:12px 14px}.js-dots{order:4}
  .js-svcs,.js-cta{display:none}
  .js-copy .h2{font-size:clamp(28px,8vw,36px)}
  .js-sc{width:92%}
  .js-hint{display:none}
}
@media (prefers-reduced-motion:reduce){
  .js{height:auto}.js-sticky{position:static;height:auto;padding-block:60px}
  .js-stage{height:auto;perspective:none}.js-world{position:relative;display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px}
  .js-sc{position:relative;left:auto;top:auto;transform:none;opacity:1;width:100%}
}
@media (min-width:901px){.js-sc{width:min(100%,640px)}.js-stage{height:min(72vh,600px)}}

/* =========================================================
   HOME — journey story world (camera-driven, cinematic)
   ========================================================= */
.ws{position:relative;height:calc(100vh + var(--n) * 52vh);background:#0E1A4F;padding:0}
.ws-sticky{position:sticky;top:0;height:100vh;overflow:hidden;background:#C9E4F4}
.ws-svg{position:absolute;inset:0;width:100%;height:100%;display:block}
.ws-svg .w-t{font-family:var(--f-display),"Big Shoulders Display","Arial Narrow",sans-serif}
.ws-fx{position:absolute;inset:0;z-index:1;pointer-events:none;
  background:radial-gradient(120% 90% at 60% 50%,transparent 55%,rgba(8,16,44,.28) 100%),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='.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .5 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  opacity:.22;mix-blend-mode:multiply}
.ws.s7 .ws-fx{animation:wsnap 2.6s ease-out infinite}
@keyframes wsnap{0%,84%{box-shadow:inset 0 0 0 100vmax rgba(255,255,255,0)}87%{box-shadow:inset 0 0 0 100vmax rgba(255,255,255,.45)}100%{box-shadow:inset 0 0 0 100vmax rgba(255,255,255,0)}}
.ws .w-act{will-change:transform,opacity}
.ws-ui{position:relative;z-index:3;height:100%;display:flex;flex-direction:column;justify-content:space-between;padding-top:92px;padding-bottom:22px;pointer-events:none}
.ws-ui a,.ws-ui button{pointer-events:auto}
.ws-panel{width:min(400px,100%);display:grid;gap:12px;padding:20px 20px 18px;border-radius:24px;background:color-mix(in srgb,var(--surface) 88%,transparent);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1px solid color-mix(in srgb,var(--line) 70%,transparent);box-shadow:0 30px 60px -30px rgba(8,16,44,.5)}
.ws-panel .h2{font-size:clamp(30px,3.2vw,46px)}
.ws-lede{margin:0;font-size:15px;color:var(--muted)}
.ws-panel .js-cap{box-shadow:none;background:var(--bg);min-height:92px}
.ws-bottom{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap}
.ws-bottom .js-svcs{max-width:860px;padding:10px;border-radius:20px;background:color-mix(in srgb,var(--surface) 84%,transparent);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
.ws-hint{position:absolute;left:50%;bottom:8px;transform:translateX(-50%);margin:0;z-index:3;font-family:var(--f-mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:#13246E;opacity:.75;transition:opacity .4s}
.ws.started .ws-hint{opacity:0}
/* letter overlay (final step) */
.ws-letter{position:absolute;left:50%;top:50%;z-index:4;width:min(440px,84vw);display:grid;justify-items:center;gap:6px;padding:28px 24px 26px;background:linear-gradient(#FFFDF6,#F8F0DC);border-radius:14px;border:1px solid #E3D9BE;box-shadow:0 50px 90px -30px rgba(8,16,44,.6),0 0 0 6px rgba(255,253,246,.5);text-align:center;transform:translate(-50%,-20%) rotate(-6deg) scale(.7);opacity:0;transition:transform .9s cubic-bezier(.3,1.3,.5,1),opacity .5s;pointer-events:none}
.ws.end .ws-letter{opacity:1;transform:translate(-20%,-50%) rotate(-2deg) scale(1)}
.ws-letter small{font-family:var(--f-mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--teal)}
.ws-letter b{font-family:var(--f-display);font-weight:900;font-size:clamp(30px,4vw,50px);text-transform:uppercase;line-height:1;color:#0D1A4F}
.ws-letter b.g{font-family:var(--f-serif);font-weight:400;text-transform:none;font-size:clamp(26px,3.2vw,38px);color:#9A6500}
/* scenery loops */
.w-cl{animation:wcl var(--d,60s) ease-in-out infinite alternate}
@keyframes wcl{from{transform:translateX(-30px)}to{transform:translateX(30px)}}
.w-bal{animation:wbal var(--d,5s) ease-in-out infinite alternate}
@keyframes wbal{to{transform:translateY(-16px)}}
.w-waves{animation:wwave 5s linear infinite}
@keyframes wwave{to{transform:translateX(-90px)}}
.w-flag{animation:wflag 1.6s ease-in-out infinite alternate;transform-box:fill-box;transform-origin:0 0}
@keyframes wflag{to{transform:scaleX(1.5)}}
.w-sock{animation:wsock 1.4s ease-in-out infinite alternate;transform-box:fill-box;transform-origin:0 50%}
@keyframes wsock{to{transform:scaleX(.82) rotate(3deg)}}
.w-bird{animation:wbird var(--b,.6s) ease-in-out infinite alternate;transform-box:fill-box;transform-origin:50% 100%}
@keyframes wbird{to{transform:scaleY(-.6)}}
.w-birds{animation:wbirds 30s linear infinite}
@keyframes wbirds{from{transform:translateX(-80px)}to{transform:translateX(160px)}}
.w-bulb{animation:wbulb 1.8s ease-in-out infinite alternate}
.w-bulb:nth-child(odd){animation-delay:-.9s}
@keyframes wbulb{to{opacity:.35}}
.w-ping{opacity:0;transform-box:fill-box;transform-origin:50% 50%}
.ws.s1 .w-ping{animation:wping 1.6s ease-out infinite}
@keyframes wping{from{opacity:.9;transform:scale(.4)}to{opacity:0;transform:scale(2.2)}}
/* actors */
.w-act .lg,.w-act .arm,.w-act .arm2{transform-box:fill-box;transform-origin:50% 4px;transition:transform .3s}
.w-act.walk .l1,.w-act.walk .arm2{animation:wleg .42s ease-in-out infinite alternate}
.w-act.walk .l2,.w-act.walk .arm{animation:wleg .42s ease-in-out infinite alternate-reverse}
@keyframes wleg{from{transform:rotate(-20deg)}to{transform:rotate(20deg)}}
.a-tour .phn{transform:rotate(8deg)}
.ws.s7 .a-tour .phn{transform:rotate(-112deg)}
.a-tour .w-fl{opacity:0}
.ws.s7 .a-tour .w-fl{animation:wfl 2.6s ease-out infinite}
@keyframes wfl{0%,84%{opacity:0}87%{opacity:1}100%{opacity:0}}
.w-act .wh{transform-box:fill-box;transform-origin:50% 50%}
.w-act.walk .wh{animation:wspin .5s linear infinite}
@keyframes wspin{to{transform:rotate(360deg)}}
.a-phone circle{animation:wglow 1.6s ease-in-out infinite alternate}
@keyframes wglow{to{opacity:.04}}
.a-stamp,.a-shield{opacity:0;transform-box:fill-box;transform-origin:50% 50%}
.ws.s3 .a-stamp{animation:wslam .5s .25s cubic-bezier(.3,1.6,.5,1) forwards}
@keyframes wslam{from{opacity:0;transform:scale(2.4)}to{opacity:.95;transform:scale(1)}}
.ws.s3 .a-shield{animation:wpop .5s .85s cubic-bezier(.3,1.6,.5,1) forwards}
@keyframes wpop{from{opacity:0;transform:scale(0)}to{opacity:1;transform:scale(1)}}
.a-items .it{transform-box:fill-box;transform-origin:50% 100%}
.ws.s4 .a-items .it1{animation:wbob 2.2s ease-in-out infinite alternate}
.ws.s4 .a-items .it2{animation:wbob 2.2s -1.1s ease-in-out infinite alternate}
@keyframes wbob{to{transform:translateY(-8px) rotate(-3deg)}}
.a-plane .pl{animation:wfloat 3s ease-in-out infinite alternate}
.ws.s4 .a-plane .pl,.ws.s6 .a-plane .pl{animation:none}
.a-plane .gear{transition:opacity .3s}
.ws.air .a-plane .gear{opacity:0}
@keyframes wfloat{to{transform:translateY(-5px)}}
.a-jplane .prop{transform-box:fill-box;transform-origin:50% 50%;animation:wprop .12s linear infinite alternate}
@keyframes wprop{to{transform:scaleY(.15)}}
.a-sky .fl{animation:wflut .5s ease-in-out infinite alternate}
@keyframes wflut{to{transform:translate(1.5px,-2px) rotate(2deg)}}
.a-sky .spd path{animation:wspd .5s linear infinite}
.a-sky .spd path:nth-child(even){animation-delay:-.25s}
@keyframes wspd{from{transform:translateY(30px);opacity:0}40%{opacity:.8}to{transform:translateY(-40px);opacity:0}}
.a-chute .canopy{transform-box:fill-box;transform-origin:50% 100%;transform:scale(.12,.2);transition:transform .7s cubic-bezier(.2,1.5,.4,1)}
.a-chute.open .canopy{transform:none}
.a-chute .cw{animation:wsway 3s ease-in-out infinite alternate;transform-origin:0 -190px;transform-box:view-box}
@keyframes wsway{from{transform:rotate(-4deg)}to{transform:rotate(4deg)}}
.a-ship .sh-in{animation:wrock 4s ease-in-out infinite alternate}
@keyframes wrock{from{transform:rotate(-.6deg)}to{transform:rotate(.6deg) translateY(2px)}}
.a-ship .wake{animation:wwake 1.6s ease-in-out infinite alternate}
@keyframes wwake{to{opacity:.55;transform:translateX(-14px)}}
.a-ship .smk{animation:wsmk 3s ease-out infinite}
@keyframes wsmk{from{transform:translate(0,0) scale(.6);opacity:.7}to{transform:translate(-50px,-40px) scale(2.2);opacity:0}}
.a-ship .w-glow{opacity:0;transition:opacity 1s}
.ws.dusk .a-ship .w-glow{opacity:.75}
@media (max-width:900px){
  .ws{height:calc(100vh + var(--n) * 42vh)}
  .ws-ui{padding-top:76px;padding-bottom:16px}
  .ws-panel{width:100%;padding:12px 14px;gap:6px;border-radius:18px}
  .ws-panel .h2{font-size:clamp(24px,7vw,30px)}
  .ws-panel .eyebrow{font-size:10px}
  .ws-lede,.ws-bottom .js-svcs{display:none}
  .ws-panel .js-cap,.ws-panel .js-dots{display:none}
  .ws-bottom{display:grid;gap:8px;justify-items:stretch}
  .ws-bottom .btn{display:none}
  .ws.end .ws-letter{transform:translate(-50%,-50%) rotate(-2deg) scale(1)}
  .ws-hint{display:none}
}
.ws-mcap{display:none}
@media (max-width:900px){
  .ws-mcap{display:flex;padding:12px 14px;border-radius:16px;background:color-mix(in srgb,var(--surface) 90%,transparent);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);box-shadow:0 18px 40px -24px rgba(13,26,79,.45);min-height:0}
  .ws.end .ws-mcap{opacity:0}
}
@media (prefers-reduced-motion:reduce){.w-cl,.w-bal,.w-waves,.w-flag,.w-sock,.w-bird,.w-birds,.w-bulb,.a-plane .pl,.a-sky .fl,.a-ship .sh-in,.a-chute .cw{animation:none}}

/* =========================================================
   HOME — memory collage (compact)
   ========================================================= */
.mc{position:relative;overflow:hidden;background:radial-gradient(55% 60% at 12% 0%,color-mix(in srgb,var(--gold) 14%,transparent),transparent 70%),color-mix(in srgb,var(--gold) 7%,var(--bg))}
.mc::before{content:"";position:absolute;inset:0;background:url(../assets/dotmap.svg) 50% 60%/min(1400px,150%) auto no-repeat;opacity:.06;pointer-events:none}
.mc .wrap{position:relative}
.mc-head{max-width:720px;margin:0 auto clamp(22px,3vw,36px);text-align:center}
.mc-head .lede{margin-inline:auto}
.mc-marq{--cw:clamp(190px,21vw,290px);--g:clamp(14px,1.6vw,22px);overflow:hidden;padding:12px 0 34px;-webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent)}
.mc-move{display:flex;width:max-content;will-change:transform}
.mc-marq{touch-action:pan-y;cursor:grab}
.mc-marq.drag{cursor:grabbing}
.mc-marq img{-webkit-user-drag:none;user-select:none;pointer-events:none}
.mc-wrap{position:relative}
.mc-arr{position:absolute;top:calc(50% - 11px);transform:translateY(-50%);z-index:2;width:52px;height:52px;border-radius:50%;border:1px solid var(--line);background:var(--surface);color:var(--brand);display:grid;place-items:center;cursor:pointer;box-shadow:0 12px 28px -12px rgba(13,26,79,.45);transition:transform .25s var(--ease),background .25s,color .25s}
.mc-arr:hover{transform:translateY(-50%) scale(1.08);background:var(--brand);color:#fff}
.mc-arr:focus-visible{outline:3px solid var(--gold);outline-offset:3px}
.mc-prev{left:max(14px,calc((100vw - 1200px) / 2 - 10px))}.mc-prev svg{transform:rotate(180deg)}
.mc-next{right:max(14px,calc((100vw - 1200px) / 2 - 10px))}
.mc-track{list-style:none;margin:0;padding:0;display:flex}
.mc-it{flex:none;width:var(--cw);margin-right:var(--g)}
.mc-it img{display:block;width:100%;height:auto;aspect-ratio:600/706;object-fit:cover;border-radius:16px;background:#E9E3D6;box-shadow:0 1px 2px rgba(13,26,79,.08),0 18px 32px -20px rgba(13,26,79,.5)}
@media (max-width:640px){.mc-marq{--cw:58vw;--g:12px}.mc-arr{width:42px;height:42px}.mc-prev{left:10px}.mc-next{right:10px}}

/* hero sentence selects: big visible value, normal-size native list */
.hw-blank.hw-sb{position:relative}
.hw-sv{font-family:var(--f-body);font-weight:700;font-size:.78em;color:var(--brand);border-bottom:2.5px dashed color-mix(in srgb,var(--brand) 45%,transparent);padding:2px 22px 3px 4px;white-space:nowrap;cursor:pointer;transition:border-color .25s,background .25s;
  background-image:linear-gradient(45deg,transparent 50%,var(--brand) 50%),linear-gradient(135deg,var(--brand) 50%,transparent 50%);background-size:5px 5px;background-position:calc(100% - 10px) 55%,calc(100% - 5px) 55%;background-repeat:no-repeat}
.hw-blank.hw-sb select{position:absolute;inset:0;width:100%;height:100%;opacity:0;font-size:16px;font-weight:500;font-family:var(--f-body);padding:0;border:0;margin:0;background:none;cursor:pointer;color:#0D1A4F}
.hw-blank.hw-sb:focus-within .hw-sv{border-bottom-style:solid;border-color:var(--gold);background-color:color-mix(in srgb,var(--gold) 10%,transparent)}
@media (max-width:640px){.esim-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.esim-row .dd-sm{min-width:0;width:100%}}
@media (max-width:640px){.esim .phone{width:min(230px,62vw);border-radius:36px}.esim .sc-pill{font-size:11px;white-space:nowrap}.esim .sbar{padding-inline:14px;font-size:11px}}

/* mobile menu: overlay drawer (no page jump), smooth open */
.drawer{position:absolute;left:0;right:0;top:100%;background:var(--bg);box-shadow:0 24px 40px -24px rgba(13,26,79,.45);max-height:calc(100vh - 74px);max-height:calc(100dvh - 74px);overflow:auto;overscroll-behavior:contain;animation:drawerin .28s var(--ease) both;transform-origin:top center}
@keyframes drawerin{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}
html.menu-open body{overflow:hidden}
.menu-scrim{position:fixed;inset:0;top:74px;z-index:59;background:rgba(8,14,40,.35);animation:scrimin .25s ease both}
@keyframes scrimin{from{opacity:0}}
@media (prefers-reduced-motion:reduce){.drawer,.menu-scrim{animation:none}}
.form-err{display:block;line-height:1.5}.form-err a{color:inherit;text-decoration:underline;text-underline-offset:2px}

/* =========================================================
   HOME — Japan in cherry blossom season (sakura theme)
   ========================================================= */
.hs{position:relative;overflow:hidden;isolation:isolate;background:linear-gradient(180deg,#FFF1F5 0%,#FDE3EB 55%,#F9D3DF 100%)}
.hs-bg{position:absolute;inset:0;z-index:-1;pointer-events:none}
.hs-fuji{position:absolute;left:0;right:0;bottom:0;width:100%;height:clamp(120px,18vw,240px);opacity:.75}
.hs-branch{position:absolute;bottom:-20px;left:-40px;width:clamp(220px,26vw,380px);height:auto;filter:drop-shadow(0 6px 10px rgba(160,60,90,.15));animation:hssway 7s ease-in-out infinite alternate;transform-origin:0 10%;transform:rotate(180deg) scaleX(-1)}
.hs-branch.r{bottom:auto;left:auto;top:-4px;right:-30px;transform:scaleX(-1);transform-origin:50% 0;animation-name:hsswayr;animation-duration:8s;width:clamp(300px,40vw,600px)}
@keyframes hssway{from{transform:rotate(178.8deg) scaleX(-1)}to{transform:rotate(181.4deg) scaleX(-1)}}
@keyframes hsswayr{from{transform:scaleX(-1) rotate(-1.2deg)}to{transform:scaleX(-1) rotate(1.6deg)}}
.hs-fall{position:absolute;inset:0}
.hs-p{position:absolute;top:-30px;left:var(--x);width:calc(18px * var(--s));height:calc(14px * var(--s));border-radius:150% 0 150% 0;background:linear-gradient(135deg,#FFD6E2,#F49AB6);opacity:.9;animation:hsfall var(--d) linear infinite;animation-delay:var(--dl);will-change:transform}
.hs-p::after{content:"";position:absolute;inset:0;border-radius:inherit;animation:hsflut calc(var(--d) / 4) ease-in-out infinite alternate;background:inherit;opacity:0}
.hs-p.lf{background:linear-gradient(135deg,#F7A9C0,#E06A91);width:calc(16px * var(--s));height:calc(9px * var(--s));border-radius:0 100% 0 100%}
@keyframes hsfall{
  0%{transform:translate(0,-20px) rotate(var(--r)) rotateY(0);opacity:0}
  8%{opacity:.95}
  25%{transform:translate(var(--sw),22vh) rotate(calc(var(--r) + 90deg)) rotateY(120deg)}
  50%{transform:translate(calc(var(--sw) * -.6),46vh) rotate(calc(var(--r) + 180deg)) rotateY(240deg)}
  75%{transform:translate(calc(var(--sw) * .8),70vh) rotate(calc(var(--r) + 270deg)) rotateY(360deg)}
  92%{opacity:.85}
  100%{transform:translate(calc(var(--sw) * -.3),96vh) rotate(calc(var(--r) + 360deg)) rotateY(480deg);opacity:0}}
.hs .sec-head{position:relative}
.hs .sec-head .eyebrow{color:#B83A64}
.hs .h2 em{color:#D2577A}
.hs .pass{border-color:#F5C2D1;box-shadow:0 30px 60px -30px rgba(178,58,100,.45)}
.hs .tag-pill{background:#FCE0E9;color:#B83A64}
.hs .pass-stub{background:linear-gradient(160deg,#C2416F,#8E2550);color:#FFF4F7;border-left-color:rgba(255,240,245,.4)}
.hs .pass-stub .countdown b{color:#FFE3EC}
.hs .pass-stub .countdown span{color:#F9C9D8}
.hs .route .path svg{color:#D2577A}
.hs .pass::before{content:"";position:absolute;right:clamp(220px,24vw,290px);top:-40px;width:180px;height:180px;background:radial-gradient(circle,rgba(247,182,200,.35),transparent 70%);pointer-events:none}
@media (max-width:760px){.hs{padding-top:120px}.hs-branch{display:none}.hs-branch.r{display:block;width:300px;right:-60px;top:-6px}.hs-p:nth-child(n+26){display:none}}
:root[data-theme="dark"] .hs{background:linear-gradient(180deg,#2A1530,#3A1A3A 60%,#4A2045)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .hs{background:linear-gradient(180deg,#2A1530,#3A1A3A 60%,#4A2045)}}
:root[data-theme="dark"] .hs-fuji{opacity:.25}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .hs-fuji{opacity:.25}}
@media (prefers-reduced-motion:reduce){.hs-p{animation:none;display:none}.hs-branch{animation:none}}

/* hero sentence: stable layout (fields fill their line, nothing reflows while typing or cycling) */
.hw-sentence{display:grid;gap:6px 0}
.hw-ln{display:flex;align-items:baseline;gap:10px;min-width:0}
.hw-ln2{flex-wrap:wrap;row-gap:6px}
.hw-grp{display:flex;align-items:baseline;gap:10px;flex:1 1 220px;min-width:0}
.hw-w{white-space:nowrap;flex:none}
.hw-dest{flex:1 1 auto;min-width:0}
.hw-pick{width:100%;max-width:none;min-height:1.6em}
.hw-pick-t{white-space:normal;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.25;padding-block:2px}
.hw-grp .hw-sb{flex:1 1 auto;min-width:0}
.hw-sv{display:block;width:100%;overflow:hidden;text-overflow:ellipsis}
.hw-pick.bad{border-bottom-color:var(--err);border-bottom-style:solid;background-color:color-mix(in srgb,var(--err) 7%,transparent)}
.hw-dest-err{margin:6px 0 0;font-size:13px;font-weight:600;color:var(--err)}
@media (max-width:640px){
  .hw-ln1{flex-wrap:wrap;row-gap:4px}
  .hw-ln1 .hw-dest{flex-basis:100%}
  .hw-grp{flex-basis:100%}
}
.jp-open-cta{justify-self:start;margin-top:6px}
@media (min-width:641px){
  .hw-ln2{display:grid;grid-template-columns:auto minmax(0,1fr) auto minmax(0,1.35fr);column-gap:10px;align-items:baseline}
  .hw-grp{display:contents}
  .hw-grp:last-child .hw-sb{display:flex;align-items:baseline}
}
.hw-sv,.hw-pick{font-size:.74em}

/* =========================================================
   Dark mode: keep every text readable
   ========================================================= */
@media (prefers-color-scheme:dark){
:root:not([data-theme="light"]) .tour:hover,:root:not([data-theme="light"]) .st-persona:nth-child(even) svg,:root:not([data-theme="light"]) .st-pass-top,:root:not([data-theme="light"]) .st-wcard.gold,:root:not([data-theme="light"]) .hcard.feat,:root:not([data-theme="light"]) .st-countries li:hover,:root:not([data-theme="light"]) .ty-chip:hover,:root:not([data-theme="light"]) .ty-chip:focus-visible,:root:not([data-theme="light"]) .ty-chip.on,:root:not([data-theme="light"]) .dp-chip:hover,:root:not([data-theme="light"]) .dp-chip.on,:root:not([data-theme="light"]) .ar-step:nth-of-type(even) .ar-num,:root:not([data-theme="light"]) .jr-chaps button.on,:root:not([data-theme="light"]) .hb-cat:hover,:root:not([data-theme="light"]) .js-svc.lit,:root:not([data-theme="light"]) .mc-arr:hover{background:#2F4FB8;border-color:#2F4FB8;color:#fff}
:root:not([data-theme="light"]) article.doc{background:var(--surface);color:var(--ink);border:1px solid var(--line)}
:root:not([data-theme="light"]) article.doc a{color:var(--brand)}
:root:not([data-theme="light"]) .doc-toc .btn,:root:not([data-theme="light"]) .doc-toc .btn-gold{color:var(--gold-ink)}
:root:not([data-theme="light"]) .hw-sky .sk-cl{background:#2C3F78;opacity:.55}
:root:not([data-theme="light"]) .ws-letter small{color:#2F6F7E}
:root:not([data-theme="light"]) .hstamp{background:rgba(255,253,246,.92)}
}
:root[data-theme="dark"] .tour:hover,:root[data-theme="dark"] .st-persona:nth-child(even) svg,:root[data-theme="dark"] .st-pass-top,:root[data-theme="dark"] .st-wcard.gold,:root[data-theme="dark"] .hcard.feat,:root[data-theme="dark"] .st-countries li:hover,:root[data-theme="dark"] .ty-chip:hover,:root[data-theme="dark"] .ty-chip:focus-visible,:root[data-theme="dark"] .ty-chip.on,:root[data-theme="dark"] .dp-chip:hover,:root[data-theme="dark"] .dp-chip.on,:root[data-theme="dark"] .ar-step:nth-of-type(even) .ar-num,:root[data-theme="dark"] .jr-chaps button.on,:root[data-theme="dark"] .hb-cat:hover,:root[data-theme="dark"] .js-svc.lit,:root[data-theme="dark"] .mc-arr:hover{background:#2F4FB8;border-color:#2F4FB8;color:#fff}
:root[data-theme="dark"] article.doc{background:var(--surface);color:var(--ink);border:1px solid var(--line)}
:root[data-theme="dark"] article.doc a{color:var(--brand)}
:root[data-theme="dark"] .doc-toc .btn,:root[data-theme="dark"] .doc-toc .btn-gold{color:var(--gold-ink)}
:root[data-theme="dark"] .hw-sky .sk-cl{background:#2C3F78;opacity:.55}
:root[data-theme="dark"] .ws-letter small{color:#2F6F7E}
:root[data-theme="dark"] .hstamp{background:rgba(255,253,246,.92)}
@media (prefers-color-scheme:dark){
:root:not([data-theme="light"]) .hs .sec-head .eyebrow{color:#F49AB6}
:root:not([data-theme="light"]) .hs .h2 em{color:#F7A9C0}
:root:not([data-theme="light"]) .hs .tag-pill{background:#4A2045;color:#F7A9C0}
:root:not([data-theme="light"]) .pv-pill.on,:root:not([data-theme="light"]) .pv-pill[aria-selected="true"]{background:#C2416F;color:#fff}
:root:not([data-theme="light"]) .st-msg small{color:#2F6F7E}
:root:not([data-theme="light"]) .ar-pk-warn{color:#FF8FA3}
}
:root[data-theme="dark"] .hs .sec-head .eyebrow{color:#F49AB6}
:root[data-theme="dark"] .hs .h2 em{color:#F7A9C0}
:root[data-theme="dark"] .hs .tag-pill{background:#4A2045;color:#F7A9C0}
:root[data-theme="dark"] .pv-pill.on,:root[data-theme="dark"] .pv-pill[aria-selected="true"]{background:#C2416F;color:#fff}
:root[data-theme="dark"] .st-msg small{color:#2F6F7E}
:root[data-theme="dark"] .ar-pk-warn{color:#FF8FA3}

/* =========================================================
   Page hero headings: one size on every page, main line on one line
   ========================================================= */
:root{--hero-h:clamp(40px,4.6vw,66px);--hero-sub:clamp(19px,1.9vw,28px)}
.phero h1.h1,.hero h1.h1,.gstage h1.h1,.st-h1,.hw-h1,.jp-title,.ar-h1{font-size:var(--hero-h);line-height:.95}
.h1m{display:block;white-space:nowrap}
.phero h1 .serif,.hero h1 .serif,.gstage .h1 .serif,.hw-h1 .serif{font-size:var(--hero-sub);margin-top:.35em}
.jp-title em{font-size:1em}
@media (max-width:640px){:root{--hero-h:34px;--hero-sub:18px}}
.phero h1.h1,.hero h1.h1,.gstage h1.h1,.st-h1,.hw-h1,.jp-title{min-width:0;max-width:100%}
/* heading hierarchy: hero headings stay the largest on every page */
:root{--hero-h:clamp(42px,5.4vw,76px)}
.h2{font-size:clamp(32px,4.4vw,60px)}
@media (max-width:640px){:root{--hero-h:36px}.h2{font-size:30px}}
.ar-h1{font-size:clamp(34px,3.9vw,56px)}@media (max-width:640px){.ar-h1{font-size:32px}}

/* =========================================================
   Visa form: date range picker
   ========================================================= */
.drp{position:relative}
.drp input[type=hidden]{display:none!important}
.drp-btn{width:100%;display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:14px;border:1.5px solid var(--line);background:var(--bg);color:var(--ink);font:inherit;text-align:left;cursor:pointer;transition:border-color .2s,box-shadow .2s}
.drp-btn:hover,.drp-btn[aria-expanded="true"]{border-color:var(--brand);box-shadow:0 0 0 4px color-mix(in srgb,var(--brand) 14%,transparent)}
.drp-ic{flex:none;width:40px;height:40px;border-radius:12px;display:grid;place-items:center;background:color-mix(in srgb,var(--gold) 22%,transparent);color:var(--gold-text)}
.drp-ic svg{width:22px;height:22px}
.drp-col{flex:1;min-width:0;display:grid;gap:2px}
.drp-col small{font-family:var(--f-mono);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.drp-col b{font-size:15px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--muted)}
.drp-btn.has-s .drp-col[data-k=start] b,.drp-btn.has-e .drp-col[data-k=end] b{color:var(--ink)}
.drp-sep{flex:none;color:var(--muted)}.drp-sep svg{width:18px;height:18px}
.drp-n{flex:none;padding:5px 10px;border-radius:999px;background:var(--brand);color:var(--brand-ink);font:700 12px var(--f-mono);letter-spacing:.06em}
.drp.bad .drp-btn{border-color:var(--err)}
.drp.valid .drp-btn{border-color:color-mix(in srgb,var(--ok) 60%,var(--line))}
.drp-pop{position:absolute;left:0;top:calc(100% + 8px);z-index:40;width:max-content;max-width:min(640px,92vw);background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:20px;box-shadow:0 30px 60px -20px rgba(13,26,79,.45);padding:14px 16px 12px;animation:drawerin .22s var(--ease) both}
.drp-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:4px}
.drp-hint{margin:0;font-weight:700;font-size:14px;color:var(--brand)}
.drp-nav{width:36px;height:36px;border-radius:50%;border:1px solid var(--line);background:var(--bg);color:var(--ink);font-size:22px;line-height:1;cursor:pointer;display:grid;place-items:center}
.drp-nav:hover:not(:disabled){background:var(--brand);color:var(--brand-ink);border-color:var(--brand)}
.drp-nav:disabled{opacity:.35;cursor:default}
.drp-months{display:flex;gap:22px}
.drp-month{width:266px}
.drp-mt{margin:6px 0 8px;text-align:center;font-family:var(--f-display);font-weight:800;font-size:18px;text-transform:uppercase;letter-spacing:.04em}
.drp-grid{display:grid;grid-template-columns:repeat(7,38px);gap:0}
.drp-dn{height:26px;display:grid;place-items:center;font:600 11px var(--f-mono);color:var(--muted)}
.drp-d{position:relative;height:38px;border:0;background:none;color:var(--ink);font:600 14px var(--f-body);cursor:pointer;border-radius:50%;z-index:0}
.drp-d:hover:not(:disabled){background:color-mix(in srgb,var(--brand) 12%,transparent)}
.drp-d.today{box-shadow:inset 0 0 0 1.5px var(--gold)}
.drp-d.past{color:color-mix(in srgb,var(--muted) 55%,transparent);cursor:not-allowed}
.drp-d.in{border-radius:0;background:color-mix(in srgb,var(--brand) 13%,transparent)}
.drp-d.s,.drp-d.e{background:var(--brand);color:var(--brand-ink)}
.drp-d.s:hover,.drp-d.e:hover{background:var(--brand)}
.drp-foot{display:flex;justify-content:space-between;align-items:center;margin-top:10px;padding-top:10px;border-top:1px solid var(--line)}
.drp-clear{border:0;background:none;color:var(--muted);font:600 13px var(--f-body);text-decoration:underline;text-underline-offset:3px;cursor:pointer}
@media (max-width:760px){
  .drp-pop{left:50%;transform:translateX(-50%);animation:none;max-width:94vw;padding:12px}
  .drp-month{width:min(300px,84vw)}
  .drp-grid{grid-template-columns:repeat(7,1fr)}
  .drp-col b{font-size:13.5px}
  .drp-ic{display:none}
}

/* =========================================================
   Customise wizard: compact, fits one screen
   ========================================================= */
.wiz-body{min-height:0;padding:20px clamp(18px,2.6vw,28px) 22px}
.wstep{gap:14px}
.wstep h2{font-size:clamp(26px,2.5vw,34px);line-height:1}
.wstep .hint{margin-top:-6px;font-size:14px}
.wiz-top{padding:14px clamp(18px,2.6vw,28px);gap:10px}
.wiz-nav{padding:12px clamp(18px,2.6vw,28px)}
.dest-grid{grid-template-columns:repeat(4,1fr);gap:8px}
.dpick{aspect-ratio:auto;height:74px;border-radius:12px}
.dpick .bg::after{height:42%}
.dpick .tx{inset:auto 10px 8px 10px}
.dpick .tx b{font-size:16px;letter-spacing:.02em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;overflow-wrap:normal;text-shadow:0 1px 6px rgba(0,0,0,.35)}
.dpick .chk{top:7px;right:7px;width:22px;height:22px}
.dpick .chk svg{width:12px;height:12px}
.big-chips{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}
.bchip span{padding:12px 14px;gap:4px;border-radius:14px}
.bchip span svg{width:24px;height:24px}
.bchip span b{font-size:18px}
.bchip span small{font-size:12.5px}
.months{grid-template-columns:repeat(auto-fill,minmax(78px,1fr));gap:6px}
.mchip span{padding:8px 4px}
.mchip span b{font-size:18px}
.counter-row{gap:8px}
.fixed-pax{padding:12px 14px}
.fixed-pax b{font-size:20px}
.bp-route .c{font-size:clamp(28px,2.8vw,40px)}
.bp-route .c.long{font-size:clamp(22px,2.2vw,28px)}
.bp-route .c.xlong{font-size:clamp(18px,1.7vw,22px)}
@media (max-width:700px){
  .dest-grid{grid-template-columns:repeat(3,1fr);gap:6px}
  .dpick{height:58px;border-radius:10px}
  .dpick .tx{inset:auto 7px 6px 7px}
  .dpick .tx b{font-size:11.5px;letter-spacing:0}
  .dpick .chk{width:18px;height:18px;top:5px;right:5px}
  .big-chips{grid-template-columns:repeat(2,1fr)}
  .bchip span{padding:10px 12px}
  .bchip span small{font-size:12px}
  .wiz-nav{position:sticky;bottom:0;z-index:5;box-shadow:0 -10px 20px -14px rgba(13,26,79,.35)}
  .wiz-main{overflow:visible}
}
@media (max-width:980px){.wiz-side{order:2}}

/* =========================================================
   Travel insurance: coverage explorer
   ========================================================= */
.cov{display:grid;grid-template-columns:minmax(240px,320px) 1fr;gap:18px;align-items:stretch}
.cov-tabs{display:grid;gap:8px;align-content:start}
.cov-tab{display:flex;align-items:center;gap:12px;width:100%;padding:12px 14px;border-radius:16px;border:1.5px solid var(--line);background:var(--surface);color:var(--ink);font:inherit;text-align:left;cursor:pointer;transition:border-color .25s,background .25s,transform .25s var(--ease),box-shadow .25s}
.cov-tab:hover{transform:translateX(3px);border-color:var(--c)}
.cov-tab.on{border-color:var(--c);background:color-mix(in srgb,var(--c) 10%,var(--surface));box-shadow:0 14px 28px -18px var(--c)}
.cov-ti{flex:none;width:42px;height:42px;border-radius:12px;display:grid;place-items:center;background:color-mix(in srgb,var(--c) 15%,transparent);color:var(--c);transition:background .25s,color .25s}
.cov-tab.on .cov-ti{background:var(--c);color:#fff}
.cov-ti svg{width:22px;height:22px}
.cov-tt{display:grid;gap:1px;min-width:0}
.cov-tt b{font-family:var(--f-display);font-weight:800;font-size:19px;text-transform:uppercase;line-height:1.05}
.cov-tt small{font-family:var(--f-mono);font-size:11px;letter-spacing:.08em;color:var(--muted);text-transform:uppercase}
.cov-panel{height:100%;border-radius:22px;padding:clamp(18px,2.6vw,30px);background:linear-gradient(150deg,color-mix(in srgb,var(--c) 14%,var(--surface)),var(--surface) 60%);border:1.5px solid color-mix(in srgb,var(--c) 35%,var(--line));position:relative;overflow:hidden}
.cov-panel::after{content:"";position:absolute;right:-60px;top:-60px;width:220px;height:220px;border-radius:50%;background:radial-gradient(circle,color-mix(in srgb,var(--c) 22%,transparent),transparent 70%);pointer-events:none}
.cov-panel.on{animation:covin .4s var(--ease)}
@keyframes covin{from{opacity:0;transform:translateY(10px)}}
.cov-top{display:flex;gap:16px;align-items:center;margin-bottom:18px;position:relative}
.cov-big{flex:none;width:64px;height:64px;border-radius:20px;display:grid;place-items:center;background:var(--c);color:#fff;box-shadow:0 16px 30px -14px var(--c)}
.cov-big svg{width:34px;height:34px}
.cov-top h3{margin:0;font-family:var(--f-display);font-weight:900;font-size:clamp(26px,2.6vw,34px);text-transform:uppercase;line-height:1}
.cov-top p{margin:4px 0 0;color:var(--muted);font-size:15px}
.cov-items{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,220px),1fr));gap:10px;position:relative}
.cov-items li{display:flex;align-items:center;gap:10px;padding:12px 14px;border-radius:14px;background:var(--surface);border:1px solid var(--line);font-weight:600;font-size:14.5px;line-height:1.3;animation:covli .45s var(--ease) both;animation-delay:calc(var(--k) * 50ms)}
@keyframes covli{from{opacity:0;transform:translateY(8px)}}
.cov-ck{flex:none;width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:color-mix(in srgb,var(--c) 16%,transparent);color:var(--c)}
.cov-ck svg{width:14px;height:14px}
@media (max-width:760px){
  .cov{grid-template-columns:1fr;gap:12px}
  .cov-tabs{display:flex;overflow-x:auto;gap:8px;margin-inline:calc(var(--gutter) * -1);padding:2px var(--gutter) 6px;scrollbar-width:none}
  .cov-tabs::-webkit-scrollbar{display:none}
  .cov-tab{flex:none;width:auto;padding:8px 12px 8px 8px;border-radius:999px;gap:8px}
  .cov-tab:hover{transform:none}
  .cov-ti{width:32px;height:32px;border-radius:50%}
  .cov-ti svg{width:17px;height:17px}
  .cov-tt b{font-size:15px;white-space:nowrap}
  .cov-tt small{display:none}
  .cov-big{width:52px;height:52px;border-radius:16px}
  .cov-items{grid-template-columns:1fr;gap:8px}
  .cov-items li{padding:10px 12px;font-size:14px}
}

/* date picker opens inline inside the form card (never clipped) */
.drp-pop{position:static;width:100%;max-width:none;margin-top:10px;transform:none;left:auto;box-shadow:0 18px 40px -24px rgba(13,26,79,.45);padding:12px 14px 12px}
.drp-months{display:grid;grid-template-columns:repeat(auto-fit,minmax(0,1fr));gap:20px}
.drp-month{width:auto;min-width:0}
.drp-grid{grid-template-columns:repeat(7,1fr);row-gap:2px}
.drp-d{height:auto;aspect-ratio:1/1;max-height:40px;width:100%;margin:0 auto}
.drp-foot{margin-top:8px;padding-top:10px;gap:10px}
.drp-foot .btn{padding:9px 18px}
@media (max-width:760px){.drp-pop{padding:10px}.drp-d{font-size:13.5px}}
/* customise: stay options in one row, combo lists not clipped */
.wiz-main{overflow:visible}
.wiz-top{border-radius:26px 26px 0 0}
.wiz-nav{border-radius:0 0 26px 26px}
.wiz-body .cb-list{z-index:60;max-height:260px}
.big-chips:has(> :nth-child(3):last-child){grid-template-columns:repeat(3,1fr)}
@media (max-width:700px){.big-chips:has(> :nth-child(3):last-child) .bchip span{padding:10px 8px}.big-chips:has(> :nth-child(3):last-child) .bchip span b{font-size:15px}}
.cb-list.up{top:auto;bottom:calc(100% + 8px)}
/* section headings sit below the shared hero size */
.h2{font-size:clamp(28px,3.4vw,46px)}
@media (max-width:640px){.h2{font-size:26px}}
/* calendar days: round markers on a continuous range band */
.drp-d,.drp-d:hover:not(:disabled){height:40px;aspect-ratio:auto;max-height:none;border-radius:0;background:none;box-shadow:none}
.drp-d{--rc:color-mix(in srgb,var(--brand) 14%,transparent)}
.drp-d:hover:not(:disabled):not(.s):not(.e){background:radial-gradient(circle at center,color-mix(in srgb,var(--brand) 14%,transparent) 17px,transparent 18px)}
.drp-d.today:not(.s):not(.e){background:radial-gradient(circle at center,transparent 15.5px,var(--gold) 16px,var(--gold) 17.5px,transparent 18px)}
.drp-d.in{background:var(--rc)}
.drp-d.s,.drp-d.e,.drp-d.s:hover,.drp-d.e:hover{color:var(--brand-ink);background:radial-gradient(circle at center,var(--brand) 17.5px,transparent 18.5px)}
.drp-d.rs,.drp-d.rs:hover{background:radial-gradient(circle at center,var(--brand) 17.5px,transparent 18.5px),linear-gradient(90deg,transparent 50%,var(--rc) 50%)}
.drp-d.re,.drp-d.re:hover{background:radial-gradient(circle at center,var(--brand) 17.5px,transparent 18.5px),linear-gradient(90deg,var(--rc) 50%,transparent 50%)}
.drp-grid > span:empty{height:40px}
.drp-d.today{box-shadow:none}
/* home form: help-with chips */
.hw-help{margin:14px 0 4px}
.hw-help .chip-label{margin-bottom:8px}
.hw-help .chips{gap:6px}
.hw-help .chip span{padding:7px 12px;font-size:13.5px;background:var(--surface)}
@media (max-width:640px){.hw-help .chip span{padding:6px 10px;font-size:13px}}
