/* ============ FONTS ============ */
@font-face{font-family:'Baloo 2';font-weight:700;font-style:normal;font-display:swap;
  src:url('../fonts/baloo-2-vietnamese-700-normal.woff2') format('woff2');
  unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;}
@font-face{font-family:'Baloo 2';font-weight:700;font-style:normal;font-display:swap;
  src:url('../fonts/baloo-2-latin-700-normal.woff2') format('woff2');}
@font-face{font-family:'Baloo 2';font-weight:800;font-style:normal;font-display:swap;
  src:url('../fonts/baloo-2-vietnamese-800-normal.woff2') format('woff2');
  unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;}
@font-face{font-family:'Baloo 2';font-weight:800;font-style:normal;font-display:swap;
  src:url('../fonts/baloo-2-latin-800-normal.woff2') format('woff2');}
@font-face{font-family:'Be Vietnam Pro';font-weight:400;font-style:normal;font-display:swap;
  src:url('../fonts/be-vietnam-pro-vietnamese-400-normal.woff2') format('woff2');
  unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;}
@font-face{font-family:'Be Vietnam Pro';font-weight:400;font-style:normal;font-display:swap;
  src:url('../fonts/be-vietnam-pro-latin-400-normal.woff2') format('woff2');}
@font-face{font-family:'Be Vietnam Pro';font-weight:500;font-style:normal;font-display:swap;
  src:url('../fonts/be-vietnam-pro-vietnamese-500-normal.woff2') format('woff2');
  unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;}
@font-face{font-family:'Be Vietnam Pro';font-weight:500;font-style:normal;font-display:swap;
  src:url('../fonts/be-vietnam-pro-latin-500-normal.woff2') format('woff2');}
@font-face{font-family:'Be Vietnam Pro';font-weight:600;font-style:normal;font-display:swap;
  src:url('../fonts/be-vietnam-pro-vietnamese-600-normal.woff2') format('woff2');
  unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;}
@font-face{font-family:'Be Vietnam Pro';font-weight:600;font-style:normal;font-display:swap;
  src:url('../fonts/be-vietnam-pro-latin-600-normal.woff2') format('woff2');}
@font-face{font-family:'Be Vietnam Pro';font-weight:700;font-style:normal;font-display:swap;
  src:url('../fonts/be-vietnam-pro-vietnamese-700-normal.woff2') format('woff2');
  unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;}
@font-face{font-family:'Be Vietnam Pro';font-weight:700;font-style:normal;font-display:swap;
  src:url('../fonts/be-vietnam-pro-latin-700-normal.woff2') format('woff2');}

/* ============ TOKENS ============ */
:root{
  --ink:#1A1A1A; --paper:#F4F0EB;
  --purple:#5B2C86; --yellow:#FCEB4F; --pink:#ED6A9A; --blue:#36A9E1; --red:#EF476F;
  --coral:#FD5A47; --gold:#FFC567; --green:#009A5E; --cream:#F4E7D3;
  --sh:4px 4px 0 var(--ink); --sh-lg:7px 7px 0 var(--ink);
  --disp:'Baloo 2','Be Vietnam Pro',sans-serif; --body:'Be Vietnam Pro',sans-serif;
}
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:auto;}
html{overflow-x:hidden;}
body{font-family:var(--body);color:var(--ink);background:var(--paper);overflow-x:hidden;overscroll-behavior-y:none;line-height:1.5;}
img{max-width:100%;}
::selection{background:var(--yellow);}
h1,h2,h3,h4,h5,.disp{font-family:var(--disp);font-weight:800;letter-spacing:-.02em;line-height:1.05;}

