/* TERRAINVITE v23 — Birthday / Alien Stage. Fully scoped to .alien-stage-birthday. */
.asb{
  --asb-bg:#050608;
  --asb-bg-2:#080a0f;
  --asb-bg-3:#0d1017;
  --asb-panel:#11141e;
  --asb-cyan:#59f4ff;
  --asb-cyan-2:#20e5ff;
  --asb-magenta:#ff4fae;
  --asb-pink:#ff69cf;
  --asb-violet:#9a6bff;
  --asb-violet-2:#7650ff;
  --asb-white:#f4f6ff;
  --asb-silver:#aeb7c8;
  --asb-muted:#7d8799;
  --asb-red:#ff526d;
  --asb-display:"Rubik Mono One","Noto Sans",sans-serif;
  --asb-body:"Manrope","Noto Sans",sans-serif;
  position:relative;
  width:100%;
  min-height:100%;
  overflow:hidden;
  background:var(--asb-bg);
  color:var(--asb-white);
  font-family:var(--asb-body);
  color-scheme:dark;
  isolation:isolate;
}
.asb,.asb *,.asb *::before,.asb *::after{box-sizing:border-box}
.invite-font-scope[lang="kk"] .asb{--asb-body:"Noto Sans",sans-serif}
.asb .invite-body{position:relative;background:var(--asb-bg);overflow:hidden}
.asb .invite-section-slot{position:relative}
.asb :is(h1,h2,h3,p,figure){margin:0}
.asb :is(h1,h2,h3){font-family:var(--asb-display);font-weight:400}
.asb :is(img,svg){max-width:100%}
.asb-section{position:relative;padding:clamp(76px,19vw,132px) clamp(18px,5vw,64px);overflow:hidden}
.asb-section::before{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,transparent 0 4%,rgba(89,244,255,.025) 4.2% 4.45%,transparent 4.7% 95%,rgba(255,79,174,.025) 95.2% 95.45%,transparent 95.7%)}
.asb-kicker,.asb-eyebrow,.asb-heading>span{font:700 10px/1.3 var(--asb-body);letter-spacing:.25em;text-transform:uppercase;color:var(--asb-cyan)}
.asb-heading{display:grid;gap:12px;position:relative;z-index:2;max-width:1040px;margin:0 auto 38px}
.asb-heading h2{max-width:900px;font-size:clamp(30px,8.7vw,72px);line-height:.94;letter-spacing:-.045em;text-transform:uppercase;text-wrap:balance}
.asb-reveal[data-ti-motion]{transition-delay:calc(var(--ti-delay,0ms) + var(--asb-delay,0ms))}
.asb .audio-fab{background:rgba(5,6,8,.88);border:1px solid rgba(89,244,255,.46);color:var(--asb-cyan);box-shadow:0 0 24px rgba(32,229,255,.18),inset 0 0 18px rgba(89,244,255,.08);backdrop-filter:blur(12px)}

