:root {
  --red: #c8102e;
  --red-deep: #7f0018;
  --red-bright: #e31b3d;
  --red-soft: #ef6f83;
  --black: #050505;
  --ink: #080808;
  --charcoal: #111111;
  --charcoal-2: #1a1a1a;
  --silver: #b8b8b8;
  --cream: #f6f6f6;
  --line: rgba(255,255,255,.14);
  --pink: var(--red);
  --pink-hot: var(--red);
  --pink-pale: var(--red-soft);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--black);
  color: white;
  font-family: "Montserrat", system-ui, sans-serif;
}
a { color: inherit; }
button, input { font: inherit; }

.hero {
  min-height: 100svh;
  position: relative;
  overflow: hidden;
  display: grid;
  grid-template-rows: auto 1fr auto;
  isolation: isolate;
  background: #050505;
}
.hero__image {
  position: absolute;
  inset: 0;
  z-index: -3;
  background-image: url("assets/valentina-hero.jpg");
  background-size: cover;
  background-position: 61% 45%;
  transform: scale(1.015);
}
.hero__wash {
  position: absolute;
  inset: 0;
  z-index: -2;
  background:
    linear-gradient(90deg, rgba(0,0,0,.93) 0%, rgba(0,0,0,.78) 38%, rgba(0,0,0,.16) 70%, rgba(0,0,0,.42) 100%),
    linear-gradient(0deg, rgba(0,0,0,.82) 0%, transparent 38%),
    radial-gradient(circle at 18% 18%, rgba(200,16,46,.26), transparent 34%);
}
.hero::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  background: linear-gradient(115deg, rgba(200,16,46,.10), transparent 45%);
  mix-blend-mode: screen;
}
.topbar {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  padding: 28px 42px;
  border-bottom: 1px solid var(--line);
  backdrop-filter: blur(5px);
}
.brand {
  text-decoration: none;
  display: inline-flex;
  align-items: baseline;
  gap: 10px;
}
.brand__small,.location,.eyebrow,.quote-card__kicker,.manifesto__label {
  letter-spacing: .22em;
  font-size: .68rem;
  font-weight: 600;
}
.brand__small { color: rgba(255,255,255,.7); }
.brand__name {
  font-family: "Italiana", serif;
  font-size: 2.15rem;
  line-height: .85;
}
.location { opacity: .58; padding-top: 8px; }
.hero__content {
  align-self: center;
  width: min(720px, calc(100% - 84px));
  margin-left: 8vw;
  padding: 70px 0 110px;
}
.eyebrow { color: var(--red-soft); margin: 0 0 22px; }
h1 {
  margin: 0;
  max-width: 760px;
  font-family: "Italiana", serif;
  font-weight: 400;
  font-size: clamp(3.7rem, 7vw, 7.7rem);
  line-height: .88;
  letter-spacing: -.035em;
  text-wrap: balance;
}
h1 em { color: #f04d67; font-weight: 400; }
.lead,.sublead { max-width: 620px; line-height: 1.7; font-size: .98rem; }
.lead { margin: 30px 0 0; color: rgba(255,255,255,.92); }
.sublead { margin: 12px 0 0; color: rgba(255,255,255,.65); }
.actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 30px; }
.button {
  text-decoration: none;
  text-transform: uppercase;
  letter-spacing: .12em;
  font-size: .67rem;
  font-weight: 600;
  padding: 15px 20px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.32);
  transition: .25s ease;
}
.button--primary {
  background: linear-gradient(180deg, #e01b3a 0%, #c8102e 52%, #9d001d 100%);
  border-color: #d21a35;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.18), 0 8px 24px rgba(200,16,46,.18);
}
.button--primary:hover { background: #f5f5f5; border-color: #f5f5f5; color: #090909; box-shadow: none; }
.button--ghost:hover { background: rgba(255,255,255,.08); border-color: rgba(255,255,255,.5); }
.quote-card {
  position: absolute;
  right: 36px;
  bottom: 34px;
  width: min(360px, calc(100% - 72px));
  padding: 22px 24px;
  border: 1px solid var(--line);
  background: rgba(0,0,0,.42);
  backdrop-filter: blur(14px);
}
.quote-card__kicker { color: var(--red-soft); }
.quote-card p { margin: 10px 0 0; font-family: "Italiana", serif; font-size: 1.55rem; line-height: 1.12; }
.scroll-cue { position: absolute; left: 42px; bottom: 33px; height: 54px; width: 1px; background: rgba(255,255,255,.18); overflow: hidden; }
.scroll-cue span { display: block; width: 100%; height: 45%; background: var(--red); animation: descend 1.8s infinite ease-in-out; }
@keyframes descend { 0% { transform: translateY(-130%); } 100% { transform: translateY(260%); } }

.manifesto {
  position: relative;
  overflow: hidden;
  background: linear-gradient(120deg, #070707 0%, #101010 58%, #19070b 100%);
  color: #f4f4f4;
  padding: 86px 8vw 100px;
  border-top: 1px solid rgba(255,255,255,.07);
  border-bottom: 1px solid rgba(255,255,255,.07);
}
.manifesto::before { content:""; position:absolute; top:0; left:0; width:5px; height:100%; background:linear-gradient(180deg,#ef3340,#8e001a); }
.manifesto::after { content:""; position:absolute; width:520px; height:520px; right:-250px; top:-230px; border-radius:50%; background:radial-gradient(circle,rgba(200,16,46,.18),transparent 68%); pointer-events:none; }
.manifesto__label { margin-bottom: 34px; color: var(--red-soft); opacity: .85; }
.manifesto__grid { position:relative; z-index:1; display:grid; grid-template-columns:minmax(0,1.1fr) minmax(280px,.9fr); gap:8vw; align-items:start; }
.manifesto h2 { font-family:"Italiana",serif; font-weight:400; font-size:clamp(3rem,5.3vw,6.2rem); line-height:.92; letter-spacing:-.025em; margin:0; }
.manifesto__copy { max-width:560px; padding-top:5px; }
.manifesto__copy p { margin:0 0 18px; line-height:1.8; font-size:1rem; color:rgba(255,255,255,.68); }

.services {
  position: relative;
  overflow: hidden;
  background: linear-gradient(145deg,#070707 0%,#111 64%,#18070b 100%);
  color: #f2f2f2;
  padding: 92px 8vw 104px;
  border-bottom: 1px solid rgba(255,255,255,.07);
}
.services::before { content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(200,16,46,.10),transparent 28%); pointer-events:none; }
.services::after { content:""; position:absolute; width:500px; height:500px; left:-220px; bottom:-280px; border-radius:50%; background:radial-gradient(circle,rgba(200,16,46,.20),transparent 68%); pointer-events:none; }
.services__inner { position:relative; z-index:1; display:grid; grid-template-columns:minmax(0,.78fr) minmax(360px,1.22fr); gap:8vw; align-items:start; max-width:1250px; margin:0 auto; }
.services__eyebrow { margin:0 0 24px; letter-spacing:.22em; font-size:.68rem; font-weight:600; color:var(--red-soft); }
.services h2 { margin:0; font-family:"Italiana",serif; font-weight:400; font-size:clamp(3.2rem,5.6vw,6.4rem); line-height:.9; letter-spacing:-.03em; }
.services h2 em { color:#ef3340; font-weight:400; }
.services__intro > p:last-child { max-width:500px; margin:28px 0 0; line-height:1.75; color:rgba(255,255,255,.62); }
.services__list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); border-top:1px solid rgba(255,255,255,.13); border-left:1px solid rgba(255,255,255,.13); }
.services__list > span { min-height:74px; display:flex; align-items:center; padding:18px 20px; border-right:1px solid rgba(255,255,255,.13); border-bottom:1px solid rgba(255,255,255,.13); font-size:.78rem; line-height:1.45; text-transform:uppercase; letter-spacing:.09em; background:rgba(255,255,255,.035); transition:background .2s ease; }
.services__list > span:nth-child(4n+2),.services__list > span:nth-child(4n+3) { background:rgba(200,16,46,.075); }
.services__list > span:hover { background:rgba(200,16,46,.13); }
.service-tooltip { position:relative; }
.service-tooltip__trigger { width:100%; display:flex; align-items:center; justify-content:flex-start; gap:9px; padding:0; border:0; background:transparent; color:inherit; font:inherit; line-height:inherit; letter-spacing:inherit; text-transform:inherit; text-align:left; cursor:help; }
.service-tooltip__trigger:focus-visible { outline:2px solid rgba(239,51,64,.7); outline-offset:5px; }
.service-tooltip__hint { display:inline-grid; place-items:center; width:18px; height:18px; flex:0 0 auto; border:1px solid rgba(239,111,131,.55); border-radius:50%; font-size:.62rem; line-height:1; letter-spacing:0; opacity:.8; }
.service-tooltip__box { position:fixed; z-index:1000; left:0; top:0; width:min(430px,calc(100vw - 24px)); display:block; padding:20px 48px 18px 20px; border:1px solid rgba(255,255,255,.13); background:#0b0b0b; color:rgba(255,255,255,.88); box-shadow:0 18px 45px rgba(0,0,0,.6),0 0 0 1px rgba(200,16,46,.12); font-size:.78rem; font-weight:400; line-height:1.62; letter-spacing:.01em; text-transform:none; text-align:left; opacity:0; visibility:hidden; pointer-events:none; transform:translateY(7px); transition:opacity .18s ease,transform .18s ease,visibility .18s ease; }
.service-tooltip__box::after { content:""; position:absolute; left:var(--arrow-left,50%); bottom:100%; width:12px; height:12px; background:#0b0b0b; border-left:1px solid rgba(255,255,255,.13); border-top:1px solid rgba(255,255,255,.13); transform:translate(-50%,6px) rotate(45deg); }
.service-tooltip__box.opens-up::after { top:100%; bottom:auto; border-left:0; border-top:0; border-right:1px solid rgba(255,255,255,.13); border-bottom:1px solid rgba(255,255,255,.13); transform:translate(-50%,-6px) rotate(45deg); }
.service-tooltip.is-open .service-tooltip__box { opacity:1; visibility:visible; pointer-events:auto; transform:translateY(0); }
.service-tooltip__close { position:absolute; top:9px; right:11px; width:30px; height:30px; display:grid; place-items:center; padding:0; border:0; background:transparent; color:rgba(255,255,255,.7); font-family:Arial,sans-serif; font-size:1.35rem; line-height:1; cursor:pointer; }
.service-tooltip__close:hover,.service-tooltip__close:focus-visible { color:#fff; }
.service-tooltip__close:focus-visible { outline:1px solid rgba(255,255,255,.6); outline-offset:2px; }
.service-tooltip__text { display:block; }
.service-tooltip__source { display:block; margin-top:11px; padding-top:9px; border-top:1px solid rgba(255,255,255,.11); color:rgba(255,255,255,.42); font-size:.62rem; line-height:1.4; letter-spacing:.08em; text-transform:uppercase; }

.gallery { position:relative; overflow:hidden; background:linear-gradient(145deg,#040404 0%,#0c0c0c 62%,#18070b 100%); padding:100px 8vw 110px; }
.gallery::before { content:""; position:absolute; width:560px; height:560px; left:-250px; bottom:-300px; border-radius:50%; background:radial-gradient(circle,rgba(200,16,46,.18),transparent 68%); pointer-events:none; }
.gallery__inner { position:relative; max-width:1250px; margin:0 auto; }
.gallery__intro { display:grid; grid-template-columns:minmax(0,.8fr) minmax(260px,.7fr); column-gap:9vw; align-items:end; margin-bottom:42px; }
.gallery__eyebrow { grid-column:1/-1; margin:0 0 24px; color:var(--red-soft); letter-spacing:.22em; font-size:.68rem; font-weight:600; }
.gallery h2 { margin:0; font-family:"Italiana",serif; font-weight:400; font-size:clamp(3.2rem,5.6vw,6.4rem); line-height:.9; letter-spacing:-.03em; }
.gallery h2 em { color:#ef3340; font-weight:400; }
.gallery__intro > p:last-child { margin:0 0 5px; max-width:440px; color:rgba(255,255,255,.58); line-height:1.75; }
.gallery__grid { display:grid; grid-template-columns:1.35fr .8fr; grid-template-rows:260px 260px; gap:14px; }
.gallery__item { position:relative; overflow:hidden; border:1px solid rgba(255,255,255,.12); padding:0; background:#0b0b0b; cursor:zoom-in; }
.gallery__item::after { content:"VIEW"; position:absolute; right:16px; bottom:14px; padding:8px 10px; border:1px solid rgba(255,255,255,.22); background:rgba(0,0,0,.48); backdrop-filter:blur(8px); color:rgba(255,255,255,.78); font-size:.55rem; font-family:"Montserrat",sans-serif; letter-spacing:.18em; transition:.25s ease; }
.gallery__item img { width:100%; height:100%; display:block; object-fit:cover; transition:transform .55s cubic-bezier(.2,.65,.25,1),filter .35s ease; }
.gallery__item:hover img { transform:scale(1.035); filter:brightness(1.05); }
.gallery__item:hover::after { background:rgba(200,16,46,.92); border-color:transparent; color:white; }
.gallery__item--full { grid-row:1/3; }
.gallery__item--full img { object-position:53% 48%; }
.gallery__item--portrait img { object-position:50% 48%; }
.gallery__item--detail img { object-position:50% 58%; }
.gallery__strip { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:12px; margin-top:14px; }
.gallery__thumb { position:relative; overflow:hidden; padding:0; border:1px solid rgba(255,255,255,.12); background:#0b0b0b; cursor:zoom-in; aspect-ratio:1/1; }
.gallery__thumb::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,transparent 50%,rgba(0,0,0,.22) 100%); opacity:0; transition:opacity .22s ease; }
.gallery__thumb:hover::after { opacity:1; }
.gallery__thumb img { width:100%; height:100%; display:block; object-fit:cover; transition:transform .45s ease,filter .3s ease; }
.gallery__thumb:hover img { transform:scale(1.04); filter:brightness(1.05); }
.gallery__thumb:focus-visible,.gallery__item:focus-visible,.gallery-lightbox__nav:focus-visible,.gallery-lightbox__close:focus-visible { outline:2px solid rgba(255,255,255,.72); outline-offset:3px; }
.gallery-lightbox { position:fixed; inset:0; z-index:1000; display:grid; place-items:center; padding:34px; background:rgba(0,0,0,.95); backdrop-filter:blur(10px); opacity:0; visibility:hidden; transition:opacity .22s ease,visibility .22s ease; }
.gallery-lightbox.is-open { opacity:1; visibility:visible; }
.gallery-lightbox img { max-width:min(900px,92vw); max-height:84vh; width:auto; height:auto; object-fit:contain; box-shadow:0 24px 80px rgba(0,0,0,.65); }
.gallery-lightbox__figure { margin:0; display:grid; gap:16px; justify-items:center; }
.gallery-lightbox__meta { width:min(900px,92vw); display:flex; justify-content:space-between; gap:18px; color:rgba(255,255,255,.72); font-size:.66rem; text-transform:uppercase; letter-spacing:.18em; }
.gallery-lightbox__close { position:fixed; top:22px; right:24px; z-index:2; width:42px; height:42px; border-radius:50%; border:1px solid rgba(255,255,255,.28); background:rgba(255,255,255,.06); color:white; font:300 1.5rem/1 sans-serif; cursor:pointer; }
.gallery-lightbox__nav { position:fixed; top:50%; transform:translateY(-50%); z-index:2; width:52px; height:52px; border-radius:50%; border:1px solid rgba(255,255,255,.22); background:rgba(255,255,255,.06); color:white; font:300 2rem/1 sans-serif; cursor:pointer; }
.gallery-lightbox__nav--prev { left:24px; }
.gallery-lightbox__nav--next { right:24px; }
.gallery-lightbox__nav:hover,.gallery-lightbox__close:hover { background:rgba(200,16,46,.32); border-color:rgba(239,111,131,.55); }
body.gallery-open { overflow:hidden; }

.radar { position:relative; overflow:hidden; background:#070707; padding:100px 8vw 110px; border-top:1px solid rgba(255,255,255,.06); }
.radar::before { content:""; position:absolute; width:520px; height:520px; right:-180px; top:-220px; border-radius:50%; background:radial-gradient(circle,rgba(200,16,46,.18),transparent 68%); pointer-events:none; }
.radar__inner { position:relative; display:grid; grid-template-columns:minmax(0,.9fr) minmax(320px,.75fr); gap:10vw; align-items:end; max-width:1250px; margin:0 auto; }
.radar__eyebrow { margin:0 0 24px; color:var(--red-soft); letter-spacing:.22em; font-size:.68rem; font-weight:600; }
.radar h2 { margin:0; font-family:"Italiana",serif; font-weight:400; font-size:clamp(3.3rem,6vw,6.8rem); line-height:.9; letter-spacing:-.03em; }
.radar h2 em { color:var(--red-bright); font-weight:400; }
.radar__intro > p:last-child { max-width:560px; margin:28px 0 0; color:rgba(255,255,255,.62); line-height:1.75; }
.radar__intro a { color:#ef8b9a; }
.radar__form { padding:34px; border:1px solid rgba(255,255,255,.12); background:rgba(255,255,255,.025); backdrop-filter:blur(10px); box-shadow:0 24px 80px rgba(0,0,0,.25); }
.field { display:grid; gap:10px; margin-bottom:24px; }
.field--split { grid-template-columns:1fr 1fr; gap:18px; }
.field--split > div { display:grid; gap:10px; }
.field label { text-transform:uppercase; letter-spacing:.18em; font-size:.62rem; font-weight:600; color:var(--red-soft); }
.field input { width:100%; color-scheme:dark; border:0; border-bottom:1px solid rgba(255,255,255,.24); border-radius:0; padding:14px 0 15px; background:transparent; color:white; font:inherit; font-size:1rem; outline:none; transition:border-color .2s ease; }
.field input::placeholder { color:rgba(255,255,255,.28); }
.field input:focus { border-bottom-color:var(--red); }
.radar__direct { margin:2px 0 0; color:rgba(255,255,255,.48); font-size:.74rem; line-height:1.5; }
.radar__direct a { color:#ef8b9a; text-decoration:none; border-bottom:1px solid rgba(239,111,131,.35); }
.radar__direct a:hover { border-bottom-color:#ef8b9a; }
.radar__submit { width:100%; margin-top:24px; border:1px solid #d21a35; border-radius:999px; padding:16px 22px; background:linear-gradient(180deg,#e01b3a 0%,#c8102e 52%,#9d001d 100%); color:white; text-transform:uppercase; letter-spacing:.14em; font:inherit; font-size:.66rem; font-weight:600; cursor:pointer; transition:.25s ease; box-shadow:inset 0 1px 0 rgba(255,255,255,.18),0 8px 24px rgba(200,16,46,.18); }
.radar__submit:hover { background:#f5f5f5; border-color:#f5f5f5; color:#090909; box-shadow:none; }
footer { display:flex; justify-content:space-between; gap:20px; background:#030303; color:rgba(255,255,255,.42); padding:22px 8vw; text-transform:uppercase; letter-spacing:.14em; font-size:.58rem; border-top:1px solid rgba(255,255,255,.08); }

@media (max-width: 900px) { .gallery__strip { grid-template-columns:repeat(4,minmax(0,1fr)); } }
@media (max-width: 760px) {
  .hero { min-height:100svh; }
  .hero__image { background-position:65% 50%; }
  .hero__wash { background:linear-gradient(0deg,rgba(0,0,0,.94) 0%,rgba(0,0,0,.68) 54%,rgba(0,0,0,.18) 100%),radial-gradient(circle at 20% 20%,rgba(200,16,46,.22),transparent 42%); }
  .topbar { padding:21px 20px; }
  .location { display:none; }
  .hero__content { width:calc(100% - 40px); margin:auto 20px 0; padding:46vh 0 152px; }
  h1 { font-size:clamp(3.25rem,15vw,5.5rem); }
  .lead,.sublead { font-size:.88rem; line-height:1.62; }
  .quote-card { left:20px; right:auto; bottom:24px; width:calc(100% - 40px); }
  .scroll-cue { display:none; }
  .manifesto { padding:64px 20px 72px; }
  .manifesto__grid { grid-template-columns:1fr; gap:34px; }
  .services { padding:68px 20px 76px; }
  .services__inner { grid-template-columns:1fr; gap:40px; }
  .services__list { grid-template-columns:1fr; }
  .services__list > span:nth-child(odd) { background:rgba(255,255,255,.035); }
  .services__list > span:nth-child(even) { background:rgba(200,16,46,.075); }
  .gallery { padding:78px 20px 84px; }
  .gallery__intro { grid-template-columns:1fr; row-gap:22px; margin-bottom:30px; }
  .gallery__eyebrow { margin-bottom:0; }
  .gallery__grid { grid-template-columns:1fr 1fr; grid-template-rows:430px 180px; gap:10px; }
  .gallery__item--full { grid-column:1/-1; grid-row:1; }
  .gallery__item--portrait,.gallery__item--detail { grid-row:2; }
  .gallery__strip { grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; margin-top:10px; }
  .gallery-lightbox { padding:18px; }
  .gallery-lightbox__nav { width:44px; height:44px; font-size:1.65rem; top:auto; bottom:24px; transform:none; }
  .gallery-lightbox__nav--prev { left:18px; }
  .gallery-lightbox__nav--next { right:18px; }
  .gallery-lightbox__meta { width:min(92vw,620px); font-size:.58rem; letter-spacing:.14em; }
  .radar { padding:68px 20px 76px; }
  .radar__inner { grid-template-columns:1fr; gap:42px; }
  .radar__form { padding:26px 22px; }
  .field--split { grid-template-columns:1fr; }
  footer { padding:20px; flex-direction:column; }
}
@media (max-width:430px) {
  .gallery__grid { grid-template-rows:390px 150px; }
  .gallery__strip { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
