/* Longévité Monte-Carlo Economic Forum. Золото и чёрный логотипа, Монако в кадре. */
@view-transition { navigation: auto; }

@font-face { font-family: "Cormorant Garamond"; font-weight: 500; font-display: swap; src: url(/assets/fonts/cormorant-garamond-normal-500-latin.woff2) format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+20AC, U+2122; }
@font-face { font-family: "Cormorant Garamond"; font-weight: 500; font-display: swap; src: url(/assets/fonts/cormorant-garamond-normal-500-latin-ext.woff2) format("woff2"); unicode-range: U+0100-0130, U+0132-0151, U+0154-02BA; }
@font-face { font-family: "Lato"; font-weight: 400; font-display: swap; src: url(/assets/fonts/lato-normal-400-latin.woff2) format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+2000-206F, U+20AC; }
@font-face { font-family: "Lato"; font-weight: 400; font-display: swap; src: url(/assets/fonts/lato-normal-400-latin-ext.woff2) format("woff2"); unicode-range: U+0100-0130, U+0132-0151, U+0154-02BA; }
@font-face { font-family: "Lato"; font-weight: 700; font-display: swap; src: url(/assets/fonts/lato-normal-700-latin.woff2) format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+2000-206F, U+20AC; }
@font-face { font-family: "Lato"; font-weight: 700; font-display: swap; src: url(/assets/fonts/lato-normal-700-latin-ext.woff2) format("woff2"); unicode-range: U+0100-0130, U+0132-0151, U+0154-02BA; }

