:root{--navy:#17283f;--navy2:color-mix(in srgb,var(--navy) 88%,#fff);--red:#9e2331;--cream:#f7f3ed;--ink:#202a36;--muted:#687382;--line:#e5ded5;--gold:#d9b56d;--shadow:0 18px 50px rgba(23,40,63,.09);--font-body:Inter,system-ui,-apple-system,"Segoe UI",sans-serif;--font-heading:var(--font-body);--radius:3px}
*{box-sizing:border-box}body{margin:0;font-family:var(--font-body);color:var(--ink);line-height:1.65}a{color:inherit;text-decoration:none}.container{width:min(1160px,calc(100% - 40px));margin:auto}.topline{background:var(--navy);color:color-mix(in srgb,var(--navy) 8%,#fff);font-size:.78rem}.top-flex{display:flex;justify-content:space-between;padding:8px 0}.site-header{position:sticky;top:0;z-index:5;background:#fff;border-bottom:1px solid var(--line)}.nav-wrap{display:flex;align-items:center;justify-content:space-between;min-height:82px;gap:20px}.brand{display:flex;gap:10px;align-items:center;color:var(--navy)}.brand-mark{display:grid;place-items:center;background:var(--red);color:white;width:46px;height:46px;font-weight:900;font-size:1.6rem}.brand small{display:block;font-size:.6rem;letter-spacing:.16em;color:var(--muted)}.nav-links{display:flex;align-items:center;gap:18px;font-size:.84rem;font-weight:700}.nav-links a:hover{color:var(--red)}.btn{display:inline-block;background:var(--red);color:#fff!important;padding:12px 19px;font-weight:800;border:0;border-radius:var(--radius)}.menu-toggle{display:none;background:none;border:0;font-size:1.7rem}.hero,.page-hero{background:var(--cream)}.hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:45px;align-items:center;padding:75px 0;min-height:560px}.eyebrow{color:var(--red);text-transform:uppercase;letter-spacing:.14em;font-size:.73rem;font-weight:850}.hero h1{font-size:clamp(2.8rem,5vw,5rem);line-height:1.02;letter-spacing:-.04em;color:var(--navy);margin:20px 0}.hero h1 span{color:var(--red)}h1,h2,h3{line-height:1.13;letter-spacing:-.025em;color:var(--navy)}h2{font-size:clamp(2rem,3.5vw,3rem)}.lead{font-size:1.1rem;color:var(--muted);max-width:680px}.hero-art{background:linear-gradient(135deg,color-mix(in srgb,var(--cream) 75%,var(--red)),var(--red) 55%,var(--navy));height:430px;display:flex;align-items:end;padding:28px;color:#fff;box-shadow:var(--shadow)}.hero-art div{max-width:260px;border-left:4px solid var(--gold);padding:14px;background:color-mix(in srgb,var(--navy) 75%,transparent)}.hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}.section{padding:75px 0}.soft{background:var(--cream)}.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.card{padding:26px;border:1px solid var(--line);background:white}.card p,.muted{color:var(--muted)}.card .eyebrow{font-size:.7rem}.section-head{display:flex;justify-content:space-between;align-items:end;gap:25px;margin-bottom:30px}.section-head p{max-width:500px;color:var(--muted)}.dark{background:var(--navy);color:#fff}.dark h2,.dark h3{color:#fff}.days{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:color-mix(in srgb,var(--navy) 75%,#fff)}.day{background:var(--navy);padding:27px}.day small{color:var(--gold);font-weight:800}.page-hero{padding:65px 0}.page-hero h1{font-size:clamp(2.7rem,5vw,4.4rem);margin:14px 0}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:45px}.speaker-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.speaker{border:1px solid var(--line);padding:25px}.portrait{height:180px;background:linear-gradient(135deg,color-mix(in srgb,var(--cream) 94%,var(--navy)),color-mix(in srgb,var(--navy) 25%,#fff));display:grid;place-items:center;color:var(--muted)}.tag{color:var(--red);font-weight:800;font-size:.8rem}.tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:25px}.tabs button{padding:11px 16px;border:1px solid var(--line);background:white;font-weight:800;cursor:pointer}.tabs button.active{background:var(--navy);color:white}.session{padding:22px 0;border-bottom:1px solid var(--line);display:grid;grid-template-columns:150px 1fr;gap:20px}.session time{color:var(--red);font-weight:800}.form-layout{display:grid;grid-template-columns:.75fr 1.25fr;gap:40px}.form-panel{padding:30px;background:#fff;border:1px solid var(--line);box-shadow:var(--shadow)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.field{display:flex;flex-direction:column;gap:6px}.field.full{grid-column:1/-1}.field label{font-weight:750;font-size:.84rem}.field input,.field select,.field textarea{font:inherit;padding:12px;border:1px solid #d7dfe6;width:100%}.check{display:flex;gap:10px;font-size:.83rem;color:var(--muted);margin:18px 0}.notice{background:#fbf2df;border-left:3px solid var(--gold);padding:15px;color:#625947}.success{background:#e5f4e9;padding:14px;color:#205b37}.footer{background:color-mix(in srgb,var(--navy) 75%,#000);color:color-mix(in srgb,var(--navy) 15%,#fff);padding:50px 0 20px}.footer-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:45px;padding-bottom:30px}.footer h3{color:white;font-size:1rem}.footer a{display:block;color:color-mix(in srgb,var(--navy) 28%,#fff);margin:8px 0;font-size:.9rem}.footer p{color:color-mix(in srgb,var(--navy) 28%,#fff);font-size:.9rem}.footer-brand{font-size:1.5rem;font-weight:900;color:white}.footer-bottom{border-top:1px solid color-mix(in srgb,var(--navy) 82%,#fff);padding-top:20px;color:color-mix(in srgb,var(--navy) 35%,#fff);font-size:.8rem}.flash{margin-top:15px;padding:12px;background:#e5f4e9;color:#205b37}
@media(max-width:950px){.nav-links{gap:10px;font-size:.76rem}.hero-grid{gap:25px}}@media(max-width:760px){.top-flex span:last-child{display:none}.nav-wrap{min-height:70px}.menu-toggle{display:block}.nav-links{display:none;position:absolute;top:70px;left:0;right:0;background:#fff;padding:20px;box-shadow:var(--shadow);flex-direction:column;align-items:stretch}.nav-links.open{display:flex}.hero-grid,.two-col,.form-layout{grid-template-columns:1fr}.hero-grid{padding:50px 0}.hero-art{height:300px}.section{padding:55px 0}.grid3,.days,.speaker-grid{grid-template-columns:1fr}.section-head{display:block}.footer-grid{grid-template-columns:1fr;gap:20px}.form-grid{grid-template-columns:1fr}.field.full{grid-column:auto}.session{grid-template-columns:1fr;gap:5px}}

/* ---- Additions: dropdown, photos, pop-up, gallery ---- */
.nav-links a.current,.nav-links .dropdown-toggle.current{color:var(--red)}
.dropdown{position:relative}
.dropdown-toggle{background:none;border:0;font:inherit;font-weight:700;cursor:pointer;color:inherit;padding:0}
.dropdown-toggle:hover{color:var(--red)}
.dropdown-menu{display:none;position:absolute;top:calc(100% + 12px);left:-14px;background:#fff;border:1px solid var(--line);box-shadow:var(--shadow);min-width:210px;padding:8px;z-index:10}
.dropdown-menu a{display:block;padding:9px 12px}
.dropdown-menu a:hover{background:var(--cream)}
.dropdown:hover .dropdown-menu,.dropdown.open .dropdown-menu{display:block}
.dropdown::after{content:"";position:absolute;left:0;right:0;top:100%;height:14px}
.btn.outline{background:transparent;color:var(--navy)!important;border:1px solid var(--navy)}
.btn{cursor:pointer;font:inherit;font-weight:800}
.hero-meta{display:flex;gap:18px;flex-wrap:wrap}
.hero-banner{margin:0;position:relative;height:430px;box-shadow:var(--shadow);overflow:hidden}
.hero-banner img{width:100%;height:100%;object-fit:cover;display:block}
.hero-banner figcaption{position:absolute;left:20px;bottom:20px;max-width:300px;border-left:4px solid var(--gold);padding:12px 14px;background:color-mix(in srgb,var(--navy) 80%,transparent);color:#fff}
.portrait{overflow:hidden;margin-bottom:14px;aspect-ratio:1/1;height:auto}
.portrait img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .3s}
.portrait .initials,.initials{font-size:2.4rem;font-weight:900;color:var(--navy);opacity:.6}
.speaker{background:#fff;transition:box-shadow .2s,transform .2s;padding:0}
.speaker:hover{box-shadow:var(--shadow);transform:translateY(-3px)}
.speaker:hover .portrait img{transform:scale(1.03)}
.speaker-link{display:flex;flex-direction:column;height:100%;padding:20px}
.speaker h3{margin:4px 0}
.speaker .tag{margin:0}
.speaker .org{margin:2px 0 6px;color:var(--muted);font-size:.9rem}
.speaker .bio{color:var(--muted);font-size:.9rem;margin:6px 0}
.speaker .more{margin-top:auto;padding-top:10px;color:var(--red);font-weight:800;font-size:.82rem}
.card.update{display:flex;flex-direction:column;gap:4px}
.day-item{margin:8px 0;color:color-mix(in srgb,var(--navy) 10%,#fff)}
.day-item span{color:var(--gold);font-weight:800;margin-right:6px}
.socials{display:flex;gap:14px;flex-wrap:wrap}
.socials a{display:inline;margin:0}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
/* Programme */
.speaker-chips{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0}
.speaker-chip{display:inline-flex;align-items:center;gap:8px;background:var(--cream);border-radius:999px;padding:4px 14px 4px 4px;font-weight:700;font-size:.86rem}
.speaker-chip:hover{background:color-mix(in srgb,var(--cream) 94%,var(--navy))}
.speaker-chip img,.speaker-chip span{width:32px;height:32px;border-radius:50%;object-fit:cover;background:color-mix(in srgb,var(--cream) 88%,var(--navy));display:grid;place-items:center;font-size:.7rem}
.small-meta{font-size:.88rem}
/* Speaker pop-up */
.speaker-popup{position:fixed;inset:0;background:rgba(16,30,48,.6);display:grid;place-items:center;z-index:100;padding:20px;animation:fade .25s}
.speaker-popup[hidden]{display:none}
.speaker-popup-card{background:#fff;max-width:440px;width:100%;padding:36px 30px 30px;text-align:center;position:relative;border-top:5px solid var(--red);animation:pop .35s cubic-bezier(.2,1.3,.4,1)}
.popup-photo{width:150px;height:150px;border-radius:50%;margin:0 auto 16px;overflow:hidden;border:4px solid var(--gold);background:linear-gradient(135deg,color-mix(in srgb,var(--cream) 94%,var(--navy)),color-mix(in srgb,var(--navy) 25%,#fff));display:grid;place-items:center}
.popup-photo img{width:100%;height:100%;object-fit:cover}
.speaker-popup-card h2{font-size:1.8rem;margin:8px 0 4px}
.popup-close{position:absolute;top:10px;right:14px;background:none;border:0;font-size:2rem;line-height:1;cursor:pointer;color:var(--muted)}
.popup-close:hover{color:var(--red)}
@keyframes fade{from{opacity:0}}
@keyframes pop{from{transform:scale(.85);opacity:0}}
.mobile-announce{display:none}
.announce-card{display:flex;gap:14px;align-items:center;background:#fff;border:1px solid var(--line);border-left:4px solid var(--red);padding:14px;box-shadow:var(--shadow)}
.announce-card img,.announce-card .initials{width:64px;height:64px;border-radius:50%;object-fit:cover;flex-shrink:0;background:color-mix(in srgb,var(--cream) 94%,var(--navy));display:grid;place-items:center;font-size:1.2rem}
.announce-card strong{display:block;color:var(--navy)}
.announce-card small{display:block;color:var(--muted)}
/* Speaker profile dialog */
.profile-dialog{border:0;padding:0;max-width:760px;width:calc(100% - 32px);box-shadow:0 30px 80px rgba(0,0,0,.35)}
.profile-dialog::backdrop{background:rgba(16,30,48,.6)}
.profile-body{display:grid;grid-template-columns:240px 1fr;gap:28px;padding:34px}
.profile-photo{aspect-ratio:1;background:linear-gradient(135deg,color-mix(in srgb,var(--cream) 94%,var(--navy)),color-mix(in srgb,var(--navy) 25%,#fff));display:grid;place-items:center;overflow:hidden}
.profile-photo img{width:100%;height:100%;object-fit:cover}
.profile-body h2{margin-top:0}
ul.plain{padding-left:18px}
/* Gallery */
.album-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.album{display:block}
.album-cover{position:relative;aspect-ratio:4/3;overflow:hidden;background:var(--cream);margin-bottom:12px}
.album-cover img{width:100%;height:100%;object-fit:cover;transition:transform .3s}
.album:hover .album-cover img{transform:scale(1.04)}
.album-cover .count{position:absolute;right:10px;bottom:10px;background:color-mix(in srgb,var(--navy) 85%,transparent);color:#fff;font-size:.75rem;font-weight:800;padding:4px 10px}
.album h3{margin:0 0 4px}
.video-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:24px}
.video-frame{aspect-ratio:16/9;background:#000}
.video-frame iframe{width:100%;height:100%;border:0}
.photo-masonry{columns:3 280px;column-gap:16px}
.photo-masonry figure{margin:0 0 16px;break-inside:avoid}
.photo-masonry img{width:100%;display:block;cursor:zoom-in}
.photo-masonry figcaption{font-size:.85rem;color:var(--muted);padding-top:6px}
.lightbox{position:fixed;inset:0;background:rgba(5,10,18,.94);z-index:100;display:flex;align-items:center;justify-content:center;padding:20px}
.lightbox[hidden]{display:none}
.lightbox figure{margin:0;max-width:92vw;text-align:center}
.lightbox img{max-width:92vw;max-height:84vh;object-fit:contain}
.lightbox figcaption{color:color-mix(in srgb,var(--navy) 10%,#fff);margin-top:10px}
.lightbox button{position:absolute;background:none;border:0;color:#fff;font-size:2.6rem;cursor:pointer;padding:10px 16px}
.lb-close{top:10px;right:10px}.lb-prev{left:6px;top:50%;transform:translateY(-50%)}.lb-next{right:6px;top:50%;transform:translateY(-50%)}
@media(max-width:950px){.album-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){
  .dropdown-menu{position:static;display:block;box-shadow:none;border:0;padding:0 0 0 12px;min-width:0}
  .dropdown-toggle{display:none}
  .hero-banner{height:260px}
  .album-grid,.video-grid{grid-template-columns:1fr}
  .profile-body{grid-template-columns:1fr;padding:24px}
  .profile-photo{max-width:200px}
  /* On mobile the announcement is an inline card instead of a pop-up */
  .speaker-popup{display:none!important}
  .mobile-announce{display:block;margin-top:20px}
}

/* ---- Fast, stable image loading ---- */
.portrait,.album-cover,.photo-grid a,.popup-photo,.profile-photo,.hero-banner{background:linear-gradient(110deg,color-mix(in srgb,var(--cream) 95%,var(--navy)) 30%,var(--cream) 50%,color-mix(in srgb,var(--cream) 95%,var(--navy)) 70%);background-size:200% 100%;animation:shimmer 1.4s linear infinite}
.portrait img,.album-cover img,.photo-grid img,.popup-photo img,.profile-photo img,.hero-banner img{opacity:0;transition:opacity .35s ease}
.portrait img.loaded,.album-cover img.loaded,.photo-grid img.loaded,.popup-photo img.loaded,.profile-photo img.loaded,.hero-banner img.loaded{opacity:1}
.img-done{animation:none!important;background:color-mix(in srgb,var(--cream) 95%,var(--navy))!important}
@keyframes shimmer{to{background-position:-200% 0}}
.photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px}
.photo-grid figure{margin:0}
.photo-grid a{display:block;aspect-ratio:4/3;overflow:hidden}
.photo-grid img{width:100%;height:100%;object-fit:cover;display:block;cursor:zoom-in;transition:opacity .35s ease,transform .3s}
.photo-grid a:hover img{transform:scale(1.03)}
.photo-grid figcaption{font-size:.85rem;color:var(--muted);padding-top:6px}
.lightbox img{transition:opacity .2s}
.lightbox.loading img{opacity:.25}
.lb-count{display:block;color:#9aa7b6;font-size:.8rem;margin-top:4px}
.pagination{display:flex;gap:6px;flex-wrap:wrap;list-style:none;padding:0;justify-content:center}
.pagination a,.pagination span{display:block;padding:8px 14px;border:1px solid var(--line);background:#fff;font-weight:700}
.pagination .active span{background:var(--navy);color:#fff;border-color:var(--navy)}
.pagination .disabled span{color:#b0b8c3}
@media(max-width:760px){.photo-grid{grid-template-columns:repeat(2,1fr);gap:8px}}
@media(prefers-reduced-motion:reduce){.portrait,.album-cover,.photo-grid a,.popup-photo,.profile-photo,.hero-banner{animation:none}}

h1,h2,h3,.footer-brand,.brand b{font-family:var(--font-heading)}
.brand-logo{height:52px;width:auto;max-width:220px;object-fit:contain;display:block}
.footer-logo{height:56px;width:auto;max-width:220px;object-fit:contain;background:#fff;padding:6px;border-radius:6px;margin-bottom:10px}
.tabs button,.form-panel,.card,.speaker,.field input,.field select,.field textarea,.announce-card,.dropdown-menu,.speaker-popup-card,.album-cover,.photo-grid a{border-radius:var(--radius)}
.about-list{margin:10px 0 0;padding-left:18px;color:var(--muted)}
.about-list li{margin:4px 0}

/* ===== Professional layout pass: accessibility, home sections, registration ===== */
.skip-link{position:absolute;left:-9999px;top:0;z-index:200;background:var(--gold);color:var(--navy);padding:10px 16px;font-weight:800}
.skip-link:focus{left:10px;top:10px}
:focus-visible{outline:3px solid var(--gold);outline-offset:2px}
.top-flex{align-items:center;gap:12px}
.a11y-tools{display:flex;align-items:center;gap:4px}
.a11y-tools a{color:inherit;margin-right:4px}
.a11y-tools .sep{opacity:.5;margin:0 6px}
.a11y-tools button{background:transparent;border:1px solid color-mix(in srgb,#fff 35%,transparent);color:#fff;font:inherit;font-size:.72rem;font-weight:700;padding:2px 7px;cursor:pointer;border-radius:3px}
.a11y-tools button:hover{background:color-mix(in srgb,#fff 15%,transparent)}
#main-content:focus{outline:none}
.site-header{box-shadow:0 2px 12px color-mix(in srgb,var(--navy) 6%,transparent)}
.btn-lg{padding:15px 26px;font-size:1rem}
.btn.light{background:#fff;color:var(--red)!important}
.btn.outline-light{background:transparent;border:1px solid color-mix(in srgb,#fff 60%,transparent);color:#fff!important}
.status-pill{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border-radius:999px;font-size:.78rem;font-weight:800;letter-spacing:.02em}
.status-pill.is-open{background:#e3f4e8;color:#17663a}
.status-pill.is-closed{background:#f6e3e5;color:#8c1d2a}
.link-arrow{color:var(--red);font-weight:800;font-size:.9rem;display:inline-block;margin-top:6px}
.link-arrow:hover{text-decoration:underline}
.on-dark{color:color-mix(in srgb,#fff 75%,var(--navy))!important}
.section-head.center{justify-content:center;text-align:center}
.sub-head{font-size:1.05rem;margin:22px 0 8px}
.crumbs{font-size:.82rem;color:var(--muted);margin-bottom:10px}
.crumbs a{color:var(--red);font-weight:700}
.hero-grid{min-height:520px}
/* Countdown */
.countdown{display:flex;gap:10px;margin-top:30px;flex-wrap:wrap}
.countdown div{background:#fff;border:1px solid var(--line);border-top:3px solid var(--red);min-width:78px;padding:10px 12px;text-align:center;border-radius:var(--radius);box-shadow:var(--shadow)}
.countdown strong{display:block;font-size:1.7rem;line-height:1.1;color:var(--navy);font-variant-numeric:tabular-nums;font-family:var(--font-heading)}
.countdown span{font-size:.68rem;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);font-weight:700}
/* Key facts */
.facts-strip{background:var(--navy);color:#fff}
.facts-grid{display:grid;grid-template-columns:repeat(4,1fr)}
.fact{display:flex;gap:14px;align-items:center;padding:22px 20px;border-left:1px solid color-mix(in srgb,#fff 14%,transparent)}
.fact:first-child{border-left:0;padding-left:0}
.fact-ico{width:44px;height:44px;flex-shrink:0;display:grid;place-items:center;background:color-mix(in srgb,#fff 10%,transparent);color:var(--gold);font-size:1.2rem;border-radius:50%}
.fact small{display:block;color:var(--gold);font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;font-weight:800}
.fact strong{font-size:.98rem;line-height:1.3}
/* About */
.check-list-public{list-style:none;padding:0;margin:0 0 10px;display:grid;gap:10px}
.check-list-public li{position:relative;padding-left:30px}
.check-list-public li::before{content:"✓";position:absolute;left:0;top:1px;width:20px;height:20px;border-radius:50%;background:color-mix(in srgb,var(--red) 12%,#fff);color:var(--red);display:grid;place-items:center;font-size:.72rem;font-weight:900}
/* Programme timeline */
.days-timeline{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.day-card{background:color-mix(in srgb,var(--navy) 85%,#fff);border:1px solid color-mix(in srgb,#fff 12%,transparent);border-radius:var(--radius);padding:22px;display:flex;flex-direction:column}
.day-card header{border-bottom:1px solid color-mix(in srgb,#fff 15%,transparent);padding-bottom:12px;margin-bottom:6px}
.day-card header small{color:var(--gold);font-weight:800;letter-spacing:.12em;font-size:.72rem}
.day-card header h3{margin:4px 0 0;font-size:1.15rem}
.tl-item{display:grid;grid-template-columns:52px 1fr;gap:10px;padding:12px 0;border-bottom:1px dashed color-mix(in srgb,#fff 15%,transparent)}
.tl-item:last-of-type{border-bottom:0}
.tl-item time{color:var(--gold);font-weight:800;font-size:.88rem;font-variant-numeric:tabular-nums}
.tl-item strong{display:block;line-height:1.35;font-size:.95rem}
.tl-item small{display:block;color:color-mix(in srgb,#fff 70%,var(--navy));font-size:.8rem;margin-top:3px}
.tl-register{display:inline-block;margin-top:6px;font-size:.78rem;font-weight:800;color:color-mix(in srgb,var(--gold) 80%,#fff)}
.tl-register:hover{text-decoration:underline}
.tl-full{display:inline-block;margin-top:6px;font-size:.72rem;font-weight:800;background:color-mix(in srgb,#fff 15%,transparent);padding:2px 8px;border-radius:999px}
.tl-empty{color:color-mix(in srgb,#fff 65%,var(--navy));margin:12px 0 0}
.tl-more{margin-top:auto;padding-top:10px;font-size:.82rem;font-weight:800;color:var(--gold)}
/* Speakers – 4 columns on home */
.speaker-grid.four{grid-template-columns:repeat(4,1fr)}
.speaker-grid.four .speaker-link{padding:16px}
.speaker-grid.four .speaker h3{font-size:1.05rem}
/* Steps */
.steps{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(3,1fr);gap:22px;counter-reset:step}
.steps li{position:relative;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:30px 24px 24px;text-align:center}
.steps li:not(:last-child)::after{content:"→";position:absolute;right:-18px;top:50%;transform:translateY(-50%);color:var(--red);font-weight:900;font-size:1.2rem}
.step-no{display:inline-grid;place-items:center;width:46px;height:46px;border-radius:50%;background:var(--red);color:#fff;font-weight:900;font-size:1.2rem;margin-bottom:12px}
.steps h3{margin:0 0 6px;font-size:1.1rem}
.steps p{margin:0;color:var(--muted);font-size:.92rem}
/* Updates */
.updates-list{display:grid;gap:14px}
.update-item{display:grid;grid-template-columns:86px 1fr;gap:20px;background:#fff;border:1px solid var(--line);border-left:4px solid var(--red);padding:18px 22px;border-radius:var(--radius)}
.update-item time{text-align:center;color:var(--muted);font-size:.78rem;font-weight:700;text-transform:uppercase;border-right:1px solid var(--line);padding-right:16px}
.update-item time strong{display:block;font-size:2rem;color:var(--navy);line-height:1;font-family:var(--font-heading)}
.update-item h3{margin:4px 0}
.update-item p{margin:0;color:var(--muted)}
/* Info cards */
.info-card{background:#fff;border:1px solid var(--line);border-top:3px solid var(--red);padding:24px;border-radius:var(--radius)}
.info-card h2{font-size:1.15rem;margin:0 0 12px}
.info-card h3{margin:6px 0 8px}
.info-card p{margin:4px 0}
.info-grid .info-card{display:flex;flex-direction:column}
.info-grid .info-card .link-arrow{margin-top:auto;padding-top:10px}
/* CTA band */
.cta-band{background:linear-gradient(120deg,var(--red),color-mix(in srgb,var(--red) 70%,var(--navy)));color:#fff;padding:54px 0}
.cta-inner{display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap}
.cta-band h2{color:#fff;margin:0 0 6px}
.cta-band p{margin:0;color:color-mix(in srgb,#fff 88%,var(--red))}
/* Footer bottom */
.footer-bottom{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap}
/* Registration form */
.reg-aside{display:grid;gap:18px;align-content:start}
.facts{display:grid;grid-template-columns:90px 1fr;gap:8px 12px;margin:0;font-size:.9rem}
.facts dt{color:var(--muted);font-weight:700}
.facts dd{margin:0;font-weight:600;color:var(--navy)}
.facts small{color:var(--muted);font-weight:400}
.steps-list{padding-left:18px;margin:0;font-size:.9rem;display:grid;gap:6px}
.small-note{font-size:.82rem;color:var(--muted);margin:12px 0 0}
.small-note a{color:var(--red);text-decoration:underline}
.reg-step{border:0;padding:0;margin:0 0 28px}
.reg-step legend{display:flex;align-items:center;gap:10px;font-weight:800;color:var(--navy);font-size:1.1rem;margin-bottom:14px;padding:0;font-family:var(--font-heading)}
.reg-step legend span{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--navy);color:#fff;font-size:.88rem}
.day-group{border:1px solid var(--line);border-radius:var(--radius);margin-bottom:12px;overflow:hidden}
.day-group-head{display:flex;justify-content:space-between;align-items:center;gap:10px;background:var(--cream);padding:10px 14px}
.day-group-head h3{margin:0;font-size:.95rem}
.select-day{font-size:.8rem;font-weight:700;display:flex;gap:6px;align-items:center;cursor:pointer;color:var(--red)}
.session-option{display:grid;grid-template-columns:22px 95px 1fr auto;gap:12px;align-items:center;padding:12px 14px;border-top:1px solid var(--line);cursor:pointer;transition:background .15s}
.session-option:hover{background:color-mix(in srgb,var(--cream) 50%,#fff)}
.session-option:has(input:checked){background:color-mix(in srgb,var(--red) 7%,#fff)}
.session-option input{width:18px;height:18px;accent-color:var(--red)}
.session-option.is-disabled{cursor:not-allowed;opacity:.6}
.so-time{font-weight:800;color:var(--red);font-size:.84rem;font-variant-numeric:tabular-nums}
.so-body strong{display:block;color:var(--navy);line-height:1.3;font-size:.93rem}
.so-body small{color:var(--muted);font-size:.8rem}
.seat-tag{font-style:normal;font-size:.72rem;font-weight:800;padding:3px 9px;border-radius:999px;background:#e3f4e8;color:#17663a;white-space:nowrap}
.seat-tag.low{background:#fbf0d9;color:#8a5a00}
.seat-tag.closed{background:#eef0f3;color:var(--muted)}
.reg-submit{display:flex;gap:16px;align-items:center;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:20px}
.error-summary{background:#fbecee;border-left-color:var(--red);color:#7a1b27;margin-bottom:20px}
.error-summary ul{margin:6px 0 0;padding-left:18px}
.field select{background:#fff}
/* Acknowledgement slip */
.ack-banner{margin-bottom:18px}
.ack-slip{background:#fff;border:1px solid var(--line);border-top:6px solid var(--navy);padding:30px;box-shadow:var(--shadow)}
.ack-head{display:flex;justify-content:space-between;align-items:center;gap:16px;border-bottom:2px solid var(--line);padding-bottom:16px;flex-wrap:wrap}
.ack-brand{display:flex;gap:12px;align-items:center}
.ack-brand img{height:52px;width:auto}
.ack-brand strong{display:block;color:var(--navy);font-size:1.1rem}
.ack-brand small{color:var(--muted)}
.ack-title{font-weight:900;letter-spacing:.12em;font-size:.8rem;color:var(--red);border:2px solid var(--red);padding:6px 12px}
.ack-ref{text-align:center;margin:22px 0;padding:16px;background:var(--cream);border:1px dashed var(--navy)}
.ack-ref span{display:block;font-size:.75rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-weight:800}
.ack-ref strong{display:block;font-size:2rem;color:var(--navy);letter-spacing:.06em;font-family:ui-monospace,Menlo,monospace}
.ack-ref small{color:var(--muted)}
.ack-table{width:100%;border-collapse:collapse;font-size:.9rem;margin-bottom:18px}
.ack-table th,.ack-table td{border:1px solid var(--line);padding:9px 11px;text-align:left;vertical-align:top}
.ack-table th{background:#f6f7f9;color:var(--navy);width:18%;font-weight:700}
.ack-table.sessions th{width:auto}
.ack-slip h3{font-size:1rem;margin:8px 0 10px}
.ack-venue{background:#f6f7f9;padding:12px 14px;font-size:.9rem}
.ack-notes{font-size:.85rem;color:var(--muted);padding-left:18px;margin:14px 0 0}
@media print{
  .topline,.site-header,.footer,.no-print,.skip-link,.speaker-popup{display:none!important}
  body{background:#fff}.section{padding:0}.soft{background:#fff}
  .ack-slip{box-shadow:none;border:1px solid #999;border-top:6px solid #000}
}
/* Responsive */
@media(max-width:950px){
  .facts-grid{grid-template-columns:repeat(2,1fr)}
  .fact:nth-child(3){border-left:0;padding-left:0}
  .days-timeline{grid-template-columns:1fr}
  .speaker-grid.four{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:760px){
  .hide-sm{display:none}
  .top-flex span:last-child{display:flex}
  .top-flex>span:first-child{font-size:.7rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
  .facts-grid{grid-template-columns:1fr}
  .fact{border-left:0;padding:14px 0;border-top:1px solid color-mix(in srgb,#fff 12%,transparent)}
  .fact:first-child{border-top:0}
  .steps{grid-template-columns:1fr}
  .steps li:not(:last-child)::after{content:"↓";right:auto;left:50%;top:auto;bottom:-22px;transform:translateX(-50%)}
  .speaker-grid.four{grid-template-columns:1fr 1fr;gap:12px}
  .speaker-grid.four .bio{display:none}
  .update-item{grid-template-columns:1fr;gap:6px}
  .update-item time{text-align:left;border:0;padding:0}
  .update-item time strong{display:inline;font-size:1rem;margin-right:4px}
  .countdown div{min-width:64px;flex:1}
  .session-option{grid-template-columns:22px 1fr;row-gap:4px}
  .so-time{grid-column:2}.so-body{grid-column:2}.so-seats{grid-column:2}
  .ack-slip{padding:18px}
  .ack-table th{width:auto}
  .btn-lg{width:100%;text-align:center}
}
.dark .eyebrow{color:var(--gold)}
.page-hero + .section.soft{padding-top:24px}
@media(max-width:760px){.two-col{gap:14px}.two-col h2{margin-bottom:0}}

/* ---- Hero slider (Classic) ---- */
.hero-slider{position:relative;height:440px;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);background:var(--navy);outline:none}
.hs-track{position:absolute;inset:0}
.hs-slide{position:absolute;inset:0;margin:0;opacity:0;visibility:hidden;transition:opacity .8s ease,visibility 0s linear .8s}
.hs-slide.is-active{opacity:1;visibility:visible;transition:opacity .8s ease}
.hs-slide img{width:100%;height:100%;object-fit:cover;display:block;transform:scale(1.04);transition:transform 6s ease-out}
.hs-slide.is-active img{transform:scale(1)}
.hs-slide figcaption{position:absolute;left:18px;right:18px;bottom:54px;display:flex;flex-direction:column;align-items:flex-start;gap:8px}
.hs-slide figcaption span{max-width:360px;border-left:4px solid var(--gold);padding:12px 14px;background:color-mix(in srgb,var(--navy) 82%,transparent);color:#fff;font-weight:600;line-height:1.35}
.hs-slide figcaption a{background:var(--red);color:#fff;font-weight:800;font-size:.85rem;padding:9px 14px;border-radius:var(--radius)}
.hs-arrow{position:absolute;top:50%;transform:translateY(-50%);width:42px;height:42px;border-radius:50%;border:0;background:color-mix(in srgb,#fff 88%,transparent);color:var(--navy);font-size:1.6rem;line-height:1;cursor:pointer;opacity:0;transition:opacity .2s;display:grid;place-items:center;z-index:2}
.hs-prev{left:12px}.hs-next{right:12px}
.hero-slider:hover .hs-arrow,.hero-slider:focus-within .hs-arrow{opacity:1}
.hs-bar{position:absolute;left:0;right:0;bottom:0;display:flex;justify-content:space-between;align-items:center;padding:12px 14px;background:linear-gradient(transparent,color-mix(in srgb,var(--navy) 70%,transparent));z-index:2}
.hs-dots{display:flex;gap:7px}
.hs-dots button{width:10px;height:10px;border-radius:999px;border:0;background:color-mix(in srgb,#fff 55%,transparent);cursor:pointer;padding:0;transition:width .25s,background .25s}
.hs-dots button.is-active{width:28px;background:#fff}
.hs-pause{border:0;background:color-mix(in srgb,#fff 20%,transparent);color:#fff;border-radius:999px;width:30px;height:30px;font-size:.7rem;cursor:pointer}
.hs-progress{position:absolute;left:0;right:0;top:0;height:3px;z-index:2}
.hs-progress i{display:block;height:100%;width:0;background:var(--gold)}
.hero-slider.is-timing .hs-progress i{animation:hs-progress var(--hs-interval,5s) linear forwards}
@keyframes hs-progress{to{width:100%}}
@media(hover:none){.hs-arrow{opacity:1;width:36px;height:36px;font-size:1.3rem}}
@media(max-width:760px){.hero-slider{height:280px}.hs-slide figcaption{bottom:48px;left:12px;right:12px}.hs-slide figcaption span{font-size:.88rem;padding:9px 11px}}
@media(prefers-reduced-motion:reduce){.hs-slide,.hs-slide img{transition:none}.hs-slide img{transform:none}}
