﻿/* ============================================================
   NAMI SUSHI — styles.css · piel "Blackout Neon" rebrandeada a Nami (jun 2026)
   MISMA estructura/animaciones/layout que la versión Oriana; SOLO cambia la piel
   (nombres + logo ola + paleta marina). Bloques de color full-bleed que chocan ·
   display Anton gigante · outline text de fondo · piezas recortadas overlap ·
   hard shadows sticker · motion con overshoot.
   Paleta Nami: índigo marino #0A1A2B (fondo) · azul-ola #5C9BD6 (acento 1) ·
   verde-mar #7FC8A9 (acento 2) · dorado/arena #193E58 (acento 3) · crema #F9F1EF.
   ============================================================ */

:root{
  /* Paleta Nami (rebrand piel jun 2026) — mismo esquema, valores marinos */
  --yellow:#5C9BD6;     /* dominante / fondos de impacto — azul-ola Nami */
  --coral:#193E58;      /* acento 3 cálido (dorado/arena Nami) — fills, no texto chico */
  --coral-deep:#A87A1E; /* dorado oscurecido para superficies con texto (paper sobre el = AA) */
  --lime:#7FC8A9;       /* acento fresco / veggie — verde-mar sereno */
  --ink:#0E0D0C;        /* texto / bloques oscuros — tinta Nami */
  --paper:#F9F1EF;      /* respiro claro — crema Nami */
  --white:#FFFFFF;
  /* texto */
  --text:#0E0D0C; --text-on-dark:#F9F1EF; --text-muted:#5B564E;
  /* espaciado 8pt */
  --space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:48px;--space-8:64px;--space-9:96px;--space-10:128px;--space-11:160px;--space-12:200px;
  /* tipografia — ratio 1.5, Playfair Display serif (maximalista, peso 800/900) + Space Grotesk body */
  --font-display:'Playfair Display','Cormorant Garamond',Georgia,'Times New Roman',serif;
  --font-body:'Space Grotesk','Hanken Grotesk',system-ui,sans-serif;
  --text-sm:.82rem;--text-base:1.0625rem;--text-lg:clamp(1.2rem,1.6vw,1.4rem);
  --text-xl:clamp(1.7rem,3vw,2.2rem);--text-2xl:clamp(2.4rem,5vw,3.4rem);
  --text-hero:clamp(3.2rem,13vw,9rem);
  /* radios / sombras pop */
  --radius:14px; --radius-pill:999px;
  --shadow-pop:6px 6px 0 var(--ink);
  --shadow-pop-coral:6px 6px 0 var(--coral-deep);
  /* motion jugueton */
  --ease-brand:cubic-bezier(.34,1.56,.64,1);
  --dur-s:180ms;--dur-m:380ms;--dur-l:720ms;

  /* ---- TOKENS NOCTURNOS · paleta "Blackout Neon — variante C+" (aprobada Director Creativo, jun 2026) ----
     Se SUMAN a la paleta pop de arriba, no la reemplazan. La capa de overrides que los consume
     vive agrupada al final del archivo ("PALETA BLACKOUT NEON — VARIANTE C+"). */
  --night:#0A1A2B;       /* índigo marino muy oscuro — hero, qué-hago, opciones, cierre */
  --night-lime:#0C2233;  /* azul marino con tinte — cómo pedir */
  --night-lime-2:#103047;/* surface más cálida marina */
  --neon-y:#5C9BD6;      /* azul-ola Nami — wordmark, acentos, borders (acento principal) */
  --neon-l:#7FC8A9;      /* verde-mar sereno — eyebrows, dashes */
  --cream:#F9F1EF;       /* crema Nami — body text sobre dark */
  --coral-night:#193E58; /* dorado Nami — solo en ruptura */
}