:root {
  --fs-h3: clamp(26px, 2.4vw, 36px);
  --fs-figure: clamp(64px, 8.2vw, 148px);
  --night: 0;
  --ground: color-mix(in srgb, #0d0c0a calc(var(--night) * 100%), #241a11);  /* от заката над гаванью к ночи гала-ужина */
  --surface: #1c1915;
  --ink: #f5f1e8;
  --muted: #c9c3b6;
  --gold: #c9a96a;  /* золото брендбука */
  --on-gold: #0d0c0a;
  --display: "Cormorant Garamond", Georgia, "Times New Roman", serif;
  --body: "Lato", system-ui, -apple-system, "Segoe UI", sans-serif;
  --margin: clamp(20px, 3vw, 48px);
  --gap: clamp(96px, 12vw, 200px);
  --ease: cubic-bezier(.22, 1, .36, 1);
}

*, *::before, *::after { box-sizing: border-box; }
html { overscroll-behavior-x: none; background: var(--ground); transition: background-color 1.2s; -webkit-text-size-adjust: 100%; scroll-padding-top: 88px; }
body { margin: 0; color: var(--ink); font: 400 18px/1.55 var(--body); font-variant-numeric: lining-nums; -webkit-font-smoothing: antialiased; overflow-x: clip; }
img, video, svg { display: block; max-width: 100%; }
img { height: auto; }
h1, h2, h3, p, ul, ol, dl, dd, figure, blockquote { margin: 0; padding: 0; }
ul, ol { list-style: none; }
a { color: inherit; text-underline-offset: 4px; }
[hidden] { display: none !important; }
:focus-visible { outline: 2px solid var(--gold); outline-offset: 3px; }
::selection { background: var(--gold); color: var(--on-gold); }
figcaption { margin-top: 10px; font-size: 15px; color: var(--muted); }

.skip { position: fixed; left: var(--margin); top: -80px; z-index: 100; padding: 10px 16px; background: var(--gold); color: var(--on-gold); font-weight: 700; }
.skip:focus { top: 12px; }

.h2 { font: 500 clamp(40px, 5vw, 86px)/1.02 var(--display); letter-spacing: -.02em; text-wrap: balance; }
.h3 { font: 500 var(--fs-h3)/1.12 var(--display); color: var(--gold); text-wrap: balance; }
.lead { font-size: clamp(19px, 1.45vw, 21px); line-height: 1.45; }
.wrap { padding-inline: var(--margin); }
.sec { position: relative; padding-block: var(--gap); background: var(--ground); }
.plain { display: grid; gap: 10px; margin-top: 12px; }
.plate { background: #fff; padding: 2px 4px; }

.btn { position: relative; isolation: isolate; overflow: hidden; display: inline-flex; align-items: center; justify-content: center; min-height: 52px; padding: 0 28px; background: var(--gold); color: var(--on-gold); font: 700 18px var(--body); text-decoration: none; white-space: nowrap; border: 0; cursor: pointer; transition: transform .25s var(--ease); }
.btn::before { content: ""; position: absolute; inset: 0; z-index: -1; background: var(--ink); transform: scaleX(0); transform-origin: right; transition: transform .5s var(--ease); }
.btn:hover::before, .btn:focus-visible::before { transform: scaleX(1); transform-origin: left; }
.btn:active { transform: scale(.97); }
.btn--small { min-height: 44px; padding: 0 20px; font-size: 15px; }
.link { display: inline-block; padding-block: 10px; color: var(--ink); text-decoration-thickness: 1px; transition: color .2s; }
.link:hover { color: var(--gold); }

/* Шапка: на первом экране поверх фильма, дальше на ровном фоне */
.bar { position: sticky; top: 0; z-index: 40; display: flex; align-items: center; gap: 28px; padding: 14px var(--margin); background: var(--ground); transition: background-color .3s; }
.bar--over { position: fixed; inset: 0 0 auto; background: none; }
.bar--over.solid { background: var(--ground); }
.bar-brand { display: flex; margin-right: auto; }
.bar-brand img { width: auto; height: 50px; }  /* не меньше 120 px по ширине: правило брендбука */
.bar-nav { display: flex; gap: 22px; font-size: 15px; }
.bar-nav a { text-decoration: none; padding: 8px 0; transition: color .2s; }
.bar-nav a:hover { color: var(--gold); }
.bar-lang { font-weight: 700; color: var(--gold); }
.bar-toggle { display: none; min-height: 44px; padding: 0 4px; background: none; border: 0; color: var(--ink); font: 400 15px var(--body); cursor: pointer; }

/* Первый экран: один кадр на весь экран, имя как титр фильма */
.hero { position: relative; display: flex; align-items: flex-end; min-height: 100svh; padding: 110px var(--margin) 28px; background: #0d0c0a; overflow: hidden; }
.hero-film { position: absolute; inset: 0; }
.hero-poster, .hero-video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.hero-video { opacity: 0; transition: opacity .8s; }
.hero-video.on { opacity: 1; }
.hero-film::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to bottom, rgba(0, 0, 0, .55), rgba(0, 0, 0, 0) 20%, rgba(0, 0, 0, 0) 36%, rgba(0, 0, 0, .8) 78%);  /* taste-skill-ignore: нейтральное затемнение под текстом на фото */ pointer-events: none; }
.hero-text { position: relative; flex: 1; min-width: 0; }
.hero-title { font: 500 clamp(36px, 7.2vw, 132px)/.98 var(--display); letter-spacing: -.025em; max-width: 14em; text-wrap: balance; }
.hero-when { margin-top: 18px; font: 500 clamp(24px, 2.6vw, 40px)/1.1 var(--display); color: var(--gold); }
.hero-row { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 20px 40px; margin-top: 24px; }
.hero-lead { max-width: 44ch; font-size: 18px; }
.hero-actions { display: flex; align-items: center; gap: 24px; }
.hero-side { display: flex; flex-direction: column; align-items: flex-end; gap: 10px; margin-left: auto; }
.film-toggle { min-height: 44px; padding: 0 2px; background: none; border: 0; color: var(--ink); font: 400 15px var(--body); text-decoration: underline; text-underline-offset: 5px; cursor: pointer; }
.film-toggle:hover { color: var(--gold); }
.hero-co { display: flex; align-items: center; gap: 14px; font-size: 15px; }
.hero-co img { width: auto; height: 52px; }

/* Заставка: круг медальона рисуется и раскрывается в фильм. Только CSS: сбой скрипта её не задержит */
.intro { display: none; }
.intro-mark { width: min(80vmin, 560px); transform-origin: 50% 28%; animation: intro-show 1.5s .1s cubic-bezier(.6, 0, .2, 1) both, intro-grow .8s 2.05s cubic-bezier(.7, 0, .2, 1) forwards; }
@keyframes intro-show { from { opacity: 0; clip-path: inset(0 0 100% 0); } 40% { opacity: 1; } to { opacity: 1; clip-path: inset(0 0 -2% 0); } }
@keyframes intro-grow { to { transform: scale(6); opacity: 0; } }
@keyframes intro-out { to { opacity: 0; visibility: hidden; } }
@keyframes film-open { 0% { clip-path: circle(0 at 50% calc(50% - min(13.6vmin, 95px))); } 30% { clip-path: circle(min(14vmin, 100px) at 50% calc(50% - min(13.6vmin, 95px))); } 100% { clip-path: circle(130vmax at 50% calc(50% - min(13.6vmin, 95px))); } }
@keyframes rise { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: none; } }
@keyframes title-in { from { opacity: 0; transform: translateY(32px); clip-path: inset(0 0 100% 0); } to { opacity: 1; transform: none; clip-path: inset(-10% 0 -10% 0); } }

/* Золотая пыль: один холст за всей страницей */
.dust { position: fixed; inset: 0; z-index: -1; width: 100%; height: 100%; pointer-events: none; }
.split { display: grid; grid-template-columns: repeat(12, 1fr); gap: 0 24px; padding: var(--gap) var(--margin); align-items: center; }
.split-text { grid-column: 1 / span 6; grid-row: 1; display: grid; gap: 40px; }
.split--flip .split-text { grid-column: 7 / span 6; }
.dust-slot { grid-column: 7 / span 6; grid-row: 1; display: grid; place-items: center; align-self: center; position: sticky; top: 20vh; min-height: 60svh; }
.split--flip .dust-slot { grid-column: 1 / span 6; }
.dust-slot img { width: min(26vw, 400px); height: auto; object-fit: contain; }
.dust-live .dust-slot img { visibility: hidden; }

