:root {
  --bg: #0b0b0d;
  --bg-soft: #15161a;
  --surface: rgba(255,255,255,0.04);
  --surface-strong: rgba(255,255,255,0.08);
  --text: #f7f3f5;
  --muted: #c7c7c7;
  /* Rojo corporativo extraído del logotipo. */
  --primary: #ff0000;
  --primary-2: #ff0000;
  --line: rgba(255,255,255,0.12);
  --shadow: 0 24px 70px rgba(0,0,0,0.35);
  --radius: 22px;
  --container: 1180px;
}

/* Responsive navigation: the compact header uses a familiar dropdown on
   touch screens and in narrow desktop windows, without gesture-only controls. */
@media (max-width:900px) {
  .nav .nav-links {
    left:auto !important;
    right:max(.7rem, calc((100vw - var(--container)) / 2)) !important;
    top:72px !important;
    width:min(360px, calc(100vw - 1.4rem)) !important;
    height:auto !important;
    min-height:0 !important;
    display:flex !important;
    flex-direction:column !important;
    gap:.35rem !important;
    padding:.65rem !important;
    overflow:visible !important;
    border:1px solid rgba(255,194,220,.31) !important;
    border-radius:18px !important;
    perspective:none !important;
    background:linear-gradient(145deg,rgba(31,28,34,.99),rgba(7,8,10,.995)),url("assets/asphalt-cracked-v1.webp") center/640px !important;
    box-shadow:0 20px 48px rgba(0,0,0,.55) !important;
    transform:translateY(-10px) scale(.98) !important;
  }
  .nav .nav-links::before,.nav .nav-links::after { display:none !important; }
  .nav .nav-links.open { display:flex !important; transform:none !important; touch-action:auto !important; }
  .nav .nav-links.open a,.nav .nav-links.open a:nth-child(n) {
    position:relative !important;
    inset:auto !important;
    z-index:auto !important;
    width:100% !important;
    min-height:48px !important;
    margin:0 !important;
    padding:.8rem 2.4rem .8rem 1rem !important;
    display:flex !important;
    align-items:center !important;
    border:1px solid rgba(255,255,255,.08) !important;
    border-radius:10px !important;
    color:rgba(255,255,255,.86) !important;
    font-size:.93rem !important;
    font-weight:750 !important;
    letter-spacing:.03em !important;
    text-transform:none !important;
    white-space:normal !important;
    background:rgba(255,255,255,.035) !important;
    box-shadow:none !important;
    filter:none !important;
    opacity:1 !important;
    transform:none !important;
    transition:background .18s ease,border-color .18s ease,color .18s ease !important;
  }
  .nav .nav-links.open a::before { display:none !important; }
  .nav .nav-links.open a::after { content:"›" !important; display:block !important; position:absolute; right:1rem; top:50%; color:#ff9caf; font-size:1.25rem; line-height:1; transform:translateY(-50%); }
  .nav .nav-links.open a:hover,.nav .nav-links.open a:focus-visible,.nav .nav-links.open a[aria-current="page"] { color:#fff !important; border-color:rgba(255,169,196,.62) !important; background:linear-gradient(105deg,rgba(255,255,255,.13),rgba(218,39,45,.28),rgba(255,255,255,.06)) !important; box-shadow:inset 3px 0 0 #dc2831 !important; }
  .nav .nav-links.open a.is-selected { box-shadow:none !important; }
}
* { box-sizing: border-box; }
[hidden] { display: none !important; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color: var(--text);
  background:
    radial-gradient(circle at top, rgba(255,0,0,.22), transparent 34%),
    linear-gradient(180deg, #121216 0%, #09090b 100%);
  line-height: 1.6;
}
body::before { content:""; position:fixed; inset:0; z-index:0; pointer-events:none; background:url("assets/logo-princesas.png") center / min(880px, 90vw) auto no-repeat; opacity:.075; filter:grayscale(1); }
body > header, body > main, body > footer { position:relative; z-index:1; }
a { color: inherit; text-decoration: none; }
img { max-width: 100%; display: block; }
.container { width: min(100% - 2rem, var(--container)); margin: 0 auto; }
.section { padding: 84px 0; }
.section-sm { padding: 56px 0; }
.eyebrow {
  display: inline-block;
  padding: 0.35rem 0.8rem;
  border: 1px solid rgba(255,255,255,0.12);
  border-radius: 999px;
  color: var(--primary-2);
  background: rgba(255,255,255,0.03);
  font-size: 0.82rem;
  letter-spacing: .06em;
  text-transform: uppercase;
}
h1,h2,h3 { line-height: 1.08; margin: 0 0 0.8rem; }
h1 { font-size: clamp(2.8rem, 6vw, 5.4rem); }
h2 { font-size: clamp(2rem, 4vw, 3.25rem); }
h3 { font-size: 1.35rem; }
p { margin: 0 0 1rem; color: var(--muted); }
.lead { font-size: 1.12rem; max-width: 62ch; }
.btn-row { display: flex; gap: 1rem; flex-wrap: wrap; margin-top: 1.4rem; }
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.95rem 1.4rem;
  border-radius: 999px;
  border: 1px solid transparent;
  font-weight: 700;
  font-family: inherit;
  font-size: inherit;
  color: var(--text);
  cursor: pointer;
  transition: .2s ease;
}
.btn-primary {
  background: linear-gradient(135deg, var(--primary), var(--primary-2));
  color: white;
  box-shadow: 0 12px 30px rgba(255,0,0,.28);
}
.btn-secondary {
  border-color: var(--line);
  background: rgba(255,255,255,0.02);
}
.btn:hover { transform: translateY(-1px); }
.btn.is-disabled { pointer-events:none; cursor:not-allowed; opacity:.52; filter:saturate(.45); }
[data-group-booking-link][aria-disabled="true"] { cursor:pointer; opacity:.72; filter:saturate(.7); }
.topbar {
  position: sticky; top: 0; z-index: 20;
  isolation:isolate;
  backdrop-filter: blur(14px);
  background-color:#0c0d0f;
  background-image:
    linear-gradient(90deg, rgba(4,5,7,.33), rgba(9,10,12,.1) 45%, rgba(4,5,7,.4)),
    url("assets/asphalt-cracked-v1.webp");
  background-size:auto, 860px auto;
  background-position:center, 50% 46%;
  border-bottom:1px solid rgba(244,90,155,.35);
  box-shadow:0 7px 22px rgba(0,0,0,.45), inset 0 -1px 0 rgba(255,255,255,.1);
}
.topbar::after { content:""; position:absolute; z-index:-1; inset:0; pointer-events:none; opacity:.42; background:linear-gradient(90deg, rgba(245,42,108,.12), transparent 22% 78%, rgba(245,42,108,.1)); }
.nav {
  display: flex; align-items: center; justify-content: space-between;
  height: 82px; min-height: 82px; gap: 1rem;
}
.brand {
  display: inline-flex; align-items: center; gap: 0.9rem; font-weight: 800;
  position:relative; z-index:1; isolation:isolate; height:82px;
  width:min(178px, 56vw); flex:0 0 min(178px, 56vw);
}
.brand img {
  position:absolute; z-index:1; left:0; top:0;
  width:min(215px, 56vw); max-width:none; height:auto;
  filter: drop-shadow(0 7px 8px rgba(0,0,0,.24));
}
.brand::before,.brand::after { content:""; position:absolute; z-index:2; display:block; width:min(215px,56vw); pointer-events:none; mix-blend-mode:screen; opacity:0; }
/* A cool chrome glint passes over the final S in “Princesas”. */
.brand::before { left:105%; top:29%; width:clamp(18px,5vw,27px); height:clamp(4px,1.3vw,7px); border-radius:99px; background:linear-gradient(90deg,transparent,rgba(255,190,222,.55) 22%,rgba(255,255,255,1) 50%,rgba(255,190,222,.55) 78%,transparent); box-shadow:0 0 9px rgba(255,184,218,.98),0 0 20px rgba(244,90,155,.62); filter:none; clip-path:none; animation:princesasGlint 7.8s cubic-bezier(.32,.05,.2,1) infinite; }
/* A separate red flare travels through the tyre that forms the O in “Asfalto”. */
.brand::after { left:108%; top:70%; width:clamp(16px,4.6vw,24px); height:clamp(16px,4.6vw,24px); border-radius:50%; background:radial-gradient(circle,rgba(255,255,255,1) 0 10%,rgba(255,158,163,1) 20%,rgba(255,45,58,.98) 42%,rgba(226,16,35,.55) 59%,transparent 76%); box-shadow:0 0 12px rgba(255,42,55,1),0 0 28px rgba(227,28,53,.94); filter:none; clip-path:none; animation:tyreGlint 4.5s cubic-bezier(.32,.05,.2,1) .3s infinite; }
@keyframes princesasGlint { 0%,12%,35%,100% { opacity:0; left:105%; top:29%; } 14% { opacity:1; left:104%; top:33%; } 19% { opacity:1; left:84%; top:40%; } 23% { opacity:1; left:61%; top:46%; } 28% { opacity:.98; left:39%; top:52%; } 31% { opacity:.95; left:28%; top:59%; } 33% { opacity:0; left:24%; top:61%; } }
@keyframes tyreGlint { 0%,5%,23%,100% { opacity:0; left:108%; top:66%; } 7% { opacity:.42; left:108%; top:71%; } 10% { opacity:1; left:106%; top:82%; } 15% { opacity:1; left:82%; top:91%; } 19% { opacity:1; left:43%; top:97%; } 21% { opacity:.42; left:7%; top:101%; } }
/* Modern browsers use the logo's actual curved paths, avoiding stepped movement. */
@supports (offset-path: path("M 0 0 L 1 1")) {
  .brand::before { left:0; top:0; offset-path:path("M 197 31 C 197 38 195 43 187 45 C 164 48 129 47 101 50 C 80 53 67 57 58 63"); offset-anchor:center; offset-rotate:auto; animation:princesasGlintPath 7.8s linear infinite,princesasGlintPulse 7.8s ease-in-out infinite; }
  .brand::after { left:0; top:0; offset-path:path("M 194 62 L 194 87 C 194 91 188 92 180 93 C 156 95 130 97 106 96 C 86 95 69 92 57 94 C 37 97 18 95 7 96"); offset-anchor:center; offset-rotate:auto; animation:tyreGlintPath 4.5s linear .3s infinite,tyreGlintPulse 4.5s ease-in-out .3s infinite; }
  @keyframes princesasGlintPath { 0%,12% { offset-distance:0%; } 31%,100% { offset-distance:100%; } }
  @keyframes tyreGlintPath { 0%,5% { offset-distance:0%; } 20%,100% { offset-distance:100%; } }
  @keyframes princesasGlintPulse { 0%,12%,35%,100% { opacity:0; } 15% { opacity:.42; } 18%,28% { opacity:1; } 31% { opacity:.42; } 33% { opacity:0; } }
  @keyframes tyreGlintPulse { 0%,5%,23%,100% { opacity:0; } 7% { opacity:.42; } 10%,18% { opacity:1; } 21% { opacity:.42; } }
}
@media (prefers-reduced-motion: reduce) { .brand::before,.brand::after { animation:none; } }
.brand span { display:none; }
.nav-links { display: flex; gap: 1.2rem; align-items: center; flex-wrap: wrap; }
.nav-links a { position:relative; overflow:hidden; padding:.48rem .48rem; border-radius:7px; color:#fff; font-size:.96rem; font-weight:600; text-shadow:0 1px 4px rgba(0,0,0,.8); transition:color .25s ease,background .25s ease; }
.nav-links a::before { content:""; position:absolute; inset:-30% auto -30% -45%; width:30%; background:linear-gradient(90deg,transparent,rgba(255,255,255,.72),rgba(255,183,211,.8),transparent); transform:skewX(-24deg); transition:left .48s cubic-bezier(.2,.8,.2,1); }
.nav-links a:hover::before,.nav-links a[aria-current="page"]::before { left:120%; }
.nav-links a:hover,.nav-links a[aria-current="page"] { color:#fff1f7; background:linear-gradient(110deg,rgba(255,255,255,.1),rgba(244,90,155,.18),rgba(255,255,255,.05)); box-shadow:inset 0 0 0 1px rgba(255,193,217,.25); }
.nav-toggle { display:none; }

/* Warm chrome lettering for the desktop navigation. */
@media (min-width:901px) {
  .nav-links a {
    color:transparent;
    text-shadow:none;
    font-size:1.07rem;
    letter-spacing:.018em;
    background:linear-gradient(105deg, #aeb2b8 0%, #fdfdfd 30%, #c6c9cd 48%, #fff 66%, #b7a7af 100%) !important;
    -webkit-background-clip:text !important;
    background-clip:text !important;
    filter:drop-shadow(0 1px 2px rgba(0,0,0,.62));
  }
  .nav-links a:hover,
  .nav-links a[aria-current="page"] {
    color:transparent;
    background:linear-gradient(105deg, #d5d8dc 0%, #fff 28%, #f7bed7 52%, #fff 70%, #aeb2b8 100%) !important;
    -webkit-background-clip:text !important;
    background-clip:text !important;
    box-shadow:inset 0 0 0 1px rgba(255,193,217,.25);
    filter:drop-shadow(0 0 5px rgba(255,183,211,.27));
  }
}

/* Menu concept demos: each treatment is deliberately isolated to its page. */
.menu-neon-demo .nav-links a { position:relative; padding:.55rem .1rem .7rem; transition:color .24s ease, transform .24s ease; }
.menu-neon-demo .nav-links a::after { content:""; position:absolute; right:50%; bottom:.3rem; left:50%; height:2px; border-radius:99px; background:linear-gradient(90deg,#e31c35,#ff8fc2,#e31c35); box-shadow:0 0 0 transparent; transition:left .28s cubic-bezier(.2,.8,.2,1),right .28s cubic-bezier(.2,.8,.2,1),box-shadow .28s ease; }
.menu-neon-demo .nav-links a:hover,.menu-neon-demo .nav-links a[aria-current="page"] { color:#ffd9ea; transform:translateY(-2px); }
.menu-neon-demo .nav-links a:hover::after,.menu-neon-demo .nav-links a[aria-current="page"]::after { right:0; left:0; box-shadow:0 0 8px rgba(244,90,155,.95),0 0 16px rgba(227,28,53,.38); }

.menu-asphalt-demo .nav-links a { position:relative; padding:.55rem .18rem .78rem; transition:color .22s ease; }
.menu-asphalt-demo .nav-links a::after { content:""; position:absolute; right:0; bottom:.33rem; left:0; height:3px; opacity:0; background:linear-gradient(104deg,transparent 0 6%,#f45a9b 7% 13%,transparent 14% 22%,#e31c35 23% 33%,transparent 34% 47%,#f45a9b 48% 55%,transparent 56% 72%,#e31c35 73% 81%,transparent 82%); clip-path:polygon(0 48%,11% 31%,19% 64%,34% 37%,47% 58%,61% 26%,75% 61%,88% 35%,100% 50%,88% 65%,75% 47%,61% 75%,47% 43%,34% 66%,19% 38%,11% 69%,0 52%); transform:scaleX(.2); transform-origin:left; transition:opacity .18s ease,transform .34s cubic-bezier(.16,1,.3,1); }
.menu-asphalt-demo .nav-links a:hover,.menu-asphalt-demo .nav-links a[aria-current="page"] { color:#ffd9ea; }
.menu-asphalt-demo .nav-links a:hover::after,.menu-asphalt-demo .nav-links a[aria-current="page"]::after { opacity:1; transform:scaleX(1); }

.menu-metal-demo .nav-links a { position:relative; overflow:hidden; padding:.48rem .48rem; border-radius:7px; transition:color .25s ease,background .25s ease; }
.menu-metal-demo .nav-links a::before { content:""; position:absolute; inset:-30% auto -30% -45%; width:30%; background:linear-gradient(90deg,transparent,rgba(255,255,255,.72),rgba(255,183,211,.8),transparent); transform:skewX(-24deg); transition:left .48s cubic-bezier(.2,.8,.2,1); }
.menu-metal-demo .nav-links a:hover::before,.menu-metal-demo .nav-links a[aria-current="page"]::before { left:120%; }
.menu-metal-demo .nav-links a:hover,.menu-metal-demo .nav-links a[aria-current="page"] { color:#fff1f7; background:linear-gradient(110deg,rgba(255,255,255,.1),rgba(244,90,155,.18),rgba(255,255,255,.05)); box-shadow:inset 0 0 0 1px rgba(255,193,217,.25); }
.hero { padding: 88px 0 46px; }
.hero-grid {
  display:grid; grid-template-columns: 1.2fr .8fr; gap: 2rem; align-items:center;
}
.hero-card, .card {
  background: linear-gradient(180deg, rgba(255,255,255,0.05), rgba(255,255,255,0.02));
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
}
.hero-card { padding: 1.35rem; }
.hero-card img { width: 100%; height: auto; object-fit: contain; }
.stats {
  display:grid; grid-template-columns: repeat(3,1fr); gap: 1rem; margin-top: 1.5rem;
}
.stat {
  padding: 1rem 1.1rem; border-radius: 18px;
  background: rgba(255,255,255,0.03); border: 1px solid rgba(255,255,255,0.06);
}
.stat strong { display:block; font-size:1.4rem; color:white; }
.grid-2, .grid-3 { display:grid; gap: 1.3rem; }
.grid-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.card { padding: 1.5rem; }
.card p:last-child { margin-bottom: 0; }
.card-link { display:flex; flex-direction:column; gap:.7rem; min-height: 100%; }
.kicker { color: var(--primary-2); font-weight: 700; letter-spacing: .03em; }
.checklist { list-style:none; padding:0; margin:0; display:grid; gap:.65rem; }
.checklist li {
  padding-left: 1.4rem; position: relative; color: var(--muted);
}
.checklist li::before {
  content: "•"; position:absolute; left:0; top:0; color: var(--primary-2); font-weight:900;
}
.feature {
  padding: 1.5rem;
  border-radius: 24px;
  background:
    linear-gradient(180deg, rgba(255,255,255,0.05), rgba(255,255,255,0.02)),
    radial-gradient(circle at top left, rgba(255,0,0,.12), transparent 35%);
  border: 1px solid rgba(255,255,255,.08);
}
.banner {
  padding: 2rem; border-radius: 28px;
  background: linear-gradient(135deg, rgba(255,0,0,.18), rgba(255,255,255,.03));
  border:1px solid rgba(255,255,255,.08);
}
.page-hero { padding: 72px 0 24px; }
.page-hero .container { max-width: 900px; }
.split {
  display:grid; grid-template-columns: .95fr 1.05fr; gap: 1.3rem; align-items:start;
}
.panel {
  padding: 1.4rem;
  border-radius: 20px;
  border: 1px solid rgba(255,255,255,0.08);
  background: rgba(255,255,255,0.03);
}
.cta-block {
  text-align:center; padding: 2.4rem; border-radius: 28px;
  background: linear-gradient(135deg, rgba(255,0,0,.15), rgba(255,255,255,.03));
  border:1px solid rgba(255,255,255,.08);
}
.footer {
  padding: 2rem 0 2.5rem;
  border-top: 1px solid rgba(255,255,255,0.08);
  color: #d0d0d0;
}
.footer-grid {
  display:grid; grid-template-columns: 1fr auto; gap:1rem; align-items:center;
}
.footer-nav { display:flex; gap:1rem; flex-wrap:wrap; justify-content:flex-end; }
.small { font-size: .95rem; color:#c9c9c9; }
.notice {
  padding: 1rem 1.2rem;
  border: 1px dashed rgba(255,255,255,0.16);
  border-radius: 18px;
  color: #d7d7d7;
  background: rgba(255,255,255,0.02);
}
/* Form styles */
form { display: grid; gap: 1.2rem; }
.form-group { display: flex; flex-direction: column; gap: 0.5rem; }
.form-group label { font-weight: 600; color: var(--text); font-size: 0.95rem; }
.form-group input[type="text"],
.form-group input[type="email"],
.form-group input[type="password"],
.form-group input[type="tel"],
.form-group input[type="number"],
.form-group input[type="file"],
.form-group select,
.form-group textarea {
  padding: 0.9rem 1.1rem;
  border-radius: 14px;
  border: 1px solid rgba(255,255,255,0.1);
  background: rgba(255,255,255,0.04);
  color: white;
  font-family: inherit;
  font-size: 1rem;
}
.form-group input[type="number"] { color-scheme: dark; }
.form-group input[type="file"] { color: var(--muted); }
#ticketNumbers input,
#editTickets input {
  background-color: #2a1111 !important;
  color: #fff !important;
  -webkit-text-fill-color: #fff;
  color-scheme: dark;
  caret-color: #fff;
}
#ticketNumbers input::placeholder,
#editTickets input::placeholder { color: #ff0000; opacity: 1; }
#ticketNumbers input:-webkit-autofill,
#editTickets input:-webkit-autofill {
  -webkit-text-fill-color: #fff;
  -webkit-box-shadow: 0 0 0 1000px #2a1111 inset;
  box-shadow: 0 0 0 1000px #2a1111 inset;
}
.form-group input:focus, .form-group select:focus {
  outline: none;
  border-color: var(--primary-2);
  background: rgba(255,255,255,0.06);
}
.form-group select option, .record select option { background: #201111; color: #fff; }
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.checkbox-group { display: flex; align-items: flex-start; gap: 0.8rem; cursor: pointer; }
.checkbox-group input { width: 1.2rem; height: 1.2rem; margin-top: 0.2rem; accent-color: var(--primary-2); }
.checkbox-group span { color: var(--muted); font-size: 0.95rem; line-height: 1.4; }
.registration-options { margin: 1.4rem 0 0; padding: 1.15rem 0 0; border: 0; border-top: 1px solid rgba(255,255,255,.12); }
.registration-options legend { padding: 0 .45rem 0 0; color: var(--text); font-weight: 700; }
.field-note { max-width:66ch; margin:.35rem 0 .8rem; font-size:.92rem; }
.radio-row { display:flex; gap:1.2rem; flex-wrap:wrap; }
.radio-option { display:inline-flex; gap:.55rem; align-items:center; color:var(--muted); cursor:pointer; }
.radio-option input { width:1.1rem; height:1.1rem; accent-color:var(--primary-2); }
.form-status { margin:1.2rem 0 0; text-align:center; font-size:.9rem; }
.form-status:not(:empty) { padding:.8rem 1rem; border-radius:12px; border:1px solid rgba(255,0,0,.42); background:rgba(255,0,0,.13); color:#fff; font-weight:600; }
.form-status:not(:empty)::before { content:'⚠ '; color:var(--primary-2); }
.form-status.is-success:not(:empty) { border-color:rgba(90,210,137,.45); background:rgba(90,210,137,.13); }
.form-status.is-success:not(:empty)::before { content:'✓ '; color:#76e49a; }
.ticket-details { margin:1.2rem 0; padding:1rem 1.15rem; border:1px solid rgba(255,0,0,.25); border-radius:14px; background:rgba(255,255,255,.035); }
.ticket-details h3 { font-size:1.05rem; margin-bottom:.7rem; }
.ticket-details ul { list-style:none; margin:0; padding:0; display:grid; gap:.5rem; }
.ticket-details li { display:flex; gap:.6rem; align-items:center; flex-wrap:wrap; color:var(--muted); }
.ticket-details .ticket-warning { color:#ff0000; font-weight:700; }
.btn-link { justify-self:start; padding:0; border:0; background:transparent; color:var(--primary-2); font:inherit; cursor:pointer; text-decoration:underline; text-underline-offset:.18em; }
.contact-grid { display:grid; grid-template-columns:.8fr 1.2fr; gap:1.2rem; align-items:start; }
.contact-copy { min-height:100%; }
.contact-copy h2 { margin-top:.8rem; }
.contact-email { margin-top:1.5rem; color:var(--muted); }
.contact-email a, .contact-consent a { color:var(--primary-2); }
.contact-form { display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:1rem; }
.contact-form .form-group { display:grid; gap:.45rem; }
.contact-form input, .contact-form select, .contact-form textarea { box-sizing:border-box; width:100%; border:1px solid var(--line); border-radius:10px; padding:.78rem .85rem; color:var(--text); background:#201111; font:inherit; }
.contact-form textarea { min-height:9rem; resize:vertical; }
.contact-form .contact-message, .contact-form .contact-consent, .contact-form .form-status { grid-column:1 / -1; }
.contact-consent { display:flex; align-items:flex-start; gap:.65rem; color:var(--muted); font-size:.9rem; }
.contact-consent input { width:1.1rem; height:1.1rem; margin:.1rem 0 0; accent-color:var(--primary-2); }
.contact-honeypot { position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }
.contact-form .form-status { text-align:left; margin:0; }
.contact-form .form-status.is-success:not(:empty) { border-color:rgba(90,210,137,.45); background:rgba(90,210,137,.13); }
.contact-form .form-status.is-success:not(:empty)::before { content:'✓ '; color:#76e49a; }
@media (max-width:700px) { .contact-grid, .contact-form { grid-template-columns:1fr; } .contact-form .contact-message, .contact-form .contact-consent, .contact-form .form-status { grid-column:auto; } }
.soon-toast { position:fixed; z-index:100; left:50%; bottom:1.5rem; width:min(320px, calc(100% - 2rem)); box-sizing:border-box; padding:1rem 1.15rem; border:1px solid rgba(255,91,159,.5); border-radius:16px; background:rgba(40,13,29,.96); box-shadow:0 18px 45px rgba(0,0,0,.38); color:white; display:grid; grid-template-columns:auto 1fr; column-gap:.7rem; transform:translate(-50%, 140%); opacity:0; pointer-events:none; transition:transform .35s cubic-bezier(.2,.8,.2,1), opacity .25s ease; }
.footer-meta { position:relative; min-height:25px; margin-top:1rem; }
.footer-meta > .footer-copyright,.footer-meta > .footer-legal { width:auto; }
.footer-copyright { position:absolute; left:50%; margin:0 !important; text-align:center; transform:translateX(-50%); }
.footer-bottom { display:flex; align-items:center; justify-content:space-between; gap:1rem; width:min(100% - 2rem,var(--container)); margin:.85rem auto 0; padding-top:.85rem; border-top:1px solid rgba(255,255,255,.1); }
.footer-credit { margin:0; padding:0; border:0; color:var(--muted); font-size:.76rem; text-align:left; }
.footer-credit a { color:var(--primary-2); font-weight:700; text-decoration:none; }
.footer-credit a:hover { text-decoration:underline; text-underline-offset:.18em; }
.footer-social { display:flex; align-items:center; gap:.65rem; margin-top:.75rem; color:var(--muted); font-size:.78rem; }
.footer-social > div { display:flex; gap:.4rem; }
.footer-social a { display:grid; width:29px; height:29px; place-items:center; border-radius:9px; color:#fff; transition:transform .2s ease,box-shadow .2s ease; }
.footer-social a:hover { transform:translateY(-2px); box-shadow:0 6px 14px rgba(0,0,0,.3); }
.footer-social svg { width:16px; height:16px; fill:currentColor; }
.footer-social .social-instagram { background:linear-gradient(135deg,#833ab4,#fd1d1d 52%,#fcb045); }
.footer-social .social-instagram rect,.footer-social .social-instagram circle { fill:none; stroke:currentColor; stroke-width:1.8; }
.footer-social .social-instagram circle:last-child { fill:currentColor; stroke:0; }
.footer-social .social-facebook { background:#1877f2; }
.footer-legal { display:flex; justify-content:flex-end; flex-wrap:wrap; gap:.9rem; margin:0; padding:0; border:0; font-size:.76rem; }
.footer-legal a { color:var(--muted); }
.footer-legal a:hover { color:#fff; text-decoration:underline; text-underline-offset:.2em; }
.soon-toast.is-visible { transform:translate(-50%, 0); opacity:1; }
.soon-toast span { grid-row:span 2; color:var(--primary-2); font-size:1.15rem; }
.soon-toast b { font-size:.96rem; }
.soon-toast small { color:var(--muted); font-size:.8rem; margin-top:.14rem; }
.dashboard { min-height:calc(100vh - 82px); }
.dashboard-login { width:min(480px, 100%); margin:3rem auto; }
.dashboard-login h1, .dashboard-head h1 { margin-top:1rem; letter-spacing:-.06em; }
.dashboard-section-label { margin:.35rem 0 0; color:var(--primary-2); font-size:.9rem; font-weight:700; }
.dashboard-login form { margin-top:2rem; }
.dashboard-head { display:flex; justify-content:space-between; align-items:end; gap:1.5rem; margin-bottom:2rem; }
.dashboard-actions { display:flex; gap:.7rem; flex-wrap:wrap; }
.dashboard-nav { display:flex; align-items:center; gap:.3rem; margin-left:auto; }
.dashboard-nav button { padding:.55rem .7rem; border:0; border-radius:9px; color:var(--muted); background:transparent; font:inherit; font-size:.88rem; cursor:pointer; transition:color .2s ease, background .2s ease; }
.dashboard-nav button:hover,.dashboard-nav button:focus-visible { color:#fff; background:rgba(255,255,255,.08); outline:0; }
.access-panel { margin-top:3rem; padding-top:2rem; border-top:1px solid var(--line); }
.access-panel h2 { margin-top:1rem; letter-spacing:-.045em; }
.invite-form { display:grid; grid-template-columns:1fr 1fr 1fr .9fr auto; gap:1rem; align-items:end; }
.access-row { grid-template-columns:1.2fr 1fr auto; }
.dashboard-tabs { display:flex; gap:.5rem; border-bottom:1px solid var(--line); margin-bottom:1.2rem; }
.tab { border:0; background:transparent; color:var(--muted); padding:.8rem 1rem; font:inherit; cursor:pointer; }
.tab.active { color:white; border-bottom:2px solid var(--primary-2); }
.tab span { color:var(--primary-2); margin-left:.3rem; }
.dashboard-tools { display:flex; gap:.8rem; margin-bottom:.6rem; }
.dashboard-tools input { flex:1; min-width:0; padding:.78rem 1rem; border-radius:999px; border:1px solid var(--line); background:rgba(255,255,255,.04); color:white; font:inherit; }
.upload-panel { max-width:760px; padding:1.8rem; border:1px solid rgba(255,190,215,.2); border-radius:22px; background:linear-gradient(145deg, rgba(244,90,155,.11), rgba(255,255,255,.025)); }
.upload-panel h2 { margin:.8rem 0 .45rem; font-size:clamp(1.8rem,4vw,2.5rem); letter-spacing:-.05em; }
.large-upload-form { margin-top:1.5rem; }
.large-upload-picker { display:grid; gap:.35rem; min-height:128px; place-content:center; padding:1.3rem; border:1px dashed rgba(255,255,255,.35); border-radius:16px; text-align:center; cursor:pointer; background:rgba(0,0,0,.12); transition:border-color .2s ease,background .2s ease; }
.large-upload-picker:hover { border-color:#f45a9b; background:rgba(244,90,155,.09); }
.large-upload-picker input { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); }
.large-upload-picker span { color:#fff; font-weight:800; }
.large-upload-picker small { color:var(--muted); overflow-wrap:anywhere; }
.large-upload-form .dashboard-actions { margin-top:1rem; }
.upload-progress { height:7px; margin-top:1.2rem; overflow:hidden; border-radius:99px; background:rgba(255,255,255,.1); }
.upload-progress i { display:block; width:0; height:100%; border-radius:inherit; background:linear-gradient(90deg,#f45a9b,#f6d898); transition:width .15s linear; }
.upload-history { margin-top:2rem; padding-top:1.4rem; border-top:1px solid rgba(255,255,255,.12); }
.upload-history h3 { margin:0; font-size:1.15rem; }
.upload-count { display:inline-grid; min-width:1.55rem; height:1.55rem; margin-left:.35rem; place-items:center; border-radius:99px; color:#180d16; background:#f6d898; font-size:.75rem; vertical-align:middle; }
.upload-history ul { display:grid; gap:.65rem; padding:0; margin:1rem 0 0; list-style:none; }
.upload-history li { display:flex; align-items:center; gap:.8rem; padding:.8rem; border:1px solid rgba(255,255,255,.1); border-radius:12px; background:rgba(0,0,0,.13); }
.upload-history li > div { min-width:0; }
.upload-history b,.upload-history small { display:block; overflow-wrap:anywhere; }
.upload-history small { margin-top:.1rem; color:var(--muted); }
.upload-file-icon { display:grid; flex:0 0 32px; width:32px; height:32px; place-items:center; border-radius:9px; color:#f6d898; background:rgba(244,90,155,.18); font-size:.9rem; }
.records { border-top:1px solid var(--line); margin-top:1rem; }
.record { display:grid; grid-template-columns:1.2fr 1fr auto; gap:1rem; align-items:center; padding:1.15rem 0; border-bottom:1px solid var(--line); }
.record-expandable { cursor:pointer; transition:background .2s ease, padding .2s ease; }
.record-expandable:hover, .record-expandable:focus-visible { background:rgba(255,255,255,.04); outline:none; }
.record b, .record span, .record small { display:block; }
.record span, .record small { color:var(--muted); font-size:.9rem; }
.record select { color:white; background:#201111; border:1px solid var(--line); border-radius:8px; padding:.5rem; }
.record-editor { margin-top:1.5rem; padding:1.4rem; border:1px solid rgba(255,255,255,.16); border-radius:18px; background:rgba(255,255,255,.045); }
.record-editor h2 { margin:0 0 .35rem; font-size:1.45rem; }
.editor-grid { display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:1rem; margin:1.2rem 0; }
.editor-grid .form-group { display:grid; gap:.4rem; }
.editor-grid .full { grid-column:1 / -1; }
.editor-grid input:not([type="checkbox"]), .editor-grid textarea, .editor-grid select { width:100%; box-sizing:border-box; padding:.72rem .8rem; border-radius:9px; border:1px solid var(--line); background:#201111; color:#fff; font:inherit; }
.editor-grid textarea { min-height:6rem; resize:vertical; }
.editor-checks { display:grid; grid-template-columns:repeat(auto-fit, minmax(150px, 1fr)); gap:.75rem; padding:.2rem 0; }
.editor-checks label { display:flex; gap:.55rem; align-items:center; min-width:0; padding:.7rem .8rem; border:1px solid var(--line); border-radius:9px; background:rgba(255,255,255,.03); color:var(--text); cursor:pointer; }
.editor-checks input[type="checkbox"] { flex:0 0 auto; width:1.15rem; height:1.15rem; margin:0; accent-color:var(--primary-2); }
.analytics-head { display:flex; justify-content:space-between; align-items:end; gap:1rem; padding:1.2rem 0 1rem; }
.analytics-head h2 { margin:.55rem 0 .35rem; letter-spacing:-.045em; }
.analytics-metrics { display:grid; grid-template-columns:repeat(4, minmax(0,1fr)); gap:.85rem; margin:1.15rem 0; }
.analytics-metric, .analytics-card { border:1px solid var(--line); border-radius:14px; background:rgba(255,255,255,.035); }
.analytics-metric { padding:1rem; display:grid; gap:.35rem; }
.analytics-metric span, .analytics-metric small { color:var(--muted); font-size:.82rem; }
.analytics-metric strong { font-size:1.75rem; letter-spacing:-.05em; color:var(--primary-2); }
.analytics-card { padding:1.1rem; }
.analytics-card h3 { margin:0 0 1rem; font-size:1rem; }
.analytics-chart { margin:1rem 0; }
.analytics-bars { height:154px; display:flex; align-items:end; gap:4px; overflow-x:auto; padding-top:.8rem; }
.analytics-bar-wrap { min-width:22px; height:100%; display:grid; grid-template-rows:1fr auto; gap:.35rem; align-items:end; }
.analytics-bar-wrap i { display:block; min-height:4px; border-radius:5px 5px 2px 2px; background:linear-gradient(#ff5b9f, var(--primary-2)); }
.analytics-bar-wrap span { display:block; color:var(--muted); font-size:.62rem; writing-mode:vertical-rl; transform:rotate(180deg); white-space:nowrap; }
.analytics-grid { display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:1rem; margin-bottom:1rem; }
.analytics-list { list-style:none; padding:0; margin:0; display:grid; gap:.55rem; }
.analytics-list li { display:flex; justify-content:space-between; gap:.75rem; color:var(--muted); border-bottom:1px solid rgba(255,255,255,.07); padding-bottom:.5rem; }
.analytics-list b { color:var(--text); }
@media (max-width:700px) { .analytics-head { align-items:start; flex-direction:column; } .analytics-metrics, .analytics-grid { grid-template-columns:1fr 1fr; } .analytics-grid .analytics-card:last-child { grid-column:1 / -1; } }
@media (max-width:700px) { .editor-grid { grid-template-columns:1fr; } }
@media (max-width:700px) { .dashboard-head, .record, .invite-form { grid-template-columns:1fr; align-items:start; } .dashboard-tools { flex-direction:column; } .record select { width:fit-content; } .dashboard-nav { gap:0; } .dashboard-nav button { padding:.5rem .4rem; font-size:.78rem; } }
@media (max-width: 900px) {
  .form-row { grid-template-columns: 1fr; }
  .hero-grid, .split, .grid-2, .grid-3 { grid-template-columns: 1fr; }
  .stats { grid-template-columns: 1fr; }
  .nav-toggle {
    display:inline-flex; padding:.7rem .95rem; border-radius: 999px;
    background: rgba(255,255,255,0.04); border:1px solid rgba(255,255,255,0.08); color:white;
  }
  .nav-links {
    display:flex; position:absolute; left:1rem; right:1rem; top:88px;
    flex-direction:column; align-items:flex-start; padding:1rem;
    visibility:hidden; opacity:0; pointer-events:none; transform:translateY(-13px) scale(.98); transform-origin:top;
    background: rgba(12,12,14,0.96); border:1px solid rgba(255,255,255,0.08); border-radius:20px;
    transition:opacity .22s ease,transform .28s cubic-bezier(.16,1,.3,1),visibility 0s linear .28s;
  }
  .nav-links.open { visibility:visible; opacity:1; pointer-events:auto; transform:none; transition-delay:0s; }
  .nav-toggle { position:relative; width:46px; height:42px; padding:0; font-size:0; border-color:rgba(244,90,155,.48); overflow:hidden; }
  .nav-toggle::before { content:""; width:19px; height:2px; background:#fff; box-shadow:0 -7px 0 #fff,0 7px 0 #fff; transition:transform .3s ease,box-shadow .3s ease,background .3s ease; }
  .nav:has(.nav-links.open) .nav-toggle::before { background:transparent; box-shadow:0 0 0 transparent; transform:rotate(45deg); }
  .nav:has(.nav-links.open) .nav-toggle::after { content:""; position:absolute; width:19px; height:2px; background:#fff; transform:rotate(-45deg); }
  .nav-links.open { align-items:stretch; border-color:rgba(255,210,229,.3); background:linear-gradient(135deg,rgba(29,28,32,.98),rgba(9,9,11,.98)); box-shadow:0 22px 55px rgba(0,0,0,.62); animation:none; }
  .nav-links.open a { width:100%; padding:.92rem .7rem; border-bottom:1px solid rgba(255,255,255,.08); animation:mobileMenuItem .36s both; }
  .nav-links.open a::after { content:"›"; position:absolute; right:.62rem; top:50%; color:#f59cc5; font-size:1.4rem; font-weight:400; line-height:1; transform:translateY(-50%); }
  .nav-links.open a:nth-child(2) { animation-delay:.035s; }
  .nav-links.open a:nth-child(3) { animation-delay:.07s; }
  .nav-links.open a:nth-child(4) { animation-delay:.105s; }
  .nav-links.open a:nth-child(5) { animation-delay:.14s; }
  .nav-links.open a:nth-child(6) { animation-delay:.175s; }
  .nav-links.open a:nth-child(7) { animation-delay:.21s; }
  .nav-links.open a:last-child { border-bottom:0; }
  .menu-neon-demo .nav-toggle,.menu-asphalt-demo .nav-toggle,.menu-metal-demo .nav-toggle { position:relative; width:46px; height:42px; padding:0; font-size:0; border-color:rgba(244,90,155,.48); overflow:hidden; }
  .menu-neon-demo .nav-toggle::before,.menu-asphalt-demo .nav-toggle::before,.menu-metal-demo .nav-toggle::before { content:""; width:19px; height:2px; background:#fff; box-shadow:0 -7px 0 #fff,0 7px 0 #fff; transition:transform .3s ease,box-shadow .3s ease,background .3s ease; }
  .nav:has(.nav-links.open) .nav-toggle::before { background:transparent; box-shadow:0 0 0 transparent; transform:rotate(45deg); }
  .nav:has(.nav-links.open) .nav-toggle::after { content:""; position:absolute; width:19px; height:2px; background:#fff; transform:rotate(-45deg); }
  .menu-neon-demo .nav-links.open { display:flex; border-color:rgba(244,90,155,.52); background:linear-gradient(145deg,rgba(23,14,20,.98),rgba(6,7,9,.98)),url("assets/asphalt-cracked-v1.webp") center/680px; box-shadow:0 18px 45px rgba(0,0,0,.55),0 0 28px rgba(244,90,155,.12); animation:menuRise .3s cubic-bezier(.16,1,.3,1); }
  .menu-neon-demo .nav-links.open a { width:100%; padding:.76rem .35rem; animation:menuItem .34s both; }
  .menu-neon-demo .nav-links.open a:nth-child(2) { animation-delay:.04s; }.menu-neon-demo .nav-links.open a:nth-child(3) { animation-delay:.08s; }.menu-neon-demo .nav-links.open a:nth-child(4) { animation-delay:.12s; }.menu-neon-demo .nav-links.open a:nth-child(5) { animation-delay:.16s; }.menu-neon-demo .nav-links.open a:nth-child(6) { animation-delay:.2s; }.menu-neon-demo .nav-links.open a:nth-child(7) { animation-delay:.24s; }
  .menu-asphalt-demo .nav-links.open { display:flex; border-color:rgba(244,90,155,.42); background:linear-gradient(180deg,rgba(10,11,13,.98),rgba(17,12,16,.98)),url("assets/asphalt-cracked-v1.webp") center/700px; box-shadow:0 18px 45px rgba(0,0,0,.62); animation:menuDrop .34s cubic-bezier(.16,1,.3,1); }
  .menu-asphalt-demo .nav-links.open a { width:100%; padding:.76rem .35rem; }
  .menu-metal-demo .nav-links.open { display:flex; align-items:stretch; border-color:rgba(255,210,229,.3); background:linear-gradient(135deg,rgba(29,28,32,.98),rgba(9,9,11,.98)); box-shadow:0 22px 55px rgba(0,0,0,.62); animation:menuSlide .32s cubic-bezier(.16,1,.3,1); }
  .menu-metal-demo .nav-links.open a { width:100%; padding:.85rem .65rem; border-bottom:1px solid rgba(255,255,255,.08); }
  .menu-metal-demo .nav-links.open a:last-child { border-bottom:0; }
  @keyframes menuRise { from { opacity:0; transform:translateY(-12px) scale(.98); } to { opacity:1; transform:none; } }
  @keyframes menuDrop { from { opacity:0; transform:translateY(-18px); } to { opacity:1; transform:none; } }
  @keyframes menuSlide { from { opacity:0; transform:translateX(14px); } to { opacity:1; transform:none; } }
  @keyframes menuItem { from { opacity:0; transform:translateX(-10px); } to { opacity:1; transform:none; } }
  @keyframes mobileMenuItem { from { opacity:0; transform:translateX(11px); } to { opacity:1; transform:none; } }
  .footer-grid { grid-template-columns: 1fr; }
  .footer-nav { justify-content:flex-start; }
  .footer-social { align-items:flex-start; flex-wrap:wrap; }
  .footer-meta { display:flex; min-height:0; justify-content:center; flex-wrap:wrap; gap:.55rem; }
  .footer-bottom { flex-wrap:wrap; }
  .footer-copyright { position:static; transform:none; }
  .footer-legal { gap:.6rem; }
}

/* Home: an editorial, road-inspired layout rather than a stack of panels. */
body {
  background-color: #100d0f;
  background-image:
    radial-gradient(circle at 88% 4%, rgba(255, 0, 0, .3), transparent 28rem),
    radial-gradient(circle at 15% 55%, rgba(160, 0, 0, .18), transparent 32rem),
    linear-gradient(125deg, rgba(255,255,255,.018) 25%, transparent 25%) ;
  background-size: auto, auto, 7px 7px;
}
.hero-asphalt { position:relative; overflow:hidden; min-height: min(780px, calc(100vh - 82px)); display:flex; align-items:center; padding:120px 0 100px; }
.hero-asphalt::before { content:""; position:absolute; inset:0; opacity:.64; background:repeating-linear-gradient(112deg, transparent 0 72px, rgba(255,255,255,.025) 73px 74px, transparent 75px 154px); pointer-events:none; }
.hero-asphalt::after { display:none; }
.hero-background-arc { position:absolute; inset:0; width:100%; height:100%; pointer-events:none; z-index:0; overflow:visible; }
.hero-background-arc circle { fill:none; stroke-dasharray:1; stroke-dashoffset:0; }
.hero-background-arc .arc-primary { stroke:rgba(255,255,255,.13); stroke-width:1.4; }
.hero-background-arc .arc-secondary { stroke:rgba(255,255,255,.04); stroke-width:42; }
.hero-background-arc .arc-tertiary { stroke:rgba(255,255,255,.024); stroke-width:42; }
.hero-grid { position:relative; z-index:1; grid-template-columns:1.12fr .88fr; gap:3rem; }
.hero-copy { padding:2rem 0; }
.hero-copy h1 { max-width:8ch; margin-top:1.15rem; font-size:clamp(4.2rem, 9.3vw, 8.7rem); letter-spacing:-.085em; }
h1 em, h2 em { color:var(--primary); font-family:Georgia, "Times New Roman", serif; font-weight:400; letter-spacing:-.06em; }
.text-link { display:inline-flex; align-items:center; gap:.5rem; align-self:center; color:#fff; font-weight:700; padding:.65rem .1rem; border-bottom:1px solid rgba(255,255,255,.42); }
.text-link span { color:var(--primary-2); font-size:1.3rem; }
.hero-mark { position:relative; display:grid; place-items:center; aspect-ratio:1; max-width:440px; width:100%; justify-self:end; }
.hero-mark::before { content:""; position:absolute; inset:12%; border-radius:50%; background:radial-gradient(circle, rgba(255,0,0,.25), transparent 65%); filter:blur(7px); }
.hero-mark-ring { position:absolute; inset:7%; border:1px solid rgba(255,255,255,.28); border-radius:50%; transform:rotate(-10deg); }
.hero-mark-ring::before, .hero-mark-ring::after { content:""; position:absolute; inset:15px; border:1px solid rgba(255,0,0,.45); border-radius:50%; }
.hero-mark-ring::after { inset:-16px; border-style:dashed; border-color:rgba(255,255,255,.16); }
.speedometer-ticks { position:absolute; z-index:1; inset:11%; width:78%; height:78%; pointer-events:none; }
.speedometer-ticks line { stroke:rgba(255,255,255,.58); stroke-width:.65; stroke-linecap:round; }
.speedometer-ticks line:nth-child(n + 11) { stroke:rgba(255,0,0,.88); stroke-width:.95; }
.speedometer-needle { position:absolute; z-index:2; inset:13%; width:74%; height:74%; overflow:visible; pointer-events:none; transform-box:view-box; transform:rotate(-120deg); transform-origin:50% 50%; }
.speedometer-needle path { fill:var(--primary); filter:drop-shadow(0 0 4px rgba(255,0,0,.75)); }
.speedometer-needle circle { fill:#100d0f; stroke:var(--primary); stroke-width:1.25; filter:drop-shadow(0 0 4px rgba(255,0,0,.75)); }
.speedometer-logo { position:absolute; z-index:1; left:50%; top:20%; width:55%; transform:translateX(-50%); pointer-events:none; }
.speedometer-logo::before { content:""; position:absolute; z-index:-1; inset:-65% -26%; border-radius:50%; background:radial-gradient(circle, rgba(255,255,255,.96) 0 4%, rgba(255,0,0,.78) 13%, rgba(255,0,0,.18) 38%, transparent 68%); opacity:0; }
.speedometer-logo img { display:block; width:100%; filter:drop-shadow(0 8px 13px rgba(0,0,0,.5)); }
.speedometer-founded { position:absolute; z-index:3; left:50%; top:70%; transform:translateX(-50%); white-space:nowrap; color:#fff; font:400 clamp(1.7rem, 4vw, 2.6rem)/1 Great Vibes, "Snell Roundhand", cursive; text-shadow:0 2px 8px rgba(0,0,0,.72); pointer-events:none; }
.speedometer-founded i { display:inline-block; min-width:.42em; font:inherit; font-style:normal; }
.speedometer-founded-space { min-width:.3em !important; }
.road-line { position:absolute; z-index:1; width:160%; height:4px; bottom:8%; left:-22%; transform:rotate(-7deg); background:linear-gradient(90deg, transparent, var(--primary) 8% 16%, rgba(255,255,255,.5) 16.2% 16.8%, transparent 17% 62%, var(--primary) 65% 76%, transparent 77%); opacity:.9; }
.manifesto-section { padding:130px 0 105px; }
.manifesto { display:block; }
.manifesto h2 { font-size:clamp(3rem, 6vw, 6rem); letter-spacing:-.07em; margin-top:1rem; }
.manifesto-copy { align-self:end; max-width:55ch; padding-bottom:.55rem; }
.manifesto-copy p { font-size:1.2rem; }
.causes-section { border-top:1px solid var(--line); border-bottom:1px solid var(--line); padding:0; }
.causes { display:grid; grid-template-columns:1fr 1fr; }
.cause { min-height:340px; display:grid; grid-template-columns:1fr auto; gap:1.4rem; align-items:start; padding:2rem; border-left:1px solid var(--line); transition:background .25s ease; }
.cause:first-child { border-left:0; }
.cause:hover { background:rgba(255,255,255,.045); }
.cause-pink { background:radial-gradient(circle at 15% 100%, rgba(244,90,155,.24), transparent 15rem), linear-gradient(145deg, rgba(106,22,60,.52), rgba(28,17,27,.24)); }
.cause-route-link { color:inherit; display:block; }
.cause-route-button { display:inline-flex; align-items:center; justify-content:center; min-width:94px; margin-top:1.2rem; padding:.58rem 1.05rem; border:1px solid rgba(255,255,255,.4); border-radius:999px; color:#fff; background:linear-gradient(135deg, #f45a9b, #d92775); font-size:.88rem; font-weight:800; box-shadow:0 8px 18px rgba(217,39,117,.3); }
.cause-route-button span { margin-left:.4rem; font-size:1.05rem; line-height:1; transition:transform .2s ease; }
.cause-route-link:hover .cause-route-button span { transform:translateX(3px); }
.route-countdown { display:block; width:max-content; max-width:100%; margin-top:1.35rem; padding:.7rem .85rem .75rem; border:1px solid rgba(255,210,228,.22); border-radius:14px; background:linear-gradient(135deg, rgba(255,255,255,.10), rgba(255,255,255,.025)); box-shadow:inset 0 1px rgba(255,255,255,.12), 0 12px 26px rgba(0,0,0,.14); }
.route-countdown-label { display:block; margin-bottom:.38rem; color:#ffd2e3; font-size:.66rem; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }
.route-countdown-units { display:flex; align-items:center; gap:.65rem; }
.route-countdown-units > span { display:grid; min-width:38px; text-align:center; }
.route-countdown-units b { color:#fff; font-variant-numeric:tabular-nums; font-size:1.28rem; line-height:1; letter-spacing:.02em; }
.route-countdown-units small { margin-top:.2rem; color:rgba(255,255,255,.65); font-size:.58rem; letter-spacing:.04em; text-transform:uppercase; }
.route-countdown-units i { width:3px; height:3px; border-radius:50%; background:#f6d898; box-shadow:0 7px #f6d898; opacity:.8; }
.cause-number { color:rgba(255,255,255,.5); font-size:.8rem; letter-spacing:.08em; }
.cause h3 { font-size:clamp(2rem, 3.2vw, 3.4rem); margin-top:.65rem; letter-spacing:-.06em; }
.cause-poster-trigger { align-self:end; justify-self:end; height:276px; max-width:48%; padding:0; border:0; background:none; cursor:zoom-in; }
.cause-poster { display:block; width:auto; height:100%; max-width:100%; object-fit:contain; object-position:bottom right; filter:drop-shadow(0 10px 13px rgba(0,0,0,.34)); }
.cause-mototerapia-logo { align-self:end; justify-self:end; width:min(54%, 285px); padding:.25rem; border-radius:12px; background:rgba(255,255,255,.9); box-shadow:0 12px 28px rgba(0,0,0,.36); }
.mototerapia-brand { display:inline-flex; align-items:center; gap:1rem; margin-top:1.25rem; padding:.45rem .7rem .45rem .45rem; border:1px solid rgba(255,255,255,.2); border-radius:14px; background:rgba(255,255,255,.92); box-shadow:0 14px 32px rgba(0,0,0,.28); }
.mototerapia-brand img { display:block; width:clamp(170px, 25vw, 285px); height:auto; }
.mototerapia-brand span { color:#171113; font-size:.8rem; font-weight:800; letter-spacing:.04em; text-transform:uppercase; }
.mototerapia-intro { padding-bottom:72px; }
.mototerapia-intro-grid { display:grid; grid-template-columns:minmax(0,1.05fr) minmax(280px,.75fr); gap:clamp(2rem,7vw,7rem); align-items:start; margin-top:1.1rem; }
.mototerapia-intro-grid h2,.mototerapia-editions h2 { margin:0; max-width:13ch; font-size:clamp(2.45rem,5vw,5.2rem); line-height:.92; letter-spacing:-.075em; }
.mototerapia-intro-grid h2 em { color:var(--primary-2); font-family:"Great Vibes",cursive; font-size:1.2em; font-weight:400; letter-spacing:0; }
.mototerapia-intro-grid p { margin:0 0 1.2rem; color:var(--muted); font-size:1.08rem; line-height:1.7; }
.mototerapia-values { border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.mototerapia-values .container { display:grid; grid-template-columns:repeat(3,1fr); }
.mototerapia-values .container > div { min-height:180px; padding:2.1rem clamp(1.1rem,3vw,3rem); border-left:1px solid var(--line); display:flex; flex-direction:column; justify-content:center; gap:.75rem; }
.mototerapia-values .container > div:first-child { border-left:0; }
.mototerapia-values strong { font-size:1.22rem; letter-spacing:-.035em; }
.mototerapia-values span { color:var(--muted); line-height:1.55; }
.mototerapia-statement { padding:clamp(5rem,10vw,9rem) 0; text-align:center; background:radial-gradient(circle at 50% 0,rgba(244,90,155,.25),transparent 38rem),linear-gradient(135deg,#170e12,#090708); }
.mototerapia-statement .kicker { color:#f6d898; }
.mototerapia-statement h2 { margin:.75rem auto 1rem; max-width:12ch; font-size:clamp(3.2rem,7vw,7.4rem); line-height:.83; letter-spacing:-.09em; }
.mototerapia-statement p { max-width:55ch; margin:0 auto; color:rgba(255,255,255,.72); font-size:1.08rem; line-height:1.7; }
.mototerapia-statement .text-link { display:inline-flex; gap:.45rem; margin-top:2rem; color:#fff; font-weight:800; letter-spacing:.06em; }
.mototerapia-editions { padding-top:100px; }
.mototerapia-editions-heading { display:flex; align-items:end; justify-content:space-between; gap:2rem; padding-bottom:2.5rem; border-bottom:1px solid var(--line); }
.mototerapia-editions-heading h2 { max-width:15ch; }
.mototerapia-timeline article { display:grid; grid-template-columns:minmax(130px,.26fr) 1fr; gap:2rem; padding:2.4rem 0; border-bottom:1px solid var(--line); }
.mototerapia-timeline article > span { color:var(--primary-2); font-size:clamp(2rem,3vw,3.2rem); font-weight:800; letter-spacing:-.07em; }
.mototerapia-timeline h3 { margin:0 0 .65rem; font-size:clamp(1.5rem,2.4vw,2.3rem); letter-spacing:-.055em; }
.mototerapia-timeline p { max-width:67ch; margin:0; color:var(--muted); line-height:1.7; }
.mototerapia-closing { display:flex; align-items:center; justify-content:space-between; gap:2rem; padding-top:3rem; }
.mototerapia-closing p { max-width:60ch; margin:0; color:var(--muted); font-size:1.08rem; line-height:1.7; }
.poster-modal { width:auto; max-width:92vw; max-height:94dvh; margin:auto; padding:.65rem; overflow:visible; border:1px solid rgba(255,255,255,.22); border-radius:16px; background:#130d10; box-shadow:0 24px 80px rgba(0,0,0,.72); }
.poster-modal::backdrop { background:rgba(0,0,0,.78); backdrop-filter:blur(5px); }
.poster-modal img { display:block; width:auto; max-width:88vw; height:auto; max-height:88dvh; border-radius:10px; }
.poster-modal-close { position:absolute; top:-14px; right:-14px; display:grid; width:38px; height:38px; place-items:center; border:1px solid rgba(255,255,255,.45); border-radius:50%; color:#fff; background:#d92775; font-size:1.7rem; line-height:1; cursor:pointer; box-shadow:0 5px 18px rgba(0,0,0,.5); }
.routes-section { padding:125px 0; }
.routes-grid { display:grid; grid-template-columns:.85fr 1.15fr; gap:3rem; }
.routes-grid h2 { margin-top:0; font-size:clamp(2.8rem, 5vw, 5rem); letter-spacing:-.07em; }
.route-list { border-top:1px solid var(--line); }
.route-list a { display:grid; grid-template-columns:1fr 1.2fr; align-items:center; gap:1rem; padding:1.45rem 0; border-bottom:1px solid var(--line); transition:padding .2s ease; }
.route-list a:hover { padding-left:.6rem; }
.route-list span { font-size:1.45rem; font-weight:800; }
.route-list small { color:var(--muted); }
.route-list b { color:var(--primary-2); font-size:1.45rem; }
.final-cta { padding:105px 0 125px; text-align:center; background:linear-gradient(135deg, rgba(180,0,0,.36), transparent 67%); border-top:1px solid var(--line); }
.final-cta h2 { margin:1rem auto 2rem; font-size:clamp(3rem, 6.5vw, 6.5rem); letter-spacing:-.08em; }
@media (max-width:900px) {
  .hero-asphalt { min-height:auto; padding:78px 0 65px; }
  .hero-grid, .manifesto, .routes-grid, .causes { grid-template-columns:1fr; }
  .hero-copy h1 { font-size:clamp(3.9rem, 18vw, 6rem); }
  .hero-mark { justify-self:center; width:min(78vw, 350px); margin-top:-1rem; }
  .manifesto-section, .routes-section { padding:78px 0; }
  .cause { min-height:255px; border-left:0; border-top:1px solid var(--line); }
  .route-countdown { margin-top:1rem; padding:.62rem .68rem .68rem; }
  .route-countdown-units { gap:.45rem; }
  .cause-poster-trigger { height:190px; max-width:46%; }
  .cause-mototerapia-logo { width:min(52%, 235px); }
  .mototerapia-brand { align-items:flex-start; flex-direction:column; gap:.4rem; }
  .mototerapia-intro { padding-bottom:48px; }
  .mototerapia-intro-grid,.mototerapia-editions-heading,.mototerapia-closing { display:block; }
  .mototerapia-intro-grid h2 { margin-bottom:1.5rem; }
  .mototerapia-values .container { grid-template-columns:1fr; }
  .mototerapia-values .container > div,.mototerapia-values .container > div:first-child { min-height:auto; padding:1.5rem 0; border-left:0; border-top:1px solid var(--line); }
  .mototerapia-values .container > div:first-child { border-top:0; }
  .mototerapia-editions-heading h2 { margin-top:.75rem; }
  .mototerapia-timeline article { grid-template-columns:1fr; gap:.65rem; padding:1.8rem 0; }
  .mototerapia-closing .btn { margin-top:1.5rem; }
  .cause:first-child { border-top:0; }
  .route-list a { grid-template-columns:1fr; }
  .route-list small { grid-column:1; grid-row:2; }
}

/* Mobile 3D drum: each label is a horizontal band on a rotating cylinder. */
@media (max-width:900px) {
  .nav-links { height:262px; padding:.55rem; overflow:hidden; border-radius:20px; perspective:850px; perspective-origin:50% 50%; background:radial-gradient(ellipse at 50% 50%,rgba(244,90,155,.12),transparent 45%),linear-gradient(145deg,rgba(30,27,32,.99),rgba(8,9,11,.99)),url("assets/asphalt-cracked-v1.webp") center/640px; }
  .nav-links.open { display:block; }
  .nav-links.open a,
  .nav-links.open a:nth-child(1),.nav-links.open a:nth-child(2),.nav-links.open a:nth-child(3),.nav-links.open a:nth-child(4),.nav-links.open a:nth-child(5) { position:absolute; top:calc(50% - 25px); right:.65rem; left:.65rem; width:auto; min-height:50px; display:flex; align-items:center; padding:.82rem 1rem; transform-style:preserve-3d; transform-origin:center; transition:transform .28s cubic-bezier(.2,.8,.2,1),opacity .22s ease,filter .22s ease,background .22s ease,border-color .22s ease,box-shadow .22s ease; }
  .nav-links.open a[data-drum-position="0"] { z-index:5; opacity:1; filter:none; transform:translateY(0) translateZ(44px) rotateX(0deg); }
  .nav-links.open a[data-drum-position="-1"] { z-index:4; opacity:.72; filter:brightness(.72); transform:translateY(-51px) translateZ(15px) rotateX(52deg); }
  .nav-links.open a[data-drum-position="1"] { z-index:4; opacity:.72; filter:brightness(.72); transform:translateY(51px) translateZ(15px) rotateX(-52deg); }
  .nav-links.open a[data-drum-position="-2"] { z-index:3; opacity:.28; filter:brightness(.42); transform:translateY(-91px) translateZ(-33px) rotateX(72deg); }
  .nav-links.open a[data-drum-position="2"] { z-index:3; opacity:.28; filter:brightness(.42); transform:translateY(91px) translateZ(-33px) rotateX(-72deg); }
  .nav-links.open a.is-selected { border-color:rgba(255,181,216,.72); background:linear-gradient(105deg,rgba(255,255,255,.14),rgba(244,90,155,.31),rgba(255,255,255,.07)); box-shadow:inset 3px 0 0 #f45a9b,0 10px 24px rgba(0,0,0,.38),0 0 24px rgba(244,90,155,.18); }
  .nav-links.open a.is-selected::after { content:"●"; display:block; right:15px; color:#ff9cc9; font-size:.55rem; }
}

/* Final mobile menu layout: horizontal labels stacked vertically. */
@media (max-width:900px) {
  .nav-links { left:1rem; right:1rem; top:88px; width:auto; height:auto; min-height:0; padding:.6rem; overflow:visible; border-radius:19px; background:linear-gradient(145deg,rgba(27,24,29,.985),rgba(8,9,11,.99)),url("assets/asphalt-cracked-v1.webp") center/640px; transform:translateY(-13px) scale(.98); }
  .nav-links::before,.nav-links::after { display:none; }
  .nav-links.open { display:flex; gap:.32rem; align-items:stretch; transform:none; }
  .nav-links.open a,
  .nav-links.open a:nth-child(1),.nav-links.open a:nth-child(2),.nav-links.open a:nth-child(3),.nav-links.open a:nth-child(4),.nav-links.open a:nth-child(5) { position:relative; top:auto; left:auto; width:100%; min-height:50px; display:flex; align-items:center; margin:0; padding:.82rem 1rem; border:1px solid rgba(255,255,255,.07); border-radius:12px; color:rgba(255,255,255,.78); background:rgba(255,255,255,.025); transform:none; }
  .nav-links.open a.is-selected { color:#fff8fb; border-color:rgba(255,181,216,.68); background:linear-gradient(105deg,rgba(255,255,255,.12),rgba(244,90,155,.28),rgba(255,255,255,.05)); box-shadow:inset 3px 0 0 #f45a9b,0 5px 16px rgba(0,0,0,.24); transform:none; }
  .nav-links.open a.is-selected::after { display:block; content:"●"; right:15px; color:#ff9cc9; font-size:.55rem; }
}

/* Motion: restrained entrance reveals and a road-line drawing effect. */
.has-motion .reveal {
  opacity: 0;
  transform: translate3d(0, 28px, 0);
  transition:
    opacity .72s cubic-bezier(.22, 1, .36, 1),
    transform .72s cubic-bezier(.22, 1, .36, 1);
  transition-delay: var(--reveal-delay, 0ms);
  will-change: opacity, transform;
}
.has-motion .reveal.is-visible { opacity: 1; transform: translate3d(0, 0, 0); }
.has-motion .hero-mark-ring {
  clip-path: inset(0 100% 0 0);
  animation: draw-accent 1.65s cubic-bezier(.22, 1, .36, 1) .25s forwards;
}
.has-motion .hero-mark-ring { animation-delay: .52s; }
.has-motion .hero-background-arc circle {
  stroke-dashoffset: 1;
  animation: draw-background-arc 1.9s cubic-bezier(.22, 1, .36, 1) .18s forwards;
}
.has-motion .hero-background-arc .arc-secondary { animation-delay: .32s; }
.has-motion .hero-background-arc .arc-tertiary { animation-delay: .46s; }
.has-motion .road-line {
  transform: rotate(-7deg) scaleX(0);
  transform-origin: left center;
  animation: draw-road-line 1.45s cubic-bezier(.22, 1, .36, 1) .35s forwards;
}
.has-motion .speedometer-logo {
  opacity:0;
  transform:translateX(-50%) scale(.96);
  -webkit-mask-image:linear-gradient(to right, #000 0 82%, transparent 100%);
  -webkit-mask-repeat:no-repeat;
  -webkit-mask-position:left center;
  mask-image:linear-gradient(to right, #000 0 82%, transparent 100%);
  mask-repeat:no-repeat;
  mask-position:left center;
  animation: reveal-hero-logo .68s cubic-bezier(.22, 1, .36, 1) 3.72s forwards;
}
.has-motion .speedometer-logo::before { display:none; }
.has-motion .speedometer-founded i:not(.speedometer-founded-space) { opacity:0; transform:translateY(2px) scale(.93); filter:blur(1px); animation: write-speedometer-letter .22s cubic-bezier(.18, .85, .32, 1) calc(4.45s + var(--delay)) forwards; }
.has-motion .speedometer-ticks line {
  stroke-dasharray:12;
  stroke-dashoffset:12;
  animation: draw-speedometer-tick .3s cubic-bezier(.22, 1, .36, 1) forwards;
}
.has-motion .speedometer-ticks line:nth-child(1) { animation-delay:2.25s; }
.has-motion .speedometer-ticks line:nth-child(2) { animation-delay:2.3s; }
.has-motion .speedometer-ticks line:nth-child(3) { animation-delay:2.35s; }
.has-motion .speedometer-ticks line:nth-child(4) { animation-delay:2.4s; }
.has-motion .speedometer-ticks line:nth-child(5) { animation-delay:2.45s; }
.has-motion .speedometer-ticks line:nth-child(6) { animation-delay:2.5s; }
.has-motion .speedometer-ticks line:nth-child(7) { animation-delay:2.55s; }
.has-motion .speedometer-ticks line:nth-child(8) { animation-delay:2.6s; }
.has-motion .speedometer-ticks line:nth-child(9) { animation-delay:2.65s; }
.has-motion .speedometer-ticks line:nth-child(10) { animation-delay:2.7s; }
.has-motion .speedometer-ticks line:nth-child(11) { animation-delay:2.75s; }
.has-motion .speedometer-ticks line:nth-child(12) { animation-delay:2.8s; }
.has-motion .speedometer-ticks line:nth-child(13) { animation-delay:2.85s; }
.has-motion .speedometer-needle {
  opacity:0;
  animation: speedometer-sweep 2.15s cubic-bezier(.22, 1, .36, 1) 3.35s both;
}
@keyframes draw-accent { to { clip-path: inset(0 0 0 0); } }
@keyframes draw-background-arc { to { stroke-dashoffset: 0; } }
@keyframes draw-road-line { to { transform: rotate(-7deg) scaleX(1); } }
@keyframes reveal-hero-logo { 0% { opacity:1; transform:translateX(-50%) scale(.96); -webkit-mask-size:0% 100%; mask-size:0% 100%; } 100% { opacity:1; transform:translateX(-50%) scale(1); -webkit-mask-size:125% 100%; mask-size:125% 100%; } }
@keyframes write-speedometer-letter { 0% { opacity:0; transform:translateY(2px) scale(.93); filter:blur(1px); } 65% { opacity:1; } 100% { opacity:1; transform:translateY(0) scale(1); filter:blur(0); } }
@keyframes draw-speedometer-tick { to { stroke-dashoffset:0; } }
@keyframes speedometer-sweep {
  0% { opacity:0; transform:rotate(-120deg); }
  1% { opacity:1; transform:rotate(-120deg); }
  70% { transform:rotate(126deg); }
  85% { transform:rotate(112deg); }
  100% { opacity:1; transform:rotate(120deg); }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .has-motion .reveal { opacity: 1; transform: none; transition: none; }
  .has-motion .hero-mark-ring,
  .has-motion .road-line { animation: none; clip-path: none; transform: rotate(-7deg); }
  .has-motion .hero-background-arc circle { animation: none; stroke-dashoffset: 0; }
  .has-motion .speedometer-logo { animation:none; opacity:1; transform:translateX(-50%); -webkit-mask-image:none; mask-image:none; }
  .has-motion .speedometer-logo::before { animation:none; }
  .has-motion .speedometer-founded i { animation:none; opacity:1; transform:none; filter:none; }
  .has-motion .speedometer-ticks line { animation:none; stroke-dashoffset:0; }
  .has-motion .speedometer-needle { animation:none; opacity:1; transform:rotate(120deg); }
}

/* Ruta Motera Chalecos Rosas */
.rose-route-hero { padding:76px 0 88px; overflow:hidden; background:radial-gradient(circle at 84% 45%, rgba(244, 157, 0, .19), transparent 30rem), linear-gradient(130deg, #120d10, #241018 60%, #100d0f); }
.rose-route-hero-grid { display:grid; grid-template-columns:1.05fr .75fr; align-items:center; gap:4rem; }
.rose-route-hero h1 { margin:1rem 0; font-family:Georgia, "Times New Roman", serif; font-weight:400; font-size:clamp(3.6rem, 7.5vw, 7rem); letter-spacing:-.06em; }
.rose-route-hero h1 em { color:#f45a9b; }
.rose-route-btn-pink { background:linear-gradient(135deg, #f45a9b, #d92775); color:#fff; box-shadow:0 12px 30px rgba(244,90,155,.3); }
.rose-route-btn-gold { background:linear-gradient(135deg, #f0b436, #bd7a12); color:#1c1110; box-shadow:0 12px 30px rgba(240,180,54,.28); }
.route-registration-pink { color:#f45a9b; }
.route-registration-pink-btn { background:linear-gradient(135deg, #f45a9b, #d92775); color:#fff; box-shadow:0 12px 30px rgba(244,90,155,.3); }
.route-registration-gold { color:#f0b436; font-weight:800; }
.route-registration-gold-title { color:#f0b436; }
.route-registration-gold-btn { background:linear-gradient(135deg, #f0b436, #bd7a12); color:#1c1110; box-shadow:0 12px 30px rgba(240,180,54,.28); }
.rose-route-poster { margin:0; padding:.65rem; border:1px solid rgba(255,255,255,.13); border-radius:18px; background:rgba(255,255,255,.055); box-shadow:var(--shadow); }
.rose-route-poster img { width:100%; aspect-ratio: .72; object-fit:cover; object-position:top; border-radius:11px; }
.rose-route-poster figcaption { padding:.8rem .35rem .15rem; color:#f6d898; font-size:.84rem; font-weight:800; letter-spacing:.06em; text-transform:uppercase; }
.rose-route-deck { width:min(100%, 390px); justify-self:end; user-select:none; }
.rose-route-deck-cards { height:530px; position:relative; touch-action:pan-y; cursor:grab; }
.rose-route-deck-cards:active { cursor:grabbing; }
.rose-route-deck-card { position:absolute; inset:0; width:100%; padding:.65rem; overflow:hidden; border:1px solid rgba(255,255,255,.13); border-radius:18px; background:rgba(255,255,255,.055); box-shadow:var(--shadow); transition:transform .7s cubic-bezier(.2,.8,.2,1); }
.rose-route-deck-card.is-leaving { pointer-events:none; }
.rose-route-deck-card.is-entering { transition:none; }
.rose-route-deck-card img { box-sizing:border-box; width:100%; height:100%; padding:.75rem; object-fit:contain; object-position:center; border-radius:11px; pointer-events:none; }
.rose-route-deck-controls { display:grid; grid-template-columns:42px 1fr 42px; align-items:center; gap:.8rem; margin-top:1rem; text-align:center; }
.rose-route-deck-controls button { width:42px; height:42px; border:1px solid rgba(244,90,155,.7); border-radius:50%; color:#fff; background:rgba(244,90,155,.15); font-size:1.25rem; cursor:pointer; }
.rose-route-deck-controls button:hover { background:#f45a9b; }
.rose-route-deck-controls strong { color:#f6d898; font-size:.82rem; letter-spacing:.06em; text-transform:uppercase; }
.rose-route-deck > p { margin:.7rem 0 0; color:var(--muted); font-size:.8rem; text-align:center; }
.rose-route-intro { border-bottom:1px solid var(--line); }
.rose-route-intro-grid, .rose-route-timeline-grid { display:grid; grid-template-columns:.9fr 1.1fr; gap:4rem; align-items:start; }
.rose-route-statement h2, .rose-route-timeline-grid h2 { margin-top:.9rem; font-size:clamp(2.6rem, 5vw, 5.1rem); letter-spacing:-.075em; }
.rose-route-numbers { border-bottom:1px solid var(--line); background:rgba(255,255,255,.025); }
.rose-route-numbers-grid { display:grid; grid-template-columns:repeat(3, 1fr); }
.rose-route-numbers-grid div { min-height:170px; padding:2.3rem 2rem; border-left:1px solid var(--line); display:flex; flex-direction:column; justify-content:center; }
.rose-route-numbers-grid div:first-child { border-left:0; }
.rose-route-numbers-grid strong { font-size:clamp(2.5rem, 5vw, 4.7rem); line-height:1; letter-spacing:-.08em; color:#f0b436; }
.rose-route-numbers-grid span { margin-top:.7rem; max-width:18ch; color:var(--muted); }
.rose-route-causes { display:grid; grid-template-columns:repeat(3, 1fr); margin-top:1.5rem; border-top:1px solid var(--line); }
.rose-route-causes article { padding:2rem; border-left:1px solid var(--line); }
.rose-route-causes article:first-child { border-left:0; }
.rose-route-causes span { color:#f0b436; font-weight:800; letter-spacing:.12em; }
.rose-route-causes h3 { margin-top:1.4rem; font-size:1.75rem; letter-spacing:-.05em; }
.rose-route-timeline-section { padding:82px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); background:linear-gradient(120deg, rgba(240,180,54,.1), transparent 60%); }
.rose-route-timeline { border-top:1px solid var(--line); }
.rose-route-timeline div { display:grid; grid-template-columns:120px 1fr; gap:1rem; padding:1rem 0; border-bottom:1px solid var(--line); }
.rose-route-timeline b { color:#f0b436; font-size:1.25rem; }
.rose-route-timeline-cancer b { color:#f45a9b; }
.rose-route-timeline-children b { color:#f0b436; }
.rose-route-timeline span { color:var(--muted); }
.rose-route-collaborators-grid { display:grid; grid-template-columns:repeat(3, minmax(0, 1fr)); gap:1.1rem 1.35rem; margin-top:2.4rem; align-items:center; }
.rose-route-collaborator { display:block; border-radius:12px; transition:transform .2s ease, filter .2s ease; }
.rose-route-collaborator:hover { transform:translateY(-4px); filter:brightness(1.16); }
.rose-route-collaborator:focus-visible { outline:2px solid #f45a9b; outline-offset:4px; }
.rose-route-collaborators-grid figure { height:94px; margin:0; padding:.5rem .7rem; display:flex; align-items:center; justify-content:center; overflow:hidden; border:1px solid rgba(255,255,255,.13); border-radius:12px; background:#17141a; }
.rose-route-collaborators-grid img { display:block; width:100%; height:100%; object-fit:contain; }
.rose-route-posters-section { padding-top:100px; }
.rose-route-section-heading { display:flex; justify-content:space-between; gap:2rem; align-items:end; margin-bottom:2.2rem; }
.rose-route-section-heading h2 { margin:.9rem 0 0; font-size:clamp(2.8rem, 5vw, 5rem); letter-spacing:-.075em; }
.rose-route-section-heading p { max-width:33ch; margin:0; }
.rose-route-posters { display:grid; grid-template-columns:repeat(4, 1fr); gap:1.15rem; align-items:start; }
.rose-route-posters .rose-route-poster:nth-child(even) { margin-top:2rem; }
.rose-route-posters .rose-route-poster { transition:transform .25s ease, border-color .25s ease; }
.rose-route-poster span { display:block; padding:.8rem .35rem .15rem; color:#f6d898; font-size:.84rem; font-weight:800; letter-spacing:.06em; text-transform:uppercase; }
.rose-route-posters .rose-route-poster:hover { transform:translateY(-7px); border-color:rgba(240,180,54,.65); }
@media (max-width:900px) {
  .rose-route-hero { padding:54px 0 65px; }
  .rose-route-hero-grid, .rose-route-intro-grid, .rose-route-timeline-grid { grid-template-columns:1fr; gap:2rem; }
  .rose-route-deck { justify-self:center; width:min(90%, 350px); }
  .rose-route-deck-cards { height:475px; }
  .rose-route-numbers-grid, .rose-route-causes { grid-template-columns:1fr; }
  .rose-route-numbers-grid div, .rose-route-causes article { min-height:auto; border-left:0; border-top:1px solid var(--line); }
  .rose-route-numbers-grid div:first-child, .rose-route-causes article:first-child { border-top:0; }
  .rose-route-posters { grid-template-columns:repeat(2, 1fr); }
  .rose-route-collaborators-grid { grid-template-columns:repeat(3, minmax(0, 1fr)); }
}
@media (max-width:560px) {
  .rose-route-section-heading { display:block; }
  .rose-route-section-heading p { margin-top:1rem; }
  .rose-route-posters { grid-template-columns:1fr; max-width:360px; margin:auto; }
  .rose-route-posters .rose-route-poster:nth-child(even) { margin-top:0; }
  .rose-route-collaborators-grid { grid-template-columns:repeat(2, minmax(0, 1fr)); gap:1rem; margin-top:2rem; }
  .rose-route-collaborators-grid figure { height:78px; padding:.4rem .55rem; }
}

/* Mobile: a thumb-driven circular selector, with direct taps as a fallback. */
@media (max-width:900px) {
  .nav-links { left:auto; right:.45rem; top:73px; width:min(324px,calc(100vw - .9rem)); height:310px; padding:0; overflow:hidden; border-radius:52%; border-color:rgba(255,192,219,.34); background:radial-gradient(circle at 74% 50%,rgba(244,90,155,.15),transparent 28%),linear-gradient(140deg,rgba(29,27,32,.98),rgba(8,9,11,.99)); box-shadow:0 25px 65px rgba(0,0,0,.66),inset 0 0 0 1px rgba(255,255,255,.04); transform:translate(16px,-18px) scale(.9); }
  .nav-links::before { content:""; position:absolute; z-index:0; right:24px; top:50%; width:176px; height:176px; border:1px solid rgba(255,191,219,.28); border-radius:50%; transform:translateY(-50%); box-shadow:inset 0 0 0 17px rgba(255,255,255,.025),inset 0 0 30px rgba(244,90,155,.1); }
  .nav-links::after { content:"ARRASTRA\A PARA GIRAR"; position:absolute; z-index:0; right:61px; top:50%; color:rgba(255,225,238,.64); font-size:.55rem; font-weight:800; letter-spacing:.16em; line-height:1.65; text-align:center; white-space:pre; transform:translateY(-50%); }
  .nav-links.open { transform:none; touch-action:none; }
  .nav-links.open a { position:absolute; z-index:1; width:178px; margin:0; padding:.7rem .95rem; border:1px solid transparent; border-radius:999px; color:rgba(255,255,255,.63); background:rgba(255,255,255,.025); box-shadow:none; animation:none; transition:transform .2s ease,color .2s ease,background .2s ease,border-color .2s ease,box-shadow .2s ease; }
  .nav-links.open a::before { display:none; }
  .nav-links.open a::after { content:""; display:none; }
  .nav-links.open a:nth-child(1) { top:25px; left:93px; }
  .nav-links.open a:nth-child(2) { top:76px; left:39px; }
  .nav-links.open a:nth-child(3) { top:137px; left:14px; }
  .nav-links.open a:nth-child(4) { top:198px; left:39px; }
  .nav-links.open a:nth-child(5) { top:249px; left:93px; }
  .nav-links.open a.is-selected { color:#fff6fa; border-color:rgba(255,181,216,.7); background:linear-gradient(105deg,rgba(255,255,255,.13),rgba(244,90,155,.28),rgba(255,255,255,.06)); box-shadow:0 0 0 4px rgba(244,90,155,.09),0 9px 20px rgba(0,0,0,.28),inset 0 0 0 1px rgba(255,255,255,.14); transform:scale(1.055) translateX(5px); }
  .nav-links.open a.is-selected::after { content:"●"; display:block; position:absolute; right:13px; top:50%; color:#ff9cc9; font-size:.55rem; transform:translateY(-50%); }
}

/* Archivo de eventos */
.events-hero { padding-bottom:92px; background:radial-gradient(circle at 78% 20%, rgba(244,90,155,.2), transparent 23rem); }
.events-hero h1 { margin-top:1rem; }
.events-featured-section { padding:0 0 2rem; }
.events-featured-card { display:grid; grid-template-columns:1fr 190px; gap:2rem; align-items:center; padding:2rem; overflow:hidden; border:1px solid rgba(244,90,155,.35); border-radius:22px; background:linear-gradient(130deg, rgba(217,39,117,.2), rgba(255,255,255,.035) 62%); box-shadow:var(--shadow); }
.events-featured-card h2 { max-width:18ch; margin-top:.75rem; font-size:clamp(2rem, 4vw, 3.7rem); letter-spacing:-.06em; }
.events-featured-card p { max-width:62ch; }
.events-featured-card img { width:100%; max-height:270px; object-fit:contain; filter:drop-shadow(0 12px 20px rgba(0,0,0,.38)); }
.events-enter-btn { margin-top:.5rem; background:linear-gradient(135deg, #f45a9b, #d92775); box-shadow:0 10px 22px rgba(217,39,117,.28); }
.events-mototerapia-section { padding-top:0; }
.events-featured-mototerapia { grid-template-columns:1fr; min-height:310px; background:radial-gradient(circle at 84% 18%, rgba(240,180,54,.2), transparent 20rem), linear-gradient(130deg, rgba(244,90,155,.2), rgba(255,255,255,.035) 62%); }
.events-featured-mototerapia h2 { max-width:22ch; }
.events-gallery-section { padding-top:62px; }
.events-gallery-hub { display:grid; grid-template-columns:repeat(2, 1fr); gap:1.2rem; }
.events-gallery-cover { position:relative; display:flex; min-height:260px; flex-direction:column; justify-content:flex-end; overflow:hidden; padding:1.45rem; border:1px solid var(--line); border-radius:18px; background:linear-gradient(145deg, rgba(255,255,255,.08), rgba(255,255,255,.025)); transition:transform .22s ease, border-color .22s ease; }
.events-gallery-cover:hover { transform:translateY(-6px); border-color:rgba(244,90,155,.7); }
.events-gallery-cover::before { content:""; position:absolute; inset:0; z-index:0; background:linear-gradient(180deg, transparent 18%, rgba(11,11,13,.94) 100%); }
.events-gallery-cover > * { position:relative; z-index:1; }
.events-gallery-cover > img { position:absolute; inset:0; z-index:0; width:100%; height:100%; object-fit:cover; opacity:.72; }
.events-gallery-cover-route { min-height:260px; background:linear-gradient(120deg, rgba(217,39,117,.38), rgba(24,14,18,.82)); }
.events-gallery-cover-route img { inset:auto 1rem 0 auto; width:38%; height:92%; object-fit:contain; object-position:bottom right; opacity:.86; }
.events-gallery-cover-mototerapia { background:radial-gradient(circle at 82% 18%, rgba(240,180,54,.28), transparent 15rem), linear-gradient(145deg, rgba(244,90,155,.42), rgba(36,16,24,.4)); }
.events-gallery-cover .events-mototerapia-logo { position:absolute; z-index:1; inset:1.15rem 1.15rem auto auto; width:min(42%, 245px); height:auto; padding:.35rem; border-radius:12px; background:rgba(255,255,255,.96); box-shadow:0 10px 24px rgba(0,0,0,.3); opacity:1; pointer-events:none; }
.events-gallery-cover span { color:#f6d898; font-size:.77rem; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }
.events-gallery-cover h3 { margin:.55rem 0; font-size:clamp(1.8rem, 3vw, 2.8rem); letter-spacing:-.06em; }
.events-gallery-cover p { margin:0 0 .8rem; color:rgba(255,255,255,.76); }
.events-gallery-cover b { width:max-content; padding:.45rem .8rem; border:1px solid rgba(255,255,255,.36); border-radius:999px; font-size:.77rem; }
.events-heading { display:flex; align-items:end; justify-content:space-between; gap:2rem; margin-bottom:2.2rem; }
.events-heading h2 { margin:.7rem 0 0; font-size:clamp(2.6rem, 5vw, 5rem); letter-spacing:-.07em; }
.events-heading p { max-width:36ch; margin:0; }
.events-posters-grid { display:grid; grid-template-columns:repeat(4, minmax(0, 1fr)); gap:1.25rem; }
.events-poster-card { display:block; overflow:hidden; border:1px solid var(--line); border-radius:16px; background:rgba(255,255,255,.035); box-shadow:var(--shadow); transition:transform .22s ease, border-color .22s ease; }
.events-poster-card:hover { transform:translateY(-6px); border-color:rgba(244,90,155,.78); }
.events-poster-card img { width:100%; aspect-ratio:.707; object-fit:cover; }
.events-poster-card span { display:block; padding:.8rem .9rem; font-size:.8rem; font-weight:800; letter-spacing:.04em; color:#f6d898; text-transform:uppercase; }
.events-poster-card.is-current { border-color:rgba(244,90,155,.74); }
.events-categories-section { padding:82px 0 105px; border-top:1px solid var(--line); background:linear-gradient(135deg, rgba(255,0,0,.13), transparent 58%); }
.events-categories-grid { display:grid; grid-template-columns:repeat(4, 1fr); border-top:1px solid var(--line); }
.events-categories-grid a { min-height:230px; padding:1.75rem; border-left:1px solid var(--line); transition:background .2s ease; }
.events-categories-grid a:first-child { border-left:0; }
.events-categories-grid a:hover { background:rgba(255,255,255,.05); }
.events-categories-grid span { color:#f45a9b; font-weight:800; letter-spacing:.12em; }
.events-categories-grid h3 { margin-top:0; font-size:1.7rem; letter-spacing:-.05em; }
.events-categories-grid b { display:inline-block; margin-top:.35rem; color:#f6d898; font-size:.84rem; }
.gallery-hero { padding-bottom:76px; background:radial-gradient(circle at 80% 15%, rgba(244,90,155,.18), transparent 25rem); }
.gallery-back { display:inline-block; margin-bottom:1.2rem; color:#f6d898; font-size:.9rem; font-weight:800; }
.edition-switcher { display:flex; align-items:stretch; justify-content:space-between; gap:1rem; max-width:650px; margin-top:2rem; }
.edition-switcher a { display:grid; grid-template-columns:auto 1fr; align-items:center; column-gap:.65rem; min-width:154px; padding:.7rem .85rem; border:1px solid rgba(255,255,255,.17); border-radius:12px; color:#fff; background:rgba(255,255,255,.035); transition:transform .2s ease,border-color .2s ease,background .2s ease; }
.edition-switcher a:hover,.edition-switcher a:focus-visible { border-color:rgba(244,90,155,.78); background:rgba(244,90,155,.13); outline:none; transform:translateY(-2px); }
.edition-switcher span { grid-row:span 2; color:#f45a9b; font-size:1.6rem; line-height:1; }
.edition-switcher small { color:var(--muted); font-size:.65rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.edition-switcher strong { font-size:1rem; }
.edition-switcher-next { margin-left:auto; grid-template-columns:1fr auto !important; text-align:right; }
.edition-switcher-next span { grid-column:2; }
@media (max-width:560px) { .edition-switcher { gap:.55rem; } .edition-switcher a { min-width:0; flex:1; padding:.65rem; } .edition-switcher small { font-size:.58rem; } }
.gallery-edition-grid { display:grid; grid-template-columns:minmax(0, .75fr) minmax(0, 1fr); gap:4rem; align-items:center; }
.gallery-edition-grid > img { width:min(100%, 430px); max-height:72vh; margin:auto; border-radius:18px; object-fit:contain; box-shadow:var(--shadow); }
.gallery-edition-grid h2 { margin-top:.8rem; font-size:clamp(2.4rem, 4vw, 4rem); letter-spacing:-.07em; }
.gallery-empty { padding:3rem; border:1px dashed rgba(255,255,255,.3); border-radius:22px; background:rgba(255,255,255,.025); }
.gallery-sections { padding:72px 0 100px; border-top:1px solid var(--line); background:linear-gradient(135deg, rgba(244,90,155,.13), transparent 58%); }
.gallery-sections-grid { display:grid; grid-template-columns:repeat(5, 1fr); border-top:1px solid var(--line); }
.gallery-sections-grid article { min-height:180px; padding:1.5rem; border-left:1px solid var(--line); }
.gallery-sections-grid article:first-child { border-left:0; }
.gallery-sections-grid h3 { margin-top:0; font-size:1.45rem; letter-spacing:-.05em; }
.gallery-photo-groups { margin-top:4.5rem; }
.gallery-photo-group { padding-top:2rem; margin-top:2.5rem; border-top:1px solid var(--line); }
.gallery-photo-group h3 { margin:0 0 1.2rem; color:#f6d898; font-size:1.6rem; letter-spacing:-.05em; }
.gallery-photo-grid { display:grid; grid-template-columns:repeat(3, minmax(0, 1fr)); gap:1rem; }
.gallery-photo { display:block; overflow:hidden; color:inherit; border:1px solid var(--line); border-radius:15px; background:rgba(255,255,255,.035); transition:transform .2s ease, border-color .2s ease; }
.gallery-photo:hover { transform:translateY(-5px); border-color:rgba(244,90,155,.8); }
.gallery-photo img { display:block; width:100%; aspect-ratio:4 / 3; object-fit:cover; }
.gallery-photo span { display:block; padding:.8rem .9rem .9rem; color:var(--muted); font-size:.86rem; line-height:1.35; }
.gallery-lightbox { width:min(1180px,96vw); height:min(92dvh,900px); margin:auto; padding:0; overflow:visible; border:1px solid rgba(255,255,255,.22); border-radius:20px; color:#fff; background:#0c0b0e; box-shadow:0 28px 90px rgba(0,0,0,.8); }
.gallery-lightbox::backdrop { background:rgba(0,0,0,.86); backdrop-filter:blur(6px); }
.gallery-lightbox-image { display:block; width:100%; height:calc(100% - 58px); object-fit:contain; }
.gallery-lightbox-caption { display:block; min-height:58px; padding:.9rem 5rem .9rem 1.1rem; color:rgba(255,255,255,.78); font-size:.9rem; line-height:1.35; }
.gallery-lightbox button { position:absolute; z-index:1; display:grid; width:46px; height:46px; place-items:center; border:1px solid rgba(255,255,255,.28); border-radius:50%; color:#fff; background:rgba(10,9,12,.76); box-shadow:0 6px 20px rgba(0,0,0,.35); font:400 2rem/1 Arial,sans-serif; cursor:pointer; transition:opacity .42s ease,transform .42s ease,border-color .2s ease,background .2s ease; }
.gallery-lightbox button:hover,.gallery-lightbox button:focus-visible { border-color:#f45a9b; background:rgba(190,28,53,.78); outline:none; }
.gallery-lightbox-close { top:.8rem; right:.8rem; font-size:1.8rem !important; }
.gallery-lightbox-prev,.gallery-lightbox-next { top:calc(50% - 29px); }
.gallery-lightbox-prev { left:.8rem; }
.gallery-lightbox-next { right:.8rem; }
.gallery-lightbox-controls-hidden .gallery-lightbox-prev,.gallery-lightbox-controls-hidden .gallery-lightbox-next { opacity:0; pointer-events:none; transform:scale(.82); }
@media (max-width:560px) { .gallery-lightbox { width:100vw; height:100dvh; max-height:none; border:0; border-radius:0; } .gallery-lightbox-image { height:calc(100% - 74px); } .gallery-lightbox-caption { min-height:74px; padding:1rem 3.8rem 1rem .9rem; } .gallery-lightbox button { width:42px; height:42px; } .gallery-lightbox-prev { left:.35rem; } .gallery-lightbox-next { right:.35rem; } .gallery-lightbox-close { top:.45rem; right:.45rem; } }
.gallery-video-group { border-top:0; margin-top:0; padding-top:0; }
.gallery-video-card { display:grid; grid-template-columns:minmax(0, 2fr) minmax(210px, 1fr); overflow:hidden; border:1px solid rgba(244,90,155,.4); border-radius:18px; background:linear-gradient(135deg, rgba(244,90,155,.13), rgba(255,255,255,.035)); box-shadow:var(--shadow); }
.gallery-video-card video { display:block; width:100%; aspect-ratio:16 / 9; background:#050507; }
.gallery-video-card div { display:flex; flex-direction:column; justify-content:center; padding:1.5rem; }
.gallery-video-card strong { color:#fff; font-size:1.25rem; letter-spacing:-.03em; }
.gallery-video-card p { margin:.45rem 0 0; color:var(--muted); }
.gallery-empty { margin:4rem 0 0; color:var(--muted); }
@media (max-width:900px) {
  .events-gallery-hub { grid-template-columns:repeat(2, 1fr); }
  .events-gallery-cover-route { min-height:260px; }
  .events-posters-grid { grid-template-columns:repeat(3, minmax(0, 1fr)); }
  .events-categories-grid { grid-template-columns:repeat(2, 1fr); }
  .events-categories-grid a:nth-child(odd) { border-left:0; }
  .events-categories-grid a:nth-child(n+3) { border-top:1px solid var(--line); }
  .gallery-edition-grid { grid-template-columns:1fr; gap:2rem; }
  .gallery-sections-grid { grid-template-columns:repeat(3, 1fr); }
  .gallery-sections-grid article:nth-child(odd) { border-left:0; }
  .gallery-photo-grid { grid-template-columns:repeat(2, minmax(0, 1fr)); }
  .gallery-video-card { grid-template-columns:1fr; }
}
@media (max-width:560px) {
  .events-gallery-hub { grid-template-columns:1fr; }
  .events-gallery-cover, .events-gallery-cover-route { min-height:275px; }
  .events-hero { padding-bottom:64px; }
  .events-featured-card { grid-template-columns:1fr 110px; gap:1rem; padding:1.3rem; }
  .events-featured-card h2 { font-size:2rem; }
  .events-featured-card img { max-height:200px; }
  .events-heading { display:block; }
  .events-heading p { margin-top:1rem; }
  .events-posters-grid { grid-template-columns:repeat(2, minmax(0, 1fr)); gap:.85rem; }
  .events-poster-card span { padding:.65rem; font-size:.68rem; }
  .events-categories-grid { grid-template-columns:1fr; }
  .events-categories-grid a { min-height:auto; border-left:0; border-top:1px solid var(--line); }
  .events-categories-grid a:first-child { border-top:0; }
  .gallery-sections-grid { grid-template-columns:1fr; }
  .gallery-sections-grid article { min-height:auto; border-left:0; border-top:1px solid var(--line); }
  .gallery-sections-grid article:first-child { border-top:0; }
  .gallery-photo-groups { margin-top:3rem; }
  .gallery-photo-grid { grid-template-columns:1fr; }
}

/* Mobile navigation — final horizontal drum.  This lives at the end of the
   stylesheet so earlier experimental menu treatments cannot override it. */
@media (max-width:900px) {
  .nav .nav-links {
    left:.7rem !important;
    right:.7rem !important;
    top:72px !important;
    width:auto !important;
    height:268px !important;
    min-height:0 !important;
    padding:0 !important;
    overflow:hidden !important;
    border:1px solid rgba(255,194,220,.31) !important;
    border-radius:22px !important;
    perspective:920px;
    perspective-origin:50% 50%;
    isolation:isolate;
    background:
      radial-gradient(ellipse at 50% 50%, rgba(244,90,155,.13), transparent 52%),
      linear-gradient(145deg, rgba(31,28,34,.99), rgba(7,8,10,.995)),
      url("assets/asphalt-cracked-v1.webp") center/640px !important;
    box-shadow:0 24px 56px rgba(0,0,0,.62), inset 0 1px rgba(255,255,255,.08) !important;
  }
  .nav .nav-links::before {
    content:"" !important;
    display:block !important;
    position:absolute;
    z-index:0;
    inset:50% .7rem auto;
    height:56px;
    border-top:1px solid rgba(255,211,230,.22);
    border-bottom:1px solid rgba(255,211,230,.15);
    border-radius:12px;
    background:linear-gradient(90deg, transparent, rgba(244,90,155,.10), transparent);
    transform:translateY(-50%);
    pointer-events:none;
  }
  .nav .nav-links::after { display:none !important; }
  .nav .nav-links.open {
    display:block !important;
    align-items:initial !important;
    gap:0 !important;
    transform:none !important;
    touch-action:none;
  }
  .nav .nav-links.open a,
  .nav .nav-links.open a:nth-child(n) {
    position:absolute !important;
    z-index:1;
    top:calc(50% - 27px) !important;
    right:.8rem !important;
    left:.8rem !important;
    width:auto !important;
    min-height:54px !important;
    margin:0 !important;
    padding:.85rem 2.3rem .85rem 1rem !important;
    display:flex !important;
    align-items:center !important;
    border:1px solid rgba(255,255,255,.08) !important;
    border-radius:12px !important;
    color:rgba(255,255,255,.78) !important;
    font-size:.97rem;
    font-weight:800;
    letter-spacing:.055em;
    text-transform:uppercase;
    white-space:nowrap;
    background:rgba(255,255,255,.035) !important;
    box-shadow:none !important;
    backface-visibility:hidden;
    transform-style:preserve-3d;
    transform-origin:center center;
    animation:none !important;
    transition:transform .32s cubic-bezier(.18,.82,.22,1), opacity .22s ease, filter .22s ease, color .22s ease, background .22s ease, border-color .22s ease, box-shadow .22s ease !important;
  }
  .nav .nav-links.open a::before { display:none !important; }
  .nav .nav-links.open a::after { display:none !important; }
  .nav .nav-links.open a[data-drum-position="0"] {
    z-index:5;
    opacity:1;
    filter:none;
    color:#fff !important;
    transform:translate3d(0,0,48px) rotateX(0deg) !important;
  }
  .nav .nav-links.open a[data-drum-position="-1"] {
    z-index:4;
    opacity:.76;
    filter:blur(.55px) brightness(.72) saturate(.78);
    transform:translate3d(0,-52px,13px) rotateX(50deg) !important;
  }
  .nav .nav-links.open a[data-drum-position="1"] {
    z-index:4;
    opacity:.76;
    filter:blur(.55px) brightness(.72) saturate(.78);
    transform:translate3d(0,52px,13px) rotateX(-50deg) !important;
  }
  .nav .nav-links.open a[data-drum-position="-2"] {
    z-index:3;
    opacity:.30;
    filter:blur(1.2px) brightness(.42) saturate(.5);
    transform:translate3d(0,-93px,-34px) rotateX(69deg) !important;
  }
  .nav .nav-links.open a[data-drum-position="2"] {
    z-index:3;
    opacity:.30;
    filter:blur(1.2px) brightness(.42) saturate(.5);
    transform:translate3d(0,93px,-34px) rotateX(-69deg) !important;
  }
  .nav .nav-links.open a.is-selected {
    border-color:rgba(255,190,221,.75) !important;
    background:linear-gradient(105deg, rgba(255,255,255,.16), rgba(244,90,155,.34), rgba(255,255,255,.08)) !important;
    box-shadow:inset 3px 0 0 #f45a9b, 0 10px 26px rgba(0,0,0,.34), 0 0 24px rgba(244,90,155,.18) !important;
  }
  .nav .nav-links.open a.is-selected::after {
    content:"●" !important;
    display:block !important;
    position:absolute;
    right:15px;
    top:50%;
    color:#ff9cc9;
    font-size:.6rem;
    transform:translateY(-50%);
  }

  /* Visible mobile trigger: a compact metal control, not an anonymous icon. */
  .nav .nav-toggle {
    display:inline-flex !important;
    width:auto !important;
    min-width:96px;
    height:42px !important;
    padding:0 .82rem !important;
    align-items:center;
    justify-content:space-between;
    gap:.65rem;
    overflow:visible !important;
    border:1px solid rgba(255,184,217,.58) !important;
    border-radius:999px;
    color:#fff5fa !important;
    background:linear-gradient(110deg, rgba(255,255,255,.12), rgba(244,90,155,.25) 48%, rgba(255,255,255,.06)) !important;
    box-shadow:inset 0 1px rgba(255,255,255,.22), 0 7px 19px rgba(0,0,0,.27);
    font-size:.68rem !important;
    font-weight:900;
    letter-spacing:.15em;
    line-height:1;
    text-transform:uppercase;
    transition:background .24s ease, border-color .24s ease, box-shadow .24s ease;
  }
  .nav .nav-toggle::before {
    flex:0 0 auto;
    width:16px !important;
    height:2px !important;
    background:#fff !important;
    box-shadow:0 -5px 0 rgba(255,255,255,.88), 0 5px 0 rgba(255,255,255,.88) !important;
  }
  .nav:has(.nav-links.open) .nav-toggle {
    border-color:rgba(255,222,236,.86) !important;
    background:linear-gradient(110deg, rgba(255,255,255,.18), rgba(217,39,117,.45), rgba(255,255,255,.10)) !important;
    box-shadow:inset 0 1px rgba(255,255,255,.28), 0 0 20px rgba(244,90,155,.23);
  }
  .nav:has(.nav-links.open) .nav-toggle::before {
    box-shadow:none !important;
    transform:rotate(45deg);
  }
  .nav:has(.nav-links.open) .nav-toggle::after {
    content:"" !important;
    position:absolute;
    left:.82rem;
    width:16px;
    height:2px;
    background:#fff;
    transform:rotate(-45deg);
  }

  /* The mobile drum uses its own red metal finish, separate from the site's pink accents. */
  .nav .nav-links {
    border-color:rgba(244,76,76,.38) !important;
    background:
      radial-gradient(ellipse at 50% 50%, rgba(218,39,45,.18), transparent 52%),
      linear-gradient(145deg, rgba(35,25,27,.99), rgba(10,7,8,.995)),
      url("assets/asphalt-cracked-v1.webp") center/640px !important;
  }
  .nav .nav-links::before {
    border-top-color:rgba(255,203,203,.25);
    border-bottom-color:rgba(255,203,203,.16);
    background:linear-gradient(90deg, transparent, rgba(218,39,45,.15), transparent);
  }
  .nav .nav-links.open a.is-selected {
    border-color:rgba(255,156,156,.78) !important;
    background:linear-gradient(105deg, rgba(255,255,255,.16), rgba(210,31,39,.42), rgba(255,255,255,.08)) !important;
    box-shadow:inset 3px 0 0 #dc2831, 0 10px 26px rgba(0,0,0,.34), 0 0 24px rgba(220,40,49,.24) !important;
  }
  .nav .nav-links.open a.is-selected::after { color:#ff8a8f; }
  .nav .nav-toggle {
    border-color:rgba(250,116,121,.62) !important;
    background:linear-gradient(110deg, rgba(255,255,255,.12), rgba(210,31,39,.34) 48%, rgba(255,255,255,.06)) !important;
  }
  .nav:has(.nav-links.open) .nav-toggle {
    border-color:rgba(255,205,206,.9) !important;
    background:linear-gradient(110deg, rgba(255,255,255,.18), rgba(190,24,31,.56), rgba(255,255,255,.10)) !important;
    box-shadow:inset 0 1px rgba(255,255,255,.28), 0 0 20px rgba(220,40,49,.3);
  }
}

/* A mouse gets a familiar dropdown; the tactile circular selector stays on
   phones, where it was designed to be used. */
@media (max-width:900px) and (pointer:fine) {
  .nav .nav-links { left:auto !important; right:max(.7rem,calc((100vw - var(--container)) / 2)) !important; top:72px !important; width:min(360px,calc(100vw - 1.4rem)) !important; height:auto !important; min-height:0 !important; display:flex !important; flex-direction:column !important; gap:.35rem !important; padding:.65rem !important; overflow:visible !important; border:1px solid rgba(255,194,220,.31) !important; border-radius:18px !important; perspective:none !important; background:linear-gradient(145deg,rgba(31,28,34,.99),rgba(7,8,10,.995)),url("assets/asphalt-cracked-v1.webp") center/640px !important; box-shadow:0 20px 48px rgba(0,0,0,.55) !important; transform:translateY(-10px) scale(.98) !important; }
  .nav .nav-links::before,.nav .nav-links::after { display:none !important; }
  .nav .nav-links.open { display:flex !important; transform:none !important; touch-action:auto !important; }
  .nav .nav-links.open a,.nav .nav-links.open a:nth-child(n) { position:relative !important; inset:auto !important; z-index:auto !important; width:100% !important; min-height:48px !important; margin:0 !important; padding:.8rem 2.4rem .8rem 1rem !important; display:flex !important; align-items:center !important; border:1px solid rgba(255,255,255,.08) !important; border-radius:10px !important; color:rgba(255,255,255,.86) !important; font-size:.93rem !important; font-weight:750 !important; letter-spacing:.03em !important; text-transform:none !important; white-space:normal !important; background:rgba(255,255,255,.035) !important; box-shadow:none !important; filter:none !important; opacity:1 !important; transform:none !important; transition:background .18s ease,border-color .18s ease,color .18s ease !important; }
  .nav .nav-links.open a::before { display:none !important; }
  .nav .nav-links.open a::after { content:"›" !important; display:block !important; position:absolute; right:1rem; top:50%; color:#ff9caf; font-size:1.25rem; line-height:1; transform:translateY(-50%); }
  .nav .nav-links.open a:hover,.nav .nav-links.open a:focus-visible,.nav .nav-links.open a[aria-current="page"] { color:#fff !important; border-color:rgba(255,169,196,.62) !important; background:linear-gradient(105deg,rgba(255,255,255,.13),rgba(218,39,45,.28),rgba(255,255,255,.06)) !important; box-shadow:inset 3px 0 0 #dc2831 !important; }
  .nav .nav-links.open a.is-selected { box-shadow:none !important; }
}
