:root{
    --ink:#000000;
    --paper:#FFFFFF;
    --paper-2:#EFEFEF;
    --signal:#b9b604;
    --steel:#000000;
    --white:#FFFFFF;
    --line: #000000;
    --line-strong: #000000;
    --bw: 3px;
    box-sizing:border-box;
    padding-top: env(safe-area-inset-top, 0px);
    padding-bottom: env(safe-area-inset-bottom, 0px);
  }
  *{box-sizing:inherit; margin:0; padding:0;}
  html{scroll-padding-top: env(safe-area-inset-top, 0px); scroll-behavior:auto;}
  html,body{height:100%;}
  body{
    background:var(--paper);
    color:var(--ink);
    font-family:'Archivo', sans-serif;
    -webkit-font-smoothing:antialiased;
    overflow-x:hidden;
  }
  ::selection{ background:var(--signal); color:var(--white); }
  a{ color:inherit; }
  img{max-width:100%; display:block;}
  .wrap{ max-width:1180px; margin:0 auto; padding:0 32px; }
  @media (max-width:640px){ .wrap{padding:0 18px;} }

  h1,h2,h3{
    font-family:'Archivo', sans-serif;
    font-weight:800;
    line-height:0.92;
    letter-spacing:-0.02em;
    text-transform:uppercase;
  }

  /* ---------- SCROLL PROGRESS ---------- */
  .scroll-progress{
    position:fixed; top:0; left:0; height:6px; width:0%;
    background:var(--signal); z-index:100;
  }

  /* ---------- LIGHTBOX ---------- */
  .lightbox{
    position:fixed; inset:0; background:rgba(0,0,0,0.95);
    display:flex; align-items:center; justify-content:center;
    z-index:200; opacity:0; visibility:hidden;
    padding:24px;
  }
  .lightbox.is-open{ opacity:1; visibility:visible; }
  .lightbox-img{
    max-width:92vw; max-height:88vh; width:auto; height:auto;
    object-fit:contain; border:var(--bw) solid var(--paper);
    display:block; cursor:default;
  }
  .lightbox-close{
    position:fixed; top:20px; right:20px; z-index:201;
    width:48px; height:48px; background:var(--paper); border:var(--bw) solid var(--paper);
    font-size:1.8rem; line-height:1; font-weight:900; cursor:pointer; color:var(--ink);
    display:flex; align-items:center; justify-content:center;
  }
  .lightbox-close:hover{ background:var(--signal); color:var(--paper); border-color:var(--signal); }

  .gallery img, .support-gallery img, .craft-item img, .alt2-art-item img{ cursor:zoom-in; }

  /* ---------- NAV ---------- */
  header.site{
    position:sticky; top:6px; z-index:50;
    background:var(--paper);
    border-bottom:var(--bw) solid var(--ink);
  }
  .nav{
    display:flex; align-items:center; justify-content:space-between;
    padding:20px 32px;
    max-width:1180px; margin:0 auto;
  }
  .nav .mark{
    font-family:'Archivo', sans-serif; font-weight:900; font-size:1.3rem;
    text-transform:uppercase; letter-spacing:-0.02em;
  }
  .nav ul{
    list-style:none; display:flex; gap:28px; font-size:0.82rem;
    text-transform:uppercase; letter-spacing:0.04em; font-weight:700;
  }
  .nav a{ text-decoration:none; }
  .nav a:hover{ background:var(--ink); color:var(--paper); }
  .nav .cta{
    border:var(--bw) solid var(--ink); padding:8px 18px; font-size:0.82rem;
    text-decoration:none; white-space:nowrap; text-transform:uppercase; font-weight:700;
    letter-spacing:0.03em;
  }
  .nav .cta:hover{ background:var(--signal); border-color:var(--signal); color:var(--white); }
  @media (max-width:760px){
    .nav{ flex-wrap:wrap; row-gap:14px; }
    .nav ul{
      width:100%; overflow-x:auto; gap:22px;
      padding-top:14px; border-top:2px solid var(--ink);
      -webkit-overflow-scrolling:touch;
    }
    .nav ul li{ flex:0 0 auto; white-space:nowrap; }
  }

  /* ---------- HERO ---------- */
  .hero{
    padding:0;
    border-bottom:var(--bw) solid var(--ink);
    position:relative;
    overflow:hidden;
  }
  .hero-grid{
    display:grid; grid-template-columns:1.15fr 0.85fr; gap:0; align-items:stretch;
    padding:0; max-width:none;
  }
  .hero-grid > div:first-child{ padding:64px 32px 40px; max-width:1180px; margin:0 auto; width:100%; }
  .hero .eyebrow{
    font-size:0.85rem; font-weight:700; text-transform:uppercase; letter-spacing:0.05em;
    color:var(--ink);
    margin-bottom:24px;
    border-left:var(--bw) solid var(--signal); padding-left:12px;
  }
  .hero h1{
    font-size:clamp(3rem, 7.2vw, 6.4rem);
    font-weight:900;
    max-width:11ch;
  }
  .hero h1 em{
    font-style:normal; font-weight:900;
    background:var(--ink); color:var(--paper);
    padding:0 10px; display:inline-block;
  }
  .hero-rule{
    width:120px; height:var(--bw); background:var(--signal); border:none;
    margin:32px 0 0;
  }
  .hero-visual{
    position:relative;
    border-left:var(--bw) solid var(--ink);
    overflow:hidden; background:var(--paper-2);
  }
  .hero-visual img{ width:100%; height:100%; min-height:420px; object-fit:cover; object-position:top; display:block; filter:grayscale(100%) contrast(1.15); }
  .hero-visual-tag{
    position:absolute; bottom:0; left:0; right:0;
    background:var(--ink); color:var(--paper);
    font-size:0.78rem; font-weight:700; text-transform:uppercase; letter-spacing:0.04em;
    padding:12px 18px;
    display:flex; justify-content:space-between;
    border-top:var(--bw) solid var(--signal);
  }
    .hero-foot-outer{ border-top:var(--bw) solid var(--ink); }
  .hero-foot{
    margin-top:0;
    display:grid; grid-template-columns:repeat(3,1fr); gap:0;
  }
  .hero-foot .item{
    max-width:none; padding:32px 28px; border-right:var(--bw) solid var(--ink);
  }
  .hero-foot .item:last-child{ border-right:none; }
  .hero-foot .item .num{ font-family:'Archivo', sans-serif; font-size:2.6rem; font-weight:900; }
  .hero-foot .item p{ font-size:0.85rem; color:var(--ink); margin-top:8px; line-height:1.5; font-weight:500; }
  @media (max-width:900px){
    .hero-grid{ grid-template-columns:1fr; }
    .hero-grid > div:first-child{ padding:44px 20px 32px; }
    .hero-visual{ border-left:none; border-top:var(--bw) solid var(--ink); }
    .hero-visual img{ min-height:280px; }
    .hero-foot{ grid-template-columns:1fr; }
    .hero-foot .item{ border-right:none; border-bottom:var(--bw) solid var(--ink); }
  }

  /* ---------- SECTIONS ---------- */
  .section{ padding:80px 0; border-bottom:var(--bw) solid var(--ink); }
  .section-head{
    display:flex; justify-content:space-between; align-items:flex-end;
    gap:24px; margin-bottom:48px; flex-wrap:wrap;
  }
  .section-head h2{ font-size:clamp(2.6rem, 6vw, 4.6rem); max-width:12ch; }
  .section-head .desc{ max-width:340px; font-size:0.92rem; color:var(--ink); line-height:1.5; font-weight:500; }

  .reveal{ opacity:0; transform:translateY(10px); transition:opacity 0.15s linear, transform 0.15s linear; }
  .reveal.in-view{ opacity:1; transform:translateY(0); }
  @media (prefers-reduced-motion: reduce){ .reveal{ opacity:1; transform:none; transition:none; } }

  /* ---------- ABOUT ---------- */
  .about-grid{ display:grid; grid-template-columns:1.3fr 1fr; gap:0; }
  @media (max-width:820px){ .about-grid{ grid-template-columns:1fr; } }
  .about-grid > div:first-child{ padding-right:48px; border-right:var(--bw) solid var(--ink); }
  @media (max-width:820px){ .about-grid > div:first-child{ padding-right:0; border-right:none; padding-bottom:32px; border-bottom:var(--bw) solid var(--ink); margin-bottom:32px; } }
  .about-grid p{ font-size:1.05rem; line-height:1.55; margin-bottom:20px; max-width:56ch; font-weight:500; }
  .about-grid .quote{
    font-family:'Archivo', sans-serif; font-weight:900; text-transform:uppercase;
    font-size:1.7rem; line-height:1.15; color:var(--ink);
    border-left:var(--bw) solid var(--signal); padding-left:22px; margin:0 0 32px;
    max-width:40ch;
  }
  .timeline{ font-size:0.9rem; padding-left:48px; }
  @media (max-width:820px){ .timeline{ padding-left:0; } }
  .timeline .row{
    display:flex; justify-content:space-between; gap:16px;
    padding:16px 0; border-top:var(--bw) solid var(--ink);
  }
  .timeline .row:last-child{ border-bottom:var(--bw) solid var(--ink); }
  .timeline .role{ font-weight:800; text-transform:uppercase; font-size:0.85rem; }
  .timeline .org{ color:var(--ink); font-weight:500; }
  .timeline .yr{ color:var(--ink); white-space:nowrap; font-weight:700; }

  /* ---------- CAPABILITIES ---------- */
  .caps{
    display:grid; grid-template-columns:repeat(4,1fr); gap:0;
    border:var(--bw) solid var(--ink);
  }
  @media (max-width:900px){ .caps{ grid-template-columns:repeat(2,1fr); } }
  .caps .cap{
    background:var(--paper); padding:28px 24px; min-height:190px;
    display:flex; flex-direction:column; justify-content:space-between;
    border-right:var(--bw) solid var(--ink); border-bottom:var(--bw) solid var(--ink);
  }
  @media (min-width:901px){ .caps .cap:nth-child(4){ border-right:none; } }
  @media (max-width:900px){ .caps .cap:nth-child(2n){ border-right:none; } }
  .caps .cap h3{ font-size:1.05rem; font-weight:800; text-transform:uppercase; letter-spacing:-0.01em; }
  .caps .cap p{ font-size:0.85rem; color:var(--ink); line-height:1.5; margin-top:14px; font-weight:500; }

  /* ---------- CHAPTERS (CASE STUDIES) ---------- */
  .chapter{ border-bottom:var(--bw) solid var(--ink); }
  .chapter-num{ font-family:'Archivo',sans-serif; font-weight:900; font-size:1.3rem; color:var(--signal); text-transform:uppercase; letter-spacing:0.02em; }
  .chapter-heading-bar{ background:var(--ink); border:var(--bw) solid var(--ink); }
  .chapter-heading-inner{
    display:flex; justify-content:space-between; align-items:center;
    flex-wrap:wrap; gap:20px;
    padding:16px 28px;
  }
  .chapter-heading-inner .site{ font-size:0.85rem; color:var(--paper); text-decoration:none; font-weight:700; text-transform:uppercase; letter-spacing:0.03em; border-bottom:2px solid var(--signal); }
  .chapter-logo-wrap{
    border:var(--bw) solid var(--ink); border-top:none;
    background:var(--paper);
    padding:24px 28px;
    margin-bottom:24px;
    display:flex; justify-content:flex-start;
  }
  .chapter-logo-wrap .logo-row{
    display:inline-flex; align-items:center;
    background:none; padding:0;
  }
  .chapter-logo-wrap .logo-row img{ height:auto; max-height:58px; width:auto; max-width:260px; }
  .chapter-logo-wrap .logo-row svg{ height:auto; max-height:58px; width:auto; max-width:260px; }
  @media (max-width:820px){
    .chapter-num{ font-size:1.1rem; }
    .chapter-heading-inner{ padding:14px 20px; }
    .chapter-logo-wrap{ padding:18px 20px; margin-bottom:18px; }
    .chapter-logo-wrap .logo-row img, .chapter-logo-wrap .logo-row svg{ max-height:38px; max-width:180px; }
  }

  .chapter-logo-wrap-ld {
    border: none;
    margin: 0px;
    padding: 0px;
  }

  .chapter-hero{ width:100%; cursor:pointer; overflow:hidden; background:var(--paper-2); border-top:var(--bw) solid var(--ink); border-bottom:var(--bw) solid var(--ink); }
  .chapter-hero img{
    width:100%; height:560px; object-fit:cover; object-position:top; display:block;
    filter:grayscale(100%) contrast(1.2);
    opacity:0.75;
    transition:filter 0.1s linear, opacity 0.1s linear;
  }
  .chapter-hero:hover img{ filter:grayscale(0%) contrast(1.1); opacity:1; }
  .chapter-body{ padding:56px 32px 48px; }
  .psr-grid{
    display:grid; grid-template-columns:repeat(3,1fr); gap:0;
    border:var(--bw) solid var(--ink);
    margin-bottom:40px;
  }
  .psr-item{ background:var(--paper); padding:26px 24px; border-right:var(--bw) solid var(--ink); }
  .psr-item:last-child{ border-right:none; }
  .psr-label{ font-family:'Archivo',serif; font-weight:900; font-size:0.85rem; text-transform:uppercase; letter-spacing:0.05em; display:block; margin-bottom:12px; color:var(--signal); }
  .psr-item p{ font-size:0.92rem; line-height:1.5; color:var(--ink); font-weight:500; }
  .highlight-grid{
    display:flex; flex-direction:column; gap:0;
    margin-bottom:40px;
  }
  .highlight-card{
    border-top:2px solid var(--ink); padding:16px 0;
    display:flex; align-items:baseline; gap:16px;
  }
  .highlight-card::before{
    content:"—"; color:var(--signal); font-weight:900; flex-shrink:0;
  }
  .highlight-card p{ font-size:0.92rem; line-height:1.5; color:var(--ink); font-weight:500; }
  .chapter-foot{
    display:flex; flex-direction:column-reverse; gap:20px;
    padding-top:32px; border-top:2px solid var(--ink);
  }
  .tag-row .tag{
    display:inline-block; border:1px solid var(--ink); color:var(--ink);
    padding:4px 10px; margin:0 8px 8px 0; font-size:0.7rem; font-weight:600;
    text-transform:uppercase; letter-spacing:0.03em;
  }
  .expand-btn{
    font: inherit; font-size:0.95rem; font-weight:900; text-transform:uppercase; letter-spacing:0.03em;
    color:var(--white); background:var(--signal);
    border:var(--bw) solid var(--signal); padding:18px 24px; cursor:pointer;
    display:flex; align-items:center; justify-content:center; gap:12px;
    width:100%;
  }
  .expand-btn:hover{ background:var(--ink); border-color:var(--ink); }
  .expand-btn .plus{
    display:inline-flex; align-items:center; justify-content:center;
    width:18px; height:18px; font-size:1.1rem; line-height:1;
  }
  .chapter.is-open .expand-btn .plus{ transform:rotate(45deg); }
  @media (max-width:820px){
    .chapter-hero img{ height:320px; }
    .chapter-body{ padding:40px 18px 36px; }
    .psr-grid{ grid-template-columns:1fr; }
    .psr-item{ border-right:none; border-bottom:var(--bw) solid var(--ink); }
    .psr-item:last-child{ border-bottom:none; }
  }

  /* ---------- ALT DIVIDER (loanDepot separator) ---------- */
  .alt-divider{ border-bottom:none; padding:40px 0 0; }
  .alt-divider-inner{
    display:flex; align-items:center; gap:20px;
  }
  .alt-divider-line{ flex:1; height:2px; background:var(--ink); }
  .alt-divider-label{
    font-size:0.8rem; font-weight:800; text-transform:uppercase; letter-spacing:0.05em;
    white-space:nowrap;
  }

  /* ---------- CHAPTER ALT2 (loanDepot — systems-board layout) ---------- */
  .chapter-alt2{ background:var(--paper); border-bottom:var(--bw) solid var(--ink); padding:64px 0; }
  .alt2-grid{
    display:grid; grid-template-columns:0.85fr 1.15fr; gap:56px; align-items:start;
  }
  .alt2-text .logo-row{ display:inline-flex; background:var(--paper); padding:10px 20px; margin-bottom:18px; }
  .alt2-role{ font-size:0.8rem; font-weight:700; text-transform:uppercase; letter-spacing:0.03em; color:#6B3FA0; margin-bottom:32px; }
  .alt2-narrative{ margin-bottom:32px; }
  .alt2-block{ border-left:3px solid #6B3FA0; padding-left:18px; margin-bottom:22px; }
  .alt2-label{ display:block; font-weight:900; font-size:0.85rem; text-transform:uppercase; letter-spacing:0.04em; margin-bottom:6px; }
  .alt2-block p{ font-size:0.92rem; line-height:1.55; }
  .alt2-highlights{ list-style:none; counter-reset:alt2counter; margin-bottom:28px; }
  .alt2-highlights li{
    counter-increment:alt2counter; position:relative; padding-left:34px;
    font-size:0.88rem; line-height:1.5; margin-bottom:14px;
  }
  .alt2-highlights li::before{
    content:counter(alt2counter); position:absolute; left:0; top:0;
    width:22px; height:22px; background:var(--ink); color:var(--paper);
    font-size:0.75rem; font-weight:800; display:flex; align-items:center; justify-content:center;
  }
  .alt2-tags{ font-size:0.75rem; font-weight:700; text-transform:uppercase; letter-spacing:0.03em; color:var(--ink); opacity:0.7; }
  .alt2-artifacts{
    display:grid; grid-template-columns:1fr 1fr; gap:2px; background:var(--ink); border:var(--bw) solid var(--ink);
  }
  .alt2-art-item{ background:var(--paper); }
  .alt2-art-item img{ width:100%; height:auto; aspect-ratio:8/5; object-fit:contain; background:var(--paper); display:block; }
  .alt2-art-item span{
    display:block; padding:12px 14px; font-size:0.75rem; font-weight:600; line-height:1.4; color:var(--ink);
    border-top:2px solid var(--ink);
  }
  @media (max-width:820px){
    .alt2-grid{ grid-template-columns:1fr; gap:36px; }
    .alt2-artifacts{ grid-template-columns:1fr 1fr; }
  }

  .gallery-wrap{
    max-height:0; overflow:hidden;
    transition:max-height 0.15s linear;
    border-top:0;
  }
  .gallery-wrap.is-open{ max-height:420px; border-top:var(--bw) solid var(--ink); }
  .gallery{
    display:flex; gap:0; overflow-x:auto; padding:32px;
    background:var(--paper-2);
  }
  .gallery::-webkit-scrollbar{ height:8px; }
  .gallery::-webkit-scrollbar-thumb{ background:var(--ink); }
  .gallery img{
    height:340px; width:auto; max-width:none; flex:0 0 auto;
    border:var(--bw) solid var(--ink);
    margin-right:16px;
  }
  @media (max-width:820px){
    .gallery img{ height:220px; }
    .gallery-wrap.is-open{ max-height:280px; }
  }

  /* ---------- SUPPORTING DESIGN ---------- */
  .support-grid{
    display:grid; grid-template-columns:repeat(2,1fr); gap:0;
    border:var(--bw) solid var(--ink);
  }
  @media (max-width:820px){ .support-grid{ grid-template-columns:1fr; } }
  .support-card{ background:var(--paper); cursor:pointer; min-width:0; }
  .support-row{ border-right:var(--bw) solid var(--ink); border-bottom:var(--bw) solid var(--ink); min-width:0; overflow:hidden; }
  @media (min-width:821px){ .support-row:nth-child(2n){ border-right:none; } }
  .support-card .sc-top{ display:grid; grid-template-columns:150px minmax(0,1fr); gap:20px; padding:24px; min-width:0; }
  @media (max-width:480px){ .support-card .sc-top{ grid-template-columns:1fr; } }
  .support-card .sc-top > div{ min-width:0; }
  .support-card .sc-thumb{ width:150px; height:100px; overflow:hidden; border:2px solid var(--ink); background:var(--paper-2); }
  @media (max-width:480px){ .support-card .sc-thumb{ width:100%; height:140px; } }
  .support-card .sc-thumb img{ width:100%; height:100%; object-fit:cover; object-position:center; filter:grayscale(100%); }
  .support-card:hover .sc-thumb img{ filter:grayscale(0%); }
  .support-card h4{ font-family:'Archivo',sans-serif; font-weight:800; font-size:1rem; margin-bottom:6px; text-transform:uppercase; overflow-wrap:break-word; }
  .support-card .role{ font-size:0.78rem; color:var(--signal); margin-bottom:8px; font-weight:700; text-transform:uppercase; letter-spacing:0.02em; overflow-wrap:break-word; }
  .support-card p{ font-size:0.85rem; color:var(--ink); line-height:1.45; font-weight:500; overflow-wrap:break-word; }
  .support-card .sc-expand{ font-size:0.75rem; color:var(--ink); margin-top:10px; display:flex; align-items:center; gap:6px; font-weight:700; text-transform:uppercase; flex-wrap:wrap; }
  .support-card .sc-expand .plus{ display:inline-flex; align-items:center; justify-content:center; width:18px; height:18px; border:2px solid var(--ink); font-size:0.85rem; flex-shrink:0; }
  .support-row.is-open .sc-expand .plus{ transform:rotate(45deg); background:var(--ink); color:var(--paper); }
  .support-gallery-wrap{ max-height:0; overflow:hidden; transition:max-height 0.15s linear; }
  .support-gallery-wrap.is-open{ max-height:220px; border-top:var(--bw) solid var(--ink); }
  .support-gallery{ display:flex; gap:0; overflow-x:auto; padding:20px 24px; background:var(--paper-2); }
  .support-gallery img{ height:170px; width:auto; max-width:none; flex:0 0 auto; border:2px solid var(--ink); margin-right:12px; }
  .sc-thumb.placeholder-thumb{
    display:flex; align-items:center; justify-content:center;
    background: repeating-linear-gradient(45deg, var(--ink) 0 2px, var(--paper) 2px 12px);
  }
  .sc-thumb.powrak-thumb{ background:var(--paper); display:flex; align-items:center; justify-content:center; }
  .sc-thumb.powrak-thumb img{ width:100%; height:100%; object-fit:contain; object-position:center; filter:none; }
  .sc-thumb.placeholder-thumb span{
    background:var(--paper); border:2px solid var(--ink); padding:6px 10px;
    font-size:0.68rem; font-weight:800; text-transform:uppercase; text-align:center; letter-spacing:0.02em;
  }

  /* ---------- CRAFT ---------- */
  .craft-strip{ display:flex; gap:0; overflow-x:auto; padding-bottom:8px; }
  .craft-item{ flex:0 0 auto; width:280px; border:2px solid var(--ink); margin-right:16px; }
  .craft-item img{ display:block; width:100%; height:175px; object-fit:cover; background:var(--paper-2); }
  .craft-cap{ padding:14px; border-top:2px solid var(--ink); display:flex; flex-direction:column; gap:2px; }
  .craft-cap strong{ font-size:0.85rem; font-weight:800; text-transform:uppercase; }
  .craft-cap span{ font-size:0.75rem; color:var(--ink); font-weight:500; }

  /* ---------- STRIP / FOOTER ---------- */
  .strip{ background:var(--ink); color:var(--paper); padding:72px 0; }
  .strip .wrap{ display:grid; grid-template-columns:1.2fr 1fr; gap:40px; }
  @media (max-width:820px){ .strip .wrap{ grid-template-columns:1fr; } }
  .strip h2{ color:var(--white); font-size:clamp(2rem,4.4vw,3rem); max-width:12ch; }
  .strip p{ font-size:0.98rem; line-height:1.55; color:var(--paper); max-width:52ch; margin-top:16px; font-weight:500; }

  footer.site{ padding:80px 0 56px; }
  .contact-top{
    display:flex; justify-content:space-between; align-items:flex-end;
    flex-wrap:wrap; gap:24px; margin-bottom:56px;
    padding-bottom:40px; border-bottom:var(--bw) solid var(--ink);
  }
  .contact-top h2{ font-size:clamp(2.4rem,6vw,4.2rem); max-width:12ch; }
  .contact-links{ display:flex; flex-direction:column; gap:12px; font-size:1rem; font-weight:700; }
  .contact-links a{ text-decoration:none; border-bottom:2px solid var(--ink); padding-bottom:2px; width:fit-content; text-transform:uppercase; }
  .contact-links a:hover{ background:var(--signal); border-color:var(--signal); color:var(--white); }
  .foot-bottom{
    display:flex; justify-content:space-between; font-size:0.78rem; color:var(--ink);
    flex-wrap:wrap; gap:10px; font-weight:600; text-transform:uppercase; letter-spacing:0.02em;
  }