.figures { display: flex; gap: clamp(28px, 4vw, 72px); }
.figures b { display: block; font: 500 var(--fs-figure)/.9 var(--display); letter-spacing: -.03em; color: var(--gold); }
.figures span { display: block; margin-top: 10px; font-size: 15px; }
.notes { display: grid; gap: 28px; }
.notes dt { font: 500 var(--fs-h3)/1.12 var(--display); color: var(--gold); }
.notes dd { margin-top: 8px; max-width: 60ch; }

/* Монако сквозь кольцо: кольцо растёт вместе с прокруткой, пока фильм не займёт весь экран */
.ring { --open: 1; position: relative; height: 190svh; background: var(--ground); }
.ring-stage { position: sticky; top: 0; height: 100svh; overflow: hidden; display: flex; align-items: flex-end; padding: 0 var(--margin) clamp(32px, 6vh, 72px); background: var(--ground); }
.ring-film { position: absolute; inset: 0; clip-path: circle(calc(min(36vmin, 360px) + var(--open) * 120vmax) at 66% 50%); will-change: clip-path; }
.ring-film picture, .ring-film img, .ring-film video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.ring-film::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to right, rgba(0, 0, 0, .72), rgba(0, 0, 0, 0) 62%);  /* taste-skill-ignore: нейтральное затемнение под текстом на фото */ }
.ring-line { position: absolute; left: 66%; top: 50%; width: calc(2 * min(36vmin, 360px)); aspect-ratio: 1; border: 2px solid var(--gold); border-radius: 50%; transform: translate(-50%, -50%) scale(calc(1 + var(--open) * 12)); opacity: calc(1 - var(--open) * 3); pointer-events: none; }
.ring-text { position: relative; display: grid; gap: 20px; width: min(40vw, 620px); }

.press { display: flex; flex-wrap: wrap; gap: 16px; margin-top: 20px; }
.press img { width: 188px; height: 61px; object-fit: contain; transition: transform .25s var(--ease); }
.press a:hover img { transform: translateY(-3px); }
.record-links { display: flex; flex-wrap: wrap; gap: 8px 32px; margin-top: 28px; }

/* Неделя на Ривьере: настоящий календарь апреля */

/* Аудитория */
/* ширина по доле от 70 инвесторов; классами, а не style=: строгая CSP сервера запрещает встроенные стили */

/* Инвесторам */
.investors-grid { display: grid; grid-template-columns: repeat(12, 1fr); gap: 0 24px; align-items: start; }
.investors-photo { grid-column: 1 / span 5; position: sticky; top: 12vh; }
.investors-photo img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; }
.investors-text { grid-column: 7 / span 6; display: grid; gap: 28px; justify-items: start; }

/* Дисклеймер: блок на странице, не всплывающее окно. Читается и печатается */
.notice { background: var(--surface); padding: 20px 24px; margin-bottom: clamp(48px, 6vw, 96px); max-width: 980px; font-size: 15px; }
.notice summary { display: flex; align-items: center; min-height: 44px; font: 700 15px var(--body); color: var(--gold); cursor: pointer; }
.notice p { margin-top: 10px; max-width: 72ch; }

/* Компаниям */
.companies-top { display: grid; grid-template-columns: repeat(12, 1fr); gap: 20px 24px; align-items: end; }
.companies-top .h2 { grid-column: 1 / span 7; }
.companies-top .lead { grid-column: 8 / span 5; }
.statement { margin: 64px 0 0 auto; max-width: 30em; font: 500 var(--fs-h3)/1.2 var(--display); color: var(--gold); }
.companies-grid { display: grid; grid-template-columns: repeat(12, 1fr); gap: 32px 24px; margin-top: 64px; align-items: start; }
.companies-photo { grid-column: 1 / span 6; }
.companies-photo img { width: 100%; }
.companies-grid .notes { grid-column: 8 / span 5; }
.companies-bottom { display: grid; grid-template-columns: repeat(12, 1fr); gap: 48px 24px; margin-top: 72px; align-items: start; }
.fee { grid-column: 1 / span 6; display: grid; gap: 10px; }
.companies-next { grid-column: 1 / span 6; }
.companies-bottom .apply { grid-column: 8 / span 5; grid-row: 1 / span 2; margin-top: 0; }
.fee-row { display: flex; justify-content: space-between; gap: 24px; align-items: baseline; font-size: 18px; }
.fee-row b { font: 500 var(--fs-h3)/1.1 var(--display); color: var(--gold); white-space: nowrap; }
.dates { display: grid; gap: 24px; margin-top: 32px; }
.dates li { max-width: 34ch; }
.dates b { display: block; font: 500 var(--fs-h3)/1.15 var(--display); color: var(--gold); }
.apply { display: grid; gap: 16px; justify-items: start; margin-top: 56px; max-width: 760px; }
.apply-line { font-weight: 700; }
.reg-notice { font-size: 15px; color: var(--muted); }
.reg-notice a { color: var(--ink); }

