/* ===== base ===== */
*,*::before,*::after{box-sizing:border-box}
html,body{margin:0;padding:0}
:root{
  --bg:#0a0a0a;
  --bg-2:#101010;
  --line:#1d1d1d;
  --line-2:#2a2a2a;
  --text:#f3f3f3;
  --muted:#8a8a8a;
  --silver:#c9c9c9;
  --accent:#d11d2c;
  --accent-2:#ff2a3c;
  --radius:14px;
  --maxw:1240px;
  --mono:"JetBrains Mono",ui-monospace,Menlo,Consolas,monospace;
  --sans:"Manrope",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
}
html{scroll-behavior:smooth}
body{
  background:var(--bg);
  color:var(--text);
  font-family:var(--sans);
  font-weight:400;
  line-height:1.55;
  font-size:16px;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  overflow-x:hidden;
  min-height:100vh;
}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer;padding:0}
img{display:block;max-width:100%}
em{font-style:normal;color:var(--accent)}
.muted{color:var(--muted)}

/* ===== intro overlay ===== */
.intro{
  position:fixed;inset:0;z-index:9999;
  background:#0a0a0a;
  display:flex;align-items:center;justify-content:center;
  animation:introOut .5s 1.55s cubic-bezier(.7,0,.25,1) forwards;
  will-change:opacity,transform;
}
.intro-inner{position:relative;text-align:center;padding:0 20px}
.intro-text{
  font-family:var(--sans);
  font-size:clamp(54px,13vw,160px);
  font-weight:800;letter-spacing:-.035em;line-height:1;
  color:#fff;
  clip-path:inset(0 100% 0 0);
  animation:revealText .75s .15s cubic-bezier(.7,0,.2,1) forwards;
  display:inline-block;
}
.intro-text em{font-style:normal;color:var(--accent)}
.intro-text .intro-dot{color:var(--accent)}
.intro-line{
  position:absolute;left:0;right:0;bottom:-14px;height:2px;
  background:var(--accent);transform:scaleX(0);transform-origin:left;
  animation:lineIn .35s .85s cubic-bezier(.7,0,.2,1) forwards,
            lineOut .3s 1.25s cubic-bezier(.7,0,.2,1) forwards;
}
.intro-sub{
  margin-top:28px;font-family:var(--mono);font-size:12px;
  color:var(--muted);letter-spacing:.25em;text-transform:uppercase;
  opacity:0;transform:translateY(8px);
  animation:subIn .4s 1.0s cubic-bezier(.2,.7,.2,1) forwards;
}
@keyframes revealText{to{clip-path:inset(0 0 0 0)}}
@keyframes lineIn{to{transform:scaleX(1);transform-origin:left}}
@keyframes lineOut{from{transform:scaleX(1);transform-origin:right}to{transform:scaleX(0);transform-origin:right}}
@keyframes subIn{to{opacity:1;transform:none}}
@keyframes introOut{to{opacity:0;visibility:hidden;pointer-events:none;transform:scale(1.03)}}
body.intro-active{overflow:hidden}

/* ===== background ===== */
#bg{
  position:fixed;inset:0;width:100%;height:100%;
  z-index:-2;pointer-events:none;
  background:
    radial-gradient(1200px 700px at 80% -10%, rgba(209,29,44,.08), transparent 60%),
    radial-gradient(900px 600px at -10% 110%, rgba(255,255,255,.04), transparent 60%),
    var(--bg);
}
.grain{
  position:fixed;inset:0;z-index:-1;pointer-events:none;opacity:.05;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0.6 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
}

