:root {
  --blue: #2498ed;
  --blue-bright: #42b5ff;
  --ink: #07101d;
  --midnight: #071628;
  --paper: #eeeae2;
  --white: #f8f9fb;
  --muted: rgba(248, 249, 251, .68);
  --line: rgba(248, 249, 251, .24);
  --header-h: 82px;
  --ease: cubic-bezier(.22, 1, .36, 1);
  --story-page-height: 100svh;
  --story-page-height-30: 30svh;
  --story-page-height-24: 24svh;
}

* { box-sizing: border-box; }
[hidden] { display: none !important; }
html { height: 100%; overflow: hidden; background: var(--ink); }
body { width: 100%; height: 100%; margin: 0; overflow: hidden; background: var(--ink); color: var(--white); font-family: Arial, Helvetica, sans-serif; }
body.is-locked { overflow: hidden; }
button, input { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
button { color: inherit; }
.skip-link { position: fixed; left: 12px; top: 12px; z-index: 999; padding: 12px 16px; background: #fff; color: #111; transform: translateY(-140%); transition: transform .2s; }
.skip-link:focus { transform: translateY(0); }
.sr-only { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0, 0, 0, 0) !important; white-space: nowrap !important; border: 0 !important; }

.site-header { position: fixed; inset: 0 0 auto 0; height: var(--header-h); z-index: 60; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; padding: 0 34px; border-bottom: 1px solid rgba(255,255,255,.16); background: linear-gradient(180deg, rgba(3,12,24,.7), rgba(3,12,24,0)); transition: background .4s, backdrop-filter .4s; }
.site-header.is-solid { background: rgba(5,16,31,.78); backdrop-filter: blur(20px); }
.menu-button { justify-self: start; width: 46px; height: 46px; border: 0; border-radius: 50%; background: rgba(255,255,255,.1); backdrop-filter: blur(12px); display: grid; place-content: center; gap: 6px; cursor: pointer; transition: transform .35s var(--ease), background .25s; }
.menu-button:hover { transform: rotate(6deg); background: var(--blue); }
.menu-button span { width: 18px; height: 1px; background: white; display: block; transition: transform .35s var(--ease); }
.menu-button[aria-expanded="true"] span:first-child { transform: translateY(3.5px) rotate(45deg); }
.menu-button[aria-expanded="true"] span:last-child { transform: translateY(-3.5px) rotate(-45deg); }
.brand { display: flex; align-items: center; gap: 12px; color: white; text-decoration: none; }
.brand img { width: 178px; height: auto; display: block; }
.brand img.is-custom { width: auto; max-width: 220px; max-height: 38px; object-fit: contain; }
.brand span { font-size: 9px; letter-spacing: .26em; border-left: 1px solid rgba(255,255,255,.35); padding-left: 12px; }
.header-actions { justify-self: end; display: flex; align-items: center; gap: 18px; }
.concept-label { font-size: 9px; letter-spacing: .18em; opacity: .65; }
.text-button, .rsvp-button { border: 0; cursor: pointer; }
.text-button { padding: 12px 22px; border-radius: 999px; background: var(--blue); color: white; font-weight: 700; letter-spacing: .06em; transition: transform .25s var(--ease), background .25s; }
.text-button:hover { transform: translateY(-2px); background: var(--blue-bright); }
.rsvp-button { border-radius: 999px; padding: 12px 22px; background: var(--blue); color: white; font-weight: 700; transition: transform .25s var(--ease), background .25s; }
.rsvp-button:hover { transform: translateY(-2px); background: var(--blue-bright); }

.story-shell { position: relative; width: 100%; height: var(--story-page-height); overflow-x: hidden; overflow-y: auto; overscroll-behavior-y: none; scroll-behavior: auto; scroll-snap-type: y mandatory; scrollbar-width: none; touch-action: pan-y; }
.story-shell::-webkit-scrollbar { width: 0; height: 0; }
.story-shell.is-transitioning { scroll-snap-type: none; }
body.is-locked .story-shell { overflow: hidden; }
.chapter { position: relative; width: 100%; height: var(--story-page-height); min-height: var(--story-page-height); max-height: var(--story-page-height); overflow: hidden; isolation: isolate; scroll-snap-align: start; scroll-snap-stop: always; }
.chapter::before { content: ''; position: absolute; inset: 0; z-index: -1; pointer-events: none; background: url('assets/dither-noise.svg') repeat; background-size: 96px 96px; opacity: .045; mix-blend-mode: soft-light; }
.chapter-media, .soft-media { position: absolute; inset: 0; z-index: -3; width: 100%; height: 100%; object-fit: cover; transform: scale(1.055); transition: transform 1.4s var(--ease); }
.chapter.is-active .chapter-media { transform: scale(1); }
.chapter-inner { width: min(100%, 1600px); height: var(--story-page-height); min-height: 0; margin: 0 auto; padding: calc(var(--header-h) + 54px) clamp(28px, 6vw, 112px) 72px; position: relative; z-index: 2; }
.eyebrow { margin: 0 0 22px; text-transform: uppercase; letter-spacing: .2em; font-size: 10px; font-weight: 700; display: flex; gap: 14px; align-items: center; }
.eyebrow > span:not([data-cover-kicker]):not([data-edit]) { width: 38px; height: 1px; flex: 0 0 38px; background: currentColor; opacity: .7; }
.eyebrow.dark { color: rgba(7,16,29,.7); }
.eyebrow.centered { justify-content: center; }
h1, h2 { font-weight: 400; letter-spacing: -.055em; line-height: .84; margin: 0; }
h1 { font-size: clamp(72px, 11vw, 178px); text-transform: uppercase; }
h2 { font-size: clamp(70px, 10vw, 160px); }
h1 em, h2 em { font-family: Georgia, 'Times New Roman', serif; font-weight: 400; text-transform: none; letter-spacing: -.075em; }
.reveal { opacity: 0; transform: translateY(30px); transition: opacity .85s var(--ease), transform .85s var(--ease); }
.reveal-delay { transition-delay: .14s; }
.chapter.is-active .reveal { opacity: 1; transform: none; }

.chapter-cover { background: var(--cover-color, var(--midnight)); }
.chapter-cover .chapter-media { object-position: center; }
.cover-wash { position: absolute; inset: 0; z-index: -2; background: linear-gradient(90deg, rgba(2,9,18,.82) 0%, rgba(2,9,18,.36) 45%, rgba(2,9,18,.08) 75%), linear-gradient(0deg, rgba(2,9,18,.7), transparent 46%); transition: background .35s ease; }
.chapter-cover { transition: color .35s ease; }
.chapter-cover.has-dark-cover-text { color: var(--ink); }
.chapter-cover.has-dark-cover-text .cover-wash { background: linear-gradient(90deg, rgba(255,255,255,.5) 0%, rgba(255,255,255,.18) 48%, rgba(255,255,255,.06) 78%), linear-gradient(0deg, rgba(255,255,255,.42), transparent 48%); }
.cover-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(250px, 380px); align-items: end; gap: 50px; }
.cover-copy { align-self: center; margin-top: 5vh; }
.cover-copy h1 em { color: transparent; -webkit-text-stroke: 1px rgba(255,255,255,.92); }
.cover-meta { margin-top: 34px; display: flex; flex-wrap: wrap; gap: 12px 26px; text-transform: uppercase; font-size: 10px; letter-spacing: .12em; }
.cover-meta span { display: flex; align-items: center; gap: 22px; }
.cover-meta span:not(:last-child)::after { content: ''; width: 3px; height: 3px; border-radius: 50%; background: var(--blue-bright); }
.cover-note { align-self: end; padding: 30px 0 12px 34px; border-left: 1px solid var(--line); }
.cover-note > p { max-width: 310px; margin: 0 0 28px; font-family: Georgia, serif; font-size: 22px; line-height: 1.45; }
.circle-link { width: 112px; height: 112px; border: 1px solid rgba(255,255,255,.55); border-radius: 50%; background: rgba(255,255,255,.06); backdrop-filter: blur(12px); display: grid; place-items: center; cursor: pointer; position: relative; transition: background .3s, transform .3s var(--ease); }
.circle-link:hover { background: var(--blue); transform: rotate(-8deg); border-color: var(--blue); }
.circle-link span { font-size: 12px; font-weight: 700; }
.circle-link svg { width: 23px; fill: none; stroke: currentColor; stroke-width: 1.5; }
.scroll-cue { position: absolute; left: 34px; bottom: 28px; z-index: 5; border: 0; background: none; display: flex; gap: 12px; align-items: center; cursor: pointer; text-transform: uppercase; font-size: 9px; letter-spacing: .18em; }
.scroll-cue svg { width: 18px; fill: none; stroke: currentColor; stroke-width: 1.5; animation: nudge 1.8s ease-in-out infinite; }
@keyframes nudge { 0%,100% { transform: translateY(-2px); } 50% { transform: translateY(5px); } }

