:root {
  --bg: #171717;
  --bg2: #1e1e1e;
  --text: #f2f0eb;
  --muted: #a3a3a3;
  --dim: #6f6f6f;
  --red: #e10600;
  --blue: #2d5f95;
  --gold: #d1ae63;
  --line: rgba(242,240,235,.14);
  --pad: clamp(24px, 6vw, 116px);
  --ease: cubic-bezier(.22,1,.36,1);
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--bg);
  color: var(--text);
  font-family: "Instrument Sans", Arial, sans-serif;
  font-feature-settings: "kern" 1;
  overflow-x: hidden;
}
a { color: inherit; text-decoration: none; }

.skip-link {
  position: fixed;
  z-index: 200;
  left: 18px;
  top: 12px;
  padding: 10px 14px;
  background: var(--text);
  color: var(--bg);
  font-size: 13px;
  font-weight: 600;
  transform: translateY(-160%);
  transition: transform .2s ease;
}
.skip-link:focus { transform: translateY(0); }
a:focus-visible {
  outline: 2px solid var(--red);
  outline-offset: 5px;
}
img { display: block; max-width: 100%; }
::selection { background: var(--red); color: white; }
.progress { position: fixed; inset: 0 0 auto 0; height: 2px; z-index: 100; background: transparent; }
.progress span { display:block; width:100%; height:100%; transform-origin:left; transform:scaleX(0); background:var(--red); }
.site-header {
  position: fixed; z-index: 50; top:0; left:0; right:0;
  display:flex; align-items:center; justify-content:space-between;
  padding: 24px var(--pad);
  background: linear-gradient(to bottom, rgba(23,23,23,.92), rgba(23,23,23,0));
  pointer-events:none;
}
.site-header > * { pointer-events:auto; }
.brand img { width: 118px; height:auto; }
.site-header nav { display:flex; gap:32px; }

.header-actions { display:flex; align-items:center; gap:30px; }
.lang-switch {
  display:flex;
  align-items:center;
  gap:7px;
  font-size:10px;
  line-height:1;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--dim);
  white-space:nowrap;
}
.lang-switch a { color:var(--muted); transition:color .3s ease; }
.lang-switch a:hover { color:var(--text); }
.lang-switch .current { color:var(--text); font-weight:600; }
.lang-divider { color:var(--dim); }
.site-header nav a { text-transform:uppercase; letter-spacing:.18em; font-size:12px; color:var(--muted); transition:.3s ease; }
.site-header nav a:hover { color:var(--text); }

.hero { min-height: 100svh; padding: 18vh var(--pad) 150px; display:flex; flex-direction:column; justify-content:center; position:relative; }
.hero-title { margin:0; max-width: 1560px; font-size: clamp(54px, 6.9vw, 132px); line-height:.91; font-weight:500; letter-spacing:-.055em; }
.hero-title span { display:block; opacity:0; transform:translateY(48px); animation: heroIn 1s var(--ease) forwards; }
.hero-title span:nth-child(2){ animation-delay:.12s; }
.hero-title span:nth-child(3){ animation-delay:.24s; }
@keyframes heroIn { to { opacity:1; transform:none; } }
.hero-accent { position:absolute; left:calc(var(--pad) - 24px); top:46%; width:4px; height:76px; background:var(--red); transform:scaleY(0); transform-origin:bottom; animation:accentIn .8s .35s var(--ease) forwards; }
@keyframes accentIn { to{transform:scaleY(1);} }
.hero-foot { position:absolute; left:var(--pad); right:var(--pad); bottom:34px; border-top:1px solid var(--line); padding-top:20px; display:flex; justify-content:space-between; color:var(--muted); text-transform:uppercase; font-size:12px; letter-spacing:.16em; }
.hero-foot b { color:var(--red); }