/* ===== nav ===== */
.nav{
  position:sticky;top:0;z-index:50;
  display:flex;align-items:center;justify-content:space-between;gap:16px;
  padding:18px clamp(20px,4vw,48px);
  background:linear-gradient(to bottom, rgba(10,10,10,.85), rgba(10,10,10,.55));
  backdrop-filter:saturate(140%) blur(8px);
  -webkit-backdrop-filter:saturate(140%) blur(8px);
  border-bottom:1px solid var(--line);
}
.brand{display:flex;align-items:center;gap:10px;font-weight:800;letter-spacing:.2px}
.brand-mark{color:var(--accent);font-size:18px;transform:translateY(-1px)}
.brand-name{font-size:16px}
.brand-name .dot{color:var(--accent)}
.nav-links{display:flex;gap:22px;font-size:14px;color:var(--silver)}
.nav-links a{position:relative;transition:color .2s}
.nav-links a:hover{color:#fff}
.nav-links a::after{
  content:"";position:absolute;left:0;right:0;bottom:-6px;height:1px;
  background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .25s ease;
}
.nav-links a:hover::after{transform:scaleX(1)}
.cta{
  display:inline-flex;align-items:center;gap:8px;
  padding:10px 16px;border:1px solid var(--line-2);border-radius:999px;
  font-size:13px;color:#fff;background:transparent;
  transition:all .2s;
}
.cta:hover{border-color:var(--accent);color:#fff}
.cta-arrow{transition:transform .2s}
.cta:hover .cta-arrow{transform:translateX(3px)}
@media(max-width:760px){.nav-links{display:none}}

/* ===== hero ===== */
.hero{
  position:relative;
  max-width:var(--maxw);margin:0 auto;
  padding:clamp(40px,7vw,80px) clamp(20px,4vw,48px) clamp(40px,6vw,80px);
  opacity:0;animation:heroIn .8s 1.65s cubic-bezier(.2,.7,.2,1) forwards;
}
@keyframes heroIn{to{opacity:1}}
.status{
  display:inline-flex;align-items:center;gap:10px;
  padding:7px 14px;border:1px solid var(--line-2);border-radius:999px;
  font-family:var(--mono);font-size:12px;color:var(--silver);
  margin-bottom:28px;
}
.status-dot{
  width:8px;height:8px;border-radius:50%;
  background:#3ddc7c;box-shadow:0 0 10px #3ddc7c;
  animation:pulse 2s ease-in-out infinite;
}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.45}}
.hero-title{
  font-size:clamp(40px,7.2vw,96px);
  line-height:1.02;letter-spacing:-.028em;font-weight:800;
  margin:0 0 24px;max-width:18ch;
}
.hero-sub{
  font-size:clamp(15px,1.5vw,18px);max-width:620px;color:#dcdcdc;margin:0 0 36px;
}
.hero-sub .muted{display:block;margin-top:6px}
.hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:64px}

