/* =========================================================
   TAMEO CC — design tokens
   ========================================================= */
:root{
  --ink:        #15111C;
  --ink-soft:   #1F1A28;
  --cream:      #F5EFE3;
  --flame:      #FF5A1F;
  --flame-dark: #D8460F;
  --magenta:    #E63E8C;
  --acid:       #C8FF4D;
  --violet:     #2A1B3D;

  --font-display: 'Anton', sans-serif;
  --font-body:    'Manrope', sans-serif;
  --font-mono:    'Space Mono', monospace;

  --container: 1280px;
  --edge: clamp(20px, 5vw, 64px);

  --ease: cubic-bezier(.22,1,.36,1);
}

*{ box-sizing:border-box; margin:0; padding:0; }
html{ scroll-behavior:smooth; background:var(--ink); }
html, body{ overflow-x:hidden; width:100%; }

body{
  background:var(--ink);
  color:var(--cream);
  font-family:var(--font-body);
  line-height:1.5;
  -webkit-font-smoothing:antialiased;
  cursor:none;
}

a{ color:inherit; text-decoration:none; }
ul, ol{ list-style:none; }
button{ font-family:inherit; cursor:none; border:none; background:none; color:inherit; }
input, textarea, select{ font-family:inherit; cursor:auto; }

img{ max-width:100%; display:block; }

::selection{ background:var(--acid); color:var(--ink); }

:focus-visible{
  outline:3px solid var(--acid);
  outline-offset:3px;
}

@media (hover:none){
  body{ cursor:auto; }
}

/* =========================================================
   AMBIENT CURSOR GLOW
   ========================================================= */
.glow{
  position:fixed; top:0; left:0;
  width:560px; height:560px;
  border-radius:50%;
  background:radial-gradient(circle, rgba(200,255,77,.30) 0%, rgba(255,90,31,.16) 38%, transparent 70%);
  transform:translate(-50%,-50%);
  pointer-events:none;
  z-index:6;
  mix-blend-mode:screen;
  opacity:0;
  transition:opacity .5s ease;
  will-change:transform;
}
.glow.is-active{ opacity:1; }

@media (hover:none){ .glow{ display:none; } }
@media (prefers-reduced-motion: reduce){ .glow{ display:none; } }

/* =========================================================
   CUSTOM CURSOR
   ========================================================= */
.cursor{
  position:fixed; top:0; left:0;
  width:0; height:0;
  pointer-events:none;
  z-index:9999;
  mix-blend-mode:difference;
}
.cursor-dot{
  position:absolute; top:0; left:0;
  width:8px; height:8px;
  background:var(--acid);
  border-radius:50%;
  transform:translate(-50%,-50%);
}
.cursor-ring{
  position:absolute; top:0; left:0;
  width:36px; height:36px;
  border:1.5px solid var(--cream);
  border-radius:50%;
  transform:translate(-50%,-50%);
  transition:width .25s var(--ease), height .25s var(--ease), border-color .25s var(--ease), background .25s var(--ease);
}
.cursor-label{
  position:absolute; top:0; left:0;
  transform:translate(-50%,-50%);
  font-family:var(--font-mono);
  font-size:10px;
  letter-spacing:.1em;
  color:var(--ink);
  background:var(--acid);
  padding:3px 8px;
  border-radius:20px;
  opacity:0;
  white-space:nowrap;
  transition:opacity .2s var(--ease);
}
.cursor.is-link .cursor-ring{ width:64px; height:64px; border-color:var(--acid); }
.cursor.is-link .cursor-dot{ opacity:0; }
.cursor.is-label .cursor-label{ opacity:1; }

@media (hover:none){ .cursor{ display:none; } }

/* =========================================================
   INTRO — CAMERA IRIS / APERTURE REVEAL
   ========================================================= */