/* ============ PRELOADER ============ */
#loader{position:fixed;inset:0;z-index:1000;background:var(--paper);display:flex;align-items:center;justify-content:center;}
.loader-inner{text-align:center;width:min(400px,80vw);}
.loader-logo{width:84px;animation:bob 1.2s ease-in-out infinite;}
@keyframes bob{0%,100%{transform:translateY(0) rotate(-3deg);}50%{transform:translateY(-10px) rotate(3deg);}}
.loader-count{font-family:var(--disp);font-weight:800;font-size:56px;margin-top:10px;opacity:0;transition:opacity .25s;}
.loader-bar{height:14px;border:3px solid var(--ink);border-radius:100px;background:#fff;overflow:hidden;box-shadow:3px 3px 0 var(--ink);}
.loader-bar i{display:block;height:100%;width:0%;background:repeating-linear-gradient(45deg,var(--yellow) 0 10px,var(--pink) 10px 20px);}
.loader-tag{margin-top:14px;font-size:11px;font-weight:700;letter-spacing:.12em;opacity:0;transition:opacity .25s;}

/* ============ CURSOR ============ */
#cursor{position:fixed;z-index:999;top:0;left:0;width:18px;height:18px;border-radius:100px;opacity:0;
  background:var(--yellow);border:2px solid var(--ink);pointer-events:none;
  display:flex;align-items:center;justify-content:center;
  transform:translate(-50%,-50%);transition:width .25s,height .25s,border-radius .25s;}
