  :root{
    --paper:#FFFFFF;
    --paper-2:#FAFAF9;
    --paper-tint:#FAFAF9;
    --ink:#17140F;
    --ink-dim:#57503F;
    --ink-faint:#8A8270;
    --line: rgba(23,20,15,0.10);
    --line-strong: rgba(23,20,15,0.18);
    --purple:#B98CFB;
    --purple-deep:#7A45E0;
    --yellow:#FFDE75;
    --yellow-deep:#E7B62E;
    --blue:#A9E1EC;
    --blue-deep:#3E9CB5;
    --pink:#FFC2ED;
    --pink-deep:#D6489E;
    --radius: 16px;
    --wrap: 1240px;
    --pad: clamp(24px, 5vw, 72px);
    --ease: cubic-bezier(.16,.8,.24,1);
  }

  *{box-sizing:border-box; margin:0; padding:0;}
  html{scroll-behavior:smooth;}
  @media (prefers-reduced-motion: reduce){
    html{scroll-behavior:auto;}
    *{animation-duration:0.001ms !important; transition-duration:0.001ms !important;}
  }

  body{
    background-color:var(--paper);
    position:relative;
    color:var(--ink);
    font-family:'General Sans', sans-serif;
    font-size:16px;
    line-height:1.6;
    -webkit-font-smoothing:antialiased;
    overflow-x:hidden;
  }
  body::before{
    content:"";
    position:fixed;
    inset:0;
    background-image:url('img/bg-grain.png');
    background-repeat:repeat;
    opacity:0.8;
    pointer-events:none;
    z-index:-1;
  }

  footer.site{
    background-image:none;
    background-color:var(--paper);
    position:relative;
    z-index:1;
  }

  h1,h2{
    font-family:'Chillax', sans-serif;
    font-weight:600;
    letter-spacing:-0.02em;
    line-height:1.05;
    color:var(--ink);
  }
  h3,h4{
    font-family:'General Sans', sans-serif;
    font-weight:600;
    letter-spacing:-0.01em;
    line-height:1.15;
    color:var(--ink);
  }

  .mono{ font-family:'JetBrains Mono', monospace; font-weight:400; letter-spacing:0.02em; }

  .eyebrow{
    font-family:'JetBrains Mono', monospace;
    font-size:12px;
    letter-spacing:0.12em;
    text-transform:uppercase;
    color:var(--purple-deep);
    display:flex;
    align-items:center;
    gap:10px;
    font-weight:500;
  }
  .eyebrow::before{
    content:"";
    width:16px; height:2px;
    background:var(--yellow-deep);
    display:inline-block;
    border-radius:2px;
  }

  .eyebrow--purple{ color:var(--purple-deep); }
  .eyebrow--purple::before{ background:var(--purple-deep); }
  .eyebrow--pink{ color:var(--pink-deep); }
  .eyebrow--pink::before{ background:var(--pink-deep); }
  .eyebrow--blue{ color:var(--blue-deep); }
  .eyebrow--blue::before{ background:var(--blue-deep); }

  .hl-purple{ background:linear-gradient(180deg, transparent 62%, var(--purple) 62%); padding:0 4px; }
  .no-break{ white-space:nowrap; }
  .hl-pink{ background:linear-gradient(180deg, transparent 62%, var(--pink) 62%); padding:0 4px; }
  .hl-blue{ background:linear-gradient(180deg, transparent 62%, var(--blue) 62%); padding:0 4px; }

  a{color:inherit; text-decoration:none;}
  img{max-width:100%; display:block;}
  section{position:relative;}

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

  ::selection{ background:var(--yellow); color:var(--ink); }

  /* ---------- Nav ---------- */
  header{
    position:fixed; top:0; left:0; right:0; z-index:50;
    padding:22px var(--pad);
    display:flex; align-items:center; justify-content:space-between;
    transition:background .4s var(--ease), border-color .4s var(--ease), padding .4s var(--ease);
    border-bottom:1px solid transparent;
  }
  header.scrolled{
    background:rgba(247,244,236,0.88);
    backdrop-filter:blur(10px);
    border-bottom:1px solid var(--line);
    padding-top:14px; padding-bottom:14px;
  }
  .logo{ font-family:'General Sans', sans-serif; font-weight:800; font-size:17px; display:flex; align-items:center; gap:10px; }
  .logo .mark{
    width:32px; height:39px; flex:0 0 auto;
    object-fit:contain;
  }
  nav.links{ display:flex; gap:34px; }
  nav.links a{ font-size:14.5px; font-weight:500; color:var(--ink-dim); transition:color .25s; }
  nav.links a:hover{ color:#ffc2ed; }
  @media (max-width:860px){ nav.links{ display:none; } }

  .btn{
    font-family:'General Sans', sans-serif;
    font-size:14.5px; font-weight:700;
    padding:13px 22px;
    border-radius:100px;
    display:inline-flex; align-items:center; gap:8px;
    transition:transform .25s var(--ease), box-shadow .25s;
    white-space:nowrap;
  }
  .btn-primary{ background:var(--ink); color:var(--paper); }
  .btn-primary:hover{ transform:translateY(-2px); box-shadow:0 10px 24px rgba(23,20,15,0.18); }
  .btn-ghost{ border:1.5px solid var(--line-strong); color:var(--ink); }
  .btn-ghost:hover{ border-color:var(--ink); transform:translateY(-2px); }
  .btn-blue{ background:var(--blue); color:var(--ink); }
  .btn-blue:hover{ transform:translateY(-2px); box-shadow:0 10px 24px rgba(62,156,181,0.3); background:#93D9E7; }
  .btn-pink{ background:var(--pink); color:var(--ink); }
  .btn-pink:hover{ transform:translateY(-2px); box-shadow:0 10px 24px rgba(214,72,158,0.28); background:#FFAEE6; }

  /* ---------- Marquee (inspired by hugoinc.com client strip) ---------- */
  .marquee{
    border-top:1px solid var(--line);
    border-bottom:1px solid var(--line);
    overflow:hidden;
    padding:20px 0;
    background:var(--paper);
  }
  .marquee__track{
    display:flex;
    gap:14px;
    width:max-content;
    animation:marqueeScroll 28s linear infinite;
  }
  .marquee__track span{
    font-family:'General Sans', sans-serif;
    font-weight:500;
    font-size:14px;
    color:var(--ink-faint);
    white-space:nowrap;
  }
  .marquee__track span:nth-child(odd){ color:var(--ink-dim); }
  @keyframes marqueeScroll{ from{ transform:translateX(0); } to{ transform:translateX(-50%); } }
  @media (prefers-reduced-motion: reduce){ .marquee__track{ animation:none; } }

  /* ---------- Dashed curve accents (inspired by hugoinc.com) ---------- */
  .dashed-curves{ position:absolute; inset:0; overflow:hidden; pointer-events:none; z-index:0; }
  .dashed-curves svg{ position:absolute; width:100%; height:100%; }

  /* ---------- Plain decorative ribbon dividers (About / Testimonials) ---------- */
  .ribbon-divider{ width:100%; overflow:hidden; line-height:0; margin:6px 0; }
  .ribbon-divider svg{ display:block; width:100%; height:clamp(70px,9vw,120px); }
  .ribbon-divider--text svg{ height:clamp(90px,12vw,150px); }
  .ribbon-text{
    font-family:'General Sans', sans-serif;
    font-weight:600;
    font-size:22px;
    fill:#FFFFFF;
    letter-spacing:0.01em;
  }
  @media (max-width:700px){ .ribbon-text{ font-size:16px; } }

  /* ---------- Hero ---------- */
  .hero{ min-height:100vh; display:flex; flex-direction:column; justify-content:center; padding-top:140px; padding-bottom:80px; }
  .hero__grid{ position:relative; z-index:1; display:grid; grid-template-columns:1fr; gap:32px; }
  .hero h1{ font-size:clamp(40px, 6.6vw, 84px); max-width:17ch; margin-top:20px; }
  .hero h1 .hl{
    position:relative;
    white-space:nowrap;
    background:linear-gradient(180deg, transparent 62%, var(--yellow) 62%);
    padding:0 4px;
  }
  .hero h1 .word{
    display:inline-block;
    opacity:0;
    transform:translateY(16px);
    animation:wordIn .65s var(--ease) forwards;
  }
  @keyframes wordIn{ to{ opacity:1; transform:translateY(0); } }
  @media (prefers-reduced-motion: reduce){
    .hero h1 .word{ animation:none; opacity:1; transform:none; }
  }
  .hero__sub{ max-width:540px; color:var(--ink-dim); font-size:clamp(16px,1.6vw,18.5px); margin-top:8px; }
  .hero__actions{ display:flex; gap:16px; margin-top:36px; flex-wrap:wrap; }
  .hero__meta{ display:flex; gap:36px; margin-top:60px; flex-wrap:wrap; padding-top:26px; border-top:1px solid var(--line); }
  .hero__meta div{ font-size:13.5px; color:var(--ink-faint); }
  .hero__meta strong{ display:block; color:var(--ink); font-family:'General Sans', sans-serif; font-weight:700; font-size:14px; margin-bottom:4px; }

  /* ---------- Section shared ---------- */
  .section{ padding:110px var(--pad); }
  .section__head{ display:flex; justify-content:space-between; align-items:flex-end; gap:40px; margin-bottom:60px; flex-wrap:wrap; }
  .section__title{ font-size:clamp(28px,3.6vw,44px); margin-top:14px; max-width:14ch; }
  .section__note{ max-width:340px; color:var(--ink-dim); font-size:14.5px; padding-bottom:6px; }

  .reveal{ opacity:0; transform:translateY(22px); transition:opacity .8s var(--ease), transform .8s var(--ease); }
  .reveal.in{ opacity:1; transform:translateY(0); }
  .reveal-group{ --stagger-step:80ms; }
  .reveal-group > *{ transition-delay:calc(var(--stagger-index, 0) * var(--stagger-step)); }
  .reveal-group .reveal,
  .reveal-group > .reveal{ transition-delay:calc(var(--stagger-index, 0) * var(--stagger-step)); }

  .reading-progress{
    position:fixed;
    inset:0 auto auto 0;
    width:100%;
    height:3px;
    z-index:120;
    background:rgba(255,255,255,0.12);
    pointer-events:none;
    transform-origin:left center;
  }
  .reading-progress__bar{
    display:block;
    width:100%;
    height:100%;
    transform:scaleX(0);
    transform-origin:left center;
    background:linear-gradient(90deg, var(--purple) 0%, var(--pink) 50%, var(--blue) 100%);
    box-shadow:0 0 20px rgba(185,140,251,0.5);
  }

  .project-visual--photo,
  .case-visual--photo{
    will-change:transform;
    transform:translate3d(0,0,0) scale(1.01);
    transition:transform .35s var(--ease), opacity .35s var(--ease);
  }

  body::after{
    content:"";
    position:fixed;
    inset:0;
    background:var(--paper);
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    z-index:130;
    transition:opacity .32s ease, visibility .32s ease;
  }
  body.page-transitioning::after{
    opacity:1;
    visibility:visible;
  }

  @media (prefers-reduced-motion: reduce){
    .reveal,
    .reveal-group > *,
    .reveal-group .reveal,
    .reveal-group > .reveal,
    .project-visual--photo,
    .case-visual--photo,
    body::before,
    body::after{
      animation:none !important;
      transition:none !important;
      transform:none !important;
      opacity:1 !important;
    }
    .reveal{ opacity:1 !important; }
    .reading-progress{ display:none !important; }
  }

  /* ---------- Selected Work ---------- */
  .work-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
  @media (max-width:940px){ .work-grid{ grid-template-columns:1fr; } }
  .work-card{
    display:block;
    background:var(--paper-2);
    border:1px solid var(--line);
    border-radius:var(--radius);
    overflow:hidden;
    transition:transform .3s var(--ease), box-shadow .3s var(--ease);
  }
  .work-card:hover{ transform:translateY(-6px); box-shadow:0 18px 40px rgba(23,20,15,0.10); }
  .work-visual{ height:200px; position:relative; overflow:hidden; }
  .work-visual .glyph{ font-family:'General Sans', sans-serif; font-weight:800; font-size:100px; color:rgba(23,20,15,0.12); position:absolute; bottom:-18px; right:8px; }
  .wv1{ background:linear-gradient(135deg,#EFE3FF,#FBEFD8); }
  .wv2{ background:linear-gradient(135deg,#FFF3D2,#EAE0FF); }
  .wv3{ background:linear-gradient(135deg,#F3E9FF,#FFF6DC); }
  .work-body{ padding:26px 24px 28px; }
  .work-index{ font-family:'JetBrains Mono', monospace; font-size:12px; color:var(--ink-faint); }
  .work-name{ font-size:21px; margin-top:10px; }
  .work-name small{ display:block; font-family:'General Sans', sans-serif; font-weight:400; font-size:12.5px; color:var(--ink-faint); margin-top:4px; }
  .work-desc{ color:var(--ink-dim); font-size:14px; margin-top:12px; line-height:1.55; }
  .work-tags{ display:flex; gap:8px; flex-wrap:wrap; margin-top:16px; }
  .tag{ font-family:'JetBrains Mono', monospace; font-size:10.5px; padding:5px 10px; border-radius:20px; color:var(--ink); }
  .tag.p{ background:rgba(185,140,251,0.22); }
  .tag.y{ background:rgba(255,222,117,0.45); }
  .tag.b{ background:rgba(169,225,236,0.5); }
  .tag.pk{ background:rgba(255,194,237,0.45); }

  .work-bento{
    display:grid;
    grid-template-columns:repeat(12, minmax(0, 1fr));
    gap:22px;
  }
  .project-card{
    display:flex;
    flex-direction:column;
    background:var(--paper-2);
    border:1px solid var(--line);
    border-radius:28px;
    overflow:hidden;
    transition:transform .3s var(--ease), box-shadow .3s var(--ease), border-color .3s var(--ease);
  }
  .project-card:hover{ transform:translateY(-6px); box-shadow:0 18px 40px rgba(23,20,15,0.10); border-color:rgba(23,20,15,0.18); }
  .project-card--large{ grid-column:span 7; }
  .project-card--medium{ grid-column:span 5; }
  .project-card--full{ grid-column:span 12; }
  .project-card--purple .project-visual{ background:linear-gradient(135deg,#efe4ff 0%, #f7f0ff 32%, #f8eddc 100%); }
  .project-card--sand .project-visual{ background:linear-gradient(135deg,#fff7dc 0%, #fef3d6 28%, #eee8ff 100%); }
  .project-card--blue .project-visual{ background:linear-gradient(135deg,#edf9ff 0%, #dff5f1 38%, #f8f0ff 100%); }
  .project-card--pink .project-visual{ background:linear-gradient(135deg,#ffe3f6 0%, #fff0fa 32%, #eee8ff 100%); }
  .project-visual--photo{ background-size:cover; background-position:center; }
  .project-visual--photo::before{
    content:"";
    position:absolute; inset:0;
    background:linear-gradient(180deg, rgba(15,12,8,0.55) 0%, rgba(15,12,8,0.05) 45%);
    z-index:1;
  }
  .project-visual--photo .project-visual__top{ color:rgba(255,255,255,0.82); position:relative; z-index:2; }
  .project-visual--photo .project-visual__label{ color:#fff; }
  .project-card--full .project-visual{ min-height:220px; }
  .project-visual{
    position:relative;
    display:flex;
    align-items:flex-end;
    justify-content:flex-end;
    padding:18px 18px 0;
    min-height:260px;
    overflow:hidden;
  }
  .project-visual__top{
    position:absolute;
    top:18px;
    left:18px;
    right:18px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    font-size:12px;
    color:var(--ink-faint);
    z-index:2;
  }
  .project-visual__label{
    font-family:'Chillax', sans-serif;
    font-weight:700;
    letter-spacing:-0.03em;
    color:var(--ink);
    font-size:14px;
    text-transform:uppercase;
  }
  .project-visual__index{
    font-size:11px;
    letter-spacing:0.08em;
    color:var(--ink-faint);
  }
  .project-visual .glyph{
    font-family:'General Sans', sans-serif;
    font-weight:800;
    font-size:clamp(120px, 18vw, 260px);
    line-height:0.7;
    color:rgba(23,20,15,0.13);
    transform:translate(12px, 18px);
    user-select:none;
    pointer-events:none;
  }
  .project-body{ padding:20px 22px 24px; }
  .project-card .work-name{ margin-top:0; font-size:20px; }
  .project-card .work-desc{ margin-top:10px; }
  .project-card .work-tags{ margin-top:14px; }

  @media (max-width:940px){
    .work-bento{ grid-template-columns:1fr; }
    .project-card--large, .project-card--medium, .project-card--full{ grid-column:auto; }
  }

  /* ---------- Services ---------- */
  .services{ position:relative; z-index:1; display:grid; grid-template-columns:repeat(3, 1fr); gap:20px; }
  @media (max-width:900px){ .services{ grid-template-columns:1fr; } }
  .service{
    background:var(--paper-2);
    border:3px solid var(--service-accent, var(--line));
    border-radius:22px;
    padding:36px 28px 30px;
    display:flex; flex-direction:column; align-items:center; text-align:center; min-height:480px;
    position:relative;
    overflow:hidden;
  }
  .service:nth-child(1){ --service-accent:#d9c3ff; --service-icon:#9b48ff; }
  .service:nth-child(2){ --service-accent:#bdeff4; --service-icon:#09aabd; }
  .service:nth-child(3){ --service-accent:#ffc2ed; --service-icon:var(--pink-deep); }
  .service::before{ content:""; position:absolute; inset:0 0 auto; height:180px; background:radial-gradient(ellipse at 50% 0%, color-mix(in srgb, var(--service-accent) 30%, transparent), transparent 72%); pointer-events:none; }
  .service__icon{ width:92px; height:92px; margin:8px auto 34px; stroke:var(--service-icon); stroke-width:5; stroke-linecap:round; stroke-linejoin:round; }
  .service:nth-child(1) .service__icon path:first-child{ stroke-width:3.5; }
  .service h3{ font-family:'Chillax',sans-serif; font-size:clamp(19px,1.7vw,24px); line-height:1.25; margin:0; min-height:2.5em; display:flex; align-items:center; justify-content:center; }
  .service p{ color:var(--ink-dim); font-size:15px; line-height:1.6; margin-top:18px; flex:1; }
  .service__list{ width:100%; margin-top:20px; margin-bottom:26px; display:flex; flex-direction:column; align-items:center; gap:10px; }
  .service__list span{ font-size:14px; color:var(--ink-dim); display:flex; align-items:center; justify-content:center; gap:8px; }
  .service__list span::before{ content:""; width:7px; height:7px; border-radius:50%; background:var(--service-accent); flex:0 0 auto; }
  .service__cta{ display:inline-flex; align-items:center; justify-content:center; min-width:170px; padding:14px 24px; border-radius:999px; background:#111; color:#fff; font-family:'General Sans',sans-serif; font-size:14px; font-weight:700; transition:transform .25s var(--ease), background .25s; }
  .service__cta:hover{ color:#fff; background:#292929; transform:translateY(-2px); }
  .service__cta:focus-visible{ outline:3px solid var(--service-accent); outline-offset:4px; }
  @media (max-width:900px){ .service{ min-height:0; } .service h3{ min-height:0; } }

  /* ---------- Process ---------- */
  .process{ display:grid; grid-template-columns:repeat(5,1fr); gap:22px; }
  @media (max-width:900px){ .process{ grid-template-columns:1fr 1fr; } }
  .p-step{
    --step-accent:var(--purple);
    background:var(--paper-2); border:2px solid color-mix(in srgb, var(--step-accent) 55%, white); border-radius:22px; padding:22px 18px;
  }
  .p-step:nth-child(1){ --step-accent:var(--purple); }
  .p-step:nth-child(2){ --step-accent:var(--blue); }
  .p-step:nth-child(3){ --step-accent:var(--pink); }
  .p-step:nth-child(4){ --step-accent:var(--blue); }
  .p-step:nth-child(5){ --step-accent:var(--purple); }
  .p-step .n{ font-family:'JetBrains Mono', monospace; font-size:12px; color:var(--ink-faint); }
  .p-step h4{ font-size:17px; margin-top:12px; }
  .p-step p{ font-size:13px; color:var(--ink-dim); margin-top:8px; line-height:1.5; }

  /* ---------- About ---------- */
  .about{ display:grid; grid-template-columns:0.9fr 1.1fr; gap:70px; align-items:start; }
  @media (max-width:900px){ .about{ grid-template-columns:1fr; gap:40px; } }
  .about__portrait{
    aspect-ratio:4/5; border-radius:var(--radius); overflow:hidden; position:relative;
    background:transparent;
    display:flex;
    align-items:flex-end;
    justify-content:center;
  }
  .about__portrait picture{ width:100%; height:100%; display:flex; align-items:flex-end; justify-content:center; }
  .about__portrait img{
    width:auto;
    height:100%;
    max-width:100%;
    object-fit:contain;
    object-position:bottom center;
  }
  .about p{ color:var(--ink-dim); font-size:16px; margin-top:16px; max-width:60ch; }
  .about p:first-of-type{ margin-top:22px; }
  .about__facts{ display:grid; grid-template-columns:1fr 1fr; gap:22px; margin-top:36px; }
  .about__facts div{ border-top:1px solid var(--line); padding-top:12px; }
  .about__facts strong{ display:block; font-family:'General Sans', sans-serif; font-weight:700; font-size:15px; margin-bottom:4px; }
  .about__facts span{ font-size:13px; color:var(--ink-faint); }

  /* ---------- Testimonials ---------- */
  .testi-note{ font-size:12.5px; color:var(--ink-faint); font-family:'JetBrains Mono', monospace; margin-bottom:32px; }
  .testi-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:20px; }
  @media (max-width:800px){ .testi-grid{ grid-template-columns:1fr; } }
  .testi{ background:var(--paper-2); border:1px solid var(--line); border-radius:var(--radius); padding:34px; border-top:3px solid var(--pink); }
  .testi p{ font-family:'General Sans', sans-serif; font-size:19px; font-weight:600; line-height:1.5; color:var(--ink); }
  .testi footer{ margin-top:20px; font-size:13px; color:var(--ink-faint); }

  /* ---------- CTA / Contact ---------- */
  .cta-section{ position:relative; overflow:hidden; border-radius:28px; background:var(--paper-2); border:1px solid var(--line); padding:64px var(--pad); }
  .cta{ display:grid; grid-template-columns:0.9fr 1.1fr; gap:64px; position:relative; z-index:1; }
  @media (max-width:900px){ .cta{ grid-template-columns:1fr; gap:40px; } }
  .cta h2{ font-size:clamp(30px,4vw,46px); max-width:12ch; }
  .cta__sub{ color:var(--ink-dim); margin-top:18px; max-width:40ch; font-size:15.5px; }
  .cta__contact{ margin-top:34px; display:flex; flex-direction:column; gap:10px; }
  .cta__contact a{ font-family:'JetBrains Mono', monospace; font-size:14px; color:var(--ink); border-bottom:1.5px solid var(--yellow-deep); width:fit-content; padding-bottom:2px; }
  .cta__contact a:hover{ color:var(--purple-deep); border-color:var(--purple-deep); }

  form{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
  .field{ display:flex; flex-direction:column; gap:7px; }
  .field{ min-width:0; }
  .field.full{ grid-column:1/-1; }
  label{ font-family:'JetBrains Mono', monospace; font-size:11px; letter-spacing:0.06em; color:var(--ink-faint); text-transform:uppercase; }
  input, select, textarea{
    background:var(--paper);
    border:1.5px solid var(--line-strong);
    border-radius:12px;
    padding:12px 14px;
    color:var(--ink);
    font-family:'General Sans', sans-serif; font-size:14.5px;
    outline:none;
    transition:border-color .2s;
  }
  input, select, textarea{ width:100%; min-width:0; }
  input:focus, select:focus, textarea:focus{ border-color:var(--purple-deep); }
  textarea{ resize:vertical; min-height:88px; }
  .field.full button{ margin-top:4px; justify-self:stretch; width:100%; justify-content:center; cursor:pointer; border:none; }
  .form-message{ min-height:22px; font-size:14px; line-height:1.5; color:var(--ink-dim); margin-top:4px; }
  .form-message.is-error{ color:#a12525; background:rgba(161,37,37,0.06); border:1px solid rgba(161,37,37,0.18); border-radius:10px; padding:10px 12px; }
  .form-message.is-success{ color:#66c13b; background:transparent; border:none; border-radius:0; padding:0; }
  .form-retry{ margin-left:10px; padding:7px 12px; font-size:12px; }
  button:disabled{ opacity:0.7; cursor:wait; }

  /* ---------- Footer ---------- */
  footer.site{ padding:60px 0 40px; }
  .footer__top{ display:flex; justify-content:space-between; flex-wrap:wrap; gap:30px; padding-bottom:36px; border-bottom:1px solid var(--line); }
  .footer__nav{ display:flex; gap:26px; flex-wrap:wrap; }
  .footer__nav a{ font-size:13.5px; color:var(--ink-dim); font-weight:500; }
  .footer__nav a:hover{ color:var(--purple-deep); }
  .footer__bottom{ display:flex; justify-content:space-between; padding-top:22px; flex-wrap:wrap; gap:12px; }
  .footer__bottom span{ font-size:12.5px; color:var(--ink-faint); font-family:'JetBrains Mono', monospace; }

  .burger{ display:none; flex-direction:column; gap:5px; background:none; border:none; cursor:pointer; padding:6px; }
  .burger span{ width:22px; height:2px; border-radius:2px; background:var(--ink); display:block; transition:transform .25s, opacity .25s; }
  @media (max-width:860px){ .burger{ display:flex; } }

  nav.links a.active{ color:var(--ink); font-weight:700; }

  @media (max-width:860px){
    header > .btn-primary{ display:none; }
    nav.links{
      display:none;
      position:fixed; top:0; left:0; right:0; bottom:0;
      background:var(--paper);
      flex-direction:column;
      justify-content:center;
      align-items:flex-start;
      gap:28px;
      padding:0 var(--pad);
      z-index:45;
    }
    nav.links.open{ display:flex; }
    nav.links a{ font-size:28px; font-family:'Chillax', sans-serif; font-weight:600; color:var(--ink); }
  }
  @media (max-width:700px){
    form{ grid-template-columns:1fr; }
    .field.full{ grid-column:auto; }
  }
  .burger.open span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
  .burger.open span:nth-child(2){ opacity:0; }
  .burger.open span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }

  /* ---------- Sub-page hero + breadcrumb ---------- */
  .page-hero{ padding:150px var(--pad) 70px; }
  .breadcrumb{ display:flex; align-items:center; gap:8px; font-size:13px; color:var(--ink-faint); margin-bottom:22px; }
  .breadcrumb a{ color:var(--ink-faint); transition:color .2s; }
  .breadcrumb a:hover{ color:var(--purple-deep); }
  .page-hero h1{ font-size:clamp(36px,5.4vw,64px); max-width:20ch; margin-top:14px; }
  .page-hero__sub{ max-width:640px; color:var(--ink-dim); font-size:clamp(16px,1.6vw,18.5px); margin-top:20px; }

  .case-nav{ display:flex; justify-content:space-between; align-items:center; padding:28px 0; border-top:1px solid var(--line); margin-top:80px; }
  .case-nav a{ font-size:14px; font-weight:600; color:var(--ink-dim); display:flex; align-items:center; gap:8px; }
  .case-nav a:hover{ color:var(--purple-deep); }

  .case-meta{ display:grid; grid-template-columns:repeat(4,1fr); gap:24px; padding:32px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); margin:48px 0; }
  @media (max-width:800px){ .case-meta{ grid-template-columns:1fr 1fr; } }
  .case-meta div strong{ display:block; font-family:'Chillax'; font-size:15px; margin-bottom:4px; }
  .case-meta div span{ font-size:13px; color:var(--ink-faint); }

  .case-block{ margin-bottom:56px; max-width:70ch; }
  .case-block h3{ font-size:22px; margin-bottom:14px; }
  .case-block p{ color:var(--ink-dim); font-size:16px; line-height:1.7; }
  .case-block p + p{ margin-top:14px; }

  .case-study-layout{ display:grid; grid-template-columns:minmax(0,1.1fr) minmax(300px,.9fr); align-items:start; gap:clamp(36px,5vw,76px); }
  .case-study-layout > .case-gallery{ position:sticky; top:104px; align-self:start; min-width:0; margin:0; }
  .case-study-copy{ padding:8px 8px 4px 0; }
  .case-study-copy .case-block{ max-width:none; margin:0 0 34px; }

  .case-visual{ height:340px; border-radius:var(--radius); margin:40px 0; position:relative; overflow:hidden; }
  .case-visual .glyph{ font-family:'Chillax'; font-weight:700; font-size:180px; color:rgba(23,20,15,0.10); position:absolute; bottom:-40px; right:20px; }
  .case-visual--photo{ background-size:cover; background-position:center; }

  .case-gallery{ margin:40px 0; }
  .case-gallery__main{ height:min(45vh, 420px); min-height:220px; display:grid; place-items:center; border-radius:var(--radius); overflow:hidden; background:transparent; }
  .case-gallery__main img{ display:block; width:auto; height:auto; max-width:100%; max-height:min(45vh, 420px); object-fit:contain; transition:opacity .32s ease, transform .32s ease; }
  .case-gallery__main img.is-changing{ opacity:0; transform:scale(.99); }
  .case-gallery__thumbs{ display:flex; flex-wrap:wrap; gap:12px; overflow:visible; padding:14px 2px 6px; }
  .case-gallery__thumb{ flex:0 0 80px; aspect-ratio:16 / 10; padding:0; border:2px solid transparent; border-radius:8px; overflow:hidden; cursor:pointer; opacity:.6; background:var(--paper-2); transition:opacity .2s ease, border-color .2s ease; }
  .case-gallery__thumb:hover,
  .case-gallery__thumb.is-active{ opacity:1; border-color:var(--purple-deep); }
  .case-gallery__thumb:focus-visible{ outline:2px solid var(--purple-deep); outline-offset:3px; }
  .case-gallery__thumb img{ display:block; width:100%; height:100%; object-fit:cover; }
  .case-gallery__thumb img[src*="/NOBODY/optimized/"]{ object-position:top; }
  .case-study-actions{ position:sticky; top:104px; z-index:3; display:flex; align-items:center; flex-wrap:wrap; gap:12px; margin:0 0 30px; }
  .case-study-actions--paired{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
  .case-gallery__zoom,
  .case-gallery__prototype{ display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:46px; padding:12px 20px; border:0; border-radius:100px; color:#000; cursor:pointer; font-family:'General Sans', sans-serif; font-size:14px; font-weight:700; text-decoration:none; transition:transform .25s var(--ease), box-shadow .25s; }
  .case-study-actions--paired .case-gallery__zoom,
  .case-study-actions--paired .case-gallery__prototype{ min-width:0; min-height:56px; padding:10px 8px; text-align:center; font-size:12px; line-height:1.25; white-space:normal; }
  .case-gallery__zoom{ background:#b98cfb; }
  .case-gallery__prototype{ background:#a9e1ec; }
  .case-gallery__zoom:hover,
  .case-gallery__prototype:hover{ color:#000; transform:translateY(-2px); box-shadow:0 10px 24px rgba(23,20,15,.14); }
  .case-gallery__zoom:focus-visible,
  .case-gallery__prototype:focus-visible{ outline:2px solid var(--purple-deep); outline-offset:4px; }
  .case-gallery__lightbox{ position:fixed; inset:50% auto auto 50%; transform:translate(-50%,-50%); width:min(96vw,1200px); max-width:none; max-height:90vh; margin:0; padding:0; border:0; border-radius:var(--radius); background:transparent; color:var(--ink); overflow:hidden; }
  .case-gallery__lightbox::backdrop{ background:rgba(23,20,15,.78); backdrop-filter:blur(4px); }
  .case-gallery__lightbox-scroll{ max-height:90vh; overflow:auto; border-radius:inherit; scrollbar-width:thin; scrollbar-color:var(--ink-faint) transparent; }
  .case-gallery__lightbox-scroll::-webkit-scrollbar{ width:10px; }
  .case-gallery__lightbox-scroll::-webkit-scrollbar-track{ background:transparent; margin:var(--radius) 0; }
  .case-gallery__lightbox-scroll::-webkit-scrollbar-thumb{ border:3px solid transparent; border-radius:999px; background:rgba(23,20,15,.35); background-clip:content-box; }
  .case-gallery__lightbox-close{ position:absolute; z-index:2; top:12px; right:12px; display:grid; place-items:center; width:40px; height:40px; border:1px solid var(--line); border-radius:50%; background:var(--paper); color:var(--ink); cursor:pointer; font-size:26px; line-height:1; box-shadow:0 4px 16px rgba(23,20,15,.12); }
  .case-gallery__lightbox-prev,
  .case-gallery__lightbox-next{ position:absolute; z-index:2; top:50%; display:grid; place-items:center; width:48px; height:48px; padding:0; transform:translateY(-50%); border:0; border-radius:0; background:transparent; color:#fff; cursor:pointer; }
  .case-gallery__lightbox-prev svg,
  .case-gallery__lightbox-next svg{ display:block; width:32px; height:32px; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
  .case-gallery__lightbox-prev{ left:12px; }
  .case-gallery__lightbox-next{ right:12px; }
  .case-gallery__lightbox-close:hover{ border-color:var(--purple-deep); color:var(--purple-deep); }
  .case-gallery__lightbox-prev:hover,
  .case-gallery__lightbox-next:hover{ color:#fff; }
  .case-gallery__lightbox-prev:disabled,
  .case-gallery__lightbox-next:disabled{ opacity:.28; cursor:default; }
  .case-gallery__lightbox-close:focus-visible,
  .case-gallery__lightbox-prev:focus-visible,
  .case-gallery__lightbox-next:focus-visible{ outline:2px solid var(--purple-deep); outline-offset:3px; }
  .case-gallery__lightbox-scroll > img{ display:block; width:auto; height:auto; max-width:100%; margin:0 auto; transition:opacity .32s ease, transform .32s ease; }
  .case-gallery__lightbox-scroll > img.is-changing{ opacity:0; transform:scale(.99); }
  @media (max-width:900px){
    .case-study-layout{ grid-template-columns:1fr; gap:34px; }
    .case-study-layout > .case-gallery{ position:static; }
    .case-study-actions{ position:static; }
    .case-study-copy{ padding:0; }
    .case-study-copy .case-block{ margin-bottom:40px; }
  }
  @media (prefers-reduced-motion: reduce){ .case-gallery__main img, .case-gallery__thumb{ transition:none; } }