/* Программа: часы идут вместе с прокруткой */
.programme { background: var(--surface); }
.programme-grid { display: grid; grid-template-columns: repeat(12, 1fr); gap: 32px 24px; align-items: start; }
.programme-side { grid-column: 1 / span 5; position: sticky; top: 100px; display: grid; gap: 20px; }
.clock { display: none; }
.clock b { display: block; font: 500 var(--fs-figure)/.95 var(--display); letter-spacing: -.02em; color: var(--gold); font-variant-numeric: tabular-nums lining-nums; }
.clock span { font-size: 15px; }
.programme-days { grid-column: 7 / span 6; }
.day { font: 500 var(--fs-h3)/1.12 var(--display); color: var(--gold); margin-top: 56px; }
.day:first-child { margin-top: 0; }
.slots { margin-top: 14px; }
.slots li { display: grid; grid-template-columns: 72px 1fr; gap: 16px; padding: 12px 0; color: var(--muted); transition: color .3s; }
.slots li.now { color: var(--ink); }
.slots li.pitch span { font-weight: 700; }
.slots time { font-variant-numeric: tabular-nums lining-nums; }

/* Пропуска: цены как в меню */
.passes-grid { display: grid; grid-template-columns: repeat(12, 1fr); gap: 32px 24px; align-items: start; }
.passes-side { grid-column: 1 / span 5; display: grid; gap: 32px; }
.passes-film { position: relative; aspect-ratio: 4 / 5; }
.passes-film .ph-in { position: absolute; inset: 0; }
.passes-film .ph-in img, .passes-film video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.passes-menu { grid-column: 7 / span 6; display: grid; gap: 32px; padding-top: 8px; }
.menu-row { display: flex; justify-content: space-between; gap: 24px; align-items: baseline; font: 500 var(--fs-h3)/1.1 var(--display); }
.menu-row b { color: var(--gold); font-weight: 500; white-space: nowrap; }
.passes-menu article p { margin-top: 8px; max-width: 58ch; }