/* ---------- reset / base ---------- */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{
  font-family:var(--font-body);
  font-size:var(--text-base);
  line-height:1.55;
  color:var(--text);
  background:var(--yellow);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
ul,ol{list-style:none}
button{font:inherit;color:inherit;cursor:pointer;background:none;border:none}

/* ---------- skip link ---------- */
.skip-link{
  position:fixed;top:-100px;left:var(--space-4);z-index:1000;
  background:var(--ink);color:var(--paper);
  padding:var(--space-3) var(--space-5);border-radius:var(--radius);
  font-weight:700;transition:top var(--dur-s) ease;
}
.skip-link:focus-visible{top:var(--space-4);outline:3px solid var(--coral);outline-offset:3px}

/* ============================================================
   NAV STICKY POP
   position:fixed → NO ocupa flujo → el hero conserva 100svh exacto.
   Arranca translúcido sobre el amarillo del hero; al scrollear se vuelve
   sólido (paper) con borde ink + hard-shadow sticker (.nav--scrolled, lo
   togglea el JS). Smooth scroll con offset por scroll-margin-top (abajo).
   ============================================================ */
:root{--nav-h:64px}
.nav{
  position:fixed;top:0;left:0;right:0;z-index:800;
  height:var(--nav-h);
  display:flex;align-items:center;
  background:transparent;
  transition:background var(--dur-m) ease,box-shadow var(--dur-m) ease,border-color var(--dur-m) ease;
  border-bottom:3px solid transparent;
}
.nav--scrolled{
  background:var(--paper);
  border-bottom-color:var(--ink);
  box-shadow:0 4px 0 rgba(22,20,18,.12);
}
.nav__inner{display:flex;align-items:center;gap:var(--space-4);width:100%}
/* wordmark izquierda */
.nav__brand{
  display:inline-flex;align-items:center;gap:var(--space-2);
  font-family:var(--font-display);font-weight:400;
  font-size:1.35rem;line-height:1;letter-spacing:.02em;
  text-transform:uppercase;color:var(--ink);
  white-space:nowrap;flex:0 0 auto;
}
/* logo ola Nami junto al wordmark — img azul recortada (jun 2026 rebrand de piel) */
.nav__brand-mark{display:block;height:30px;width:auto;line-height:1;transform:translateY(-1px);object-fit:contain}
/* "SUSHI" del wordmark sobre el nav SCROLLEADO (fondo crema #F9F1EF): índigo marino Nami
   #193E58 → AA holgado sobre crema (~9:1). Sobre el hero el override lo pinta azul-ola
   (var(--neon-y)) sobre marino oscuro, que también pasa AA. */
.nav__brand-text--2{color:#193E58;margin-left:.12em}
.nav__brand:focus-visible{outline:3px solid var(--ink);outline-offset:3px;border-radius:6px}
/* enlaces centro */
.nav__links{display:flex;align-items:center;gap:clamp(14px,2vw,28px);margin-inline:auto}
.nav__link{
  position:relative;
  font-family:var(--font-body);font-weight:700;
  font-size:.96rem;letter-spacing:.02em;
  color:var(--ink);padding:6px 2px;
}
/* subrayado pop que crece en hover/focus/activo */
.nav__link::after{
  content:"";position:absolute;left:0;right:100%;bottom:-1px;height:3px;
  background:var(--coral);border-radius:2px;
  transition:right var(--dur-m) var(--ease-brand);
}
.nav__link:hover::after,.nav__link:focus-visible::after,.nav__link[aria-current="true"]::after{right:0}
.nav__link[aria-current="true"]{color:var(--coral-deep)}
.nav__link:focus-visible{outline:3px solid var(--ink);outline-offset:3px;border-radius:6px}
/* CTA derecha — botón pop COMPACTO de nav.
   ⚠️ Scope `.nav .nav__cta` (specificity 0,2,0) para GANARLE a `.btn` (0,1,0), que se
   define DESPUÉS en el archivo: con igual specificity ganaba `.btn` y le metía el
   padding 16px/40px + font 17px de CTA de hero → el botón medía 64px (toda la altura
   del nav) y reventaba la barra. Acá lo dejamos a tamaño de nav: chico, prolijo. */
.nav .nav__cta{
  flex:0 0 auto;
  padding:6px 15px;          /* COMPACTO (jun 2026, Director "muy grande"): alto ~30px, sticker chico */
  font-size:.84rem;          /* más chico que los enlaces (.96rem) → no compite, lee como pill de nav */
  line-height:1;
  letter-spacing:.02em;
  border:2px solid var(--ink);
  border-radius:var(--radius-pill);
  box-shadow:2px 2px 0 var(--ink);   /* sticker coral sutil, no el 6px del hero */
}
.nav .nav__cta:hover{transform:translate(-1px,-1px);box-shadow:3px 3px 0 var(--ink)}
.nav .nav__cta:active{transform:translate(2px,2px);box-shadow:1px 1px 0 var(--ink)}
/* hamburguesa (oculta en desktop) */
.nav__toggle{
  display:none;flex:0 0 auto;
  width:46px;height:46px;
  align-items:center;justify-content:center;flex-direction:column;gap:5px;
  border:2.5px solid var(--ink);border-radius:12px;
  background:var(--paper);box-shadow:3px 3px 0 var(--ink);
  transition:transform var(--dur-s) var(--ease-brand),box-shadow var(--dur-s) var(--ease-brand);
}
.nav__toggle:active{transform:translate(2px,2px);box-shadow:1px 1px 0 var(--ink)}
.nav__toggle:focus-visible{outline:3px solid var(--coral);outline-offset:3px}
.nav__toggle-bar{display:block;width:22px;height:3px;background:var(--ink);border-radius:2px;transition:transform var(--dur-m) var(--ease-brand),opacity var(--dur-s) ease}
/* X animada cuando está abierto */
.nav__toggle[aria-expanded="true"] .nav__toggle-bar:nth-child(1){transform:translateY(8px) rotate(45deg)}
.nav__toggle[aria-expanded="true"] .nav__toggle-bar:nth-child(2){opacity:0}
.nav__toggle[aria-expanded="true"] .nav__toggle-bar:nth-child(3){transform:translateY(-8px) rotate(-45deg)}

/* MOBILE NAV ≤768: hamburguesa + drawer pop full-width */
@media (max-width:768px){
  .nav__toggle{display:inline-flex}
  .nav .nav__cta{margin-left:auto}       /* Pedí siempre accesible, a la derecha junto a la burger */
  .nav__links{
    position:fixed;top:var(--nav-h);left:0;right:0;
    flex-direction:column;align-items:stretch;gap:0;margin:0;
    background:var(--paper);
    border-bottom:3px solid var(--ink);
    box-shadow:0 8px 0 rgba(22,20,18,.14);
    padding:var(--space-3) clamp(20px,5vw,48px) var(--space-5);
    /* cerrado por default: clip + slide arriba, no interactivo */
    transform:translateY(-12px);opacity:0;visibility:hidden;
    pointer-events:none;
    transition:transform var(--dur-m) var(--ease-brand),opacity var(--dur-s) ease,visibility 0s linear var(--dur-m);
  }
  .nav__links.is-open{
    transform:translateY(0);opacity:1;visibility:visible;pointer-events:auto;
    transition:transform var(--dur-m) var(--ease-brand),opacity var(--dur-s) ease,visibility 0s;
  }
  .nav__link{
    font-family:var(--font-display);font-weight:400;font-size:1.5rem;letter-spacing:.02em;
    text-transform:uppercase;
    padding:var(--space-3) 0;
    border-bottom:2px solid rgba(22,20,18,.12);
  }
  .nav__link:last-child{border-bottom:none}
  .nav__link::after{display:none}
  .nav__link:hover,.nav__link:focus-visible,.nav__link[aria-current="true"]{color:var(--coral-deep)}
  /* drawer mobile siempre sólido aunque el header esté translúcido sobre el hero */
  .nav{background:var(--paper);border-bottom-color:var(--ink)}
}

/* ---------- layout helpers ---------- */
.container{width:100%;max-width:1200px;margin-inline:auto;padding-inline:clamp(20px,5vw,48px)}
.container--narrow{max-width:760px}

/* ---------- BLOQUES DE COLOR full-bleed que chocan ---------- */
.block{position:relative;width:100%;overflow:hidden}
/* offset por el nav fixed: el smooth scroll a cada sección aterriza debajo del header */
#que-hago,#como-pedir,#opciones,#carta,#faq{scroll-margin-top:var(--nav-h)}
.block--yellow{background:var(--yellow);color:var(--ink)}
.block--ink{background:var(--ink);color:var(--paper)}
.block--lime{background:var(--lime);color:var(--ink)}
.block--paper{background:var(--paper);color:var(--ink)}
.block--coral{background:var(--coral-deep);color:var(--paper)}

.section{padding-block:clamp(64px,11vw,140px)}

/* ---------- tipografia compartida ---------- */
.eyebrow{
  font-family:var(--font-body);
  font-size:var(--text-sm);font-weight:700;
  letter-spacing:.18em;text-transform:uppercase;
  margin-bottom:var(--space-5);
}
.eyebrow--ink{color:var(--ink)}
.eyebrow--paper{color:var(--paper)}
.eyebrow--ink::before,.eyebrow--paper::before{content:"";display:inline-block;width:26px;height:3px;background:var(--coral);vertical-align:middle;margin-right:var(--space-3);transform:translateY(-3px)}
.eyebrow--paper::before{background:var(--lime)}

.section__title{
  font-family:var(--font-display);
  font-weight:400;
  font-size:var(--text-2xl);
  line-height:.96;
  letter-spacing:.01em;
  text-transform:uppercase;
  text-wrap:balance;
  margin-bottom:var(--space-6);
  max-width:18ch;
}
.section__title--paper{color:var(--paper)}
.section__body{font-size:var(--text-lg);max-width:54ch;line-height:1.5}
.section__body--paper{color:var(--paper)}
.section__closer{
  font-size:var(--text-lg);max-width:60ch;margin-top:var(--space-8);
  font-weight:500;
}

/* ============================================================
   HERO — bloque amarillo, 100svh exacto
   ============================================================ */
.hero{
  min-height:100svh;
  display:flex;align-items:center;
  /* hero SIN subcopy (jun 2026, Director "queda cargadísimo"): eyebrow + wordmark + claim +
     CTA + tags. Contenido ~590px en 1440×900 → entra clavado en 100svh, flex lo centra. */
  padding-block:clamp(64px,8.5vh,84px) clamp(36px,5vh,52px);
}
/* outline text gigante de fondo (textura) */
.hero__outline,.section__outline,.ruptura__outline,.cierre__outline{
  position:absolute;
  font-family:var(--font-display);font-weight:400;
  text-transform:uppercase;
  line-height:.8;
  -webkit-text-stroke:2px rgba(22,20,18,.16);
  color:transparent;
  pointer-events:none;user-select:none;
  white-space:nowrap;
  z-index:0;
}
.hero__outline{
  font-size:clamp(8rem,34vw,30rem);
  top:48%;left:50%;transform:translate(-50%,-50%);
  -webkit-text-stroke-color:rgba(22,20,18,.13);
}
.hero__inner{position:relative;z-index:2;width:100%}

.hero__wordmark{
  font-family:var(--font-display);font-weight:400;
  font-size:var(--text-hero);
  line-height:.97;            /* aflojado: las 2 líneas (ORIANA / SUSHI) respiran, ya no se tocan */
  letter-spacing:.01em;
  text-transform:uppercase;
  color:var(--ink);
  margin-block:var(--space-2) var(--space-4);
  position:relative;
}
.hero__word{display:block}
/* "SUSHI" del wordmark GIGANTE en coral, igual que el nav (.nav__brand-text--2 = #5C9BD6).
   El --coral #193E58 (2.58) y --coral-deep #A87A1E (3.85) NO pasan AA sobre el amarillo
   #5C9BD6; #5C9BD6 da 5.22 (AA OK) manteniéndose vivo. Es el MISMO coral que el navbar →
   consistencia de marca: "ORIANA" ink + "SUSHI" coral, replicado del nav al hero. */
.hero__word--2{color:#5C9BD6;position:relative;margin-top:.06em}  /* micro-aire entre las 2 líneas */

/* ---------- PLATO CIRCULAR, asoma del borde derecho, ROTACIÓN SCROLL-LINKED ----------
   wrapper = posición + parallax leve (no rota) · img = rotación atada al scroll.
   REPARENTADO (jun 2026): hijo directo del HERO (antes vivía en .hero__inner y sus offsets
   dependían de dónde flotara la columna de texto). Ahora top/right/bottom refieren al hero
   full-bleed → geometría determinística en todo viewport. z1 = sobre el outline (z0) y
   GENUINAMENTE debajo del texto (.hero__inner z2) → nunca tapa wordmark/claim/CTA.
   Lienzo cuadrado 1100×1100 → el plato es un CÍRCULO perfecto (height=width). */
.hero__plato{
  position:absolute;
  z-index:1;                 /* sobre el outline (z0), DEBAJO del contenido (z2) → nunca tapa texto */
  /* centro del disco SIEMPRE 58px bajo el centro del hero → el arco superior del disco
     (diámetro 100vh) queda clavado a y=58px: bajo la franja del nav (13-48px), nunca pisado
     por el CTA compacto. Port exacto del look aprobado (top:55% relativo a la columna). */
  top:calc(50% + 58px);
  left:auto;
  /* offset derecho portado del look aprobado (antes era relativo al .container centrado):
     - 1025-1296px:  48px - 13vw   (gutter del container + clamp original)
     - 1296-1769px:  37vw - 600px  (≈ -67px en 1440 — el disco asoma ~85%)
     - ≥1769px:      50vw - 830px  (en monitores anchos el disco entra entero, con margen)
     max() elige el tramo correcto en cada ancho. El sobrante sale por derecha → 0 overflow-x
     (overflow:hidden del .block absorbe sin generar scroll). */
  right:max(calc(48px - 13vw),calc(37vw - 600px),calc(50vw - 830px));
  --par-y:0px;
  /* diámetro del disco prominente (~100vh): protagonista de la mitad derecha del hero.
     La img cuadrada da un círculo perfecto por alto. */
  height:clamp(580px,100vh,1180px);
  width:auto;
  transform:translateY(-50%) translateY(var(--par-y));
  pointer-events:none;user-select:none;
  filter:drop-shadow(10px 14px 18px rgba(22,20,18,.22));
}
.hero__plato-img{
  display:block;height:100%;width:auto;
  aspect-ratio:1/1;           /* lienzo cuadrado → círculo perfecto, sin distorsión */
  transform-origin:50% 50%;   /* = centro real del disco (rosa de salmón) → gira en su lugar, sin bamboleo */
  /* ROTACIÓN SCROLL-LINKED: JS (rAF-throttled) setea --plato-rot en grados.
     Sin animación automática: el ángulo = función del scrollY de la página. */
  --plato-rot:0deg;
  transform:rotate(var(--plato-rot));
  will-change:transform;
}
@keyframes platoSettle{
  from{opacity:0;transform:rotate(var(--plato-rot)) scale(.8)}
  to  {opacity:1;transform:rotate(var(--plato-rot)) scale(1)}
}
/* SETTLE de entrada (Director jun 2026): DISPARA cuando el loader se va (body.is-loaded)
   → el fade+scale del plato se VE al revelarse el hero, no tapado. `backwards` aplica el
   estado inicial antes de arrancar y, al terminar, vuelve a la regla base
   (transform:rotate(var(--plato-rot))) → la rotación con scroll NO queda congelada. */
body.is-loaded .hero__plato-img{
  animation:platoSettle .95s cubic-bezier(.2,.72,.28,1) backwards;
}
/* hero SIN subcopy (jun 2026): el claim respira más hacia el CTA y el CTA hacia los tags —
   ritmo 48/48 parejo, el bloque queda compacto y aireado, sin banda muerta en el 100svh. */
.hero__claim{
  font-family:var(--font-body);font-weight:700;
  font-size:var(--text-xl);
  line-height:1.04;
  text-transform:none;
  color:var(--ink);
  letter-spacing:-.01em;
  margin-bottom:var(--space-7);
  max-width:18ch;
}
.hero__cta{margin-bottom:var(--space-7)}

/* ---------- botones pop ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;
  font-family:var(--font-body);font-weight:700;
  font-size:1.0625rem;letter-spacing:.02em;
  padding:16px 40px;        /* holgado: 3 palabras "Pedí por WhatsApp" */
  border-radius:var(--radius-pill);
  border:3px solid var(--ink);
  transition:transform var(--dur-s) var(--ease-brand),box-shadow var(--dur-s) var(--ease-brand),background var(--dur-s) ease;
  will-change:transform;
  /* el texto NUNCA se trunca: ni "Seguime en Instagram" ni "Pedí por WhatsApp".
     nowrap evita el corte por shrink del flex item; el botón crece a su contenido. */
  white-space:nowrap;flex:0 0 auto;max-width:100%;
}
.btn--coral{background:var(--coral);color:var(--ink);box-shadow:var(--shadow-pop)}
.btn--coral:hover{transform:translate(-2px,-2px);box-shadow:8px 8px 0 var(--ink)}
.btn--coral:active{transform:translate(2px,2px);box-shadow:3px 3px 0 var(--ink)}
.btn--lg{padding:20px 52px;font-size:1.18rem}
.btn--ghost{
  background:transparent;color:var(--paper);border-color:var(--paper);
  box-shadow:none;
}
.btn--ghost:hover{transform:translate(-2px,-2px);background:var(--paper);color:var(--ink)}
.btn:focus-visible{outline:3px solid var(--lime);outline-offset:4px}
.block--lime .btn--coral:focus-visible,.block--paper .btn--coral:focus-visible{outline-color:var(--ink)}

/* ---------- tags / pills mono ---------- */
.tags{display:flex;flex-wrap:wrap;gap:var(--space-3)}
.tag{
  position:relative;
  font-family:var(--font-body);
  font-size:var(--text-sm);font-weight:700;
  letter-spacing:.1em;text-transform:uppercase;
  padding:8px 16px;
  border:2.5px solid var(--ink);border-radius:var(--radius-pill);
  background:var(--paper);color:var(--ink);
  transition:transform var(--dur-s) var(--ease-brand),background var(--dur-s) ease;
}
.hero__tags .tag{box-shadow:3px 3px 0 var(--ink)}
.tag:hover,.tag:focus-visible{transform:translateY(-3px) rotate(-2deg);background:var(--lime)}
.tag:focus-visible{outline:3px solid var(--ink);outline-offset:3px}
/* tooltip de significado en hero tags */
.tag[data-tip]::after{
  content:attr(data-tip);
  position:absolute;left:50%;bottom:calc(100% + 10px);
  transform:translateX(-50%) translateY(6px);
  background:var(--ink);color:var(--paper);
  font-size:.72rem;font-weight:600;letter-spacing:.01em;text-transform:none;
  white-space:nowrap;padding:7px 12px;border-radius:8px;
  opacity:0;pointer-events:none;
  transition:opacity var(--dur-s) ease,transform var(--dur-s) ease;
  z-index:20;
}
.tag[data-tip]:hover::after,.tag[data-tip]:focus-visible::after{opacity:1;transform:translateX(-50%) translateY(0)}
/* pill VEGGIE/SIN TACC/CLÁSICO en la card: ÚNICO rótulo (jun 2026, Director — se volaron los
   títulos Anton duplicados). Ritmo parejo: 24px desde la imagen (16 del media + 8 del pill)
   y 24px hacia la descripción. inline-block → los márgenes NO colapsan, suman. */
.tag--on-card{display:inline-block;box-shadow:3px 3px 0 var(--ink);margin-top:var(--space-2);margin-bottom:var(--space-5)}
.tag--lime{background:var(--lime)}
.tag--coral{background:var(--coral);color:var(--ink)}

/* ============================================================
   2 — QUÉ HAGO (ink) split
   ============================================================ */
.section__outline{
  font-size:clamp(5rem,20vw,16rem);
  top:50%;right:-2%;transform:translateY(-50%);
  -webkit-text-stroke-color:rgba(249,241,239,.10);
}
.split{
  display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(32px,5vw,72px);
  align-items:center;position:relative;z-index:2;
}
.split__media{position:relative;min-height:clamp(280px,38vw,460px)}
/* piezas recortadas limpias: sombra suave difusa (no hard-shadow negro, que se leía
   como halo gris al lado del recorte). Pieza recorta limpio, sin overlay de color encima. */
.piece{filter:drop-shadow(0 8px 14px rgba(0,0,0,.20))}
.piece--makis{
  position:absolute;width:clamp(180px,28vw,330px);
  top:0;left:6%;transform:rotate(-6deg);z-index:2;
}
.piece--uramaki2{
  position:absolute;width:clamp(170px,26vw,300px);
  bottom:-4%;right:4%;transform:rotate(8deg);z-index:1;
}

/* ============================================================
   3 — CÓMO ES PEDIR (lime) — pasos
   ============================================================ */
.steps{
  display:grid;grid-template-columns:repeat(3,1fr);
  gap:clamp(20px,3vw,40px);margin-top:var(--space-7);
}
.step{
  background:var(--paper);
  border:3px solid var(--ink);border-radius:var(--radius);
  box-shadow:var(--shadow-pop);
  padding:clamp(24px,3vw,36px);
  transition:transform var(--dur-m) var(--ease-brand);
}
.step:nth-child(2){transform:rotate(-1.2deg)}
.step:nth-child(3){transform:rotate(1deg)}
.step:hover{transform:translateY(-4px) rotate(0deg)}
.step__num{
  display:block;font-family:var(--font-display);font-weight:400;
  font-size:clamp(3rem,7vw,5.2rem);line-height:.85;
  color:var(--coral-deep);margin-bottom:var(--space-3);
}
.step__title{
  font-family:var(--font-display);font-weight:400;
  font-size:clamp(1.5rem,2.4vw,2rem);line-height:1;
  text-transform:uppercase;letter-spacing:.01em;
  margin-bottom:var(--space-3);
}
.step__body{font-size:var(--text-base);line-height:1.5}

/* ============================================================
   4 — LAS OPCIONES (paper) — cards
   ============================================================ */
.cards{
  display:grid;grid-template-columns:repeat(3,1fr);
  gap:clamp(20px,3vw,36px);margin-top:var(--space-7);
}
.card{
  position:relative;
  border:3px solid var(--ink);border-radius:var(--radius);
  box-shadow:var(--shadow-pop);
  padding:clamp(20px,2.4vw,28px);
  background:var(--white);
  transition:transform var(--dur-m) var(--ease-brand),box-shadow var(--dur-m) var(--ease-brand);
}
.card--rot-l{transform:rotate(-1.4deg)}
.card--rot-r{transform:rotate(1.4deg)}
.card:hover{transform:translateY(-6px) rotate(0deg);box-shadow:10px 12px 0 var(--ink)}
.card__media{
  height:clamp(140px,16vw,190px);
  display:flex;align-items:center;justify-content:center;
  background:var(--yellow);
  border:2.5px solid var(--ink);border-radius:10px;
  margin-bottom:var(--space-4);overflow:hidden;
}
.card:nth-child(2) .card__media{background:var(--lime)}
.card:nth-child(3) .card__media{background:var(--coral)}
/* pieza recortada limpia sobre el bloque de color: sombra suave y difusa (NO hard-shadow
   negro tipo sticker, que junto al recorte se leía como halo gris feo). Sin background ni
   overlay encima de la foto: el color vive en .card__media, la pieza recorta limpio arriba. */
/* height:100% + object-fit:contain hace que la pieza ocupe la altura del media-box (que
   tiene height fija via clamp) desde el primer frame — evita el colapso a 0x0 / FOUC que
   pasaba con width:auto+height:auto sin dimension reservada. max-width:100% para que no
   desborde en piezas anchas; contain mantiene el aspect-ratio real sin deformar. */
.card__media .piece{height:100%;width:auto;max-width:100%;object-fit:contain;filter:drop-shadow(0 6px 10px rgba(0,0,0,.18))}
/* .card__title ELIMINADO (jun 2026): duplicaba palabra por palabra la pill de arriba.
   La jerarquía la lleva la pill sticker; la card queda pieza → pill → descripción. */
.card__body{font-size:var(--text-base);line-height:1.5;color:var(--text)}

/* ============================================================
   5 — RUPTURA (coral) — frase gigante
   ============================================================ */
.ruptura{
  min-height:clamp(360px,52vh,620px);
  display:flex;align-items:center;justify-content:center;
  text-align:center;padding-block:clamp(64px,10vw,120px);
  overflow:hidden;
}
.ruptura__outline{
  font-size:clamp(7rem,28vw,24rem);
  top:50%;left:50%;transform:translate(-50%,-50%);
  -webkit-text-stroke-color:rgba(249,241,239,.16);
}
@media(max-width:600px){
  /* FRESCO mobile: 33.5vw → ancho del texto Anton ≈ 90.8% del viewport (ratio medido ancho≈font×2.709).
     Entra completo y centrado en 320/360/375/390/414px con margen lateral seguro;
     bien más grande que el original (clamp daba ~112px; ahora ~131px en 390px). overflow:hidden
     de .ruptura se mantiene para contener las decoraciones flotantes deco--rup-1/2. */
  .ruptura__outline{font-size:33.5vw;}
}
.ruptura__line{
  position:relative;z-index:2;
  font-family:var(--font-display);font-weight:400;
  font-size:clamp(3rem,11vw,8rem);
  line-height:.9;text-transform:uppercase;
  color:var(--paper);letter-spacing:.01em;
  text-wrap:balance;
}

/* ============================================================
   6 — FAQ (paper) — acordeon accesible
   ============================================================ */
.faq{margin-top:var(--space-7);border-top:3px solid var(--ink)}
.faq__item{border-bottom:3px solid var(--ink)}
.faq__h{margin:0}
.faq__btn{
  width:100%;display:flex;align-items:center;justify-content:space-between;
  gap:var(--space-4);
  padding:var(--space-5) var(--space-2);
  text-align:left;
  font-family:var(--font-body);font-weight:700;
  font-size:var(--text-lg);line-height:1.25;color:var(--ink);
  transition:color var(--dur-s) ease;
}
.faq__q{flex:1}
.faq__btn:hover{color:var(--coral-deep)}
.faq__btn:focus-visible{outline:3px solid var(--ink);outline-offset:2px;border-radius:6px}
.faq__icon{
  position:relative;flex:0 0 24px;width:24px;height:24px;
}
.faq__icon::before,.faq__icon::after{
  content:"";position:absolute;top:50%;left:50%;
  background:var(--ink);border-radius:2px;
  transform:translate(-50%,-50%);
  transition:transform var(--dur-m) var(--ease-brand),opacity var(--dur-s) ease;
}
.faq__icon::before{width:18px;height:3.5px}
.faq__icon::after{width:3.5px;height:18px}
.faq__btn[aria-expanded="true"] .faq__icon::after{transform:translate(-50%,-50%) rotate(90deg);opacity:0}
.faq__btn[aria-expanded="true"] .faq__icon::before{background:var(--coral-deep)}
.faq__panel{padding:0 var(--space-2) var(--space-6)}
.faq__panel p{font-size:var(--text-base);line-height:1.6;max-width:62ch}

/* ============================================================
   7 — CIERRE (ink)
   ============================================================ */
/* "PEDÍ" como textura de fondo — debe verse la palabra ENTERA y NO quedar tapada por el
   título / sub / botones del cierre (que viven left-aligned en el container, z-index:2).
   FIX (jun 2026, Director "hoy queda tapado → a la derecha, completo, sin tapar"): el outline
   vive en la BANDA VERTICAL MEDIA-DERECHA de la sección, en el vacío a la derecha del contenido
   (el sub termina en ~x=850, los botones en ~x=710 en 1440; toda la mitad derecha-media es aire).
   Antes estaba en la esquina inferior-derecha (bottom) → coincidía en eje vertical con la fila de
   botones y se leía pisado. Ahora se ancla por TOP en el centro vertical de la sección y a la
   derecha → cae en zona libre, "PEDÍ" entero y legible como textura, sin tocar texto/botones.
   right con inset chico (no negativo) + tamaño acotado → 5 glifos completos y 0 overflow-x. */
.cierre__outline{
  font-size:clamp(3.2rem,10vw,8rem);
  left:auto;
  right:clamp(12px,3vw,56px);
  top:50%;
  bottom:auto;
  transform:translateY(-50%);
  max-width:none;
  text-align:right;
  -webkit-text-stroke-color:rgba(249,241,239,.14);
}
.cierre .container{position:relative;z-index:2}
.cierre__title{
  font-family:var(--font-display);font-weight:400;
  font-size:clamp(2.6rem,8vw,6rem);line-height:.92;
  text-transform:uppercase;color:var(--paper);
  text-wrap:balance;margin-bottom:var(--space-5);
}
/* copy del cierre: nunca truncado. wrap normal + sin overflow:hidden propio. */
.cierre__sub{font-size:var(--text-lg);max-width:48ch;color:var(--paper);margin-bottom:var(--space-7);overflow-wrap:break-word;white-space:normal}
.cierre__cta{display:flex;flex-wrap:wrap;gap:var(--space-4);max-width:100%}

/* ============================================================
   FOOTER
   ============================================================ */
.footer{padding-block:var(--space-8)}
.footer__inner{display:flex;flex-wrap:wrap;justify-content:space-between;gap:var(--space-3);align-items:center}
.footer__brand{font-size:var(--text-sm);color:var(--paper);font-weight:600;letter-spacing:.02em}
.footer__credit{font-size:var(--text-sm);color:var(--paper)}
.footer__credit a{color:var(--lime);font-weight:700;text-decoration:underline;text-underline-offset:3px}
.footer__credit a:hover{color:var(--paper)}
.footer__credit a:focus-visible{outline:3px solid var(--lime);outline-offset:3px;border-radius:4px}

/* ============================================================
   FAB WhatsApp persistente
   ============================================================ */
.fab{
  position:fixed;right:clamp(16px,3vw,28px);bottom:clamp(16px,3vw,28px);
  z-index:900;
  width:62px;height:62px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  background:#25D366;color:#fff;
  border:3px solid var(--ink);
  box-shadow:4px 4px 0 var(--ink);
  transition:transform var(--dur-s) var(--ease-brand),box-shadow var(--dur-s) var(--ease-brand);
}
.fab:hover{transform:translate(-2px,-2px) scale(1.04);box-shadow:6px 6px 0 var(--ink)}
.fab:active{transform:translate(2px,2px)}
.fab:focus-visible{outline:3px solid var(--lime);outline-offset:3px}

/* ============================================================
   PIEZAS DECORATIVAS — "sitio lleno de sushi" con movimiento
   Sembradas en margenes/esquinas, detras del contenido (z-index bajo),
   nunca tapan texto (pointer-events:none, aria-hidden, opacidades suaves).
   Movimiento GPU-only (transform/opacity): wobble/tilt sutil (±7°, NO giro 360°) + float suave.
   GUARDS: reduced-motion -> quietas (NO desaparecen). coarse -> alivia carga.
   ============================================================ */
.deco{
  position:absolute;
  z-index:1;                 /* debajo del contenido (.container z-index:2) */
  pointer-events:none;user-select:none;
  width:var(--deco-size,120px);height:auto;
  filter:drop-shadow(0 5px 9px rgba(0,0,0,.16));  /* sombra suave difusa, no hard-shadow (evita halo gris) */
  opacity:0;                 /* entra con el reveal de la seccion */
  will-change:transform,opacity;
  transform:translateY(28px) scale(.9);
  transition:opacity var(--dur-l) ease,transform var(--dur-l) var(--ease-brand);
}
/* la pieza decorativa entra (rebote) cuando su seccion se revela */
.reveal.is-visible .deco{opacity:var(--deco-opacity,.92);transform:none}

/* 3 capas para que NUNCA peleen por la misma propiedad transform:
   .deco (entrada/reveal) > .deco__float (sube-baja) > .deco__spin (wobble/tilt sutil).
   NO hay giro 360°: un PNG plano 2D girando entero se ve cutre. En su lugar, un
   balanceo ±7° de ida y vuelta (wobble) que se siente vivo y elegante, no mareante. */
.deco__float{display:block;width:100%;height:auto}
.deco__spin{display:block;width:100%;height:auto;transform-origin:50% 50%}

/* WOBBLE/TILT leve — amplitudes/velocidades variadas, suaves (no marean, no giran entero) */
.deco--spinA .deco__spin{animation:decoWobble 6.5s ease-in-out infinite}
.deco--spinB .deco__spin{animation:decoWobble 8s ease-in-out infinite reverse}
.deco--spinC .deco__spin{animation:decoWobbleSoft 7s ease-in-out infinite}
.deco--spinD .deco__spin{animation:decoWobbleSoft 9s ease-in-out infinite reverse}
/* float sube-baja suave (capa intermedia, no choca con el wobble ni con la entrada) */
.deco--floatA .deco__float{animation:decoFloat 5s ease-in-out infinite}
.deco--floatB .deco__float{animation:decoFloat 6.5s ease-in-out infinite .8s}
.deco--floatC .deco__float{animation:decoFloat 5.8s ease-in-out infinite .4s}

/* wobble = balanceo de ida y vuelta, NUNCA giro completo (±7° / ±5°) */
@keyframes decoWobble{
  0%,100%{transform:rotate(-7deg)}
  50%{transform:rotate(7deg)}
}
@keyframes decoWobbleSoft{
  0%,100%{transform:rotate(5deg)}
  50%{transform:rotate(-5deg)}
}
@keyframes decoFloat{
  0%,100%{transform:translateY(0)}
  50%{transform:translateY(-12px)}
}

/* RECOMPOSICIÓN CURADA (jun 2026) — menos y mejor ubicadas, balance diagonal.
   Criterio: cada deco vive en una esquina/borde que respira, NUNCA sobre texto/CTA.
   Peso visual balanceado en diagonal (una grande arriba ↔ una chica abajo opuesta).
   Tamaños jerarquizan: hero/que-hago llevan la pieza más grande (entrada), el resto puntúa.
   Cada deco contrapesa la miscelánea de fondo de su sección (ej: pedir-1 abajo-izq vs polka arriba-der).
   El nav fixed (top:0, 64px) → las decos top bajan a ~6-8% para no quedar bajo el header. */

/* HERO — SOLO el nigiri2 chico abajo-izquierda (contrapeso del plato, que domina la derecha).
   El maki arriba-derecha (.deco--hero-1) se ELIMINÓ (jun 2026, Director): caía dentro del
   área del plato giratorio y quedaba atrás/superpuesto al disco. */
.deco--hero-2{--deco-size:clamp(48px,5vw,76px);bottom:8%;left:4%;--deco-opacity:.5}

/* QUÉ HAGO (ink) — una sola, grande, arriba-derecha; el split-media vive abajo-derecha → no chocan */
.deco--que-1{--deco-size:clamp(62px,7vw,108px);top:9%;right:5%;--deco-opacity:.85}

/* CÓMO PEDIR — uramaki con sésamo (cut-uramaki2) BAJADO desde "Qué hago" (Director jun 2026):
   pieza decorativa DESTACADA de esta sección, abajo-izquierda. Más grande que una deco común
   (es protagonista, el Director lo quiere ver). Visible en TODOS los viewports (override mobile abajo). */
.deco--pedir-2{--deco-size:clamp(96px,12vw,158px);bottom:7%;left:3%;--deco-opacity:.95}

/* CÓMO PEDIR (lime) — abajo-izquierda: contrapeso de la polka (arriba-derecha) y lejos de las cards */
.deco--pedir-1{--deco-size:clamp(54px,5.6vw,90px);bottom:9%;left:4%;--deco-opacity:.78}

/* RUPTURA (coral) — dos esquinas OPUESTAS, frase centrada con mucho aire entre medio */
.deco--rup-1{--deco-size:clamp(56px,5.8vw,94px);top:12%;left:6%;--deco-opacity:.46}
.deco--rup-2{--deco-size:clamp(50px,5.4vw,82px);bottom:14%;right:7%;--deco-opacity:.42}

/* CIERRE (ink) — una a la izquierda (el outline "PEDÍ" gigante vive a la derecha → no chocan) */
.deco--cierre-1{--deco-size:clamp(54px,5.6vw,90px);bottom:14%;left:5%;--deco-opacity:.48}

/* CONTROL RESPONSIVE DE DECORACIONES — la legibilidad MANDA.
   En viewports angostos el contenido llena el ancho y desaparece el gutter
   vacio, asi que reducimos/ocultamos las piezas que invadirian texto.
   ≥1100px: set completo (verificado sin overlap). */
@media (max-width:1099px){
  /* tablet: ocultar las que colisionan al colapsar el layout a 1-2 columnas;
     conservar hero + ruptura + cierre (zonas con esquinas siempre vacias) */
  .deco--que-1,.deco--pedir-1{display:none}
  /* deco--que-2 (el sushi que bajó del hero) SÍ se mantiene visible — Director jun 2026:
     "ojo con mobile, quiero que se vea". Posición específica por viewport más abajo. */
}
@media (max-width:700px){
  /* mobile: solo decoracion en ruptura (texto centrado, esquinas vacias).
     HERO mobile: sin piezas flotantes (el nigiri2 se oculta; el maki ya no existe en
     ningún viewport — jun 2026). El protagonista del hero mobile es el PLATO asomando
     desde abajo. En desktop (≥701) el nigiri2 abajo-izq se mantiene. */
  .deco--cierre-1,.deco--hero-2{display:none}
  .deco--rup-1{top:6%;left:4%;--deco-size:clamp(48px,12vw,72px)}
  .deco--rup-2{bottom:7%;right:4%;--deco-size:clamp(46px,11vw,68px)}
}

/* hero plato: la ROTACIÓN SCROLL-LINKED vive en .hero__plato-img (--plato-rot, lo setea el JS
   rAF-throttled); el parallax leve (--par-y) vive en el wrapper .hero__plato → nunca pelean
   por la misma capa de transform. */

/* las cards reaccionan: la pieza gira/escala al pasar el mouse */
/* zoom LENTO y limpio de la foto al hover (Director jun 2026): scale suave, sin rotate,
   contenido por el overflow:hidden del media-box → la comida "respira" hacia el visitante. */
.card__media .piece{transition:transform 620ms cubic-bezier(.2,.7,.3,1)}
.card:hover .card__media .piece{transform:scale(1.06)}

/* coarse pointer (touch): aliviar carga — sin spin/float continuos ni parallax en las
   decoraciones (quedan visibles y quietas). El PLATO sí mantiene la rotación scroll-linked
   (no es auto-motion molesta; el JS aplica throttle generoso en touch). */
@media (pointer:coarse){
  .deco__spin,.deco__float{animation:none !important}
}

/* ============================================================
   REVEALS — TRIPLE SEGURIDAD TWL
   estado oculto -> .is-visible anima con overshoot.
   reduced-motion: fade 300ms, NUNCA transition:none ni estatico.
   ============================================================ */
[data-rv],[data-step]{
  opacity:0;transform:translateY(34px);
  transition:opacity var(--dur-l) ease,transform var(--dur-l) var(--ease-brand);
}
.reveal.is-visible [data-rv],
.reveal.is-visible [data-step]{opacity:1;transform:none}
/* stagger por orden */
.reveal.is-visible [data-rv="1"]{transition-delay:.02s}
.reveal.is-visible [data-rv="2"]{transition-delay:.10s}
.reveal.is-visible [data-rv="3"]{transition-delay:.18s}
.reveal.is-visible [data-rv="4"]{transition-delay:.26s}
.reveal.is-visible [data-rv="5"]{transition-delay:.34s}
.reveal.is-visible [data-rv="6"]{transition-delay:.42s}
.reveal.is-visible .step:nth-child(1),
.reveal.is-visible .card:nth-child(1){transition-delay:.08s}
.reveal.is-visible .step:nth-child(2),
.reveal.is-visible .card:nth-child(2){transition-delay:.20s}
.reveal.is-visible .step:nth-child(3),
.reveal.is-visible .card:nth-child(3){transition-delay:.32s}

/* CSS fallback (CAPA 1): si el JS no corre, todo aparece a 1.2s */
@keyframes rvFallback{to{opacity:1;transform:none}}
.reveal:not(.is-visible) [data-rv],
.reveal:not(.is-visible) [data-step]{
  animation:rvFallback .6s ease 1.2s forwards;
}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *{animation-duration:.001ms !important;animation-iteration-count:1 !important}
  /* fade simple, NUNCA contenido estatico ni transition:none */
  [data-rv],[data-step]{
    opacity:0;transform:none;
    transition:opacity 300ms ease;
  }
  .reveal.is-visible [data-rv],
  .reveal.is-visible [data-step]{opacity:1;transition-delay:0s !important}
  .reveal:not(.is-visible) [data-rv],
  .reveal:not(.is-visible) [data-step]{animation:rvFallback .3s ease 1.2s forwards}
  .btn,.tag,.step,.card,.fab{transition:opacity 300ms ease,background 200ms ease !important}
  /* la rotacion sticker se mantiene estatica (no es movimiento), pero los hover-transform se calman */
  .card--rot-l,.card--rot-r,.step:nth-child(2),.step:nth-child(3){transition:none}
  /* PIEZAS DECORATIVAS: se DESACTIVA todo el movimiento (spin/float/parallax/hover),
     quedan QUIETAS y VISIBLES — nunca desaparecen ni marean. */
  .deco__spin,.deco__float{
    animation:none !important;
  }
  .deco{
    opacity:var(--deco-opacity,.9) !important;
    transform:none !important;
    transition:opacity 300ms ease !important;
  }
  /* PLATO: rotación CONGELADA en un ángulo constante (visible, sin girar con scroll).
     El JS no actualiza --plato-rot bajo reduced-motion → queda en 0deg fijo. */
  .hero__plato-img{
    --plato-rot:0deg !important;
    transform:rotate(0deg) !important;
    animation:none !important;   /* sin settle bajo reduced-motion: el plato aparece directo, visible */
  }
  /* el wrapper mantiene su posicionamiento responsive (desktop translateY(-50%), mobile bottom);
     el parallax JS no corre bajo reduced-motion, así que --par-y=0 → sin movimiento. */
  .card:hover .card__media .piece{transform:none !important}
  /* NAV: sin overshoot ni slide del drawer — fade simple, nunca off total */
  .nav,.nav__link::after,.nav__toggle,.nav__toggle-bar,.nav__cta{transition:background 200ms ease,opacity 200ms ease,color 200ms ease !important}
  .nav__links{transition:opacity 200ms ease,visibility 0s !important}
  .nav__links:not(.is-open){transform:none}
}

/* ============================================================
   RESPONSIVE
   ============================================================ */
/* VIEWPORTS BAJOS (ej. 1024×768) — el hero debe entrar en 100svh.
   Achicamos contenido (clamp + padding/margins), nunca el contenedor. */
@media (max-height:820px) and (min-width:641px){
  .hero{padding-block:clamp(56px,9vh,84px) clamp(32px,5vh,52px)}
  .hero__wordmark{font-size:clamp(3rem,10.5vw,7.2rem);line-height:.92;margin-block:var(--space-1) var(--space-3)}
  .hero__claim{font-size:clamp(1.45rem,2.4vw,1.85rem);margin-bottom:var(--space-5)}
  .hero__cta{margin-bottom:var(--space-5)}
  .eyebrow{margin-bottom:var(--space-4)}
}

/* TABLET ≤1024 */
@media (max-width:1024px){
  .split{grid-template-columns:1fr;gap:var(--space-8)}
  .split__media{min-height:clamp(300px,52vw,420px)}
  .steps{grid-template-columns:1fr}
  .step:nth-child(2),.step:nth-child(3){transform:none}
  .cards{grid-template-columns:1fr 1fr}
  .cards .card:nth-child(3){grid-column:1 / -1;max-width:520px;margin-inline:auto}
  /* plato tablet: prominente pero en el gutter derecho, sin tocar el texto.
     Offsets portados al nuevo containing block (hero full-bleed, jun 2026):
     max() reproduce el look anterior (gutter del container + clamp original). */
  .hero__plato{
    height:clamp(420px,66vh,640px);
    right:max(calc(5vw - 260px),-27vw);
    top:50%;
  }
}

/* MOBILE ≤640 */
@media (max-width:640px){
  /* HERO mobile (jun 2026, Director — puntos 2+3): sin deco flotante arriba (la volamos),
     el contenido sube y respira en el 100svh SIN hueco muerto y SIN pegarse al nav.
     - align-items:flex-start + justify-content:center → el bloque (eyebrow→tags) se centra
       como grupo dentro del área de contenido, en vez de centrarse sobre todo el svh dejando
       un void arriba.
     - padding-top = nav (64px) + aire cómodo (~28→44px según alto de device) → el copy arranca
       con respiro del navbar fixed, nunca tapado/pegado.
     - padding-bottom holgado: reserva la banda inferior para el PLATO (media bandeja
       asomando desde abajo, regla aparte) + FAB. El texto nunca baja a esa banda. */
  .hero{
    align-items:flex-start;
    justify-content:center;
    flex-direction:column;
    /* plato ENTERO que CAE sobre la sección 2 (Director jun 2026): el hero deja
       salir el disco hacia abajo (overflow-y visible) → el plato completo asoma
       sobre #que-hago, sin cortarse. overflow-x clip mata el scroll horizontal.
       padding-bottom empuja el texto arriba para que NO baje a la zona del plato. */
    padding-block:calc(var(--nav-h) + clamp(24px,3.5vh,38px)) max(300px,36svh);
    overflow-x:clip;
    overflow-y:visible;
  }
  .hero__inner{margin-block:auto}   /* centra el grupo de texto en el aire restante → mata el void de arriba */
  /* plato mobile PROTAGONISTA (jun 2026, Director "que se vea más, no un gajito"):
     MEDIA BANDEJA asomando desde abajo, centrada — como un sol que sube del borde inferior.
     Aprovecha el espacio que liberó la subcopy eliminada.
     - diámetro full-bleed: 100vw en 390 (toca ambos bordes) → cero overflow-x exacto.
     - bottom:calc(195px - diámetro) → asoman SIEMPRE 195px (en 390 = media bandeja clavada),
       anclado al borde real del hero (reparentado, ya no depende de la columna de texto).
     - rotación scroll-linked intacta (vive en la img); z1 < texto z2 → no tapa nada. */
  /* plato mobile ENTERO + OVERLAP sobre sección 2 (jun 2026, Director "ponelo entero
     y que caiga un poco a la segunda sección"): el disco completo, MÁS grande, anclado
     con bottom NEGATIVO → su arco inferior cae sobre el inicio de #que-hago, pero el
     plato se ve entero (el hero tiene overflow-y visible). z-index alto → cae ENCIMA
     de la sección 2. rotación scroll-linked intacta (vive en la img). */
  .hero__plato{
    --plato-d:clamp(310px,93vw,375px);
    top:auto;left:50%;right:auto;
    bottom:-70px;                 /* negativo → el disco (más grande) cae ~70px sobre la sección 2, entero */
    height:var(--plato-d);
    width:var(--plato-d);   /* explícito: con left:50% el shrink-to-fit capearía a medio viewport */
    transform:translateX(-50%);   /* centrado horizontal; sin translateY (anclado por bottom) */
    z-index:5;                    /* cae ENCIMA del bloque siguiente */
  }
  /* la sección 2 queda DEBAJO del plato que cae sobre ella (mobile) */
  .block--ink#que-hago{position:relative;z-index:1}
  /* outline "SUSHI" de fondo REUBICADO en mobile (Director jun 2026): hace ECO detrás
     del wordmark (efecto profundidad), liberando el CTA/claim. Su centro vertical queda
     ALINEADO con el del wordmark "ORIANA SUSHI" (Director: "alineada al oriana sushi"). */
  .hero__outline{top:26%;}
  /* EYEBROW mobile (jun 2026, Director — "en una sola línea en mobile"):
     "SUSHI POR ENCARGO · BUENOS AIRES" (~32 chars) en 320px se partía en 2 líneas.
     Ancho útil 320px ≈ 320 − 40 (pad) − ~30 (barrita+margin) ≈ 250px. Con .82rem + .18em no entra.
     Fix: nowrap + bajar font-size/letter-spacing lo JUSTO (font computado final ≥ ~10.5px, legible)
     + achicar la barrita ::before para ganar ancho sin tocar más el texto. Solo ≤640, desktop intacto. */
  .eyebrow{
    white-space:nowrap;
    font-size:.68rem;
    letter-spacing:.1em;
  }
  .eyebrow--ink::before,.eyebrow--paper::before{
    width:18px;margin-right:var(--space-2);
  }
  .cards{grid-template-columns:1fr}
  .cards .card:nth-child(3){max-width:none}
  .card--rot-l,.card--rot-r{transform:none}
  .cierre__cta{flex-direction:column;align-items:stretch}
  .cierre__cta .btn{width:100%}
  .footer__inner{flex-direction:column;align-items:flex-start}
  /* banda vacía bajo los botones del cierre → ahí vive el outline "PEDÍ" sin tocar nada */
  .cierre{padding-bottom:clamp(120px,28vw,180px)}

  /* "A MANO" mobile (punto 6, Director "está muy arriba/mal → bajalo un poquito"):
     base top:50% lo dejaba apretado contra el párrafo y cortado por la derecha. Lo BAJAMOS
     a ~64% → queda como textura limpia en el aire entre el texto y las imágenes de sushi,
     más chico para que no se corte feo. right:-4% deja asomar el borde sin overflow (el
     .block tiene overflow:hidden). */
  .section__outline{
    top:64%;right:2%;
    font-size:clamp(3rem,14vw,5rem);
  }

  /* "PEDÍ" cierre mobile (punto 7, mismo bug del outline tapado): en desktop vive a media
     altura derecha; en mobile el contenido es full-width y ocupa esa banda, así que lo
     mandamos a la BANDA VACÍA bajo los botones (creada con el padding-bottom de .cierre),
     alineado a la derecha → zona libre, palabra ENTERA, sin tapar botones. */
  .cierre__outline{
    top:auto;
    bottom:clamp(28px,8vw,56px);
    right:clamp(14px,5vw,28px);
    left:auto;
    transform:none;
    text-align:right;
    font-size:clamp(2.6rem,14vw,4rem);
  }

/* ≤390 — el plato hereda de ≤640 (media bandeja centrada desde abajo: el clamp del
   diámetro ya escala solo). Acá solo ajustes finos de outline + piezas de "qué hago". */
@media (max-width:390px){
  .hero__outline{-webkit-text-stroke-color:rgba(22,20,18,.09)}
  /* piezas "qué hago" SIN DEFORMAR (jun 2026, Director "quedaron estiradas"): como flex
     items, el align-items:stretch default las estiraba a la altura de la fila (la más baja
     se deformaba). align-items:center + height:auto → cada img conserva su aspect real. */
  .split__media{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:var(--space-4);min-height:auto;margin-top:var(--space-5)}
  .piece--makis,.piece--uramaki2{
    position:relative;display:block;width:46%;height:auto;align-self:center;
    top:auto;left:auto;right:auto;bottom:auto;transform:rotate(-4deg)
  }
}
}
/* ↑ cierre del @media (max-width:640px) — el bloque ≤390 vive ANIDADO adentro (válido CSS;
   antes faltaba esta llave y el parser auto-cerraba al EOF — jun 2026 se dejó explícito). */

/* ============================================================
   PALETA BLACKOUT NEON — VARIANTE C+  (aprobada Director Creativo, jun 2026)
   ------------------------------------------------------------
   Capa de TEMA NOCTURNO que reviste la dirección Pop con clave nocturna.
   Tokens en :root (--night, --neon-y, --neon-l, --cream, etc).

   Por qué vive AGRUPADA al final y no inline por sección:
     1. Es una capa cohesiva de tema; conviene leerla/mantenerla como unidad.
     2. Al estar DESPUÉS de las reglas base, gana los empates de specificity
        por orden de cascada (ver .fab y .skip-link, que empatan 0,1,0 con su
        base). Es el mismo efecto que el <style> del preview, que vivía después
        del <link> a styles.css.
     3. Cada override conserva la specificity de la base que sobreescribe
        (selectores compuestos .block--X#id .elemento = 1,1,1+) — NO se simplifica.

   Ritmo nocturno (60-30-10): negro ~70% / amarillo neón ~20% / lima+coral ~10%.
   RUPTURA (.block--coral) queda INTACTA: es el único color full-bleed, el fogonazo.
   Fonts (Anton + Space Grotesk), estructura, rotación scroll-linked del plato,
   fix FRESCO mobile (33.5vw), eyebrow 1-línea mobile y reduced-motion: SIN TOCAR.
   ============================================================ */

/* ---- NAV sobre hero negro (al scrollear queda paper, ver .nav--scrolled arriba — NO se toca) ---- */
#site-nav:not(.nav--scrolled){
  background:var(--night);
  border-bottom-color:var(--neon-y);
}
#site-nav:not(.nav--scrolled) .nav__brand-text    {color:var(--cream)}
#site-nav:not(.nav--scrolled) .nav__brand-text--2 {color:var(--neon-y)}
#site-nav:not(.nav--scrolled) .nav__link          {color:var(--cream)}
#site-nav:not(.nav--scrolled) .nav__link::after   {background:var(--neon-l)}
#site-nav:not(.nav--scrolled) .nav__cta{
  background:#193E58;
  color:var(--night);
  border-color:var(--neon-y);
  box-shadow:2px 2px 0 var(--neon-y);
}
#site-nav:not(.nav--scrolled) .nav__toggle-bar{background:var(--cream)}