.intro{
  position:fixed; inset:0;
  z-index:10000;
  background:var(--ink);
  display:flex; align-items:center; justify-content:center;
  clip-path:url(#irisClip);
  -webkit-clip-path:url(#irisClip);
}
.intro-flash{
  position:absolute; inset:0;
  background:var(--acid);
  opacity:0;
  pointer-events:none;
}
.intro-flash.is-flash{ animation:introFlash .26s ease-out forwards; }
@keyframes introFlash{
  0%{ opacity:0; }
  35%{ opacity:.85; }
  100%{ opacity:0; }
}

.intro-center{
  position:relative; z-index:2;
  display:flex; flex-direction:column; align-items:center; gap:18px;
  transform:scale(1.15);
  transform-origin:center;
}
.aperture-svg{
  width:min(46vmin, 320px);
  height:min(46vmin, 320px);
  display:block;
  filter:drop-shadow(0 0 40px rgba(255,90,31,.35));
}
.blade{
  fill:var(--cream);
  stroke:var(--ink);
  stroke-width:.6;
}
.intro-label{
  font-family:var(--font-mono);
  font-size:13px;
  letter-spacing:.25em;
  color:rgba(245,239,227,.7);
}

.intro.is-done{ display:none; }
.intro.is-fading{ transition:opacity .5s ease; opacity:0; }

/* =========================================================
   MAGNETIC ELEMENTS (transform handled inline via JS)
   ========================================================= */
[data-magnetic]{ will-change:transform; }

/* =========================================================
   NAV
   ========================================================= */
.nav{
  position:fixed; top:0; left:0; right:0;
  z-index:500;
  display:flex; align-items:center; justify-content:space-between;
  padding:22px var(--edge);
  mix-blend-mode:difference;
}
.nav-logo{
  font-family:var(--font-display);
  font-size:22px;
  letter-spacing:.03em;
  color:var(--cream);
}
.nav-logo span{ color:var(--flame); }
.nav-links{ display:flex; gap:36px; }
.nav-links a{
  font-family:var(--font-mono);
  font-size:13px;
  letter-spacing:.04em;
  color:var(--cream);
  position:relative;
  padding-bottom:3px;
}
.nav-links a::after{
  content:''; position:absolute; left:0; bottom:0;
  width:0; height:1px; background:var(--cream);
  transition:width .3s var(--ease);
}
.nav-links a:hover::after{ width:100%; }

.nav-cta{
  font-family:var(--font-mono);
  font-size:13px;
  border:1px solid var(--cream);
  padding:9px 18px;
  border-radius:30px;
  color:var(--cream);
  transition:background .25s var(--ease), color .25s var(--ease), transform .25s var(--ease);
}
.nav-cta:hover{ background:var(--cream); color:var(--ink); }

.nav-burger{
  display:none;
  width:32px; height:20px;
  position:relative;
  flex-direction:column; justify-content:space-between;
}
.nav-burger span{
  display:block; height:2px; width:100%;
  background:var(--cream);
}

.mobile-menu{
  position:fixed; inset:0;
  background:var(--flame);
  z-index:480;
  display:flex; flex-direction:column;
  align-items:center; justify-content:center;
  gap:28px;
  transform:translateY(-100%);
  transition:transform .5s var(--ease);
}
.mobile-menu.is-open{ transform:translateY(0); }
.mobile-menu a{
  font-family:var(--font-display);
  font-size:42px;
  color:var(--ink);
}

@media (max-width:880px){
  .nav-links, .nav-cta{ display:none; }
  .nav-burger{ display:flex; }
}

/* =========================================================
   HERO
   ========================================================= */
.hero{
  position:relative;
  min-height:100vh;
  display:flex; flex-direction:column; justify-content:center;
  padding:120px var(--edge) 80px;
  overflow:hidden;
}
.hero-bg-grain{
  position:absolute; inset:0;
  background-image:radial-gradient(circle at 20% 20%, rgba(255,90,31,.25), transparent 45%),
                    radial-gradient(circle at 85% 75%, rgba(230,62,140,.22), transparent 50%);
  pointer-events:none;
  will-change:transform;
}
.hero-eyebrow{
  font-family:var(--font-mono);
  font-size:13px;
  letter-spacing:.08em;
  color:var(--acid);
  margin-bottom:18px;
  position:relative; z-index:2;
}
.hero-title{
  font-family:var(--font-display);
  font-size:clamp(48px, 10.5vw, 150px);
  line-height:.94;
  letter-spacing:.005em;
  position:relative; z-index:2;
}
.hero-title .line{
  display:block;
  overflow:hidden;
}
.hero-title .line span.reveal-inner{ display:block; transform:translateY(110%); }
.hero-title .accent{ color:var(--flame); }

.hero-sub{
  margin-top:28px;
  max-width:540px;
  font-size:clamp(15px,1.6vw,18px);
  color:rgba(245,239,227,.75);
  position:relative; z-index:2;
}
.hero-cta{
  margin-top:40px;
  display:inline-flex; align-items:center; gap:12px;
  width:fit-content;
  background:var(--acid);
  color:var(--ink);
  font-family:var(--font-mono);
  font-weight:700;
  font-size:14px;
  letter-spacing:.04em;
  padding:16px 26px;
  border-radius:40px;
  position:relative; z-index:2;
  transition:transform .3s var(--ease), background .3s var(--ease);
}
.hero-cta svg{ width:18px; height:18px; transition:transform .3s var(--ease); }
.hero-cta:hover{ background:var(--cream); }
.hero-cta:hover svg{ transform:translateX(4px); }

.hero-scroll-cue{
  position:absolute; right:var(--edge); bottom:40px;
  display:flex; flex-direction:column; align-items:center; gap:10px;
  font-family:var(--font-mono); font-size:11px; letter-spacing:.1em;
  color:rgba(245,239,227,.6);
}
.hero-scroll-line{
  width:1px; height:60px; background:rgba(245,239,227,.25);
  position:relative; overflow:hidden;
}
.hero-scroll-line i{
  position:absolute; top:-100%; left:0; width:100%; height:100%;
  background:var(--acid);
  animation:scrollCue 1.8s ease-in-out infinite;
}
@keyframes scrollCue{
  0%{ top:-100%; } 50%{ top:0; } 100%{ top:100%; }
}

@media (max-width:600px){
  .hero-scroll-cue{ display:none; }
}

/* =========================================================
   MARQUEE TICKERS
   ========================================================= */
.ticker{
  width:100%;
  overflow:hidden;
  white-space:nowrap;
  padding:18px 0;
  transform:rotate(-1.4deg) scale(1.02);
  border-top:2px solid var(--ink);
  border-bottom:2px solid var(--ink);
}
.ticker--flame{ background:var(--flame); }
.ticker--violet{ background:var(--violet); border-color:var(--magenta); }
.ticker--footer{ background:var(--magenta); border-color:var(--ink); transform:rotate(-1.4deg) scale(1.04); margin-bottom:-2px; }
.ticker--values{ padding:12px 0; }
.ticker--values .ticker-track span{ font-size:clamp(14px, 1.8vw, 18px); letter-spacing:.06em; }

.ticker-track{
  display:inline-flex;
  align-items:center;
  gap:26px;
  animation:tickerScroll 26s linear infinite;
  will-change:transform;
}
.ticker-track span{
  font-family:var(--font-display);
  font-size:clamp(20px, 3vw, 34px);
  letter-spacing:.02em;
  color:var(--ink);
}
.ticker--violet .ticker-track span{ color:var(--cream); }
.ticker--footer .ticker-track span{ color:var(--ink); }
.ticker-track i{
  font-style:normal; font-size:14px;
  color:rgba(21,17,28,.5);
}
.ticker--violet .ticker-track i{ color:var(--acid); }

@keyframes tickerScroll{
  from{ transform:translateX(0); }
  to{ transform:translateX(-50%); }
}

/* =========================================================
   SECTION HEAD / EYEBROW (shared)
   ========================================================= */
.section-head{ padding:120px var(--edge) 60px; }
.eyebrow{
  font-family:var(--font-mono); font-size:13px; letter-spacing:.08em;
  color:var(--flame); margin-bottom:16px;
}
.eyebrow--light{ color:var(--acid); }
.section-title{
  font-family:var(--font-display);
  font-size:clamp(34px, 5.5vw, 64px);
  line-height:1.02;
}
.section-title--light{ color:var(--cream); }

/* =========================================================
   SERVICES
   ========================================================= */
.services{ background:var(--ink); }
.service-row{
  display:grid;
  grid-template-columns:280px 1fr 220px;
  gap:32px;
  align-items:center;
  padding:46px var(--edge);
  border-top:1px solid rgba(245,239,227,.14);
  transition:background .4s var(--ease), color .4s var(--ease);
  opacity:0; transform:translateY(40px);
}
.service-row:last-child{ border-bottom:1px solid rgba(245,239,227,.14); }
.service-row.is-visible{ opacity:1; transform:translateY(0); }

.service-row h3{
  font-family:var(--font-display);
  font-size:clamp(26px, 3.4vw, 42px);
  font-weight:400;
}
.service-desc{ font-size:15px; color:rgba(245,239,227,.7); max-width:46ch; }
.service-tag{
  font-family:var(--font-mono); font-size:11px; letter-spacing:.06em;
  color:var(--acid); justify-self:end; text-align:right;
}
.service-row--flame:hover{ background:var(--flame); color:var(--ink); }
.service-row--flame:hover .service-desc{ color:rgba(21,17,28,.75); }
.service-row--flame:hover .service-tag{ color:var(--ink); }
.service-row--magenta:hover{ background:var(--magenta); color:var(--ink); }
.service-row--magenta:hover .service-desc{ color:rgba(21,17,28,.75); }
.service-row--magenta:hover .service-tag{ color:var(--ink); }
.service-row:not(.service-row--flame):not(.service-row--magenta):hover{ background:var(--ink-soft); }

@media (max-width:780px){
  .service-row{ grid-template-columns:1fr; gap:10px; padding:32px var(--edge); }
  .service-tag{ justify-self:start; text-align:left; }
}

/* =========================================================
   WORK — horizontal pinned scroll
   ========================================================= */
.work{ background:var(--cream); color:var(--ink); }
.work-pin{ position:relative; }
.section-head--light{ padding-bottom:40px; }
.work .eyebrow{ color:var(--flame-dark); }
.work .section-title{ color:var(--ink); }

.work-track{
  display:flex;
  gap:28px;
  padding:0 var(--edge) 120px;
  width:max-content;
}
.work-card{
  position:relative;
  width:min(78vw, 420px);
  background:var(--clr, var(--flame));
  border-radius:18px;
  padding:28px 26px;
  min-height:480px;
  display:flex; flex-direction:column; justify-content:flex-end;
  overflow:hidden;
  box-shadow:0 30px 60px -30px rgba(21,17,28,.4);
  transition:transform .15s ease-out, box-shadow .3s var(--ease);
  will-change:transform;
}
.work-card.is-tilting{ box-shadow:0 40px 70px -25px rgba(21,17,28,.55); }
.work-card-sprockets{
  position:absolute; top:0; left:0; right:0; height:22px;
  background-image:radial-gradient(circle, rgba(21,17,28,.5) 5px, transparent 5.5px);
  background-size:26px 22px;
  background-position:10px center;
  opacity:.35;
}
.work-card-index{
  position:absolute; top:36px; left:26px;
  font-family:var(--font-mono); font-size:13px;
  color:rgba(21,17,28,.55);
}
.work-card-body h3{
  font-family:var(--font-display);
  font-size:clamp(28px,3.4vw,38px);
  color:var(--ink);
  margin:10px 0 12px;
}
.work-card-cat{
  font-family:var(--font-mono); font-size:11px; letter-spacing:.06em;
  color:rgba(21,17,28,.6);
}
.work-card-body p{ font-size:14.5px; color:rgba(21,17,28,.75); max-width:36ch; }
.work-card--cta{ display:flex; align-items:center; justify-content:center; text-align:center; }
.work-card--cta .work-card-body{ display:flex; flex-direction:column; align-items:center; gap:10px; }
.work-card-link{
  margin-top:10px;
  font-family:var(--font-mono); font-size:13px;
  border-bottom:2px solid var(--ink);
  padding-bottom:2px;
}

@media (max-width:780px){
  .work-pin{ height:auto !important; }
  .work-track{ flex-direction:column; width:100%; padding:0 var(--edge) 60px; }
  .work-card{ width:100%; min-height:340px; }
}

/* =========================================================
   TESTIMONIALS — infinite marquee
   ========================================================= */
.testimonials{ background:var(--ink); overflow:hidden; padding-bottom:100px; }
.testimonial-track{
  display:flex;
  gap:22px;
  width:max-content;
  padding:0 var(--edge);
  animation:tickerScroll 42s linear infinite;
  will-change:transform;
}
.testimonial-track:hover{ animation-play-state:paused; }

.testimonial-card{
  flex:0 0 auto;
  width:min(80vw, 340px);
  background:var(--ink-soft);
  border:1px solid rgba(245,239,227,.12);
  border-radius:18px;
  padding:30px 26px;
  display:flex; flex-direction:column; gap:22px;
  justify-content:space-between;
  min-height:200px;
}
.testimonial-quote{
  font-family:var(--font-display);
  font-weight:400;
  font-size:clamp(18px, 1.8vw, 21px);
  line-height:1.3;
  color:var(--cream);
}
.testimonial-meta{
  font-family:var(--font-mono);
  font-size:11px; letter-spacing:.06em;
  color:var(--acid);
}

@media (max-width:780px){
  .testimonial-card{ width:78vw; }
}

/* =========================================================
   ABOUT / STATS
   ========================================================= */
.about{
  background:var(--violet);
  padding:120px var(--edge);
  display:grid; grid-template-columns:1.1fr .9fr; gap:60px;
}
.about-text h2{
  font-family:var(--font-display);
  font-size:clamp(28px, 4vw, 48px);
  line-height:1.08;
  margin:14px 0 24px;
  color:var(--cream);
}
.about-p{ color:rgba(245,239,227,.75); max-width:50ch; }
.about-text, .about-stats > .stat{ opacity:0; transform:translateY(40px); transition:opacity .8s var(--ease), transform .8s var(--ease); }
.about-text.is-visible, .stat.is-visible{ opacity:1; transform:translateY(0); }

.about-stats{ display:flex; flex-direction:column; gap:36px; justify-content:center; }
.stat-num{
  display:block;
  font-family:var(--font-display);
  font-size:clamp(48px, 6vw, 80px);
  color:var(--acid);
  line-height:1;
}
.stat-label{
  font-family:var(--font-mono); font-size:12px; letter-spacing:.04em;
  color:rgba(245,239,227,.65);
}

@media (max-width:880px){
  .about{ grid-template-columns:1fr; }
}

/* =========================================================
   PROCESS
   ========================================================= */
.process{ background:var(--ink); padding-bottom:60px; }
.process-list{
  display:grid; grid-template-columns:repeat(4,1fr);
  gap:1px; background:rgba(245,239,227,.14);
  margin:0 var(--edge);
  border:1px solid rgba(245,239,227,.14);
}
.process-item{
  background:var(--ink);
  padding:40px 28px;
  opacity:0; transform:translateY(30px);
  transition:opacity .7s var(--ease), transform .7s var(--ease);
}
.process-item.is-visible{ opacity:1; transform:translateY(0); }
.process-num{
  display:block; font-family:var(--font-mono); font-size:13px; color:var(--flame);
  margin-bottom:18px;
}
.process-item h3{ font-family:var(--font-display); font-size:24px; margin-bottom:10px; font-weight:400; }
.process-item p{ font-size:14px; color:rgba(245,239,227,.7); }

@media (max-width:880px){
  .process-list{ grid-template-columns:1fr; }
}

/* =========================================================
   FOUNDER — quiet, editorial "about me" section
   ========================================================= */
.founder{
  background:var(--ink);
  padding:110px var(--edge) 100px;
  border-top:1px solid rgba(245,239,227,.1);
}
.founder-intro{
  display:flex; align-items:flex-start; gap:32px;
  max-width:900px;
  margin:0 auto 64px;
}
.founder-avatar{
  flex:0 0 auto;
  width:72px; height:72px;
  border-radius:50%;
  background:linear-gradient(135deg, var(--flame), var(--magenta));
  display:flex; align-items:center; justify-content:center;
  font-family:var(--font-display);
  font-size:28px;
  color:var(--cream);
}
.founder-bio h2{
  font-family:var(--font-display);
  font-weight:400;
  font-size:clamp(26px, 3.4vw, 38px);
  margin:10px 0 16px;
  color:var(--cream);
}
.founder-p{
  font-size:15px;
  line-height:1.7;
  color:rgba(245,239,227,.72);
  max-width:62ch;
}

.founder-grid{
  max-width:1100px;
  margin:0 auto;
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:1px;
  background:rgba(245,239,227,.1);
  border:1px solid rgba(245,239,227,.1);
}
.founder-block{
  background:var(--ink);
  padding:30px 28px;
}
.founder-block-label{
  display:block;
  font-family:var(--font-mono);
  font-size:11px; letter-spacing:.06em;
  color:var(--acid);
  margin-bottom:18px;
}

.founder-values{ display:flex; flex-direction:column; gap:14px; }
.founder-values li{
  font-size:13.5px; line-height:1.55;
  color:rgba(245,239,227,.78);
  padding-left:16px;
  position:relative;
}
.founder-values li::before{
  content:'—';
  position:absolute; left:0; top:0;
  color:var(--flame);
}

.founder-interests{ display:flex; flex-direction:column; gap:14px; }
.founder-interests li{
  font-size:14px;
  color:rgba(245,239,227,.85);
  display:flex; align-items:center; gap:10px;
}
.founder-emoji{ font-size:16px; }

.founder-books{ display:flex; flex-direction:column; gap:14px; }
.founder-books li{ display:flex; flex-direction:column; gap:2px; }
.founder-books li strong{
  font-size:14px; font-weight:700; color:var(--cream);
}
.founder-books li span{
  font-family:var(--font-mono); font-size:11px;
  color:rgba(245,239,227,.55);
}

@media (max-width:880px){
  .founder-intro{ flex-direction:column; gap:18px; }
  .founder-grid{ grid-template-columns:1fr; }
}

/* =========================================================
   CONTACT
   ========================================================= */
.contact{
  background:var(--flame);
  color:var(--ink);
  padding:120px var(--edge);
  display:grid; grid-template-columns:1fr 1fr; gap:60px;
}
.contact-left, .contact-form{ opacity:0; transform:translateY(40px); transition:opacity .8s var(--ease), transform .8s var(--ease); }
.contact-left.is-visible, .contact-form.is-visible{ opacity:1; transform:translateY(0); }

.contact-left h2{
  font-family:var(--font-display);
  font-size:clamp(30px, 4.4vw, 52px);
  line-height:1.06;
  margin:14px 0 18px;
}
.contact-p{ color:rgba(21,17,28,.75); max-width:38ch; }
.contact-info{ display:flex; flex-direction:column; gap:6px; margin-top:28px; font-family:var(--font-mono); font-size:14px; }
.contact-info a{ text-decoration:underline; text-underline-offset:4px; }
.contact-social{ display:flex; gap:20px; margin-top:30px; }
.contact-social a{
  font-family:var(--font-mono); font-size:13px;
  border-bottom:1px solid var(--ink); padding-bottom:2px;
}

.contact-form{
  background:var(--ink);
  color:var(--cream);
  border-radius:20px;
  padding:36px;
  display:flex; flex-direction:column; gap:18px;
}
.field{ display:flex; flex-direction:column; gap:8px; }
.field-row{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.field label{ font-family:var(--font-mono); font-size:11px; letter-spacing:.05em; color:rgba(245,239,227,.6); }
.field input, .field select, .field textarea{
  background:var(--ink-soft);
  border:1px solid rgba(245,239,227,.18);
  border-radius:10px;
  padding:13px 14px;
  color:var(--cream);
  font-size:14.5px;
  resize:vertical;
  transition:border-color .25s var(--ease), background .25s var(--ease);
}
.field input:focus, .field select:focus, .field textarea:focus{
  border-color:var(--acid);
  background:#262030;
}
.hp-field{ position:absolute; left:-9999px; opacity:0; height:0; width:0; }

.submit-btn{
  margin-top:6px;
  background:var(--acid);
  color:var(--ink);
  font-family:var(--font-mono); font-weight:700; font-size:14px; letter-spacing:.04em;
  padding:16px; border-radius:40px;
  display:flex; align-items:center; justify-content:center; gap:10px;
  transition:background .3s var(--ease), transform .3s var(--ease);
  position:relative;
}
.submit-btn:hover{ background:var(--cream); }
.submit-btn:disabled{ opacity:.6; pointer-events:none; }
.submit-btn-loader{
  width:14px; height:14px; border-radius:50%;
  border:2px solid rgba(21,17,28,.3); border-top-color:var(--ink);
  display:none; animation:spin .7s linear infinite;
}
.submit-btn.is-loading .submit-btn-loader{ display:inline-block; }
.submit-btn.is-loading .submit-btn-text{ opacity:.6; }
@keyframes spin{ to{ transform:rotate(360deg); } }

.form-status{
  font-family:var(--font-mono); font-size:13px;
  min-height:18px;
}
.form-status.ok{ color:var(--acid); }
.form-status.err{ color:#FF7A7A; }

@media (max-width:880px){
  .contact{ grid-template-columns:1fr; }
  .field-row{ grid-template-columns:1fr; }
}

/* =========================================================
   FOOTER
   ========================================================= */
.footer{ background:var(--ink); padding-top:60px; }
.footer-bottom{
  display:flex; justify-content:space-between; align-items:center;
  padding:28px var(--edge) 40px;
  font-family:var(--font-mono); font-size:12px;
  color:rgba(245,239,227,.55);
}
.footer-top{ color:rgba(245,239,227,.55); transition:color .25s var(--ease); }
.footer-top:hover{ color:var(--acid); }

@media (max-width:600px){
  .footer-bottom{ flex-direction:column; gap:14px; text-align:center; }
}

/* =========================================================
   GENERIC REVEAL (used by JS ScrollTrigger fallback)
   ========================================================= */
[data-reveal]{ opacity:0; transform:translateY(40px); }
[data-reveal].is-visible{ opacity:1; transform:translateY(0); transition:opacity .8s var(--ease), transform .8s var(--ease); }

/* =========================================================
   REDUCED MOTION
   ========================================================= */
@media (prefers-reduced-motion: reduce){
  *, *::before, *::after{
    animation-duration:0.01ms !important;
    animation-iteration-count:1 !important;
    transition-duration:0.01ms !important;
    scroll-behavior:auto !important;
  }
  .cursor{ display:none; }
  body{ cursor:auto; }
  [data-reveal], .service-row, .about-text, .stat, .process-item, .contact-left, .contact-form{
    opacity:1 !important; transform:none !important;
  }
}
