:root{
  --navy:#0F1E2C;
  --navy-2:#182B3D;
  --navy-3:#22384E;
  --tangerine:#F16F26;
  --tangerine-dim:#C85817;
  --white:#FFFFFF;
  --ink-dim:#9FB0BC;
  --line:rgba(255,255,255,0.12);
  --display:'Noto Sans Georgian', sans-serif;
  --mono:'Oswald', sans-serif;
}
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  font-family:var(--display);
  background:var(--navy);
  color:var(--white);
  overflow-x:hidden;
  cursor:default;
}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *{animation-duration:0.01ms !important; animation-iteration-count:1 !important; transition-duration:0.01ms !important;}
}
a{color:inherit; text-decoration:none;}
img{display:block; max-width:100%;}
.wrap{max-width:1240px; margin:0 auto; padding:0 40px;}

/* cursor glow */
#glow{
  position:fixed; top:0; left:0; width:460px; height:460px; border-radius:50%;
  background:radial-gradient(circle, rgba(241,111,38,0.08) 0%, transparent 70%);
  pointer-events:none; z-index:1; transform:translate(-50%,-50%);
  transition:opacity .3s ease; will-change:transform;
}

/* ===== NAV ===== */
header.site-nav{
  position:fixed; top:0; left:0; right:0; z-index:200;
  display:flex; align-items:center; justify-content:space-between;
  padding:20px 40px;
}
.nav-pillbar{
  position:relative; display:flex; gap:4px; background:rgba(255,255,255,0.06);
  backdrop-filter:blur(14px); border:1px solid var(--line); border-radius:100px; padding:5px;
}
.nav-pill-bg{
  position:absolute; top:5px; bottom:5px; left:5px; width:80px; border-radius:100px;
  background:var(--tangerine); z-index:0;
  transition:transform .45s cubic-bezier(.65,0,.35,1), width .45s cubic-bezier(.65,0,.35,1);
}
.nav-pillbar a{
  position:relative; z-index:1; padding:9px 18px; font-size:13.5px; font-weight:500;
  color:var(--ink-dim); border-radius:100px; transition:color .3s ease; white-space:nowrap;
}
.nav-pillbar a.active{color:var(--navy); font-weight:700;}
.logo-img{height:44px; width:auto;}
.nav-cta{
  font-family:var(--mono); font-size:12.5px; letter-spacing:0.06em; text-transform:uppercase; color:var(--navy);
  background:var(--tangerine); padding:11px 22px; border-radius:100px; font-weight:600;
  transition:transform .2s ease, background .2s ease;
}
.nav-cta:hover{background:#FF8A45; transform:translateY(-1px);}
.nav-right{ display:flex; align-items:center; gap:14px; }
.nav-burger{
  display:none; flex-direction:column; justify-content:center; align-items:center; gap:5px;
  width:40px; height:40px; border-radius:50%; border:1px solid var(--line);
  background:rgba(255,255,255,0.06); cursor:pointer; flex-shrink:0;
}
.nav-burger span{ width:16px; height:2px; background:var(--white); border-radius:2px; transition:transform .25s ease, opacity .25s ease; }
.nav-burger.is-open span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
.nav-burger.is-open span:nth-child(2){ opacity:0; }
.nav-burger.is-open span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }
.mobile-nav{
  position:fixed; top:0; right:0; z-index:190; width:min(78vw,320px); height:100vh;
  background:var(--navy-2); border-left:1px solid var(--line);
  display:flex; flex-direction:column; gap:2px; padding:100px 28px 28px;
  transform:translateX(100%); transition:transform .4s cubic-bezier(.16,1,.3,1);
}
.mobile-nav.is-open{ transform:translateX(0); }
.mobile-nav-link{
  padding:16px 4px; font-size:18px; font-weight:600; color:var(--ink-dim);
  border-bottom:1px solid var(--line); transition:color .2s ease;
}
.mobile-nav-link.active{ color:var(--tangerine); }
@media (max-width:860px){ .nav-pillbar{display:none;} .nav-burger{display:flex;} }
@media (min-width:861px){ .mobile-nav{display:none;} }
@media (max-width:600px){
  header.site-nav{ padding:16px 20px; }
  .logo-img{ height:34px; }
  .nav-cta{ padding:10px 16px; font-size:11.5px; }
}

