:root{
  --sky:#bfe3f7;--sky-2:#e4f3fb;--paper:#fbf7ec;--paper-2:#f2ead8;--ink:#102240;--red:#d3392f;--blue:#2a5ea8;--muted:#4b5b78;
  --lift-light:0 1px 1px rgba(0,0,0,.06),0 2px 6px rgba(0,0,0,.10),0 6px 18px rgba(0,0,0,.06);
  --lift-dark:0 1px 2px rgba(0,0,0,.45),0 3px 10px rgba(0,0,0,.35),0 8px 24px rgba(0,0,0,.25);
  --lift-body:0 1px 1px rgba(0,0,0,.06),0 2px 6px rgba(0,0,0,.10);
  --strip-h:0px;--hdr-h:68px;
  --stripes:repeating-linear-gradient(135deg,var(--red) 0 14px,#fff 14px 28px,var(--blue) 28px 42px,#fff 42px 56px);
  --f-cond:'Barlow Condensed','Arial Narrow',sans-serif;--f-mono:'IBM Plex Mono',ui-monospace,monospace;--f-serif:'Cormorant Garamond',Georgia,serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:90px}
body{background:var(--paper);color:var(--ink);font:400 17px/1.6 var(--f-serif);font-family:'Cormorant Garamond',Georgia,serif;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img,video{display:block;max-width:100%}
a{color:inherit}
.wrap{width:min(1180px,100% - 48px);margin-inline:auto}
.lbl{font:500 11px/1.3 var(--f-mono);letter-spacing:.2em;text-transform:uppercase}
h1,h2,h3{font-family:var(--f-cond);font-weight:800;text-transform:uppercase;line-height:.92;letter-spacing:.01em}
p{text-shadow:var(--lift-body);font-size:20px}

/* concept strip + header */
.concept-strip{position:relative;z-index:60;background:var(--ink);color:#fff;font:500 12px/1.4 var(--f-mono);letter-spacing:.08em;text-align:center;padding:9px 40px;text-shadow:var(--lift-dark)}
.concept-strip button{position:absolute;right:10px;top:50%;transform:translateY(-50%);background:none;border:0;color:#fff;font-size:20px;cursor:pointer;padding:2px 8px}
.site-header{position:fixed;left:0;right:0;top:var(--strip-h);z-index:50;height:var(--hdr-h);display:flex;align-items:center;justify-content:space-between;padding:0 28px;transition:background .25s,box-shadow .25s}
.site-header.solid{background:var(--paper);box-shadow:0 1px 0 rgba(16,34,64,.12)}
.wm{font:800 24px/1 var(--f-cond);letter-spacing:.12em;text-decoration:none;text-transform:uppercase;text-shadow:var(--lift-light)}
.site-header nav{display:flex;align-items:center;gap:30px}
.site-header nav a{font:500 12px/1 var(--f-mono);letter-spacing:.18em;text-transform:uppercase;text-decoration:none;text-shadow:var(--lift-light)}
.site-header nav a:hover{color:var(--red)}
.btn{display:inline-block;font:700 15px/1 var(--f-cond);letter-spacing:.18em;text-transform:uppercase;text-decoration:none;padding:16px 26px;border:2px solid var(--ink);background:var(--ink);color:#fff;cursor:pointer;transition:transform .15s,background .15s,color .15s;border-radius:0}
.btn:hover{transform:translateY(-2px)}
.btn.red{background:var(--red);border-color:var(--red)}
.btn.line{background:transparent;color:var(--ink)}
.btn.line:hover{background:var(--ink);color:#fff}
.site-header .btn{padding:12px 18px;font-size:14px}

/* hero: boarding pass */
.hero{position:relative;min-height:calc(100svh - var(--strip-h));padding:calc(var(--hdr-h) + 36px) 0 56px;display:grid;place-items:center;overflow:hidden;
  background:radial-gradient(60% 40% at 15% 20%,rgba(255,255,255,.95),transparent 70%),radial-gradient(50% 35% at 85% 78%,rgba(255,255,255,.9),transparent 70%),radial-gradient(40% 30% at 70% 12%,rgba(255,255,255,.7),transparent 70%),linear-gradient(180deg,#9fd3f0 0%,var(--sky) 55%,var(--sky-2) 100%)}
.pass-wrap{position:relative;z-index:2;width:min(1180px,100% - 48px);filter:drop-shadow(0 18px 28px rgba(16,34,64,.28))}
.pass{display:grid;grid-template-columns:1fr 300px}
.pass-main,.pass-stub{background:var(--stripes) 0 0/100% 9px no-repeat,var(--stripes) 0 100%/100% 9px no-repeat,var(--paper);position:relative}
.pass-main{padding:40px 44px 40px;
  -webkit-mask:radial-gradient(circle 15px at 100% 0,#0000 96%,#000),radial-gradient(circle 15px at 100% 100%,#0000 96%,#000);-webkit-mask-composite:source-in;
  mask:radial-gradient(circle 15px at 100% 0,#0000 96%,#000) intersect,radial-gradient(circle 15px at 100% 100%,#0000 96%,#000);mask-composite:intersect}
.pass-stub{padding:34px 26px 30px;border-left:2px dashed rgba(16,34,64,.35);display:flex;flex-direction:column;gap:14px;
  -webkit-mask:radial-gradient(circle 15px at 0 0,#0000 96%,#000),radial-gradient(circle 15px at 0 100%,#0000 96%,#000);-webkit-mask-composite:source-in;
  mask:radial-gradient(circle 15px at 0 0,#0000 96%,#000) intersect,radial-gradient(circle 15px at 0 100%,#0000 96%,#000);mask-composite:intersect}
.pass-top{display:flex;justify-content:space-between;gap:16px;color:var(--muted)}
.pass h1{font-size:clamp(66px,min(11.4vw,19vh),172px);margin:18px 0 22px;white-space:nowrap;text-shadow:var(--lift-light)}
.pass h1 span{display:inline}
.route{display:flex;align-items:center;gap:22px;padding:18px 0;border-top:1px solid rgba(16,34,64,.2);border-bottom:1px solid rgba(16,34,64,.2)}
.route .from{font:800 56px/.9 var(--f-cond);letter-spacing:.02em;text-shadow:var(--lift-light)}
.route .from small{display:block;font:500 10px/1.4 var(--f-mono);letter-spacing:.2em;text-transform:uppercase;color:var(--muted);margin-top:6px;text-shadow:none}
.route .plane{flex:0 0 120px;position:relative;height:24px;color:var(--red)}
.route .plane::before{content:"";position:absolute;left:0;right:34px;top:50%;border-top:2px dashed currentColor}
.route .plane svg{position:absolute;right:0;top:0;width:36px;height:24px;fill:currentColor}
.route .to{font:700 24px/1.15 var(--f-cond);letter-spacing:.08em;text-transform:uppercase;text-shadow:var(--lift-light)}
.route .to small{display:block;font:500 10px/1.4 var(--f-mono);letter-spacing:.2em;color:var(--muted);margin-bottom:6px;text-shadow:none}
.fields{display:grid;grid-template-columns:repeat(4,auto);gap:22px 30px;justify-content:space-between;margin:22px 0 26px}
.fields div{font:700 22px/1.1 var(--f-cond);letter-spacing:.06em;text-transform:uppercase;text-shadow:var(--lift-light)}
.fields small{display:block;font:500 10px/1.4 var(--f-mono);letter-spacing:.2em;color:var(--muted);margin-bottom:5px;text-shadow:none}
.cta{display:flex;flex-wrap:wrap;gap:14px}
.stub-photo{aspect-ratio:4/5;overflow:hidden;background:var(--paper-2);border:6px solid #fff;box-shadow:0 2px 4px rgba(0,0,0,.18),0 6px 16px rgba(0,0,0,.12)}
.stub-photo video{width:100%;height:100%;object-fit:cover;object-position:50% 40%}
.stub-side{display:flex;flex-direction:column;gap:14px}
.barcode{height:54px;background:repeating-linear-gradient(90deg,var(--ink) 0 2px,transparent 2px 4px,var(--ink) 4px 5px,transparent 5px 9px,var(--ink) 9px 12px,transparent 12px 14px,var(--ink) 14px 15px,transparent 15px 18px)}
.stub-note{font:600 20px/1 var(--f-cond);letter-spacing:.14em;text-transform:uppercase;text-align:center;text-shadow:var(--lift-light)}

/* stamps */
.stamps{position:absolute;inset:0;z-index:3;pointer-events:none}
.stamp{position:absolute;color:var(--blue);border:3px solid currentColor;outline:1px solid currentColor;outline-offset:3px;padding:8px 16px 7px;text-align:center;font:800 30px/1 var(--f-cond);letter-spacing:.14em;text-transform:uppercase;transform:rotate(var(--r,-6deg));mix-blend-mode:multiply;opacity:.88;animation:thud .55s cubic-bezier(.2,.9,.3,1.2) backwards;animation-delay:var(--d,.4s)}
.stamp small{display:block;font:500 9px/1 var(--f-mono);letter-spacing:.24em;margin-top:6px}
.stamp.round{border-radius:50%;width:132px;height:132px;display:grid;place-content:center;padding:0;font-size:24px}
.stamp.red{color:var(--red)}
.s1{left:5%;top:calc(var(--hdr-h) + 24px);--r:-8deg;--d:.5s}
.s2{right:7%;top:calc(var(--hdr-h) + 18px);--r:7deg;--d:.75s}
.s3{left:3%;bottom:5%;--r:5deg;--d:1s}
.s4{left:41%;bottom:3%;--r:-4deg;--d:1.25s}
.s5{right:5%;bottom:5%;--r:-9deg;--d:1.5s}
@keyframes thud{from{transform:rotate(var(--r)) scale(2);opacity:0}60%{opacity:.95}}

/* sections */
section{position:relative}
.sec{padding:110px 0}
.head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;flex-wrap:wrap;margin-bottom:44px}
.head h2{font-size:clamp(52px,7.5vw,104px);text-shadow:var(--lift-light)}
.head .lbl{color:var(--muted)}
.intro{background:var(--paper);text-align:center;padding:96px 0 60px}
.intro p{font:italic 500 clamp(28px,3.8vw,52px)/1.2 var(--f-serif);max-width:960px;margin:14px auto 0;text-shadow:var(--lift-light)}
.intro .lbl{color:var(--red)}
.grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}
.tile .frame{aspect-ratio:4/5;overflow:hidden;background:var(--paper-2)}
.tile video{width:100%;height:100%;object-fit:cover}
.tile .cap{display:flex;justify-content:space-between;align-items:baseline;gap:10px;padding:12px 2px 0;border-bottom:1px solid rgba(16,34,64,.2);padding-bottom:10px}
.tile .cap b{font:700 20px/1 var(--f-cond);letter-spacing:.1em;text-transform:uppercase;text-shadow:var(--lift-light)}
.tile .cap span{font:500 11px/1 var(--f-mono);letter-spacing:.16em;color:var(--red)}
.note{margin-top:30px;color:var(--muted);font-size:17px}

.passport{background:var(--ink);color:#fff}
.passport .wrap{display:grid;grid-template-columns:1.15fr .85fr;gap:70px;align-items:center}
.passport h2{font-size:clamp(46px,6vw,86px);text-shadow:var(--lift-dark)}
.passport p{text-shadow:var(--lift-dark);color:#e8eef8;margin-top:22px;max-width:520px}
.passport .lbl{color:#ff9a90}
.pp-page{position:relative;background:repeating-radial-gradient(circle at 50% 120%,rgba(42,94,168,.07) 0 3px,transparent 3px 9px),var(--paper);color:var(--ink);padding:34px 34px 40px;min-height:520px;align-self:stretch;display:flex;flex-direction:column;box-shadow:0 20px 40px rgba(0,0,0,.35)}
.pp-page::before{content:"";position:absolute;inset:12px;border:1px solid rgba(16,34,64,.25);pointer-events:none}
.pp-head{display:flex;justify-content:space-between;color:var(--muted);position:relative}
.pp-stamps{position:relative;flex:1;min-height:560px}
.pp-stamps .stamp{animation:none;opacity:.9}
.p1{left:3%;top:6%;--r:-7deg}.p2{right:6%;top:3%;--r:6deg}.p3{left:10%;top:30%;--r:4deg}.p4{right:4%;top:36%;--r:-5deg}.p5{left:6%;top:60%;--r:-8deg}.p6{right:4%;bottom:4%;--r:7deg}
.reel-arch{width:min(100%,340px);margin-inline:auto;aspect-ratio:3/4;overflow:hidden;border-radius:999px 999px 0 0;border:8px solid #fff;background:#000;box-shadow:0 18px 40px rgba(0,0,0,.4)}
.reel-arch video{width:100%;height:100%;object-fit:cover}
.passport .col-r figcaption{text-align:center;margin-top:16px;color:#ff9a90}
.salon{background:var(--sky-2)}
.salon .wrap{display:grid;grid-template-columns:.8fr 1fr;gap:80px;align-items:center}
.salon .frame{aspect-ratio:4/5;overflow:hidden;background:var(--paper-2);box-shadow:0 12px 30px rgba(16,34,64,.2)}
.salon video{width:100%;height:100%;object-fit:cover}
.salon h2{font-size:clamp(56px,8vw,118px);text-shadow:var(--lift-light);margin:10px 0 26px}
.addr{font:700 28px/1.2 var(--f-cond);letter-spacing:.08em;text-transform:uppercase;margin:18px 0 28px;text-shadow:var(--lift-light)}
.salon .lbl{color:var(--red)}
.salon p{max-width:520px}

.book{background:linear-gradient(180deg,var(--sky) 0%,var(--sky-2) 100%)}
.book .wrap{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:start}
.book h2{font-size:clamp(52px,7vw,98px);text-shadow:var(--lift-light);margin:10px 0 24px}
.book .lbl{color:var(--red)}
.gate{display:inline-block;border:2px solid var(--ink);padding:10px 18px;margin:0 0 28px;font:700 24px/1 var(--f-cond);letter-spacing:.14em;text-transform:uppercase;background:var(--paper)}
.book p{max-width:480px;margin-bottom:28px}
form.inq{background:var(--paper);padding:34px 32px 36px;background-image:var(--stripes),var(--stripes);background-size:100% 9px;background-position:0 0,0 100%;background-repeat:no-repeat;box-shadow:0 18px 30px rgba(16,34,64,.22)}
form.inq h3{font-size:34px;margin-bottom:6px}
form.inq .sub{font:500 11px/1.5 var(--f-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:20px}
form.inq label{display:block;font:500 11px/1 var(--f-mono);letter-spacing:.18em;text-transform:uppercase;margin:16px 0 7px}
form.inq input,form.inq textarea{width:100%;font:400 18px/1.3 var(--f-serif);padding:12px 14px;border:1.5px solid var(--ink);background:#fff;color:var(--ink);border-radius:0}
form.inq textarea{min-height:100px;resize:vertical}
form.inq .btn{margin-top:22px;width:100%}
form.inq .hp{position:absolute;left:-9999px}
.concept-note{background:#fff}
footer{background:var(--ink);color:#fff;padding:60px 0 100px}
footer .wrap{display:flex;justify-content:space-between;gap:40px;flex-wrap:wrap;align-items:flex-start}
footer .wm{color:#fff;text-shadow:var(--lift-dark);font-size:34px}
footer p,footer a{font:500 12px/1.9 var(--f-mono);letter-spacing:.14em;text-transform:uppercase;text-shadow:var(--lift-dark);color:#dbe5f5;text-decoration:none}
footer a:hover{color:#ff9a90}
footer .fine{margin-top:40px;width:100%;color:#9fb2d4;font-size:11px;text-transform:none;letter-spacing:.06em}

.mbar{display:none}
.reveal{opacity:0;transform:translateY(22px);transition:opacity .7s,transform .7s}
.reveal.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.stamp{animation:none}.reveal{opacity:1;transform:none;transition:none}html{scroll-behavior:auto}}

@media (max-width:1100px){
  .pass h1{font-size:clamp(60px,10vw,120px)}
  .fields{grid-template-columns:repeat(2,auto);justify-content:start;gap:20px 40px}
  .route{flex-wrap:wrap}
  .grid{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:900px){
  :root{--hdr-h:60px}
  .site-header{padding:0 16px}
  .site-header nav a:not(.btn){display:none}
  .hero{display:block;padding:calc(var(--hdr-h) + 22px) 0 40px}
  .pass-wrap{margin-inline:auto;width:min(560px,100% - 32px)}
  .pass{grid-template-columns:1fr}
  .pass-main{padding:30px 24px 30px;
    -webkit-mask:radial-gradient(circle 13px at 0 100%,#0000 96%,#000),radial-gradient(circle 13px at 100% 100%,#0000 96%,#000);-webkit-mask-composite:source-in;
    mask:radial-gradient(circle 13px at 0 100%,#0000 96%,#000) intersect,radial-gradient(circle 13px at 100% 100%,#0000 96%,#000);mask-composite:intersect}
  .pass-stub{border-left:0;border-top:2px dashed rgba(16,34,64,.35);flex-direction:row;align-items:center;padding:24px 24px 28px;gap:18px;
    -webkit-mask:radial-gradient(circle 13px at 0 0,#0000 96%,#000),radial-gradient(circle 13px at 100% 0,#0000 96%,#000);-webkit-mask-composite:source-in;
    mask:radial-gradient(circle 13px at 0 0,#0000 96%,#000) intersect,radial-gradient(circle 13px at 100% 0,#0000 96%,#000);mask-composite:intersect}
  .stub-photo{flex:0 0 40%}
  .stub-side{flex:1;display:flex;flex-direction:column;gap:14px}
  .pass h1{font-size:min(23vw,130px);white-space:normal;margin:14px 0 18px}
  .pass h1 span{display:block}
  .route .from{font-size:46px}.route .plane{flex:0 0 70px}.route .to{flex:1 0 100%;font-size:21px}
  .stamps{position:static;display:flex;flex-wrap:wrap;justify-content:center;gap:18px 14px;padding:34px 16px 0}
  .stamp{position:static;font-size:22px;padding:6px 12px 5px}
  .stamp.round{width:104px;height:104px;font-size:19px}
  .passport .wrap,.salon .wrap,.book .wrap{grid-template-columns:1fr;gap:44px}
  .sec{padding:76px 0}
  .pp-stamps{height:auto;display:flex;flex-wrap:wrap;gap:22px 16px;justify-content:center;padding-top:30px}
  .pp-stamps .stamp{position:static}
  .pp-page{min-height:0;display:block}.pp-stamps{min-height:0}
  .mbar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:55;background:var(--paper);border-top:1px solid rgba(16,34,64,.2);gap:10px;padding:10px 12px calc(10px + env(safe-area-inset-bottom))}
  .mbar .btn{flex:1;padding:14px 8px;text-align:center;font-size:14px;letter-spacing:.12em}
}
@media (max-width:480px){
  p{font-size:19px}
  .wrap{width:calc(100% - 32px)}
  .grid{gap:14px}
  .tile .cap b{font-size:16px}.tile .cap span{font-size:10px}
  .fields div{font-size:19px}
  .wm{font-size:20px}
  .site-header .btn{padding:11px 12px;font-size:12px;letter-spacing:.12em}
  form.inq{padding:28px 20px 30px}
}

@media (min-width:901px) and (max-height:740px){.stamp.s1,.stamp.s4{display:none}.s2{top:auto;bottom:4%}}