#cursor.big{width:auto;height:34px;padding:0 14px;border-radius:100px;box-shadow:3px 3px 0 var(--ink);}
#cursorTxt{font-family:var(--disp);font-weight:800;font-size:12px;white-space:nowrap;display:none;}
#cursor.big #cursorTxt{display:block;}
#cursor.alive{opacity:1;}
@media (hover:none), (pointer:coarse){#cursor{display:none !important;}}

/* ============ DOT NAV ============ */
#dotnav{position:fixed;right:22px;top:50%;transform:translateY(-50%);z-index:90;display:flex;flex-direction:column;gap:16px;}
#dotnav a{position:relative;display:flex;align-items:center;justify-content:center;width:18px;height:18px;}
#dotnav a i{width:12px;height:12px;border-radius:50%;background:#fff;border:2px solid var(--ink);transition:.25s;display:block;}
#dotnav a::after{content:attr(data-label);position:absolute;right:26px;white-space:nowrap;font-size:11px;font-weight:700;
  background:var(--ink);color:#fff;padding:4px 10px;border-radius:100px;opacity:0;translate:8px 0;transition:.25s;pointer-events:none;}
#dotnav a:hover::after{opacity:1;translate:0 0;}
#dotnav a.on i{background:var(--yellow);transform:scale(1.55);animation:blinkdot 1.1s steps(2) infinite;}
@keyframes blinkdot{50%{box-shadow:0 0 0 4px rgba(252,235,79,.45);}}
@media (max-width:820px){#dotnav{display:none;}}

/* ============ TOPBAR ============ */
#topbar{position:fixed;top:0;left:0;right:0;z-index:80;display:flex;align-items:center;justify-content:space-between;
  padding:14px 26px;mix-blend-mode:normal;pointer-events:none;}
#topbar>*{pointer-events:auto;}
.brand{display:flex;align-items:center;gap:10px;font-family:var(--disp);font-weight:800;font-size:14px;}
.brand img{width:44px;filter:drop-shadow(2px 2px 0 rgba(26,26,26,.15));}
.brand b{color:var(--red);}

/* ============ UI PIECES ============ */
.btn{display:inline-flex;align-items:center;gap:6px;font-family:var(--body);font-weight:700;font-size:13px;
  background:#fff;color:var(--ink);border:2px solid var(--ink);border-radius:100px;padding:9px 18px;line-height:1.4;
  box-shadow:var(--sh);cursor:pointer;text-decoration:none;transition:transform .15s,box-shadow .15s;}
.btn:active{transform:translate(3px,3px);box-shadow:1px 1px 0 var(--ink);}
.btn.yl{background:var(--yellow);} .btn.pk{background:var(--pink);color:#fff;}
.tag{display:inline-block;font-weight:700;font-size:13px;text-transform:uppercase;letter-spacing:.05em;
  padding:6px 16px;line-height:1.5;background:var(--yellow);border:2px solid var(--ink);border-radius:100px;box-shadow:2.5px 2.5px 0 var(--ink);}
.tag.sm{font-size:10px;padding:4px 12px;}
.tag.pk{background:var(--pink);color:#fff;} .tag.bl{background:var(--blue);color:#fff;}
.tag.rd{background:var(--red);color:#fff;} .tag.yl{background:var(--yellow);color:var(--ink);}
.chip{display:inline-block;font-family:var(--disp);font-weight:800;font-size:15px;padding:6px 16px;line-height:1.45;
  background:#fff;border:2px solid var(--ink);border-radius:100px;box-shadow:2.5px 2.5px 0 var(--ink);white-space:nowrap;}
.chip.sm{font-size:11px;padding:3.5px 11px;}
.chip.yl{background:var(--yellow);} .chip.pk{background:var(--pink);color:#fff;}
.chip.pu{background:var(--purple);color:#fff;} .chip.rd{background:var(--red);color:#fff;}
.chip.bl{background:var(--blue);color:#fff;} .chip.gr{background:var(--green);color:#fff;}
.lbl{display:block;font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:rgba(26,26,26,.55);}
.chipline{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px;}
.chipline.center{justify-content:center;}

/* ============ SECTIONS COMMON ============ */
section{position:relative;padding:110px 6vw;}
.sec-head{max-width:1200px;margin:0 auto 40px;}
.sec-head.mt{margin-top:110px;}
.sec-title{font-size:clamp(40px,6.5vw,86px);text-transform:uppercase;line-height:1.08;margin-top:16px;}
.sec-title em{font-style:normal;color:var(--purple);}
.sec-title em.coral{color:var(--coral);} .sec-title em.blue-t{color:var(--blue);}
.sec-title em.red-t{color:var(--red);} .sec-title em.yl-t{color:var(--yellow);}
.sec-sub{margin-top:12px;font-size:15px;color:rgba(26,26,26,.65);}
.sec-head.light,.sec-head.light .sec-sub{color:#fff;}

/* ============ HERO ============ */
#hero{min-height:100vh;min-height:100svh;display:flex;align-items:center;justify-content:center;overflow:hidden;padding:0 6vw;}
.hero-inner{position:relative;z-index:3;text-align:center;}
.eyebrow{font-weight:700;font-size:clamp(10px,1.3vw,14px);letter-spacing:.18em;background:#fff;border:2px solid var(--ink);
  border-radius:100px;display:inline-block;padding:8px 22px;box-shadow:3px 3px 0 var(--ink);}
.giant{font-size:clamp(40px,11.5vw,168px);text-transform:uppercase;line-height:1.02;margin-top:26px;}
.giant .line{display:block;overflow:hidden;}
.giant .line>span{display:inline-block;}
.giant .stroke{color:var(--paper);-webkit-text-stroke:3px var(--ink);paint-order:stroke fill;}
.hero-chips{margin-top:34px;display:flex;gap:14px;justify-content:center;flex-wrap:wrap;}
#dragon{position:absolute;z-index:2;height:88vh;right:-6vw;bottom:-9vh;filter:drop-shadow(10px 14px 0 rgba(26,26,26,.14));}
.par{position:absolute;pointer-events:none;}
.cloud.c1{width:230px;top:6%;left:-60px;} .cloud.c2{width:180px;top:52%;left:6%;} .cloud.c3{width:200px;top:12%;right:26%;}
.spark.s1{width:34px;top:26%;left:20%;} .spark.s2{width:44px;top:18%;right:12%;} .spark.s3{width:26px;bottom:24%;left:10%;}
.waves{width:260px;bottom:-60px;left:34%;opacity:.22;}
#stamp{position:absolute;z-index:4;bottom:38px;left:46px;width:110px;height:110px;display:block;}
#stamp svg{width:100%;height:100%;animation:spin 12s linear infinite;}
#stamp text{font-family:var(--body);font-weight:700;font-size:12.5px;letter-spacing:.16em;fill:var(--ink);text-transform:uppercase;}
@keyframes spin{to{transform:rotate(360deg);}}
.stamp-arrow{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  font-family:var(--disp);font-weight:800;font-size:30px;animation:hopdown 1.4s ease-in-out infinite;}
@keyframes hopdown{0%,100%{transform:translateY(-3px);}50%{transform:translateY(5px);}}

/* ============ TICKER ============ */
.ticker{background:var(--ink);color:var(--yellow);overflow:hidden;border-top:3px solid var(--ink);border-bottom:3px solid var(--ink);}
.ticker-track{display:flex;white-space:nowrap;width:max-content;animation:tick 26s linear infinite;}
.ticker-track span{font-family:var(--disp);font-weight:800;font-size:20px;padding:12px 0;letter-spacing:.04em;}
@keyframes tick{to{transform:translateX(-50%);}}

/* ============ BENTO ============ */
.bento{max-width:1200px;margin:0 auto;display:grid;gap:18px;grid-template-columns:repeat(4,1fr);grid-auto-rows:minmax(150px,auto);}
.bcard{background:#fff;border:2.5px solid var(--ink);border-radius:20px;box-shadow:var(--sh-lg);padding:26px;position:relative;}
.bcard h3{font-size:26px;margin-top:12px;}
.bcard h4{font-size:21px;margin-top:8px;}
.bcard p{margin-top:10px;font-size:14px;}
.bcard .sm{font-size:12.5px;}
.bcard.purple{background:var(--purple);color:#fff;}
.bcard.yellow{background:var(--yellow);} .bcard.blue{background:var(--blue);color:#fff;} .bcard.pink{background:var(--pink);color:#fff;}
.bcard.span2{grid-column:span 2;}
.bcard.tall{grid-row:span 2;grid-column:span 1;}
.bcard.photo{padding:0;overflow:hidden;}
.bcard.photo img{width:100%;height:100%;object-fit:cover;display:block;position:absolute;inset:0;}
.bcard.photo figcaption{position:absolute;left:14px;bottom:14px;}
@media (max-width:900px){.bento{grid-template-columns:repeat(2,1fr);}}
@media (max-width:560px){.bento{grid-template-columns:1fr;}.bcard.span2{grid-column:span 1;}}

/* ============ FLIP BADGES ============ */
.badges{max-width:1200px;margin:0 auto;display:grid;gap:18px;grid-template-columns:repeat(4,1fr);}
@media (max-width:900px){.badges{grid-template-columns:repeat(2,1fr);}}
.flip{perspective:1100px;height:250px;cursor:pointer;}
.flip-inner{position:relative;width:100%;height:100%;transition:transform .7s cubic-bezier(.2,.7,.25,1);transform-style:preserve-3d;}
.flip:hover .flip-inner{transform:rotateY(180deg);}
.face{position:absolute;inset:0;backface-visibility:hidden;border:2.5px solid var(--ink);border-radius:20px;
  box-shadow:var(--sh-lg);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:20px;text-align:center;}
.face.front .em{font-size:52px;transition:transform .3s;}
.flip:hover .face.front .em{transform:scale(1.25);}
.face.front h4{font-size:22px;color:#fff;}
.face.front.blue{background:var(--blue);} .face.front.pink{background:var(--pink);}
.face.front.purple{background:var(--purple);} .face.front.green{background:var(--green);}
.face.back{background:#fff;transform:rotateY(180deg);font-size:14px;line-height:1.55;}

/* ============ PASSES ============ */
#flight{overflow:hidden;}
.passes{max-width:1150px;margin:0 auto;display:flex;flex-direction:column;gap:26px;}
.pass{display:flex;background:#fff;border:2.5px solid var(--ink);border-radius:22px;box-shadow:var(--sh-lg);overflow:hidden;}
.pass-main{flex:1;padding:24px 28px;}
.pass-top{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;}
.route{display:flex;align-items:center;gap:16px;margin:18px 0;}
.route .tr{text-align:right;}
.air{font-family:var(--disp);font-weight:800;font-size:52px;line-height:1;display:block;}
.dashline{flex:1;border-bottom:3px dashed var(--ink);position:relative;height:3px;}
.dashline span{position:absolute;left:50%;top:-15px;transform:translateX(-50%);font-size:20px;}
.pass-stub{width:200px;border-left:3px dashed var(--ink);background:var(--yellow);padding:22px;display:flex;flex-direction:column;gap:6px;position:relative;}
.pass-stub b{font-family:var(--disp);font-size:30px;font-weight:800;}
.pass-stub .sm{font-size:12px;}
.pass-stub::before,.pass-stub::after{content:'';position:absolute;left:-12px;width:20px;height:20px;border-radius:50%;background:var(--paper);border:2.5px solid var(--ink);}
.pass-stub::before{top:-12px;} .pass-stub::after{bottom:-12px;}
@media (max-width:640px){.pass{flex-direction:column;}.pass-stub{width:100%;border-left:none;border-top:3px dashed var(--ink);}}
#planeFly{position:absolute;top:120px;left:-140px;width:0;height:0;z-index:5;}
#planeEmoji{position:absolute;z-index:5;font-size:56px;top:16%;left:-10%;pointer-events:none;filter:drop-shadow(4px 6px 0 rgba(26,26,26,.2));}

/* ============ TIMELINE ============ */
.timeline{max-width:820px;margin:0 auto;position:relative;padding-left:44px;}
.tl-rail{position:absolute;left:14px;top:8px;bottom:8px;width:6px;background:#fff;border:2px solid var(--ink);border-radius:100px;overflow:hidden;}
.tl-rail i{display:block;width:100%;height:0%;background:linear-gradient(var(--yellow),var(--pink),var(--purple));}
.tl-item{position:relative;margin-bottom:22px;}
.tl-dot{position:absolute;left:-41px;top:16px;width:22px;height:22px;border-radius:50%;background:#fff;border:3px solid var(--ink);transition:.3s;}
.tl-item.lit .tl-dot{background:var(--yellow);box-shadow:0 0 0 7px rgba(252,235,79,.4);transform:scale(1.18);}
.tl-card{background:#fff;border:2.5px solid var(--ink);border-radius:18px;box-shadow:var(--sh);padding:18px 22px;transition:.3s;}
.tl-item.lit .tl-card{transform:translateX(6px);box-shadow:var(--sh-lg);}
.tl-card.hl{background:var(--purple);color:#fff;}
.tl-card h5{font-size:19px;margin-top:8px;}
.tl-card p{font-size:13.5px;margin-top:6px;}

.photo-strip{max-width:1150px;margin:70px auto 0;display:grid;grid-template-columns:repeat(3,1fr);gap:18px;}
@media (max-width:760px){.photo-strip{grid-template-columns:1fr;}}
.pcard{position:relative;border:2.5px solid var(--ink);border-radius:20px;overflow:hidden;box-shadow:var(--sh-lg);aspect-ratio:4/3;}
.pcard img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .6s cubic-bezier(.2,.7,.25,1);}
.pcard:hover img{transform:scale(1.08) rotate(1.5deg);}
.pcard figcaption{position:absolute;left:12px;bottom:12px;}

/* ============ PACKING ============ */
#packing{background:linear-gradient(var(--paper),#EFE7DC);}
.pack-wrap{max-width:900px;margin:0 auto;}
.pack-progress{display:flex;align-items:center;gap:16px;margin-bottom:26px;}
.pp-bar{flex:1;height:16px;border:3px solid var(--ink);border-radius:100px;background:#fff;overflow:hidden;box-shadow:3px 3px 0 var(--ink);}
.pp-bar i{display:block;height:100%;width:0%;background:repeating-linear-gradient(45deg,var(--yellow) 0 10px,var(--gold) 10px 20px);transition:width .4s cubic-bezier(.2,.7,.25,1);}
.checklist{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;}
@media (max-width:680px){.checklist{grid-template-columns:1fr;}}
.chk{display:flex;align-items:center;gap:14px;background:#fff;border:2.5px solid var(--ink);border-radius:16px;
  box-shadow:var(--sh);padding:14px 18px;font:inherit;font-size:14.5px;text-align:left;cursor:pointer;transition:transform .15s;}
.chk:active{transform:translate(2px,2px);}
.chk i{width:26px;height:26px;min-width:26px;border:3px solid var(--ink);border-radius:50%;background:#fff;position:relative;transition:.25s;}
.chk i::after{content:'✓';position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  font-weight:900;font-size:15px;color:var(--ink);opacity:0;transform:scale(.3) rotate(-40deg);transition:.3s cubic-bezier(.5,1.6,.4,1);}
.chk span{position:relative;}
.chk span::after{content:'';position:absolute;left:0;top:55%;height:3px;width:0%;background:var(--red);border-radius:4px;transition:width .35s cubic-bezier(.2,.7,.25,1);}
.chk em{font-style:normal;color:rgba(26,26,26,.55);font-size:12px;display:block;}
.chk.done{background:var(--yellow);}
.chk.done i{background:var(--green);border-color:var(--ink);}
.chk.done i::after{opacity:1;transform:scale(1) rotate(0deg);color:#fff;}
.chk.done span::after{width:100%;}
.pack-note{margin-top:34px;position:relative;z-index:2;font-size:13.5px;text-align:center;color:rgba(26,26,26,.7);}

/* ============ WARNING TERMINAL ============ */
.warn-zone{max-width:900px;margin:90px auto 0;}
.terminal{background:#0D0D11;border:3px solid var(--ink);border-radius:18px;box-shadow:8px 8px 0 var(--ink);overflow:hidden;position:relative;}
.terminal::after{content:'';position:absolute;inset:0;pointer-events:none;
  background:repeating-linear-gradient(0deg,rgba(255,255,255,.045) 0 1px,transparent 1px 3px);}
.term-bar{display:flex;align-items:center;gap:8px;background:var(--red);color:#fff;padding:10px 16px;
  font-family:var(--disp);font-weight:800;font-size:13px;border-bottom:3px solid var(--ink);}
.term-bar .dot{width:12px;height:12px;border-radius:50%;border:2px solid var(--ink);}
.dot.r{background:#FF5F57;} .dot.y{background:var(--yellow);} .dot.g{background:#28C840;}
.term-x{margin-left:auto;}
.term-body{padding:20px 22px;font-family:var(--body);font-weight:600;font-size:13.5px;letter-spacing:.04em;line-height:1.95;color:#7CFCB1;}
.term-line{opacity:0;transform:translateY(6px);}
.term-line.warn-red{color:#FF6B81;} .term-line.warn-yl{color:var(--yellow);} .term-line.ok{color:#7CFCB1;}
.term-line.ok{animation:none;}
.blink{animation:blinkc 1s steps(2) infinite;}
@keyframes blinkc{50%{opacity:.2;}}
.ban-chips{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;margin-top:26px;}
.ban{font-family:var(--disp);font-weight:800;font-size:13px;background:#fff;border:2.5px solid var(--ink);
  border-radius:100px;padding:8px 16px;box-shadow:3px 3px 0 var(--ink);position:relative;}
body.alarm{animation:alarm .28s steps(2) 7;}
@keyframes alarm{50%{background:#2b0d14;}}

/* ============ FLIPBOOK FINALE ============ */
#bulletin{background:radial-gradient(ellipse at 50% 24%,#4a2570 0%,#2a1440 55%,#150a22 100%);overflow:hidden;}
.noise{position:absolute;inset:0;opacity:.5;pointer-events:none;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)' opacity='0.55'/%3E%3C/svg%3E");}
.spotlight{position:absolute;left:50%;top:52%;width:1200px;height:900px;transform:translate(-50%,-50%);pointer-events:none;
  background:radial-gradient(closest-side,rgba(252,235,79,.16),transparent 70%);}
#bulletin .sec-head{text-align:center;position:relative;z-index:2;}
#fbStage{position:relative;z-index:2;display:flex;justify-content:center;margin:30px auto 0;filter:drop-shadow(0 30px 46px rgba(0,0,0,.6));}
.fb-page{background:#fff;overflow:hidden;position:relative;}
.fb-page img{position:absolute;inset:0;width:100%;height:100%;display:block;}
.fb-controls{position:relative;z-index:2;display:flex;gap:10px;justify-content:center;align-items:center;margin-top:30px;flex-wrap:wrap;}

/* ============ FOOTER ============ */
footer{position:relative;background:var(--paper);padding:110px 6vw 60px;overflow:hidden;text-align:center;}
.f-dragon{position:absolute;height:75%;right:-70px;bottom:-40px;opacity:.16;pointer-events:none;}
.f-inner{position:relative;z-index:1;}
.f-logos{display:flex;gap:14px;justify-content:center;margin-bottom:26px;}
.f-logos img{width:100px;filter:drop-shadow(3px 3px 0 rgba(26,26,26,.15));}
.f-title{font-size:clamp(30px,5vw,58px);text-transform:uppercase;color:var(--purple);}
.f-title em{font-style:normal;color:var(--red);}
footer p{margin-top:16px;font-size:14px;}
.f-credit{margin-top:34px;font-size:11px;color:rgba(26,26,26,.5);}

/* reveal helpers */
.will-reveal{opacity:0;}


/* ============ RESPONSIVE ============ */
@media (max-width:1024px){
  #dragon{height:70vh;right:-14vw;}
  .air{font-size:42px;}
}
@media (max-width:760px){
  section{padding:80px 5vw;}
  #topbar{padding:10px 14px;}
  #topbar .btn{font-size:11px;padding:7px 12px;}
  .brand span{display:none;}
  #dragon{height:46vh;right:-24vw;bottom:-4vh;opacity:.9;}
  .hero-inner{padding-top:8vh;}
  .eyebrow{font-size:9px;padding:6px 14px;letter-spacing:.12em;}
  .hero-chips{gap:8px;}
  .hero-chips .chip{font-size:12px;padding:5px 12px;}
  #stamp{width:82px;height:82px;left:auto;right:18px;bottom:18px;}
  .cloud.c2{display:none;}
  .ticker-track span{font-size:15px;padding:9px 0;}
  .sec-head.mt{margin-top:70px;}
  .bcard{padding:20px;}
  .bcard.tall{grid-row:span 1;min-height:220px;}
  .flip{height:220px;}
  .route{gap:10px;}
  .air{font-size:32px;}
  .pass-main{padding:18px;}
  .pass-stub b{font-size:24px;}
  #planeEmoji{font-size:36px;}
  .timeline{padding-left:36px;}
  .tl-dot{left:-33px;}
  .photo-strip{margin-top:44px;}
  .term-body{font-size:11.5px;padding:16px 14px;line-height:1.8;}
  .term-bar{font-size:11px;padding:8px 12px;}
  .ban{font-size:11px;padding:6px 12px;}
  #fbStage{margin-top:16px;}
  .fb-controls .btn{padding:7px 12px;font-size:11.5px;}
  .f-dragon{height:46%;right:-40px;}
  .f-logos img{width:76px;}
}
@media (max-width:480px){
  .giant{font-size:clamp(34px,12.5vw,60px);}
  .badges{grid-template-columns:1fr;}
  .flip{height:200px;}
  .chipline .chip{font-size:10px;}
  .pass-top{flex-direction:column;align-items:flex-start;}
  .chk{padding:12px 14px;font-size:13px;}
}

body.fonts-in .loader-count,body.fonts-in .loader-tag{opacity:1;}