/* ===== HERO ===== */
.hero{
  min-height:100vh; position:relative; display:flex; flex-direction:column; justify-content:center;
  padding-top:110px; overflow:hidden;
}
.blob{ position:absolute; border-radius:50%; filter:blur(90px); z-index:0; opacity:0.55; }
.blob-1{ width:620px; height:620px; background:radial-gradient(circle, var(--tangerine), transparent 70%);
  top:-160px; right:-120px; animation:float1 22s ease-in-out infinite; }
.blob-2{ width:480px; height:480px; background:radial-gradient(circle, #2C4B69, transparent 70%);
  bottom:-140px; left:-100px; animation:float2 26s ease-in-out infinite; }
.blob-3{ width:340px; height:340px; background:radial-gradient(circle, var(--tangerine-dim), transparent 70%);
  top:40%; left:55%; animation:float3 30s ease-in-out infinite; opacity:0.35;}
@keyframes float1{ 0%,100%{transform:translate(0,0) scale(1);} 50%{transform:translate(-60px,50px) scale(1.1);} }
@keyframes float2{ 0%,100%{transform:translate(0,0) scale(1);} 50%{transform:translate(50px,-40px) scale(1.15);} }
@keyframes float3{ 0%,100%{transform:translate(0,0) scale(1);} 50%{transform:translate(-40px,-60px) scale(0.9);} }

.hero-inner{ position:relative; z-index:2; }
.hero h1{
  font-size:clamp(48px, 8.5vw, 130px); font-weight:900; line-height:0.98; letter-spacing:-0.02em;
  max-width:1000px;
}
.hero h1 .line{ display:block; overflow:hidden; }
.hero h1 em{ font-style:normal; color:var(--tangerine); }
.hero p.sub{
  max-width:480px; font-size:18px; color:var(--ink-dim); margin-top:32px; font-weight:400; line-height:1.6;
}
.hero-ctas{ display:flex; gap:16px; margin-top:44px; flex-wrap:wrap; }
.btn-primary{
  background:var(--tangerine); color:var(--navy); padding:17px 34px; border-radius:100px;
  font-size:15px; font-weight:700; border:none; cursor:pointer; display:inline-flex; align-items:center; gap:10px;
  transition:transform .25s cubic-bezier(.34,1.56,.64,1), background .2s ease;
}
.btn-primary:hover{ background:#FF8A45; transform:translateY(-3px) scale(1.02); }
.btn-ghost{
  border:1px solid var(--line); color:var(--white); padding:17px 34px; border-radius:100px;
  font-size:15px; font-weight:500; transition:border-color .2s ease, background .2s ease;
}
.btn-ghost:hover{ border-color:var(--tangerine); background:rgba(241,111,38,0.08); }

.ticker{ margin-top:100px; position:relative; z-index:2; border-top:1px solid var(--line); overflow:hidden; padding:22px 0; white-space:nowrap; }
.ticker-track{ display:inline-flex; animation:scroll-left 38s linear infinite; }
.ticker-item{ font-family:var(--mono); font-size:13px; letter-spacing:0.06em; color:var(--ink-dim); padding:0 32px; display:inline-flex; align-items:center; gap:32px; text-transform:uppercase; }
.ticker-item b{ color:var(--tangerine); font-weight:500; }
@keyframes scroll-left{ from{transform:translateX(0);} to{transform:translateX(-50%);} }
@media (max-width:600px){
  .hero{ padding-top:96px; }
  .hero-ctas{ margin-top:34px; }
  .ticker{ margin-top:56px; padding:16px 0; }
  .ticker-item{ padding:0 20px; gap:20px; font-size:12px; }
  .btn-primary, .btn-ghost{ padding:14px 24px; font-size:14px; }
  .hero h1{ font-size:clamp(30px, 10vw, 44px); }
}

/* ===== REVEAL ===== */
.reveal{ opacity:0; transform:translateY(36px); transition:opacity .8s cubic-bezier(.16,1,.3,1), transform .8s cubic-bezier(.16,1,.3,1); }
.reveal.is-visible{ opacity:1; transform:translateY(0); }
.reveal-delay-1.is-visible{ transition-delay:.08s; }
.reveal-delay-2.is-visible{ transition-delay:.16s; }
.reveal-delay-3.is-visible{ transition-delay:.24s; }

/* ===== SECTION LABEL ===== */
.chapter-head{ display:flex; align-items:baseline; gap:20px; margin-bottom:70px; flex-wrap:wrap; }
.chapter-idx{ font-family:var(--mono); font-size:15px; color:var(--tangerine); font-weight:600; letter-spacing:0.08em; }
.chapter-title{ font-size:clamp(30px,4vw,50px); font-weight:800; letter-spacing:-0.01em; }
.chapter-sub{ color:var(--ink-dim); font-size:16px; max-width:460px; margin-top:14px; font-weight:400; }
@media (max-width:600px){ .chapter-head{ margin-bottom:44px; } }

/* ===== SERVICES (big alternating chapters) ===== */
section.services{ padding:150px 0; position:relative; }
.svc-row{
  display:grid; grid-template-columns:120px 1fr 1fr; align-items:center; gap:40px;
  padding:44px 0; border-top:1px solid var(--line);
}
.svc-row:last-child{ border-bottom:1px solid var(--line); }
.svc-num{ font-family:var(--mono); font-size:44px; font-weight:300; color:rgba(255,255,255,0.16); transition:color .4s ease; }
.svc-row:hover .svc-num{ color:var(--tangerine-dim); }
.svc-title{ font-size:clamp(22px,2.6vw,32px); font-weight:700; display:flex; align-items:center; gap:16px; }
.svc-icon{ width:26px; height:26px; color:var(--tangerine); flex-shrink:0; }
.svc-icon svg{ width:100%; height:100%; }
.svc-desc{ color:var(--ink-dim); font-size:15px; line-height:1.6; }
@media (max-width:760px){
  .svc-row{ grid-template-columns:1fr; gap:12px; }
  .svc-num{ font-size:30px; }
}
@media (max-width:600px){
  section.services{ padding:90px 0; }
  .svc-row{ padding:30px 0; }
}

/* ===== WORK ===== */
section.work{ padding:120px 0; background:var(--navy-2); position:relative; }
.work-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
.work-card{
  border:1px solid var(--line); border-radius:6px; overflow:hidden; background:var(--navy);
  transition:transform .4s cubic-bezier(.16,1,.3,1), border-color .3s ease;
  cursor:pointer;
}
.work-card:hover{ transform:translateY(-8px); border-color:var(--tangerine-dim); }
.work-visual{ height:190px; position:relative; display:flex; align-items:flex-end; justify-content:space-between; padding:18px; overflow:hidden; background-size:cover; background-position:center;}
.work-visual::after{ content:''; position:absolute; inset:0; background:linear-gradient(180deg, rgba(15,30,44,0) 55%, rgba(15,30,44,0.55) 100%); transition:background .4s ease; }
.work-card:hover .work-visual::after{ background:linear-gradient(180deg, rgba(15,30,44,0.15) 0%, rgba(15,30,44,0.65) 100%); }
.work-visual .tag{
  position:relative; z-index:1;
  font-family:var(--mono); font-size:11px; letter-spacing:0.08em; text-transform:uppercase;
  background:rgba(15,30,44,0.65); backdrop-filter:blur(4px); padding:6px 12px; border-radius:100px; color:var(--white); font-weight:600;
}
.work-visual .view-hint{
  position:relative; z-index:1; align-self:flex-end;
  font-family:var(--mono); font-size:10.5px; letter-spacing:0.06em; text-transform:uppercase;
  color:var(--white); background:rgba(241,111,38,0.9); padding:6px 12px; border-radius:100px; font-weight:600;
  opacity:0; transform:translateY(6px); transition:opacity .3s ease, transform .3s ease;
}
.work-card:hover .view-hint{ opacity:1; transform:translateY(0); }
.wv-1{background: repeating-linear-gradient(115deg, rgba(241,111,38,0.22) 0 2px, transparent 2px 26px), linear-gradient(160deg,#22384E,#182B3D);}
.wv-2{background: radial-gradient(circle at 75% 20%, rgba(241,111,38,0.34), transparent 55%), linear-gradient(200deg,#1E3348,#0F1E2C);}
.wv-3{background: repeating-radial-gradient(circle at 30% 100%, rgba(255,255,255,0.07) 0 1px, transparent 1px 18px), linear-gradient(180deg,#203547,#152633);}
.wv-4{background: linear-gradient(115deg, rgba(241,111,38,0.18) 25%, transparent 25%), linear-gradient(295deg, rgba(241,111,38,0.13) 25%, transparent 25%), linear-gradient(150deg,#213950,#0F1E2C);}
.wv-5{background: repeating-linear-gradient(0deg, rgba(255,255,255,0.07) 0 1px, transparent 1px 22px), linear-gradient(160deg,#203446,#182B3D);}
.wv-6{background: radial-gradient(circle at 25% 80%, rgba(241,111,38,0.28), transparent 60%), linear-gradient(210deg,#1B2F41,#0F1E2C);}
.work-body{ padding:22px 22px 26px; }
.work-body h3{ font-size:18px; font-weight:700; margin-bottom:8px; }
.work-meta{ display:flex; gap:16px; font-family:var(--mono); font-size:11px; color:var(--ink-dim); text-transform:uppercase; letter-spacing:0.05em; font-weight:500; }
@media (max-width:900px){ .work-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:600px){
  .work-grid{ grid-template-columns:1fr; }
  section.work{ padding:80px 0; }
}

/* ===== LIGHTBOX GALLERY ===== */
.lightbox{
  position:fixed; inset:0; z-index:500; display:none;
  align-items:center; justify-content:center; padding:26px;
}
.lightbox.is-open{ display:flex; }
.lightbox-backdrop{
  position:absolute; inset:0; background:rgba(9,15,21,0.92); backdrop-filter:blur(6px);
}
.lightbox-inner{
  position:relative; z-index:1; width:100%; max-width:1080px; max-height:92vh;
  display:flex; flex-direction:column; gap:18px;
  animation:lb-in .35s cubic-bezier(.16,1,.3,1);
}
@keyframes lb-in{ from{opacity:0; transform:translateY(18px) scale(.98);} to{opacity:1; transform:translateY(0) scale(1);} }
.lightbox-top{ display:flex; align-items:flex-start; justify-content:space-between; gap:20px; }
.lightbox-title{ font-size:clamp(20px,3vw,28px); font-weight:800; }
.lightbox-sub{ font-family:var(--mono); font-size:12px; letter-spacing:0.06em; text-transform:uppercase; color:var(--tangerine); margin-top:6px; font-weight:600; }
.lightbox-close{
  flex-shrink:0; width:42px; height:42px; border-radius:50%; border:1px solid var(--line);
  background:rgba(255,255,255,0.06); color:var(--white); font-size:22px; line-height:1; cursor:pointer;
  transition:background .2s ease, border-color .2s ease, transform .2s ease;
}
.lightbox-close:hover{ background:var(--tangerine); border-color:var(--tangerine); color:var(--navy); transform:rotate(90deg); }
.lightbox-stage-wrap{ position:relative; }
.lightbox-stage{
  width:100%; aspect-ratio:16/9; border-radius:8px; overflow:hidden; position:relative;
  background:var(--navy-2); border:1px solid var(--line);
}
.lightbox-stage img, .lightbox-stage .lb-ph{ width:100%; height:100%; object-fit:cover; display:block; }
.lightbox-counter{
  position:absolute; bottom:14px; right:14px; font-family:var(--mono); font-size:12px;
  background:rgba(15,30,44,0.7); backdrop-filter:blur(4px); padding:5px 12px; border-radius:100px; color:var(--white);
}
.lightbox-nav{
  position:absolute; top:50%; transform:translateY(-50%); z-index:2; width:46px; height:46px; border-radius:50%;
  border:1px solid var(--line); background:rgba(15,30,44,0.7); backdrop-filter:blur(4px); color:var(--white);
  font-size:22px; cursor:pointer; display:flex; align-items:center; justify-content:center;
  transition:background .2s ease, border-color .2s ease, transform .2s ease;
}
.lightbox-nav:hover{ background:var(--tangerine); border-color:var(--tangerine); color:var(--navy); }
.lightbox-nav.prev{ left:-8px; }
.lightbox-nav.next{ right:-8px; }
@media (max-width:700px){
  .lightbox-nav.prev{ left:4px; } .lightbox-nav.next{ right:4px; }
}
.lightbox-thumbs{
  display:flex; gap:10px; overflow-x:auto; padding-bottom:4px;
}
.lightbox-thumb{
  flex:0 0 auto; width:88px; height:60px; border-radius:5px; overflow:hidden; cursor:pointer;
  border:2px solid transparent; opacity:0.55; transition:opacity .2s ease, border-color .2s ease;
}
.lightbox-thumb img, .lightbox-thumb .lb-ph{ width:100%; height:100%; object-fit:cover; display:block; }
.lightbox-thumb:hover{ opacity:0.85; }
.lightbox-thumb.active{ opacity:1; border-color:var(--tangerine); }
@media (max-width:600px){
  .lightbox{ padding:14px; }
  .lightbox-inner{ gap:12px; }
  .lightbox-thumb{ width:64px; height:44px; }
}

/* ===== CONTACT / CLOSER ===== */
section.contact{ padding:180px 0 140px; position:relative; overflow:hidden; text-align:center; }
section.contact .blob-1{ top:auto; bottom:-200px; right:-100px; }
.contact-inner{ position:relative; z-index:2; display:flex; flex-direction:column; align-items:center; }
.contact h2{ font-size:clamp(38px,7vw,90px); font-weight:900; letter-spacing:-0.02em; line-height:1.02; max-width:900px; }
.contact h2 em{ font-style:normal; color:var(--tangerine); }
.contact p{ color:var(--ink-dim); font-size:17px; margin-top:26px; max-width:460px; }
.contact-ctas{ display:flex; gap:16px; margin-top:44px; flex-wrap:wrap; justify-content:center; }
.contact-facts{ display:flex; gap:46px; margin-top:70px; flex-wrap:wrap; justify-content:center; }
.contact-fact .k{ font-family:var(--mono); font-size:11px; color:var(--tangerine); text-transform:uppercase; letter-spacing:0.08em; font-weight:600; }
.contact-fact .v{ font-size:15px; margin-top:8px; color:var(--white); }
.quick-trigger{
  margin-top:40px; display:inline-flex;
}

/* ===== QUICK CONTACT MODAL ===== */
.quickmodal{
  position:fixed; inset:0; z-index:500; display:none; align-items:center; justify-content:center; padding:20px;
}
.quickmodal.is-open{ display:flex; }
.quickmodal-backdrop{
  position:absolute; inset:0; background:rgba(9,15,21,0.92); backdrop-filter:blur(6px);
}
.quickmodal-card{
  position:relative; z-index:1; width:100%; max-width:420px;
  background:var(--navy-2); border:1px solid var(--line); border-radius:10px; padding:36px;
  animation:lb-in .35s cubic-bezier(.16,1,.3,1); text-align:left;
}
.quickmodal-close{
  position:absolute; top:16px; right:16px; width:36px; height:36px; border-radius:50%;
  border:1px solid var(--line); background:rgba(255,255,255,0.06); color:var(--white); font-size:20px;
  line-height:1; cursor:pointer; transition:background .2s ease, border-color .2s ease, transform .2s ease;
}
.quickmodal-close:hover{ background:var(--tangerine); border-color:var(--tangerine); color:var(--navy); transform:rotate(90deg); }
.quickmodal-title{ font-size:21px; font-weight:800; padding-right:30px; }
.quickmodal-sub{ color:var(--ink-dim); font-size:14px; margin-top:8px; }
.quickmodal-form{ display:flex; gap:10px; margin-top:26px; flex-wrap:wrap; }
.quickmodal-form input{
  flex:1 1 180px; border:1px solid var(--line); border-radius:6px; padding:13px 14px; font-size:14px;
  font-family:var(--display); background:rgba(255,255,255,0.05); color:var(--white);
}
.quickmodal-form input:focus{ outline:none; border-color:var(--tangerine); }
.quickmodal-form input::placeholder{ color:var(--ink-dim); }
.quickmodal-form .btn-primary{ flex:0 0 auto; padding:13px 24px; }
.quickmodal-success{ display:none; margin-top:20px; font-size:14px; color:var(--tangerine); }
.quickmodal-success.is-visible{ display:block; }
.quickmodal-form.is-hidden{ display:none; }
@media (max-width:600px){
  section.contact{ padding:110px 0 80px; }
  .contact-ctas{ margin-top:34px; }
  .contact-facts{ gap:28px; margin-top:50px; }
  .quickmodal-card{ padding:26px; }
  .quickmodal-form{ flex-direction:column; }
  .quickmodal-form .btn-primary{ width:100%; justify-content:center; }
}

/* ===== SERVICE DETAIL MODAL ===== */
.servicemodal{
  position:fixed; inset:0; z-index:500; display:none;
  align-items:center; justify-content:center; padding:26px;
}
.servicemodal.is-open{ display:flex; }
.servicemodal-backdrop{
  position:absolute; inset:0; background:rgba(9,15,21,0.92); backdrop-filter:blur(6px);
}
.servicemodal-card{
  position:relative; z-index:1; width:100%; max-width:920px; max-height:88vh;
  background:var(--navy-2); border:1px solid var(--line); border-radius:10px; overflow:hidden;
  display:grid; grid-template-columns:0.9fr 1.1fr;
  animation:lb-in .35s cubic-bezier(.16,1,.3,1);
}
.servicemodal-media{
  background-size:cover; background-position:center; min-height:280px;
  border-right:1px solid var(--line);
}
.servicemodal-content{
  padding:40px 40px 32px; display:flex; flex-direction:column; overflow-y:auto;
}
.servicemodal-title{ font-size:clamp(22px,2.6vw,28px); font-weight:800; margin-bottom:18px; }
.servicemodal-desc p{ color:var(--ink-dim); font-size:15px; line-height:1.7; margin-bottom:14px; }
.servicemodal-ctas{ display:flex; gap:14px; margin-top:22px; flex-wrap:wrap; }
.servicemodal-close{
  position:absolute; top:16px; right:16px; z-index:2; width:38px; height:38px; border-radius:50%;
  border:1px solid var(--line); background:rgba(15,30,44,0.6); backdrop-filter:blur(4px); color:var(--white); font-size:20px;
  line-height:1; cursor:pointer; transition:background .2s ease, border-color .2s ease, transform .2s ease;
}
.servicemodal-close:hover{ background:var(--tangerine); border-color:var(--tangerine); color:var(--navy); transform:rotate(90deg); }
@media (max-width:760px){
  .servicemodal-card{ grid-template-columns:1fr; grid-template-rows:auto 1fr; overflow-y:auto; }
  .servicemodal-media{ min-height:200px; border-right:none; border-bottom:1px solid var(--line); }
  .servicemodal-content{ padding:28px 24px; }
}
@media (max-width:600px){
  .servicemodal{ padding:14px; }
}

/* ===== FOOTER ===== */
footer{ padding:36px 0; border-top:1px solid var(--line); }
.footer-row{ display:flex; justify-content:space-between; align-items:center; font-size:12.5px; color:var(--ink-dim); flex-wrap:wrap; gap:12px; }
.footer-row .logo-img{ height:34px; opacity:0.85; }
