:root{
  --ink:#0A0A0A;
  --ink-soft:#191919;
  --paper:#F4F4F2;
  --paper-soft:#D7D7D5;
  --paper-muted:#B7B7B3;
  --line: rgba(255,255,255,0.14);
  --line-soft: rgba(255,255,255,0.1);
  --text:#F4F4F2;
  --ivory:#F4F4F2;
  --muted: rgba(244,244,242,0.76);
  --muted-strong: rgba(244,244,242,0.58);
  --lav: rgba(244,244,242,0.72);
  --panel:#0C0C0C;
  --panel-alt:#111111;
  --rule-dark: rgba(255,255,255,0.08);
  --rule: rgba(255,255,255,0.12);
  --shadow-soft: 0 14px 30px rgba(0,0,0,0.14);
  --sans: 'Montserrat', sans-serif;
  --maxw: 1180px;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:#090909;
  color:var(--text);
  font-family:var(--sans);
  font-weight:400;
  letter-spacing:0.01em;
  line-height:1.6;
  font-size:15px;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}

img{max-width:100%; display:block;}
a, button, input, select, textarea{transition:color 0.25s ease, background-color 0.25s ease, border-color 0.25s ease, box-shadow 0.25s ease, transform 0.25s ease, opacity 0.25s ease;}

.intro-screen{
  height:100vh;
  width:100%;
  display:flex;
  align-items:center;
  justify-content:center;
  background-color:#000000;
  opacity:1;
  visibility:visible;
  pointer-events:auto;
  border-bottom:1px solid var(--rule-dark);
}

.intro-screen.is-hidden{
  opacity:1;
  visibility:visible;
}

.intro-logo-image{
  display:block;
  width:min(42vw, 420px);
  max-height:32vh;
  height:auto;
  object-fit:contain;
  animation:introWordmark 1.1s ease-out;
}

@keyframes introWordmark {
  0% {
    opacity:0;
    transform:scale(0.86) translateY(8px);
  }
  55% {
    opacity:1;
    transform:scale(1) translateY(0);
  }
  100% {
    opacity:1;
    transform:scale(1) translateY(0);
  }
}

a{color:inherit;}

.wrap{max-width:var(--maxw); margin:0 auto; padding:0 32px;}

h1,h2,h3{
  font-family:var(--sans);
  font-weight:400;
  margin:0;
  letter-spacing:-0.055em;
}

p, li, dd, dt, label, input, textarea, select { letter-spacing:0.01em; }

@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *{animation-duration:0.01ms !important; animation-iteration-count:1 !important; transition-duration:0.01ms !important;}
}

/* ---------- Header / nav ---------- */
header{
  position:sticky;
  top:0;
  z-index:50;
  background:rgba(0,0,0,0.78);
  backdrop-filter:blur(14px);
  border-bottom:1px solid var(--rule-dark);
  box-shadow:0 1px 0 rgba(255,255,255,0.02);
}

body.intro-complete {
  overflow-x:hidden;
}

.nav{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  min-height:78px;
}

.brand-mark{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  text-decoration:none;
  color:var(--ivory);
  position:relative;
  top:0;
  left:0;
  transform:none;
  transition:none;
}

.brand-logo{
  display:block;
  height:34px;
  width:auto;
  max-width:180px;
  object-fit:contain;
  filter:brightness(1.02);
}

.brand-word{
  font-size:clamp(1.7rem, 2vw, 2.4rem);
  font-weight:400;
}

.brand-domain{
  font-size:clamp(1rem, 1.2vw, 1.4rem);
  font-weight:500;
  opacity:0.8;
}

nav.links {
  display:flex;
  align-items:center;
  gap:32px;
  font-size:0.8rem;
  letter-spacing:0.05em;
  text-transform:uppercase;
  font-weight:500;
}

nav.links a {
  position:relative;
  text-decoration:none;
  color:rgba(245,245,243,0.78);
  padding:8px 0;
  transition:color 0.25s ease, opacity 0.25s ease;
}

nav.links a::after{
  content:'';
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  height:1px;
  background:var(--ivory);
  transform:scaleX(0);
  transform-origin:left;
  transition:transform 0.25s ease;
}

