:root{
  --bg:#FFFFFF;
  --bg-soft:#FAFAFC;
  --ink:#12131A;
  --ink-soft:#53566B;
  --ink-faint:#9497AC;
  --line:#E7E8F0;
  --blue:#1E2EEA;
  --blue-deep:#141E9E;
  --navy:#0C1142;
  --orange:#FF5B1E;
  --orange-deep:#DE460E;
  --sky:#8FBAEC;
  --sky-deep:#3E6FB8;
  --gold:#C68A2E;
  --outline:#12131A;
  --shadow-hard: 5px 5px 0 var(--outline);
  color-scheme: light;
  padding-top: env(safe-area-inset-top, 0px);
  padding-bottom: env(safe-area-inset-bottom, 0px);
}
/* LAYOVER is a committed light/paper design (matches the print poster).
   It intentionally ignores prefers-color-scheme and stays white. */

*{box-sizing:border-box;}
html,body{margin:0;}
body{
  background:var(--bg);
  color:var(--ink);
  font-family:"Sora",system-ui,-apple-system,"Segoe UI",sans-serif;
  overflow-x:hidden;
}
img{max-width:100%;}
[hidden]{display:none!important;}
p{margin:0;line-height:1.65;}
a{color:inherit;}
.mono{font-family:"Space Mono",ui-monospace,monospace;}
.wrap{max-width:1320px;margin-inline:auto;padding-inline:max(24px, calc((100vw - 1320px)/2));}
section{padding-block:56px;}

/* ---- outlined display type (the LAYOVER treatment) ---- */
.out-text{
  font-family:"Baloo 2",system-ui,sans-serif;
  font-weight:800;
  color:var(--blue);
  -webkit-text-stroke: 3px var(--outline);
  text-stroke: 3px var(--outline);
  paint-order: stroke fill;
  line-height:.95;
  letter-spacing:.5px;
  text-wrap:balance;
  margin:0;
}
.solid-text{
  font-family:"Baloo 2",system-ui,sans-serif;
  color:var(--blue);
  line-height:1.02;
  margin:0;
}

.eyebrow{
  font-family:"Space Mono";font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;
  color:var(--orange-deep);font-weight:700;display:flex;align-items:center;gap:10px;margin-bottom:12px;
}
.eyebrow::before{content:"";width:20px;height:2px;background:var(--orange);}

