:root{
    --ink:#1B1D22;
    --ink-soft:#52555c;
    --paper:#EDEAE1;
    --paper-raised:#F6F4EE;
    --oxblood:#6B1D24;
    --oxblood-bright:#8A2530;
    --brass:#A8895A;
    --line:rgba(27,29,34,0.14);
    --line-on-ink:rgba(237,234,225,0.18);
    --serif: 'Source Serif 4', Georgia, serif;
    --sans: 'IBM Plex Sans', Helvetica, Arial, sans-serif;
    --mono: 'IBM Plex Mono', Menlo, monospace;
  }

  *{box-sizing:border-box;}
  html{scroll-behavior:smooth; overflow-x:hidden; max-width:100%;}
  body{
    margin:0;
    background:var(--paper);
    color:var(--ink);
    font-family:var(--sans);
    line-height:1.6;
    -webkit-font-smoothing:antialiased;
    overflow-x:hidden; max-width:100%;
  }
  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 20px;}}

  .eyebrow{
    font-family:var(--mono);
    font-size:12px;
    letter-spacing:0.18em;
    text-transform:uppercase;
    color:var(--brass);
  }

  /* ---------- NAV ---------- */
  header.nav{
    position:sticky; top:0; z-index:50;
    background:rgba(237,234,225,0.92);
    backdrop-filter:blur(6px);
    border-bottom:1px solid var(--line);
  }
  .nav-inner{
    display:flex; align-items:center; justify-content:space-between;
    padding:18px 32px; gap:24px;
    max-width:1180px; margin:0 auto;
  }
  .brand{display:flex; align-items:center; gap:12px; text-decoration:none; color:var(--ink); flex-shrink:0;}
  .brand-mark{width:26px;height:26px;position:relative;flex:none;}
  .brand-mark span{position:absolute;background:var(--ink);}
  .brand-mark .v{left:0;top:0;width:4px;height:26px;}
  .brand-mark .h1{left:0;top:0;width:19px;height:4px;}
  .brand-mark .h2{left:0;top:10px;width:14px;height:4px;}
  .brand-name{font-family:var(--serif); font-weight:600; font-size:17px; letter-spacing:0.04em; white-space:nowrap;}
  nav.links{display:flex; gap:22px; font-size:13px; flex-shrink:1; justify-content:center;}
  nav.links a{text-decoration:none; color:var(--ink-soft); letter-spacing:0.02em; transition:color .2s; white-space:nowrap;}
  nav.links a:hover, nav.links a:focus-visible{color:var(--oxblood);}
  .nav-cta{
    font-family:var(--mono); font-size:12px; letter-spacing:0.08em; text-transform:uppercase;
    border:1px solid var(--ink); padding:9px 16px; text-decoration:none; color:var(--ink);
    transition:background .2s, color .2s;
    white-space:nowrap; flex-shrink:0;
  }
  .nav-cta:hover, .nav-cta:focus-visible{background:var(--ink); color:var(--paper);}
  .nav-inner{flex-wrap:nowrap;}
  @media (max-width:1180px){ nav.links{display:none;} }
  @media (max-width:560px){ .nav-cta{display:none;} }

  .mobile-toggle{
    display:none; flex-direction:column; justify-content:center; gap:5px;
    background:none; border:none; cursor:pointer; padding:6px; flex-shrink:0; margin-left:12px;
  }
  .mobile-toggle span{display:block; width:22px; height:2px; background:var(--ink); transition:transform .25s ease, opacity .2s ease;}
  .mobile-toggle.active span:nth-child(1){transform:translateY(7px) rotate(45deg);}
  .mobile-toggle.active span:nth-child(2){opacity:0;}
  .mobile-toggle.active span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}
  @media (max-width:1180px){ .mobile-toggle{display:flex;} }

  .mobile-nav{
    display:none; flex-direction:column;
    background:var(--paper-raised); border-bottom:1px solid var(--line);
    padding:6px 32px 18px;
    max-height:calc(100vh - 64px); overflow-y:auto;
  }
  .mobile-nav.open{display:flex;}
  .mobile-nav a{
    padding:15px 0; font-family:var(--mono); font-size:14px; letter-spacing:0.04em; text-transform:uppercase;
    color:var(--ink); text-decoration:none; border-bottom:1px solid var(--line);
  }
  .mobile-nav a:not(.mobile-cta):last-of-type{border-bottom:none;}
  .mobile-nav a.mobile-cta{
    display:none; text-align:center; background:var(--oxblood); color:var(--paper);
    border:1px solid var(--oxblood); margin-top:8px; padding:14px 0;
  }
  @media (max-width:560px){ .mobile-nav a.mobile-cta{display:block;} }

  .footer-social{display:inline-flex; gap:16px; margin-left:18px;}
  .footer-social a{
    font-family:var(--mono); font-size:12px; letter-spacing:0.04em; text-transform:uppercase;
    color:var(--ink-soft); text-decoration:none;
  }
  .footer-social a:hover{color:var(--oxblood);}

  /* ---------- HERO ---------- */
  .hero{
    background:var(--ink); color:var(--paper);
    padding:120px 0 90px;
    position:relative;
    overflow:hidden;
  }
  .hero .wrap{position:relative; z-index:2;}
  .hero-rule{width:64px; height:2px; background:var(--brass); margin-bottom:26px;}
  .hero h1{
    font-family:var(--serif); font-weight:600;
    font-size:clamp(38px, 5.4vw, 68px);
    line-height:1.08;
    margin:0 0 28px;
    max-width:16ch;
    letter-spacing:-0.01em;
  }
  .hero h1 em{font-style:italic; color:var(--brass); font-weight:500;}

  .subhero{padding:70px 0 60px;}
  .subhero h1{font-size:clamp(32px,4.6vw,52px); max-width:20ch;}
  .breadcrumb{
    font-family:var(--mono); font-size:12px; color:rgba(237,234,225,0.55); letter-spacing:0.05em;
    margin-bottom:20px;
  }
  .breadcrumb a{color:rgba(237,234,225,0.75); text-decoration:none; border-bottom:1px solid rgba(237,234,225,0.3);}
  .breadcrumb a:hover{color:var(--brass); border-bottom-color:var(--brass);}
  .hero p.lede{
    font-size:18px; color:rgba(237,234,225,0.78); max-width:52ch; margin:0 0 42px;
  }
  .hero-actions{display:flex; gap:16px; flex-wrap:wrap;}
  .btn-primary{
    font-family:var(--mono); font-size:13px; letter-spacing:0.06em; text-transform:uppercase;
    background:var(--oxblood); color:var(--paper); border:1px solid var(--oxblood);
    padding:15px 26px; text-decoration:none; transition:background .2s, border-color .2s;
  }
  .btn-primary:hover, .btn-primary:focus-visible{background:var(--oxblood-bright); border-color:var(--oxblood-bright);}
  .btn-ghost{
    font-family:var(--mono); font-size:13px; letter-spacing:0.06em; text-transform:uppercase;
    background:transparent; color:var(--paper); border:1px solid var(--line-on-ink);
    padding:15px 26px; text-decoration:none; transition:border-color .2s;
  }
  .btn-ghost:hover, .btn-ghost:focus-visible{border-color:var(--paper);}

  .docket{
    font-family:var(--mono); font-size:12px; color:rgba(237,234,225,0.5);
    margin-top:56px; padding-top:22px; border-top:1px solid var(--line-on-ink);
    display:flex; gap:36px; flex-wrap:wrap; letter-spacing:0.04em;
  }
  .docket b{color:var(--brass); font-weight:500;}

  .subhero{padding:80px 0 64px;}
  .subhero .hero-rule{margin-bottom:20px;}
  .subhero h1{
    font-family:var(--serif); font-weight:600; font-size:clamp(32px,4.6vw,52px);
    line-height:1.1; margin:0 0 22px; max-width:18ch;
  }
  .subhero p.lede{font-size:17px; max-width:56ch; margin:0 0 0;}
  .breadcrumb{
    font-family:var(--mono); font-size:12px; color:rgba(237,234,225,0.55); letter-spacing:0.05em;
    margin-bottom:20px;
  }
  .breadcrumb a{color:rgba(237,234,225,0.75); text-decoration:none; border-bottom:1px solid rgba(237,234,225,0.3);}

  .detail-intro{font-family:var(--serif); font-size:clamp(19px,2.2vw,23px); line-height:1.6; max-width:820px; margin:0 0 56px; color:var(--ink);}

  .practice-detail p{font-size:15px; color:var(--ink-soft); margin:0;}

  /* ---------- FAQ ---------- */
  .faq-container{max-width:720px;}

  .faq-category{margin-top:64px;}
  .faq-category:first-child{margin-top:0;}
  .faq-category-label{
    font-family:var(--serif); font-weight:600; font-size:19px; color:var(--ink);
    margin:0 0 4px; padding-bottom:12px; border-bottom:1px solid var(--oxblood);
  }

  .faq-item{border-bottom:1px solid var(--line);}
  .faq-q{
    display:flex; align-items:flex-start; justify-content:space-between; gap:16px;
    width:100%; text-align:left; background:none; border:none; cursor:pointer;
    padding:14px 0; font-family:var(--sans); font-weight:600; font-size:14.5px;
    color:var(--ink); line-height:1.5;
  }
  .faq-q:hover{color:var(--oxblood);}
  .faq-q:focus-visible{outline:2px solid var(--oxblood); outline-offset:2px;}
  .faq-icon{
    flex:none; position:relative; width:14px; height:14px; margin-top:3px;
  }
  .faq-icon::before, .faq-icon::after{
    content:""; position:absolute; background:var(--brass);
    transition:transform .25s ease;
  }
  .faq-icon::before{left:0; top:6px; width:14px; height:1.5px;}
  .faq-icon::after{left:6px; top:0; width:1.5px; height:14px;}
  .faq-q[aria-expanded="true"] .faq-icon::after{transform:rotate(90deg); opacity:0;}

  .faq-a{max-height:0; overflow:hidden; transition:max-height .28s ease;}
  .faq-a-inner{padding:0 28px 16px 0;}
  .faq-a-inner p{font-size:14.5px; color:var(--ink-soft); margin:0; line-height:1.7;}

  @media (max-width:640px){
    .faq-category{margin-top:48px;}
    .faq-category-label{font-size:17px;}
    .faq-q{font-size:14px; padding:13px 0;}
    .faq-a-inner{padding-right:20px;}
    .faq-a-inner p{font-size:14px;}
  }

  .other-areas{padding:70px 0; background:var(--paper-raised); border-top:1px solid var(--line); border-bottom:1px solid var(--line);}
  .other-areas-inner{display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:24px;}
  .other-areas-links{display:flex; gap:28px; flex-wrap:wrap;}
  .other-areas-links a{
    font-family:var(--mono); font-size:13px; letter-spacing:0.04em; text-transform:uppercase;
    color:var(--ink); text-decoration:none; border-bottom:1px solid var(--line); padding-bottom:2px;
  }
  .other-areas-links a:hover{border-bottom-color:var(--oxblood); color:var(--oxblood);}

  .final-cta{padding:90px 0; text-align:center;}
  .final-cta h2{font-family:var(--serif); font-size:clamp(26px,3.2vw,36px); margin:0 0 24px;}
  .final-cta .btn-primary{display:inline-block;}

  /* ---------- SECTION SCAFFOLD ---------- */
  section{padding:96px 0;}
  .section-head{max-width:640px; margin:0 0 56px;}
  .section-head .eyebrow{margin-bottom:14px; display:block;}
  .section-head h2{
    font-family:var(--serif); font-weight:600; font-size:clamp(28px,3.4vw,40px);
    margin:0; line-height:1.15;
  }
  .section-head p.section-sub{
    font-family:var(--sans); font-size:15.5px; color:var(--ink-soft);
    margin:16px 0 0; max-width:52ch;
  }

  /* ---------- WHO WE SERVE ---------- */
  .serve-grid{
    display:grid; grid-template-columns:1fr 1fr; gap:1px;
    background:var(--line); border:1px solid var(--line);
  }
  @media (max-width:800px){.serve-grid{grid-template-columns:1fr;}}
  .serve-card{padding:52px 44px; position:relative;}
  .serve-card.individuals{background:var(--paper-raised); color:var(--ink);}
  .serve-card.business{background:var(--ink); color:var(--paper);}
  .serve-card .eyebrow{margin-bottom:18px; display:block;}
  .serve-card.business .eyebrow{color:var(--brass);}
  .serve-card h3{font-family:var(--serif); font-size:clamp(22px,2.6vw,28px); margin:0 0 16px; font-weight:600; line-height:1.25;}
  .serve-card p{font-size:15.5px; margin:0 0 26px; max-width:42ch;}
  .serve-card.individuals p{color:var(--ink-soft);}
  .serve-card.business p{color:rgba(237,234,225,0.78);}
  .serve-tags{display:flex; flex-wrap:wrap; gap:8px; margin-bottom:28px;}
  .serve-tags span{
    font-family:var(--mono); font-size:11px; letter-spacing:0.05em; text-transform:uppercase;
    padding:6px 11px; border:1px solid var(--line);
  }
  .serve-card.business .serve-tags span{border-color:var(--line-on-ink);}
  .serve-link{
    font-family:var(--mono); font-size:12px; letter-spacing:0.06em; text-transform:uppercase;
    text-decoration:none; border-bottom:1px solid currentColor; padding-bottom:2px;
  }
  .serve-card.individuals .serve-link{color:var(--oxblood);}
  .serve-card.business .serve-link{color:var(--paper);}

  /* ---------- WHO WE ARE / EXHIBITS ---------- */
  .mission{
    font-family:var(--serif); font-size:clamp(20px,2.4vw,26px); line-height:1.5;
    max-width:840px; margin:0 0 64px; color:var(--ink);
  }
  .exhibits{
    display:grid; grid-template-columns:repeat(3,1fr); gap:1px;
    background:var(--line); border:1px solid var(--line);
  }
  @media (max-width:800px){.exhibits{grid-template-columns:1fr;}}
  .exhibit{background:var(--paper-raised); padding:38px 32px;}
  .exhibit .tag{font-family:var(--mono); font-size:12px; letter-spacing:0.1em; color:var(--oxblood); margin-bottom:18px; display:block;}
  .exhibit h3{font-family:var(--serif); font-size:22px; margin:0 0 12px; font-weight:600;}
  .exhibit p{font-size:15px; color:var(--ink-soft); margin:0;}

  .tagline-banner{display:flex; align-items:center; gap:24px; margin:0 0 44px; flex-wrap:wrap;}
  .tagline-banner .rule{flex:1 1 40px; height:1px; background:var(--line); min-width:24px;}
  .tagline-banner p{
    font-family:var(--serif); font-weight:600; letter-spacing:0.06em; text-transform:uppercase;
    font-size:clamp(19px,2.4vw,28px); color:var(--oxblood); margin:0; text-align:center;
  }

  /* ---------- FOUNDER / TRANSCRIPT ---------- */
  .founder{background:var(--paper-raised); border-top:1px solid var(--line); border-bottom:1px solid var(--line);}
  .founder-grid{display:grid; grid-template-columns:280px 1fr; gap:64px; align-items:start;}
  @media (max-width:860px){.founder-grid{grid-template-columns:1fr; gap:40px;}}

  .founder-portrait{
    aspect-ratio:4/5; background:var(--ink);
    border:1px solid var(--ink);
    position:relative;
    overflow:hidden;
  }
  .founder-portrait img{
    width:100%; height:100%; object-fit:cover; object-position:center 30%;
    filter:grayscale(1) contrast(1.05);
    display:block;
  }
  .founder-portrait .cap{
    position:absolute; bottom:0; left:0; right:0;
    font-family:var(--mono); font-size:11px; color:rgba(237,234,225,0.85);
    letter-spacing:0.06em; padding:12px 16px;
    background:linear-gradient(to top, rgba(27,29,34,0.92), rgba(27,29,34,0));
  }

  .transcript{font-family:var(--serif); font-size:17px; line-height:1.85;}
  .t-line{
    display:grid; grid-template-columns:34px 1fr; gap:18px; margin-bottom:30px;
  }
  .t-line .num{
    font-family:var(--mono); font-size:12px; color:var(--brass); padding-top:3px;
    border-right:1px solid var(--line); text-align:right; padding-right:14px;
  }
  .t-line p{margin:0 0 14px;}
  .t-line p:last-child{margin-bottom:0;}
  .t-line .t-head{
    font-family:var(--sans); font-weight:600; font-size:15px; letter-spacing:0.04em;
    text-transform:uppercase; color:var(--ink); margin:0 0 14px;
  }
  .t-line.quote p{
    font-style:italic; color:var(--oxblood); font-size:19px;
  }
  .founder-quote{margin:8px 0 0; padding-left:52px; border-left:2px solid var(--oxblood);}
  .founder-quote p{
    font-family:var(--serif); font-style:italic; font-size:21px; color:var(--oxblood);
    margin:0; line-height:1.55;
  }
  .founder-title{font-family:var(--serif); font-size:28px; font-weight:600; margin:0 0 6px;}
  .founder-role{font-family:var(--mono); font-size:12px; letter-spacing:0.08em; color:var(--ink-soft); text-transform:uppercase; margin:0 0 32px; display:block;}

  /* ---------- EXPERIENCE ---------- */
  .exp-grid{
    display:grid; grid-template-columns:repeat(2,1fr); gap:1px;
    background:var(--line); border:1px solid var(--line);
  }
  @media (max-width:800px){.exp-grid{grid-template-columns:1fr;}}

  /* ---------- CREDENTIALS ---------- */
  .cred-badges{display:flex; flex-wrap:wrap; gap:10px; margin-bottom:56px;}
  .cred-badges span{
    font-family:var(--mono); font-size:12px; letter-spacing:0.05em; text-transform:uppercase;
    padding:9px 16px; border:1px solid var(--ink); color:var(--ink); background:var(--paper-raised);
  }
  .cred-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:44px 40px;}
  @media (max-width:900px){.cred-grid{grid-template-columns:repeat(2,1fr);}}
  @media (max-width:620px){.cred-grid{grid-template-columns:1fr;}}
  .cred-col .cred-label{
    display:block; font-family:var(--mono); font-size:12px; letter-spacing:0.08em; text-transform:uppercase;
    color:var(--oxblood); margin-bottom:16px; padding-bottom:10px; border-bottom:1px solid var(--line);
  }
  .cred-col ul{list-style:none; margin:0; padding:0;}
  .cred-col li{font-size:15px; color:var(--ink-soft); margin-bottom:14px; line-height:1.5;}
  .cred-col li:last-child{margin-bottom:0;}
  .cred-col li .sub{
    display:block; font-size:12.5px; color:var(--ink-soft); opacity:0.85; margin-top:3px;
    font-family:var(--mono); letter-spacing:0.02em;
  }
  .cred-col li a{
    color:var(--ink-soft); text-decoration:underline; text-decoration-color:var(--line);
    text-underline-offset:3px; transition:color .2s, text-decoration-color .2s;
  }
  .cred-col li a:hover{color:var(--oxblood); text-decoration-color:var(--oxblood);}
  .cred-col li .sub-list{list-style:none; margin:10px 0 0; padding:0;}
  .cred-col li .sub-list li{
    font-size:13px; color:var(--ink-soft); opacity:0.9; margin:0 0 6px; padding-left:14px;
    position:relative; line-height:1.5;
  }
  .cred-col li .sub-list li:before{content:"\2013"; position:absolute; left:0; color:var(--brass);}
  .cred-col li .sub-list li:last-child{margin-bottom:0;}

  /* ---------- PRACTICE AREAS ---------- */
  .practice-grid{
    display:grid; grid-template-columns:repeat(3,1fr); gap:1px;
    background:var(--line); border:1px solid var(--line);
  }
  @media (max-width:900px){.practice-grid{grid-template-columns:1fr;}}
  .practice-card{
    background:var(--paper); padding:44px 34px;
    position:relative;
    transition:background .25s;
  }
  .practice-card:hover{background:var(--paper-raised);}
  .practice-card .no{
    font-family:var(--mono); font-size:12px; color:var(--brass); letter-spacing:0.08em; display:block; margin-bottom:20px;
  }
  .practice-card h3{font-family:var(--serif); font-size:23px; margin:0 0 14px; font-weight:600;}
  .practice-card p{font-size:15px; color:var(--ink-soft); margin:0 0 22px; max-width:44ch;}
  .practice-subs{display:flex; flex-wrap:wrap; gap:8px; margin:0; padding:0; list-style:none;}
  .practice-subs li{
    font-family:var(--mono); font-size:11px; letter-spacing:0.04em; text-transform:uppercase;
    color:var(--ink); border:1px solid var(--line); padding:6px 10px;
  }
  .practice-more{
    display:inline-block; margin-top:22px; font-family:var(--mono); font-size:12px;
    letter-spacing:0.06em; text-transform:uppercase; color:var(--oxblood); text-decoration:none;
    border-bottom:1px solid var(--oxblood); padding-bottom:2px;
  }

  /* ---------- VALUES STRIP ---------- */
  .strip{background:var(--ink); color:var(--paper); padding:70px 0;}
  .strip-inner{
    display:flex; flex-wrap:wrap; justify-content:space-between; gap:32px;
  }
  .strip-item{max-width:280px;}
  .strip-item .eyebrow{margin-bottom:10px;}
  .strip-item p{margin:0; font-size:15px; color:rgba(237,234,225,0.75);}

  /* ---------- CTA / CONTACT ---------- */
  .cta-section{text-align:left;}
  .cta-box{
    border:1px solid var(--ink); padding:64px 56px;
    display:grid; grid-template-columns:1.3fr 1fr; gap:48px;
  }
  @media (max-width:800px){.cta-box{grid-template-columns:1fr; padding:44px 28px;}}
  .cta-box h2{font-family:var(--serif); font-size:clamp(26px,3.2vw,36px); margin:0 0 18px; font-weight:600; line-height:1.2;}
  .cta-box p{color:var(--ink-soft); margin:0 0 28px; max-width:46ch;}
  .contact-lines{font-family:var(--mono); font-size:14px; line-height:2.1;}
  .contact-lines .label{color:var(--brass); margin-right:10px;}
  .contact-lines a{text-decoration:none; border-bottom:1px solid var(--line);}

  .intake-form{margin-top:8px;}
  .intake-form .row{display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-bottom:16px;}
  @media (max-width:520px){.intake-form .row{grid-template-columns:1fr;}}
  .intake-form label{
    display:block; font-family:var(--mono); font-size:11px; letter-spacing:0.06em; text-transform:uppercase;
    color:var(--ink-soft); margin-bottom:7px;
  }
  .intake-form input, .intake-form select, .intake-form textarea{
    width:100%; font-family:var(--sans); font-size:15px; color:var(--ink);
    background:var(--paper-raised); border:1px solid var(--line); padding:12px 14px;
    box-sizing:border-box;
  }
  .intake-form input:focus, .intake-form select:focus, .intake-form textarea:focus{
    outline:none; border-color:var(--oxblood);
  }
  .intake-form .field{margin-bottom:16px;}
  .intake-form textarea{resize:vertical; min-height:90px;}
  .intake-form .submit-btn{
    font-family:var(--mono); font-size:13px; letter-spacing:0.06em; text-transform:uppercase;
    background:var(--oxblood); color:var(--paper); border:1px solid var(--oxblood);
    padding:14px 26px; cursor:pointer; transition:background .2s;
  }
  .intake-form .submit-btn:hover{background:var(--oxblood-bright);}
  .intake-form .disclaimer-note{
    font-size:12px; color:var(--ink-soft); margin-top:14px; line-height:1.6;
  }
  .form-success{
    display:none; padding:28px; border:1px solid var(--oxblood); background:var(--paper-raised);
  }
  .form-success h3{font-family:var(--serif); margin:0 0 8px; font-size:20px;}
  .form-success p{margin:0; color:var(--ink-soft); font-size:14.5px;}

  .urgent-callout{
    margin-top:1px; background:var(--ink); color:var(--paper);
    padding:22px 56px; display:flex; align-items:center; gap:10px; flex-wrap:wrap;
  }
  @media (max-width:800px){.urgent-callout{padding:20px 28px;}}
  .urgent-callout p{margin:0; font-size:15px; font-family:var(--sans);}
  .urgent-callout a{
    color:var(--brass); text-decoration:none; font-family:var(--mono); font-size:13px;
    letter-spacing:0.04em; text-transform:uppercase; border-bottom:1px solid var(--brass); padding-bottom:2px; margin-left:4px;
  }

  /* ---------- FOOTER ---------- */
  footer{border-top:1px solid var(--line); padding:44px 0 60px;}
  .footer-top{display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:20px; margin-bottom:28px;}
  .footer-sitemap{
    display:flex; flex-wrap:wrap; gap:8px 22px; margin-bottom:24px; padding-bottom:24px;
    border-bottom:1px solid var(--line);
  }
  .footer-sitemap a{
    font-family:var(--mono); font-size:12px; letter-spacing:0.04em; text-transform:uppercase;
    color:var(--ink-soft); text-decoration:none;
  }
  .footer-sitemap a:hover{color:var(--oxblood);}
  .footer-disclaimer{
    font-size:12.5px; color:var(--ink-soft); max-width:900px; line-height:1.7;
  }

  /* ---------- reveal ---------- */
  .reveal{opacity:0; transform:translateY(18px); transition:opacity .7s ease, transform .7s ease;}
  .reveal.in{opacity:1; transform:translateY(0);}
  @media (prefers-reduced-motion:reduce){
    html{scroll-behavior:auto;}
    .reveal{opacity:1; transform:none; transition:none;}
  }