/* hero meta as clickable grid */
.hero-meta{
  display:grid;grid-template-columns:repeat(4,1fr);gap:0;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  margin-bottom:0;
}
.meta-cell{
  position:relative;display:flex;flex-direction:column;align-items:flex-start;
  gap:10px;padding:22px 22px 24px;text-align:left;
  border-right:1px solid var(--line);
  transition:background .25s ease, padding-left .25s ease;
  overflow:hidden;
}
.meta-cell:last-child{border-right:0}
.meta-cell::before{
  content:"";position:absolute;left:0;top:0;bottom:0;width:2px;
  background:var(--accent);transform:scaleY(0);transform-origin:top;
  transition:transform .35s cubic-bezier(.2,.7,.2,1);
}
.meta-cell:hover{background:#111;padding-left:28px}
.meta-cell:hover::before{transform:scaleY(1)}
.meta-num{font-family:var(--mono);font-size:11px;color:var(--accent);letter-spacing:.12em}
.meta-text{font-size:15px;color:#fff;font-weight:500;line-height:1.35}
.meta-arrow{
  position:absolute;top:18px;right:18px;
  font-size:14px;color:var(--muted);
  transition:transform .25s ease, color .25s ease;
}
.meta-cell:hover .meta-arrow{transform:translate(3px,-3px);color:var(--accent)}

.btn{
  display:inline-flex;align-items:center;gap:10px;
  padding:14px 22px;border-radius:12px;font-size:14px;font-weight:600;
  border:1px solid transparent;transition:all .2s ease;
  letter-spacing:.2px;
}
.btn-primary{background:var(--accent);color:#fff}
.btn-primary:hover{background:var(--accent-2);transform:translateY(-1px)}
.btn-ghost{background:transparent;border-color:var(--line-2);color:#fff}
.btn-ghost:hover{border-color:#fff}
.btn-arrow{transition:transform .25s}
.btn:hover .btn-arrow{transform:translateY(3px)}
.btn.block{width:100%;justify-content:center}

.ticker{
  overflow:hidden;border-bottom:1px solid var(--line);
  padding:12px 0;
}
.ticker-track{
  display:flex;gap:14px;white-space:nowrap;
  animation:ticker 28s linear infinite;
  font-family:var(--mono);font-size:12px;color:var(--muted);
}
@keyframes ticker{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* ===== sections ===== */
.section{
  max-width:var(--maxw);margin:0 auto;
  padding:clamp(60px,9vw,120px) clamp(20px,4vw,48px);
  border-top:1px solid var(--line);
}
.section-head{margin-bottom:48px}
.section-num{
  display:inline-block;font-family:var(--mono);font-size:12px;color:var(--accent);
  letter-spacing:.1em;margin-bottom:10px;
}
.section h2{
  font-size:clamp(32px,4.5vw,56px);font-weight:800;letter-spacing:-.02em;
  margin:0 0 8px;line-height:1.05;
}
.section-sub{color:var(--muted);max-width:600px;margin:6px 0 0;font-size:15px}

/* ===== about ===== */
.about-grid{display:grid;gap:48px}
.about-lead{
  font-size:clamp(18px,2.2vw,26px);line-height:1.45;max-width:880px;margin:0;
  color:#eaeaea;font-weight:300;
}
.about-lead strong{font-weight:700;color:#fff}
.about-cols{
  display:grid;gap:28px;
  grid-template-columns:repeat(3,1fr);
  border-top:1px solid var(--line);padding-top:32px;
}
@media(max-width:900px){.about-cols{grid-template-columns:1fr}}
.about-cols h4{
  margin:0 0 14px;font-size:13px;text-transform:uppercase;letter-spacing:.12em;
  color:var(--muted);font-weight:500;font-family:var(--mono);
}
.dash-list,.num-list{margin:0;padding:0;list-style:none}
.dash-list li{position:relative;padding:6px 0 6px 22px;color:#dcdcdc;font-size:15px}
.dash-list li::before{
  content:"";position:absolute;left:0;top:15px;width:12px;height:1px;background:var(--accent);
}
.num-list{counter-reset:n}
.num-list li{counter-increment:n;position:relative;padding:6px 0 6px 32px;color:#dcdcdc;font-size:15px}
.num-list li::before{
  content:counter(n,decimal-leading-zero);position:absolute;left:0;top:8px;
  font-family:var(--mono);font-size:11px;color:var(--accent);
}
.footnote{margin-top:14px;font-size:13px;color:var(--muted);font-style:italic}

/* ===== work cards ===== */
.cards{
  display:grid;gap:22px;
  grid-template-columns:repeat(auto-fill,minmax(320px,1fr));
}
.card{
  position:relative;display:flex;flex-direction:column;
  background:var(--bg-2);
  border:1px solid var(--line);border-radius:var(--radius);
  overflow:hidden;cursor:pointer;
  transition:transform .35s cubic-bezier(.2,.7,.2,1), border-color .3s, box-shadow .3s;
  isolation:isolate;
}
.card:hover{
  transform:translateY(-4px);
  border-color:var(--line-2);
  box-shadow:0 30px 60px -30px rgba(0,0,0,.6), 0 0 0 1px rgba(209,29,44,.18);
}
.card-preview{
  position:relative;aspect-ratio:16/10;overflow:hidden;
  background:#0d0d0d;
  border-bottom:1px solid var(--line);
}
.browser-bar{
  position:absolute;top:0;left:0;right:0;height:26px;z-index:2;
  display:flex;align-items:center;gap:6px;padding:0 12px;
  background:#141414;border-bottom:1px solid var(--line);
  font-family:var(--mono);font-size:10px;color:var(--muted);
}
.dot-r,.dot-y,.dot-g{width:8px;height:8px;border-radius:50%}
.dot-r{background:#ff5f56}.dot-y{background:#ffbd2e}.dot-g{background:#27c93f}
.browser-url{margin-left:10px;opacity:.7;letter-spacing:.05em;text-transform:lowercase}
.preview-frame{
  position:absolute;top:26px;left:0;
  width:250%;height:calc(250% - 26px);
  border:0;pointer-events:none;
  transform-origin:top left;transform:scale(.4);
  background:#000;
  filter:saturate(1.05);
}
.preview-mock{
  position:absolute;inset:26px 0 0 0;z-index:0;
  display:flex;align-items:center;justify-content:center;
  font-family:var(--mono);font-size:12px;color:#3a3a3a;letter-spacing:.1em;
}
.card-overlay{
  position:absolute;inset:26px 0 0 0;z-index:3;
  background:linear-gradient(180deg, rgba(10,10,10,0) 30%, rgba(10,10,10,.9) 100%);
  opacity:0;transition:opacity .25s;
  display:flex;align-items:flex-end;justify-content:flex-end;padding:14px;
}
.card:hover .card-overlay{opacity:1}
.open-pill{
  display:inline-flex;align-items:center;gap:6px;
  padding:7px 12px;background:var(--accent);color:#fff;border-radius:999px;
  font-size:12px;font-weight:600;
}
.card-body{padding:18px 18px 20px;display:flex;flex-direction:column;gap:8px;flex:1}
.card-tag{
  font-family:var(--mono);font-size:11px;color:var(--accent);letter-spacing:.06em;
  text-transform:uppercase;
}
.card-title{margin:0;font-size:18px;font-weight:700;letter-spacing:-.01em}
.card-desc{margin:0;font-size:14px;color:var(--silver);line-height:1.5}
.card-meta{
  margin-top:6px;display:flex;flex-wrap:wrap;gap:6px;
}
.chip{
  font-family:var(--mono);font-size:10.5px;color:var(--muted);
  border:1px solid var(--line-2);border-radius:999px;padding:3px 9px;
  text-transform:lowercase;letter-spacing:.04em;
}
.chip.warn{color:#ffbd6a;border-color:#3a2e1a}

.work-foot{margin-top:32px;font-size:14px}

/* ===== services ===== */
.services-grid{
  display:grid;gap:18px;
  grid-template-columns:repeat(3,1fr);
}
@media(max-width:900px){.services-grid{grid-template-columns:1fr}}
.service{
  display:flex;flex-direction:column;gap:14px;
  padding:28px;border:1px solid var(--line);border-radius:var(--radius);
  background:var(--bg-2);
  transition:border-color .25s, transform .25s;
}
.service:hover{border-color:var(--line-2);transform:translateY(-2px)}
.service-feature{border-color:rgba(209,29,44,.45);background:linear-gradient(180deg,#120709,#0d0d0d)}
.service-feature:hover{border-color:var(--accent)}
.service{position:relative}
.service header{display:flex;flex-direction:column;gap:8px}

/* discount badge */
.discount{
  position:absolute;top:14px;right:14px;
  display:inline-flex;align-items:center;gap:7px;
  padding:6px 11px 6px 9px;border-radius:999px;
  background:rgba(209,29,44,.10);
  border:1px solid rgba(209,29,44,.45);
  font-family:var(--mono);font-size:10.5px;letter-spacing:.04em;
  color:#ffb8be;
  backdrop-filter:blur(4px);
  -webkit-backdrop-filter:blur(4px);
}
.discount-dot{
  width:6px;height:6px;border-radius:50%;background:var(--accent);
  box-shadow:0 0 8px var(--accent);
  animation:pulse 1.8s ease-in-out infinite;
}
.discount-pct{color:#fff;font-weight:700;font-size:11.5px}
.discount-txt{color:#dcdcdc;opacity:.85}
@media(max-width:380px){.discount-txt{display:none}}
.accent-soft{color:#ffb8be}
.service-tag{font-family:var(--mono);font-size:11px;color:var(--accent);letter-spacing:.1em;text-transform:uppercase}
.service h3{margin:0;font-size:22px;font-weight:700;letter-spacing:-.01em}
.service p{margin:0;font-size:14.5px;color:#dcdcdc}
.price{
  margin-top:auto;padding-top:16px;border-top:1px dashed var(--line-2);
  display:flex;align-items:baseline;gap:8px;
}
.from{font-family:var(--mono);font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.1em}
.amount{font-size:34px;font-weight:800;letter-spacing:-.02em}
.cur{font-size:18px;color:var(--silver)}
.services-note{margin:28px 0 0;font-size:14px}

/* ===== contact ===== */
.contact-list{display:flex;flex-direction:column;gap:0;border-top:1px solid var(--line)}
.contact-row{
  display:grid;grid-template-columns:1.2fr 2fr auto;gap:24px;align-items:center;
  padding:22px 6px;border-bottom:1px solid var(--line);
  text-align:left;width:100%;
  transition:background .2s, padding .2s;
}
.contact-row:hover{background:#111;padding-left:14px}
.c-key{font-family:var(--mono);font-size:13px;color:var(--silver);text-transform:lowercase;letter-spacing:.04em}
.c-val{font-size:18px;color:#fff;font-weight:500;transition:color .2s}
.contact-row:hover .c-val{color:var(--accent)}
.c-val.is-revealed{color:var(--accent);font-family:var(--mono);font-size:16px}
.c-act{font-size:18px;color:var(--muted);transition:transform .25s, color .25s}
.contact-row:hover .c-act{transform:translate(3px,-3px);color:#fff}
@media(max-width:640px){
  .contact-row{grid-template-columns:1fr auto;gap:8px;padding:18px 6px}
  .c-key{grid-column:1/-1;font-size:11px}
  .c-act{font-size:15px}
  .c-val{font-size:15px}
}
.contact-foot{margin-top:30px;color:var(--muted);font-size:14px;max-width:560px}

/* ===== footer ===== */
.footer{
  max-width:var(--maxw);margin:0 auto;
  padding:30px clamp(20px,4vw,48px) 60px;
  display:flex;justify-content:space-between;align-items:center;gap:14px;
  border-top:1px solid var(--line);
  font-family:var(--mono);font-size:12px;color:var(--muted);
}
.footer .sep{margin:0 8px;color:var(--line-2)}
.foot-r button:hover{color:var(--accent)}
@media(max-width:600px){.footer{flex-direction:column;align-items:flex-start}}

/* ===== toast ===== */
.toast{
  position:fixed;left:50%;bottom:30px;transform:translate(-50%,30px);
  background:#fff;color:#0a0a0a;padding:12px 18px;border-radius:999px;
  font-size:13px;font-weight:600;letter-spacing:.01em;
  box-shadow:0 20px 40px -10px rgba(0,0,0,.5);
  opacity:0;pointer-events:none;transition:all .35s cubic-bezier(.2,.8,.2,1);
  z-index:100;
}
.toast.show{opacity:1;transform:translate(-50%,0)}

/* ===== reveal anim ===== */
.reveal{opacity:0;transform:translateY(18px);transition:opacity .7s ease, transform .7s ease}
.reveal.in{opacity:1;transform:none}

/* ===== selection ===== */
::selection{background:var(--accent);color:#fff}

/* ===== mobile refinements ===== */
@media(max-width:760px){
  .hero{padding-top:32px}
  .hero-actions{margin-bottom:48px}
  .hero-meta{grid-template-columns:repeat(2,1fr)}
  .meta-cell{padding:18px 16px}
  .meta-cell:nth-child(2){border-right:0}
  .meta-cell:nth-child(-n+2){border-bottom:1px solid var(--line)}
  .meta-cell:nth-child(3){border-right:1px solid var(--line)}
  .meta-cell:hover{padding-left:22px}
  .meta-text{font-size:14px}
  .meta-arrow{top:14px;right:14px;font-size:12px}

  .nav{padding:14px 18px}
  .brand-name{font-size:14px}
  .cta{padding:8px 12px;font-size:12px}

  .section{padding:60px 18px}
  .section h2{font-size:32px}
  .section-head{margin-bottom:32px}

  .about-lead{font-size:18px}
  .about-cols{gap:22px;padding-top:24px}

  .cards{gap:14px;grid-template-columns:1fr}
  .card-preview{aspect-ratio:16/11}
  .card-body{padding:16px}
  .card-title{font-size:16px}
  .card-desc{font-size:13.5px}

  .service{padding:22px;padding-top:54px}
  .discount{top:12px;right:12px;padding:5px 10px 5px 8px}
  .amount{font-size:28px}

  .footer{padding:22px 18px 40px;font-size:11px}
  .footer .sep{display:none}
  .foot-l{display:flex;flex-direction:column;gap:4px}

  .intro-text{font-size:64px}
}

@media(max-width:420px){
  .hero-title{font-size:42px}
  .hero-sub{font-size:14.5px}
  .btn{padding:12px 18px;font-size:13px}
  .section h2{font-size:26px}
  .nav-links{display:none}
}

/* reduce motion */
@media(prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important}
  .intro{display:none}
  body.intro-active{overflow:auto}
  .hero{opacity:1}
}