nav.links a:hover,
nav.links a:focus-visible{color:var(--ivory);}
nav.links a:hover::after,
nav.links a:focus-visible::after{transform:scaleX(1);}

.nav-cta{
  font-size:0.78rem;
  letter-spacing:0.05em;
  text-transform:uppercase;
  text-decoration:none;
  background:#111111;
  border:1px solid rgba(255,255,255,0.16);
  color:var(--ivory);
  padding:12px 18px;
  border-radius:4px;
  box-shadow:0 8px 18px rgba(0,0,0,0.12);
  transition:background 0.25s ease, border-color 0.25s ease, transform 0.25s ease, box-shadow 0.25s ease;
}


.lang-toggle{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:8px 10px;
  border-radius:4px;
  background:transparent;
  border:1px solid rgba(255,255,255,0.08);
  color:var(--ivory);
  font-size:0.78rem;
  cursor:pointer;
}
.lang-toggle .lang-en, .lang-toggle .lang-sq{opacity:0.6; font-weight:600}
.lang-toggle .lang-en.active, .lang-toggle .lang-sq.active{opacity:1}
.lang-toggle .sep{opacity:0.45}

.nav-cta:hover,
.nav-cta:focus-visible{
  background:#1a1a1a;
  border-color:rgba(255,255,255,0.28);
  box-shadow:0 10px 22px rgba(0,0,0,0.18);
  transform:translateY(-1px);
}

.burger{
  display:none;
  background:none;
  border:0;
  cursor:pointer;
  padding:6px;
}

.burger span{display:block; width:24px; height:2px; background:var(--ivory); margin:5px 0;}

.mobile-panel{
  display:none;
  flex-direction:column;
  background:#000;
  border-top:1px solid var(--rule-dark);
}

.mobile-panel a{
  padding:16px 32px;
  text-decoration:none;
  color:var(--ivory);
  border-bottom:1px solid var(--rule-dark);
  font-size:0.8rem;
  letter-spacing:0.12em;
  text-transform:uppercase;
}

.mobile-panel.open{display:flex;}

@media (max-width:860px){
  nav.links{display:none;}
  .nav-cta{display:none;}
  .burger{display:block;}
  .nav{padding:0 16px;}
}

/* ---------- Hero ---------- */
.hero{
  position:relative;
  padding:72px 0 48px;
  overflow:hidden;
}

.hero-grid {
  display:grid;
  grid-template-columns:1fr;
  align-items:center;
  min-height:calc(100vh - 180px);
}

.hero .wrap.hero-grid > div:first-child {
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:center;
  text-align:center;
}

.hero p.lede{
  display:block;
  margin:0;
  font-size:0.72rem;
  font-weight:500;
  letter-spacing:0.14em;
  text-transform:uppercase;
  color:rgba(245,245,243,0.7);
}

.hero-copy {
  width:min(100%, 860px);
  margin-top:22px;
}

.hero-copy h1 {
  font-size:clamp(2.5rem, 5.2vw, 6rem);
  line-height:0.96;
  letter-spacing:-0.065em;
  font-weight:400;
  text-transform:none;
}

.hero-actions{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:14px;
  margin-top:26px;
  flex-wrap:wrap;
}

.btn-primary,
.btn-ghost,
.btn-submit {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-size:0.78rem;
  letter-spacing:0.08em;
  text-transform:uppercase;
  font-weight:500;
  transition:transform 0.25s ease, background 0.25s ease, color 0.25s ease, border-color 0.25s ease, box-shadow 0.25s ease, opacity 0.25s ease;
}

.btn-primary {
  background:#111111;
  color:var(--ivory);
  text-decoration:none;
  padding:16px 26px;
  border:1px solid rgba(255,255,255,0.18);
  border-radius:4px;
  box-shadow:0 12px 24px rgba(0,0,0,0.12);
}

.btn-primary:hover,
.btn-primary:focus-visible {
  background:#1a1a1a;
  color:var(--ivory);
  transform:translateY(-1px);
  box-shadow:0 16px 28px rgba(0,0,0,0.16);
}

.btn-ghost {
  text-decoration:none;
  color:var(--ivory);
  padding:16px 4px;
  border-bottom:1px solid rgba(255,255,255,0.4);
  border-radius:0;
  opacity:0.9;
}

