/* RAW/STUDIO — magazine editorial · v20260702 */
:root{
  --paper:#f6f3ec;
  --paper-2:#eee9df;
  --ink:#16140e;
  --ink-soft:#3a382f;
  --mute:#7a766a;
  --red:#c8102e;          /* RAW red */
  --red-deep:#960018;
  --line:rgba(22,20,14,.16);
  --dark:#0e0d0a;
  --dark-ink:#f2efe7;
  --ease:cubic-bezier(.22,1,.36,1);
  --font-display:"Bodoni Moda",serif;
  --font-body:"Spectral",serif;
  --font-sans:"Inter",sans-serif;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{background:var(--paper);color:var(--ink);font-family:var(--font-body);font-weight:300;line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
sup{font-size:.4em;vertical-align:super}

/* ---------- defensive reveal (hard rule: content first) ---------- */
.reveal{opacity:0;transform:translateY(28px);transition:opacity .9s var(--ease),transform .9s var(--ease)}
.reveal.in{opacity:1;transform:none}
@media (scripting:none){.reveal{opacity:1;transform:none}}
noscript ~ * .reveal{opacity:1}

/* ---------- splash ---------- */
.splash{position:fixed;inset:0;z-index:100;background:var(--paper);display:flex;align-items:center;justify-content:center;
  animation:splashOut .6s var(--ease) 2.2s forwards}
.splash.hide{opacity:0;visibility:hidden;transition:opacity .5s,visibility .5s}
@keyframes splashOut{to{opacity:0;visibility:hidden}}
.splash-mark{font-family:var(--font-display);font-size:clamp(3rem,10vw,7rem);letter-spacing:.02em;display:flex;align-items:baseline;overflow:hidden}
.splash-raw{color:var(--red);font-weight:800;animation:markUp .9s var(--ease) .15s both}
.splash-slash{font-style:italic;font-weight:400;margin:0 .04em;animation:markUp .9s var(--ease) .35s both}
.splash-studio{font-weight:400;letter-spacing:.18em;font-size:.52em;animation:markUp .9s var(--ease) .5s both}
@keyframes markUp{from{transform:translateY(110%);opacity:0}to{transform:none;opacity:1}}

/* ---------- nav ---------- */
.nav{position:fixed;top:0;left:0;right:0;z-index:50;display:flex;justify-content:space-between;align-items:center;
  padding:1.1rem clamp(1.2rem,4vw,3rem);transition:background .4s,box-shadow .4s;mix-blend-mode:normal}
.nav.solid{background:rgba(246,243,236,.92);backdrop-filter:blur(8px);box-shadow:0 1px 0 var(--line)}
.nav-brand{font-family:var(--font-display);font-weight:800;font-size:1.25rem;letter-spacing:.03em}
.nav-brand .brand-slash{color:var(--red);font-style:italic;font-weight:400}
.hero-on .nav-brand,.hero-on .nav-links a{color:#fff}
.nav.solid .nav-brand,.nav.solid .nav-links a{color:var(--ink)}
.nav-links{display:flex;gap:2rem;font-family:var(--font-sans);font-size:.72rem;font-weight:500;letter-spacing:.22em;text-transform:uppercase}
.nav-links a{position:relative;padding:.2rem 0}
.nav-links a::after{content:"";position:absolute;left:0;bottom:0;width:100%;height:1px;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform .35s var(--ease)}
.nav-links a:hover::after{transform:scaleX(1);transform-origin:left}
.nav-cta{color:var(--red)!important}
.nav-burger{display:none;background:none;border:0;width:34px;height:26px;position:relative;cursor:pointer}
.nav-burger span{position:absolute;left:0;width:100%;height:2px;background:currentColor;transition:.3s}
.nav-burger span:first-child{top:7px}.nav-burger span:last-child{top:17px}
.hero-on .nav-burger{color:#fff}.nav.solid .nav-burger{color:var(--ink)}

/* ---------- hero ---------- */
.hero{position:relative;height:100svh;min-height:560px;display:flex;flex-direction:column;justify-content:flex-end;overflow:hidden;color:#fff}
.hero-media{position:absolute;inset:0;z-index:0}
.hero-img{width:100%;height:100%;object-fit:cover;transform:scale(1.06)}
.hero-video{position:absolute;inset:0;opacity:0;transition:opacity 1.4s ease;pointer-events:none;overflow:hidden}
.hero-video.on{opacity:1}
.hero-video iframe{position:absolute;top:50%;left:50%;width:178vh;min-width:100%;height:56.25vw;min-height:100%;transform:translate(-50%,-50%);border:0}
.hero-scrim{position:absolute;inset:0;background:linear-gradient(180deg,rgba(14,13,10,.35) 0%,rgba(14,13,10,.05) 40%,rgba(14,13,10,.62) 100%)}
.hero-content{position:relative;z-index:2;padding:0 clamp(1.2rem,4vw,3rem) 1rem}
.kicker{font-family:var(--font-sans);font-size:.7rem;font-weight:500;letter-spacing:.3em;text-transform:uppercase;margin-bottom:1rem}
.hero .kicker{color:rgba(255,255,255,.85)}
.hero-title{font-family:var(--font-display);font-weight:800;font-size:clamp(4.2rem,15vw,12.5rem);line-height:.88;letter-spacing:.01em}
.hero-title .line{display:block;overflow:hidden}
.hero-title em{color:var(--red);font-weight:400}
.hero-title .line:last-child{font-weight:400;letter-spacing:.1em;font-size:.62em}
.hero-deck{font-style:italic;font-size:clamp(1rem,2vw,1.35rem);max-width:34ch;margin-top:1.2rem;color:rgba(255,255,255,.92)}
.hero-foot{position:relative;z-index:2;display:flex;justify-content:space-between;align-items:center;
  padding:1.4rem clamp(1.2rem,4vw,3rem);border-top:1px solid rgba(255,255,255,.28);margin-top:2.4rem;
  font-family:var(--font-sans);font-size:.68rem;letter-spacing:.32em;font-weight:500}
.hero-scroll{animation:cue 2.4s ease-in-out infinite}
@keyframes cue{0%,100%{opacity:.5}50%{opacity:1}}

/* ---------- marquee ---------- */
.marquee{overflow:hidden;border-bottom:1px solid var(--line);background:var(--paper);padding:1rem 0}
.marquee-track{display:flex;gap:2.4rem;align-items:center;white-space:nowrap;width:max-content;
  font-family:var(--font-display);font-style:italic;font-size:1.15rem;color:var(--ink-soft);
  animation:marq 34s linear infinite}
.marquee-track i{font-style:normal;font-size:.5rem;color:var(--red)}
@keyframes marq{to{transform:translateX(-50%)}}

/* ---------- manifesto ---------- */
.manifesto{max-width:920px;margin:0 auto;padding:clamp(4rem,10vw,8rem) 1.4rem}
.manifesto-num{font-family:var(--font-sans);font-size:.7rem;letter-spacing:.3em;text-transform:uppercase;color:var(--red);margin-bottom:1.6rem}
.manifesto-text{font-size:clamp(1.5rem,3.4vw,2.4rem);line-height:1.35;font-weight:300}
.manifesto-text em{color:var(--red);font-style:italic}

/* ---------- sections ---------- */
.section{padding:clamp(3rem,7vw,6rem) clamp(1.2rem,4vw,3rem);border-top:1px solid var(--line)}
.section-head{margin-bottom:clamp(2.5rem,6vw,4.5rem)}
.section-head .kicker{color:var(--red)}
.section-title{font-family:var(--font-display);font-weight:800;font-size:clamp(2.6rem,7.5vw,6rem);line-height:.95}
.section-title em{font-weight:400;font-style:italic;color:var(--red)}
.section-dark{background:var(--dark);color:var(--dark-ink)}
.section-dark .section-title em{color:var(--red)}
.section-dark .feature-deck{color:rgba(242,239,231,.75)}
.section-dark figcaption{color:rgba(242,239,231,.55)}
.section-dark{border-top:0}

/* ---------- features ---------- */
.feature{margin-bottom:clamp(4rem,9vw,7rem)}
.feature:last-child{margin-bottom:0}
.feature-kicker{font-family:var(--font-sans);font-size:.7rem;letter-spacing:.3em;text-transform:uppercase;color:var(--mute);margin-bottom:.8rem}
.section-dark .feature-kicker{color:rgba(242,239,231,.6)}
.feature-title{font-family:var(--font-display);font-weight:800;color:var(--red);font-size:clamp(2.4rem,7vw,5.4rem);line-height:.95;margin-bottom:1rem}
.feature-title em{font-weight:400;font-style:italic;color:currentColor}
.feature-deck{max-width:56ch;font-size:1.05rem;color:var(--ink-soft);margin-bottom:2.2rem}
.feature-head{margin-bottom:1.4rem}

/* grids */
.grid{display:grid;gap:1.1rem}
.grid-testino{grid-template-columns:repeat(3,1fr)}
.grid-testino .tall{grid-row:span 2}
.grid-marin{grid-template-columns:repeat(3,1fr)}

/* ---------- Taqueros slider ---------- */
.slider{max-width:980px;margin:0 auto}
.slider-stage{position:relative;aspect-ratio:3/2;overflow:hidden;cursor:none;background:#000}
.slider-stage .slide{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;
  opacity:0;transform:scale(1.03);transition:opacity .7s var(--ease),transform 1.2s var(--ease)}
.slider-stage .slide.active{opacity:1;transform:scale(1)}
.slider-cursor{position:absolute;top:0;left:0;z-index:5;width:58px;height:58px;border-radius:50%;
  background:var(--red);color:#fff;display:flex;align-items:center;justify-content:center;
  font-family:var(--font-sans);font-size:1.3rem;pointer-events:none;opacity:0;
  transform:translate(-50%,-50%);transition:opacity .25s}
.slider-stage:hover .slider-cursor{opacity:1}
.slider-meta{display:flex;justify-content:space-between;align-items:baseline;padding-top:.7rem;
  font-family:var(--font-sans);font-size:.68rem;letter-spacing:.16em;text-transform:uppercase}
.section-dark .slider-meta{color:rgba(242,239,231,.6)}
.slider-count b{color:var(--red);font-weight:600}
.slider-portrait{max-width:520px;justify-self:center;width:100%}
.slider-portrait .slider-stage{aspect-ratio:4/5}
@media (hover:none){
  .slider-stage{cursor:auto}
  .slider-cursor{display:none}
}
.grid-taqueros{grid-template-columns:repeat(2,1fr)}
@media (max-width:520px){.grid-taqueros{grid-template-columns:1fr}}
.grid-taqueros .ph img{aspect-ratio:3/2}
.feature-split{display:grid;grid-template-columns:1fr 1fr;gap:2.5rem;align-items:center}
.portrait-solo{max-width:480px;justify-self:center}
.ph{overflow:hidden}
.ph img{width:100%;height:100%;object-fit:cover;aspect-ratio:4/5;transition:transform 1.1s var(--ease),filter 1.1s var(--ease)}
.grid-testino .tall img{aspect-ratio:auto;height:100%}
.grid-testino .ph:nth-child(2) img,.grid-testino .ph:nth-child(3) img{aspect-ratio:3/2}
.ph:hover img{transform:scale(1.05)}
figcaption{font-family:var(--font-sans);font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;color:var(--mute);padding-top:.55rem}

/* video */
.video-wrap{max-width:1000px}
.video-frame{position:relative;aspect-ratio:16/9;overflow:hidden;cursor:pointer;background:#000}
.video-frame img{width:100%;height:100%;object-fit:cover;opacity:.85;transition:opacity .4s}
.video-frame:hover img{opacity:1}
.video-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.play-btn{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:84px;height:84px;border-radius:50%;
  background:var(--red);color:#fff;display:flex;align-items:center;justify-content:center;font-size:1.5rem;padding-left:6px;
  transition:transform .35s var(--ease)}
.video-frame:hover .play-btn{transform:translate(-50%,-50%) scale(1.12)}

/* ---------- Gallery modal ---------- */
.gallery-trigger{cursor:pointer;position:relative}
.gallery-trigger .ph{position:relative}
.gallery-trigger .ph::before{
  content:"⤢";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%) scale(.7);
  color:#fff;font-size:1.3rem;z-index:2;opacity:0;text-shadow:0 1px 6px rgba(0,0,0,.6);
  transition:opacity .35s,transform .35s;pointer-events:none}
.gallery-trigger:hover .ph::before{opacity:1;transform:translate(-50%,-50%) scale(1)}
.gallery-trigger .ph:nth-child(2)::before{animation:none}
.gallery-trigger .ph:first-child::before{animation:cuePulse 2.6s ease-in-out infinite}
@keyframes cuePulse{
  0%,100%{opacity:0;transform:translate(-50%,-50%) scale(.65)}
  50%{opacity:.85;transform:translate(-50%,-50%) scale(1)}
}
.gallery-trigger:hover .ph:first-child::before{animation:none;opacity:1;transform:translate(-50%,-50%) scale(1)}
.gallery-hint{font-family:var(--font-sans);font-size:.7rem;letter-spacing:.24em;text-transform:uppercase;color:var(--mute);margin-top:1rem}
.gallery-hint b{color:var(--red);display:inline-block;animation:hintArrow 1.8s ease-in-out infinite}
@keyframes hintArrow{0%,100%{transform:translateX(0)}50%{transform:translateX(4px)}}
.gallery-modal{position:fixed;inset:0;z-index:90;background:rgba(10,9,7,.94);backdrop-filter:blur(6px);
  opacity:0;visibility:hidden;transition:opacity .4s var(--ease),visibility .4s;overflow-y:auto;overscroll-behavior:contain}
.gallery-modal.open{opacity:1;visibility:visible}
.gallery-inner{max-width:1400px;margin:0 auto;padding:clamp(3.5rem,6vw,5rem) clamp(1rem,3vw,2.5rem)}
.gallery-close{position:fixed;top:1.2rem;right:1.4rem;z-index:95;width:48px;height:48px;border-radius:50%;
  border:1px solid rgba(255,255,255,.35);background:transparent;color:#fff;font-size:1.1rem;cursor:pointer;
  transition:background .3s,border-color .3s}
.gallery-close:hover{background:var(--red);border-color:var(--red)}
.gallery-grid{columns:3;column-gap:1rem}
.gallery-grid img{width:100%;margin-bottom:1rem;display:block;break-inside:avoid;
  opacity:0;transform:translateY(16px);transition:opacity .6s var(--ease),transform .6s var(--ease)}
.gallery-modal.open .gallery-grid img{opacity:1;transform:none}
body.modal-open{overflow:hidden}
@media (max-width:860px){.gallery-grid{columns:3;column-gap:.5rem}.gallery-grid img{margin-bottom:.5rem}}


.services{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line)}
.svc{padding:clamp(2.5rem,6vw,4.5rem) clamp(1.2rem,4vw,3rem)}
.svc:first-child{border-right:1px solid var(--line)}
.svc h4{font-family:var(--font-display);font-weight:800;font-size:clamp(1.6rem,3.4vw,2.6rem);color:var(--red);margin-bottom:1.4rem}
.svc ul{list-style:none}
.svc li{padding:.7rem 0;border-bottom:1px solid var(--line);font-size:1.02rem}
.svc li:last-child{border-bottom:0}

/* ---------- about ---------- */
.about{display:grid;grid-template-columns:minmax(260px,420px) 1fr;gap:clamp(2rem,6vw,5rem);align-items:center;
  padding:clamp(3.5rem,8vw,7rem) clamp(1.2rem,4vw,3rem);border-top:1px solid var(--line);background:var(--paper-2)}
.about-photo img{width:100%;filter:grayscale(1)}
.about-text .kicker{color:var(--red)}
.about-body{font-size:clamp(1.15rem,2.2vw,1.55rem);line-height:1.5;margin-bottom:1.4rem;max-width:52ch}

/* ---------- contact ---------- */
.contact{text-align:center;padding:clamp(5rem,12vw,9rem) 1.4rem;border-top:1px solid var(--line)}
.contact .kicker{color:var(--red)}
.contact-mail{display:inline-block;font-family:var(--font-display);font-weight:800;
  font-size:clamp(1.6rem,5.4vw,4.2rem);line-height:1.05;position:relative;margin:1rem 0 2rem}
.contact-mail::after{content:"";position:absolute;left:0;bottom:-6px;width:100%;height:3px;background:var(--red);
  transform:scaleX(0);transform-origin:right;transition:transform .5s var(--ease)}
.contact-mail:hover::after{transform:scaleX(1);transform-origin:left}
.contact-links{font-family:var(--font-sans);font-size:.78rem;letter-spacing:.26em;text-transform:uppercase;display:flex;gap:1.2rem;justify-content:center;color:var(--mute)}
.contact-links a{color:var(--ink);border-bottom:1px solid transparent;transition:border-color .3s}
.contact-links a:hover{border-color:var(--red)}

/* ---------- footer ---------- */
.footer{display:flex;justify-content:space-between;padding:1.4rem clamp(1.2rem,4vw,3rem);border-top:1px solid var(--line);
  font-family:var(--font-sans);font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;color:var(--mute)}

/* ---------- reduced motion: gate only intrusive ---------- */
@media (prefers-reduced-motion:reduce){
  .hero-video{display:none}
  .marquee-track{animation-duration:80s}
}

/* ---------- responsive ---------- */
@media (max-width:860px){
  .nav-links{position:fixed;inset:0;background:var(--paper);flex-direction:column;align-items:center;justify-content:center;
    gap:2.2rem;font-size:1rem;transform:translateY(-100%);transition:transform .5s var(--ease)}
  .nav-links.open{transform:none}
  .nav-links a{color:var(--ink)!important}
  .nav-burger{display:block;z-index:60}
  /* layout intentionally identical to desktop on mobile */
  .grid{gap:.55rem}
  figcaption{font-size:.56rem;letter-spacing:.1em}
}
