:root {
  --night: #1b1431;
  --night-2: #322044;
  --violet: #6843a7;
  --lavender: #cdb7f5;
  --amber: #f2b76f;
  --amber-dark: #e09b4e;
  --paper: #faf7fd;
  --surface: #ffffff;
  --ink: #28203a;
  --muted: #625b70;
  --line: #e2d9ec;
  --shadow: 0 20px 48px rgba(35, 21, 56, .14);
}
*,*::before,*::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--paper); color: var(--ink); font: 16px/1.7 "Segoe UI", Arial, sans-serif; -webkit-font-smoothing: antialiased; }
button { font: inherit; }
img { display: block; max-width: 100%; height: auto; }
a { color: var(--violet); text-underline-offset: .2em; }
a:hover { color: #432276; }
:focus-visible { outline: 3px solid var(--amber-dark); outline-offset: 3px; }
.layout-wrap { width: min(100% - 40px, 1200px); margin-inline: auto; }

.masthead { position: sticky; top: 0; z-index: 50; background: rgba(250,247,253,.97); border-bottom: 1px solid var(--line); box-shadow: 0 5px 24px rgba(35,21,56,.08); }
.masthead-inner { min-height: 76px; display: flex; align-items: center; gap: 22px; }
.brand-wordmark { color: var(--night); font-family: "Arial Black", "Segoe UI", sans-serif; font-size: clamp(18px,2vw,24px); font-weight: 900; letter-spacing: -.07em; line-height: 1; text-decoration: none; white-space: nowrap; }
.brand-wordmark span { color: var(--violet); }
.brand-wordmark:hover { color: var(--night); text-decoration: none; }
.primary-nav { display: none; }
.primary-nav.open { position: absolute; inset: 76px 0 auto; display: block; padding: 12px 20px 24px; background: var(--paper); border-bottom: 1px solid var(--line); box-shadow: var(--shadow); }
.primary-nav ul { display: flex; flex-direction: column; gap: 3px; margin: 0; padding: 0; list-style: none; }
.primary-nav li a { display: block; padding: 10px 12px; border-radius: 5px; color: var(--night); font-size: 14px; font-weight: 700; text-decoration: none; }
.primary-nav li a:hover,.primary-nav li a.active { color: var(--violet); background: #eee6f8; }
.primary-nav li a.active { box-shadow: inset 3px 0 var(--violet); }
.nav-cta { display: flex; gap: 9px; padding-top: 12px; }
.nav-toggle { display: flex; flex-direction: column; gap: 5px; margin-left: auto; padding: 10px; border: 1px solid #a896c5; border-radius: 5px; background: transparent; cursor: pointer; }
.nav-toggle span { width: 21px; height: 2px; background: var(--night); }

.action { display: inline-flex; align-items: center; justify-content: center; min-height: 42px; padding: 10px 21px; border: 2px solid var(--violet); border-radius: 5px; font-size: 14px; font-weight: 800; line-height: 1.25; text-decoration: none; text-align: center; transition: background-color .18s ease,color .18s ease; }
.action:hover { text-decoration: none; }
.action-play { color: var(--night); background: var(--amber); border-color: var(--amber); }
.action-play:hover { color: var(--night); background: #ffd09a; border-color: #ffd09a; }
.action-register { color: var(--violet); background: transparent; }
.action-register:hover { color: #fff; background: var(--violet); }
.action-large { min-height: 50px; padding: 13px 27px; font-size: 16px; }
.action-row { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 24px; }

.breadcrumbs { padding: 15px 0 0; font-size: 13px; }
.breadcrumbs ol { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; }
.breadcrumbs li { color: var(--muted); }
.breadcrumbs li + li::before { content: "/"; margin-right: 8px; color: #a18db7; }

.front-stage { position: relative; overflow: hidden; padding: clamp(54px,7vw,98px) 0; color: #fff; background: radial-gradient(circle at 85% 20%, #523773 0, transparent 34%),linear-gradient(135deg,var(--night),var(--night-2)); }
.front-stage::after { content: ""; position: absolute; left: -120px; bottom: -180px; width: 380px; height: 380px; border: 1px solid rgba(205,183,245,.28); transform: rotate(24deg); pointer-events: none; }
.front-grid { position: relative; display: grid; align-items: center; gap: 38px; }
.front-copy { min-width: 0; }
.front-stage h1,.inner-stage h1,.story-body h2,.action-stage-inner h2 { font-family: "Arial Black", "Segoe UI", sans-serif; font-weight: 900; letter-spacing: -.065em; }
.front-stage h1 { max-width: 670px; margin: 0 0 24px; font-size: clamp(38px,5.2vw,70px); line-height: 1.06; }
.intro { max-width: 67ch; margin: 0; font-size: clamp(17px,1.6vw,19px); line-height: 1.66; }
.front-stage .intro { color: #e2d7ed; }
.front-media { margin: 0; padding: 7px; background: linear-gradient(145deg,#d9c9ef,var(--amber)); transform: rotate(2deg); box-shadow: var(--shadow); }
.front-media img { width: 100%; aspect-ratio: 1.43; object-fit: cover; }
.front-stage .action-register { color: #f8edff; border-color: #cdb7f5; }
.front-stage .action-register:hover { color: var(--night); background: #cdb7f5; }

.offer-slip { display: flex; align-items: center; flex-wrap: wrap; gap: 9px 16px; width: fit-content; max-width: 100%; margin-top: 29px; padding: 15px 18px; background: rgba(255,255,255,.11); border: 1px solid rgba(205,183,245,.55); border-radius: 3px; }
.offer-label { color: var(--lavender); font-size: 13px; font-weight: 700; }
.offer-value { font-size: 21px; font-weight: 900; line-height: 1.2; }
.offer-copy { display: inline-flex; align-items: center; gap: 8px; padding: 7px 10px; border: 1px dashed var(--amber); border-radius: 4px; color: var(--night); background: #fff6eb; font-size: 14px; font-weight: 900; cursor: pointer; }
.offer-copy:hover,.offer-copy.copied { background: var(--amber); }
.offer-code { display: inline-block; }
.offer-icon { flex: none; }
.offer-slip + .action-row { margin-top: 18px; }

.inner-stage { padding: 44px 0 52px; background: #f0eaf8; border-bottom: 5px solid var(--violet); }
.inner-stage h1 { max-width: 920px; margin: 0 0 15px; color: var(--night); font-size: clamp(36px,4.5vw,58px); line-height: 1.1; }
.inner-stage .intro { color: #4e4162; }

.story-body { width: min(100% - 40px, 900px); padding-top: 58px; padding-bottom: 40px; }
.story-body h2 { margin: 52px 0 17px; color: var(--night); font-size: clamp(26px,2.9vw,34px); line-height: 1.18; }
.story-body h2:first-child { margin-top: 0; }
.story-body h2::after { content: ""; display: block; width: 90px; height: 3px; margin-top: 13px; background: var(--amber-dark); }
.story-body h3 { margin: 30px 0 11px; color: var(--violet); font-size: 20px; line-height: 1.3; }
.story-body p { margin: 0 0 19px; }
.story-body ul,.story-body ol { margin: 0 0 22px; padding-left: 26px; }
.story-body li { margin-bottom: 8px; padding-left: 4px; }
.story-body li::marker { color: var(--violet); font-weight: 800; }
.story-body figure { margin: 38px -18px; }
.story-body figure img { width: 100%; border-radius: 4px; box-shadow: var(--shadow); }
.story-body strong { color: var(--night); }
.table-scroll { overflow-x: auto; margin: 29px 0 34px; border: 1px solid var(--line); border-radius: 7px; box-shadow: 0 8px 28px rgba(35,21,56,.07); }
.table-scroll table { width: 100%; min-width: 550px; border-collapse: collapse; background: var(--surface); }
.table-scroll th,.table-scroll td { padding: 13px 16px; text-align: left; vertical-align: top; border-bottom: 1px solid var(--line); }
.table-scroll th { color: var(--night); background: #e8def4; font-size: 13px; font-weight: 800; }
.table-scroll tr:nth-child(even) td { background: #fcf9ff; }
.table-scroll tr:last-child td { border-bottom: 0; }

.action-stage { margin-top: 42px; padding: 66px 0; color: #fff; text-align: center; background: var(--violet); }
.action-stage-inner h2 { margin: 0 0 13px; font-size: clamp(30px,4vw,48px); line-height: 1.15; }
.action-stage-inner p { max-width: 650px; margin: 0 auto; color: #ecdefa; }
.action-stage-inner .action-row { justify-content: center; }
.action-stage .action-register { color: #fff; border-color: #fff; }
.action-stage .action-register:hover { color: var(--violet); background: #fff; }
.action-stage .offer-slip { margin-inline: auto; text-align: left; }

.page-footer { color: #e8deef; background: var(--night); }
.page-footer-grid { display: grid; gap: 30px; padding-top: 55px; padding-bottom: 42px; }
.page-footer .brand-wordmark { color: #fff; }
.page-footer .brand-wordmark span { color: var(--amber); }
.page-footer-col h4 { margin: 0 0 14px; color: var(--amber); font-size: 15px; }
.page-footer-col ul { margin: 0; padding: 0; list-style: none; }
.page-footer-col li { margin-bottom: 8px; }
.page-footer-col li a { color: #dcd0e9; text-decoration: none; }
.page-footer-col li a:hover { color: #fff; text-decoration: underline; }
.page-footer-col p { max-width: 34ch; margin: 12px 0 0; color: #cbbbd8; font-size: 14px; }
.footer-brand { font-size: 24px; }
.age-pill { display: inline-block; margin-top: 18px; padding: 4px 10px; border: 1px solid var(--amber); color: var(--amber); border-radius: 4px; font-weight: 900; }
.page-footer-bottom { padding-top: 19px; padding-bottom: 25px; border-top: 1px solid rgba(205,183,245,.26); }
.page-footer-bottom p { margin: 0; color: #bfaed1; font-size: 13px; text-align: center; }
.cookie-settings-link { padding: 0; border: 0; color: #dcd0e9; background: none; cursor: pointer; text-align: left; }
.cookie-settings-link:hover { color: #fff; text-decoration: underline; }
.cookie-banner { position: fixed; z-index: 100; right: 20px; bottom: 20px; display: none; width: min(480px,calc(100vw - 40px)); padding: 22px; color: var(--ink); background: #fff; border: 2px solid var(--violet); border-radius: 8px; box-shadow: 0 18px 58px rgba(20,12,36,.35); }
.cookie-banner.visible { display: block; }
.cookie-banner p { margin: 0 0 16px; line-height: 1.5; }
.cookie-actions { display: flex; flex-wrap: wrap; gap: 9px; }
.cookie-actions button { min-height: 42px; padding: 9px 14px; border: 2px solid var(--violet); border-radius: 5px; color: var(--violet); background: #fff; font-weight: 700; cursor: pointer; }
.cookie-actions button:last-child { color: #fff; background: var(--violet); }
.cookie-actions button:hover { border-color: var(--amber-dark); }

@media (min-width: 950px) {
  .nav-toggle { display: none; }
  .primary-nav { display: flex; flex: 1; align-items: center; min-width: 0; }
  .primary-nav ul { flex-direction: row; flex-wrap: wrap; gap: 1px; margin-left: 12px; }
  .primary-nav li a { padding: 8px 9px; }
  .nav-cta { margin-left: auto; padding: 0; }
  .front-grid { grid-template-columns: minmax(0,1.06fr) minmax(0,.94fr); gap: clamp(40px,5vw,76px); }
  .page-footer-grid { grid-template-columns: minmax(220px,1.6fr) repeat(4,minmax(110px,1fr)); }
}
@media (max-width: 949px) { .page-footer-grid { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media (max-width: 600px) {
  .layout-wrap,.story-body { width: min(100% - 32px,900px); }
  .masthead-inner { min-height: 68px; }
  .primary-nav.open { top: 68px; }
  .front-media { transform: rotate(1deg); }
  .story-body { padding-top: 43px; }
  .story-body figure { margin-inline: 0; }
  .offer-slip { width: 100%; }
  .offer-value { font-size: 18px; }
  .page-footer-grid .page-footer-col:first-child,.page-footer-grid .page-footer-col:last-child { grid-column: 1 / -1; }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } .action { transition: none; } }