/* ---- 01 HERO — Blackout Neon ---- */
.block--yellow.hero{background:var(--night);color:var(--cream)}
.hero .eyebrow--ink           {color:var(--cream)}
.hero .eyebrow--ink::before   {background:var(--neon-l)}
.hero .hero__claim            {color:var(--cream)}
.hero .hero__wordmark         {color:var(--neon-y)}
.hero .hero__word--2          {color:var(--neon-y)}
.hero .hero__outline          {-webkit-text-stroke-color:rgba(92,155,214,.22)}
.hero .btn--coral{
  background:#193E58;
  color:var(--night);
  box-shadow:6px 6px 0 var(--neon-y);
}
.hero .btn--coral:hover  {box-shadow:8px 8px 0 var(--neon-y)}
.hero .btn--coral:active {box-shadow:3px 3px 0 var(--neon-y)}
.hero .hero__tags .tag{
  background:var(--neon-l);
  color:var(--night);
  border-color:var(--night);
  box-shadow:3px 3px 0 var(--neon-y);
}
.hero .hero__tags .tag:hover,
.hero .hero__tags .tag:focus-visible{background:var(--neon-y)}

/* ---- 02 QUÉ HAGO — negro continuo (fusión con el hero, 1 escena larga) ---- */
.block--ink#que-hago{
  background:var(--night);
  border-top:2px solid rgba(92,155,214,.18);
}
.block--ink#que-hago .section__outline{-webkit-text-stroke-color:rgba(92,155,214,.10)}
.block--ink#que-hago .eyebrow--paper::before{background:var(--neon-l)}

