/* Atlanta India Trade Fair 2026 — poster-derived design system */
:root{
  --cream:#F7F0E1; --cream-2:#EFE3CB; --ivory:#FCF8EE; --teal:#012D30; --teal-2:#0A3D40; --emerald:#1B6B62;
  --navy:#0E2A47; --ink:#17233A; --muted:#66625A; --gold:#C9A24A; --gold-2:#E6CB7B; --gold-3:#8F6F27; --saffron:#E8792B; --saffron-ink:#B5561A; --magenta:#A3315E;
  --line:rgba(143,111,39,.38); --line-dark:rgba(230,203,123,.32);
  --goldgrad:linear-gradient(105deg,#8F6F27 0%,#C9A24A 28%,#F3E2A8 50%,#C9A24A 72%,#8F6F27 100%);
  --disp:"Rozha One","Playfair Display",Georgia,serif; --caps:"Cinzel","Times New Roman",serif; --body:"Newsreader","Georgia",serif; --script:"Great Vibes",cursive;
  --celeb:linear-gradient(105deg,#C4621B 0%,#E8792B 28%,#F5C56A 50%,#E8792B 72%,#C4621B 100%); --btngrad:linear-gradient(105deg,#D9641E 0%,#F2A03A 30%,#FFD98A 52%,#F2A03A 72%,#D9641E 100%);
  --max:1360px; --gutter:clamp(20px,4vw,56px); --ease:cubic-bezier(.22,.8,.2,1); --ease-out:cubic-bezier(.16,1,.3,1);
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;overflow-x:clip}
body{font-family:var(--body);font-weight:500;color:var(--ink);background:var(--cream);line-height:1.5;font-size:20px;overflow-x:clip;position:relative}
body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;background:url(assets/p-cream.webp) center/240px repeat;opacity:.55;mix-blend-mode:multiply}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit;color:inherit}
::selection{background:var(--gold);color:var(--teal)}
:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.wrap{width:min(100% - 2*var(--gutter),var(--max));margin-inline:auto;position:relative}
main{position:relative;z-index:1}

