/* Original brand violet, quiet surfaces, and one consistent control radius. */
:root{color-scheme:dark;--bg:#101012;--surface:#18181b;--surface-2:#202024;--text:#f0f0ed;--muted:#a4a4ac;--line:#333338;--accent:#b5a0e3;--accent-text:#171021;--art-opacity:1;--logo-filter:grayscale(1) brightness(0) invert(.92);--font:'Manrope',sans-serif;--radius:4px}
@media(prefers-color-scheme:light){:root:not([data-theme="dark"]){color-scheme:light;--bg:#f2f2f0;--surface:#e9e9e7;--surface-2:#e0e0e0;--text:#18181b;--muted:#5c5c66;--line:#cdcdcf;--accent:#6945a5;--accent-text:#f8f6fc;--logo-filter:grayscale(1) brightness(.18)}}
:root[data-theme="light"]{color-scheme:light;--bg:#f2f2f0;--surface:#e9e9e7;--surface-2:#e0e0e0;--text:#18181b;--muted:#5c5c66;--line:#cdcdcf;--accent:#6945a5;--accent-text:#f8f6fc;--logo-filter:grayscale(1) brightness(.18)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font);font-size:15px;line-height:1.6;-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit}button,a,input,summary,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button,a{touch-action:manipulation}a{color:inherit;text-decoration:none}button{color:inherit}img{display:block;max-width:100%}button{background:none;border:0}p,h1,h2,h3{margin:0}button:disabled{opacity:.55;cursor:default}::selection{background:var(--accent);color:var(--accent-text)}:focus-visible{outline:2px solid var(--accent);outline-offset:5px}input:focus-visible,select:focus-visible,textarea:focus-visible{outline-offset:2px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}[hidden]{display:none!important}.container{max-width:1400px;margin-inline:auto;padding-inline:64px}.section-space{padding-top:108px;padding-bottom:108px}.eyebrow{font-family:var(--font);font-size:11px;letter-spacing:.13em;line-height:1.5;font-weight:700}.eyebrow span{padding:0 12px;color:var(--muted)}h1,h2,h3{font-weight:500}h2{font-size:clamp(34px,4.1vw,56px);line-height:1.09;letter-spacing:-.055em}h3{letter-spacing:-.035em}.section-intro{margin-top:23px;font-size:16px;line-height:1.7;color:var(--muted);max-width:490px}.section-heading>.eyebrow{margin-bottom:23px}.button{display:inline-flex;align-items:center;justify-content:center;gap:30px;padding:17px 23px;min-height:54px;border-radius:var(--radius);background:var(--accent);color:var(--accent-text);font-size:13px;font-weight:700;line-height:1.35;white-space:nowrap;transition:transform .2s,opacity .2s}.button:hover{transform:translateY(-3px);opacity:.9}.button:active{transform:translateY(0)}.button span{font-size:21px;font-weight:400}.button-small{padding:11px 18px;min-height:42px;gap:20px;font-size:12px}.text-link{display:inline-flex;align-items:center;gap:17px;min-height:44px;padding:0;font-size:13px;font-weight:600;text-align:left}.text-link span{font-size:20px;transition:transform .2s}.text-link:hover span{transform:translate(3px,-3px)}.text-link:hover{color:var(--accent)}.icon-button{display:inline-grid;place-items:center;min-width:44px;min-height:44px;font-size:23px;border-radius:var(--radius)}.icon-button:hover{background:var(--surface-2)}.skip-link{position:fixed;top:-100px;left:20px;background:var(--accent);color:var(--accent-text);padding:12px 20px;z-index:20}.skip-link:focus{top:8px}.site-header{position:sticky;top:0;z-index:10;background:var(--bg);border-bottom:1px solid var(--line)}.nav-wrap{max-width:1400px;margin:auto;padding:0 40px;height:80px;display:flex;align-items:center;justify-content:space-between;gap:24px}.brand{display:flex;align-items:center;gap:18px;flex-shrink:0}.brand img{width:auto;height:50px}.brand .brand-logo-dark{display:none}.desktop-nav{display:flex;align-items:center;gap:26px}.desktop-nav a{font-size:12px;color:var(--muted);padding-block:12px;transition:color .2s}.desktop-nav a:hover,.desktop-nav a[aria-current]{color:var(--text)}.nav-actions{display:flex;align-items:center;gap:9px}.theme-toggle{font-size:22px;color:var(--muted)}.menu-toggle{display:none}.mobile-nav{padding:15px 24px 24px;background:var(--bg);border-top:1px solid var(--line);position:absolute;top:79px;left:0;right:0;box-shadow:0 24px 32px #0003}.mobile-nav a{display:block;padding:12px 0;border-bottom:1px solid var(--line)}.mobile-nav .button{margin-top:20px}.source-note{color:var(--muted);font-size:10px;line-height:1.6}.speakers-section{background:var(--surface);border-block:1px solid var(--line)}.speaker-controls{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:42px;margin-bottom:31px}.filters{display:flex;gap:6px;flex-wrap:wrap}.filter-button{font-size:11px;font-weight:500;padding:10px 18px;min-height:40px;border:1px solid transparent;border-radius:100px;color:var(--muted);transition:background .2s}.filter-button:hover{color:var(--text);background:var(--surface-2)}.filter-button.active{border-color:var(--accent);color:var(--text)}.search-field{display:flex;align-items:center;border-bottom:1px solid var(--line);gap:8px;min-width:262px}.search-field>span{font-size:25px;color:var(--muted)}.search-field input{min-width:0;width:100%;background:transparent;border:0;padding:12px 2px;color:var(--text);font-size:11px;border-radius:0}.search-field input::placeholder{color:var(--muted)}.speaker-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px}.speaker-card{min-width:0;text-align:left;padding:0;display:block;width:100%}.speaker-portrait{aspect-ratio:1/1.05;position:relative;overflow:hidden;background:var(--surface-2);border-radius:var(--radius)}.speaker-portrait img{width:100%;height:100%;object-fit:contain;object-position:center bottom;filter:grayscale(1);transition:transform .45s,filter .3s}.speaker-card:hover .speaker-portrait img{filter:grayscale(0);transform:scale(1.045)}.speaker-info{display:grid;grid-template-columns:1fr auto;padding-top:20px;gap:8px 15px}.speaker-info h3{font-size:18px;line-height:1.25;letter-spacing:-.03em}.speaker-info>span{grid-column:2;font-size:21px;line-height:1}.speaker-info p{grid-column:1/-1;font-size:11px;line-height:1.65;color:var(--muted);max-width:220px;min-height:52px}.speaker-info p strong{color:var(--text);font-weight:500;display:block;margin-top:3px}.speaker-bottom{display:flex;justify-content:space-between;align-items:center;margin-top:28px;gap:20px}.speaker-bottom .text-link{border-bottom:1px solid var(--line)}.loading-copy,.empty-copy{grid-column:1/-1;padding:50px 0;color:var(--muted)}.empty-copy button{display:block;margin-top:15px;color:var(--accent)}.faq{display:grid;grid-template-columns:.9fr 1.2fr;gap:100px;border-top:1px solid var(--line)}.faq h2{font-size:36px;max-width:290px}.faq details{border-bottom:1px solid var(--line)}.faq summary{font-size:14px;cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:20px;padding:21px 0}.faq summary::-webkit-details-marker{display:none}.faq summary span{font-size:24px;color:var(--muted);font-weight:400}.faq details[open] summary span{transform:rotate(45deg)}.faq details p{color:var(--muted);font-size:13px;line-height:1.9;padding:0 25px 22px 0}.closing{padding-top:40px;padding-bottom:72px}.closing>p{font-size:12px;color:var(--muted);margin-bottom:22px}.closing>a{display:flex;justify-content:space-between;gap:30px;font-size:clamp(30px,4.8vw,68px);line-height:1.2;letter-spacing:-.055em;border-bottom:1px solid var(--accent);padding-bottom:28px}.closing>a>span{color:var(--accent)}.closing>a:hover{color:var(--accent)}dialog{background:var(--surface);color:var(--text);border:1px solid var(--line);border-radius:8px;width:min(540px,calc(100% - 32px));padding:42px;max-height:calc(100dvh - 40px);overflow:auto}dialog::backdrop{background:#07070bc9;backdrop-filter:blur(8px)}dialog .dialog-close{position:absolute;right:12px;top:10px;font-size:28px}dialog .eyebrow{font-size:9px;color:var(--accent);margin:6px 0 18px}dialog h2{font-size:35px;line-height:1.15;max-width:370px}.dialog-intro{color:var(--muted);font-size:12px;line-height:1.8;margin-top:16px}#interest-form{display:flex;flex-direction:column;margin-top:20px}#interest-form label{font-size:12px;margin:13px 0 6px}#interest-form label span{color:var(--muted);font-size:10px}input,textarea,select{padding:12px 13px;background:var(--bg);color:var(--text);border:1px solid var(--line);border-radius:var(--radius);font-size:13px}textarea{resize:vertical}input::placeholder,textarea::placeholder{color:var(--muted)}.recipient{font-size:10px;color:var(--muted);margin:18px 0}.form-note{font-size:10px;color:var(--muted);line-height:1.7;margin-top:12px}#email-status{font-size:12px;margin-top:13px;color:var(--accent)}#email-fallback{font-size:11px}#speaker-dialog{width:min(620px,calc(100% - 32px))}.speaker-detail-photo{width:160px;height:170px;background:var(--surface-2);object-fit:contain;object-position:bottom;border-radius:var(--radius);margin-bottom:25px}.speaker-detail-role{margin-top:20px;font-size:16px;color:var(--muted)}.speaker-detail-org{font-size:16px;margin-top:8px}.speaker-detail-note{margin-top:28px;padding-top:20px;border-top:1px solid var(--line);font-size:11px;color:var(--muted)}.speaker-detail-source{margin-top:18px;font-size:12px;text-decoration:underline;text-underline-offset:5px;display:inline-block}
@media(prefers-reduced-motion:no-preference){@keyframes hero-enter{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}}
@media(max-width:1150px){.container{padding-inline:40px}.nav-wrap{padding-inline:28px;gap:15px}.desktop-nav{gap:18px}.brand{gap:12px}.brand img{height:44px}.speaker-controls{align-items:flex-start}.search-field{min-width:230px}.speaker-grid{gap:17px}.speaker-info h3{font-size:16px}.faq{gap:60px}}
@media(max-width:900px){.desktop-nav{display:none}.menu-toggle{display:inline-grid}.nav-wrap{height:72px}.mobile-nav{top:71px}.speaker-controls{flex-direction:column;align-items:stretch}.search-field{max-width:350px}.speaker-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:30px 24px}.speaker-info h3{font-size:20px}.speaker-info p{min-height:0}.faq{grid-template-columns:1fr;gap:26px}.faq h2{max-width:none}}
@media(max-width:640px){html{scroll-padding-top:90px}.container{padding-inline:24px}.section-space{padding-block:66px}.nav-wrap{height:68px;padding-inline:20px;gap:8px}.brand img{height:40px}.nav-actions{gap:1px}.nav-cta{display:none}.mobile-nav{top:67px}h2{font-size:36px;letter-spacing:-.045em}.section-intro{font-size:14px;margin-top:19px}.speaker-controls{margin-top:30px;margin-bottom:26px;gap:20px}.filters{gap:3px}.filter-button{font-size:10px;padding:9px 11px}.speaker-grid{gap:27px 17px}.speaker-info{padding-top:15px;gap:7px}.speaker-info h3{font-size:16px}.speaker-info>span{font-size:17px}.speaker-info p{font-size:10px;line-height:1.7}.speaker-info p strong{margin-top:4px}.speaker-bottom{align-items:flex-start;margin-top:26px}.speaker-bottom .source-note{max-width:165px;font-size:9px}.speaker-bottom .text-link{font-size:11px;gap:8px;min-height:30px}.faq{gap:20px}.faq h2{font-size:30px}.faq summary{font-size:13px;padding-block:19px}.faq details p{font-size:12px}.closing{padding-top:0;padding-bottom:46px}.closing>p{font-size:10px;margin-bottom:16px}.closing>a{font-size:35px;line-height:1.15;padding-bottom:24px}.closing>a>span{font-size:36px}dialog{padding:30px 24px;max-height:calc(100dvh - 24px)}dialog h2{font-size:30px}.dialog-intro{font-size:12px}.theme-toggle{font-size:21px}.speaker-detail-photo{height:150px;width:140px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}









/* Home: full-screen black stage with glossy WebGL ribbons (app.js), centred copy and an email pill. Always dark, in both themes. */
.hero{--hero-text:#f4f4f8;--hero-muted:#a9a9b8;--hero-accent:#c9b8ff;position:relative;overflow:hidden;isolation:isolate;display:flex;flex-direction:column;min-height:max(620px,100svh);background:#020205;color:var(--hero-text)}
.hero-bg{position:absolute;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(55% 40% at 35% 0%,#2a2fd04d,transparent 70%),radial-gradient(35% 60% at 100% 55%,#3a2be040,transparent 70%),radial-gradient(35% 40% at 0% 100%,#2433c033,transparent 70%),#020205}
.hero-silk{position:absolute;inset:0;width:100%;height:100%;opacity:0;transition:opacity 1.4s ease}
.hero-silk.is-ready{opacity:1}
.hero-inner{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;text-align:center;padding-top:calc(var(--header-h) + 40px);padding-bottom:132px}
/* Hero logo: a dark halo pushes the ribbons back so the lettering stays readable; a shine sweeps across it now and then (masked to the logo). */
.hero-brand{position:relative;isolation:isolate;width:clamp(270px,31vw,440px);margin-bottom:26px}
.hero-brand:before{content:'';position:absolute;inset:-45% -22%;z-index:-1;border-radius:50%;background:radial-gradient(closest-side,#6a3cff2e,#020205d9 38%,#020205a6 62%,#02020500);pointer-events:none}
.hero-brand:after{content:'';position:absolute;inset:0;background:linear-gradient(110deg,#fff0 42%,#ffffffd9 50%,#fff0 58%) no-repeat;background-size:250% 100%;background-position:160% 0;-webkit-mask:url(../images/india-ai-summit-logo-2027.webp) center/100% 100% no-repeat;mask:url(../images/india-ai-summit-logo-2027.webp) center/100% 100% no-repeat;pointer-events:none}
.hero-logo{display:block;width:100%;height:auto;filter:drop-shadow(0 2px 14px #000000b3) drop-shadow(0 8px 36px #6a3cff66)}
.hero-eyebrow{font-size:12.5px;font-weight:700;letter-spacing:.16em;color:#cfcfdc}
.hero-eyebrow span{margin:0 .45em;opacity:.55}
/* Heading in two colours: white first line, then a blue-violet gradient with a white glint that drifts through the words.
   app.js splits the words (.is-split, .w) for a staggered rise and sets --x so one gradient runs across every coloured word. */
.hero h1{max-width:24em;margin-top:20px;padding-bottom:.12em;font-size:clamp(28px,3.1vw,46px);line-height:1.15;letter-spacing:-.03em;font-weight:500;text-wrap:balance;color:#fff}
.hero h1 em{--flow:linear-gradient(90deg,#c58bff 0%,#9a8cff 20%,#62b4ff 36%,#b8deff 47%,#62b4ff 58%,#9a8cff 76%,#c58bff 100%);display:block;font-style:normal;background:var(--flow) 0 0/12em 100% repeat-x;-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 0 26px #6b6bff4d)}
.hero h1.is-split em{background:none}
.hero h1 .w{display:inline-block;padding-bottom:.12em;margin-bottom:-.12em}
.hero h1 em .w{background:var(--flow) calc(-1 * var(--x,0px)) 0/12em 100% repeat-x;-webkit-background-clip:text;background-clip:text}
@keyframes word-rise{from{opacity:0;transform:translateY(.55em) rotate(2deg);filter:blur(12px)}to{opacity:1;transform:none;filter:blur(0)}}
@keyframes title-flow{from{background-position:calc(-1 * var(--x,0px)) 0}to{background-position:calc(12em - var(--x,0px)) 0}}
@keyframes logo-in{from{opacity:0;transform:translateY(18px) scale(.9);filter:blur(12px) drop-shadow(0 2px 14px #0000) drop-shadow(0 8px 36px #6a3cff00)}to{opacity:1;transform:none;filter:blur(0) drop-shadow(0 2px 14px #000000b3) drop-shadow(0 8px 36px #6a3cff66)}}
@keyframes logo-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
@keyframes logo-shine{0%{background-position:160% 0}30%,100%{background-position:-60% 0}}
@keyframes halo-pulse{0%,100%{opacity:.85;transform:scale(1)}50%{opacity:1;transform:scale(1.06)}}
/* Email pill: idle button → open field → loading dots → email draft link. JS sets data-state. */
.hero-signup{position:relative;display:flex;align-items:center;width:212px;max-width:100%;height:54px;margin-top:34px;border:1px solid #ffffff52;border-radius:100px;background:#ffffff08;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:width .6s cubic-bezier(.65,0,.25,1),border-color .3s,background .3s}
.hero-signup:hover,.hero-signup:focus-within{border-color:#ffffffa6;background:#ffffff0f}
.hero-signup:not([data-state="idle"]){width:440px}
.hero-signup[data-state="done"]{width:286px;border-color:#fff;background:#fff}
.hero-signup-open,.hero-signup-draft{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;gap:10px;border-radius:inherit;font-size:15px;font-weight:600}
.hero-signup-open{color:#ececf3}
.hero-signup-draft{color:#0b0b14;font-weight:700}
.hero-signup input{flex:1;min-width:0;height:100%;padding:0 10px 0 24px;border:0;outline:0;background:none;color:#fff;font-size:14.5px}
.hero-signup input::placeholder{color:#9d9daf;opacity:1}
.hero-signup-send{position:relative;display:grid;place-items:center;flex-shrink:0;width:40px;height:40px;margin-right:6px;border-radius:50%;border:1px solid #ffffff52;color:#fff;transition:background .2s,color .2s,border-color .2s}
.hero-signup-send:hover{background:#fff;color:#020205}
.hero-signup-send svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.hero-signup-dots{position:absolute;inset:0;display:none;align-items:center;justify-content:center;gap:3px}
.hero-signup-dots i{width:4px;height:4px;border-radius:50%;background:currentColor;animation:signup-dot 1s ease-in-out infinite}
.hero-signup-dots i:nth-child(2){animation-delay:.15s}.hero-signup-dots i:nth-child(3){animation-delay:.3s}
@keyframes signup-dot{0%,100%{opacity:.3;transform:translateY(0)}40%{opacity:1;transform:translateY(-3px)}}
.hero-signup[data-state="loading"] .hero-signup-send{background:#fff;color:#020205}
.hero-signup[data-state="loading"] .hero-signup-send svg{display:none}
.hero-signup[data-state="loading"] .hero-signup-dots{display:flex}
.hero-signup[data-state="loading"] input{color:#9d9daf}
/* Hidden parts fade out and leave the tab order; each state reveals its own. */
.hero-signup>:not(label){opacity:0;visibility:hidden;transition:opacity .2s,visibility 0s .2s}
.hero-signup[data-state="idle"] .hero-signup-open,.hero-signup:is([data-state="open"],[data-state="loading"]) :is(input,.hero-signup-send),.hero-signup[data-state="done"] .hero-signup-draft{opacity:1;visibility:visible;transition:opacity .35s .3s,visibility 0s}
.hero-signup .hero-signup-send{transition:opacity .2s,visibility 0s .2s,background .2s,color .2s}
.hero-signup:is([data-state="open"],[data-state="loading"]) .hero-signup-send{transition:opacity .35s .3s,visibility 0s,background .2s,color .2s}
.hero-signup :is(button,a):focus-visible{outline:2px solid var(--hero-accent);outline-offset:4px}
.hero-signup:has(input:focus){box-shadow:0 0 0 3px #c9b8ff59}
.hero-signup-status{min-height:3.2em;max-width:440px;margin-top:16px;font-size:14px;line-height:1.6;color:var(--hero-muted)}
.hero-explore{position:absolute;left:50%;bottom:30px;display:flex;flex-direction:column;align-items:center;gap:12px;transform:translateX(-50%);font-size:13.5px;font-weight:600;color:#fff;opacity:.85;transition:opacity .2s}
.hero-explore:hover{opacity:1}
.hero-explore:after{content:'';width:1px;height:34px;background:linear-gradient(#fff,#fff0);transform-origin:top;animation:explore-drop 2.4s cubic-bezier(.6,0,.3,1) infinite}
@keyframes explore-drop{0%{transform:scaleY(0);transform-origin:top}45%{transform:scaleY(1);transform-origin:top}55%{transform:scaleY(1);transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}
.hero-explore:focus-visible{outline-color:var(--hero-accent)}
.pill{display:inline-flex;align-items:center;gap:16px;min-height:54px;padding:6px 6px 6px 24px;border-radius:100px;font-size:14px;font-weight:700;white-space:nowrap;transition:transform .2s,background .2s,border-color .2s,box-shadow .2s}
.pill:hover{transform:translateY(-2px)}
.pill-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;font-size:18px;font-weight:400;transition:transform .2s}
.pill:hover .pill-icon{transform:translateX(3px)}
.pill-primary{background:linear-gradient(135deg,#7b5cff,#5a3ee0);color:#fff;box-shadow:0 12px 30px #5a3ee066}
.pill-primary:hover{box-shadow:0 16px 36px #5a3ee08c}
.pill-primary .pill-icon{background:#fff;color:#4a2fd2}
.pill-ghost{border:1px solid #c9b8ff4d;color:var(--hero-text)}
.pill-ghost:hover{border-color:var(--hero-accent);background:#ffffff0d}
.pill-ghost .pill-icon{border:1px solid #c9b8ff66}
.moments{border-top:1px solid var(--line)}
.moments-heading{display:grid;grid-template-columns:1.25fr 1fr;gap:45px 90px;align-items:end}
.moments-heading .eyebrow{margin-bottom:23px}
.moments-heading .section-intro{margin-top:0}
.moments-heading .text-link{margin-top:14px}
.moments-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;margin-top:48px}
.moments-grid figure{margin:0;min-width:0}
.moment-photo{aspect-ratio:3/4;overflow:hidden;border-radius:var(--radius);background:var(--surface-2)}
.moment-photo img{width:100%;height:100%;object-fit:cover;transform:scale(1.1);transition:transform .45s}
.moments-grid figure:hover .moment-photo img{transform:scale(1.15)}
.moments-grid figcaption{display:flex;gap:14px;align-items:baseline;padding-top:18px;font-size:15px;font-weight:500;letter-spacing:-.02em}
.moments-grid figcaption span{font:700 10px var(--font);color:var(--muted);letter-spacing:.08em}
@media(prefers-reduced-motion:no-preference){.hero-inner>*{animation:hero-enter .9s cubic-bezier(.2,.8,.2,1) .2s both}.hero-brand{animation:logo-float 6s ease-in-out 1.2s infinite}.hero-brand:before{animation:halo-pulse 6s ease-in-out infinite}.hero-brand:after{animation:logo-shine 5s cubic-bezier(.45,0,.25,1) 1.4s infinite}.hero-logo{animation:logo-in 1.1s cubic-bezier(.2,.8,.2,1) both}.hero-eyebrow{animation-delay:.1s}.hero h1{animation-delay:.18s}.hero h1.is-split{animation:none}.hero-signup{animation-delay:.9s}.hero-signup-status{animation-delay:.9s}
.hero h1 .w{animation:word-rise 1s cubic-bezier(.2,.8,.2,1) calc(.25s + var(--i) * 80ms) backwards}
.hero h1 em .w{animation:word-rise 1s cubic-bezier(.2,.8,.2,1) calc(.25s + var(--i) * 80ms) backwards,title-flow 7s linear infinite}}
@media(prefers-reduced-motion:reduce){.hero-signup,.hero-explore:after{transition:none;animation:none}}
@media(max-width:1150px){.moments-heading{gap:45px}.moments-grid{gap:18px}}
@media(max-width:900px){.moments-heading{grid-template-columns:1fr;gap:20px}.moments-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 18px}}
@media(max-width:640px){.hero-inner{padding-bottom:112px}.hero-brand{width:min(270px,78vw);margin-bottom:22px}.hero-eyebrow{font-size:10.5px;letter-spacing:.12em}.hero h1{margin-top:16px;font-size:clamp(26px,7.4vw,34px)}.hero-signup{margin-top:28px}.hero-signup:not([data-state="idle"]){width:100%}.hero-signup input{padding-left:20px;font-size:14px}.hero-signup-status{font-size:13px}.pill{justify-content:space-between;min-height:54px}.moments-grid{gap:24px 14px;margin-top:30px}.moments-grid figcaption{font-size:13px;padding-top:12px;gap:10px}}

/* Header sits over the hero at the top of the page, then turns solid on scroll (JS adds .at-top). */
:root{--header-h:81px;--header-bg:#fff}
:root:not([data-theme="light"]){--header-bg:var(--bg)}
@media(prefers-color-scheme:light){:root:not([data-theme="dark"]){--header-bg:#fff}}
.site-header{background:var(--header-bg);transition:background .3s,border-color .3s,box-shadow .3s}
.site-header:not(.at-top){box-shadow:0 10px 30px #0000000f}
.site-header.at-top{background:transparent;border-bottom-color:transparent;box-shadow:none}
/* Light theme with a solid white header: swap to the logo with dark lettering. */
:root[data-theme="light"] .site-header:not(.at-top) .brand-logo-light{display:none}
:root[data-theme="light"] .site-header:not(.at-top) .brand-logo-dark{display:block}
@media(prefers-color-scheme:light){:root:not([data-theme="dark"]) .site-header:not(.at-top) .brand-logo-light{display:none}:root:not([data-theme="dark"]) .site-header:not(.at-top) .brand-logo-dark{display:block}}
.site-header.at-top .desktop-nav a{color:#ffffffb3}
.site-header.at-top .desktop-nav a:hover,.site-header.at-top .desktop-nav a[aria-current]{color:#fff}
.site-header.at-top :focus-visible{outline-color:#c9b8ff}
.hero{margin-top:calc(-1 * var(--header-h))}
@media(max-width:900px){:root{--header-h:73px}}
@media(max-width:640px){:root{--header-h:69px}}
/* Header logo: Elets (2:1). White lettering by default, dark lettering on the light scrolled header (rules above). */
.brand img{height:58px}
@media(max-width:1150px){.brand img{height:52px}}
@media(max-width:640px){.brand img{height:46px}}
/* Header buttons: round icon buttons (theme, menu) and an "Enquire" pill share one outline style, frosted glass over the hero.
   "Partner With Us" is the brand-gradient pill from the logo, with a white arrow chip and a sheen on hover. */
.nav-actions{gap:10px}
.nav-actions .icon-button,.nav-enquire{height:44px;border:1px solid var(--line);color:var(--text);background:transparent;transition:background .25s,border-color .25s,color .25s,transform .25s}
.nav-actions .icon-button{width:44px;min-width:0;min-height:0;border-radius:50%}
.nav-actions .icon-button:hover,.nav-enquire:hover{background:var(--surface-2);border-color:var(--accent)}
.nav-actions svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round}
.theme-toggle svg{width:19px;height:19px;stroke-width:1.8;transition:transform .6s cubic-bezier(.3,1.5,.5,1)}
.theme-toggle:hover svg{transform:rotate(40deg) scale(1.08)}
.theme-toggle .icon-moon{display:none}
:root[data-theme="light"] .theme-toggle .icon-sun{display:none}
:root[data-theme="light"] .theme-toggle .icon-moon{display:block}
@media(prefers-color-scheme:light){:root:not([data-theme="dark"]) .theme-toggle .icon-sun{display:none}:root:not([data-theme="dark"]) .theme-toggle .icon-moon{display:block}}
.menu-lines{position:relative;width:18px;height:12px}
.menu-lines i{position:absolute;right:0;width:100%;height:2px;border-radius:2px;background:currentColor;transition:top .3s,width .3s,transform .3s}
.menu-lines i:first-child{top:1px}
.menu-lines i:last-child{top:9px;width:65%}
.menu-toggle[aria-expanded="true"] .menu-lines i{top:5px;width:100%}
.menu-toggle[aria-expanded="true"] .menu-lines i:first-child{transform:rotate(45deg)}
.menu-toggle[aria-expanded="true"] .menu-lines i:last-child{transform:rotate(-45deg)}
.nav-enquire{display:inline-flex;align-items:center;gap:8px;padding:0 18px 0 15px;border-radius:100px;font-size:13px;font-weight:700;letter-spacing:.01em}
.nav-enquire svg{width:17px;height:17px;stroke-width:1.8}
.site-header.at-top :is(.nav-actions .icon-button,.nav-enquire){border-color:#ffffff2e;background:#ffffff0f;color:#fff;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}
.site-header.at-top :is(.nav-actions .icon-button,.nav-enquire):hover{border-color:#ffffff73;background:#ffffff21}
.nav-cta{position:relative;isolation:isolate;overflow:hidden;display:inline-flex;align-items:center;gap:12px;height:46px;padding:4px 4px 4px 20px;border-radius:100px;font-size:13.5px;font-weight:700;letter-spacing:.01em;white-space:nowrap;color:#fff;background:linear-gradient(115deg,#9333ea,#5b5bf6 45%,#1d9bf0) 0 0/180% 100%;box-shadow:0 8px 24px #6a3cff4d,inset 0 1px 0 #ffffff47;transition:background-position .6s ease,box-shadow .3s,transform .3s}
.nav-cta:after{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(110deg,#fff0 35%,#ffffff4d 50%,#fff0 65%);transform:translateX(-110%);transition:transform .9s ease}
.nav-cta:hover{background-position:100% 0;box-shadow:0 12px 32px #4f6bff73,inset 0 1px 0 #ffffff59;transform:translateY(-1px)}
.nav-cta:hover:after{transform:translateX(110%)}
.nav-cta-icon{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:#fff;color:#4c2fd9;box-shadow:0 2px 8px #1a0b4d40}
.nav-cta-icon svg{width:16px;height:16px;stroke-width:2.2;transition:transform .4s cubic-bezier(.3,1.5,.5,1)}
.nav-cta:hover .nav-cta-icon svg{transform:rotate(45deg)}
.mobile-nav a.mobile-cta{background:linear-gradient(115deg,#9333ea,#5b5bf6 45%,#1d9bf0);box-shadow:0 10px 26px #6a3cff4d,inset 0 1px 0 #ffffff47}
.mobile-nav a.mobile-cta .pill-icon{color:#4c2fd9}
.mobile-nav a.mobile-cta .pill-icon svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
@media(max-width:1150px){.nav-enquire{display:none}}
@media(max-width:640px){.nav-actions{gap:8px}.nav-actions .icon-button{width:42px;height:42px}.nav-cta{display:none}}

/* Partner marquee: a dark band between the story cards and "Who you'll meet", in both themes. Two full-bleed rows drift in opposite directions;
   every logo sits on its own white tile so mixed artwork reads the same. Hovering pauses the row and lifts the tile. */
.partner-strip{padding-block:28px 96px;overflow:hidden;color:#fff;background:radial-gradient(50% 55% at 50% 65%,#3b2fd02e,transparent 70%),#020205}
.partner-head{margin-bottom:44px;text-align:center}
.partner-kicker{display:inline-flex;align-items:center;gap:14px;font-size:12px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:#aaa6ff}
.partner-kicker:before,.partner-kicker:after{content:'';width:44px;height:1px;background:linear-gradient(90deg,#aaa6ff00,#aaa6ff)}
.partner-kicker:after{transform:scaleX(-1)}
.partner-strip h2{margin-top:14px;font-size:clamp(28px,3vw,42px);line-height:1.1;letter-spacing:-.035em;font-weight:600;color:#fff;text-wrap:balance}
.partner-sub{margin-top:10px;font-size:15px;color:#9d9ac4}
.marquee{display:flex;padding-block:6px}
.marquee+.marquee{margin-top:12px}
.marquee-track{display:flex;gap:18px;padding:0 18px 0 0;margin:0;list-style:none;flex-shrink:0;animation:marquee 60s linear infinite}
.marquee-reverse .marquee-track{animation-duration:72s;animation-direction:reverse}
.marquee:hover .marquee-track{animation-play-state:paused}
.marquee-track li{width:188px;height:86px;display:grid;place-items:center;padding:16px 24px;background:#fff;border-radius:18px;box-shadow:inset 0 -1px 0 #0000000f,0 10px 24px #00000052;transition:transform .35s cubic-bezier(.2,.8,.2,1),box-shadow .35s}
.marquee-track img{max-width:100%;max-height:44px;width:auto;height:auto;object-fit:contain}
.marquee-track li:hover{transform:translateY(-4px);box-shadow:0 0 0 2px #8b7bff,0 16px 34px #6a3cff66}
@keyframes marquee{to{transform:translateX(-100%)}}
@media(prefers-reduced-motion:reduce){.marquee{justify-content:center;padding-inline:24px}.marquee-track{flex-wrap:wrap;justify-content:center;padding:0;flex-shrink:1}.marquee-track[aria-hidden]{display:none}.marquee-track li{transition:none}}
@media(max-width:640px){.partner-strip{padding-block:20px 64px}.partner-head{margin-bottom:30px;padding-inline:24px}.partner-kicker{font-size:11px;gap:10px}.partner-kicker:before,.partner-kicker:after{width:26px}.partner-sub{font-size:14px}.marquee-track{gap:10px;padding-right:10px}.marquee+.marquee{margin-top:6px}.marquee-track li{width:136px;height:66px;padding:10px 16px;border-radius:14px}.marquee-track img{max-height:34px}}

/* About: intro, programme figures and who attends. */
.about-intro{display:grid;grid-template-columns:1.1fr 1fr;gap:40px 96px;align-items:start}
.about-eyebrow{color:var(--accent);margin-bottom:22px}
.about h2 span{color:var(--accent)}
.about-body{padding-top:8px;color:var(--muted);font-size:15px;line-height:1.85}
.about-body p+p{margin-top:16px}
.about-lead{font-size:20px;line-height:1.55;color:var(--text);font-weight:600;letter-spacing:-.01em}
.about-body .text-link{color:var(--text);margin-top:18px}
.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-top:64px}
.stat{display:flex;flex-direction:column;justify-content:space-between;gap:28px;min-height:176px;padding:28px;border-radius:18px;background:var(--surface);border:1px solid var(--line)}
.stat strong{font-size:60px;line-height:1;letter-spacing:-.05em;font-weight:800}
.stat strong span{color:var(--accent);margin-left:2px}
.stat>span{font-size:13px;font-weight:600;color:var(--muted)}
.stat-feature{background:radial-gradient(90% 120% at 100% 0%,#5b3ce0b3,transparent 70%),#0b0a1f;border-color:transparent;color:#f3f1ff}
.stat-feature strong span{color:#c9b8ff}
.stat-feature>span{color:#b4aed6}
.about-note{margin-top:14px}
.audience{margin-top:88px}
.audience-head{display:flex;justify-content:space-between;align-items:end;gap:24px 60px;flex-wrap:wrap}
.audience-head h2{font-size:clamp(28px,3vw,40px);line-height:1.1;letter-spacing:-.04em;font-weight:700}
.audience-head p{max-width:400px;color:var(--muted);font-size:15px;line-height:1.7}
.audience-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:32px 0 0;padding:0;list-style:none}





@media(max-width:1150px){.about-intro{gap:40px 56px}.stat strong{font-size:50px}.stat{padding:24px}}
@media(max-width:900px){.about-intro{grid-template-columns:1fr;gap:24px}.stats{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:44px}.audience-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.audience{margin-top:64px}}
@media(max-width:640px){.about-lead{font-size:17px}.about-body{font-size:14px}.stats{gap:10px;margin-top:36px}.stat{min-height:132px;padding:20px;border-radius:14px;gap:18px}.stat strong{font-size:42px}.stat>span{font-size:12px}.audience{margin-top:52px}.audience-head p{font-size:14px}.audience-grid{grid-template-columns:1fr;gap:12px;margin-top:24px}}.about{--about-bg:#fff;background:var(--about-bg);box-shadow:0 0 0 100vmax var(--about-bg);clip-path:inset(0 -100vmax)}
:root:not([data-theme="light"]) .about{--about-bg:var(--bg)}
@media(prefers-color-scheme:light){:root:not([data-theme="dark"]) .about{--about-bg:#fff}}
/* Who you'll meet: photo cards from past Elets events with a dark overlay for legible text. */
.audience-grid li{position:relative;isolation:isolate;overflow:hidden;min-height:380px;display:flex;align-items:flex-end;border-radius:20px;background:#0b0a1f;color:#fff;box-shadow:0 18px 40px #0b0a1f1f;transition:transform .35s,box-shadow .35s}
.audience-grid li>img{position:absolute;inset:0;z-index:-2;width:100%;height:100%;object-fit:cover;object-position:center 20%;transition:transform .6s}
.audience-grid li:after{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,#0b0a1f1a 0%,#0b0a1f59 40%,#0b0a1fe6 72%,#0b0a1f 100%),linear-gradient(135deg,#5b3ce04d,transparent 60%);transition:background .35s}
.audience-grid li:hover{transform:translateY(-4px);box-shadow:0 26px 50px #2d1d8a40}
.audience-grid li:hover>img{transform:scale(1.06)}
.audience-content{padding:28px}

.audience-content h4{margin:0;font-size:21px;line-height:1.25;letter-spacing:-.025em;font-weight:700;color:#fff}
.audience-content p{margin-top:10px;font-size:14px;line-height:1.65;color:#d6d1ee}
@media(max-width:900px){.audience-grid li{min-height:340px}}
@media(max-width:640px){.audience-grid li{min-height:300px;border-radius:16px}.audience-content{padding:22px}.audience-content h4{font-size:19px}.audience-content p{font-size:13px}}/* Who you'll meet: full-width white band (both themes); the photo cards keep their dark overlay. */
.about{padding-bottom:0}
.audience{position:relative;isolation:isolate;margin-top:96px;padding-block:96px 104px;color:#14143a}
.audience:before{content:'';position:absolute;top:0;bottom:0;left:50%;width:100vw;transform:translateX(-50%);z-index:-1;background:#fff}
.audience-head h2{color:#14143a}
.audience-head p{color:#55557a}
.audience-grid li{box-shadow:0 0 0 1px #14143a0f,0 18px 40px #1e1b6b26}
.audience-grid li:hover{box-shadow:0 0 0 1px #8b7bff99,0 26px 50px #4f46e540}
@media(max-width:900px){.audience{margin-top:72px;padding-block:72px 80px}}
@media(max-width:640px){.audience{margin-top:56px;padding-block:56px 64px}}












/* Guests of honour */
.guests{display:grid;grid-template-columns:1fr 1fr 1fr;gap:24px;align-items:end;border-top:1px solid var(--line)}
.guests-heading{align-self:start}
.guest-photo{aspect-ratio:4/4.4;overflow:hidden;border-radius:20px;background:radial-gradient(80% 70% at 50% 20%,#e6defe,#c9b8ff00 70%),var(--surface)}
.guest-photo img{width:100%;height:100%;object-fit:cover;object-position:center top;transition:transform .5s}
.guest:hover .guest-photo img{transform:scale(1.04)}
.guest h3{margin-top:20px;font-size:22px;line-height:1.25;font-weight:700;letter-spacing:-.025em}
.guest p{margin-top:6px;font-size:14px;line-height:1.6;color:var(--muted)}
.guest p strong{color:var(--text);font-weight:600}
/* Programme tracks */
.tracks{border-top:1px solid var(--line)}
/* Programme format: centred heading; two dark track cards (violet enterprise, blue public sector) joined by an "&" badge where
   they meet; the 1st-edition figures in one rounded panel with gradient numbers. Same cards in both themes. */
.tracks-heading{max-width:680px;margin-inline:auto;text-align:center}
.tracks-heading .section-intro{margin-inline:auto}
.track-grid{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:52px}
.track{--c1:#8b5cf6;--c2:#4f46e5;position:relative;isolation:isolate;overflow:hidden;display:flex;flex-direction:column;min-height:340px;padding:36px 40px 40px;border-radius:26px;border:1px solid #ffffff1a;color:#f3f1ff;transition:transform .4s cubic-bezier(.2,.8,.2,1),box-shadow .4s}
.track-enterprise{background:radial-gradient(85% 85% at 100% 0%,#7c3aed8c,transparent 65%),radial-gradient(60% 60% at 0% 100%,#4f46e540,transparent 70%),#0d0b26}
.track-public{--c1:#3b82f6;--c2:#1d4ed8;background:radial-gradient(85% 85% at 100% 0%,#2563eb8c,transparent 65%),radial-gradient(60% 60% at 0% 100%,#4f46e540,transparent 70%),#0a0d26}
.track:hover{transform:translateY(-4px);box-shadow:0 30px 60px -24px var(--c1)}
.track-num{position:absolute;right:28px;top:10px;z-index:-1;font-size:120px;line-height:1;font-weight:800;letter-spacing:-.06em;color:transparent;-webkit-text-stroke:1px #ffffff2e;pointer-events:none}
.track-top{display:flex;align-items:center;gap:14px}
.track-icon{display:grid;place-items:center;flex-shrink:0;width:52px;height:52px;border-radius:16px;background:linear-gradient(135deg,var(--c1),var(--c2));box-shadow:0 12px 26px -8px var(--c1)}
.track-icon svg{width:24px;height:24px;fill:none;stroke:#fff;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.track-day{font-size:11.5px;font-weight:800;letter-spacing:.14em;color:#c9b8ff}
.track-public .track-day{color:#a5c8ff}
.track h3{margin-top:auto;padding-top:64px;font-size:clamp(26px,2.4vw,34px);line-height:1.1;letter-spacing:-.035em;font-weight:800;color:#fff}
.track p{margin-top:14px;max-width:440px;font-size:15px;line-height:1.7;color:#c4bfe3}
.track-join{position:absolute;left:50%;top:50%;z-index:2;display:grid;place-items:center;width:60px;height:60px;margin:-30px 0 0 -30px;border:2px solid transparent;border-radius:50%;background:linear-gradient(var(--bg),var(--bg)) padding-box,linear-gradient(135deg,#8b5cf6,#2563eb) border-box;box-shadow:0 10px 30px #4f46e540}
.track-join span{font-size:24px;font-weight:800;line-height:1;background:linear-gradient(135deg,#8b5cf6,#3b82f6);-webkit-background-clip:text;background-clip:text;color:transparent}
.landscape{display:grid;grid-template-columns:repeat(4,1fr);margin-top:20px;overflow:hidden;border:1px solid var(--line);border-radius:22px;background:var(--surface)}
.landscape>div{display:flex;flex-direction:column;gap:8px;padding:28px 30px}
.landscape>div+div{border-left:1px solid var(--line)}
.landscape strong{font-size:clamp(36px,3.4vw,48px);line-height:1;letter-spacing:-.04em;font-weight:800;background:linear-gradient(135deg,#8b5cf6,#6366f1 50%,#3b82f6);-webkit-background-clip:text;background-clip:text;color:transparent}
.landscape span{font-size:13px;font-weight:600;color:var(--muted)}
.tracks>.source-note{margin-top:14px;text-align:center}
/* What sets us apart + testimonials: one always-dark band (.apart-band) with a shared glow, faint grid and film grain behind both sections. */
.apart-band{--grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 .16 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");position:relative;isolation:isolate;color:#f3f1ff;background:radial-gradient(45% 26% at 50% 18%,#5b3ce04d,transparent 70%),radial-gradient(40% 30% at 100% 100%,#2d1d8a80,transparent 70%),radial-gradient(35% 25% at 0% 72%,#5b3ce033,transparent 70%),linear-gradient(#ffffff06 1px,transparent 1px) 50% 0/56px 56px,linear-gradient(90deg,#ffffff06 1px,transparent 1px) 50% 0/56px 56px,#07060f}
/* Film grain: the noise tile shifts a few times a second so it reads as texture, not a pattern. */
.apart-band:after{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;background:var(--grain);animation:apart-grain 1s steps(4) infinite}
@keyframes apart-grain{0%{background-position:0 0}25%{background-position:-60px 40px}50%{background-position:50px -70px}75%{background-position:-30px -20px}}
.apart-band .section-heading{text-align:center}
.apart-band .apart{padding-bottom:0}
.apart-band .testimonials{padding-top:96px}
/* The stem carries on down into the testimonials heading, so the two read as one section. */
.apart-band .testimonials .section-heading:before{content:'';display:block;width:1px;height:56px;margin:0 auto 26px;background:linear-gradient(#a996ff00,#a996ffb3);box-shadow:0 0 6px #7b5cff}
@media(max-width:640px){.apart-band .testimonials{padding-top:56px}.apart-band .testimonials .section-heading:before{height:40px;margin-bottom:20px}}
/* Testimonials backdrop: a packed conference hall from a past edition, fixed to the viewport so the section scrolls over it, darkened
   and faded into the band at the top and bottom so the quotes stay legible; the band's film grain still runs over it. Touch devices
   scroll it with the page (fixed backgrounds are unreliable there). To use another photo, change only the url(). */
.apart-band .testimonials{position:relative;overflow-x:clip}
.apart-band .testimonials:before{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(#07060f 0%,#07060fb8 22%,#0b092094 50%,#07060fb8 80%,#07060f 100%),url(../images/expert-led-discussion.webp) center/cover no-repeat;background-attachment:scroll,fixed}
@media(hover:none){.apart-band .testimonials:before{background-attachment:scroll}}
.apart .eyebrow,.apart .hl{color:#c9b8ff}
.apart-lines{display:block;width:100%;height:auto;margin-top:30px;overflow:visible;filter:drop-shadow(0 0 5px #7b5cffa6)}
.apart-lines path{fill:none;stroke-linecap:round}
.apart-base{stroke:#9b82ff;stroke-width:1.5;opacity:.6}
.apart-pulse{stroke:#f1ecff;stroke-width:2.5;stroke-dasharray:16 200;stroke-dashoffset:16}
.apart-pulse path{animation:apart-branch 3.6s cubic-bezier(.3,0,.3,1) infinite}
.apart-pulse .apart-pulse-stem{stroke-dasharray:35 200;stroke-dashoffset:35;animation-name:apart-stem;animation-timing-function:linear}
.apart-node{fill:#fff}
.apart-halo{fill:#b5a0ff;opacity:.4;transform-box:fill-box;transform-origin:center;animation:apart-halo 3.6s ease-out infinite}
@keyframes apart-stem{0%{stroke-dashoffset:35}25%,100%{stroke-dashoffset:-100}}
@keyframes apart-branch{0%,20%{stroke-dashoffset:16}85%,100%{stroke-dashoffset:-100}}
@keyframes apart-halo{0%,15%{transform:scale(.6);opacity:.55}45%,100%{transform:scale(1.7);opacity:0}}
/* No column gap: the side margins keep each card centred on its fifth of the row, right under its branch. */
.apart-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));margin:0;padding:0;list-style:none}
.apart-grid li{position:relative;margin:0 8px;min-height:240px;padding:30px 18px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:24px;text-align:center;border-radius:20px;background:var(--grain),linear-gradient(165deg,#211a42,#0e0b1c 70%);border:1px solid #a996ff59;box-shadow:0 0 30px #7b5cff26,inset 0 1px 0 #ffffff14,inset 0 0 26px #7b5cff14;transition:border-color .3s,box-shadow .3s}
.apart-grid li:hover{border-color:#c9b8ff;box-shadow:0 0 44px #7b5cff59,inset 0 1px 0 #ffffff1f,inset 0 0 30px #7b5cff29}
.apart-grid svg{width:52px;height:52px;fill:none;stroke:#e9e2ff;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 0 7px #9b7dffcc);transition:transform .3s}
.apart-grid li:hover svg{transform:scale(1.08)}
.apart-grid h3{font-size:17px;line-height:1.35;font-weight:700;letter-spacing:-.02em;color:#fff;text-wrap:balance}
.apart-grid h3 span{white-space:nowrap}
@media(max-width:1150px){.apart-grid li{margin-inline:6px;min-height:220px;padding:26px 14px;gap:20px}.apart-grid svg{width:46px;height:46px}.apart-grid h3{font-size:15.5px}}
@media(max-width:900px){.apart-lines{display:none}.apart-grid{position:relative;grid-template-columns:1fr;gap:12px;max-width:560px;margin:40px auto 0;padding-left:30px}.apart-grid:before{content:'';position:absolute;left:6px;top:0;bottom:0;width:1px;background:linear-gradient(#a996ff00,#a996ffb3 12%,#a996ffb3 88%,#a996ff00)}.apart-grid li{margin:0;min-height:0;flex-direction:row;justify-content:flex-start;text-align:left;padding:18px 20px;gap:18px}.apart-grid li:before{content:'';position:absolute;right:100%;top:50%;width:24px;height:1px;background:#a996ffb3}.apart-grid li:after{content:'';position:absolute;left:-28px;top:50%;width:7px;height:7px;margin-top:-3.5px;border-radius:50%;background:#f1ecff;box-shadow:0 0 10px #9b7dff}.apart-grid svg{width:40px;height:40px;flex-shrink:0}.apart-grid h3{font-size:16px}}
/* Testimonials (background from .apart-band) as a carousel. app.js adds .is-ready and sets data-pos on each card. Every card shares
   one grid cell, so the stage is as tall as the longest quote: the active card sits in front in the violet finish, its neighbours
   slide out to either side, scaled down and dimmed (clicking one brings it to the centre). Without JS the cards simply stack.
   Cards have a gradient hairline border, a watermark quote mark and a glow that follows the pointer (app.js sets --mx/--my). */
.testimonials .eyebrow{color:#c9b8ff}
.quote-carousel{margin-top:48px}
.quote-track{display:grid;gap:16px;max-width:min(640px,86%);margin-inline:auto}
.quote{--mx:50%;--my:0px;position:relative;isolation:isolate;overflow:hidden;margin:0;display:flex;flex-direction:column;justify-content:space-between;gap:24px;padding:36px 38px 30px;border-radius:24px;border:1px solid transparent;background:var(--grain,none) padding-box,linear-gradient(160deg,#18142d,#0d0b19) padding-box,linear-gradient(150deg,#a996ff73,#ffffff12 35%,#ffffff0a 65%,#7b5cff59) border-box}
.quote:before{content:'';position:absolute;inset:0;z-index:-1;background:radial-gradient(380px circle at var(--mx) var(--my),#ffffff1a,transparent 65%);opacity:0;transition:opacity .35s}
.quote:hover:before{opacity:1}
.quote:after{content:'\201C';position:absolute;top:-24px;right:32px;z-index:-1;font-size:200px;line-height:1;font-weight:800;color:#a996ff1c;pointer-events:none}
.quote blockquote{margin:0;font-size:15.5px;line-height:1.7;color:#d8d2f2;text-wrap:pretty}
.quote figcaption{display:flex;align-items:center;gap:14px;padding-top:20px;border-top:1px solid #ffffff14}
.quote figcaption img{width:50px;height:50px;padding:2px;border-radius:50%;object-fit:cover;object-position:center top;background:linear-gradient(135deg,#c9b8ff,#5b3ce0)}
.quote figcaption span{display:flex;flex-direction:column;font-size:13px;color:#a9a3c9}
.quote figcaption strong{font-size:15.5px;color:#fff;font-weight:700}
.quote-carousel.is-ready .quote-track{gap:0;touch-action:pan-y}
.quote-carousel.is-ready .quote{grid-area:1/1;transition:transform .7s cubic-bezier(.2,.8,.2,1),opacity .7s,box-shadow .5s}
.quote[data-pos=active]{z-index:2;background:var(--grain,none) padding-box,radial-gradient(70% 55% at 100% 0%,#9b7dff59,transparent 70%) padding-box,linear-gradient(155deg,#4a2fd0,#22156a 78%) padding-box,linear-gradient(150deg,#d9ceff,#7b5cff4d 40%,#ffffff14 70%,#a996ff8c) border-box;box-shadow:0 30px 80px #2d1d8a73}
.quote[data-pos=active]:after{color:#ffffff1a}
.quote[data-pos=active] blockquote{color:#fff}
.quote[data-pos=active] figcaption{border-top-color:#ffffff2e}
.quote[data-pos=active] figcaption img{background:linear-gradient(135deg,#fff,#c9b8ff)}
.quote[data-pos=active] figcaption span{color:#d9d1ff}
.quote[data-pos=prev],.quote[data-pos=next]{z-index:1;opacity:.35;cursor:pointer}
.quote[data-pos=prev]{transform:translateX(-66%) scale(.84)}
.quote[data-pos=next]{transform:translateX(66%) scale(.84)}
.quote[data-pos=prev]:hover,.quote[data-pos=next]:hover{opacity:.55}
.quote[data-pos=hidden]{opacity:0;transform:scale(.7);pointer-events:none}
/* Controls: arrows either side of the dots, then play/pause (autoplay stops for good once the reader takes over). */
.quote-controls{display:flex;align-items:center;justify-content:center;gap:12px;margin-top:32px}
.quote-carousel:not(.is-ready) .quote-controls{display:none}
.quote-arrow{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;border:1px solid #ffffff26;background:#ffffff0d;color:#fff;transition:background .25s,border-color .25s}
.quote-arrow:hover{background:#7b5cff;border-color:#7b5cff}
.quote-arrow svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.quote-play{margin-left:6px}
.quote-play[data-playing=true] .quote-icon-play,.quote-play[data-playing=false] .quote-icon-pause{display:none}
.quote-dots{display:flex}
.quote-dot{display:grid;place-items:center;height:32px;padding:0 4px}
.quote-dot:before{content:'';width:8px;height:8px;border-radius:8px;background:#ffffff40;transition:width .35s,background .35s}
.quote-dot:hover:before{background:#ffffff80}
.quote-dot[aria-current=true]:before{width:28px;background:#c9b8ff}
@media(max-width:640px){.quote-carousel{margin-top:32px}.quote{padding:26px 22px 22px;border-radius:20px}.quote:after{font-size:130px;top:-14px;right:18px}.quote-controls{gap:8px;margin-top:24px}}
/* Entrance, the first time each part scrolls into view (app.js adds .will-reveal, then .is-in; skipped for reduced motion):
   the stem draws down to the node, the branches grow out to the cards, the cards rise from the centre outwards, then the
   pulses start. Below 900px the spine grows down and the cards rise in order. The quotes rise one after another. */
@keyframes apart-draw{from{stroke-dashoffset:101}}
@keyframes apart-pop{from{opacity:0;transform:scale(0)}}
@keyframes apart-fade{from{opacity:0}}
@keyframes apart-rise{from{opacity:0;transform:translateY(28px) scale(.96);filter:blur(8px)}}
@keyframes apart-grow{from{transform:scaleY(0)}}
.apart.will-reveal .apart-base path{stroke-dasharray:100 120}
.apart.will-reveal:not(.is-in) .apart-base path{stroke-dashoffset:101}
.apart.will-reveal:not(.is-in) :is(.apart-live,.apart-node,.apart-grid li){opacity:0}
.apart.will-reveal:not(.is-in) .apart-grid:before{transform:scaleY(0)}
.apart.is-in .apart-base-stem{animation:apart-draw .4s ease-in backwards}
.apart.is-in .apart-base path:not(.apart-base-stem){animation:apart-draw .9s cubic-bezier(.3,.6,.3,1) .45s backwards}
.apart-node{transform-box:fill-box;transform-origin:center}
.apart.is-in .apart-node{animation:apart-pop .5s cubic-bezier(.3,1.6,.5,1) .35s backwards}
.apart.is-in .apart-live{animation:apart-fade .6s 1.4s backwards}
.apart-grid li:nth-child(2),.apart-grid li:nth-child(4){--d:1}
.apart-grid li:nth-child(1),.apart-grid li:nth-child(5){--d:2}
.apart.is-in .apart-grid li{animation:apart-rise .8s cubic-bezier(.2,.8,.2,1) backwards;animation-delay:calc(1.05s + var(--d,0) * 120ms)}
.apart.is-in .apart-grid:before{transform-origin:top;animation:apart-grow 1s cubic-bezier(.4,0,.2,1) backwards}
@media(max-width:900px){.apart.is-in .apart-grid li{animation-delay:calc(.25s + var(--i,0) * 110ms)}}
.testimonials .head-reveal:not(.head-in):before{transform:scaleY(0)}
.testimonials .head-in:before{transform-origin:top;animation:apart-grow .7s cubic-bezier(.4,0,.2,1) backwards}
.testimonials.will-reveal:not(.is-in) .quote-carousel{opacity:0}
.testimonials.is-in .quote-carousel{animation:apart-rise .9s cubic-bezier(.2,.8,.2,1) backwards}
/* 2026 passes (archived), drawn as tickets: a tinted header and a body split by a perforation, with a notch in each side.
   Each half masks out its half of the two notches at the shared edge (--y); 1px rings in the background carry the border round them. */
.passes{border-top:1px solid var(--line)}
.passes .section-heading{text-align:center}
.passes .section-intro{margin-inline:auto}
/* Each ticket takes a third of the row (like col-md-4) and the pair sits centred; they stack full width below 900px. */
.pass-grid{display:grid;grid-template-columns:repeat(2,calc((100% - 32px) / 3));justify-content:center;gap:16px;margin-top:44px}
.pass{--notch:14px;--edge:var(--line);--fill:var(--surface);--head:color-mix(in srgb,var(--accent) 9%,var(--surface));--hole:#0000 var(--notch),#000 calc(var(--notch) + .5px);--ring:#0000 var(--notch),var(--edge) 0 calc(var(--notch) + 1.5px),#0000 0;display:flex;flex-direction:column}
.pass-head,.pass-body{--y:100%;position:relative;border:1px solid var(--edge);background:radial-gradient(circle at 0 var(--y),var(--ring)),radial-gradient(circle at 100% var(--y),var(--ring)),var(--fill);background-origin:border-box;-webkit-mask:radial-gradient(circle at 0 var(--y),var(--hole)),radial-gradient(circle at 100% var(--y),var(--hole));-webkit-mask-composite:source-in;mask:radial-gradient(circle at 0 var(--y),var(--hole)),radial-gradient(circle at 100% var(--y),var(--hole));mask-composite:intersect}
.pass-head{--fill:var(--head);padding:36px 36px 30px;border-bottom:0;border-radius:22px 22px 0 0}
.pass-body{--y:0;flex:1;display:flex;flex-direction:column;padding:32px 36px 36px;border-top:0;border-radius:0 0 22px 22px}
.pass-body:before{content:'';position:absolute;top:0;left:calc(var(--notch) + 10px);right:calc(var(--notch) + 10px);border-top:2px dashed var(--muted);opacity:.45}
.pass-top{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px 16px}
.pass-event{font-size:11px;font-weight:700;letter-spacing:.13em;text-transform:uppercase;color:var(--muted)}
.pass-status{flex-shrink:0;padding:4px 10px;border:2px solid;border-radius:6px;font-size:11px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);transform:rotate(-5deg)}
.pass h3{margin-top:18px;font-size:30px;font-weight:800;letter-spacing:-.035em}
.pass-meta{display:flex;flex-wrap:wrap;gap:12px 40px;margin:22px 0 0}
.pass-meta dt{font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.pass-meta dd{margin:2px 0 0;font-size:15px;font-weight:700}
.pass ul{margin:0 0 32px;padding:0;list-style:none;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(280px,100%),1fr));gap:12px 32px}
.pass li{display:flex;gap:12px;font-size:15px;line-height:1.55}
.pass li:before{content:'';flex-shrink:0;width:20px;height:20px;margin-top:1px;border-radius:50%;background:var(--accent) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M6 10.5l2.5 2.5L14 7.5' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/20px no-repeat}
.pass .pill{margin-top:auto;align-self:flex-start;white-space:normal}
.pass-vip{--edge:#ffffff24;--text:#f3f1ff;--muted:#b4aed6;--accent:#c9b8ff;--head:radial-gradient(80% 140% at 100% 0%,#5b3ce0a6,transparent 70%),#0b0a1f;--fill:radial-gradient(60% 70% at 0% 100%,#2d1d8a59,transparent 70%),#0b0a1f;color:var(--text)}
.pass-vip li:before{background-color:#7b5cff}
.pill-outline{border:1px solid var(--line);color:var(--text)}
.pill-outline:hover{border-color:var(--accent)}
.pill-outline .pill-icon{background:var(--accent);color:var(--accent-text)}
/* Closing hashtag */
.closing-tag{display:inline-block;margin-bottom:18px;padding:8px 16px;border-radius:30px;background:var(--surface);border:1px solid var(--line);font-size:13px;font-weight:700;color:var(--accent)}
.closing>a.closing-tag{display:inline-block;font-size:13px;letter-spacing:0;line-height:1.4;border:1px solid var(--line);padding:8px 16px}
@media(max-width:1150px){.guests{grid-template-columns:1fr 1fr}.guests-heading{grid-column:1/-1}.pass-head{padding:28px 26px 24px}.pass-body{padding:26px 26px 28px}.pass h3{font-size:26px}}
@media(max-width:900px){.track-grid,.pass-grid{grid-template-columns:1fr}.landscape{grid-template-columns:1fr 1fr}.landscape>div:nth-child(3){border-left:0}.landscape>div:nth-child(n+3){border-top:1px solid var(--line)}}
@media(max-width:640px){.guests{grid-template-columns:1fr;gap:28px}.track{padding:26px 24px 28px;min-height:280px;border-radius:22px}.track-num{font-size:84px;right:18px}.track h3{padding-top:48px}.track-join{width:52px;height:52px;margin:-26px 0 0 -26px}.landscape strong{font-size:32px}.landscape>div{padding:20px 18px}.pass-head{padding:26px 26px 22px}.pass-body{padding:24px 26px 26px}.pass h3{font-size:25px}.pass li{font-size:14px}}/* Two-tone headings everywhere: the closing phrase takes the accent. */
.hl{color:var(--accent)}
.testimonials .hl{color:#c9b8ff}
.audience .hl{background:linear-gradient(90deg,#7c3aed,#4f46e5 55%,#2563eb);-webkit-background-clip:text;background-clip:text;color:transparent}
.audience:before{left:calc(50% - 50vw);transform:none}
body{overflow-x:clip}
/* Audience cards: heading only; the description slides in on hover or keyboard focus. */
.audience-content p{max-height:0;margin-top:0;opacity:0;overflow:hidden;transform:translateY(8px);transition:max-height .45s ease,margin-top .35s ease,opacity .35s ease,transform .35s ease}
.audience-grid li:hover .audience-content p,.audience-grid li:focus-within .audience-content p{max-height:140px;margin-top:10px;opacity:1;transform:none}
.audience-grid li:hover:after,.audience-grid li:focus-within:after{background:linear-gradient(180deg,#0b0a1f33 0%,#0b0a1f8c 35%,#0b0a1ff2 70%,#0b0a1f 100%),linear-gradient(135deg,#5b3ce066,transparent 60%)}
.audience-grid li:focus-visible{outline:2px solid #5b3ce0;outline-offset:4px}
@media(hover:none){.audience-content p{max-height:none;margin-top:10px;opacity:1;transform:none}}
/* Speakers: soft lavender band, colour portraits on white cards, pill controls. */
.speakers-section{border-block:0}
.speaker-controls{margin-top:40px;margin-bottom:28px;align-items:center}
.filters{gap:4px;padding:5px;border-radius:100px;background:var(--surface);border:1px solid var(--line)}
.filter-button{min-height:40px;padding:9px 18px;border:0;border-radius:100px;font-size:13px;font-weight:600;color:var(--muted)}
.filter-button:hover{background:var(--surface-2);color:var(--text)}
.filter-button.active{background:linear-gradient(135deg,#7b5cff,#5a3ee0);color:#fff;box-shadow:0 8px 20px #5a3ee040}
.search-field{min-width:300px;padding:0 18px;gap:10px;border:1px solid var(--line);border-bottom:1px solid var(--line);border-radius:100px;background:var(--surface)}
.search-field:focus-within{border-color:var(--accent)}
.search-field>span{font-size:20px}
.search-field input{font-size:14px;padding:13px 0}
/* Speaker cards, poster style: grayscale cut-out on a brand-gradient panel, a slanted outline frame behind it, centred name and role. Hover brings back colour and nudges the frame. */
.speaker-grid{gap:44px 24px}
.speaker-card{display:flex;flex-direction:column;align-items:center;padding:0;border:0;background:none;text-align:center}
.speaker-portrait{position:relative;width:100%;aspect-ratio:1/1;overflow:visible;border-radius:0;background:none}
.speaker-portrait:before,.speaker-portrait:after{content:'';position:absolute;top:10%;bottom:0;left:10%;right:10%}
.speaker-portrait:before{top:4%;border:1.5px solid #7c5cff59;transform:skewX(-12deg);transition:transform .45s cubic-bezier(.2,.8,.2,1),border-color .3s}
.speaker-portrait:after{background:linear-gradient(165deg,#8b5cf6,#5b4be8 55%,#2f5be7);box-shadow:0 18px 34px #3b2fc433}
.speaker-portrait img{position:absolute;z-index:1;top:10%;left:10%;width:80%;height:90%;object-fit:cover;object-position:center top;filter:grayscale(1) contrast(1.08);transition:filter .35s}
.speaker-card:hover .speaker-portrait:before{transform:skewX(-12deg) translate(5px,-5px);border-color:#7c5cffa6}
.speaker-card:hover .speaker-portrait img{filter:none;transform:none}
.speaker-info{display:block;padding:18px 4px 0}
.speaker-info h3{font-size:15.5px;line-height:1.3;font-weight:800;letter-spacing:.02em;text-transform:uppercase}
.speaker-info p{max-width:none;min-height:0;margin-top:6px;line-height:1.5}
.speaker-info p strong{margin-top:2px;color:var(--text);font-weight:500}
.speaker-bottom{margin-top:36px}
.speaker-bottom .pill{flex-shrink:0}
@media(max-width:900px){.search-field{max-width:none;min-width:0}.speaker-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}}
@media(max-width:640px){.filters{width:100%;justify-content:space-between}.filter-button{flex:1;padding:9px 8px;font-size:11.5px}.speaker-grid{gap:32px 14px}.speaker-info{padding:14px 2px 0}.speaker-info h3{font-size:13px}.speaker-info p{font-size:11px}.speaker-bottom{flex-direction:column;align-items:stretch;gap:16px}.speaker-bottom .source-note{max-width:none}.speaker-bottom .pill{justify-content:space-between}}@media(max-width:900px){.speaker-controls{align-items:stretch}.search-field{width:100%}}
/* Speakers always use the light palette and the grained lavender band (shared with the guests of honour above), in every theme. */
.speakers-section{--bg:#f2f2f0;--surface:#fff;--surface-2:#efecf8;--text:#18181b;--muted:#5c5c66;--line:#e2dff0;--accent:#6945a5;--accent-text:#f8f6fc;color-scheme:light;color:var(--text);background:var(--grain),radial-gradient(45% 40% at 100% 0%,#ebe5ff,transparent 70%),radial-gradient(40% 40% at 0% 100%,#f1edff,transparent 70%),#f2f2f0}
.speakers-section .hl{color:#6945a5}.speaker-info{grid-template-columns:1fr}
.speakers-section .section-heading{text-align:center}.speakers-section .section-intro{margin-inline:auto}.speakers-section .speaker-grid{margin-top:44px}
.speaker-bottom{justify-content:center}@media(max-width:640px){.speaker-bottom{align-items:center}}
/* Guests of honour: same card treatment and light palette as the speaker roster. */
.guests{--bg:#f2f2f0;--surface:#fff;--surface-2:#efecf8;--text:#18181b;--muted:#5c5c66;--line:#e2dff0;--accent:#6945a5;--accent-text:#f8f6fc;color-scheme:light;color:var(--text);border-top:0;box-shadow:0 0 0 100vmax #f2f2f0;clip-path:inset(0 -100vmax);background:#f2f2f0}
.guests .hl{color:#6945a5}
.guest{display:flex;flex-direction:column;padding:10px 10px 20px;border-radius:22px;background:#fff;border:1px solid var(--line);transition:transform .3s,box-shadow .3s,border-color .3s}
.guest:hover{transform:translateY(-5px);border-color:#a996ff;box-shadow:0 24px 50px #2d1d8a1f}
.guest-photo{aspect-ratio:1/1.02;border-radius:16px;background:radial-gradient(75% 70% at 50% 25%,#ece6ff,transparent 72%),linear-gradient(180deg,#f6f3ff,#e7e0fb)}
.guest h3{margin-top:16px;padding:0 8px;font-size:19px;line-height:1.3;font-weight:700;letter-spacing:-.02em}
.guest p{margin-top:8px;padding:0 8px;font-size:13px;line-height:1.55;color:var(--muted)}
.guest p strong{display:block;margin-top:6px;color:var(--accent);font-weight:700}
.guest p br{display:none}
@media(max-width:640px){.guest{padding:8px 8px 16px;border-radius:18px}.guest-photo{border-radius:12px}.guest h3{font-size:17px}}
/* Key themes: dark band, sticky intro, cards that stack as you scroll. */
.themes{position:relative;isolation:isolate;color:#f3f1ff;background:radial-gradient(45% 50% at 0% 10%,#5b3ce066,transparent 70%),radial-gradient(40% 50% at 100% 90%,#2d1d8a80,transparent 70%),#0b0a1f}
.themes .eyebrow{color:#c9b8ff}
.themes .hl{color:#c9b8ff}
.themes .section-intro{color:#b4aed6}
.themes-layout{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:72px;align-items:start}
.themes-intro{position:sticky;top:calc(var(--header-h) + 48px)}
.themes-intro .eyebrow{margin-bottom:22px}
.themes-intro .pill{margin-top:36px}
.theme-stack{margin:0;padding:0;list-style:none}
.theme-card{--h:255;position:sticky;top:calc(var(--header-h) + 36px + var(--i) * 22px);display:flex;flex-direction:column;min-height:380px;padding:36px 40px 40px;margin-bottom:32px;border-radius:28px;overflow:hidden;background:radial-gradient(85% 90% at 100% 0%,hsl(var(--h) 72% 58% / .55),transparent 70%),linear-gradient(160deg,#1a1648,#0f0c2b);border:1px solid #ffffff1f;box-shadow:0 -24px 50px #05031a8c}
.theme-card:last-child{margin-bottom:0}
.theme-card:nth-child(2){--h:268}.theme-card:nth-child(3){--h:242}.theme-card:nth-child(4){--h:280}.theme-card:nth-child(5){--h:232}.theme-card:nth-child(6){--h:292}
.theme-num{position:absolute;right:28px;top:6px;font-size:150px;line-height:1;font-weight:800;letter-spacing:-.06em;color:transparent;-webkit-text-stroke:1px #ffffff2e;pointer-events:none}
.theme-card-top{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px}
.theme-name{padding:7px 14px;border-radius:30px;background:#ffffff14;border:1px solid #ffffff2e;font-size:13px;font-weight:700;color:#fff}
.theme-kicker{font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#c9b8ff}
.theme-card h3{margin-top:auto;padding-top:56px;max-width:520px;font-size:clamp(22px,2vw,30px);line-height:1.15;letter-spacing:-.04em;font-weight:800;color:#fff}
.theme-card>p{margin-top:16px;max-width:480px;font-size:15px;line-height:1.7;color:#cfc9ec}
.theme-tags{display:flex;flex-wrap:wrap;gap:8px;margin:24px 0 0;padding:0;list-style:none}
.theme-tags li{padding:6px 12px;border-radius:30px;background:#ffffff0f;border:1px solid #ffffff24;font-size:12px;font-weight:600;color:#e6e1fa}
@media(max-width:1150px){.themes-layout{gap:44px}.theme-card{padding:30px 30px 34px}}
@media(max-width:900px){.themes-layout{grid-template-columns:1fr}.themes-intro{position:static}.theme-card{min-height:340px}}
@media(max-width:640px){.theme-card{top:calc(var(--header-h) + 20px + var(--i) * 14px);min-height:320px;padding:24px 22px 26px;margin-bottom:20px;border-radius:22px}.theme-num{font-size:96px;right:16px;top:10px}.theme-card h3{padding-top:40px;font-size:21px}.theme-card>p{font-size:14px}.themes-intro .pill{margin-top:28px}}/* Theme cards: topic photo under a dark violet wash so the text stays legible. */
.theme-card{background:linear-gradient(180deg,#0b0a1f8c 0%,#0b0a1fcc 45%,#0b0a1ff5 80%),radial-gradient(85% 90% at 100% 0%,hsl(var(--h) 72% 58% / .5),transparent 70%),var(--img,none) center/cover no-repeat,#0f0c2b}.theme-card:nth-child(1){--img:url(../images/compute.jpg)}.theme-card:nth-child(2){--img:url(../images/languages.jpg)}.theme-card:nth-child(3){--img:url(../images/governance.jpg)}.theme-card:nth-child(4){--img:url(../images/responsible-ai.jpg)}.theme-card:nth-child(5){--img:url(../images/startups.jpg)}.theme-card:nth-child(6){--img:url(../images/industry.jpg)}
/* Key themes backdrop, kept minimal: three soft light orbs (violet, blue, pink) drifting slowly, on a viewport-high layer that
   stays in view while the cards scroll over it. clip-path trims the orbs' paint and overflow:clip drops them from the page width
   (so phones don't scroll sideways); unlike overflow:hidden, clip makes no scroll box, so the sticky layer keeps working. */
.themes-backdrop{position:absolute;inset:0;z-index:-1;clip-path:inset(0);overflow:clip;pointer-events:none}
.themes-backdrop-inner{position:sticky;top:0;height:100vh;height:100svh}
.themes-backdrop-inner i{position:absolute;aspect-ratio:1;border-radius:50%;mix-blend-mode:screen;will-change:transform}
.themes-backdrop-inner i:nth-child(1){left:-12vmax;top:-6vmax;width:48vmax;background:radial-gradient(closest-side,#6d4bff70,transparent);animation:themes-orb-a 22s ease-in-out infinite alternate}
.themes-backdrop-inner i:nth-child(2){right:-10vmax;top:28%;width:42vmax;background:radial-gradient(closest-side,#2563eb5c,transparent);animation:themes-orb-b 26s ease-in-out infinite alternate}
.themes-backdrop-inner i:nth-child(3){left:32%;bottom:-14vmax;width:32vmax;background:radial-gradient(closest-side,#c026d33d,transparent);animation:themes-orb-c 30s ease-in-out infinite alternate}
@keyframes themes-orb-a{to{transform:translate(36vw,34vh) scale(1.15)}}
@keyframes themes-orb-b{to{transform:translate(-44vw,-24vh) scale(.9)}}
@keyframes themes-orb-c{to{transform:translate(-22vw,-48vh) scale(1.2)}}
/* Focus sectors: a carousel of equal photo cards (3 and a peek on desktop), with arrows centred below and swipe. It advances
   every 4.5 s while in view and pauses on mouse hover or keyboard focus (app.js). */
.sectors-heading{display:grid;grid-template-columns:1.2fr 1fr;gap:24px 80px;align-items:end}
.sectors-heading .eyebrow{margin-bottom:22px}
.sectors-heading .section-intro{margin-top:0}
.sector-controls{display:flex;justify-content:center;gap:12px;margin-top:8px}
.sector-btn{display:grid;place-items:center;width:48px;height:48px;padding:0;border-radius:50%;border:1px solid #ffffff38;background:#ffffff0f;color:#fff;cursor:pointer;transition:background .25s,border-color .25s}
.sector-btn:hover{background:#ffffff24;border-color:#c9b8ff}
.sector-btn svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.sector-track{display:flex;gap:16px;margin-top:48px;padding:2px 2px 26px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-inline:2px;overscroll-behavior-x:contain;scrollbar-width:none}
.sector-track::-webkit-scrollbar{display:none}
.sector-tile{position:relative;isolation:isolate;overflow:hidden;display:flex;flex:0 0 calc((100% - 48px) / 3.3);align-items:flex-end;height:440px;border-radius:22px;scroll-snap-align:start;background:#0b0a1f;color:#fff}
.sector-tile>img{position:absolute;inset:0;z-index:-2;width:100%;height:100%;object-fit:cover;transition:transform .7s ease}
.sector-tile:after{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,#0b0a1f00 30%,#0b0a1fb3 70%,#0b0a1fe6 100%),linear-gradient(135deg,#5b3ce033,transparent 55%)}
.sector-tile:hover>img{transform:scale(1.06)}
.sector-copy{padding:26px 26px 28px}
.sector-tag{display:inline-block;margin-bottom:14px;padding:6px 12px;border-radius:30px;background:#ffffff1f;border:1px solid #ffffff38;backdrop-filter:blur(8px);font-size:11px;font-weight:800;letter-spacing:.1em;text-transform:uppercase}
.sector-tile h3{font-size:26px;line-height:1.12;font-weight:800;letter-spacing:-.035em}
.sector-copy p{margin-top:10px;max-width:420px;font-size:14px;line-height:1.6;color:#ddd8f3}
@media(max-width:1150px){.sector-tile{flex-basis:calc((100% - 32px) / 2.4);height:400px}}
@media(max-width:900px){.sectors-heading{grid-template-columns:1fr}}
@media(max-width:640px){.sector-track{gap:12px;margin-top:28px}.sector-tile{flex-basis:84%;height:360px;border-radius:16px}.sector-copy{padding:20px}.sector-tile h3{font-size:22px}.sector-copy p{font-size:13px}.sector-tag{margin-bottom:10px;font-size:10px}.sector-btn{width:42px;height:42px}}/* Focus sectors: dark band with soft violet glows behind the carousel. */
.sectors{position:relative;isolation:isolate;overflow:hidden;color:#f3f1ff;background:radial-gradient(45% 55% at 100% 0%,#5b3ce066,transparent 70%),radial-gradient(40% 50% at 0% 100%,#2d1d8a80,transparent 70%),#0b0a1f}
.sectors .eyebrow,.sectors .hl{color:#c9b8ff}
.sectors .section-intro{color:#b4aed6}
.sector-tile{box-shadow:0 0 0 1px #ffffff1a,0 24px 50px #00000066}/* FAQ: full-width dark band, centred heading and question cards. */
.faq{position:relative;isolation:isolate;display:block;text-align:center;color:#f3f1ff;border-top:0}
.faq:before{content:'';position:absolute;top:0;bottom:0;left:calc(50% - 50vw);width:100vw;z-index:-1;background:radial-gradient(40% 60% at 50% 0%,#5b3ce073,transparent 70%),radial-gradient(35% 50% at 100% 100%,#2d1d8a80,transparent 70%),#0b0a1f}
.faq h2{max-width:none;margin:0 auto;font-size:clamp(34px,4vw,56px)}
.faq .hl{color:#c9b8ff}
.faq-list{max-width:820px;margin:44px auto 0;text-align:left;display:grid;gap:12px}
.faq details{border:1px solid #ffffff1f;border-radius:18px;background:#ffffff0a;transition:border-color .25s,background .25s}
.faq details:hover{border-color:#ffffff38}
.faq details[open]{border-color:#a996ff;background:#ffffff12}
.faq summary{padding:22px 24px;font-size:16px;font-weight:600;color:#fff}
.faq summary span{display:grid;place-items:center;flex-shrink:0;width:34px;height:34px;border-radius:50%;background:#ffffff14;color:#c9b8ff;font-size:20px;transition:transform .25s,background .25s}
.faq details[open] summary span{background:#7b5cff;color:#fff}
.faq details p{padding:0 70px 22px 24px;font-size:14px;line-height:1.8;color:#cfc9ec}
.faq summary:focus-visible{outline-color:#c9b8ff;outline-offset:-2px;border-radius:18px}
@media(max-width:640px){.faq h2{font-size:32px}.faq-list{margin-top:30px;gap:10px}.faq summary{padding:18px;font-size:14.5px}.faq details p{padding:0 18px 18px;font-size:13px}}/* Larger paragraph sizes across the site (kept last so they win over earlier breakpoints). */
body{font-size:16px}
@media(min-width:641px){
.section-intro{font-size:18px;line-height:1.7}
.about-body{font-size:17px}.about-lead{font-size:22px}
.audience-head p{font-size:17px}.audience-content p{font-size:15.5px}
.theme-card>p,.track p{font-size:16.5px}
.sector-copy p{font-size:15.5px}
.speaker-info p{font-size:14px}.guest p{font-size:15px}
.quote blockquote{font-size:15.5px}
.pass li{font-size:16.5px}
.faq summary{font-size:17.5px}.faq details p{font-size:16px}
.moments-grid figcaption{font-size:16px}
}
@media(max-width:640px){
.section-intro{font-size:16px}
.about-body{font-size:15.5px}.about-lead{font-size:18px}
.audience-head p,.audience-content p,.sector-copy p,.theme-card>p,.track p{font-size:15px}
.speaker-info p{font-size:12.5px}.guest p{font-size:14px}
.quote blockquote,.pass li,.faq details p{font-size:15px}.faq summary{font-size:15.5px}
}@media(min-width:641px){.stat>span{font-size:14.5px}.source-note{font-size:12px}.text-link{font-size:14px}.landscape span{font-size:14px}}@media(max-width:640px){.source-note{font-size:11px}.text-link{font-size:13px}}
/* Footer, minimal and always dark: logo with venue and date beside three contact columns; a line drawing of Delhi's skyline
   (Qutub Minar, Humayun's Tomb, India Gate, Lotus Temple, Red Fort, Jama Masjid) stands on the rule above the bottom bar of
   copyright and social links. The outline comes from stroking every shape, then filling them in the footer colour. */
.site-footer{color:#f3f1ff;background:#06051a;padding-top:64px}
.site-footer :focus-visible{outline-color:#c9b8ff}
.footer-top{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2.2fr);gap:48px;align-items:start}
.footer-logo{display:inline-block}
.footer-logo img{width:180px;height:auto}
.footer-meta{display:flex;flex-wrap:wrap;gap:8px 20px;margin:18px 0 0;padding:0;list-style:none;font-size:14px;color:#b4aed6}
.footer-meta li{display:flex;align-items:center;gap:8px}
.footer-meta strong{color:#fff;font-weight:600}
.footer-meta svg,.footer-contact-grid a svg{fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}
.footer-meta svg{width:17px;height:17px;color:#c9b8ff}
.footer-contact h2{font-size:11px;font-weight:700;line-height:1.5;letter-spacing:.13em;text-transform:uppercase;color:#8f89b3}
.footer-contact-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin-top:18px}
.footer-contact-grid>div{display:flex;flex-direction:column;align-items:flex-start;gap:6px;min-width:0}
.footer-contact-grid h3{margin-bottom:4px;font-size:15px;font-weight:700;color:#fff}
.footer-contact-grid a{display:inline-flex;align-items:center;gap:8px;max-width:100%;font-size:14px;color:#c9b8ff;border-bottom:1px solid transparent;overflow-wrap:anywhere;transition:color .2s,border-color .2s}
.footer-contact-grid a:hover{color:#fff;border-color:#c9b8ff}
.footer-contact-grid a svg{width:15px;height:15px;opacity:.8}
.footer-skyline{display:block;width:min(680px,100%);height:auto;margin:48px auto 0}
.skyline-line{fill:none;stroke:url(#skyline-stroke);stroke-width:2.4;stroke-linejoin:round}
.skyline-fill{fill:#06051a}
.skyline-detail{fill:none;stroke:#c9b8ff;stroke-width:1;stroke-opacity:.45}
.skyline-line *,.skyline-detail *{vector-effect:non-scaling-stroke}
.footer-bottom{display:flex;align-items:center;justify-content:space-between;gap:14px 28px;flex-wrap:wrap;padding:18px 0 24px;border-top:1px solid #c9b8ff4d;font-size:13px;color:#8f89b3}
.footer-social{display:flex;gap:8px;margin:0;padding:0;list-style:none}
.footer-social a{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;border:1px solid #ffffff24;transition:background .25s,border-color .25s}
.footer-social a:hover{background:#7b5cff;border-color:#7b5cff}
.footer-social svg{width:16px;height:16px;fill:#fff}
@media(max-width:1150px){.footer-top{grid-template-columns:1fr;gap:36px}}
@media(max-width:900px){.footer-contact-grid{grid-template-columns:1fr 1fr}.footer-bottom{flex-direction:column;text-align:center}}
@media(max-width:640px){.site-footer{padding-top:48px}.footer-logo img{width:160px}.footer-contact-grid{grid-template-columns:1fr;gap:20px}.footer-skyline{margin-top:36px}.footer-bottom{flex-direction:column;text-align:center}}
/* Navigation: larger section links with an underline on the section in view. */
.desktop-nav{gap:30px}
.desktop-nav a{position:relative;font-size:15px;font-weight:600;color:var(--muted)}
.desktop-nav a:after{content:'';position:absolute;left:0;right:0;bottom:4px;height:2px;border-radius:2px;background:var(--accent);transform:scaleX(0);transition:transform .25s}
.desktop-nav a:hover:after,.desktop-nav a[aria-current]:after{transform:scaleX(1)}
.desktop-nav a[aria-current]{color:var(--text)}
.site-header.at-top .desktop-nav a:after{background:#c9b8ff}
.mobile-nav a{font-size:18px;font-weight:600;padding:15px 0}
.mobile-nav a[aria-current]{color:var(--accent)}
/* Past editions: a dropdown in the main navigation (a small dark panel under the toggle; click or keyboard opens it, and hover too
   on mouse devices) and a disclosure in the mobile menu. Both lead to the earlier editions' pages, in a new tab. */
.nav-dropdown{position:relative}
.nav-dropdown-toggle{display:inline-flex;align-items:center;gap:6px;padding:12px 0;font-size:15px;font-weight:600;color:var(--muted);transition:color .2s}
.nav-dropdown-toggle svg,.mobile-dropdown summary svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;transition:transform .25s}
.nav-dropdown-toggle:hover,.nav-dropdown.is-open .nav-dropdown-toggle{color:var(--text)}
.site-header.at-top .nav-dropdown-toggle{color:#ffffffb3}
.site-header.at-top .nav-dropdown-toggle:hover,.site-header.at-top .nav-dropdown.is-open .nav-dropdown-toggle{color:#fff}
.nav-dropdown.is-open .nav-dropdown-toggle svg{transform:rotate(180deg)}
.nav-dropdown-menu{position:absolute;top:100%;left:50%;z-index:5;display:grid;gap:2px;min-width:260px;padding:8px;border-radius:16px;background:#0f0d22;border:1px solid #ffffff1f;box-shadow:0 20px 50px #00000066;opacity:0;visibility:hidden;transform:translate(-50%,8px);transition:opacity .2s,transform .2s,visibility .2s}
.nav-dropdown.is-open .nav-dropdown-menu{opacity:1;visibility:visible;transform:translate(-50%,0)}
@media(hover:hover){.nav-dropdown:hover .nav-dropdown-menu{opacity:1;visibility:visible;transform:translate(-50%,0)}.nav-dropdown:hover .nav-dropdown-toggle svg{transform:rotate(180deg)}}
.site-header .desktop-nav .nav-dropdown-menu a{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:11px 14px;white-space:nowrap;border-radius:10px;font-size:14.5px;font-weight:600;color:#f3f1ff;transition:background .2s,color .2s}
.site-header .desktop-nav .nav-dropdown-menu a:hover{background:#7b5cff33;color:#fff}
.site-header .desktop-nav .nav-dropdown-menu a:after{display:none}
.nav-ext{flex-shrink:0;width:14px;height:14px;fill:none;stroke:#c9b8ff;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.mobile-dropdown{border-bottom:1px solid var(--line)}
.mobile-dropdown summary{display:flex;align-items:center;justify-content:space-between;padding:15px 0;font-size:18px;font-weight:600;list-style:none;cursor:pointer}
.mobile-dropdown summary::-webkit-details-marker{display:none}
.mobile-dropdown[open] summary svg{transform:rotate(180deg)}
.mobile-nav .mobile-dropdown a{display:flex;align-items:center;justify-content:space-between;padding:12px 0 12px 16px;border-bottom:0;font-size:16px;font-weight:500;color:var(--muted)}
.mobile-nav .mobile-dropdown a:last-child{padding-bottom:18px}
@media(max-width:1150px){.nav-dropdown-toggle{font-size:14px}}
@media(max-width:1150px){.desktop-nav{gap:20px}.desktop-nav a{font-size:14px}}.guests{padding-bottom:40px}.speakers-section{padding-top:40px}@media(max-width:640px){.guests{padding-bottom:28px}.speakers-section{padding-top:28px}}
/* Mobile menu CTA: full-width pill, matching the site's primary buttons. */
.mobile-nav a.mobile-cta{display:flex;justify-content:space-between;align-items:center;width:100%;margin-top:22px;padding:6px 6px 6px 24px;min-height:56px;border-bottom:0;border-radius:100px;font-size:16px;font-weight:700;color:#fff}
.mobile-nav a.mobile-cta .pill-icon{background:#fff;color:#4a2fd2}
/* About story: three stacked cards under the hero, each overlapping the last: light intro with photo tiles, lavender journey card,
   dark numbers card with a dot wave (app.js). Same palette in both themes, on a dark band that continues the hero. */
.story{--story-ink:#14143a;--story-muted:#4f4f75;--story-brand:#4338ca;position:relative;padding:8px 24px 72px;background:radial-gradient(45% 35% at 0% 20%,#2b2fd040,transparent 70%),radial-gradient(40% 35% at 100% 75%,#4f2be03d,transparent 70%),#020205}
.story-stack{max-width:1320px;margin:0 auto}
.story-card{--pad:clamp(28px,5vw,72px);--overlap:36px;position:relative;isolation:isolate;overflow:hidden;padding:var(--pad);border-radius:36px;color:var(--story-ink)}
.story-card+.story-card{margin-top:calc(-1 * var(--overlap));box-shadow:0 -10px 26px #0b0b2a1f}
.story-card:not(:last-child){padding-bottom:calc(var(--pad) + var(--overlap))}
.story-eyebrow{margin-bottom:18px;color:var(--story-brand)}
.story-card h2{font-size:clamp(30px,3vw,44px);line-height:1.08;letter-spacing:-.04em;font-weight:600;color:var(--story-ink)}
.story-card h2 span{background:linear-gradient(90deg,#7c3aed,#4f46e5 55%,#2563eb);-webkit-background-clip:text;background-clip:text;color:transparent}
.story-card h3{max-width:16em;font-size:clamp(24px,2.4vw,34px);line-height:1.15;letter-spacing:-.035em;font-weight:600}
.story-copy>p{max-width:30em;margin-top:16px;font-size:16px;line-height:1.7;color:var(--story-muted)}
.story-copy>.story-lead{margin-top:22px;font-size:18px;line-height:1.55;font-weight:600;color:var(--story-ink)}
.story-link{display:inline-flex;align-items:center;gap:10px;margin-top:26px;font-size:15px;font-weight:700;color:var(--story-brand)}
.story-link svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;transition:transform .25s}
.story-link:hover svg{transform:translateX(4px)}
.story :focus-visible{outline-color:var(--story-brand)}
/* Card 1: copy beside one large event photo in natural colour, the session formats as glass labels on its foot. */
.story-intro{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);gap:clamp(32px,5vw,72px);align-items:center;background:linear-gradient(180deg,#f3f4ff,#e8eafb)}
.story-photo{position:relative;isolation:isolate;overflow:hidden;margin:0;aspect-ratio:4/3;border-radius:28px;background:#0b0b2a;box-shadow:0 24px 48px #1e1b6b33}
.story-photo img{width:100%;height:100%;object-fit:cover;object-position:center 40%;transition:transform .7s cubic-bezier(.2,.8,.2,1)}
.story-photo:after{content:'';position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,#0b0b2a00 55%,#0b0b2ab3),radial-gradient(80% 60% at 20% 0%,#7c8bff33,transparent 70%);pointer-events:none}
.story-photo:hover img{transform:scale(1.04)}
.story-photo figcaption{position:absolute;left:24px;right:24px;bottom:22px;z-index:2;display:flex;flex-wrap:wrap;gap:8px}
.story-photo figcaption span{padding:8px 14px;border:1px solid #ffffff3d;border-radius:999px;font-size:13.5px;font-weight:700;letter-spacing:-.01em;color:#fff;background:#ffffff1f;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
/* Card 2: the 2024 Bengaluru photo, toned lavender and faded in from the left. */
.story-journey{min-height:380px;display:flex;align-items:center;background:linear-gradient(115deg,#efecff 0%,#ddd6ff 52%,#cdc3ff 100%)}
.story-journey .story-copy{position:relative;z-index:1;max-width:min(480px,46%)}
.story-journey-photo{position:absolute;top:0;right:0;bottom:0;width:60%;background:#c9bfff;-webkit-mask-image:linear-gradient(90deg,transparent,#000 42%);mask-image:linear-gradient(90deg,transparent,#000 42%)}
.story-journey-photo img{width:100%;height:100%;object-fit:cover;object-position:30% center;mix-blend-mode:luminosity;opacity:.85}
.story-journey-photo:after{content:'';position:absolute;inset:0;background:linear-gradient(200deg,#7c6bff4d,#ddd6ff00 60%)}
/* Card 3: headline and published figures over a rolling field of dots, with the robot hand glowing behind. */
.story-numbers{min-height:380px;display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.5fr);grid-template-rows:auto 1fr;gap:28px 56px;color:#fff;background:radial-gradient(60% 80% at 85% 0%,#3b2fd066,transparent 65%),linear-gradient(180deg,#0e0e38,#05051a);box-shadow:inset 0 0 0 1px #ffffff14,0 -10px 26px #0b0b2a26}
.story-numbers h3{color:#fff}
.story-numbers-art{position:absolute;right:-6%;top:-10%;z-index:-1;width:min(60%,760px);height:auto;opacity:.4;mix-blend-mode:screen;-webkit-mask-image:radial-gradient(65% 65% at 55% 45%,#000 35%,transparent 75%);mask-image:radial-gradient(65% 65% at 55% 45%,#000 35%,transparent 75%)}
.story-wave{position:absolute;left:0;right:0;bottom:0;z-index:-1;width:100%;height:70%;pointer-events:none}
.story-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin:0;padding:0;list-style:none}
.story-stats li{display:flex;flex-direction:column;gap:10px;padding:2px 22px 0;border-left:1px solid #ffffff2e;font-size:14.5px;font-weight:600;color:#c9c6ee}
.story-stats li:first-child{border-left:0;padding-left:0}
.story-stats strong{font-size:clamp(38px,4vw,56px);line-height:1.05;font-weight:500;letter-spacing:-.04em;background:linear-gradient(180deg,#fff 20%,#a9b4ff);-webkit-background-clip:text;background-clip:text;color:transparent}
.story-stats strong{font-variant-numeric:tabular-nums}
/* Count-up (app.js adds .will-count, then .is-counting on scroll): each figure rises in, one after another. */
.story-stats.will-count li{opacity:0;transform:translateY(18px);transition:opacity .7s ease,transform .9s cubic-bezier(.2,.8,.2,1);transition-delay:calc(var(--i,0) * 150ms)}
.story-stats.will-count.is-counting li{opacity:1;transform:none}
.story-note{grid-column:1/-1;align-self:end;font-size:12.5px;color:#9d9ac4}
.about-audience{padding-top:0}
.about-audience .audience{margin-top:0}
@media(max-width:1000px){.story-intro,.story-numbers{grid-template-columns:1fr}.story-journey .story-copy{max-width:56%}.story-numbers-art{opacity:.3}}
@media(max-width:640px){
.story{padding:4px 12px 48px}
.story-card{--pad:26px;--overlap:26px;border-radius:26px}
.story-copy>.story-lead{font-size:16.5px}.story-copy>p{font-size:15px}
.story-photo{border-radius:20px}
.story-photo figcaption{left:14px;right:14px;bottom:14px;gap:6px}
.story-photo figcaption span{padding:6px 11px;font-size:12px}
.story-journey{flex-direction:column;align-items:stretch;min-height:0;padding-top:0}
.story-journey-photo{position:relative;order:-1;width:auto;height:220px;margin:0 calc(-1 * var(--pad)) 22px;-webkit-mask-image:linear-gradient(180deg,#000 55%,transparent);mask-image:linear-gradient(180deg,#000 55%,transparent)}
.story-journey .story-copy{max-width:none}
.story-numbers{min-height:0}
.story-numbers-art{width:120%;right:-35%;top:auto;bottom:4%;opacity:.28}
.story-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:26px 0}
.story-stats li:nth-child(3){border-left:0;padding-left:0}
.story-wave{height:45%}
}
/* Who you'll meet as an expanding gallery: one panel is always open. app.js steps to the next one every 4.5 s while the section is
   in view, pauses while the pointer or focus is inside, and opens a panel on
   hover, focus or tap. Closed panels show a short label; the open one shows the photo in colour with its title and description.
   On narrow screens it becomes an accordion. */
.audience-grid{display:flex;gap:14px;height:540px}
.audience-grid li{flex:1 1 0;min-width:0;min-height:0;cursor:pointer;border-radius:24px;transition:flex-grow .8s cubic-bezier(.2,.8,.2,1),height .7s cubic-bezier(.2,.8,.2,1),box-shadow .35s}
.audience-grid li:hover{transform:none}
.audience-grid li.is-active{flex-grow:4.2;cursor:default}
.audience-grid li>img{filter:saturate(.55) brightness(.9);transition:transform .9s cubic-bezier(.2,.8,.2,1),filter .6s}
.audience-grid li.is-active>img{filter:none;transform:scale(1.03)}
.audience-grid li:before{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,#1b1450a6,#0b0a1fe6);transition:opacity .6s}
.audience-grid li.is-active:before{opacity:0}
.audience-label{position:absolute;left:24px;bottom:28px;writing-mode:vertical-rl;transform:rotate(180deg);font-size:18px;font-weight:700;letter-spacing:-.01em;white-space:nowrap;color:#fff;transition:opacity .3s .25s}
.audience-grid li.is-active .audience-label{opacity:0;transition-delay:0s}
.audience-content{position:absolute;left:0;right:0;bottom:0;min-width:340px;padding:30px;opacity:0;transform:translateY(14px);transition:opacity .25s,transform .25s}
.audience-grid li.is-active .audience-content{opacity:1;transform:none;transition:opacity .5s .35s,transform .6s .35s cubic-bezier(.2,.8,.2,1)}
.audience-content h4{font-size:24px}
.audience-grid li .audience-content p{max-width:30em;max-height:none;margin-top:10px;opacity:1;transform:none;overflow:visible}
/* Lighter overlay: one gradient from the bottom only (dark behind the text, clear over the top half of the photo); closed panels
   are just slightly dimmed, and the text carries a soft shadow. */
.audience-grid li:after,.audience-grid li:hover:after,.audience-grid li:focus-within:after{background:linear-gradient(0deg,#0b0a1fe0 0%,#0b0a1f99 24%,#0b0a1f33 46%,#0b0a1f00 62%)}
.audience-grid li:before{background:#0b0a1f;opacity:.28}
.audience-grid li>img{filter:saturate(.85)}
.audience-label,.audience-content h4,.audience-content p{text-shadow:0 1px 14px #0b0a1fb3}
/* The open panel's title switches to the brand gradient (a drop-shadow, since text-shadow would sit on top of clipped text). */
.audience-grid li.is-active .audience-content h4{background:linear-gradient(90deg,#d8b4fe,#a5b4fc 45%,#7dd3fc);-webkit-background-clip:text;background-clip:text;color:transparent;text-shadow:none;filter:drop-shadow(0 1px 10px #0b0a1fcc)}
@media(max-width:1150px){.audience-grid{height:500px;gap:10px}.audience-label{font-size:16px;left:20px}}
@media(max-width:900px){
.audience-grid{flex-direction:column;height:auto;gap:10px}
.audience-grid li{flex:none;height:84px;border-radius:18px}
.audience-grid li.is-active{height:380px}
.audience-label{left:22px;top:42px;bottom:auto;writing-mode:horizontal-tb;transform:translateY(-50%);font-size:17px}
.audience-content{min-width:0;padding:22px}
.audience-content h4{font-size:20px}
.audience-grid li:before{background:linear-gradient(90deg,#0b0a1fd9,#0b0a1fa6 60%,#0b0a1f33);opacity:1}
}
@media(prefers-reduced-motion:reduce){.audience-grid li,.audience-grid li *,.audience-grid li:before{transition:none!important}}
/* Guests of honour: the speaker roster's look, in both themes. Same light palette and lavender band with a fine film grain (shared with
   the speaker section below; the glows sit top-left and bottom-right so the bottom one meets the speakers' top-right glow and the two
   read as one band), and the speaker poster card: grayscale cut-out on a brand-gradient panel,
   a slanted outline frame behind it, centred uppercase name, then role and organisation; hover brings back colour and nudges the frame.
   The cards rise in, one after the other, the first time the section scrolls into view (app.js adds .will-reveal, then .is-in). */
.guests,.speakers-section{--grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='g' color-interpolation-filters='sRGB'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='3 0 0 0 -1 3 0 0 0 -1 3 0 0 0 -1 0 0 0 0 .08'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23g)'/%3E%3C/svg%3E")}
.guests{--bg:#f2f2f0;--surface:#fff;--surface-2:#efecf8;--text:#18181b;--muted:#5c5c66;--line:#e2dff0;--accent:#6945a5;--accent-text:#f8f6fc;color-scheme:light;position:relative;isolation:isolate;grid-template-columns:repeat(4,minmax(0,1fr));align-items:start;gap:44px 24px;padding-top:104px;color:var(--text);background:none;box-shadow:none}
.guests:before{content:'';position:absolute;top:0;bottom:0;left:calc(50% - 50vw);width:100vw;z-index:-1;background:var(--grain),radial-gradient(40% 40% at 0% 0%,#f1edff,transparent 70%),radial-gradient(45% 40% at 100% 100%,#ebe5ff,transparent 70%),#f2f2f0;pointer-events:none}
.guests-heading{grid-column:1/-1;justify-self:center;max-width:640px;margin-bottom:0;text-align:center}
.guests .eyebrow{color:var(--accent)}
.guests .eyebrow span{padding:0 6px;color:inherit;opacity:.6}
.guests h2{margin-top:14px;color:var(--text)}
.guests .hl{background:linear-gradient(90deg,#7c3aed,#4f46e5 55%,#2563eb);-webkit-background-clip:text;background-clip:text;color:transparent}
.guests .section-intro{margin-inline:auto;color:var(--muted)}
/* Quarter-width cards, like the speaker grid; the first starts in column 2 so the pair sits centred. */
.guest:first-of-type{grid-column-start:2}
.guest{display:flex;flex-direction:column;align-items:center;min-width:0;padding:0;border:0;border-radius:0;background:none;box-shadow:none;text-align:center}
.guest:hover{transform:none;box-shadow:none}
.guest-photo{position:relative;width:100%;aspect-ratio:1/1;overflow:visible;border-radius:0;background:none}
.guest-photo:before,.guest-photo:after{content:'';position:absolute;top:10%;bottom:0;left:10%;right:10%}
.guest-photo:before{top:4%;border:1.5px solid #7c5cff59;transform:skewX(-12deg);transition:transform .45s cubic-bezier(.2,.8,.2,1),border-color .3s}
.guest-photo:after{background:linear-gradient(165deg,#8b5cf6,#5b4be8 55%,#2f5be7);box-shadow:0 18px 34px #3b2fc433}
.guest-photo img{position:absolute;z-index:1;top:10%;left:10%;width:80%;height:90%;object-fit:cover;object-position:center top;filter:grayscale(1) contrast(1.08);transform:none;transition:filter .35s}
.guest:hover .guest-photo:before{transform:skewX(-12deg) translate(5px,-5px);border-color:#7c5cffa6}
.guest:hover .guest-photo img{filter:none;transform:none}
.guest-info{width:100%;margin:0;padding:18px 4px 0}
.guest h3{margin:0;padding:0;font-size:15.5px;line-height:1.3;font-weight:800;letter-spacing:.02em;text-transform:uppercase;color:var(--text)}
.guest p{margin-top:6px;padding:0;font-size:14px;line-height:1.5;font-weight:400;letter-spacing:0;color:var(--muted)}
.guest p strong{display:block;margin-top:2px;font-size:inherit;line-height:inherit;font-weight:500;color:var(--text)}
@keyframes guest-in{from{opacity:0;transform:translateY(32px)}}
.guests.will-reveal:not(.is-in) .guest{opacity:0}
.guests.is-in .guest{animation:guest-in 1s cubic-bezier(.2,.8,.2,1) backwards;animation-delay:calc(var(--i,0) * 160ms)}
@media(max-width:1150px){.guests{padding-top:88px}}
@media(max-width:900px){.guests{grid-template-columns:repeat(2,minmax(0,1fr));gap:44px 16px}.guest:first-of-type{grid-column-start:auto}}
@media(max-width:640px){.guests{padding-top:64px;gap:32px 14px}.guest-info{padding:14px 2px 0}.guest h3{font-size:13px}.guest p{font-size:12.5px}}
@media(prefers-reduced-motion:reduce){.guests .guest,.guest-photo:before,.guest-photo img{transition:none;animation:none}}
/* Section heading entrance (guests of honour, speakers, why attend, testimonials). app.js splits the title into words (.w; the highlighted phrase stays whole),
   adds .head-reveal, then .head-in once the heading is in view: eyebrow first, the words one by one out of a blur, then the intro. */
@keyframes head-rise{from{opacity:0;transform:translateY(.45em);filter:blur(10px)}}
.head-reveal h2 .w{display:inline-block}
.head-reveal:not(.head-in) :is(.eyebrow,.partner-kicker,h2 .w,.section-intro,.head-after){opacity:0}
.head-in :is(.eyebrow,.partner-kicker){animation:head-rise .7s cubic-bezier(.2,.8,.2,1) backwards}
.head-in h2 .w{animation:head-rise .9s cubic-bezier(.2,.8,.2,1) backwards;animation-delay:calc(150ms + var(--i,0) * 110ms)}
.head-in :is(.section-intro,.head-after){animation:head-rise .9s cubic-bezier(.2,.8,.2,1) backwards;animation-delay:calc(250ms + var(--n,0) * 110ms)}
/* Scroll reveal for blocks below the hero (app.js adds .reveal, then .is-in once the block is in view; skipped for reduced
   motion). --d staggers blocks that arrive together. */
@keyframes reveal-rise{from{opacity:0;transform:translateY(40px)}}
.reveal:not(.is-in){opacity:0}
.reveal.is-in{animation:reveal-rise .9s cubic-bezier(.2,.8,.2,1) backwards;animation-delay:var(--d,0ms)}
/* Journey title: a small inline route between "Bengaluru" and "New Delhi". A plane flies along the dashed line (tilting on take-off and
   landing), drawing a gradient trail, then fades and loops. Sized in em, so it scales with the heading.
   Reduced motion shows the plane landed. */
.story-journey h3{font-size:clamp(24px,2.2vw,32px)}
.story-journey h3 .route-word{white-space:nowrap;background:linear-gradient(90deg,#7c3aed,#4f46e5 55%,#2563eb);-webkit-background-clip:text;background-clip:text;color:transparent}
.route-inline{position:relative;display:inline-block;width:2.1em;height:1em;margin:0 .06em;vertical-align:-.14em}
.route-inline:before{content:'';position:absolute;left:.14em;right:.14em;top:60%;border-top:2px dashed #6d5df58c}
.route-inline:after{content:'';position:absolute;left:0;right:0;top:60%;height:.26em;margin-top:-.12em;background:radial-gradient(circle,#4f46e5 0 .07em,#fff .075em .1em,#4f46e500 .105em) left center/.26em .26em no-repeat,radial-gradient(circle,#4f46e5 0 .07em,#fff .075em .1em,#4f46e500 .105em) right center/.26em .26em no-repeat}
.route-trail{position:absolute;left:.14em;right:.14em;top:60%;height:2px;margin-top:0;background:linear-gradient(90deg,#9333ea,#2563eb);border-radius:2px;transform-origin:left}
.route-plane{position:absolute;z-index:1;left:calc(100% - .14em);top:60%;width:.66em;height:.66em;margin:-.36em 0 0 -.33em;fill:#4338ca;filter:drop-shadow(0 .06em .08em #4338ca66)}
@keyframes inline-fly{0%{left:.14em;opacity:0;transform:rotate(-16deg)}8%{opacity:1}20%{transform:translateY(-.12em) rotate(-6deg)}55%{transform:translateY(-.12em) rotate(0)}72%{left:calc(100% - .14em);opacity:1;transform:rotate(10deg)}86%,100%{left:calc(100% - .14em);opacity:0;transform:none}}
@keyframes inline-trail{0%{transform:scaleX(0);opacity:1}72%,86%{transform:scaleX(1);opacity:1}100%{transform:scaleX(1);opacity:0}}
@media(prefers-reduced-motion:no-preference){.route-plane{animation:inline-fly 4s cubic-bezier(.45,0,.3,1) infinite}.route-trail{animation:inline-trail 4s cubic-bezier(.45,0,.3,1) infinite}}
/* Awards page (award.html), built from the past editions' awards content. Dark bands reuse .apart-band (glow, faint grid, film grain);
   the jury band reuses .speakers-section and the speaker poster cards. register.js runs the header; award.js turns the category
   groups into tabs (all groups list without JS) and adds .aw-rise / .is-in so cards rise in. */
.award-page .apart-band .eyebrow,.award-page .apart-band .hl{color:#c9b8ff}
.award-page .section-heading .section-intro{margin-inline:auto}
.aw-cats .section-heading,.aw-steps .section-heading{text-align:center}
/* Hero: the home page's full-screen stage (.hero; header over it) as a custom awards night, no photography. .aw-scene holds the
   WebGL backdrop (award.js: gold bead curtains, bokeh, violet haze, floor glitter, spotlight beams) and an SVG of the podium, trophy
   and spotlight cans; both use units of the scene height from its centre, so they always line up (the SVG slices to the height).
   The hero keeps a 16:9 shape (capped at the screen height): the lockup and title sit in the space above the trophy, the status
   and actions under the podium. Below 900px the scene keeps that composition in a taller box and the actions follow it. */
.aw-hero{--hero-accent:#f3d08a;min-height:0;height:clamp(600px,100svh,56.25vw)}
.aw-hero .hero-bg{background:radial-gradient(45% 60% at 50% 40%,#3b0f8f,transparent 72%),#0b0219}
.aw-scene{position:absolute;inset:0;overflow:hidden}
.aw-props{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.aw-trophy-star{transform-box:fill-box;transform-origin:center}
@media(prefers-reduced-motion:no-preference){.aw-hero .hero-inner>.aw-scene{animation:aw-fade-in 1.2s ease both}.aw-trophy-star{animation:trophy-star 3s ease-in-out infinite}}
@keyframes aw-fade-in{from{opacity:0}}
@keyframes trophy-star{50%{opacity:.75;transform:scale(1.12)}}
.aw-hero-top{position:absolute;top:14.5%;left:0;right:0;display:flex;flex-direction:column;align-items:center;padding:0 24px}
.aw-hero-bottom{position:absolute;top:86%;bottom:0;left:0;right:0;display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:12px;padding:0 24px 6px}
.aw-hero-brand{width:clamp(240px,26vw,400px);margin-bottom:4px}
.aw-hero-brand:before{inset:-60% -30%;background:radial-gradient(closest-side,#14043a99,#14043a00)}
.aw-hero-brand:after{-webkit-mask-image:url(../images/india-ai-awards-logo.webp);mask-image:url(../images/india-ai-awards-logo.webp)}
.aw-hero h1{max-width:30em;margin-top:12px;font-size:clamp(24px,2.2vw,34px);text-shadow:0 2px 18px #0b021f99}
.aw-hero h1 em{--flow:linear-gradient(90deg,#f6d27a 0%,#fff1c1 18%,#e3a83e 36%,#fff7dd 47%,#e3a83e 58%,#f6d27a 76%,#fff1c1 100%);filter:drop-shadow(0 0 24px #f5b54a40)}
.aw-status{display:inline-flex;align-items:center;gap:10px;min-height:44px;padding:8px 16px;border-radius:100px;border:1px solid #f3d08a4d;background:#0b021f80;backdrop-filter:blur(6px);font-size:13px;font-weight:600;color:#fbeccc}
.aw-status span{width:8px;height:8px;border-radius:50%;background:#f6d27a;box-shadow:0 0 0 4px #f6d27a33}
.aw-hero-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:12px}
.aw-hero .pill-primary{background:linear-gradient(135deg,#f9dc8c,#d39a36 55%,#b07418);color:#2a0507;box-shadow:0 12px 30px #d39a3659}
.aw-hero .pill-primary:hover{box-shadow:0 16px 36px #d39a368c}
.aw-hero .pill-primary .pill-icon{background:#2a0507;color:#f9dc8c}
.aw-pill-ghost{border:1px solid #f3d08a59;background:#0b021f66;color:#fff}
.aw-pill-ghost:hover{border-color:#f3d08a;background:#ffffff14}
.aw-pill-ghost .pill-icon{border:1px solid #f3d08a73}
@media(max-width:900px){.aw-hero{height:auto}.aw-hero .hero-bg{background:#0b0219}.aw-stats li{flex-direction:column;gap:12px;text-align:center}.aw-hero .hero-inner{padding:0}.aw-scene{position:relative;flex-shrink:0;width:100vw;height:clamp(560px,160vw,640px)}.aw-hero-bottom{position:static;flex-direction:column;gap:16px;padding:6px 24px 44px}}
/* Numbers band under the hero: the 2026 figures with gold line icons, on the hero's floor colour so the two read as one. */
.aw-stats-band{position:relative;padding:4px 0 44px;background:radial-gradient(45% 80% at 50% 55%,#2a0d5259,transparent 70%),#0b0219;color:#f3f1ff}
.aw-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin:0;padding:0;list-style:none;border-block:1px solid #f3d08a26}
.aw-stats li{display:flex;align-items:center;justify-content:center;gap:18px;padding:30px 18px}
.aw-stats li+li{border-left:1px solid #f3d08a26}
.aw-stat-icon{display:grid;place-items:center;flex-shrink:0;width:60px;height:60px;border-radius:50%;border:1px solid #f3d08a59;background:radial-gradient(circle at 50% 30%,#f3d08a2e,#f3d08a05 70%);box-shadow:0 0 26px #f5b54a2e}
.aw-stat-icon svg{width:28px;height:28px;fill:none;stroke:#f6d27a;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.aw-stats p{margin:0}
.aw-stats strong{display:block;font-size:clamp(34px,3.2vw,46px);line-height:1;font-weight:800;letter-spacing:-.04em;background:linear-gradient(135deg,#fff3cc,#f6d27a 45%,#d39a36);-webkit-background-clip:text;background-clip:text;color:transparent}
.aw-stats p span{display:block;margin-top:6px;font-size:14px;line-height:1.4;font-weight:600;color:#cfc9ec}
/* About: copy beside a bento collage of award moments from past editions (India AI Summit 2024 Startup Awards, large; the 2024
   main stage; India AI Awards 2026, New Delhi). Photos only, no captions; the alt text names each event. */
.aw-about{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:64px;align-items:center}
.aw-about h2{margin-top:22px}
.aw-about .section-intro{max-width:560px}
.aw-collage{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:clamp(96px,11vw,170px);gap:12px}
.aw-tile{margin:0;overflow:hidden;border-radius:18px;background:#0d0322;box-shadow:0 18px 40px #2d1d8a26}
.aw-tile-main{grid-column:span 2;grid-row:span 2}
.aw-tile img{width:100%;height:100%;object-fit:cover;transition:transform .6s cubic-bezier(.2,.8,.2,1)}
.aw-tile:hover img{transform:scale(1.05)}
.aw-tile-stage img{object-position:22% center}
/* Categories: dark band over a photo of the 2026 ceremony stage (fixed on desktop, darkened and tinted violet so text stays legible),
   with the six groups as an accordion of native <details> sharing one name, so opening a group closes the others (no JS). Each row:
   gold number, group name, count, a plus that turns into a cross; the open group lists its titles in columns with gold stars. */
.aw-cats{position:relative;isolation:isolate;color:#f3f1ff;background:linear-gradient(180deg,#0b0219f2 0%,#14063acc 45%,#0b0219f5 100%),url(../images/india-ai-awards-2026-stage.webp) center 30%/cover no-repeat,#0b0219;background-attachment:scroll,fixed,scroll}
@media(hover:none){.aw-cats{background-attachment:scroll}}
.aw-cats .eyebrow,.aw-cats .hl{color:#c9b8ff}
.aw-cats h2{color:#fff}
.aw-cats .section-intro{color:#cfc9ec}
.aw-accordion{display:grid;gap:12px;max-width:1080px;margin:44px auto 0}
.aw-acc{border-radius:20px;border:1px solid #ffffff1f;background:#0b0219a6;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);transition:border-color .3s,background .3s,box-shadow .3s}
.aw-acc:hover{border-color:#c9b8ff59}
.aw-acc[open]{border-color:#f3d08a59;background:linear-gradient(160deg,#2a1466d9,#0b0219e6 70%);box-shadow:0 24px 60px #00000059}
.aw-acc summary{display:flex;align-items:center;gap:18px;padding:20px 24px;list-style:none;cursor:pointer;border-radius:20px}
.aw-acc summary::-webkit-details-marker{display:none}
.aw-acc summary:focus-visible{outline:2px solid #c9b8ff;outline-offset:-2px}
.aw-acc-num{flex-shrink:0;width:2ch;font-size:15px;font-weight:800;letter-spacing:.04em;color:#f3d08a}
.aw-acc-title{flex:1;min-width:0;font-size:clamp(17px,1.6vw,21px);font-weight:700;letter-spacing:-.02em;color:#fff}
.aw-acc-count{flex-shrink:0;padding:5px 12px;border-radius:100px;background:#ffffff12;border:1px solid #ffffff1f;font-size:12.5px;font-weight:600;color:#d9d1ff;white-space:nowrap}
.aw-acc[open] .aw-acc-count{background:#f3d08a1f;border-color:#f3d08a4d;color:#fbeccc}
.aw-acc-icon{position:relative;flex-shrink:0;width:38px;height:38px;border-radius:50%;border:1px solid #ffffff2e;transition:background .3s,border-color .3s,transform .35s}
.aw-acc-icon:before,.aw-acc-icon:after{content:'';position:absolute;left:50%;top:50%;width:14px;height:1.8px;margin:-.9px 0 0 -7px;border-radius:2px;background:#fff}
.aw-acc-icon:after{transform:rotate(90deg)}
.aw-acc[open] .aw-acc-icon{transform:rotate(45deg);background:linear-gradient(135deg,#f9dc8c,#d39a36);border-color:transparent}
.aw-acc[open] .aw-acc-icon:before,.aw-acc[open] .aw-acc-icon:after{background:#2a0507}
.aw-acc-body{padding:2px 24px 24px 60px}
.aw-acc-body ul{columns:3 230px;column-gap:32px;margin:0;padding:16px 0 0;list-style:none;border-top:1px solid #ffffff1a}
.aw-acc-body li{display:flex;gap:11px;break-inside:avoid;padding:9px 0;font-size:14.5px;line-height:1.5;color:#e6e1ff}
.aw-acc-body li:before{content:'';flex-shrink:0;width:14px;height:14px;margin-top:4px;background:linear-gradient(135deg,#fff1c1,#e3a83e);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2l2.9 6.2 6.8.8-5 4.7 1.3 6.7L12 17.1 6 20.4l1.3-6.7-5-4.7 6.8-.8z'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2l2.9 6.2 6.8.8-5 4.7 1.3 6.7L12 17.1 6 20.4l1.3-6.7-5-4.7 6.8-.8z'/%3E%3C/svg%3E") center/contain no-repeat}
/* Opening animates where the browser can size to auto (Chrome 131+); elsewhere it opens instantly. */
@supports (interpolate-size:allow-keywords){@media(prefers-reduced-motion:no-preference){.aw-acc{interpolate-size:allow-keywords}.aw-acc::details-content{height:0;overflow:clip;transition:height .45s cubic-bezier(.2,.8,.2,1),content-visibility .45s allow-discrete}.aw-acc[open]::details-content{height:auto}}}
/* Why nominate: a white band (in both themes) where a road winds through four numbered stops, each tied to a benefit card, above
   and below it in turn (a vertical road down the left on phones). award.js draws the road through the stops (--len), then, once it
   has scrolled into view, the road draws in, the stops rise one by one and a gold pulse runs along them on a 12s loop (--at = each
   stop's share of the road, so they light up in order). Reduced motion: the road and stops are simply shown. */
.aw-road-sec{--text:#18181b;--muted:#5c5c66;--line:#ebe7f7;color-scheme:light;position:relative;overflow-x:clip;display:flex;flex-direction:column;justify-content:center;min-height:calc(100svh - var(--header-h,80px));padding-block:56px;color:var(--text);background:#fff}
.aw-road-sec .section-heading{text-align:center}
.aw-road-sec .eyebrow,.aw-road-sec .hl{color:#6945a5}
.aw-road-sec h2{font-size:clamp(30px,3.2vw,46px);color:#18181b}
.aw-road-sec .section-heading>.eyebrow{margin-bottom:14px}
.aw-road{position:relative;margin-top:34px}
.aw-road-track{position:absolute;top:0;bottom:0;left:calc(50% - 50vw);width:100vw;pointer-events:none}
.aw-road-svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.aw-road-svg path{fill:none;stroke-linecap:round;stroke-linejoin:round}
.aw-road-glow{stroke:#7b5cff;stroke-width:58;opacity:.07}
.aw-road-edge{stroke:url(#aw-road-edge);stroke-width:32}
.aw-road-base{stroke:#211c33;stroke-width:27}
.aw-road-dash{stroke:#f6d27a;stroke-width:2.5;stroke-dasharray:14 12}
.aw-road-stops{position:relative;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-template-rows:auto 128px auto;column-gap:24px;margin:0;padding:0;list-style:none}
.aw-stop{grid-row:1/-1;display:grid;grid-template-rows:subgrid;justify-items:center}
.aw-stop-pin{grid-row:2;position:relative;z-index:1;display:grid;place-items:center;width:50px;height:50px;border-radius:50%;background:linear-gradient(135deg,#7b5cff,#2f5be7);color:#fff;font-size:15px;font-weight:800;box-shadow:0 0 0 6px #fff,0 10px 24px #2d1d8a4d}
.aw-stop-pin:before{content:'';position:absolute;left:50%;height:22px;margin-left:-1px;border-left:2px dashed #c4b5fd}
.aw-stop-pin:after{content:'';position:absolute;inset:-6px;border-radius:50%;border:2px solid #f6d27a;opacity:0}
.aw-stop:nth-child(odd) .aw-stop-pin{align-self:start;margin-top:14px}
.aw-stop:nth-child(odd) .aw-stop-pin:before{bottom:calc(100% + 6px)}
.aw-stop:nth-child(even) .aw-stop-pin{align-self:end;margin-bottom:14px}
.aw-stop:nth-child(even) .aw-stop-pin:before{top:calc(100% + 6px)}
.aw-stop-card{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:10px 12px;width:100%;max-width:310px;padding:18px 20px;border-radius:18px;text-align:left;background:#fff;border:1px solid var(--line);box-shadow:0 18px 44px #2d1d8a14;transition:transform .35s cubic-bezier(.2,.8,.2,1),box-shadow .35s,border-color .35s}
.aw-stop-card:hover{transform:translateY(-4px);border-color:#c4b5fd;box-shadow:0 24px 52px #2d1d8a24}
.aw-stop:nth-child(odd) .aw-stop-card{grid-row:1;align-self:end;margin-bottom:14px}
.aw-stop:nth-child(even) .aw-stop-card{grid-row:3;align-self:start;margin-top:14px}
.aw-stop-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:13px;background:#f1edff;color:#6945a5}
.aw-stop-icon svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.aw-stop-card h3{align-self:center;font-size:16.5px;line-height:1.3;font-weight:700;letter-spacing:-.02em;color:#18181b}
.aw-stop-card p{grid-column:1/-1;font-size:13.5px;line-height:1.6;color:var(--muted)}
.aw-road.will-draw :is(.aw-road-glow,.aw-road-edge,.aw-road-base){stroke-dasharray:var(--len) var(--len);stroke-dashoffset:var(--len);transition:stroke-dashoffset 1.8s cubic-bezier(.45,0,.2,1)}
.aw-road.will-draw.is-on :is(.aw-road-glow,.aw-road-edge,.aw-road-base){stroke-dashoffset:0}
.aw-road.will-draw .aw-road-dash{opacity:0;transition:opacity .6s 1.5s}
.aw-road.will-draw.is-on .aw-road-dash{opacity:1}
.aw-road.will-draw:not(.is-on) .aw-stop{opacity:0}
.aw-road.will-draw.is-on .aw-stop{animation:apart-rise .8s cubic-bezier(.2,.8,.2,1) backwards;animation-delay:calc(.35s + var(--i,0) * .3s)}
.aw-road.is-driving .aw-stop-pin:after{animation:aw-pass 12s linear infinite;animation-delay:calc(var(--at,0) * 12s)}
.aw-road.is-paused .aw-stop-pin:after{animation-play-state:paused}
@keyframes aw-pass{0%{opacity:.95;transform:scale(1)}8%,100%{opacity:0;transform:scale(1.9)}}
/* Short laptop screens: tighter spacing so the whole road still fits in one screen. */
@media(min-width:901px) and (max-height:820px){.aw-road-sec{padding-block:26px}.aw-road-sec h2{font-size:clamp(28px,2.8vw,38px)}.aw-road-sec .section-heading>.eyebrow{margin-bottom:10px}.aw-road{margin-top:20px}.aw-road-stops{grid-template-rows:auto 100px auto;column-gap:16px}.aw-stop:nth-child(odd) .aw-stop-pin{margin-top:8px}.aw-stop:nth-child(even) .aw-stop-pin{margin-bottom:8px}.aw-stop-pin:before{height:14px}.aw-stop:nth-child(odd) .aw-stop-card{margin-bottom:12px}.aw-stop:nth-child(even) .aw-stop-card{margin-top:12px}.aw-stop-card{gap:8px 10px;padding:14px 16px}.aw-stop-icon{width:36px;height:36px;border-radius:11px}.aw-stop-icon svg{width:19px;height:19px}.aw-stop-card h3{font-size:15.5px}.aw-stop-card p{font-size:13px;line-height:1.5}}
@media(max-width:900px){.aw-road-sec{min-height:0;padding-block:66px}.aw-road{margin-top:30px}.aw-road-track{left:0;width:100%}.aw-road-glow{stroke-width:48}.aw-road-edge{stroke-width:28}.aw-road-base{stroke-width:23}.aw-road-dash{stroke-width:2;stroke-dasharray:10 9}.aw-road-stops{grid-template-columns:76px minmax(0,1fr);grid-template-rows:none;row-gap:22px;column-gap:14px}.aw-stop{grid-row:auto;grid-column:1/-1;grid-template-columns:subgrid;grid-template-rows:auto;align-items:center}.aw-stop:nth-child(n) .aw-stop-pin{grid-row:1;grid-column:1;align-self:center;margin:0;width:50px;height:50px;font-size:14px}.aw-stop:nth-child(odd) .aw-stop-pin{justify-self:start}.aw-stop:nth-child(even) .aw-stop-pin{justify-self:end}.aw-stop-pin:before{display:none}.aw-stop:nth-child(n) .aw-stop-card{grid-row:1;grid-column:2;align-self:auto;max-width:none;margin:0;padding:18px 16px}}
/* How it works: a dark band (in both themes) with a soft violet glow and faint grid, three numbered steps joined by a dashed line
   (a vertical rail on narrow screens). The local tokens recolour the shared step rules for the dark ground. */
.aw-steps{--bg:#0b0219;--line:#c9b8ff4d;--muted:#cfc9ec;color-scheme:dark;color:#fff;background:radial-gradient(40% 60% at 12% 15%,#5b3ce047,transparent 70%),radial-gradient(40% 60% at 88% 90%,#2f5be73d,transparent 70%),linear-gradient(#ffffff07 1px,transparent 1px) 50% 0/56px 56px,linear-gradient(90deg,#ffffff07 1px,transparent 1px) 50% 0/56px 56px,#0b0219}
.aw-steps .eyebrow,.aw-steps .hl{color:#c9b8ff}
.aw-steps h2,.aw-steps h3{color:#fff}
.aw-steps-list{position:relative;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin:52px 0 0;padding:0;list-style:none}
.aw-steps-list:before{content:'';position:absolute;top:34px;left:16%;right:16%;border-top:2px dashed var(--line)}
.aw-steps-list li{position:relative;display:flex;flex-direction:column;align-items:center;gap:12px;padding:0 12px;text-align:center}
.aw-step-num{display:grid;place-items:center;width:68px;height:68px;border-radius:50%;background:linear-gradient(135deg,#7b5cff,#2f5be7);color:#fff;font-size:20px;font-weight:800;box-shadow:0 0 0 8px var(--bg),0 0 0 9px #c9b8ff40,0 14px 34px #7b5cff80}
.aw-steps-list h3{margin-top:8px;font-size:21px;font-weight:700;letter-spacing:-.02em}
.aw-steps-list p{max-width:300px;font-size:15px;line-height:1.65;color:var(--muted)}
/* Past jury: the speaker poster cards, three across. */
.aw-jury{padding-top:108px}
.aw-jury-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:44px 24px;max-width:920px;margin:44px auto 0}
/* Past editions: two glass cards on the dark band. */
.aw-past-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:48px}
.aw-past-card{display:flex;flex-direction:column;align-items:flex-start;gap:14px;padding:34px;border-radius:24px;background:var(--grain),linear-gradient(165deg,#211a42,#0e0b1c 70%);border:1px solid #a996ff59;box-shadow:0 0 30px #7b5cff1f}
.aw-past-tag{padding:6px 12px;border-radius:100px;background:#ffffff12;border:1px solid #ffffff24;font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#c9b8ff}
.aw-past-logo{width:min(320px,100%);height:auto;margin:6px 0 4px}
.aw-past-card h3{font-size:24px;font-weight:700;letter-spacing:-.03em;color:#fff}
.aw-past-card>p:not([class]){font-size:15px;line-height:1.7;color:#cfc9ec}
.aw-chips-label{margin-top:6px;font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#8f89b3}
.aw-chips{display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none}
.aw-chips li{padding:7px 12px;border-radius:100px;background:#ffffff0d;border:1px solid #ffffff1f;font-size:13px;font-weight:600;color:#e6e1ff}
.aw-past-link{display:inline-flex;align-items:center;gap:8px;margin-top:auto;padding-top:12px;font-size:14px;font-weight:700;color:#c9b8ff}
.aw-past-link svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;transition:transform .2s}
.aw-past-link:hover{color:#fff}
.aw-past-link:hover svg{transform:translate(2px,-2px)}
.aw-rise:not(.is-in){opacity:0}
.aw-rise.is-in{animation:apart-rise .8s cubic-bezier(.2,.8,.2,1) backwards;animation-delay:calc(var(--i,0) * 110ms)}
@media(max-width:1150px){.aw-about{gap:40px}}
@media(max-width:900px){.aw-about{grid-template-columns:1fr}.aw-past-grid{grid-template-columns:1fr}.aw-steps-list{grid-template-columns:1fr;gap:28px;max-width:520px;margin-inline:auto}.aw-steps-list:before{top:20px;bottom:20px;left:34px;right:auto;border-top:0;border-left:2px dashed var(--line)}.aw-steps-list li{display:grid;grid-template-columns:68px 1fr;column-gap:20px;align-items:start;padding:0;text-align:left}.aw-step-num{grid-row:1/span 2}.aw-steps-list h3{margin-top:12px}.aw-steps-list p{max-width:none}}
@media(max-width:640px){.aw-hero-brand{width:min(250px,64vw)}.aw-hero h1{margin-top:8px;font-size:22px}.aw-stats{grid-template-columns:1fr}.aw-stats li{flex-direction:row;justify-content:flex-start;padding:18px 6px;text-align:left}.aw-stats li+li{border-left:0;border-top:1px solid #f3d08a26}.aw-stat-icon{width:52px;height:52px}.aw-stats strong{font-size:32px}.aw-collage{gap:8px}.aw-tile{border-radius:12px}.aw-acc summary{display:grid;grid-template-columns:auto minmax(0,1fr) auto;column-gap:12px;row-gap:6px;padding:16px}.aw-acc-num{grid-row:1/span 2;align-self:start;margin-top:3px;font-size:13px}.aw-acc-title{grid-column:2}.aw-acc-count{grid-column:2;justify-self:start;padding:3px 9px;font-size:11.5px}.aw-acc-icon{grid-column:3;grid-row:1/span 2;width:32px;height:32px}.aw-acc-body{padding:0 16px 18px}.aw-jury{padding-top:66px}.aw-jury-grid{grid-template-columns:1fr 1fr;gap:32px 14px}.aw-jury-grid .speaker-card:last-child{grid-column:1/-1;justify-self:center;width:calc(50% - 7px)}.aw-past-card{padding:26px 22px}}