/* Партнёры: подбор пакета */
.partners { background: var(--surface); }
.partners-lead { max-width: 60ch; margin-top: 20px; }
.chooser { display: grid; grid-template-columns: repeat(12, 1fr); gap: 32px 24px; margin-top: 56px; align-items: start; }
.chooser-list { grid-column: 1 / span 6; display: grid; gap: 4px; }
.track { margin-top: 28px; }
.track:first-child { margin-top: 0; }
.track p { margin: 6px 0 10px; max-width: 54ch; font-size: 15px; }
.pick { display: flex; align-items: center; gap: 12px; min-height: 48px; padding: 8px 14px; cursor: pointer; transition: background-color .2s; }
.pick:hover { background: #2a261f; }
.pick:has(:checked) { background: var(--gold); color: var(--on-gold); }
.pick input { accent-color: var(--on-gold); width: 18px; height: 18px; margin: 0; flex: none; }
.pick span { flex: 1; }
.pick b { font-variant-numeric: tabular-nums lining-nums; }
.chooser-panels { grid-column: 8 / span 5; position: sticky; top: 100px; display: grid; gap: 40px; }
.panel-price { font: 500 var(--fs-figure)/1 var(--display); letter-spacing: -.02em; margin-top: 8px; }
.panel-later { margin-top: 8px; font-size: 15px; }
.panel-facts { display: grid; gap: 10px; margin-top: 24px; font-size: 15px; }
.panel-facts div { display: flex; justify-content: space-between; gap: 24px; }
.panel-facts dt { color: var(--muted); max-width: 30ch; }
.panel-facts dd { text-align: right; font-weight: 700; }
.chooser:not(.live) .chooser-panels { position: static; }
.compare { margin-top: 48px; }
.compare summary { display: flex; align-items: center; font-weight: 700; color: var(--gold); cursor: pointer; min-height: 44px; }
.table-wrap { overflow-x: auto; margin-top: 16px; }
table { border-collapse: collapse; min-width: 1120px; font-size: 15px; }
th, td { padding: 10px 12px; text-align: left; vertical-align: top; border-bottom: 1px solid #3a352c; }
thead th { color: var(--gold); font-weight: 700; }
.partners-foot { display: grid; gap: 14px; margin-top: 48px; max-width: 760px; }
.partners-cta { display: flex; flex-wrap: wrap; align-items: center; gap: 16px 28px; margin-top: 12px; }

/* Организаторы */
.org-lead { display: flex; align-items: center; gap: 28px; margin-top: 40px; max-width: 900px; }
.org-lead img { flex: none; width: auto; height: 84px; }
.team { display: grid; grid-template-columns: repeat(2, 1fr); gap: 48px 40px; margin-top: 56px; }
.team li { display: grid; grid-template-columns: 148px 1fr; gap: 24px; align-items: start; }
.team img { width: 148px; height: 148px; object-fit: cover; }
.team-role { margin-block: 4px 8px; font-weight: 700; font-size: 15px; }
.field2060 { margin-top: var(--gap); padding-block: clamp(72px, 8vw, 120px); background: var(--surface); }
.field2060 .org-lead { margin-top: 0; }
.years { margin-top: 72px; font: 500 clamp(40px, 5vw, 86px)/1.02 var(--display); letter-spacing: -.02em; }

/* Практическая информация */
.practical-grid { display: grid; grid-template-columns: repeat(12, 1fr); gap: 32px 24px; align-items: start; }
.practical-grid > div { grid-column: 1 / span 6; display: grid; gap: 28px; }
.facts { display: grid; gap: 16px; }
.facts dt { font-weight: 700; color: var(--gold); }
.faq { display: grid; gap: 10px; }
.faq summary { min-height: 44px; display: flex; align-items: center; font-size: 18px; cursor: pointer; }
.faq summary:hover { color: var(--gold); }
.faq p { max-width: 60ch; padding-bottom: 12px; }
.faq-title { margin-top: 12px; }
.practical-photo { grid-column: 8 / span 5; position: sticky; top: 12vh; }
.practical-photo img { width: 100%; object-fit: cover; }
.practical-photo .small { width: 40%; aspect-ratio: 1; margin: 40px 0 0 auto; position: relative; }

/* Финал */
.cta { position: relative; display: flex; justify-content: flex-end; align-items: flex-end; min-height: 90svh; padding: var(--margin); overflow: hidden; background: #0d0c0a; }
.cta > img, .cta > video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; filter: brightness(.72); }
.cta-text { position: relative; width: min(46vw, 640px); display: grid; gap: 16px; justify-items: start; }

/* Подвал */
.foot { position: relative; padding: 56px var(--margin) 28px; background: #0d0c0a; font-size: 15px; }
.foot-cols { display: grid; grid-template-columns: repeat(4, 1fr); gap: 32px 24px; }
.foot-cols img { width: auto; height: 56px; margin-bottom: 14px; }
.foot-word { margin-top: 56px; font: 500 10vw/1 var(--display); letter-spacing: -.02em; color: var(--gold); white-space: nowrap; }
.foot-notice { margin-top: 28px; font-size: 13px; line-height: 1.5; color: var(--muted); max-width: 75ch; }
.foot-legal { display: flex; flex-wrap: wrap; gap: 8px 24px; margin-top: 14px; font-size: 15px; }
.foot-legal a:hover { color: var(--gold); }
.foot-legal span { margin-left: auto; color: var(--muted); }

/* Страницы со шапкой-кадром и документы */
.page-head { position: relative; height: 56svh; display: flex; align-items: flex-end; padding: var(--margin); overflow: hidden; }
.page-head img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; filter: brightness(.62); }
.page-title { position: relative; font: 500 clamp(52px, 8.4vw, 150px)/1 var(--display); letter-spacing: -.025em; text-wrap: balance; }
.doc { padding: clamp(56px, 7vw, 110px) var(--margin) var(--gap); min-height: 70svh; }
.doc > * { max-width: 860px; }
.page-head + .doc { min-height: 0; padding-top: clamp(40px, 5vw, 72px); }
.doc > .page-title { max-width: none; margin-bottom: 24px; }
.doc h2 { font: 500 var(--fs-h3)/1.12 var(--display); color: var(--gold); margin-top: 40px; }
.doc h3 { font: 500 var(--fs-h3)/1.12 var(--display); color: var(--gold); margin-top: 48px; }
.doc p { margin-top: 12px; }
.doc > .btn { margin-top: 32px; }
.doc-meta { color: var(--muted); font-size: 15px; }
.doc-full { font-size: clamp(19px, 1.45vw, 21px); line-height: 1.5; }
.terms-list { display: grid; gap: 12px; margin-top: 14px; }
.tick-text { display: flex; gap: 12px; align-items: flex-start; font-weight: 700; margin-top: 18px; }
.tick-text::before { content: ""; flex: none; width: 16px; height: 16px; margin-top: 5px; border: 2px solid var(--gold); }
.account { margin-top: 40px; }

/* Регистрация-заглушка */
.reg { display: grid; gap: 32px; margin-top: 40px; justify-items: start; }
.reg-as { border: 0; padding: 0; margin: 0; display: grid; gap: 6px; width: 100%; }
.reg-as legend { font-weight: 700; padding: 0; margin-bottom: 10px; }
.reg-as label { display: flex; gap: 12px; align-items: flex-start; padding: 12px 14px; cursor: pointer; transition: background-color .2s; }
.reg-as label:hover { background: var(--surface); }
.reg-as label:has(:checked) { background: var(--gold); color: var(--on-gold); }
.reg-as input, .tick input { width: 18px; height: 18px; margin: 4px 0 0; flex: none; accent-color: var(--gold); }
.reg-as label:has(:checked) input { accent-color: var(--on-gold); }
.reg-as b { display: block; }
.reg-part { width: 100%; }
.reg-part h3 { margin-top: 0; }
.tick { display: flex; gap: 12px; align-items: flex-start; margin-top: 18px; padding: 14px; background: var(--surface); font-weight: 700; cursor: pointer; }
.reg-status { padding: 14px 16px; background: var(--surface); }
.reg-stub { color: var(--muted); font-size: 15px; margin-top: -16px; }

/* Появление частей блока: без скрипта всё видно сразу */


/* Только при работающем скрипте: без него всё видно сразу, заставки нет */
@media (scripting: enabled) {
  .clock { display: block; }
  [data-intro] .intro { position: fixed; inset: 0; z-index: 60; display: grid; place-items: center; pointer-events: none; animation: intro-out .5s 2.55s var(--ease) both; }
  [data-intro] .hero-film { clip-path: circle(0 at 50% 50%); animation: film-open 1s 1.95s cubic-bezier(.7, 0, .2, 1) both; }
  [data-intro] .bar { animation: rise .6s 2.65s var(--ease) both; }
  [data-intro] .hero-eyebrow { animation: rise .6s 2.45s var(--ease) both; }
  [data-intro] .hero-when { animation: rise .6s 2.75s var(--ease) both; }
  [data-intro] .hero-row { animation: rise .6s 2.85s var(--ease) both; }
  [data-intro] .hero-title { animation: title-in .8s 2.5s var(--ease) both; }
  :root:not([data-intro]) .hero-title { animation: title-in .6s 0s var(--ease) both; }
  [data-reveal] { opacity: 0; transform: translateY(36px); transition: opacity 1.2s cubic-bezier(.25, .8, .25, 1), transform 1.4s cubic-bezier(.16, 1, .3, 1); transition-delay: var(--d, 0ms); }
  [data-reveal].in { opacity: 1; transform: none; }
}

/* Фото в авторской подаче. Арка — окна Казино и Hôtel de Paris; вторая золотая линия — как кольца медальона;
   смещённое золотое поле — подложка; портреты — медальоны. Фото открывается шторкой и плывёт внутри рамки. */
.ph { position: relative; isolation: isolate; }
.ph-in { position: relative; overflow: hidden; }
.ph-in img { display: block; width: 100%; transform: translate3d(0, var(--py, 0px), 0) scale(1.14); }
.ph--arch .ph-in { border-radius: 50% 50% 0 0 / 40% 40% 0 0; outline: 2px solid var(--gold); outline-offset: 10px; }

.investors-photo .ph-in img, .practical-photo .ph-in img { aspect-ratio: auto; height: 100%; }
.investors-photo .ph-in { aspect-ratio: 1 / 1.08; border-radius: 50% 50% 0 0 / 46% 46% 0 0 !important; }
.passes-film { aspect-ratio: 4 / 5; }
.practical-photo .ph-in { aspect-ratio: 1220 / 560; }
.investors-photo .ph-in img, .practical-photo .ph-in img { position: absolute; inset: 0; object-fit: cover; }
.ph--frame .ph-in { outline: 2px solid var(--gold); outline-offset: 10px; }
.ph--frame figcaption { margin-top: 20px; }
.medal { border-radius: 50%; outline: 2px solid var(--gold); outline-offset: 5px; }
.page-head img { transform: translate3d(0, var(--py, 0px), 0) scale(1.12); }

/* Переход между страницами: новая раскрывается золотым кругом, как в заставке */
::view-transition-old(root) { animation: vt-out .6s var(--ease) both; }
::view-transition-new(root) { animation: vt-in .9s cubic-bezier(.7, 0, .2, 1) both; }
@keyframes vt-in { from { clip-path: circle(0 at 50% 50%); } to { clip-path: circle(150vmax at 50% 50%); } }
@keyframes vt-out { to { opacity: .35; transform: scale(.97); } }

.countdown { display: grid; gap: 4px; color: var(--gold); }
.countdown b { font: 500 var(--fs-h3)/1 var(--display); font-variant-numeric: tabular-nums lining-nums; }
.countdown span { font: 500 18px/1.3 var(--body); }

@media (scripting: enabled) {
  [data-ph] .ph-in { clip-path: inset(100% -24px -24px -24px); transition: clip-path 1.3s cubic-bezier(.7, 0, .2, 1); }
  [data-ph].in .ph-in { clip-path: inset(-24px); }
  [data-split] .w { display: inline-block; overflow: hidden; vertical-align: top; padding-bottom: .12em; margin-bottom: -.12em; }
  [data-split] .w > span { display: inline-block; transform: translateY(112%); transition: transform 1s var(--ease); transition-delay: calc(var(--d, 0ms) + var(--wd, 0ms)); }
  [data-split].in .w > span { transform: none; }
}

/* Лента кадров Монако: без скрипта — обычная прокручиваемая лента, со скриптом — едет от вертикальной прокрутки */

/* Ночь гала-ужина: когда часы программы доходят до вечера 5 апреля, блок уходит в ночь со звёздами */
.programme { overflow: clip; transition: background-color 1.4s var(--ease); }
.programme > .wrap { position: relative; z-index: 1; }
.night-sky { position: absolute; inset: 0; pointer-events: none; opacity: 0; transition: opacity 1.4s var(--ease); }
.programme.night { background: #070912; }
.programme.night .night-sky { opacity: 1; }
.star { position: absolute; left: var(--x); top: var(--y); width: var(--s); height: var(--s); border-radius: 50%; background: #f5f1e8; animation: twinkle var(--t) ease-in-out infinite alternate; }
@keyframes twinkle { from { opacity: .15; } to { opacity: .9; } }

/* Медальон из пыли можно покрутить */
.dust-live .dust-slot { cursor: grab; touch-action: pan-y; }
.dust-live .dust-slot.dragging { cursor: grabbing; }

/* Курсор-кольцо: только мышь, только где движение разрешено */
.cursor { position: fixed; left: -14px; top: -14px; z-index: 90; display: grid; place-items: center; width: 28px; height: 28px; border: 2px solid var(--gold); border-radius: 50%; pointer-events: none; opacity: 0; color: var(--on-gold); font: 700 5px var(--body); translate: -100px -100px; transition: opacity .3s, scale .35s var(--ease), background-color .35s; will-change: translate; }
.cursor.on { opacity: 1; }
.cursor.hot { scale: 2.3; border-width: 1px; background: color-mix(in srgb, var(--gold) 16%, transparent); }
.cursor.drag { scale: 2.7; border-width: 1px; background: var(--gold); }
.has-cursor, .has-cursor a, .has-cursor button, .has-cursor label, .has-cursor summary { cursor: none; }
.has-cursor .dust-slot { cursor: none; }

@media (max-width: 1180px) {
  .bar-nav { display: none; position: absolute; inset: 100% 0 auto; flex-direction: column; gap: 4px; padding: 12px var(--margin) 24px; background: var(--ground); font-size: 20px; }
  .bar-nav.open { display: flex; }
  .bar-toggle { display: block; }
  .bar, .bar--over { background: var(--ground); }
}

@media (max-width: 760px) {
  .hero { padding-top: 96px; padding-bottom: 16px; }
  .hero-film::after { background: linear-gradient(to bottom, rgba(0, 0, 0, .45), rgba(0, 0, 0, .2) 18%, rgba(0, 0, 0, .62) 38%, rgba(0, 0, 0, .86) 60%, rgba(0, 0, 0, .9)); }  /* taste-skill-ignore: нейтральное затемнение под текстом на фото */
  .hero-when { margin-top: 12px; font-size: 22px; }
  .hero-row { gap: 14px; margin-top: 16px; }
  .hero-lead { font-size: 16px; line-height: 1.45; }
  .hero-actions { gap: 4px; }
  .hero-side { flex-direction: row; flex-wrap: wrap; align-items: center; justify-content: space-between; width: 100%; gap: 8px; }
  .hero-co span { display: none; }
  .hero-co img { height: 36px; }
  .film-toggle { order: 2; }
  .ph--frame .ph-in { outline-offset: 7px; }
  .ph--arch .ph-in { outline-offset: 7px; }
  body { font-size: 18px; }
  .bar { gap: 12px; padding: 10px var(--margin); }
  .bar-brand img { height: 42px; }
  .bar .btn--small { display: none; }
  .hero { padding-bottom: 20px; }
  .hero-title { font-size: 9.4vw; line-height: 1.02; letter-spacing: -.02em; }
  .hero-actions { flex-wrap: wrap; width: 100%; }
  .hero-actions .btn { width: 100%; }
  .hero-side { align-items: flex-start; margin-left: 0; }
  .hero-co { flex-wrap: wrap; }
  .hero-co img { height: 40px; }
  .split, .split--flip { display: flex; flex-direction: column; align-items: stretch; gap: 32px; min-height: 0; padding-block: 96px; }
  .split--flip .dust-slot, .dust-slot { position: relative; top: 0; order: -1; min-height: 70vw; }
  .dust-slot img { width: 54vw; }
  .figures { display: grid; grid-template-columns: 1fr 1fr; gap: 28px 16px; }
  .figures b { font-size: 17vw; }
  .ring-film { clip-path: circle(calc(32vmin + var(--open) * 140vmax) at 50% 30%); }
  .ring-line { left: 50%; top: 30%; width: 64vmin; }
  .ring-film::after { background: linear-gradient(to top, rgba(0, 0, 0, .82), rgba(0, 0, 0, 0) 60%);  /* taste-skill-ignore: нейтральное затемнение под текстом на фото */ }
  .ring-text { width: 100%; }
  .h2 { font-size: 9.4vw; }
  .press img { width: 150px; height: 49px; }
  .companies-bottom, .investors-grid, .programme-grid, .passes-grid, .chooser, .practical-grid, .companies-grid, .companies-top { display: flex; flex-direction: column; align-items: stretch; }
  .investors-photo, .programme-side, .chooser-panels, .practical-photo { position: static; }
  .programme-side .clock { display: none; }
  .statement { margin-top: 40px; }
  .chooser-panels { order: 2; }
  .team { grid-template-columns: 1fr; }
  .team li { grid-template-columns: 96px 1fr; gap: 16px; }
  .team img { width: 96px; height: 96px; }
  .org-lead { flex-direction: column; align-items: flex-start; gap: 14px; }
  .practical-photo .small { margin: 28px 0 0 auto; }
  .cta { display: block; min-height: 0; padding: 0; background: #0d0c0a; }
  .cta > img, .cta > video { position: relative; height: 70svh; }
  .cta > video { position: absolute; top: 0; }
  .cta-text { width: 100%; padding: 28px var(--margin); }
  .cta-text .btn { width: 100%; }
  .foot-cols { grid-template-columns: 1fr; }
  .foot-word { font-size: 10.4vw; }
  .foot-legal span { margin-left: 0; }
  .page-head { height: 44svh; }
  .page-title { font-size: 13vw; }
}

@media (prefers-reduced-motion: reduce) {
  .star { animation: none; opacity: .6; }
  .cursor { display: none; }
  ::view-transition-old(root), ::view-transition-new(root) { animation: none; }
  [data-ph] .ph-in { clip-path: none !important; transition: none; }
  [data-split] .w > span { transform: none !important; transition: none; }
  .ph-in img, .page-head img { transform: none; }
  [data-reveal] { opacity: 1 !important; transform: none !important; transition: none; }
  [data-intro] .intro { display: none; }
  .hero-title, .hero-when, .hero-row, .bar, .hero-film { animation: none !important; clip-path: none !important; }
  .ring { height: auto; }
  .ring-stage { position: relative; height: 100svh; }
  .ring-film { clip-path: none; }
  .ring-line { display: none; }
  .hero-video, .ring-film video, .passes-film video, .cta > video { display: none; }
}

@media print {
  .bar, .dust, .intro, .skip, .hero-film, video, .film-toggle { display: none !important; }
  body, html { background: #fff; color: #000; }
  a { color: #000; }
  .notice, .sec, .doc, .foot { background: #fff; color: #000; }
  .foot-word { display: none; }
  [data-reveal] { opacity: 1 !important; transform: none !important; }
  .doc-full, .foot-notice, .doc-meta, .reg-notice { color: #000; }
}

/* Заголовки блоков как в прототипе: надстрочник и заголовок */
.eyebrow { font: 700 13px/1.4 var(--body); letter-spacing: .22em; text-transform: uppercase; color: var(--gold); }
.hero-eyebrow { max-width: 60ch; margin-bottom: 18px; color: var(--ink); text-shadow: 0 1px 14px rgba(0, 0, 0, .7); }
.tag { display: inline-block; vertical-align: middle; margin-left: .4em; padding: 4px 10px; border: 1px solid var(--gold); font: 700 12px/1.2 var(--body); letter-spacing: .18em; text-transform: uppercase; color: var(--gold); }

/* Почему Монако: продолжение под фильмом и ужин в Hermitage */
.why-grid { display: grid; grid-template-columns: repeat(12, 1fr); gap: 32px 24px; align-items: center; }
.why-text { grid-column: 1 / span 5; }
.why-photo { grid-column: 7 / span 6; }
.why-photo img { width: 100%; }

/* Кто выступает: четыре направления */
.who-lead { max-width: 70ch; margin-top: 24px; }
.who-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 40px 24px; margin-top: 56px; }
.who-grid > div { padding-top: 20px; border-top: 1px solid var(--gold); }
.who-grid dt { font: 500 var(--fs-h3)/1.12 var(--display); color: var(--gold); }
.who-grid dd { margin-top: 10px; font-size: 16px; }

/* Прошлое событие организаторов */
.holo { display: grid; grid-template-columns: repeat(12, 1fr); gap: 32px 24px; align-items: center; margin-top: var(--gap); }
.holo-photo { grid-column: 1 / span 6; }
.holo-photo img { width: 100%; }
.holo-text { grid-column: 8 / span 5; display: grid; gap: 16px; justify-items: start; }
.pills { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 56px; }
.pills li { padding: 10px 18px; border: 1px solid var(--gold); border-radius: 999px; font-size: 15px; }

/* Почта копируется одним нажатием */
.copy { margin-left: 8px; min-height: 32px; padding: 0 10px; background: none; border: 1px solid var(--gold); color: var(--gold); font: 700 13px var(--body); cursor: pointer; }
.copy:hover { background: var(--gold); color: var(--on-gold); }
.practical .notice { margin-top: 12px; }

/* Финал: три пути */
.cta-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 24px; }
.btn--ghost { background: none; color: var(--gold); box-shadow: inset 0 0 0 1px var(--gold); }

@media (max-width: 760px) {
  .why-grid, .holo { display: flex; flex-direction: column; align-items: stretch; }
  .who-grid { grid-template-columns: 1fr; gap: 28px; }
  .cta-actions { flex-direction: column; align-items: stretch; }
  .tag { margin: 8px 0 0; }
  .hero-eyebrow { font-size: 11px; letter-spacing: .16em; margin-bottom: 12px; }
}
@media (min-width: 761px) and (max-width: 1180px) {
  .who-grid { grid-template-columns: 1fr 1fr; }
}