/* type */
h1,h2,h3,h4,.disp{font-family:var(--disp);font-weight:400;line-height:1.02;letter-spacing:0;text-wrap:balance}
h2{font-size:clamp(46px,6.2vw,92px);color:var(--navy)}
h3{font-size:clamp(26px,2.2vw,32px)}
.celeb{background:var(--celeb);background-size:200% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:shimmer 7s linear infinite}
.lead{font-size:clamp(21px,1.6vw,26px);line-height:1.42;color:#2E2A22;max-width:58ch;font-weight:500}
.lead strong{font-weight:700;color:var(--ink)}
.caps{font-family:var(--caps);font-weight:700;font-size:13.5px;letter-spacing:.3em;text-transform:uppercase}
.gold{background:var(--goldgrad);background-size:200% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:shimmer 6s linear infinite}
@keyframes shimmer{to{background-position:200% 0}}
.dark{background:var(--teal);color:var(--cream)}
.dark .lead{color:#D9D2C0}
.dark .lead strong{color:#fff}
.dark .muted{color:#B8B09B}
.muted{color:var(--muted)}
.script{font-family:var(--script);font-weight:400;font-size:clamp(34px,4vw,60px);line-height:1;letter-spacing:0;color:var(--gold)}
.center{text-align:center}
.center .lead{margin-inline:auto}
.rule{display:block;width:120px;height:1px;background:var(--gold);margin:22px auto 0;position:relative;transform:scaleX(0);transition:transform 1s var(--ease-out) .2s}
.rule::before,.rule::after{content:"";position:absolute;top:50%;width:6px;height:6px;background:var(--gold);transform:translateY(-50%) rotate(45deg)}
.rule::before{left:-3px}.rule::after{right:-3px}
.rule.left{margin-left:0}
.in .rule,.rule.in{transform:scaleX(1)}
.orn{display:block;width:34px;height:37px;margin:0 auto 14px;background:url(assets/p-orn.webp) center/contain no-repeat;filter:drop-shadow(0 2px 4px rgba(90,60,10,.18))}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:17px 32px;font-family:var(--caps);font-weight:800;font-size:14.5px;letter-spacing:.22em;text-transform:uppercase;line-height:1;color:#1B1200;background:var(--btngrad);background-size:200% 100%;position:relative;cursor:pointer;border:0;white-space:nowrap;transition:transform .3s var(--ease),box-shadow .3s,background-position .6s;box-shadow:0 12px 30px -12px rgba(217,100,30,.65)}
.btn:hover{transform:translateY(-2px);background-position:100% 0;box-shadow:0 16px 34px -14px rgba(143,111,39,.9)}
.btn::before{content:"";position:absolute;inset:4px;border:1px solid rgba(255,255,255,.35);pointer-events:none}
.btn.ghost{background:transparent;color:inherit;box-shadow:inset 0 0 0 2px var(--gold)}
.btn.ghost::before{border-color:transparent}
.btn.ghost:hover{background:rgba(201,162,74,.12)}
.dark .btn.ghost{color:var(--gold-2)}
.btn.sm{padding:11px 14px;font-size:11px;letter-spacing:.16em}
.btn-row{display:flex;flex-wrap:wrap;gap:14px;margin-top:30px}
.center .btn-row{justify-content:center}
.textlink{font-family:var(--caps);font-weight:700;font-size:13px;letter-spacing:.22em;text-transform:uppercase;color:var(--gold-3);display:inline-flex;align-items:center;gap:8px;position:relative;padding-bottom:6px}
.textlink::after{content:"";position:absolute;left:0;bottom:0;height:1px;width:100%;background:currentColor;transform:scaleX(.4);transform-origin:left;transition:transform .4s var(--ease)}
.textlink:hover::after{transform:scaleX(1)}
.dark .textlink{color:var(--gold-2)}

/* top bar + nav */
.topbar{background:var(--teal);color:#CFC6AC;font-family:var(--caps);font-size:11px;letter-spacing:.22em;text-transform:uppercase;position:relative;z-index:61}
.topbar .wrap{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:38px}
.topbar b{color:var(--gold-2);font-weight:600}
.topbar .sep{opacity:.5;margin:0 10px}
.topbar a{color:var(--gold-2)}
.topbar a:hover{color:#fff}
@media(max-width:760px){.topbar .desc,.topbar .org{display:none}.topbar .wrap{min-height:34px}}
.progress{position:fixed;left:0;top:0;height:3px;width:100%;z-index:70;background:transparent;pointer-events:none}
.progress i{display:block;height:100%;width:0;background:var(--goldgrad);transition:width .1s linear}
.nav{position:sticky;top:0;z-index:60;background:rgba(247,240,225,.9);backdrop-filter:blur(14px) saturate(1.3);-webkit-backdrop-filter:blur(14px) saturate(1.3);border-bottom:1px solid var(--line);transition:box-shadow .3s}
.nav.scrolled{box-shadow:0 14px 40px -24px rgba(23,35,58,.45)}
.nav .wrap{display:flex;align-items:center;gap:20px;min-height:82px}
.brand{display:flex;align-items:center;gap:14px;margin-right:auto}
.brand img{height:46px;width:auto}
.brand .on-dark{display:none}
.menu-open .brand .on-light{display:none}
.menu-open .brand .on-dark{display:block}
.brand span{font-family:var(--caps);font-weight:700;font-size:12.5px;letter-spacing:.18em;line-height:1.25;color:var(--navy);text-transform:uppercase;white-space:nowrap}
@media(max-width:1520px){.brand span{display:none}}
.brand span b{display:block;font-weight:600;color:var(--gold-3);font-size:10.5px;letter-spacing:.3em}
.links{display:flex;gap:2px}
.links a{font-family:var(--caps);font-weight:600;font-size:11.5px;letter-spacing:.12em;text-transform:uppercase;padding:10px 9px;white-space:nowrap;position:relative;color:var(--ink)}
.links a::after{content:"";position:absolute;left:11px;right:11px;bottom:4px;height:1px;background:var(--gold);transform:scaleX(0);transform-origin:center;transition:transform .35s var(--ease)}
.links a:hover::after,.links a.active::after{transform:scaleX(1)}
.nav-cta{display:flex;gap:10px}
.burger{display:none;width:48px;height:48px;border:0;background:transparent;cursor:pointer;position:relative;margin-left:auto}
.burger i{position:absolute;left:11px;right:11px;height:2px;background:var(--navy);transition:transform .35s var(--ease),opacity .3s}
.burger i:nth-child(1){top:16px}.burger i:nth-child(2){top:23px}.burger i:nth-child(3){top:30px}
.menu-open .burger i:nth-child(1){transform:translateY(7px) rotate(45deg)}
.menu-open .burger i:nth-child(2){opacity:0}
.menu-open .burger i:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
.mobile-menu{display:none}
@media(max-width:1240px){
  .links,.nav-cta{display:none}
  .burger{display:block}
  .mobile-menu{display:block;position:fixed;inset:0;z-index:55;background:var(--teal);color:var(--cream);padding:130px var(--gutter) 40px;transform:translateY(-100%);transition:transform .55s var(--ease);overflow:auto}
  .mobile-menu::before{content:"";position:absolute;left:0;bottom:0;width:220px;height:192px;background:url(assets/p-floral-l.webp) left bottom/contain no-repeat;opacity:.3;pointer-events:none}
  .menu-open .mobile-menu{transform:translateY(0)}
  .menu-open .nav{background:var(--teal);border-color:rgba(230,203,123,.2)}
  .menu-open .burger i{background:var(--gold-2)}
  .menu-open .brand span{color:var(--cream)}
  .mobile-menu a.mlink{display:block;font-family:var(--caps);font-weight:700;font-size:26px;letter-spacing:.14em;text-transform:uppercase;padding:14px 0;border-bottom:1px solid rgba(230,203,123,.18);opacity:0;transform:translateX(-16px);transition:opacity .4s,transform .5s var(--ease);position:relative;z-index:1}
  .menu-open .mobile-menu a.mlink{opacity:1;transform:none}
  .mobile-menu .btn-row{margin-top:28px;position:relative;z-index:1}
}

/* arches */
.arch{position:relative;clip-path:url(#archclip);overflow:hidden;background:var(--cream-2)}
.arch img{width:100%;height:100%;object-fit:cover;display:block}
.arch-frame{position:relative}
.arch-frame .line{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible}
.arch-frame .line path{fill:none;stroke:var(--gold);stroke-width:1.5;vector-effect:non-scaling-stroke}
.arch-frame .line.inner{inset:9px;width:calc(100% - 18px);height:calc(100% - 18px)}
.arch-frame .line.inner path{stroke:var(--gold-2);stroke-width:1;opacity:.8}
.arch-frame .line.draw path{stroke-dasharray:1200;stroke-dashoffset:1200;transition:stroke-dashoffset 2.6s var(--ease-out)}
.in .arch-frame .line.draw path,.arch-frame.in .line.draw path{stroke-dashoffset:0}
.veil-top{clip-path:inset(0 0 100% 0);transition:clip-path 1.4s var(--ease-out)}
.in .veil-top,.veil-top.in{clip-path:inset(0 0 0 0)}
.tilt{transform-style:preserve-3d;transition:transform .5s var(--ease)}

/* reveals */
.rv{opacity:0;transform:translateY(26px);transition:opacity 1s var(--ease-out),transform 1.1s var(--ease-out)}
.rv.in{opacity:1;transform:none}
.rv[data-d="1"]{transition-delay:.12s}.rv[data-d="2"]{transition-delay:.24s}.rv[data-d="3"]{transition-delay:.36s}.rv[data-d="4"]{transition-delay:.48s}.rv[data-d="5"]{transition-delay:.6s}
@media(prefers-reduced-motion:reduce){
  .rv,.rule,.veil-top,.arch-frame .line.draw path{opacity:1;transform:none;clip-path:none;stroke-dashoffset:0;transition:none}
  .gold{animation:none}
  *{animation-duration:.001s!important;animation-iteration-count:1!important}
}

/* sections */
section{position:relative}
.sec{padding:clamp(84px,10vw,150px) 0}
.sec-head{max-width:860px;margin:0 auto clamp(40px,5vw,70px)}
.sec-head .lead{margin-top:22px}
.sec-head .caps{color:var(--saffron-ink);display:block;margin-bottom:16px}
.dark .sec-head .caps{color:var(--saffron-2,#F2A03A)}
.dark h2{color:#fff}
.split{display:grid;grid-template-columns:repeat(12,1fr);gap:clamp(24px,3vw,52px);align-items:center}
@media(max-width:900px){.split{grid-template-columns:1fr}}
.cream-2{background:var(--cream-2)}
.florals{position:relative;overflow:hidden}
.florals::before,.florals::after{content:"";position:absolute;bottom:0;pointer-events:none;background-repeat:no-repeat;background-size:contain;opacity:.95}
.florals::before{left:0;width:clamp(150px,19vw,320px);aspect-ratio:1000/875;background-image:url(assets/p-floral-l.webp);background-position:left bottom;mask-image:linear-gradient(90deg,#000 55%,transparent);-webkit-mask-image:linear-gradient(90deg,#000 55%,transparent)}
.florals::after{right:0;width:clamp(150px,19vw,320px);aspect-ratio:1000/875;background-image:url(assets/p-floral-r.webp);background-position:right bottom;mask-image:linear-gradient(270deg,#000 55%,transparent);-webkit-mask-image:linear-gradient(270deg,#000 55%,transparent)}

/* hero: the two worlds fill the viewport, the arch floats in front */
.hero{position:relative;overflow:hidden;background:var(--cream);min-height:calc(100svh - 120px);display:flex;flex-direction:column;justify-content:center;padding:clamp(50px,6vw,72px) 0 clamp(80px,10vw,130px)}
.stage{position:absolute;inset:0;z-index:0;pointer-events:none}
.stage canvas{position:absolute;inset:0;width:100%;height:100%;z-index:3}
.half{position:absolute;top:0;bottom:0;width:58%;overflow:hidden;opacity:0;will-change:transform}
.half.l{left:0;mask-image:linear-gradient(90deg,#000 62%,transparent);-webkit-mask-image:linear-gradient(90deg,#000 62%,transparent);animation:halfL 1.8s var(--ease-out) .2s forwards}
.half.r{right:0;mask-image:linear-gradient(270deg,#000 62%,transparent);-webkit-mask-image:linear-gradient(270deg,#000 62%,transparent);animation:halfR 1.8s var(--ease-out) .3s forwards}
@keyframes halfL{from{opacity:0;transform:translateX(-6%) scale(1.06)}to{opacity:1;transform:none}}
@keyframes halfR{from{opacity:0;transform:translateX(6%) scale(1.06)}to{opacity:1;transform:none}}
.half .kb{position:absolute;inset:0;will-change:transform}
.half img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 46%}
.half.r img{object-position:center 40%}
.half.l .kb{animation:kbl 30s ease-in-out infinite alternate}
.half.r .kb{animation:kbr 34s ease-in-out infinite alternate}
@keyframes kbl{from{transform:scale(1) translateY(0)}to{transform:scale(1.08) translateY(-2%)}}
@keyframes kbr{from{transform:scale(1.07) translateX(1.5%)}to{transform:scale(1) translateX(0)}}
.flame{position:absolute;width:70px;height:70px;margin:-35px 0 0 -35px;border-radius:50%;background:radial-gradient(circle,rgba(255,226,150,.95),rgba(255,160,50,.45) 40%,transparent 70%);mix-blend-mode:screen;animation:flick var(--d,1.6s) ease-in-out infinite alternate}
@keyframes flick{from{opacity:.5;transform:scale(.8)}to{opacity:1;transform:scale(1.2)}}
.star{position:absolute;width:6px;height:6px;margin:-3px 0 0 -3px;border-radius:50%;background:#FFEDB8;box-shadow:0 0 10px 3px rgba(255,230,160,.85);animation:tw var(--d,2.4s) ease-in-out infinite alternate}
@keyframes tw{from{opacity:.25;transform:scale(.7)}to{opacity:1;transform:scale(1.3)}}
.stage .veil{position:absolute;inset:0;z-index:2;background:linear-gradient(to bottom,rgba(10,20,30,.42),transparent 26%,transparent 62%,var(--cream) 96%),radial-gradient(60% 70% at 50% 45%,rgba(255,214,120,.22),transparent 70%)}
.stage .beam{position:absolute;top:-30%;bottom:-30%;left:-40%;width:24%;z-index:2;background:linear-gradient(90deg,transparent,rgba(255,232,180,.6) 50%,transparent);mix-blend-mode:screen;transform:skewX(-18deg) translateX(-200%);animation:beam 2.6s cubic-bezier(.5,0,.3,1) 1.4s forwards}
@keyframes beam{to{transform:skewX(-18deg) translateX(760%)}}
.side-text{position:absolute;top:clamp(34px,4.5vw,64px);width:190px;font-family:var(--caps);font-weight:800;font-size:12.5px;letter-spacing:.3em;text-transform:uppercase;line-height:2;color:#FFF4DC;text-shadow:0 2px 14px rgba(0,0,0,.55);z-index:4;opacity:0;animation:fade 1.2s var(--ease-out) 1.8s forwards}
.side-text.l{left:var(--gutter)}
.side-text.r{right:var(--gutter);text-align:right}
.side-text .orn{margin:0 0 10px;filter:drop-shadow(0 2px 6px rgba(0,0,0,.4))}
.side-text.r .orn{margin-left:auto}
.side-text::after{content:"";display:block;width:1px;height:70px;background:var(--gold-2);margin:16px 0 0 20px;opacity:.8}
.side-text.r::after{margin-left:auto;margin-right:20px}
@media(max-width:1280px){.side-text{display:none}}
@keyframes fade{to{opacity:1}}
.h-grid{position:relative;z-index:5;width:min(100% - 2*var(--gutter),470px,calc((100svh - 240px) * .8));margin-inline:auto}
@media(max-width:900px){.h-grid{width:min(100% - 2*var(--gutter),470px)}}
.hframe{position:relative;z-index:1;will-change:transform}
.hframe::before{content:"";position:absolute;left:50%;top:40%;width:170%;aspect-ratio:1;transform:translate(-50%,-50%);background:radial-gradient(closest-side,rgba(255,220,140,.55),rgba(255,200,100,.18) 45%,transparent 70%);pointer-events:none;z-index:-1;opacity:0;animation:fade 2.5s ease 1s forwards,halo 8s ease-in-out 3s infinite alternate}
@keyframes halo{from{transform:translate(-50%,-50%) scale(1)}to{transform:translate(-50%,-50%) scale(1.12)}}
.hframe .finial{position:absolute;left:50%;top:-18px;width:50px;height:54px;transform:translateX(-50%);background:url(assets/p-orn.webp) center/contain no-repeat;filter:drop-shadow(0 6px 12px rgba(60,40,10,.5));opacity:0;animation:fade 1s ease 2.2s forwards,finial 6s ease-in-out 3.2s infinite alternate;z-index:2;pointer-events:none}
@keyframes finial{from{transform:translate(-50%,0)}to{transform:translate(-50%,-6px)}}
.hcenter{position:relative;aspect-ratio:4/5;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:12% 9% 10%;background:linear-gradient(180deg,#FFFDF7,var(--cream));clip-path:url(#archclip);opacity:0;animation:pop 1.4s var(--ease-out) .5s forwards}
@keyframes pop{from{opacity:0;transform:scale(.9) translateY(24px)}to{opacity:1;transform:none}}
.hframe .line{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible}
.hframe .line path{fill:none;stroke:var(--gold);stroke-width:1.8;vector-effect:non-scaling-stroke;stroke-dasharray:1400;stroke-dashoffset:1400;animation:draw 2.8s var(--ease-out) .7s forwards}
.hframe .line.inner{inset:10px;width:calc(100% - 20px);height:calc(100% - 20px)}
.hframe .line.inner path{stroke:var(--gold-2);stroke-width:1;animation-delay:1s}
.hframe .line.glint path{stroke-dasharray:70 1330;stroke-dashoffset:1400;stroke:#FFF4D2;stroke-width:2.6;opacity:0;animation:glint 6.5s linear 3.8s infinite;filter:drop-shadow(0 0 6px rgba(255,214,120,1))}
@keyframes glint{0%{opacity:0;stroke-dashoffset:1400}6%{opacity:1}64%{opacity:1}72%,100%{opacity:0;stroke-dashoffset:0}}
@keyframes draw{to{stroke-dashoffset:0}}
.hcenter .lockup{width:clamp(170px,54%,250px);height:auto;overflow:visible}
.lockup .mark,.lockup .word,.lockup .sub,.lockup .tag{opacity:0;transform:translateY(8px);transform-box:fill-box;animation:up 1s var(--ease-out) forwards}
.lockup .mark{animation-delay:1s}.lockup .word{animation-delay:2s}.lockup .sub{animation-delay:2.2s}.lockup .tag{animation-delay:2.35s}
.lockup .rb{clip-path:inset(-20% 100% -20% 0);animation:ribbon 1.5s var(--ease-out) forwards}
.lockup .rb-s{animation-delay:1.2s}.lockup .rb-w{animation-delay:1.38s}.lockup .rb-g{animation-delay:1.56s}
@keyframes ribbon{to{clip-path:inset(-20% -5% -20% 0)}}
.lockup .sheen{transform:translateX(-500px);animation:sheen 7s ease-in-out 3.8s infinite}
@keyframes sheen{0%{transform:translateX(-500px)}40%,100%{transform:translateX(700px)}}
@keyframes up{to{opacity:1;transform:none}}
.hcenter .unite{margin-top:clamp(10px,1.4vw,18px);font-family:var(--disp);font-weight:400;font-size:clamp(28px,2.6vw,38px);line-height:1;color:var(--navy);opacity:0;animation:up 1s var(--ease-out) 2.4s forwards;text-wrap:balance}
.hcenter .unite span{display:block}
.hcenter .unite .celeb{font-size:.72em;margin-top:6px}
.hcenter .when{margin-top:clamp(12px,1.6vw,20px);font-family:var(--caps);font-weight:700;font-size:12.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--saffron-ink);line-height:2;opacity:0;animation:up 1s var(--ease-out) 2.55s forwards}
.hcenter .when b{color:var(--navy);font-weight:800}
.hcenter .btn-row{margin-top:clamp(14px,1.8vw,24px);opacity:0;animation:up 1s var(--ease-out) 2.7s forwards;justify-content:center}
.hcenter .countdown{margin-top:16px;font-family:var(--caps);font-size:10.5px;font-weight:700;letter-spacing:.24em;text-transform:uppercase;color:var(--gold-3);opacity:0;animation:fade 1s var(--ease-out) 2.9s forwards}
.hcenter .countdown b{font-size:15px;font-weight:800;color:var(--navy);margin-right:8px}
.band{display:none}
@media(max-width:900px){
  .hero{min-height:0;padding:clamp(40px,8vw,70px) 0 90px}
  .half{width:100%;bottom:auto;height:58%;mask-image:linear-gradient(180deg,#000 62%,transparent);-webkit-mask-image:linear-gradient(180deg,#000 62%,transparent)}
  .half.r{top:auto;bottom:0;height:58%;mask-image:linear-gradient(0deg,#000 62%,transparent);-webkit-mask-image:linear-gradient(0deg,#000 62%,transparent)}
  .half img{object-position:center 40%}
  .hcenter{aspect-ratio:auto;padding:16% 10% 12%}
}

/* pillars band (poster bottom): the strip is the section background, icons sit in its teal base */
.pillars{position:relative;color:var(--cream);padding:calc(100vw / 2.25 * .715) 0 clamp(22px,2.4vw,36px);background:var(--cream) url(assets/p-band.webp) center bottom/cover no-repeat;overflow:hidden}
.pillars::before,.pillars::after{display:none}
.pillars .blend{position:absolute;left:0;right:0;top:0;height:12%;background:linear-gradient(to bottom,var(--cream),transparent);pointer-events:none}
.pillars .fade{display:none}
.pillars .wrap{position:relative;z-index:1}
.pillars .row{display:grid;grid-template-columns:repeat(5,1fr);width:min(72vw,1040px);margin:0 auto}
.pillar{text-align:center;padding:10px 8px;border-left:1px solid var(--line-dark)}
.pillar:first-child{border-left:0}
.pillar img{width:46px;height:auto;margin:0 auto 8px;filter:drop-shadow(0 0 12px rgba(201,162,74,.25));transition:transform .5s var(--ease)}
.pillar:hover img{transform:translateY(-4px) scale(1.06)}
.pillar span{display:block;font-family:var(--caps);font-weight:800;font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:#F7E1B5;line-height:1.8}
.pillars .tagrow{display:flex;align-items:center;justify-content:center;gap:16px;margin-top:clamp(14px,1.6vw,22px)}
.pillars .tagrow .orn{width:30px;height:32px;margin:0}
.pillars .tagrow .caps{color:var(--cream);font-size:clamp(11px,1vw,14px);letter-spacing:.38em}
@media(max-width:900px){
  .pillars{padding:calc(100vw / 2.25 + 8px) 0 150px;background:#0B3C3E url(assets/p-band.webp) center top/100% auto no-repeat}
  .pillars .blend{display:none}
  .pillars .fade{display:block;position:absolute;left:0;right:0;top:calc(100vw / 2.25 - 70px);height:80px;background:linear-gradient(to bottom,rgba(11,60,62,0),#0B3C3E)}
  .pillars.florals::before,.pillars.florals::after{display:block}
  .pillars .row{grid-template-columns:repeat(3,1fr)}.pillar{border:0}
}
@media(max-width:560px){.pillars .row{grid-template-columns:1fr 1fr}.pillar:nth-child(5){grid-column:span 2}}

/* ticker */
.ticker{overflow:hidden;background:linear-gradient(90deg,#6E1A44,#A3315E 50%,#6E1A44);padding:17px 0;font-family:var(--caps);font-weight:700;font-size:13px;letter-spacing:.26em;text-transform:uppercase;color:#F7E1B5;white-space:nowrap}
.ticker .track{display:inline-flex;animation:scroll 110s linear infinite}
.ticker:hover .track{animation-play-state:paused}
.ticker span{padding:0 28px;position:relative;line-height:24px}
.ticker span::before{content:"";position:absolute;left:-10px;top:50%;width:7px;height:7px;background:var(--gold-2);transform:translateY(-50%) rotate(45deg)}
@keyframes scroll{to{transform:translateX(-50%)}}

/* stats */
.stats{padding:clamp(60px,7vw,100px) 0}
.stats .wrap{display:grid;grid-template-columns:repeat(4,1fr);gap:0}
.stat{text-align:center;padding:16px 12px;position:relative}
.stat+.stat::before{content:"";position:absolute;left:0;top:18%;bottom:18%;width:1px;background:var(--line)}
.stat b{display:block;font-family:var(--disp);font-weight:400;font-size:clamp(60px,7.4vw,124px);line-height:1;font-variant-numeric:tabular-nums}
.stat b.gold{background-image:var(--celeb)}
.stat b small{font-size:.55em;vertical-align:top;margin-left:2px;color:var(--gold)}
.stat span{display:block;margin-top:10px;font-family:var(--caps);font-weight:700;font-size:12.5px;letter-spacing:.26em;text-transform:uppercase;color:var(--navy)}
.stat i{display:block;width:44px;height:1px;background:var(--gold);margin:14px auto 0;transform:scaleX(0);transition:transform 1s var(--ease-out) .3s}
.in .stat i{transform:scaleX(1)}
@media(max-width:820px){.stats .wrap{grid-template-columns:1fr 1fr}.stat:nth-child(3)::before{display:none}.stat{padding:24px 10px}}

/* about */
.about .text{grid-column:1/span 6}
.about .visual{grid-column:8/span 5}
@media(max-width:900px){.about .text,.about .visual{grid-column:auto}}
.premium{margin-top:36px;padding-top:24px;border-top:1px solid var(--line)}
.premium h4{font-family:var(--caps);font-size:15px;letter-spacing:.24em;text-transform:uppercase;color:var(--saffron-ink);font-weight:800;margin-bottom:6px}
.intro-line{font-family:var(--disp);font-size:clamp(22px,1.9vw,28px);line-height:1.15;color:var(--saffron-ink)}
.premium .row{display:grid;grid-template-columns:28px 1fr;gap:14px;align-items:center;padding:14px 0;border-bottom:1px solid rgba(143,111,39,.18);font-size:19px}
.premium .row i{width:20px;height:22px;background:url(assets/p-orn.webp) center/contain no-repeat}
.lounge{margin-top:30px;padding:24px 26px;border:1px solid var(--gold);position:relative;background:var(--ivory)}
.lounge::before{content:"";position:absolute;inset:5px;border:1px solid rgba(201,162,74,.45);pointer-events:none}
.lounge b{display:block;font-family:var(--disp);font-weight:700;font-size:20px;letter-spacing:.06em;color:var(--navy)}
.lounge span{font-style:italic;color:var(--muted)}
.triptych{display:grid;grid-template-columns:1fr 1.3fr 1fr;gap:12px;align-items:end}
.triptych .arch-frame{aspect-ratio:3/4.4}
.triptych .arch-frame:nth-child(2){aspect-ratio:3/5.2}
.triptych .arch{position:absolute;inset:0}
.triptych .arch img{transition:transform 1.6s var(--ease)}
.triptych .arch-frame:hover .arch img{transform:scale(1.06)}
.triptych .cap{position:absolute;left:0;right:0;bottom:0;padding:14px 10px;text-align:center;font-family:var(--caps);font-size:10.5px;letter-spacing:.24em;text-transform:uppercase;color:var(--cream);background:linear-gradient(to top,rgba(1,45,48,.85),transparent)}

/* zones */
.zone-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(16px,2vw,28px)}
@media(max-width:1000px){.zone-grid{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.zone-grid{grid-template-columns:1fr}}
.zone{position:relative;display:block;aspect-ratio:3/4.6;transition:transform .5s var(--ease)}
.zone:hover{transform:translateY(-8px)}
.zone{--zc:15,95,88}.zone:nth-child(2){--zc:138,37,84}.zone:nth-child(3){--zc:196,98,27}.zone:nth-child(4){--zc:30,63,138}
.zone .arch{position:absolute;inset:0;background:rgb(var(--zc))}
.zone .arch .tex{position:absolute;inset:0;background:url(assets/p-silk.webp) center/cover;opacity:.26;filter:saturate(.7);transition:opacity .5s,transform 1.4s var(--ease)}
.zone:nth-child(2) .arch .tex{background-image:url(assets/p-sari.webp)}
.zone:nth-child(3) .arch .tex{background-image:url(assets/p-skyline.webp)}
.zone:nth-child(4) .arch .tex{background-image:url(assets/p-brass.webp)}
.zone:hover .arch .tex{opacity:.3;transform:scale(1.06)}
.zone .arch::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(var(--zc),.97) 32%,rgba(var(--zc),.45) 70%,rgba(var(--zc),.1))}
.zone .body{position:absolute;inset:0;z-index:2;display:flex;flex-direction:column;justify-content:flex-end;padding:26px 24px 30px;text-align:center}
.zone .num{font-family:var(--disp);font-weight:400;font-size:clamp(84px,7.6vw,124px);line-height:1;margin-bottom:auto;padding-top:30%;color:#fff;text-shadow:0 8px 30px rgba(0,0,0,.35)}
.zone .num.gold{background:none;-webkit-text-fill-color:#fff;color:#fff;animation:none}
.zone small{font-family:var(--caps);font-weight:700;font-size:11.5px;letter-spacing:.3em;text-transform:uppercase;color:#FFE1A6}
.zone h3{margin:10px 0 10px;color:#fff;font-size:clamp(20px,1.6vw,24px)}
.zone p{font-size:17px;line-height:1.4;color:rgba(255,255,255,.85)}
.zone .textlink{margin:16px auto 0}
.zone .line path{stroke:var(--gold);opacity:.6;transition:opacity .4s}
.zone:hover .line path{opacity:1}

/* attend */
.attend .visual{grid-column:1/span 6}
.attend .text{grid-column:8/span 5}
@media(max-width:900px){.attend .visual,.attend .text{grid-column:auto}}
.attend .arch-frame{aspect-ratio:4/5}
.attend .arch{position:absolute;inset:0}
.attend .arch img{height:112%;will-change:transform}
.attend .cap{position:absolute;left:0;right:0;bottom:0;padding:30px 24px 34px;text-align:center;color:var(--cream);background:linear-gradient(to top,rgba(1,45,48,.95),transparent)}
.attend .cap b{display:block;font-family:var(--disp);font-size:22px;letter-spacing:.06em}
.attend .cap span{font-style:italic;color:#CFC6AC}
.invites{display:grid;gap:18px;margin-top:34px}
.invite{position:relative;background:var(--ivory);border:1px solid var(--gold);border-top:6px solid var(--saffron);padding:26px 26px 24px;transition:transform .45s var(--ease),box-shadow .45s}
.invite::before{content:"";position:absolute;inset:5px;border:1px solid rgba(201,162,74,.45);pointer-events:none}
.invite:hover{transform:translateY(-4px);box-shadow:0 30px 50px -36px rgba(23,35,58,.5)}
.invite .role{font-family:var(--disp);font-weight:800;font-size:30px;letter-spacing:.1em;color:var(--navy)}
.invite:nth-child(2){border-top-color:var(--magenta)}
.invite .who{font-family:var(--caps);font-weight:700;font-size:11.5px;letter-spacing:.26em;text-transform:uppercase;color:var(--saffron-ink);margin-top:8px}
.invite:nth-child(2) .who{color:var(--magenta)}
.invite p{color:var(--muted);margin-top:10px;font-size:18px;line-height:1.45}
.invite .orn{position:absolute;right:20px;top:18px;margin:0;width:24px;height:26px}

/* highlights */
.hl-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(20px,3vw,40px)}
@media(max-width:820px){.hl-grid{grid-template-columns:1fr}}
.hl{text-align:center;padding:36px 28px 34px;border:1px solid var(--line);background:var(--ivory);position:relative;transition:transform .45s var(--ease),box-shadow .45s}
.hl::before{content:"";position:absolute;inset:6px;border:1px solid rgba(201,162,74,.3);pointer-events:none}
.hl:hover{transform:translateY(-6px);box-shadow:0 34px 56px -40px rgba(23,35,58,.55)}
.hl:nth-child(2) .ico{background:var(--magenta)}.hl:nth-child(3) .ico{background:#C4621B}
.hl .ico{width:92px;height:92px;margin:0 auto 22px;border-radius:50%;background:var(--emerald);display:grid;place-items:center;box-shadow:0 0 0 1px var(--gold),0 0 0 6px var(--ivory),0 0 0 7px rgba(201,162,74,.5)}
.hl .ico img{width:50px;height:auto}
.hl p{color:var(--muted);margin-top:10px;font-size:18px}

/* stalls */
.stall-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(18px,2.4vw,32px)}
@media(max-width:900px){.stall-grid{grid-template-columns:1fr}}
.stall{background:var(--ivory);border:1px solid var(--gold);position:relative;transition:transform .45s var(--ease),box-shadow .45s;display:flex;flex-direction:column}
.stall::before{content:"";position:absolute;inset:6px;border:1px solid rgba(201,162,74,.4);pointer-events:none;z-index:1}
.stall:hover{transform:translateY(-6px);box-shadow:0 36px 60px -40px rgba(23,35,58,.55)}
.stall .tex{height:150px;background:url(assets/p-silk.webp) center/cover;position:relative;overflow:hidden}
.stall:nth-child(2) .tex{background-image:url(assets/p-sari.webp);background-position:center 30%}
.stall:nth-child(3) .tex{background-image:url(assets/p-trees.webp)}
.stall .tex::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(252,248,238,1),rgba(252,248,238,0) 60%)}
.stall .tex b{position:absolute;left:0;right:0;bottom:12px;text-align:center;font-family:var(--caps);font-weight:700;font-size:11px;letter-spacing:.3em;text-transform:uppercase;color:var(--gold-3)}
.stall .body{padding:14px 28px 30px;text-align:center;display:flex;flex-direction:column;flex:1}
.stall h3{font-size:24px}
.stall p{color:var(--muted);margin-top:12px;font-size:18px;line-height:1.45;flex:1}
.stall .spec{display:flex;justify-content:center;gap:22px;margin-top:18px;font-family:var(--caps);font-weight:600;font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--gold-3)}
.stall .textlink{margin:18px auto 0}

/* book band */
.book{color:var(--cream);overflow:hidden;padding:clamp(100px,12vw,180px) 0;background:var(--teal)}
.book .bgimg{position:absolute;right:-4%;top:-8%;bottom:-8%;width:52%;background:url(assets/p-right.webp) center 30%/cover no-repeat;opacity:.34;mask-image:linear-gradient(90deg,transparent,#000 40%);-webkit-mask-image:linear-gradient(90deg,transparent,#000 40%);will-change:transform}
.book .glow{position:absolute;left:-10%;top:-30%;width:70%;height:160%;background:radial-gradient(closest-side,rgba(163,49,94,.45),transparent 70%),radial-gradient(closest-side at 70% 20%,rgba(232,121,43,.35),transparent 60%);pointer-events:none;animation:breathe 9s ease-in-out infinite}
@keyframes breathe{50%{transform:scale(1.15) translateX(6%)}}
.book .wrap{position:relative;z-index:2;max-width:820px;margin-left:max(var(--gutter),calc((100% - var(--max))/2))}
.book .script{display:block;margin-bottom:8px}
.book .lead{color:#D9D2C0}

/* register */
.register .form-col{grid-column:1/span 6}
.register .side-col{grid-column:8/span 5}
@media(max-width:900px){.register .form-col,.register .side-col{grid-column:auto}}
.card-form{background:var(--ivory);padding:36px 34px 32px;border:1px solid var(--gold);position:relative;box-shadow:0 40px 80px -50px rgba(23,35,58,.4)}
.card-form::before{content:"";position:absolute;inset:6px;border:1px solid rgba(201,162,74,.4);pointer-events:none}
.card-form h3{font-size:24px}
.card-form>p{color:var(--muted);margin-top:8px;font-size:18px}
.fields{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:22px}
.fields .full{grid-column:1/-1}
@media(max-width:560px){.fields{grid-template-columns:1fr}}
.field label{display:block;font-family:var(--caps);font-weight:600;font-size:10.5px;letter-spacing:.24em;text-transform:uppercase;color:var(--gold-3);margin-bottom:6px}
.field input,.field textarea{width:100%;padding:13px 14px;border:1px solid var(--line);background:#fff;font-size:18px;transition:border-color .2s,box-shadow .2s}
.field input:focus,.field textarea:focus{outline:0;border-color:var(--gold);box-shadow:0 0 0 4px rgba(201,162,74,.18)}
.card-form .btn{margin-top:22px;width:100%}
.fineprint{font-size:15px;color:var(--muted);margin-top:14px;font-style:italic}
.fineprint a{text-decoration:underline}
.done{display:none;padding:20px 22px;background:rgba(27,107,98,.1);border-left:3px solid var(--emerald);margin-top:18px;font-size:17px}
.done b{font-family:var(--disp);font-size:18px;display:block;margin-bottom:4px}
form.sent .done{display:block}
.steps{margin-top:6px}
.step{display:grid;grid-template-columns:56px 1fr;gap:18px;padding:22px 0;border-bottom:1px solid var(--line)}
.step b{font-family:var(--disp);font-weight:800;font-size:40px;line-height:1}
.step h4{font-size:19px;letter-spacing:.04em}
.step p{color:var(--muted);font-size:18px;margin-top:6px}
.portal{margin-top:28px;padding:22px 24px;background:var(--teal);color:var(--cream);display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;border:1px solid rgba(201,162,74,.5)}
.portal b{font-family:var(--disp);font-size:18px;font-weight:700;display:block;letter-spacing:.04em}
.portal span{font-style:italic;color:#CFC6AC}

/* downloads */
.dl-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(16px,2vw,26px)}
@media(max-width:1000px){.dl-grid{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.dl-grid{grid-template-columns:1fr}}
.doc{position:relative;display:block;background:var(--ivory);padding:34px 24px 30px;min-height:260px;border:1px solid var(--line);text-align:center;transition:transform .45s var(--ease),box-shadow .45s,border-color .3s}
.doc::before{content:"";position:absolute;inset:6px;border:1px solid rgba(201,162,74,.3);pointer-events:none;transition:border-color .3s}
.doc:hover{transform:translateY(-6px);box-shadow:0 34px 56px -40px rgba(23,35,58,.55);border-color:var(--gold)}
.doc:hover::before{border-color:rgba(201,162,74,.7)}
.doc .type{font-family:var(--caps);font-weight:700;font-size:10.5px;letter-spacing:.3em;color:var(--gold-3)}
.doc h3{margin-top:14px;font-size:22px}
.doc p{color:var(--muted);font-size:17px;margin-top:8px;font-style:italic}
.doc .get{position:absolute;left:0;right:0;bottom:24px;font-family:var(--caps);font-weight:700;font-size:11.5px;letter-spacing:.24em;text-transform:uppercase;color:var(--gold-3);display:flex;justify-content:center;align-items:center;gap:8px}
.doc .get svg{width:16px;height:16px;transition:transform .35s var(--ease)}
.doc:hover .get svg{transform:translateY(3px)}

/* footer */
.footer{background:linear-gradient(180deg,var(--teal-2),#021F22);color:var(--cream);padding:clamp(80px,9vw,130px) 0 36px;position:relative;overflow:hidden}
.footer .wrap{position:relative;z-index:1}
.foot-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:clamp(24px,3vw,48px)}
.foot-grid .info{grid-column:1/span 6}
.foot-grid .form{grid-column:8/span 5}
@media(max-width:900px){.foot-grid{grid-template-columns:1fr}.foot-grid .info,.foot-grid .form{grid-column:auto}}
.footer h2{font-size:clamp(40px,4.6vw,66px);color:#fff}
.footer .script{display:block;margin-bottom:6px}
.footer .foot-logo{width:min(260px,70%);height:auto;margin-bottom:26px}
.footer .lead{max-width:46ch;color:#D9D2C0}
.footer .email{display:inline-flex;align-items:center;gap:12px;margin-top:24px;font-family:var(--body);font-weight:600;font-size:clamp(20px,2vw,26px);color:var(--gold-2);letter-spacing:.02em}
.footer.florals::before,.footer.florals::after{bottom:118px;opacity:.4}
.footer .email:hover{color:#fff}
.orgs{margin-top:40px;display:grid;grid-template-columns:1fr 1fr;gap:22px;font-size:17px;color:#CFC6AC}
.orgs b{display:block;font-family:var(--caps);font-weight:600;font-size:11px;letter-spacing:.28em;text-transform:uppercase;color:var(--gold-2);margin-bottom:8px}
.orgs img{height:40px;width:auto;margin-top:12px;background:#fff;padding:5px 8px}
.footer .card-form{background:rgba(255,255,255,.04);border-color:rgba(201,162,74,.6);box-shadow:none}
.footer .card-form::before{border-color:rgba(201,162,74,.25)}
.footer .card-form h3{color:#fff}
.footer .card-form>p,.footer .fineprint{color:#CFC6AC}
.footer .field label{color:var(--gold-2)}
.footer .field input,.footer .field textarea{background:rgba(255,255,255,.06);border-color:rgba(230,203,123,.3);color:#fff}
.footer .done{background:rgba(27,107,98,.25);color:#fff}
.foot-nav{display:flex;flex-wrap:wrap;gap:6px 22px;margin-top:64px;padding-top:26px;border-top:1px solid var(--line-dark)}
.foot-nav a{font-family:var(--caps);font-weight:600;font-size:11.5px;letter-spacing:.2em;text-transform:uppercase;color:#CFC6AC}
.foot-nav a:hover{color:var(--gold-2)}
.legal{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;margin-top:22px;font-size:15px;color:#9D957F;font-style:italic}
.legal a{color:#CFC6AC;margin-left:18px;font-style:normal}
.legal a:hover{color:#fff}

/* page hero (subpages) */
.page-hero{position:relative;overflow:hidden;background:var(--teal);color:var(--cream);padding:clamp(60px,8vw,110px) 0 clamp(50px,6vw,80px)}
.page-hero .tex{position:absolute;inset:0;background:url(assets/p-silk.webp) center/cover;opacity:.18;filter:saturate(.9)}
.page-hero .tex.city{background-image:url(assets/p-skyline.webp);background-position:center 30%}
.page-hero .tex.sari{background-image:url(assets/p-sari.webp)}
.page-hero .veil{position:absolute;inset:0;background:linear-gradient(180deg,rgba(1,45,48,.4),rgba(1,45,48,.92) 70%)}
.page-hero .wrap{position:relative;z-index:1;text-align:center}
.page-hero h1{font-size:clamp(34px,5.4vw,72px);margin-top:14px;color:#fff;font-weight:800;letter-spacing:.06em}
.page-hero .lead{margin:18px auto 0;color:#D9D2C0;max-width:64ch}
.crumb{font-family:var(--caps);font-weight:600;font-size:11px;letter-spacing:.26em;text-transform:uppercase;color:#CFC6AC;display:inline-flex;gap:10px}
.crumb a:hover{color:var(--gold-2)}

/* directory */
.dir-tools{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:12px;margin:-42px 0 40px;position:relative;z-index:2}
@media(max-width:1000px){.dir-tools{grid-template-columns:1fr 1fr;margin-top:24px}}
@media(max-width:560px){.dir-tools{grid-template-columns:1fr}}
.dir-tools input,.dir-tools select{width:100%;padding:15px 16px;background:var(--ivory);border:1px solid var(--gold);font-size:17px;box-shadow:0 20px 40px -30px rgba(23,35,58,.5)}
.dir-tools input:focus,.dir-tools select:focus{outline:0;box-shadow:0 0 0 4px rgba(201,162,74,.2)}
.dir-meta{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:22px;font-family:var(--caps);font-weight:600;font-size:12px;letter-spacing:.22em;text-transform:uppercase;color:var(--gold-3)}
.dir-meta .pill{display:inline-flex;align-items:center;gap:8px;padding:7px 12px;background:var(--teal);color:var(--gold-2);font-size:11px;letter-spacing:.14em}
.dir-meta .pill button{background:none;border:0;color:var(--gold-2);cursor:pointer;font-size:16px;line-height:1}
.dir-meta .clear{margin-left:auto;background:none;border:0;cursor:pointer;color:var(--navy);font-family:var(--caps);font-weight:700;font-size:11.5px;letter-spacing:.22em;text-transform:uppercase}
.ex-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(16px,2vw,24px)}
@media(max-width:1000px){.ex-grid{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.ex-grid{grid-template-columns:1fr}}
.ex{display:block;background:var(--ivory);border:1px solid var(--line);padding:26px 24px 62px;position:relative;transition:transform .4s var(--ease),box-shadow .4s,border-color .3s;min-height:100%}
.ex::before{content:"";position:absolute;inset:6px;border:1px solid rgba(201,162,74,.25);pointer-events:none}
.ex:hover{transform:translateY(-5px);box-shadow:0 40px 60px -40px rgba(23,35,58,.5);border-color:var(--gold)}
.ex .top{display:flex;align-items:center;gap:14px}
.mono{width:58px;height:58px;flex:0 0 58px;display:grid;place-items:center;font-family:var(--caps);font-weight:800;font-size:20px;color:var(--gold-2);background:var(--teal);box-shadow:inset 0 0 0 1px var(--gold)}
.mono.c1{background:var(--navy)}.mono.c2{background:var(--emerald)}.mono.c3{background:var(--magenta)}
.ex h3{font-size:19px;line-height:1.15;letter-spacing:.02em}
.ex .ov{font-style:italic;font-size:16px;color:var(--gold-3);margin-top:4px}
.ex p{font-size:17px;color:var(--muted);margin-top:14px;line-height:1.4;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
.tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:14px}
.tag{font-family:var(--caps);font-size:10px;letter-spacing:.12em;text-transform:uppercase;padding:5px 9px;background:var(--cream-2);color:var(--ink);border:1px solid rgba(143,111,39,.2)}
.tag.hit{background:var(--gold-2);border-color:var(--gold)}
.ex .more{position:absolute;right:22px;bottom:20px;font-family:var(--caps);font-weight:700;font-size:10.5px;letter-spacing:.24em;text-transform:uppercase;color:var(--gold-3)}
.empty{padding:50px 20px;text-align:center;color:var(--muted);grid-column:1/-1}
.empty b{font-family:var(--disp);font-size:24px;display:block;color:var(--ink);margin-bottom:6px}

/* profile */
.profile-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:clamp(24px,3vw,48px);align-items:start}
.profile-grid .main{grid-column:1/span 8}
.profile-grid .aside{grid-column:9/span 4}
@media(max-width:900px){.profile-grid{grid-template-columns:1fr}.profile-grid .main,.profile-grid .aside{grid-column:auto}}
.pblock{padding:26px 0;border-bottom:1px solid var(--line)}
.pblock h3{font-size:20px;margin-bottom:12px;letter-spacing:.08em}
.pblock p{color:var(--muted)}
.aside .card{background:var(--ivory);padding:28px;border:1px solid var(--gold);position:relative}
.aside .card::before{content:"";position:absolute;inset:6px;border:1px solid rgba(201,162,74,.35);pointer-events:none}
.aside .card h3{font-size:20px;margin-bottom:14px;letter-spacing:.08em}
.aside dl{display:grid;grid-template-columns:auto 1fr;gap:8px 14px;font-size:17px}
.aside dt{font-family:var(--caps);font-weight:600;font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--gold-3);padding-top:4px}
.aside dd{color:var(--ink)}
.aside .btn{margin-top:22px;width:100%}
.phead{display:flex;align-items:center;justify-content:center;gap:20px;flex-wrap:wrap}
.phead .mono{width:80px;height:80px;flex-basis:80px;font-size:28px}

/* index pages */
.idx-tabs{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin-bottom:34px}
.idx-tabs a{font-family:var(--caps);font-weight:700;font-size:12px;letter-spacing:.22em;text-transform:uppercase;padding:12px 20px;border:1px solid var(--gold);color:var(--gold-3)}
.idx-tabs a.on{background:var(--teal);color:var(--gold-2)}
.idx-list{columns:3;column-gap:32px}
@media(max-width:900px){.idx-list{columns:2}}
@media(max-width:560px){.idx-list{columns:1}}
.idx-list a{display:flex;justify-content:space-between;gap:10px;padding:11px 0;border-bottom:1px solid rgba(143,111,39,.2);break-inside:avoid;font-size:18px}
.idx-list a:hover{color:var(--gold-3)}
.idx-list a b{font-family:var(--caps);font-weight:700;color:var(--gold);font-size:14px}
.idx-head{text-align:center;margin-bottom:30px}
.idx-head h3{font-size:26px;letter-spacing:.1em}
.idx-head .count{font-family:var(--caps);font-weight:600;font-size:12px;letter-spacing:.26em;text-transform:uppercase;color:var(--gold-3);display:block;margin-top:8px}
.idx-head p{margin-top:10px;color:var(--muted);font-style:italic}

/* legal */
.legal-body{max-width:78ch;margin:0 auto}
.legal-body h3{margin:36px 0 10px;font-size:22px;letter-spacing:.06em}
.legal-body h4{font-family:var(--caps);font-size:16px;margin:22px 0 6px;letter-spacing:.06em}
.legal-body p{color:var(--muted);margin-top:10px}
.legal-body ul{margin:8px 0 0 20px;color:var(--muted)}
.legal-body .meta{font-family:var(--caps);font-weight:600;font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--gold-3)}

/* ================= immersive sections ================= */
.immersive{position:relative;overflow:hidden}
.immersive .bg{position:absolute;inset:-14% 0;background:var(--img) center/cover no-repeat;will-change:transform;z-index:0}
.immersive .bg.blur{filter:brightness(.62) saturate(1.1);transform:scale(1.06)}
.immersive .veil{position:absolute;inset:0;z-index:1}
.immersive .wrap{position:relative;z-index:3}
.sweep{position:absolute;top:-30%;bottom:-30%;left:-40%;width:22%;z-index:2;background:linear-gradient(90deg,transparent,rgba(255,232,180,.55) 50%,transparent);mix-blend-mode:screen;transform:skewX(-18deg) translateX(-200%);pointer-events:none}
.in>.sweep,.in .sweep{animation:beam 2.4s cubic-bezier(.5,0,.3,1) .35s forwards}
.tex-bg{position:absolute;inset:-12% 0;background:url(assets/p-silk.webp) center/cover;opacity:.14;pointer-events:none;will-change:transform;z-index:0;mask-image:linear-gradient(to bottom,transparent,#000 20%,#000 80%,transparent);-webkit-mask-image:linear-gradient(to bottom,transparent,#000 20%,#000 80%,transparent)}
.tex-bg.sari{background-image:url(assets/p-sari.webp)}
.tex-bg.trees{background-image:url(assets/p-trees.webp);opacity:.3;mask-image:none;-webkit-mask-image:none}
.about,.stalls,.register{position:relative;overflow:hidden}
.about .wrap,.stalls .wrap,.register .wrap,.footer .wrap{position:relative;z-index:1}
.rv{transform:translateY(40px) scale(.985)}
.rv.in{transform:none}

/* stats: silk room */
.stats{color:var(--cream);padding:clamp(96px,11vw,150px) 0}
.stats .veil{background:linear-gradient(90deg,rgba(12,22,38,.9),rgba(70,18,50,.72) 50%,rgba(12,22,38,.9))}
.stats .wrap{display:grid;grid-template-columns:repeat(4,1fr)}
.stat b{font-size:clamp(64px,8vw,136px)}
.stat b.celeb{background-image:linear-gradient(105deg,#F2A03A,#FFE39A 45%,#F2A03A 70%,#E8792B)}
.stat b small{color:#FFE39A}
.stat span{color:#FFF2D2}
.stat+.stat::before{background:rgba(255,220,150,.28)}
.stat i{background:var(--gold-2);width:56px}

/* about: giant arch */
.about{background:var(--cream)}
.about .visual{grid-column:1/span 6}
.about .text{grid-column:8/span 5}
@media(max-width:900px){.about .visual,.about .text{grid-column:auto}}
.arch-frame.big{aspect-ratio:4/5.2;position:relative;z-index:0}
.arch-frame.big .arch{position:absolute;inset:0}
.arch-frame.big .arch img{height:114%;object-fit:cover;will-change:transform}
.arch-frame.big .cap{position:absolute;left:0;right:0;bottom:0;padding:34px 26px 38px;text-align:center;color:var(--cream);background:linear-gradient(to top,rgba(1,45,48,.95),transparent)}
.arch-frame.big .cap b{display:block;font-family:var(--disp);font-size:clamp(24px,2vw,30px);line-height:1.05}
.arch-frame.big .cap span{font-style:italic;color:#F0E6CC;font-size:18px}
.arch-frame.big .line path{stroke-width:2}
.about h2{font-size:clamp(50px,6.6vw,96px)}

/* attend: skyline room */
.attend{color:var(--cream)}
.attend .veil{background:linear-gradient(90deg,rgba(8,20,38,.92) 0%,rgba(8,20,38,.72) 55%,rgba(8,20,38,.35))}
.attend .text{grid-column:1/span 5}
.attend .visual{grid-column:7/span 6}
@media(max-width:900px){.attend .text,.attend .visual{grid-column:auto}}
.attend h2{color:#fff;font-size:clamp(50px,6.6vw,96px)}
.attend .lead{color:#EAE1CB}
.attend .invite{background:var(--ivory);color:var(--ink)}
.attend .invite p{color:var(--muted)}
.attend .arch-frame.big .ashadow{background:rgba(0,0,0,.6)}

/* highlights: saffron room */
.highlights{background:linear-gradient(120deg,#B8551A 0%,#E8792B 48%,#F2A03A 100%);color:var(--navy)}
.highlights::before{content:"";position:absolute;inset:0;background:radial-gradient(60% 80% at 85% 10%,rgba(255,230,170,.45),transparent 60%),radial-gradient(50% 60% at 10% 100%,rgba(122,30,76,.45),transparent 60%);pointer-events:none}
.highlights .sec-head .caps{color:#3A1B05}
.highlights h2{color:#2A1404;font-size:clamp(50px,6.6vw,96px)}
.highlights .lead{color:#3A1B05}
.highlights .hl{background:var(--ivory);border-color:rgba(255,255,255,.6);box-shadow:0 30px 60px -30px rgba(80,30,0,.6)}
.highlights .hl:nth-child(1) .ico{background:var(--navy)}
.highlights .hl:nth-child(2) .ico{background:var(--magenta)}
.highlights .hl:nth-child(3) .ico{background:var(--emerald)}
.highlights .hl .ico{box-shadow:0 0 0 1px var(--gold),0 0 0 6px var(--ivory),0 0 0 7px rgba(201,162,74,.5),0 18px 30px -12px rgba(0,0,0,.4)}
.highlights .hl h3{font-size:clamp(26px,2.2vw,32px)}

/* stalls: vivid arch-topped cards */
.stalls{background:var(--cream)}
.stall{border:1px solid var(--gold);background:var(--ivory);box-shadow:0 30px 60px -30px rgba(23,35,58,.45)}
.stall::before{display:none}
.stall .tex{height:250px;margin:14px 14px 0;clip-path:url(#archclip);background-size:cover;background-position:center 30%}
.stall .tex::after{background:linear-gradient(to top,rgba(252,248,238,1) 8%,rgba(252,248,238,0) 60%)}
.stall .tex b{bottom:18px;font-size:12px;color:var(--saffron-ink)}
.stall .body{padding:10px 30px 36px}
.stall h3{font-size:clamp(28px,2.3vw,34px)}
.stall-grid{padding-top:20px}

/* book */
.book .bgimg{opacity:.55;width:60%}
.book .veil{display:none}

/* register + downloads + footer depth */
.register{background:var(--cream-2)}
.card-form{box-shadow:0 50px 90px -50px rgba(23,35,58,.55)}
.step b{font-size:52px}
.doc{background:var(--ivory);box-shadow:0 30px 60px -36px rgba(23,35,58,.35)}
.tilt{transition:transform .5s var(--ease),box-shadow .5s,filter .5s}
.zone:hover{transform:translateY(-8px)}
.zone .arch .tex{opacity:.42;filter:saturate(.9)}
.zones{position:relative;overflow:hidden}
.zones .wrap{position:relative;z-index:1}
.zones::before{content:"";position:absolute;inset:-10% 0;background:url(assets/p-sari.webp) center/cover;opacity:.12;pointer-events:none;mask-image:linear-gradient(to bottom,transparent,#000 25%,#000 75%,transparent);-webkit-mask-image:linear-gradient(to bottom,transparent,#000 25%,#000 75%,transparent)}

/* mandala + petals */
.stage .mandala{position:absolute;left:50%;top:50%;width:min(98vw,1000px);aspect-ratio:1;transform:translate(-50%,-52%);background:url(assets/p-mandala.webp) center/contain no-repeat;opacity:0;mix-blend-mode:screen;z-index:2;animation:mandalaIn 3s ease 1.2s forwards,mandalaSpin 180s linear infinite;filter:drop-shadow(0 0 10px rgba(255,214,120,.4))}
@keyframes mandalaIn{to{opacity:.68}}
@keyframes mandalaSpin{to{transform:translate(-50%,-52%) rotate(360deg)}}
.petals{position:absolute;inset:0;z-index:4;pointer-events:none;overflow:hidden}
.petals.front{z-index:6}
.petals i{position:absolute;top:-16%;left:var(--x);width:var(--s);aspect-ratio:1;background:var(--img) center/contain no-repeat;opacity:0;animation:fall var(--d) linear var(--delay) infinite;filter:drop-shadow(0 8px 10px rgba(0,0,0,.25));will-change:transform}
.petals.front i{filter:blur(1.6px) drop-shadow(0 14px 16px rgba(0,0,0,.3))}
@keyframes fall{0%{opacity:0;transform:translate3d(0,0,0) rotate(0deg)}7%{opacity:.95}50%{transform:translate3d(calc(var(--sw) * -.6),58vh,0) rotate(calc(var(--r) * .5))}93%{opacity:.9}100%{opacity:0;transform:translate3d(var(--sw),118vh,0) rotate(var(--r))}}
.highlights::after{content:"";position:absolute;right:-16%;top:-34%;width:min(72vw,900px);aspect-ratio:1;background:url(assets/p-mandala.webp) center/contain no-repeat;opacity:.28;filter:brightness(2.2);animation:mandalaSpin2 220s linear infinite;pointer-events:none}
@keyframes mandalaSpin2{to{transform:rotate(-360deg)}}
.footer .mandala-bg{position:absolute;left:50%;bottom:-38%;width:min(92vw,1100px);aspect-ratio:1;transform:translateX(-50%);background:url(assets/p-mandala.webp) center/contain no-repeat;opacity:.13;animation:mandalaSpin3 260s linear infinite;pointer-events:none}
@keyframes mandalaSpin3{to{transform:translateX(-50%) rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.petals i{animation:none;opacity:0}.stage .mandala{animation:mandalaIn 1s ease forwards}}
@media(max-width:900px){.petals.front{display:none}.stage .mandala{width:130vw}}

/* ================= continuous life ================= */
.in .sweep{animation:beamLoop 13s cubic-bezier(.5,0,.3,1) .35s infinite}
@keyframes beamLoop{0%{transform:skewX(-18deg) translateX(-200%)}17%{transform:skewX(-18deg) translateX(760%)}100%{transform:skewX(-18deg) translateX(760%)}}
.immersive .bg{background:none}
.immersive .bg::before{content:"";position:absolute;inset:0;background:var(--img) center/cover no-repeat;animation:kbslow 34s ease-in-out infinite alternate}
@keyframes kbslow{from{transform:scale(1)}to{transform:scale(1.09)}}
.sparkles{position:absolute;inset:0;pointer-events:none;z-index:2;overflow:hidden}
.sparkles .star{width:5px;height:5px;box-shadow:0 0 10px 3px rgba(255,226,150,.8)}
.float{animation:bob var(--bd,7s) ease-in-out infinite alternate}
.float:nth-child(2){--bd:8.5s;animation-delay:-2s}.float:nth-child(3){--bd:7.6s;animation-delay:-4s}.float:nth-child(4){--bd:9s;animation-delay:-1s}.float:nth-child(5){--bd:8s;animation-delay:-3s}
@keyframes bob{from{translate:0 0}to{translate:0 -10px}}
/* pillars breathe and drift */
.pillars{background:var(--cream)}
.pillars .bgimg{position:absolute;inset:-8% 0;background:var(--cream) url(assets/p-band.webp) center bottom/cover no-repeat;will-change:transform;z-index:0}
.pillars .bgimg::after{content:"";position:absolute;inset:0;background:inherit;animation:kbslow 40s ease-in-out infinite alternate;transform-origin:50% 80%}
.pillars .blend,.pillars .fade{z-index:1}
.pillars .sweep{z-index:1}
.pillar img{animation:iconGlow 4s ease-in-out infinite alternate}
@keyframes iconGlow{from{filter:drop-shadow(0 0 6px rgba(201,162,74,.2))}to{filter:drop-shadow(0 0 16px rgba(255,214,120,.75))}}
@media(max-width:900px){.pillars{background:#0B3C3E}.pillars .bgimg{inset:0;bottom:auto;height:calc(100vw / 2.25 + 8px);background:url(assets/p-band.webp) center top/100% auto no-repeat}.pillars .bgimg::after{display:none}}
/* stats numerals pulse */
.stat b.celeb{animation:shimmer 7s linear infinite,numGlow 5s ease-in-out infinite alternate}
@keyframes numGlow{from{text-shadow:0 10px 24px rgba(255,190,90,.25)}to{text-shadow:0 12px 40px rgba(255,214,120,.6)}}
/* living arches */
.zone .arch .tex{animation:zoneDrift 26s ease-in-out infinite alternate}
.zone:nth-child(2) .arch .tex{animation-delay:-7s}.zone:nth-child(3) .arch .tex{animation-delay:-14s}.zone:nth-child(4) .arch .tex{animation-delay:-20s}
@keyframes zoneDrift{from{transform:scale(1) translateY(0)}to{transform:scale(1.12) translateY(-3%)}}
.zone .arch::before,.arch-frame.big .arch::before,.stall .tex::before{content:"";position:absolute;inset:-40% -70%;z-index:1;background:linear-gradient(100deg,transparent 42%,rgba(255,242,205,.32) 50%,transparent 58%);transform:translateX(-70%);animation:archSheen 9s ease-in-out infinite;pointer-events:none}
.zone:nth-child(2) .arch::before{animation-delay:2.2s}.zone:nth-child(3) .arch::before{animation-delay:4.4s}.zone:nth-child(4) .arch::before{animation-delay:6.6s}
.stall:nth-child(2) .tex::before{animation-delay:3s}.stall:nth-child(3) .tex::before{animation-delay:6s}
@keyframes archSheen{0%{transform:translateX(-70%)}30%,100%{transform:translateX(70%)}}
.arch-frame .line.glint path{stroke-dasharray:70 1330;stroke-dashoffset:1400;stroke:#FFF4D2;stroke-width:2.4;opacity:0;animation:none;filter:drop-shadow(0 0 6px rgba(255,214,120,1))}
.arch-frame.in .line.glint path{animation:glint 7s linear 2.4s infinite}
.zone .num{animation:numGlow2 4s ease-in-out infinite alternate}
@keyframes numGlow2{from{text-shadow:0 8px 30px rgba(0,0,0,.35)}to{text-shadow:0 8px 30px rgba(0,0,0,.35),0 0 26px rgba(255,230,170,.55)}}
/* highlights room breathes colour */
.highlights{background:linear-gradient(120deg,#B8551A 0%,#E8792B 40%,#F2A03A 70%,#E8792B 100%);background-size:220% 220%;animation:roomHue 22s ease-in-out infinite alternate}
@keyframes roomHue{from{background-position:0% 0%}to{background-position:100% 100%}}
.hl .ico::after{content:"";position:absolute;inset:-14px;border-radius:50%;border:1px solid rgba(201,162,74,.7);animation:ring 3.2s ease-out infinite;pointer-events:none}
.hl .ico{position:relative}
@keyframes ring{0%{transform:scale(.7);opacity:0}30%{opacity:.9}100%{transform:scale(1.25);opacity:0}}
/* stall windows drift */
.stall .tex::after{z-index:2}
.stall .tex .kbx{position:absolute;inset:0;background:inherit;animation:kbslow 32s ease-in-out infinite alternate}
/* book band */
.book .bgimg{animation:kbslow 38s ease-in-out infinite alternate;transform-origin:70% 50%}
.book .petals{z-index:1}
@media(prefers-reduced-motion:reduce){.float,.pillar img,.stat b.celeb,.zone .arch .tex,.highlights,.book .bgimg,.immersive .bg::before,.pillars .bgimg::after{animation:none}.sparkles,.zone .arch::before,.arch-frame.big .arch::before,.stall .tex::before{display:none}}
@media(max-width:900px){.sparkles,.book .petals{display:none}}

/* ================= scene photography ================= */
.zone .arch .tex{opacity:1;filter:saturate(1.05)}
.zone:nth-child(1) .arch .tex{background-image:url(assets/s-zone1-sm.webp)}
.zone:nth-child(2) .arch .tex{background-image:url(assets/s-zone2-sm.webp)}
.zone:nth-child(3) .arch .tex{background-image:url(assets/s-zone3-sm.webp)}
.zone:nth-child(4) .arch .tex{background-image:url(assets/s-zone4-sm.webp)}
.zone:hover .arch .tex{opacity:1}
.zone .arch::after{background:linear-gradient(to top,rgba(var(--zc),.97) 24%,rgba(var(--zc),.6) 46%,rgba(var(--zc),0) 70%)}
.zone .num{padding-top:18%}
.zone{aspect-ratio:3/4.9}
.hl{padding:0 0 34px}
.hl .win{position:relative;height:240px;margin:12px 12px 0;clip-path:url(#archclip);overflow:hidden;background:var(--cream-2)}
.hl .win img{width:100%;height:100%;object-fit:cover;object-position:center 40%;animation:kbslow 30s ease-in-out infinite alternate}
.hl .win::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(252,248,238,.9),transparent 45%)}
.hl .ico{margin:-52px auto 16px;position:relative;z-index:2;width:96px;height:96px}
.hl h3,.hl p{padding:0 24px}
.stall:nth-child(1) .tex{background-image:url(assets/s-stall-ready-sm.webp);background-position:center 45%}
.stall:nth-child(2) .tex{background-image:url(assets/s-stall-bare-sm.webp);background-position:center 45%}
.stall:nth-child(3) .tex{background-image:url(assets/s-stall-pavilion-sm.webp);background-position:center 40%}
.stall .tex{height:270px}
.stall .tex::after{background:linear-gradient(to top,rgba(252,248,238,1) 4%,rgba(252,248,238,0) 45%)}
.page-hero .tex.scene{opacity:.5;filter:saturate(1.05)}
.page-hero .veil{background:linear-gradient(180deg,rgba(1,45,48,.45),rgba(1,45,48,.9) 75%)}

.scroll-cue{position:absolute;left:50%;bottom:22px;transform:translateX(-50%);z-index:6;font-family:var(--caps);font-weight:700;font-size:10px;letter-spacing:.32em;text-transform:uppercase;color:var(--gold-3);display:flex;flex-direction:column;align-items:center;gap:8px;opacity:0;animation:fade 1s ease 3.2s forwards}
.scroll-cue i{width:1px;height:34px;background:linear-gradient(to bottom,var(--gold),transparent);display:block;animation:cue 1.8s ease-in-out infinite}
@keyframes cue{0%{transform:scaleY(0);transform-origin:top}50%{transform:scaleY(1);transform-origin:top}51%{transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}
@media(max-width:900px){.scroll-cue{display:none}}
.ex h3{font-size:21px}
.nav .links a.active{color:var(--saffron-ink)}

/* final polish */
.step b.gold{background-image:linear-gradient(105deg,#B5561A,#E8792B 50%,#B5561A)}
@media(max-height:840px) and (min-width:901px){
  .hero{padding-top:34px;padding-bottom:70px}
  .h-grid{width:min(100% - 2*var(--gutter),470px,calc((100svh - 190px) * .8))}
  .hcenter{padding:10% 8% 8%}
  .hcenter .lockup{width:46%}
  .hcenter .unite{font-size:clamp(24px,2.2vw,30px);margin-top:10px}
  .hcenter .when{font-size:11px;line-height:1.7;margin-top:10px}
  .hcenter .when br{display:none}
  .hcenter .when b{margin-right:12px}
  .hcenter .btn-row{margin-top:14px;gap:8px}
  .hcenter .btn{padding:13px 18px;font-size:11.5px}
  .hcenter .countdown{display:none}
  .scroll-cue{display:none}
}

/* ================= mobile + weight ================= */
@media(max-width:900px){
  .pillars .bgimg{background-image:url(assets/p-band-sm.webp)}
  .florals::before{background-image:url(assets/p-floral-l-sm.webp)}
  .florals::after{background-image:url(assets/p-floral-r-sm.webp)}
  .stage .mandala{background-image:url(assets/p-mandala-sm.webp)}
  .mobile-menu::before{background-image:url(assets/p-floral-l-sm.webp)}
  .highlights::after,.footer .mandala-bg{display:none}
  .immersive .bg::before,.pillars .bgimg::after,.book .bgimg,.hl .win img,.stall .tex .kbx{animation:none}
  .stage .beam{display:none}
  .half.l .kb,.half.r .kb{animation-duration:40s}
}
@media(max-width:560px){
  h2{font-size:clamp(36px,10.5vw,44px)}
  .sec{padding:70px 0}
  .lead{font-size:19px}
  .stat b{font-size:56px}
  .hcenter .unite{font-size:26px}
  .hcenter .lockup{width:64%}
  .ticker{font-size:11px;letter-spacing:.2em}
  .zone{aspect-ratio:3/4.2}
  .arch-frame.big{aspect-ratio:4/4.6}
  .hl .win{height:200px}
  .stall .tex{height:220px}
  .foot-nav{gap:4px 16px}
}
.ex[hidden]{display:none}

/* ================= calmer top + live counter ================= */
.nav .wrap{min-height:78px}
.brand img{height:50px}
.links a{font-size:12px;letter-spacing:.12em;padding:10px 10px}
.counter{display:flex;align-items:flex-start;justify-content:center;gap:clamp(4px,.8vw,10px);margin-top:clamp(12px,1.6vw,20px);opacity:0;animation:up 1s var(--ease-out) 2.5s forwards}
.counter>div{text-align:center;min-width:54px}
.counter b{display:block;font-family:var(--disp);font-weight:400;font-size:clamp(30px,3.1vw,44px);line-height:1;color:var(--navy);font-variant-numeric:tabular-nums}
.counter span{display:block;font-family:var(--caps);font-weight:700;font-size:9.5px;letter-spacing:.24em;text-transform:uppercase;color:var(--saffron-ink);margin-top:7px}
.counter i{font-style:normal;font-family:var(--disp);font-size:clamp(22px,2.4vw,34px);color:var(--gold);line-height:1;padding-top:6px}
.counter.open>*{display:none}
.counter.open::after{content:"Doors are open";font-family:var(--disp);font-size:clamp(24px,2.4vw,32px);color:var(--navy)}
.hcenter .when{margin-top:12px;font-family:var(--caps);font-weight:700;font-size:11.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--saffron-ink);line-height:1.6;opacity:0;animation:up 1s var(--ease-out) 2.65s forwards}
.hcenter .when i{font-style:normal;color:var(--gold);margin:0 6px}
.hcenter .btn-row{margin-top:clamp(14px,1.8vw,22px)}
.browse-by{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px;margin:0 0 18px;position:relative;z-index:2;font-family:var(--caps);font-weight:700;font-size:11px;letter-spacing:.22em;text-transform:uppercase}
.browse-by span{color:var(--muted)}
.browse-by a{color:var(--saffron-ink);border-bottom:1px solid var(--gold);padding-bottom:2px}
.browse-by a:hover{color:var(--navy)}
@media(max-height:840px) and (min-width:901px){.counter b{font-size:26px}.counter i{font-size:20px}.hcenter .when{font-size:10.5px}}
@media(max-width:560px){.counter>div{min-width:46px}.counter b{font-size:28px}.hcenter .when{font-size:10.5px;letter-spacing:.14em}}

/* ================= agenda ================= */
.agenda{background:var(--cream);position:relative;overflow:hidden}
.agenda .wrap{position:relative;z-index:1}
.days{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(16px,2.2vw,30px)}
@media(max-width:1000px){.days{grid-template-columns:1fr}}
.day{background:var(--ivory);border:1px solid var(--gold);position:relative;padding:26px 26px 22px;box-shadow:0 30px 60px -36px rgba(23,35,58,.35)}
.day::before{content:"";position:absolute;inset:6px;border:1px solid rgba(201,162,74,.35);pointer-events:none}
.dhead{display:flex;align-items:center;gap:16px;padding-bottom:18px;border-bottom:1px solid var(--line);margin-bottom:8px}
.dhead b{font-family:var(--disp);font-size:clamp(56px,5vw,72px);line-height:1}
.dhead .caps{font-size:11px;color:var(--saffron-ink);display:block}
.dhead h3{font-size:24px;margin-top:4px}
.dhead em{display:block;font-style:italic;color:var(--muted);font-size:17px;margin-top:2px}
.day ul{list-style:none}
.day li{display:grid;grid-template-columns:52px 1fr;gap:12px;padding:13px 0;border-bottom:1px solid rgba(143,111,39,.16);align-items:start}
.day li:last-child{border-bottom:0}
.day time{font-family:var(--caps);font-weight:700;font-size:12px;letter-spacing:.1em;color:var(--navy);padding-top:4px}
.day li b{display:block;font-weight:600;font-size:18px;line-height:1.25;color:var(--ink)}
.day li span{display:block;font-size:16px;color:var(--muted);font-style:italic;margin-top:2px}
.day .k{display:inline-block;margin-top:7px;font-family:var(--caps);font-style:normal;font-weight:700;font-size:9.5px;letter-spacing:.2em;text-transform:uppercase;padding:4px 8px;color:#fff;background:var(--navy)}
.day .k.brk{background:var(--saffron-ink)}.day .k.meet{background:var(--emerald)}.day .k.key{background:var(--magenta)}.day .k.demo{background:var(--navy)}
/* floating registration CTA */
.float-cta{position:fixed;right:22px;bottom:22px;z-index:59;display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:12px 18px 11px;background:var(--btngrad);background-size:200% 100%;color:#1B1200;box-shadow:0 18px 40px -14px rgba(217,100,30,.7);transform:translateY(120px);opacity:0;transition:transform .5s var(--ease),opacity .4s,background-position .6s}
.float-cta span{font-family:var(--caps);font-weight:800;font-size:12px;letter-spacing:.2em;text-transform:uppercase}
.float-cta b{font-family:var(--caps);font-weight:700;font-size:9.5px;letter-spacing:.18em;text-transform:uppercase;color:#4a2a08}
.float-cta em{font-style:normal;font-family:var(--disp);font-size:14px;color:#1B1200;margin-right:2px}
.float-cta:hover{background-position:100% 0}
body.past-hero:not(.at-register) .float-cta{transform:none;opacity:1}
.menu-open .float-cta{display:none}
@media(max-width:900px){.float-cta{left:0;right:0;bottom:0;flex-direction:row;justify-content:center;align-items:center;gap:14px;padding:14px 16px calc(14px + env(safe-area-inset-bottom));box-shadow:0 -10px 30px -10px rgba(0,0,0,.35)}.float-cta b{font-size:10px}}

/* ================= fixes: ghost buttons on dark, counter weight, stats on phones ================= */
.dark .btn.ghost,.book .btn.ghost,.footer .btn.ghost,.mobile-menu .btn.ghost,.attend .btn.ghost,.stats .btn.ghost,.pillars .btn.ghost{color:var(--gold-2);background:rgba(255,255,255,.05)}
.dark .btn.ghost:hover,.book .btn.ghost:hover,.footer .btn.ghost:hover,.mobile-menu .btn.ghost:hover{background:rgba(255,255,255,.12);color:#fff}
.hcenter .btn.ghost{color:var(--navy)}
.counter{width:100%;padding:14px 0 12px;margin-top:clamp(14px,1.8vw,22px);border-top:1px solid var(--gold);border-bottom:1px solid var(--gold);gap:clamp(6px,1vw,14px);position:relative}
.counter::before,.counter::after{content:"";position:absolute;left:50%;width:9px;height:9px;background:var(--gold);transform:translate(-50%,-50%) rotate(45deg)}
.counter::before{top:0}.counter::after{top:100%}
.counter>div{min-width:60px}
.counter b{font-size:clamp(40px,4.3vw,62px);background:var(--celeb);background-size:200% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:shimmer 6s linear infinite;text-shadow:0 8px 24px rgba(232,121,43,.18)}
.counter span{font-size:10px;color:var(--navy);margin-top:6px;letter-spacing:.26em}
.counter i{font-size:clamp(28px,3vw,44px);color:var(--gold);padding-top:8px}
.counter [data-unit="s"]{animation:secpulse 1s ease-in-out infinite}
@keyframes secpulse{0%,100%{opacity:1}50%{opacity:.72}}
.hcenter{aspect-ratio:4/4.9}
@media(max-height:840px) and (min-width:901px){.counter b{font-size:34px}.counter i{font-size:24px}.counter{padding:10px 0 8px}}
@media(max-width:820px){.stats .wrap{grid-template-columns:1fr 1fr;row-gap:8px}.stat{padding:18px 6px}.stat b{font-size:clamp(44px,12vw,56px);white-space:nowrap}.stat:nth-child(3)::before{display:none}}
@media(max-width:560px){.counter>div{min-width:52px}.counter b{font-size:34px}.counter i{font-size:24px;padding-top:6px}.counter span{font-size:9px;letter-spacing:.18em}}

/* ================= bulletproof outline buttons + nav stacking ================= */
.btn.ghost,.dark .btn.ghost,.book .btn.ghost,.footer .btn.ghost,.mobile-menu .btn.ghost,.attend .btn.ghost,.hcenter .btn.ghost{background:rgba(252,248,238,.94);color:var(--navy);box-shadow:inset 0 0 0 2px var(--gold),0 10px 26px -14px rgba(0,0,0,.35)}
.btn.ghost::before{border-color:rgba(201,162,74,.35)}
.btn.ghost:hover,.dark .btn.ghost:hover,.book .btn.ghost:hover,.footer .btn.ghost:hover,.mobile-menu .btn.ghost:hover{background:#fff;color:var(--navy)}
.nav{isolation:isolate}
.nav.scrolled{background:rgba(247,240,225,.985)}
.nav .wrap{position:relative;z-index:2}
.nav-cta .btn{position:relative;z-index:3}
.topbar{z-index:62}

/* ================= countdown strip ================= */
.cdbar{background:linear-gradient(180deg,#0A3D40,#012D30);color:var(--cream);position:relative;overflow:hidden;border-top:1px solid rgba(230,203,123,.35);border-bottom:1px solid rgba(230,203,123,.35);padding:clamp(26px,3.2vw,44px) 0}
.cdbar .tex-bg{opacity:.16;mask-image:none;-webkit-mask-image:none}
.cdbar .wrap{position:relative;z-index:3;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:clamp(20px,3vw,48px)}
.cd-left .caps{display:block;color:#F2A03A;font-size:11.5px;margin-bottom:8px}
.cd-left b{display:block;font-family:var(--disp);font-weight:400;font-size:clamp(22px,1.9vw,28px);line-height:1.05;color:#fff}
.cd-left .venue{display:block;font-style:italic;color:#D9D2C0;font-size:16px;margin-top:6px;max-width:30ch}
.counter.big{width:auto;padding:0;margin:0;border:0;justify-content:center;gap:clamp(8px,1.4vw,22px)}
.counter.big::before,.counter.big::after{display:none}
.counter.big>div{min-width:clamp(70px,7vw,120px);position:relative}
.counter.big b{font-size:clamp(58px,6.6vw,108px);line-height:1;background:linear-gradient(105deg,#F2A03A,#FFE39A 45%,#F2A03A 70%,#E8792B);background-size:200% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:shimmer 6s linear infinite;text-shadow:0 0 34px rgba(255,190,90,.35)}
.counter.big span{color:#F2E4C2;font-size:10.5px;letter-spacing:.3em;margin-top:8px}
.counter.big i{font-size:clamp(40px,4.4vw,72px);color:var(--gold);padding-top:0;line-height:1;align-self:flex-start;margin-top:clamp(4px,.6vw,10px)}
.counter.big.open::after{content:"Doors are open";font-size:clamp(34px,3.6vw,56px);color:#fff}
.cdbar .btn{white-space:nowrap}
@media(max-width:1100px){.cdbar .wrap{grid-template-columns:1fr 1fr;grid-template-areas:"left btn" "counter counter"}.cd-left{grid-area:left}.counter.big{grid-area:counter;justify-content:space-between;width:100%}.cdbar .btn{grid-area:btn;justify-self:end}}
@media(max-width:700px){.cdbar .wrap{grid-template-columns:1fr;grid-template-areas:"left" "counter" "btn";text-align:center}.cd-left .venue{margin-inline:auto}.counter.big{justify-content:center;gap:6px}.counter.big>div{min-width:0;flex:1}.counter.big b{font-size:clamp(40px,11vw,52px)}.counter.big i{font-size:30px;margin-top:4px}.counter.big span{font-size:9px;letter-spacing:.16em}.cdbar .btn{justify-self:stretch;width:100%}}

/* ================= prominent date in the arch ================= */
.hcenter .when{width:100%;margin-top:clamp(14px,1.8vw,22px);padding:12px 0 11px;border-top:1px solid var(--gold);border-bottom:1px solid var(--gold);position:relative;line-height:1.1}
.hcenter .when::before,.hcenter .when::after{content:"";position:absolute;left:50%;width:8px;height:8px;background:var(--gold);transform:translate(-50%,-50%) rotate(45deg)}
.hcenter .when::before{top:0}.hcenter .when::after{top:100%}
.hcenter .when b{display:block;font-family:var(--disp);font-weight:400;font-size:clamp(24px,2.3vw,32px);color:var(--navy);letter-spacing:.01em;text-transform:none}
.hcenter .when span{display:block;font-family:var(--caps);font-weight:800;font-size:11.5px;letter-spacing:.26em;text-transform:uppercase;color:var(--saffron-ink);margin-top:7px}
.hcenter{aspect-ratio:4/5.05}
@media(max-height:840px) and (min-width:901px){.hcenter .when{padding:8px 0 7px;margin-top:10px}.hcenter .when b{font-size:20px}.hcenter .when span{font-size:10px}}
@media(max-width:560px){.hcenter .when b{font-size:22px}.hcenter .when span{font-size:10px;letter-spacing:.18em}}

/* ================= date block: more air, saffron instead of navy ================= */
.hcenter .when{margin-top:clamp(22px,2.6vw,32px);padding:18px 0 16px}
.hcenter .when b{background:var(--celeb);background-size:200% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:shimmer 7s linear infinite;font-size:clamp(25px,2.4vw,34px)}
.hcenter .when span{color:var(--navy);margin-top:9px;letter-spacing:.3em}
.hcenter .btn-row{margin-top:clamp(22px,2.6vw,32px)}
.hcenter .unite{margin-top:clamp(14px,2vw,26px)}
.hcenter{aspect-ratio:4/5.3}
@media(max-height:840px) and (min-width:901px){.hcenter .when{padding:10px 0 9px;margin-top:14px}.hcenter .btn-row{margin-top:16px}}
@media(max-width:560px){.hcenter .when{padding:14px 0 12px;margin-top:18px}}

/* keep the legal row clear of the floating button */
.footer{padding-bottom:110px}
@media(max-width:900px){.footer{padding-bottom:calc(110px + env(safe-area-inset-bottom))}}

/* ================= SEO pass: skip link, FAQ, related exhibitors ================= */
.skip{position:fixed;left:16px;top:-60px;z-index:90;padding:12px 18px;background:var(--navy);color:#fff;font-family:var(--caps);font-weight:700;font-size:12px;letter-spacing:.2em;text-transform:uppercase;transition:top .2s}
.skip:focus{top:16px}
.faq{background:var(--cream-2);position:relative;overflow:hidden}
.faq .wrap{position:relative;z-index:1}
.qa-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(16px,2vw,28px)}
@media(max-width:900px){.qa-grid{grid-template-columns:1fr}}
.qa{background:var(--ivory);border:1px solid var(--line);padding:26px 28px;position:relative}
.qa::before{content:"";position:absolute;inset:6px;border:1px solid rgba(201,162,74,.3);pointer-events:none}
.qa h3{font-size:22px;line-height:1.15;color:var(--navy);padding-left:18px;position:relative}
.qa h3::before{content:"";position:absolute;left:0;top:10px;width:8px;height:8px;background:var(--saffron);transform:rotate(45deg)}
.qa p{margin-top:10px;font-size:18px;line-height:1.5;color:#3F3B33}
.related{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
@media(max-width:700px){.related{grid-template-columns:1fr}}
.related a{display:block;background:var(--ivory);border:1px solid var(--line);padding:16px 18px;transition:transform .35s var(--ease),border-color .3s}
.related a:hover{transform:translateY(-3px);border-color:var(--gold)}
.related b{display:block;font-family:var(--disp);font-weight:400;font-size:18px;line-height:1.15;color:var(--navy)}
.related span{display:block;font-style:italic;font-size:15px;color:var(--muted);margin-top:4px}

/* ================= rendering budget ================= */
.ashadow{position:absolute;inset:0;clip-path:url(#archclip);background:rgba(10,20,30,.5);transform:translateY(28px) scale(1.03);filter:blur(22px);z-index:-2;pointer-events:none}
.hframe .ashadow{z-index:-2}
/* phones and other touch devices: no live filters, blends, or extra layers */
@media(max-width:900px),(hover:none) and (pointer:coarse){
  .half,.half .kb,.tex-bg,.immersive .bg,.hframe,.pmove,.book .bgimg,.arch-frame.big .arch img,.attend .arch img,.petals i,.stage .mandala,.pillars .bgimg{will-change:auto}
  .half .kb,.immersive .bg::before,.pillars .bgimg::after,.book .bgimg,.hl .win img,.stall .tex .kbx,.zone .arch .tex,.hframe::before,.float,.hl .ico::after,.pillar img,.stat b.celeb,.counter b,.celeb,.gold,.lockup .sheen,.finial,.book .glow{animation:none!important}
  .stage .mandala,.stage canvas,.stage .beam,.sweep,.sparkles,.highlights::after,.footer .mandala-bg,.zone .arch::before,.arch-frame.big .arch::before,.stall .tex::before,.petals.front,.hframe::before{display:none!important}
  .petals i:nth-child(n+6){display:none}
  .petals i{filter:none}
  .ashadow{filter:none;background:rgba(10,20,30,.28);transform:translateY(14px) scale(1.01)}
  .hframe,.arch-frame.big,.zone,.side-text .orn,.finial,.pillar img,.stat b,.counter b,.orn{filter:none!important;text-shadow:none}
  .immersive .bg{inset:0}.immersive .bg.blur{transform:none;filter:none}
  .immersive .bg.blur::before{background-image:var(--img)}
  .attend .veil{background:linear-gradient(180deg,rgba(8,20,38,.9),rgba(8,20,38,.86))}
  .tex-bg{inset:0;mask-image:none;-webkit-mask-image:none;opacity:.1}
  .half.l,.half.r{mask-image:none;-webkit-mask-image:none}
  .half.l::after,.half.r::after{content:"";position:absolute;left:0;right:0;height:38%;pointer-events:none}
  .half.l::after{bottom:0;background:linear-gradient(to bottom,transparent,var(--cream))}
  .half.r::after{top:0;background:linear-gradient(to top,transparent,var(--cream))}
  .nav{backdrop-filter:none;-webkit-backdrop-filter:none;background:rgba(247,240,225,.97)}
  .stage .veil{background:linear-gradient(to bottom,rgba(10,20,30,.3),transparent 26%,transparent 62%,var(--cream) 96%)}
  .hl .win{clip-path:none;border-radius:6px}
}

@media(max-width:900px),(hover:none) and (pointer:coarse){
  .line.glint,.hframe .line.glint{display:none}
  .arch-frame .line.draw path,.hframe .line path{animation:none;stroke-dashoffset:0}
  .flame{width:40px;height:40px;margin:-20px 0 0 -20px}
}
