/* ==========================================================================
   Delta Sesh 2026 | UlanBatar
   Estilos de la landing. Portados de la base hecha en Codex (app/globals.css +
   app/brand.css) sin Tailwind: mismo orden de cascada, mismas reglas visuales.
   La identidad (paleta, Cinzel, EB Garamond, Cormorant) es la de La Clave Primal.
   ========================================================================== */

/* Reinicio base: preflight de Tailwind CSS v4.2.1 (MIT, https://tailwindcss.com),
   el mismo que usaba la versión de Codex. Va en una capa para que cualquier regla
   del sitio le gane sin importar la especificidad. */
@layer base {
*,:after,:before{box-sizing:border-box;border:0 solid;margin:0;padding:0}::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}
}

/* Tokens de color: base de Codex con la paleta de La Clave Primal encima. */
:root {
  --background: #07050a;
  --foreground: #e9d9b8;
  --card: #130d0e;
  --card-foreground: #e9d9b8;
  --popover: #201512;
  --popover-foreground: #e9d9b8;
  --primary: #d9a155;
  --primary-foreground: #07050a;
  --secondary: #21150f;
  --secondary-foreground: #e9d9b8;
  --muted: #201714;
  --muted-foreground: #c0aa88;
  --accent: #3c2819;
  --accent-foreground: #f3d8a5;
  --destructive: #ffa68d;
  --border: #735132;
  --input: #876643;
  --ring: #d9a155;
  --radius: 0px;
  --amber: #d9a155;
  --fire: #ff7a2a;
  --gold: #d9a155;
  --ash: #f3d8a5;
  --bone: #e9d9b8;
}

/* ---------- Estructura y comportamiento (globals.css de Codex) ---------- */

* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:34px; }
body {
  margin:0;
  background:var(--background);
  color:var(--foreground);
  font-family:'Segoe UI',sans-serif;
  font-size:16px;
  line-height:1.65;
}
button, input, textarea { font:inherit; }
button, a, input, textarea { touch-action:manipulation; }
button, a { -webkit-tap-highlight-color:transparent; }
a { color:inherit; text-decoration:none; }
button { cursor:pointer; }
button:disabled { cursor:wait; opacity:.6; }
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible { outline:2px solid var(--amber); outline-offset:5px; }
::selection { background:#a74920; color:#fff; }
h1, h2, h3, p { margin:0; }
img { display:block; max-width:100%; }
.site-header {
  position:absolute;
  inset:0 0 auto;
  z-index:3;
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding:28px 5.6%;
  border-bottom:1px solid #e7e0cf20;
}
.wordmark {
  font-family:Georgia,serif;
  font-weight:bold;
  font-size:25px;
  letter-spacing:-1px;
  line-height:1;
}
.wordmark>span {
  display:block;
  font-family:sans-serif;
  font-size:9px;
  letter-spacing:2px;
  margin-top:10px;
  font-weight:400;
}
.site-header nav {
  display:flex;
  align-items:center;
  gap:38px;
  font-size:14px;
}
.nav-cta {
  display:flex;
  align-items:center;
  gap:20px;
  border-bottom:1px solid #e8a84e99;
  padding:10px 0;
}
.site-header a:hover { color:var(--amber); }
.hero {
  position:relative;
  min-height:850px;
  height:100svh;
  max-height:1100px;
  isolation:isolate;
  overflow:hidden;
  background:#080f11;
}
.hero-media { position:absolute; inset:0 0 0 35%; z-index:-3; }
.hero-media img, .hero-media video {
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center 49%;
  opacity:.9;
}
.hero-shade {
  position:absolute;
  inset:0;
  z-index:-2;
  background:linear-gradient(90deg,#081114 0%,#081114ee 23%,#08111472 47%,#08111400 75%),linear-gradient(0deg,#081114 0%,transparent 25%,transparent 70%,#08111466 100%);
}
.hero-copy { padding:158px 5.6% 130px; position:relative; }
.eyebrow {
  font-size:12px;
  letter-spacing:2.4px;
  font-weight:500;
  display:flex;
  align-items:center;
  gap:14px;
  color:#c6ccbf;
}
.small-line { height:1px; width:29px; background:var(--amber); }
h1 {
  font-family:Impact,'Arial Narrow',sans-serif;
  font-size:clamp(110px,12vw,190px);
  line-height:.82;
  letter-spacing:-2px;
  margin:33px 0 25px;
  font-weight:700;
  width:max-content;
}
h1>span { display:block; color:#e7e0cf; }
.hero-poem {
  font-family:Georgia,serif;
  font-size:clamp(20px,1.7vw,27px);
  line-height:1.35;
  font-style:italic;
  color:#d2cdbf;
}
.hero-details {
  margin:27px 0 22px;
  font-size:12px;
  letter-spacing:1.5px;
  line-height:1.9;
}
.hero-details p:first-child { font-weight:600; }
.hero-details p:first-child span { margin-left:9px; color:var(--amber); }
.hero-details p+p { color:#b9beb4; }
.button {
  display:inline-flex;
  align-items:center;
  justify-content:space-between;
  gap:42px;
  padding:17px 22px;
  min-height:56px;
  background:#b95328;
  color:#fff0df;
  font-size:13px;
  letter-spacing:1.3px;
  font-weight:600;
  border:1px solid #d4814f;
  transition:background .2s,transform .2s;
}
.button:hover { background:#d16a38; transform:translateY(-2px); }
.hero-aside {
  position:absolute;
  right:3%;
  top:39%;
  display:flex;
  gap:80px;
  writing-mode:vertical-rl;
  font-size:11px;
  letter-spacing:2px;
  color:#eee4ccaa;
}
.hero-bottom {
  position:absolute;
  bottom:30px;
  left:5.6%;
  right:5.6%;
  display:flex;
  justify-content:space-between;
  gap:20px;
  font-size:12px;
  letter-spacing:1px;
}
.hero-bottom a, .hero-bottom button { display:flex; align-items:center; gap:12px; }
.hero-bottom button {
  background:transparent;
  border:0;
  color:#e7e0cf;
  padding:8px;
}
.event-strip {
  padding:25px 8%;
  border-block:1px solid #e7e0cf23;
  display:flex;
  align-items:center;
  justify-content:space-between;
  font-size:12px;
  letter-spacing:3px;
  color:#b5bba9;
  background:#0b171a;
}
.event-strip svg { width:22px; color:#b27949; }
.section-pad { padding:115px 8%; }
.intro {
  display:grid;
  grid-template-columns:1.15fr 1fr;
  gap:35px 90px;
  max-width:1600px;
  margin:auto;
}
.intro>.eyebrow { grid-column:1/-1; }
.intro h2 {
  font-family:Impact,sans-serif;
  text-transform:uppercase;
  font-size:clamp(40px,4.3vw,70px);
  line-height:1.03;
  font-weight:700;
  max-width:600px;
}
.intro h2 em { font-style:normal; color:var(--amber); }
.intro-text {
  padding-top:7px;
  font-size:17px;
  color:#b9c2b9;
  max-width:480px;
}
.intro-text p+p { margin-top:20px; }
.text-link {
  display:inline-flex;
  align-items:center;
  gap:30px;
  border-bottom:1px solid #b27949;
  color:#e7e0cf;
  padding:10px 0;
  margin-top:20px;
  font-size:14px;
}
h2 {
  font-family:Impact,sans-serif;
  font-weight:700;
  font-size:64px;
  line-height:1.05;
  text-transform:uppercase;
}
.skip-link {
  position:fixed;
  z-index:50;
  left:20px;
  top:-100px;
  background:var(--amber);
  color:#081114;
  padding:15px;
}
.skip-link:focus { top:10px; }
.hero-media { left:15%; }
.hero-shade {
  background:linear-gradient(90deg,#081114 0%,#081114 22%,#081114b0 41%,#08111400 72%),linear-gradient(0deg,#081114 0%,transparent 30%,transparent 70%,#08111455 100%);
}
.media-controls { display:flex; gap:13px; }
.media-controls>button:first-child {
  border:1px solid #d4d4b855;
  width:36px;
  height:36px;
  border-radius:50%;
  justify-content:center;
}
.audio-error {
  position:absolute;
  bottom:76px;
  right:6%;
  font-size:14px;
}
.hero-details { font-size:14px; letter-spacing:1px; }
.hero-bottom { font-size:14px; letter-spacing:.3px; }
.wordmark>span { font-size:10px; letter-spacing:1.4px; }
.site-header { gap:25px; }
.path-story {
  display:grid;
  grid-template-columns:1fr 1fr;
  max-width:1450px;
  margin:0 auto 60px;
  align-items:center;
  padding:0 8%;
  gap:11%;
}
.path-image { position:relative; max-height:700px; overflow:hidden; }
.path-image img {
  width:100%;
  height:700px;
  object-fit:cover;
  object-position:center;
  opacity:.85;
}
.photo-note {
  position:absolute;
  bottom:25px;
  left:25px;
  font-size:11px;
  letter-spacing:1.6px;
  writing-mode:vertical-rl;
  transform:rotate(180deg);
  color:#eed9bf;
}
.path-words { padding:40px 0; }
.path-words>.eyebrow { margin-bottom:40px; }
.path-words>p:not(.eyebrow) {
  font-family:Georgia,serif;
  font-style:italic;
  color:#c0c8bb;
  font-size:clamp(19px,2.2vw,29px);
  line-height:1.45;
}
.path-words strong {
  display:block;
  font-family:sans-serif;
  font-weight:700;
  font-size:clamp(35px,3.2vw,52px);
  font-style:normal;
  line-height:1.05;
  color:var(--amber);
  margin-top:10px;
}
.path-line {
  width:1px;
  height:42px;
  display:block;
  margin:23px 0;
  background:linear-gradient(#c9904c88,#c9904c18);
}
.ritual {
  display:grid;
  grid-template-columns:1fr 1.2fr;
  gap:100px;
  max-width:1500px;
  margin:auto;
  border-top:1px solid #e7e0cf18;
}
.ritual h2 { margin:27px 0 22px; font-size:clamp(48px,5vw,78px); }
.ritual-heading>p:not(.eyebrow) { color:#d9d9c8; }
.ritual-heading>p>span { color:#9aaba4; font-size:14px; }
.ritual-heading>img {
  width:270px;
  height:185px;
  object-fit:cover;
  object-position:50% 67%;
  margin-top:34px;
  filter:saturate(.7);
}
.ritual-list {
  list-style:none;
  margin:0;
  padding:0;
  align-self:center;
}
.ritual-list>li {
  display:grid;
  grid-template-columns:26px 34px 1fr;
  gap:22px;
  align-items:center;
  padding:29px 0;
  border-bottom:1px solid #e7e0cf22;
}
.ritual-list>li:first-child { border-top:1px solid #e7e0cf22; }
.ritual-number { font-size:12px; color:#9fac9f; }
.ritual-list svg { color:#dcaa6c; }
.ritual-list h3 { font-size:19px; font-weight:500; }
.ritual-list p {
  font-size:14px;
  color:#9dada4;
  margin-top:5px;
  line-height:1.5;
}
.domo-section {
  height:680px;
  position:relative;
  isolation:isolate;
  overflow:hidden;
  display:flex;
  align-items:center;
}
.domo-section>img {
  position:absolute;
  z-index:-3;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:50% 47%;
  filter:saturate(.65);
}
.domo-section::after {
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(90deg,#081114ed 0%,#081114b0 35%,#08111408 75%),linear-gradient(0deg,#081114c0,transparent 30%,#08111433);
  z-index:-1;
}
.domo-copy { padding:60px 8%; }
.domo-copy h2 { font-size:clamp(45px,5.5vw,82px); margin:30px 0 26px; }
.domo-copy h2>span { color:#e8a84e; }
.domo-copy>p:not(.eyebrow) { color:#d0d4c3; font-size:16px; }
.film-button {
  border:0;
  background:transparent;
  display:flex;
  align-items:center;
  gap:16px;
  color:#eee4cd;
  margin-top:30px;
  padding:0;
  font-size:14px;
}
.film-button>span {
  height:46px;
  width:46px;
  display:grid;
  place-items:center;
  border:1px solid #e7e0cf77;
  border-radius:50%;
}
.film-button>small { color:#d2c2a2; margin-left:5px; }
.film-button:hover>span { background:#d76a27; }
.domo-caption {
  position:absolute;
  bottom:25px;
  right:35px;
  font-size:10px;
  letter-spacing:1.7px;
  color:#e7e0cfaa;
}
.journey {
  display:grid;
  grid-template-columns:1fr 1.1fr;
  gap:70px;
  max-width:1500px;
  margin:auto;
  align-items:center;
}
.journey h2 { margin:28px 0; font-size:clamp(48px,4.6vw,70px); }
h2 em { font-style:normal; color:#e8a84e; }
.place-name { font-size:21px; color:#dddaca; }
.place-detail { font-size:15px; color:#a9b7ae; margin-top:9px; }
.journey-steps {
  list-style:none;
  padding:0;
  margin:30px 0;
  display:grid;
  gap:14px;
}
.journey-steps li { display:flex; gap:18px; font-size:15px; }
.journey-steps span {
  font-size:12px;
  letter-spacing:1px;
  color:#e3ad75;
  min-width:18px;
  padding-top:3px;
}
.journey-note {
  font-size:14px;
  color:#a9b7ae;
  max-width:390px;
  border-left:1px solid #e8a84e55;
  padding-left:17px;
}
.map-wrap {
  background:#102124;
  border:1px solid #66867d20;
  padding:15px 12px 30px;
  text-align:center;
}
.river-map { width:100%; height:auto; min-height:280px; }
.river-map text { font-family:sans-serif; }
.map-wrap .text-link { font-size:13px; }
.rsvp-section {
  background:#102528;
  display:grid;
  grid-template-columns:.9fr 1.1fr;
  gap:10%;
  border-block:1px solid #41665d40;
}
.rsvp-intro { max-width:410px; }
.rsvp-flame { margin-top:49px; color:#e8a84e; }
.rsvp-intro h2 { font-size:clamp(58px,6vw,88px); margin:24px 0 30px; }
.rsvp-intro>p:not(.eyebrow) { font-size:16px; color:#b2c0b6; }
.rsvp-date {
  display:flex;
  align-items:center;
  gap:22px;
  padding:32px 0;
  margin-top:20px;
  border-bottom:1px solid #64827a44;
}
.rsvp-date>span {
  font-family:sans-serif;
  font-size:76px;
  line-height:1;
  color:#e8a84e;
}
.rsvp-date>div { font-size:12px; letter-spacing:1px; line-height:1.9; }
.rsvp-intro>.rsvp-pending { font-size:14px; margin-top:22px; max-width:330px; }
.form-note {
  font-size:12px;
  letter-spacing:1.6px;
  color:#d5d8c6;
  margin-bottom:32px;
  display:flex;
  justify-content:space-between;
  gap:20px;
}
.form-note>span { font-size:12px; color:#a9b8ae; letter-spacing:0; }
.privacy-note {
  font-size:12px;
  line-height:1.6;
  color:#acbcb0;
  margin:20px 0;
}
.submit-button { width:100%; }
.practical { max-width:1500px; margin:auto; }
.section-heading {
  display:flex;
  justify-content:space-between;
  align-items:end;
  gap:30px;
  margin-bottom:60px;
}
.section-heading h2 { font-size:48px; }
.practical-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:46px 65px; }
.practical-grid>div { position:relative; padding-left:38px; }
.practical-grid svg {
  position:absolute;
  left:0;
  top:3px;
  color:#c9975d;
}
.practical-grid h3 { font-size:17px; font-weight:500; margin-bottom:9px; }
.practical-grid p { font-size:14px; color:#a7b6aa; line-height:1.65; }
.site-footer {
  text-align:center;
  padding:88px 6% 0;
  position:relative;
  isolation:isolate;
  overflow:hidden;
  background:#101a19;
}
.site-footer::before {
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(#081114e8,#081114c7),url('/assets/media/fuego.jpg') center 73%/cover;
  z-index:-1;
}
.site-footer>.eyebrow { justify-content:center; }
.site-footer h2 { font-size:clamp(66px,8vw,120px); margin:33px 0; }
.site-footer h2>span { color:#e7a358; }
.site-footer .button { margin-bottom:85px; }
.footer-base {
  padding:30px 0;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:24px;
  border-top:1px solid #e7e0cf30;
}
.footer-base>p { font-size:11px; letter-spacing:2px; color:#bdc1af; }
/* Diálogo nativo en lugar del de Radix. El preflight le saca el margin a todo,
   así que el centrado se declara acá; y el display solo aplica abierto, porque
   un display en el diálogo cerrado lo dejaría siempre visible. */
.film-dialog {
  position:fixed;
  inset:0;
  margin:auto;
  height:fit-content;
  width:min(460px,calc(100% - 28px));
  max-width:calc(100% - 2rem);
  max-height:94svh;
  overflow:auto;
  padding:22px;
  border:1px solid #765f3e;
  background:var(--background);
  color:var(--foreground);
  box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a;
}
.film-dialog[open] { display:grid; gap:7px; animation:film-entra .2s ease-out; }
.film-dialog::backdrop { background:#00000080; }
html:has(.film-dialog[open]) { overflow:hidden; }
@keyframes film-entra { from { opacity:0; transform:scale(.95); } }
.film-dialog .film-title { font-size:16px; padding-right:25px; }
.film-dialog .film-desc { font-size:13px; color:#b7c2af; padding-right:20px; }
.film-dialog video {
  width:100%;
  max-height:72svh;
  margin-top:10px;
  background:#000;
}
.film-close {
  position:absolute;
  right:14px;
  top:17px;
  background:none;
  border:0;
  color:#ddd5c0;
  padding:6px;
}
@media(min-width:1600px) {
  .hero-copy { padding-top:175px; }
}
@media(max-width:1050px) {
  .hero { min-height:840px; }
  .hero-copy { padding-top:165px; }
  .site-header nav { gap:25px; }
  .hero-bottom { font-size:13px; }
  .path-story { gap:8%; }
  .ritual { gap:55px; }
  .ritual-list>li { gap:14px; grid-template-columns:20px 27px 1fr; }
  .ritual-list h3 { font-size:17px; }
  .journey { gap:35px; }
  .rsvp-section { gap:6%; grid-template-columns:.85fr 1.15fr; }
  .form-note { flex-direction:column; gap:5px; }
  .practical-grid { gap:35px; }
  .site-header nav>a:not(.nav-cta) { font-size:13px; }
}
@media(max-width:800px) {
  .hero { height:920px; min-height:780px; max-height:none; }
  .site-header { padding:25px 6%; }
  .site-header nav>a:not(.nav-cta) { display:none; }
  .wordmark { font-size:24px; }
  .wordmark>span { font-size:8px; letter-spacing:1.3px; }
  .nav-cta { font-size:13px; gap:10px; }
  .hero-copy { padding:168px 7% 130px; }
  .hero-media { left:0; }
  .hero-media img, .hero-media video { object-position:58% center; opacity:.7; }
  .hero-shade {
    background:linear-gradient(90deg,#081114bb,#08111420),linear-gradient(0deg,#081114 0%,#08111477 45%,transparent 70%);
  }
  h1 { font-size:145px; margin-top:35px; }
  .hero-poem { font-size:23px; }
  .hero-details { margin-top:35px; font-size:13px; }
  .hero-aside { display:none; }
  .hero-bottom {
    left:7%;
    right:7%;
    font-size:12px;
    letter-spacing:0;
    align-items:center;
  }
  .hero-bottom a, .hero-bottom button { gap:7px; }
  .media-controls { gap:6px; }
  .media-controls>button:first-child { width:31px; height:31px; }
  .hero-bottom button { padding:5px; }
  .event-strip {
    gap:20px;
    padding:24px 6%;
    font-size:11px;
    letter-spacing:1.5px;
    overflow:hidden;
  }
  .event-strip svg { flex-shrink:0; width:16px; }
  .event-strip>*:nth-last-child(-n+4) { display:none; }
  .section-pad { padding:78px 7%; }
  .intro { grid-template-columns:1fr; gap:28px; }
  .intro>.eyebrow { grid-column:auto; }
  .intro h2 { font-size:50px; }
  .intro-text { font-size:16px; }
  .path-story {
    padding:0 7%;
    grid-template-columns:.8fr 1fr;
    gap:8%;
    margin-bottom:55px;
  }
  .path-image img { height:560px; }
  .path-words>p:not(.eyebrow) { font-size:20px; }
  .path-words>.eyebrow { font-size:10px; letter-spacing:1.4px; }
  .path-line { height:30px; margin:17px 0; }
  .path-words strong { font-size:34px; }
  .photo-note { font-size:9px; left:12px; bottom:20px; }
  .ritual { grid-template-columns:1fr; gap:25px; }
  .ritual-heading>img { display:none; }
  .ritual h2 { font-size:54px; }
  .ritual-list h3 { font-size:18px; }
  .domo-section { height:670px; }
  .domo-copy { padding:45px 7%; }
  .domo-copy h2 { font-size:52px; }
  .domo-section>img { object-position:55% center; }
  .domo-section::after {
    background:linear-gradient(90deg,#081114e0,#08111455),linear-gradient(0deg,#081114cc,transparent 50%);
  }
  .journey { grid-template-columns:1fr; gap:45px; }
  .journey h2 { font-size:56px; }
  .map-wrap { max-width:540px; }
  .rsvp-section { grid-template-columns:1fr; gap:45px; }
  .rsvp-intro { max-width:none; }
  .rsvp-intro h2 { font-size:70px; }
  .rsvp-flame { margin-top:30px; }
  .rsvp-date { max-width:400px; }
  .rsvp-intro>.rsvp-pending { max-width:450px; }
  .form-note { flex-direction:row; }
  .practical-grid { grid-template-columns:1fr 1fr; gap:38px 25px; }
  .section-heading { display:block; margin-bottom:40px; }
  .section-heading h2 { margin-top:20px; font-size:46px; }
  .site-footer { padding:70px 7% 0; }
  .site-footer>.eyebrow { font-size:10px; letter-spacing:1.2px; }
  .site-footer h2 { font-size:72px; }
  .footer-base { flex-wrap:wrap; justify-content:space-between; }
  .footer-base>p:nth-of-type(2) { display:none; }
  .footer-base>p { font-size:10px; }
  .site-footer .button { margin-bottom:65px; }
}
@media(max-width:480px) {
  .path-story {
    grid-template-columns:1fr;
    padding:0;
    position:relative;
    isolation:isolate;
    margin-bottom:0;
    min-height:660px;
  }
  .path-image { position:absolute; inset:0; z-index:-2; }
  .path-image img { height:100%; opacity:.3; }
  .path-story::after {
    content:"";
    position:absolute;
    inset:0;
    background:linear-gradient(0deg,#081114,transparent 50%,#08111444);
    z-index:-1;
  }
  .path-words { padding:50px 10%; text-align:center; }
  .path-words>.eyebrow { justify-content:center; margin-bottom:32px; }
  .path-words>p:not(.eyebrow) { font-size:25px; }
  .path-words strong { font-size:40px; }
  .path-line { margin-inline:auto; }
  .photo-note { display:none; }
  .form-note { font-size:11px; letter-spacing:1px; }
  .form-note>span { font-size:11px; }
  .practical-grid { grid-template-columns:1fr; gap:32px; }
  .practical-grid p { font-size:15px; }
  .hero .eyebrow { font-size:10px; letter-spacing:1.6px; }
  .domo-copy h2 { font-size:46px; }
  .domo-copy>p:not(.eyebrow) { font-size:15px; }
  .domo-caption { font-size:9px; right:7%; letter-spacing:1px; }
  .river-map { min-height:230px; }
  .hero-bottom { flex-wrap:wrap; row-gap:14px; }
  .hero-copy { padding-bottom:155px; }
  .hero { height:940px; }
  .site-header .wordmark>span { display:none; }
  .wordmark { font-size:22px; }
}
@media(max-width:380px) {
  h1 { font-size:124px; }
  .hero { height:890px; }
  .wordmark>span { display:none; }
  .hero-bottom { font-size:11px; }
  .hero-copy { padding-top:150px; }
  .rsvp-date>div { font-size:10px; }
  .nav-cta { font-size:12px; }
  .ritual-list h3 { font-size:17px; }
  .domo-copy h2 { font-size:39px; }
  .site-footer h2 { font-size:61px; }
  .eyebrow { font-size:11px; }
}
@media(prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  *, *::before, *::after { animation:none!important; transition:none!important; }
}

/* ---------- Identidad de UlanBatar (brand.css de Codex) ---------- */

@font-face {
  font-family:Cinzel;
  src:url('/assets/fonts/cinzel.woff2') format('woff2');
  font-weight:400 900;
  font-display:swap;
}
@font-face {
  font-family:'EB Garamond';
  src:url('/assets/fonts/eb-garamond.woff2') format('woff2');
  font-weight:400 800;
  font-display:swap;
}
@font-face {
  font-family:Cormorant;
  src:url('/assets/fonts/cormorant.woff2') format('woff2');
  font-weight:400 700;
  font-style:italic;
  font-display:swap;
}
body {
  font-family:'EB Garamond',Georgia,serif;
  color:var(--bone);
  background:var(--background);
  font-size:19px;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
::selection { background:#7a1a0c; color:#f3d8a5; }
.site-header {
  padding-top:17px;
  padding-bottom:18px;
  border-color:#d9a15528;
  background:linear-gradient(#07050a70,transparent);
}
.wordmark { display:block; line-height:1; flex-shrink:0; }
.wordmark img { width:169px; height:auto; filter:drop-shadow(0 0 12px #ff782833); }
.wordmark>span {
  font-family:Cinzel,serif;
  font-size:9px;
  letter-spacing:2px;
  text-align:center;
  color:#d9a155;
  margin-top:6px;
}
.site-header nav { font-family:Cinzel,serif; font-size:12px; letter-spacing:1px; }
.nav-cta { color:#f3d8a5; border-color:#d9a15577; font-size:12px; }
.hero { background:#07050a; min-height:940px; max-height:none; }
.hero-copy { padding-top:190px; }
.hero-media { left:15%; }
.hero-media video { opacity:.87; filter:saturate(.8); }
.hero-shade {
  background:linear-gradient(90deg,#07050a 0%,#07050a 22%,#07050aae 40%,#07050a00 78%),linear-gradient(0deg,#07050a,transparent 32%,transparent 70%,#07050a44);
}
.eyebrow {
  font-family:Cinzel,serif;
  color:#d9a155;
  font-size:12px;
  letter-spacing:2.6px;
  line-height:1.8;
}
.hero-copy>.eyebrow { font-size:12px; }
h1 {
  font-family:Cinzel,Georgia,serif;
  font-size:clamp(85px,9.2vw,144px);
  line-height:1.02;
  font-weight:600;
  letter-spacing:.035em;
  color:#f3d8a5;
  margin:30px 0 22px;
  text-shadow:0 1px 0 #000,0 0 30px #ff8c401a,0 0 60px #0008;
}
h1>span { color:#f3d8a5; }
.hero-poem {
  font-family:Cormorant,'EB Garamond',Georgia,serif;
  font-style:italic;
  font-size:32px;
  line-height:1.22;
  color:#e9d9b8;
}
.hero-details {
  font-family:Cinzel,serif;
  font-size:13px;
  line-height:2;
  letter-spacing:1px;
  margin-top:29px;
}
.hero-details p+p {
  font-family:'EB Garamond',serif;
  font-size:16px;
  letter-spacing:1.6px;
  color:#d0b998;
}
.hero-details p:first-child span { color:#d9a155; }
.button {
  font-family:Cinzel,serif;
  font-weight:500;
  letter-spacing:1.8px;
  font-size:12px;
  background:linear-gradient(135deg,#532015,#29120e);
  border:1px solid #bd7f3c;
  color:#f3d8a5;
  box-shadow:inset 0 0 25px #ff78280c,0 0 24px #ff78280b;
  min-height:58px;
  transition:background .3s,box-shadow .3s,transform .3s;
}
.button:hover {
  background:linear-gradient(135deg,#7a3015,#462314);
  box-shadow:0 0 25px #ff782823;
  transform:translateY(-2px);
}
.hero-bottom { font-family:Cinzel,serif; font-size:12px; letter-spacing:.8px; }
.hero-bottom a, .hero-bottom button { color:#e9d9b8; }
.hero-aside {
  font-family:Cinzel,serif;
  color:#d9a155bd;
  font-size:10px;
  letter-spacing:2.3px;
}
.event-strip {
  font-family:Cinzel,serif;
  background:#0b080d;
  border-color:#d9a15533;
  color:#d9a155;
  letter-spacing:4px;
  font-size:12px;
}
.event-strip svg { color:#c88844; width:18px; }
.intro h2, h2 {
  font-family:Cinzel,Georgia,serif;
  font-weight:500;
  font-size:48px;
  line-height:1.2;
  letter-spacing:.012em;
  text-transform:uppercase;
  color:#f3d8a5;
  text-shadow:0 1px 0 #000,0 0 24px #ff8c4012;
}
.intro h2 em, h2 em {
  font-family:Cormorant,'EB Garamond',serif;
  text-transform:none;
  font-style:italic;
  color:#d9a155;
  font-size:1.18em;
  font-weight:500;
}
.intro { gap:35px 70px; grid-template-columns:1.05fr 1fr; }
.intro-text { font-size:21px; color:#cdbda2; line-height:1.6; }
.text-link {
  font-family:'EB Garamond',serif;
  font-size:17px;
  letter-spacing:.5px;
  color:#e9d9b8;
  border-color:#d9a15566;
}
.path-image img { filter:saturate(.68); opacity:.8; }
.photo-note { font-family:Cinzel,serif; color:#d9a155; }
.path-words>p:not(.eyebrow) {
  font-family:Cormorant,Georgia,serif;
  font-size:31px;
  color:#d0bd9b;
  line-height:1.4;
}
.path-words strong {
  font-family:Cinzel,serif;
  font-size:clamp(24px,2.6vw,38px);
  color:#f3d8a5;
  line-height:1.3;
  margin-top:16px;
  letter-spacing:1px;
}
.path-line { background:linear-gradient(#d9a15588,#d9a15511); height:36px; }
.album-link {
  font-family:'EB Garamond',serif;
  color:#d9a155;
  display:inline-flex;
  align-items:center;
  gap:12px;
  font-size:16px;
  line-height:1.4;
  margin-top:25px;
  border-bottom:1px solid #d9a15555;
  padding-bottom:6px;
}
.album-link:hover { color:#f3d8a5; }
.ritual { border-color:#d9a15526; }
.ritual h2 { font-size:51px; }
.ritual-heading>p:not(.eyebrow) { color:#d6bf96; font-size:20px; }
.ritual-heading>p>span { font-size:16px; color:#c1ad8b; }
.ritual-list>li, .ritual-list>li:first-child { border-color:#d9a15533; }
.ritual-list h3 {
  font-family:Cinzel,serif;
  font-size:16px;
  letter-spacing:.5px;
  color:#f3d8a5;
  line-height:1.5;
}
.ritual-list p { font-size:18px; color:#c1ad8b; }
.ritual-number { font-family:Cinzel,serif; color:#d9a155; }
.domo-section::after {
  background:linear-gradient(90deg,#07050af2,#07050ac0 38%,#07050a15 85%),linear-gradient(0deg,#07050ab0,transparent 45%);
}
.domo-copy { max-width:1050px; }
.domo-copy h2 { font-size:clamp(36px,4.3vw,64px); line-height:1.22; }
.domo-copy h2>span { color:#d9a155; }
.domo-copy>p:not(.eyebrow) { font-size:21px; color:#d5c29e; }
.domo-caption { font-family:Cinzel,serif; color:#d9a155c0; }
.film-button { font-family:Cinzel,serif; font-size:13px; color:#e9d9b8; }
.film-button>span { border-color:#d9a15588; }
.journey h2 { font-size:52px; }
.place-name { font-family:Cinzel,serif; font-size:20px; color:#f3d8a5; }
.place-detail { font-size:19px; color:#c6b28e; }
.journey-steps li { font-size:19px; line-height:1.45; color:#e9d9b8; }
.journey-steps span { font-family:Cinzel,serif; color:#d9a155; }
.journey-note { font-size:18px; color:#c6b28e; border-color:#d9a15555; }
.map-wrap { background:radial-gradient(ellipse at top,#201711,#100d12); border-color:#d9a15530; }
.map-wrap .text-link { font-size:16px; }
.river-map text { font-family:Cinzel,serif; }
.rsvp-section {
  background:radial-gradient(ellipse at 15% 20%,#2b170f80,transparent 60%),#100c0f;
  border-color:#d9a15540;
}
.rsvp-intro h2 { font-size:clamp(45px,5vw,70px); line-height:1.1; }
.rsvp-intro>p:not(.eyebrow) { font-size:21px; color:#d0bd9b; }
.rsvp-intro>.rsvp-pending { font-size:18px; color:#c1ad8b; }
.rsvp-date { border-color:#d9a15535; }
.rsvp-date>span { font-family:Cinzel,serif; font-size:69px; color:#d9a155; }
.rsvp-date>div {
  font-family:Cinzel,serif;
  font-size:11px;
  color:#d8c4a4;
  letter-spacing:.8px;
}
.rsvp-flame { color:#d9a155; }
.form-note {
  font-family:Cinzel,serif;
  font-size:11px;
  letter-spacing:1.5px;
  color:#d9a155;
}
.form-note>span { font-family:'EB Garamond',serif; font-size:14px; color:#c1ad8b; }
.privacy-note { font-size:15px; color:#b9a68a; }
.practical-grid h3 { font-family:Cinzel,serif; font-size:16px; color:#f3d8a5; }
.practical-grid p { font-size:18px; color:#c1ad8b; }
.section-heading h2 { font-size:37px; }
.site-footer { background:#07050a; }
.site-footer::before {
  background:linear-gradient(#07050ae8,#07050ae0),url('/assets/media/fuego.jpg') center 73%/cover;
}
.site-footer h2 { font-size:clamp(45px,6vw,85px); line-height:1.2; font-weight:500; }
.site-footer h2>span { color:#d9a155; }
.site-footer .button { margin-bottom:65px; }
.band-footer { padding:10px 0 55px; text-align:center; }
.band-footer img {
  width:235px;
  height:auto;
  margin:0 auto 23px;
  filter:drop-shadow(0 0 12px #ff782822);
}
.band-footer p {
  font-family:Cormorant,Georgia,serif;
  font-size:22px;
  font-style:italic;
  color:#cfb892;
  line-height:1.4;
}
.band-footer nav {
  display:flex;
  justify-content:center;
  flex-wrap:wrap;
  gap:14px 27px;
  margin-top:26px;
  font-family:Cinzel,serif;
  font-size:12px;
  letter-spacing:1px;
  color:#d9a155;
}
.band-footer a:hover { color:#f3d8a5; }
.footer-base { border-color:#d9a15533; }
.footer-base>p {
  font-family:Cinzel,serif;
  color:#b9a581;
  font-size:10px;
  letter-spacing:1.5px;
}
.film-dialog .film-title {
  font-family:Cinzel,serif;
  font-size:16px;
  line-height:1.4;
  color:#f3d8a5;
}
.film-dialog .film-desc { font-size:17px; color:#c1ad8b; }
@media(min-width:1600px) {
  .hero-copy { padding-top:190px; }
  .hero { min-height:1050px; }
}
@media(max-width:1050px) {
  .intro h2 { font-size:37px; }
  .ritual h2 { font-size:42px; }
  .ritual-list h3 { font-size:15px; }
  .hero { min-height:940px; }
  .hero-copy { padding-top:200px; }
  .site-header nav>a:not(.nav-cta) { font-size:11px; }
  .hero-details { font-size:12px; }
  .journey h2 { font-size:42px; }
  .rsvp-section { grid-template-columns:.9fr 1.1fr; gap:7%; }
  .rsvp-intro h2 { font-size:45px; }
  .rsvp-date { gap:12px; }
  .rsvp-date>div { font-size:9px; }
  .rsvp-date>span { font-size:59px; }
  .section-heading h2 { font-size:32px; }
}
@media(max-width:800px) {
  .site-header { padding:20px 6%; align-items:center; }
  .wordmark img { width:138px; }
  .wordmark>span { font-size:8px; letter-spacing:1.5px; }
  .site-header .nav-cta { font-size:11px; letter-spacing:.5px; gap:12px; }
  .hero-media { left:0; }
  .hero-shade {
    background:linear-gradient(90deg,#07050ac9,#07050a22),linear-gradient(0deg,#07050a 0%,#07050a99 43%,transparent 85%);
  }
  .hero-copy { padding-top:205px; }
  .hero { height:960px; min-height:960px; }
  .hero h1 {
    font-size:clamp(82px,16.3vw,125px);
    line-height:1.05;
    letter-spacing:1.5px;
    margin-top:30px;
  }
  .hero-poem { font-size:31px; }
  .hero-details { font-size:12px; margin-top:35px; }
  .hero-details p+p { font-size:15px; }
  .hero-bottom { font-size:11px; letter-spacing:.2px; }
  .hero-copy>.eyebrow { font-size:10px; letter-spacing:1.8px; }
  .eyebrow { font-size:11px; letter-spacing:2px; }
  .intro h2 { font-size:40px; }
  .intro-text { font-size:21px; }
  .intro { grid-template-columns:1fr; gap:28px; }
  .path-words>p:not(.eyebrow) { font-size:26px; }
  .path-words strong { font-size:27px; }
  .album-link { font-size:16px; }
  .ritual h2 { font-size:44px; }
  .ritual-list h3 { font-size:16px; }
  .ritual-list p { font-size:18px; }
  .domo-copy h2 { font-size:40px; line-height:1.28; }
  .domo-copy>p:not(.eyebrow) { font-size:20px; }
  .journey h2 { font-size:44px; }
  .journey-steps li { font-size:19px; }
  .rsvp-section { grid-template-columns:1fr; gap:45px; }
  .rsvp-intro h2 { font-size:57px; }
  .rsvp-date>div { font-size:11px; }
  .rsvp-date>span { font-size:68px; }
  .form-note { font-size:11px; }
  .form-note>span { font-size:14px; }
  .practical-grid h3 { font-size:17px; }
  .practical-grid p { font-size:18px; }
  .site-footer h2 { font-size:52px; }
  .site-footer>.eyebrow { font-size:10px; }
  .section-heading h2 { font-size:37px; }
  .river-map text { font-family:'EB Garamond',serif; }
}
@media(max-width:480px) {
  .wordmark img { width:126px; }
  .site-header .wordmark>span { display:block; font-size:7px; letter-spacing:1.4px; }
  .site-header .nav-cta { font-size:10px; gap:8px; }
  .hero { height:900px; min-height:900px; }
  .hero-copy { padding-top:186px; }
  .hero h1 { font-size:85px; }
  .hero-poem { font-size:29px; }
  .hero-details { font-size:11px; letter-spacing:.5px; }
  .hero-details p+p { font-size:14px; letter-spacing:.5px; }
  .button { font-size:11px; letter-spacing:1.5px; gap:26px; }
  .hero-bottom { font-size:10px; gap:10px; }
  .hero-bottom a { max-width:125px; }
  .intro h2 { font-size:34px; }
  .path-story::after { background:linear-gradient(0deg,#07050a,transparent 50%,#07050a44); }
  .path-words strong { font-size:28px; }
  .path-words>p:not(.eyebrow) { font-size:29px; }
  .path-words { padding:52px 9%; }
  .path-story { min-height:720px; }
  .ritual h2 { font-size:39px; }
  .ritual-list h3 { font-size:14px; }
  .ritual-list p { font-size:17px; }
  .domo-copy h2 { font-size:31px; }
  .domo-copy>p:not(.eyebrow) { font-size:20px; }
  .domo-section { height:650px; }
  .journey h2 { font-size:39px; }
  .rsvp-intro h2 { font-size:48px; }
  .form-note { font-size:10px; letter-spacing:1px; }
  .form-note>span { font-size:13px; }
  .site-footer h2 { font-size:39px; }
  .site-footer>.eyebrow { font-size:9px; letter-spacing:1px; }
  .band-footer img { width:200px; }
  .band-footer nav { font-size:11px; gap:14px 20px; }
  .band-footer p { font-size:20px; }
  .footer-base>p { font-size:9px; letter-spacing:1px; }
  .event-strip { font-size:10px; letter-spacing:2px; }
}
@media(max-width:360px) {
  .hero h1 { font-size:74px; }
  .hero-copy>.eyebrow { font-size:9px; letter-spacing:1px; }
  .site-header .nav-cta { font-size:9px; }
  .wordmark img { width:110px; }
  .hero-bottom { font-size:9px; }
  .hero-details { font-size:10px; }
  .intro h2, .journey h2 { font-size:31px; }
  .domo-copy h2 { font-size:27px; }
  .rsvp-intro h2 { font-size:42px; }
  .site-footer h2 { font-size:34px; }
  .rsvp-date>div { font-size:10px; }
  .section-heading h2 { font-size:31px; }
}

/* ---------- Agregados de esta versión (no existían en Codex) ---------- */

/* Íconos: un solo sprite con los trazos de lucide (ISC), en vez de la librería. */
.sprite { position:absolute; width:0; height:0; overflow:hidden; }
.ic { fill:none; stroke:currentColor; stroke-linecap:round; stroke-linejoin:round; }

/* La confirmación se hace en Rituales: el formulario de Codex se reemplaza por
   una tarjeta con los tres pasos y el botón que abre la invitación. */
.rsvp-card {
  max-width:580px;
  width:100%;
  align-self:start;
  padding:44px 36px 34px;
  border:1px solid #d9a15555;
  background:#07050a55;
}
.rsvp-steps { list-style:none; margin:0 0 32px; padding:0; }
.rsvp-steps>li {
  display:grid;
  grid-template-columns:30px 1fr;
  gap:16px;
  padding:18px 0;
  border-bottom:1px solid #d9a15533;
}
.rsvp-steps>li:first-child { border-top:1px solid #d9a15533; }
.rsvp-steps>li>span {
  font-family:Cinzel,serif;
  font-size:12px;
  letter-spacing:1px;
  color:#d9a155;
  padding-top:5px;
}
.rsvp-steps h3 {
  font-family:Cinzel,serif;
  font-size:16px;
  font-weight:500;
  letter-spacing:.5px;
  line-height:1.5;
  color:#f3d8a5;
}
.rsvp-steps p { font-size:18px; line-height:1.5; color:#c1ad8b; margin-top:4px; }
.rsvp-live {
  min-height:24px;
  margin-top:14px;
  font-size:16px;
  line-height:1.5;
  color:#d9a155;
  text-align:center;
}
.rsvp-live[data-tono=alerta] { color:#ff7a2a; }
.privacy-note a { color:#d9a155; border-bottom:1px solid #d9a15555; }
.privacy-note a:hover { color:#f3d8a5; }

/* Compartir la landing desde el pie. */
.site-footer .button { margin-bottom:22px; }
.share-row { display:flex; flex-direction:column; align-items:center; margin-bottom:58px; }
.share-link { gap:12px; margin-top:0; font-size:17px; }
.share-message { min-height:21px; margin-top:8px; font-size:14px; color:#c1ad8b; }

@media(max-width:800px) {
  .rsvp-card { max-width:none; }
  .share-row { margin-bottom:48px; }
}
@media(max-width:480px) {
  .rsvp-card { padding:34px 22px 26px; }
  .rsvp-steps>li { grid-template-columns:24px 1fr; gap:12px; }
  .rsvp-steps h3 { font-size:15px; }
  .rsvp-steps p { font-size:17px; }
}
.dominio { white-space:nowrap; }

/* Área tocable de 44 px (kit, punto 20) sin mover el diseño de Codex: donde se
   puede, el espacio extra se compensa con margen negativo; donde no, se paga con
   espacio real. Los elementos de la barra y del pie del hero crecen solo en
   teléfono, que es donde hay dedo. "Privacidad" no se toca: es un enlace dentro de
   una oración, la excepción que hace WCAG. */
.album-link { padding-top:15px; margin-top:10px; }
.footer-base>a { display:inline-flex; padding:11px; margin:-11px; }
.band-footer { padding-bottom:42px; }
.band-footer nav { margin-top:13px; row-gap:0; }
.band-footer nav a { display:inline-flex; align-items:center; min-height:44px; }
@media(max-width:800px) {
  .site-header .nav-cta { min-height:44px; }
  .hero-bottom a, .hero-bottom button { min-height:44px; }
  .media-controls { gap:7px; align-items:center; }
  .media-controls>button:first-child { position:relative; min-height:0; }
  .media-controls>button:first-child::after { content:""; position:absolute; inset:-7.5px; }
}

/* ---------- Segunda tanda (27/09): aviso, viaje propio, preguntas, memoria, apoyo ---------- */

/* Aviso arriba del hero: suspendido, pospuesto, nueva fecha, aviso puntual o "ya sucedió". */
.aviso {
  display:flex;
  flex-wrap:wrap;
  align-items:baseline;
  gap:4px 14px;
  max-width:560px;
  margin:0 0 30px;
  padding:14px 18px;
  border:1px solid #ff7a2a99;
  background:#2b0f0ad9;
  font-family:'EB Garamond',Georgia,serif;
  font-size:18px;
  line-height:1.5;
  color:#f3d8a5;
}
.aviso strong { font-family:Cinzel,serif; font-weight:600; font-size:12px; letter-spacing:2px; color:#ff7a2a; }
.aviso a { display:inline-block; padding:6px 0; margin-left:6px; color:#f3d8a5; border-bottom:1px solid #d9a15599; }
.aviso[data-tipo=realizado], .aviso[data-tipo=aviso] { border-color:#d9a15599; background:#1a120dd9; }
.aviso[data-tipo=realizado] strong, .aviso[data-tipo=aviso] strong { color:#d9a155; }

/* ¿Venís por tu cuenta? (05 / El viaje), con el mismo trazo que la nota de arriba. */
.journey-propio { max-width:390px; margin-top:26px; padding-left:17px; border-left:1px solid #d9a15555; }
.journey-propio-titulo { font-family:Cinzel,serif; font-size:13px; letter-spacing:1.5px; color:#d9a155; margin-bottom:6px; }
.journey-propio p:not(.journey-propio-titulo) { font-size:18px; line-height:1.5; color:#c6b28e; }
.journey-propio .text-link { gap:12px; margin-top:6px; font-size:16px; }

/* Fin de semana largo, junto a la fecha de la invitación. */
.nota-fecha { color:#d9a155; }

/* 08 / Preguntas: <details> nativo, se abre sin JavaScript y lo lee cualquier buscador. */
.faq { max-width:1500px; margin:auto; border-top:1px solid #d9a15526; }
.faq-lista { max-width:980px; }
.faq-item { border-bottom:1px solid #d9a15533; }
.faq-item:first-child { border-top:1px solid #d9a15533; }
.faq-item summary {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:24px;
  min-height:44px;
  padding:22px 0;
  list-style:none;
  cursor:pointer;
  font-family:Cinzel,serif;
  font-size:17px;
  letter-spacing:.5px;
  line-height:1.45;
  color:#f3d8a5;
}
.faq-item summary::-webkit-details-marker { display:none; }
.faq-item summary::after { content:"+"; flex-shrink:0; font-family:'EB Garamond',serif; font-size:28px; line-height:1; color:#d9a155; transition:transform .2s; }
.faq-item[open] summary::after { transform:rotate(45deg); }
.faq-item summary:hover { color:#fff0d6; }
.faq-item summary:focus-visible { outline:2px solid var(--amber); outline-offset:4px; }
.faq-respuesta { max-width:760px; padding:0 0 26px; }
.faq-respuesta p { font-size:19px; line-height:1.6; color:#cdbda2; }
.faq-respuesta a { color:#e9d9b8; border-bottom:1px solid #d9a15566; }
.faq-respuesta a:hover { color:#f3d8a5; }

/* Modo memoria: cada bloque dice si es de antes o de después del encuentro.
   El después se muestra con html[data-etapa=despues] (lo pone app.js pasada la
   fecha, o el generador con realizado: true). */
[data-solo=despues] { display:none !important; }
html[data-etapa=despues] [data-solo=antes] { display:none !important; }
html[data-etapa=despues] span[data-solo=despues] { display:inline !important; }
html[data-etapa=despues] p[data-solo=despues], html[data-etapa=despues] div[data-solo=despues] { display:block !important; }
.rsvp-card-despues>p:not(.form-note) { margin-bottom:26px; font-size:19px; line-height:1.55; color:#d0bd9b; }
.rsvp-card-despues .button + .button { margin-top:14px; }
.rsvp-card-despues .text-link { gap:12px; margin-top:22px; }

/* Apoyá a la banda, en el pie. */
.band-footer .apoyo {
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  align-items:center;
  column-gap:24px;
  margin-top:4px;
  font-family:Cinzel,serif;
  font-style:normal;
  font-size:12px;
  letter-spacing:1px;
  line-height:1.4;
}
.band-footer .apoyo span { color:#b9a581; }
.band-footer .apoyo a { display:inline-flex; align-items:center; min-height:44px; color:#d9a155; }
.band-footer .apoyo a:hover { color:#f3d8a5; }

@media(max-width:800px) {
  .aviso { font-size:17px; }
  .faq-item summary { font-size:16px; padding:20px 0; }
  .faq-respuesta p { font-size:18px; }
}
@media(max-width:480px) {
  .aviso { margin-bottom:24px; padding:12px 14px; font-size:16px; }
  .band-footer .apoyo { column-gap:18px; font-size:11px; }
}

/* ---------- Tercera tanda (27/09): fecha grande, sigilos, horarios y estadía ---------- */

/* Fecha y lugar grandes en el hero, con la hora de recepción y de la sesión. */
.hero-details.hero-fecha { margin:26px 0 28px; line-height:1.2; letter-spacing:0; }
.hero-details .hero-dia {
  font-family:Cinzel,serif;
  font-weight:600;
  font-size:clamp(26px,2.75vw,42px);
  line-height:1.15;
  letter-spacing:.05em;
  color:#f3d8a5;
  text-shadow:0 1px 0 #000,0 0 26px #000c;
}
.hero-details .hero-dia span { color:#d9a155; }
.hero-details .hero-lugar {
  margin-top:8px;
  font-family:Cinzel,serif;
  font-weight:500;
  font-size:clamp(17px,1.75vw,27px);
  line-height:1.3;
  letter-spacing:.14em;
  color:#e9d9b8;
}
.hero-details .hero-hora { margin-top:12px; font-family:Cinzel,serif; font-size:12px; line-height:1.6; letter-spacing:.22em; color:#d9a155; }

/* Franja de los cuatro elementos y el encuentro: cada palabra con su sigilo. */
.event-strip>span { display:inline-flex; align-items:center; gap:14px; }
.event-strip .ic { flex-shrink:0; }

/* Hora de cada paso en "03 / El ritual". */
.ritual-list .ritual-hora { margin:0 0 4px; font-family:Cinzel,serif; font-size:12px; line-height:1.4; letter-spacing:.18em; color:#d9a155; }

/* 07 / Antes de cruzar: el caso de quien se queda a dormir. */
.practical-dormir {
  display:grid;
  grid-template-columns:38px 1fr;
  max-width:900px;
  margin-top:52px;
  padding:26px 28px;
  border:1px solid #d9a15544;
  background:#130d0e;
}
.practical-dormir svg { margin-top:3px; color:#c9975d; }
.practical-dormir h3 { margin-bottom:8px; font-family:Cinzel,serif; font-size:16px; letter-spacing:.5px; color:#f3d8a5; }
.practical-dormir p { font-size:18px; line-height:1.6; color:#c1ad8b; }
.practical-dormir a { color:#e9d9b8; border-bottom:1px solid #d9a15566; overflow-wrap:anywhere; }
.practical-dormir a:hover { color:#f3d8a5; }

@media(max-width:800px) {
  /* En celular la franja muestra los cinco en dos renglones, en vez de cortar. */
  .event-strip { flex-wrap:wrap; justify-content:center; column-gap:26px; row-gap:14px; }
  .event-strip>span:nth-last-child(n) { display:inline-flex; gap:10px; }
  .practical-dormir { margin-top:40px; padding:22px 20px; grid-template-columns:32px 1fr; }
}
@media(max-width:480px) {
  .hero-details.hero-fecha { margin:22px 0 26px; }
  .event-strip { column-gap:20px; }
  .practical-dormir p { font-size:17px; }
}