.btn-ghost:hover,
.btn-ghost:focus-visible {
  opacity:1;
  border-color:rgba(255,255,255,0.8);
}

.trust-strip{
  margin-top:36px;
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:14px;
  width:min(760px, 100%);
}

.trust-item{
  background:rgba(255,255,255,0.02);
  border:1px solid var(--rule-dark);
  border-radius:12px;
  padding:18px 18px 16px;
  display:flex;
  flex-direction:column;
  gap:8px;
  text-align:left;
  box-shadow:0 6px 18px rgba(0,0,0,0.08);
}

.trust-kicker{
  display:block;
  font-size:0.7rem;
  letter-spacing:0.12em;
  text-transform:uppercase;
  color:rgba(245,245,243,0.6);
}

.trust-item strong{
  font-size:0.96rem;
  line-height:1.4;
  font-weight:500;
  letter-spacing:-0.015em;
}

.metrics-row{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:16px;
  width:min(760px, 100%);
  margin-top:28px;
}

.metric-box{
  border-top:1px solid var(--rule-dark);
  padding-top:18px;
  display:flex;
  flex-direction:column;
  gap:6px;
  text-align:left;
}

.metric-value{
  font-size:clamp(1.7rem, 2vw, 2.5rem);
  line-height:1;
  letter-spacing:-0.07em;
  font-weight:500;
}

.metric-label{
  font-size:0.72rem;
  letter-spacing:0.12em;
  text-transform:uppercase;
  color:var(--muted);
}

.hero-figures,
.flight-panel,
.flight-path,
.flight-node,
.flight-label,
.flight-caption { display:none; }

/* ---------- Section shared ---------- */
section{padding:72px 0;}
.section-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:40px;
  margin-bottom:42px;
  border-bottom:1px solid var(--rule-dark);
  padding-bottom:22px;
}

.section-head h2{
  font-size:clamp(2rem, 3vw, 3.1rem);
  max-width:14ch;
  line-height:0.98;
  font-weight:300;
}

.section-head .idx{
  font-size:0.74rem;
  color:var(--muted);
  letter-spacing:0.13em;
  text-transform:uppercase;
  white-space:nowrap;
  font-weight:500;
}

.section-head p{
  max-width:34ch;
  color:var(--muted);
  font-size:0.96rem;
  margin:0;
  font-weight:400;
}

/* ---------- Services ---------- */
.services{background:#0A0A0A; color:var(--ivory);}
.services .section-head{border-bottom-color:transparent;}
.services .section-head .idx,
.services .section-head p{color:var(--lav);}

.service-row{
  display:grid;
  grid-template-columns:90px 1fr 1.3fr;
  gap:32px;
  padding:28px 0;
  border-top:1px solid var(--rule);
  align-items:start;
  transition:background 0.25s ease, transform 0.45s ease, border-color 0.25s ease, opacity 0.45s ease, box-shadow 0.25s ease;
}

.service-row:hover{
  background:rgba(255,255,255,0.015);
  border-color:rgba(255,255,255,0.2);
  transform:translateY(-1px);
  box-shadow:0 8px 20px rgba(0,0,0,0.08);
}

.service-row:last-child{border-bottom:1px solid var(--rule);}

.service-row.reveal-target,
.process-step.reveal-target,
.roster-cell.reveal-target,
.quote-block.reveal-target{
  opacity:0.78;
  transform:translateY(18px);
}

.service-row.reveal-target.is-visible,
.process-step.reveal-target.is-visible,
.roster-cell.reveal-target.is-visible,
.quote-block.reveal-target.is-visible{
  opacity:1;
  transform:translateY(0);
}

.service-num{
  font-size:0.9rem;
  font-weight:500;
  letter-spacing:0.11em;
  text-transform:uppercase;
  color:var(--paper-soft);
}

.service-row h3{font-size:1.38rem; font-weight:500; letter-spacing:-0.04em;}
.service-row .desc{color:var(--muted); font-size:0.96rem; max-width:52ch; line-height:1.7;}
.service-row .tags{margin-top:12px; display:flex; gap:10px; flex-wrap:wrap;}
.service-row .tags span{
  font-size:0.68rem;
  letter-spacing:0.08em;
  text-transform:uppercase;
  border:1px solid var(--rule);
  border-radius:999px;
  padding:7px 10px;
  background:rgba(255,255,255,0.01);
  transition:background 0.25s ease, border-color 0.25s ease;
}

.service-row .tags span:hover{background:rgba(255,255,255,0.03); border-color:rgba(255,255,255,0.18);}

@media (max-width:760px){
  .service-row{grid-template-columns:1fr; gap:10px;}
}

/* ---------- Process ---------- */
#process .section-head{
  margin-top:-61.33px;
  margin-bottom:42px;
  padding-top:0;
  padding-bottom:22px;
}