/* ---- 03 CÓMO PEDIR — noche-lima + cards-sticker amarillo ---- */
.block--lime#como-pedir{
  background:var(--night-lime);
  color:var(--cream);
}
.block--lime#como-pedir .eyebrow--ink{color:var(--neon-l)}
.block--lime#como-pedir .eyebrow--ink::before{background:var(--neon-y)}
.block--lime#como-pedir .section__title{color:var(--cream)}
.block--lime#como-pedir .step{
  background:var(--cream);
  border-color:var(--night);
  box-shadow:6px 6px 0 var(--neon-y);
  color:var(--ink);
}
.block--lime#como-pedir .step:hover{box-shadow:10px 10px 0 var(--neon-y)}
.block--lime#como-pedir .step__num{
  color:var(--neon-y);
  -webkit-text-stroke:1px rgba(22,20,18,.15);
}

/* ---- 04 OPCIONES — negro con focos neón (media de cards = único color) ---- */
.block--paper#opciones{
  background:var(--night);
  color:var(--cream);
}
.block--paper#opciones .eyebrow--ink{color:var(--neon-l)}
.block--paper#opciones .eyebrow--ink::before{background:var(--neon-y)}
.block--paper#opciones .section__title{color:var(--cream)}
.block--paper#opciones .section__closer{color:var(--cream)}
.block--paper#opciones .card{
  background:#0C2233;
  border-color:rgba(92,155,214,.35);
  box-shadow:5px 5px 0 rgba(92,155,214,.6);
  color:var(--cream);
}
.block--paper#opciones .card:hover{
  box-shadow:9px 11px 0 var(--neon-y);
  border-color:var(--neon-y);
}
.block--paper#opciones .card:nth-child(1) .card__media{background:var(--neon-y)}
.block--paper#opciones .card:nth-child(2) .card__media{
  background:#0E2E22;
  border-color:var(--neon-l);
}
.block--paper#opciones .card:nth-child(3) .card__media{
  background:#332405;
  border-color:#193E58;
}
.block--paper#opciones .tag{background:var(--cream);color:var(--ink)}
.block--paper#opciones .tag--lime{background:var(--neon-l);color:var(--night)}
.block--paper#opciones .tag--coral{background:#193E58;color:var(--night)}
.block--paper#opciones .card__body{color:var(--cream)}

/* ---- 05 RUPTURA (.block--coral) — INTACTA, no se porta nada (es el fogonazo de color) ---- */

/* ---- 06 FAQ — negro profundo, acordeón neón tenue ---- */
.block--paper#faq{
  background:#08141F;
  color:var(--cream);
}
.block--paper#faq .eyebrow--ink{color:var(--neon-l)}
.block--paper#faq .eyebrow--ink::before{background:var(--neon-y)}
.block--paper#faq .section__title{color:var(--cream)}
.block--paper#faq .faq{border-top-color:rgba(92,155,214,.3)}
.block--paper#faq .faq__item{border-bottom-color:rgba(92,155,214,.3)}
.block--paper#faq .faq__btn{color:var(--cream)}
.block--paper#faq .faq__btn:hover{color:var(--neon-y)}
.block--paper#faq .faq__btn:focus-visible{outline-color:var(--neon-y)}
.block--paper#faq .faq__icon::before,
.block--paper#faq .faq__icon::after{background:var(--cream)}
.block--paper#faq .faq__btn[aria-expanded="true"] .faq__icon::before{background:var(--neon-y)}
.block--paper#faq .faq__panel p{color:var(--cream);opacity:.88}
.block--paper#faq .skip-link{background:var(--night);color:var(--cream)}

/* ---- 07 CIERRE — negro + CTAs neón (ghost: FIX de jerarquía, el paper era invisible) ---- */
.block--ink#cierre{
  background:var(--night);
  border-top:2px solid rgba(92,155,214,.15);
}
.block--ink#cierre .cierre__outline{-webkit-text-stroke-color:rgba(92,155,214,.18)}
.block--ink#cierre .eyebrow--paper::before{background:var(--neon-l)}
.block--ink#cierre .btn--coral{
  background:#193E58;
  color:var(--night);
  box-shadow:6px 6px 0 var(--neon-y);
}
.block--ink#cierre .btn--coral:hover{
  transform:translate(-2px,-2px);
  box-shadow:9px 9px 0 var(--neon-y);
}
.block--ink#cierre .btn--ghost{
  border-color:var(--neon-y);
  color:var(--neon-y);
}
.block--ink#cierre .btn--ghost:hover{
  background:var(--neon-y);
  color:var(--night);
}

/* ---- FOOTER — negro, borde amarillo tenue arriba ---- */
.block--ink.footer{
  background:var(--night);
  border-top:1px solid rgba(92,155,214,.12);
}
.footer__credit a{color:var(--neon-l)}
.footer__credit a:hover{color:var(--neon-y)}

/* ---- FAB — borde + hard-shadow neón (empata 0,1,0 con la base .fab → gana por orden, vive acá abajo) ---- */
.fab{
  border-color:var(--neon-y);
  box-shadow:4px 4px 0 var(--neon-y);
}
.fab:hover{box-shadow:6px 6px 0 var(--neon-y)}

/* ---- SKIP LINK global — visible sobre oscuro (empata 0,1,0 con la base → gana por orden) ---- */
.skip-link{background:var(--night);color:var(--cream);border:2px solid var(--neon-y)}
.skip-link:focus-visible{outline-color:var(--neon-l)}

/* ---- DECOS — subir opacidad sobre los fondos que pasaron de claro a oscuro ---- */
.block--lime#como-pedir .deco--pedir-1{--deco-opacity:.90}
.block--paper#opciones .deco{--deco-opacity:.88}
/* ============================================================
   /PALETA BLACKOUT NEON — VARIANTE C+
   ============================================================ */

