:root{
    --ink:#12395c;
    --ink-soft:#1e6091;
    --paper:#faf9f6;
    --paper-2:#f0eee8;
    --line:#e1ddd3;
    --muted:#6e6a62;
    --accent:#7a2333;
    --accent-ink:#5c1a26;
    --white:#ffffff;
    --radius:2px;
    --img-radius:16px;
    --maxw:1240px;
    --pad:clamp(20px, 5vw, 64px);
  }

  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    margin:0;
    background:var(--paper);
    color:var(--ink);
    font-family:'Inter', 'Roboto', sans-serif;
    -webkit-font-smoothing:antialiased;
    overflow-x:hidden;
    overflow-wrap:break-word;
  }
  h1,h2,h3, .eyebrow, .wordmark, .btn, nav a{
    font-family:'Outfit', 'Roboto', sans-serif;
  }
  img{max-width:100%; display:block;}
  a{color:inherit; text-decoration:none;}
  ul{list-style:none; margin:0; padding:0;}
  section{position:relative;}

  .wrap{max-width:var(--maxw); margin:0 auto; padding-left:var(--pad); padding-right:var(--pad);}

  .eyebrow{
    display:inline-flex; align-items:center; gap:10px;
    font-size:13px; font-weight:600; letter-spacing:.14em; text-transform:uppercase;
    color:var(--accent); margin-bottom:18px;
  }
  .eyebrow::before{content:""; width:22px; height:2px; background:var(--accent); display:inline-block;}
  .eyebrow.on-dark{color:#e8a0af;}

  /* ---------- Header ---------- */
  header{
    position:fixed; top:0; left:0; right:0; z-index:100;
    padding:22px var(--pad);
    display:flex; align-items:center; justify-content:space-between;
    transition:background .35s ease, padding .35s ease, border-color .35s ease;
    border-bottom:1px solid transparent;
  }
  header.solid{
    background:rgba(250,249,246,.92);
    backdrop-filter:blur(8px);
    padding-top:14px; padding-bottom:14px;
    border-bottom:1px solid var(--line);
  }
  .wordmark{display:flex; align-items:center;}
  .logo-mark{height:72px; width:auto; display:block; filter:brightness(0) invert(1); transition:filter .3s ease;}
  header.solid .logo-mark{filter:none;}
  .logo-mark--dark{filter:brightness(0) invert(1) !important;}

  nav{display:flex; align-items:center; gap:38px;}
  nav ul{display:flex; gap:32px;}
  nav a{font-size:14px; font-weight:500; color:rgba(255,255,255,.88); position:relative; padding-bottom:4px;}
  header.solid nav a{color:var(--ink-soft);}
  nav a::after{content:""; position:absolute; left:0; bottom:0; width:0; height:1.5px; background:var(--accent); transition:width .25s ease;}
  nav a:hover::after{width:100%;}

  .btn{
    display:inline-flex; align-items:center; gap:8px;
    font-size:13px; font-weight:600; letter-spacing:.03em;
    padding:13px 24px; border-radius:var(--radius);
    border:1.5px solid currentColor; cursor:pointer; white-space:nowrap;
    transition:background .2s ease, color .2s ease, transform .2s ease;
  }
  .btn-primary{background:var(--accent); border-color:var(--accent); color:var(--white);}
  .btn-primary:hover{background:var(--accent-ink); border-color:var(--accent-ink); transform:translateY(-2px);}
  .btn-ghost-light{color:var(--white);}
  .btn-ghost-light:hover{background:var(--white); color:var(--ink); transform:translateY(-2px);}
  .btn-ghost-dark{color:var(--ink);}
  .btn-ghost-dark:hover{background:var(--ink); color:var(--white); transform:translateY(-2px);}

  .navcta{display:none;}
  @media(min-width:860px){ .navcta{display:inline-flex;} }

  .burger{display:flex; flex-direction:column; gap:5px; background:none; border:0; cursor:pointer; z-index:110;}
  .burger span{width:24px; height:2px; background:var(--white); transition:.25s;}
  header.solid .burger span{background:var(--ink);}
  @media(min-width:860px){ .burger{display:none;} nav ul{display:flex;} }
  @media(max-width:859px){
    nav ul{
      position:fixed; inset:0; background:var(--ink); flex-direction:column;
      justify-content:center; align-items:center; gap:28px;
      transform:translateY(-100%); transition:transform .4s ease; z-index:105;
    }
    nav ul.open{transform:translateY(0);}
    nav ul a{color:var(--white); font-size:22px;}
    .logo-mark{height:50px;}
    header{padding-top:16px; padding-bottom:16px;}
  }

  /* ---------- Plumb line signature (desktop) ---------- */
  .plumb{
    position:fixed; left:28px; top:0; bottom:0; width:40px; z-index:60;
    display:none; pointer-events:none;
  }
  @media(min-width:1160px){ .plumb{display:block;} }
  .plumb-track{position:absolute; left:19px; top:120px; bottom:60px; width:1px; background:var(--line);}
  .plumb-fill{position:absolute; left:19px; top:120px; width:1px; background:var(--accent); height:0%;}
  .plumb-bob{
    position:absolute; left:12px; top:120px; width:15px; height:19px;
    transition:top .1s linear;
  }
  .plumb-label{
    position:absolute; left:40px; top:-6px; white-space:nowrap;
    font-size:10px; font-weight:600; letter-spacing:.12em; text-transform:uppercase;
    color:#e8a0af; opacity:0; transition:opacity .3s ease;
  }
  .plumb-tick{position:absolute; left:16px; width:7px; height:1px; background:var(--line);}

  /* ---------- Hero ---------- */
  .hero{
    height:100svh; min-height:560px; position:relative;
    display:flex; align-items:flex-end;
    background:#0d2438;
  }
  .hero-media{position:absolute; inset:0; overflow:hidden;}
  .hero-media img{width:100%; height:100%; object-fit:cover;}
  .hero-media::after{
    content:""; position:absolute; inset:0;
    background:linear-gradient(180deg, rgba(10,20,34,.38) 0%, rgba(10,20,34,.32) 30%, rgba(10,20,34,.55) 60%, rgba(10,26,42,.92) 100%);
  }
  .hero-inner{position:relative; z-index:2; width:100%; padding-bottom:clamp(48px,7vw,90px);}
  .hero-grid{display:flex; flex-direction:column; gap:34px;}
  .hero h1{
    font-size:clamp(42px, 8vw, 92px); line-height:.98; font-weight:700; color:var(--white);
    margin:0 0 20px; letter-spacing:-.01em; max-width:14ch;
  }
  .hero p.lede{color:rgba(255,255,255,.82); font-size:17px; line-height:1.6; max-width:46ch; margin:0 0 30px;}
  .hero-actions{display:flex; flex-wrap:wrap; gap:14px;}
  .scroll-cue{
    position:absolute; right:var(--pad); bottom:36px; z-index:2;
    display:flex; align-items:center; gap:10px; color:rgba(255,255,255,.7);
    font-size:11px; letter-spacing:.16em; text-transform:uppercase; font-weight:600;
  }
  .scroll-cue .line{width:1px; height:34px; background:rgba(255,255,255,.4); position:relative; overflow:hidden;}
  .scroll-cue .line::after{content:""; position:absolute; top:-100%; left:0; width:100%; height:100%; background:var(--accent); animation:cue 1.8s ease-in-out infinite;}
  @keyframes cue{0%{top:-100%;} 60%{top:100%;} 100%{top:100%;}}
  @media(max-width:640px){ .scroll-cue{display:none;} }

  /* ---------- Intro / Biz kimik ---------- */
  .intro{padding:120px 0 100px; background:var(--paper);}
  .intro .wrap{max-width:1080px;}
  .intro h2{font-size:clamp(28px,3.2vw,38px); line-height:1.45; font-weight:500; margin:0; color:var(--ink-soft);}
  .intro h2 b{font-weight:700; color:var(--ink);}

  /* ---------- Services ---------- */
  .services-light{padding:0 0 110px; background:var(--paper);}
  .services-head{display:flex; justify-content:space-between; align-items:flex-end; gap:24px; margin-bottom:52px; flex-wrap:wrap;}
  .services-head h2{font-size:clamp(26px,3.4vw,38px); font-weight:700; margin:0; max-width:16ch;}
  .cards3{display:grid; grid-template-columns:repeat(2,1fr); border:1px solid var(--line); border-right:none; border-bottom:none;}
  @media(max-width:700px){ .cards3{grid-template-columns:1fr;} }
  .card{background:var(--paper); padding:56px 46px; border-right:1px solid var(--line); border-bottom:1px solid var(--line); transition:background .25s ease;}
  .card:hover{background:var(--white);}
  .card svg{width:42px; height:42px; stroke:var(--ink); margin-bottom:30px; transition:stroke .25s ease;}
  .card:hover svg{stroke:var(--accent);}
  .card h3{font-size:23px; font-weight:600; margin:0 0 14px;}
  .card p{font-size:15.5px; color:var(--muted); line-height:1.7; margin:0 0 22px; max-width:42ch;}
  .card-link{font-size:13.5px; font-weight:600; color:var(--ink); display:inline-flex; align-items:center; gap:6px;}
  .card-link svg{width:14px; height:14px; margin:0; stroke:var(--ink);}

  /* ---------- Projects ---------- */
  .projects{padding:0 0 120px; background:var(--paper);}
  .proj-grid{display:grid; grid-template-columns:1.4fr 1fr; gap:2px; margin-top:52px;}
  @media(max-width:860px){ .proj-grid{grid-template-columns:1fr;} }
  .proj-side{display:grid; grid-template-rows:1fr 1fr; gap:2px;}
  .proj{position:relative; overflow:hidden; min-height:260px; display:block; border-radius:var(--img-radius);}
  .proj-side .proj{min-height:200px;}
  .proj img{width:100%; height:100%; object-fit:cover; position:absolute; inset:0; filter:grayscale(.5) contrast(1.05); transition:transform .6s ease, filter .5s ease;}
  .proj:hover img{transform:scale(1.06); filter:grayscale(0) contrast(1.05);}
  .proj::before{content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(10,26,42,0) 40%, rgba(10,26,42,.86) 100%); z-index:1;}
  .proj-txt{position:absolute; left:0; right:0; bottom:0; z-index:2; padding:26px; color:var(--white);}
  .proj-tag{font-size:11px; letter-spacing:.12em; text-transform:uppercase; font-weight:600; color:#e8a0af; display:block; margin-bottom:8px;}
  .proj-txt h3{font-size:20px; font-weight:600; margin:0; max-width:20ch;}
  .proj-more{margin-top:44px; display:flex; justify-content:center;}

  /* ---------- Dark statement / values ---------- */
  .statement{background:var(--ink); color:var(--white); padding:130px 0;}
  .statement .wrap{max-width:980px;}
  .statement h2{font-size:clamp(28px,4.2vw,50px); font-weight:600; line-height:1.28; margin:0 0 56px;}
  .statement h2 em{font-style:normal; color:var(--accent);}
  .pills{display:flex; flex-wrap:wrap; gap:12px;}
  .pill{
    border:1px solid rgba(255,255,255,.22); border-radius:100px;
    padding:10px 20px; font-size:13.5px; font-weight:500; color:rgba(255,255,255,.85);
    transition:border-color .2s ease, color .2s ease;
  }
  .pill:hover{border-color:var(--accent); color:var(--white);}

  /* ---------- CTA ---------- */
  .cta{padding:130px 0; text-align:center; background:var(--paper-2);}
  .cta h2{font-size:clamp(30px,5vw,56px); font-weight:700; margin:0 0 34px; max-width:16ch; margin-inline:auto;}
  .cta-actions{display:flex; justify-content:center; gap:16px; flex-wrap:wrap;}

  /* ---------- Footer ---------- */
  footer{background:var(--ink); color:rgba(255,255,255,.7); padding:70px 0 30px;}
  .foot-grid{display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:40px; padding-bottom:56px; border-bottom:1px solid rgba(255,255,255,.12);}
  @media(max-width:760px){ .foot-grid{grid-template-columns:1fr 1fr;} }
  @media(max-width:480px){ .foot-grid{grid-template-columns:1fr; gap:30px;} }
  .foot-grid h4{font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:rgba(255,255,255,.42); margin:0 0 18px; font-weight:600;}
  .foot-grid li{margin-bottom:11px; font-size:14.5px;}
  .foot-grid a:hover{color:var(--accent);}
  .foot-bottom{display:flex; justify-content:space-between; align-items:center; padding-top:26px; font-size:12.5px; color:rgba(255,255,255,.4); flex-wrap:wrap; gap:14px;}
  .foot-social{display:flex; gap:18px;}
  .foot-social a{font-size:12.5px; color:rgba(255,255,255,.55);}

  .reveal{opacity:0; transform:translateY(22px); transition:opacity .7s ease, transform .7s ease;}
  .reveal.in{opacity:1; transform:none;}
  @media (prefers-reduced-motion: reduce){
    html{scroll-behavior:auto;}
    .reveal{opacity:1; transform:none; transition:none;}
    .scroll-cue .line::after{animation:none;}
  }

/* ---------- shared: active nav + inner-page header (used by subpages) ---------- */
nav a.active::after{width:100%;}
.page-header{background:var(--ink); color:var(--white); padding:calc(90px + 56px) 0 56px;}
.page-header .eyebrow{color:#e8a0af;}
.page-header h1{font-size:clamp(32px,5vw,52px); font-weight:700; margin:16px 0 14px; max-width:20ch;}
.page-header p{font-size:15.5px; line-height:1.65; color:rgba(255,255,255,.72); max-width:56ch; margin:0;}