/* Opening gate: common functionality is untouched, only the surface is themed. */
.asb .ti-opening{background:radial-gradient(circle at 20% 20%,rgba(32,229,255,.14),transparent 32%),radial-gradient(circle at 82% 74%,rgba(255,79,174,.12),transparent 36%),#050608}
.asb .ti-opening::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,transparent 49.8%,rgba(89,244,255,.13) 50%,transparent 50.2%),repeating-linear-gradient(0deg,rgba(255,255,255,.018) 0 1px,transparent 1px 4px)}
.asb .ti-envelope{filter:drop-shadow(0 24px 60px rgba(0,0,0,.7)) drop-shadow(-12px 0 24px rgba(32,229,255,.08)) drop-shadow(12px 0 24px rgba(255,79,174,.08))}
.asb .ti-envelope__letter{background:linear-gradient(145deg,#11141e,#080a0f);color:var(--asb-white);border-color:rgba(89,244,255,.34)}
.asb .ti-envelope__event{color:var(--asb-cyan);letter-spacing:.24em}
.asb .ti-envelope__names{color:#fff;text-shadow:0 0 26px rgba(154,107,255,.28)}
.asb .ti-envelope__message{color:var(--asb-silver)}
.asb .ti-envelope__open{background:rgba(9,12,18,.92);color:#fff;border:1px solid rgba(89,244,255,.55);box-shadow:0 0 24px rgba(32,229,255,.15),inset 0 0 20px rgba(255,79,174,.06)}
.asb .ti-envelope__play{color:var(--asb-cyan)}
.asb.is-gated .invite-body *,.asb.is-gated .invite-body *::before,.asb.is-gated .invite-body *::after{animation-play-state:paused!important}

/* Shared character screens. */
.asb-character{--char:var(--asb-cyan);position:relative;margin:0;overflow:hidden;background:#080b12;border:1px solid color-mix(in srgb,var(--char) 45%,transparent);box-shadow:0 0 38px color-mix(in srgb,var(--char) 15%,transparent),inset 0 0 30px color-mix(in srgb,var(--char) 8%,transparent);isolation:isolate}
.asb-character--red{--char:var(--asb-red)}
.asb-character--violet{--char:var(--asb-violet)}
.asb-character--magenta{--char:var(--asb-magenta)}
.asb-character img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;filter:saturate(.9) contrast(1.08);z-index:1}
.asb-character::after{content:"";position:absolute;inset:0;z-index:2;pointer-events:none;background:linear-gradient(180deg,transparent 52%,rgba(5,6,8,.88)),linear-gradient(90deg,color-mix(in srgb,var(--char) 13%,transparent),transparent 48%)}
.asb-character figcaption{position:absolute;z-index:4;left:12px;right:12px;bottom:11px;display:flex;align-items:end;justify-content:space-between;gap:8px;color:#fff}
.asb-character figcaption span{font:700 9px/1 var(--asb-body);letter-spacing:.18em;color:var(--char)}
.asb-character figcaption strong{font:400 clamp(12px,3.5vw,19px)/1 var(--asb-display);letter-spacing:.06em;text-shadow:0 0 14px color-mix(in srgb,var(--char) 50%,transparent)}
.asb-character-scan{position:absolute;z-index:3;inset:0;background:repeating-linear-gradient(180deg,transparent 0 5px,rgba(255,255,255,.025) 5px 6px);pointer-events:none}
.asb-character-fallback{position:absolute;inset:0;display:grid;place-items:center;font:400 clamp(44px,14vw,100px)/1 var(--asb-display);color:color-mix(in srgb,var(--char) 48%,#11141e);background:radial-gradient(circle,color-mix(in srgb,var(--char) 14%,transparent),transparent 65%)}
.asb-character.is-missing{border-style:dashed}

/* Hero / performance poster. */
.asb-hero{position:relative;min-height:max(760px,100dvh);height:100dvh;max-height:1060px;overflow:hidden;background:radial-gradient(ellipse at 50% 72%,rgba(118,80,255,.15),transparent 40%),radial-gradient(circle at 22% 34%,rgba(32,229,255,.08),transparent 34%),radial-gradient(circle at 84% 45%,rgba(255,79,174,.09),transparent 34%),linear-gradient(180deg,#030406,#080a0f 72%,#050608);isolation:isolate}
.asb-hero::before{content:"";position:absolute;z-index:-7;inset:0;background:repeating-linear-gradient(180deg,rgba(255,255,255,.018) 0 1px,transparent 1px 4px);opacity:.55;mix-blend-mode:screen}
.asb-boot-line{position:absolute;z-index:30;left:50%;top:48%;height:1px;width:0;background:linear-gradient(90deg,transparent,var(--asb-cyan),#fff,var(--asb-magenta),transparent);box-shadow:0 0 18px rgba(89,244,255,.72);transform:translateX(-50%);animation:asb-boot 1.15s .18s ease both;pointer-events:none}
.asb-hero-grid{position:absolute;z-index:-6;left:-15%;right:-15%;bottom:-20%;height:58%;background-image:linear-gradient(rgba(89,244,255,.09) 1px,transparent 1px),linear-gradient(90deg,rgba(89,244,255,.08) 1px,transparent 1px);background-size:42px 42px;transform:perspective(360px) rotateX(64deg);transform-origin:50% 100%;mask-image:linear-gradient(transparent,#000 66%);opacity:.7}
.asb-led{position:absolute;z-index:-4;top:0;height:72%;width:3px;opacity:0;background:linear-gradient(180deg,transparent,var(--asb-cyan),transparent);box-shadow:0 0 16px var(--asb-cyan);animation:asb-led-on .28s ease forwards}
.asb-led--one{left:12%;animation-delay:.18s}.asb-led--two{left:50%;height:54%;animation-delay:.3s}.asb-led--three{right:10%;background:linear-gradient(180deg,transparent,var(--asb-magenta),transparent);box-shadow:0 0 16px var(--asb-magenta);animation-delay:.42s}
.asb-beam{position:absolute;z-index:-5;top:-18%;width:30%;height:108%;filter:blur(3px);opacity:.14;transform-origin:50% 0;animation:asb-beam-drift 14s ease-in-out infinite}
.asb-beam--cyan{left:9%;background:linear-gradient(105deg,transparent 33%,rgba(89,244,255,.42) 50%,transparent 66%);transform:rotate(9deg)}
.asb-beam--magenta{right:7%;background:linear-gradient(75deg,transparent 33%,rgba(255,79,174,.36) 50%,transparent 66%);transform:rotate(-10deg);animation-delay:-7s}
.asb-particles,.asb-final-particles{position:absolute;inset:0;pointer-events:none;background-image:radial-gradient(circle,rgba(255,255,255,.72) 0 1px,transparent 1.5px),radial-gradient(circle,rgba(89,244,255,.55) 0 1px,transparent 1.5px);background-size:97px 113px,131px 89px;background-position:12px 24px,55px 14px;opacity:.18;animation:asb-particle-drift 18s linear infinite}
.asb-hero-stage{position:relative;z-index:5;width:min(1180px,100%);height:100%;margin:auto;padding:78px clamp(18px,5vw,54px) 104px;display:grid;align-content:end;justify-items:center}
.asb-hero-photo{position:absolute;z-index:5;left:50%;top:41%;width:min(66vw,315px);aspect-ratio:.73;transform:translate(-50%,-50%) scale(.96);opacity:0;overflow:hidden;clip-path:polygon(10% 0,100% 0,100% 90%,91% 100%,0 100%,0 9%);background:linear-gradient(145deg,#101521,#050608);box-shadow:-22px 4px 48px rgba(32,229,255,.18),22px 8px 50px rgba(255,79,174,.15);animation:asb-photo-in .45s .55s cubic-bezier(.2,.8,.2,1) forwards}
.asb-hero-photo::before{content:"";position:absolute;inset:-2px;z-index:4;padding:1px;background:linear-gradient(135deg,var(--asb-cyan),rgba(255,255,255,.25) 38%,var(--asb-magenta));clip-path:inherit;pointer-events:none}
.asb-hero-photo>img{position:absolute;z-index:2;inset:1px;width:calc(100% - 2px);height:calc(100% - 2px);object-fit:cover;clip-path:inherit;transform-origin:center}
.asb-photo-fallback{position:absolute;z-index:1;inset:1px;clip-path:inherit;display:grid;place-items:center;background:radial-gradient(circle at 42% 36%,rgba(89,244,255,.18),transparent 26%),radial-gradient(circle at 61% 68%,rgba(255,79,174,.16),transparent 30%),linear-gradient(150deg,#111725,#06070a)}
.asb-photo-fallback span{font:400 clamp(90px,31vw,180px)/1 var(--asb-display);color:rgba(244,246,255,.12);text-shadow:-14px 0 40px rgba(89,244,255,.18),14px 0 40px rgba(255,79,174,.18)}
.asb-photo-fallback i{position:absolute;width:44%;height:1px;background:linear-gradient(90deg,transparent,var(--asb-cyan),transparent);box-shadow:0 0 16px var(--asb-cyan)}
.asb-photo-edge{position:absolute;z-index:5;right:0;bottom:0;width:34%;height:34%;border-right:2px solid var(--asb-magenta);border-bottom:2px solid var(--asb-magenta);filter:drop-shadow(0 0 8px var(--asb-magenta));pointer-events:none}
.asb-photo-sweep{position:absolute;z-index:6;inset:-20%;background:linear-gradient(105deg,transparent 40%,rgba(255,255,255,.42) 49%,rgba(89,244,255,.25) 51%,transparent 59%);transform:translateX(-120%);animation:asb-photo-sweep 1s 1.15s ease-out both;pointer-events:none}
.asb-hero-copy{position:relative;z-index:12;width:100%;display:grid;justify-items:center;gap:10px;text-align:center;opacity:0;transform:translateY(26px);animation:asb-copy-in .4s .68s ease forwards}
.asb-eyebrow{padding-left:.24em;color:var(--asb-cyan);text-shadow:0 0 14px rgba(89,244,255,.5)}
.asb-hero-name{max-width:100%;font-size:clamp(54px,17vw,118px);line-height:.78;letter-spacing:-.075em;text-transform:uppercase;color:#fff;text-shadow:-3px 0 18px rgba(89,244,255,.32),3px 0 18px rgba(255,79,174,.3);overflow-wrap:anywhere;text-wrap:balance}
.asb-hero-name--md{font-size:clamp(46px,14vw,96px)}
.asb-hero-name--sm{font-size:clamp(39px,11.5vw,82px);letter-spacing:-.06em}
.asb-hero-name--xs{font-size:clamp(33px,9.8vw,70px);letter-spacing:-.05em}
.asb-hero-text{max-width:620px;margin-top:4px;font-size:clamp(13px,3.6vw,17px);line-height:1.5;color:var(--asb-silver);text-wrap:balance}
.asb-age-badge{position:absolute;z-index:15;right:clamp(12px,4vw,48px);top:48%;width:86px;aspect-ratio:1;display:grid;place-items:center;align-content:center;gap:2px;opacity:0;transform:scale(.7);background:linear-gradient(145deg,rgba(17,20,30,.88),rgba(5,6,8,.92));clip-path:polygon(18% 0,100% 0,100% 82%,82% 100%,0 100%,0 18%);box-shadow:inset 0 0 20px rgba(154,107,255,.2);animation:asb-badge-in .35s .78s cubic-bezier(.2,.9,.3,1.25) forwards}
.asb-age-badge::before{content:"";position:absolute;inset:0;padding:1px;background:linear-gradient(135deg,var(--asb-cyan),var(--asb-violet),var(--asb-magenta));clip-path:inherit;mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);mask-composite:exclude}
.asb-age-badge small,.asb-age-badge span{font:700 8px/1 var(--asb-body);letter-spacing:.16em;color:var(--asb-silver)}
.asb-age-badge strong{font:400 30px/1 var(--asb-display);color:#fff;text-shadow:0 0 13px rgba(154,107,255,.56)}
.asb-hero-code{position:absolute;z-index:12;left:clamp(16px,4vw,50px);bottom:86px;display:flex;align-items:center;gap:10px;font:700 8px/1 var(--asb-body);letter-spacing:.14em;color:var(--asb-muted);opacity:0;animation:asb-fade-in .3s .9s forwards}
.asb-hero-code i{display:block;width:52px;height:1px;background:linear-gradient(90deg,var(--asb-cyan),transparent)}
.asb-hero-code b{color:var(--asb-red);font-weight:700}
.asb-hero-sua,.asb-hero-ivan{position:absolute;z-index:2;width:30vw;max-width:155px;height:290px;top:20%;opacity:0;filter:saturate(.8)}
.asb-hero-sua{left:-7%;transform:translateX(-18px) rotate(-2deg);animation:asb-character-left .45s .9s ease forwards}
.asb-hero-ivan{right:-7%;top:15%;transform:translateX(18px) rotate(2deg);animation:asb-character-right .45s 1s ease forwards}
.asb-hero-sua img{object-position:23% center}.asb-hero-ivan img{object-position:22% center}
.asb-scroll-cue{position:absolute;z-index:12;left:50%;bottom:24px;width:12px;height:52px;transform:translateX(-50%);display:flex;justify-content:center}
.asb-scroll-cue i{position:absolute;top:0;width:1px;height:100%;background:linear-gradient(var(--asb-cyan),transparent)}
.asb-scroll-cue span{position:absolute;top:4px;width:4px;height:4px;border-radius:50%;background:#fff;box-shadow:0 0 10px var(--asb-cyan);animation:asb-scroll-dot 2.4s ease-in-out infinite}
.asb-hero-transition{position:absolute;z-index:20;left:0;right:0;bottom:-1px;height:76px;background:linear-gradient(180deg,transparent,var(--asb-bg));pointer-events:none}

/* Digital invitation panel. */
.asb-intro{background:radial-gradient(circle at 12% 38%,rgba(32,229,255,.06),transparent 32%),linear-gradient(180deg,#050608,#080a0f)}
.asb-message{position:relative;width:min(820px,100%);margin:auto;padding:clamp(34px,9vw,64px) clamp(24px,7vw,58px);display:grid;gap:15px;background:linear-gradient(145deg,rgba(17,20,30,.86),rgba(8,10,15,.74));border:1px solid rgba(174,183,200,.13);box-shadow:0 28px 80px rgba(0,0,0,.35),inset 0 0 40px rgba(154,107,255,.035);backdrop-filter:blur(10px)}
.asb-message-line{position:absolute;left:0;top:16%;bottom:16%;width:2px;background:linear-gradient(transparent,var(--asb-magenta),var(--asb-cyan),transparent);box-shadow:0 0 14px rgba(255,79,174,.45);transform:scaleY(0);transform-origin:50% 0}
.asb-message.is-visible .asb-message-line{animation:asb-line-on .7s ease .05s forwards}
.asb-message-index{position:absolute;right:18px;top:18px;display:flex;gap:7px;font:700 8px/1 var(--asb-body);letter-spacing:.16em;color:var(--asb-muted)}
.asb-message-index b{color:var(--asb-magenta)}
.asb-message h2{font-size:clamp(26px,7vw,50px);line-height:1;letter-spacing:-.04em;text-transform:uppercase}
.asb-message p{max-width:680px;font-size:clamp(15px,4vw,18px);line-height:1.72;color:var(--asb-silver)}
.asb-corner{position:absolute;width:22px;height:22px;pointer-events:none}.asb-corner--a{left:10px;top:10px;border-left:1px solid var(--asb-cyan);border-top:1px solid var(--asb-cyan)}.asb-corner--b{right:10px;bottom:10px;border-right:1px solid var(--asb-magenta);border-bottom:1px solid var(--asb-magenta)}

/* Next performance / Till. */
.asb-date{background:linear-gradient(180deg,#080a0f,#0d1017 48%,#080a0f)}
.asb-date::after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse at 82% 52%,rgba(255,82,109,.15),transparent 32%)}
.asb-date-shell{position:relative;z-index:1;width:min(1050px,100%);margin:auto}
.asb-date-heading>span{color:var(--asb-red)}
.asb-date-board{position:relative;display:grid;grid-template-columns:minmax(0,1fr) minmax(120px,32%);min-height:390px;align-items:stretch}
.asb-date-display{position:relative;z-index:4;min-height:370px;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(105px,.9fr);grid-template-rows:1fr auto;align-items:end;padding:clamp(26px,7vw,54px);overflow:hidden;background:linear-gradient(135deg,rgba(17,20,30,.95),rgba(7,8,12,.9));border:1px solid rgba(255,82,109,.24);clip-path:polygon(0 0,94% 0,100% 9%,100% 100%,0 100%);box-shadow:0 28px 70px rgba(0,0,0,.35),inset 18px 0 45px rgba(255,82,109,.04)}
.asb-date-display::before{content:"";position:absolute;left:0;right:0;top:0;height:2px;background:linear-gradient(90deg,var(--asb-red),transparent 70%);box-shadow:0 0 12px rgba(255,82,109,.5)}
.asb-date-day{align-self:end;font:400 clamp(116px,34vw,260px)/.68 var(--asb-display);letter-spacing:-.1em;color:#fff;text-shadow:-4px 0 30px rgba(89,244,255,.2),4px 0 32px rgba(255,82,109,.2);clip-path:inset(0 0 100% 0)}
.asb-date-day.is-visible{animation:asb-date-mask .58s cubic-bezier(.2,.75,.2,1) forwards}
.asb-date-meta{align-self:center;display:grid;gap:5px;padding-left:12px}.asb-date-meta strong{font:400 clamp(21px,5.8vw,42px)/1 var(--asb-display);text-transform:uppercase;color:var(--asb-red);overflow-wrap:anywhere}.asb-date-meta span{font:700 clamp(18px,4.6vw,30px)/1 var(--asb-body);letter-spacing:.12em;color:var(--asb-silver)}
.asb-date-time{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:18px;padding-top:17px;border-top:1px solid rgba(174,183,200,.16)}
.asb-date-time small{font:700 9px/1.4 var(--asb-body);letter-spacing:.18em;color:var(--asb-muted)}.asb-date-time strong{font:400 clamp(30px,8vw,58px)/1 var(--asb-display);color:var(--asb-cyan);font-variant-numeric:tabular-nums;text-shadow:0 0 20px rgba(89,244,255,.26)}
.asb-date-stage-code{position:absolute;right:24px;top:22px;font:700 8px/1 var(--asb-body);letter-spacing:.18em;color:var(--asb-muted)}
.asb-date-sweep{position:absolute;inset:0;background:linear-gradient(105deg,transparent 42%,rgba(255,255,255,.11) 50%,transparent 58%);transform:translateX(-130%)}
.asb-date-day.is-visible~.asb-date-sweep,.asb-date-display:hover .asb-date-sweep,.asb-date-board:focus-within .asb-date-sweep{animation:asb-board-sweep .75s ease}
.asb-date-till{z-index:5;height:330px;align-self:center;margin-left:-24px;transform:translateY(16px);clip-path:polygon(8% 0,100% 0,100% 100%,0 93%);box-shadow:-14px 0 50px rgba(255,82,109,.13)}
.asb-date-till img{object-position:21% center}

/* Countdown console. */
.asb-countdown{background:radial-gradient(circle at 50% 30%,rgba(154,107,255,.1),transparent 44%),#050608}
.asb-countdown-shell{width:min(940px,100%);margin:auto}
.asb-countdown-heading{text-align:center;justify-items:center}.asb-countdown-heading>span{color:var(--asb-violet)}
.asb-countdown-console{position:relative;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));overflow:hidden;background:linear-gradient(145deg,rgba(13,16,23,.94),rgba(5,6,8,.96));border:1px solid rgba(154,107,255,.24);box-shadow:0 28px 80px rgba(0,0,0,.4),inset 0 0 45px rgba(154,107,255,.04);clip-path:polygon(3% 0,100% 0,100% 92%,97% 100%,0 100%,0 8%)}
.asb-countdown-console::before,.asb-countdown-console::after{content:"";position:absolute;z-index:4;pointer-events:none}.asb-countdown-console::before{inset:9px;border:1px solid rgba(89,244,255,.07)}.asb-countdown-console::after{left:0;right:0;top:0;height:2px;background:linear-gradient(90deg,var(--asb-cyan),transparent 35%,var(--asb-magenta));box-shadow:0 0 12px rgba(89,244,255,.25)}
.asb-countdown-unit{position:relative;min-height:155px;padding:25px 14px;display:grid;place-items:center;align-content:center;gap:12px;border-right:1px solid rgba(174,183,200,.1);border-bottom:1px solid rgba(174,183,200,.1)}
.asb-countdown-unit:nth-child(odd){border-right:0}.asb-countdown-unit:nth-last-child(-n+2){border-bottom:0}
.asb-countdown-digit{position:relative;height:clamp(58px,17vw,90px);display:grid;place-items:center;overflow:hidden;font:400 clamp(54px,16vw,88px)/.88 var(--asb-display);font-variant-numeric:tabular-nums;color:#fff;text-shadow:0 0 22px rgba(89,244,255,.16)}
.asb-countdown-digit span{position:absolute;inset:0;display:grid;place-items:center}.asb-countdown-digit .is-entering{animation:asb-digit-change .26s ease both}.asb-countdown-digit .is-leaving{animation:asb-digit-exit .26s ease both}
.asb-countdown-unit small{font:700 9px/1 var(--asb-body);letter-spacing:.2em;color:var(--asb-muted)}
.asb-countdown-unit>i{width:52px;height:1px;background:linear-gradient(90deg,transparent,var(--asb-cyan),transparent);opacity:.65;animation:asb-pulse-line 3s ease-in-out infinite}
.asb-countdown-unit-3>i,.asb-countdown-unit-4>i{background:linear-gradient(90deg,transparent,var(--asb-magenta),transparent)}
.asb-countdown-scan{position:absolute;z-index:3;left:-30%;top:0;width:18%;height:100%;background:linear-gradient(90deg,transparent,rgba(89,244,255,.1),transparent);transform:skewX(-18deg);animation:asb-console-scan 8s 2.4s ease-in-out infinite;pointer-events:none}
.asb-countdown-ended{padding:56px 22px;text-align:center;font:400 clamp(22px,6vw,44px)/1.15 var(--asb-display);color:var(--asb-cyan);text-shadow:0 0 20px rgba(89,244,255,.35)}
.asb-signal{height:44px;margin-top:18px;display:flex;align-items:center;justify-content:center;gap:5px;opacity:.48}.asb-signal i{width:2px;height:9px;background:linear-gradient(var(--asb-cyan),var(--asb-violet));transform-origin:center;animation:asb-wave 4.2s calc(var(--bar) * -120ms) ease-in-out infinite}.asb-signal i:nth-child(6n+2){height:17px}.asb-signal i:nth-child(6n+3){height:29px}.asb-signal i:nth-child(6n+4){height:37px}.asb-signal i:nth-child(6n+5){height:25px}.asb-signal i:nth-child(6n+6){height:13px}

/* Arena dashboard / Hyuna. */
.asb-venue{min-height:760px;background:radial-gradient(circle at 68% 56%,rgba(255,79,174,.13),transparent 36%),linear-gradient(180deg,#080a0f,#0d1017)}
.asb-venue-shell{position:relative;width:min(1100px,100%);min-height:620px;margin:auto}
.asb-venue-heading{margin-inline:0;max-width:680px}.asb-venue-heading>span{color:var(--asb-magenta)}
.asb-arena{position:relative;z-index:4;width:min(820px,92%);min-height:440px;display:grid;align-items:end;padding:clamp(28px,7vw,60px);overflow:hidden;background:linear-gradient(145deg,rgba(17,20,30,.9),rgba(7,8,12,.92));border:1px solid rgba(255,79,174,.2);clip-path:polygon(0 0,95% 0,100% 9%,100% 100%,6% 100%,0 92%);box-shadow:0 32px 80px rgba(0,0,0,.38)}
.asb-arena::before{content:"";position:absolute;inset:0;background:linear-gradient(110deg,rgba(255,79,174,.05),transparent 46%,rgba(89,244,255,.04));pointer-events:none}
.asb-arena-vector{position:absolute;right:-4%;top:-4%;width:68%;height:auto;opacity:.62;filter:drop-shadow(0 0 18px rgba(154,107,255,.26));transform:scale(.96)}
.asb-arena.is-visible .asb-arena-vector{animation:asb-arena-in .7s ease forwards}
.asb-arena-copy{position:relative;z-index:3;max-width:480px;display:grid;justify-items:start;gap:13px;padding:22px 0}
.asb-arena-copy h3{font-size:clamp(30px,8vw,60px);line-height:.94;letter-spacing:-.04em;text-transform:uppercase}.asb-arena-copy p{font-size:14px;line-height:1.55;color:var(--asb-silver)}
.asb-action{position:relative;display:inline-flex;align-items:center;gap:10px;margin-top:8px;padding:15px 18px;color:#fff;text-decoration:none;background:rgba(5,6,8,.82);border:1px solid rgba(89,244,255,.4);box-shadow:0 0 24px rgba(32,229,255,.08),inset 0 0 16px rgba(89,244,255,.04);font:700 10px/1 var(--asb-body);letter-spacing:.12em;text-transform:uppercase}
.asb-action small{position:absolute;left:0;top:calc(100% + 7px);font-size:7px;color:var(--asb-muted);letter-spacing:.14em}.asb-action:hover{border-color:var(--asb-cyan);box-shadow:0 0 28px rgba(32,229,255,.17)}
.asb-arena-lights{position:absolute;inset:0;pointer-events:none}.asb-arena-lights i{position:absolute;top:18%;width:4px;height:4px;border-radius:50%;background:var(--asb-cyan);box-shadow:0 0 12px var(--asb-cyan);opacity:.25}.asb-arena-lights i:nth-child(1),.asb-arena-lights i:nth-child(5){left:17%}.asb-arena-lights i:nth-child(2),.asb-arena-lights i:nth-child(6){left:35%}.asb-arena-lights i:nth-child(3),.asb-arena-lights i:nth-child(7){left:53%}.asb-arena-lights i:nth-child(4),.asb-arena-lights i:nth-child(8){left:71%}.asb-arena-lights i:nth-child(n+5){top:60%;background:var(--asb-magenta);box-shadow:0 0 12px var(--asb-magenta)}.asb-arena.is-visible .asb-arena-lights i{animation:asb-arena-light .35s calc(var(--light) * 90ms) ease forwards}
.asb-venue-hyuna{position:absolute;z-index:6;right:-3%;bottom:0;width:44%;max-width:330px;height:480px;clip-path:polygon(9% 0,100% 0,100% 92%,90% 100%,0 100%,0 10%);box-shadow:-22px 10px 70px rgba(255,79,174,.15)}
.asb-venue-hyuna img{object-position:22% center}.asb-venue-hyuna figcaption{bottom:18px;left:18px;right:18px}

/* Setlist and editorial character lineup. */
.asb-program{background:linear-gradient(180deg,#080a0f,#050608)}
.asb-program-shell{width:min(1040px,100%);margin:auto}
.asb-program .asb-heading>span{color:var(--asb-red)}
.asb-setlist{position:relative;border-top:1px solid rgba(174,183,200,.16)}
.asb-setlist-row{position:relative;display:grid;grid-template-columns:44px 78px minmax(0,1fr) minmax(62px,140px) 8px;align-items:center;gap:12px;min-height:92px;padding:20px 8px;border-bottom:1px solid rgba(174,183,200,.13);opacity:.25;transform:translateX(10px)}
.asb-setlist-row.is-visible{animation:asb-setlist-in .48s var(--asb-delay,0ms) ease forwards}
.asb-setlist-number{font:700 10px/1 var(--asb-body);letter-spacing:.15em;color:var(--asb-muted)}
.asb-setlist-row>strong{font:400 clamp(17px,4vw,24px)/1 var(--asb-display);font-variant-numeric:tabular-nums;color:var(--asb-cyan)}
.asb-setlist-row>p{font-size:clamp(15px,4vw,20px);line-height:1.35;color:var(--asb-white)}
.asb-wave{height:28px;display:flex;align-items:center;justify-content:center;gap:3px;opacity:.55}.asb-wave i{width:2px;height:6px;background:linear-gradient(var(--asb-magenta),var(--asb-violet));transform-origin:center;animation:asb-wave 4.8s calc(var(--wave) * -160ms) ease-in-out infinite}.asb-wave i:nth-child(5n+2){height:12px}.asb-wave i:nth-child(5n+3){height:21px}.asb-wave i:nth-child(5n+4){height:18px}.asb-wave i:nth-child(5n+5){height:9px}
.asb-setlist-dot{width:5px;height:5px;border-radius:50%;background:var(--asb-red);box-shadow:0 0 10px var(--asb-red);opacity:.35}.asb-setlist-row.is-visible .asb-setlist-dot{animation:asb-dot-on .35s .28s ease forwards}
.asb-lineup-wrap{position:relative;margin-top:clamp(80px,18vw,140px)}
.asb-lineup-heading{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:24px}.asb-lineup-heading span{font:700 9px/1 var(--asb-body);letter-spacing:.22em;color:var(--asb-violet)}.asb-lineup-heading h3{max-width:700px;text-align:right;font-size:clamp(24px,6vw,48px);line-height:1;text-transform:uppercase}
.asb-lineup{position:relative;min-height:650px;isolation:isolate}
.asb-lineup .asb-character{position:absolute}
.asb-lineup-sua{z-index:3;left:0;top:0;width:39%;height:300px;clip-path:polygon(0 0,92% 0,100% 10%,100% 100%,0 92%)}
.asb-lineup-ivan{z-index:5;left:31%;top:42px;width:39%;height:470px;clip-path:polygon(10% 0,100% 0,100% 93%,91% 100%,0 100%,0 8%)}
.asb-lineup-till{z-index:4;left:5%;bottom:0;width:62%;height:260px;clip-path:polygon(0 10%,8% 0,100% 0,95% 100%,0 100%)}
.asb-lineup-hyuna{z-index:6;right:0;top:110px;width:36%;height:430px;clip-path:polygon(8% 0,100% 7%,100% 100%,0 92%)}
.asb-lineup-sua img{object-position:20% center}.asb-lineup-ivan img{object-position:21% center}.asb-lineup-till img{object-position:22% 38%}.asb-lineup-hyuna img{object-position:21% center}
.asb-lineup-glow{position:absolute;z-index:-1;left:22%;right:8%;top:15%;bottom:8%;background:radial-gradient(circle at 36% 45%,rgba(154,107,255,.19),transparent 54%),radial-gradient(circle at 82% 48%,rgba(255,79,174,.12),transparent 42%);filter:blur(20px)}

/* Media archive. */
.asb-gallery{background:radial-gradient(circle at 10% 16%,rgba(89,244,255,.08),transparent 27%),linear-gradient(180deg,#050608,#0d1017)}
.asb-gallery-shell{position:relative;width:min(1080px,100%);margin:auto}.asb-gallery .asb-heading>span{color:var(--asb-cyan)}
.asb-media-grid{position:relative;z-index:2;display:grid;gap:14px;min-height:0}
.asb-media{position:relative;margin:0;min-height:240px;overflow:hidden;background:#0d1017;border:1px solid rgba(174,183,200,.14);box-shadow:0 18px 44px rgba(0,0,0,.28)}
.asb-media.is-missing{background:radial-gradient(circle at 50% 44%,rgba(154,107,255,.18),transparent 36%),linear-gradient(145deg,#11141e,#050608)}
.asb-media.is-missing::before{content:"";position:absolute;left:18%;right:18%;top:50%;height:1px;background:linear-gradient(90deg,transparent,var(--asb-cyan),var(--asb-magenta),transparent);box-shadow:0 0 18px rgba(89,244,255,.24)}
.asb .asb-media-1.ti-pending[data-ti-motion]{opacity:1;transform:none;clip-path:inset(0 100% 0 0)}
.asb .asb-media-2.ti-pending[data-ti-motion]{opacity:1;transform:none;clip-path:inset(100% 0 0)}
.asb .asb-media-3.ti-pending[data-ti-motion]{opacity:0;transform:scale(.96);clip-path:none}
.asb .asb-media-4.ti-pending[data-ti-motion]{opacity:0;transform:translateY(15px);clip-path:none}
.asb .asb-media[data-ti-motion]:not(.ti-pending){clip-path:inset(0)}
.asb-media img{width:100%;height:100%;display:block;object-fit:cover}
.asb-media figcaption{position:absolute;z-index:5;left:12px;right:12px;top:12px;display:flex;justify-content:space-between;align-items:center;font:700 8px/1 var(--asb-body);letter-spacing:.14em;text-transform:uppercase;color:#fff;text-shadow:0 1px 7px #000}
.asb-media figcaption b{display:flex;align-items:center;gap:6px;color:var(--asb-red);font-weight:700}.asb-media figcaption b::before{content:"";width:5px;height:5px;border-radius:50%;background:currentColor;box-shadow:0 0 8px currentColor}
.asb-media-scan{position:absolute;z-index:4;left:0;right:0;top:0;height:1px;background:linear-gradient(90deg,transparent,var(--asb-cyan),transparent);box-shadow:0 0 12px rgba(89,244,255,.4);opacity:.62;animation:asb-media-scan 7s ease-in-out infinite}
.asb-media-corners{position:absolute;z-index:5;inset:8px;pointer-events:none;background:linear-gradient(var(--asb-cyan),var(--asb-cyan)) left top/18px 1px no-repeat,linear-gradient(var(--asb-cyan),var(--asb-cyan)) left top/1px 18px no-repeat,linear-gradient(var(--asb-magenta),var(--asb-magenta)) right bottom/18px 1px no-repeat,linear-gradient(var(--asb-magenta),var(--asb-magenta)) right bottom/1px 18px no-repeat}
.asb-media-grid-1{grid-template-columns:1fr}.asb-media-grid-1 .asb-media{min-height:min(72vh,700px)}
.asb-media-grid-2{grid-template-columns:1.25fr .75fr;align-items:center}.asb-media-grid-2 .asb-media-1{min-height:610px}.asb-media-grid-2 .asb-media-2{min-height:420px;margin-left:-32px;transform:translateY(42px)}
.asb .asb-media-grid-2 .asb-media-2.ti-pending[data-ti-motion]{transform:translateY(42px)}
.asb-media-grid-3{grid-template-columns:1.2fr .8fr;grid-template-rows:repeat(2,300px)}.asb-media-grid-3 .asb-media-1{grid-row:1/3}.asb-media-grid-3 .asb-media-2{grid-column:2;grid-row:1}.asb-media-grid-3 .asb-media-3{grid-column:2;grid-row:2}
.asb-media-grid-4{grid-template-columns:1.15fr .8fr .75fr;grid-template-rows:280px 330px}.asb-media-grid-4 .asb-media-1{grid-column:1/3;grid-row:1}.asb-media-grid-4 .asb-media-2{grid-column:3;grid-row:1/3}.asb-media-grid-4 .asb-media-3{grid-column:1;grid-row:2}.asb-media-grid-4 .asb-media-4{grid-column:2;grid-row:2}
.asb-lens{position:absolute;z-index:1;right:-18%;bottom:-170px;width:min(480px,68vw);opacity:.13;filter:drop-shadow(0 0 24px rgba(154,107,255,.28));animation:asb-lens-drift 18s ease-in-out infinite;pointer-events:none}

/* Optional user information. */
.asb-info{padding-block:44px;background:#0d1017}
.asb-info+.asb-info{padding-top:12px}
.asb-info-panel{position:relative;width:min(760px,100%);margin:auto;padding:30px clamp(24px,7vw,50px);display:grid;gap:12px;overflow:hidden;background:linear-gradient(135deg,rgba(17,20,30,.94),rgba(8,10,15,.92));border:1px solid rgba(174,183,200,.13);clip-path:polygon(0 0,96% 0,100% 18%,100% 100%,4% 100%,0 82%)}
.asb-info--hosts .asb-info-panel{box-shadow:inset 3px 0 var(--asb-cyan)}.asb-info--dress .asb-info-panel{box-shadow:inset 3px 0 var(--asb-violet)}.asb-info--contact .asb-info-panel{box-shadow:inset 3px 0 var(--asb-magenta)}
.asb-info-panel h2{font-size:clamp(25px,6.4vw,46px);line-height:1;text-transform:uppercase}.asb-info-panel p{font-size:15px;line-height:1.65;color:var(--asb-silver)}
.asb-info-pulse{position:absolute;right:24px;top:22px;width:7px;height:7px;border-radius:50%;background:var(--asb-cyan);box-shadow:0 0 12px currentColor;animation:asb-soft-pulse 3s ease-in-out infinite}.asb-info--dress .asb-info-pulse{background:var(--asb-violet)}.asb-info--contact .asb-info-pulse{background:var(--asb-magenta)}
.asb-phone{display:inline-flex;align-items:center;gap:10px;width:max-content;color:var(--asb-cyan);text-decoration:none;font-weight:700;letter-spacing:.05em}

/* Closing performance. */
.asb-final{position:relative;min-height:88dvh;background:#030406;overflow:hidden}
.asb-final-inner{position:relative;min-height:88dvh;display:grid;place-items:center;padding:clamp(90px,20vw,150px) 22px;isolation:isolate;overflow:hidden}
.asb-final-depth{position:absolute;z-index:-8;inset:0;background:radial-gradient(ellipse at 50% 48%,rgba(154,107,255,.18),transparent 30%),linear-gradient(180deg,#080a0f,#020305)}
.asb-final-depth::after{content:"";position:absolute;left:-12%;right:-12%;bottom:-24%;height:52%;background-image:linear-gradient(rgba(89,244,255,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(89,244,255,.07) 1px,transparent 1px);background-size:42px 42px;transform:perspective(360px) rotateX(64deg);transform-origin:50% 100%;mask-image:linear-gradient(transparent,#000)}
.asb-final-beam{position:absolute;z-index:-6;top:-20%;width:32%;height:118%;filter:blur(4px);opacity:0}.asb-final-beam--left{left:4%;background:linear-gradient(105deg,transparent 30%,rgba(89,244,255,.38),transparent 70%)}.asb-final-beam--right{right:4%;background:linear-gradient(75deg,transparent 30%,rgba(255,79,174,.34),transparent 70%)}
.asb-final-inner.is-visible .asb-final-beam{animation:asb-final-light .4s ease forwards}.asb-final-inner.is-visible .asb-final-beam--left{animation-delay:.15s}.asb-final-inner.is-visible .asb-final-beam--right{animation-delay:.25s}
.asb-final-spot{position:absolute;z-index:-5;left:50%;top:-22%;width:64%;height:108%;transform:translateX(-50%);background:linear-gradient(180deg,rgba(255,255,255,.09),rgba(154,107,255,.08) 52%,transparent 76%);clip-path:polygon(43% 0,57% 0,86% 100%,14% 100%);opacity:0}.asb-final-inner.is-visible .asb-final-spot{animation:asb-final-spot .42s .3s ease forwards}
.asb-final-panels{position:absolute;z-index:-3;inset:auto 3% 4%;height:64%;display:grid;grid-template-columns:repeat(4,1fr);align-items:end;gap:8px;opacity:.27;mask-image:linear-gradient(#000 42%,transparent)}
.asb-final-panels .asb-character{position:relative;width:100%;height:72%;border-color:rgba(255,255,255,.09);filter:grayscale(.3) brightness(.7)}.asb-final-panels .asb-character:nth-child(2){height:86%}.asb-final-panels .asb-character:nth-child(3){height:78%}.asb-final-panels .asb-character:nth-child(4){height:92%}
.asb-final-panels img{object-position:22% center}
.asb-final-copy{position:relative;z-index:5;width:min(760px,100%);display:grid;justify-items:center;gap:18px;text-align:center;padding:clamp(32px,8vw,58px) clamp(20px,6vw,48px);background:linear-gradient(145deg,rgba(8,10,15,.78),rgba(13,16,23,.58));border:1px solid rgba(174,183,200,.11);box-shadow:0 28px 80px rgba(0,0,0,.38),inset 0 0 42px rgba(154,107,255,.04);backdrop-filter:blur(9px)}
.asb-final-copy>span,.asb-final-copy>strong,.asb-final-copy>h2,.asb-final-copy>small{opacity:0;transform:translateY(10px)}
.asb-final-inner.is-visible .asb-final-copy>span{animation:asb-final-copy-in .35s .4s ease forwards}
.asb-final-inner.is-visible .asb-final-copy>strong{animation:asb-final-copy-in .4s .45s ease forwards}
.asb-final-inner.is-visible .asb-final-copy>h2{animation:asb-final-copy-in .4s .6s ease forwards}
.asb-final-inner.is-visible .asb-final-copy>small{animation:asb-final-copy-in .35s .7s ease forwards}
.asb-final-copy>span{font:700 9px/1 var(--asb-body);letter-spacing:.24em;color:var(--asb-cyan)}
.asb-final-copy>strong{font:400 clamp(39px,11vw,82px)/.94 var(--asb-display);letter-spacing:-.05em;text-transform:uppercase;color:#fff;text-shadow:-3px 0 26px rgba(89,244,255,.3),3px 0 26px rgba(255,79,174,.28);text-wrap:balance}
.asb-final-copy h2{max-width:640px;font:500 clamp(18px,5vw,28px)/1.35 var(--asb-body);color:var(--asb-silver);text-wrap:balance}.asb-final-copy small{font:700 9px/1 var(--asb-body);letter-spacing:.25em;color:var(--asb-violet)}
.asb-final-sweep{position:absolute;z-index:8;inset:-20%;background:linear-gradient(105deg,transparent 43%,rgba(255,255,255,.24) 49%,rgba(89,244,255,.16) 51%,transparent 57%);transform:translateX(-130%);pointer-events:none}.asb-final-inner.is-visible .asb-final-sweep{animation:asb-final-sweep 1s .8s ease-out forwards}
.asb-final-particles{opacity:0;animation:none}.asb-final-inner.is-visible .asb-final-particles{animation:asb-final-particles-in .3s .8s ease forwards,asb-particle-drift 18s .8s linear infinite}
.asb-final--visual{min-height:54dvh}.asb-final--visual .asb-final-inner{min-height:54dvh}.asb-final--visual .asb-final-panels{opacity:.4;mask-image:linear-gradient(#000 50%,transparent)}

/* Motion primitives. */
@keyframes asb-boot{0%{width:0;opacity:0}16%{opacity:1}45%{width:100%;opacity:1}70%{width:100%;opacity:.25}100%{width:100%;opacity:0}}
@keyframes asb-led-on{to{opacity:.55}}
@keyframes asb-beam-drift{0%,100%{rotate:-2deg;opacity:.11}50%{rotate:3deg;opacity:.18}}
@keyframes asb-particle-drift{0%{translate:0 0}50%{translate:0 -10px}100%{translate:0 0}}
@keyframes asb-photo-in{to{opacity:1;transform:translate(-50%,-50%) scale(1)}}
@keyframes asb-copy-in{to{opacity:1;transform:translateY(0)}}
@keyframes asb-badge-in{to{opacity:1;transform:scale(1)}}
@keyframes asb-fade-in{to{opacity:1}}
@keyframes asb-character-left{to{opacity:.7;transform:translateX(0) rotate(-2deg)}}
@keyframes asb-character-right{to{opacity:.64;transform:translateX(0) rotate(2deg)}}
@keyframes asb-photo-sweep{to{transform:translateX(120%)}}
@keyframes asb-scroll-dot{0%,100%{transform:translateY(0);opacity:.35}50%{transform:translateY(32px);opacity:1}}
@keyframes asb-line-on{to{transform:scaleY(1)}}
@keyframes asb-date-mask{to{clip-path:inset(0)}}
@keyframes asb-board-sweep{to{transform:translateX(130%)}}
@keyframes asb-digit-change{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}
@keyframes asb-digit-exit{from{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-6px)}}
@keyframes asb-pulse-line{0%,100%{opacity:.25;transform:scaleX(.72)}50%{opacity:.8;transform:scaleX(1)}}
@keyframes asb-console-scan{0%,70%{left:-30%;opacity:0}75%{opacity:1}92%{left:112%;opacity:.65}100%{left:112%;opacity:0}}
@keyframes asb-wave{0%,100%{transform:scaleY(.72);opacity:.45}50%{transform:scaleY(1.2);opacity:.85}}
@keyframes asb-arena-in{to{transform:scale(1)}}
@keyframes asb-arena-light{to{opacity:1;transform:scale(1.4)}}
@keyframes asb-setlist-in{to{opacity:1;transform:translateX(0)}}
@keyframes asb-dot-on{to{opacity:1;transform:scale(1.35)}}
@keyframes asb-media-scan{0%,100%{top:0;opacity:.15}50%{top:100%;opacity:.7}}
@keyframes asb-lens-drift{0%,100%{transform:rotate(0deg)}50%{transform:rotate(8deg)}}
@keyframes asb-soft-pulse{0%,100%{opacity:.35;transform:scale(.85)}50%{opacity:1;transform:scale(1.15)}}
@keyframes asb-final-light{to{opacity:.22}}
@keyframes asb-final-spot{to{opacity:1}}
@keyframes asb-final-copy-in{to{opacity:1;transform:translateY(0)}}
@keyframes asb-final-particles-in{to{opacity:.18}}
@keyframes asb-final-sweep{to{transform:translateX(120%)}}

/* Priority mobile art direction: 360 / 390 / 430. */
@media(max-width:600px){
  .asb-section{padding-inline:16px}
  .asb-hero{min-height:max(760px,100dvh);height:100dvh;max-height:932px}
  .asb-hero-stage{padding:70px 16px 90px}
  .asb-hero-photo{top:39%;width:min(66vw,290px)}
  .asb-hero-copy{padding-inline:4px}
  .asb-hero-sua,.asb-hero-ivan{top:18%;height:255px;width:31vw}.asb-hero-ivan{top:13%}
  .asb-hero-sua{left:-8%}.asb-hero-ivan{right:-8%}
  .asb-hero-sua figcaption,.asb-hero-ivan figcaption{left:8px;right:8px}.asb-hero-sua figcaption strong,.asb-hero-ivan figcaption strong{font-size:10px}
  .asb-age-badge{right:10px;top:46%;width:80px}
  .asb-hero-code{left:14px;bottom:72px}
  .asb-message{padding-top:52px}
  .asb-date-board{grid-template-columns:minmax(0,1fr) 31%;min-height:460px}
  .asb-date-display{min-height:420px;padding:28px 22px;grid-template-columns:minmax(0,1.1fr) minmax(88px,.9fr)}
  .asb-date-day{font-size:clamp(104px,31vw,138px)}
  .asb-date-meta{padding-left:8px}.asb-date-meta strong{font-size:clamp(18px,5vw,25px)}
  .asb-date-till{height:350px;margin-left:-28px;transform:translateY(22px)}
  .asb-date-till figcaption{left:8px;right:8px}.asb-date-till figcaption strong{font-size:10px}
  .asb-countdown-unit{min-height:145px}
  .asb-venue{min-height:820px;padding-bottom:56px}
  .asb-venue-shell{min-height:710px}
  .asb-arena{width:100%;min-height:540px;padding:34px 24px 250px;align-items:start}
  .asb-arena-vector{width:96%;right:-8%;top:auto;bottom:0;opacity:.52}
  .asb-arena-copy{padding:0;max-width:84%}
  .asb-venue-hyuna{right:-10%;bottom:-18px;width:49%;height:390px}
  .asb-venue-hyuna figcaption{display:none}
  .asb-setlist-row{grid-template-columns:31px 61px minmax(0,1fr) 7px;gap:9px;min-height:88px;padding-inline:0}.asb-setlist-row .asb-wave{display:none}
  .asb-lineup{min-height:580px}
  .asb-lineup-sua{width:43%;height:245px}.asb-lineup-ivan{left:29%;width:43%;height:390px}.asb-lineup-till{left:2%;width:66%;height:230px}.asb-lineup-hyuna{width:39%;height:360px;top:92px}
  .asb-lineup .asb-character figcaption{left:8px;right:8px;bottom:8px}.asb-lineup .asb-character figcaption strong{font-size:10px}
  .asb-media-grid{display:grid;gap:10px}
  .asb-media-grid-1 .asb-media{min-height:560px}
  .asb-media-grid-2{grid-template-columns:1.18fr .82fr;align-items:end}.asb-media-grid-2 .asb-media-1{min-height:520px}.asb-media-grid-2 .asb-media-2{min-height:340px;margin-left:-24px;transform:translateY(24px)}.asb .asb-media-grid-2 .asb-media-2.ti-pending[data-ti-motion]{transform:translateY(24px)}
  .asb-media-grid-3{grid-template-columns:1.15fr .85fr;grid-template-rows:repeat(2,260px)}
  .asb-media-grid-4{grid-template-columns:1.15fr .85fr;grid-template-rows:290px 220px 280px}.asb-media-grid-4 .asb-media-1{grid-column:1/3;grid-row:1}.asb-media-grid-4 .asb-media-2{grid-column:1;grid-row:2/4}.asb-media-grid-4 .asb-media-3{grid-column:2;grid-row:2}.asb-media-grid-4 .asb-media-4{grid-column:2;grid-row:3}
  .asb-final{min-height:84dvh}.asb-final-inner{min-height:84dvh}.asb-final-panels{left:-7%;right:-7%;gap:4px;opacity:.2}.asb-final-copy{padding:38px 18px}
}

@media(max-width:370px){
  .asb-hero{min-height:730px}.asb-hero-photo{width:64vw;top:38%}.asb-hero-name{font-size:51px}.asb-hero-name--md{font-size:43px}.asb-hero-name--sm{font-size:37px}.asb-hero-name--xs{font-size:31px}
  .asb-age-badge{width:72px}.asb-age-badge strong{font-size:26px}.asb-hero-sua,.asb-hero-ivan{height:225px}
  .asb-date-display{padding-inline:18px}.asb-date-day{font-size:100px}.asb-date-meta strong{font-size:17px}.asb-date-till{height:320px}
  .asb-countdown-unit{min-height:132px}.asb-countdown-digit{font-size:50px;height:54px}
  .asb-arena-copy{max-width:88%}.asb-venue-hyuna{height:350px}
  .asb-setlist-row{grid-template-columns:27px 53px minmax(0,1fr) 6px}.asb-setlist-row>p{font-size:14px}.asb-setlist-row>strong{font-size:16px}
  .asb-lineup{min-height:540px}.asb-lineup-ivan{height:360px}.asb-lineup-hyuna{height:330px}.asb-lineup-till{height:210px}
}

@media(min-width:601px) and (max-width:900px){
  .asb-hero{min-height:820px}.asb-hero-photo{width:min(46vw,360px);top:44%}.asb-hero-sua,.asb-hero-ivan{width:25vw;max-width:210px;height:390px}.asb-hero-sua{left:3%}.asb-hero-ivan{right:3%}.asb-age-badge{right:8%;top:47%;width:94px}
  .asb-venue-hyuna{width:38%}.asb-media-grid-4{grid-template-columns:1.15fr .8fr .75fr}
}

@media(min-width:901px){
  .asb-hero{min-height:780px}
  .asb-hero-stage{display:grid;grid-template-columns:minmax(270px,.85fr) minmax(330px,1.1fr) minmax(230px,.75fr);align-items:center;align-content:center;justify-items:stretch;padding-block:70px}
  .asb-hero-photo{position:relative;left:auto;top:auto;grid-column:2;grid-row:1;width:min(34vw,420px);transform:scale(.96);justify-self:center;animation-name:asb-photo-in-desktop}
  .asb-hero-copy{grid-column:1;grid-row:1;justify-items:start;text-align:left;padding-right:18px;align-self:end;margin-bottom:40px}.asb-hero-name{font-size:clamp(58px,7vw,112px)}.asb-hero-name--md{font-size:clamp(50px,6vw,92px)}.asb-hero-name--sm{font-size:clamp(43px,5.2vw,78px)}.asb-hero-name--xs{font-size:clamp(38px,4.6vw,68px)}
  .asb-hero-sua{left:38%;top:9%;width:200px;height:330px}.asb-hero-ivan{right:2%;top:20%;width:250px;height:470px}
  .asb-age-badge{right:29%;top:62%;width:102px}.asb-hero-code{left:5%;bottom:40px}
  .asb-countdown-console{grid-template-columns:repeat(4,minmax(0,1fr))}.asb-countdown-unit{min-height:210px;border-bottom:0}.asb-countdown-unit:nth-child(odd){border-right:1px solid rgba(174,183,200,.1)}.asb-countdown-unit:last-child{border-right:0}.asb-countdown-digit{font-size:clamp(52px,6vw,84px)}
  .asb-date-board{grid-template-columns:minmax(0,1fr) 300px}.asb-date-till{height:420px}
  .asb-venue-hyuna{right:0;width:32%;height:520px}
  .asb-lineup{min-height:720px}.asb-lineup-sua{height:330px}.asb-lineup-ivan{height:540px}.asb-lineup-till{height:310px}.asb-lineup-hyuna{height:500px}
}
@keyframes asb-photo-in-desktop{to{opacity:1;transform:scale(1)}}

@media(prefers-reduced-motion:reduce){
  .asb *,.asb *::before,.asb *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  .asb .ti-pending[data-ti-motion]{opacity:1!important;transform:none!important;clip-path:none!important}
  .asb :is(.asb-boot-line,.asb-photo-sweep,.asb-final-sweep,.asb-countdown-scan){display:none!important}
  .asb :is(.asb-led,.asb-hero-photo,.asb-hero-copy,.asb-age-badge,.asb-hero-sua,.asb-hero-ivan,.asb-hero-code,.asb-final-beam,.asb-final-spot,.asb-final-particles,.asb-final-copy>span,.asb-final-copy>strong,.asb-final-copy>h2,.asb-final-copy>small){opacity:1!important;transform:none!important}
  .asb-hero-photo{transform:translate(-50%,-50%) scale(1)!important}.asb-age-badge{transform:none!important}.asb-hero-sua{transform:rotate(-2deg)!important}.asb-hero-ivan{transform:rotate(2deg)!important}
  .asb-date-day{clip-path:none!important}.asb-message-line{transform:scaleY(1)!important}.asb-setlist-row{opacity:1!important;transform:none!important}.asb-arena-vector{transform:none!important}
}
@media(min-width:901px) and (prefers-reduced-motion:reduce){.asb-hero-photo{transform:none!important}}


/* ==============================================================
   TERRAINVITE v24.0.0 — Alien Stage readability + layout refinement
   - bigger hero photo on mobile
   - simplified date board and venue
   - countdown digits always visible
   - cleaner setlist times
   - compact lineup / fewer repeated character cards
   - cleaner gallery layout
   ============================================================== */
.invite-font-scope .asb :is(
  .asb-heading h2,
  .asb-hero-name,
  .asb-age-badge strong,
  .asb-date-day,
  .asb-date-meta strong,
  .asb-date-time strong,
  .asb-countdown-digit,
  .asb-setlist-row>strong,
  .asb-final-copy>strong
){
  font-family:"Arial Black","Rubik","Noto Sans",sans-serif!important;
}

.asb-hero-photo{width:min(70vw,360px)}
.asb-hero-photo>img{filter:brightness(1.03) saturate(1.02)}
.asb-hero-text{
  max-width:560px;
  padding:12px 16px;
  border:1px solid rgba(89,244,255,.16);
  background:linear-gradient(180deg,rgba(6,8,14,.44),rgba(6,8,14,.78));
  backdrop-filter:blur(6px);
  color:#edf1ff;
}

.asb-date-board{grid-template-columns:1fr!important;max-width:820px;margin:0 auto;min-height:0}
.asb-date-display{min-height:340px}
.asb-date-time{gap:14px;flex-wrap:nowrap}
.asb-date-time strong{white-space:nowrap}

.asb-countdown-digit{
  position:relative;
  display:grid;
  place-items:center;
  height:clamp(58px,17vw,90px);
  font:400 clamp(50px,15vw,84px)/.9 var(--asb-display);
  font-variant-numeric:tabular-nums;
  color:#f8fbff;
  letter-spacing:-.03em;
  -webkit-text-stroke:0;
  text-shadow:0 0 20px rgba(89,244,255,.18);
}

.asb-arena{min-height:420px;align-items:center}
.asb-arena-copy{max-width:520px}
.asb-action{padding-right:48px}

.asb-setlist-row{grid-template-columns:44px minmax(84px,118px) minmax(0,1fr) minmax(0,124px) 8px;gap:14px}
.asb-setlist-row>strong{white-space:nowrap;letter-spacing:-.02em}
.asb-setlist-row>p{min-width:0}

.asb-lineup{
  min-height:0!important;
  display:grid;
  grid-template-columns:minmax(0,1.15fr) minmax(220px,.85fr);
  gap:16px;
  align-items:stretch;
}
.asb-lineup .asb-character{position:relative!important;left:auto!important;right:auto!important;top:auto!important;bottom:auto!important;width:100%!important;height:100%!important;clip-path:none!important}
.asb-lineup-card{min-height:260px}
.asb-lineup-card--feature{min-height:540px}
.asb-lineup-side{display:grid;grid-template-rows:1fr 1fr;gap:16px;min-height:540px}
.asb-lineup-card--side{min-height:0}
.asb-lineup .asb-character figcaption{left:12px;right:12px;bottom:12px}
.asb-lineup .asb-character figcaption strong{font-size:clamp(14px,2vw,18px)}

.asb-media-grid-2{grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch}
.asb-media-grid-2 .asb-media-1,.asb-media-grid-2 .asb-media-2{min-height:420px}
.asb-media-grid-2 .asb-media-2{margin-left:0;transform:none}
.asb .asb-media-grid-2 .asb-media-2.ti-pending[data-ti-motion]{transform:none}

.asb-media-grid-3{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:auto auto}
.asb-media-grid-3 .asb-media-1{grid-column:1/3;grid-row:1;min-height:430px}
.asb-media-grid-3 .asb-media-2{grid-column:1;grid-row:2;min-height:280px}
.asb-media-grid-3 .asb-media-3{grid-column:2;grid-row:2;min-height:280px}

.asb-media-grid-4{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:auto auto auto}
.asb-media-grid-4 .asb-media-1{grid-column:1/3;grid-row:1;min-height:430px}
.asb-media-grid-4 .asb-media-2{grid-column:1;grid-row:2;min-height:280px}
.asb-media-grid-4 .asb-media-3{grid-column:2;grid-row:2;min-height:280px}
.asb-media-grid-4 .asb-media-4{grid-column:1/3;grid-row:3;min-height:320px}

.asb-final-copy{width:min(700px,100%)}

@media(max-width:900px){
  .asb-hero{min-height:max(780px,100dvh)}
  .asb-hero-stage{padding:72px 16px 88px}
  .asb-hero-sua,.asb-hero-ivan{display:none}
  .asb-hero-photo{top:40%;width:min(78vw,356px)}
  .asb-age-badge{right:14px;top:45%;width:88px}
  .asb-hero-copy{gap:12px;padding-inline:2px}
  .asb-hero-name{font-size:clamp(44px,12vw,72px)}
  .asb-hero-name--md{font-size:clamp(40px,10vw,60px)}
  .asb-hero-name--sm{font-size:clamp(34px,9vw,54px)}
  .asb-hero-name--xs{font-size:clamp(30px,8vw,48px)}

  .asb-date-display{grid-template-columns:minmax(0,1fr) minmax(92px,.75fr);padding:24px 20px;min-height:320px}
  .asb-date-day{font-size:clamp(86px,26vw,126px)}
  .asb-date-meta strong{font-size:clamp(18px,4.8vw,24px)}
  .asb-date-time{padding-top:14px}
  .asb-date-time strong{font-size:clamp(24px,7vw,40px)}

  .asb-countdown .asb-heading h2{font-size:clamp(32px,9vw,52px);letter-spacing:-.035em}
  .asb-countdown-console{grid-template-columns:repeat(2,minmax(0,1fr))}
  .asb-countdown-unit{min-height:146px;padding:22px 10px}
  .asb-countdown-unit:nth-child(odd){border-right:0}
  .asb-countdown-unit:nth-last-child(-n+2){border-bottom:0}

  .asb-arena{width:100%;padding:28px 20px 210px;min-height:520px;align-items:start}
  .asb-arena-vector{width:92%;right:-5%;top:auto;bottom:0;opacity:.52}
  .asb-arena-copy{max-width:100%;padding:0}
  .asb-arena-copy h3{font-size:clamp(28px,8.5vw,46px)}
  .asb-arena-copy p{font-size:15px;line-height:1.55}

  .asb-setlist-row{grid-template-columns:30px minmax(72px,88px) minmax(0,1fr) 8px;gap:10px;min-height:78px;padding:16px 0}
  .asb-setlist-row .asb-wave{display:none}
  .asb-setlist-row>strong{font-size:clamp(16px,4.8vw,20px)}
  .asb-setlist-row>p{font-size:clamp(14px,4.1vw,18px);line-height:1.35}

  .asb-lineup{grid-template-columns:1fr;gap:12px}
  .asb-lineup-card--feature{min-height:360px}
  .asb-lineup-side{grid-template-columns:1fr 1fr;grid-template-rows:none;min-height:0}
  .asb-lineup-card--side{min-height:230px}

  .asb-media-grid,
  .asb-media-grid-2,
  .asb-media-grid-3,
  .asb-media-grid-4{grid-template-columns:1fr!important;grid-template-rows:none!important;gap:12px}
  .asb-media-grid .asb-media,
  .asb-media-grid-2 .asb-media,
  .asb-media-grid-3 .asb-media,
  .asb-media-grid-4 .asb-media{grid-column:auto!important;grid-row:auto!important;min-height:260px!important;margin-left:0!important;transform:none!important}
  .asb-media-grid .asb-media:first-child,
  .asb-media-grid-2 .asb-media:first-child,
  .asb-media-grid-3 .asb-media:first-child,
  .asb-media-grid-4 .asb-media:first-child{min-height:340px!important}

  .asb-final{min-height:74dvh}
  .asb-final-inner{min-height:74dvh}
  .asb-final-copy{padding:34px 18px}
}

@media(max-width:390px){
  .asb-hero-photo{width:min(80vw,336px)}
  .asb-age-badge{width:80px}
  .asb-age-badge strong{font-size:28px}
  .asb-countdown-unit{min-height:134px}
  .asb-countdown-digit{font-size:clamp(44px,14vw,58px)}
  .asb-lineup-side{grid-template-columns:1fr;grid-template-rows:repeat(2,220px)}
}

/* ==============================================================
   TERRAINVITE v25.0.0 — Alien Stage mobile hotfix
   Purpose: force the hero photo to dominate the first screen,
   guarantee visible countdown values, and remove the separate
   participant-card section from the visual flow.
   ============================================================== */

/* Hero: the user's photo is the visual focus and overlaps the profile cards. */
.asb-hero-photo{
  z-index:10!important;
}

@media(max-width:900px){
  .asb-hero-stage{
    padding-top:52px;
    padding-bottom:86px;
  }
  .asb-hero-photo{
    top:32%!important;
    width:min(92vw,560px)!important;
    aspect-ratio:.82!important;
    box-shadow:-18px 8px 52px rgba(32,229,255,.22),18px 12px 58px rgba(255,79,174,.20),0 26px 60px rgba(0,0,0,.48)!important;
  }
  .asb-hero-photo>img{
    object-fit:cover!important;
  }
  .asb-hero-sua,.asb-hero-ivan{
    display:block!important;
    z-index:2!important;
    opacity:.68!important;
    filter:saturate(.72) brightness(.72)!important;
  }
  .asb-hero-sua{
    left:-10%!important;
    top:9%!important;
    width:46vw!important;
    max-width:190px!important;
    height:330px!important;
  }
  .asb-hero-ivan{
    right:-10%!important;
    top:11%!important;
    width:46vw!important;
    max-width:190px!important;
    height:350px!important;
  }
  .asb-hero-copy{
    position:absolute!important;
    left:16px!important;
    right:16px!important;
    bottom:62px!important;
    width:auto!important;
    z-index:14!important;
  }
  .asb-hero-text{
    max-width:620px!important;
    background:rgba(4,6,10,.78)!important;
  }
  .asb-age-badge{
    z-index:15!important;
    top:48%!important;
  }
}

@media(max-width:430px){
  .asb-hero{min-height:max(790px,100dvh)!important}
  .asb-hero-photo{
    top:31%!important;
    width:94vw!important;
    max-width:none!important;
  }
  .asb-hero-sua,.asb-hero-ivan{
    width:48vw!important;
    max-width:none!important;
    height:315px!important;
  }
  .asb-hero-sua{left:-12%!important;top:8%!important}
  .asb-hero-ivan{right:-12%!important;top:10%!important}
  .asb-hero-copy{bottom:58px!important}
  .asb-hero-name{font-size:clamp(44px,13vw,62px)!important}
  .asb-hero-name--md{font-size:clamp(39px,11.2vw,54px)!important}
  .asb-hero-name--sm{font-size:clamp(34px,10vw,48px)!important}
  .asb-hero-name--xs{font-size:clamp(30px,8.8vw,43px)!important}
}

/* Countdown: do not rely on animated nested spans. The value is ordinary
   text in its own block and is forced visible above the console effects. */
.asb-countdown-unit{
  isolation:isolate;
}
.asb-countdown-value{
  position:relative!important;
  z-index:10!important;
  display:block!important;
  width:100%!important;
  min-height:64px!important;
  margin:0!important;
  padding:0!important;
  opacity:1!important;
  visibility:visible!important;
  color:#ffffff!important;
  -webkit-text-fill-color:#ffffff!important;
  -webkit-text-stroke:0!important;
  text-align:center!important;
  font-family:"Arial Black","Arial",sans-serif!important;
  font-size:clamp(52px,16vw,86px)!important;
  font-weight:900!important;
  line-height:.95!important;
  letter-spacing:-.055em!important;
  font-variant-numeric:tabular-nums!important;
  text-shadow:0 0 22px rgba(89,244,255,.28)!important;
  transform:none!important;
  animation:none!important;
}
.asb-countdown-unit small{
  position:relative;
  z-index:10;
}

@media(max-width:430px){
  .asb-countdown-console{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .asb-countdown-unit{min-height:142px!important;padding:22px 8px!important;gap:8px!important}
  .asb-countdown-value{font-size:clamp(48px,15vw,64px)!important;min-height:58px!important}
}

/* Program contains only the schedule. Any legacy lineup markup is hidden too. */
.asb-lineup-wrap,.asb-lineup,.asb-lineup-heading{
  display:none!important;
}
.asb-program-shell .asb-setlist{
  margin-bottom:0!important;
}