/* ═══ V2 OVERRIDES (Director jun 2026 — al FINAL, ganan por cascada) ═══ */
:root {
  --neon-green: #7FC8A9;   /* verde-mar Nami — VEGGIE */
  --neon-red:   #193E58;   /* dorado Nami — acento 3 */
}
/* CAMBIO 1 — CARDS OPCIONES por color, hard-shadow SIN glow */
.block--paper#opciones .card:nth-child(1) {
  border-color: var(--neon-y);
  box-shadow: 5px 5px 0 var(--neon-y);
}
.block--paper#opciones .card:nth-child(1):hover {
  border-color: var(--neon-y);
  box-shadow: 9px 11px 0 var(--neon-y);
}
.block--paper#opciones .card:nth-child(1) .tag--on-card {
  background: var(--neon-y);
  color: var(--night);
}
.block--paper#opciones .card:nth-child(1) .card__media {
  background: #0C2A3D;
  border-color: var(--neon-y);
}
.block--paper#opciones .card:nth-child(2) {
  border-color: var(--neon-green);
  box-shadow: 5px 5px 0 var(--neon-green);
}
.block--paper#opciones .card:nth-child(2):hover {
  border-color: var(--neon-green);
  box-shadow: 9px 11px 0 var(--neon-green);
}
.block--paper#opciones .card:nth-child(2) .card__media {
  background: #0E2E22;
  border-color: var(--neon-green);
}
.block--paper#opciones .card:nth-child(2) .tag--lime {
  background: var(--neon-green);
  color: var(--night);
}
.block--paper#opciones .card:nth-child(3) {
  border-color: var(--coral);
  box-shadow: 5px 5px 0 var(--coral);
}
.block--paper#opciones .card:nth-child(3):hover {
  border-color: var(--coral);
  box-shadow: 9px 11px 0 var(--coral);
}
.block--paper#opciones .card:nth-child(3) .card__media {
  background: #332405;
  border-color: var(--coral);
}
.block--paper#opciones .card:nth-child(3) .tag--coral {
  background: var(--coral);
  color: var(--night);
}
/* CAMBIO 2 — PLATO HERO DESKTOP (≥1024px) COMPLETO + GRANDE */
@media (min-width: 1024px) {
  .block--yellow.hero { overflow-x: clip; overflow-y: visible; }
  .hero .hero__plato {
    z-index: 5;
    height: clamp(660px, 76vh, 872px);
    width: auto;
    right: clamp(20px, 3vw, 56px);
    left: auto;
    top: 50%;
    transform: translateY(-50%)
               translateY(var(--par-y))
               translateY(clamp(150px, 22vh, 230px));
    filter: drop-shadow(14px 20px 26px rgba(0,0,0,.55));
  }
  .block--ink#que-hago { position: relative; z-index: 1; }
}
/* CAMBIO 3 — NAV sin borde amarillo sobre hero */
#site-nav:not(.nav--scrolled) {
  border-bottom-color: transparent;
  border-bottom-width: 0;
}
/* CAMBIO 5 — FIX hamburguesa + drawer mobile sobre hero negro */
#site-nav:not(.nav--scrolled) .nav__toggle {
  background: transparent;
  border-color: var(--cream);
  box-shadow: none;
}
@media (max-width:768px){
  #site-nav:not(.nav--scrolled) .nav__links {
    background: var(--night);
    border-bottom: 1px solid rgba(249,241,239,.14);
  }
  #site-nav:not(.nav--scrolled) .nav__link {
    border-top: 1px solid rgba(249,241,239,.12);
  }
}
/* CAMBIO 6 — NIGIRI reubicado en sección 3 (≥1100px) */
@media (min-width: 1100px) {
  .block--lime#como-pedir .deco--que-1 {
    top: 11%;
    right: 5%;
    bottom: auto;
    left: auto;
    --deco-opacity: .9;
    z-index: 1;
  }
}




    /* ─────────────────────────────────────────────────────────────
       TOKENS NOCTURNOS  (se suman, no reemplazan los de styles.css)
    ───────────────────────────────────────────────────────────── */
    :root {
      --night:       #0A1A2B;   /* índigo marino muy oscuro — hero, qué-hago, opciones, cierre */
      --night-lime:  #0C2233;   /* azul marino con tinte — cómo pedir */
      --night-lime-2: #103047;  /* surface más cálida marina */
      --neon-y:      #5C9BD6;   /* azul-ola Nami — wordmark, acentos, borders */
      --neon-l:      #7FC8A9;   /* verde-mar sereno — eyebrows, dashes */
      --cream:       #F9F1EF;   /* crema Nami — body text sobre dark */
      --coral-night: #193E58;   /* dorado Nami — solo en ruptura */
    }

    /* ─────────────────────────────────────────────────────────────
       NAV — sobre hero negro y al scrollear (igual que hero-01)
    ───────────────────────────────────────────────────────────── */
    #site-nav:not(.nav--scrolled) {
      background: var(--night);
      border-bottom-color: var(--neon-y);
    }
    #site-nav:not(.nav--scrolled) .nav__brand-text      { color: var(--cream); }
    #site-nav:not(.nav--scrolled) .nav__brand-text--2   { color: var(--neon-y); }
    #site-nav:not(.nav--scrolled) .nav__link            { color: var(--cream); }
    #site-nav:not(.nav--scrolled) .nav__link::after     { background: var(--neon-l); }
    #site-nav:not(.nav--scrolled) .nav__cta {
      background: #193E58;
      color: var(--night);
      border-color: var(--neon-y);
      box-shadow: 2px 2px 0 var(--neon-y);
    }
    #site-nav:not(.nav--scrolled) .nav__toggle-bar { background: var(--cream); }
    /* FIX hamburguesa sobre el hero negro: el botón base tiene fondo paper (crema),
       y las barras acá son crema → crema sobre crema = invisible. Sobre el nav negro
       el botón va transparente con contorno crema (sin amarillo, coherente con el nav
       sin borde). Al scrollear vuelve al estado base (paper + barras ink). */
    #site-nav:not(.nav--scrolled) .nav__toggle {
      background: transparent;
      border-color: var(--cream);
      box-shadow: none;
    }
    /* FIX drawer mobile sobre el hero negro: el panel base es paper (crema) y los
       links acá son crema → invisibles. Sobre el hero el drawer va negro + links
       crema. Al scrollear (.nav--scrolled) vuelve a paper + links ink (base). */
    @media (max-width:768px){
      #site-nav:not(.nav--scrolled) .nav__links {
        background: var(--night);
        border-bottom: 1px solid rgba(249,241,239,.14);
      }
      #site-nav:not(.nav--scrolled) .nav__link {
        border-top: 1px solid rgba(249,241,239,.12);
      }
    }

    /* Al scrollear: nav paper con acento neón (sutil firma del sitio en el scroll) */
    .nav--scrolled { background: var(--paper); border-bottom-color: var(--ink); }

    /* ─────────────────────────────────────────────────────────────
       01 HERO — Blackout Neon (idéntico a hero-01-blackout.html)
    ───────────────────────────────────────────────────────────── */
    .block--yellow.hero { background: var(--night); color: var(--cream); }

    .hero .eyebrow--ink              { color: var(--cream); }
    .hero .eyebrow--ink::before      { background: var(--neon-l); }
    .hero .hero__claim               { color: var(--cream); }
    .hero .hero__wordmark            { color: var(--neon-y); }
    .hero .hero__word--2             { color: var(--neon-y); }
    .hero .hero__outline             { -webkit-text-stroke-color: rgba(92,155,214,.22); }

    .hero .btn--coral {
      background: #193E58;
      color: var(--night);
      box-shadow: 6px 6px 0 var(--neon-y);
    }
    .hero .btn--coral:hover  { box-shadow: 8px 8px 0 var(--neon-y); }
    .hero .btn--coral:active { box-shadow: 3px 3px 0 var(--neon-y); }

    .hero .hero__tags .tag {
      background: var(--neon-l);
      color: var(--night);
      border-color: var(--night);
      box-shadow: 3px 3px 0 var(--neon-y);
    }
    .hero .hero__tags .tag:hover,
    .hero .hero__tags .tag:focus-visible { background: var(--neon-y); }

    /* ─────────────────────────────────────────────────────────────
       02 QUÉ HAGO — Negro continuo (fusión con el hero: 1 escena larga)
       Justificación: el INK original ya era casi negro (#0E0D0C).
       Hacerlo exactamente #0A1A2B lo funde con el hero → la escena
       "Oriana noche" se extiende dos pantallas. Primera ruptura de color
       viene RECIÉN en el bloque 03 (impacto mayor).
    ───────────────────────────────────────────────────────────── */
    .block--ink#que-hago {
      background: var(--night);
      /* borde superior sutil para diferenciar del hero sin cortar bruscamente */
      border-top: 2px solid rgba(92,155,214,.18);
    }
    /* outline "A MANO" → trazo amarillo tenue */
    .block--ink#que-hago .section__outline {
      -webkit-text-stroke-color: rgba(92,155,214,.10);
    }
    /* eyebrow, título, body ya heredan --paper sobre .block--ink — bien. */
    /* acento del eyebrow: dash en lima neón en vez de coral */
    .block--ink#que-hago .eyebrow--paper::before { background: var(--neon-l); }

    /* ─────────────────────────────────────────────────────────────
       03 CÓMO ES PEDIR — Noche-Lima
       El lime original (#7FC8A9) era el choque más violento post-hero.
       En versión nocturna: fondo #0C2233 (lima extremadamente oscuro) +
       los stickers de pasos son amarillo neón (son los focos de luz).
       Choque nocturno: el usuario llega desde negro total y ve un negro
       con tinte de neón + las 3 cards iluminadas. Ritmo correcto.
    ───────────────────────────────────────────────────────────── */
    .block--lime#como-pedir {
      background: var(--night-lime);
      color: var(--cream);
    }
    /* outline del bloque */
    /* (no hay section__outline en este bloque, solo la deco del uramaki) */

    /* eyebrow en lima neón (el acento del bloque) */
    .block--lime#como-pedir .eyebrow--ink {
      color: var(--neon-l);
    }
    .block--lime#como-pedir .eyebrow--ink::before {
      background: var(--neon-y);
    }

    /* título y step bodies en cream */
    .block--lime#como-pedir .section__title { color: var(--cream); }

    /* CARDS DE PASOS: papel crema como antes pero con hard-shadow AMARILLO — sticker neón.
       Son los focos de luz sobre el negro-lima. */
    .block--lime#como-pedir .step {
      background: var(--cream);
      border-color: var(--night);
      box-shadow: 6px 6px 0 var(--neon-y);
      color: var(--ink);
    }
    .block--lime#como-pedir .step:hover {
      box-shadow: 10px 10px 0 var(--neon-y);
    }
    /* número del paso: en neón amarillo (en vez de coral-deep) */
    .block--lime#como-pedir .step__num {
      color: var(--neon-y);
      /* text-stroke para que el número brillante no se aplaste */
      -webkit-text-stroke: 1px rgba(22,20,18,.15);
    }
    /* step body sobre paper: usa --ink (hereda bien del .step) */

    /* ─────────────────────────────────────────────────────────────
       04 OPCIONES — Negro con destellos (media de cards = focos de color)
       El paper original era el bloque "respiro". En la versión nocturna
       el respiro lo da el vacío + las cards iluminadas. Las cards se
       vuelven el único punto de color de pantalla: cada una tiene su
       fondo de media en un color neón distinto (ya los tenía, solo
       oscurecemos el fondo de la sección y ajustamos la card body).
    ───────────────────────────────────────────────────────────── */
    .block--paper#opciones {
      background: var(--night);
      color: var(--cream);
    }
    .block--paper#opciones .eyebrow--ink {
      color: var(--neon-l);
    }
    .block--paper#opciones .eyebrow--ink::before {
      background: var(--neon-y);
    }
    .block--paper#opciones .section__title { color: var(--cream); }
    .block--paper#opciones .section__closer { color: var(--cream); }

    /* Cards: fondo dark con borde neón + hard-shadow amarillo (sticker nocturno) */
    .block--paper#opciones .card {
      background: #0C2233;   /* superficie oscura, no negro total — diferencia de fondo */
      border-color: rgba(92,155,214,.35);
      box-shadow: 5px 5px 0 rgba(92,155,214,.6);
      color: var(--cream);
    }
    .block--paper#opciones .card:hover {
      box-shadow: 9px 11px 0 var(--neon-y);
      border-color: var(--neon-y);
    }
    /* media CLÁSICO: amarillo neón (fondo ya venía de --yellow, lo sobreescribimos) */
    .block--paper#opciones .card:nth-child(1) .card__media { background: var(--neon-y); }
    /* media VEGGIE: lima muy oscuro + lima como borde interior */
    .block--paper#opciones .card:nth-child(2) .card__media {
      background: #0E2E22;
      border-color: var(--neon-l);
    }
    /* media SIN TACC: rojo nocturno (coral oscuro para mantener el coding de color) */
    .block--paper#opciones .card:nth-child(3) .card__media {
      background: #332405;
      border-color: #193E58;
    }
    /* tags sobre cards: stickers con fondo neón */
    .block--paper#opciones .tag { background: var(--cream); color: var(--ink); }
    .block--paper#opciones .tag--lime { background: var(--neon-l); color: var(--night); }
    .block--paper#opciones .tag--coral { background: #193E58; color: var(--night); }
    .block--paper#opciones .card__body { color: var(--cream); }

    /* ─────────────────────────────────────────────────────────────
       05 RUPTURA — Coral puro (el ÚNICO bloque de color full-bleed)
       Se conserva EXACTAMENTE igual al original. En la versión nocturna
       este bloque se siente como un fogonazo: el usuario llegó a través
       de 4 pantallas oscuras y de repente CORAL puro. Es el momento de
       mayor impacto del sitio. No hay que tocarlo.
       Solo ajustamos el outline "FRESCO" para que sea coral más oscuro,
       no crema (ya venía bien).
    ───────────────────────────────────────────────────────────── */
    /* RUPTURA: se conserva tal cual (.block--coral usa --coral-deep ya) */

    /* ─────────────────────────────────────────────────────────────
       06 FAQ — Negro profundo con detalles neón
       El paper original (#F9F1EF) post-ruptura coral era el gran
       respiro claro. En la versión nocturna hacemos lo opuesto: la
       ruptura coral ES el respiro de color; el FAQ baja a negro de
       nuevo pero con líneas divisorias en amarillo tenue → la
       austeridad del accordeon se lee como "autoridad nocturna".
    ───────────────────────────────────────────────────────────── */
    .block--paper#faq {
      background: #08141F;
      color: var(--cream);
    }
    .block--paper#faq .eyebrow--ink {
      color: var(--neon-l);
    }
    .block--paper#faq .eyebrow--ink::before {
      background: var(--neon-y);
    }
    .block--paper#faq .section__title { color: var(--cream); }

    /* Acordeón: borders en amarillo tenue */
    .block--paper#faq .faq {
      border-top-color: rgba(92,155,214,.3);
    }
    .block--paper#faq .faq__item {
      border-bottom-color: rgba(92,155,214,.3);
    }
    .block--paper#faq .faq__btn {
      color: var(--cream);
    }
    .block--paper#faq .faq__btn:hover { color: var(--neon-y); }
    .block--paper#faq .faq__btn:focus-visible { outline-color: var(--neon-y); }
    .block--paper#faq .faq__icon::before,
    .block--paper#faq .faq__icon::after { background: var(--cream); }
    .block--paper#faq .faq__btn[aria-expanded="true"] .faq__icon::before {
      background: var(--neon-y);
    }
    .block--paper#faq .faq__panel p { color: var(--cream); opacity: .88; }
    /* skip link sobre dark */
    .block--paper#faq .skip-link { background: var(--night); color: var(--cream); }

    /* ─────────────────────────────────────────────────────────────
       07 CIERRE — Negro + wordmark neón de remate
       El cierre original era INK (#0E0D0C), casi negro. Lo hacemos
       exactamente --night para unificar con el primer plano.
       El outline "PEDÍ" pasa a amarillo neón tenue (no crema).
       CTAs: el principal sigue rojo + shadow amarillo; el ghost cambia
       de borde paper a borde neon-y (visible sobre negro).
    ───────────────────────────────────────────────────────────── */
    .block--ink#cierre {
      background: var(--night);
      border-top: 2px solid rgba(92,155,214,.15);
    }
    .block--ink#cierre .cierre__outline {
      -webkit-text-stroke-color: rgba(92,155,214,.18);
    }
    /* eyebrow: dash lima */
    .block--ink#cierre .eyebrow--paper::before { background: var(--neon-l); }
    /* título y sub: cream (heredan de .block--ink, bien) */
    /* CTA principal: rojo + shadow neón */
    .block--ink#cierre .btn--coral {
      background: #193E58;
      color: var(--night);
      box-shadow: 6px 6px 0 var(--neon-y);
    }
    .block--ink#cierre .btn--coral:hover {
      transform: translate(-2px,-2px);
      box-shadow: 9px 9px 0 var(--neon-y);
    }
    /* CTA ghost: borde amarillo neón (el paper era invisible sobre negro) */
    .block--ink#cierre .btn--ghost {
      border-color: var(--neon-y);
      color: var(--neon-y);
    }
    .block--ink#cierre .btn--ghost:hover {
      background: var(--neon-y);
      color: var(--night);
    }

    /* ─────────────────────────────────────────────────────────────
       FOOTER — Negro, borde amarillo tenue arriba
    ───────────────────────────────────────────────────────────── */
    .block--ink.footer {
      background: var(--night);
      border-top: 1px solid rgba(92,155,214,.12);
    }
    .footer__credit a { color: var(--neon-l); }
    .footer__credit a:hover { color: var(--neon-y); }

    /* ─────────────────────────────────────────────────────────────
       FAB — sticker nocturno: WhatsApp verde + borde neón
    ───────────────────────────────────────────────────────────── */
    .fab {
      border-color: var(--neon-y);
      box-shadow: 4px 4px 0 var(--neon-y);
    }
    .fab:hover { box-shadow: 6px 6px 0 var(--neon-y); }

    /* ─────────────────────────────────────────────────────────────
       SKIP LINK — visible sobre oscuro
    ───────────────────────────────────────────────────────────── */
    .skip-link { background: var(--night); color: var(--cream); border: 2px solid var(--neon-y); }
    .skip-link:focus-visible { outline-color: var(--neon-l); }

    /* ─────────────────────────────────────────────────────────────
       AJUSTE DECORACIONES — opacidad sobre fondos oscuros
       Las piezas de sushi (pngs recortados) funcionan igual o mejor
       sobre negro. Solo subo un poco la opacidad en los bloques que
       cambiaron de fondo claro a oscuro para que se lean bien.
    ───────────────────────────────────────────────────────────── */
    .block--lime#como-pedir .deco--pedir-1 { --deco-opacity: .90; }
    .block--paper#opciones  .deco          { --deco-opacity: .88; }

    /* ═════════════════════════════════════════════════════════════
       OVERLAP DEL PLATO SOBRE LA SECCIÓN 2 — SOLO DESKTOP (≥1024px)
       ─────────────────────────────────────────────────────────────
       Pedido Director (jun 2026): en desktop el plato debe ASOMAR por
       encima del bloque QUÉ HAGO (sección 2), efecto editorial de
       overlap entre bloques. Hoy se corta limpio en el borde inferior
       del hero (.block tiene overflow:hidden).

       CÓMO, sin romper nada:
         · .hero pasa a overflow:visible SOLO en desktop → el arco
           inferior del plato puede salir del hero hacia abajo.
         · El sobrante por la DERECHA del plato lo sigue absorbiendo
           body{overflow-x:hidden} (ya existe en styles.css) → 0 scroll-X.
         · El plato sube su z-index por ENCIMA de la sección 2 (#que-hago
           queda en su propio stacking pero el plato, hijo del hero con
           z-index alto, se dibuja arriba). El texto del hero (z2) sigue
           SIEMPRE por encima del plato (z-index del plato < contenido del
           hero en su propio contexto), y el plato cae sobre el TOP de la
           sección 2 donde no hay texto (el split arranca más abajo).
         · Se empuja el plato un toque más abajo (translateY extra) para
           que el pedacito que asoma sea claramente visible (~80px).
       Mobile/tablet (<1024px): NO se toca — el plato sigue asomando
       desde abajo centrado como en producción.
    ───────────────────────────────────────────────────────────── */
    @media (min-width: 1024px) {
      /* el hero deja salir el plato SOLO hacia abajo (overflow-y:visible) pero
         SIGUE recortando el sobrante a derecha (overflow-x:clip) → el plato
         asoma sobre la sección 2 sin generar scroll horizontal.
         overflow-x:clip + overflow-y:visible es la combinación válida (a
         diferencia de overflow:visible que un-clippea ambos ejes y deja
         escapar el plato + el outline por la derecha → scroll-X). */
      .block--yellow.hero { overflow-x: clip; overflow-y: visible; }

      /* el plato se dibuja por encima de la sección 2.
         z-index alto + el hero crea su propio stacking (position:relative),
         pero al ser overflow:visible el plato escapa y, con z-index 5,
         queda sobre el #que-hago siguiente. */
      .hero .hero__plato {
        z-index: 5;
        /* baja el plato ~80px extra → su arco inferior invade la sección 2.
           Se suma al translateY(-50%) base + el parallax --par-y. */
        transform: translateY(-50%) translateY(var(--par-y)) translateY(80px);
        /* sombra un poco más marcada para despegar el plato del bloque que pisa */
        filter: drop-shadow(12px 18px 22px rgba(0,0,0,.55));
      }

      /* la sección 2 NO debe taparlo: su contenido sigue su flujo normal,
         pero garantizamos que su fondo/outline no se superponga al plato.
         El split de #que-hago arranca con su padding-block alto, así que el
         pedacito del plato cae sobre zona vacía del top de la sección. */
      .block--ink#que-hago { position: relative; z-index: 1; }
    }

    /* (badge de preview removido para producción) */

    /* ═══════════════════════════════════════════════════════════════
       ████  V2 OVERRIDES  (Director jun 2026 — van al FINAL del bloque,
       ganan por orden de cascada sobre todo lo anterior)
       ═══════════════════════════════════════════════════════════════ */

    /* ───── tokens neón v2 ───── */
    :root {
      --neon-green: #7FC8A9;   /* verde-mar Nami — VEGGIE (sobre #0A1A2B ≈ AA grande) */
      --neon-red:   #193E58;   /* dorado Nami — acento 3 (SIN TACC / detalles) */
    }

    /* ═══════════════════════════════════════════════════════════════
       CAMBIO 1 — CARDS OPCIONES: borde + hard-shadow del color del contenido
       ─────────────────────────────────────────────────────────────
       CLÁSICO  (nth-child 1) → AMARILLO neón  (#5C9BD6, igual que estaba)
       VEGGIE   (nth-child 2) → VERDE neón     (#39FF14)
       SIN TACC (nth-child 3) → ROSA neón      (#FF1FA0)
       Patrón hard-shadow sticker del proyecto: box-shadow Npx Npx 0 <color>,
       más grande en :hover. Texto .card__body queda --cream sobre #0C2233.
    ─────────────────────────────────────────────────────────────── */

    /* CLÁSICO — amarillo neón + glow amarillo */
    .block--paper#opciones .card:nth-child(1) {
      border-color: var(--neon-y);
      box-shadow: 5px 5px 0 var(--neon-y);
    }
    .block--paper#opciones .card:nth-child(1):hover {
      border-color: var(--neon-y);
      box-shadow: 9px 11px 0 var(--neon-y);
    }
    /* badge CLÁSICO: amarillo neón explícito (no choca con el coding) */
    .block--paper#opciones .card:nth-child(1) .tag--on-card {
      background: var(--neon-y);
      color: var(--night);
    }
    /* media interior del CLÁSICO: amarillo MUY oscuro (apagado, en línea con
       el verde/rojo oscuros de las otras dos cards — no el #5C9BD6 neón puro) */
    .block--paper#opciones .card:nth-child(1) .card__media {
      background: #0C2A3D;
      border-color: var(--neon-y);
    }

    /* VEGGIE — verde neón + glow verde */
    .block--paper#opciones .card:nth-child(2) {
      border-color: var(--neon-green);
      box-shadow: 5px 5px 0 var(--neon-green);
    }
    .block--paper#opciones .card:nth-child(2):hover {
      border-color: var(--neon-green);
      box-shadow: 9px 11px 0 var(--neon-green);
    }
    /* media interior del VEGGIE: ajusto el borde al verde neón (antes lima viejo --neon-l)
       para que no choque con el nuevo borde de la card */
    .block--paper#opciones .card:nth-child(2) .card__media {
      background: #0E2E22;          /* verde muy oscuro, un toque más frío que el #0E2E22 previo */
      border-color: var(--neon-green);
    }
    /* pill VEGGIE: queda en verde neón coherente con la card */
    .block--paper#opciones .card:nth-child(2) .tag--lime {
      background: var(--neon-green);
      color: var(--night);
    }

    /* SIN TACC — CORAL de marca #193E58 (el rojo "de la página", el del CTA
       Pedí por WhatsApp — Director: usar este, no el rojo neón). */
    .block--paper#opciones .card:nth-child(3) {
      border-color: var(--coral);
      box-shadow: 5px 5px 0 var(--coral);
    }
    .block--paper#opciones .card:nth-child(3):hover {
      border-color: var(--coral);
      box-shadow: 9px 11px 0 var(--coral);
    }
    /* media interior del SIN TACC: fondo rojo muy oscuro + borde coral de marca */
    .block--paper#opciones .card:nth-child(3) .card__media {
      background: #332405;          /* rojo muy oscuro */
      border-color: var(--coral);
    }
    /* badge SIN TACC: coral de marca + texto oscuro (igual patrón que el CTA) */
    .block--paper#opciones .card:nth-child(3) .tag--coral {
      background: var(--coral);
      color: var(--night);          /* texto oscuro sobre coral: AA (~5.5:1), como el CTA de marca */
    }

    /* ═══════════════════════════════════════════════════════════════
       CAMBIO 2 — PLATO HERO DESKTOP (≥1024px): COMPLETO + GRANDE + overlap suave
       ─────────────────────────────────────────────────────────────
       Reemplaza el posicionamiento desktop del base override (que empujaba
       el plato con right negativo → asomaba/cortado a la derecha + +80px abajo).
       Nuevo:  · right POSITIVO (margen real al borde derecho) → círculo entero
                  visible, no toca el borde derecho.
               · height acotado por viewport (clamp con vh) → grande pero entra
                  completo vertical y no pisa la columna de texto a la izquierda.
               · centro bajado (top + translateY) → el arco inferior cae sobre el
                  inicio de la sección 2 (#que-hago) PERO el bounding box no excede
                  el ancho del viewport y el elemento no se recorta (overflow-y:visible).
               · overflow-x:clip se conserva → 0 scroll horizontal.
       El texto del hero (.hero__inner z2) sigue por encima (plato z5 dentro del
       hero pero el texto vive en z2 del MISMO stacking, y como el plato no se
       solapa horizontalmente con la columna de texto, no la tapa).
       Mobile/tablet (<1024px) NO se tocan: este bloque es @media ≥1024.
    ─────────────────────────────────────────────────────────────── */
    @media (min-width: 1024px) {
      /* el hero deja salir el plato hacia abajo (overlap s/ sección 2) pero
         sigue recortando el sobrante horizontal → sin scroll-X */
      .block--yellow.hero { overflow-x: clip; overflow-y: visible; }

      .hero .hero__plato {
        z-index: 5;
        /* TAMAÑO: grande, acotado para entrar completo en alto y no pisar el texto.
           clamp(540px , 64vh , 760px):
             · 1024×~700 → ~540-640px
             · 1440×900 → 64vh = 576px (entra completo; ≥520px pedido ✓)
             · pantallas altas → cap 760px (sigue entrando con margen) */
        height: clamp(660px, 76vh, 872px);
        width: auto;

        /* POSICIÓN HORIZONTAL: margen real al borde derecho → el círculo NO toca
           el borde derecho y queda balanceado a la derecha del texto. Margen un
           toque más chico para ganar presencia (plato más GRANDE — Director). */
        right: clamp(4px, 1.4vw, 28px);
        left: auto;

        /* POSICIÓN VERTICAL + OVERLAP SUAVE:
           top 50% del hero + translateY(-50%) centra el disco; le sumo un empuje
           hacia abajo (clamp) para que el arco inferior caiga sobre el inicio de
           la sección 2. El empuje es moderado: el centro baja ~120-150px, así el
           borde inferior del círculo (centro + radio) queda apenas por debajo del
           fold, pisando el top de #que-hago, sin que el TOP del círculo toque el
           borde superior (el radio es < distancia del centro al top del hero). */
        /* CONTENIDO en el hero (Director 12 jun 2026): se quitó el empuje hacia abajo
           (translateY 150-230px) que hacía caer el plato sobre la sección 2. Ahora va
           centrado vertical, alineado al contenido del hero. */
        top: 50%;
        transform: translateY(-50%)
                   translateY(var(--par-y))
                   translateY(5px);

        filter: drop-shadow(10px 16px 24px rgba(25,62,88,.32));
      }

      /* la sección 2 no debe taparlo */
      .block--ink#que-hago { position: relative; z-index: 1; }
    }

    /* ═══════════════════════════════════════════════════════════════
       CAMBIO 3 — SACAR borde amarillo del nav sobre el hero
       ─────────────────────────────────────────────────────────────
       El base override pintaba border-bottom del nav en #5C9BD6 cuando NO
       está scrolleado. Director: sacarlo. El estado .nav--scrolled (paper +
       borde ink) NO se toca.
    ─────────────────────────────────────────────────────────────── */
    #site-nav:not(.nav--scrolled) {
      border-bottom-color: transparent;
      border-bottom-width: 0;
    }

    /* ═══════════════════════════════════════════════════════════════
       CAMBIO 4 — NIGIRI VOLADOR reubicado en sección 3 (CÓMO PEDIR)
       ─────────────────────────────────────────────────────────────
       La deco .deco--que-1 (nigiri) se movió del HTML de #que-hago a
       #como-pedir. Conserva su clase para heredar tamaño/float, pero
       reposiciono: arriba-derecha de #como-pedir (la pedir-1 vive abajo-izq,
       quedan en diagonal opuesta → balance, sin tapar título/steps).
       Solo desktop ≥1100px (la clase .deco--que-1 ya es display:none debajo).
    ─────────────────────────────────────────────────────────────── */
    @media (min-width: 1100px) {
      .block--lime#como-pedir .deco--que-1 {
        top: 11%;
        right: 5%;
        bottom: auto;
        left: auto;
        --deco-opacity: .9;
        z-index: 1;          /* detrás del contenido (container es estático sobre el flujo) */
      }
    }

    /* ═══════════════════════════════════════════════════════════════
       CAMBIO 5 — tags del HERO en UNA sola línea en mobile (Director jun 2026)
       ─────────────────────────────────────────────────────────────
       24H · CLÁSICO · VEGGIE · SIN TACC entran en 1 línea en mobile:
       nowrap + padding/gap/font compactados. Solo el hero (las cards de
       OPCIONES no se tocan). Apunta a entrar cómodo en 360px+.
    ─────────────────────────────────────────────────────────────── */
    @media (max-width: 600px) {
      /* tags NUEVOS de Nami ("Sushi por encargue" / "Take away" / "Delivery" /
         "Certificación IAG") son largos → ya NO entran en 1 línea: wrap centrado en
         2 filas, compactos. */
      .hero .hero__tags {
        flex-wrap: wrap;
        gap: 7px;
        justify-content: flex-start;
      }
      .hero .hero__tags .tag {
        padding: 6px 12px;
        font-size: .72rem;
        letter-spacing: .02em;
        border-width: 2px;
        white-space: nowrap;
      }
    }

    /* ═══════════════════════════════════════════════════════════════
       CAMBIO 6 — LOADER (versión mínima honesta, Director jun 2026)
       ─────────────────────────────────────────────────────────────
       Cubre el FOUC hasta que cargan fuentes + imagen del plato. El JS le
       agrega body.is-loaded apenas están listos → fade out (sin espera falsa).
       Safety CSS: si el JS no llega, se autodesvanece a los 3s (nunca traba).
       reduced-motion: sin pulse + salida instantánea.
    ─────────────────────────────────────────────────────────────── */
    .loader {
      position: fixed;
      inset: 0;
      z-index: 9999;
      display: flex;
      align-items: center;
      justify-content: center;
      background: var(--night);
      opacity: 1;
      visibility: visible;
      transition: opacity .45s ease, visibility 0s linear .45s;
      /* safety: si el JS muere, el loader se va igual a los 3s */
      animation: loaderSafety .4s ease 3s forwards;
    }
    /* loader Nami (jun 2026): ola chica arriba del wordmark, en columna centrada.
       No toca el fade del loader (el .loader sigue manejando opacity/visibility). */
    .loader__inner {
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: clamp(12px, 2vw, 20px);
    }
    .loader__ola {
      display: block;
      height: clamp(52px, 12vw, 72px);
      width: auto;
      object-fit: contain;
      animation: loaderPulse 1s ease-in-out infinite alternate;
    }
    .loader__word {
      font-family: var(--font-display);
      font-weight: 400;
      font-size: clamp(2.6rem, 11vw, 5rem);
      line-height: 1;
      letter-spacing: .02em;
      text-transform: uppercase;
      color: var(--neon-y);
      animation: loaderPulse 1s ease-in-out infinite alternate;
    }
    .loader__word2 { color: #193E58; margin-left: .16em; }   /* SUSHI en dorado Nami */
    @keyframes loaderPulse { from { opacity: .58 } to { opacity: 1 } }
    @keyframes loaderSafety { to { opacity: 0; visibility: hidden } }
    body.is-loaded .loader {
      opacity: 0;
      visibility: hidden;
    }
    @media (prefers-reduced-motion: reduce) {
      .loader__word, .loader__ola { animation: none }
      .loader { transition: opacity .15s ease, visibility 0s linear .15s; animation: loaderSafety 0s linear 2.5s forwards; }
    }

    /* ═══════════════════════════════════════════════════════════════
       CAMBIO 7 — CLAIM del hero en UNA sola línea (Director jun 2026)
       ─────────────────────────────────────────────────────────────
       "Sushi hecho el día que lo pedís." en 1 línea en desktop Y mobile:
       saco el max-width:18ch (que lo partía) + nowrap + font-size con vw
       acotado para que SIEMPRE entre, hasta en 320px. Gana sobre las reglas
       base/tablet por orden de cascada.
    ─────────────────────────────────────────────────────────────── */
    .hero .hero__claim {
      white-space: nowrap;
      max-width: none;
      font-size: clamp(0.92rem, 4.3vw, 1.95rem);
    }
    /* AIRE del hero mobile (Director jun 2026): la zona superior estaba apretada
       (eyebrow→wordmark 24px, wordmark→claim 16px) vs la inferior aireada (48px).
       Empareja el ritmo dándole respiro a eyebrow y claim. */
    @media (max-width: 600px) {
      .hero .eyebrow { margin-bottom: 30px; }      /* eyebrow→wordmark con aire */
      .hero__wordmark { margin-block: 0 6px; }      /* compacta el interlínea propio del wordmark */
      .hero .hero__claim { margin-top: 30px; }      /* baja el claim → respira bajo el wordmark */
    }

    /* ═══════════════════════════════════════════════════════════════
       CAMBIO 8 — unificar el ribete de los CTA (Director jun 2026)
       ─────────────────────────────────────────────────────────────
       "Pedí" del nav y "Pedí por WhatsApp" del hero con el MISMO ribete: NEGRO.
       El hero ya tenía border ink; el nav sobre el hero tenía border amarillo →
       lo paso a ink para que coincidan (estilo sticker, como los tags).
    ─────────────────────────────────────────────────────────────── */
    #site-nav:not(.nav--scrolled) .nav__cta {
      border-color: var(--ink);
    }

    /* ═══════════════════════════════════════════════════════════════
       CAMBIO 9 — step cards OSCURAS (Director jun 2026: "no me cierra tan blanco")
       ─────────────────────────────────────────────────────────────
       Las cards de los pasos (01/02/03) pasan de crema casi-blanco a oscuras,
       integradas al Blackout: fondo oscuro + texto crema + número amarillo neón
       + borde y hard-shadow amarillos que las definen sobre el bloque "Cómo pedir".
    ─────────────────────────────────────────────────────────────── */
    .block--lime#como-pedir .step {
      background: #0C2233;
      border-color: rgba(255, 230, 0, .5);
      color: var(--cream);
    }
    .block--lime#como-pedir .step__title { color: var(--cream); }
    .block--lime#como-pedir .step__body  { color: var(--cream); }
    .block--lime#como-pedir .step__num   { -webkit-text-stroke: 0; }

    /* ═══════════════════════════════════════════════════════════════
       CAMBIO 10 — uramaki (deco--pedir-2) en CÓMO PEDIR, VISIBLE en tablet + mobile
       (Director jun 2026: "ojo con mobile, quiero que se vea en todos los viewports").
       Posición específica por viewport para que se vea sin chocar con las step cards.
    ─────────────────────────────────────────────────────────────── */
    @media (max-width: 1099px) and (min-width: 701px) {
      .deco--pedir-2 {
        display: block;
        --deco-size: clamp(86px, 12vw, 130px);
        top: auto; bottom: 5%; left: 4%; right: auto;
        --deco-opacity: .92;
      }
    }
    @media (max-width: 700px) {
      /* mobile 1-columna: las step cards llenan el ancho y el padding inferior no alcanza
         para el uramaki sin tocar la card 03 → agrando la banda inferior de la sección y
         ubico el uramaki ahí (abajo-derecha), entero y visible, sin chocar con texto/cards. */
      .block--lime#como-pedir { padding-bottom: clamp(108px, 28vw, 140px); }
      /* abajo-IZQUIERDA: el FAB de WhatsApp vive abajo-derecha (fixed) → si el uramaki
         va a la derecha se pisan. A la izquierda queda libre y entero. */
      .deco--pedir-2 {
        display: block;
        --deco-size: clamp(82px, 22vw, 104px);
        top: auto; bottom: 5%; left: 5%; right: auto;
        --deco-opacity: .92;
      }
    }

    /* ═══════════════════════════════════════════════════════════════
       CAMBIO 11 — QUÉ HAGO con UNA sola pieza (el uramaki bajó a Cómo pedir):
       centrar los makis en el media-box (antes vivían arriba-izq esperando una 2da pieza).
    ─────────────────────────────────────────────────────────────── */
    .split__media--solo .piece--makis {
      left: 50%; top: 50%;
      transform: translate(-50%, -50%) rotate(-5deg);
      width: clamp(210px, 30vw, 350px);
    }
    @media (max-width: 390px) {
      .split__media--solo .piece--makis {
        position: relative; left: auto; top: auto;
        transform: rotate(-4deg);
        width: min(64%, 240px);
      }
    }

    /* ═══════════════════════════════════════════════════════════════
       CAMBIO 12 — makis de QUÉ HAGO BAJAN y se solapan con la sección siguiente
       (Director jun 2026, solo DESKTOP). El .block recorta (overflow:hidden) → override
       overflow-y:visible para dejar caer la pieza sobre #como-pedir; z-index alto + la
       sección siguiente queda debajo. overflow-x:clip mantiene 0 scroll horizontal.
    ─────────────────────────────────────────────────────────────── */
    @media (min-width: 1024px) {
      /* #que-hago ENCIMA de #como-pedir → la pieza que cae se ve sobre la sección siguiente */
      .block--ink#que-hago { overflow-x: clip; overflow-y: visible; position: relative; z-index: 2; }
      .block--lime#como-pedir { position: relative; z-index: 1; }
      .split__media--solo .piece--makis {
        z-index: 6;
        transform: translate(-50%, -50%) translateY(280px) rotate(-5deg);
      }
    }

    /* ═══════════════════════════════════════════════════════════════
       CAMBIO 13 — mobile: correr la pieza de QUÉ HAGO a la IZQUIERDA (Director jun 2026)
       para que el outline "A MANO" (que vive a la derecha) quede visible.
    ─────────────────────────────────────────────────────────────── */
    @media (max-width: 640px) and (min-width: 391px) {
      .split__media--solo .piece--makis { left: 33%; width: clamp(175px, 26vw, 295px); }
    }
    @media (max-width: 390px) {
      .split__media--solo { justify-content: flex-start; }
      .split__media--solo .piece--makis { margin-left: 2%; }
    }


    /* ================================================================
       NAMI — VERSION LIGHT (Director jun 2026, exploratorio "a ver como queda")
       ----------------------------------------------------------------
       Convierte el sitio de DARK (Blackout Neon indigo) -> LIGHT, fiel al logo
       (indigo sobre crema). MISMA estructura/animaciones/layout: SOLO la piel.
       Va al FINAL de styles.css -> gana por orden de cascada sobre TODO el
       bloque Blackout Neon de arriba (tokens + literales hardcodeados).
       Paleta LIGHT aplicada:
         - fondo hero / base:  #FCFAF8 (casi blanco, "respira")
         - crema de marca:     #F9F1EF   - crema calida: #F3E9E5
         - texto/headings:     indigo #193E58   - tinta body: #0E0D0C
         - acentos/CTA/numeros: indigo #193E58 + azul-ola #5C9BD6
         - SIN dorado #193E58 (eliminado) -> esos acentos pasan a azul-ola/indigo
         - sombras sticker: indigo #193E58 (antes amarillo/dorado)
         - 1 bloque indigo puntual (RUPTURA) como acento invertido.
       Contraste: indigo #193E58 / tinta #0E0D0C sobre crema = AA holgado.
       ================================================================ */

    /* ---- tokens LIGHT (redefinen los nocturnos -> flip masivo de la capa Blackout) ---- */
    :root{
      --nm-bg:        #F4ECE6;   /* crema cálido apagado (antes #FCFAF8 casi-blanco) — no encandila, sigue light */
      --nm-cream:     #F9F1EF;   /* crema de marca, leve layer + claro que el bg para superficies */
      --nm-cream-warm:#EFE5DF;   /* crema cálida un toque más honda para secciones warm (armoniza con bg) */
      --nm-indigo:    #193E58;
      --nm-indigo-dk: #102A3E;
      --nm-wave:      #5C9BD6;   /* azul-ola — OK para fills/borders/dashes/sombras, NO para texto chico sobre claro */
      --nm-wave-deep: #356BA3;   /* azul-ola profundo — para TEXTO azul sobre claro (AA 4.75:1 sobre el bg apagado) */
      --nm-ink:       #0E0D0C;
      --nm-cta-bg:    #193E58;   /* fondo de los CTAs — fijo por modo (el dark lo aclara) */

      --night:        var(--nm-bg);
      --night-lime:   var(--nm-cream-warm);
      --night-lime-2: var(--nm-cream);
      --neon-y:       var(--nm-indigo);
      --neon-l:       var(--nm-wave);
      --neon-green:   var(--nm-wave);
      --cream:        var(--nm-ink);
      --coral-night:  var(--nm-indigo);
    }

    /* ---- NAV sobre hero claro ---- */
    #site-nav:not(.nav--scrolled){ background:transparent; border:0; }
    #site-nav:not(.nav--scrolled) .nav__brand-text    { color:var(--nm-ink); }
    #site-nav:not(.nav--scrolled) .nav__brand-text--2 { color:var(--nm-wave-deep); }
    #site-nav:not(.nav--scrolled) .nav__link          { color:var(--nm-ink); }
    #site-nav:not(.nav--scrolled) .nav__link::after   { background:var(--nm-wave); }
    /* CTA navbar = mismo estilo que el CTA del hero "Pedí por WhatsApp" (Director jun 2026):
       índigo sólido + sombra azul-ola (no la gris) — escalada al tamaño del nav. */
    #site-nav:not(.nav--scrolled) .nav__cta{
      background:var(--nm-indigo);
      color:var(--nm-cream);
      border-color:var(--nm-indigo);
      box-shadow:3px 3px 0 var(--nm-wave);
    }
    /* nav scrolleado: el CTA mantiene el mismo look índigo+azul-ola del hero */
    .nav--scrolled .nav__cta{
      background:var(--nm-indigo);
      color:var(--nm-cream);
      border-color:var(--nm-indigo);
      box-shadow:3px 3px 0 var(--nm-wave);
    }
    #site-nav:not(.nav--scrolled) .nav__toggle{
      background:transparent; border-color:var(--nm-ink); box-shadow:none;
    }
    #site-nav:not(.nav--scrolled) .nav__toggle-bar{ background:var(--nm-ink); }
    .nav--scrolled{ background:var(--nm-cream); border-bottom-color:var(--nm-indigo); }
    /* subrayado + link activo: eran coral/dorado -> azul-ola / indigo */
    .nav__link::after{ background:var(--nm-wave); }
    .nav__link[aria-current="true"]{ color:var(--nm-indigo); }
    @media (max-width:768px){
      #site-nav:not(.nav--scrolled) .nav__links{
        background:var(--nm-bg);
        border-bottom:1px solid rgba(25,62,88,.16);
      }
      #site-nav:not(.nav--scrolled) .nav__link{
        border-top:1px solid rgba(25,62,88,.12);
      }
    }

    /* ---- 01 HERO — claro tirando al blanco ---- */
    .block--yellow.hero{ background:var(--nm-bg); color:var(--nm-ink); }
    .hero .eyebrow--ink            { color:var(--nm-indigo); }
    .hero .eyebrow--ink::before    { background:var(--nm-wave); }
    .hero .hero__claim             { color:var(--nm-ink); }
    .hero .hero__wordmark          { color:var(--nm-indigo); }
    .hero .hero__word--2           { color:var(--nm-wave-deep); }  /* azul profundo: AA en cualquier tamaño */
    .hero .hero__outline           { -webkit-text-stroke-color:rgba(25,62,88,.14); }
    .hero .btn--coral{
      background:var(--nm-indigo);
      color:var(--nm-cream);
      box-shadow:6px 6px 0 var(--nm-wave);
    }
    .hero .btn--coral:hover  { box-shadow:8px 8px 0 var(--nm-wave); }
    .hero .btn--coral:active { box-shadow:3px 3px 0 var(--nm-wave); }
    .hero .hero__tags .tag{
      background:var(--nm-cream);
      color:var(--nm-indigo);
      border-color:var(--nm-indigo);
      box-shadow:3px 3px 0 var(--nm-wave);
    }
    .hero .hero__tags .tag:hover,
    .hero .hero__tags .tag:focus-visible{ background:var(--nm-wave); color:var(--nm-ink); }
    @media (min-width:1024px){
      .hero .hero__plato{ filter:drop-shadow(14px 20px 26px rgba(25,62,88,.28)); }
    }

    /* ---- 02 QUE HAGO — crema (block era ink/oscuro) ---- */
    .block--ink#que-hago{
      background:var(--nm-cream);
      color:var(--nm-ink);
      border-top:2px solid rgba(25,62,88,.14);
    }
    .block--ink#que-hago .section__title,
    .block--ink#que-hago .section__title--paper{ color:var(--nm-indigo); }
    .block--ink#que-hago .section__body,
    .block--ink#que-hago .section__body--paper,
    .block--ink#que-hago .section__closer{ color:var(--nm-ink); }
    .block--ink#que-hago .eyebrow--paper{ color:var(--nm-indigo); }
    .block--ink#que-hago .eyebrow--paper::before{ background:var(--nm-wave); }
    .block--ink#que-hago .section__outline{ -webkit-text-stroke-color:rgba(25,62,88,.10); }

    /* ---- 03 COMO PEDIR — crema calida + step cards claras ---- */
    .block--lime#como-pedir{ background:var(--nm-cream-warm); color:var(--nm-ink); }
    .block--lime#como-pedir .eyebrow--ink{ color:var(--nm-indigo); }   /* indigo: AA sobre crema (azul-ola fallaba 2.5:1) */
    .block--lime#como-pedir .eyebrow--ink::before{ background:var(--nm-wave); }
    .block--lime#como-pedir .section__title{ color:var(--nm-indigo); }
    .block--lime#como-pedir .step{
      background:#FFFFFF;
      border-color:var(--nm-indigo);
      box-shadow:6px 6px 0 var(--nm-indigo);
      color:var(--nm-ink);
    }
    .block--lime#como-pedir .step:hover{ box-shadow:10px 10px 0 var(--nm-indigo); }
    .block--lime#como-pedir .step__num{
      color:var(--nm-indigo);   /* indigo: AA grande sobre blanco (azul-ola daba 2.95:1) */
      -webkit-text-stroke:0;
    }
    .block--lime#como-pedir .step__title{ color:var(--nm-indigo); }
    .block--lime#como-pedir .step__body { color:var(--nm-ink); }

    /* ---- 04 OPCIONES — fondo claro + cards claras con borde de color ---- */
    .block--paper#opciones{ background:var(--nm-bg); color:var(--nm-ink); }
    .block--paper#opciones .eyebrow--ink{ color:var(--nm-indigo); }
    .block--paper#opciones .eyebrow--ink::before{ background:var(--nm-wave); }
    .block--paper#opciones .section__title{ color:var(--nm-indigo); }
    .block--paper#opciones .section__closer{ color:var(--nm-ink); }
    .block--paper#opciones .card{
      background:#FFFFFF;
      border-color:rgba(25,62,88,.30);
      box-shadow:5px 5px 0 rgba(25,62,88,.45);
      color:var(--nm-ink);
    }
    .block--paper#opciones .card:hover{
      box-shadow:9px 11px 0 var(--nm-indigo);
      border-color:var(--nm-indigo);
    }
    .block--paper#opciones .card__body{ color:var(--nm-ink); }
    .block--paper#opciones .card:nth-child(1){
      border-color:var(--nm-indigo); box-shadow:5px 5px 0 var(--nm-indigo);
    }
    .block--paper#opciones .card:nth-child(1):hover{ box-shadow:9px 11px 0 var(--nm-indigo); }
    .block--paper#opciones .card:nth-child(1) .card__media{
      background:var(--nm-cream); border-color:var(--nm-indigo);
    }
    .block--paper#opciones .card:nth-child(1) .tag--on-card{
      background:var(--nm-indigo); color:var(--nm-cream);
    }
    .block--paper#opciones .card:nth-child(2){
      border-color:var(--nm-wave); box-shadow:5px 5px 0 var(--nm-wave);
    }
    .block--paper#opciones .card:nth-child(2):hover{ box-shadow:9px 11px 0 var(--nm-wave); }
    .block--paper#opciones .card:nth-child(2) .card__media{
      background:var(--nm-cream); border-color:var(--nm-wave);
    }
    .block--paper#opciones .card:nth-child(2) .tag--lime{
      background:var(--nm-wave); color:var(--nm-ink);
    }
    .block--paper#opciones .card:nth-child(3){
      border-color:var(--nm-indigo); box-shadow:5px 5px 0 var(--nm-indigo);
    }
    .block--paper#opciones .card:nth-child(3):hover{ box-shadow:9px 11px 0 var(--nm-indigo); }
    .block--paper#opciones .card:nth-child(3) .card__media{
      background:var(--nm-cream); border-color:var(--nm-indigo);
    }
    .block--paper#opciones .card:nth-child(3) .tag--coral{
      background:var(--nm-indigo); color:var(--nm-cream);
    }
    .block--paper#opciones .tag{ background:var(--nm-cream); color:var(--nm-ink); }
    .block--paper#opciones .tag--lime{ background:var(--nm-wave); color:var(--nm-ink); }
    .block--paper#opciones .tag--coral{ background:var(--nm-indigo); color:var(--nm-cream); }

    /* ---- 05 RUPTURA — unico bloque INDIGO (acento invertido, reemplaza el dorado) ---- */
    .block--coral.ruptura{ background:var(--nm-indigo); color:var(--nm-cream); }
    .block--coral.ruptura .ruptura__outline{ -webkit-text-stroke-color:rgba(249,241,239,.20); }

    /* ---- 06 FAQ — crema, acordeon indigo tenue ---- */
    .block--paper#faq{ background:var(--nm-cream); color:var(--nm-ink); }
    .block--paper#faq .eyebrow--ink{ color:var(--nm-indigo); }
    .block--paper#faq .eyebrow--ink::before{ background:var(--nm-wave); }
    .block--paper#faq .section__title{ color:var(--nm-indigo); }
    .block--paper#faq .faq{ border-top-color:rgba(25,62,88,.28); }
    .block--paper#faq .faq__item{ border-bottom-color:rgba(25,62,88,.22); }
    .block--paper#faq .faq__btn{ color:var(--nm-indigo); }
    .block--paper#faq .faq__btn:hover{ color:var(--nm-wave); }
    .block--paper#faq .faq__btn:focus-visible{ outline-color:var(--nm-indigo); }
    .block--paper#faq .faq__icon::before,
    .block--paper#faq .faq__icon::after{ background:var(--nm-indigo); }
    .block--paper#faq .faq__btn[aria-expanded="true"] .faq__icon::before{ background:var(--nm-wave); }
    .block--paper#faq .faq__panel p{ color:var(--nm-ink); opacity:1; }

    /* ---- 07 CIERRE — crema calida + CTAs indigo ---- */
    .block--ink#cierre{
      background:var(--nm-cream-warm);
      color:var(--nm-ink);
      border-top:2px solid rgba(25,62,88,.14);
    }
    .block--ink#cierre .cierre__title,
    .block--ink#cierre .section__title--paper{ color:var(--nm-indigo); }
    .block--ink#cierre .section__body,
    .block--ink#cierre .section__body--paper,
    .block--ink#cierre .cierre__sub{ color:var(--nm-ink); }
    .block--ink#cierre .eyebrow--paper{ color:var(--nm-indigo); }
    .block--ink#cierre .eyebrow--paper::before{ background:var(--nm-wave); }
    .block--ink#cierre .cierre__outline{ -webkit-text-stroke-color:rgba(25,62,88,.14); }
    .block--ink#cierre .btn--coral{
      background:var(--nm-indigo);
      color:var(--nm-cream);
      box-shadow:6px 6px 0 var(--nm-wave);
    }
    .block--ink#cierre .btn--coral:hover{
      transform:translate(-2px,-2px);
      box-shadow:9px 9px 0 var(--nm-wave);
    }
    .block--ink#cierre .btn--ghost{ border-color:var(--nm-indigo); color:var(--nm-indigo); }
    .block--ink#cierre .btn--ghost:hover{ background:var(--nm-indigo); color:var(--nm-cream); }

    /* ---- FOOTER — indigo profundo (ancla oscura sobria, sin dorado) ---- */
    .block--ink.footer{
      background:var(--nm-indigo-dk);
      color:var(--nm-cream);
      border-top:1px solid rgba(249,241,239,.12);
    }
    .block--ink.footer .footer__credit a{ color:var(--nm-wave); }
    .block--ink.footer .footer__credit a:hover{ color:#FFFFFF; }

    /* ---- FAB — sticker indigo sobre claro ---- */
    .fab{ border-color:var(--nm-indigo); box-shadow:4px 4px 0 var(--nm-indigo); }
    .fab:hover{ box-shadow:6px 6px 0 var(--nm-indigo); }

    /* ---- SKIP LINK — sobre claro ---- */
    .skip-link{ background:var(--nm-indigo); color:var(--nm-cream); border:2px solid var(--nm-indigo); }
    .skip-link:focus-visible{ outline-color:var(--nm-wave); }

    /* ---- LOADER — fondo claro, wordmark indigo (SUSHI azul-ola, sin dorado) ---- */
    .loader{ background:var(--nm-bg); }
    .loader__word{ color:var(--nm-indigo); }
    .loader__word2{ color:var(--nm-wave-deep); }

    /* ---- DECOS — opacidad full sobre claro ---- */
    .block--lime#como-pedir .deco--pedir-1{ --deco-opacity:1; }
    .block--lime#como-pedir .deco--pedir-2{ --deco-opacity:1; }
    .block--lime#como-pedir .deco--que-1{ --deco-opacity:1; }
    .block--paper#opciones  .deco{ --deco-opacity:1; }

    /* ---- FIXES base: matar el azul-ola de body + el dorado del .btn--coral base ---- */
    /* body base era var(--yellow)=#5C9BD6 (asomaba en overscroll) -> claro */
    body{ background:var(--nm-bg); }
    /* .nav__cta hereda .btn--coral (dorado) en estado SCROLLEADO (paper) -> indigo */
    .nav .nav__cta{
      background:var(--nm-indigo);
      color:var(--nm-cream);
      border-color:var(--nm-indigo);
      box-shadow:2px 2px 0 var(--nm-indigo);
    }
    .nav .nav__cta:hover{ box-shadow:3px 3px 0 var(--nm-indigo); }
    .nav .nav__cta:active{ box-shadow:1px 1px 0 var(--nm-indigo); }
    /* sobre el hero claro el CTA mantiene su override :not(.nav--scrolled) de arriba.
       En estado scrolled (nav crema) queda indigo solido -> AA OK. */

    /* ================================================================
       NAMI — TIPOGRAFÍA SERIF DE MARCA (Director jun 2026)
       ----------------------------------------------------------------
       Cambio: display Anton (sans condensada) -> Playfair Display (serif
       editorial de alto contraste, peso 800/900). Mantiene el MAXIMALISMO
       (tamaños gigantes) pero con drama serif elegante, fiel al logo Nami
       (serif clásica espaciada tipo Trajan/Cormorant).
       Va al FINAL -> gana por cascada sobre los font-weight:400 de Anton.

       Ajustes por métricas distintas (Playfair es MÁS ANCHA y MÁS ALTA que
       Anton): (1) peso 800/900 para que el serif tenga presencia gigante;
       (2) line-height un toque más holgado (Playfair tiene ascendentes/
       cap-height mayores que el x-height chato de Anton); (3) ceilings de
       los clamp gigantes bajados ~12-18% para que las serif no desborden ni
       rompan layout (mismo impacto, sin overflow); (4) tracking propio
       (la serif gigante pide menos letter-spacing que Anton).
       ================================================================ */

    /* -- peso + métricas base de TODO lo display serif -- */
    .hero__wordmark,.hero__word,
    .hero__outline,.section__outline,.ruptura__outline,.cierre__outline,
    .section__title,.section__title--paper,.cierre__title,
    .step__num,.step__title,.card__num,
    .loader__word,.loader__word2,
    .nav__brand-text,.nav__brand-text--2{
      font-family:var(--font-display);
      font-weight:900;            /* Playfair 900: peso/drama para que el maximalismo NO se apague */
      font-style:normal;
    }

    /* -- WORDMARK "NAMI / SUSHI" gigante: serif espaciada como el logo -- */
    .hero__wordmark{
      font-weight:900;
      line-height:.94;            /* 2 líneas serif respiran sin tocarse */
      letter-spacing:.06em;       /* tracking amplio mayúsculas — feel logo Trajan/Cormorant */
      font-size:clamp(2.9rem,11vw,8rem);  /* ceiling 8rem (antes 9): Playfair ancha, mismo impacto sin overflow */
    }
    .hero__word{letter-spacing:.06em}
    .hero__word--2{margin-top:.02em}

    /* -- OUTLINE texts de fondo (SUSHI / A MANO / FRESCO / PEDÍ) -- */
    .hero__outline,.section__outline,.ruptura__outline,.cierre__outline{
      font-weight:900;
      line-height:.86;
      letter-spacing:.02em;
      -webkit-text-stroke-width:2.5px;  /* serif stroke un toque más grueso = igual de dramática */
    }
    .hero__outline   { font-size:clamp(6.5rem,27vw,24rem); }
    .section__outline{ font-size:clamp(4rem,16vw,13rem); }
    .ruptura__outline{ font-size:clamp(5.5rem,22vw,19rem); }
    .cierre__outline { font-size:clamp(2.6rem,8.5vw,6.6rem); }

    /* -- TÍTULOS de sección -- */
    .section__title,.section__title--paper,.cierre__title{
      font-weight:800;
      line-height:1.0;
      letter-spacing:0;
    }

    /* -- RUPTURA headline visible "HECHO EL DÍA / QUE LO COMÉS" (sobre indigo) -- */
    .ruptura__line{
      font-family:var(--font-display);
      font-weight:900;
      line-height:.98;
      letter-spacing:.01em;
      font-size:clamp(1.9rem,7vw,4.7rem);  /* achicado (Director 12 jun): deja respirar el FRESCO del fondo */
    }

    /* -- NÚMEROS gigantes (steps / cards) -- */
    .step__num,.card__num{ font-weight:900; line-height:.9; letter-spacing:0; }
    .step__title{ font-weight:800; letter-spacing:.01em; }

    /* -- NAV wordmark (chico) — serif espaciada coherente con el hero -- */
    .nav__brand-text{ font-weight:800; letter-spacing:.05em; }
    .nav__brand-text--2{ font-weight:800; letter-spacing:.05em; }

    /* -- LOADER wordmark -- */
    .loader__word{ font-weight:900; letter-spacing:.05em; }
    .loader__word2{ font-weight:900; letter-spacing:.05em; }

    /* -- MOBILE: el wordmark vuelve a clamp propio (Playfair) sin desbordar -- */
    @media (max-width:768px){
      .hero__wordmark{ font-size:clamp(2.8rem,13vw,5.4rem); line-height:.96; letter-spacing:.045em; }
      .hero__outline { font-size:clamp(4.5rem,26vw,9rem); }
      .section__outline{ font-size:clamp(3rem,13vw,5rem); }
      .cierre__outline { font-size:clamp(2.4rem,12vw,4rem); }
      .ruptura__line{ font-size:clamp(1.7rem,7.4vw,3rem); }
    }
    @media (max-width:600px){
      /* FRESCO mobile: el 33.5vw estaba calibrado para Anton (ancho≈font×2.709).
         Playfair es ~1.4x más ancha → bajamos a 23vw para que entre completo + centrado
         en 320/360/375/390/414 sin desbordar el overflow:hidden de .ruptura. */
      .ruptura__outline{ font-size:23vw; letter-spacing:0; }
    }
    /* ==== /NAMI VERSION LIGHT ==== */

    /* ================================================================
       FRESCO — REVERTIDO a la tipografía anterior (Director 12 jun 2026:
       "volver a la tipografía anterior"). Se quitó el override Great Vibes
       (script) → .ruptura__outline vuelve al Playfair 900 UPPERCASE con
       contorno crema del bloque LIGHT de arriba (font-size clamp 5.5→19rem;
       mobile 23vw). El heading "HECHO EL DÍA / QUE LO COMÉS" se achicó (abajo)
       para que el FRESCO del fondo se note más grande.
       ================================================================ */

    /* ================================================================
       CARTA / MENÚ — estilo editorial light Nami (lista con leader de puntos).
       El agente dejó solo el HTML (lo maté por una señal de output engañosa);
       este CSS lo completa el asistente. Light: serif Playfair + índigo/azul-ola.
       ================================================================ */
    #carta.menu{ background:var(--nm-bg); color:var(--nm-ink); }
    .menu__group{ max-width:780px; margin-inline:auto; margin-top:clamp(38px,5vw,66px); }
    .menu__head{
      display:flex; align-items:baseline; gap:16px;
      border-bottom:2px solid var(--nm-indigo);
      padding-bottom:10px; margin-bottom:24px;
    }
    .menu__cat{
      font-family:var(--font-display); font-weight:800; line-height:1;
      font-size:clamp(1.9rem,4.2vw,2.9rem); color:var(--nm-indigo); letter-spacing:.01em;
    }
    .menu__cat-note{ font-style:italic; font-size:clamp(.9rem,1.6vw,1.05rem); color:var(--nm-wave-deep); margin-left:auto; }
    .menu__list{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:20px; }
    .menu__item{ display:flex; align-items:baseline; gap:10px; }
    .menu__copy{ display:flex; flex-direction:column; gap:3px; flex:0 1 auto; max-width:78%; }
    .menu__name{
      font-family:var(--font-display); font-weight:700; line-height:1.05;
      font-size:clamp(1.12rem,2.2vw,1.45rem); color:var(--nm-indigo);
    }
    .menu__qty{ font-family:var(--font-body); font-weight:500; font-size:.62em; font-style:italic; color:var(--nm-wave-deep); margin-left:7px; white-space:nowrap; }
    .menu__desc{ font-size:clamp(.86rem,1.5vw,.98rem); color:var(--nm-ink); opacity:.76; }
    .menu__dots{ flex:1 1 auto; border-bottom:2px dotted rgba(25,62,88,.32); transform:translateY(-5px); min-width:20px; }
    .menu__price{
      font-family:var(--font-display); font-weight:800; white-space:nowrap; flex:0 0 auto;
      font-size:clamp(1.05rem,2vw,1.35rem); color:var(--nm-indigo);
    }
    .menu__foot{ margin-top:20px; font-style:italic; font-size:.9rem; color:var(--nm-wave-deep); text-align:center; }
    @media (max-width:600px){
      .menu__copy{ max-width:70%; }
      .menu__dots{ min-width:10px; }
      .menu__cat-note{ font-size:.82rem; }
    }
    /* página de CARTA aparte (carta.html): sin hero, el nav fixed taparía el inicio →
       padding-top de respiro. La sección .menu ya trae su padding-block interno. */
    .carta-page{ padding-top:var(--nav-h); }

    /* ================================================================
       OUTLINE "SUSHI" del hero → VERTICAL (Director jun 2026)
       Apilado (upright) corriendo en columna por el costado derecho del hero,
       tenue, como acompañamiento editorial vertical del wordmark "NAMI SUSHI".
       Va al final → gana sobre el bloque serif (que lo definía horizontal).
       ================================================================ */
    .hero__outline{
      writing-mode:vertical-rl;
      text-orientation:upright;
      text-transform:uppercase;
      top:50%; left:auto; right:1.5%;
      transform:translateY(-50%);
      line-height:.66;
      letter-spacing:-.06em;
      font-size:clamp(3rem,8.5vw,7rem);
      z-index:0;
    }
    @media (max-width:768px){
      .hero__outline{ right:1%; font-size:clamp(2.4rem,10vw,4.6rem); }
    }

    /* fotos REALES de Nami en las cards de opciones (Director jun 2026): son fotos
       rectangulares (no piezas recortadas) → llenan el media-box con object-fit cover,
       sin el drop-shadow de las piezas. El borde de marca de la card las enmarca. */
    .card__media .piece--photo{
      width:100%; height:100%;
      object-fit:cover;
      filter:none;
    }

    /* CTA "Pedí tu combinado" de la carta (carta.html): usaba el .btn--coral base
       (texto oscuro + sombra desalineada). Lo igualo al CTA del hero — índigo + texto
       BLANCO + sombra azul-ola — y lo CENTRO. Director jun 2026. */
    .menu__cta{ text-align:center; margin-top:clamp(44px,6vw,76px); }
    .menu__cta .btn--coral{
      background:var(--nm-indigo);
      color:#FFFFFF;
      box-shadow:6px 6px 0 var(--nm-wave);
    }
    .menu__cta .btn--coral:hover{ transform:translate(-2px,-2px); box-shadow:9px 9px 0 var(--nm-wave); }
    .menu__cta .btn--coral:active{ transform:translate(2px,2px); box-shadow:3px 3px 0 var(--nm-wave); }

    /* ================================================================
       GALERÍA "QUÉ HAGO" — grid 2x2 de fotos reales de Nami (Director 12 jun
       2026). Reemplaza la torre de makis. Marco índigo + sombra sticker azul-ola,
       coherente con las cards de opciones y los CTAs.
       .split__media.split__gallery (0,2,0) gana al .split__media flex de mobile.
       ================================================================ */
    .split__media.split__gallery{
      display:grid;
      grid-template-columns:1fr 1fr;
      gap:clamp(10px,1.4vw,16px);
      min-height:auto;
      align-content:center;
    }
    .gallery__img{
      display:block;
      width:100%;
      aspect-ratio:1/1;
      object-fit:cover;
      border-radius:14px;
      border:2px solid var(--nm-indigo);
      box-shadow:4px 4px 0 var(--nm-wave);
      transition:transform .35s cubic-bezier(.2,.7,.2,1), box-shadow .35s ease;
    }
    .gallery__img:hover{ transform:translate(-2px,-2px); box-shadow:7px 7px 0 var(--nm-wave); }
    @media (prefers-reduced-motion: reduce){ .gallery__img{ transition:none; } }
    @media (max-width:640px){
      .split__media.split__gallery{ margin-top:var(--space-5); gap:11px; }
    }

    /* Cierre "DECIME PARA CUÁNDO / Y LO ARMAMOS" SIEMPRE en 2 líneas (Director 12 jun
       2026): el <br> separa; white-space:nowrap evita que "DECIME PARA CUÁNDO" se parta,
       y el font-size baja lo justo para que entre en 1 línea en todo viewport. */
    .cierre__title{ white-space:nowrap; font-size:clamp(1.5rem,7.4vw,5.4rem); }

    /* CTA secundario "Ver carta" del hero: btn--ghost se lava sobre el crema light →
       outline índigo de marca. El hero__cta a flex para alinear los 2 CTAs. Director 12 jun 2026. */
    .hero__cta{ display:flex; flex-wrap:wrap; gap:clamp(12px,1.4vw,18px); align-items:center; }
    .hero__cta .btn--ghost{ color:var(--nm-indigo); border:2px solid var(--nm-indigo); background:transparent; box-shadow:none; }
    .hero__cta .btn--ghost:hover{ background:var(--nm-indigo); color:var(--nm-cream); }

    /* Ola de Hokusai GIGANTE de fondo del hero (Director 12 jun 2026): reemplaza el
       outline "SUSHI". Detrás del contenido (z0) y del plato; tenue para no competir. */
    .hero__wave{
      position:absolute; z-index:0;
      left:clamp(-130px,1vw,30px); top:50%;
      transform:translateY(-50%);
      width:min(56vw,640px); height:auto;
      opacity:.16; pointer-events:none; user-select:none;
    }
    @media (max-width:768px){
      .hero__wave{ width:92vw; left:50%; transform:translate(-50%,-50%); top:40%; opacity:.12; }
    }

    /* CTA "Ver la carta completa" debajo del closer de Opciones (Director 12 jun 2026). */
    .section__closer-cta{ text-align:center; margin-top:clamp(22px,3vw,34px); }

    /* Footer: contacto IG + WhatsApp con iconos (Director 12 jun 2026). El footer es
       block--ink (índigo): texto crema, iconos azul-ola. */
    .footer__contact{ display:flex; flex-wrap:wrap; gap:clamp(14px,2vw,26px); align-items:center; }
    .footer__social{ display:inline-flex; align-items:center; gap:8px; color:var(--paper); font-size:var(--text-sm); font-weight:600; letter-spacing:.01em; transition:color .25s ease; }
    .footer__social svg{ color:var(--nm-wave); transition:color .25s ease; flex:0 0 auto; }
    .footer__social:hover{ color:var(--nm-wave); }
    .footer__social:hover svg{ color:var(--paper); }

    /* Carta: menos espacio muerto entre el nav y el contenido (Director 12 jun 2026). */
    .carta-page .menu{ padding-top:clamp(14px,2.5vw,30px); }

    /* ════════════════════════════════════════════════════════════════
       TODOS los CTAs con el estilo del "Pedí por WhatsApp" del hero (Director 12 jun
       2026): índigo sólido + texto crema + sombra sticker azul-ola (6px). Aplica a
       btn--coral y btn--ghost en todo el sitio (hero "Ver carta", opciones, cierre
       "Seguime en Instagram", carta). El nav__cta (compacto, a propósito) se EXCLUYE. */
    .btn--coral:not(.nav__cta), .btn--ghost{
      background:var(--nm-cta-bg) !important;
      color:#F9F1EF !important;
      border:2.5px solid var(--nm-ink) !important;
      box-shadow:6px 6px 0 var(--nm-wave) !important;
    }
    .btn--coral:not(.nav__cta):hover, .btn--ghost:hover{
      background:var(--nm-indigo) !important;
      color:var(--nm-cream) !important;
      transform:translate(-2px,-2px) !important;
      box-shadow:9px 9px 0 var(--nm-wave) !important;
    }
    .btn--coral:not(.nav__cta):active, .btn--ghost:active{
      transform:translate(2px,2px) !important;
      box-shadow:3px 3px 0 var(--nm-wave) !important;
    }

    /* Closer de Opciones en 1 sola línea en desktop (Director 12 jun 2026). */
    @media (min-width:1024px){
      .section__closer{ max-width:none; white-space:nowrap; }
    }
    /* Menos espacio muerto arriba de las secciones Opciones y Cómo pedir (Director 12 jun 2026). */
    #opciones, #como-pedir{ padding-top:clamp(40px,5vw,72px); }

    /* Footer brand = formato del nav (logo ola + NAMI SUSHI), legible sobre el índigo
       del footer: NAMI crema, SUSHI azul-ola (Director 12 jun 2026). */
    .footer__brand{ display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
    .footer__brand-mark{ width:30px; height:auto; flex:0 0 auto; }
    .footer__brand-text{ font-family:var(--font-display); font-weight:800; font-size:1.15rem; letter-spacing:.04em; color:var(--paper); line-height:1; }
    .footer__brand-text--2{ color:var(--nm-wave); margin-left:.12em; }
    .footer__brand-sub{ font-size:var(--text-sm); color:var(--paper); opacity:.78; font-weight:500; }

    /* Toggle de tema light/dark en el nav (Director 12 jun 2026). */
    .nav__theme{
      flex:0 0 auto; display:inline-flex; align-items:center; justify-content:center;
      width:40px; height:40px; margin-left:4px; padding:0;
      border:2px solid var(--nm-ink); border-radius:11px;
      background:transparent; color:var(--nm-ink); cursor:pointer;
      transition:background .2s ease, color .2s ease, border-color .2s ease, transform .12s ease;
    }
    .nav__theme:hover{ background:var(--nm-indigo); color:var(--nm-cream); border-color:var(--nm-indigo); }
    .nav__theme:active{ transform:scale(.93); }
    .nav__theme svg{ display:block; }
    .nav__theme .icon-moon{ display:none; }
    :root[data-theme="dark"] .nav__theme .icon-sun{ display:none; }
    :root[data-theme="dark"] .nav__theme .icon-moon{ display:block; }

    /* ════════════════════════════════════════════════════════════════════
       🌙 MODO DARK (Director 12 jun 2026) — paleta MARINA Nami (NO el Blackout neón).
       El sitio está tokenizado: redefinir los nm-* flipea secciones + texto + acentos.
       Overrides puntuales para las superficies que estaban en #FFFFFF literal (cards/
       steps) y para que los CTAs mantengan el índigo+crema del hero (vía --nm-cta-bg).
       ════════════════════════════════════════════════════════════════════ */
    :root[data-theme="dark"]{
      --nm-bg:        #0B1119;   /* fondo base: azul-noche marino */
      --nm-cream:     #151F2C;   /* superficie 1 (las secciones "crema") */
      --nm-cream-warm:#101924;   /* superficie warm */
      --nm-indigo:    #7FB2DC;   /* azul-ola claro: headings / acentos / bordes sobre dark */
      --nm-indigo-dk: #5E8FBA;
      --nm-wave:      #5C9BD6;   /* sombras / acentos (se mantiene, brilla sobre dark) */
      --nm-wave-deep: #A9CCEC;   /* texto azul claro sobre dark */
      --nm-ink:       #ECF2F8;   /* texto / headings claros */
      --nm-cta-bg:    #2C6190;   /* CTAs: índigo brillante (texto crema legible sobre dark) */
    }
    /* superficies que estaban en #FFFFFF / literal claro → elevadas oscuras en dark */
    :root[data-theme="dark"] .block--lime#como-pedir .step,
    :root[data-theme="dark"] .block--paper#opciones .card{ background:#1A2533; }
    :root[data-theme="dark"] .block--paper#opciones .card__media{ background:#101924; }

    /* ---- contraste dark — fixes (Director 12 jun 2026 "ojo los contrastes") ---- */
    /* footer estaba azul medio (#5E8FBA) → oscuro, para que el texto crema sea legible */
    :root[data-theme="dark"] .block--ink.footer{ background:#0D1521 !important; }
    /* nav scrolleado: el texto era NEGRO (#0E0D0C) sobre nav oscuro → claro */
    :root[data-theme="dark"] .nav--scrolled .nav__link,
    :root[data-theme="dark"] .nav--scrolled .nav__brand-text{ color:var(--nm-ink) !important; }
    :root[data-theme="dark"] .nav--scrolled .nav__brand-text--2{ color:var(--nm-wave) !important; }
    :root[data-theme="dark"] .nav--scrolled .nav__toggle-bar{ background:var(--nm-ink); }
    /* hamburguesa scrolleada: las 3 barras usaban var(--ink) (fijo) → no contrastaban con
       el fondo del nav scrolled (--nm-cream) al hacer scroll. --nm-ink SIEMPRE contrasta
       (oscuro sobre crema en light, claro sobre oscuro en dark). Juan 12 jun 2026. */
    .nav--scrolled .nav__toggle-bar{ background:var(--nm-ink) !important; }
    /* botón hamburguesa en DARK: tenía fondo CLARO (#F9F1EF) + barras claras = contraste 1.0
       (invisibles). Transparente + borde claro (como el toggle de tema). Juan 13 jun 2026. */
    :root[data-theme="dark"] .nav__toggle{ background:transparent !important; border-color:var(--nm-ink) !important; }

    /* desktop: 5px de separación entre el hero y el navbar (Juan 13 jun 2026) */
    @media (min-width:1024px){ #hero{ margin-top:5px; } }

    /* FAB WhatsApp en dark: ribete + sombra VERDE OSCURO (el borde --ink oscuro se perdía
       sobre el fondo dark). Combina con el verde del botón y lo despega del fondo. Juan 12 jun 2026. */
    :root[data-theme="dark"] .fab{ border-color:#0A6B45; box-shadow:4px 4px 0 #0A6B45; }
    :root[data-theme="dark"] .fab:hover{ box-shadow:6px 6px 0 #0A6B45; }
    /* ruptura: el bloque de acento se volvía azul claro (#7FB2DC, contraste 2.0 con el
       texto crema) → índigo de marca profundo: destaca sobre el fondo + texto legible */
    :root[data-theme="dark"] .block--coral.ruptura{ background:#193E58 !important; }

    /* Ruptura en mobile: el min-height de 52vh dejaba mucho aire arriba/abajo del texto
       (espacio muerto) → altura por contenido + padding moderado (Director 12 jun 2026). */
    @media (max-width:768px){
      .ruptura{ min-height:auto; padding-block:clamp(54px,13vw,84px); }
    }

    /* mobile: sacar el "Pedí" del navbar — con el toggle de tema agregado ya no entraba
       la hamburguesa (Juan 12 jun 2026). El pedido queda cubierto por el FAB de WhatsApp. */
    @media (max-width:768px){
      .nav__cta{ display:none !important; }
      /* el margin-left:auto vivía en el Pedí (ahora oculto) → se lo paso al toggle para
         empujar toggle+hamburguesa a la derecha; gap entre ellos cómodo (Juan 12 jun 2026). */
      .nav__theme{ margin-left:auto; }
      .nav__inner{ gap:14px; }
      .nav__toggle{ margin-left:4px; }
    }