.btn{
  display:inline-flex;align-items:center;gap:8px;font-family:"Sora";font-weight:700;font-size:.94rem;
  padding:12px 22px;border-radius:999px;border:2.5px solid var(--outline);text-decoration:none;cursor:pointer;
  box-shadow:3px 3px 0 var(--outline);transition:transform .12s ease, box-shadow .12s ease;background:var(--bg);color:var(--ink);
}
.btn:hover{transform:translate(-1px,-1px);box-shadow:4px 4px 0 var(--outline);}
.btn:active{transform:translate(1px,1px);box-shadow:1px 1px 0 var(--outline);}
.btn:focus-visible{outline:3px solid var(--blue);outline-offset:3px;}
.btn-primary{background:var(--orange);color:#fff;border-color:var(--outline);}
.btn-ghost{background:var(--bg);}

/* ---------- nav ---------- */
.nav{position:sticky;top:env(safe-area-inset-top,0px);z-index:50;background:color-mix(in srgb, var(--bg) 92%, transparent);backdrop-filter:blur(8px);border-bottom:2px solid var(--line);}
.nav-row{display:flex;align-items:center;justify-content:space-between;padding-block:12px;gap:16px;}
.brand{font-family:"Baloo 2";font-weight:700;font-size:1.4rem;color:var(--blue);}
.nav-links{display:flex;gap:24px;list-style:none;margin:0;padding:0;font-size:.9rem;font-weight:600;}
.nav-links a{text-decoration:none;color:var(--ink-soft);border-bottom:2px solid transparent;padding-block:3px;}
.nav-links a:hover{color:var(--blue);border-color:var(--orange);}

/* ---------- doodles ---------- */
.doodle svg{display:block;overflow:visible;}

/* ---------- hero ---------- */
.hero{padding-block:24px 0;position:relative;}
.partner-row{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:18px;}
.partner{display:flex;align-items:center;gap:10px;}
.partner.right{text-align:right;}
.partner-logo{display:block;width:auto;max-width:100%;}

.hero-main{position:relative;display:grid;grid-template-columns:1.5fr .5fr;gap:20px;align-items:start;margin-bottom:28px;}
.hero-copy h1.out-text{font-size:clamp(2.8rem,8vw,5.6rem);}
.hero-copy .lead{margin-top:4px;}
.hero-copy .lead .solid-text{display:block;font-size:clamp(1.4rem,3.4vw,2rem);}
.hero-copy .lead .solid-text.big{font-weight:800;font-size:clamp(1.7rem,4.2vw,2.4rem);}
.hero-copy .desc{margin-top:12px;max-width:48ch;color:var(--ink-soft);font-size:1rem;}
.hero-art{position:relative;min-height:160px;padding-top:12px;}
.hero-art .plane-doodle{position:absolute;top:0;right:0;width:min(260px, 90%);cursor:pointer;}
.hero-art .spark-orange{position:absolute;top:-14px;left:2%;width:40px;}
.hero-art .spark-blue{position:absolute;bottom:2%;right:2%;width:30px;}

/* ---- the "cool flight" fun element: the plane swoops in on load, idles,
   and on tap/click/Enter takes off on one big loop down across the hero and
   ticket and back to its resting spot — the same shape as the flight path
   sketched over the page: left across the top, down past the headline and
   copy, around the bottom of the ticket, up the right side, and home. The
   rotation at each stop is computed from the actual heading of that leg
   (atan2 of the step, plus the 45deg the artwork is drawn at) so the nose
   genuinely points the way it's flying instead of just banking for show.
   The flow lives on .plane-inner (not the outer .plane-doodle) so it layers
   on top of the entrance/idle-float transform instead of restarting it.
   vw/vh keep it proportional on phones and desktops alike; linear timing
   over evenly-spaced points keeps the pacing (and so the rotation, which
   assumes even spacing) consistent instead of jerky. ---- */
.plane-doodle{ animation: plane-fly-in 1.3s cubic-bezier(.22,.9,.32,1) both; }
.plane-doodle:focus-visible{ outline:3px solid var(--blue); outline-offset:6px; border-radius:8px; }
.plane-doodle.flying{ z-index:60; }
.plane-inner{ display:block; transform-origin:50% 50%; }
@media (prefers-reduced-motion: no-preference){
  .plane-doodle{ animation: plane-fly-in 1.3s cubic-bezier(.22,.9,.32,1) both, plane-float 4.6s ease-in-out 1.3s infinite; }
  .plane-inner.flying{ animation: plane-flow 4s linear; }
}
@keyframes plane-fly-in{
  0%{ transform:translate(-170px,130px) rotate(-22deg) scale(.7); opacity:0; }
  14%{ opacity:1; }
  62%{ transform:translate(16px,-16px) rotate(5deg) scale(1.05); }
  100%{ transform:translate(0,0) rotate(0deg) scale(1); opacity:1; }
}
@keyframes plane-float{
  0%,100%{ transform:translateY(0) rotate(0deg); }
  50%{ transform:translateY(-9px) rotate(-3deg); }
}
/* Catmull-Rom-smoothed samples of the same loop (3x the original 12 anchor
   points) so the curve itself is round instead of faceted, with rotation
   unwrapped across the whole pass so it turns continuously in one
   direction instead of snapping between keyframes. */
@keyframes plane-flow{
  0.0%   { transform:translate(0vw,0vh)      rotate(0deg); }
  2.7%   { transform:translate(-5.7vw,0.8vh)  rotate(-147deg); }
  5.3%   { transform:translate(-12.6vw,2.3vh) rotate(-148deg); }
  8.0%   { transform:translate(-20vw,4vh)     rotate(-145deg); }
  10.7%  { transform:translate(-28.4vw,5.5vh) rotate(-146deg); }
  13.3%  { transform:translate(-37.4vw,7.3vh) rotate(-155deg); }
  16.0%  { transform:translate(-45vw,10vh)    rotate(-171deg); }
  18.7%  { transform:translate(-50.8vw,14.3vh) rotate(-185deg); }
  21.3%  { transform:translate(-55.2vw,19.5vh) rotate(-198deg); }
  24.0%  { transform:translate(-58vw,25vh)     rotate(-217deg); }
  26.7%  { transform:translate(-58.8vw,30.7vh) rotate(-234deg); }
  29.3%  { transform:translate(-57.9vw,36.6vh) rotate(-244deg); }
  32.0%  { transform:translate(-56vw,42vh)     rotate(-252deg); }
  34.7%  { transform:translate(-53.5vw,46.8vh) rotate(-264deg); }
  37.3%  { transform:translate(-50vw,51.1vh)   rotate(-277deg); }
  40.0%  { transform:translate(-45vw,55vh)     rotate(-288deg); }
  42.7%  { transform:translate(-37.8vw,58.7vh) rotate(-295deg); }
  45.3%  { transform:translate(-29.1vw,62vh)   rotate(-302deg); }
  48.0%  { transform:translate(-20vw,64vh)     rotate(-311deg); }
  50.7%  { transform:translate(-10.4vw,64.6vh) rotate(-319deg); }
  53.3%  { transform:translate(-0.4vw,64vh)    rotate(-328deg); }
  56.0%  { transform:translate(8vw,62vh)       rotate(-345deg); }
  58.7%  { transform:translate(14.1vw,58.4vh)  rotate(-362deg); }
  61.3%  { transform:translate(18.7vw,53.6vh)  rotate(-375deg); }
  64.0%  { transform:translate(22vw,48vh)      rotate(-389deg); }
  66.7%  { transform:translate(23.9vw,41.7vh)  rotate(-401deg); }
  69.3%  { transform:translate(24.4vw,34.7vh)  rotate(-408deg); }
  72.0%  { transform:translate(24vw,28vh)      rotate(-416deg); }
  74.7%  { transform:translate(22.7vw,21.5vh)  rotate(-424deg); }
  77.3%  { transform:translate(20.5vw,15.2vh)  rotate(-431deg); }
  80.0%  { transform:translate(18vw,10vh)      rotate(-442deg); }
  82.7%  { transform:translate(15.2vw,6.4vh)   rotate(-456deg); }
  85.3%  { transform:translate(12.1vw,3.9vh)   rotate(-464deg); }
  88.0%  { transform:translate(9vw,2vh)        rotate(-468deg); }
  92.0%  { transform:translate(6.4vw,0.7vh)    rotate(-481deg); }
  96.0%  { transform:translate(3.8vw,0vh)      rotate(-495deg); }
  100.0% { transform:translate(0,0)            rotate(0deg); }
}
.plane-hint{
  position:absolute;top:-10px;right:6px;
  font-size:.62rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;
  color:var(--orange-deep);background:var(--bg);border:2px solid var(--outline);border-radius:999px;
  padding:4px 10px;box-shadow:2px 2px 0 var(--outline);
  opacity:0;pointer-events:none;white-space:nowrap;
  animation:hint-in .5s ease 1.5s forwards;
}
@keyframes hint-in{ from{opacity:0;transform:translateY(4px);} to{opacity:1;transform:translateY(0);} }
@media (prefers-reduced-motion: reduce){
  .plane-hint{ animation:none; opacity:1; }
}

/* ---------- ticket ---------- */
.ticket{
  position:relative;background:var(--bg);border:5px solid var(--orange);border-radius:22px;
  box-shadow:0 18px 34px -20px rgba(12,17,66,.28);padding:0;margin-bottom:20px;
}
.ticket-grid{display:grid;grid-template-columns:.78fr 1.22fr;}
.ticket-left{padding:18px 18px;display:flex;flex-direction:column;gap:10px;border-right:2.5px dashed var(--line);}
.field-tags{display:flex;flex-direction:column;gap:8px;}
.field-tag{
  display:inline-flex;align-items:center;justify-content:space-between;gap:12px;
  background:var(--bg);border:2px solid var(--outline);color:var(--ink);
  font-family:"Space Mono";font-weight:700;font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;
  padding:6px 12px;border-radius:7px;box-shadow:2px 3px 0 var(--outline);width:fit-content;transform:rotate(-1.2deg);
}
.field-tag:nth-child(2){transform:rotate(1.1deg);}
.field-tag .fval{color:var(--blue);letter-spacing:.02em;}
.ticket-right{padding:18px 22px 20px;position:relative;}
.bars-row{display:flex;flex-direction:column;gap:6px;margin-bottom:12px;}
.date-bar{
  background:var(--orange);color:#fff;font-family:"Baloo 2";font-weight:700;font-size:.96rem;
  padding:6px 14px;border-radius:7px;display:inline-block;transform:rotate(-1.4deg);width:fit-content;
}
.date-bar:nth-child(2){transform:rotate(1deg);}
.route-row{display:flex;align-items:center;gap:14px;margin-bottom:10px;flex-wrap:wrap;}
.route-row .rcity{font-family:"Space Mono";font-weight:700;}
.route-row .rcity .code{font-size:1.2rem;color:var(--ink);display:block;}
.route-row .rcity .place{font-size:.6rem;color:var(--ink-faint);letter-spacing:.1em;text-transform:uppercase;font-weight:400;}
.route-row .rline{flex:1;min-width:70px;position:relative;height:2px;background:repeating-linear-gradient(to right, var(--ink) 0 7px, transparent 7px 13px);}
.route-row .rline .doodle{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:22px;}
.venue-line{font-size:.82rem;color:var(--ink-soft);margin-bottom:12px;}
.venue-line b{color:var(--ink);}
.apply-pill{display:inline-flex;align-items:center;gap:6px;background:var(--bg-soft);border:2px solid var(--line);border-radius:999px;padding:6px 14px 6px 6px;font-size:.78rem;font-weight:700;color:var(--blue);text-decoration:none;}
.apply-pill .chip{background:var(--ink);color:#fff;font-family:"Space Mono";font-size:.58rem;font-weight:700;padding:3px 7px;border-radius:6px;letter-spacing:.05em;}
.qr{margin-top:auto;}
.qr svg{width:64px;height:64px;}

.ribbon{position:relative;display:inline-block;transform:rotate(-3deg);font-family:"Baloo 2";font-weight:700;color:#fff;text-align:center;box-shadow:2px 3px 0 rgba(12,17,66,.25);border-radius:6px;overflow:hidden;}
.ribbon .r-top{background:var(--orange);padding:4px 12px;font-size:.8rem;}
.ribbon .r-bottom{background:var(--navy);padding:4px 12px;font-size:.8rem;}

.skyline-swatch{width:68px;height:78px;border-radius:12px;background:linear-gradient(180deg,var(--blue) 0%, var(--blue-deep) 100%);position:relative;overflow:hidden;border:2px solid var(--outline);flex:none;}
.skyline-swatch svg{position:absolute;bottom:0;left:0;width:100%;}

.ticket-corner{display:flex;align-items:flex-end;justify-content:flex-end;gap:10px;margin-top:14px;}

.doodle-cloud-hero{position:absolute;left:-10px;bottom:-20px;width:60px;}

/* ---------- flight strip (stats) ---------- */
.strip{background:var(--bg-soft);padding-block:36px;}
.strip .wrap{display:grid;grid-template-columns:repeat(5,1fr);gap:14px;}
.strip .cell{
  background:var(--bg);border:2.5px solid var(--outline);border-radius:16px;box-shadow:var(--shadow-hard);
  text-align:center;padding:20px 14px;
}
.strip .cell .num{display:block;font-family:"Baloo 2";font-weight:700;font-size:1.6rem;color:var(--ink);}
.strip .cell .lbl{display:block;font-family:"Space Mono";font-size:.64rem;letter-spacing:.1em;text-transform:uppercase;color:var(--orange-deep);font-weight:700;margin-top:6px;}
.strip .cell .sub{display:block;font-size:.78rem;color:var(--ink-soft);margin-top:4px;}

/* ---------- section heads ---------- */
.sec-head{max-width:60ch;margin-bottom:36px;}
.sec-head h2{font-size:clamp(1.9rem,4vw,2.5rem);}
.sec-head p{margin-top:12px;color:var(--ink-soft);font-size:1rem;}

/* ---------- overview ---------- */
.overview-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:40px;align-items:start;}
.overview-grid p + p{margin-top:14px;}
.overview-grid p{color:var(--ink-soft);font-size:1rem;}
.quote-card{background:var(--bg);border:2.5px solid var(--blue);border-radius:18px;padding:24px;box-shadow:var(--shadow-hard);}
.quote-card .mark{font-family:"Baloo 2";font-size:2.4rem;color:var(--orange);display:block;line-height:1;margin-bottom:4px;}
.quote-card p{color:var(--ink);font-size:1.04rem;font-weight:500;}
.quote-card .who{margin-top:12px;font-family:"Space Mono";font-size:.68rem;color:var(--ink-faint);letter-spacing:.06em;text-transform:uppercase;}

/* ---------- build tags ---------- */
.tag-grid{display:flex;flex-wrap:wrap;gap:16px 18px;}
.tag{background:var(--bg);border:2.5px solid var(--blue);border-radius:12px;padding:13px 18px;font-weight:600;font-size:.92rem;max-width:230px;box-shadow:4px 4px 0 var(--blue);}
.tag:nth-child(3n+2){border-color:var(--orange);box-shadow:4px 4px 0 var(--orange);}
.tag:nth-child(3n){border-color:var(--navy);box-shadow:4px 4px 0 var(--navy);}
.tag:nth-child(odd){transform:rotate(-1deg);}
.tag:nth-child(even){transform:rotate(1deg);}
.tag .kicker{display:block;font-family:"Space Mono";font-size:.6rem;color:var(--orange-deep);letter-spacing:.1em;margin-bottom:3px;}
.tag.spotlight{background:var(--blue);color:#fff;border-color:var(--outline);box-shadow:4px 4px 0 var(--outline);}
.tag.spotlight .kicker{color:#CBD4FF;}
.must-build{margin-top:24px;font-family:"Space Mono";font-size:.84rem;color:var(--ink-soft);}
.must-build b{color:var(--ink);}

/* ---------- format board ---------- */
.format-board{border:2.5px solid var(--outline);border-radius:18px;overflow:hidden;box-shadow:var(--shadow-hard);}
.format-row{display:grid;grid-template-columns:1fr 1.6fr;gap:12px;padding:15px 24px;border-bottom:2px dashed var(--line);align-items:baseline;}
.format-row:last-child{border-bottom:none;}
.format-row:nth-child(even){background:var(--bg-soft);}
.format-row .k{font-family:"Space Mono";font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-faint);}
.format-row .v{font-family:"Baloo 2";font-weight:600;font-size:1rem;color:var(--ink);}
.format-row .v.mono{font-family:"Space Mono";font-weight:700;color:var(--blue);}

/* ---------- flow ---------- */
.flow-track{position:relative;padding-top:16px;}
.flow-line{position:absolute;top:29px;left:0;right:0;height:2px;background:repeating-linear-gradient(to right, var(--ink-faint) 0 8px, transparent 8px 16px);}
.flow-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;position:relative;}
.flow-step{display:flex;flex-direction:column;align-items:flex-start;gap:10px;}
.flow-node{width:24px;height:24px;border-radius:50%;background:var(--orange);border:3px solid var(--bg);box-shadow:0 0 0 2.5px var(--outline);position:relative;z-index:2;}
.flow-step .time{font-family:"Space Mono";font-weight:700;color:var(--blue);font-size:.92rem;}
.flow-step .desc{font-size:.9rem;color:var(--ink-soft);}

/* ---------- judging ---------- */
.judge-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:44px;}
.judge-card{background:var(--bg);border:2.5px solid var(--outline);border-radius:16px;padding:20px;box-shadow:var(--shadow-hard);}
.judge-card .idx{font-family:"Space Mono";color:var(--orange-deep);font-weight:700;font-size:.76rem;letter-spacing:.08em;}
.judge-card h3{font-family:"Baloo 2";font-size:1.08rem;margin-top:8px;}
.judge-card p{margin-top:8px;color:var(--ink-soft);font-size:.87rem;}
.judge-card .when{margin-top:12px;font-family:"Space Mono";font-size:.72rem;color:var(--blue);font-weight:700;}

.criteria{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:start;}
.bars{display:flex;flex-direction:column;gap:14px;}
.bar-row{display:grid;grid-template-columns:150px 1fr 36px;align-items:center;gap:12px;}
.bar-row .name{font-size:.86rem;font-weight:600;color:var(--ink);}
.bar-track{height:14px;background:var(--bg-soft);border:2px solid var(--outline);border-radius:8px;overflow:hidden;}
.bar-fill{height:100%;background:var(--orange);}
.bar-row .val{font-family:"Space Mono";font-weight:700;color:var(--blue);text-align:right;font-variant-numeric:tabular-nums;}
.criteria-total{margin-top:10px;padding-top:14px;border-top:2px dashed var(--line);display:flex;justify-content:space-between;font-family:"Space Mono";font-weight:700;color:var(--ink);}
.note-card{background:var(--bg-soft);border:2px solid var(--line);border-radius:16px;padding:20px 22px;font-size:.92rem;color:var(--ink);}
.note-card b{color:var(--blue);}

/* ---------- prizes ---------- */
.prize-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:22px;}
.prize-card{background:var(--bg);border:5px solid var(--orange);border-radius:24px;padding:30px;position:relative;box-shadow:0 20px 40px -22px rgba(12,17,66,.28);display:flex;flex-direction:column;gap:14px;}
.prize-card .out-text{font-size:clamp(2rem,4.4vw,2.8rem);}
.prize-card p{color:var(--ink-soft);max-width:34ch;}
.prize-card .foot-row{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;margin-top:6px;}
.side-card{background:var(--bg);border:2.5px solid var(--blue);border-radius:18px;padding:26px;box-shadow:var(--shadow-hard);}
.side-card h3{font-family:"Baloo 2";font-size:1.12rem;margin-bottom:10px;}
.side-card p{color:var(--ink-soft);font-size:.93rem;}

