:root { --paper:#f6f0dc; --paper-deep:#eee2be; --ink:#282723; --muted:#716d63; --line:rgba(50,45,35,.15); --night:#252522; --glass:rgba(255,251,239,.16); --radius:1.45rem; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
main>section[id] { scroll-margin-top:6rem; }
main:focus { outline:none; }
body { margin:0; background:var(--paper); color:var(--ink); font-family:Manrope, sans-serif; font-size:16px; line-height:1.5; }
a { color:inherit; text-decoration:none; }
.skip-link { position:fixed; z-index:2000; top:.75rem; left:.75rem; padding:.7rem 1rem; border-radius:999px; background:var(--paper); color:var(--ink); font-size:.8rem; font-weight:700; transform:translateY(-180%); transition:transform .2s; }
.skip-link:focus { transform:none; }
.wrap { width:min(100% - 3rem, 1280px); margin-inline:auto; }
.section { padding:clamp(6rem,11vw,10rem) 0; }
.eyebrow { margin:0 0 1rem; color:var(--muted); font-size:.7rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; }
h1,h2,h3,p { margin-top:0; } h1,h2,h3 { font-family:"Instrument Sans", Manrope, sans-serif; letter-spacing:-.055em; line-height:.96; font-weight:500; }
h1 { max-width:14ch; margin-bottom:1.5rem; font-size:clamp(3.2rem,7.7vw,8rem); } h2 { max-width:13ch; font-size:clamp(2.5rem,5vw,5.3rem); } h3 { font-size:clamp(2rem,3vw,3.6rem); }
.button { display:inline-flex; gap:.8rem; align-items:center; padding:.9rem 1.2rem; border:1px solid rgba(255,255,255,.16); border-radius:999px; background:var(--paper); color:var(--ink); font-size:.82rem; font-weight:700; box-shadow:0 .45rem 1.5rem rgba(0,0,0,.1); transition:transform .25s, background .25s; } .button:hover { transform:translateY(-2px); background:#fffaf0; }.button--small { padding:.65rem .9rem; font-size:.72rem; }
.text-link { display:inline-flex; gap:.7rem; align-items:center; border-bottom:1px solid currentColor; padding-bottom:.2rem; font-size:.82rem; font-weight:700; }
.hero { position:relative; isolation:isolate; min-height:100svh; overflow:hidden; color:#f8f1df; background:var(--night); display:flex; flex-direction:column; }.hero-media,.hero-stage { position:absolute; inset:0; }.hero-media { z-index:-2; background:#1b1b19; }.hero-stage { transition:clip-path .15s ease-out; }.hero-stage--result { background:radial-gradient(circle at 68% 42%,rgba(224,173,82,.72),transparent 9%), radial-gradient(ellipse at 73% 110%,rgba(99,81,56,.85),transparent 31%), linear-gradient(115deg,#161716 5%,#38332c 49%,#242927 100%); }.hero-stage--process { --reveal-x:50%; --reveal-y:50%; clip-path:circle(0 at var(--reveal-x) var(--reveal-y)); background:radial-gradient(ellipse at 28% 69%,rgba(226,205,159,.32),transparent 19%), repeating-linear-gradient(90deg,rgba(255,255,255,.11) 0 1px, transparent 1px 11%), linear-gradient(125deg,#50483b,#a38555 51%,#392f26); }.hero:hover .hero-stage--process { clip-path:circle(15rem at var(--reveal-x) var(--reveal-y)); }.hero-orbit { position:absolute; z-index:-1; width:58vw; aspect-ratio:1; right:-25vw; bottom:-33vw; border:1px solid rgba(255,255,255,.16); border-radius:50%; box-shadow:0 0 0 7vw rgba(255,255,255,.025),0 0 0 14vw rgba(255,255,255,.02); }.nav { display:flex; justify-content:space-between; align-items:center; padding-top:1.3rem; }.brand { display:flex; flex-direction:column; font-family:"Instrument Sans"; font-size:1.35rem; font-weight:700; letter-spacing:-.07em; }.brand span { margin-top:-.2rem; font-family:Manrope; font-size:.52rem; font-weight:600; letter-spacing:.08em; text-transform:uppercase; }.nav-links { display:flex; align-items:center; gap:1.4rem; font-size:.76rem; }.hero-content { margin-block:auto 4rem; padding-top:clamp(8rem,18vh,14rem); }.hero-copy { max-width:38ch; color:rgba(248,241,223,.77); }.hero-actions { display:flex; align-items:center; gap:1.5rem; margin-top:2rem; }.hero-note { margin-bottom:1.5rem; color:rgba(248,241,223,.52); font-size:.67rem; }.hero-placeholder { position:absolute; right:2rem; bottom:2rem; margin:0; text-align:right; color:rgba(248,241,223,.42); font-size:.65rem; }
.section-heading { max-width:720px; }.route-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; margin-top:3rem; }.route-card { min-height:440px; display:flex; flex-direction:column; padding:1.5rem; border-radius:var(--radius); color:#fbf6e9; overflow:hidden; background:linear-gradient(165deg,#504937,#2b2925); box-shadow:inset 0 0 0 1px rgba(255,255,255,.12), 0 1.5rem 3rem rgba(62,52,30,.1); transition:transform .35s; }.route-card:hover { transform:translateY(-.4rem); }.route-card--weddings { background:linear-gradient(165deg,#8c6d57,#39322b); }.route-card--events { background:linear-gradient(165deg,#37514b,#222928); }.route-card span { color:rgba(255,255,255,.55); font-size:.7rem; }.route-card h3 { margin:auto 0 .8rem; }.route-card p { max-width:22ch; color:rgba(255,255,255,.7); font-size:.83rem; }.route-card b { font-size:.75rem; }.route-card i { font-style:normal; margin-left:.45rem; }
.principle { display:grid; grid-template-columns:minmax(280px,.85fr) minmax(0,1fr); gap:clamp(3rem,10vw,12rem); align-items:center; border-top:1px solid var(--line); }.principle-visual { display:grid; place-content:center; width:min(100%,460px); aspect-ratio:1; border:1px solid var(--line); border-radius:50%; background:radial-gradient(circle,rgba(255,255,255,.45),transparent 48%),linear-gradient(140deg,var(--paper-deep),#f5ecd5); box-shadow:inset 0 0 0 3rem rgba(255,255,255,.12); }.principle-visual span { display:block; padding:.6rem; color:var(--muted); font-size:.66rem; letter-spacing:.1em; }.principle-copy>p:not(.eyebrow) { max-width:40ch; font-size:1.05rem; }.principle ul { display:flex; flex-wrap:wrap; gap:.5rem; padding:0; list-style:none; }.principle li { padding:.5rem .8rem; border:1px solid var(--line); border-radius:99px; font-size:.72rem; }
.journal { background:var(--night); color:#f8f1df; }.journal-layout { display:grid; grid-template-columns:.9fr 1.1fr; gap:5rem; align-items:end; }.journal .eyebrow { color:rgba(248,241,223,.55); }.journal .text-link { margin-top:1rem; }.featured-story { margin:0; }.story-media { min-height:380px; display:grid; place-items:end start; padding:1.5rem; border-radius:var(--radius); background:radial-gradient(circle at 68% 30%,rgba(252,199,83,.85),transparent 5%),linear-gradient(145deg,#27332d,#8f7755); }.story-media p { color:rgba(255,255,255,.62); font-size:.65rem; text-transform:uppercase; letter-spacing:.08em; }.featured-story>.eyebrow { margin-top:1.3rem; margin-bottom:.5rem; }.featured-story h3 { max-width:16ch; margin-bottom:0; font-size:clamp(1.9rem,3vw,3.6rem); }
.method { border-bottom:1px solid var(--line); }.method ol { display:grid; grid-template-columns:repeat(4,1fr); gap:1rem; margin:3rem 0 0; padding:0; list-style:none; }.method li { display:flex; flex-direction:column; gap:3rem; padding-top:.8rem; border-top:1px solid var(--ink); }.method span { color:var(--muted); font-size:.7rem; }.method strong { font-family:"Instrument Sans"; font-size:1.4rem; font-weight:500; letter-spacing:-.04em; }.contact { padding:clamp(4rem,8vw,8rem) 0; }.contact-panel { padding:clamp(2rem,6vw,6rem); border-radius:calc(var(--radius) + .5rem); color:#f8f1df; background:linear-gradient(120deg,#2d2d29,#4a493d); box-shadow:0 1rem 3rem rgba(43,36,21,.18); }.contact-panel .eyebrow { color:rgba(248,241,223,.55); }.contact-panel h2 { margin-bottom:1rem; }.contact-panel>p:not(.eyebrow) { color:rgba(248,241,223,.76); }.contact-panel .button { margin-top:1.2rem; }.footer { display:flex; justify-content:space-between; padding-bottom:2rem; color:var(--muted); font-size:.7rem; }
@media (prefers-reduced-motion:reduce) { * { scroll-behavior:auto!important; transition:none!important; }.hero-stage--process { display:none; } }
@media (max-width:760px) { .wrap { width:min(100% - 2rem,1280px); }.nav-links>a:not(.button) { display:none; }.nav-links { gap:0; }.hero-content { padding-top:7rem; }.hero-note,.hero-placeholder { display:none; }.route-grid,.journal-layout { grid-template-columns:1fr; }.route-card { min-height:315px; }.principle { grid-template-columns:1fr; }.principle-visual { width:70%; }.journal-layout { gap:3rem; }.method ol { grid-template-columns:repeat(2,1fr); }.method li { gap:1.5rem; }.footer { gap:1rem; }.footer p:last-child { text-align:right; } }

/* Recursos visuales temporales: reemplazar por material original de Pino antes de publicar. */
.hero-stage--result { background:linear-gradient(90deg,rgba(16,17,16,.9) 0%,rgba(20,20,18,.58) 48%,rgba(20,20,18,.3)),url('../assets/placeholders/eventos.jpg') center/cover; }
.hero-stage--process { background:linear-gradient(135deg,rgba(45,40,32,.2),rgba(78,56,30,.22)),url('../assets/placeholders/operacion.jpg') center/cover; }
.route-card { background-position:center; background-size:cover; transition:transform .35s,background-size .35s; }
.route-card:hover { background-size:107%; }
.route-card--institution { background-image:linear-gradient(0deg,rgba(20,24,23,.87),rgba(20,24,23,.1)),url('../assets/placeholders/instituciones.jpg'); }
.route-card--weddings { background-image:linear-gradient(0deg,rgba(42,31,27,.9),rgba(42,31,27,.12)),url('../assets/placeholders/matrimonios.jpg'); }
.route-card--events { background-image:linear-gradient(0deg,rgba(20,30,27,.9),rgba(20,30,27,.1)),url('../assets/placeholders/eventos.jpg'); }
.story-media { background:linear-gradient(0deg,rgba(21,28,25,.5),rgba(21,28,25,.08)),url('../assets/placeholders/eventos.jpg') center/cover; }

/* Segunda pasada visual: tecnología cálida con matiz pino. */
:root {
  --paper:#eef0df;
  --paper-deep:#dfe5cf;
  --ink:#292c26;
  --muted:#687064;
  --line:rgba(48,59,48,.15);
  --night:#282b26;
  --pine:#4c6454;
  --pine-deep:#34473d;
  --glass-light:rgba(242,245,228,.74);
  --glass-dark:rgba(31,35,31,.5);
}

body {
  overflow-x:hidden;
  background:
    radial-gradient(circle at 85% 20%,rgba(130,157,123,.11),transparent 25rem),
    radial-gradient(circle at 8% 58%,rgba(255,255,255,.35),transparent 28rem),
    var(--paper);
}

.nav {
  position:fixed;
  z-index:1000;
  top:1rem;
  left:50%;
  width:min(calc(100% - 3rem),1280px);
  margin:0;
  padding:.65rem .7rem .65rem 1.1rem;
  border:1px solid rgba(255,255,255,.13);
  border-radius:1.15rem;
  background:rgba(28,31,28,.72);
  color:#f8f1df;
  box-shadow:0 .7rem 2.2rem rgba(12,16,13,.12);
  backdrop-filter:blur(34px) saturate(85%) brightness(.78);
  -webkit-backdrop-filter:blur(34px) saturate(85%) brightness(.78);
  transform:translateX(-50%);
  transition:background .35s,color .35s,border-color .35s,box-shadow .35s,top .35s;
}

.nav:not(.nav--scrolled) .brand,
.nav:not(.nav--scrolled) .nav-links>a:not(.button) { color:#fffaf0; text-shadow:0 1px 1rem rgba(0,0,0,.3); }

.nav--scrolled {
  top:.65rem;
  color:#f8f1df;
  border-color:rgba(255,255,255,.15);
  background:rgba(28,31,28,.76);
  box-shadow:0 .85rem 2.7rem rgba(15,18,15,.24),inset 0 1px 0 rgba(255,255,255,.08);
}

.nav--scrolled .brand,
.nav--scrolled .nav-links>a:not(.button) { color:#fffaf0; text-shadow:0 1px 1rem rgba(0,0,0,.3); }
.nav--scrolled .button--small { background:var(--paper); color:var(--ink); }
.nav-links>a:not(.button) { position:relative; }
.nav-links>a:not(.button)::after { content:""; position:absolute; right:0; bottom:-.22rem; left:0; height:1px; background:currentColor; transform:scaleX(0); transform-origin:right; transition:transform .25s; }
.nav-links>a:not(.button):hover::after { transform:scaleX(1); transform-origin:left; }

.routes { position:relative; }
.routes::before { content:""; position:absolute; z-index:-1; top:16%; right:-8%; width:18rem; aspect-ratio:1; border-radius:50%; background:rgba(103,133,108,.12); filter:blur(4rem); }
.route-grid { grid-template-columns:minmax(0,1.25fr) minmax(290px,.75fr); grid-template-rows:repeat(2,minmax(250px,1fr)); gap:1.15rem; }
.route-card { position:relative; min-height:0; padding:1.1rem; isolation:isolate; box-shadow:inset 0 0 0 1px rgba(255,255,255,.15),0 1.2rem 3rem rgba(55,68,52,.12); }
.route-card::before { content:""; position:absolute; z-index:-1; inset:0; background:linear-gradient(120deg,rgba(255,255,255,.08),transparent 38%); pointer-events:none; }
.route-card--institution { grid-row:1 / 3; min-height:580px; }
.route-card--weddings,.route-card--events { min-height:280px; }
.route-number { align-self:flex-start; padding:.42rem .62rem; border:1px solid rgba(255,255,255,.18); border-radius:999px; background:rgba(19,23,20,.2); backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px); }
.route-copy { width:min(100%,34rem); margin-top:auto; padding:1.15rem; border:1px solid rgba(255,255,255,.14); border-radius:1rem; background:rgba(25,29,25,.45); box-shadow:inset 0 1px 0 rgba(255,255,255,.08); backdrop-filter:blur(14px) saturate(120%); -webkit-backdrop-filter:blur(14px) saturate(120%); transition:transform .35s,background .35s; }
.route-card:hover .route-copy { transform:translateY(-.25rem); background:rgba(25,29,25,.56); }
.route-card h3 { margin:0 0 .65rem; font-size:clamp(2rem,3.2vw,4rem); }
.route-card--weddings h3,.route-card--events h3 { font-size:clamp(1.65rem,2.25vw,2.65rem); }
.route-card p { max-width:none; }
.route-card .route-promise { margin-bottom:.55rem; color:rgba(255,255,255,.88); font-weight:600; }
.route-card .route-detail { max-width:46ch; margin-bottom:1rem; color:rgba(255,255,255,.64); font-size:.72rem; }
.route-card b { display:flex; justify-content:space-between; align-items:center; padding-top:.75rem; border-top:1px solid rgba(255,255,255,.15); }
.route-card i { transition:transform .3s; }
.route-card:hover i { transform:translate(.2rem,-.2rem); }
.trust-strip { display:flex; align-items:center; justify-content:center; gap:1.25rem; margin-top:1.15rem; padding:1rem 1.25rem; border:1px solid rgba(69,87,69,.12); border-radius:999px; background:rgba(255,255,255,.32); color:var(--muted); box-shadow:inset 0 1px 0 rgba(255,255,255,.55); backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px); font-size:.68rem; font-weight:650; letter-spacing:.035em; }
.trust-strip i { width:3px; height:3px; border-radius:50%; background:var(--pine); opacity:.65; }

.principle-visual { background:radial-gradient(circle,rgba(255,255,255,.48),transparent 48%),linear-gradient(140deg,var(--paper-deep),#f0f1df); }
.journal { background:linear-gradient(145deg,#262a25,#31372f); }
.journal-intro { max-width:32rem; color:rgba(248,241,223,.67); font-size:1rem; }
.contact-panel { background:linear-gradient(125deg,#343a32,#464a3d); box-shadow:0 1.2rem 3.6rem rgba(49,66,49,.18),inset 0 1px 0 rgba(255,255,255,.1); }
.contact-panel { min-height:32rem; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; }
.contact-panel h2 { max-width:12ch; }
.contact-panel>p:not(.eyebrow) { max-width:32rem; }

.reveal { opacity:0; transform:translateY(1.5rem); transition:opacity .8s ease,transform .8s cubic-bezier(.22,1,.36,1); }
.reveal.is-visible { opacity:1; transform:none; }

@media (max-width:760px) {
  .nav { top:.65rem; width:calc(100% - 1rem); padding:.55rem .55rem .55rem .85rem; border-radius:1rem; }
  .nav--scrolled { top:.4rem; }
  .route-grid { grid-template-columns:1fr; grid-template-rows:auto; }
  .route-card--institution { grid-row:auto; min-height:430px; }
  .route-card--weddings,.route-card--events { min-height:340px; }
  .route-card h3,.route-card--weddings h3,.route-card--events h3 { font-size:2.25rem; }
  .route-detail { display:block; }
  .trust-strip { flex-wrap:wrap; gap:.55rem .85rem; border-radius:1rem; text-align:center; }
  .hero-stage--process { display:none; }
}

@media (hover:none) {
  .route-card:hover { background-size:cover; transform:none; }
}

/* El revelado del hero usa una máscara progresiva para evitar un borde circular duro. */
.hero-stage--process {
  clip-path:none;
  opacity:0;
  -webkit-mask-image:radial-gradient(circle 18rem at var(--reveal-x) var(--reveal-y),#000 0 52%,rgba(0,0,0,.96) 61%,rgba(0,0,0,.7) 72%,rgba(0,0,0,.28) 84%,transparent 100%);
  mask-image:radial-gradient(circle 18rem at var(--reveal-x) var(--reveal-y),#000 0 52%,rgba(0,0,0,.96) 61%,rgba(0,0,0,.7) 72%,rgba(0,0,0,.28) 84%,transparent 100%);
  transition:opacity .3s ease;
}
.hero:hover .hero-stage--process { clip-path:none; opacity:1; }

/* Jerarquía editorial más contenida para devolver protagonismo a la imagen. */
.hero h1 {
  max-width:18ch;
  font-size:clamp(3.4rem,5.55vw,5.8rem);
  line-height:.94;
  letter-spacing:-.06em;
}
.hero-copy { max-width:42ch; font-size:1rem; line-height:1.6; }

/* Ventana de experiencias inspirada en interfaces editoriales y macOS. */
.experience-window {
  margin-top:3rem;
  padding:.7rem;
  border:1px solid rgba(61,76,62,.14);
  border-radius:2rem;
  background:rgba(244,247,232,.46);
  box-shadow:0 1.5rem 4rem rgba(54,67,53,.13),inset 0 1px 0 rgba(255,255,255,.75);
  backdrop-filter:blur(24px) saturate(105%);
  -webkit-backdrop-filter:blur(24px) saturate(105%);
}
.experience-toolbar {
  min-height:3.9rem;
  display:grid;
  grid-template-columns:1fr auto 1fr;
  align-items:center;
  gap:1rem;
  padding:.2rem .85rem .75rem;
  color:var(--muted);
  font-size:.62rem;
  font-weight:700;
  letter-spacing:.09em;
  text-transform:uppercase;
}
.experience-mark { display:flex; align-items:center; gap:.55rem; }
.experience-mark i { width:.5rem; height:.5rem; border-radius:50%; background:var(--pine); box-shadow:0 0 0 .25rem rgba(76,100,84,.1); }
.experience-hint { padding:.5rem .8rem; border:1px solid var(--line); border-radius:999px; background:rgba(255,255,255,.32); font-weight:600; letter-spacing:.04em; text-transform:none; }
.experience-count { justify-self:end; }
.experience-window .route-grid { margin-top:0; }
.experience-window .route-card { border-radius:1.45rem; }
.experience-window .route-copy {
  max-height:6.35rem;
  overflow:hidden;
  transition:max-height .48s cubic-bezier(.22,1,.36,1),transform .35s,background .35s;
}
.experience-window .route-promise,
.experience-window .route-detail,
.experience-window .route-card b {
  opacity:0;
  transform:translateY(.55rem);
  transition:opacity .25s ease .04s,transform .35s ease .04s;
}
.experience-window .route-card:hover .route-copy,
.experience-window .route-card:focus-visible .route-copy {
  max-height:19rem;
}
.experience-window .route-card:hover .route-promise,
.experience-window .route-card:hover .route-detail,
.experience-window .route-card:hover b,
.experience-window .route-card:focus-visible .route-promise,
.experience-window .route-card:focus-visible .route-detail,
.experience-window .route-card:focus-visible b {
  opacity:1;
  transform:none;
}
.experience-window .route-card:focus-visible { outline:2px solid var(--pine); outline-offset:3px; }

@media (max-width:760px) {
  .hero h1 { max-width:14ch; font-size:clamp(3rem,13vw,4.15rem); }
  .experience-window { padding:.45rem; border-radius:1.45rem; }
  .experience-toolbar { grid-template-columns:1fr auto; min-height:3.5rem; padding:.2rem .65rem .55rem; }
  .experience-hint { display:none; }
  .experience-window .route-copy { max-height:none; }
  .experience-window .route-promise { opacity:1; transform:none; margin-bottom:0; }
  .experience-window .route-detail,
  .experience-window .route-card b { display:none; }
}

/* Bitácora: la narración conserva la jerarquía; la interfaz muestra el proceso. */
.journal { position:relative; overflow:hidden; }
.journal::before {
  content:"";
  position:absolute;
  top:-14rem;
  right:-10rem;
  width:34rem;
  aspect-ratio:1;
  border-radius:50%;
  background:rgba(148,168,143,.12);
  filter:blur(6rem);
  pointer-events:none;
}
.journal-layout {
  position:relative;
  grid-template-columns:minmax(250px,.62fr) minmax(0,1.38fr);
  gap:clamp(3rem,7vw,7rem);
  align-items:start;
}
.journal .section-heading { position:sticky; top:8rem; padding-top:1.2rem; }
.journal .section-heading h2 { max-width:9ch; margin-bottom:1.35rem; }
.journal-intro { line-height:1.65; }

.journal-window {
  padding:.7rem;
  border:1px solid rgba(255,255,255,.14);
  border-radius:2rem;
  background:rgba(231,234,218,.1);
  box-shadow:0 2rem 5rem rgba(7,10,7,.28),inset 0 1px 0 rgba(255,255,255,.12);
  backdrop-filter:blur(24px) saturate(90%);
  -webkit-backdrop-filter:blur(24px) saturate(90%);
}
.journal-toolbar {
  min-height:3.8rem;
  display:grid;
  grid-template-columns:1fr auto 1fr;
  align-items:center;
  gap:1rem;
  padding:.15rem .8rem .7rem;
  color:rgba(248,241,223,.57);
  font-size:.59rem;
  font-weight:700;
  letter-spacing:.09em;
  text-transform:uppercase;
}
.journal-mark { display:flex; align-items:center; gap:.55rem; color:rgba(248,241,223,.83); }
.journal-mark i { width:.48rem; height:.48rem; border-radius:50%; background:#aabd9e; box-shadow:0 0 0 .28rem rgba(170,189,158,.1); }
.journal-categories { padding:.46rem .75rem; border:1px solid rgba(255,255,255,.12); border-radius:999px; background:rgba(255,255,255,.05); letter-spacing:.045em; text-transform:none; }
.journal-count { justify-self:end; }

.journal-stage { display:grid; grid-template-columns:minmax(150px,.34fr) minmax(0,1fr); gap:.65rem; }
.journal-rail,
.journal-feature { min-height:34rem; border:1px solid rgba(255,255,255,.11); border-radius:1.4rem; overflow:hidden; }
.journal-rail {
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  padding:1.15rem;
  background:rgba(235,237,222,.14);
  color:#f8f1df;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.09);
}
.journal-rail-copy { display:flex; width:100%; flex:1; flex-direction:column; justify-content:center; }
.journal-index { color:rgba(248,241,223,.5); font-size:.56rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.journal-rail-copy strong { max-width:12ch; margin-top:clamp(2.5rem,4vw,4rem); font-family:"Instrument Sans",sans-serif; font-size:clamp(1.35rem,2vw,1.85rem); font-weight:500; line-height:1.02; letter-spacing:-.045em; }
.journal-rail-copy>p { max-width:23ch; margin:1rem 0 .1rem; color:rgba(248,241,223,.59); font-size:.68rem; line-height:1.55; }

.journal-feature {
  position:relative;
  background:linear-gradient(180deg,rgba(17,20,18,.04),rgba(17,20,18,.12)),url('../assets/placeholders/eventos.jpg') center/cover;
}

.journal-capsule {
  min-height:6.2rem;
  display:grid;
  grid-template-columns:4.7rem minmax(0,1fr) auto 2.8rem;
  align-items:center;
  gap:1rem;
  margin-top:.65rem;
  padding:.65rem .75rem;
  border:1px solid rgba(255,255,255,.13);
  border-radius:999px;
  background:rgba(235,237,222,.14);
  color:#f8f1df;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.09);
  transition:background .3s,transform .3s;
}
.journal-capsule:hover { transform:translateY(-.2rem); background:rgba(235,237,222,.2); }
.journal-capsule-thumb { height:100%; min-height:4.7rem; border-radius:50%; background:linear-gradient(0deg,rgba(23,28,24,.22),rgba(23,28,24,.04)),url('../assets/placeholders/eventos.jpg') center/cover; }
.journal-capsule-copy { display:flex; flex-direction:column; gap:.3rem; }
.journal-capsule-copy small { color:rgba(248,241,223,.5); font-size:.55rem; letter-spacing:.07em; text-transform:uppercase; }
.journal-capsule-copy strong { max-width:28ch; font-family:"Instrument Sans",sans-serif; font-size:clamp(1rem,1.4vw,1.3rem); line-height:1.05; letter-spacing:-.035em; font-weight:500; }
.journal-capsule-note { color:rgba(248,241,223,.52); font-size:.59rem; font-weight:650; text-transform:uppercase; letter-spacing:.06em; }
.journal-capsule>i { width:2.8rem; aspect-ratio:1; display:grid; place-items:center; border:1px solid rgba(255,255,255,.18); border-radius:50%; font-style:normal; transition:transform .3s,background .3s; }
.journal-capsule:hover>i { transform:rotate(8deg); background:rgba(255,255,255,.09); }

@media (max-width:980px) {
  .journal-layout { grid-template-columns:1fr; gap:3rem; }
  .journal .section-heading { position:static; padding-top:0; }
  .journal .section-heading h2 { max-width:11ch; }
}

@media (max-width:760px) {
  .journal-window { padding:.45rem; border-radius:1.5rem; }
  .journal-toolbar { grid-template-columns:1fr auto; min-height:3.4rem; padding:.1rem .65rem .5rem; }
  .journal-categories { display:none; }
  .journal-stage { grid-template-columns:1fr; }
  .journal-rail { min-height:0; padding:1rem; }
  .journal-rail-copy { min-width:0; padding-top:0; }
  .journal-rail-copy strong { max-width:24ch; margin:.55rem 0 0; font-size:1.3rem; }
  .journal-rail-copy>p { max-width:42ch; margin:.7rem 0 0; }
  .journal-feature { min-height:31rem; }
  .journal-capsule { min-height:5rem; grid-template-columns:3.7rem 1fr 2.5rem; gap:.75rem; padding:.55rem; }
  .journal-capsule-thumb { min-height:3.7rem; }
  .journal-capsule-note { display:none; }
  .journal-capsule>i { width:2.5rem; }
}

@media (max-width:430px) {
  .journal-rail-copy>p { font-size:.64rem; }
  .journal-feature { min-height:27rem; }
  .journal-capsule-copy strong { font-size:.92rem; }
}

/* Rutas: cápsulas compactas que comparten el lenguaje visual de la Bitácora. */
.experience-window .route-copy {
  width:min(100%,31rem);
  min-height:4.25rem;
  max-height:4.25rem;
  padding:.55rem .62rem .55rem 1.15rem;
  border-color:rgba(255,255,255,.16);
  border-radius:999px;
  background:rgba(226,228,215,.18);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.11),0 .65rem 1.8rem rgba(12,15,12,.12);
  backdrop-filter:blur(18px) saturate(90%);
  -webkit-backdrop-filter:blur(18px) saturate(90%);
  transition:max-height .48s cubic-bezier(.22,1,.36,1),padding .35s,border-radius .35s,transform .35s,background .35s;
}
.route-copy-head { display:flex; align-items:center; justify-content:space-between; gap:1rem; }
.experience-window .route-card h3,
.experience-window .route-card--weddings h3,
.experience-window .route-card--events h3 {
  margin:0;
  font-size:clamp(1.45rem,2.15vw,2.25rem);
  line-height:1;
}
.route-arrow {
  width:3rem;
  aspect-ratio:1;
  flex:0 0 auto;
  display:grid;
  place-items:center;
  border:1px solid rgba(255,255,255,.2);
  border-radius:50%;
  color:rgba(255,255,255,.92)!important;
  font-size:.9rem!important;
  transition:transform .3s,background .3s;
}
.experience-window .route-card:hover .route-copy,
.experience-window .route-card:focus-visible .route-copy {
  max-height:18rem;
  padding:1rem;
  border-radius:1.35rem;
  background:rgba(42,46,41,.63);
}
.experience-window .route-card:hover .route-arrow,
.experience-window .route-card:focus-visible .route-arrow { transform:rotate(8deg); background:rgba(255,255,255,.09); }
.experience-window .route-card .route-promise { margin-top:.9rem; }
.experience-window .route-card b { justify-content:flex-start; }

@media (max-width:760px) {
  .experience-window .route-copy {
    min-height:5.7rem;
    max-height:5.7rem;
    padding:.7rem .72rem .7rem 1rem;
    border-radius:1.35rem;
  }
  .experience-window .route-card h3,
  .experience-window .route-card--weddings h3,
  .experience-window .route-card--events h3 { font-size:1.8rem; }
  .route-arrow { width:2.75rem; }
  .experience-window .route-promise { margin:.45rem 3.2rem 0 0!important; font-size:.68rem; }
}

/* Método: relato de scroll con el mensaje principal en posición fija. */
.method {
  display:grid;
  grid-template-columns:minmax(0,1.12fr) minmax(330px,.88fr);
  gap:clamp(4rem,9vw,10rem);
  align-items:start;
  padding-bottom:clamp(5rem,9vw,9rem);
}
.method-intro {
  position:sticky;
  top:clamp(7.5rem,16vh,10rem);
  align-self:start;
}
.method-intro h2 { max-width:12ch; margin-bottom:0; }
.method .method-steps {
  position:relative;
  display:block;
  margin:0;
  padding:0 0 0 1rem;
  list-style:none;
}
.method .method-steps::before {
  content:"";
  position:absolute;
  top:12vh;
  bottom:12vh;
  left:2.02rem;
  width:1px;
  background:linear-gradient(180deg,transparent,var(--line) 8%,var(--line) 92%,transparent);
}
.method .method-step {
  position:relative;
  min-height:58vh;
  display:grid;
  grid-template-columns:3.2rem minmax(0,1fr);
  gap:1.5rem;
  align-items:center;
  padding:2rem 0;
  border:0;
  opacity:1;
  transform:none;
  transition:opacity .55s ease,transform .65s cubic-bezier(.22,1,.36,1);
}
.method.is-animated .method-step { opacity:0; transform:translateY(2rem); }
.method .method-step>span {
  position:relative;
  z-index:1;
  width:2.1rem;
  aspect-ratio:1;
  display:grid;
  place-items:center;
  border:1px solid var(--line);
  border-radius:50%;
  background:var(--paper);
  color:var(--muted);
  font-size:.62rem;
  transition:color .4s,border-color .4s,background .4s;
}
.method .method-step>div { min-width:0; }
.method .method-step strong {
  display:block;
  font-family:"Instrument Sans",sans-serif;
  font-size:clamp(2.7rem,5vw,5.4rem);
  font-weight:500;
  line-height:.92;
  letter-spacing:-.06em;
}
.method .method-step p {
  max-width:31ch;
  margin:1.15rem 0 0;
  color:var(--muted);
  font-size:.9rem;
  line-height:1.65;
}
.method.is-animated .method-step.is-seen { opacity:.36; transform:none; }
.method.is-animated .method-step.is-active { opacity:1; transform:none; }
.method .method-step.is-active>span { border-color:var(--pine); background:var(--pine); color:#f8f1df; }
.method.is-animated .method-step.is-past { opacity:.3; }

@media (max-width:900px) {
  .method { grid-template-columns:1fr; gap:4rem; }
  .method-intro { position:static; }
  .method-intro h2 { max-width:13ch; }
  .method .method-step { min-height:42svh; }
}

@media (max-width:760px) {
  .method { gap:2.5rem; }
  .method .method-steps { padding-left:0; }
  .method .method-steps::before { top:8vh; bottom:8vh; left:1.02rem; }
  .method .method-step { min-height:36svh; grid-template-columns:2.2rem minmax(0,1fr); gap:1rem; padding:1.5rem 0; }
  .method .method-step>span { width:2.05rem; }
  .method .method-step strong { font-size:clamp(2.7rem,14vw,4rem); }
  .method .method-step p { margin-top:.8rem; font-size:.82rem; }
}

@media (prefers-reduced-motion:reduce) {
  .method .method-step { min-height:auto; padding:3rem 0; opacity:1; transform:none; }
}

/* Experiencias: escenario atmosférico con navegación sincronizada. */
.routes {
  position:relative;
  z-index:2;
  isolation:isolate;
  overflow:clip;
  margin-top:0;
  padding:0;
  border-radius:0;
  color:#f8f1df;
  background:#1d211b;
}
.routes::before {
  content:"";
  position:absolute;
  z-index:0;
  inset:0;
  width:auto;
  aspect-ratio:auto;
  border-radius:0;
  background:
    radial-gradient(circle at 9% 31%,rgba(185,137,56,.44),transparent 28%),
    radial-gradient(circle at 33% 72%,rgba(125,94,39,.22),transparent 33%),
    radial-gradient(circle at 88% 51%,rgba(55,104,75,.38),transparent 36%),
    linear-gradient(135deg,#3a321f 0%,#23281e 43%,#14221a 100%);
  filter:none;
  pointer-events:none;
}
.routes::after {
  content:"";
  position:absolute;
  z-index:0;
  inset:0;
  opacity:.22;
  background:repeating-linear-gradient(115deg,rgba(255,255,255,.025) 0 1px,transparent 1px 5px);
  pointer-events:none;
}
.routes-layout {
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:minmax(290px,.78fr) minmax(0,1.22fr);
  gap:clamp(4rem,9vw,10rem);
  align-items:start;
}
.routes-intro {
  position:sticky;
  top:0;
  height:100svh;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  padding:clamp(7.5rem,15vh,10rem) 0 clamp(3.5rem,8vh,6rem);
}
.routes .eyebrow { color:rgba(248,241,223,.55); }
.routes-intro h2 { max-width:9ch; margin-bottom:1.5rem; font-size:clamp(3.2rem,5.6vw,5.8rem); }
.routes-lead { max-width:34ch; color:rgba(248,241,223,.62); font-size:.9rem; line-height:1.65; }
.route-selector { display:grid; gap:.35rem; width:min(100%,23rem); margin-block:2rem; }
.route-selector-item {
  width:100%;
  display:grid;
  grid-template-columns:2rem 1fr;
  align-items:center;
  gap:.8rem;
  padding:.7rem .85rem;
  border:1px solid rgba(255,255,255,.06);
  border-radius:.55rem;
  color:rgba(248,241,223,.34);
  background:rgba(10,13,10,.18);
  font:inherit;
  text-align:left;
  cursor:pointer;
  transition:color .35s,background .35s,border-color .35s,transform .35s;
}
.route-selector-item span { font-size:.58rem; letter-spacing:.08em; }
.route-selector-item strong { font-size:.7rem; font-weight:600; }
.route-selector-item:hover { color:rgba(248,241,223,.72); transform:translateX(.2rem); }
.route-selector-item.is-active { border-color:rgba(255,255,255,.12); color:#f8f1df; background:rgba(10,13,10,.3); }
.routes-signoff { margin:0; color:rgba(248,241,223,.55); font-size:.68rem; font-weight:600; line-height:1.6; }

.route-scenes { display:grid; gap:clamp(4rem,9vh,7rem); padding:clamp(7.5rem,15vh,10rem) 0; }
.route-scene {
  min-height:min(78svh,48rem);
  display:flex;
  flex-direction:column;
  padding:1rem;
  border:1px solid rgba(255,255,255,.1);
  border-radius:1.8rem;
  background:rgba(13,17,13,.26);
  box-shadow:0 2rem 5rem rgba(3,6,3,.22),inset 0 1px 0 rgba(255,255,255,.08);
  backdrop-filter:blur(14px) saturate(90%);
  -webkit-backdrop-filter:blur(14px) saturate(90%);
  opacity:1;
  transform:none;
  transition:opacity .7s ease,transform .8s cubic-bezier(.22,1,.36,1),border-color .5s;
}
.routes.is-animated .route-scene { opacity:.24; transform:translateX(3rem) scale(.985); }
.routes.is-animated .route-scene.is-seen { opacity:.52; transform:none; }
.route-scene.is-active { border-color:rgba(255,255,255,.18); }
.routes.is-animated .route-scene.is-active { opacity:1; transform:none; }
.route-scene-top { display:flex; justify-content:space-between; gap:1rem; padding:.25rem .35rem .85rem; color:rgba(248,241,223,.53); font-size:.56rem; font-weight:650; letter-spacing:.07em; text-transform:uppercase; }
.route-scene>img { width:100%; min-height:22rem; flex:1; object-fit:cover; border-radius:1.2rem; filter:saturate(.86) contrast(.96); }
.route-scene-content { padding:1.2rem .35rem .25rem; }
.route-scene-content>p:first-child { margin-bottom:.55rem; color:rgba(248,241,223,.58); font-size:.72rem; }
.route-scene-content h3 { margin-bottom:.75rem; font-size:clamp(2.5rem,4.8vw,5rem); }
.route-scene-detail { max-width:38ch; margin-bottom:1.3rem; color:rgba(248,241,223,.66); font-size:.82rem; line-height:1.6; }
.route-scene-content>a {
  min-height:4.25rem;
  display:grid;
  grid-template-columns:1fr 3rem;
  align-items:center;
  gap:1rem;
  padding:.55rem .62rem .55rem 1.2rem;
  border:1px solid rgba(255,255,255,.13);
  border-radius:999px;
  background:rgba(235,237,222,.13);
  font-size:.7rem;
  font-weight:700;
  transition:background .3s,transform .3s;
}
.route-scene-content>a:hover { transform:translateY(-.15rem); background:rgba(235,237,222,.2); }
.route-scene-content>a i { width:3rem; aspect-ratio:1; display:grid; place-items:center; border:1px solid rgba(255,255,255,.18); border-radius:50%; font-style:normal; }

@media (max-width:900px) {
  .routes-layout { grid-template-columns:1fr; gap:0; }
  .routes-intro { position:relative; height:auto; padding:6rem 0 2.5rem; }
  .routes-intro h2 { max-width:10ch; }
  .route-selector { display:none; }
  .routes-signoff { margin-top:2rem; }
  .route-scenes { gap:1.25rem; padding:0 0 6rem; }
  .route-scene { min-height:auto; opacity:1; transform:none; }
  .route-scene>img { min-height:0; aspect-ratio:4/3; flex:none; }
}

@media (max-width:520px) {
  .routes-intro h2 { font-size:clamp(3rem,14vw,4.2rem); }
  .route-scene { padding:.55rem; border-radius:1.45rem; }
  .route-scene-top { padding:.35rem .35rem .65rem; }
  .route-scene-top span:last-child { display:none; }
  .route-scene>img { aspect-ratio:4/5; border-radius:1rem; }
  .route-scene-content { padding:1rem .45rem .35rem; }
  .route-scene-content h3 { font-size:2.55rem; }
  .route-scene-content>a { min-height:3.8rem; grid-template-columns:1fr 2.7rem; }
  .route-scene-content>a i { width:2.7rem; }
}

@media (prefers-reduced-motion:reduce) {
  .route-scene { opacity:1; transform:none; }
}

/* Hero: imagen limpia y relato concentrado en una franja de cristal inferior. */
.hero { min-height:100svh; }
.hero-glass {
  position:relative;
  z-index:1;
  width:100%;
  height:clamp(12.35rem,23.75svh,14.25rem);
  margin-top:auto;
  padding:1.1rem 0;
  border-top:1px solid rgba(255,255,255,.16);
  border-radius:2.25rem 2.25rem 0 0;
  background:
    linear-gradient(90deg,rgba(255,255,255,.035),transparent 7%,transparent 93%,rgba(255,255,255,.025)),
    linear-gradient(180deg,rgba(29,32,28,.48),rgba(39,42,34,.76) 72%,rgba(70,55,31,.7));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.08),0 -1.5rem 4rem rgba(8,11,8,.12);
  backdrop-filter:blur(36px) saturate(88%);
  -webkit-backdrop-filter:blur(36px) saturate(88%);
}
.hero-glass-layout {
  height:100%;
  display:grid;
  grid-template-columns:minmax(0,1.28fr) minmax(280px,.72fr);
  gap:clamp(2.5rem,7vw,7rem);
  align-items:center;
}
.hero-glass-title,
.hero-glass-action { align-self:center; }
.hero-glass .eyebrow { margin-bottom:.5rem; color:rgba(248,241,223,.58); font-size:.53rem; }
.hero-glass .hero-glass-title h1 {
  max-width:22ch;
  margin-bottom:0;
  font-size:clamp(2.25rem,3.15vw,3.32rem);
  line-height:.92;
  letter-spacing:-.06em;
}
.hero-glass .hero-copy { max-width:46ch; margin-bottom:0; color:rgba(248,241,223,.72); font-size:.67rem; line-height:1.55; }
.hero-glass .hero-actions { gap:1rem; margin-top:.85rem; flex-wrap:wrap; }
.hero-glass .hero-actions .button { padding:.65rem .85rem; font-size:.62rem; }
.hero-glass .hero-actions .text-link { font-size:.62rem; }
.hero-glass .hero-note { width:auto; margin:.65rem 0 0; color:rgba(248,241,223,.42); font-size:.48rem; }

@media (max-width:900px) {
  .hero-glass { height:auto; min-height:36svh; padding-block:1.5rem 1.35rem; }
  .hero-glass-layout { grid-template-columns:1fr; gap:1rem; }
  .hero-glass .hero-glass-title h1 { max-width:20ch; font-size:clamp(2rem,5.55vw,2.85rem); }
  .hero-glass .hero-copy { max-width:48ch; }
}

@media (max-width:760px) {
  .hero { min-height:100svh; }
  .hero-glass {
    min-height:0;
    margin-top:auto;
    padding:1.05rem 0 .95rem;
    border-radius:1.7rem 1.7rem 0 0;
    background:linear-gradient(180deg,rgba(27,30,26,.5),rgba(35,39,32,.8) 66%,rgba(57,47,30,.74));
    backdrop-filter:blur(28px) saturate(88%);
    -webkit-backdrop-filter:blur(28px) saturate(88%);
  }
  .hero-glass-layout { gap:.8rem; }
  .hero-glass .eyebrow { margin-bottom:.5rem; }
  .hero-glass .hero-glass-title h1 { max-width:18ch; font-size:clamp(1.75rem,7.5vw,2.25rem); }
  .hero-glass .hero-copy { font-size:.67rem; line-height:1.5; }
  .hero-glass .hero-actions { gap:.8rem; margin-top:.65rem; }
  .hero-glass .button { padding:.62rem .82rem; }
  .hero-glass-layout { width:min(100% - 2.5rem,1280px); }
}

@media (max-width:430px) {
  .hero-glass .hero-glass-title h1 { max-width:18ch; font-size:clamp(1.7rem,7.35vw,2rem); }
  .hero-glass .hero-actions .text-link { font-size:.6rem; }
}

/* Afinación editorial: lectura, ritmo y superficies compartidas. */
:root {
  --panel-radius:1.8rem;
  --panel-border:rgba(255,255,255,.16);
  --capsule-fill:rgba(235,237,222,.16);
}
.hero-glass .hero-copy { font-size:.82rem; line-height:1.5; }
.hero-glass .hero-actions .button,
.hero-glass .hero-actions .text-link { font-size:.76rem; min-height:44px; }
.hero-glass .hero-actions .text-link { align-items:center; }
.hero-glass .hero-note { font-size:.6rem; }
.hero-glass .eyebrow { font-size:.6rem; }
.hero-glass-layout { gap:clamp(2rem,4vw,4rem); }

.routes-intro { height:auto; min-height:0; top:6.5rem; padding:2rem 0 3rem; margin-top:5rem; gap:1rem; }
.routes-intro h2 { max-width:11ch; font-size:clamp(3rem,4.6vw,4.6rem); }
.route-selector { margin-block:.75rem; }
.route-selector-item { border-radius:999px; color:rgba(248,241,223,.65); }
.route-selector-item.is-active { background:var(--capsule-fill); border-color:var(--panel-border); }
.route-selector-item strong { font-size:.82rem; }
.route-scenes { gap:2rem; padding:7rem 0 5rem; }
.route-scene { min-height:0; border-radius:var(--panel-radius); }
.route-scene>img { min-height:0; height:auto; aspect-ratio:16/9; flex:none; }
.route-scene-content { padding:1rem .35rem .25rem; }
.route-scene-content h3 { font-size:clamp(2rem,3.2vw,3rem); margin-bottom:.6rem; }
.route-scene-detail { max-width:48ch; margin-bottom:1rem; }
.route-scene-content>a { min-height:3.5rem; grid-template-columns:1fr 2.5rem; padding:.45rem .55rem .45rem 1.1rem; font-size:.8rem; }
.route-scene-content>a,
.journal-capsule { background:var(--capsule-fill); border-color:var(--panel-border); }
.route-scene-content>a i { width:2.5rem; }
.route-scene-content>a i,
.journal-capsule>i { border-color:var(--panel-border); transition:transform .25s,background .25s; }
.route-scene-content>a:hover i,
.journal-capsule:hover>i { transform:translate(2px,-2px); background:rgba(255,255,255,.08); }
.principle { gap:clamp(2.5rem,6vw,6rem); align-items:center; }
.principle-photo { position:relative; margin:0; padding:.7rem; border:1px solid var(--line); border-radius:var(--panel-radius); background:rgba(255,255,255,.28); box-shadow:0 1rem 3rem rgba(30,40,29,.08); }
.principle-photo img { display:block; width:100%; aspect-ratio:4/5; object-fit:cover; border-radius:1.2rem; }
.principle-photo figcaption { padding:1rem .5rem .4rem; color:var(--muted); font-size:.8rem; }
.principle-copy h2 { font-size:clamp(2.6rem,4.2vw,4.5rem); margin-bottom:1.5rem; }
.principle-copy>p:not(.eyebrow) { line-height:1.65; }
.contact-panel { border-radius:var(--panel-radius); border:1px solid var(--panel-border); }
.contact-panel>p:not(.eyebrow) { max-width:42ch; line-height:1.65; }
.contact {
  position:relative;
  isolation:isolate;
  overflow:hidden;
  padding:clamp(5rem,10vw,9rem) 0 clamp(2rem,4vw,3.5rem);
  color:#f6f1df;
  background:
    radial-gradient(ellipse at 14% 18%,rgba(157,119,56,.34),transparent 35rem),
    radial-gradient(ellipse at 88% 78%,rgba(62,111,78,.36),transparent 42rem),
    linear-gradient(118deg,#1b201b 0%,#252b25 50%,#17231e 100%);
}
.contact::before {
  position:absolute;
  z-index:-1;
  inset:0;
  content:"";
  opacity:.16;
  background-image:linear-gradient(rgba(255,255,255,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.06) 1px,transparent 1px);
  background-size:72px 72px;
  mask-image:linear-gradient(90deg,transparent,black 28%,black 76%,transparent);
  pointer-events:none;
}
.contact-content { position:relative; z-index:1; min-height:31rem; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; }
.contact-status { width:min(100%,48rem); display:flex; align-items:center; gap:.8rem; margin-bottom:clamp(3rem,7vw,6rem); color:rgba(246,241,223,.55); font-size:.58rem; font-weight:700; letter-spacing:.1em; }
.contact-lights { display:flex; gap:.3rem; }
.contact-lights i { width:.42rem; height:.42rem; border-radius:50%; background:rgba(246,241,223,.25); }
.contact-lights i:first-child { background:#d28f6f; }
.contact-lights i:nth-child(2) { background:#dfc278; }
.contact-lights i:nth-child(3) { background:#8cac86; }
.contact-status-live { display:inline-flex; align-items:center; gap:.45rem; margin-left:auto; padding:.42rem .65rem; border:1px solid rgba(255,255,255,.12); border-radius:999px; background:rgba(255,255,255,.045); }
.contact-status-live i { width:.38rem; height:.38rem; border-radius:50%; background:#9ac59a; box-shadow:0 0 .75rem rgba(154,197,154,.72); }
.contact-content .eyebrow { color:rgba(231,205,143,.78); }
.contact-content h2 { max-width:12ch; margin-bottom:1.2rem; font-size:clamp(3.2rem,8vw,7rem); letter-spacing:-.075em; }
.contact-copy { max-width:38rem; color:rgba(246,241,223,.7); line-height:1.7; }
.contact-content .button { margin-top:1.1rem; color:#252921; }
.contact-orbit { position:absolute; z-index:-1; width:min(52vw,43rem); aspect-ratio:1; border:1px solid rgba(238,230,201,.1); border-radius:50%; pointer-events:none; }
.contact-orbit::before,.contact-orbit::after { position:absolute; inset:12%; border:1px solid rgba(238,230,201,.07); border-radius:50%; content:""; }
.contact-orbit::after { inset:25%; }
.contact-orbit--one { top:-42%; left:-20%; box-shadow:0 0 0 4vw rgba(255,255,255,.012),0 0 0 9vw rgba(255,255,255,.012); }
.contact-orbit--two { right:-24%; bottom:-72%; width:min(65vw,55rem); border-color:rgba(155,190,145,.14); }
.contact-footnote { width:min(100%,48rem); display:flex; justify-content:space-between; gap:1rem; margin-top:clamp(4rem,8vw,7rem); padding-top:1rem; border-top:1px solid rgba(255,255,255,.14); color:rgba(246,241,223,.43); font-size:.56rem; font-weight:700; letter-spacing:.09em; }
.footer--immersive { width:100%; max-width:none; margin:0; padding:1rem max(calc((100% - 1280px)/2),1.5rem) 1.4rem; color:rgba(246,241,223,.56); background:linear-gradient(118deg,#1b201b 0%,#252b25 50%,#17231e 100%); }
.text-link:focus-visible,.button:focus-visible,.route-selector-item:focus-visible,
.route-scene-content>a:focus-visible,.journal-capsule:focus-visible { outline:2px solid currentColor; outline-offset:5px; }
.nav a:focus-visible,.brand:focus-visible { outline:2px solid currentColor; outline-offset:5px; }
.nav-links { margin-left:auto; }
.mobile-nav { position:relative; display:none; margin-left:.45rem; }
.mobile-nav summary {
  min-height:44px;
  display:flex;
  align-items:center;
  gap:.45rem;
  padding:.65rem .85rem;
  border:1px solid rgba(255,255,255,.13);
  border-radius:999px;
  color:#fffaf0;
  background:rgba(255,255,255,.07);
  font-size:.7rem;
  font-weight:700;
  list-style:none;
  cursor:pointer;
}
.mobile-nav summary::-webkit-details-marker { display:none; }
.mobile-nav summary span { font-size:1rem; font-weight:400; line-height:1; transition:transform .2s; }
.mobile-nav[open] summary span { transform:rotate(45deg); }
.mobile-nav summary:focus-visible,.mobile-nav-panel a:focus-visible { outline:2px solid currentColor; outline-offset:4px; }
.mobile-nav-panel {
  position:absolute;
  top:calc(100% + .55rem);
  right:0;
  width:min(16rem,calc(100vw - 1rem));
  display:grid;
  padding:.45rem;
  border:1px solid rgba(255,255,255,.14);
  border-radius:1.1rem;
  background:rgba(28,31,28,.94);
  box-shadow:0 1.2rem 3rem rgba(8,10,8,.28);
  backdrop-filter:blur(28px) saturate(85%);
  -webkit-backdrop-filter:blur(28px) saturate(85%);
}
.mobile-nav-panel a { padding:.8rem .9rem; border-radius:.75rem; color:#fffaf0; font-size:.78rem; }
.mobile-nav-panel a:hover { background:rgba(255,255,255,.08); }
@media (max-width:900px) {
  .routes-intro { top:auto; margin-top:0; padding:5rem 0 2.5rem; gap:0; }
  .route-scenes { padding:0 0 4rem; gap:1.5rem; }
  .route-scene,.route-scene.is-seen,
  .routes.is-animated .route-scene,
  .routes.is-animated .route-scene.is-seen { opacity:1; transform:none; }
}
@media (max-width:760px) {
  .mobile-nav { display:block; }
  .hero-glass .hero-copy { font-size:.8rem; }
  .hero-glass-layout { gap:.85rem; }
  .hero-glass .hero-actions { gap:.85rem; }
  .hero-glass .hero-actions .text-link { font-size:.74rem; }
  .principle-photo { max-width:32rem; width:100%; }
  .principle-photo img { aspect-ratio:4/3; }
  .routes-intro h2 { font-size:clamp(2.8rem,10vw,4rem); }
  .route-scene>img { aspect-ratio:3/2; }
  .route-scene-content h3 { font-size:2.2rem; }
  .contact { padding-top:4.5rem; }
  .contact-content { min-height:26rem; }
  .contact-status { margin-bottom:3.5rem; font-size:.49rem; letter-spacing:.075em; }
  .contact-content h2 { font-size:clamp(3rem,14vw,5rem); }
  .contact-footnote { flex-direction:column; align-items:center; margin-top:4rem; font-size:.5rem; text-align:center; }
}
@media (max-width:360px) {
  .nav-links .button { display:none; }
}

@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { animation-duration:.01ms!important; animation-iteration-count:1!important; transition-duration:.01ms!important; scroll-behavior:auto!important; }
  .reveal,.reveal.is-visible,
  .method.is-animated .method-step,
  .method.is-animated .method-step.is-seen,
  .method.is-animated .method-step.is-active,
  .method.is-animated .method-step.is-past,
  .routes.is-animated .route-scene,
  .routes.is-animated .route-scene.is-seen,
  .routes.is-animated .route-scene.is-active { opacity:1; transform:none; }
  .hero-stage--process { display:none; }
}
