  @font-face{
    font-family:'Lato';
    font-weight:400; font-style:normal; font-display:swap;
    src:url(../fonts/lato-400.woff2) format('woff2');
  }
  @font-face{
    font-family:'Lato';
    font-weight:400; font-style:italic; font-display:swap;
    src:url(../fonts/lato-400-italic.woff2) format('woff2');
  }
  @font-face{
    font-family:'Lato';
    font-weight:700; font-style:normal; font-display:swap;
    src:url(../fonts/lato-700.woff2) format('woff2');
  }

  :root{
    --coral:#e43d47;
    --coral-deep:#b92832;
    --coral-soft:#f8dcd8;
    --cream:#ffffff;
    --paper:#f1e3ce;
    --paper-deep:#e4cfa9;
    --ink:#262626;
    --ink-soft:#656A70;
    --sage:#5f7849;
    --sage-deep:#465a35;
    --ochre:#a06e1e;
    --line:rgba(36,28,21,.14);
    --shadow:0 1px 2px rgba(36,28,21,.06);
    --shadow-lift:0 18px 40px -20px rgba(36,28,21,.35);
    --font-display:'Lato', ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
    --font-body:'Lato', ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
    color-scheme: light;
  }

  *,*::before,*::after{ box-sizing:border-box; }
  html{ scroll-behavior:smooth; }
  @media (prefers-reduced-motion: reduce){
    html{ scroll-behavior:auto; }
    *,*::before,*::after{ animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; scroll-behavior:auto !important; }
  }
  body{
    margin:0;
    background:var(--cream);
    color:var(--ink);
    font-family:var(--font-body);
    font-size:16px;
    line-height:1.6;
    -webkit-font-smoothing:antialiased;
    overflow-x:hidden;
  }
  img{ max-width:100%; display:block; }
  a{ color:inherit; }
  h1,h2,h3,p{ margin:0; }
  h1,h2,h3{ font-family:var(--font-display); text-wrap:balance; color:var(--ink); font-weight:300; }
  .wrap{ max-width:1200px; margin-inline:auto; padding-inline:24px; }
  @media (max-width:640px){ .wrap{ padding-inline:20px; } }

  .eyebrow{
    display:inline-flex; align-items:center; gap:8px;
    font:700 12.5px/1 var(--font-body); letter-spacing:.14em; text-transform:uppercase;
    color:var(--coral); margin:0 0 14px;
  }
  .eyebrow::before{ display:none; }

  /* ---------- Buttons ---------- */
  .btn{
    font:400 15px/1 var(--font-body); letter-spacing:-.005em;
    padding:15px 28px; border-radius:0; border:1.5px solid transparent;
    display:inline-flex; align-items:center; gap:8px; cursor:pointer;
    text-decoration:none; white-space:nowrap;
    color:#262626;
    transition:transform .35s cubic-bezier(.16,1,.3,1), background-color .25s ease, color .25s ease, border-color .25s ease, box-shadow .25s ease;
  }
  .btn:active{ transform:scale(.97); }
  .btn-primary{ background:#be9d7f; color:#262626; border-color:#be9d7f; }
  .btn-primary:hover{ background:var(--ink); color:var(--cream); border-color:var(--ink); transform:translateY(-2px); box-shadow:var(--shadow-lift); }
  .btn-ghost{ background:transparent; color:#262626; border-color:#262626; }
  .btn-ghost:hover{ background:#000; color:var(--cream); transform:translateY(-2px); }
  .btn-on-dark{ border-color:var(--cream); color:var(--cream); }
  .btn-on-dark:hover{ background:var(--cream); color:#262626; }
  .btn:focus-visible{ outline:2.5px solid var(--coral); outline-offset:3px; }
  .btn-sm{ padding:12px 24px; font-size:16px; gap:6px; }
  .btn-sm svg{ width:15px; height:15px; }


  /* ---------- Nav ---------- */
  header{
    position:sticky; top:0; z-index:50;
    background:color-mix(in srgb, var(--cream) 86%, transparent);
    backdrop-filter:blur(10px) saturate(1.2);
    -webkit-backdrop-filter:blur(10px) saturate(1.2);
    border-bottom:1px solid transparent;
    transition:border-color .3s ease;
  }
  header.scrolled{ border-bottom-color:var(--line); }
  nav.wrap{ display:flex; align-items:center; justify-content:space-between; height:68px; gap:20px; position:relative; z-index:41; }
  .brand{ display:flex; align-items:center; gap:10px; font:700 19px/1 var(--font-body); letter-spacing:-.01em; text-decoration:none; margin-right:auto; }
  .brand img{ height:56px; width:auto; }
  .navlinks{ display:flex; align-items:center; gap:2px; list-style:none; margin:0; padding:0; }
  .navlinks a{
    position:relative; display:block; padding:10px 16px; font:400 13px/1 var(--font-body);
    text-decoration:none; color:var(--ink-soft); border-radius:0; transition:color .25s ease;
  }
  .navlinks a::after{
    content:""; position:absolute; left:16px; right:16px; bottom:5px; height:2px; background:var(--coral);
    transform:scaleX(0); transform-origin:left; transition:transform .3s cubic-bezier(.16,1,.3,1);
  }
  .navlinks a:hover, .navlinks a.active{ color:var(--ink); }
  .navlinks a.active::after{ transform:scaleX(1); }
  .navlinks{ display:none; }
  @media (min-width:840px){ .navlinks{ display:flex; } }
  .nav-cta{ display:flex; align-items:center; gap:10px; }
  .nav-cta .btn{ padding:10px 24px; font-size:14px; }
  @media (max-width:839px){ .nav-cta{ display:none; } }

  /* ---------- Mobile menu toggle (hamburger) ---------- */
  .menu-toggle{
    display:none; align-items:center; justify-content:center;
    width:48px; height:48px; background:none; border:none;
    padding:0; cursor:pointer; position:relative; z-index:41; flex:0 0 auto;
  }
  @media (max-width:839px){ .menu-toggle{ display:flex; } }
  .menu-toggle .bars{ position:relative; width:20px; height:14px; }
  .menu-toggle .bars span{
    position:absolute; left:0; width:100%; height:2px; border-radius:0; background:var(--ink);
    transition:transform .45s cubic-bezier(.16,1,.3,1), opacity .3s ease, top .45s cubic-bezier(.16,1,.3,1), width .3s ease;
  }
  .menu-toggle .bars span:nth-child(1){ top:0; }
  .menu-toggle .bars span:nth-child(2){ top:6px; width:70%; }
  .menu-toggle .bars span:nth-child(3){ top:12px; }
  .menu-toggle[aria-expanded="true"] .bars span:nth-child(1){ top:6px; transform:rotate(45deg); }
  .menu-toggle[aria-expanded="true"] .bars span:nth-child(2){ opacity:0; width:0; left:50%; }
  .menu-toggle[aria-expanded="true"] .bars span:nth-child(3){ top:6px; transform:rotate(-45deg); }
  .menu-toggle:focus-visible{ outline:2.5px solid var(--coral); outline-offset:3px; }

  /* ---------- Mobile menu panel ---------- */
  /* Deliberately theme-fixed (always white/ink), independent of --cream/--ink tokens,
     so the full-screen takeover reads the same regardless of light/dark mode. */
  .mobile-menu{
    position:fixed; inset:0; z-index:40; background:#ffffff;
    display:flex; flex-direction:column; align-items:center; justify-content:center; gap:8px;
    opacity:0; visibility:hidden; transform:translateY(-14px);
    transition:opacity .5s cubic-bezier(.16,1,.3,1), transform .5s cubic-bezier(.16,1,.3,1), visibility 0s linear .5s;
  }
  .mobile-menu.open{
    opacity:1; visibility:visible; transform:none;
    transition:opacity .5s cubic-bezier(.16,1,.3,1), transform .5s cubic-bezier(.16,1,.3,1), visibility 0s linear 0s;
  }
  @media (min-width:840px){ .mobile-menu{ display:none; } }
  .mobile-menu nav{ display:flex; flex-direction:column; align-items:center; gap:26px; }
  .mobile-menu nav a{
    font:400 clamp(1.4rem,1.1rem + 3vw,2.2rem)/1 var(--font-display); text-decoration:none; color:#262626;
    opacity:0; transform:translateY(20px);
    transition:opacity .55s cubic-bezier(.16,1,.3,1), transform .55s cubic-bezier(.16,1,.3,1), color .25s ease;
  }
  .mobile-menu.open nav a{ opacity:1; transform:none; }
  .mobile-menu.open nav a:nth-child(1){ transition-delay:.1s; }
  .mobile-menu.open nav a:nth-child(2){ transition-delay:.16s; }
  .mobile-menu.open nav a:nth-child(3){ transition-delay:.22s; }
  .mobile-menu.open nav a:nth-child(4){ transition-delay:.28s; }
  .mobile-menu nav a:hover, .mobile-menu nav a:focus-visible{ color:#e43d47; }
  .mobile-menu .btn{
    margin-top:16px; opacity:0; transform:translateY(20px);
    transition:opacity .55s cubic-bezier(.16,1,.3,1), transform .55s cubic-bezier(.16,1,.3,1), background-color .25s ease, color .25s ease, border-color .25s ease;
  }
  .mobile-menu.open .btn{ opacity:1; transform:none; transition-delay:.36s; }
  body.menu-open{ overflow:hidden; }
  @media (prefers-reduced-motion: reduce){
    .mobile-menu, .mobile-menu nav a, .mobile-menu .btn, .menu-toggle .bars span{ transition:none !important; }
  }

  /* ---------- Hero ---------- */
  .hero{
    position:relative;
    overflow:hidden;
    width:100%;
    height:calc(100vh - 68px);
    height:calc(100svh - 68px);
    height:calc(100dvh - 68px);
    padding:0;
    background:var(--cream);
  }
  body.admin-bar > header{ top:32px; }
  @media(max-width:782px){ body.admin-bar > header{ top:46px; } }
  .hero-video{
    position:absolute;
    inset:0;
    display:block;
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:center;
  }

  /* ---------- Marquee ---------- */
  .marquee-band{ background:var(--ink); color:var(--cream); padding:16px 0; overflow:hidden; }
  .marquee-track{ display:flex; width:max-content; gap:0; animation:scrollMarquee 32s linear infinite; }
  .marquee-band:hover .marquee-track{ animation-play-state:paused; }
  .marquee-track span{ font:600 15px/1 var(--font-body); letter-spacing:.03em; padding:0 28px; white-space:nowrap; display:flex; align-items:center; gap:28px; }
  .marquee-track span::after{ content:"◆"; font-size:8px; color:var(--coral); }
  @keyframes scrollMarquee{ from{ transform:translateX(0);} to{ transform:translateX(-50%);} }

  /* ---------- Section scaffolding ---------- */
  section{ padding:50px 0; }
  @media (max-width:640px){ section{ padding:32px 0; } }
  .section-head{ display:flex; justify-content:space-between; align-items:flex-end; gap:40px; margin-bottom:56px; flex-wrap:wrap; }
  .section-head h2{ font:300 clamp(2rem, 1.5rem + 2.4vw, 3.1rem)/1.04 var(--font-display); max-width:14ch; }
  .section-head p{ max-width:38ch; color:var(--ink-soft); font-size:1.02rem; }

  [data-reveal]{ opacity:0; transform:translateY(22px); transition:opacity .8s cubic-bezier(.16,1,.3,1), transform .8s cubic-bezier(.16,1,.3,1); }
  [data-reveal].is-visible{ opacity:1; transform:none; }
  @media (prefers-reduced-motion: reduce){ [data-reveal]{ opacity:1; transform:none; } }

  /* ---------- About / positioning ---------- */
  .about-section{ background:var(--cream); padding-bottom:32px; }
  .about-lead{ display:block; }
  .about-lead .statement{ font:700 clamp(1.5rem,1.2rem + 1.4vw,2.15rem)/1.4 var(--font-body); letter-spacing:-.01em; max-width:45ch; text-align:center; margin:0 auto; color:#262626; }
  .about-lead .statement .hl{ color:inherit; }
  .about-lead .support{ font:700 1.05rem/1.6 var(--font-body); color:var(--ink); max-width:40ch; }
  @media (min-width:800px){ .about-lead .support{ padding-bottom:4px; } }

  .why-panel{ margin-top:64px; padding:clamp(28px,4vw,48px) clamp(24px,5vw,56px); border-radius:0; background:var(--paper); display:grid; gap:28px; }
  .why-panel .eyebrow{ grid-column:1/-1; }
  @media (min-width:760px){ .why-panel{ grid-template-columns:1.4fr 1fr; align-items:end; column-gap:40px; } }
  .why-panel h3{ font:300 clamp(1.4rem,1.15rem + 1vw,1.9rem)/1.3 var(--font-display); max-width:30ch; }
  .why-tag{ display:flex; gap:14px; align-items:center; }
  @media (min-width:760px){ .why-tag{ justify-self:end; padding-bottom:4px; } }
  .why-tag i{ width:28px; height:2px; background:var(--coral); flex:0 0 auto; border-radius:0; }
  .why-tag strong{ font:700 .98rem/1.3 var(--font-body); letter-spacing:.03em; color:var(--coral); max-width:16ch; }

  .how-panel{ margin-top:36px; }
  .how-panel-head{ display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:12px; }
  .how-link{ display:inline-flex; align-items:center; gap:6px; font:600 14px/1 var(--font-body); color:var(--ink); text-decoration:none; border-bottom:1.5px solid var(--coral); padding-bottom:3px; transition:gap .25s ease, color .25s ease; }
  .how-link:hover{ gap:10px; color:var(--coral); }
  .how-timeline{ list-style:none; margin:40px 0 0; padding:0; display:grid; grid-template-columns:repeat(4,1fr); gap:20px; position:relative; }
  .how-timeline::before{ content:""; position:absolute; top:19px; left:12.5%; right:12.5%; height:1.5px; background:var(--paper-deep); z-index:0; }
  .how-timeline li{ display:flex; flex-direction:column; align-items:center; text-align:center; gap:16px; position:relative; z-index:1; }
  .how-timeline .node{ width:38px; height:38px; border-radius:0; background:var(--cream); border:1.5px solid var(--coral); color:var(--coral); display:flex; align-items:center; justify-content:center; font:700 12px/1 var(--font-body); flex:0 0 auto; }
  .how-timeline .lbl{ font:600 .98rem/1.3 var(--font-display); max-width:14ch; }
  @media (max-width:700px){
    .how-timeline{ grid-template-columns:1fr; gap:28px; }
    .how-timeline::before{ top:0; bottom:0; left:19px; right:auto; width:1.5px; height:auto; }
    .how-timeline li{ flex-direction:row; text-align:left; }
  }

  .pain-points{ margin-top:80px; }
  .pain-points > .eyebrow{ margin-bottom:32px; }
  .pain-grid{ display:grid; grid-template-columns:1fr; gap:1px; background:var(--line); border:1px solid var(--line); border-radius:0; overflow:hidden; }
  @media (min-width:760px){ .pain-grid{ grid-template-columns:1fr 1fr; } }
  .pain-card{ position:relative; overflow:hidden; background:var(--cream); padding:40px clamp(28px,4vw,44px); transition:background-color .3s ease; }
  .pain-card:hover{ background:var(--paper); }
  .pain-card .pain-num{ position:absolute; top:8px; right:24px; font:600 4.5rem/1 var(--font-display); color:var(--paper-deep); z-index:0; }
  .pain-card h4{ position:relative; font:700 12.5px/1 var(--font-body); letter-spacing:.1em; text-transform:uppercase; color:var(--coral); margin-bottom:22px; }
  .pain-card ul{ position:relative; list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:16px; }
  .pain-card li{ display:flex; gap:12px; align-items:flex-start; font-size:1.02rem; color:var(--ink); }
  .pain-card li::before{ content:"\2192"; color:var(--coral); font-weight:700; flex:0 0 auto; }

  /* ---------- Materials shelf ---------- */
  .shelf-section{ background:var(--paper); }
  .shelf-section .section-head h2{ max-width:22ch; }
  .shelf-wrap{ position:relative; }
  .shelf{
    display:flex; gap:22px; overflow-x:auto; scroll-snap-type:x mandatory; padding:4px 24px 28px; margin:0 -24px;
    cursor:grab; -ms-overflow-style:none; scrollbar-width:none;
  }
  .shelf::-webkit-scrollbar{ display:none; }
  .shelf.dragging{ cursor:grabbing; scroll-snap-type:none; }
  .material-card{
    scroll-snap-align:start; flex:0 0 auto; width:290px;
    background:var(--cream); border:1px solid var(--line); border-radius:0; overflow:hidden;
    box-shadow:var(--shadow); transition:transform .45s cubic-bezier(.16,1,.3,1), box-shadow .45s ease;
  }
  .material-card:hover{ transform:translateY(-6px) rotate(-.6deg); box-shadow:var(--shadow-lift); }
  .material-card .photo{ aspect-ratio:1/1; overflow:hidden; user-select:none; }
  .material-card .photo img{ width:100%; height:100%; object-fit:cover; pointer-events:none; transition:transform .6s ease; }
  .material-card:hover .photo img{ transform:scale(1.06); }
  .material-card .body{ padding:20px 22px 24px; }
  .material-card .tag{
    font:600 9px/1 var(--font-body); letter-spacing:.02em; text-transform:uppercase;
    color:var(--sage-deep); background:color-mix(in srgb, var(--sage) 15%, transparent); display:inline-block; padding:4px 8px; border:1px solid color-mix(in srgb, var(--sage) 30%, transparent); border-radius:0;
    margin-bottom:12px;
  }
  .material-card h3{ font:600 1.28rem/1.15 var(--font-display); margin-bottom:8px; }
  .material-card p{ font-size:.92rem; color:var(--ink-soft); line-height:1.55; }

  .shelf-controls{ display:flex; align-items:center; justify-content:space-between; margin-top:8px; }
  .shelf-dashes{ display:flex; gap:6px; }
  .shelf-dashes i{ width:22px; height:3px; border-radius:0; background:var(--line); transition:background .3s ease, width .3s ease; }
  .shelf-dashes i.active{ background:var(--coral); width:34px; }
  .shelf-arrows{ display:flex; gap:10px; }
  .shelf-arrows button{
    width:44px; height:44px; border-radius:0; border:1.5px solid var(--ink); background:transparent; color:var(--ink);
    cursor:pointer; display:flex; align-items:center; justify-content:center; transition:background .25s ease, color .25s ease, transform .2s ease;
  }
  .shelf-arrows button:hover{ background:var(--ink); color:var(--cream); }
  .shelf-arrows button:active{ transform:scale(.92); }
  .shelf-arrows button:focus-visible, .shelf-dashes i:focus-visible{ outline:2.5px solid var(--coral); outline-offset:2px; }

  .shelf-more{ margin-top:44px; padding-top:32px; border-top:1px solid var(--line); display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:20px; }
  .shelf-more p{ color:var(--ink-soft); max-width:44ch; font-size:.98rem; }
  .shelf-more .btn svg{ transition:transform .3s cubic-bezier(.16,1,.3,1); }
  .shelf-more .btn:hover svg{ transform:translate(3px,-3px); }

  /* ---------- Process ---------- */
  .process-section {
    background: color-mix(in srgb, var(--cream) 92%, var(--paper));
  }
  
  .process-step-controls { display:flex; gap:8px; margin-top:22px; }
  .process-step-btn {
    width:48px; height:48px; border-radius:0;
    border:1px solid color-mix(in srgb, var(--ink) 12%, transparent);
    background:transparent; color:var(--ink);
    display:flex; align-items:center; justify-content:center;
    cursor:pointer; transition:all .2s ease;
  }
  .process-step-btn:hover { background:var(--ink); color:var(--cream); border-color:var(--ink); }
  .process-step-btn:disabled { opacity:.42; cursor:not-allowed; }
  .process-step-btn:disabled:hover { background:transparent; color:var(--ink); border-color:color-mix(in srgb, var(--ink) 12%, transparent); }

  .process-row {
    display: grid;
    grid-template-columns: 1fr;
    gap: 40px;
    align-items: center;
  }

  .process-row-content h3 { font:300 clamp(1.8rem, 1.45rem + 1.6vw, 2.65rem)/1.08 var(--font-display); color:var(--ink); margin: 0 0 16px; letter-spacing:-.015em; text-wrap:balance; }
  .process-row-content p { margin:0; font-size:1.1rem; line-height:1.6; color:var(--ink-soft); max-width:38ch; }
  .process-row-content .num { display:block; font:700 .9rem/1 var(--font-display); letter-spacing:.08em; color:var(--coral); margin-bottom:18px; }
  
  .process-row-tags { display:flex; flex-wrap:wrap; gap:10px; margin-top:24px; }
  .process-row-tags span {
    display:inline-flex; align-items:center; justify-content:center;
    min-height:20px; padding:4px 8px; border-radius:0;
    border:1px solid color-mix(in srgb, var(--ink) 18%, var(--line));
    background:color-mix(in srgb, var(--ink) 5%, transparent);
    color:var(--ink-soft); font:700 10px/1.1 var(--font-body); letter-spacing:.03em; text-transform:uppercase;
  }

  /* Tag colors matching original */
  .process-row:nth-child(1) .process-row-tags span { border-color:color-mix(in srgb, var(--sage) 38%, var(--line)); background:color-mix(in srgb, var(--sage) 14%, transparent); color:var(--sage-deep); }
  .process-row:nth-child(2) .process-row-tags span { border-color:color-mix(in srgb, var(--ochre) 42%, var(--line)); background:color-mix(in srgb, var(--ochre) 14%, transparent); color:color-mix(in srgb, var(--ochre) 72%, #2a2017); }
  .process-row:nth-child(3) .process-row-tags span { border-color:color-mix(in srgb, var(--coral) 44%, var(--line)); background:color-mix(in srgb, var(--coral) 12%, transparent); color:var(--coral-deep); }
  .process-row:nth-child(4) .process-row-tags span { border-color:color-mix(in srgb, var(--ink) 28%, var(--line)); background:color-mix(in srgb, var(--ink) 8%, transparent); color:var(--ink); }

  .process-row-media {
    position: relative;
    width: 100%;
    aspect-ratio: 4/3;
    border-radius:0;
    overflow: hidden;
    background: #d2c2aa;
    box-shadow: 0 20px 40px rgba(0,0,0,0.08);
  }
  .process-row-media video {
    width: 100%; height: 100%; object-fit: cover;
  }
  .process-row-media .step-cap {
    position: absolute; left: 0; right: 0; bottom: 0; padding: 15px 18px;
    background: linear-gradient(to top, rgba(0,0,0,.62), rgba(0,0,0,.1)); color: #fff;
    font: 600 12px/1.45 var(--font-body); letter-spacing: .01em;
  }

  .process-section {
    height: 500vh; /* 5 steps, so 500vh scroll space */
    padding: 0;
    position: relative;
  }
  
  /* Make the wrap sticky */
  .process-section .wrap {
    position: sticky;
    top: 98px;
    height: calc(100vh - 98px);
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    padding-top: clamp(18px,2.5vh,28px);
    overflow: hidden;
  }
  
  .process-list {
    position: relative;
    width: 100%;
    display: grid;
  }

  .process-row {
    grid-area: 1 / 1; /* Stack all steps exactly on top of each other */
    gap: 40px;
    opacity: 0;
    pointer-events: none;
    transform: translateY(12px);
    will-change:opacity,transform;
    transition:
      opacity .65s cubic-bezier(.22,.61,.36,1),
      transform .75s cubic-bezier(.16,1,.3,1);
  }
  
  .process-row.active {
    opacity: 1;
    transform: translateY(0);
    pointer-events: auto;
    z-index: 2;
  }
  
  .process-row-media video {
    opacity:.78;
    transform:scale(1.018);
    will-change:opacity,transform;
    transition:
      opacity .65s cubic-bezier(.22,.61,.36,1),
      transform 1s cubic-bezier(.16,1,.3,1);
  }
  
  .process-row.active .process-row-media video {
    opacity:1;
    transform:scale(1);
  }

  @media (min-width: 1080px) {
    .process-row {
      grid-template-columns: 1fr 1.2fr;
      gap: 44px;
    }
  }

  /* ---------- Material library ---------- */
  .library-section{ background:var(--paper); }

  .library-filters{
    display:flex; flex-wrap:wrap; gap:2px; margin-bottom:30px;
    width:fit-content;
    border-bottom:1px solid color-mix(in srgb, var(--ink) 14%, transparent);
  }
  .filter-pill{
    position:relative;
    display:inline-flex;
    align-items:center;
    font:600 14px/1 var(--font-body);
    letter-spacing:0;
    padding:11px 14px 12px;
    border-radius:0;
    border:none;
    background:transparent;
    color:var(--ink-soft);
    cursor:pointer;
    transition:color .25s ease, transform .2s ease;
  }
  .filter-pill::before{
    content:"";
    position:absolute;
    left:14px;
    right:14px;
    bottom:-1px;
    height:2px;
    border-radius:0;
    background:var(--coral);
    transform:scaleX(0);
    transform-origin:left center;
    transition:transform .28s cubic-bezier(.16,1,.3,1);
  }
  .filter-pill:hover{
    color:var(--ink);
  }
  .filter-pill.active{
    color:var(--ink);
  }
  .filter-pill.active::before{
    transform:scaleX(1);
  }
  .filter-pill:active{ transform:translateY(1px); }
  .filter-pill:focus-visible{ outline:2.5px solid var(--coral); outline-offset:2px; }
  @media (max-width:640px){
    .library-filters{
      width:100%;
      display:grid;
      grid-template-columns:repeat(3, minmax(0, 1fr));
      gap:4px 10px;
      padding:0;
      border-bottom:none;
    }
    .filter-pill{
      width:100%;
      justify-content:center;
      white-space:nowrap;
      padding:9px 0 10px;
      font-size:13px;
    }
    .filter-pill::before{ left:20%; right:20%; }
  }
  @media (max-width:420px){
    .library-filters{ grid-template-columns:repeat(2, minmax(0, 1fr)); }
  }

  .library-layout{ display:flex; flex-direction:column; gap:36px; }

  .library-mobile-picker{ display:none; }
  .library-mobile-picker label{
    display:block;
    margin:0 0 8px;
    font:700 11px/1 var(--font-body);
    letter-spacing:.08em;
    text-transform:uppercase;
    color:var(--ink-soft);
  }
  .library-mobile-picker select{
    width:100%;
    border:1.5px solid color-mix(in srgb, var(--ink) 20%, transparent);
    border-radius:0;
    background:var(--cream);
    color:var(--ink);
    padding:13px 42px 13px 14px;
    font:600 15px/1.2 var(--font-display);
    box-shadow:0 10px 20px -18px rgba(36,28,21,.55);
    appearance:none;
    -webkit-appearance:none;
    background-image:
      linear-gradient(45deg, transparent 50%, var(--ink-soft) 50%),
      linear-gradient(135deg, var(--ink-soft) 50%, transparent 50%);
    background-position:
      calc(100% - 22px) calc(50% - 2px),
      calc(100% - 16px) calc(50% - 2px);
    background-size:6px 6px, 6px 6px;
    background-repeat:no-repeat;
  }
  .library-mobile-picker select:focus-visible{
    outline:2.5px solid var(--coral);
    outline-offset:2px;
  }

  .library-list{ display:flex; flex-wrap:wrap; align-items:center; gap:10px; }
  .library-item{
    display:inline-flex; align-items:center; gap:9px; width:auto;
    appearance:none; background:var(--cream); margin:0; border:1.5px solid var(--line); border-radius:0;
    padding:8px 16px; text-align:left; font-family:var(--font-body); cursor:pointer;
    transition:border-color .25s ease, background-color .25s ease, transform .25s ease, box-shadow .25s ease;
  }
  .library-item:hover{ border-color:var(--coral); transform:translateY(-2px); box-shadow:var(--shadow); }
  .library-item-dot{ width:8px; height:8px; border-radius:0; flex:0 0 auto; background:var(--ink-soft); }
  .library-item[data-category="paper"] .library-item-dot{ background:var(--ochre); }
  .library-item[data-category="fiber"] .library-item-dot{ background:var(--sage); }
  .library-item[data-category="mineral"] .library-item-dot{ background:var(--ink); }
  .library-item[data-category="plastic"] .library-item-dot{ background:#3f67c4; }
  .library-item[data-category="bio"] .library-item-dot{ background:var(--coral); }
  .library-item-name{ font:600 0.75rem/1.2 var(--font-display); color:var(--ink); white-space:nowrap; transition:color .25s ease; }
  .library-item:hover .library-item-name{ color:var(--coral); }
  .library-item.active .library-item-name{ color:var(--coral); }
  .library-item.filtered-out{ display:none; }
  .library-item:focus-visible{ outline:2.5px solid var(--coral); outline-offset:2px; }
  .library-item.active[data-category="paper"]{ border-color:var(--ochre); background:color-mix(in srgb, var(--ochre) 10%, var(--cream)); }
  .library-item.active[data-category="fiber"]{ border-color:var(--sage); background:color-mix(in srgb, var(--sage) 12%, var(--cream)); }
  .library-item.active[data-category="mineral"]{ border-color:var(--ink); background:color-mix(in srgb, var(--ink) 8%, var(--cream)); }
  .library-item.active[data-category="plastic"]{ border-color:#3f67c4; background:color-mix(in srgb, #3f67c4 12%, var(--cream)); }
  .library-item.active[data-category="bio"]{ border-color:var(--coral); background:var(--coral-soft); }

  .cat-paper{ color:var(--ochre); background:color-mix(in srgb, var(--ochre) 18%, transparent); }
  .cat-fiber{ color:var(--sage-deep); background:color-mix(in srgb, var(--sage) 18%, transparent); }
  .cat-mineral{ color:var(--ink); background:color-mix(in srgb, var(--ink) 10%, transparent); }
  .cat-plastic{ color:#2f4f9a; background:color-mix(in srgb, #3f67c4 16%, transparent); }
  .cat-bio{ color:var(--coral-deep); background:var(--coral-soft); }

  .library-detail{
    position:relative; overflow:hidden; background:var(--cream); border-radius:0;
    box-shadow:var(--shadow); display:grid; grid-template-columns:1fr;
  }
  @media (min-width:720px){ .library-detail{ grid-template-columns:minmax(220px,320px) 1fr; align-items:stretch; } }
  .library-detail-image{
    position:relative; min-height:260px; overflow:hidden;
    background:linear-gradient(155deg, var(--lib-accent, var(--coral)), color-mix(in srgb, var(--lib-accent, var(--coral)) 55%, black));
    transition:background .35s ease;
  }
  .library-detail-image img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
  .library-detail-body{ padding:clamp(28px,4vw,48px); min-width:0; }
  .library-detail-cat{ display:inline-block; font:600 9px/1 var(--font-body); padding:4px 8px; letter-spacing:.02em; text-transform:uppercase; border-radius:0; margin-bottom:18px; }
  .library-detail h3{ font:300 clamp(1.5rem,1.2rem + 1vw,2rem)/1.15 var(--font-display); margin-bottom:16px; }
  .library-detail-about{ color:var(--ink-soft); font-size:1.02rem; line-height:1.6; max-width:60ch; }

  .library-detail-grid{ margin-top:36px; display:grid; grid-template-columns:1fr; gap:32px; }
  @media (min-width:560px){ .library-detail-grid{ grid-template-columns:1.2fr 1fr; } }
  .library-detail-grid .eyebrow{ margin-bottom:14px; }
  .library-detail-grid ul{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:10px; }
  .library-detail-grid li{ display:flex; gap:9px; align-items:flex-start; font-size:.94rem; color:var(--ink); line-height:1.5; }
  .library-detail-grid li::before{ content:"\2192"; color:var(--coral); font-weight:700; flex:0 0 auto; }
  #libDetailIndustries{ flex-direction:row; flex-wrap:wrap; gap:8px; }
  #libDetailIndustries li{ background:#be9d7f; color:#262626; padding:6px 10px; border-radius:0; font-size:.78rem; }
  #libDetailIndustries li::before{ content:none; }

  .library-detail-lifecycle{ margin-top:32px; padding-top:28px; border-top:1px solid var(--line); }
  .library-detail-lifecycle p{ margin-top:12px; color:var(--ink-soft); font-size:.98rem; line-height:1.6; max-width:62ch; }

  .library-detail-tags{ margin-top:28px; display:flex; flex-wrap:wrap; align-items:center; gap:18px; }
  .library-detail-tags img{ width:34px; height:34px; object-fit:contain; }

  @media (max-width:700px){
    .library-section{
      background:
        radial-gradient(100% 56% at 50% -8%, color-mix(in srgb, var(--coral) 16%, transparent), transparent 66%),
        var(--paper);
    }
    .library-section .section-head{
      gap:18px;
      margin-bottom:30px;
    }
    .library-section .section-head h2{
      max-width:none;
      font-size:clamp(1.9rem, 8vw, 2.5rem);
      line-height:1;
    }
    .library-section .section-head p{
      font-size:.95rem;
      line-height:1.52;
    }

    .library-layout{ gap:22px; }

    .library-mobile-picker{
      display:block;
      position:sticky;
      top:74px;
      z-index:6;
      margin:0;
      padding:10px;
      background:color-mix(in srgb, var(--paper) 84%, transparent);
      backdrop-filter:blur(6px) saturate(1.05);
      -webkit-backdrop-filter:blur(6px) saturate(1.05);
      border-radius:0;
      border:1px solid color-mix(in srgb, var(--ink) 10%, transparent);
    }
    .library-list{ display:none; }

    .library-detail{
      border-radius:0;
      border:1px solid color-mix(in srgb, var(--ink) 12%, transparent);
      box-shadow:0 24px 34px -30px rgba(36,28,21,.6);
    }
    .library-detail-image{
      min-height:192px;
      border-bottom:1px solid color-mix(in srgb, var(--ink) 12%, transparent);
    }
    .library-detail-body{ padding:22px 18px 20px; }
    .library-detail-cat{ margin-bottom:12px; }
    .library-detail h3{
      font-size:1.55rem;
      line-height:1.1;
      margin-bottom:12px;
    }
    .library-detail-about{
      font-size:.94rem;
      line-height:1.58;
    }
    .library-detail-grid{
      margin-top:24px;
      gap:22px;
    }
    .library-detail-grid ul{ gap:8px; }
    .library-detail-grid li{ font-size:.9rem; }
    #libDetailIndustries li{
      font-size:.72rem;
      padding:6px 9px;
      background:color-mix(in srgb, var(--paper) 64%, var(--cream));
      border:1px solid color-mix(in srgb, var(--ink) 10%, transparent);
    }
    .library-detail-lifecycle{
      margin-top:24px;
      padding-top:20px;
    }
    .library-detail-lifecycle p{
      margin-top:10px;
      font-size:.92rem;
      line-height:1.58;
    }
    .library-detail-tags{
      margin-top:20px;
      gap:12px;
    }
    .library-detail-tags img{
      width:30px;
      height:30px;
    }
  }

  /* ---------- Impact calculator ---------- */
  .impact-section{ background:#fff; color:var(--ink); }
  .impact-section .eyebrow{ color:var(--coral-deep); }
  .impact-section .section-head h2{ color:var(--ink); }
  .impact-section .section-head p{ color:var(--ink-soft); }
  .impact-section .section-head h2{ max-width:22ch; }
  .impact-panel{ background:var(--cream); border:1px solid var(--line); border-radius:0; padding:44px; display:grid; gap:40px; box-shadow:var(--shadow); }
  .impact-section-footnote{
    margin:16px 0 0;
    max-width:84ch;
    color:var(--ink-soft);
    font-size:.98rem;
    line-height:1.6;
  }
  @media (min-width:860px){ .impact-panel{ grid-template-columns:1fr 1.3fr; padding:52px; } }
  .impact-input label{ display:block; font:700 12px/1 var(--font-body); letter-spacing:.1em; text-transform:uppercase; color:var(--ink-soft); margin-bottom:18px; }
  .impact-input .big-number{ font:600 3rem/1 var(--font-display); font-variant-numeric:tabular-nums; margin-bottom:20px; }
  .impact-input .big-number span{ font-size:1.5rem; color:var(--coral); }
  input[type="range"]{
    -webkit-appearance:none; appearance:none; width:100%; height:4px; border-radius:0;
    background:linear-gradient(to right, var(--coral) var(--fill,50%), color-mix(in srgb, var(--ink) 16%, transparent) 0%);
    outline:none; cursor:pointer;
  }
  input[type="range"]::-webkit-slider-thumb{
    -webkit-appearance:none; width:22px; height:22px; border-radius:0; background:var(--coral);
    border:3px solid var(--cream); box-shadow:0 0 0 1px color-mix(in srgb, var(--ink) 22%, transparent); cursor:pointer; transition:transform .2s ease;
  }
  input[type="range"]::-webkit-slider-thumb:hover{ transform:scale(1.15); }
  input[type="range"]::-moz-range-thumb{ width:22px; height:22px; border-radius:0; background:var(--coral); border:3px solid var(--cream); cursor:pointer; }
  input[type="range"]:focus-visible{ outline:2.5px solid var(--coral); outline-offset:6px; }
  .impact-input .scale-labels{ display:flex; justify-content:space-between; font-size:12px; color:var(--ink-soft); margin-top:10px; font-variant-numeric:tabular-nums; }
  .impact-stats{ display:grid; grid-template-columns:1fr; gap:1px; background:var(--line); border-radius:0; overflow:hidden; border:1px solid var(--line); }
  @media (min-width:520px){ .impact-stats{ grid-template-columns:1fr 1fr; } }
  .impact-stat{ background:var(--cream); padding:26px 24px; }
  .impact-stat strong{ display:block; font:600 2.1rem/1 var(--font-display); font-variant-numeric:tabular-nums; color:var(--coral-deep); }
  .impact-stat span{ font-size:13px; color:var(--ink-soft); }
  .impact-note{ grid-column:1/-1; background:color-mix(in srgb, var(--paper) 70%, var(--cream)); font-size:12.5px; line-height:1.6; color:var(--ink-soft); padding:18px 24px; }

  /* ---------- Case studies ---------- */
  .studies-section{ background:#fff; }
  .studies-grid{ display:grid; grid-template-columns:1fr; gap:1px; background:var(--line); border:1px solid var(--line); border-radius:0; overflow:hidden; }
  @media (min-width:760px){ .studies-grid{ grid-template-columns:repeat(3,minmax(0,1fr)); } }
  .study-card{
    position:relative; isolation:isolate; overflow:hidden;
    appearance:none; background:var(--ink); padding:28px; min-height:440px; aspect-ratio:4/5;
    display:flex; flex-direction:column; justify-content:flex-end; align-items:flex-start; gap:14px;
    border:none; margin:0; width:100%; text-align:left; font:inherit; color:var(--cream); cursor:pointer;
  }
  .study-card::after{ content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(to top,rgba(15,12,10,.88) 0%,rgba(15,12,10,.5) 45%,rgba(15,12,10,.08) 78%); transition:background .35s ease; }
  .study-card:hover::after,.study-card:focus-visible::after{ background:linear-gradient(to top,rgba(15,12,10,.94) 0%,rgba(15,12,10,.58) 48%,rgba(15,12,10,.12) 80%); }
  .study-card:focus-visible{ outline:2.5px solid var(--coral); outline-offset:-4px; }
  .study-cover{ position:absolute; inset:0; z-index:-2; width:100%; height:100%; object-fit:cover; transition:transform .7s cubic-bezier(.16,1,.3,1); }
  .study-card:hover .study-cover,.study-card:focus-visible .study-cover{ transform:scale(1.045); }
  .study-logo{ height:52px; width:auto; max-width:180px; padding:8px 10px; background:rgba(255,255,255,.92); object-fit:contain; object-position:left center; }
  .sr-only{
    position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden;
    clip:rect(0,0,0,0); white-space:nowrap; border:0;
  }
  .study-card .cat{ position:static; padding:7px 9px; background:rgba(255,255,255,.9); font:700 10px/1 var(--font-body); letter-spacing:.12em; text-transform:uppercase; color:var(--ink); }
  .study-card .name{ color:#fff; font:700 1.7rem/1.15 var(--font-display); text-shadow:0 1px 12px rgba(0,0,0,.3); }
  .study-card p{ color:rgba(255,255,255,.9); font-size:.98rem; line-height:1.5; max-width:36ch; text-shadow:0 1px 12px rgba(0,0,0,.3); }
  .study-card .name .brand-mark{ display:inline-flex; align-items:center; gap:8px; }
  .study-card .name .brand-mark svg{ flex:0 0 auto; }
  .study-more{
    display:inline-flex; align-items:center; gap:6px; margin-top:auto; padding-top:4px;
    font:700 14px/1 var(--font-body); color:#fff; transition:gap .25s ease;
  }
  .study-card .study-more{ margin-top:0; }
  .study-card:hover .study-more, .study-card:focus-visible .study-more{ gap:10px; }
  @media(max-width:759px){
    .study-card{ min-height:360px; aspect-ratio:16/11; }
  }

  /* ---------- Case study modal ---------- */
  .study-modal{
    position:fixed; inset:0; z-index:120;
    display:flex; align-items:center; justify-content:center;
    padding:clamp(12px, 3vw, 28px);
    visibility:hidden; opacity:0; transition:opacity .3s ease, visibility 0s linear .3s;
  }
  .study-modal.open{ visibility:visible; opacity:1; transition:opacity .3s ease; }
  .study-modal-backdrop{ position:absolute; inset:0; background:rgba(20,14,9,.55); backdrop-filter:blur(3px); }
  .study-modal-panel{
    position:relative; z-index:1; background:var(--cream);
    width:min(920px, 100%); max-height:86vh;
    border-radius:0; overflow-y:auto; box-shadow:var(--shadow-lift);
    scrollbar-width:none;
    transform:translateY(28px); opacity:0; transition:transform .4s cubic-bezier(.16,1,.3,1), opacity .3s ease;
  }
  .study-modal-panel::-webkit-scrollbar{ display:none; }
  .study-modal.open .study-modal-panel{ transform:none; opacity:1; }
  .study-modal.feature-open{ padding:20px; }
  .study-modal.feature-open .study-modal-panel{ width:min(1320px,calc(100vw - 32px)); max-height:calc(100dvh - 24px); background:var(--cream); }
  .study-modal.feature-open .study-modal-hero,
  .study-modal.feature-open .study-modal-content{ display:none; }
  .project-feature{ padding:24px clamp(24px,3vw,42px) 28px; }
  .project-feature[hidden]{ display:none; }
  .project-feature-heading{ padding-right:60px; }
  .project-feature-heading .eyebrow{ margin-bottom:10px; }
  .project-feature-heading h3{ max-width:none; font:700 clamp(1.55rem,2vw,2.2rem)/1.08 var(--font-display); letter-spacing:-.02em; color:var(--ink); }
  .project-feature-media{ position:relative; width:100%; aspect-ratio:16/9; margin-top:28px; overflow:hidden; background:var(--paper); }
  .project-feature-media img,
  .project-feature-media video{ display:block; width:100%; height:100%; object-fit:cover; }
  .project-feature-media [hidden]{ display:none; }
  .project-feature-details{ margin-top:20px; }
  .project-feature-logo{ display:flex; align-items:center; }
  .project-feature-logo img{ display:block; width:auto; height:44px; max-width:min(220px,100%); object-fit:contain; object-position:left center; }
  .project-feature-meta{ display:grid; grid-template-columns:repeat(3,1fr); border-block:1px solid var(--line); }
  .project-feature-meta.two-items{ grid-template-columns:repeat(2,1fr); }
  .project-feature-meta > [hidden]{ display:none; }
  .project-feature-meta > div{ padding:12px 14px; border-right:1px solid var(--line); }
  .project-feature-meta > div:first-child{ padding-left:0; }
  .project-feature-meta > div:last-child{ border-right:0; }
  .project-feature-details strong{ display:block; color:var(--coral); font:700 10px/1.15 var(--font-body); letter-spacing:.11em; text-transform:uppercase; }
  .project-feature-meta p{ margin-top:6px; color:var(--ink); font:700 14px/1.3 var(--font-body); }
  .project-feature-about{ display:grid; grid-template-columns:120px 1fr; gap:16px; padding:15px 0; border-bottom:1px solid var(--line); }
  .project-feature-about p{ color:var(--ink-soft); font-size:.82rem; line-height:1.45; max-width:62ch; }
  .project-feature-scope{ display:grid; grid-template-columns:120px 1fr; gap:16px; align-items:start; padding:15px 0; border-bottom:1px solid var(--line); }
  .project-feature-scope > div{ display:flex; flex-wrap:wrap; gap:7px; }
  .project-feature-scope span{ padding:5px 7px; border:1px solid var(--line); color:var(--ink); font:700 9px/1 var(--font-body); letter-spacing:.03em; text-transform:uppercase; }
  .project-feature-impact{ padding-top:16px; }
  .project-feature-section-label{ margin-bottom:9px; }
  .project-feature-impact-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line); }
  .project-feature-impact-grid.impact-count-1{ grid-template-columns:1fr; }
  .project-feature-impact-grid.impact-count-2{ grid-template-columns:repeat(2,1fr); }
  .project-feature-impact-grid article{ min-width:0; padding:12px; background:var(--cream); }
  .project-feature-impact-grid article > b{ display:block; color:var(--coral); font:700 clamp(1.45rem,2vw,2rem)/1 var(--font-display); }
  .project-feature-impact-grid article > strong{ margin-top:5px; color:var(--ink); font-size:9px; }
  .project-feature-impact-grid p{ margin-top:5px; color:var(--ink-soft); font-size:.72rem; line-height:1.35; }
  .project-feature-nav{ display:grid; grid-template-columns:1fr 1fr; margin-top:12px; border-top:1px solid var(--line); }
  .project-feature-nav button{ min-width:0; display:grid; grid-template-columns:auto 1fr; align-items:center; gap:2px 8px; padding:12px 0; border:0; background:transparent; color:var(--ink); font-family:var(--font-body); text-align:left; cursor:pointer; }
  .project-feature-nav button:last-child{ grid-template-columns:1fr auto; text-align:right; }
  .project-feature-nav small{ color:var(--ink-soft); font-size:9px; letter-spacing:.08em; text-transform:uppercase; }
  .project-feature-nav strong{ font-size:12px; line-height:1.2; }
  .project-feature-nav button:first-child small,.project-feature-nav button:first-child strong{ grid-column:2; }
  .project-feature-nav button:last-child small,.project-feature-nav button:last-child strong{ grid-column:1; }
  .project-feature-nav button:hover strong,.project-feature-nav button:focus-visible strong{ color:var(--coral); }
  .project-feature-nav button:focus-visible{ outline:2px solid var(--coral); outline-offset:2px; }
  @media (min-width:901px){
    .study-modal.feature-open .study-modal-panel{ overflow-y:hidden; }
    .project-feature{ display:grid; grid-template-columns:minmax(0,1.08fr) minmax(440px,.92fr); grid-template-rows:auto auto; align-items:start; gap:18px 36px; }
    .project-feature-heading{ grid-column:1; grid-row:1; padding-right:0; align-self:end; }
    .project-feature-logo{ grid-column:2; grid-row:1; align-self:center; justify-self:start; }
    .project-feature-media{ grid-column:1; grid-row:2; margin-top:0; }
    .project-feature-details{ grid-column:2; grid-row:2; margin-top:0; align-self:start; }
  }
  .study-modal-close{
    position:absolute; top:14px; right:14px; z-index:2; width:42px; height:42px; border-radius:0;
    background:var(--cream); color:var(--ink); border:none; display:flex; align-items:center; justify-content:center;
    cursor:pointer; box-shadow:var(--shadow-lift); opacity:0; visibility:hidden;
    transition:background-color .2s ease, color .2s ease, transform .25s ease, opacity .3s ease, visibility 0s linear .3s;
  }
  .study-modal.open .study-modal-close{ opacity:1; visibility:visible; transition:background-color .2s ease, color .2s ease, transform .25s ease, opacity .3s ease; }
  .study-modal-close:hover{ background:var(--ink); color:var(--cream); transform:rotate(90deg); }
  .study-modal-close:focus-visible{ outline:2.5px solid var(--coral); outline-offset:2px; }

  .study-modal-hero{ position:relative; width:100%; height:clamp(220px,34vw,360px); background:var(--paper); display:flex; align-items:flex-end; }
  .study-modal-hero > img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
  .study-modal-hero-scrim{
    position:absolute; inset:0;
    background:linear-gradient(to top, rgba(18,13,9,.88) 0%, rgba(18,13,9,.5) 42%, rgba(18,13,9,0) 75%);
  }
  .study-modal-hero-inner{ position:relative; z-index:1; width:100%; padding:0 clamp(18px,4vw,40px) 26px; color:var(--cream); }
  .sector-pill{
    display:inline-block; font:700 11.5px/1 var(--font-body); letter-spacing:.1em; text-transform:uppercase;
    color:var(--cream); background:var(--coral); padding:8px 14px; border-radius:0;
  }
  .study-modal-hero-inner h3{ margin-top:14px; color:var(--cream); font:300 clamp(1.45rem,1.2rem + 1.2vw,2.2rem)/1.15 var(--font-display); max-width:20ch; text-wrap:balance; }
  .study-modal-tagline{ margin-top:10px; font:700 1rem/1.45 var(--font-body); color:color-mix(in srgb, var(--cream) 88%, transparent); max-width:50ch; }

  .study-modal-content{ max-width:880px; margin:0 auto; padding:34px clamp(18px,4vw,40px) 44px; }
  .study-modal-challenge-logo{
    display:flex; width:fit-content; align-items:center;
    padding:0; margin-bottom:16px;
  }
  .study-modal-challenge-logo img{ height:40px; width:auto; max-width:220px; object-fit:contain; }
  .study-modal-challenge p{
    margin-top:12px; font:700 1.08rem/1.5 var(--font-body); color:var(--ink); max-width:62ch;
  }
  .study-modal-grid{
    margin-top:30px; display:grid; grid-template-columns:1fr; gap:1px;
    background:var(--line); border:1px solid var(--line); border-radius:0; overflow:hidden;
  }
  @media (min-width:640px){ .study-modal-grid{ grid-template-columns:1fr 1fr; } }
  .study-modal-col{ background:var(--cream); padding:24px; }
  .study-modal-col .eyebrow{ margin-bottom:14px; }
  .study-modal-grid ul{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:12px; }
  .study-modal-grid li{ display:flex; gap:10px; align-items:flex-start; font-size:.98rem; color:var(--ink); line-height:1.55; }
  .study-modal-grid li::before{ content:"\2192"; color:var(--coral); font-weight:700; flex:0 0 auto; }
  body.modal-open{ overflow:hidden; }

  /* ---------- Packaging finder ---------- */
  .finder-modal{ position:fixed; inset:0; z-index:120; display:grid; place-items:center; padding:20px; visibility:hidden; opacity:0; transition:opacity .3s ease, visibility 0s linear .3s; }
  .finder-modal.open{ visibility:visible; opacity:1; transition:opacity .3s ease; }
  .finder-backdrop{ position:absolute; inset:0; background:rgba(20,14,9,.55); backdrop-filter:blur(3px); }
  .finder-panel{ position:relative; width:min(1120px,100%); height:auto; max-height:calc(100dvh - 40px); padding:0; overflow:auto; scrollbar-width:none; background:var(--cream); outline:0; box-shadow:var(--shadow-lift); transform:translateY(28px); opacity:0; transition:transform .4s cubic-bezier(.16,1,.3,1),opacity .3s ease; }
  .finder-modal.open .finder-panel{ transform:none; opacity:1; }
  .finder-panel::-webkit-scrollbar{ display:none; }
  .finder-close{ position:absolute; top:14px; right:14px; z-index:3; width:42px; height:42px; display:grid; place-items:center; padding:0; border:0; background:var(--cream); color:var(--ink); box-shadow:var(--shadow-lift); cursor:pointer; transition:background-color .2s ease,color .2s ease,transform .25s ease; }
  .finder-close:hover{ background:var(--ink); color:var(--cream); transform:rotate(90deg); }
  .finder-close:focus-visible{ outline:2.5px solid var(--coral); outline-offset:2px; }
  .finder-head{ position:sticky; top:0; z-index:2; min-height:72px; display:grid; grid-template-columns:126px minmax(0,1fr); align-items:center; gap:20px; padding:7px 64px 7px 22px; background:rgba(255,255,255,.98); border-bottom:1px solid var(--line); }
  .finder-brand img{ width:auto; height:44px; }
  .finder-progress-wrap{ width:100%; max-width:none; font:700 12px/1 var(--font-body); letter-spacing:.1em; text-transform:uppercase; color:var(--ink-soft); }
  .finder-progress{ height:4px; margin-top:9px; background:var(--paper); overflow:hidden; }
  .finder-progress i{ display:block; width:16.666%; height:100%; background:var(--coral); transition:width .35s ease; }
  .finder-stage{ min-height:0; padding:22px clamp(22px,5vw,52px) 12px; }
  .finder-kicker{ color:var(--coral); font:700 12px/1 var(--font-body); letter-spacing:.14em; text-transform:uppercase; }
  .finder-title{ margin-top:7px; max-width:27ch; font:700 clamp(1.45rem,1.15rem + 1.35vw,2.2rem)/1.08 var(--font-display); letter-spacing:-.025em; }
  .finder-description{ margin-top:8px; max-width:70ch; color:var(--ink-soft); font-size:.9rem; line-height:1.45; }
  .finder-options{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:7px; margin-top:16px; }
  .finder-option{ position:relative; display:grid; grid-template-columns:30px minmax(0,1fr); align-items:start; gap:9px; padding:10px 12px; min-height:62px; border:1px solid var(--line); background:#fff; cursor:pointer; text-align:left; box-shadow:inset 0 0 0 0 var(--coral); transition:border-color .2s, background .2s, transform .2s, box-shadow .2s; }
  .finder-option:hover{ border-color:var(--ink); transform:translateY(-2px); }
  .finder-option.selected{ border-color:var(--coral); background:color-mix(in srgb,var(--coral-soft) 32%,#fff); box-shadow:inset 3px 0 0 var(--coral); }
  .finder-option-emoji{ display:none; }
  .finder-flat-icon{ width:28px; height:28px; display:grid; place-items:center; background:var(--coral-soft); color:var(--coral-deep); }
  .finder-flat-icon svg{ width:17px; height:17px; }
  .finder-flat-icon path{ fill:none; stroke:currentColor; stroke-width:1.65; stroke-linecap:round; stroke-linejoin:round; }
  .finder-option.selected .finder-flat-icon{ background:var(--coral); color:#fff; }
  .finder-option strong{ display:block; font-size:.9rem; line-height:1.2; }
  .finder-option small{ display:block; margin-top:4px; color:var(--ink-soft); font-size:.74rem; line-height:1.25; }
  .finder-selected-label{ position:absolute; top:9px; right:10px; display:none; color:var(--coral-deep); font:700 9px/1 var(--font-body); letter-spacing:.08em; text-transform:uppercase; }
  .finder-option.selected .finder-selected-label{ display:block; }
  .finder-option.selected strong{ padding-right:52px; }
  .finder-slider-card{ margin-top:22px; padding:20px; background:var(--paper); }
  .finder-value{ font:700 clamp(1.8rem,4vw,3rem)/1 var(--font-display); color:var(--ink); }
  .finder-slider{
    --fill:0%;
    display:block; width:100%; height:24px; margin:20px 0 3px;
    border:0; padding:0; background:transparent; accent-color:var(--coral);
  }
  .finder-slider::-webkit-slider-runnable-track{
    width:100%; height:4px;
    background:linear-gradient(to right,var(--coral) 0 var(--fill),rgba(38,38,38,.17) var(--fill) 100%);
  }
  .finder-slider::-webkit-slider-thumb{
    width:18px; height:18px; margin-top:-7px; border:2px solid #fff;
    border-radius:50%; background:var(--coral); box-shadow:0 0 0 1px rgba(38,38,38,.22);
  }
  .finder-slider::-moz-range-track{ height:4px; background:rgba(38,38,38,.17); }
  .finder-slider::-moz-range-progress{ height:4px; background:var(--coral); }
  .finder-slider::-moz-range-thumb{ width:16px; height:16px; border:2px solid #fff; border-radius:50%; background:var(--coral); box-shadow:0 0 0 1px rgba(38,38,38,.22); }
  .finder-range-labels{ display:flex; justify-content:space-between; color:var(--ink-soft); font-size:.78rem; }
  .finder-tier{ margin-top:16px; padding-top:14px; border-top:1px solid var(--line); font-size:.88rem; }
  .finder-tier strong{ color:var(--coral); }
  .finder-error{ min-height:22px; margin:0 clamp(24px,7vw,88px); color:var(--coral-deep); font-size:.9rem; }
  .finder-actions{ position:sticky; bottom:0; display:flex; justify-content:space-between; gap:10px; padding:10px clamp(22px,5vw,52px); background:rgba(255,255,255,.97); border-top:1px solid var(--line); }
  .finder-actions .btn{ padding:11px 20px; }
  .finder-results{ padding:26px clamp(24px,5vw,50px); }
  .finder-results-head{ padding-bottom:18px; border-bottom:1px solid var(--line); }
  .finder-results-head h2{ margin-top:7px; font:700 clamp(1.65rem,3vw,2.6rem)/1.06 var(--font-display); }
  .finder-score{ display:inline-flex; align-items:center; gap:8px; margin-top:14px; padding:8px 12px; background:var(--sage); color:#fff; font-size:.85rem; font-weight:700; }
  .finder-stack{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; margin-top:14px; }
  .finder-result-card{ padding:13px 15px; border:1px solid var(--line); }
  .finder-result-card strong{ display:block; line-height:1.3; }
  .finder-result-card p{ margin-top:4px; color:var(--ink-soft); font-size:.76rem; line-height:1.3; }
  .finder-metrics{ display:grid; grid-template-columns:repeat(4,1fr); gap:1px; margin-top:14px; background:var(--line); border:1px solid var(--line); }
  .finder-metric{ padding:12px; background:#fff; }
  .finder-metric small{ display:block; color:var(--ink-soft); line-height:1.3; }
  .finder-metric strong{ display:block; margin-top:4px; font-size:1rem; }
  .finder-result-actions{ display:flex; flex-wrap:wrap; gap:8px; margin-top:16px; }
  .finder-result-actions .btn{ padding:11px 17px; font-size:.85rem; }
  .finder-proposal{ display:none; margin-top:18px; padding:20px; background:var(--paper); }
  .finder-proposal.open{ display:block; }
  .finder-proposal h3{ font:700 1.25rem/1.2 var(--font-display); }
  .finder-proposal > p{ margin-top:5px; color:var(--ink-soft); font-size:.8rem; }
  .finder-proposal-grid{ display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-top:16px; }
  .finder-field{ display:flex; flex-direction:column; gap:5px; }
  .finder-field-wide{ grid-column:1/-1; }
  .finder-field label{ color:var(--ink-soft); font:700 10px/1 var(--font-body); letter-spacing:.08em; text-transform:uppercase; }
  .finder-field input,.finder-field textarea{ width:100%; border:1px solid var(--line); border-radius:0; background:#fff; color:var(--ink); font:400 .88rem/1.4 var(--font-body); padding:10px 11px; outline:0; }
  .finder-field textarea{ min-height:72px; resize:vertical; }
  .finder-field input:focus,.finder-field textarea:focus{ border-color:var(--coral); box-shadow:0 0 0 1px var(--coral); }
  .finder-proposal-submit{ margin-top:12px; }
  .finder-proposal-submit:disabled{ opacity:.62; cursor:wait; transform:none; }
  .finder-proposal-note{ display:block; margin-top:8px; color:var(--ink-soft); font-size:.72rem; }
  .finder-proposal-status{ min-height:20px; margin-top:7px; font-size:.78rem; }
  .finder-proposal-status.success{ color:var(--sage-deep); font-weight:700; }
  .finder-proposal-status.error{ color:var(--coral-deep); font-weight:700; }
  body.finder-open{ overflow:hidden; }
  body.finder-open .back-to-top{ opacity:0!important; visibility:hidden!important; }
  @media(max-width:700px){
    .finder-modal{ padding:0; }
    .finder-panel{ height:100dvh; }
    .finder-close{ top:10px; right:10px; }
    .finder-head{ grid-template-columns:100px minmax(0,1fr); padding-left:14px; padding-right:58px; gap:12px; }
    .finder-brand img{ height:40px; }
    .finder-progress-wrap{ width:100%; font-size:10px; }
    .finder-stage{ min-height:0; padding:22px 14px 14px; }
    .finder-options{ grid-template-columns:repeat(2,minmax(0,1fr)); gap:6px; margin-top:16px; }
    .finder-stack{ grid-template-columns:1fr 1fr; }
    .finder-option{ display:grid; grid-template-columns:30px minmax(0,1fr); gap:8px; min-height:64px; padding:10px; }
    .finder-flat-icon{ width:28px; height:28px; }
    .finder-flat-icon svg{ width:17px; height:17px; }
    .finder-slider-card{ margin-top:24px; padding:20px 14px; }
    .finder-error{ margin-inline:18px; }
    .finder-actions{ padding:10px 14px; }
    .finder-metrics{ grid-template-columns:1fr 1fr; }
    .finder-results{ padding:20px 14px; }
  }
  @media(max-width:520px){
    .finder-modal{ place-items:stretch; }
    .finder-panel{ width:100%; max-width:none; }
    .finder-head{ min-height:64px; grid-template-columns:76px minmax(0,1fr); gap:8px; }
    .finder-brand img{ height:40px; }
    .finder-close{ width:38px; height:38px; }
    .finder-stage{ padding-top:18px; }
    .finder-title{ font-size:1.45rem; max-width:20ch; }
    .finder-description{ font-size:.82rem; }
    .finder-options{ grid-template-columns:1fr; }
    .finder-option{ min-height:58px; align-items:start; padding:9px 10px; }
    .finder-option small{ display:block; font-size:.7rem; line-height:1.2; }
    .finder-selected-label{ top:7px; right:7px; font-size:8px; }
    .finder-slider-card{ margin-top:18px; padding:18px 12px; }
    .finder-value{ font-size:1.7rem; }
    .finder-range-labels{ font-size:.68rem; }
    .finder-tier{ font-size:.8rem; }
    .finder-actions .btn{ padding:11px 16px; font-size:.86rem; }
    .finder-stack{ grid-template-columns:1fr; }
    .finder-proposal{ padding:15px 12px; }
    .finder-proposal-grid{ grid-template-columns:1fr; }
    .finder-field-wide{ grid-column:auto; }
  }
  @media (max-width:640px){
    .study-modal{ padding:10px; }
    .study-modal-panel{ width:100%; max-height:90vh; border-radius:0; }
    .study-modal-close{ top:10px; right:10px; }
    .study-modal-hero{ height:clamp(190px,54vw,260px); }
    .study-modal-content{ padding:26px 16px 28px; }
    .study-modal-challenge-logo img{ height:32px; max-width:180px; }
    .study-modal.feature-open{ padding:0; }
    .study-modal.feature-open .study-modal-panel{ width:100vw; max-width:none; max-height:100dvh; height:100dvh; }
    .project-feature{ min-height:100%; padding:58px 16px 28px; }
    .project-feature-heading{ padding-right:0; }
    .project-feature-heading h3{ font-size:1.65rem; max-width:none; }
    .project-feature-media{ margin-top:20px; }
    .project-feature-details{ margin-top:22px; }
    .project-feature-logo{ margin-top:14px; }
    .project-feature-logo img{ height:36px; max-width:180px; }
    .project-feature-meta{ grid-template-columns:1fr; }
    .project-feature-meta > div{ padding:14px 0; border-right:0; border-bottom:1px solid var(--line); }
    .project-feature-meta > div:last-child{ border-bottom:0; }
    .project-feature-about,.project-feature-scope{ grid-template-columns:1fr; gap:9px; padding:20px 0; }
    .project-feature-impact-grid{ grid-template-columns:1fr; }
    .project-feature-impact-grid.impact-count-2{ grid-template-columns:1fr; }
    .project-feature-impact-grid article{ padding:17px; }
    .project-feature-nav{ margin-top:18px; }
    .project-feature-nav button{ padding:14px 4px; }
  }
  @media (max-width:420px){
    .project-feature{ padding-inline:14px; }
    .project-feature-heading h3{ font-size:1.45rem; line-height:1.12; }
    .project-feature-about p{ font-size:.88rem; }
  }

  .circular-banner{ margin-top:56px; text-align:center; }
  .circular-banner p{ font:600 italic clamp(1.6rem,1.2rem + 2vw,2.6rem)/1.2 var(--font-display); color:var(--coral); text-wrap:balance; }

  /* ---------- CTA ---------- */
  .cta-section{ background:var(--coral); color:var(--cream); position:relative; overflow:hidden; }
  .cta-section .wrap{ position:relative; z-index:2; }
  .cta-inner{ display:grid; gap:36px; align-items:center; }
  @media (min-width:900px){ .cta-inner{ grid-template-columns:1.1fr .9fr; } }
  .cta-inner h2{ font:300 clamp(2.1rem,1.7rem + 2vw,3.4rem)/1.04 var(--font-display); color:var(--cream); max-width:13ch; }
  .cta-inner p{ margin-top:18px; max-width:42ch; color:color-mix(in srgb, var(--cream) 85%, transparent); font-size:1.05rem; }
  .cta-form{ background:color-mix(in srgb, var(--ink) 18%, transparent); border:1px solid color-mix(in srgb, var(--cream) 30%, transparent); border-radius:0; padding:30px; }
  .cta-form label{ display:block; font:700 11.5px/1 var(--font-body); letter-spacing:.1em; text-transform:uppercase; margin-bottom:10px; color:color-mix(in srgb, var(--cream) 80%, transparent); }
  .cta-form-row{ display:flex; gap:10px; flex-wrap:wrap; }
  .cta-form input[type="email"]{
    flex:1 1 200px; min-width:0; padding:14px 16px; border-radius:0; border:1.5px solid color-mix(in srgb, var(--cream) 40%, transparent);
    background:color-mix(in srgb, var(--cream) 12%, transparent); color:var(--cream); font:500 15px/1 var(--font-body);
  }
  .cta-form input[type="email"]::placeholder{ color:color-mix(in srgb, var(--cream) 60%, transparent); }
  .cta-form input[type="email"]:focus-visible{ outline:2.5px solid var(--ink); outline-offset:2px; }
  .cta-form .btn-on-dark{ background:var(--ink); color:var(--cream); border-color:var(--ink); flex:0 0 auto; }
  .cta-form .btn-on-dark:hover{ background:var(--cream); color:var(--ink); }
  .cta-success{ display:none; align-items:center; gap:10px; font:600 14px/1.4 var(--font-body); margin-top:14px; }
  .cta-success.show{ display:flex; }
  .cta-fine{ margin-top:14px; font-size:12px; color:color-mix(in srgb, var(--cream) 65%, transparent); }

  /* ---------- Footer gif band ---------- */
  .footer-gif-band{
    margin-top:0;
    background:var(--cream);
    border-top:1px solid var(--line);
    border-bottom:1px solid var(--line);
  }
  .footer-gif-band img{
    display:block;
    width:100%;
    max-height:280px;
    object-fit:cover;
    object-position:center;
  }
  @media (max-width:640px){
    .footer-gif-band img{ max-height:180px; }
  }

  /* ---------- Footer ---------- */
  footer{ background:#fff; color:var(--ink); padding:32px 0; }
  .footer-bottom{ display:flex; flex-wrap:wrap; gap:14px; justify-content:space-between; font-size:13px; color:var(--ink-soft); }

  /* ---------- Back to top ---------- */
  .back-to-top{
    position:fixed; right:24px; bottom:24px; z-index:45; width:46px; height:46px; border-radius:0;
    background:var(--ink); color:var(--cream); border:none; display:flex; align-items:center; justify-content:center;
    cursor:pointer; box-shadow:var(--shadow-lift); opacity:0; visibility:hidden; transform:translateY(10px);
    transition:opacity .3s ease, transform .3s ease, visibility 0s linear .3s, background-color .25s ease;
  }
  .back-to-top.visible{ opacity:1; visibility:visible; transform:translateY(0); transition:opacity .3s ease, transform .3s ease, background-color .25s ease; }
  .back-to-top:hover{ background:var(--coral); }
  .back-to-top:focus-visible{ outline:2.5px solid var(--coral); outline-offset:3px; }
  @media (max-width:640px){ .back-to-top{ right:16px; bottom:16px; width:42px; height:42px; } }
  @media (prefers-reduced-motion: reduce){ .back-to-top{ transition:opacity .01s linear, visibility 0s linear; } }
  body.menu-open .back-to-top, body.modal-open .back-to-top{ opacity:0 !important; visibility:hidden !important; }

  .visually-hidden{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
.library-item-dot { display: none !important; }
