*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}

  :root{
    --bg:#0E100E;
    --bg-2:#141714;
    --surface:#161A16;
    --surface-2:#1C211C;
    --ink:#EDEBE5;
    --ink-2:#B8B5AE;
    --muted:#8A8C85;
    --line:#272A26;
    --line-2:#33382F;
    --green:#7FBF8A;
    --green-deep:#2F5D3A;
    --green-dark:#1B3A22;
    --green-glow:rgba(127,191,138,.14);
    --radius-s:8px;
    --radius-m:14px;
    --radius-l:20px;
    --radius-xl:28px;
    --pad:48px;
    --rail:72px;
    --ease:cubic-bezier(.22,1,.36,1);
  }

  html{
    scroll-behavior:smooth;
    -webkit-text-size-adjust:100%;
    scrollbar-width:thin;
    scrollbar-color:var(--green-deep) transparent;
  }

  ::-webkit-scrollbar{width:8px;height:8px;background:transparent}
  ::-webkit-scrollbar-track{background:transparent}
  ::-webkit-scrollbar-thumb{background:var(--green-deep);border-radius:100px;min-height:40px}
  ::-webkit-scrollbar-thumb:hover{background:var(--green)}
  ::-webkit-scrollbar-corner{background:transparent}

  body{
    background:var(--bg);
    color:var(--ink);
    font-family:'Inter',system-ui,-apple-system,sans-serif;
    font-weight:400;
    line-height:1.55;
    font-size:16px;
    -webkit-font-smoothing:antialiased;
    -moz-osx-font-smoothing:grayscale;
    overflow-x:hidden;
    padding-left:var(--rail);
  }

  ::selection{background:var(--green);color:var(--bg)}

  a{color:inherit;text-decoration:none}
  button{font-family:inherit;color:inherit;background:none;border:none;cursor:pointer}

  :focus-visible{outline:2px solid var(--green);outline-offset:3px;border-radius:4px}

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

  .mono{
    font-family:'IBM Plex Mono',monospace;
    font-size:11px;
    letter-spacing:.08em;
    text-transform:uppercase;
    color:var(--muted);
    font-weight:500;
  }

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

  .rail{
    position:fixed;
    left:0;top:0;bottom:0;
    width:var(--rail);
    background:var(--bg);
    border-right:1px solid var(--line);
    z-index:200;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:space-between;
    padding:20px 0;
  }

  .rail::after{
    content:"";
    position:absolute;
    left:0;top:0;bottom:0;
    width:2px;
    background:linear-gradient(180deg, transparent 0%, var(--green) 30%, var(--green-deep) 60%, transparent 100%);
    opacity:.5;
  }

  .rail-logo{
    width:44px;height:44px;
    background:transparent;
    border-radius:12px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    color:var(--green);
    font-family:'Unbounded',sans-serif;
    font-weight:900;
    font-size:40px;
    letter-spacing:-.02em;
    transition:background .3s var(--ease),color .3s var(--ease);
  }

  .rail-logo:hover{background:transparent;color:#fff}

  .rail-nav{
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:8px;
  }

  .rail-nav a{
    width:44px;
    height:44px;
    border-radius:12px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    color:var(--ink-2);
    background:transparent;
    border:1px solid transparent;
    transition:background .3s ease,color .3s ease,border-color .3s ease;
    position:relative;
    font-family:'Unbounded',sans-serif;
    font-weight:700;
    font-size:14px;
    letter-spacing:-.02em;
    text-transform:uppercase;
  }

  .rail-nav a:hover{
    background:var(--surface);
    color:var(--green);
    border-color:var(--line-2);
  }

  .rail-nav a::after{
    content:attr(data-label);
    position:absolute;
    left:calc(100% + 12px);
    top:50%;
    transform:translateY(-50%) translateX(-6px);
    background:var(--surface-2);
    color:var(--ink);
    padding:6px 12px;
    border-radius:8px;
    font-family:'IBM Plex Mono',monospace;
    font-size:11px;
    font-weight:500;
    letter-spacing:.08em;
    text-transform:uppercase;
    white-space:nowrap;
    opacity:0;
    pointer-events:none;
    transition:opacity .25s ease,transform .25s ease;
    border:1px solid var(--line-2);
  }

  .rail-nav a:hover::after{
    opacity:1;
    transform:translateY(-50%) translateX(0);
  }

  .rail-cta{
    writing-mode:vertical-rl;
    transform:rotate(180deg);
    background:var(--green);
    color:#fff;
    padding:18px 10px;
    border-radius:100px;
    font-family:'IBM Plex Mono',monospace;
    font-size:11px;
    letter-spacing:.14em;
    text-transform:uppercase;
    font-weight:600;
    transition:background .3s ease,color .3s ease;
    white-space:nowrap;
    border:none;
    cursor:pointer;
  }

  .rail-cta:hover{background:#fff;color:var(--bg)}

  .mobile-head{
    display:none;
    position:sticky;
    top:0;
    z-index:150;
    background:var(--bg);
    border-bottom:1px solid var(--line);
    padding:14px 20px;
    align-items:center;
    justify-content:space-between;
    gap:16px;
  }

  .mobile-head::after{
    content:"";
    position:absolute;
    left:0;right:0;bottom:-2px;
    height:2px;
    background:linear-gradient(90deg, var(--green) 0%, var(--green-deep) 50%, transparent 100%);
    opacity:.6;
  }

  .mobile-logo{
    display:flex;
    align-items:center;
    gap:10px;
    font-family:'Unbounded',sans-serif;
    font-weight:800;
    font-size:15px;
    letter-spacing:-.02em;
    text-transform:uppercase;
  }

  .mobile-logo span{
    width:30px;height:30px;
    background:transparent;
    border-radius:9px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    color:var(--green);
    font-weight:900;
    font-size:14px;
  }

  .burger{
    width:40px;height:40px;
    border-radius:10px;
    background:transparent;
    display:inline-flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:4px;
    cursor:pointer;
    transition:border-color .3s ease;
    flex-shrink:0;
  }

  .burger:hover{border-color:var(--green)}

  .burger span{
    display:block;
    width:16px;
    height:1.5px;
    background:var(--ink);
    transition:transform .3s ease,opacity .3s ease;
  }

  .burger.open span:nth-child(1){transform:translateY(5.5px) rotate(45deg)}
  .burger.open span:nth-child(2){opacity:0}
  .burger.open span:nth-child(3){transform:translateY(-5.5px) rotate(-45deg)}

  .mobile-menu{
    position:fixed;
    inset:0;
    z-index:140;
    background:var(--bg);
    display:flex;
    flex-direction:column;
    padding:96px 24px 32px;
    opacity:0;
    pointer-events:none;
    transition:opacity .4s var(--ease);
  }

  .mobile-menu.open{opacity:1;pointer-events:auto}

  .mobile-menu-nav{
    display:flex;
    flex-direction:column;
    gap:4px;
    flex:1;
  }

  .mobile-menu-nav a{
    font-family:'Unbounded',sans-serif;
    font-weight:800;
    font-size:clamp(32px,9vw,48px);
    line-height:1.1;
    letter-spacing:-.04em;
    text-transform:uppercase;
    color:var(--ink);
    padding:16px 0;
    border-bottom:1px solid var(--line);
    transition:color .3s ease,padding-left .3s ease;
  }

  .mobile-menu-nav a:hover{color:var(--green);padding-left:12px}

  .mobile-menu-foot{
    padding-top:32px;
    display:flex;
    flex-direction:column;
    gap:20px;
  }

  .mobile-menu-foot .mobile-cta{
    background:var(--green);
    color:#fff;
    padding:18px 28px;
    border-radius:100px;
    font-family:'IBM Plex Mono',monospace;
    font-size:13px;
    letter-spacing:.1em;
    text-transform:uppercase;
    font-weight:600;
    text-align:center;
    transition:background .3s ease,color .3s ease;
  }

  .mobile-menu-foot .mobile-cta:hover{background:#fff;color:var(--bg)}

  .mobile-menu-meta{
    font-family:'IBM Plex Mono',monospace;
    font-size:11px;
    letter-spacing:.08em;
    text-transform:uppercase;
    color:var(--muted);
    line-height:1.8;
    font-weight:500;
  }

  .hero{padding:88px 0 0;position:relative;overflow:hidden}

  .hero::before{
    content:"";
    position:absolute;
    top:-30%;
    right:-10%;
    width:60%;
    aspect-ratio:1;
    background:radial-gradient(circle, var(--green-glow) 0%, transparent 60%);
    pointer-events:none;
  }

  .hero-top{
    display:flex;
    justify-content:space-between;
    align-items:flex-start;
    gap:24px;
    padding-bottom:40px;
    flex-wrap:wrap;
    position:relative;
  }

  .hero-badge{
    display:inline-flex;
    align-items:center;
    gap:10px;
    background:rgba(127,191,138,.08);
    color:var(--green);
    padding:8px 16px;
    border-radius:100px;
    border:1px solid rgba(127,191,138,.2);
    font-family:'IBM Plex Mono',monospace;
    font-size:11px;
    letter-spacing:.08em;
    text-transform:uppercase;
    font-weight:500;
  }

  .status-dot{
    width:7px;height:7px;
    background:var(--green);
    border-radius:50%;
    animation:pulse 2s ease-in-out infinite;
    box-shadow:0 0 12px var(--green);
  }

  @keyframes pulse{
    0%,100%{opacity:1;transform:scale(1)}
    50%{opacity:.4;transform:scale(.7)}
  }

  .hero-title{
    font-family:'Unbounded',sans-serif;
    font-weight:900;
    font-size:clamp(52px, 10.5vw, 200px);
    line-height:.86;
    letter-spacing:-.055em;
    text-transform:uppercase;
    margin:32px 0 56px;
    max-width:1500px;
    color:var(--ink);
    position:relative;
  }

  .hero-title em{
    font-style:normal;
    color:var(--green);
  }

  .hero-title .outline{
    -webkit-text-stroke:2.5px var(--ink);
    color:transparent;
  }

  .hero-bottom{
    display:grid;
    grid-template-columns:repeat(12,1fr);
    gap:32px;
    padding:48px 0 64px;
    align-items:end;
    border-top:1px solid var(--line);
    position:relative;
  }

  .hero-desc{
    grid-column:1/span 5;
    font-size:17px;
    line-height:1.6;
    color:var(--ink-2);
    max-width:540px;
  }

  .hero-desc strong{
    color:var(--ink);
    font-weight:500;
  }

  .hero-stats{
    grid-column:8/span 5;
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:24px;
  }

  .stat{
    padding:20px 0;
    border-top:1px solid var(--line-2);
  }

  .stat-num{
    font-family:'Unbounded',sans-serif;
    font-weight:800;
    font-size:clamp(28px,3.2vw,44px);
    line-height:1;
    color:var(--ink);
    letter-spacing:-.03em;
  }

  .stat-lbl{
    font-family:'IBM Plex Mono',monospace;
    font-size:10px;
    letter-spacing:.1em;
    text-transform:uppercase;
    color:var(--muted);
    margin-top:10px;
    font-weight:500;
  }

  .hero-image{
    position:relative;
    overflow:hidden;
    aspect-ratio:21/9;
    background:var(--surface);
    border-radius:var(--radius-xl);
    margin-bottom:-1px;
    border:1px solid var(--line);
  }

  .hero-image img{
    width:100%;height:100%;object-fit:cover;
    transition:transform 2s var(--ease);
    opacity:.88;
  }

  .hero-image:hover img{transform:scale(1.03);opacity:1}

  .hero-image-caption{
    position:absolute;
    left:24px;bottom:24px;
    font-family:'IBM Plex Mono',monospace;
    font-size:11px;
    letter-spacing:.08em;
    text-transform:uppercase;
    color:var(--ink);
    background:rgba(14,16,14,.85);
    backdrop-filter:blur(12px);
    -webkit-backdrop-filter:blur(12px);
    padding:10px 16px;
    border-radius:100px;
    display:inline-flex;
    align-items:center;
    gap:10px;
    border:1px solid var(--line-2);
    font-weight:500;
  }

  .hero-image-caption::before{
    content:"";width:6px;height:6px;
    background:var(--green);border-radius:50%;
  }

  .marquee{
    background:var(--surface);
    border-top:1px solid var(--line);
    border-bottom:1px solid var(--line);
    padding:32px 0;
    overflow:hidden;
    position:relative;
    margin-top:80px;
  }

  .marquee-track{
    display:flex;
    gap:64px;
    white-space:nowrap;
    width:max-content;
    animation:scroll 45s linear infinite;
    font-family:'Unbounded',sans-serif;
    font-weight:600;
    font-size:clamp(20px,2.2vw,32px);
    letter-spacing:-.02em;
    text-transform:uppercase;
    color:var(--ink);
    will-change:transform;
  }

  .marquee-group{
    display:flex;
    gap:64px;
    align-items:center;
    flex-shrink:0;
  }

  .marquee-group > span{
    display:inline-flex;
    align-items:center;
    gap:64px;
  }

  .marquee-group > span::after{
    content:"";
    width:8px;height:8px;
    background:var(--green);
    display:inline-block;
    border-radius:50%;
  }

  @keyframes scroll{
    from{transform:translate3d(0,0,0)}
    to{transform:translate3d(-50%,0,0)}
  }

  .section{padding:155px 0;position:relative}

  .section-head{
    display:grid;
    grid-template-columns:repeat(12,1fr);
    gap:32px;
    margin-bottom:145px;
    align-items:end;
  }

  .section-tag{
    grid-column:1/span 3;
    display:inline-flex;
    align-items:center;
    gap:12px;
    font-family:'IBM Plex Mono',monospace;
    font-size:11px;
    letter-spacing:.1em;
    text-transform:uppercase;
    color:var(--green);
    font-weight:500;
    padding-bottom:8px;
  }

  .section-tag::before{
    content:"";
    width:24px;height:1px;
    background:var(--green);
  }

  .section-title{
    grid-column:4/span 6;
    font-family:'Unbounded',sans-serif;
    font-weight:800;
    font-size:clamp(32px,4.6vw,72px);
    line-height:.95;
    letter-spacing:-.045em;
    text-transform:uppercase;
    color:var(--ink);
  }

  .section-title em{
    font-style:normal;
    color:var(--green);
  }

  .section-desc{
    grid-column:10/span 3;
    font-size:15px;
    line-height:1.65;
    color:var(--ink-2);
    padding-bottom:8px;
  }

  .principle{
    padding:160px 0;
    position:relative;
    overflow:hidden;
    background:var(--bg-2);
    border-top:1px solid var(--line);
    border-bottom:1px solid var(--line);
  }

  .principle::before{
    content:"";
    position:absolute;
    inset:0;
    background:radial-gradient(ellipse at center, var(--green-glow) 0%, transparent 60%);
    pointer-events:none;
  }

  .principle-inner{
    position:relative;
    text-align:center;
    max-width:1200px;
    margin:0 auto;
  }

  .principle-badge{
    display:inline-flex;
    align-items:center;
    gap:10px;
    background:rgba(127,191,138,.08);
    color:var(--green);
    padding:8px 18px;
    border-radius:100px;
    border:1px solid rgba(127,191,138,.2);
    font-family:'IBM Plex Mono',monospace;
    font-size:11px;
    letter-spacing:.1em;
    text-transform:uppercase;
    font-weight:500;
    margin-bottom:40px;
  }

  .principle-title{
    font-family:'Unbounded',sans-serif;
    font-weight:900;
    font-size:clamp(36px, 6vw, 96px);
    line-height:.95;
    letter-spacing:-.05em;
    text-transform:uppercase;
    margin-bottom:32px;
    color:var(--ink);
  }

  .principle-title em{
    font-style:normal;
    color:var(--green);
  }

  .principle-desc{
    font-size:17px;
    line-height:1.65;
    color:var(--ink-2);
    max-width:640px;
    margin:0 auto;
  }

  .services-list{
    display:flex;
    flex-direction:column;
    gap:12px;
  }

  .service-row{
    display:grid;
    grid-template-columns:80px 1.3fr 2fr 1fr;
    gap:40px;
    padding:32px 36px;
    background:var(--surface);
    border:1px solid var(--line);
    border-radius:var(--radius-l);
    align-items:center;
    transition:border-color .4s var(--ease),background .4s var(--ease),transform .4s var(--ease);
    cursor:pointer;
    position:relative;
    overflow:hidden;
  }

  .service-row::before{
    content:"";
    position:absolute;
    left:0;top:0;bottom:0;
    width:3px;
    background:var(--green);
    transform:scaleY(0);
    transform-origin:center;
    transition:transform .5s var(--ease);
    border-radius:0 3px 3px 0;
  }

  .service-row:hover{
    border-color:rgba(127,191,138,.35);
    background:var(--surface-2);
    transform:translateY(-2px);
  }

  .service-row:hover::before{transform:scaleY(1)}

  .service-row-num{
    font-family:'Unbounded',sans-serif;
    font-weight:800;
    font-size:22px;
    color:var(--green);
    line-height:1;
    letter-spacing:-.02em;
  }

  .service-row-title{
    font-family:'Unbounded',sans-serif;
    font-weight:700;
    font-size:clamp(20px,2vw,28px);
    line-height:1.1;
    letter-spacing:-.03em;
    text-transform:uppercase;
    color:var(--ink);
  }

  .service-row-title em{
    font-style:normal;
    color:var(--muted);
    font-family:'IBM Plex Mono',monospace;
    font-size:11px;
    font-weight:500;
    letter-spacing:.08em;
    display:block;
    margin-top:6px;
    text-transform:uppercase;
  }

  .service-row-desc{
    font-size:15px;
    line-height:1.65;
    color:var(--ink-2);
  }

  .service-row-price{
    font-family:'Unbounded',sans-serif;
    font-weight:800;
    font-size:clamp(22px,2.2vw,32px);
    color:var(--ink);
    text-align:right;
    line-height:1;
    letter-spacing:-.03em;
    white-space:nowrap;
  }

  .service-row-price em{
    font-family:'IBM Plex Mono',monospace;
    font-size:10px;
    color:var(--muted);
    font-style:normal;
    display:block;
    margin-top:6px;
    letter-spacing:.1em;
    text-transform:uppercase;
    font-weight:500;
  }

  .projects-grid{
    display:grid;
    grid-template-columns:repeat(2,1fr);
    gap:28px;
  }

  .project-card{
    display:block;
    background:var(--surface);
    border:1px solid var(--line);
    border-radius:var(--radius-xl);
    overflow:hidden;
    transition:border-color .5s var(--ease),transform .5s var(--ease);
  }

  .project-card:hover{
    border-color:rgba(127,191,138,.35);
    transform:translateY(-4px);
  }

  .project-visual{
    aspect-ratio:5/3;
    background:var(--bg-2);
    overflow:hidden;
    position:relative;
  }

  .project-visual img{
    width:100%;height:100%;object-fit:cover;
    transition:transform 1.6s var(--ease),opacity .8s var(--ease);
    opacity:.9;
  }

  .project-card:hover .project-visual img{transform:scale(1.05);opacity:1}

  .project-content{
    padding:28px 32px 32px;
    display:grid;
    grid-template-columns:1fr auto;
    gap:24px;
    align-items:start;
  }

  .project-title{
    font-family:'Unbounded',sans-serif;
    font-weight:800;
    font-size:clamp(20px,2vw,26px);
    letter-spacing:-.03em;
    text-transform:uppercase;
    line-height:1.1;
    margin-bottom:10px;
    color:var(--ink);
  }

  .project-work{
    font-family:'IBM Plex Mono',monospace;
    font-size:11px;
    letter-spacing:.08em;
    color:var(--muted);
    text-transform:uppercase;
    font-weight:500;
  }

  .project-price{
    font-family:'Unbounded',sans-serif;
    font-weight:800;
    font-size:clamp(20px,2vw,26px);
    line-height:1;
    text-align:right;
    white-space:nowrap;
    color:var(--green);
    letter-spacing:-.03em;
  }

  .project-price em{
    display:block;
    font-style:normal;
    font-family:'IBM Plex Mono',monospace;
    font-size:10px;
    color:var(--muted);
    letter-spacing:.1em;
    text-transform:uppercase;
    margin-top:6px;
    font-weight:500;
  }

  .about-grid{
    display:grid;
    grid-template-columns:1fr 1.2fr;
    gap:80px;
    align-items:start;
  }

  .about-left{
    position:sticky;
    top:120px;
  }

  .about-title{
    font-family:'Unbounded',sans-serif;
    font-weight:900;
    font-size:clamp(32px,4.2vw,60px);
    line-height:.95;
    letter-spacing:-.045em;
    text-transform:uppercase;
    margin-bottom:28px;
    color:var(--ink);
  }

  .about-title em{
    font-style:normal;
    color:var(--green);
  }

  .about-badge{
    display:inline-flex;
    align-items:center;
    gap:10px;
    background:rgba(127,191,138,.08);
    color:var(--green);
    padding:8px 16px;
    border-radius:100px;
    border:1px solid rgba(127,191,138,.2);
    font-family:'IBM Plex Mono',monospace;
    font-size:11px;
    letter-spacing:.1em;
    text-transform:uppercase;
    font-weight:500;
  }

  .about-text p{
    font-size:17px;
    line-height:1.7;
    margin-bottom:24px;
    max-width:640px;
    color:var(--ink-2);
  }

  .about-text p strong{
    color:var(--ink);
    font-weight:500;
  }

  .about-points{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:14px;
    margin-top:25x;
  }

  .about-point{
    background:var(--surface);
    border:1px solid var(--line);
    border-radius:var(--radius-m);
    padding:24px;
    transition:border-color .4s var(--ease),background .4s var(--ease),transform .4s var(--ease);
  }

  .about-point:hover{
    border-color:rgba(127,191,138,.35);
    background:var(--surface-2);
    transform:translateY(-2px);
  }

  .about-point-icon{
    width:34px;height:34px;
    background:rgba(127,191,138,.1);
    border:1px solid rgba(127,191,138,.25);
    border-radius:10px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    color:var(--green);
    font-family:'IBM Plex Mono',monospace;
    font-weight:600;
    font-size:12px;
    margin-bottom:16px;
  }

  .about-point h4{
    font-family:'Unbounded',sans-serif;
    font-weight:700;
    font-size:14px;
    margin-bottom:10px;
    letter-spacing:-.02em;
    text-transform:uppercase;
    color:var(--ink);
  }

  .about-point p{
    font-size:14px;
    line-height:1.6;
    color:var(--ink-2);
  }

  .process-grid{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:14px;
  }

  .process-cell{
    background:var(--surface);
    border:1px solid var(--line);
    border-radius:var(--radius-l);
    padding:32px 28px 36px;
    min-height:500px;
    display:flex;
    flex-direction:column;
    justify-content:space-between;
    transition:border-color .5s var(--ease),background .5s var(--ease),transform .5s var(--ease);
    position:relative;
    overflow:hidden;
  }

  .process-cell:hover{
    border-color:rgba(127,191,138,.35);
    background:var(--surface-2);
    transform:translateY(-3px);
  }

  .process-num{
    font-family:'Unbounded',sans-serif;
    font-weight:900;
    font-size:56px;
    line-height:.9;
    color:var(--green);
    letter-spacing:-.04em;
  }

  .process-title{
    font-family:'Unbounded',sans-serif;
    font-weight:800;
    font-size:40px;
    letter-spacing:-.03em;
    text-transform:uppercase;
    margin:28px 0 12px;
    line-height:1.1;
    color:var(--ink);
  }

  .process-desc{
    font-size:14px;
    line-height:1.65;
    color:var(--ink-2);
  }

  .cta-block{
    padding:160px 0;
    position:relative;
    overflow:hidden;
    background:var(--bg-2);
    border-top:1px solid var(--line);
    border-bottom:1px solid var(--line);
  }

  .cta-block::before{
    content:"";
    position:absolute;
    left:50%;top:50%;
    transform:translate(-50%,-50%);
    width:80%;
    aspect-ratio:1;
    background:radial-gradient(circle, var(--green-glow) 0%, transparent 60%);
    pointer-events:none;
  }

  .cta-inner{
    position:relative;
    display:grid;
    grid-template-columns:1.4fr 1fr;
    gap:64px;
    align-items:center;
  }

  .cta-title{
    font-family:'Unbounded',sans-serif;
    font-weight:900;
    font-size:clamp(40px,5.5vw,96px);
    line-height:.92;
    letter-spacing:-.05em;
    text-transform:uppercase;
    margin-bottom:24px;
    color:var(--ink);
  }

  .cta-title em{
    font-style:normal;
    color:var(--green);
  }

  .cta-sub{
    font-size:17px;
    line-height:1.6;
    color:var(--ink-2);
    max-width:520px;
    margin-bottom:40px;
  }

  .cta-actions{
    display:flex;
    gap:12px;
    flex-wrap:wrap;
  }

  .cta-primary{
    background:var(--green);
    color:#fff;
    padding:18px 32px;
    border-radius:100px;
    font-family:'IBM Plex Mono',monospace;
    font-size:13px;
    font-weight:600;
    letter-spacing:.08em;
    text-transform:uppercase;
    display:inline-flex;
    align-items:center;
    gap:12px;
    transition:transform .3s var(--ease),gap .3s var(--ease),background .3s var(--ease);
  }

  .cta-primary:hover{transform:translateY(-2px);gap:18px;background:#fff;color:var(--bg)}
  .cta-primary::after{content:"→";font-size:14px}

  .cta-secondary{
    background:transparent;
    color:var(--ink);
    border:1px solid var(--line-2);
    padding:18px 32px;
    border-radius:100px;
    font-family:'IBM Plex Mono',monospace;
    font-size:13px;
    font-weight:500;
    letter-spacing:.08em;
    text-transform:uppercase;
    display:inline-flex;
    align-items:center;
    transition:border-color .3s ease,background .3s ease;
  }

  .cta-secondary:hover{border-color:var(--green);background:rgba(127,191,138,.06)}

  .contact-strip{
    padding:80px 0 100px;
  }

  .contact-grid{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:14px;
  }

  .contact-item{
    background:var(--surface);
    border:1px solid var(--line);
    border-radius:var(--radius-m);
    padding:26px 24px;
    transition:border-color .4s var(--ease),background .4s var(--ease);
  }

  .contact-item:hover{
    border-color:rgba(127,191,138,.35);
    background:var(--surface-2);
  }

  .contact-item h4{
    font-family:'IBM Plex Mono',monospace;
    font-size:10px;
    letter-spacing:.1em;
    text-transform:uppercase;
    color:var(--muted);
    margin-bottom:14px;
    font-weight:500;
  }

  .contact-item p,
  .contact-item a{
    font-size:16px;
    font-weight:500;
    line-height:1.4;
    letter-spacing:-.01em;
    color:var(--ink);
    transition:color .3s ease;
  }

  .contact-item a:hover{color:var(--green)}

  footer{
    background:var(--bg);
    border-top:1px solid var(--line);
    position:relative;
  }

  .foot-strip{
    background:var(--green-deep);
    color:#fff;
    padding:16px 0;
    font-family:'IBM Plex Mono',monospace;
    font-size:11px;
    letter-spacing:.1em;
    text-transform:uppercase;
    font-weight:500;
  }

  .foot-strip-inner{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:24px;
    flex-wrap:wrap;
  }

  .foot-strip-inner span{
    display:inline-flex;
    align-items:center;
    gap:10px;
    color:#fff;
  }

  .foot-strip-inner span::before{
    content:"";
    width:6px;height:6px;
    background:#B8E0C0;
    border-radius:50%;
  }

  .foot-strip-loc{color:#D4E8D8}

  .foot-mega{
    padding:96px 0 56px;
    overflow:hidden;
    text-align:center;
    border-bottom:1px solid var(--line);
    position:relative;
  }

  .foot-mega::before{
    content:"";
    position:absolute;
    left:50%;top:50%;
    transform:translate(-50%,-50%);
    width:70%;
    aspect-ratio:2/1;
    background:radial-gradient(ellipse, var(--green-glow) 0%, transparent 65%);
    pointer-events:none;
  }

  .foot-mega-brand{
    position:relative;
    font-family:'Unbounded',sans-serif;
    font-weight:900;
    font-size:clamp(80px, 15vw, 220px);
    line-height:.88;
    letter-spacing:-.055em;
    text-transform:uppercase;
    color:var(--ink);
    white-space:nowrap;
    overflow:hidden;
  }

  .foot-mega-brand em{
    font-style:normal;
    color:var(--green);
  }

  .foot-grid{
    display:grid;
    grid-template-columns:2fr 1fr 1fr 1fr;
    gap:48px;
    padding:72px 0 56px;
    border-bottom:1px solid var(--line);
  }

  .foot-col h4{
    font-family:'IBM Plex Mono',monospace;
    font-size:10px;
    letter-spacing:.1em;
    text-transform:uppercase;
    color:var(--muted);
    margin-bottom:22px;
    font-weight:500;
  }

  .foot-col a,
  .foot-col p{
    display:block;
    font-size:14px;
    line-height:2.1;
    color:var(--ink-2);
    transition:color .3s ease,transform .3s ease;
  }

  .foot-col a:hover{color:var(--green);transform:translateX(3px)}

  .foot-brand-desc{
    font-size:14px;
    color:var(--ink-2);
    line-height:1.7;
    max-width:320px;
  }

  .foot-logo-mini{
    display:inline-flex;
    align-items:center;
    gap:12px;
    font-family:'Unbounded',sans-serif;
    font-weight:800;
    font-size:16px;
    letter-spacing:-.02em;
    text-transform:uppercase;
    color:var(--ink);
    margin-bottom:20px;
  }

  .foot-logo-mini span{
    width:32px;height:32px;
    background:var(--green-deep);
    border-radius:10px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    color:var(--green);
    font-weight:900;
    font-size:15px;
  }

  .foot-bottom{
    display:flex;
    justify-content:space-between;
    align-items:center;
    padding:32px 0 48px;
    font-family:'IBM Plex Mono',monospace;
    font-size:10px;
    text-transform:uppercase;
    letter-spacing:.1em;
    color:var(--muted);
    flex-wrap:wrap;
    gap:16px;
    font-weight:500;
  }

  .foot-up{
    width:44px;height:44px;
    border-radius:50%;
    background:var(--surface);
    border:1px solid var(--line-2);
    display:inline-flex;
    align-items:center;
    justify-content:center;
    font-size:16px;
    color:var(--ink);
    transition:background .3s ease,color .3s ease,border-color .3s ease,transform .3s ease;
    cursor:pointer;
  }

  .foot-up:hover{
    background:var(--green);
    color:#fff;
    border-color:var(--green);
    transform:translateY(-3px);
  }

  .reveal{
    opacity:0;
    transform:translateY(24px);
    transition:opacity 1.1s var(--ease),transform 1.1s var(--ease);
    will-change:opacity,transform;
  }

  .reveal.visible{opacity:1;transform:translateY(0)}

  .hero-image.reveal.visible{margin: 0 45px;}

  @media (max-width:1024px){
    :root{--pad:28px}

    body{padding-left:0}
    .rail{display:none}
    .mobile-head{display:flex}

    .hero{padding:64px 0 0}
    .hero-title{font-size:clamp(44px,10vw,140px)}

    .section{padding:96px 0}
    .section-title{font-size:clamp(28px,5vw,60px)}
    .section-head{margin-bottom:80px}

    .principle{padding:112px 0}

    .service-row{
      grid-template-columns:60px 1.2fr 2fr auto;
      gap:24px;
      padding:28px;
    }
    .service-row-desc{display:none}

    .projects-grid{grid-template-columns:1fr}

    .about-grid{grid-template-columns:1fr;gap:48px}
    .about-left{position:static}

    .process-grid{grid-template-columns:repeat(1,1fr)}
    .process-cell{min-height:280px;padding:28px 24px 32px}

    .cta-inner{grid-template-columns:1fr;gap:32px}

    .contact-grid{grid-template-columns:1fr 1fr;gap:14px}

    .foot-grid{grid-template-columns:1fr 1fr;gap:40px}
  }

  @media (max-width:720px){
    :root{--pad:18px}

    .mobile-head{padding:14px 18px}
    .mobile-logo{font-size:30px}
    .mobile-logo span{width:28px;height:28px;font-size:13px;border-radius:8px}

    .mobile-menu{padding:88px 20px 28px}
    .mobile-menu-nav a{font-size:clamp(28px, 9vw, 40px)}

    .hero{padding:48px 0 0}
    .hero-top{flex-direction:column;align-items:flex-start;gap:12px;padding-bottom:28px}
    .hero-badge{font-size:10px;padding:6px 12px}

    .hero-title{
      font-size:clamp(40px, 12vw, 72px);
      line-height:.92;
      margin:24px 0 40px;
      letter-spacing:-.05em;
    }

    .hero-bottom{grid-template-columns:1fr;gap:32px;padding:36px 0 40px}
    .hero-desc, .hero-stats{grid-column:1}
    .hero-desc{font-size:15px}
    .hero-stats{gap:14px}
    .stat{padding:16px 0}
    .stat-num{font-size:26px}
    .stat-lbl{font-size:9px;margin-top:8px}

    .hero-image{aspect-ratio:4/3;border-radius:0px}
    .hero-image-caption{left:16px;bottom:16px;font-size:10px;padding:8px 12px}

    .hero-image.reveal.visible{opacity:1;transform:translateY(0);margin: 0 0;}

    .marquee{margin-top:48px;padding:24px 0}
    .marquee-track{font-size:18px;gap:44px;animation-duration:32s}
    .marquee-group{gap:44px}
    .marquee-group > span{gap:44px}
    .marquee-group > span::after{width:6px;height:6px}

    .section{padding:72px 0}
    .section-head{grid-template-columns:1fr;gap:14px;margin-bottom:60px}
    .section-tag, .section-title, .section-desc{grid-column:1;padding-bottom:0}
    .section-title{font-size:clamp(26px, 8.5vw, 40px)}
    .section-desc{font-size:14px}

    .principle{padding:80px 0}
    .principle-title{font-size:clamp(28px, 8.5vw, 48px)}
    .principle-badge{font-size:10px;padding:6px 14px;margin-bottom:28px}

    .services-list{gap:10px}
    .service-row{
      grid-template-columns:1fr;
      gap:14px;
      padding:26px 22px;
      border-radius:var(--radius-m);
    }
    .service-row:hover{transform:none}
    .service-row-num{font-size:20px}
    .service-row-desc{display:block;font-size:14px}
    .service-row-price{text-align:left;font-size:26px;margin-top:6px}
    .service-row-title{font-size:clamp(20px, 5.5vw, 26px)}

    .projects-grid{grid-template-columns:1fr;gap:30px}
    .project-card{border-radius:var(--radius-l)}
    .project-content{padding:22px 24px 24px;gap:14px}
    .project-title{font-size:20px}
    .project-price{font-size:20px}

    .about-grid{gap:32px}
    .about-title{font-size:clamp(28px, 8.5vw, 44px);margin-bottom:20px}
    .about-text p{font-size:15px;margin-bottom:16px}
    .about-points{grid-template-columns:1fr;gap:12px;margin-top:32px}
    .about-point{padding:20px}

    .process-grid{grid-template-columns:1fr;gap:12px}
    .process-cell{min-height:auto;padding:26px 22px 28px;border-radius:var(--radius-m)}
    .process-num{font-size:77px}

    .cta-block{padding:80px 0}
    .cta-title{font-size:clamp(32px, 10vw, 52px)}
    .cta-sub{font-size:15px;margin-bottom:28px}
    .cta-actions{flex-direction:column;align-items:stretch}
    .cta-primary, .cta-secondary{justify-content:center;width:100%}

    .contact-strip{padding:56px 0 72px}
    .contact-grid{grid-template-columns:1fr;gap:12px}
    .contact-item{padding:20px}

    .foot-strip{padding:14px 0;font-size:10px}
    .foot-strip-inner{flex-direction:column;align-items:flex-start;gap:8px}
    .foot-mega{padding:56px 0 32px}
    .foot-mega-brand{font-size:clamp(64px, 18vw, 120px)}
    .foot-grid{grid-template-columns:1fr;gap:32px;padding:40px 0 32px}
    .foot-bottom{flex-direction:column;align-items:flex-start;gap:16px;padding:24px 0 32px;font-size:9px}
  }

  @media (prefers-reduced-motion:reduce){
    html{scroll-behavior:auto}
    *,*::before,*::after{
      animation-duration:.01ms !important;
      transition-duration:.01ms !important;
    }
    .reveal{opacity:1;transform:none}
    .marquee-track{animation:none}
  }

/* Inline-style replacements for the RX brand lockup and flush image wrapper. */
.rail-logo--rx,
.mobile-logo--rx {
  font-family: 'Judson', serif;
  position: relative;
  display: inline-block;
  letter-spacing: -0.3em;
  padding-left: 0.15em;
}

.wrap--flush { padding: 0; }