.process-grid{
  display:grid;
  grid-template-columns:repeat(4, minmax(0, 1fr));
  gap:14px;
}
.process-step{
  background:rgba(255,255,255,0.02);
  border:1px solid var(--rule-dark);
  border-radius:12px;
  padding:22px 18px 18px;
  display:flex;
  flex-direction:column;
  gap:12px;
  text-align:left;
  box-shadow:0 6px 18px rgba(0,0,0,0.08);
  transition:transform 0.35s ease, opacity 0.45s ease, border-color 0.35s ease, box-shadow 0.35s ease;
}
.process-step:hover{
  transform:translateY(-2px);
  border-color:rgba(255,255,255,0.16);
  box-shadow:0 10px 22px rgba(0,0,0,0.12);
}
.process-step .n{
  display:block;
  font-size:2rem;
  color:var(--paper-soft);
  letter-spacing:-0.06em;
  font-weight:500;
  line-height:1;
}
.process-step h3{
  font-size:1.08rem;
  margin:0;
  font-weight:500;
}
.process-step p{
  font-size:0.9rem;
  color:rgba(245,245,243,0.72);
  line-height:1.7;
  margin:0;
}

@media (max-width:860px){
  .process-grid{grid-template-columns:1fr 1fr; row-gap:14px;}
}
@media (max-width:520px){
  .process-grid{grid-template-columns:1fr;}
}