/* ---------- milestones ---------- */
.milestones{display:flex;flex-direction:column;}
.milestone{display:grid;grid-template-columns:126px 22px 1fr;gap:18px;padding-block:15px;}
.milestone .mdate{font-family:"Space Mono";font-weight:700;color:var(--blue);font-size:.85rem;padding-top:2px;}
.milestone .mline{display:flex;flex-direction:column;align-items:center;}
.milestone .mdot{width:13px;height:13px;border-radius:50%;background:var(--orange);border:2px solid var(--bg);box-shadow:0 0 0 2px var(--outline);flex:none;margin-top:4px;}
.milestone .mstem{flex:1;width:2px;background:var(--line);margin-top:2px;}
.milestone:last-child .mstem{display:none;}
.milestone .mtext b{display:block;color:var(--ink);font-size:.97rem;margin-bottom:2px;}
.milestone .mtext span{color:var(--ink-soft);font-size:.87rem;}

/* ---------- faq ---------- */
.faq-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;align-items:start;}
.faq-item{background:var(--bg);border:2.5px solid var(--outline);border-radius:14px;padding:0 22px;box-shadow:3px 3px 0 var(--outline);transition:box-shadow .12s ease, transform .12s ease;}
.faq-item[open]{box-shadow:4px 4px 0 var(--blue);}
.faq-item summary{list-style:none;cursor:pointer;padding:16px 34px 16px 0;position:relative;font-family:"Baloo 2";font-weight:600;font-size:.98rem;color:var(--ink);}
.faq-item summary::-webkit-details-marker{display:none;}
.faq-item summary::after{
  content:"+";position:absolute;right:0;top:16px;
  width:22px;height:22px;border:2px solid var(--outline);border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  font-family:"Space Mono";font-weight:700;font-size:.95rem;color:var(--blue);line-height:1;
  transition:transform .2s ease, color .2s ease, border-color .2s ease;
}
.faq-item[open] summary::after{content:"\2212";transform:rotate(180deg);color:#fff;background:var(--orange);border-color:var(--outline);}
.faq-item .faq-a{padding:0 0 18px;color:var(--ink-soft);font-size:.88rem;border-top:2px dashed var(--line);padding-top:14px;}

/* ---------- footer ---------- */
.footer{background:var(--bg-soft);border-top:2.5px solid var(--line);padding-block:56px 30px;margin-top:20px;position:relative;overflow:hidden;}
.footer .wrap{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;gap:14px;}
.footer .out-text{font-size:clamp(2.1rem,6vw,3.4rem);}
.footer .sub{color:var(--ink-soft);max-width:44ch;}
.footer .cta-row{display:flex;justify-content:center;gap:14px;flex-wrap:wrap;margin-block:8px 30px;}
.footer .badges{display:flex;justify-content:center;align-items:center;gap:36px;flex-wrap:wrap;padding-block:24px;border-top:2px dashed var(--line);border-bottom:2px dashed var(--line);width:100%;margin-bottom:18px;}
.footer .bottom{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px;font-size:.8rem;color:var(--ink-faint);width:100%;}
.footer .bottom a{color:var(--orange-deep);text-decoration:none;font-weight:700;}
.footer .fcloud{position:absolute;left:2%;bottom:-6%;width:80px;opacity:.9;}
.footer .fspark{position:absolute;right:4%;top:6%;width:34px;}

.reveal-init{opacity:0;transform:translateY(14px);transition:opacity .5s ease, transform .5s ease;}
.reveal{opacity:1;transform:none;}

/* ---------- responsive ---------- */
@media (max-width: 860px){
  .nav-links{display:none;}
  .hero-main{grid-template-columns:1fr;}
  .hero-art{
    position:static;order:0;min-height:auto;padding-top:0;
    display:flex;align-items:center;justify-content:center;gap:12px;margin:18px 0 6px;
  }
  .hero-art .plane-doodle,.hero-art .spark-orange,.hero-art .spark-blue{position:static;inset:auto;transform:none;}
  .hero-art .plane-doodle{width:130px;order:2;}
  .hero-art .spark-orange{width:26px;order:1;}
  .hero-art .spark-blue{width:22px;order:3;}
  .plane-hint{display:none;}
  .ticket-grid{grid-template-columns:1fr;}
  .ticket-left{border-right:none;border-bottom:2.5px dashed var(--line);}
  .ticket-corner{position:static;margin-top:16px;justify-content:flex-start;}
  .doodle-cloud-hero{display:none;}
  .overview-grid{grid-template-columns:1fr;}
  .judge-grid{grid-template-columns:repeat(2,1fr);}
  .criteria{grid-template-columns:1fr;}
  .prize-grid{grid-template-columns:1fr;}
  .flow-steps{grid-template-columns:repeat(2,1fr);row-gap:30px;}
  .flow-line{display:none;}
  .strip .wrap{grid-template-columns:repeat(3,1fr);}
  .faq-grid{grid-template-columns:1fr;}
}
@media (max-width: 560px){
  .judge-grid{grid-template-columns:1fr;}
  .strip .wrap{grid-template-columns:repeat(2,1fr);}
  .milestone{grid-template-columns:96px 18px 1fr;gap:10px;}
  .bar-row{grid-template-columns:104px 1fr 32px;}
}
