/* MSIF Imperial Violet theme · v19 */
:root {
  --slate: #7047a8;
  --slate-dark: #4a2b72;
  --navy: #2a1547;
  --blue: #7047a8;
  --blue-soft: #efe7f8;
  --ink: #251833;
  --ink-soft: #44364f;
  --paper: #faf7fc;
  --warm: #f4eff8;
  --border: #e2d8eb;
  --border-dark: #cdbddd;
  --muted: #746a7d;
  --aqua: #a66be0;
  --aqua-bright: #d8b5ff;
  --sea-glass: #f0e8f8;
  --ocean-deep: #1a0d30;
  --ocean-mid: #5b358b;
  --mist: #faf7fc;
  --shadow: 0 30px 80px rgba(42, 21, 71, .15);
  --shadow-small: 0 12px 35px rgba(42, 21, 71, .09);
}

html { scrollbar-color: #9d73c8 #f0e8f8; }
body, body.public-page { background: #fcf9fd; }
::selection { color: #fff; background: #7047a8; }
:focus-visible { outline-color: #a66be0; }
.eyebrow, .text-link, .text-button { color: #7047a8; }
.tag, .count-chip { color: #573482; background: #eee4f7; }

/* Navigation and global controls */
.site-header { background: rgba(253,250,254,.95); border-bottom-color: rgba(157,115,200,.25); }
.site-header.scrolled { box-shadow: 0 8px 30px rgba(42,21,71,.1); }
.brand-seal { background: linear-gradient(145deg,#9b67d1,#321b54 74%); box-shadow: 0 8px 20px rgba(74,43,114,.22), inset 0 0 0 4px rgba(255,255,255,.1); }
.brand-copy strong { color: #2a1547; }
.brand-copy small { color: #756782; }
.main-nav { color: #4d3b5d; }
.main-nav > a:not(.button)::after { background: #a66be0; }
.language-switch { background: rgba(240,232,248,.82); border-color: rgba(112,71,168,.2); }
.language-switch a { color: #756782; }
.language-switch a.active { background: linear-gradient(135deg,#8455be,#4a2b72); box-shadow: 0 4px 13px rgba(74,43,114,.25); }
.button-dark { background: linear-gradient(135deg,#2a1547,#654095); }
.button-aqua { color: #28143f; background: linear-gradient(135deg,#d8b5ff,#a66be0); box-shadow: 0 12px 30px rgba(112,71,168,.24); }
.button-outline { border-color: #cdbddd; }
.flash { background: #f0e6f8; border-color: #d8c3e9; }

/* Public experience */
.hero.hero-slider { background: #1a0d30; }
.hero-slide-scrim { background: linear-gradient(90deg,rgba(22,9,42,.97) 0%,rgba(42,21,71,.9) 34%,rgba(91,53,139,.44) 65%,rgba(54,25,89,.1) 100%),linear-gradient(0deg,rgba(23,10,43,.78),transparent 50%); }
.hero-slide-dragon .hero-slide-scrim { background: linear-gradient(90deg,rgba(20,8,39,.98),rgba(55,25,91,.88) 38%,rgba(107,53,142,.34) 70%,rgba(50,20,78,.06)),linear-gradient(0deg,rgba(24,9,44,.76),transparent 54%); }
.hero-title span { color: #d8b5ff; }
.hero-copy .eyebrow, .eyebrow.light { color: #ddc8f3; }
.hero-lead, .trust-line { color: #ded2e9; }
.trust-line span::before { color: #c997f5; }
.slider-arrows button, .slider-pause { background: rgba(42,21,71,.58); border-color: rgba(220,197,241,.4); }
.slider-arrows button:hover, .slider-pause:hover { color: #2a1547; background: #c89aef; border-color: #c89aef; }
.slider-dots button.active { background: #c89aef; }
.event-capsule { background: rgba(47,22,78,.69); border-color: rgba(220,197,241,.32); box-shadow: 0 30px 70px rgba(20,8,38,.28); }
.event-capsule::before { background: radial-gradient(circle,rgba(172,104,226,.24),transparent 65%); }
.event-capsule > div, .event-capsule .countdown, .event-capsule .countdown > div { border-color: rgba(223,202,240,.2); }
.event-capsule span, .event-capsule small { color: #cbb8da; }
.event-capsule-date strong { color: #d8b5ff; }
.stat-strip { background: linear-gradient(100deg,#321b54,#7047a8 55%,#9d5bd4); }
.intro-section, .programme-section, .faq-section, .visit-notes { background: #fcf9fd; }
.feature-card, .floor-section, .tickets-section, .programme-page { background-color: #f4eff8; }
.feature-dark { color: #fff; background: radial-gradient(circle at 88% 12%,rgba(216,181,255,.2),transparent 30%),linear-gradient(145deg,#24113f,#7047a8); border-color: rgba(216,181,255,.3); }
.feature-dark::after { background: radial-gradient(circle,rgba(216,181,255,.22),transparent 68%); }
.feature-dark .feature-number { color: #2a1547; background: #d8b5ff; }
.feature-dark h3 { color: #fff; }
.feature-dark p { color: #e3d7ec; }
.feature-blue { background: linear-gradient(135deg,#7047a8,#4a2b72); }
.event-band { background: linear-gradient(120deg,#2a1547,#5b358b); }
.programme-row, .vendor-card { border-color: rgba(205,189,221,.78); box-shadow: 0 12px 34px rgba(42,21,71,.05); }
.programme-row:hover, .vendor-card:hover { border-color: #b384db; box-shadow: 0 20px 48px rgba(42,21,71,.12); }
.draw-section { background: radial-gradient(circle at 15% 10%,rgba(166,107,224,.2),transparent 27%),radial-gradient(circle at 88% 90%,rgba(112,71,168,.48),transparent 35%),linear-gradient(135deg,#180b2f,#4b286f); }
.ticket-option.ticket-premium { background: linear-gradient(145deg,#291445,#53317d); border-color: #4a2b72; }
.ticket-premium .ticket-topline, .ticket-premium li span { color: #d8b5ff; }
.contact-section { background: linear-gradient(135deg,#2a1547,#7047a8); }
.contact-form { border-color: rgba(224,203,242,.7); box-shadow: 0 30px 70px rgba(31,13,53,.22); }
.contact-form .button { background: linear-gradient(135deg,#2a1547,#7047a8); }
.site-footer { color: #cfc1dc; background: linear-gradient(145deg,#170a2a,#2a1547); }
.footer-grid > div:first-child p { color: #ad9abc; }
.footer-bottom { color: #907ca1; border-color: rgba(218,191,239,.16); }

/* Inner pages, authentication, booking and wallet */
.page-hero, .cta-section, .success-hero { background: radial-gradient(circle at 80% 0,rgba(166,107,224,.22),transparent 34%),linear-gradient(120deg,#1a0d30,#5b358b); }
.auth-main { background: #fbf8fd; }
.auth-art { background: linear-gradient(90deg,rgba(23,9,44,.93),rgba(72,34,108,.38)),url('/assets/images/msif-imperial-discovery-v3.webp') center/cover no-repeat; }
.auth-art::before { color: rgba(218,181,255,.09); }
.auth-art::after { border-color: rgba(205,160,240,.24); box-shadow: inset 0 0 0 30px transparent,inset 0 0 0 31px rgba(205,160,240,.13),inset 0 0 0 65px transparent,inset 0 0 0 66px rgba(205,160,240,.09); }
.booking-main, .success-main, .account-page { background: #f7f2fa; }
.booking-progress b { background: linear-gradient(145deg,#7047a8,#b37ce5); }
input:focus, select:focus, textarea:focus { border-color: #a66be0; box-shadow: 0 0 0 4px rgba(166,107,224,.14); }
.form-section, .pass-row, .attendee-row, .order-summary, .paynow-card, .free-confirm, .success-card, .wallet-pass, .digital-ticket, .account-side > * { border-color: #ded2e8; box-shadow: 0 16px 42px rgba(42,21,71,.08); }
.pass-row.premium, .digital-ticket-head { background: linear-gradient(135deg,#2a1547,#5b358b); border-color: #4a2b72; }
.account-welcome { background: radial-gradient(circle at 85% 5%,rgba(177,116,229,.3),transparent 29%),linear-gradient(120deg,#1a0d30,#5b358b); }
.subnav a.active::after { background: #8d5ac2; }

/* Staff, scanner and admin operations */
.staff-page, .admin-page { background: radial-gradient(circle at 88% 2%,rgba(166,107,224,.12),transparent 24%),#f4eff8; }
.staff-hero { background: radial-gradient(circle at 100% 0,rgba(209,163,247,.24),transparent 31%),linear-gradient(130deg,#2a1547,#7047a8); }
.portal-nav { background: radial-gradient(circle at 0 0,rgba(166,107,224,.15),transparent 29%),linear-gradient(180deg,#170a2a,#2a1547); }
.portal-identity { border-color: rgba(211,185,232,.16); }
.portal-identity .eyebrow { color: #b491d1; }
.portal-nav nav a:hover, .portal-nav nav a.active { background: rgba(187,132,230,.14); }
.portal-nav nav a.active { box-shadow: inset 3px 0 #b77de6; }
.portal-nav nav a.active::after { background: #d8b5ff; box-shadow: 0 0 10px #d8b5ff; }
.admin-top { background: radial-gradient(circle at 92% 15%,rgba(218,181,255,.23),transparent 31%),linear-gradient(125deg,#24113f,#654095); border-color: rgba(213,177,241,.27); box-shadow: 0 24px 58px rgba(42,21,71,.17); }
.admin-top::after { border-color: rgba(222,195,243,.22); box-shadow: 0 0 0 34px rgba(205,160,240,.05),0 0 0 68px rgba(205,160,240,.03); }
.admin-top .eyebrow { color: #d8b5ff; }
.admin-top p { color: #d9cce5; }
.admin-top .button-outline { border-color: rgba(224,204,240,.38); }
.admin-page .panel, .admin-page .table-card, .admin-page .filter-bar { border-color: rgba(205,189,221,.8); box-shadow: 0 16px 44px rgba(42,21,71,.07); }
.admin-page .panel:hover { border-color: rgba(167,117,208,.72); box-shadow: 0 22px 55px rgba(42,21,71,.11); }
.admin-page input, .admin-page select, .admin-page textarea { background: #fdfbfe; border-color: #d3c4df; }
.admin-page input:hover, .admin-page select:hover, .admin-page textarea:hover { border-color: #ad86ca; }
.admin-page .button-dark { background: linear-gradient(135deg,#2a1547,#7047a8); box-shadow: 0 10px 24px rgba(74,43,114,.2); }
.switch-label:has(input:checked) { background: linear-gradient(135deg,#f7f1fb,#eee3f7); border-color: #b78bd8; }
.switch-label input:checked { background: linear-gradient(135deg,#7047a8,#b273df); box-shadow: 0 6px 15px rgba(112,71,168,.25),inset 0 1px 3px rgba(42,21,71,.12); }
.switch-label input:focus-visible { outline-color: rgba(166,107,224,.3); }

/* Interactive hall and exhibitor surfaces */
.interactive-plan-app { background: #f0e9f6; border-color: #d4c4e1; box-shadow: 0 30px 75px rgba(42,21,71,.15); }
.interactive-plan-sidebar { background: radial-gradient(circle at 0 0,rgba(183,117,229,.22),transparent 36%),linear-gradient(160deg,#1a0d30,#54317c); }
.map-filter-card, .map-detail-card { border-color: rgba(222,197,241,.2); }
.map-toolbar { border-color: #d7c7e4; }
.map-toolbar span { color: #79509c; }
.map-toolbar strong { color: #3e2752; }
.map-zoom-controls button { color: #4a2b72; background: #eee5f6; border-color: #d3c0e2; }
.map-scroll { background: #e8e0ee; border-color: #cdbddd; scrollbar-color: #a987c3 #f3edf7; }
.map-booth.is-occupied:hover, .map-booth.is-occupied:focus-visible { border-color: #4a2b72; box-shadow: 0 7px 16px rgba(42,21,71,.24); }
.map-booth.is-selected { background: #5b358b; border-color: #d8b5ff; box-shadow: 0 0 0 4px rgba(166,107,224,.27),0 9px 20px rgba(42,21,71,.28); }
.exhibitor-mini-card { color: #44324f; border-color: #dfd3e8; box-shadow: 0 10px 24px rgba(42,21,71,.06); }
.exhibitor-mini-card:hover, .exhibitor-mini-card:focus-visible { border-color: #aa78d1; box-shadow: 0 14px 30px rgba(42,21,71,.14); }
.exhibitor-mini-logo { background: #f7f2fa; }
.exhibitor-mini-logo b, .exhibitor-mini-card small { color: #7047a8; }
.mobile-map-dialog::backdrop { background: rgba(24,10,43,.7); }
.mobile-map-dialog-sheet { border-color: #d8c7e5; box-shadow: 0 -24px 70px rgba(32,13,54,.3); }
.mobile-map-dialog-head span { color: #7950a0; }
.mobile-map-dialog-head button { color: #4a2b72; background: #eee5f6; }
.mobile-map-dialog-next { background: linear-gradient(135deg,#5b358b,#a66be0); box-shadow: 0 10px 24px rgba(74,43,114,.22); }
.map-next-link { color: #573482; background: linear-gradient(135deg,#f8f2fb,#eee3f7); border-color: #d4bde5; }
.map-next-link b { background: #8250b7; }

/* Exhibitor packages */
.exhibit-section { color: #fff; background: radial-gradient(circle at 8% 10%,rgba(216,181,255,.18),transparent 30%),radial-gradient(circle at 90% 85%,rgba(166,107,224,.26),transparent 34%),linear-gradient(145deg,#24113f,#5b358b); }
.exhibit-section .section-heading p { color: #dfd2e9; }
.exhibit-section .eyebrow { color: #d8b5ff; }
.booth-package-grid article { background: rgba(255,255,255,.09); border-color: rgba(224,204,240,.22); box-shadow: 0 16px 38px rgba(26,13,48,.12); }
.booth-package-grid article > span { color: #d8b5ff; }
.booth-package-grid h3, .booth-package-grid article > strong { color: #fff; }
.booth-package-grid small, .booth-package-grid p { color: #ddcfe7; }
.exhibit-cta { color: #2a1547; background: linear-gradient(135deg,#f7f1fb,#eadcf5); border: 1px solid rgba(216,181,255,.55); box-shadow: 0 18px 42px rgba(26,13,48,.15); }
.exhibit-cta p { color: #6d5b7a; }
.exhibit-cta .button { color: #fff; background: linear-gradient(135deg,#2a1547,#7047a8); }

/* Dragon coin route */
.dragon-section { background: radial-gradient(circle at 83% 12%,rgba(178,101,220,.34),transparent 30%),radial-gradient(circle at 12% 88%,rgba(196,148,68,.13),transparent 32%),linear-gradient(135deg,#1a0d30,#4f286f 58%,#762d78); }
.dragon-feature-main, .coin-edition-section { background: #faf7fc; }
.coin-spec-band { background: linear-gradient(90deg,#271241,#5b358b 52%,#3f205f); border-color: rgba(214,175,242,.22); }
.coin-spec-grid span, .dragon-feature-kicker { color: #d0a8ef; }
.coin-design-section { background: linear-gradient(180deg,#faf7fc,#f0e9f6); }
.coin-design-copy h2, .coin-craft-grid h2, .coin-edition-copy h2 { color: #3c2255; }
.coin-design-copy p, .coin-craft-grid p, .coin-edition-copy p { color: #6e6178; }
.coin-edition-copy li { background: #f0e8f7; border-color: #d8c8e4; }
.coin-edition-copy li strong { color: #7047a8; }
.coin-official-reference { border-color: #dbcde5; box-shadow: 0 28px 65px rgba(42,21,71,.14); }
.coin-official-reference figcaption strong { color: #4a2b72; }
.coin-craft-section { color: #fff; background: radial-gradient(circle at 80% 18%,rgba(216,181,255,.2),transparent 32%),radial-gradient(circle at 8% 88%,rgba(166,107,224,.18),transparent 30%),linear-gradient(135deg,#170a2a,#4a2b72); }
.coin-craft-section .eyebrow { color: #d8b5ff; }
.coin-craft-section .coin-craft-grid h2 { color: #fff; }
.coin-craft-section .coin-craft-grid p { color: #e2d6eb; }
.coin-craft-section .coin-craft-grid figure { border-color: rgba(216,181,255,.3); box-shadow: 0 30px 70px rgba(17,7,31,.34); }
.coin-craft-section .coin-craft-grid figure figcaption { color: #d7c2e5; background: rgba(25,9,43,.94); }
.coin-craft-section .coin-craft-note { background: rgba(255,255,255,.08); border-color: rgba(224,204,240,.2); }
.coin-craft-section .coin-craft-note strong { color: #d8b5ff; }
.coin-craft-section .coin-craft-note span { color: #f0e8f5; }
.dragon-feature-cta { background: radial-gradient(circle at 50% 0,rgba(181,109,226,.26),transparent 36%),linear-gradient(135deg,#1a0d30,#542d75); }
.dragon-feature-cta span { color: #d3acef; }

@media (max-width: 900px) {
  .site-header { background: linear-gradient(90deg,rgba(253,250,254,.98),rgba(244,236,249,.97)); border-bottom-color: rgba(166,124,200,.4); box-shadow: 0 7px 24px rgba(42,21,71,.09); }
  .site-header::after { color: #694489; background: rgba(235,220,246,.84); border-color: rgba(163,114,202,.4); }
  .mobile-app-nav { color: #c8b6d6; background: rgba(31,13,53,.95); border-color: rgba(211,172,240,.25); box-shadow: 0 18px 55px rgba(20,8,36,.38); }
  .mobile-tab.active { color: #d8b5ff; background: rgba(174,106,224,.13); }
  .mobile-tab.active::after { background: #c997f5; box-shadow: 0 0 10px #c997f5; }
  .mobile-tab-primary .mobile-tab-icon { color: #2a1547; background: linear-gradient(145deg,#e0c2ff,#a66be0); border-color: #24113f; box-shadow: 0 9px 24px rgba(112,71,168,.34); }
}

@media (max-width: 640px) {
  .hero-slide-scrim { background: linear-gradient(90deg,rgba(24,10,44,.97),rgba(55,27,86,.86) 72%,rgba(87,44,121,.5)),linear-gradient(0deg,rgba(25,10,46,.9),transparent 60%); }
  .map-scroll { background: #e8e0ee; }
  .map-booth.is-occupied { color: #3e2254; background: #d9bdf0; border-color: #8e5eb5; }
  .map-booth.is-occupied:hover, .map-booth.is-occupied:focus-visible, .map-booth.is-selected { color: #321a48; background: #ead6fa; border-color: #5b358b; box-shadow: 0 0 0 5px rgba(166,107,224,.25); }
}

@media print {
  :root { --ink: #17131b; --paper: #fff; --warm: #fff; }
}
