:root{
    --ink:#12141A;
    --ink-2:#1B1E26;
    --paper:#F0EBDF;
    --paper-2:#E7E0D0;
    --brass:#B08D57;
    --brass-bright:#C9A468;
    --rust:#8C3A2B;
    --slate:#8A8F9C;
    --charcoal-soft:#4B4E57;
    --line-on-ink:rgba(240,235,223,0.14);
    --line-on-paper:rgba(18,20,26,0.14);
  }
  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    margin:0;
    background:var(--paper);
    color:var(--ink);
    font-family:'Public Sans', sans-serif;
    font-size:16px;
    line-height:1.6;
    -webkit-font-smoothing:antialiased;
    cursor:auto;
  }
  @media (pointer:coarse){ body{ cursor:auto; } }
  ::selection{ background:var(--brass); color:var(--ink); }
  a{ color:inherit; }

  /* ---------- CUSTOM CURSOR ---------- */
  .cursor-dot, .cursor-ring{
    position:fixed;
    top:0; left:0;
    pointer-events:none;
    z-index:999;
    border-radius:50%;
    transform:translate(-50%,-50%);
    will-change:transform;
  }
  .cursor-dot{
    width:6px; height:6px;
    background:var(--brass-bright);
  }
  .cursor-ring{
    width:34px; height:34px;
    border:1px solid var(--brass-bright);
    transition:width 0.25s ease, height 0.25s ease, opacity 0.25s ease, border-color 0.25s ease;
    opacity:0.7;
  }
  .cursor-ring.hover{
    width:58px; height:58px;
    border-color:var(--rust);
    opacity:1;
  }
  @media (pointer:coarse){ .cursor-dot,.cursor-ring{ display:none; } }

  /* ---------- GRAIN TEXTURE ---------- */
  .grain{
    position:fixed;
    inset:0;
    pointer-events:none;
    z-index:45;
    opacity:0.045;
    mix-blend-mode:overlay;
    background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='180' height='180'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");
  }
  @media (prefers-reduced-motion: reduce){ .grain{ opacity:0.03; } }

  /* ---------- PROGRESS BAR ---------- */
  .progress-bar{
    position:fixed;
    top:0; left:0;
    height:2px;
    width:0%;
    background:var(--brass-bright);
    z-index:998;
    transition:width 0.08s linear;
  }

  /* ---------- TOP NAV ---------- */
  .topnav{
    position:fixed;
    left:0; right:0; top:0;
    z-index:70;
    display:flex;
    align-items:center;
    gap:2rem;
    height:64px;
    padding:0 2.2rem;
    background:rgba(18,20,26,0.86);
    backdrop-filter:blur(10px);
    -webkit-backdrop-filter:blur(10px);
    border-bottom:1px solid rgba(176,141,87,0.32);
  }
  .topnav .brand{
    font-family:'IBM Plex Mono', monospace;
    font-size:11px;
    letter-spacing:0.18em;
    color:var(--paper);
    white-space:nowrap;
    flex-shrink:0;
  }
  .topnav .brand b{ color:var(--brass-bright); font-weight:500; }
  .topnav .brand .short{ display:none; color:var(--brass-bright); }
  .dotnav{
    display:flex;
    align-items:center;
    gap:1.6rem;
    overflow-x:auto;
    scrollbar-width:none;
    flex:1;
    min-width:0;
  }
  .dotnav::-webkit-scrollbar{ display:none; }
  .portfolio-menu{
    display:flex;
    align-items:center;
    gap:1.6rem;
    margin:0;
    padding:0;
    list-style:none;
  }
  .portfolio-menu li{ flex-shrink:0; }
  .portfolio-menu a{
    display:flex;
    align-items:center;
    gap:7px;
    padding:6px 0;
    font:500 10.5px 'IBM Plex Mono', monospace;
    letter-spacing:0.1em;
    color:var(--paper);
    text-decoration:none;
    white-space:nowrap;
  }
  .portfolio-menu a::before{
    content:'';
    width:5px;
    height:5px;
    border:1px solid var(--brass-bright);
    border-radius:50%;
    flex-shrink:0;
  }
  .portfolio-menu a:hover,
  .portfolio-menu .current-menu-item > a{ color:var(--brass-bright); }
  .portfolio-menu .current-menu-item > a::before{ background:var(--brass-bright); }

  /* fade hint on the scrollable link strip (desktop only, hamburger takes over below) */
  .navlinks-fade{
    position:absolute;
    right:172px; top:0; bottom:0;
    width:30px;
    background:linear-gradient(to right, transparent, rgba(18,20,26,0.92));
    pointer-events:none;
  }

  .nav-buy{
    flex-shrink:0;
    font-family:'IBM Plex Mono', monospace;
    font-size:11px;
    letter-spacing:0.08em;
    color:var(--ink);
    background:var(--brass-bright);
    border:1px solid var(--brass-bright);
    padding:0.55rem 1.1rem;
    border-radius:999px;
    cursor:pointer;
    white-space:nowrap;
    transition:background 0.2s ease, transform 0.2s ease;
  }
  .nav-buy{ display:flex; align-items:center; text-decoration:none; }
  .nav-buy:hover{ background:#DDB578; transform:translateY(-1px); }

  .nav-toggle{
    display:none;
    flex-shrink:0;
    width:34px; height:34px;
    background:none;
    border:1px solid rgba(176,141,87,0.4);
    border-radius:6px;
    cursor:pointer;
    position:relative;
  }
  .nav-toggle span, .nav-toggle span::before, .nav-toggle span::after{
    content:'';
    position:absolute;
    left:8px; right:8px;
    height:1px;
    background:var(--paper);
    transition:transform 0.25s ease, opacity 0.25s ease, top 0.25s ease;
  }
  .nav-toggle span{ top:16px; }
  .nav-toggle span::before{ top:-6px; }
  .nav-toggle span::after{ top:6px; }
  .topnav.open .nav-toggle span{ background:transparent; }
  .topnav.open .nav-toggle span::before{ top:0; transform:rotate(45deg); background:var(--brass-bright); }
  .topnav.open .nav-toggle span::after{ top:0; transform:rotate(-45deg); background:var(--brass-bright); }

  /* ---------- RESPONSIVE NAV: hamburger + dropdown below 1024px ---------- */
  @media (max-width:1024px){
    .topnav{ padding:0 1rem; gap:0.75rem; }
    .topnav .nav-buy{ margin-inline-start:auto; }
    .navlinks-fade{ display:none; }
    .nav-toggle{ display:block; }
    .dotnav{
      display:none;
      position:absolute;
      left:0; right:0; top:100%;
      max-height:calc(100vh - 64px);
      overflow-y:auto;
      flex-direction:column;
      align-items:stretch;
      gap:0;
      background:rgba(15,17,22,0.98);
      backdrop-filter:blur(10px);
      border-bottom:1px solid rgba(176,141,87,0.32);
      padding:0.5rem 1.4rem 1.2rem;
    }
    .topnav.open .dotnav{ display:flex; }
    .portfolio-menu{ flex-direction:column; align-items:stretch; gap:0; }
    .portfolio-menu a{
      padding:0.95rem 0;
      border-bottom:1px solid var(--line-on-ink);
      gap:12px;
      font-size:12.5px;
      white-space:normal;
      overflow-wrap:anywhere;
    }
  }
  @media (max-width:640px){
    .topnav{ gap:clamp(4px, 2vw, 10px); padding-inline:clamp(6px, 3vw, 16px); }
    .topnav .brand .full{ display:none; }
    .topnav .brand .short{ display:inline; }
    .topnav .brand{ font-size:12px; letter-spacing:0.12em; }
    .topnav .nav-buy{
      min-width:0;
      min-height:44px;
      font-size:11px;
      line-height:1.2;
      letter-spacing:0.02em;
      white-space:normal;
      padding:6px clamp(5px, 3vw, 14px);
    }
    .topnav .nav-toggle{ width:44px; height:44px; padding:0; }
    .topnav .nav-toggle span{ top:50%; }
  }

  :where(.da-portfolio) section{ padding:7rem 8vw; position:relative; }
  .hero{ padding-top:calc(64px + 3rem); }
  @media (max-width:760px){
    :where(.da-portfolio) section{ padding:4.5rem 6vw; }
    .hero{ padding-top:calc(64px + 2rem); }
  }

  .ink{ background:var(--ink); color:var(--paper); }
  .paper{ background:var(--paper); color:var(--ink); }

  h1,h2,h3{ font-family:'Fraunces', serif; font-weight:450; margin:0; }

  .reveal{
    opacity:0;
    transform:translateY(28px);
    transition:opacity 0.8s cubic-bezier(.22,.9,.28,1), transform 0.8s cubic-bezier(.22,.9,.28,1);
  }
  .reveal.in{ opacity:1; transform:translateY(0); }
  @media (prefers-reduced-motion: reduce){
    .reveal{ opacity:1 !important; transform:none !important; transition:none !important; }
    .hero-kicker,.hero h1,.hero-role,.hero-sub,.stat-strip{ animation:none !important; opacity:1 !important; }
  }

  /* ---------- HERO ---------- */
  .hero{
    min-height:100vh;
    display:grid;
    grid-template-columns:minmax(0, 0.9fr) minmax(0, 1.1fr);
    align-items:center;
    gap:3rem;
    padding-left:12vw;
    overflow:hidden;
  }
  @media (max-width:900px){
    .hero{ grid-template-columns:minmax(0, 1fr); padding-left:6vw; padding-top:6rem; }
  }
  .hero-video{
    background:#000;
    border:1px solid var(--line-on-ink);
  }
  .hero-video iframe{
    display:block;
    width:100%;
    height:auto;
    aspect-ratio:16/9;
    border:0;
  }
  .hero-copy{ max-width:640px; }
  .hero-kicker{
    font-family:'IBM Plex Mono', monospace;
    font-size:12.5px; letter-spacing:0.14em;
    color:var(--brass-bright);
    margin-bottom:1.8rem;
    opacity:0; animation:fadeUp 0.9s ease 0.15s forwards;
  }
  .hero h1{
    font-size:clamp(3rem, 8vw, 7.4rem);
    line-height:0.94; letter-spacing:-0.01em;
    max-width:14ch;
    opacity:0; animation:fadeUp 1s ease 0.3s forwards;
  }
  .hero-role{
    font-family:'Fraunces', serif; font-style:italic; font-weight:450;
    font-size:clamp(1.3rem, 2.6vw, 1.9rem);
    color:var(--brass-bright);
    margin-top:1.4rem;
    opacity:0; animation:fadeUp 1s ease 0.55s forwards;
  }
  .hero-sub{
    max-width:46ch; font-size:1.08rem; color:var(--slate);
    margin-top:1.6rem;
    opacity:0; animation:fadeUp 1s ease 0.75s forwards;
  }
  @keyframes fadeUp{ from{ opacity:0; transform:translateY(18px);} to{opacity:1; transform:translateY(0);} }

  .stat-strip{
    display:flex; flex-wrap:wrap; gap:0;
    margin-top:4.2rem;
    border-top:1px solid var(--line-on-ink);
    opacity:0; animation:fadeUp 1s ease 0.95s forwards;
  }
  .stat{ flex:1 1 150px; padding:1.6rem 2rem 0 0; border-right:1px solid var(--line-on-ink); }
  .stat:last-child{ border-right:none; }
  .stat b{
    display:block; font-family:'IBM Plex Mono', monospace;
    font-size:1.9rem; font-weight:500; color:var(--paper);
  }
  .stat span{ display:block; font-size:0.8rem; color:var(--slate); margin-top:0.3rem; max-width:19ch; }

  /* ---------- PORTRAIT PLATE ---------- */
  .portrait-plate{
    position:relative;
    width:100%;
    max-width:340px;
    justify-self:center;
    aspect-ratio:3/4;
    border:1px solid var(--line-on-ink);
    background:
      repeating-linear-gradient(135deg, rgba(240,235,223,0.035) 0 2px, transparent 2px 14px),
      linear-gradient(160deg, #1B1E26 0%, #12141A 70%);
    display:flex; align-items:center; justify-content:center;
    overflow:hidden;
    opacity:0; animation:fadeUp 1s ease 0.5s forwards;
  }
  .portrait-plate img{
    position:absolute; inset:0;
    width:100%; height:100%;
    object-fit:cover; object-position:50% 15%;
    filter:saturate(0.94) contrast(1.05);
  }
  .portrait-plate .plate-wash{
    position:absolute; inset:0;
    background:linear-gradient(200deg, rgba(18,20,26,0.05) 0%, rgba(18,20,26,0.38) 100%);
    mix-blend-mode:multiply;
    pointer-events:none;
  }
  .corner{
    position:absolute; width:14px; height:14px;
    border-color:var(--brass-bright); border-style:solid; border-width:0;
  }
  .corner.tl{ top:12px; left:12px; border-top-width:1px; border-left-width:1px; }
  .corner.tr{ top:12px; right:12px; border-top-width:1px; border-right-width:1px; }
  .corner.bl{ bottom:12px; left:12px; border-bottom-width:1px; border-left-width:1px; }
  .corner.br{ bottom:12px; right:12px; border-bottom-width:1px; border-right-width:1px; }
  .monogram{
    font-family:'Fraunces', serif; font-weight:300; font-style:italic;
    font-size:6rem; color:var(--brass-bright); line-height:1;
  }
  .plate-caption{
    position:absolute; bottom:0; left:0; right:0; padding:1.5rem 1rem 0.85rem; text-align:center;
    background:linear-gradient(transparent, rgba(18,20,26,0.9));
    font-family:'IBM Plex Mono', monospace; font-size:10px;
    letter-spacing:0.12em; color:var(--paper);
  }

  /* ---------- APPROACH SECTION ---------- */
  .approach-top{
    display:grid;
    grid-template-columns:0.85fr 1.4fr;
    gap:3.5rem;
    align-items:center;
    margin-bottom:5rem;
  }
  @media (max-width:800px){ .approach-top{ grid-template-columns:minmax(0, 1fr); gap:2.2rem; } }
  .approach-copy .label{ margin-bottom:1rem; }
  .approach-copy p{
    font-family:'Fraunces', serif; font-weight:450;
    font-size:clamp(1.35rem, 2.3vw, 1.85rem);
    line-height:1.35; margin:0;
  }
  .approach-copy p::first-letter{ font-size:3.2em; float:left; line-height:0.8; padding-right:0.1em; padding-top:0.05em; color:var(--rust); }

  .philosophy-grid{
    display:grid;
    grid-template-columns:repeat(3, 1fr);
    border-top:1px solid var(--line-on-paper);
  }
  @media (max-width:760px){ .philosophy-grid{ grid-template-columns:minmax(0, 1fr); } }
  .pillar{ padding:2.2rem 2rem 0.4rem 0; border-right:1px solid var(--line-on-paper); }
  .pillar:last-child{ border-right:none; }
  @media (max-width:760px){
    .pillar{ border-right:none; border-bottom:1px solid var(--line-on-paper); padding:2rem 0; }
    .pillar:last-child{ border-bottom:none; }
  }
  .pnum{ font-family:'IBM Plex Mono', monospace; font-size:0.85rem; color:var(--rust); }
  .pillar h4{ font-family:'Fraunces', serif; font-size:1.22rem; margin:0.7rem 0 0.6rem; font-weight:450; }
  .pillar p{ font-size:0.92rem; color:var(--charcoal-soft); margin:0; max-width:32ch; }

  .bio-block{
    position:relative;
    max-width:52ch;
    margin:4.5rem auto 0;
    padding-top:2.5rem;
    border-top:1px solid var(--line-on-paper);
    text-align:center;
  }
  .bio-mark{
    position:absolute; top:-0.6rem; left:50%; transform:translateX(-50%);
    background:var(--paper);
    padding:0 1rem;
    font-family:'Fraunces', serif; font-size:2.2rem; color:var(--rust);
    line-height:1;
  }
  .bio-block p{
    font-family:'Fraunces', serif; font-style:italic; font-weight:450;
    font-size:clamp(1.15rem, 1.9vw, 1.4rem);
    line-height:1.55;
    color:var(--ink);
    margin:0;
  }
  .bio-sign{
    display:block;
    margin-top:1.3rem;
    font-family:'IBM Plex Mono', monospace;
    font-size:0.78rem;
    letter-spacing:0.08em;
    color:var(--rust);
  }

  /* ---------- VIDEO MODAL ---------- */
  .video-modal-overlay{
    position:fixed; inset:0; background:rgba(18,20,26,0.82);
    display:none; align-items:center; justify-content:center; z-index:1000; padding:2rem;
  }
  .video-modal-overlay.open{ display:flex; }
  .video-modal{
    background:var(--paper); color:var(--ink); max-width:460px; padding:2.4rem;
    border:1px solid var(--brass); position:relative;
  }
  .video-modal h3{ font-size:1.35rem; margin-bottom:0.9rem; }
  .video-modal p{ font-size:0.94rem; color:var(--charcoal-soft); line-height:1.6; }
  .video-modal .close-x{ position:absolute; top:1rem; right:1.2rem; background:none; border:none; cursor:pointer; font-size:1.2rem; color:var(--charcoal-soft); }

  /* ---------- MULTI-STEP FORM ---------- */
  .form-wrap{ margin-top:4.5rem; max-width:960px; border-top:1px solid var(--line-on-ink); padding-top:3.5rem; }
  .form-wrap .kicker{ font-family:'IBM Plex Mono', monospace; font-size:0.72rem; letter-spacing:0.12em; color:var(--brass-bright); margin-bottom:1.8rem; }
  .form-progress{ display:flex; gap:0.5rem; margin-bottom:2.6rem; max-width:340px; }
  .form-progress .seg{ flex:1; height:2px; background:var(--line-on-ink); }
  .form-progress .seg.done{ background:var(--brass-bright); }
  .form-step{ display:none; }
  .form-step.active{ display:block; animation:fadeUp 0.5s ease; }
  .field-row{ display:grid; grid-template-columns:1fr 1fr; gap:2.6rem; }
  @media (max-width:700px){ .field-row{ grid-template-columns:minmax(0, 1fr); gap:0; } }
  .field-row-3{ display:grid; grid-template-columns:1.3fr 1fr; gap:3rem; align-items:start; }
  @media (max-width:800px){ .field-row-3{ grid-template-columns:minmax(0, 1fr); gap:0; } }
  .review-panel{ background:var(--ink-2); border:1px solid var(--line-on-ink); padding:1.8rem; }
  .form-label{ display:block; font-family:'IBM Plex Mono', monospace; font-size:0.7rem; letter-spacing:0.1em; color:var(--slate); margin-bottom:0.6rem; }
  .form-input, .form-textarea{
    width:100%; min-width:0; background:transparent; border:none; border-bottom:1px solid var(--line-on-ink);
    color:var(--paper); font-family:'Public Sans', sans-serif; font-size:1.05rem;
    padding:0.6rem 0; margin-bottom:2rem; outline:none;
  }
  .form-input:focus, .form-textarea:focus{ border-color:var(--brass-bright); }
  .form-textarea{ resize:vertical; min-height:180px; margin-bottom:0; }
  .choice-row{ display:flex; flex-wrap:wrap; gap:0.7rem; margin-bottom:2.2rem; }
  .choice-btn{
    padding:0.6rem 1.1rem; border:1px solid var(--line-on-ink); background:transparent;
    color:var(--paper); font-family:'Public Sans', sans-serif; font-size:0.88rem;
    border-radius:999px; cursor:pointer; transition:all 0.2s ease;
  }
  .choice-btn.selected{ border-color:var(--brass-bright); background:var(--brass-bright); color:var(--ink); }
  .form-nav{ display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:0.75rem; margin-top:0.5rem; }
  .form-btn{
    background:none; border:1px solid var(--brass-bright); color:var(--brass-bright);
    font-family:'IBM Plex Mono', monospace; font-size:0.76rem; letter-spacing:0.06em;
    padding:0.75rem 1.5rem; cursor:pointer; transition:all 0.2s ease;
  }
  .form-btn:hover{ background:var(--brass-bright); color:var(--ink); }
  .form-btn.ghost{ border-color:var(--line-on-ink); color:var(--slate); background:none; }
  .form-btn.ghost:hover{ background:none; color:var(--paper); border-color:var(--slate); }
  .review-block{ font-size:0.9rem; color:#C9CDD6; line-height:1.85; margin-bottom:1.6rem; min-height:5.5rem; }
  .review-block b{ color:var(--paper); font-weight:500; }
  .form-success{ display:none; font-family:'Fraunces', serif; font-style:italic; font-size:1.05rem; color:var(--brass-bright); margin-top:1.2rem; }

  /* ---------- MANIFESTO ---------- */
  .manifesto{ display:grid; grid-template-columns:1fr 1.6fr; gap:4rem; }
  @media (max-width:760px){ .manifesto{ grid-template-columns:minmax(0, 1fr); gap:2rem; } }
  .manifesto .label{ font-family:'IBM Plex Mono', monospace; font-size:12px; letter-spacing:0.14em; color:var(--rust); }
  .manifesto p{ font-family:'Fraunces', serif; font-weight:450; font-size:clamp(1.5rem, 2.6vw, 2.15rem); line-height:1.35; margin:0; max-width:26ch; }
  .manifesto p::first-letter{ font-size:3.8em; float:left; line-height:0.8; padding-right:0.1em; padding-top:0.05em; color:var(--rust); }

  .section-head{ display:flex; justify-content:space-between; align-items:flex-end; margin-bottom:3.5rem; flex-wrap:wrap; gap:1rem; overflow:hidden; }
  .section-head h2{ font-size:clamp(2rem, 4vw, 3rem); }
  .section-head .note{ font-size:0.9rem; color:var(--slate); max-width:32ch; text-align:right; }
  @media (max-width:600px){ .section-head .note{ text-align:left; } }

  /* ---------- TRACK RECORD ---------- */
  .record{ border-top:1px solid var(--line-on-ink); }
  .entry{
    display:grid; grid-template-columns:70px 1fr 160px; gap:2rem;
    padding:2.1rem 0; border-bottom:1px solid var(--line-on-ink);
    cursor:pointer;
    transition:padding-left 0.35s ease;
  }
  .entry:hover{ padding-left:0.6rem; }
  @media (max-width:700px){
    .entry{ grid-template-columns:44px minmax(0, 1fr); gap:0.75rem; }
    .entry .yrs{ grid-column:2; order:3; margin-top:0.4rem; }
  }
  .entry .num{ font-family:'IBM Plex Mono', monospace; font-size:0.95rem; color:var(--brass-bright); padding-top:0.15rem; }
  .entry .role{ font-family:'Fraunces', serif; font-size:1.35rem; margin:0 0 0.4rem; display:flex; align-items:center; gap:0.6rem; }
  .entry .role .chevron{ font-size:0.8rem; color:var(--brass-bright); transition:transform 0.3s ease; display:inline-block; }
  .entry.open .role .chevron{ transform:rotate(90deg); }
  .entry .org{ font-size:0.88rem; color:var(--slate); margin-bottom:0.7rem; }
  .entry .outcome{
    font-size:0.96rem; color:#C9CDD6; max-width:60ch;
    display:grid; grid-template-rows:0fr; opacity:0;
    transition:grid-template-rows 0.4s ease, opacity 0.35s ease;
  }
  .entry .outcome inner{ overflow:hidden; }
  .entry .outcome > span{ overflow:hidden; }
  .entry.open .outcome{ grid-template-rows:1fr; opacity:1; margin-top:0.2rem; }
  .entry .yrs{ font-family:'IBM Plex Mono', monospace; font-size:0.82rem; color:var(--slate); text-align:right; padding-top:0.2rem; }

  /* ---------- NUMBERS ---------- */
  .numbers-grid{ display:grid; grid-template-columns:repeat(4, 1fr); border-top:1px solid var(--line-on-paper); border-left:1px solid var(--line-on-paper); }
  @media (max-width:760px){ .numbers-grid{ grid-template-columns:repeat(2, minmax(0, 1fr)); } }
  .num-cell{ border-right:1px solid var(--line-on-paper); border-bottom:1px solid var(--line-on-paper); padding:2.6rem 1.6rem; }
  .num-cell b{ display:block; font-family:'IBM Plex Mono', monospace; font-size:2.4rem; font-weight:500; color:var(--rust); }
  .num-cell span{ display:block; font-size:0.85rem; color:var(--charcoal-soft); margin-top:0.5rem; max-width:20ch; }

  /* ---------- DUAL PRACTICE (TABS) ---------- */
  .dual-wrap{ border-top:1px solid var(--line-on-ink); }
  .tabs{ display:flex; gap:0; border-bottom:1px solid var(--line-on-ink); }
  .tab-btn{
    background:none; border:none; color:var(--slate);
    font-family:'Fraunces', serif; font-size:1.3rem; font-style:italic;
    padding:1.4rem 2rem 1.4rem 0; margin-right:2rem;
    cursor:pointer; position:relative;
  }
  .tab-btn::after{
    content:''; position:absolute; left:0; right:2rem; bottom:-1px; height:2px;
    background:var(--brass-bright); transform:scaleX(0); transform-origin:left;
    transition:transform 0.3s ease;
  }
  .tab-btn.active{ color:var(--paper); }
  .tab-btn.active::after{ transform:scaleX(1); }
  .tab-panel{ display:none; padding:2.6rem 0; }
  .tab-panel.active{ display:block; }
  .tab-panel ul{ list-style:none; padding:0; margin:0; columns:2; column-gap:3rem; }
  @media (max-width:700px){ .tab-panel ul{ columns:1; } }
  .tab-panel li{ padding:0.75rem 0; border-top:1px solid var(--line-on-ink); font-size:0.98rem; color:#D6D9E0; break-inside:avoid; }
  .tab-panel li:first-of-type{ border-top:none; }

  /* ---------- PROJECTS (FLIP CARDS) ---------- */
  .projects{ display:grid; grid-template-columns:repeat(3, 1fr); gap:1.4rem; }
  @media (max-width:900px){ .projects{ grid-template-columns:repeat(2, minmax(0, 1fr)); } }
  @media (max-width:600px){ .projects{ grid-template-columns:minmax(0, 1fr); } }
  .flip-card{ perspective:1200px; aspect-ratio:4/5; }
  .flip-inner{
    position:relative; width:100%; height:100%;
    transform-style:preserve-3d;
    transition:transform 0.6s cubic-bezier(.22,.9,.28,1);
  }
  .flip-card.flipped .flip-inner{ transform:rotateY(180deg); }
  .flip-front, .flip-back{
    position:absolute; inset:0; backface-visibility:hidden;
    border:1px solid var(--line-on-paper);
    display:flex; flex-direction:column; justify-content:space-between;
    padding:1.6rem;
  }
  .flip-front{
    background:var(--proj-color, #D9CBAE);
    color:var(--ink);
  }
  .flip-front .letter{
    font-family:'Fraunces', serif; font-weight:300; font-size:4.6rem;
    align-self:flex-end; color:rgba(18,20,26,0.28);
  }
  .flip-front .pname{ font-family:'Fraunces', serif; font-size:1.15rem; }
  .flip-front .porg{ font-size:0.78rem; color:rgba(18,20,26,0.6); margin-top:0.2rem; }
  .flip-front .tap-hint{ font-family:'IBM Plex Mono', monospace; font-size:9px; letter-spacing:0.1em; color:rgba(18,20,26,0.55); }
  .flip-back{
    background:var(--paper-2); transform:rotateY(180deg);
  }
  .flip-back .pdesc{ font-size:0.92rem; color:var(--charcoal-soft); }
  .flip-back .pyrs{ font-family:'IBM Plex Mono', monospace; font-size:0.76rem; color:var(--rust); }

  /* ---------- CREDENTIALS ---------- */
  .cred-grid{
    display:grid;
    grid-template-columns:repeat(4, 1fr);
    border-top:1px solid var(--line-on-ink);
    border-left:1px solid var(--line-on-ink);
  }
  @media (max-width:760px){ .cred-grid{ grid-template-columns:repeat(2, minmax(0, 1fr)); } }
  .cred-cell{
    border-right:1px solid var(--line-on-ink);
    border-bottom:1px solid var(--line-on-ink);
    padding:2.2rem 1.7rem;
  }
  .clabel{ font-family:'IBM Plex Mono', monospace; font-size:11px; letter-spacing:0.12em; color:var(--brass-bright); }
  .cval{ font-family:'Fraunces', serif; font-size:1.15rem; margin-top:0.7rem; color:var(--paper); }
  .cval em{ font-style:italic; color:var(--slate); }
  .csub{ font-size:0.82rem; color:var(--slate); margin-top:0.45rem; max-width:22ch; }
  .cred-grid.on-paper{ border-top-color:var(--line-on-paper); border-left-color:var(--line-on-paper); margin-top:3.5rem; }
  .cred-grid.on-paper .cred-cell{ border-color:var(--line-on-paper); }
  .cred-grid.on-paper .cval{ color:var(--ink); }
  .cred-grid.on-paper .cval em{ color:var(--charcoal-soft); }
  .cred-grid.on-paper .csub{ color:var(--charcoal-soft); }
  .subsection-label{
    font-family:'IBM Plex Mono', monospace; font-size:11px; letter-spacing:0.16em;
    color:var(--rust); margin-bottom:1.6rem; display:block;
  }
  .record-numbers{ margin-top:4.5rem; padding-top:3.2rem; border-top:1px solid var(--line-on-ink); }
  .record-numbers .stat-strip{ padding:0; }

  /* ---------- SME SECTION ---------- */
  .sme-top{
    display:grid; grid-template-columns:1fr 1fr; gap:4rem; align-items:start; margin-bottom:4.5rem;
  }
  @media (max-width:900px){ .sme-top{ grid-template-columns:minmax(0, 1fr); gap:2.5rem; } }
  .sme-top p{ font-size:1.05rem; line-height:1.75; color:var(--charcoal-soft); }
  .sme-top p + p{ margin-top:1.1rem; }
  .sme-top .lede{ font-family:'Fraunces', serif; font-size:1.4rem; font-style:italic; color:var(--ink); line-height:1.5; margin-bottom:1.2rem; }
  .sme-stages{
    display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid var(--line-on-paper); border-left:1px solid var(--line-on-paper);
  }
  @media (max-width:900px){ .sme-stages{ grid-template-columns:repeat(2, minmax(0, 1fr)); } }
  .sme-stage{ border-right:1px solid var(--line-on-paper); border-bottom:1px solid var(--line-on-paper); padding:2.2rem 1.7rem; }
  .sme-stage .sn{ font-family:'IBM Plex Mono', monospace; font-size:11px; letter-spacing:0.1em; color:var(--rust); }
  .sme-stage h4{ font-family:'Fraunces', serif; font-weight:500; font-size:1.15rem; margin-top:0.8rem; color:var(--ink); }
  .sme-stage p{ font-size:0.86rem; color:var(--charcoal-soft); margin-top:0.6rem; max-width:24ch; }

  /* ---------- FAQ ---------- */
  .faq-list{ border-top:1px solid var(--line-on-paper); max-width:760px; }
  .faq-item{ border-bottom:1px solid var(--line-on-paper); padding:1.5rem 0; cursor:pointer; }
  .faq-item.on-ink, .faq-list.on-ink .faq-item{ border-bottom-color:var(--line-on-ink); }
  .faq-q{
    font-family:'Fraunces', serif; font-size:1.15rem;
    display:flex; align-items:center; gap:0.7rem;
  }
  .faq-q .chevron{ font-size:0.85rem; color:var(--rust); transition:transform 0.3s ease; display:inline-block; }
  .faq-list.on-ink .faq-q .chevron{ color:var(--brass-bright); }
  .faq-item.open .faq-q .chevron{ transform:rotate(90deg); }
  .faq-a{
    font-size:0.94rem; color:var(--charcoal-soft); max-width:62ch;
    display:grid; grid-template-rows:0fr; opacity:0;
    transition:grid-template-rows 0.4s ease, opacity 0.35s ease;
  }
  .faq-list.on-ink .faq-a{ color:var(--slate); }
  .faq-a > span{ overflow:hidden; display:block; }
  .faq-item.open .faq-a{ grid-template-rows:1fr; opacity:1; margin-top:0.7rem; }

  /* ---------- EXPERTISE ---------- */
  .expertise{ display:grid; grid-template-columns:repeat(3, 1fr); gap:3rem; }
  @media (max-width:760px){ .expertise{ grid-template-columns:minmax(0, 1fr); gap:2.2rem; } }
  .expertise h4{ font-family:'IBM Plex Mono', monospace; font-size:12px; letter-spacing:0.1em; color:var(--rust); margin:0 0 1.1rem; font-weight:500; }
  .expertise ul{ list-style:none; margin:0; padding:0; border-top:1px solid var(--line-on-paper); }
  .expertise li{ padding:0.75rem 0; border-bottom:1px solid var(--line-on-paper); font-size:0.95rem; }

  /* ---------- CTA ---------- */
  .cta{ text-align:left; }
  .cta-top{
    display:grid;
    grid-template-columns:1.3fr 1fr;
    gap:4rem;
    align-items:start;
    margin-bottom:3.5rem;
  }
  @media (max-width:860px){ .cta-top{ grid-template-columns:minmax(0, 1fr); gap:2.5rem; } }
  .cta h2{ font-size:clamp(2.2rem, 5.2vw, 4rem); max-width:14ch; line-height:1.05; }
  .cta .lead{ color:var(--slate); max-width:40ch; margin-top:1.4rem; font-size:1.05rem; }

  .theme-card{
    border:1px solid var(--line-on-ink);
    background:var(--ink-2);
    padding:2.4rem;
  }
  .theme-card-label{
    font-family:'IBM Plex Mono', monospace; font-size:11px; letter-spacing:0.12em;
    color:var(--rust); margin-bottom:1rem;
  }
  .theme-card h3{ font-size:1.5rem; margin-bottom:0.9rem; }
  .theme-card p{ font-size:0.9rem; color:var(--slate); line-height:1.6; margin:0 0 1.6rem; }
  .theme-price{
    font-family:'IBM Plex Mono', monospace; font-size:1.9rem; color:var(--brass-bright);
    margin-bottom:1.4rem;
  }
  .theme-price span{
    display:block; font-family:'Public Sans', sans-serif; font-size:0.78rem;
    color:var(--slate); margin-top:0.3rem; letter-spacing:0.02em;
  }
  .theme-buy-btn{ width:100%; text-align:center; margin-bottom:1rem; }
  .theme-note{ font-family:'IBM Plex Mono', monospace; font-size:9.5px; letter-spacing:0.04em; color:var(--slate); opacity:0.7; line-height:1.5; }
  .contact-row{ display:flex; gap:3rem; flex-wrap:wrap; margin-top:3rem; padding-top:2rem; border-top:1px solid var(--line-on-ink); }
  .contact-row div b{ display:block; font-family:'IBM Plex Mono', monospace; font-size:0.72rem; letter-spacing:0.1em; color:var(--slate); margin-bottom:0.4rem; font-weight:400; }
  .contact-row a{ text-decoration:none; font-size:1rem; border-bottom:1px solid var(--brass); padding-bottom:2px; }

  .da-portfolio footer{ padding:2.4rem 8vw; display:flex; justify-content:space-between; font-size:0.78rem; color:var(--slate); font-family:'IBM Plex Mono', monospace; }

.da-portfolio .cta-top { grid-template-columns: 1fr; }
.da-portfolio .hero-watch-link {
  display:block;
  padding:0.6rem 0.9rem;
  color:var(--brass-bright);
  font-size:0.85rem;
  text-decoration:underline;
}
.da-portfolio .hero-video .hero-watch-link { border-top:1px solid var(--line-on-ink); }
.da-portfolio .da-hero-builder.e-con {
  display:grid;
  grid-template-columns:minmax(0, 0.9fr) minmax(0, 1.1fr);
  align-items:center;
  gap:3rem;
  width:100%;
  min-height:100vh;
  padding:calc(64px + 3rem) 8vw 7rem 12vw;
  background:var(--ink);
  color:var(--paper);
}
.da-portfolio .da-hero-builder .da-video-builder.e-con {
  min-width:0;
  width:100%;
  gap:0;
  padding:0;
}
.da-portfolio .da-video-builder iframe { display:block; }
.da-portfolio .da-hero-builder .elementor-widget,
.da-portfolio .da-section-widget { margin:0; }
.da-portfolio .da-section-widget { width:100%; }
.da-portfolio.admin-bar .topnav { top:32px; }
.da-portfolio.admin-bar #main-content section,
.da-portfolio.admin-bar .da-hero-builder { scroll-margin-top:96px; }
.elementor-editor-active .da-portfolio .reveal,
.da-portfolio.elementor-editor-active .reveal { opacity:1; transform:none; }
@media (max-width:900px) {
  .da-portfolio .da-hero-builder.e-con { grid-template-columns:minmax(0, 1fr); padding:6rem 6vw 4.5rem; }
}
@media (max-width:782px) {
  .da-portfolio.admin-bar .topnav { top:46px; }
  .da-portfolio.admin-bar #main-content section,
  .da-portfolio.admin-bar .da-hero-builder { scroll-margin-top:110px; }
}
.da-portfolio #main-content,
.da-portfolio #main-content > .elementor,
.da-portfolio .da-builder-section.e-con,
.da-portfolio .da-section-widget,
.da-portfolio .da-hero-builder .elementor-widget {
  min-width:0;
  max-width:100%;
}
.da-portfolio #main-content { overflow-wrap:anywhere; }
.da-portfolio .da-builder-section.e-con { width:100%; padding:0; gap:0; }
.da-portfolio .contact-row > div { min-width:0; max-width:100%; }
.da-portfolio .hero-video iframe,
.da-portfolio .da-video-builder iframe { max-width:100%; }
@media (max-width:640px) {
  .da-portfolio .tabs { flex-wrap:wrap; gap:0.5rem 1rem; }
  .da-portfolio .tab-btn { margin:0; padding:0.65rem 0; font-size:1.05rem; }
  .da-portfolio .tab-btn::after { right:0; }
  .da-portfolio .contact-row { gap:1.25rem 2rem; }
  .da-portfolio .flip-card { aspect-ratio:auto; }
  .da-portfolio .flip-inner { display:grid; height:auto; min-height:15rem; }
  .da-portfolio .flip-front,
  .da-portfolio .flip-back { position:relative; grid-area:1 / 1; min-width:0; gap:0.75rem; }
  .da-portfolio footer { flex-wrap:wrap; gap:0.75rem; }
}
.da-portfolio #main-content section,
.da-portfolio .da-hero-builder { scroll-margin-top:64px; }
.da-portfolio .screen-reader-text:focus {
  position:fixed;
  z-index:10000;
  top:1rem;
  left:1rem;
  padding:0.5rem 0.75rem;
  background:#fff;
  color:#12141a;
}

/* Portrait-led hero and on-demand intro player. */
.da-portfolio .hero,
.da-portfolio .da-hero-builder.e-con {
  grid-template-columns:minmax(0, 1.35fr) minmax(0, 0.75fr);
}
.da-portfolio .hero-copy,
.da-portfolio .hero-sub { max-width:100%; }
.da-portfolio .stat { padding:1.6rem 0.4rem 0; text-align:center; }
.da-portfolio .stat span { margin-inline:auto; }
.da-portfolio .approach-top { grid-template-columns:minmax(0, 1fr); }
.da-portfolio #hero .portrait-plate { margin-inline:auto; max-width:420px; }
.da-portfolio .hero-intro-link {
  position:absolute;
  inset:0;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:0.8rem;
  color:var(--paper);
  font:500 11px 'IBM Plex Mono', monospace;
  letter-spacing:0.12em;
  text-decoration:none;
  text-shadow:0 1px 8px #000;
}
.da-portfolio .hero-intro-link:focus-visible { outline:2px solid var(--brass-bright); outline-offset:-6px; }
.da-portfolio .hero-intro-icon {
  display:grid;
  place-items:center;
  width:72px;
  height:72px;
  border:1px solid var(--brass-bright);
  border-radius:50%;
  background:rgba(18,20,26,0.75);
  color:var(--brass-bright);
  font-size:20px;
}
.da-portfolio .hero-intro-link:hover .hero-intro-icon { background:var(--brass-bright); color:var(--ink); }
.da-intro-dialog {
  width:min(94vw, 980px, 145vh);
  max-width:100%;
  max-height:calc(100% - 1.5rem);
  padding:0.75rem;
  background:var(--ink);
  color:var(--paper);
  border:1px solid var(--brass);
}
.da-intro-dialog::backdrop { background:rgba(8,9,12,0.9); }
.da-intro-close-form { display:flex; justify-content:flex-end; margin-bottom:0.5rem; }
.da-intro-close-form button {
  min-width:44px; min-height:44px;
  border:1px solid var(--brass);
  background:transparent;
  color:var(--brass-bright);
  cursor:pointer;
}
.da-intro-frame { aspect-ratio:16/9; background:#000; }
.da-intro-frame iframe { display:block; width:100%; height:100%; border:0; }
.da-intro-watch { display:inline-block; margin-top:0.75rem; color:var(--brass-bright); }
@media (max-width:900px) {
  .da-portfolio .hero,
  .da-portfolio .da-hero-builder.e-con { grid-template-columns:minmax(0, 1fr); }
}

/* Contact Form 7 uses the portfolio's existing wizard styles. */
.da-portfolio .da-cf7-wizard .wpcf7-form-control-wrap { display:block; min-width:0; }
.da-portfolio .da-cf7-wizard .wpcf7-not-valid-tip { color:#f2a697; margin:-1.4rem 0 1rem; }
.da-portfolio .da-cf7-wizard .wpcf7-response-output { margin:1rem 0 0; padding:0.75rem 1rem; }
.da-portfolio .da-cf7-wizard.submitting .wpcf7-submit { pointer-events:none; opacity:0.65; }
.da-portfolio .da-cf7-wizard .form-nav > p { margin:0; }
.da-portfolio .da-cf7-wizard .wpcf7-spinner { position:absolute; margin:0 0 0 0.4rem; }
.da-portfolio .da-cf7-wizard:not(.da-wizard-ready) .form-step { display:block; }
.da-portfolio .da-cf7-wizard:not(.da-wizard-ready) [data-next],
.da-portfolio .da-cf7-wizard:not(.da-wizard-ready) [data-back] { display:none; }