.selected-intro { min-height:60vh; padding: 18vh var(--pad); display:flex; justify-content:space-between; align-items:flex-end; border-top:1px solid var(--line); }
.eyebrow { text-transform:uppercase; letter-spacing:.22em; font-size:12px; color:var(--muted); }
.eyebrow.blue { color:#5b8cc2; }
.eyebrow.gold { color:var(--gold); }
.eyebrow.red { color:#e14b47; }
.selected-intro .eyebrow { font-size:clamp(18px,2.2vw,34px); color:var(--text); }
.selected-number { font-size:clamp(50px,8vw,130px); letter-spacing:-.05em; color:#2b2b2b; }

.project { padding: 8vh var(--pad) 16vh; position:relative; }
.project + .project, .more-work, .playground, .services, .about, .contact { border-top:1px solid var(--line); }
.project-header { margin-bottom: 10vh; }
.project-index { color:var(--red); font-size:13px; letter-spacing:.2em; margin-bottom:18px; }
.project-header h2 { margin:0; font-size:clamp(68px,10vw,172px); line-height:.86; letter-spacing:-.065em; font-weight:500; text-transform:uppercase; }
.project-header p { margin:24px 0 0; color:var(--muted); font-size:clamp(17px,1.5vw,24px); text-transform:uppercase; letter-spacing:.12em; }

.soro-intro { display:grid; grid-template-columns: 4fr 8fr; gap:6vw; align-items:start; margin-bottom:12vh; }
.soro-intro p { max-width:520px; font-size:clamp(18px,1.6vw,24px); line-height:1.5; color:var(--muted); }
.soro-intro img { width:100%; }
.tags { display:flex; flex-wrap:wrap; gap:12px 22px; margin-top:32px; }
.tags span { color:var(--dim); text-transform:uppercase; letter-spacing:.14em; font-size:11px; }
.soro-scroll { height:205vh; position:relative; }
.soro-pin { position:sticky; top:12vh; height:76vh; display:grid; grid-template-columns:4fr 8fr; gap:6vw; align-items:center; }
.soro-steps { display:flex; flex-direction:column; gap:28px; }
.soro-step { opacity:.2; transition:.6s var(--ease); max-width:390px; }
.soro-step.active { opacity:1; transform:translateX(10px); }
.soro-step span { color:#5b8cc2; font-size:11px; letter-spacing:.18em; }
.soro-step strong { display:block; text-transform:uppercase; letter-spacing:.18em; font-size:12px; margin:6px 0 8px; }
.soro-step p { color:var(--muted); line-height:1.45; margin:0; }
.soro-window { margin:0; height:100%; overflow:hidden; background:#ece9e4; position:relative; }
.soro-window img { position:absolute; inset:0; width:100%; height:100%; object-fit:contain; transform:scale(1.35) translate(8%,5%); transition: transform .85s var(--ease); will-change:transform; }
.statement { margin: 12vh 0 18vh; max-width:1200px; font-size:clamp(48px,7vw,118px); line-height:.95; letter-spacing:-.055em; font-weight:400; }
.identity-applied { display:grid; grid-template-columns:3fr 9fr; gap:6vw; align-items:start; }
.identity-copy p { color:var(--muted); line-height:1.55; font-size:18px; max-width:420px; }
dl { margin-top:60px; display:grid; gap:24px; }
dl div { border-top:1px solid var(--line); padding-top:14px; }
dt { color:var(--dim); text-transform:uppercase; letter-spacing:.16em; font-size:10px; }
dd { margin:6px 0 0; }
.identity-images { min-height:70vh; position:relative; }
.identity-card { width:70%; }
.identity-envelope { width:40%; position:absolute; right:0; bottom:0; }

.project-miroel { overflow:hidden; }
.miroel-lead { display:grid; grid-template-columns:3fr 9fr; gap:6vw; align-items:center; margin-bottom:13vh; }
.miroel-copy p { color:var(--muted); font-size:20px; line-height:1.55; }
.miroel-lead figure { margin:0; position:relative; }
.miroel-lead figure:after { content:""; position:absolute; inset:auto -5% -6% 18%; height:18%; background:rgba(209,174,99,.12); z-index:-1; }
.miroel-content-static { display:grid; grid-template-columns:4fr 8fr; gap:5vw; align-items:center; margin:0 0 10vh; }
.miroel-static-copy { max-width:520px; }
.miroel-static-copy h3, .miroel-human h3, .dose-lead h3 { font-size:clamp(38px,4.5vw,76px); line-height:.98; letter-spacing:-.045em; font-weight:500; margin:18px 0; }
.miroel-static-copy p, .human-copy p, .dose-lead p { color:var(--muted); font-size:18px; line-height:1.55; }
.miroel-static-gallery { display:grid; grid-template-columns:minmax(0, 1.18fr) minmax(260px, .82fr); grid-template-rows:auto auto; gap:24px; align-items:start; }
.miroel-piece { margin:0; position:relative; transition:transform .65s var(--ease), filter .65s ease; }
.miroel-piece img { width:100%; display:block; box-shadow:0 30px 80px rgba(0,0,0,.24); }
.miroel-piece-a { grid-column:1; grid-row:1 / span 2; align-self:stretch; }
.miroel-piece-b { grid-column:2; grid-row:1; width:92%; justify-self:end; }
.miroel-piece-c { grid-column:2; grid-row:2; width:100%; margin-top:-12px; }
.miroel-piece:hover { transform:translateY(-8px) scale(1.012); filter:brightness(1.03); z-index:4; }
.miroel-human { display:grid; grid-template-columns:4fr 3fr 4fr; gap:4vw; align-items:center; min-height:82vh; }
.miroel-human .flyer { transform:rotate(2deg); }
.miroel-human .portrait { align-self:end; }

.hahns-grid { display:grid; grid-template-columns:repeat(12,1fr); gap:22px; align-items:start; }
.hahns-grid figure { margin:0; position:relative; overflow:visible; background:transparent; }
.hahns-grid figure span { display:block; margin-bottom:10px; color:var(--dim); text-transform:uppercase; letter-spacing:.14em; font-size:10px; }
.hahns-a { grid-column:1 / span 4; grid-row:1; }
.hahns-b { grid-column:5 / span 4; grid-row:1; margin-top:4vh !important; }
.hahns-c { grid-column:9 / span 4; grid-row:1; margin-top:1vh !important; }
.hahns-d { grid-column:3 / span 4; grid-row:2; margin-top:2vh !important; }
.hahns-e { grid-column:7 / span 4; grid-row:2; margin-top:-1vh !important; }
.hahns-grid img { width:100%; height:auto; object-fit:contain; transition:transform .7s var(--ease); }
.hahns-grid figure:hover img { transform:scale(1.025); }

.dose-lead { display:grid; grid-template-columns:7fr 5fr; gap:7vw; align-items:center; }
.dose-lead img { width:100%; }
.dose-pages { min-height:115vh; margin-top:14vh; position:relative; overflow:hidden; }
.dose-word { position:absolute; font-size:clamp(72px,12vw,210px); font-weight:600; letter-spacing:-.07em; color:#252525; white-space:nowrap; z-index:0; }
.word-1 { top:3%; left:-2%; }
.word-2 { top:38%; right:-2%; }
.word-3 { bottom:1%; left:5%; }
.page { position:absolute; width:32%; z-index:1; box-shadow:0 30px 100px rgba(0,0,0,.35); transition:transform .9s var(--ease); }
.p1 { left:8%; top:15%; transform:rotate(-5deg); }
.p2 { left:35%; top:7%; transform:rotate(3deg); }
.p3 { right:8%; top:22%; transform:rotate(-2deg); }
.dose-pages.is-visible .p1 { transform:translateY(20px) rotate(-3deg); }
.dose-pages.is-visible .p2 { transform:translateY(-15px) rotate(1deg); }
.dose-pages.is-visible .p3 { transform:translateY(30px) rotate(1deg); }

.more-work, .playground, .services, .about, .contact { padding:14vh var(--pad); }
.section-header { margin-bottom:10vh; }
.section-header h2 { font-size:clamp(64px,9vw,150px); letter-spacing:-.06em; line-height:.9; font-weight:500; margin:20px 0; }
.section-header p { color:var(--muted); max-width:620px; font-size:20px; }
.more-grid { display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:28px; align-items:start; max-width:980px; margin:0 auto; }
.more-card { position:relative; overflow:hidden; display:block; width:100%; max-width:440px; justify-self:center; }
.more-card.big { grid-column:1 / -1; justify-self:center; max-width:min(58vw,680px); }
.more-card img { width:100%; transition:transform .7s var(--ease), filter .7s ease; }
.more-card:hover img { transform:scale(1.035); filter:brightness(.9); }
.more-card div { position:absolute; left:18px; right:18px; bottom:18px; display:flex; justify-content:space-between; align-items:end; padding:14px 16px; background:rgba(23,23,23,.82); }
.more-card span { color:var(--muted); text-transform:uppercase; letter-spacing:.14em; font-size:10px; }
.more-card strong { font-size:18px; }
.play-grid { display:grid; grid-template-columns:repeat(12,1fr); gap:34px; }
.play-card { margin:0; grid-column:span 5; }
.play-card.offset { grid-column:7 / span 5; margin-top:16vh; }
.play-card img { width:100%; }
.play-card figcaption { color:var(--dim); text-transform:uppercase; letter-spacing:.15em; font-size:10px; margin-top:12px; }

.services { background:linear-gradient(180deg, rgba(255,255,255,.012), transparent 26%); }
.services-header { display:grid; grid-template-columns:4fr 8fr; gap:4vw; align-items:start; margin-bottom:8vh; }
.services-header .eyebrow { grid-column:1; padding-top:10px; }
.services-header h2 { grid-column:2; margin:0; font-size:clamp(58px,7.2vw,120px); line-height:.92; letter-spacing:-.055em; font-weight:500; max-width:1100px; }
.services-header p { grid-column:2; margin:26px 0 0; color:var(--muted); max-width:720px; font-size:19px; line-height:1.58; }
.services-list { border-top:1px solid var(--line); }
.service-row { display:grid; grid-template-columns:1fr 4fr 7fr; gap:2vw; align-items:start; padding:32px 0 34px; border-bottom:1px solid var(--line); transition:transform .35s var(--ease), background .35s ease; }
.service-row:hover { transform:translateX(8px); }
.service-number { color:var(--dim); letter-spacing:.18em; font-size:11px; padding-top:8px; transition:color .35s ease; }
.service-row:hover .service-number { color:var(--red); }
.service-row h3 { margin:0; font-size:clamp(25px,2.6vw,44px); line-height:1.05; letter-spacing:-.035em; font-weight:500; }
.service-row p { margin:4px 0 0; color:var(--muted); font-size:17px; line-height:1.55; max-width:740px; }

.about { display:grid; grid-template-columns:minmax(320px, 4.5fr) 7.5fr; gap:4vw; align-items:start; min-height:auto; padding-bottom:8vh; }
.about-image { max-width:540px; justify-self:start; }
.about-image img { width:100%; }
.about-copy { max-width:980px; padding-top:2vh; }
.about-copy h2 { font-size:clamp(42px,4.8vw,84px); line-height:.98; letter-spacing:-.055em; font-weight:500; margin:18px 0 24px; }
.about-copy > p { color:var(--muted); max-width:760px; font-size:19px; line-height:1.58; }
.experience { border-top:1px solid var(--line); margin-top:28px; padding-top:18px; display:flex; align-items:flex-end; gap:28px; }
.experience strong { font-size:clamp(76px,9vw,150px); letter-spacing:-.07em; line-height:.7; }
.experience strong span { color:var(--red); }
.experience p { margin:0; color:var(--muted); }
.studio-note { font-size:14px !important; text-transform:uppercase; letter-spacing:.12em; color:var(--dim) !important; margin-top:26px; }

.contact { min-height:100vh; display:flex; flex-direction:column; justify-content:center; }
.contact h2 { font-size:clamp(64px,9vw,150px); letter-spacing:-.06em; line-height:.92; font-weight:500; margin:8vh 0 4vh; }
.contact-cta { width:max-content; font-size:clamp(34px,4.5vw,72px); font-weight:600; border-bottom:1px solid var(--line); padding-bottom:10px; }
.contact-cta span { color:var(--red); display:inline-block; transition:.3s var(--ease); }
.contact-cta:hover span { transform:translate(5px,-5px); }
.contact-grid { border-top:1px solid var(--line); border-bottom:1px solid var(--line); margin-top:12vh; padding:34px 0; display:grid; grid-template-columns:repeat(3,1fr); gap:30px; }
.contact-grid div { display:flex; flex-direction:column; gap:14px; }
.contact-grid span { color:var(--muted); text-transform:uppercase; letter-spacing:.18em; font-size:11px; }
.contact-grid a, .contact-grid strong { font-size:20px; font-weight:500; }
.contact footer { display:flex; justify-content:space-between; align-items:center; padding-top:36px; color:var(--dim); font-size:12px; text-transform:uppercase; letter-spacing:.14em; }
.contact footer img { width:70px; }

.reveal { opacity:0; transform:translateY(44px); transition: opacity .9s var(--ease), transform .9s var(--ease); }
.reveal.is-visible { opacity:1; transform:none; }

@media (max-width: 980px) {
  .site-header { padding-top:18px; }
  .brand img { width:90px; }
  .site-header nav { gap:18px; }
  .header-actions { gap:18px; }
  .site-header nav a { font-size:10px; }
  .hero { padding-top:16vh; }
  .hero-title { font-size:clamp(48px,10vw,82px); }
  .soro-intro, .identity-applied, .miroel-lead, .miroel-content-static, .dose-lead, .about { grid-template-columns:1fr; }
  .soro-scroll { height:auto; }
  .soro-pin { position:relative; top:auto; height:auto; grid-template-columns:1fr; }
  .soro-steps { margin-bottom:30px; }
  .soro-step { opacity:1; transform:none !important; }
  .soro-window { height:auto; }
  .soro-window img { position:relative; height:auto; transform:none !important; }
  .identity-images { min-height:auto; display:grid; grid-template-columns:2fr 1fr; align-items:end; gap:20px; }
  .identity-card, .identity-envelope { width:100%; position:relative; right:auto; bottom:auto; }
  .miroel-content-static { gap:44px; margin-bottom:7vh; }
  .miroel-static-copy { max-width:760px; }
  .miroel-static-gallery { grid-template-columns:minmax(0, 1.1fr) minmax(240px, .8fr); max-height:none; }
  .miroel-piece-b { width:100%; justify-self:stretch; }
  .miroel-piece-c { width:100%; margin-top:0; }
  .miroel-human { grid-template-columns:1fr 1fr; }
  .human-copy { grid-column:1 / -1; }
  .hahns-a { grid-column:1 / span 7; }
  .hahns-b { grid-column:7 / span 6; }
  .hahns-c { grid-column:1 / span 6; }
  .hahns-d { grid-column:7 / span 5; }
  .hahns-e { grid-column:3 / span 5; }
  .dose-pages { min-height:85vh; }
  .page { width:42%; }
  .more-grid { grid-template-columns:1fr 1fr; max-width:820px; }
  .more-card.big { grid-column:1 / -1; max-width:600px; }
  .services-header { grid-template-columns:1fr; gap:28px; }
  .services-header .eyebrow, .services-header h2, .services-header p { grid-column:1; }
  .service-row { grid-template-columns:70px 1fr 1.5fr; gap:20px; }
  .play-card, .play-card.offset { grid-column:span 6; margin-top:0; }
}

@media (max-width: 640px) {
  :root { --pad: 22px; }

  /* Mobile header: the logo belongs to the opening, not to every section. */
  .site-header { position:absolute; padding-top:18px; background:none; }
  .site-header nav { display:none; }
  .header-actions { margin-left:auto; }
  .lang-switch { font-size:10px; }
  .brand img { width:86px; }

  .hero { min-height:100svh; padding-top:20vh; justify-content:flex-start; }
  .hero-title { font-size:clamp(43px,13vw,68px); line-height:.95; letter-spacing:-.05em; }
  .hero-title span { display:inline; }
  .hero-title span::after { content:" "; }
  .hero-accent { display:none; }
  .hero-foot { flex-direction:column; gap:14px; bottom:28px; }

  .selected-intro { min-height:40vh; padding-top:10vh; padding-bottom:10vh; }
  .project { padding-top:8vh; padding-bottom:12vh; }
  .project-header { margin-bottom:7vh; }
  .project-header h2 { font-size:clamp(54px,17vw,84px); }
  .project-header p { font-size:13px; }

  .soro-intro { gap:28px; }
  .soro-intro img { order:-1; }
  .statement { margin:10vh 0 12vh; }
  .identity-applied { gap:38px; }
  dl { margin-top:36px; }
  .identity-images { grid-template-columns:1fr; }
  .identity-envelope { width:72%; justify-self:end; }

  /* Miroel: a clean editorial sequence instead of inherited desktop overlaps. */
  .miroel-lead { gap:28px; }
  .miroel-lead figure { order:-1; }
  .miroel-content-static { gap:28px; }
  .miroel-static-gallery {
    min-height:0;
    display:flex;
    flex-direction:column;
    gap:18px;
    align-items:stretch;
  }
  .miroel-piece {
    position:relative;
    grid-column:auto !important;
    grid-row:auto !important;
    left:auto !important;
    right:auto !important;
    top:auto !important;
    bottom:auto !important;
    margin-top:0 !important;
    transform:none !important;
  }
  .miroel-piece-a { width:92% !important; align-self:flex-start; }
  .miroel-piece-b { width:74% !important; align-self:flex-end; }
  .miroel-piece-c { width:84% !important; align-self:flex-start; margin-left:6% !important; }
  .miroel-human { grid-template-columns:1fr; gap:24px; }
  .human-copy { grid-column:auto; }
  .miroel-human .flyer { width:72%; }
  .miroel-human .portrait { width:82%; justify-self:end; }

  /* Hahn's: first piece leads, the remaining four form a stable 2 × 2 grid. */
  .hahns-grid {
    grid-template-columns:repeat(2, minmax(0, 1fr));
    grid-auto-rows:auto;
    gap:28px 16px;
  }
  .hahns-a, .hahns-b, .hahns-c, .hahns-d, .hahns-e {
    grid-row:auto !important;
    margin-top:0 !important;
  }
  .hahns-a { grid-column:1 / -1 !important; }
  .hahns-b, .hahns-c, .hahns-d, .hahns-e { grid-column:auto !important; }
  .hahns-a img { width:88%; margin:0 auto; }

  /* Dose Única: preserve the desktop montage only on desktop. */
  .project-dose .project-header h2 { line-height:.98; }
  .dose-lead { gap:36px; }
  .dose-pages {
    min-height:0;
    margin-top:8vh;
    display:flex;
    flex-direction:column;
    gap:30px;
    overflow:visible;
  }
  .dose-word { display:none; }
  .dose-pages .page {
    position:relative;
    width:84%;
    left:auto;
    right:auto;
    top:auto;
    bottom:auto;
  }
  .dose-pages.is-visible .p1 {
    align-self:flex-start;
    transform:rotate(-2deg);
  }
  .dose-pages.is-visible .p2 {
    align-self:flex-end;
    transform:rotate(2deg);
  }
  .dose-pages.is-visible .p3 {
    align-self:flex-start;
    margin-left:7%;
    transform:rotate(-1deg);
  }

  .more-work, .playground, .services, .about, .contact { padding-top:11vh; padding-bottom:11vh; }
  .section-header { margin-bottom:7vh; }
  .section-header h2 { font-size:17vw; }
  .more-grid { grid-template-columns:1fr; max-width:100%; }
  .more-card, .more-card.big { grid-column:1; max-width:100%; }
  .more-card.big { width:88%; }

  .service-row { grid-template-columns:44px 1fr; gap:16px; padding:26px 0; }
  .service-row h3 { grid-column:2; }
  .service-row p { grid-column:2; margin-top:0; }
  .services-header h2 { font-size:15vw; }
  .services-header p { font-size:17px; }

  /* Playground: keep horizontal browsing, but make the next card visibly peek in. */
  .play-grid {
    display:flex;
    overflow-x:auto;
    overflow-y:hidden;
    gap:18px;
    padding:0 18vw 12px 0;
    scroll-snap-type:x mandatory;
    scroll-padding-left:0;
    overscroll-behavior-inline:contain;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:none;
  }
  .play-grid::-webkit-scrollbar { display:none; }
  .play-card, .play-card.offset {
    min-width:72vw;
    margin:0;
    scroll-snap-align:start;
    scroll-snap-stop:always;
  }

  .about { min-height:auto; gap:44px; }
  .about-copy h2 { font-size:12vw; }
  .about-copy > p { font-size:17px; }
  .experience { align-items:center; }

  .contact { min-height:90svh; }
  .contact h2 { font-size:17vw; }
  .contact-cta { font-size:9vw; }
  .contact-grid { grid-template-columns:1fr; }
  .contact footer { gap:20px; flex-wrap:wrap; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration:.01ms !important; animation-iteration-count:1 !important; scroll-behavior:auto !important; transition-duration:.01ms !important; }
  .reveal { opacity:1; transform:none; }
}

/* Editorial updates: supporting copy and direct links, keeping original visual system and effects. */
.hero-description { max-width:750px; margin:32px 0 0; color:var(--muted); font-size:clamp(16px,1.35vw,20px); line-height:1.5; }
.hero-links { display:flex; flex-wrap:wrap; gap:16px 28px; margin-top:28px; }
.hero-links a { font-size:12px; text-transform:uppercase; letter-spacing:.12em; border-bottom:1px solid var(--line); padding-bottom:10px; transition:border-color .3s ease; }
.hero-links a:hover { border-color:var(--text); }
.hero-links a span { color:var(--red); }
.project-header .project-intro { max-width:720px; margin-top:22px; color:var(--muted); font-size:clamp(17px,1.6vw,22px); line-height:1.5; letter-spacing:normal; text-transform:none; }
.service-examples { display:block; margin-top:12px; color:var(--dim); font-size:15px; }
.contact h2 { font-size:clamp(48px,6vw,100px); max-width:1120px; margin:6vh 0 3vh; }
.contact-description { color:var(--muted); font-size:clamp(17px,1.5vw,21px); line-height:1.5; max-width:730px; margin:0 0 4vh; }
.contact-cta { max-width:100%; font-size:clamp(28px,3.5vw,56px); overflow-wrap:anywhere; }
@media (max-width:640px) {
  .hero { padding-top:20vh; padding-bottom:160px; }
  .hero-description { margin-top:26px; font-size:15px; line-height:1.45; }
  .hero-links { margin-top:22px; gap:14px 20px; }
  .hero-links a { font-size:10px; letter-spacing:.08em; }
  .project-header .project-intro { font-size:16px; }
  .service-examples { font-size:14px; }
  .contact h2 { font-size:clamp(38px,10vw,60px); margin:6vh 0 3vh; }
  .contact-cta { font-size:clamp(24px,6vw,36px); }
}