.chapter-schedule { background: radial-gradient(circle at 78% 25%, #143763 0, #081a31 33%, #050f1f 75%); }
.schedule-layout { display: grid; grid-template-columns: .8fr 1.15fr; align-items: center; gap: 9vw; }
.schedule-heading h2 em { color: var(--blue-bright); }
.section-copy { margin: 34px 0 0; max-width: 390px; color: var(--muted); line-height: 1.65; font-family: Georgia, serif; font-size: 19px; }
.timeline { max-height: min(64vh, 650px); margin: 0; padding: 0; overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; list-style: none; border-top: 1px solid var(--line); touch-action: pan-y; }
.timeline-item { min-height: 108px; display: grid; grid-template-columns: 74px 1fr auto; gap: 24px; align-items: center; border-bottom: 1px solid var(--line); position: relative; cursor: pointer; transition: padding .35s var(--ease), background .3s; outline: none; }
.timeline-item::before { content: ''; position: absolute; left: -20px; top: 50%; width: 6px; height: 6px; border-radius: 50%; background: var(--blue-bright); transform: translateY(-50%) scale(0); transition: transform .3s; }
.timeline-item:hover, .timeline-item:focus, .timeline-item.is-current { padding-left: 18px; background: linear-gradient(90deg, rgba(36,152,237,.18), transparent); }
.timeline-item:hover::before, .timeline-item:focus::before, .timeline-item.is-current::before { transform: translateY(-50%) scale(1); }
.timeline-item:last-child { border-bottom: 0; }
.timeline-item time { font-family: Georgia, serif; font-size: 25px; }
.timeline-item div { display: grid; gap: 8px; }
.timeline-item strong { font-size: 17px; }
.timeline-item div span { color: var(--muted); font-size: 13px; }
.timeline-status { font-size: 9px; letter-spacing: .14em; text-transform: uppercase; color: var(--blue-bright); }
.chapter-index { position: absolute; right: -20px; bottom: -75px; margin: 0; z-index: 0; font-size: clamp(220px, 28vw, 430px); font-weight: 700; line-height: 1; color: rgba(255,255,255,.025); letter-spacing: -.1em; }
.ambient-orb { position: absolute; border-radius: 50%; filter: blur(10px); opacity: .2; background: var(--blue); animation: drift 12s ease-in-out infinite alternate; }
.orb-one { width: 280px; height: 280px; right: 12%; top: 6%; }
.orb-two { width: 160px; height: 160px; left: 30%; bottom: 4%; animation-delay: -5s; }
@keyframes drift { to { transform: translate3d(40px, 30px, 0) scale(1.18); opacity: .32; } }

.chapter-table { background: var(--paper); color: var(--ink); }
.table-figure { position: absolute; inset: 0 auto 0 0; width: 55%; margin: 0; overflow: hidden; }
.table-figure img { width: 100%; height: 100%; object-fit: cover; transform: scale(1.045); transition: transform 1.4s var(--ease); }
.chapter-table.is-active .table-figure img { transform: scale(1); }
.table-layout { display: grid; grid-template-columns: 55% 45%; padding-right: clamp(28px, 6vw, 112px); }
.table-copy { grid-column: 2; align-self: center; padding-left: clamp(34px, 6vw, 100px); }
.table-copy h2 { font-size: clamp(70px, 8.2vw, 136px); }
.table-copy h2 em { color: var(--blue); }
.table-copy > p { font-family: Georgia, serif; font-size: 20px; line-height: 1.55; max-width: 480px; }
.event-facts { margin: 34px 0; border-top: 1px solid rgba(7,16,29,.18); }
.event-facts div { display: grid; grid-template-columns: 92px 1fr; gap: 20px; padding: 15px 0; border-bottom: 1px solid rgba(7,16,29,.18); }
.event-facts dt { text-transform: uppercase; font-size: 9px; font-weight: 700; letter-spacing: .14em; color: rgba(7,16,29,.5); }
.event-facts dd { margin: 0; font-size: 13px; }
.underlined-button { color: var(--ink); border: 0; border-bottom: 1px solid var(--ink); background: none; padding: 8px 0; cursor: pointer; font-weight: 700; }
.underlined-button span { margin-left: 20px; color: var(--blue); }
.vertical-caption { position: absolute; right: 18px; bottom: 28px; margin: 0; writing-mode: vertical-rl; font-size: 8px; letter-spacing: .18em; color: rgba(7,16,29,.45); }

.chapter-live { background: #050a11; }
.live-wash { position: absolute; inset: 0; z-index: -2; background: linear-gradient(90deg, rgba(3,7,13,.72), transparent 58%), linear-gradient(0deg, rgba(3,7,13,.78), transparent 55%); }
.live-layout { display: grid; grid-template-columns: 1fr 1fr; align-items: end; }
.live-copy h2 { font-size: clamp(90px, 14vw, 220px); }
.live-copy h2 em { color: transparent; -webkit-text-stroke: 1px rgba(255,255,255,.9); }
.artist-note { justify-self: end; width: min(100%, 470px); display: grid; grid-template-columns: 70px 1fr; gap: 24px; align-items: start; padding-top: 22px; border-top: 1px solid var(--line); }
.artist-number { font-family: Georgia, serif; font-size: 34px; color: var(--blue-bright); }
.artist-note strong { font-size: 17px; }
.artist-note p { color: var(--muted); font-family: Georgia, serif; line-height: 1.5; }
.sound-toggle { position: absolute; right: 34px; top: 50%; z-index: 3; display: flex; align-items: end; height: 32px; gap: 3px; }
.sound-toggle > span { width: 2px; height: 12px; background: white; animation: audio 1s ease-in-out infinite alternate; }
.sound-toggle > span:nth-child(2) { animation-delay: -.4s; }
.sound-toggle > span:nth-child(3) { animation-delay: -.7s; }
.sound-toggle > span:nth-child(4) { animation-delay: -.2s; }
.sound-toggle small { margin-left: 8px; font-size: 8px; letter-spacing: .16em; }
@keyframes audio { to { height: 28px; } }

.chapter-rsvp { background: var(--midnight); text-align: center; }
.soft-media { opacity: .55; }
.rsvp-wash { position: absolute; inset: 0; z-index: -2; background: radial-gradient(circle at center, rgba(20,84,145,.35), rgba(3,10,19,.92) 72%); }
.finale-layout { display: flex; flex-direction: column; align-items: center; justify-content: center; }
.finale-layout h2 em { color: var(--blue-bright); }
.finale-date { margin: 34px 0; font-size: 10px; letter-spacing: .25em; text-transform: uppercase; }
.finale-button { min-width: 220px; height: 64px; padding: 0 25px; border: 1px solid rgba(255,255,255,.6); border-radius: 999px; background: rgba(255,255,255,.08); backdrop-filter: blur(12px); display: flex; align-items: center; justify-content: space-between; cursor: pointer; transition: background .3s, transform .3s var(--ease); }
.finale-button:hover { background: var(--blue); border-color: var(--blue); transform: scale(1.03); }
.finale-button svg { width: 22px; fill: none; stroke: currentColor; stroke-width: 1.5; }
.demo-note { position: absolute; bottom: 26px; margin: 0; font-size: 9px; letter-spacing: .1em; color: rgba(255,255,255,.5); }
.story-progress { position: fixed; z-index: 45; left: 34px; top: 50%; transform: translateY(-50%); display: flex; gap: 12px; height: 220px; }
.progress-line { width: 1px; height: 100%; background: rgba(255,255,255,.25); overflow: hidden; }
.progress-line span { display: block; width: 100%; height: 0; background: var(--blue-bright); transition: height .6s var(--ease); }
.story-progress ol { list-style: none; margin: 0; padding: 0; height: 100%; display: flex; flex-direction: column; justify-content: space-between; }
.story-progress a { color: white; text-decoration: none; font-size: 8px; letter-spacing: .15em; opacity: .45; transition: opacity .25s, color .25s; }
.story-progress a.is-active { opacity: 1; color: var(--blue-bright); }
.chapter-controls { position: fixed; z-index: 45; right: 34px; bottom: 28px; display: flex; align-items: center; gap: 13px; }
.chapter-controls button { width: 40px; height: 40px; border: 1px solid rgba(255,255,255,.3); border-radius: 50%; background: rgba(5,15,29,.3); backdrop-filter: blur(8px); display: grid; place-items: center; cursor: pointer; transition: background .25s; }
.chapter-controls button:hover { background: var(--blue); }
.chapter-controls svg { width: 18px; fill: none; stroke: currentColor; stroke-width: 1.5; }
.chapter-controls span { font-size: 9px; letter-spacing: .14em; min-width: 48px; text-align: center; }

.menu-overlay { position: fixed; inset: 0; z-index: 50; visibility: hidden; pointer-events: none; }
.menu-overlay.is-open { visibility: visible; pointer-events: auto; }
.menu-backdrop { position: absolute; inset: 0; background: rgba(3,11,23,.72); backdrop-filter: blur(24px); opacity: 0; transition: opacity .45s; }
.menu-overlay.is-open .menu-backdrop { opacity: 1; }
.menu-content { position: relative; width: min(100%, 1320px); height: 100%; margin: auto; padding: calc(var(--header-h) + 58px) clamp(28px, 9vw, 140px) 44px; display: flex; flex-direction: column; transform: translateY(28px); opacity: 0; transition: .5s var(--ease); }
.menu-overlay.is-open .menu-content { transform: none; opacity: 1; }
.menu-kicker { margin: 0 0 28px; color: var(--blue-bright); text-transform: uppercase; letter-spacing: .2em; font-size: 10px; }
.menu-content ol { list-style: none; margin: 0; padding: 0; counter-reset: menu; }
.menu-content li { counter-increment: menu; border-top: 1px solid var(--line); }
.menu-content li:last-child { border-bottom: 1px solid var(--line); }
.menu-content a { display: flex; align-items: baseline; gap: 22px; padding: 12px 0; color: white; text-decoration: none; font-family: Georgia, serif; font-size: clamp(34px, 5.2vw, 74px); transition: color .2s, padding .3s var(--ease); }
.menu-content a::before { content: '0' counter(menu); font: 9px Arial, sans-serif; letter-spacing: .16em; color: var(--blue-bright); }
.menu-content a:hover { color: var(--blue-bright); padding-left: 18px; }
.menu-footer { margin-top: auto; display: flex; justify-content: space-between; gap: 20px; color: var(--muted); font-size: 11px; }
.menu-footer a { color: white; font: inherit; padding: 0; border: 0; }
.menu-footer a::before { display: none; }

.organizer-panel { position: fixed; z-index: 90; top: 0; right: 0; width: min(460px, 100%); height: 100%; padding: 30px; background: rgba(244,246,249,.88); color: var(--ink); box-shadow: -28px 0 80px rgba(0,0,0,.26); backdrop-filter: blur(18px) saturate(.9); transform: translateX(110%); transition: transform .55s var(--ease); overflow-y: auto; overscroll-behavior-y: contain; -webkit-overflow-scrolling: touch; touch-action: pan-y; }
.organizer-panel.is-open { transform: none; }
.organizer-header { display: flex; justify-content: space-between; align-items: start; padding-bottom: 22px; border-bottom: 1px solid rgba(7,16,29,.14); }
.organizer-header span { font-size: 8px; letter-spacing: .18em; color: var(--blue); font-weight: 700; }
.organizer-header h2 { margin-top: 7px; font: 34px/1 Georgia, serif; letter-spacing: -.03em; }
.organizer-header button, .sheet-close { width: 40px; height: 40px; border: 1px solid rgba(7,16,29,.18); border-radius: 50%; background: transparent; color: var(--ink); font-size: 22px; cursor: pointer; }
.organizer-copy { font-family: Georgia, serif; line-height: 1.55; color: rgba(7,16,29,.68); }
.publish-state { margin: 24px 0; padding: 15px 0; display: grid; grid-template-columns: 10px 1fr auto; gap: 10px; align-items: center; border-top: 1px solid rgba(7,16,29,.1); border-bottom: 1px solid rgba(7,16,29,.1); }
.publish-state > span { width: 8px; height: 8px; background: #41a86a; border-radius: 50%; box-shadow: 0 0 0 4px rgba(65,168,106,.13); }
.publish-state strong { font-size: 12px; }
.publish-state small { color: rgba(7,16,29,.45); }
.brand-control { margin: 0 0 24px; padding: 15px; border: 1px solid rgba(7,16,29,.08); background: rgba(7,16,29,.045); }
.brand-control-heading { display: flex; align-items: end; justify-content: space-between; gap: 16px; margin-bottom: 12px; }
.brand-control-heading > div { display: grid; gap: 3px; }
.brand-control-heading span { color: rgba(7,16,29,.52); font-size: 8px; font-weight: 700; letter-spacing: .18em; }
.brand-control-heading strong { font-size: 13px; }
.brand-control-heading small { color: rgba(7,16,29,.43); font-size: 9px; }
.brand-control-preview { min-height: 58px; display: flex; align-items: center; justify-content: center; gap: 10px; padding: 12px 16px; background: #071628; overflow: hidden; }
.brand-control-preview img { display: block; width: 142px; height: auto; max-height: 32px; object-fit: contain; }
.brand-control-preview img.is-custom { width: auto; max-width: 210px; }
.brand-control-preview span { padding-left: 10px; border-left: 1px solid rgba(255,255,255,.35); color: white; font-size: 8px; letter-spacing: .24em; }
.brand-control-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 10px; }
.brand-control-actions label, .brand-control-actions button { min-height: 38px; display: grid; place-items: center; padding: 8px 10px; border: 1px solid rgba(7,16,29,.14); background: transparent; color: var(--ink); font: 700 10px/1 Arial, sans-serif; cursor: pointer; }
.brand-control-actions label { border-color: var(--blue); background: var(--blue); color: white; }
.brand-control-actions label:hover { background: #0874c4; border-color: #0874c4; }
.brand-control-actions input { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.brand-control-actions button:disabled { opacity: .35; cursor: default; }
.brand-control-status { margin: 9px 0 0; color: rgba(7,16,29,.52); font-size: 10px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.module-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 9px; }
.module-item { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: 12px; padding: 14px; background: white; border: 1px solid rgba(7,16,29,.08); transition: transform .25s var(--ease), box-shadow .25s, background .25s, border-color .25s; }
.module-item:hover { transform: translateX(-3px); box-shadow: 0 12px 35px rgba(7,16,29,.08); }
.module-item.is-current { background: #f2f9fe; border-color: rgba(36,152,237,.38); box-shadow: inset 3px 0 0 var(--blue); }
.module-preview { min-width: 0; display: grid; grid-template-columns: 24px minmax(0,1fr); align-items: center; gap: 12px; padding: 0; border: 0; background: transparent; color: inherit; text-align: left; cursor: pointer; }
.module-preview:focus-visible { outline: 2px solid var(--blue); outline-offset: 6px; border-radius: 2px; }
.module-handle { color: rgba(7,16,29,.32); letter-spacing: -2px; }
.module-page-number { color: var(--blue); font-size: 9px; font-weight: 800; letter-spacing: .08em; font-variant-numeric: tabular-nums; }
.module-name { display: grid; gap: 3px; }
.module-name strong { font-size: 13px; }
.module-name small { color: rgba(7,16,29,.48); }
.module-actions { display: flex; gap: 6px; }
.module-actions button { width: 38px; height: 38px; display: grid; place-items: center; padding: 0; border: 1px solid rgba(7,22,40,.1); border-radius: 3px; background: #e5eef5; color: #081d32; cursor: pointer; box-shadow: 0 1px 0 rgba(255,255,255,.8) inset; transition: background .2s, color .2s, border-color .2s, transform .2s; }
.module-actions button svg { width: 21px; height: 21px; fill: none; stroke: currentColor; stroke-width: 2.65; stroke-linecap: round; stroke-linejoin: round; pointer-events: none; }
.module-actions button:hover:not(:disabled), .module-actions button:focus-visible { background: var(--ink); border-color: var(--ink); color: white; transform: translateY(-1px); }
.module-actions .module-settings { background: var(--blue); border-color: var(--blue); color: white; }
.module-actions .module-settings:hover, .module-actions .module-settings:focus-visible { background: #0874c4; border-color: #0874c4; }
.module-actions button:disabled { background: #f4f6f8; border-color: rgba(7,22,40,.05); color: rgba(7,22,40,.22); box-shadow: none; cursor: default; }
.add-module { margin-top: 12px; width: 100%; padding: 15px; border: 1px dashed rgba(7,16,29,.25); background: transparent; color: var(--ink); cursor: pointer; text-align: left; display: grid; grid-template-columns: 34px 1fr; align-items: center; transition: border-color .2s, background .2s; }
.add-module:hover, .add-module[aria-expanded="true"] { border-color: var(--blue); background: rgba(36,152,237,.06); }
.add-module > span { grid-row: 1 / 3; color: var(--blue); font: 28px/1 Georgia, serif; }
.add-module strong { font-size: 13px; }
.add-module small { margin-top: 3px; color: rgba(7,16,29,.48); }
.module-picker { max-height: none; margin-top: 8px; background: var(--ink); color: white; box-shadow: 0 18px 48px rgba(7,16,29,.18); overflow: visible; }
.module-picker-heading { min-height: 58px; padding: 13px 14px 10px; display: flex; align-items: end; justify-content: space-between; gap: 16px; }
.module-picker-heading > div { display: grid; gap: 4px; }
.module-picker-heading span { color: var(--blue-bright); font-size: 8px; font-weight: 800; letter-spacing: .17em; }
.module-picker-heading strong { font-size: 15px; }
.module-picker-heading > small { max-width: 145px; color: rgba(255,255,255,.48); font-size: 9px; line-height: 1.35; text-align: right; }
.module-picker-search { height: 42px; margin: 0 10px 10px; padding: 0 11px; border: 1px solid rgba(255,255,255,.15); background: rgba(255,255,255,.08); display: grid; grid-template-columns: 18px minmax(0,1fr) auto; align-items: center; gap: 8px; }
.module-picker-search:focus-within { border-color: var(--blue-bright); background: rgba(255,255,255,.11); box-shadow: 0 0 0 2px rgba(36,152,237,.14); }
.module-picker-search svg { width: 16px; fill: none; stroke: rgba(255,255,255,.55); stroke-width: 1.7; }
.module-picker-search input { width: 100%; padding: 0; border: 0; outline: 0; background: transparent; color: white; font: 12px/1 Arial, sans-serif; }
.module-picker-search input::placeholder { color: rgba(255,255,255,.44); }
.module-picker-search input::-webkit-search-cancel-button { filter: invert(1); opacity: .55; }
.module-picker-search kbd { padding: 3px 6px; border: 1px solid rgba(255,255,255,.16); color: rgba(255,255,255,.45); font: 9px/1 Arial, sans-serif; }
.module-picker-category { border-top: 1px solid rgba(255,255,255,.12); }
.module-picker-category > summary { min-height: 58px; padding: 11px 13px; display: grid; grid-template-columns: minmax(0,1fr) auto 12px; align-items: center; gap: 10px; cursor: pointer; list-style: none; transition: background .18s; }
.module-picker-category > summary::-webkit-details-marker { display: none; }
.module-picker-category > summary:hover, .module-picker-category > summary:focus-visible { background: rgba(36,152,237,.12); outline: none; }
.module-picker-category > summary > span:first-child { display: grid; gap: 3px; }
.module-picker-category > summary strong { font-size: 12px; }
.module-picker-category > summary small { color: rgba(255,255,255,.45); font-size: 9px; font-weight: 400; }
.module-picker-category-count { min-width: 24px; padding: 4px 6px; background: rgba(255,255,255,.08); color: rgba(255,255,255,.64); font: 700 9px/1 Arial, sans-serif; text-align: center; }
.module-picker-chevron { width: 7px; height: 7px; border-right: 1px solid rgba(255,255,255,.7); border-bottom: 1px solid rgba(255,255,255,.7); transform: rotate(45deg) translate(-2px, 2px); transition: transform .2s var(--ease); }
.module-picker-category[open] .module-picker-chevron { transform: rotate(225deg) translate(-1px, -1px); }
.module-picker-options { border-top: 1px solid rgba(255,255,255,.08); background: rgba(0,0,0,.13); }
.module-picker-option { width: 100%; min-height: 70px; padding: 11px 12px; border: 0; border-bottom: 1px solid rgba(255,255,255,.08); background: transparent; color: white; display: grid; grid-template-columns: 28px minmax(0,1fr) auto; align-items: start; gap: 8px; text-align: left; cursor: pointer; transition: background .18s; }
.module-picker-option:hover:not(:disabled), .module-picker-option:focus-visible:not(:disabled) { background: rgba(36,152,237,.18); outline: none; }
.module-picker-number { padding-top: 2px; color: rgba(255,255,255,.35); font: 800 8px/1 Arial, sans-serif; letter-spacing: .08em; }
.module-picker-option-copy { min-width: 0; display: grid; gap: 4px; }
.module-picker-option-copy strong { font-size: 12px; }
.module-picker-option-copy small { color: rgba(255,255,255,.5); font: 9px/1.35 Arial, sans-serif; }
.module-picker-option-copy em { width: max-content; max-width: 100%; margin-top: 2px; color: #9ed8ff; font: 700 8px/1.2 Arial, sans-serif; font-style: normal; letter-spacing: .04em; text-transform: uppercase; }
.module-picker-status { margin-top: 1px; padding: 4px 6px; border: 1px solid rgba(255,255,255,.14); color: rgba(255,255,255,.5); font: 800 7px/1 Arial, sans-serif; letter-spacing: .08em; text-transform: uppercase; }
.module-picker-option.is-built .module-picker-status { border-color: rgba(36,152,237,.6); background: rgba(36,152,237,.18); color: #9ed8ff; }
.module-picker-option.is-locked { opacity: .45; cursor: not-allowed; }
.module-picker-empty { margin: 0; padding: 24px 14px; border-top: 1px solid rgba(255,255,255,.1); color: rgba(255,255,255,.55); font: 11px/1.45 Arial, sans-serif; text-align: center; }
.module-picker-dependencies { padding: 13px 14px 15px; border-top: 1px solid rgba(255,255,255,.12); display: grid; gap: 4px; }
.module-picker-dependencies strong { color: var(--blue-bright); font-size: 8px; letter-spacing: .14em; text-transform: uppercase; }
.module-picker-dependencies span { color: rgba(255,255,255,.46); font: 9px/1.45 Arial, sans-serif; }
.organizer-footnote { margin-top: 20px; font-size: 10px; line-height: 1.5; color: rgba(7,16,29,.45); }

.module-editor { padding-top: 22px; animation: editor-in .35s var(--ease) both; }
@keyframes editor-in { from { opacity: 0; transform: translateX(14px); } }
.editor-back { padding: 6px 0; border: 0; background: transparent; color: rgba(7,16,29,.58); display: flex; gap: 9px; align-items: center; cursor: pointer; font-size: 11px; }
.editor-back:hover { color: var(--blue); }
.editor-heading { margin-top: 32px; padding-bottom: 20px; border-bottom: 1px solid rgba(7,16,29,.12); }
.editor-heading > span { color: var(--blue); font-size: 8px; font-weight: 700; letter-spacing: .18em; }
.editor-heading h3 { margin: 7px 0 0; font: 36px/1 Georgia, serif; letter-spacing: -.035em; }
.editor-copy { margin: 18px 0 26px; color: rgba(7,16,29,.58); font: 15px/1.5 Georgia, serif; }
#moduleEditorForm { display: grid; gap: 20px; }
.editor-field { display: grid; gap: 8px; }
.editor-field > span { color: rgba(7,16,29,.55); font-size: 9px; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; }
.editor-field input, .editor-field textarea { width: 100%; padding: 12px 0; border: 0; border-bottom: 1px solid rgba(7,16,29,.22); border-radius: 0; background: transparent; color: var(--ink); outline: none; font: 19px/1.35 Georgia, serif; resize: vertical; }
.editor-field textarea { min-height: 88px; }
.editor-field input:focus, .editor-field textarea:focus { border-color: var(--blue); }
.editor-done { width: 100%; margin-top: 28px; padding: 16px 18px; border: 0; background: var(--blue); color: white; display: flex; justify-content: space-between; font-weight: 700; cursor: pointer; transition: background .2s, transform .2s; }
.editor-done:hover { background: #0874c4; transform: translateY(-1px); }

.announcement-editor-page { position: fixed; inset: 0; z-index: 120; overflow: hidden; background: var(--blue); color: white; opacity: 0; transition: opacity .35s var(--ease); }
.announcement-editor-page.is-open { opacity: 1; }
.announcement-editor-bar { position: absolute; z-index: 4; inset: 0 0 auto; height: 78px; padding: 0 26px; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; border-bottom: 1px solid rgba(255,255,255,.24); background: rgba(5,34,64,.12); backdrop-filter: blur(20px); }
.announcement-editor-back, .announcement-editor-save { border: 0; color: white; cursor: pointer; font-size: 11px; font-weight: 700; transition: background .2s, color .2s, transform .2s; }
.announcement-editor-back { justify-self: start; padding: 12px 0; background: transparent; display: flex; gap: 10px; align-items: center; }
.announcement-editor-back:hover { color: #dff3ff; transform: translateX(-2px); }
.announcement-editor-identity { display: flex; align-items: center; gap: 14px; }
.announcement-editor-identity img { width: 154px; display: block; }
.announcement-editor-identity span { padding-left: 14px; border-left: 1px solid rgba(255,255,255,.35); font-size: 8px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; }
.announcement-editor-save { justify-self: end; min-width: 154px; padding: 13px 16px; border-radius: 999px; background: white; color: #0874c4; display: flex; justify-content: space-between; gap: 16px; align-items: center; }
.announcement-editor-save:hover { background: var(--ink); color: white; transform: translateY(-1px); }
.announcement-editor-canvas { position: relative; min-height: 100svh; display: grid; place-items: center; padding: 120px clamp(24px, 7vw, 110px) 92px; text-align: center; isolation: isolate; }
.announcement-editor-canvas::before, .announcement-editor-canvas::after { content: ''; position: absolute; z-index: -1; border-radius: 50%; filter: blur(2px); border: 1px solid rgba(255,255,255,.12); }
.announcement-editor-canvas::before { width: min(76vw, 900px); aspect-ratio: 1; left: -28vw; top: 18%; }
.announcement-editor-canvas::after { width: min(58vw, 680px); aspect-ratio: 1; right: -20vw; bottom: -42%; }
.announcement-editor-content { width: min(100%, 1160px); transform: translateY(24px) scale(.985); opacity: 0; transition: opacity .55s .08s var(--ease), transform .65s .08s var(--ease); }
.announcement-editor-page.is-open .announcement-editor-content { transform: none; opacity: 1; }
.announcement-editor-kicker { margin: 0 0 28px; display: flex; justify-content: center; align-items: center; gap: 16px; font-size: 10px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; }
.announcement-editor-kicker > span:not(.guest-editable) { width: 38px; height: 1px; background: currentColor; opacity: .7; }
.announcement-editor-content h2 { margin: 0; font-size: clamp(76px, 11.7vw, 186px); }
.announcement-editor-body { max-width: 680px; margin: 32px auto 0; font: 21px/1.5 Georgia, serif; }
.guest-editable { position: relative; display: inline-block; min-width: .55em; border-radius: 4px; outline: 1px dashed transparent; outline-offset: 9px; cursor: text; transition: outline-color .2s, background .2s, box-shadow .2s; }
.guest-editable:hover { outline-color: rgba(255,255,255,.55); }
.guest-editable:focus { outline: 1px solid rgba(255,255,255,.95); background: rgba(5,34,64,.12); box-shadow: 0 0 0 8px rgba(255,255,255,.06); }
.guest-editable:empty::before { content: 'Type here'; color: rgba(255,255,255,.45); }
.announcement-editor-hint, .announcement-editor-demo { position: absolute; bottom: 26px; margin: 0; font-size: 9px; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; }
.announcement-editor-hint { left: 30px; display: flex; gap: 9px; align-items: center; }
.announcement-editor-hint span { font-size: 15px; }
.announcement-editor-demo { right: 30px; opacity: .56; }

.modal-shell { position: fixed; inset: 0; z-index: 100; visibility: hidden; pointer-events: none; }
.modal-shell.is-open { visibility: visible; pointer-events: auto; }
.modal-backdrop { position: absolute; inset: 0; width: 100%; border: 0; background: rgba(1,7,14,.72); opacity: 0; backdrop-filter: blur(13px); transition: opacity .4s; }
.modal-shell.is-open .modal-backdrop { opacity: 1; }
.rsvp-sheet { position: absolute; right: 0; top: 0; height: 100%; width: min(560px, 100%); padding: clamp(36px, 6vw, 80px); background: var(--paper); color: var(--ink); transform: translateX(105%); transition: transform .55s var(--ease); overflow-y: auto; }
.modal-shell.is-open .rsvp-sheet { transform: none; }
.sheet-close { position: absolute; top: 24px; right: 24px; }
.rsvp-sheet h2 { margin: 0; font: clamp(48px, 6vw, 78px)/.9 Georgia, serif; letter-spacing: -.05em; }
.sheet-intro { max-width: 430px; font-family: Georgia, serif; color: rgba(7,16,29,.62); line-height: 1.5; }
.rsvp-sheet form { margin-top: 38px; }
.rsvp-sheet form > label { display: grid; gap: 9px; font-size: 10px; text-transform: uppercase; letter-spacing: .12em; font-weight: 700; }
.rsvp-sheet input[type="text"] { width: 100%; padding: 15px 0; border: 0; border-bottom: 1px solid rgba(7,16,29,.3); background: transparent; color: var(--ink); outline: none; font: 20px Georgia, serif; }
.rsvp-sheet input[type="text"]:focus { border-color: var(--blue); }
.rsvp-sheet fieldset { margin: 28px 0; padding: 0; border: 0; display: grid; gap: 10px; }
.rsvp-sheet legend { margin-bottom: 12px; text-transform: uppercase; font-size: 10px; letter-spacing: .12em; font-weight: 700; }
.choice { position: relative; }
.choice input { position: absolute; opacity: 0; }
.choice span { display: block; padding: 15px; border: 1px solid rgba(7,16,29,.18); cursor: pointer; transition: background .2s, color .2s, border-color .2s; }
.choice input:checked + span { background: var(--ink); border-color: var(--ink); color: white; }
.submit-rsvp { width: 100%; padding: 17px 20px; border: 0; background: var(--blue); color: white; display: flex; justify-content: space-between; font-weight: 700; cursor: pointer; }
.success-state { display: none; padding-top: 45px; }
.success-state.is-visible { display: block; }
.success-state > span { display: grid; place-items: center; width: 56px; height: 56px; border-radius: 50%; background: var(--blue); color: white; font-size: 25px; }
.success-state h3 { font: 36px/1.05 Georgia, serif; margin-bottom: 12px; }
.success-state p { color: rgba(7,16,29,.6); }
.toast { position: fixed; z-index: 110; left: 50%; bottom: 25px; transform: translate(-50%, 25px); background: #fff; color: var(--ink); padding: 12px 18px; box-shadow: 0 10px 45px rgba(0,0,0,.24); font-size: 12px; opacity: 0; visibility: hidden; transition: .3s var(--ease); }
.toast.is-visible { opacity: 1; visibility: visible; transform: translate(-50%, 0); }

.announcement { background: var(--announcement-color, var(--blue)); color: white; }
.announcement .chapter-inner { display: grid; place-items: center; text-align: center; }
.announcement h2 { max-width: 1120px; font-size: clamp(72px, 10.5vw, 168px); }
.announcement-kicker { width: fit-content; min-width: 180px; margin: 0 auto 28px; padding: 8px 0; display: flex; align-items: center; justify-content: center; gap: 14px; font-size: 10px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; }
.announcement-kicker::before, .announcement-kicker::after { content: ''; width: 38px; height: 1px; flex: 0 0 38px; background: currentColor; opacity: .7; }
.announcement-kicker.is-empty { display: none; }
.announcement p[data-edit="body"] { max-width: 680px; margin: 30px auto 0; font-family: Georgia, serif; font-size: 20px; line-height: 1.5; }
.announcement .eyebrow.is-empty { display: none; }
.announcement-background { position: absolute; inset: 0; z-index: -3; width: 100%; height: 100%; object-fit: cover; }
.announcement-wash { position: absolute; inset: 0; z-index: -2; background: linear-gradient(0deg, rgba(2,9,18,.54), rgba(2,9,18,.18)), radial-gradient(circle at center, transparent 0, rgba(2,9,18,.18) 72%); opacity: 0; transition: opacity .3s; }
.announcement.has-image .announcement-wash { opacity: 1; }
.added-center-layout { display: grid; place-items: center; text-align: center; }
.added-center-layout > div { width: min(100%, 1050px); }
.chapter-added-photo { background: #060b12; }
.added-photo-wash { position: absolute; inset: 0; z-index: -2; background: linear-gradient(90deg, rgba(3,8,15,.78), rgba(3,8,15,.12) 70%), linear-gradient(0deg, rgba(3,8,15,.6), transparent 60%); }
.added-photo-layout { display: flex; align-items: end; }
.added-photo-layout > div { max-width: 820px; }
.added-photo-layout h2 { font-size: clamp(76px, 11vw, 170px); }
.added-photo-layout h2 em { color: var(--blue-bright); }
.added-photo-layout p[data-edit="body"] { max-width: 470px; color: rgba(255,255,255,.74); font: 20px/1.5 Georgia, serif; }
.chapter-added-note { background: radial-gradient(circle at 50% 40%, #153d6a 0, #07182c 42%, #040c17 100%); }
.chapter-added-note h2 em { color: var(--blue-bright); }
.chapter-added-note p[data-edit="body"] { max-width: 560px; margin: 28px auto 0; color: rgba(255,255,255,.72); font: 20px/1.5 Georgia, serif; }
.note-orbit { position: absolute; left: 50%; top: 50%; width: min(70vw, 760px); aspect-ratio: 1; border: 1px solid rgba(66,181,255,.18); border-radius: 50%; transform: translate(-50%,-50%); box-shadow: 0 0 100px rgba(36,152,237,.09) inset; }

.module-item.is-official { border-left: 2px solid var(--blue); }
.module-item.is-official .module-name small { color: #0874c4; }
.module-name-anchor { position: absolute; top: 0; left: 0; width: 1px; height: 1px; pointer-events: none; }

.announcement-editor-page { background: var(--announcement-editor-color, var(--blue)); }
.announcement-editor-background, .announcement-editor-wash { position: absolute; inset: 0; z-index: -3; width: 100%; height: 100%; }
.announcement-editor-background { object-fit: cover; filter: saturate(.86); }
.announcement-editor-wash { z-index: -2; background: linear-gradient(0deg, rgba(2,9,18,.58), rgba(2,9,18,.18)), radial-gradient(circle at center, transparent 0, rgba(2,9,18,.22) 78%); opacity: 0; }
.announcement-editor-page.has-image .announcement-editor-wash { opacity: 1; }
.announcement-editor-content h2 { max-width: 1160px; margin: 0 auto; font-size: clamp(76px, 10.8vw, 172px); line-height: .86; }
.announcement-design-dock { position: absolute; z-index: 6; left: 50%; bottom: 18px; transform: translateX(-50%); min-height: 58px; padding: 8px 10px 8px 16px; border: 1px solid rgba(255,255,255,.42); border-radius: 999px; background: rgba(248,249,251,.94); color: var(--ink); box-shadow: 0 18px 50px rgba(2,9,18,.2); backdrop-filter: blur(20px); display: flex; align-items: center; gap: 12px; }
.announcement-design-dock > p { margin: 0; color: rgba(7,16,29,.52); font-size: 8px; font-weight: 700; letter-spacing: .15em; text-transform: uppercase; }
.announcement-color-options, .announcement-image-options { display: flex; align-items: center; gap: 6px; }
.announcement-image-options { padding-left: 10px; border-left: 1px solid rgba(7,16,29,.13); }
.color-swatch { width: 27px; height: 27px; padding: 0; border: 2px solid white; border-radius: 50%; box-shadow: 0 0 0 1px rgba(7,16,29,.15); cursor: pointer; }
.color-explorer { display: grid; gap: 0; margin: 3px 0 14px; }
.color-explorer-help { margin: 0 0 10px; color: rgba(7,16,29,.56); font: 12px/1.35 Georgia,serif; }
.color-explorer-row { display: grid; grid-template-columns: 64px minmax(0,1fr); align-items: center; gap: 9px; transform-origin: 50% 0; }
.color-explorer-row-label { display: grid; grid-template-columns: 18px 1fr; align-items: baseline; gap: 2px; color: rgba(7,16,29,.5); text-transform: uppercase; }
.color-explorer-row-label strong { color: #0874c4; font: 800 8px/1 Arial,sans-serif; letter-spacing: .04em; }
.color-explorer-row-label span { font: 800 6.2px/1.2 Arial,sans-serif; letter-spacing: .045em; }
.color-explorer-swatches { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); align-items: center; gap: 7px; }
.color-explorer-swatches.has-seven-options { grid-template-columns: repeat(7,minmax(0,1fr)); gap: 4px; }
.color-explorer-swatch { position: relative; z-index: 2; width: 100%; aspect-ratio: 1; max-width: 34px; min-width: 0; padding: 0; border: 2px solid rgba(255,255,255,.92); border-radius: 50%; background: var(--swatch); box-shadow: 0 0 0 1px rgba(7,16,29,.14),0 4px 10px rgba(7,16,29,.08); cursor: pointer; transition: transform .18s ease,box-shadow .18s ease; }
.color-explorer-swatches.has-seven-options .color-explorer-swatch { max-width: 31px; }
.color-explorer-swatch > span { position: absolute; inset: 2px; border-radius: inherit; background: var(--swatch); }
.color-explorer-swatch.is-neutral-family, .color-explorer-swatch.is-neutral-family > span { background-image: linear-gradient(135deg,#f7f7f7 0 32%,#969da4 32% 65%,#171b20 65%); }
.color-explorer-swatch:hover { transform: translateY(-1px) scale(1.045); box-shadow: 0 0 0 1px rgba(7,116,196,.55),0 7px 14px rgba(7,16,29,.13); }
.color-explorer-swatch:focus-visible { outline: 2px solid var(--blue); outline-offset: 3px; }
.color-explorer-swatch.is-selected { box-shadow: 0 0 0 2px #0874c4,0 6px 15px rgba(7,116,196,.2); }
.color-explorer-swatch.is-selected::after { content: ''; position: absolute; z-index: 2; right: -2px; bottom: -2px; width: 8px; height: 8px; border: 2px solid white; border-radius: 50%; background: var(--blue); }
.color-tree-connector { position: relative; z-index: 0; height: 17px; display: grid; grid-template-columns: 64px minmax(0,1fr); gap: 9px; pointer-events: none; }
.color-tree-connector svg { width: 100%; height: 17px; overflow: visible; }
.color-tree-connector path { fill: none; stroke-linecap: round; stroke-linejoin: round; }
.color-tree-parent { stroke: rgba(8,116,196,.72); stroke-width: 1.35; }
.color-tree-branches { stroke: rgba(7,16,29,.2); stroke-width: .85; }
.color-tree-active { stroke: #0874c4; stroke-width: 1.8; filter: drop-shadow(0 1px 2px rgba(8,116,196,.2)); }
.color-tree-connector.is-entering { animation: color-tree-connector-in .34s ease-out both; }
.color-explorer-row.is-entering { animation: color-explorer-row-in .46s cubic-bezier(.2,.82,.24,1.16) both; }
.color-explorer-row.is-entering .color-explorer-swatch { animation: color-explorer-swatch-in .44s cubic-bezier(.2,.82,.24,1.18) both; animation-delay: var(--swatch-delay); }
@keyframes color-explorer-row-in { 0% { opacity: 0; transform: translateY(-6px) scale(.965); } 72% { opacity: 1; transform: translateY(1px) scale(1.008); } 100% { opacity: 1; transform: none; } }
@keyframes color-explorer-swatch-in { 0% { opacity: 0; transform: translateY(-4px) scale(.9); } 70% { opacity: 1; transform: translateY(1px) scale(1.025); } 100% { opacity: 1; transform: none; } }
@keyframes color-tree-connector-in { from { opacity: 0; transform: scaleY(.4); transform-origin: 50% 0; } to { opacity: 1; transform: scaleY(1); } }
.swatch-blue { background: #2498ed; }
.swatch-midnight { background: #071628; }
.swatch-coral { background: #c94f3d; }
.swatch-olive { background: #59684b; }
.swatch-hot-pink { background: #e8328a; }
.swatch-yellow { background: #f2cc34; }
.swatch-violet { background: #7455c7; }
.swatch-teal { background: #087f82; }
.announcement-image-options > button { width: 38px; height: 31px; padding: 0; border: 1px solid rgba(7,16,29,.15); background: white; cursor: pointer; overflow: hidden; }
.announcement-image-options > button img { width: 100%; height: 100%; object-fit: cover; }
.visual-upload-button { min-height: 31px; padding: 0 12px; border-radius: 999px; background: var(--ink); color: white; display: grid; place-items: center; cursor: pointer; font-size: 9px; font-weight: 700; }
.visual-upload-button input, .tools-upload input { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.announcement-editor-hint { bottom: 30px; }

.cover-official-layout { display: grid; place-items: center; text-align: center; }
.cover-official-content { width: min(100%, 1180px); display: grid; justify-items: center; }
.cover-official-content h1 { max-width: 1120px; font-size: clamp(70px, 10vw, 158px); line-height: .87; }
.chapter-cover[data-cover-title-size="small"] .cover-official-content h1 { font-size: clamp(54px, 7.8vw, 124px); }
.chapter-cover[data-cover-title-size="large"] .cover-official-content h1 { font-size: clamp(82px, 12vw, 184px); }
.cover-official-content .eyebrow { margin-bottom: 30px; }
.cover-official-date { margin: 30px 0 0; font-size: 10px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; }
.cover-custom-logo { width: min(260px, 42vw); max-height: 110px; margin-bottom: 30px; object-fit: contain; }
.chapter-cover[data-cover-font="editorial"] .cover-official-content h1 { font-family: Georgia, 'Times New Roman', serif; font-style: italic; text-transform: none; letter-spacing: -.075em; }
.chapter-cover[data-cover-font="classic"] .cover-official-content h1 { font-family: 'Times New Roman', Times, serif; text-transform: none; letter-spacing: -.045em; }
.cover-widget, .cover-editor-widget { position: absolute; z-index: 4; display: grid; gap: 5px; padding: 14px 16px; color: white; text-align: left; min-width: 150px; }
.cover-widget span, .cover-editor-widget span { font-size: 8px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; opacity: .65; }
.cover-widget strong, .cover-editor-widget strong { font: 18px/1.1 Georgia, serif; }
.cover-widget[data-cover-position="top-left"], .cover-editor-widget[data-cover-position="top-left"] { top: 104px; left: 34px; }
.cover-widget[data-cover-position="top-right"] { top: 104px; right: 34px; text-align: right; }
.cover-widget[data-cover-position="bottom-left"], .cover-editor-widget[data-cover-position="bottom-left"] { left: 34px; bottom: 26px; }
.cover-widget[data-cover-position="bottom-right"] { right: 34px; bottom: 26px; text-align: right; }
.cover-editor-widget[data-cover-position="top-right"] { top: 104px; right: 380px; text-align: right; }
.cover-editor-widget[data-cover-position="bottom-right"] { right: 380px; bottom: 26px; text-align: right; }

.cover-editor-page, .gallery-editor-page { background: #06111f; }
.cover-editor-canvas, .gallery-editor-canvas { position: relative; min-height: 100svh; padding: 110px 380px 60px 42px; display: grid; place-items: center; overflow: hidden; isolation: isolate; }
.cover-editor-background, .gallery-editor-background { position: absolute; inset: 0; z-index: -3; width: 100%; height: 100%; object-fit: cover; }
.cover-editor-wash, .gallery-editor-wash { position: absolute; inset: 0; z-index: -2; background: linear-gradient(0deg, rgba(2,9,18,.68), rgba(2,9,18,.2)), radial-gradient(circle at center, transparent 0, rgba(2,9,18,.3) 78%); }
.cover-editor-canvas { background: var(--cover-color, var(--midnight)); transition: color .35s ease, background .35s ease; }
.cover-editor-canvas .cover-editor-wash { transition: background .35s ease; }
.cover-editor-canvas.has-dark-cover-text { color: var(--ink); }
.cover-editor-canvas.has-dark-cover-text .cover-editor-wash { background: linear-gradient(0deg, rgba(255,255,255,.42), rgba(255,255,255,.1)), radial-gradient(circle at center, transparent 0, rgba(255,255,255,.24) 78%); }
.chapter-cover.has-dark-cover-text .cover-widget, .cover-editor-canvas.has-dark-cover-text .cover-editor-widget { color: var(--ink); text-shadow: 0 1px 16px rgba(255,255,255,.46); }
.cover-editor-canvas.has-dark-cover-text .guest-editable:hover { outline-color: rgba(7,16,29,.52); }
.cover-editor-canvas.has-dark-cover-text .guest-editable:focus { outline-color: rgba(7,16,29,.9); background: rgba(255,255,255,.2); box-shadow: 0 0 0 8px rgba(7,16,29,.05); }
.cover-editor-canvas.has-dark-cover-text .guest-editable:empty::before { color: rgba(7,16,29,.45); }
.cover-editor-preview { width: min(100%, 980px); display: grid; justify-items: center; text-align: center; }
.cover-editor-preview h1 { max-width: 960px; font-size: clamp(68px, 8.6vw, 138px); line-height: .88; }
.cover-editor-preview[data-cover-title-size="small"] h1 { font-size: clamp(52px, 6.8vw, 108px); }
.cover-editor-preview[data-cover-title-size="large"] h1 { font-size: clamp(78px, 10.2vw, 164px); }
.cover-editor-preview > p:last-child { margin: 28px 0 0; font-size: 10px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; }
.cover-editor-kicker { margin: 0 0 26px; display: flex; align-items: center; justify-content: center; gap: 14px; font-size: 9px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; }
.cover-editor-kicker > span:not(.guest-editable) { width: 38px; height: 1px; flex: 0 0 38px; background: currentColor; opacity: .7; }
.cover-editor-kicker.is-empty > span:not(.guest-editable) { display: none; }
.cover-editor-kicker.is-empty .guest-editable::before { content: 'Type here'; color: rgba(255,255,255,.46); white-space: nowrap; }
.cover-editor-canvas.has-dark-cover-text .cover-editor-kicker.is-empty .guest-editable::before { color: rgba(7,16,29,.45); }
.chapter-cover .eyebrow.is-empty { display: none; }
.cover-editor-logo { width: min(240px, 38vw); max-height: 100px; margin-bottom: 28px; object-fit: contain; }
.cover-editor-preview[data-cover-font="editorial"] h1 { font-family: Georgia, 'Times New Roman', serif; font-style: italic; text-transform: none; letter-spacing: -.075em; }
.cover-editor-preview[data-cover-font="classic"] h1 { font-family: 'Times New Roman', Times, serif; text-transform: none; letter-spacing: -.045em; }

.visual-editor-tools { position: absolute; z-index: 7; top: 94px; right: 18px; bottom: 18px; width: 330px; padding: 24px; background: rgba(244,246,249,.96); color: var(--ink); box-shadow: 0 18px 60px rgba(2,9,18,.28); backdrop-filter: blur(24px); overflow-y: auto; }
.visual-editor-tools section + section { margin-top: 25px; padding-top: 22px; border-top: 1px solid rgba(7,16,29,.12); }
.tools-label { margin: 0 0 12px; font-size: 9px; font-weight: 700; letter-spacing: .15em; text-transform: uppercase; }
.tools-heading-row { min-height: 38px; margin: -5px 0 9px; display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.tools-heading-row .tools-label { margin: 0; }
.editor-undo-button { min-width: 82px; min-height: 36px; padding: 0 9px; border: 1px solid rgba(7,22,40,.16); border-radius: 18px; display: inline-flex; align-items: center; justify-content: center; gap: 6px; background: #fff; color: #087dce; box-shadow: 0 4px 14px rgba(7,22,40,.08); cursor: pointer; }
.editor-undo-button > span { font: 700 19px/1 Arial,sans-serif; transform: translateY(-1px); }
.editor-undo-button strong { font: 800 9px/1 Arial,sans-serif; letter-spacing: .04em; text-transform: uppercase; }
.editor-undo-button small { min-width: 17px; height: 17px; padding: 0 4px; border-radius: 9px; display: grid; place-items: center; background: #e4f3fd; color: #0874c4; font: 800 8px/1 Arial,sans-serif; }
.editor-undo-button:hover:not(:disabled), .editor-undo-button:focus-visible:not(:disabled) { border-color: #168fe3; background: #edf7fe; outline: 2px solid rgba(36,152,237,.16); outline-offset: 2px; }
.editor-undo-button:disabled { color: #8d99a6; background: #eef1f4; box-shadow: none; cursor: default; opacity: .72; }
.editor-undo-button:disabled small { background: #dfe4e9; color: #8d99a6; }
@keyframes editor-undo-flash { 0%, 100% { box-shadow: 0 0 0 0 rgba(20,151,237,0); } 12%, 72% { box-shadow: 0 0 0 5px #fff, 0 0 0 10px rgba(20,151,237,.82), 0 0 42px 18px rgba(20,151,237,.3); } }
.is-undo-flashing { position: relative; z-index: 12; animation: editor-undo-flash 1s ease both !important; }
.chapter.is-undo-flashing { z-index: 8; }
@media (prefers-reduced-motion: reduce) { .is-undo-flashing { animation-timing-function: step-end !important; } }
.cover-detail-control { display: grid; grid-template-columns: 1fr 116px; gap: 10px; align-items: center; }
.cover-detail-control + .cover-detail-control { margin-top: 9px; }
.cover-detail-control select { width: 100%; height: 34px; border: 1px solid rgba(7,16,29,.16); border-radius: 7px; background: white; color: var(--ink); padding: 0 8px; font-size: 10px; }
.cover-detail-control select:disabled { opacity: .42; }
.tools-help { margin: -3px 0 14px; color: rgba(7,16,29,.57); font: 13px/1.45 Georgia, serif; }
.module-title-control { display: grid; gap: 6px; color: rgba(7,16,29,.58); font-size: 8px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.module-title-control input { width: 100%; min-width: 0; padding: 10px; border: 1px solid rgba(7,16,29,.16); border-radius: 0; background: white; color: var(--ink); font: 700 13px/1.2 Arial, sans-serif; letter-spacing: 0; text-transform: none; }
.module-title-control input:focus { border-color: var(--blue); outline: 2px solid rgba(36,152,237,.12); outline-offset: 0; }
.module-link-hint { margin: 9px 0 0; color: rgba(7,16,29,.55); font-size: 10px; line-height: 1.4; }
.module-link-hint code { color: #0874c4; font: 700 10px/1.4 Arial, sans-serif; }
.tool-thumbnails { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; }
.tool-thumbnails button { height: 58px; padding: 0; border: 2px solid transparent; background: #dbe3ea; overflow: hidden; cursor: pointer; }
.tool-thumbnails button:hover, .tool-thumbnails button:focus-visible { border-color: var(--blue); }
.tool-thumbnails img { width: 100%; height: 100%; object-fit: cover; }
.tools-upload { margin-top: 8px; min-height: 38px; padding: 0 13px; border: 1px dashed rgba(7,16,29,.28); display: flex; align-items: center; justify-content: center; cursor: pointer; font-size: 10px; font-weight: 700; }
.tools-upload:hover { border-color: var(--blue); color: #0874c4; }
.font-options { display: grid; grid-template-columns: repeat(3, 1fr); gap: 5px; }
.font-options button { min-height: 42px; border: 1px solid rgba(7,16,29,.13); background: white; color: var(--ink); cursor: pointer; font-size: 10px; }
.font-options button.is-selected { border-color: var(--blue); background: rgba(36,152,237,.1); color: #0874c4; font-weight: 700; }
.cover-size-label { margin-top: 14px; }
.cover-palette-options { display: grid; grid-template-columns: repeat(3, 1fr); gap: 5px; }
.cover-palette-options button { min-height: 38px; border: 1px solid rgba(7,16,29,.13); background: white; color: var(--ink); cursor: pointer; font-size: 10px; }
.cover-palette-options button.is-selected { border-color: var(--blue); background: rgba(36,152,237,.1); color: #0874c4; font-weight: 700; }
.cover-palette-status { margin: 9px 0 0; color: rgba(7,16,29,.55); font-size: 9px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.logo-tools { display: grid; grid-template-columns: 1fr auto; gap: 7px; }
.logo-tools .tools-upload { margin: 0; }
.logo-tools button { border: 0; background: #e8edf1; color: var(--ink); cursor: pointer; font-size: 10px; }
.cover-toggle-list { display: grid; gap: 7px; }
.cover-toggle-list label { position: relative; }
.cover-toggle-list input { position: absolute; opacity: 0; }
.cover-toggle-list span { padding: 12px 12px 12px 40px; border: 1px solid rgba(7,16,29,.12); display: block; cursor: pointer; font-size: 11px; }
.cover-toggle-list span::before { content: ''; position: absolute; left: 13px; top: 50%; width: 14px; height: 14px; border: 1px solid rgba(7,16,29,.28); transform: translateY(-50%); }
.cover-toggle-list input:checked + span { border-color: var(--blue); background: rgba(36,152,237,.08); }
.cover-toggle-list input:checked + span::before { border-color: var(--blue); background: var(--blue); box-shadow: inset 0 0 0 3px white; }

.corner-placement-list { display: grid; gap: 9px; }
.corner-tools-zip { margin: 0 0 13px; padding: 0 0 13px; border-bottom: 1px solid rgba(7,16,29,.1); }
.corner-placement-row { min-height: 74px; padding: 11px 12px 11px 15px; border: 1px solid rgba(7,16,29,.12); border-radius: 9px; background: rgba(255,255,255,.78); display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 14px; box-shadow: 0 5px 16px rgba(7,16,29,.025); }
.corner-placement-row > strong { color: var(--ink); font: 500 13px/1.25 Arial, sans-serif; }
.corner-placement-grid { width: 62px; height: 62px; display: grid; grid-template-columns: repeat(2, 1fr); grid-template-rows: repeat(2, 1fr); }
.corner-placement-cell { position: relative; min-width: 0; min-height: 0; margin: 0 -1px -1px 0; padding: 0; border: 1px solid rgba(7,16,29,.18); border-radius: 0; background: rgba(255,255,255,.48); cursor: pointer; transition: z-index 0s, border-color .16s ease, background-color .16s ease, box-shadow .16s ease, transform .16s ease; }
.corner-placement-cell:nth-child(1) { border-radius: 7px 0 0; }
.corner-placement-cell:nth-child(2) { border-radius: 0 7px 0 0; }
.corner-placement-cell:nth-child(3) { border-radius: 0 0 0 7px; }
.corner-placement-cell:nth-child(4) { border-radius: 0 0 7px; }
.corner-placement-cell:not(:disabled):hover { z-index: 2; border-color: rgba(36,152,237,.62); background: rgba(36,152,237,.08); transform: scale(1.025); }
.corner-placement-cell:focus-visible { z-index: 3; outline: 2px solid var(--blue); outline-offset: 2px; }
.corner-placement-cell.is-selected { z-index: 2; border-color: #168de2; background: rgba(36,152,237,.17); box-shadow: inset 0 0 0 1px #168de2, 0 3px 10px rgba(36,152,237,.16); }
.corner-placement-cell.is-selected::after { content: ''; position: absolute; top: 5px; right: 5px; width: 4px; height: 4px; border-radius: 50%; background: #168de2; }
.corner-placement-cell.is-occupied { background: repeating-linear-gradient(135deg, rgba(7,16,29,.02) 0 4px, rgba(7,16,29,.055) 4px 6px); cursor: not-allowed; opacity: .54; }
.corner-placement-row + .cover-extra-inputs { margin-top: -3px; padding: 0 3px; }
.cover-extra-inputs + .corner-placement-row { margin-top: 2px; }

.paragraph-module { background: var(--paragraph-color, #f1eadf); color: white; isolation: isolate; transition: background-color .25s ease, color .25s ease; }
.paragraph-blur-background { position: absolute; inset: 0; z-index: -3; width: 100%; height: 100%; object-fit: cover; opacity: 0; transition: opacity .25s ease; }
.paragraph-background-wash { position: absolute; inset: 0; z-index: -2; background: linear-gradient(90deg, rgba(3,11,20,.38), rgba(3,11,20,.58)); opacity: 0; pointer-events: none; transition: opacity .25s ease; }
.paragraph-module.has-blurred-background .paragraph-blur-background, .paragraph-module.has-blurred-background .paragraph-background-wash { opacity: 1; }
.paragraph-module.has-blurred-background { background: #06111f; color: white; }
.paragraph-module.has-blurred-background .paragraph-kicker { color: var(--blue-bright); }
.paragraph-layout { width: 100%; max-width: 1280px; margin: 0 auto; display: grid; place-items: center; gap: clamp(34px, 5vw, 78px); }
.paragraph-module.has-image .paragraph-layout { grid-template-columns: minmax(260px, .82fr) minmax(0, 1.18fr); }
.paragraph-media { width: 100%; height: min(68vh, 690px); margin: 0; overflow: hidden; }
.paragraph-media img { width: 100%; height: 100%; object-fit: cover; }
.paragraph-copy { width: 100%; max-width: 850px; }
.paragraph-module.has-image .paragraph-copy { max-width: 720px; }
.paragraph-kicker { margin: 0 0 24px; color: var(--blue-bright); font-size: 9px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; }
.paragraph-copy h2 { max-width: 850px; font-size: clamp(58px, 6.2vw, 104px); line-height: .9; }
.paragraph-body { max-width: 720px; margin-top: 34px; display: grid; gap: 20px; }
.paragraph-body p { margin: 0; color: currentColor; font: 20px/1.55 Georgia, 'Times New Roman', serif; opacity: .78; white-space: pre-wrap; }
.paragraph-module.has-light-background { color: var(--ink); }
.paragraph-module.has-light-background .paragraph-kicker { color: #0874c4; }
.paragraph-module.has-light-background .universal-overlay { color: var(--ink); text-shadow: none; }
.paragraph-module.has-light-background .universal-overlay-button { border-color: rgba(7,16,29,.55); background: rgba(255,255,255,.28); color: var(--ink); }

.photo-module { background: #06111f; color: white; isolation: isolate; }
.photo-module-image { position: absolute; inset: 0; z-index: -3; width: 100%; height: 100%; object-fit: cover; }
.photo-module-wash { position: absolute; inset: 0; z-index: -2; background: linear-gradient(180deg, rgba(2,8,15,.3), rgba(2,8,15,.08) 45%, rgba(2,8,15,.34)); pointer-events: none; }
.photo-caption { position: absolute; z-index: 3; width: min(330px, calc(100% - 64px)); color: white; text-align: left; text-shadow: 0 2px 20px rgba(0,0,0,.7); }
.photo-caption.reveal { transform: none; }
.photo-caption[data-photo-caption-position="top-left"] { top: 102px; left: 32px; }
.photo-caption[data-photo-caption-position="top-right"] { top: 102px; right: 32px; }
.photo-caption[data-photo-caption-position="bottom-left"] { bottom: 26px; left: 32px; }
.photo-caption[data-photo-caption-position="bottom-right"] { right: 32px; bottom: 26px; }
.photo-caption-kicker { margin: 0 0 12px; font-size: 8px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; }
.photo-caption h2 { margin: 0 0 15px; font: 700 clamp(24px, 2.4vw, 38px)/.98 Arial, sans-serif; letter-spacing: -.035em; text-transform: none; }
.photo-caption > p:last-child { margin: 0; font: 13px/1.38 Arial, sans-serif; }
.photo-module [data-edit="headline"], .photo-module [data-edit="body"],
.gallery-module [data-edit="headline"], .gallery-module [data-edit="body"],
.video-module [data-edit="headline"], .video-module [data-edit="body"],
.video-gallery-module [data-edit="headline"], .video-gallery-module [data-edit="body"],
.countdown-module [data-edit="headline"], .countdown-module [data-edit="body"],
.people-module [data-edit="headline"], .people-module [data-edit="body"] { white-space: pre-wrap; }
.photo-caption-position-control { display: grid; gap: 7px; color: rgba(7,16,29,.58); font-size: 8px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.photo-caption-position-control select { width: 100%; padding: 10px; border: 1px solid rgba(7,16,29,.16); border-radius: 0; background: white; color: var(--ink); font-size: 11px; }

.gallery-module { background: #06111f; color: white; }
.gallery-blur-background { position: absolute; inset: 0; z-index: -3; width: 100%; height: 100%; object-fit: cover; opacity: .82; }
.gallery-wash { position: absolute; inset: 0; z-index: -2; background: linear-gradient(90deg, rgba(3,10,19,.88) 0%, rgba(3,10,19,.54) 38%, rgba(3,10,19,.14) 72%, rgba(3,10,19,.28) 100%), linear-gradient(0deg, rgba(3,10,19,.58), transparent 58%); }
.gallery-layout, .gallery-editor-layout { display: grid; grid-template-columns: minmax(250px, .55fr) minmax(0, 1.45fr); align-items: center; gap: clamp(32px, 5vw, 82px); }
.gallery-copy > p:first-child, .gallery-editor-copy > p:first-child { margin: 0 0 20px; color: var(--blue-bright); font-size: 9px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; }
.gallery-copy h2, .gallery-editor-copy h2 { font-size: clamp(58px, 6vw, 102px); }
.gallery-copy > p:last-child, .gallery-editor-copy > p:last-child { max-width: 450px; margin-top: 28px; color: rgba(255,255,255,.72); font: 18px/1.55 Georgia, serif; }
.gallery-grid, .gallery-editor-grid { height: min(68vh, 690px); display: grid; grid-template-columns: 1.5fr repeat(2, 1fr); grid-template-rows: repeat(2, minmax(0, 1fr)); grid-auto-rows: minmax(0, 1fr); gap: 9px; overflow: hidden; }
.gallery-grid:has(img:nth-child(6)), .gallery-editor-grid:has(img:nth-child(6)) { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.gallery-grid:has(img:nth-child(6)) img:first-child, .gallery-editor-grid:has(img:nth-child(6)) img:first-child { grid-row: auto; }
.gallery-grid.is-overflowing { grid-auto-flow: column; grid-auto-columns: minmax(42%, 1fr); grid-template-columns: none; grid-template-rows: repeat(2, minmax(0, 1fr)); overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; touch-action: pan-x; }
.gallery-grid.is-overflowing img { scroll-snap-align: start; }
.gallery-grid img, .gallery-editor-grid img { width: 100%; height: 100%; object-fit: cover; min-width: 0; min-height: 0; }
.gallery-grid img { cursor: zoom-in; }
.gallery-grid img:focus-visible { outline: 3px solid white; outline-offset: -5px; }
.gallery-grid img:first-child, .gallery-editor-grid img:first-child { grid-row: span 2; }

.gallery-editor-canvas { display: block; padding-top: 112px; }
.gallery-editor-background { inset: 0; width: 100%; height: 100%; opacity: .65; }
.gallery-editor-layout { min-height: calc(100svh - 172px); }
.gallery-editor-copy h2 { display: block; }
.gallery-asset-list { display: grid; gap: 7px; }
.gallery-asset { min-height: 48px; display: grid; grid-template-columns: 58px minmax(0,1fr) auto; align-items: center; gap: 10px; border-bottom: 1px solid rgba(7,16,29,.11); padding-bottom: 7px; }
.gallery-asset img { width: 58px; height: 44px; object-fit: cover; }
.gallery-asset span { font-size: 10px; font-weight: 700; }
.gallery-asset-actions { display: flex; gap: 4px; }
.gallery-asset button { width: 30px; height: 30px; padding: 0; border: 0; background: #e8edf1; color: var(--ink); cursor: pointer; font: 700 17px/1 Arial,sans-serif; }
.gallery-asset button:last-child { color: #a13d37; }
.gallery-asset button:disabled { opacity: .35; cursor: default; }
.tools-upload.prominent { border-style: solid; border-color: var(--blue); background: var(--blue); color: white; }

/* Countdown is an official full-screen module, not a boxed dashboard widget. */
.countdown-module { --countdown-color: #071628; background: var(--countdown-color); color: white; }
.countdown-background { position: absolute; inset: 0; z-index: -3; width: 100%; height: 100%; object-fit: cover; }
.countdown-background[hidden] { display: none; }
.countdown-wash { position: absolute; inset: 0; z-index: -2; background: linear-gradient(180deg, rgba(2,8,15,.48), rgba(2,8,15,.18) 42%, rgba(2,8,15,.6)); }
.countdown-module:not(.has-image) .countdown-wash { background: radial-gradient(circle at 72% 22%, rgba(66,181,255,.18), transparent 42%), linear-gradient(180deg, transparent, rgba(1,7,14,.2)); }
.countdown-module.has-light-background { color: var(--ink); }
.countdown-module.has-light-background .universal-overlay { color: var(--ink); text-shadow: none; }
.countdown-module.has-light-background .universal-overlay-button { border-color: rgba(7,16,29,.55); background: rgba(255,255,255,.28); color: var(--ink); }
.countdown-module.has-light-background .countdown-wash { background: radial-gradient(circle at 72% 22%, rgba(255,255,255,.42), transparent 44%), linear-gradient(180deg, rgba(255,255,255,.12), rgba(7,16,29,.06)); }
.countdown-layout { display: grid; grid-template-rows: auto auto; align-content: center; gap: clamp(46px, 8vh, 92px); text-align: center; }
.countdown-copy { width: min(880px, calc(100% - 40px)); margin: 0 auto; }
.countdown-copy .eyebrow { justify-content: center; margin-bottom: 24px; }
.countdown-copy h2 { font-size: clamp(58px, 8vw, 128px); line-height: .88; text-wrap: balance; }
.countdown-copy > p:last-child { max-width: 650px; margin: 28px auto 0; color: currentColor; opacity: .72; font: 18px/1.5 Georgia, serif; white-space: pre-wrap; }
.countdown-clock { width: min(1040px, calc(100% - 52px)); margin: 0 auto; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: end; }
.countdown-unit { min-width: 0; padding: 0 clamp(12px, 3vw, 44px); display: grid; justify-items: center; gap: 17px; }
.countdown-unit + .countdown-unit { border-left: 1px solid currentColor; }
.countdown-unit strong { font: 300 clamp(92px, 11vw, 180px)/.72 Arial, sans-serif; letter-spacing: -.075em; font-variant-numeric: tabular-nums; }
.countdown-unit span { font-size: 10px; font-weight: 800; letter-spacing: .28em; text-transform: uppercase; }
.countdown-second-dial { grid-column: 1 / -1; position: relative; width: clamp(64px, 5.5vw, 82px); aspect-ratio: 1; margin: clamp(24px, 4vh, 42px) auto 0; border: 1px solid currentColor; border-radius: 50%; color: inherit; opacity: .72; }
.countdown-second-dial::before { content: ''; position: absolute; inset: 7px; border-radius: 50%; background: repeating-conic-gradient(from -1deg, currentColor 0 2deg, transparent 2deg 30deg); -webkit-mask: radial-gradient(circle, transparent 0 79%, #000 80% 100%); mask: radial-gradient(circle, transparent 0 79%, #000 80% 100%); opacity: .7; }
.countdown-second-hand { position: absolute; z-index: 1; left: 50%; bottom: 50%; width: 1px; height: calc(50% - 10px); background: currentColor; transform: translateX(-50%) rotate(0deg); transform-origin: 50% 100%; animation: countdown-second-sweep 60s linear infinite; animation-delay: var(--countdown-second-delay, 0ms); will-change: transform; }
.countdown-second-hand::before { content: ''; position: absolute; top: -2px; left: 50%; width: 5px; height: 5px; border: 1px solid currentColor; border-radius: 50%; transform: translateX(-50%); background: transparent; }
.countdown-second-pivot { position: absolute; z-index: 2; left: 50%; top: 50%; width: 7px; height: 7px; border: 1px solid currentColor; border-radius: 50%; transform: translate(-50%, -50%); background: currentColor; box-shadow: 0 0 0 3px rgba(7,16,29,.22); }
.countdown-module.is-countdown-complete .countdown-second-hand { animation: none; transform: translateX(-50%) rotate(0deg); }
@keyframes countdown-second-sweep { to { transform: translateX(-50%) rotate(360deg); } }
.countdown-target-fields { display: grid; gap: 10px; }
.countdown-date-control, .countdown-time-control, .countdown-meridiem-control { display: grid; gap: 7px; color: rgba(7,16,29,.58); font-size: 8px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.countdown-date-control { position: relative; }
.countdown-time-row { display: grid; grid-template-columns: minmax(0, 1fr) 92px; gap: 8px; align-items: end; }
.countdown-date-control button, .countdown-time-control input, .countdown-meridiem-control select { width: 100%; min-height: 40px; padding: 10px; border: 1px solid rgba(7,16,29,.16); border-radius: 0; background: white; color: var(--ink); font: 700 12px/1.2 Arial, sans-serif; letter-spacing: .02em; color-scheme: light; }
.countdown-date-control button { display: flex; align-items: center; justify-content: space-between; gap: 12px; text-align: left; cursor: pointer; }
.countdown-date-control button svg { width: 17px; height: 17px; flex: 0 0 17px; fill: none; stroke: currentColor; stroke-width: 1.6; }
.countdown-date-native { position: absolute; right: 8px; bottom: 7px; width: 1px; height: 1px; padding: 0; border: 0; opacity: 0; pointer-events: none; }
.countdown-date-control button:focus-visible, .countdown-time-control input:focus, .countdown-meridiem-control select:focus { outline: none; border-color: var(--blue); background: #f4faff; box-shadow: 0 0 0 3px rgba(36,152,237,.16); }
.countdown-time-control input.is-invalid { border-color: #b94242; box-shadow: 0 0 0 3px rgba(185,66,66,.12); }
.countdown-time-hint { margin: -2px 0 0; color: rgba(7,16,29,.48); font-size: 9px; line-height: 1.35; }
.countdown-blur-control { margin-top: 10px; display: flex; align-items: center; gap: 9px; color: rgba(7,16,29,.66); font-size: 10px; font-weight: 700; }
.countdown-blur-control input { accent-color: var(--blue); }
.countdown-blur-control:has(input:disabled) { opacity: .42; }
.blur-strength-control { margin-top: 10px; padding: 11px 12px 10px; border: 1px solid rgba(7,16,29,.13); background: rgba(255,255,255,.72); display: grid; gap: 8px; transition: opacity .18s, border-color .18s; }
.blur-strength-control > div:first-child { display: flex; align-items: center; justify-content: space-between; gap: 12px; color: rgba(7,16,29,.65); font-size: 9px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.blur-strength-control output { color: #0874c4; font-size: 10px; letter-spacing: .02em; }
.blur-strength-control input[type="range"] { width: 100%; margin: 0; accent-color: var(--blue); cursor: pointer; }
.blur-strength-labels { display: grid; grid-template-columns: repeat(4, 1fr); color: rgba(7,16,29,.43); font-size: 7px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.blur-strength-labels span:nth-child(2), .blur-strength-labels span:nth-child(3) { text-align: center; }
.blur-strength-labels span:last-child { text-align: right; }
.blur-strength-labels small { display: block; margin-top: 2px; font-size: 6px; font-weight: 700; letter-spacing: .02em; }
.blur-strength-control.is-disabled { opacity: .4; }
.blur-strength-control.is-disabled input { cursor: not-allowed; }

/* People keeps the catalog's strong left-side introduction and turns the right side into a real roster. */
.people-module { --people-color: #071628; background: var(--people-color); color: white; isolation: isolate; }
.people-background { position: absolute; inset: 0; z-index: -3; width: 100%; height: 100%; object-fit: cover; }
.people-background[hidden] { display: none; }
.people-wash { position: absolute; inset: 0; z-index: -2; background: linear-gradient(90deg, rgba(2,8,15,.86) 0%, rgba(2,8,15,.68) 42%, rgba(2,8,15,.46) 100%), linear-gradient(0deg, rgba(2,8,15,.55), transparent 62%); }
.people-module:not(.has-image) .people-wash { background: radial-gradient(circle at 74% 22%, rgba(66,181,255,.18), transparent 40%), linear-gradient(135deg, transparent, rgba(1,7,14,.26)); }
.people-module.has-light-background { color: var(--ink); }
.people-module.has-light-background .people-wash { background: radial-gradient(circle at 74% 22%, rgba(255,255,255,.45), transparent 42%), linear-gradient(135deg, rgba(255,255,255,.1), rgba(7,16,29,.05)); }
.people-module.has-light-background .universal-overlay { color: var(--ink); text-shadow: none; }
.people-module.has-light-background .universal-overlay-button { border-color: rgba(7,16,29,.55); background: rgba(255,255,255,.28); color: var(--ink); }
.people-layout { display: grid; grid-template-columns: minmax(270px,.74fr) minmax(360px,1.26fr); align-items: center; gap: clamp(50px,8vw,132px); padding-left: clamp(38px,7vw,112px); padding-right: clamp(38px,7vw,112px); }
.people-copy { max-width: 650px; }
.people-copy .eyebrow { margin-bottom: 23px; }
.people-copy h2 { margin: 0; font: 400 clamp(64px,7.4vw,120px)/.86 Arial,sans-serif; letter-spacing: -.072em; text-wrap: balance; }
.people-copy > p:last-child { max-width: 520px; margin: 28px 0 0; color: currentColor; opacity: .74; font: 17px/1.5 Georgia,serif; white-space: pre-wrap; }
.people-list { max-height: min(66vh,670px); overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; touch-action: pan-y; border-top: 1px solid color-mix(in srgb,currentColor 24%,transparent); }
.people-card { min-height: 102px; padding: 17px 2px; border-bottom: 1px solid color-mix(in srgb,currentColor 24%,transparent); display: grid; grid-template-columns: minmax(0,1fr); align-items: center; gap: 18px; }
.people-card.has-photo { grid-template-columns: 68px minmax(0,1fr); }
.people-card img { width: 64px; height: 64px; border-radius: 50%; object-fit: cover; box-shadow: 0 0 0 1px color-mix(in srgb,currentColor 42%,transparent); }
.people-card h3 { margin: 0; font: 700 clamp(18px,1.7vw,26px)/1.05 Arial,sans-serif; letter-spacing: -.025em; }
.people-card p { margin: 7px 0 0; color: currentColor; opacity: .66; font: 13px/1.4 Arial,sans-serif; white-space: pre-wrap; }
.people-list-empty { margin: 0; padding: 24px 2px; border-bottom: 1px solid color-mix(in srgb,currentColor 24%,transparent); color: currentColor; opacity: .62; font: 14px/1.45 Georgia,serif; }
.people-editor-list { display: grid; gap: 9px; }
.people-editor-card { border: 1px solid rgba(7,16,29,.14); background: rgba(255,255,255,.72); }
.people-editor-card header { min-height: 34px; padding: 7px 9px; border-bottom: 1px solid rgba(7,16,29,.1); display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.people-editor-card header span { color: rgba(7,16,29,.55); font-size: 8px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.people-editor-card header button { padding: 5px 7px; border: 0; background: transparent; color: #a63f36; font-size: 8px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; cursor: pointer; }
.people-editor-card-body { padding: 9px; display: grid; grid-template-columns: 76px minmax(0,1fr); gap: 10px; }
.person-photo-control { min-width: 0; display: grid; align-content: start; justify-items: center; gap: 6px; }
.person-photo-target { width: 58px; height: 58px; padding: 0; border: 1px dashed rgba(7,16,29,.24); border-radius: 50%; background: #e8edf1; color: #0874c4; display: grid; place-items: center; cursor: pointer; overflow: hidden; transition: border-color .2s ease, background .2s ease, transform .2s ease; }
.person-photo-target:hover, .person-photo-target:focus-visible { border-color: #0874c4; background: #dcecf7; transform: scale(1.035); outline: none; }
.person-photo-target > span, .person-photo-target > img { width: 100%; height: 100%; border-radius: 50%; object-fit: cover; }
.person-photo-target > span { display: grid; place-items: center; font: 300 22px/1 Arial,sans-serif; }
.person-photo-control.has-photo .person-photo-target { border-style: solid; }
.person-photo-action, .person-photo-control > button { width: 100%; padding: 5px 3px; border: 0; background: #e8edf1; color: var(--ink); text-align: center; font-size: 7px; font-weight: 800; line-height: 1.2; letter-spacing: .04em; text-transform: uppercase; cursor: pointer; }
.person-photo-control > button { background: transparent; color: #a63f36; }
.person-photo-control input { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.person-copy-controls { min-width: 0; display: grid; gap: 7px; }
.person-copy-controls label { min-width: 0; display: grid; gap: 4px; color: rgba(7,16,29,.55); font-size: 7px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.person-copy-controls input, .person-copy-controls textarea { width: 100%; min-width: 0; padding: 7px; border: 1px solid rgba(7,16,29,.14); border-radius: 0; background: white; color: var(--ink); font: 10px/1.3 Arial,sans-serif; resize: vertical; }
.person-copy-controls input:focus, .person-copy-controls textarea:focus { outline: none; border-color: var(--blue); box-shadow: 0 0 0 2px rgba(36,152,237,.12); }
.people-editor-empty { margin: 0; padding: 15px; border: 1px dashed rgba(7,16,29,.2); color: rgba(7,16,29,.58); font: 12px/1.45 Georgia,serif; }
.people-add-button { width: 100%; min-height: 42px; margin-top: 10px; border: 1px solid var(--blue); border-radius: 0; background: var(--blue); color: white; font-size: 9px; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; cursor: pointer; }
.people-add-button span { margin-right: 5px; font-size: 15px; font-weight: 300; vertical-align: -1px; }

/* Accessibility pairs editable story copy with a quiet, icon-led checklist. */
.accessibility-module { --accessibility-color: #071628; background: var(--accessibility-color); color: white; isolation: isolate; }
.accessibility-background { position: absolute; inset: 0; z-index: -3; width: 100%; height: 100%; object-fit: cover; }
.accessibility-background[hidden] { display: none; }
.accessibility-wash { position: absolute; inset: 0; z-index: -2; background: linear-gradient(90deg, rgba(2,8,15,.9) 0%, rgba(2,8,15,.7) 45%, rgba(2,8,15,.5) 100%), linear-gradient(0deg, rgba(2,8,15,.5), transparent 62%); }
.accessibility-module:not(.has-image) .accessibility-wash { background: radial-gradient(circle at 76% 18%, rgba(66,181,255,.18), transparent 40%), linear-gradient(135deg, transparent, rgba(1,7,14,.26)); }
.accessibility-module.has-light-background { color: var(--ink); }
.accessibility-module.has-light-background .accessibility-wash { background: radial-gradient(circle at 76% 18%, rgba(255,255,255,.48), transparent 42%), linear-gradient(135deg, rgba(255,255,255,.1), rgba(7,16,29,.05)); }
.accessibility-module.has-light-background .universal-overlay { color: var(--ink); text-shadow: none; }
.accessibility-module.has-light-background .universal-overlay-button { border-color: rgba(7,16,29,.55); background: rgba(255,255,255,.28); color: var(--ink); }
.accessibility-layout { display: grid; grid-template-columns: minmax(440px,1fr) minmax(360px,1fr); align-items: center; gap: clamp(42px,5vw,78px); padding-left: clamp(38px,5vw,80px); padding-right: clamp(38px,5vw,80px); }
.accessibility-copy { max-width: 680px; }
.accessibility-copy .eyebrow { margin-bottom: 23px; }
.accessibility-copy h2 { margin: 0; font: 400 clamp(66px,6.4vw,104px)/.88 Arial,sans-serif; letter-spacing: -.075em; text-wrap: balance; overflow-wrap: normal; word-break: normal; }
.accessibility-copy > p:last-child { max-width: 530px; margin: 28px 0 0; color: currentColor; opacity: .76; font: 17px/1.5 Georgia,serif; white-space: pre-wrap; }
.accessibility-list { max-height: min(62vh,620px); overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; touch-action: pan-y; border-top: 1px solid color-mix(in srgb,currentColor 28%,transparent); }
.accessibility-feature { min-height: 118px; padding: 18px 2px; border-bottom: 1px solid color-mix(in srgb,currentColor 28%,transparent); display: grid; grid-template-columns: 72px minmax(0,1fr); align-items: center; gap: 22px; }
.accessibility-feature-icon { width: 60px; height: 60px; border: 1px solid color-mix(in srgb,currentColor 55%,transparent); border-radius: 50%; display: grid; place-items: center; }
.accessibility-feature-icon svg, .accessibility-editor-icon svg { width: 31px; height: 31px; fill: none; stroke: currentColor; stroke-width: 1.55; stroke-linecap: round; stroke-linejoin: round; }
.accessibility-feature strong { font: 700 clamp(19px,1.8vw,28px)/1.14 Arial,sans-serif; letter-spacing: -.028em; }
.accessibility-list-empty { margin: 0; padding: 28px 2px; border-bottom: 1px solid color-mix(in srgb,currentColor 28%,transparent); color: currentColor; opacity: .66; font: 15px/1.45 Georgia,serif; }
.accessibility-editor-list { display: grid; gap: 9px; }
.accessibility-editor-item { padding: 10px; border: 1px solid rgba(7,16,29,.14); background: rgba(255,255,255,.72); display: grid; gap: 8px; }
.accessibility-editor-item > label { min-width: 0; display: grid; grid-template-columns: 16px 30px minmax(0,1fr); align-items: center; gap: 8px; cursor: pointer; }
.accessibility-editor-item > label > input { accent-color: var(--blue); }
.accessibility-editor-icon { width: 28px; height: 28px; color: #0874c4; display: grid; place-items: center; }
.accessibility-editor-icon svg { width: 23px; height: 23px; }
.accessibility-editor-item strong { font: 800 9px/1.2 Arial,sans-serif; letter-spacing: .035em; }
.accessibility-editor-item > input { width: 100%; min-width: 0; padding: 8px; border: 1px solid rgba(7,16,29,.14); border-radius: 0; background: white; color: var(--ink); font: 10px/1.3 Arial,sans-serif; }
.accessibility-editor-item > input:focus { outline: none; border-color: var(--blue); box-shadow: 0 0 0 2px rgba(36,152,237,.12); }

.gallery-lightbox { position: fixed; inset: 0; z-index: 240; display: grid; place-items: center; padding: clamp(24px, 5vw, 72px); }
.gallery-lightbox[hidden] { display: none; }
.gallery-lightbox-backdrop { position: absolute; inset: 0; border: 0; background: rgba(1,6,12,.91); backdrop-filter: blur(18px); cursor: zoom-out; }
.gallery-lightbox figure { position: relative; z-index: 1; max-width: min(1200px, 92vw); max-height: 88vh; margin: 0; display: grid; justify-items: center; gap: 14px; }
.gallery-lightbox img { display: block; max-width: 100%; max-height: 82vh; object-fit: contain; box-shadow: 0 30px 100px rgba(0,0,0,.58); }
.gallery-lightbox figcaption { color: rgba(255,255,255,.7); font: 12px/1.4 Georgia, serif; }
.gallery-lightbox-close { position: absolute; z-index: 2; top: max(18px, env(safe-area-inset-top)); right: 18px; width: 46px; height: 46px; padding: 0 0 3px; border: 0; border-radius: 50%; background: var(--blue); color: white; display: grid; place-items: center; cursor: pointer; font-size: 28px; line-height: 1; }

@media (max-width: 900px) {
  :root { --header-h: 68px; }
  html, body { overscroll-behavior-y: none; }
  .story-shell > .chapter { height: var(--story-page-height); min-height: var(--story-page-height); max-height: var(--story-page-height); scroll-snap-stop: always; }
  .story-shell > .chapter .reveal { opacity: 1; transform: none; transition: none; }
  .site-header { padding: 0 16px; grid-template-columns: auto 1fr auto; gap: 12px; }
  .brand { justify-self: center; }
  .brand img { width: 142px; }
  .brand img.is-custom { width: auto; max-width: 150px; max-height: 30px; }
  .brand span, .concept-label { display: none; }
  .demo-note { bottom: 62px; }
  .text-button { font-size: 11px; }
  .rsvp-button { padding: 10px 15px; font-size: 12px; }
  .story-progress { display: none; }
  .chapter-controls { right: 16px; bottom: 17px; }
  .story-shell > .chapter > .chapter-inner { height: 100%; min-height: 0; padding: calc(var(--header-h) + 42px) 22px 78px; }
  .cover-layout, .schedule-layout, .live-layout { grid-template-columns: 1fr; }
  .cover-layout { align-items: end; }
  .cover-copy { align-self: end; margin: 0; }
  .cover-note { padding: 16px 0 0; border-left: 0; border-top: 1px solid var(--line); display: grid; grid-template-columns: 1fr auto; gap: 20px; align-items: center; }
  .cover-note > p { font-size: 16px; margin: 0; }
  .circle-link { width: 78px; height: 78px; }
  .cover-meta { margin-top: 22px; gap: 8px 12px; }
  .cover-meta span { gap: 12px; }
  .scroll-cue { left: 22px; bottom: 24px; }
  .schedule-layout { align-content: center; gap: 36px; }
  .section-copy { font-size: 16px; margin-top: 20px; }
  .timeline { max-height: min(52vh, 440px); }
  .timeline-item { min-height: 82px; grid-template-columns: 55px 1fr; gap: 12px; }
  .timeline-status { display: none; }
  .timeline-item time { font-size: 19px; }
  .timeline-item strong { font-size: 14px; }
  .table-figure { top: -1px; width: 100%; height: calc(48% + 1px); }
  .table-figure img { display: block; }
  .table-figure::after { content: ''; position: absolute; inset: 0; background: linear-gradient(0deg, var(--paper), transparent 55%); }
  .story-shell > .chapter > .table-layout { grid-template-columns: 1fr; padding: calc(var(--header-h) + var(--story-page-height-30)) 22px 24px; }
  .table-copy { grid-column: 1; padding: 0; align-self: end; }
  .table-copy h2 { font-size: clamp(62px, 19vw, 92px); }
  .table-copy > p { font-size: 15px; }
  .event-facts { margin: 18px 0; }
  .event-facts div { padding: 10px 0; }
  .vertical-caption { display: none; }
  .live-layout { align-content: end; gap: 30px; }
  .live-copy h2 { font-size: clamp(86px, 28vw, 135px); }
  .artist-note { justify-self: start; }
  .sound-toggle { right: 18px; top: 100px; }
  .menu-content { padding: calc(var(--header-h) + 45px) 24px 32px; }
  .menu-content a { font-size: clamp(31px, 10vw, 48px); }
  .menu-footer { display: grid; }
  .chapter-cover .chapter-media { object-position: 66% center; }
  .announcement-editor-bar { height: 68px; padding: 0 16px; }
  .announcement-editor-identity span { display: none; }
  .announcement-editor-canvas { padding: 102px 22px 84px; }
  .announcement-editor-content h2 { font-size: clamp(72px, 19vw, 118px); }
  .announcement-design-dock { width: calc(100% - 24px); min-height: 102px; bottom: 12px; padding: 10px 12px; border-radius: 18px; flex-wrap: wrap; justify-content: center; gap: 8px 11px; }
  .announcement-design-dock > p { width: 100%; text-align: center; }
  .announcement-editor-canvas { padding-bottom: 150px; }
  .announcement-editor-hint { bottom: 126px; }
  .announcement-editor-demo { display: none; }
  .cover-official-content h1 { font-size: clamp(64px, 17vw, 108px); }
  .cover-official-content .eyebrow { margin-bottom: 22px; }
  .cover-widget, .cover-editor-widget { min-width: 125px; padding: 10px 12px; }
  .cover-widget strong, .cover-editor-widget strong { font-size: 14px; }
  .cover-widget[data-cover-position="top-left"] { top: 76px; left: 16px; }
  .cover-widget[data-cover-position="top-right"] { top: 76px; right: 16px; }
  .cover-editor-widget[data-cover-position="top-left"] { top: 86px; left: 16px; }
  .cover-editor-widget[data-cover-position="top-right"] { top: 86px; right: 16px; }
  .cover-widget[data-cover-position="bottom-left"] { left: 16px; bottom: 16px; }
  .cover-widget[data-cover-position="bottom-right"] { right: 16px; bottom: 16px; }
  .cover-editor-widget[data-cover-position="bottom-left"] { left: 16px; bottom: 262px; }
  .cover-editor-widget[data-cover-position="bottom-right"] { right: 16px; bottom: 262px; }
  .cover-editor-canvas, .gallery-editor-canvas { min-height: 100svh; padding: 82px 18px 262px; }
  .cover-editor-preview h1 { font-size: clamp(62px, 17vw, 104px); }
  .cover-editor-logo { max-height: 72px; margin-bottom: 18px; }
  .visual-editor-tools { top: auto; left: 0; right: 0; bottom: 0; width: 100%; height: 244px; padding: 17px 18px; box-shadow: 0 -18px 50px rgba(2,9,18,.22); }
  .visual-editor-tools section + section { margin-top: 17px; padding-top: 15px; }
  .gallery-layout, .gallery-editor-layout { grid-template-columns: 1fr; gap: 24px; }
  .gallery-layout { align-content: center; }
  .gallery-copy h2, .gallery-editor-copy h2 { font-size: clamp(52px, 14vw, 78px); }
  .gallery-copy > p:last-child, .gallery-editor-copy > p:last-child { margin-top: 18px; font-size: 15px; }
  .gallery-grid, .gallery-editor-grid { height: 47vh; min-height: 320px; }
  .gallery-editor-canvas { padding-top: 84px; }
  .gallery-editor-layout { min-height: calc(100svh - 346px); align-content: center; }
  .gallery-editor-grid { height: 32vh; min-height: 210px; }
  .countdown-layout { gap: clamp(34px, 6vh, 58px); padding-left: 14px; padding-right: 14px; }
  .countdown-copy { width: min(100%, 660px); }
  .countdown-copy h2 { font-size: clamp(48px, 13vw, 76px); }
  .countdown-copy > p:last-child { margin-top: 18px; font-size: 14px; line-height: 1.4; }
  .countdown-clock { width: calc(100% - 14px); }
  .countdown-unit { padding: 0 7px; gap: 12px; }
  .countdown-unit strong { font-size: clamp(52px, 17vw, 88px); }
  .countdown-unit span { font-size: 8px; letter-spacing: .2em; }
  .countdown-second-dial { width: 58px; margin-top: clamp(18px, 3vh, 28px); }
  .countdown-second-hand { height: calc(50% - 8px); }
}

@media (max-width: 900px) and (max-height: 720px) {
  .table-figure { height: calc(43% + 1px); }
  .story-shell > .chapter > .table-layout { padding: calc(var(--header-h) + var(--story-page-height-24)) 22px 18px; }
  .table-copy h2 { font-size: clamp(54px, 17vw, 72px); }
  .table-copy > p { margin: 10px 0; font-size: 14px; line-height: 1.42; }
  .event-facts { margin: 10px 0; }
  .event-facts div { padding: 7px 0; }
  .underlined-button { padding: 5px 0; }
  .countdown-layout { gap: 20px; }
  .countdown-copy .eyebrow { margin-bottom: 10px; }
  .countdown-copy h2 { font-size: clamp(36px, 11vh, 58px); }
  .countdown-copy > p:last-child { margin-top: 10px; font-size: 12px; }
  .countdown-unit { gap: 7px; }
  .countdown-unit strong { font-size: clamp(40px, 14vh, 62px); }
  .countdown-second-dial { width: 44px; margin-top: 11px; }
  .countdown-second-hand { height: calc(50% - 7px); }
}

.visual-corner-drawer { position: absolute; z-index: 9; top: 94px; right: 18px; width: 320px; color: var(--ink); }
.gallery-editor-page .visual-corner-drawer { right: 365px; }
.visual-corner-drawer > summary { min-height: 42px; padding: 0 15px; border-radius: 999px; background: rgba(244,246,249,.96); box-shadow: 0 10px 30px rgba(2,9,18,.2); display: flex; align-items: center; justify-content: space-between; font-size: 10px; font-weight: 700; cursor: pointer; list-style: none; backdrop-filter: blur(18px); }
.visual-corner-drawer > summary::-webkit-details-marker { display: none; }
.visual-corner-drawer > summary span { font-size: 17px; font-weight: 400; }
.visual-corner-drawer[open] > summary { border-radius: 18px 18px 0 0; }
.visual-corner-drawer[open] > summary span { transform: rotate(45deg); }
.visual-corner-fields { max-height: calc(100svh - 160px); padding: 15px; border-radius: 0 0 18px 18px; background: rgba(244,246,249,.98); box-shadow: 0 22px 50px rgba(2,9,18,.28); display: grid; gap: 10px; overflow-y: auto; backdrop-filter: blur(18px); }
.visual-corner-fields > label:not(.overlay-toggle):not(.overlay-corner-field) { display: grid; gap: 5px; color: rgba(7,16,29,.55); font-size: 8px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.visual-corner-fields > label input { width: 100%; padding: 8px; border: 1px solid rgba(7,16,29,.16); border-radius: 0; background: white; color: var(--ink); font-size: 10px; }

@media (max-width: 900px) {
  .visual-corner-drawer, .gallery-editor-page .visual-corner-drawer { top: 76px; right: 12px; width: min(320px,calc(100% - 24px)); }
  .visual-corner-fields { max-height: calc(100svh - 132px); }
}

@media (max-width: 520px) {
  h1 { font-size: clamp(64px, 21vw, 96px); }
  h2 { font-size: clamp(64px, 19vw, 90px); }
  .cover-note { display: none; }
  .cover-meta span { width: max-content; }
  .menu-button { width: 38px; height: 38px; }
  .rsvp-button { padding: 9px 12px; }
  .timeline-item div span { font-size: 11px; }
  .artist-note { grid-template-columns: 52px 1fr; }
  .finale-button { min-width: 200px; }
  .announcement-editor-bar { grid-template-columns: 1fr auto 1fr; gap: 8px; }
  .announcement-editor-identity img { width: 112px; }
  .announcement-editor-back { font-size: 9px; gap: 5px; }
  .announcement-editor-save { min-width: 76px; padding: 11px 13px; font-size: 0; }
  .announcement-editor-save::before { content: 'Save'; font-size: 10px; }
  .announcement-editor-save span { font-size: 13px; }
  .announcement-editor-kicker { margin-bottom: 22px; gap: 10px; font-size: 8px; }
  .announcement-editor-kicker > span:not(.guest-editable) { width: 22px; }
  .announcement-editor-content h2 { font-size: clamp(64px, 19vw, 92px); }
  .announcement-editor-body { font-size: 17px; }
  .announcement-editor-hint { left: 18px; bottom: 126px; }
  .announcement-editor-demo { display: none; }
  .announcement-image-options { padding-left: 7px; }
  .visual-upload-button { padding: 0 9px; }
  .cover-official-date { font-size: 8px; }
  .cover-widget span, .cover-editor-widget span { font-size: 7px; }
  .cover-widget strong, .cover-editor-widget strong { font-size: 12px; }
  .cover-editor-kicker { margin-bottom: 16px; }
  .gallery-grid, .gallery-editor-grid { grid-template-columns: 1.35fr 1fr; }
  .gallery-grid img:first-child, .gallery-editor-grid img:first-child { grid-row: span 2; }
  .gallery-grid:has(img:nth-child(4)), .gallery-editor-grid:has(img:nth-child(4)) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .gallery-grid:has(img:nth-child(4)) img:first-child, .gallery-editor-grid:has(img:nth-child(4)) img:first-child { grid-row: auto; }
  .gallery-grid:has(img:nth-child(5)), .gallery-editor-grid:has(img:nth-child(5)) { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .gallery-grid:has(img:nth-child(7)), .gallery-editor-grid:has(img:nth-child(7)) { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  .reveal { opacity: 1; transform: none; }
}

/* Freemium account preview: quiet in the editor, explicit only at save time. */
.plan-meter { margin: 14px 0 16px; padding: 13px 14px 14px; border-left: 3px solid var(--blue); background: white; box-shadow: 0 8px 24px rgba(7,16,29,.06); }
.plan-meter-heading { display: flex; justify-content: space-between; align-items: end; gap: 16px; }
.plan-meter-heading > div { display: grid; gap: 3px; }
.plan-meter-heading span { color: var(--blue); font-size: 8px; font-weight: 700; letter-spacing: .16em; }
.plan-meter-heading strong { font-size: 15px; }
.plan-meter-heading small { color: rgba(7,16,29,.5); font-size: 10px; }
.plan-meter-track { height: 3px; margin-top: 11px; background: #e7ebef; overflow: hidden; }
.plan-meter-track span { display: block; width: 0; height: 100%; background: var(--blue); transition: width .35s var(--ease), background .2s; }
.plan-meter p { margin: 10px 0 12px; color: rgba(7,16,29,.62); font-size: 10px; line-height: 1.45; }
.plan-meter button { width: 100%; padding: 11px 12px; border: 0; border-radius: 18px; background: var(--blue); color: white; display: flex; justify-content: space-between; align-items: center; font-size: 10px; font-weight: 700; cursor: pointer; }
.plan-meter button:hover, .plan-meter button:focus-visible { background: #0874c4; outline: 2px solid rgba(36,152,237,.28); outline-offset: 2px; }
.plan-meter.is-over-limit { border-left-color: #ba493c; }
.plan-meter.is-over-limit .plan-meter-heading span, .plan-meter.is-over-limit .plan-meter-heading small { color: #a43e34; }
.plan-meter.is-over-limit .plan-meter-track span { background: #ba493c; }
.plan-meter.is-pro .plan-meter-heading span { color: var(--blue); }

.plan-modal { z-index: 150; }
.plan-sheet { position: absolute; top: 50%; left: 50%; width: min(650px, calc(100% - 32px)); max-height: calc(100svh - 32px); padding: clamp(28px, 5vw, 54px); background: var(--paper); color: var(--ink); box-shadow: 0 32px 110px rgba(0,0,0,.32); opacity: 0; overflow-y: auto; transform: translate(-50%, calc(-50% + 18px)); transition: opacity .3s, transform .4s var(--ease); }
.modal-shell.is-open .plan-sheet { opacity: 1; transform: translate(-50%, -50%); }
.plan-sheet .sheet-close { border-color: var(--blue); background: var(--blue); color: white; box-shadow: 0 8px 22px rgba(36,152,237,.24); }
.plan-sheet .sheet-close:hover, .plan-sheet .sheet-close:focus-visible { background: #0874c4; border-color: #0874c4; outline: 2px solid rgba(36,152,237,.25); outline-offset: 2px; }
.plan-kicker { margin: 0 52px 13px 0; color: var(--blue); font-size: 9px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; }
.plan-sheet h2 { max-width: 520px; margin: 0; font: 700 clamp(34px, 5vw, 54px)/.96 Arial, sans-serif; letter-spacing: -.045em; }
#planModalCopy { max-width: 545px; margin: 17px 0 24px; color: rgba(7,16,29,.65); font: 15px/1.55 Georgia, serif; }
.plan-comparison { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.plan-choice { min-height: 142px; padding: 16px; border: 1px solid rgba(7,16,29,.15); background: white; }
.plan-choice.is-active { border-color: var(--blue); box-shadow: inset 0 0 0 1px var(--blue); }
.plan-choice > div { display: flex; justify-content: space-between; gap: 12px; }
.plan-choice span { color: var(--blue); font-size: 9px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.plan-choice small { color: rgba(7,16,29,.46); font-size: 8px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.plan-choice strong { display: block; margin-top: 18px; font-size: 20px; }
.plan-choice p { margin: 7px 0 0; color: rgba(7,16,29,.56); font-size: 10px; line-height: 1.45; }
.plan-modal-actions { margin-top: 10px; display: grid; gap: 7px; }
.plan-modal-actions button { width: 100%; padding: 13px 15px; border: 1px solid rgba(7,16,29,.16); border-radius: 20px; background: transparent; color: var(--ink); text-align: left; font-size: 11px; font-weight: 700; cursor: pointer; }
.plan-modal-actions button:hover, .plan-modal-actions button:focus-visible { border-color: var(--blue); outline: 2px solid rgba(36,152,237,.22); outline-offset: 1px; }
.plan-modal-actions .plan-action-primary { border-color: var(--blue); background: var(--blue); color: white; }
.plan-modal-actions .plan-action-primary:hover, .plan-modal-actions .plan-action-primary:focus-visible { background: #0874c4; }
.plan-future-note { margin: 14px 0 0; color: rgba(7,16,29,.42); font-size: 9px; line-height: 1.45; }

.module-actions .module-delete { border-color: #ead8d5; background: #f4e9e7; color: #923d34; }
.module-actions .module-delete:hover, .module-actions .module-delete:focus-visible { border-color: #a84035; background: #a84035; color: white; }

.delete-modal { z-index: 155; }
.delete-sheet { position: absolute; top: 50%; left: 50%; width: min(500px, calc(100% - 32px)); padding: clamp(28px, 5vw, 48px); background: var(--paper); color: var(--ink); box-shadow: 0 32px 110px rgba(0,0,0,.32); opacity: 0; transform: translate(-50%, calc(-50% + 18px)); transition: opacity .3s, transform .4s var(--ease); }
.modal-shell.is-open .delete-sheet { opacity: 1; transform: translate(-50%, -50%); }
.delete-kicker { margin: 0 0 12px; color: #a84035; font-size: 9px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; }
.delete-sheet h2 { max-width: 390px; margin: 0; font: 700 clamp(34px, 4.4vw, 48px)/.98 Arial, sans-serif; letter-spacing: -.04em; }
#deleteModuleCopy { margin: 16px 0 25px; color: rgba(7,16,29,.64); font: 15px/1.55 Georgia, serif; }
.delete-modal-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.delete-modal-actions button { min-height: 44px; padding: 12px 15px; border: 1px solid rgba(7,16,29,.16); border-radius: 22px; background: transparent; color: var(--ink); font-size: 11px; font-weight: 700; cursor: pointer; }
.delete-modal-actions button:hover, .delete-modal-actions button:focus-visible { border-color: var(--ink); outline: 2px solid rgba(7,16,29,.14); outline-offset: 2px; }
.delete-modal-actions .delete-confirm { border-color: #a84035; background: #a84035; color: white; }
.delete-modal-actions .delete-confirm:hover, .delete-modal-actions .delete-confirm:focus-visible { border-color: #873229; background: #873229; }

@media (max-width: 560px) {
  .plan-sheet { width: calc(100% - 20px); max-height: calc(100svh - 20px); padding: 26px 18px 22px; }
  .plan-sheet .sheet-close { top: 14px; right: 14px; width: 36px; height: 36px; }
  .plan-sheet h2 { padding-right: 26px; font-size: 36px; }
  #planModalCopy { margin: 14px 0 18px; font-size: 13px; }
  .plan-comparison { grid-template-columns: 1fr; }
  .plan-choice { min-height: 0; padding: 13px; }
  .plan-choice strong { margin-top: 10px; font-size: 17px; }
  .delete-sheet { width: calc(100% - 20px); padding: 28px 20px 22px; }
  .delete-sheet h2 { font-size: 36px; }
}

/* Compact beta editor and official video modules */
.organizer-panel { width: min(330px, 100%); padding: 22px 18px; }
.organizer-header { padding-bottom: 16px; }
.organizer-header h2 { margin-top: 5px; font: 700 25px/1.05 Arial, sans-serif; letter-spacing: -.025em; }
.organizer-copy { margin: 0 2px 11px; font: 13px/1.5 Arial, sans-serif; }
.publish-state { margin: 16px 0; padding: 11px 0; }
.brand-control { margin-bottom: 12px; padding: 0; }
.brand-control-heading { margin: 0; padding: 12px; align-items: center; cursor: pointer; list-style: none; }
.brand-control-heading::-webkit-details-marker { display: none; }
.brand-control-heading small { display: flex; align-items: center; gap: 9px; }
.brand-control-heading small span { color: var(--ink); font-size: 15px; letter-spacing: 0; transition: transform .2s; }
.brand-control[open] .brand-control-heading small span { transform: rotate(45deg); }
.brand-control-preview, .brand-control-actions, .brand-control-status { margin-left: 12px; margin-right: 12px; }
.brand-control-preview { margin-top: 0; }
.brand-control-status { margin-bottom: 12px; }
.module-list { gap: 6px; }
.module-item { gap: 8px; padding: 10px; transition: border-color .2s, background .2s; }
.module-item:hover { transform: none; box-shadow: none; }
.module-preview { grid-template-columns: 16px minmax(0,1fr); gap: 8px; }
.module-name strong { font-size: 12px; }
.module-name small { font-size: 9px; }
.module-actions { gap: 4px; }
.module-actions button { width: 34px; height: 34px; border-radius: 0; background: #e8edf2; box-shadow: none; transition: background .15s, color .15s; }
.module-actions button svg { width: 18px; height: 18px; stroke-width: 2.25; }
.module-actions button:hover:not(:disabled), .module-actions button:focus-visible { transform: none; }
.module-actions .module-settings { background: #dceffc; border-color: #c9e5f8; color: #0874c4; }
.module-actions .module-settings:hover, .module-actions .module-settings:focus-visible { background: #cde8fa; border-color: #b8dff7; color: #075e9e; }
.add-module { padding: 12px; }
.module-picker button { padding: 10px 8px; }
.module-editor { padding-top: 16px; }
.editor-heading { margin-top: 22px; padding-bottom: 14px; }
.editor-heading h3 { font: 700 25px/1.1 Arial, sans-serif; }
.editor-copy { margin: 14px 0 19px; font: 13px/1.45 Arial, sans-serif; }
#moduleEditorForm { gap: 14px; }
.editor-field { gap: 5px; }
.editor-field input, .editor-field textarea { padding: 9px 0; font: 15px/1.4 Arial, sans-serif; }
.editor-field textarea { min-height: 70px; }
.editor-done { margin-top: 20px; padding: 13px 15px; }
.editor-media-field input { padding: 10px; border: 1px solid rgba(7,16,29,.15); background: white; font-size: 11px; }

.video-module { background: #03080e; isolation: isolate; }
.video-module-media { position: absolute; inset: 0; z-index: -3; width: 100%; height: 100%; object-fit: cover; }
.video-module-wash { position: absolute; inset: 0; z-index: -2; background: linear-gradient(0deg, rgba(2,8,15,.62), rgba(2,8,15,.12) 54%, rgba(2,8,15,.32)); pointer-events: none; }
.video-module-copy { display: grid; place-content: center; justify-items: center; text-align: center; }
.video-module-copy h2 { max-width: 1100px; font-size: clamp(68px, 10vw, 156px); line-height: .86; }
.video-module-copy > p:last-child { max-width: 590px; margin-top: 24px; color: rgba(255,255,255,.76); font: 18px/1.5 Georgia, serif; }
.video-module .eyebrow.is-empty, .video-gallery-module .eyebrow.is-empty, .countdown-module .eyebrow.is-empty, .people-module .eyebrow.is-empty { display: none; }
.video-gallery-module { background: #07111d; isolation: isolate; }
.video-gallery-backdrop { position: absolute; inset: 0; z-index: -3; overflow: hidden; }
.video-gallery-backdrop video { width: 100%; height: 100%; object-fit: cover; filter: blur(34px) brightness(.32) saturate(.8); transform: scale(1.12); }
.video-gallery-layout { display: grid; grid-template-columns: minmax(240px,.72fr) minmax(0,1.4fr); gap: clamp(30px,5vw,84px); align-items: center; }
.video-gallery-copy h2 { font-size: clamp(54px,6.5vw,106px); line-height: .9; }
.video-gallery-copy > p:last-child { max-width: 480px; margin-top: 22px; color: rgba(255,255,255,.7); font: 17px/1.5 Georgia, serif; }
.video-gallery-grid { height: min(70vh,720px); display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.video-gallery-grid video { width: 100%; height: 100%; min-height: 0; object-fit: cover; background: #02070c; }
.video-gallery-grid video:nth-child(1):nth-last-child(3) { grid-row: span 2; }
.video-gallery-grid video:only-child { grid-column: 1 / -1; grid-row: 1 / -1; }
.universal-overlay { position: absolute; z-index: 8; min-width: 130px; display: grid; gap: 4px; padding: 10px 12px; color: white; text-shadow: 0 1px 18px rgba(0,0,0,.6); }
.universal-overlay span { font-size: 8px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; opacity: .68; }
.universal-overlay strong { font: 16px/1.15 Georgia, serif; }
.universal-overlay[data-overlay-position="top-left"] { top: 92px; left: 26px; }
.universal-overlay[data-overlay-position="top-right"] { top: 92px; right: 26px; text-align: right; }
.universal-overlay[data-overlay-position="bottom-left"] { bottom: 26px; left: 26px; }
.universal-overlay[data-overlay-position="bottom-right"] { right: 26px; bottom: 26px; text-align: right; }
.universal-overlay-button { min-width: 0; padding: 11px 15px; border: 1px solid rgba(255,255,255,.65); background: rgba(4,12,22,.32); color: white; font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; text-decoration: none; backdrop-filter: blur(12px); }
.universal-overlay-audio { --audio-accent: #5bddff; --audio-accent-2: #ffd166; min-width: 0; width: auto; padding: 0; display: block; overflow: visible; color: #fff; text-align: left !important; text-shadow: none; }
.audio-corner-shell { position: relative; z-index: 2; width: 56px; height: 56px; padding: 5px; border: 0; border-radius: 30px; display: flex; align-items: center; gap: 8px; background: rgba(255,255,255,.035); box-shadow: none; -webkit-backdrop-filter: blur(20px) saturate(1.18); backdrop-filter: blur(20px) saturate(1.18); overflow: hidden; transition: width .42s cubic-bezier(.2,.8,.2,1), background .25s ease; }
.universal-overlay-audio[data-overlay-position$="right"] .audio-corner-shell { flex-direction: row-reverse; }
.audio-play-toggle { position: relative; flex: 0 0 44px; width: 44px; height: 44px; padding: 0; border: 0; border-radius: 50%; display: grid; place-items: center; background: var(--audio-accent); color: #04121f; box-shadow: 0 0 0 1px rgba(255,255,255,.35), 0 0 24px color-mix(in srgb, var(--audio-accent) 46%, transparent); cursor: pointer; transition: transform .22s ease, background .22s ease, box-shadow .22s ease; }
.audio-play-toggle:hover:not(:disabled), .audio-play-toggle:focus-visible:not(:disabled) { transform: scale(1.06); outline: 2px solid white; outline-offset: 3px; }
.audio-play-toggle:disabled { background: #65717d; color: rgba(255,255,255,.72); box-shadow: none; cursor: default; }
.audio-play-toggle svg { position: absolute; width: 20px; height: 20px; fill: currentColor; stroke: currentColor; stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; transition: opacity .18s ease, transform .24s ease; }
.audio-play-icon { transform: translateX(1px) scale(1); }
.audio-pause-icon { opacity: 0; transform: scale(.65); fill: none !important; }
.audio-corner-transport { width: 132px; min-width: 0; opacity: 0; pointer-events: none; transform: translateX(-8px); transition: opacity .2s ease .06s, transform .3s ease .05s; }
.universal-overlay-audio[data-overlay-position$="right"] .audio-corner-transport { transform: translateX(8px); }
.audio-corner-title { display: block; margin: 0 2px 2px; overflow: hidden; color: rgba(255,255,255,.72); font: 700 7px/1.1 Arial,sans-serif; letter-spacing: .09em; text-overflow: ellipsis; text-transform: uppercase; white-space: nowrap; }
.audio-wave-seek { position: relative; width: 132px; height: 28px; }
.audio-wave-seek svg { position: absolute; inset: 2px 0; width: 100%; height: 24px; overflow: visible; }
.audio-wave-seek path { fill: none; stroke-linecap: round; stroke-width: 1.7; vector-effect: non-scaling-stroke; }
.audio-wave-base { stroke: rgba(255,255,255,.2); }
.audio-wave-progress { stroke: var(--audio-accent); filter: drop-shadow(0 0 5px var(--audio-accent)); }
.audio-wave-seek input { position: absolute; inset: 0; width: 100%; height: 28px; margin: 0; opacity: .01; cursor: pointer; }
.audio-wave-seek::after { content: ''; position: absolute; top: 50%; left: var(--audio-progress, 0%); width: 7px; height: 7px; border: 2px solid #fff; border-radius: 50%; background: var(--audio-accent); box-shadow: 0 0 10px var(--audio-accent); transform: translate(-50%,-50%); pointer-events: none; }
.audio-volume-control { width: 62px; flex: 0 0 62px; display: flex; align-items: center; gap: 4px; opacity: 0; pointer-events: none; transform: translateX(-7px); transition: opacity .2s ease .1s, transform .3s ease .08s; }
.audio-volume-control svg { width: 16px; height: 16px; flex: 0 0 16px; fill: none; stroke: rgba(255,255,255,.68); stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.audio-volume-control input { width: 42px; height: 18px; margin: 0; accent-color: var(--audio-accent); cursor: pointer; }
.audio-corner-shell audio { display: none; }
.universal-overlay-audio.is-playing .audio-corner-shell { width: 322px; background: rgba(255,255,255,.045); }
.universal-overlay-audio.is-playing .audio-play-toggle { background: #fff; color: #071628; }
.universal-overlay-audio.is-playing .audio-play-icon { opacity: 0; transform: translateX(1px) scale(.65); }
.universal-overlay-audio.is-playing .audio-pause-icon { opacity: 1; transform: scale(1); }
.universal-overlay-audio.is-playing .audio-corner-transport, .universal-overlay-audio.is-playing .audio-volume-control { opacity: 1; pointer-events: auto; transform: translateX(0); }
.universal-overlay-audio.is-playing .audio-wave-progress { animation: audio-wave-breathe .72s ease-in-out infinite alternate; }
.audio-particle-field { position: absolute; z-index: 1; width: 360px; height: 210px; left: -26px; top: -26px; overflow: visible; pointer-events: none; }
.universal-overlay-audio[data-overlay-position$="right"] .audio-particle-field { right: -26px; left: auto; }
.universal-overlay-audio[data-overlay-position^="bottom"] .audio-particle-field { top: auto; bottom: -26px; }
@keyframes audio-wave-breathe { to { stroke-width: 2.6; filter: drop-shadow(0 0 9px var(--audio-accent)); } }
.audio-tool-editor .tools-upload { margin-bottom: 8px; }
.audio-tool-remove { width: 100%; min-height: 34px; margin: 0 0 12px; border: 1px solid rgba(166,63,54,.24); background: #fff; color: #9b3e37; font: 700 9px/1 Arial,sans-serif; cursor: pointer; }
.audio-tool-selects { margin-top: 12px; display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.audio-tool-selects label, .audio-tool-volume-editor > span { color: #4d5b6a; font: 800 8px/1.3 Arial,sans-serif; letter-spacing: .09em; text-transform: uppercase; }
.audio-tool-selects select { width: 100%; height: 36px; margin-top: 6px; padding: 0 8px; border: 1px solid rgba(7,22,40,.16); background: #fff; color: #102033; font: 600 10px/1 Arial,sans-serif; }
.audio-tool-volume-editor { margin-top: 15px; display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 6px 10px; }
.audio-tool-volume-editor output { color: #087dce; font: 800 9px/1 Arial,sans-serif; }
.audio-tool-volume-editor input { grid-column: 1 / -1; width: 100%; accent-color: #1497ed; }
.audio-tool-checks { margin-top: 13px; display: grid; gap: 7px; }
.audio-tool-checks label { min-height: 38px; padding: 9px 10px; border: 1px solid rgba(7,22,40,.12); display: flex; align-items: center; gap: 9px; background: #fff; color: #172536; font: 600 10px/1.35 Arial,sans-serif; }
.audio-tool-checks input { width: 16px; height: 16px; accent-color: #1497ed; }
.audio-tool-note { margin: 12px 0 0; color: #667585; font: italic 11px/1.45 Georgia,serif; }
.audio-tool-quota { margin-top: 15px; padding-top: 14px; border-top: 1px solid rgba(7,22,40,.1); }
.cover-editor-canvas > .universal-overlay-audio[data-overlay-position$="right"] { right: 380px; }
.cover-editor-canvas > .universal-overlay-audio[data-overlay-position$="left"] { left: 26px; }
.cover-editor-canvas > .universal-overlay-audio[data-overlay-position^="top"] { top: 104px; }
.cover-editor-canvas > .universal-overlay-audio[data-overlay-position^="bottom"] { bottom: 26px; }
.photo-module:has(> .universal-overlay[data-overlay-position="top-left"]) .photo-caption[data-photo-caption-position="top-left"] { top: 176px; }
.photo-module:has(> .universal-overlay[data-overlay-position="top-right"]) .photo-caption[data-photo-caption-position="top-right"] { top: 176px; }
.photo-module:has(> .universal-overlay[data-overlay-position="bottom-left"]) .photo-caption[data-photo-caption-position="bottom-left"] { bottom: 112px; }
.photo-module:has(> .universal-overlay[data-overlay-position="bottom-right"]) .photo-caption[data-photo-caption-position="bottom-right"] { bottom: 112px; }
.overlay-editor-tools { margin-top: 4px; padding: 0; border-top: 1px solid rgba(7,16,29,.14); border-bottom: 1px solid rgba(7,16,29,.14); }
.overlay-editor-tools > summary { display: flex; justify-content: space-between; padding: 13px 0; color: var(--ink); font-size: 11px; font-weight: 700; cursor: pointer; list-style: none; }
.overlay-editor-tools > summary::-webkit-details-marker { display: none; }
.overlay-editor-tools > summary span { font-size: 16px; font-weight: 400; }
.overlay-editor-tools[open] > summary span { transform: rotate(45deg); }
.overlay-editor-grid { display: grid; gap: 12px; padding: 2px 0 15px; }
.overlay-toggle { display: flex; align-items: center; gap: 9px; font-size: 12px; }
.overlay-corner-field { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 10px; color: rgba(7,16,29,.56); font-size: 9px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.overlay-corner-field select { padding: 7px 8px; border: 1px solid rgba(7,16,29,.16); background: white; color: var(--ink); font-size: 11px; }

@media (max-width: 760px) {
  .video-module-copy h2 { font-size: clamp(58px,17vw,102px); }
  .video-module-copy > p:last-child { padding: 0 20px; font-size: 15px; }
  .video-gallery-layout { grid-template-columns: 1fr; align-content: center; gap: 24px; padding-top: 92px; padding-bottom: 88px; }
  .video-gallery-copy h2 { font-size: clamp(48px,14vw,76px); }
  .video-gallery-copy > p:last-child { font-size: 14px; }
  .video-gallery-grid { height: 44vh; min-height: 300px; }
  .universal-overlay { min-width: 110px; padding: 8px; }
  .universal-overlay[data-overlay-position="top-left"] { top: 78px; left: 12px; }
  .universal-overlay[data-overlay-position="top-right"] { top: 78px; right: 12px; }
  .universal-overlay[data-overlay-position="bottom-left"] { bottom: 16px; left: 12px; }
  .universal-overlay[data-overlay-position="bottom-right"] { right: 12px; bottom: 16px; }
  .universal-overlay-audio { min-width: 0; padding: 0; }
  .universal-overlay-audio.is-playing .audio-corner-shell { width: min(232px, calc(100vw - 24px)); }
  .audio-corner-transport, .audio-wave-seek { width: 86px; }
  .audio-corner-title { display: none; }
  .audio-volume-control { width: 44px; flex-basis: 44px; }
  .audio-volume-control svg { width: 14px; height: 14px; flex-basis: 14px; }
  .audio-volume-control input { width: 26px; }
  .cover-editor-canvas > .universal-overlay-audio[data-overlay-position$="right"] { right: 12px; }
  .cover-editor-canvas > .universal-overlay-audio[data-overlay-position$="left"] { left: 12px; }
  .chapter:has(> .universal-overlay-audio.is-playing[data-overlay-position^="bottom"]) > .universal-overlay:not(.universal-overlay-audio)[data-overlay-position^="bottom"] { bottom: 86px; }
  .chapter:has(> .universal-overlay-audio.is-playing[data-overlay-position^="top"]) > .universal-overlay:not(.universal-overlay-audio)[data-overlay-position^="top"] { top: 148px; }
  .photo-module:has(> .universal-overlay-audio.is-playing[data-overlay-position^="bottom"]) .photo-caption[data-photo-caption-position^="bottom"] { bottom: 184px; }
  .photo-module:has(> .universal-overlay-audio.is-playing[data-overlay-position^="top"]) .photo-caption[data-photo-caption-position^="top"] { top: 220px; }
}

/* QR corner tool and physical-page export studio. */
.universal-overlay-qr { min-width: 0; width: 112px; padding: 7px; border: 1px solid rgba(255,255,255,.76); border-radius: 13px; gap: 5px; background: rgba(255,255,255,.96); color: var(--ink); text-align: left !important; text-decoration: none; text-shadow: none; box-shadow: 0 14px 38px rgba(1,7,14,.28), inset 0 1px 0 white; backdrop-filter: blur(16px); transition: transform .2s ease, box-shadow .2s ease; }
.universal-overlay-qr:hover, .universal-overlay-qr:focus-visible { transform: translateY(-2px); outline: 2px solid white; outline-offset: 3px; box-shadow: 0 18px 46px rgba(1,7,14,.36), 0 0 0 2px var(--blue); }
.qr-code-svg { display: block; width: 100%; aspect-ratio: 1; overflow: visible; }
.qr-code-svg .qr-code-paper, .qr-code-svg .qr-logo-quiet { fill: #fff; }
.qr-code-svg > rect:not(.qr-code-paper):not(.qr-logo-quiet), .qr-code-svg > circle { fill: #061628; }
.qr-code-svg image { clip-path: inset(0 round 1.4px); }
.qr-visible-link { display: block; max-width: 100%; padding: 0 3px 2px; overflow: hidden; color: #203246; font: 700 7px/1.25 Arial,sans-serif !important; letter-spacing: .025em !important; opacity: .72 !important; text-overflow: ellipsis; text-transform: none !important; white-space: nowrap; }
.qr-code-empty { position: relative; width: 98px; aspect-ratio: 1; border: 1px dashed rgba(7,22,40,.35); display: grid; place-items: center; background: repeating-linear-gradient(45deg,#fff 0 8px,#eef3f7 8px 9px); }
.qr-code-empty i { position: absolute; width: 18px; height: 18px; border: 4px solid #071628; }
.qr-code-empty i:nth-child(1) { top: 10px; left: 10px; }
.qr-code-empty i:nth-child(2) { top: 10px; right: 10px; }
.qr-code-empty i:nth-child(3) { bottom: 10px; left: 10px; }
.qr-code-empty i:nth-child(4) { right: 19px; bottom: 19px; width: 8px; height: 8px; border-width: 3px; }
.qr-code-empty b { color: #0874c4; font: 800 10px/1 Arial,sans-serif; letter-spacing: .16em; }
.qr-tool-editor .structured-field { margin-bottom: 12px; }
.qr-tool-row { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; align-items: end; }
.qr-tool-row > label { display: grid; gap: 6px; color: #4d5b6a; font: 800 8px/1.3 Arial,sans-serif; letter-spacing: .09em; text-transform: uppercase; }
.qr-tool-row select { width: 100%; height: 38px; padding: 0 8px; border: 1px solid rgba(7,22,40,.16); background: #fff; color: #102033; font: 600 10px/1 Arial,sans-serif; }
.qr-tool-row .qr-show-link { min-height: 38px; padding: 8px 9px; border: 1px solid rgba(7,22,40,.12); grid-template-columns: auto 1fr; align-items: center; gap: 7px; background: #fff; color: #172536; font-size: 9px; letter-spacing: 0; text-transform: none; }
.qr-show-link input { width: 15px; height: 15px; margin: 0; accent-color: var(--blue); }
.qr-tool-remove { width: 100%; min-height: 34px; margin: 0 0 9px; border: 1px solid rgba(166,63,54,.24); background: #fff; color: #9b3e37; font: 700 9px/1 Arial,sans-serif; cursor: pointer; }
.qr-tool-status { margin: 10px 0 0; padding-left: 14px; position: relative; color: #9a5634; font: 700 9px/1.4 Arial,sans-serif; }
.qr-tool-status::before { content: ''; position: absolute; left: 0; top: 4px; width: 7px; height: 7px; border-radius: 50%; background: #d18b46; }
.qr-tool-status.is-ready { color: #27704c; }
.qr-tool-status.is-ready::before { background: #35a36c; box-shadow: 0 0 0 3px rgba(53,163,108,.13); }
.qr-tool-note { margin: 9px 0 0; color: #667585; font: italic 11px/1.45 Georgia,serif; }
.cover-editor-canvas > .universal-overlay-qr[data-overlay-position$="right"] { right: 380px; }
.cover-editor-canvas > .universal-overlay-qr[data-overlay-position$="left"] { left: 26px; }
.cover-editor-canvas > .universal-overlay-qr[data-overlay-position^="top"] { top: 104px; }
.cover-editor-canvas > .universal-overlay-qr[data-overlay-position^="bottom"] { bottom: 26px; }

.editor-print-dock { position: fixed; z-index: 130; top: 15px; right: 198px; bottom: auto; left: auto; min-width: 158px; min-height: 48px; padding: 7px 14px 7px 9px; border: 1px solid rgba(255,255,255,.28); border-radius: 25px; display: none; grid-template-columns: 32px 1fr; align-items: center; gap: 8px; background: rgba(7,22,40,.52); color: #fff; box-shadow: inset 0 1px 0 rgba(255,255,255,.1); backdrop-filter: blur(18px); cursor: pointer; transition: border-color .2s, background .2s, transform .2s, opacity .2s; }
.has-open-visual-editor .editor-print-dock { display: grid; }
.is-print-studio-open .editor-print-dock { opacity: 0; pointer-events: none; }
.editor-print-dock:hover, .editor-print-dock:focus-visible { border-color: #72ceff; background: rgba(7,22,40,.82); outline: 2px solid rgba(114,206,255,.35); outline-offset: 3px; transform: translateY(-1px); }
.editor-print-dock svg { width: 30px; height: 30px; padding: 7px; border-radius: 50%; background: var(--blue); fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.editor-print-dock span { display: grid; gap: 2px; text-align: left; }
.editor-print-dock strong { font: 800 10px/1.1 Arial,sans-serif; letter-spacing: .08em; text-transform: uppercase; }
.editor-print-dock small { color: rgba(255,255,255,.58); font: 11px/1.1 Georgia,serif; }

.print-export-modal { position: fixed; z-index: 1000; inset: 0; visibility: hidden; opacity: 0; background: #07101b; isolation: isolate; transition: opacity .22s ease, visibility .22s; }
.print-export-modal[hidden] { display: none; }
.print-export-modal.is-open { visibility: visible; opacity: 1; }
.print-export-backdrop { position: absolute; inset: 0; width: 100%; border: 0; background: rgba(1,7,14,.78); backdrop-filter: blur(16px); }
.print-export-studio { position: absolute; z-index: 1; inset: 24px; max-width: 1380px; margin: auto; border: 1px solid rgba(255,255,255,.16); display: grid; grid-template-rows: auto minmax(0,1fr) auto; background: #eef1f4; color: var(--ink); box-shadow: 0 36px 100px rgba(0,0,0,.48); transform: translateY(16px) scale(.985); transition: transform .3s var(--ease); overflow: hidden; }
.print-export-modal.is-open .print-export-studio { transform: none; }
.print-export-studio > header { min-height: 78px; padding: 15px 22px 14px 25px; display: flex; align-items: center; justify-content: space-between; gap: 20px; background: #071628; color: white; }
.print-export-studio > header p { margin: 0 0 5px; color: #73ccff; font: 800 8px/1 Arial,sans-serif; letter-spacing: .2em; }
.print-export-studio > header h2 { margin: 0; font: 30px/.95 Georgia,serif; letter-spacing: -.035em; }
.print-export-studio > header button { width: 42px; height: 42px; border: 1px solid rgba(255,255,255,.25); border-radius: 50%; background: transparent; color: white; cursor: pointer; font-size: 25px; }
.print-export-workspace { min-height: 0; display: grid; grid-template-columns: 280px minmax(0,1fr); }
.print-export-controls { min-height: 0; padding: 23px; border-right: 1px solid rgba(7,22,40,.12); display: grid; align-content: start; gap: 19px; background: #f8f9fa; overflow-y: auto; }
.print-export-controls > label:not(.print-export-switch), .print-export-qr-control { display: grid; gap: 7px; }
.print-export-controls > label > span, .print-export-qr-control > span, .print-export-size > span { color: #536273; font: 800 8px/1 Arial,sans-serif; letter-spacing: .14em; text-transform: uppercase; }
.print-export-controls select { width: 100%; height: 43px; padding: 0 10px; border: 1px solid rgba(7,22,40,.16); border-radius: 0; background: white; color: var(--ink); font: 700 11px/1 Arial,sans-serif; }
.print-export-switch { min-height: 64px; padding: 12px; border: 1px solid rgba(7,22,40,.11); display: grid; grid-template-columns: auto 1fr; gap: 10px; align-items: start; background: white; }
.print-export-switch input { width: 17px; height: 17px; margin: 1px 0 0; accent-color: var(--blue); }
.print-export-switch span { display: grid; gap: 4px; }
.print-export-switch strong { font: 700 10px/1.2 Arial,sans-serif; }
.print-export-switch small, .print-export-qr-control small, .print-export-size small { color: #687687; font: 11px/1.4 Georgia,serif; }
.print-export-qr-control[hidden] { display: none; }
.print-export-qr-control > span { display: flex; align-items: center; justify-content: space-between; }
.print-export-qr-control output { color: #0874c4; font: 800 9px/1 Arial,sans-serif; letter-spacing: 0; }
.print-export-qr-control input { width: 100%; accent-color: var(--blue); }
.print-export-size { padding-top: 16px; border-top: 1px solid rgba(7,22,40,.1); display: grid; gap: 6px; }
.print-export-size strong { font: 700 11px/1.35 Arial,sans-serif; }
.print-export-preview { min-width: 0; min-height: 0; padding: 28px; display: grid; place-items: center; background: #d9dee3; overflow: auto; }
.print-export-sheet { --print-qr-scale: 1; position: relative; width: min(100%, 900px); max-height: 100%; background: white; box-shadow: 0 18px 58px rgba(7,22,40,.28); overflow: hidden; isolation: isolate; }
.print-export-sheet[data-orientation="portrait"] { width: min(72%, 620px); }
.print-export-sheet .print-source-page { position: relative !important; inset: auto !important; width: 100% !important; height: 100% !important; min-height: 0 !important; max-height: none !important; padding-right: clamp(22px,5vw,76px) !important; overflow: hidden !important; transform: none !important; opacity: 1 !important; }
.print-export-sheet .print-source-page > .chapter-inner, .print-export-sheet .print-source-page .chapter-inner { width: 100%; height: 100%; min-height: 0 !important; }
.print-export-sheet .cover-editor-canvas.print-source-page, .print-export-sheet .gallery-editor-canvas.print-source-page, .print-export-sheet .announcement-editor-canvas.print-source-page { padding: clamp(22px,5vw,76px) !important; }
.print-export-sheet .cover-editor-preview { max-width: 82%; }
.print-export-sheet .cover-editor-widget[data-cover-position$="right"] { right: 3.5% !important; }
.print-export-sheet .cover-editor-widget[data-cover-position$="left"] { left: 3.5% !important; }
.print-export-sheet .cover-editor-widget[data-cover-position^="top"] { top: 7% !important; }
.print-export-sheet .cover-editor-widget[data-cover-position^="bottom"] { bottom: 4% !important; }
.print-export-sheet .announcement-editor-hint, .print-export-sheet .announcement-editor-demo, .print-export-sheet .audio-particle-field, .print-export-sheet .universal-overlay-audio, .print-export-sheet video[controls] { display: none !important; }
.print-export-sheet .universal-overlay-qr { width: clamp(94px,14%,150px); max-width: 46%; transform: scale(var(--print-qr-fitted-scale,var(--print-qr-scale))); box-shadow: 0 8px 24px rgba(1,7,14,.18); }
.print-export-sheet .universal-overlay-qr:hover { transform: scale(var(--print-qr-fitted-scale,var(--print-qr-scale))); }
.print-export-sheet .universal-overlay-qr[data-overlay-position="top-left"] { transform-origin: top left; }
.print-export-sheet .universal-overlay-qr[data-overlay-position="top-right"] { transform-origin: top right; }
.print-export-sheet .universal-overlay-qr[data-overlay-position="bottom-left"] { transform-origin: bottom left; }
.print-export-sheet .universal-overlay-qr[data-overlay-position="bottom-right"] { transform-origin: bottom right; }
.print-export-sheet .universal-overlay-qr[data-overlay-position^="top"] { top: 4% !important; }
.print-export-sheet .universal-overlay-qr[data-overlay-position^="bottom"] { bottom: 4% !important; }
.print-export-sheet .universal-overlay-qr[data-overlay-position$="left"] { left: 3.5% !important; }
.print-export-sheet .universal-overlay-qr[data-overlay-position$="right"] { right: 3.5% !important; }
.print-export-sheet:not(.is-paper-white) .print-source-page.print-source-light-ink { color: #fff !important; }
.print-export-sheet:not(.is-paper-white) .print-source-page.print-source-dark-ink { color: var(--ink) !important; }
.print-export-sheet.is-paper-white .print-source-page { background: #fff !important; color: var(--ink) !important; }
.print-export-sheet.is-paper-white .print-source-page *, .print-export-sheet.is-paper-white .print-source-page [data-edit] { color: var(--ink) !important; text-shadow: none !important; }
.print-export-sheet.is-paper-white :is(.announcement-background,.announcement-editor-background,.cover-official-background,.cover-editor-background,.paragraph-blur-background,.countdown-background,.people-background,.accessibility-background,.gallery-module-background,.gallery-editor-background,.video-module-media,.video-gallery-backdrop,.photo-module-image) { display: none !important; }
.print-export-sheet.is-paper-white :is(.announcement-wash,.announcement-editor-wash,.cover-official-wash,.cover-editor-wash,.photo-module-wash,.video-module-wash,.countdown-wash,.people-wash,.accessibility-wash,.gallery-module-wash,.gallery-editor-wash) { display: none !important; }
.print-export-sheet.is-paper-white .universal-overlay-button, .print-export-sheet.is-paper-white .cover-editor-button { border-color: rgba(7,22,40,.55) !important; background: #fff !important; color: var(--ink) !important; }
.print-export-studio > footer { min-height: 72px; padding: 13px 20px 13px 25px; border-top: 1px solid rgba(7,22,40,.12); display: flex; align-items: center; justify-content: space-between; gap: 18px; background: #fff; }
.print-export-studio > footer p { margin: 0; color: #647282; font: 11px/1.35 Georgia,serif; }
.print-export-studio > footer div { display: flex; gap: 8px; }
.print-export-studio > footer button { min-height: 42px; padding: 0 18px; border: 1px solid rgba(7,22,40,.17); background: #fff; color: var(--ink); cursor: pointer; font: 800 9px/1 Arial,sans-serif; letter-spacing: .08em; text-transform: uppercase; }
.print-export-studio > footer button:disabled { opacity: .5; cursor: wait; }
.print-export-studio > footer .print-export-primary { min-width: 156px; border-color: var(--blue); background: var(--blue); color: white; }
.print-export-primary span { padding-left: 18px; font-size: 16px; }

@media (max-width: 900px) {
  .cover-editor-canvas > .universal-overlay-qr[data-overlay-position$="right"] { right: 12px; }
  .cover-editor-canvas > .universal-overlay-qr[data-overlay-position$="left"] { left: 12px; }
  .editor-print-dock { top: 11px; right: 184px; bottom: auto; left: auto; min-width: 0; width: 46px; min-height: 46px; padding: 8px; grid-template-columns: 1fr; }
  .editor-print-dock span { display: none; }
  .print-export-studio { inset: 10px; }
  .print-export-workspace { grid-template-columns: 230px minmax(0,1fr); }
  .print-export-preview { padding: 16px; }
}

@media (max-width: 680px) {
  .universal-overlay-qr { width: 88px; padding: 5px; border-radius: 10px; }
  .qr-visible-link { font-size: 6px !important; }
  .print-export-studio { inset: 0; }
  .print-export-studio > header { min-height: 66px; padding: 11px 14px; }
  .print-export-studio > header h2 { font-size: 23px; }
  .print-export-workspace { grid-template-columns: 1fr; grid-template-rows: auto minmax(240px,1fr); overflow-y: auto; }
  .print-export-controls { padding: 14px; border-right: 0; border-bottom: 1px solid rgba(7,22,40,.12); grid-template-columns: 1fr 1fr; gap: 12px; overflow: visible; }
  .print-export-switch, .print-export-qr-control, .print-export-size { grid-column: 1 / -1; }
  .print-export-preview { min-height: 300px; }
  .print-export-sheet[data-orientation="portrait"] { width: min(76%, 420px); }
  .print-export-studio > footer { min-height: 64px; padding: 10px 12px; }
  .print-export-studio > footer p { display: none; }
  .print-export-studio > footer div { width: 100%; }
  .print-export-studio > footer button { flex: 1; padding: 0 10px; }
}

@media (max-width: 520px) {
  .editor-print-dock { right: 120px; }
  .has-open-visual-editor .announcement-editor-identity { visibility: hidden; }
}

/* Clear the module corners for optional information. */
.scroll-cue { left: 50%; bottom: 25px; transform: translateX(-50%); }
.zip-control { display: grid; gap: 7px; margin-top: 13px; }
.zip-control > label { color: rgba(7,16,29,.56); font-size: 8px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.zip-control > div { display: grid; grid-template-columns: 1fr auto; }
.zip-control input { position: static; width: 100%; min-width: 0; padding: 9px 10px; border: 1px solid rgba(7,16,29,.18); border-radius: 0; background: white; color: var(--ink); font-size: 12px; opacity: 1; }
.zip-control button { padding: 0 12px; border: 0; border-radius: 0; background: var(--blue); color: white; font-size: 9px; font-weight: 700; text-transform: uppercase; cursor: pointer; }
.zip-control button:disabled { opacity: .55; cursor: wait; }
.zip-control small { min-height: 13px; color: rgba(7,16,29,.52); font-size: 9px; }
.overlay-zip-status { color: rgba(7,16,29,.52); font-size: 9px; line-height: 1.35; }
@media (max-width: 760px) {
  .scroll-cue { left: 50%; bottom: 18px; width: 112px; flex-direction: column; gap: 4px; align-items: center; transform: translateX(-50%); white-space: nowrap; }
  .scroll-cue svg { width: 18px; height: 18px; }
  .cover-widget[data-cover-position="bottom-left"], .cover-widget[data-cover-position="bottom-right"] { min-width: 0; max-width: 108px; }
  .cover-widget[data-cover-position="bottom-left"] strong, .cover-widget[data-cover-position="bottom-right"] strong { overflow-wrap: anywhere; }
}
@media (max-height: 500px) and (min-width: 761px) {
  .cover-official-layout { min-height: 100svh; padding: 82px 22px 54px; }
  .cover-official-content h1 { font-size: clamp(64px, 11vw, 94px); }
  .cover-official-content .eyebrow { margin-bottom: 12px; }
  .cover-official-date { margin-top: 12px; }
  .scroll-cue { bottom: 13px; }
}

/* Unified corner tools and official editor actions. */
.organizer-header button { display: grid; place-items: center; padding: 0; border-color: var(--blue); background: var(--blue); color: white; font: 300 22px/1 Arial, sans-serif; box-shadow: 0 8px 22px rgba(36,152,237,.24); }
.organizer-header button:hover, .organizer-header button:focus-visible { background: #0874c4; border-color: #0874c4; }
.announcement-editor-save { background: var(--blue); color: white; box-shadow: 0 10px 26px rgba(36,152,237,.25); }
.announcement-editor-save:hover, .announcement-editor-save:focus-visible { background: #0874c4; color: white; }
.cover-widget-button, .cover-editor-button { min-width: 0; padding: 11px 15px; border: 1px solid rgba(255,255,255,.7); background: rgba(4,12,22,.34); color: white; font: 700 10px/1 Arial,sans-serif; letter-spacing: .1em; text-decoration: none; text-transform: uppercase; backdrop-filter: blur(12px); }
.chapter-cover.has-dark-cover-text .cover-widget-button, .cover-editor-canvas.has-dark-cover-text .cover-editor-button { border-color: rgba(7,16,29,.62); background: rgba(255,255,255,.34); color: var(--ink); }
.cover-widget-button[hidden], .cover-editor-button[hidden] { display: none; }
.cover-extra-inputs { display: grid; grid-template-columns: 1fr 1fr; gap: 7px; margin: 3px 0 10px; }
.cover-extra-inputs label { display: grid; gap: 5px; color: rgba(7,16,29,.55); font-size: 8px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.cover-extra-inputs input { position: static; width: 100%; min-width: 0; padding: 8px; border: 1px solid rgba(7,16,29,.16); border-radius: 0; background: white; color: var(--ink); font-size: 10px; opacity: 1; }
.gallery-editor-canvas { padding: 112px clamp(24px,7vw,110px) 60px; }
.gallery-editor-layout { width: 100%; min-height: calc(100svh - 172px); }
.story-progress { opacity: 0; pointer-events: none; transform: translate(-8px,-50%); transition: opacity .45s ease, transform .45s var(--ease); }
.story-progress.is-visible { opacity: 1; transform: translate(0,-50%); }

@media (max-width: 900px) {
  .gallery-editor-canvas { padding: 84px 18px 262px; }
  .cover-extra-inputs { grid-template-columns: 1fr; }
}

/* One Cover-style visual editing framework for every official module. */
.official-editor-page { overflow: clip; background: #06111f; }
.official-editor-canvas { position: absolute; inset: 0 365px 0 0; overflow: clip; background: #06111f; }
.official-editor-preview { width: 100%; min-height: 100svh; scroll-snap-align: none; }
.official-editor-preview .reveal { opacity: 1; transform: none; }
.official-editor-preview [contenteditable="true"] { position: relative; min-width: .55em; border-radius: 3px; outline: 1px dashed transparent; outline-offset: 8px; cursor: text; transition: outline-color .18s, background .18s, box-shadow .18s; }
.official-editor-preview [contenteditable="true"]:hover { outline-color: rgba(255,255,255,.58); }
.official-editor-preview [contenteditable="true"]:focus { outline: 1px solid white; background: rgba(4,18,32,.18); box-shadow: 0 0 0 7px rgba(255,255,255,.07); }
.official-editor-preview [contenteditable="true"]:empty::before { content: 'Type here'; color: rgba(255,255,255,.42); }
.official-editor-preview [data-edit="kicker"] { white-space: nowrap; }
.official-editor-tools { top: 94px; }
.official-editor-tools .tools-help.compact { margin-bottom: 12px; font-size: 12px; }
.rail-color-options { margin-bottom: 12px; }
.official-background-thumbnails { margin-top: 4px; }
.cover-background-thumbnails { grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: 4px; }
.cover-color-options [data-cover-color].is-selected, .cover-background-thumbnails [data-cover-image].is-selected { outline: 2px solid var(--blue); outline-offset: 2px; }
.paragraph-image-options { grid-template-columns: repeat(3, 1fr); }
.official-background-thumbnails button:last-child { display: grid; place-items: center; color: var(--ink); font-size: 9px; font-weight: 700; text-transform: uppercase; }
.paragraph-blur-choice { width: 100%; min-height: 54px; padding: 10px 12px; border: 1px solid rgba(7,16,29,.14); background: white; color: var(--ink); display: grid; gap: 3px; text-align: left; cursor: pointer; }
.paragraph-blur-choice span { font-size: 10px; font-weight: 700; }
.paragraph-blur-choice small { color: rgba(7,16,29,.55); font: 11px/1.35 Georgia, serif; }
.paragraph-blur-choice.is-selected { border-color: var(--blue); background: rgba(36,152,237,.09); color: #0874c4; }
.paragraph-blur-choice:disabled { opacity: .42; cursor: not-allowed; }
.official-corner-list { gap: 8px; }
.video-slot-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 7px; }
.video-slot { position: relative; min-width: 0; }
.video-slot label { min-width: 0; display: grid; gap: 5px; cursor: pointer; }
.video-slot-frame { aspect-ratio: 16 / 10; border: 1px solid rgba(7,16,29,.14); background: #dbe3ea; display: grid; place-items: center; overflow: hidden; transition: border-color .18s, box-shadow .18s; }
.video-slot label:hover .video-slot-frame, .video-slot label:focus-within .video-slot-frame { border-color: var(--blue); box-shadow: 0 0 0 2px rgba(36,152,237,.12); }
.video-slot video { width: 100%; height: 100%; object-fit: cover; background: #07111d; }
.video-slot-empty { color: #0874c4; font: 300 25px/1 Arial, sans-serif; }
.video-slot-label { overflow: hidden; color: rgba(7,16,29,.58); font-size: 8px; font-weight: 700; letter-spacing: .04em; text-overflow: ellipsis; text-transform: uppercase; white-space: nowrap; }
.video-slot input { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.video-slot > button { position: absolute; top: 4px; right: 4px; width: 23px; height: 23px; padding: 0; border: 0; border-radius: 50%; background: rgba(3,10,19,.78); color: white; cursor: pointer; font-size: 15px; line-height: 1; backdrop-filter: blur(8px); }
.video-slot > button:hover, .video-slot > button:focus-visible { background: #ba493c; outline: 2px solid white; }
.video-slot-status { margin: 11px 0 0; color: rgba(7,16,29,.55); font-size: 9px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.official-editor-preview .universal-overlay[data-overlay-position="top-right"], .official-editor-preview .universal-overlay[data-overlay-position="bottom-right"] { right: 26px; }

@media (min-width: 901px) {
  .official-editor-preview { width: var(--official-source-width, 100vw); min-height: var(--official-source-height, 100svh); transform: scale(var(--official-preview-scale, 1)); transform-origin: top left; }
  .official-editor-preview .chapter-inner { min-height: var(--official-source-height, 100svh); }
  .official-editor-preview .universal-overlay[data-overlay-position="top-left"] { top: var(--official-corner-top, 92px); left: var(--official-corner-side, 26px); }
  .official-editor-preview .universal-overlay[data-overlay-position="top-right"] { top: var(--official-corner-top, 92px); right: var(--official-corner-side, 26px); }
  .official-editor-preview .universal-overlay[data-overlay-position="bottom-left"] { bottom: var(--official-corner-bottom, 84px); left: var(--official-corner-side, 26px); }
  .official-editor-preview .universal-overlay[data-overlay-position="bottom-right"] { right: var(--official-corner-side, 26px); bottom: var(--official-corner-bottom, 84px); }
  .official-editor-preview .photo-caption[data-photo-caption-position="top-left"], .official-editor-preview .photo-caption[data-photo-caption-position="top-right"] { top: var(--official-photo-caption-top, 136px); }
}

.announcement.has-light-background { color: var(--ink); }
.announcement.has-light-background .universal-overlay { color: var(--ink); text-shadow: none; }
.announcement.has-light-background .universal-overlay-button { border-color: rgba(7,16,29,.55); background: rgba(255,255,255,.24); color: var(--ink); }
.official-editor-preview.announcement.has-light-background [contenteditable="true"]:hover { outline-color: rgba(7,16,29,.48); }
.official-editor-preview.announcement.has-light-background [contenteditable="true"]:focus { outline-color: var(--ink); background: rgba(255,255,255,.2); box-shadow: 0 0 0 7px rgba(7,16,29,.06); }
.official-editor-preview .announcement-kicker.is-empty { display: flex; }
.official-editor-preview .announcement-kicker.is-empty::before { content: 'Type here'; width: auto; height: auto; flex: 0 1 auto; background: none; opacity: .42; }
.official-editor-preview .announcement-kicker.is-empty::after { display: none; }
.official-editor-preview.video-module .eyebrow.is-empty, .official-editor-preview.video-gallery-module .eyebrow.is-empty, .official-editor-preview.countdown-module .eyebrow.is-empty, .official-editor-preview.people-module .eyebrow.is-empty { display: flex; }
.official-editor-preview .eyebrow.is-empty > span:not([data-edit]) { display: none; }
.official-editor-preview .eyebrow.is-empty [data-edit="kicker"]::before { content: 'Type here'; color: rgba(255,255,255,.42); white-space: nowrap; }
.official-editor-preview.paragraph-module.has-light-background [contenteditable="true"]:hover { outline-color: rgba(7,16,29,.48); }
.official-editor-preview.paragraph-module.has-light-background [contenteditable="true"]:focus { outline-color: var(--ink); background: rgba(255,255,255,.28); box-shadow: 0 0 0 7px rgba(7,16,29,.06); }
.official-editor-preview.paragraph-module.has-light-background [contenteditable="true"]:empty::before { color: rgba(7,16,29,.35); }
.official-editor-preview.countdown-module.has-light-background [contenteditable="true"]:hover { outline-color: rgba(7,16,29,.48); }
.official-editor-preview.countdown-module.has-light-background [contenteditable="true"]:focus { outline-color: var(--ink); background: rgba(255,255,255,.28); box-shadow: 0 0 0 7px rgba(7,16,29,.06); }
.official-editor-preview.countdown-module.has-light-background [contenteditable="true"]:empty::before { color: rgba(7,16,29,.35); }
.official-editor-preview.people-module.has-light-background [contenteditable="true"]:hover { outline-color: rgba(7,16,29,.48); }
.official-editor-preview.people-module.has-light-background [contenteditable="true"]:focus { outline-color: var(--ink); background: rgba(255,255,255,.28); box-shadow: 0 0 0 7px rgba(7,16,29,.06); }
.official-editor-preview.people-module.has-light-background [contenteditable="true"]:empty::before { color: rgba(7,16,29,.35); }
.official-editor-preview.accessibility-module.has-light-background [contenteditable="true"]:hover { outline-color: rgba(7,16,29,.48); }
.official-editor-preview.accessibility-module.has-light-background [contenteditable="true"]:focus { outline-color: var(--ink); background: rgba(255,255,255,.28); box-shadow: 0 0 0 7px rgba(7,16,29,.06); }
.official-editor-preview.accessibility-module.has-light-background [contenteditable="true"]:empty::before { color: rgba(7,16,29,.35); }

@media (max-width: 900px) {
  .official-editor-tools { top: auto; }
  .official-editor-canvas { inset: 68px 0 244px; }
  .official-editor-preview { height: calc(100svh - 312px); min-height: calc(100svh - 312px); max-height: calc(100svh - 312px); }
  .official-editor-preview .chapter-inner { height: 100%; min-height: 0; }
  .official-editor-preview.gallery-module .gallery-grid, .official-editor-preview.video-gallery-module .video-gallery-grid { height: min(34vh, 330px); min-height: 190px; }
  .paragraph-module.has-image .paragraph-layout { grid-template-columns: 1fr; align-content: center; gap: 22px; }
  .paragraph-media { height: min(31vh, 300px); }
  .paragraph-copy h2 { font-size: clamp(46px, 13vw, 72px); }
  .paragraph-body { margin-top: 21px; gap: 12px; }
  .paragraph-body p { font-size: 15px; line-height: 1.42; }
  .official-editor-preview .paragraph-layout { padding: 24px 20px; }
  .official-editor-preview .paragraph-media { height: min(14vh, 108px); }
  .official-editor-preview .paragraph-copy h2 { font-size: clamp(38px, 11vw, 58px); }
  .official-editor-preview .paragraph-body { margin-top: 15px; gap: 9px; }
  .official-editor-preview .paragraph-body p { font-size: 13px; line-height: 1.35; }
  .people-layout { grid-template-columns: 1fr; align-content: center; gap: 22px; padding: 86px 22px 26px; }
  .people-copy .eyebrow { margin-bottom: 13px; }
  .people-copy h2 { font-size: clamp(42px,12vw,66px); line-height: .9; }
  .people-copy > p:last-child { max-width: 540px; margin-top: 16px; font-size: 13px; line-height: 1.42; }
  .people-list { max-height: min(42vh,360px); }
  .people-card { min-height: 70px; padding: 11px 0; gap: 13px; }
  .people-card.has-photo { grid-template-columns: 50px minmax(0,1fr); }
  .people-card img { width: 46px; height: 46px; }
  .people-card h3 { font-size: 16px; }
  .people-card p { margin-top: 5px; font-size: 11px; }
  .official-editor-preview .people-layout { padding: 20px 18px; gap: 13px; }
  .official-editor-preview .people-copy .eyebrow { margin-bottom: 8px; }
  .official-editor-preview .people-copy h2 { font-size: clamp(34px,10vw,48px); }
  .official-editor-preview .people-copy > p:last-child { margin-top: 10px; font-size: 11px; line-height: 1.3; }
  .official-editor-preview .people-list { max-height: min(24vh,175px); }
  .official-editor-preview .people-card { min-height: 50px; padding: 7px 0; }
  .official-editor-preview .people-card.has-photo { grid-template-columns: 40px minmax(0,1fr); }
  .official-editor-preview .people-card img { width: 36px; height: 36px; }
  .official-editor-preview .people-card h3 { font-size: 13px; }
  .official-editor-preview .people-card p { margin-top: 3px; font-size: 9px; }
  .accessibility-layout { grid-template-columns: 1fr; align-content: center; gap: 22px; padding: 86px 22px 26px; }
  .accessibility-copy .eyebrow { margin-bottom: 13px; }
  .accessibility-copy h2 { font-size: clamp(42px,12vw,66px); line-height: .9; }
  .accessibility-copy > p:last-child { max-width: 540px; margin-top: 16px; font-size: 13px; line-height: 1.42; }
  .accessibility-list { max-height: min(39vh,330px); }
  .accessibility-feature { min-height: 68px; padding: 9px 0; grid-template-columns: 48px minmax(0,1fr); gap: 13px; }
  .accessibility-feature-icon { width: 42px; height: 42px; }
  .accessibility-feature-icon svg { width: 23px; height: 23px; }
  .accessibility-feature strong { font-size: 16px; }
  .official-editor-preview .accessibility-layout { padding: 20px 18px; gap: 13px; }
  .official-editor-preview .accessibility-copy .eyebrow { margin-bottom: 8px; }
  .official-editor-preview .accessibility-copy h2 { font-size: clamp(34px,10vw,48px); }
  .official-editor-preview .accessibility-copy > p:last-child { margin-top: 10px; font-size: 11px; line-height: 1.3; }
  .official-editor-preview .accessibility-list { max-height: min(22vh,160px); }
  .official-editor-preview .accessibility-feature { min-height: 45px; padding: 5px 0; grid-template-columns: 35px minmax(0,1fr); gap: 9px; }
  .official-editor-preview .accessibility-feature-icon { width: 31px; height: 31px; }
  .official-editor-preview .accessibility-feature-icon svg { width: 18px; height: 18px; }
  .official-editor-preview .accessibility-feature strong { font-size: 12px; }
  .photo-caption { width: min(300px, calc(100% - 32px)); }
  .photo-caption[data-photo-caption-position="top-left"] { top: 84px; left: 16px; }
  .photo-caption[data-photo-caption-position="top-right"] { top: 84px; right: 16px; }
  .photo-caption[data-photo-caption-position="bottom-left"] { bottom: 16px; left: 16px; }
  .photo-caption[data-photo-caption-position="bottom-right"] { right: 16px; bottom: 16px; }
  .photo-caption h2 { font-size: clamp(24px, 8vw, 34px); }
  .photo-caption > p:last-child { font-size: 12px; }
  .official-editor-preview .photo-caption[data-photo-caption-position="top-left"] { top: 18px; left: 16px; }
  .official-editor-preview .photo-caption[data-photo-caption-position="top-right"] { top: 18px; right: 16px; }
  .official-editor-preview .photo-caption[data-photo-caption-position="bottom-left"] { bottom: 18px; left: 16px; }
  .official-editor-preview .photo-caption[data-photo-caption-position="bottom-right"] { right: 16px; bottom: 18px; }
  .official-editor-preview .universal-overlay[data-overlay-position="top-left"], .official-editor-preview .universal-overlay[data-overlay-position="top-right"] { top: 12px; }
  .official-editor-preview .universal-overlay[data-overlay-position="bottom-left"], .official-editor-preview .universal-overlay[data-overlay-position="bottom-right"] { bottom: 12px; }
}

@media (max-width: 520px) {
  .announcement h2 { font-size: clamp(46px, 13vw, 68px); }
  .paragraph-layout { align-content: center; padding-left: 22px; padding-right: 22px; }
  .paragraph-media { height: 26vh; min-height: 170px; }
  .official-editor-preview .paragraph-media { height: min(14vh, 108px); min-height: 0; }
}

@media (max-width: 900px) and (max-height: 500px) {
  .people-layout { grid-template-columns: minmax(0,.78fr) minmax(300px,1.22fr); align-content: center; align-items: center; gap: 24px; padding: 74px 22px 16px; }
  .people-copy h2 { font-size: clamp(34px,5.2vw,48px); }
  .people-copy > p:last-child { margin-top: 10px; font-size: 11px; line-height: 1.32; }
  .people-list { max-height: 62vh; }
  .people-card { min-height: 50px; padding: 7px 0; }
  .people-card.has-photo { grid-template-columns: 40px minmax(0,1fr); }
  .people-card img { width: 36px; height: 36px; }
  .people-card h3 { font-size: 13px; }
  .people-card p { margin-top: 3px; font-size: 9px; }
  .accessibility-layout { grid-template-columns: minmax(0,.8fr) minmax(300px,1.2fr); align-content: center; align-items: center; gap: 24px; padding: 74px 22px 16px; }
  .accessibility-copy h2 { font-size: clamp(34px,5.2vw,48px); }
  .accessibility-copy > p:last-child { margin-top: 10px; font-size: 11px; line-height: 1.32; }
  .accessibility-list { max-height: 62vh; }
  .accessibility-feature { min-height: 50px; padding: 6px 0; grid-template-columns: 38px minmax(0,1fr); gap: 10px; }
  .accessibility-feature-icon { width: 34px; height: 34px; }
  .accessibility-feature-icon svg { width: 19px; height: 19px; }
  .accessibility-feature strong { font-size: 13px; }
}

/* Structured event templates: itinerary, venue, contact, menu, guidance, RSVP, partners, and audio */
.structured-module { --structured-ink: #fff; --structured-muted: rgba(255,255,255,.68); --structured-line: rgba(255,255,255,.2); --structured-panel: rgba(2,13,24,.28); position: relative; overflow: hidden; color: var(--structured-ink); background: var(--structured-color, #071628); isolation: isolate; }
.structured-module.has-light-background { --structured-ink: #071628; --structured-muted: rgba(7,22,40,.64); --structured-line: rgba(7,22,40,.17); --structured-panel: rgba(255,255,255,.38); }
.structured-atmosphere { position: absolute; inset: 0; z-index: -1; overflow: hidden; pointer-events: none; }
.structured-atmosphere span { position: absolute; width: min(52vw,760px); aspect-ratio: 1; border-radius: 50%; background: #57b8f5; opacity: .1; filter: blur(1px); }
.structured-atmosphere span:first-child { top: -38%; right: -13%; }
.structured-atmosphere span:last-child { bottom: -50%; left: -18%; opacity: .06; }
.structured-layout { width: min(1440px,100%); margin: 0 auto; padding: clamp(112px,13vh,160px) clamp(34px,7vw,108px) clamp(58px,8vh,94px); display: grid; grid-template-columns: minmax(280px,.78fr) minmax(440px,1.22fr); align-items: center; gap: clamp(48px,7vw,116px); }
.structured-copy { align-self: center; max-width: 650px; }
.structured-copy > p:first-child { margin: 0 0 24px; color: #58b9f7; font: 800 10px/1 Arial,sans-serif; letter-spacing: .18em; text-transform: uppercase; }
.structured-copy h2 { margin: 0; font: 400 clamp(58px,7vw,116px)/.87 Arial,sans-serif; letter-spacing: -.07em; text-wrap: balance; }
.structured-copy > p:last-child { max-width: 520px; margin: 26px 0 0; color: var(--structured-muted); font: 17px/1.55 Georgia,serif; }
.structured-content { min-width: 0; max-height: min(72vh,760px); overflow: auto; border: 1px solid var(--structured-line); background: var(--structured-panel); box-shadow: 0 28px 90px rgba(0,0,0,.18); backdrop-filter: blur(18px); scrollbar-width: thin; }
.structured-content a { color: inherit; }

.structured-schedule { margin: 0; padding: 0; list-style: none; counter-reset: itinerary; }
.structured-schedule li { min-height: 112px; padding: 23px 25px; border-bottom: 1px solid var(--structured-line); display: grid; grid-template-columns: 92px minmax(0,1fr) 34px; align-items: start; gap: 18px; }
.structured-schedule li:last-child { border-bottom: 0; }
.structured-schedule time, .structured-schedule b { font: 800 10px/1.2 Arial,sans-serif; letter-spacing: .12em; }
.structured-schedule span { display: grid; gap: 7px; }
.structured-schedule strong { font: 600 20px/1.15 Arial,sans-serif; }
.structured-schedule em, .structured-schedule small { color: var(--structured-muted); font: normal 12px/1.35 Arial,sans-serif; }
.structured-schedule b { color: #58b9f7; text-align: right; }

.venue-panel { min-height: 550px; display: grid; grid-template-columns: 1fr 1fr; }
.venue-map-art { position: relative; min-height: 260px; grid-row: span 2; overflow: hidden; background: repeating-linear-gradient(33deg,transparent 0 37px,var(--structured-line) 38px 39px), repeating-linear-gradient(122deg,transparent 0 65px,var(--structured-line) 66px 67px), rgba(88,185,247,.08); }
.venue-map-art::before,.venue-map-art::after { content:""; position:absolute; border:1px solid var(--structured-line); border-radius:50%; }
.venue-map-art::before { width:230px;height:230px;left:-55px;bottom:25px; }
.venue-map-art::after { width:130px;height:130px;right:-28px;top:40px; }
.venue-map-art span { position:absolute; width:22px; height:22px; left:52%; top:46%; border-radius:50% 50% 50% 0; transform:rotate(-45deg); background:#58b9f7; box-shadow:0 8px 28px rgba(0,0,0,.28); }
.venue-primary { padding: 34px; border-bottom:1px solid var(--structured-line); }
.venue-primary small,.contact-module-grid aside small { color:#58b9f7; font:800 9px/1 Arial,sans-serif; letter-spacing:.16em; }
.venue-primary h3,.contact-module-grid aside h3 { margin:18px 0 11px; font:500 32px/1 Arial,sans-serif; letter-spacing:-.045em; }
.venue-primary a { color:var(--structured-muted); font:12px/1.5 Arial,sans-serif; }
.venue-panel dl,.dress-code-panel dl { margin:0; padding:26px 34px; display:grid; gap:18px; }
.venue-panel dl div,.dress-code-panel dl div { display:grid; grid-template-columns:72px 1fr; gap:15px; }
.venue-panel dt,.dress-code-panel dt { color:#58b9f7; font:800 9px/1.3 Arial,sans-serif; text-transform:uppercase; letter-spacing:.12em; }
.venue-panel dd,.dress-code-panel dd { margin:0; color:var(--structured-muted); font:13px/1.45 Georgia,serif; }

.contact-module-grid { min-height:560px; display:grid; grid-template-columns:.78fr 1.22fr; }
.contact-module-grid aside { padding:36px; border-right:1px solid var(--structured-line); display:flex; flex-direction:column; align-items:flex-start; }
.contact-module-grid aside a { margin:6px 0; color:inherit; font:13px/1.35 Arial,sans-serif; }
.contact-module-grid aside p { margin:auto 0 0; color:var(--structured-muted); font:13px/1.5 Georgia,serif; }
.contact-module-grid form,.structured-rsvp { padding:32px; display:grid; gap:13px; }
.contact-module-grid form > p { margin:0 0 4px; color:var(--structured-muted); font:14px/1.4 Georgia,serif; }
.contact-module-grid label,.structured-rsvp > label { display:grid; gap:6px; color:var(--structured-muted); font:800 8px/1 Arial,sans-serif; letter-spacing:.1em; text-transform:uppercase; }
.contact-module-grid input,.contact-module-grid textarea,.structured-rsvp input,.structured-rsvp select { width:100%; border:0; border-bottom:1px solid var(--structured-line); border-radius:0; padding:9px 0; color:var(--structured-ink); background:transparent; font:14px/1.35 Arial,sans-serif; outline:none; }
.contact-module-grid textarea { min-height:70px; resize:vertical; }
.contact-module-grid input:focus,.contact-module-grid textarea:focus,.structured-rsvp input:focus,.structured-rsvp select:focus { border-color:#58b9f7; }
.contact-module-grid button,.structured-rsvp button { min-height:43px; border:0; margin-top:4px; padding:0 16px; display:flex; justify-content:space-between; align-items:center; color:#06111f; background:#fff; font:800 9px/1 Arial,sans-serif; letter-spacing:.11em; text-transform:uppercase; }
.contact-module-grid button:disabled { opacity:.4; cursor:not-allowed; }
.contact-module-grid output,.structured-rsvp output { min-height:30px; color:var(--structured-muted); font:11px/1.4 Arial,sans-serif; }

.menu-course-list { margin:0; padding:0; list-style:none; }
.menu-course-list li { min-height:116px; padding:23px 27px; border-bottom:1px solid var(--structured-line); display:grid; grid-template-columns:76px minmax(0,1fr) auto; gap:22px; }
.menu-course-list li:last-child { border-bottom:0; }
.menu-course-list > li > span,.menu-course-list b { color:#58b9f7; font:800 9px/1.2 Arial,sans-serif; letter-spacing:.12em; text-transform:uppercase; }
.menu-course-list strong { font:600 20px/1.15 Arial,sans-serif; }
.menu-course-list p { margin:7px 0; color:var(--structured-muted); font:14px/1.4 Georgia,serif; }
.menu-course-list small { color:var(--structured-muted); font:800 8px/1 Arial,sans-serif; letter-spacing:.08em; text-transform:uppercase; }

.dress-code-panel { min-height:500px; padding:40px; }
.dress-swatch-row { display:grid; grid-template-columns:repeat(4,1fr); height:72px; margin-bottom:42px; }
.dress-swatch-row i:nth-child(1) { background:#071628; }
.dress-swatch-row i:nth-child(2) { background:#25496a; }
.dress-swatch-row i:nth-child(3) { background:#b19a7c; }
.dress-swatch-row i:nth-child(4) { background:#d9c9b7; }
.dress-code-panel h3 { max-width:520px; margin:0; font:500 clamp(34px,4vw,62px)/.95 Arial,sans-serif; letter-spacing:-.055em; }
.dress-code-panel > p { margin:18px 0 36px; color:var(--structured-muted); font:15px/1.45 Georgia,serif; }
.dress-code-panel dl { padding:0; border-top:1px solid var(--structured-line); border-bottom:1px solid var(--structured-line); }
.dress-code-panel > a { display:inline-block; margin-top:26px; font:800 9px/1 Arial,sans-serif; letter-spacing:.12em; text-transform:uppercase; }

.bring-list { margin:0; padding:0; list-style:none; }
.bring-list li { min-height:100px; padding:22px 26px; border-bottom:1px solid var(--structured-line); display:flex; align-items:center; justify-content:space-between; gap:24px; }
.bring-list li:last-child { border-bottom:0; }
.bring-list span { display:grid; gap:7px; }
.bring-list strong { font:600 20px/1.15 Arial,sans-serif; }
.bring-list small { color:var(--structured-muted); font:11px/1.2 Arial,sans-serif; }
.bring-list button { min-width:132px; min-height:40px; border:1px solid var(--structured-line); padding:0 14px; color:inherit; background:transparent; font:800 8px/1 Arial,sans-serif; letter-spacing:.1em; text-transform:uppercase; }
.bring-list button.is-claimed { color:#06111f; background:#fff; }

.structured-rsvp { min-height:560px; align-content:center; padding:38px; }
.rsvp-choice-row { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-bottom:8px; }
.rsvp-choice-row label { position:relative; }
.rsvp-choice-row input { position:absolute; opacity:0; }
.rsvp-choice-row span { min-height:56px; border:1px solid var(--structured-line); display:grid; place-items:center; color:var(--structured-muted); font:800 9px/1 Arial,sans-serif; letter-spacing:.08em; text-transform:uppercase; }
.rsvp-choice-row input:checked + span { color:#06111f; background:#fff; }

.sponsor-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
.sponsor-grid article { min-height:300px; padding:30px; border-right:1px solid var(--structured-line); border-bottom:1px solid var(--structured-line); display:flex; flex-direction:column; align-items:flex-start; }
.sponsor-grid article:nth-child(even) { border-right:0; }
.sponsor-grid article > span,.sponsor-grid article > img { width:64px; height:64px; margin-bottom:38px; border:1px solid var(--structured-line); object-fit:contain; display:grid; place-items:center; font:600 20px/1 Arial,sans-serif; }
.sponsor-grid small { color:#58b9f7; font:800 8px/1 Arial,sans-serif; letter-spacing:.12em; text-transform:uppercase; }
.sponsor-grid h3 { margin:10px 0 8px; font:600 22px/1.1 Arial,sans-serif; }
.sponsor-grid p { margin:0 0 12px; color:var(--structured-muted); font:13px/1.4 Georgia,serif; }
.sponsor-grid em,.sponsor-grid b { margin:4px 0; color:var(--structured-muted); font:normal 11px/1.3 Arial,sans-serif; }
.sponsor-grid a { margin-top:auto; padding-top:18px; font:800 8px/1 Arial,sans-serif; letter-spacing:.1em; text-transform:uppercase; }

.music-player-panel { min-height:560px; display:grid; grid-template-columns:1fr 1fr; }
.music-player-panel figure { min-height:0; margin:0; background:#02070c; }
.music-player-panel figure img { width:100%; height:100%; min-height:560px; object-fit:cover; }
.music-player-panel > div { padding:40px; display:flex; flex-direction:column; justify-content:center; }
.music-player-panel small { color:#58b9f7; font:800 9px/1 Arial,sans-serif; letter-spacing:.16em; }
.music-player-panel h3 { margin:20px 0 8px; font:500 38px/1 Arial,sans-serif; letter-spacing:-.05em; }
.music-player-panel p { margin:0 0 32px; color:var(--structured-muted); font:13px/1.3 Arial,sans-serif; }
.music-player-panel audio { width:100%; margin:0 0 28px; accent-color:#58b9f7; }
.music-player-panel button[disabled] { min-height:48px; margin-bottom:28px; border:1px solid var(--structured-line); color:var(--structured-muted); background:transparent; }
.music-player-panel em { color:var(--structured-muted); font:italic 14px/1.5 Georgia,serif; }

.linked-video-frame,.linked-video-card { width:100%; aspect-ratio:16/9; border:0; background:#02070c; }
.linked-video-card { padding:28px; display:flex; flex-direction:column; justify-content:flex-end; color:#fff; text-decoration:none; }
.linked-video-card span { color:#58b9f7; font:800 9px/1 Arial,sans-serif; letter-spacing:.12em; text-transform:uppercase; }
.linked-video-card strong { margin:10px 0 22px; font:500 26px/1 Arial,sans-serif; }
.linked-video-card em { font:800 8px/1 Arial,sans-serif; letter-spacing:.1em; text-transform:uppercase; }
.video-gallery-grid .linked-video-frame,.video-gallery-grid .linked-video-card { height:100%; min-height:0; object-fit:cover; }

.structured-field { display:grid; gap:7px; margin:0 0 13px; }
.structured-field > span { color:#526174; font:800 9px/1 Arial,sans-serif; letter-spacing:.08em; text-transform:uppercase; }
.structured-field input,.structured-field textarea,.linked-video-entry input { width:100%; border:1px solid rgba(7,22,40,.16); border-radius:0; padding:11px 12px; color:#101f31; background:#fff; font:12px/1.35 Arial,sans-serif; }
.structured-field input:focus,.structured-field textarea:focus,.linked-video-entry input:focus { border-color:#168fe3; outline:2px solid rgba(22,143,227,.14); outline-offset:0; }
.structured-field textarea { min-height:72px; resize:vertical; }
.structured-check { margin:11px 0; display:flex; align-items:center; gap:9px; color:#45566a; font:12px/1.35 Arial,sans-serif; }
.structured-check input { accent-color:#168fe3; }
.structured-editor-list { display:grid; gap:10px; }
.structured-editor-item { padding:12px; border:1px solid rgba(7,22,40,.13); background:rgba(255,255,255,.55); }
.structured-editor-item header { margin-bottom:11px; display:flex; align-items:center; justify-content:space-between; }
.structured-editor-item header strong { color:#087dce; font:800 9px/1 Arial,sans-serif; letter-spacing:.12em; }
.structured-editor-item header span { display:flex; gap:4px; }
.structured-editor-item header button,.linked-video-list button { width:28px; height:28px; border:1px solid rgba(7,22,40,.13); color:#172536; background:#f4f7f9; }
.structured-editor-item header button:hover,.structured-editor-item header button:focus-visible,.linked-video-list button:hover,.linked-video-list button:focus-visible { border-color:#168fe3; color:#087dce; outline:none; }
.structured-editor-item header button:disabled { opacity:.25; }
.media-quota > div { display:flex; justify-content:space-between; gap:14px; color:#172536; font:11px/1.2 Arial,sans-serif; }
.media-quota > div span { color:#708094; }
.media-quota-track { height:5px; margin:10px 0; display:block; overflow:hidden; background:rgba(7,22,40,.1); }
.media-quota-track i { height:100%; display:block; background:#168fe3; min-width:2px; }
.media-quota p { margin:0; color:#6b798b; font:10px/1.45 Arial,sans-serif; }
.linked-video-entry { display:grid; grid-template-columns:1fr auto; gap:7px; }
.linked-video-entry button { border:0; padding:0 13px; color:#fff; background:#168fe3; font:800 8px/1 Arial,sans-serif; letter-spacing:.08em; text-transform:uppercase; }
.linked-video-list { margin:10px 0 0; padding:0; list-style:none; display:grid; gap:5px; }
.linked-video-list li { padding:8px; border:1px solid rgba(7,22,40,.12); background:rgba(255,255,255,.52); display:flex; align-items:center; justify-content:space-between; gap:8px; }
.linked-video-list li span { min-width:0; display:grid; gap:3px; }
.linked-video-list strong { color:#172536; font:800 8px/1 Arial,sans-serif; letter-spacing:.08em; text-transform:uppercase; }
.linked-video-list small { overflow:hidden; color:#718093; font:9px/1.2 Arial,sans-serif; text-overflow:ellipsis; white-space:nowrap; }

@media (max-width: 900px) {
  .structured-layout { padding:82px 20px 22px; grid-template-columns:1fr; align-content:center; gap:22px; }
  .structured-copy > p:first-child { margin-bottom:11px; font-size:8px; }
  .structured-copy h2 { font-size:clamp(40px,11vw,64px); }
  .structured-copy > p:last-child { margin-top:13px; font-size:12px; line-height:1.4; }
  .structured-content { width:100%; max-height:48vh; }
  .structured-schedule li { min-height:78px; padding:14px; grid-template-columns:67px minmax(0,1fr) 24px; gap:10px; }
  .structured-schedule strong { font-size:15px; }
  .venue-panel,.contact-module-grid,.music-player-panel { min-height:0; }
  .venue-primary,.contact-module-grid aside,.contact-module-grid form,.structured-rsvp,.dress-code-panel,.music-player-panel > div { padding:22px; }
  .venue-map-art { min-height:230px; }
  .contact-module-grid { grid-template-columns:.8fr 1.2fr; }
  .contact-module-grid aside h3 { font-size:23px; }
  .menu-course-list li { min-height:82px; padding:15px; grid-template-columns:57px minmax(0,1fr) auto; gap:12px; }
  .menu-course-list strong { font-size:16px; }
  .dress-code-panel h3 { font-size:34px; }
  .bring-list li { min-height:72px; padding:14px 16px; }
  .sponsor-grid article { min-height:220px; padding:20px; }
  .sponsor-grid article > span,.sponsor-grid article > img { width:48px;height:48px;margin-bottom:22px; }
  .music-player-panel figure img { min-height:380px; }
}

@media (max-width: 560px) {
  .structured-content { max-height:54vh; }
  .venue-panel,.contact-module-grid,.music-player-panel { grid-template-columns:1fr; }
  .venue-map-art { grid-row:auto; min-height:180px; }
  .contact-module-grid aside { min-height:210px; border-right:0; border-bottom:1px solid var(--structured-line); }
  .contact-module-grid aside p { margin-top:24px; }
  .menu-course-list li { grid-template-columns:1fr auto; }
  .menu-course-list > li > span { grid-column:1 / -1; }
  .rsvp-choice-row { grid-template-columns:1fr; }
  .sponsor-grid { grid-template-columns:1fr; }
  .sponsor-grid article { border-right:0; }
  .music-player-panel figure img { min-height:260px; max-height:260px; }
}

@media (max-width: 900px) and (max-height: 500px) {
  .structured-layout { padding:72px 18px 14px; grid-template-columns:minmax(250px,.75fr) minmax(390px,1.25fr); gap:22px; }
  .structured-copy h2 { font-size:clamp(31px,5vw,45px); }
  .structured-copy > p:last-child { margin-top:9px; font-size:10px; }
  .structured-content { max-height:calc(100svh - 96px); }
}

/* Template / Tool architecture */
.visual-editor-tools > section[data-template-tool] { position: relative; transition: opacity .18s ease, transform .22s cubic-bezier(.2,.75,.2,1); }
.template-tool-actions { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin: -2px 0 15px; padding-bottom: 9px; border-bottom: 1px solid rgba(7,22,40,.1); color: #718091; font: 700 8px/1.2 Arial,sans-serif; letter-spacing: .14em; text-transform: uppercase; }
.template-tool-actions > strong { color: #118ee4; font-size: 7px; letter-spacing: .13em; }
.template-tool-action-buttons { display: flex; gap: 5px; }
.template-tool-action-buttons button { width: 27px; height: 27px; display: grid; place-items: center; border: 1px solid rgba(7,22,40,.12); border-radius: 2px; background: #f4f7f9; color: #172536; font: 500 13px/1 Arial,sans-serif; cursor: pointer; }
.template-tool-action-buttons button:hover, .template-tool-action-buttons button:focus-visible { border-color: #168fe3; background: #eaf5fd; color: #087dcf; outline: none; }
.template-tool-summary { min-height: 116px; }
.template-tool-canvas-note { display: block; padding: 13px; border: 1px dashed rgba(7,22,40,.2); background: rgba(245,248,250,.76); color: #536173; font: 600 11px/1.45 Arial,sans-serif; }
.template-tool-manager { border-top: 3px solid #1497ed !important; background: #f8fafc !important; }
.template-tool-manager-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 15px; }
.template-tool-manager-heading > span { flex: 0 0 auto; padding: 6px 8px; border-radius: 999px; background: #e5f3fd; color: #087dce; font: 700 8px/1 Arial,sans-serif; letter-spacing: .08em; text-transform: uppercase; }
.template-tool-add-list { display: grid; gap: 7px; max-height: 260px; margin: 16px 0; overflow: hidden; transition: max-height .28s cubic-bezier(.2,.75,.2,1), opacity .2s ease, margin .2s ease; }
.template-tool-add-list[data-collapsed="true"] { max-height: 0; margin: 0; opacity: 0; pointer-events: none; }
.template-tool-add-list button { display: grid; grid-template-columns: 26px minmax(0,1fr) auto; align-items: center; gap: 9px; width: 100%; min-height: 48px; padding: 8px 10px; border: 1px solid rgba(7,22,40,.12); background: #fff; color: #122235; text-align: left; cursor: pointer; }
.template-tool-add-list button > span { color: #1497ed; font-size: 20px; font-weight: 300; }
.template-tool-add-list button strong { font: 700 11px/1.2 Arial,sans-serif; }
.template-tool-add-list button small { color: #7a8794; font: 700 7px/1 Arial,sans-serif; letter-spacing: .11em; text-transform: uppercase; }
.template-tool-manager-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 15px; }
.template-tool-manager-actions button { min-height: 43px; padding: 9px; border: 1px solid #168fe3; border-radius: 22px; background: #1597ed; color: #fff; font: 700 9px/1.2 Arial,sans-serif; letter-spacing: .04em; cursor: pointer; }
.template-tool-manager-actions button + button { border-color: rgba(7,22,40,.18); background: #fff; color: #162536; }
.template-tool-manager-actions button:disabled { border-color: rgba(7,22,40,.08); background: #e8edf1; color: #9aa4af; cursor: default; }
.template-tool-manager-note { margin: 13px 0 0; color: #83909d; font: 500 9px/1.5 Arial,sans-serif; }
.custom-template-category .module-picker-number { color: #1597ed; }
.color-swatch.swatch-paper { background:#f1eadf; }
.color-swatch.swatch-white { background:#fff; }

/* Position-first editor architecture */
.editor-position-group { position: relative; margin-top: 13px; border: 1px solid rgba(7,22,40,.13); border-radius: 11px; background: rgba(255,255,255,.5); overflow: clip; transition: box-shadow .2s ease, border-color .2s ease; }
.editor-position-group::before { content: ''; position: absolute; z-index: 2; top: 0; right: 0; left: 0; height: 3px; border-radius: 10px 10px 0 0; background: #168fe3; opacity: 0; transform: scaleX(.72); transform-origin: 50% 0; transition: opacity .16s ease, transform .2s ease; pointer-events: none; }
.editor-position-group > summary { min-height: 62px; padding: 13px 14px; display: flex; align-items: center; justify-content: space-between; gap: 14px; cursor: pointer; list-style: none; }
.editor-position-group > summary::-webkit-details-marker { display: none; }
.editor-position-heading { min-width: 0; display: flex; align-items: center; gap: 11px; }
.editor-position-copy { min-width: 0; display: grid; gap: 4px; }
.editor-position-icon { flex: 0 0 28px; width: 28px; height: 28px; border-radius: 7px; display: grid; place-items: center; background: #edf3f7; color: #53677a; font: 800 12px/1 Arial,sans-serif; }
.editor-position-icon svg { width: 17px; height: 17px; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.editor-position-corners .editor-position-icon svg { fill: currentColor; stroke: none; }
.visual-editor-tools .editor-position-group > summary strong { color: #0b1a2b; font: 800 10px/1 Arial,sans-serif; letter-spacing: .13em; text-transform: uppercase; }
.editor-position-group > summary small { color: #708091; font: 11px/1.3 Georgia,serif; }
.editor-position-group > summary i { width: 25px; height: 25px; border: 1px solid rgba(7,22,40,.12); border-radius: 50%; display: grid; place-items: center; background: #fff; color: #168fe3; font: normal 0/1 Arial,sans-serif; }
.editor-position-group > summary i::before { content: '+'; font-size: 18px; }
.editor-position-group[open] { border-color: rgba(22,143,227,.42); box-shadow: 0 11px 24px rgba(7,22,40,.12); }
.editor-position-group[open]::before { opacity: 1; transform: scaleX(1); }
.visual-editor-tools .editor-position-group[open] > summary strong { color: #0b1a2b; }
.editor-position-group[open] > summary { border-bottom: 1px solid rgba(7,22,40,.1); background: rgba(234,245,253,.55); }
.editor-position-group[open] > summary i::before { content: '\2212'; }
.editor-position-group[open] .editor-position-icon { background: #168fe3; color: #fff; }
.editor-position-body { padding: 16px 14px; }
.editor-position-body > section { position: relative; margin: 0; padding: 0; border: 0; }
.editor-position-body > section + section { margin-top: 20px; padding-top: 18px; border-top: 1px solid rgba(7,22,40,.11); }
.center-content-adder { margin-top: 20px; padding-top: 16px; border-top: 1px solid rgba(7,22,40,.1); }
.center-content-adder > button { width: 100%; min-height: 43px; padding: 9px 14px; border: 1px solid #168fe3; border-radius: 22px; background: #1597ed; color: #fff; font: 800 10px/1 Arial,sans-serif; cursor: pointer; }
.center-content-adder > button span { margin-right: 6px; font-size: 18px; font-weight: 400; vertical-align: -1px; }
.center-content-adder > p { margin: 9px 4px 0; color: #7a8794; font: 9px/1.4 Georgia,serif; text-align: center; }
.center-content-catalog { max-height: 300px; margin-top: 9px; display: grid; gap: 5px; overflow-y: auto; }
.center-content-catalog[hidden] { display: none; }
.center-content-catalog button { min-height: 48px; padding: 9px 10px; border: 1px solid rgba(7,22,40,.12); background: #fff; color: #122235; display: grid; gap: 3px; text-align: left; cursor: pointer; }
.center-content-catalog button:disabled { opacity: .42; cursor: default; }
.center-content-catalog strong { font: 700 11px/1.2 Arial,sans-serif; }
.center-content-catalog small { color: #798694; font: 9px/1.3 Georgia,serif; }
.editor-footer-actions { margin: 16px 0 4px; padding-top: 16px; border-top: 1px solid rgba(7,22,40,.12); }
.editor-footer-actions button { display: block; width: min(76%, 250px); min-height: 41px; margin: 0 auto; border: 1px solid rgba(7,22,40,.16); border-radius: 21px; background: #fff; color: #172536; font: 800 9px/1 Arial,sans-serif; letter-spacing: .05em; cursor: pointer; }
.visual-editor-tools > .module-identity-tools { margin-bottom: 13px; padding-bottom: 16px; border-bottom: 1px solid rgba(7,22,40,.12); }
.corner-tool-card { border: 1px solid rgba(7,22,40,.12); border-radius: 10px; background: #fff; overflow: clip; }
.corner-tone-control { margin-bottom: 14px; padding: 10px; border: 1px solid rgba(7,22,40,.11); border-radius: 9px; display: grid; grid-template-columns: minmax(0,1fr) 142px; align-items: center; gap: 10px; background: rgba(255,255,255,.7); }
.corner-tone-control > div:first-child { min-width: 0; display: grid; gap: 3px; }
.corner-tone-control > div:first-child strong { color: #102033; font: 800 9px/1 Arial,sans-serif; letter-spacing: .1em; text-transform: uppercase; }
.corner-tone-control > div:first-child small { color: #708091; font: 9px/1.3 Georgia,serif; }
.corner-tone-switch { display: grid; grid-template-columns: 1fr 1fr; gap: 4px; }
.corner-tone-switch button { min-height: 34px; padding: 0 7px; border: 1px solid rgba(7,22,40,.14); border-radius: 5px; display: flex; align-items: center; justify-content: center; gap: 5px; background: #fff; color: #172536; font: 700 8px/1 Arial,sans-serif; cursor: pointer; }
.corner-tone-switch button[aria-pressed="true"] { border-color: #168fe3; background: #e6f4fd; color: #087dce; box-shadow: inset 0 0 0 1px #168fe3; }
.corner-tone-swatch { width: 11px; height: 11px; border-radius: 50%; box-shadow: 0 0 0 1px rgba(7,22,40,.28); }
.corner-tone-swatch-white { background: #fff; }
.corner-tone-swatch-black { background: #07101d; }
.corner-tool-card > summary { min-height: 66px; padding: 7px 10px 7px 13px; display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: 12px; cursor: pointer; list-style: none; }
.corner-tool-card > summary::-webkit-details-marker { display: none; }
.corner-tool-card > summary span { display: grid; gap: 3px; }
.corner-tool-card > summary strong { font: 700 12px/1.2 Arial,sans-serif; }
.corner-tool-card > summary small { color: #7a8794; font: 9px/1.2 Arial,sans-serif; }
.corner-tool-card > summary .corner-placement-grid { width: 52px; height: 52px; }
.corner-tool-card[open] > summary { border-bottom: 1px solid rgba(7,22,40,.1); background: #fff; }
.corner-tool-card-body { padding: 10px; display: grid; gap: 12px; }
.corner-tool-card-body .corner-placement-row { min-height: 70px; padding: 9px 10px; border-radius: 7px; box-shadow: none; }
.corner-card-help { margin: 0; color: #687786; font: 10px/1.45 Georgia,serif; }
.clock-timezone-settings { margin: 0; }
.clock-timezone-settings select { width: 100%; height: 39px; padding: 0 9px; border: 1px solid rgba(7,22,40,.16); background: #fff; color: #102033; font: 600 10px/1 Arial,sans-serif; }
.clock-timezone-settings small { color: #687786; font: 9px/1.4 Georgia,serif; }
.corner-format-controls { display: grid; grid-template-columns: 1fr auto auto; align-items: center; gap: 5px; }
.corner-format-controls > span { color: #718091; font: 700 8px/1 Arial,sans-serif; letter-spacing: .09em; text-transform: uppercase; }
.corner-format-controls button, .link-mode-switch button { min-height: 32px; padding: 0 10px; border: 1px solid rgba(7,22,40,.13); background: #fff; color: #172536; font: 700 9px/1 Arial,sans-serif; cursor: pointer; }
.corner-format-controls button[aria-pressed="true"], .link-mode-switch button[aria-pressed="true"] { border-color: #168fe3; background: #e6f4fd; color: #087dce; }
.link-mode-switch { display: grid; grid-template-columns: 1fr 1fr; gap: 5px; }
.corner-tool-card [data-link-mode-settings="qr"] > .tools-label { margin-top: 3px; }
.corner-tool-card .audio-tool-selects { grid-template-columns: 1fr; }
.corner-tool-card .audio-tool-checks { grid-template-columns: 1fr; }
.note-layer-editor { display: grid; gap: 10px; }
.note-layer-list { display: grid; gap: 7px; }
.note-layer-card { border: 1px solid rgba(7,22,40,.12); border-radius: 8px; background: #fff; overflow: clip; }
.note-layer-card > summary { min-height: 46px; padding: 8px 9px 8px 11px; display: flex; align-items: center; justify-content: space-between; gap: 8px; cursor: pointer; list-style: none; }
.note-layer-card > summary::-webkit-details-marker { display: none; }
.note-layer-card > summary span { min-width: 0; display: grid; gap: 3px; }
.note-layer-card > summary strong { color: #102033; font: 700 10px/1.2 Arial,sans-serif; }
.note-layer-card > summary small { overflow: hidden; color: #788594; font: 9px/1.2 Arial,sans-serif; text-overflow: ellipsis; white-space: nowrap; }
.note-layer-card > summary button { flex: 0 0 28px; width: 28px; height: 28px; padding: 0; border: 1px solid rgba(159,57,49,.18); border-radius: 50%; background: #fff; color: #9c423a; cursor: pointer; font-size: 0; }
.note-layer-card > summary button::before { content: '\00d7'; font-size: 16px; line-height: 1; }
.note-layer-card[open] > summary { border-bottom: 1px solid rgba(7,22,40,.09); background: rgba(234,245,253,.4); }
.note-layer-card-body { padding: 10px; display: grid; gap: 10px; }
.note-layer-card-body textarea { min-height: 72px; resize: vertical; }
.note-layer-format-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.note-layer-format-grid label { display: grid; gap: 5px; color: #5f6d7c; font: 800 7px/1.2 Arial,sans-serif; letter-spacing: .1em; text-transform: uppercase; }
.note-layer-format-grid select { width: 100%; height: 34px; padding: 0 7px; border: 1px solid rgba(7,22,40,.14); background: #fff; color: #102033; font: 600 9px/1 Arial,sans-serif; }
.note-layer-size-note, .note-layer-count { margin: 0; color: #758292; font: italic 9px/1.35 Georgia,serif; }
.note-layer-add { padding-top: 10px; border-top: 1px solid rgba(7,22,40,.09); display: grid; gap: 7px; }
.note-layer-add > span { color: #536273; font: 800 8px/1 Arial,sans-serif; letter-spacing: .12em; text-transform: uppercase; }
.note-layer-add > div { display: grid; grid-template-columns: repeat(3,1fr); gap: 5px; }
.note-layer-add button { min-height: 34px; padding: 6px 4px; border: 1px solid rgba(36,152,237,.32); border-radius: 17px; background: #fff; color: #087dce; cursor: pointer; font: 700 8px/1 Arial,sans-serif; }
.note-layer-add button:disabled { border-color: rgba(7,22,40,.1); color: #9ba5af; cursor: default; }
.universal-overlay-note[data-note-align="center"], .cover-editor-details[data-note-align="center"], .chapter-cover .cover-widget[data-cover-widget="details"][data-note-align="center"] { text-align: center; }
.universal-overlay-note[data-note-style="accent"], .cover-editor-details[data-note-style="accent"], .chapter-cover .cover-widget[data-cover-widget="details"][data-note-style="accent"] { padding: 13px 15px; border: 1px solid currentColor; border-radius: 9px; background: color-mix(in srgb, currentColor 10%, transparent); backdrop-filter: blur(8px); }
.universal-overlay-note [contenteditable="true"], .cover-editor-details [contenteditable="true"] { cursor: text; outline: none; }
.universal-overlay-note [contenteditable="true"]:focus, .cover-editor-details [contenteditable="true"]:focus { background: rgba(36,152,237,.15); box-shadow: 0 0 0 4px rgba(36,152,237,.14); }
.universal-overlay-note, .cover-editor-details, .chapter-cover .cover-widget[data-cover-widget="details"] { max-width: min(300px,calc(100vw - 52px)); gap: 4px; }
.corner-note-layer { display: block; margin: 0; color: inherit; letter-spacing: normal; opacity: 1; text-transform: none; white-space: pre-wrap; }
.corner-note-layer[data-note-type="subtitle"] { font-size: 8px !important; line-height: 1.25 !important; letter-spacing: .14em !important; text-transform: uppercase !important; }
.corner-note-layer[data-note-type="title"] { font-size: 18px !important; line-height: 1.12 !important; letter-spacing: -.015em !important; }
.corner-note-layer[data-note-type="paragraph"] { font-size: 12px !important; line-height: 1.4 !important; }
.corner-note-layer[data-note-type="subtitle"][data-note-size="small"] { font-size: 7px !important; }
.corner-note-layer[data-note-type="subtitle"][data-note-size="large"] { font-size: 10px !important; }
.corner-note-layer[data-note-type="title"][data-note-size="small"] { font-size: 14px !important; }
.corner-note-layer[data-note-type="title"][data-note-size="large"] { font-size: 24px !important; }
.corner-note-layer[data-note-type="paragraph"][data-note-size="small"] { font-size: 10px !important; }
.corner-note-layer[data-note-type="paragraph"][data-note-size="large"] { font-size: 15px !important; }
.corner-note-layer[data-note-font="modern"] { font-family: Arial,sans-serif !important; }
.corner-note-layer[data-note-font="editorial"] { font-family: Georgia,serif !important; }
.corner-note-layer[data-note-font="classic"] { font-family: "Times New Roman",serif !important; }
.corner-note-layer[data-note-weight="regular"] { font-weight: 400 !important; }
.corner-note-layer[data-note-weight="medium"] { font-weight: 600 !important; }
.corner-note-layer[data-note-weight="bold"] { font-weight: 800 !important; }
.corner-note-layer[data-note-text-style="italic"] { font-style: italic !important; }
.corner-note-layer[data-note-text-style="uppercase"] { text-transform: uppercase !important; }
.corner-note-layer[data-note-align="left"] { text-align: left; }
.corner-note-layer[data-note-align="center"] { text-align: center; }
.corner-note-layer[data-note-align="right"] { text-align: right; }

/* One intentional foreground color shared by every corner tool on a page. */
[data-corner-tone="white"] { --corner-tool-ink: #fff; --corner-tool-shadow: 0 1px 18px rgba(0,0,0,.6); }
[data-corner-tone="black"] { --corner-tool-ink: #07101d; --corner-tool-shadow: 0 1px 18px rgba(255,255,255,.72); }
[data-corner-tone] .cover-widget, .cover-editor-canvas[data-corner-tone] .cover-editor-widget { color: var(--corner-tool-ink) !important; text-shadow: var(--corner-tool-shadow); }
[data-corner-tone] .universal-overlay:not(.universal-overlay-qr) { color: var(--corner-tool-ink); text-shadow: var(--corner-tool-shadow); }
[data-corner-tone="white"] .cover-widget-button, .cover-editor-canvas[data-corner-tone="white"] .cover-editor-button, [data-corner-tone="white"] .universal-overlay-button { border-color: rgba(255,255,255,.7); background: rgba(4,12,22,.34); color: #fff !important; }
[data-corner-tone="black"] .cover-widget-button, .cover-editor-canvas[data-corner-tone="black"] .cover-editor-button, [data-corner-tone="black"] .universal-overlay-button { border-color: rgba(7,16,29,.62); background: rgba(255,255,255,.38); color: #07101d !important; }
[data-corner-tone="white"] .universal-overlay-audio { --audio-accent: #fff; --audio-accent-2: #fff; }
[data-corner-tone="black"] .universal-overlay-audio { --audio-accent: #07101d; --audio-accent-2: #07101d; }
[data-corner-tone] .audio-corner-title { color: color-mix(in srgb,var(--corner-tool-ink) 72%,transparent); }
[data-corner-tone] .audio-wave-base { stroke: color-mix(in srgb,var(--corner-tool-ink) 22%,transparent); }
[data-corner-tone] .audio-volume-control svg { stroke: color-mix(in srgb,var(--corner-tool-ink) 72%,transparent); }
[data-corner-tone="black"] .audio-play-toggle, [data-corner-tone="black"] .universal-overlay-audio.is-playing .audio-play-toggle { background: #07101d; color: #fff; }
[data-corner-tone="white"] .audio-play-toggle, [data-corner-tone="white"] .universal-overlay-audio.is-playing .audio-play-toggle { background: #fff; color: #07101d; }
[data-corner-tone="black"] .audio-wave-seek::after { border-color: #fff; }

@media (max-width: 420px) {
  .corner-tone-control { grid-template-columns: 1fr; }
}

.direct-edit-note { margin: 0; padding: 8px 9px; border: 1px dashed rgba(7,22,40,.14); background: #f8fafc; color: #667587; font: italic 9px/1.35 Georgia,serif; }
.layer-icon-controls { display: grid; grid-template-columns: 1fr 1fr; gap: 9px; }
.layer-icon-controls > div { min-width: 0; display: grid; gap: 5px; }
.layer-icon-controls > div > span { color: #5f6d7c; font: 800 7px/1.2 Arial,sans-serif; letter-spacing: .1em; text-transform: uppercase; }
.layer-icon-controls > div > div { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); }
.layer-icon-controls button { min-width: 0; height: 34px; padding: 0; border: 1px solid rgba(7,22,40,.14); border-right-width: 0; background: #fff; color: #314155; cursor: pointer; }
.layer-icon-controls button:first-child { border-radius: 4px 0 0 4px; }
.layer-icon-controls button:last-child { border-right-width: 1px; border-radius: 0 4px 4px 0; }
.layer-icon-controls button[aria-pressed="true"] { position: relative; z-index: 1; border-color: #1597ed; border-right-width: 1px; background: #eaf5fd; color: #087dce; }
.layer-icon-controls button[aria-pressed="true"] + button { border-left-width: 0; }
.layer-icon-controls b { font: 600 12px/1 Arial,sans-serif; }
.layer-icon-controls .weight-regular { font-weight: 400; }
.layer-icon-controls .weight-medium { font-weight: 600; }
.layer-icon-controls .weight-bold { font-weight: 800; }
.layer-icon-controls .size-small { font-size: 9px; }
.layer-icon-controls .size-medium { font-size: 12px; }
.layer-icon-controls .size-large { font-size: 15px; }
.layer-icon-controls .style-italic { font-style: italic; }
.layer-icon-controls .style-uppercase { font-size: 10px; letter-spacing: .04em; }
.layer-icon-controls svg { width: 17px; height: 17px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; }
.layer-align-icons { grid-column: 1 / -1; }

.center-text-layout { position: relative; z-index: 1; width: 100%; min-height: 100svh; padding: clamp(92px,12vh,140px) clamp(42px,10vw,160px) clamp(70px,10vh,110px); display: grid; align-items: center; gap: clamp(30px,6vw,90px); }
.center-text-layout.is-columns { grid-template-columns: repeat(2,minmax(0,1fr)); }
.center-text-column { min-width: 0; display: grid; align-content: center; gap: clamp(12px,2vh,24px); }
.center-text-layer { max-width: 16em; margin: 0; color: inherit; white-space: pre-wrap; }
.center-text-layer[data-center-layer-type="title"] { font-size: clamp(48px,7.2vw,118px); line-height: .92; letter-spacing: -.055em; text-wrap: balance; }
.center-text-layer[data-center-layer-type="subtitle"] { font-size: clamp(12px,1.25vw,19px); line-height: 1.25; letter-spacing: .15em; text-transform: uppercase; }
.center-text-layer[data-center-layer-type="paragraph"] { max-width: 42em; font-size: clamp(16px,1.5vw,24px); line-height: 1.5; }
.center-text-layer[data-center-layer-type="date"], .center-text-layer[data-center-layer-type="time"] { font-size: clamp(23px,3vw,46px); line-height: 1.1; letter-spacing: -.025em; }
.center-text-layout.is-columns .center-text-layer[data-center-layer-type="title"] { font-size: clamp(40px,5vw,82px); }
.center-text-layer[data-center-layer-font="modern"] { font-family: Arial,sans-serif; }
.center-text-layer[data-center-layer-font="editorial"] { font-family: Georgia,serif; }
.center-text-layer[data-center-layer-font="classic"] { font-family: "Times New Roman",serif; }
.center-text-layer[data-center-layer-weight="regular"] { font-weight: 400; }
.center-text-layer[data-center-layer-weight="medium"] { font-weight: 600; }
.center-text-layer[data-center-layer-weight="bold"] { font-weight: 800; }
.center-text-layer[data-center-layer-style="italic"] { font-style: italic; }
.center-text-layer[data-center-layer-style="uppercase"] { text-transform: uppercase; }
.center-text-layer[data-center-layer-align="left"] { margin-right: auto; text-align: left; }
.center-text-layer[data-center-layer-align="center"] { margin-right: auto; margin-left: auto; text-align: center; }
.center-text-layer[data-center-layer-align="right"] { margin-left: auto; text-align: right; }
.text-module { color: var(--ink); background: #f1eadf; }
.text-module:not(.has-light-background), .text-module.has-video-background { color: #fff; }
.center-text-wash { position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg,rgba(4,13,23,.45),rgba(4,13,23,.1)); pointer-events: none; }
.text-module.has-light-background .center-text-wash { background: linear-gradient(90deg,rgba(255,255,255,.08),transparent); }
.page-background-video, .gallery-video-background { position: absolute; inset: 0; z-index: -3; width: 100%; height: 100%; object-fit: cover; }
.page-background-video[hidden], .gallery-video-background[hidden] { display: none; }

.center-text-editor { display: grid; gap: 12px; }
.center-layout-switch { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; }
.center-layout-switch button { min-height: 48px; padding: 8px; border: 1px solid rgba(7,22,40,.14); background: #fff; color: #445468; display: flex; align-items: center; justify-content: center; gap: 7px; cursor: pointer; font: 700 9px/1 Arial,sans-serif; }
.center-layout-switch button[aria-pressed="true"] { border-color: #1597ed; background: #eaf5fd; color: #087dce; }
.center-layout-switch button > span { width: 18px; height: 15px; border: 1px solid currentColor; border-radius: 2px; }
.center-layout-switch .layout-two { position: relative; }
.center-layout-switch .layout-two::after { content: ''; position: absolute; top: 0; bottom: 0; left: 50%; border-left: 1px solid currentColor; }
.center-layer-columns { display: grid; gap: 13px; }
.center-layer-column-editor { padding: 10px; border: 1px solid rgba(7,22,40,.1); border-radius: 9px; background: rgba(255,255,255,.38); display: grid; gap: 9px; }
.center-layer-column-editor h4 { margin: 0; color: #536273; font: 800 8px/1 Arial,sans-serif; letter-spacing: .12em; text-transform: uppercase; }
.center-layer-add { padding-top: 9px; border-top: 1px solid rgba(7,22,40,.09); display: grid; gap: 7px; }
.center-layer-add > span { color: #536273; font: 800 8px/1 Arial,sans-serif; letter-spacing: .1em; text-transform: uppercase; }
.center-layer-add > div { display: flex; flex-wrap: wrap; gap: 5px; }
.center-layer-add button { min-height: 30px; padding: 6px 9px; border: 1px solid rgba(36,152,237,.28); border-radius: 16px; background: #fff; color: #087dce; cursor: pointer; font: 700 8px/1 Arial,sans-serif; }
.center-layer-add button:disabled { border-color: rgba(7,22,40,.1); color: #9ba5af; cursor: default; }
.center-layer-add small { color: #7c8997; font: italic 9px/1.2 Georgia,serif; }
.material-layer-picker { position: relative; display: grid; gap: 5px; }
.material-layer-picker > span { color: #5f6d7c; font: 800 7px/1.2 Arial,sans-serif; letter-spacing: .1em; text-transform: uppercase; }
.material-layer-picker button { width: 100%; min-height: 40px; padding: 9px 10px; border: 1px solid rgba(7,22,40,.16); background: #fff; color: #102033; display: flex; align-items: center; justify-content: space-between; gap: 10px; cursor: pointer; font: 700 10px/1.2 Arial,sans-serif; text-align: left; }
.material-layer-picker button:focus-visible { outline: none; border-color: #1597ed; box-shadow: 0 0 0 3px rgba(36,152,237,.16); }
.material-layer-picker svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.6; }
.material-layer-picker input { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.background-media-status { margin: 8px 0 0; color: #728091; font: italic 9px/1.3 Georgia,serif; }

.gallery-grid > video, .gallery-grid > iframe, .gallery-grid > a { width: 100%; height: 100%; min-width: 0; min-height: 0; object-fit: cover; background: #02070c; }
.gallery-grid > iframe, .gallery-grid > a { border: 0; }
.gallery-grid > :first-child { grid-row: span 2; }
.gallery-asset-mixed video { width: 50px; height: 42px; object-fit: cover; background: #06111e; }
.gallery-link-badge { width: 50px; height: 42px; padding: 4px; background: #0a1a2c; color: #fff; display: grid; place-items: center; font: 700 7px/1.1 Arial,sans-serif; text-align: center; }

@media (max-width: 900px) {
  .center-text-layout { min-height: 100%; padding: 28px 20px; align-content: center; }
  .center-text-layout.is-columns { grid-template-columns: 1fr 1fr; gap: 18px; }
  .center-text-layer[data-center-layer-type="title"] { font-size: clamp(34px,10vw,58px); }
  .center-text-layout.is-columns .center-text-layer[data-center-layer-type="title"] { font-size: clamp(28px,7vw,44px); }
  .center-text-layer[data-center-layer-type="paragraph"] { font-size: 13px; line-height: 1.4; }
}

@media (max-width: 560px) {
  .center-text-layout.is-columns { gap: 13px; }
  .center-text-layer[data-center-layer-type="subtitle"] { font-size: 9px; }
  .center-text-layer[data-center-layer-type="date"], .center-text-layer[data-center-layer-type="time"] { font-size: 20px; }
}

.center-text-layer[data-center-layer-type="title"][data-center-layer-size="small"] { font-size: clamp(36px,5.5vw,88px); }
.center-text-layer[data-center-layer-type="title"][data-center-layer-size="large"] { font-size: clamp(58px,8.8vw,142px); }
.center-text-layout.is-columns .center-text-layer[data-center-layer-type="title"][data-center-layer-size="small"] { font-size: clamp(30px,4vw,66px); }
.center-text-layout.is-columns .center-text-layer[data-center-layer-type="title"][data-center-layer-size="large"] { font-size: clamp(48px,6.2vw,102px); }
.center-text-layer[data-center-layer-type="subtitle"][data-center-layer-size="small"] { font-size: clamp(9px,.95vw,14px); }
.center-text-layer[data-center-layer-type="subtitle"][data-center-layer-size="large"] { font-size: clamp(15px,1.65vw,25px); }
.center-text-layer[data-center-layer-type="paragraph"][data-center-layer-size="small"] { font-size: clamp(13px,1.15vw,18px); }
.center-text-layer[data-center-layer-type="paragraph"][data-center-layer-size="large"] { font-size: clamp(19px,1.9vw,30px); }
.center-text-layer:is([data-center-layer-type="date"],[data-center-layer-type="time"])[data-center-layer-size="small"] { font-size: clamp(18px,2.2vw,34px); }
.center-text-layer:is([data-center-layer-type="date"],[data-center-layer-type="time"])[data-center-layer-size="large"] { font-size: clamp(30px,3.8vw,58px); }

[contenteditable="true"][role="textbox"], [data-edit], [data-center-text-layer], .corner-note-layer { white-space: pre-wrap !important; }

@media (max-width: 560px) {
  .organizer-panel { width: 100%; }
  .template-tool-manager-actions { grid-template-columns: 1fr; }
}

/* Expandable 25-module library and editable prototype modules */
.catalog-module { --catalog-background: #f1eadf; --catalog-ink: #071628; --catalog-surface: rgba(255,255,255,.62); --catalog-line: rgba(7,22,40,.16); --catalog-accent: #168fde; position: relative; background: var(--catalog-background); color: var(--catalog-ink); isolation: isolate; overflow: hidden; }
.catalog-module-participation { --catalog-background: #0874c4; --catalog-ink: #fff; --catalog-surface: rgba(3,31,56,.23); --catalog-line: rgba(255,255,255,.2); --catalog-accent: #d8f0ff; }
.catalog-module-specialized { --catalog-background: #071628; --catalog-ink: #fff; --catalog-surface: rgba(255,255,255,.07); --catalog-line: rgba(255,255,255,.16); --catalog-accent: #58b9f7; }
.catalog-module-atmosphere { position: absolute; inset: 0; z-index: -1; overflow: hidden; pointer-events: none; }
.catalog-module-atmosphere span { position: absolute; width: min(48vw, 680px); aspect-ratio: 1; border-radius: 50%; background: var(--catalog-accent); filter: blur(2px); opacity: .1; }
.catalog-module-atmosphere span:first-child { top: -32%; right: -12%; }
.catalog-module-atmosphere span:last-child { bottom: -46%; left: -14%; opacity: .06; }
.catalog-module-layout { width: min(1280px, 100%); margin: 0 auto; padding: clamp(110px, 12vh, 150px) clamp(34px, 7vw, 108px) clamp(54px, 8vh, 90px); display: grid; grid-template-columns: minmax(0,.9fr) minmax(360px,1.1fr); align-items: center; gap: clamp(54px, 8vw, 130px); }
.catalog-module-copy { max-width: 650px; }
.catalog-module-kicker { margin: 0 0 24px; color: var(--catalog-accent); font: 800 10px/1 Arial, sans-serif; letter-spacing: .18em; text-transform: uppercase; }
.catalog-module-copy h2 { margin: 0; font: 400 clamp(62px, 7.6vw, 122px)/.86 Arial, sans-serif; letter-spacing: -.075em; text-wrap: balance; }
.catalog-module-copy > p:last-child { max-width: 540px; margin: 28px 0 0; color: color-mix(in srgb, var(--catalog-ink) 68%, transparent); font: 17px/1.52 Georgia, serif; }
.catalog-module-preview { min-width: 0; border: 1px solid var(--catalog-line); background: var(--catalog-surface); box-shadow: 0 28px 80px color-mix(in srgb, var(--catalog-ink) 10%, transparent); backdrop-filter: blur(16px); }
.catalog-module-preview header { min-height: 72px; padding: 17px 20px; border-bottom: 1px solid var(--catalog-line); display: flex; align-items: end; justify-content: space-between; gap: 20px; }
.catalog-module-preview header span { color: var(--catalog-accent); font: 800 8px/1 Arial, sans-serif; letter-spacing: .16em; }
.catalog-module-preview header strong { max-width: 70%; font: 17px/1.1 Arial, sans-serif; text-align: right; }
.catalog-module-preview ol { margin: 0; padding: 0; list-style: none; }
.catalog-module-preview ol[data-module-scroll] { max-height: min(48vh, 520px); overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; touch-action: pan-y; }
.catalog-module-preview li { min-height: 70px; padding: 15px 20px; border-bottom: 1px solid var(--catalog-line); display: grid; grid-template-columns: 34px minmax(0,1fr); align-items: center; gap: 14px; }
.catalog-module-preview li span { color: color-mix(in srgb, var(--catalog-ink) 42%, transparent); font: 800 8px/1 Arial, sans-serif; letter-spacing: .08em; }
.catalog-module-preview li strong { font: 15px/1.3 Arial, sans-serif; }
.catalog-module-preview footer { min-height: 64px; padding: 14px 20px; display: flex; align-items: center; justify-content: space-between; gap: 18px; }
.catalog-module-preview footer span { color: color-mix(in srgb, var(--catalog-ink) 54%, transparent); font: 10px/1.25 Georgia, serif; }
.catalog-module-preview footer strong { color: var(--catalog-accent); font: 800 8px/1 Arial, sans-serif; letter-spacing: .12em; text-align: right; }
.catalog-module[data-catalog-module="countdown"] .catalog-module-preview ol { display: grid; grid-template-columns: repeat(3,1fr); }
.catalog-module[data-catalog-module="countdown"] .catalog-module-preview li { min-height: 150px; padding: 22px 12px; border-right: 1px solid var(--catalog-line); grid-template-columns: 1fr; justify-items: center; text-align: center; }
.catalog-module[data-catalog-module="countdown"] .catalog-module-preview li:last-child { border-right: 0; }
.catalog-module[data-catalog-module="countdown"] .catalog-module-preview li span { display: none; }
.catalog-module[data-catalog-module="countdown"] .catalog-module-preview li strong { font-size: clamp(16px, 2vw, 25px); }

@media (max-width: 900px) {
  .organizer-panel { padding-bottom: max(22px, env(safe-area-inset-bottom)); }
  .module-picker { max-height: none; overflow: visible; }
  .module-picker-heading { min-height: 54px; }
  .module-picker-option { min-height: 66px; }
  .catalog-module-layout { padding: 96px 22px 24px; grid-template-columns: 1fr; align-content: center; gap: 24px; }
  .catalog-module-copy { max-width: 560px; }
  .catalog-module-kicker { margin-bottom: 13px; font-size: 8px; }
  .catalog-module-copy h2 { font-size: clamp(42px, 12vw, 66px); line-height: .9; letter-spacing: -.065em; }
  .catalog-module-copy > p:last-child { max-width: 520px; margin-top: 16px; font-size: 13px; line-height: 1.42; }
  .catalog-module-preview { width: 100%; max-width: 600px; }
  .catalog-module-preview header { min-height: 48px; padding: 10px 13px; }
  .catalog-module-preview header strong { font-size: 13px; }
  .catalog-module-preview li { min-height: 48px; padding: 9px 13px; grid-template-columns: 24px minmax(0,1fr); gap: 9px; }
  .catalog-module-preview li strong { font-size: 12px; }
  .catalog-module-preview footer { min-height: 44px; padding: 9px 13px; }
  .catalog-module-preview footer span { font-size: 9px; }
  .catalog-module-preview footer strong { font-size: 7px; }
  .catalog-module[data-catalog-module="countdown"] .catalog-module-preview li { min-height: 86px; padding: 14px 5px; }
}

@media (max-width: 420px) {
  .module-picker-heading > small { display: none; }
  .module-picker-option { grid-template-columns: 22px minmax(0,1fr) auto; gap: 7px; }
  .module-picker-option-copy small { font-size: 8px; }
  .catalog-module-layout { padding-top: 86px; gap: 19px; }
  .catalog-module-copy h2 { font-size: clamp(38px, 11vw, 54px); }
  .catalog-module-copy > p:last-child { font-size: 12px; }
}

@media (max-width: 900px) and (max-height: 500px) {
  .catalog-module-layout { padding: 76px 18px 14px; grid-template-columns: minmax(0,.82fr) minmax(330px,1.18fr); align-content: center; align-items: center; gap: 22px; }
  .catalog-module-kicker { margin-bottom: 8px; font-size: 7px; }
  .catalog-module-copy h2 { font-size: clamp(31px, 5vw, 43px); line-height: .9; }
  .catalog-module-copy > p:last-child { margin-top: 10px; font-size: 11px; line-height: 1.32; }
  .catalog-module-preview header { min-height: 34px; padding: 7px 10px; }
  .catalog-module-preview header strong { font-size: 11px; }
  .catalog-module-preview li { min-height: 35px; padding: 6px 10px; grid-template-columns: 18px minmax(0,1fr); gap: 7px; }
  .catalog-module-preview li strong { font-size: 10px; }
  .catalog-module-preview footer { min-height: 32px; padding: 6px 10px; }
  .catalog-module[data-catalog-module="countdown"] .catalog-module-preview li { min-height: 82px; }
}