/* ---------- Client roster ---------- */
.roster{background:#111111;}
.roster-grid{
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  border-top:1px solid var(--rule-dark);
  border-left:1px solid var(--rule-dark);
}
.roster-cell{
  border-right:1px solid var(--rule-dark);
  border-bottom:1px solid var(--rule-dark);
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:112px;
  padding:30px 20px;
  text-align:center;
  font-size:1rem;
  letter-spacing:0.02em;
  color:rgba(245,245,243,0.8);
  transition:transform 0.45s ease, opacity 0.45s ease, box-shadow 0.25s ease;
}

.roster-cell:hover{box-shadow:inset 0 0 0 1px rgba(255,255,255,0.04);}

@media (max-width:760px){
  .roster-grid{grid-template-columns:repeat(2,1fr);}
}

.quote-block{
  margin-top:36px;
  padding-top:32px;
  border-top:1px solid var(--rule-dark);
  display:grid;
  grid-template-columns:0.4fr 1fr;
  gap:40px;
  transition:transform 0.45s ease, opacity 0.45s ease, box-shadow 0.25s ease;
  box-shadow:0 8px 18px rgba(0,0,0,0.08);
}
.quote-mark{font-size:4rem; color:var(--paper-soft); line-height:1; font-family:Georgia, serif;}
.quote-block blockquote{
  margin:0;
  max-width:32ch;
  font-size:1.35rem;
  line-height:1.45;
  font-family:Georgia, serif;
}
.quote-block cite{
  margin-top:18px;
  display:block;
  font-style:normal;
  color:rgba(245,245,243,0.7);
  font-size:0.84rem;
}
@media (max-width:760px){
  .quote-block{grid-template-columns:1fr;}
}

/* ---------- Contact ---------- */
.contact{background:#050505; color:var(--ivory);}
.contact .section-head{border-bottom-color:transparent;}
.contact .section-head p{color:var(--lav);}
.contact-grid{display:grid; grid-template-columns:1fr 1fr; gap:48px;}
.contact-info dl{margin:0;}
.contact-info dt{font-size:0.78rem; color:var(--lav); margin-top:26px;}
.contact-info dt:first-child{margin-top:0;}
.contact-info dd{margin:8px 0 0; font-size:1.2rem; font-family: Georgia, serif;}

.social-links{
  display:flex;
  flex-direction:column;
  gap:16px;
  margin-top:28px;
}

.social-link{
  display:flex;
  align-items:center;
  gap:12px;
  text-decoration:none;
  color:var(--text);
  width:fit-content;
  opacity:0.9;
  transition:opacity 0.25s ease, transform 0.25s ease;
}

.social-link:hover,
.social-link:focus-visible{opacity:1; transform:translateX(2px);}

.social-link:hover,
.social-link:focus-visible{opacity:1;}

.social-icon{
  width:16px;
  height:16px;
  stroke:currentColor;
  fill:none;
  stroke-width:1.6;
  flex-shrink:0;
}

.social-link svg path,
.social-link svg rect,
.social-link svg circle{stroke:currentColor; fill:none;}

.social-link > span{
  display:flex;
  flex-direction:column;
  gap:2px;
  line-height:1.2;
}

.social-link small{
  display:block;
  font-size:0.68rem;
  letter-spacing:0.12em;
  text-transform:uppercase;
  color:var(--muted-strong);
}

.social-link strong{
  display:block;
  font-size:0.78rem;
  font-weight:500;
  letter-spacing:0.01em;
}

form{display:flex; flex-direction:column; gap:20px;}
.field{display:flex; flex-direction:column; gap:8px;}
.field label{font-size:0.78rem; color:var(--lav);}
.field input, .field textarea, .field select{
  background:rgba(255,255,255,0.01);
  border:1px solid rgba(255,255,255,0.12);
  border-radius:4px;
  color:var(--ivory);
  font-family:var(--sans);
  font-size:1rem;
  padding:12px 14px;
  outline:none;
}
.field select option{color:#111;}
.field input:focus, .field textarea:focus, .field select:focus{border-color:rgba(255,255,255,0.28); box-shadow:0 0 0 4px rgba(255,255,255,0.02);}
.field textarea{resize:vertical; min-height:90px;}
.submit-row{display:flex; align-items:center; gap:18px; margin-top:8px; flex-wrap:wrap;}
.btn-submit{
  background:var(--text);
  color:var(--ink);
  border:1px solid var(--text);
  padding:15px 26px;
  cursor:pointer;
  font-weight:600;
  border-radius:4px;
  box-shadow:0 12px 24px rgba(255,255,255,0.06);
}
.btn-submit:hover,
.btn-submit:focus-visible{background:transparent; color:var(--text); box-shadow:none;}
.form-note{font-size:0.78rem; color:var(--lav);}

/* ---------- Footer ---------- */
footer{
  padding:28px 0;
  border-top:1px solid var(--rule-dark);
  font-size:0.8rem;
  color:rgba(245,245,243,0.72);
}

footer a,
.mobile-panel a,
nav.links a,
.social-link,
.btn-primary,
.btn-ghost,
.btn-submit,
.nav-cta{
  text-decoration:none;
}

.footer-inner{
  display:flex;
  justify-content:center;
  align-items:center;
  flex-wrap:wrap;
  gap:16px;
  width:100%;
}

.footer-copyright{
  width:100%;
  text-align:center;
}

footer a{text-decoration:none; color:rgba(245,245,243,0.72);}
footer a:hover{color:var(--ivory);}

:focus-visible{outline:2px solid var(--paper-soft); outline-offset:2px;}

@media (max-width:720px){
  .wrap{padding:0 20px;}
  .hero{padding-top:48px;}
  .hero-copy h1{font-size:clamp(2.5rem, 15vw, 4.4rem);}
  .trust-strip,
  .metrics-row,
  .contact-grid,
  .section-head{grid-template-columns:1fr; display:grid;}
  .section-head{align-items:flex-start; gap:18px;}
  .section-head h2{max-width:none;}
  .section-head p{max-width:none;}
  .roster-grid{grid-template-columns:1fr;}
  .submit-row{align-items:flex-start; flex-direction:column;}
}
