  :root{
    --bg-0:#0e0b07; --bg-1:#161009; --bg-2:#1d160d;
    --ink:#f4ece0; --ink-soft:#cabba2; --dim:#a8997f; --faint:#5a4e3c;
    --gold:#d8b46a; --gold-bright:#f0d18a; --sage:#9bb89f;
    --line:rgba(216,180,106,.16); --stroke:rgba(216,180,106,.20); --stroke-soft:rgba(216,180,106,.10);
    --card:rgba(244,236,224,.018); --card-hi:rgba(244,236,224,.035);
    --maxw:1180px;
  }
  *{ margin:0; padding:0; box-sizing:border-box; }
  html{ scroll-behavior:smooth; }
  body{ background:var(--bg-0); color:var(--ink); overflow-x:hidden;
    font-family:"Plus Jakarta Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; -webkit-font-smoothing:antialiased; line-height:1.5; }
  ::selection{ background:var(--gold); color:var(--bg-0); }
  a{ color:inherit; } img{ max-width:100%; display:block; }

  /* animated light-fountain background (canvas) */
  .base{ position:fixed; inset:0; z-index:0; pointer-events:none; background:radial-gradient(120% 90% at 50% 64%, #1b130b 0%, #120d07 45%, #0b0805 100%); }
  #fx{ position:fixed; inset:0; z-index:0; pointer-events:none; }
  .heroscrim{ position:fixed; inset:0; z-index:0; pointer-events:none;
    background:linear-gradient(90deg, rgba(8,6,4,.72) 0%, rgba(8,6,4,.35) 34%, transparent 60%); }
  .grain{ position:fixed; inset:0; z-index:1; pointer-events:none; opacity:.018; mix-blend-mode:overlay;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"); }
  .vignette{ position:fixed; inset:0; z-index:1; pointer-events:none;
    background:radial-gradient(120% 100% at 50% 38%, transparent 52%, rgba(8,6,4,.6) 100%); }

  /* gold spine (left) */
  .spine{ position:fixed; left:max(14px,2vw); top:0; bottom:0; width:2px; z-index:15; pointer-events:none; }
  .spine .track{ position:absolute; inset:0; background:var(--stroke-soft); }
  .spine .fill{ position:absolute; left:0; right:0; top:0; height:100%; transform-origin:top; transform:scaleY(0);
    background:linear-gradient(var(--gold-bright),var(--gold)); box-shadow:0 0 12px rgba(216,180,106,.6); }
  .spine .node{ position:absolute; left:50%; width:9px; height:9px; border-radius:50%; transform:translate(-50%,-50%);
    background:var(--bg-0); border:1.5px solid var(--faint); transition:border-color .3s, box-shadow .3s, background .3s; }
  .spine .node.on{ border-color:var(--gold); background:var(--gold); box-shadow:0 0 10px var(--gold); }
  .spine .node .lbl{ position:absolute; left:16px; top:50%; transform:translateY(-50%); white-space:nowrap;
    font-family:"Space Mono",monospace; font-size:.6rem; letter-spacing:.14em; text-transform:uppercase; color:var(--faint); transition:color .3s; }
  .spine .node.on .lbl{ color:var(--gold); }
  @media (max-width:1080px){ .spine .node .lbl{ display:none; } }
  @media (max-width:680px){ .spine{ display:none; } }

  /* nav */
  .nav{ position:fixed; top:0; left:0; right:0; z-index:20; display:flex; align-items:center; justify-content:space-between;
    padding:1.1rem max(20px,3vw); border-bottom:1px solid transparent; transition:background .35s,border-color .35s,backdrop-filter .35s; }
  .nav.scrolled{ background:rgba(14,11,7,.8); backdrop-filter:blur(14px); border-bottom-color:var(--stroke-soft); }
  .logo{ font-family:"Fraunces",serif; font-style:italic; font-weight:400; font-size:1.18rem; text-decoration:none; color:var(--ink); display:flex; align-items:center; gap:.55em; }
  .logo .mk{ width:30px; height:30px; flex:0 0 auto; }
  .nav-links{ display:flex; align-items:center; gap:1.7rem; }
  .nav-links a{ font-size:.86rem; font-weight:500; color:var(--ink-soft); text-decoration:none; transition:color .2s; }
  .nav-links a:hover{ color:var(--gold); }
  .nav-links a:focus-visible{ outline:2px solid var(--gold); outline-offset:4px; border-radius:2px; }
  .nav-phone{ font-family:"Space Mono",monospace; font-size:.8rem; color:var(--gold); text-decoration:none; border:1px solid var(--stroke);
    border-radius:100px; padding:.5em 1em; transition:border-color .25s,box-shadow .25s; display:inline-flex; align-items:center; gap:.5em; }
  .nav-phone:hover{ border-color:var(--gold); box-shadow:0 0 0 1px var(--gold); }
  .nav-cta{ display:flex; align-items:center; gap:.6rem; }
  .nav-soc{ display:inline-flex; align-items:center; justify-content:center; width:34px; height:34px; border-radius:50%; border:1px solid var(--stroke); color:var(--gold); text-decoration:none; transition:border-color .25s,box-shadow .25s,color .2s; }
  .nav-soc:hover{ border-color:var(--gold); box-shadow:0 0 0 1px var(--gold); color:var(--gold-bright); }
  .nav-soc:focus-visible{ outline:2px solid var(--gold); outline-offset:3px; }
  .burger{ display:none; background:none; border:0; cursor:pointer; padding:.4em; }
  .burger span{ display:block; width:22px; height:2px; background:var(--ink); margin:4px 0; transition:.25s; }

  .btn{ font-size:.92rem; font-weight:600; text-decoration:none; padding:.85em 1.5em; border-radius:3px; display:inline-flex; align-items:center; gap:.6em;
    transition:transform .25s,box-shadow .25s,background .25s,border-color .25s,color .25s; }
  .btn.solid{ background:var(--gold); color:#241a08; }
  .btn.solid:hover{ background:var(--gold-bright); transform:translateY(-2px); box-shadow:0 14px 40px -16px var(--gold); }
  .btn.ghost{ border:1px solid var(--stroke); color:var(--ink); background:var(--card); font-family:"Space Mono",monospace; font-size:.84rem; }
  .btn.ghost:hover{ border-color:var(--gold); color:var(--gold); transform:translateY(-2px); }
  .btn:focus-visible{ outline:2px solid var(--gold); outline-offset:3px; }

  /* hero */
  .hero{ position:relative; z-index:2; max-width:var(--maxw); margin:0 auto; padding:clamp(7rem,16vh,11rem) max(20px,3vw) clamp(3rem,8vh,5rem);
    display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(2rem,5vw,4rem); align-items:center; }
  .hero-copy{ will-change:transform; }
  .eyebrow{ font-family:"Space Mono",monospace; font-size:.74rem; letter-spacing:.22em; text-transform:uppercase; color:var(--gold);
    display:flex; align-items:center; gap:.7em; margin-bottom:1.6rem; }
  .eyebrow::before{ content:""; width:26px; height:1px; background:var(--gold); }
  .hero h1{ font-size:clamp(2.6rem,6.2vw,4.6rem); line-height:1.02; font-weight:800; letter-spacing:-.02em; }
  .hero h1 .accent{ display:block; font-family:"Fraunces",serif; font-style:italic; font-weight:400; color:var(--gold); font-size:.62em; margin-top:.18em; }
  .hero .sub{ margin-top:1.7rem; font-size:clamp(1.02rem,2.4vw,1.18rem); line-height:1.6; color:var(--ink-soft); max-width:40ch; }
  .hero .sub b{ color:var(--ink); font-weight:500; }
  .hero .ctas{ margin-top:2.4rem; display:flex; flex-wrap:wrap; gap:.8rem; }
  .trust{ margin-top:2.6rem; font-family:"Space Mono",monospace; font-size:.72rem; color:var(--dim); display:flex; align-items:center; gap:.7em; flex-wrap:wrap; }
  .trust .dot{ width:5px; height:5px; border-radius:50%; background:var(--sage); }

  /* hero house art */
  .art{ position:relative; will-change:transform; }
  .portrait{ position:relative; width:100%; max-width:420px; margin-left:auto; aspect-ratio:4/5; border-radius:10px; overflow:hidden;
    border:1px solid var(--stroke); background:linear-gradient(160deg,var(--bg-2),var(--bg-1)); box-shadow:0 44px 90px -42px #000, 0 0 0 1px rgba(216,180,106,.05); }
  .portrait img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
  .portrait img.failed{ display:none; } .portrait img.failed ~ .pph{ display:flex; }
  .portrait .pframe{ position:absolute; inset:12px; border:1px solid rgba(216,180,106,.32); border-radius:6px; z-index:3; pointer-events:none; }
  .portrait .pph{ display:none; position:absolute; inset:0; flex-direction:column; align-items:center; justify-content:center; gap:.6rem; color:var(--gold);
    font-family:"Fraunces",serif; font-style:italic; font-size:3.6rem; background:radial-gradient(circle at 50% 40%, rgba(216,180,106,.14), transparent 60%); }
  .portrait .pph small{ font-family:"Space Mono",monospace; font-style:normal; font-size:.64rem; letter-spacing:.18em; text-transform:uppercase; color:var(--dim); }
  .portrait .pcap{ position:absolute; left:0; right:0; bottom:0; z-index:3; padding:1.6rem 1.3rem 1.1rem; display:flex; flex-direction:column; gap:.2rem;
    background:linear-gradient(transparent, rgba(8,6,4,.85)); }
  .portrait .pcap .pname{ font-family:"Fraunces",serif; font-style:italic; font-size:1.2rem; color:var(--ink); }
  .portrait .pcap .prole{ font-family:"Space Mono",monospace; font-size:.62rem; letter-spacing:.13em; text-transform:uppercase; color:var(--gold); }
  .pbadge{ position:absolute; z-index:4; display:flex; align-items:center; gap:.5em; font-family:"Space Mono",monospace; font-size:.68rem; color:var(--ink-soft);
    background:rgba(14,11,7,.85); backdrop-filter:blur(8px); border:1px solid var(--stroke); border-radius:100px; padding:.55em .9em; box-shadow:0 12px 30px -14px #000; }
  .pbadge b{ color:var(--gold); } .pbadge svg{ width:15px; height:15px; color:var(--gold); flex:0 0 auto; }
  .pbadge1{ top:20px; left:-14px; } .pbadge2{ bottom:88px; right:-16px; }
  @media (max-width:560px){ .pbadge1{ left:4px; } .pbadge2{ right:4px; } .portrait{ margin:0 auto; } }
  .draw{ stroke:var(--gold); stroke-width:1.4; fill:none; stroke-linecap:round; stroke-linejoin:round; stroke-dasharray:1; stroke-dashoffset:1; animation:draw 1.5s ease forwards; }
  @keyframes draw{ to{ stroke-dashoffset:0; } }
  .draw.thin{ stroke-width:1; opacity:.5; } .draw.bright{ stroke:var(--gold-bright); }
  .ncircle{ fill:var(--bg-0); stroke:var(--gold); stroke-width:1.4; opacity:0; animation:nodeIn .5s ease forwards; }
  @keyframes nodeIn{ to{ opacity:1; } }
  .curve{ stroke:var(--sage); stroke-width:1.4; fill:none; stroke-linecap:round; stroke-dasharray:1; stroke-dashoffset:1; animation:draw 1.6s ease .8s forwards; opacity:.85; }
  .dim-txt{ fill:var(--dim); font-family:"Space Mono",monospace; font-size:9px; letter-spacing:.05em; opacity:0; animation:nodeIn .6s ease 1.4s forwards; }

  /* section + scroll transition primitives */
  .section{ position:relative; z-index:2; max-width:var(--maxw); margin:0 auto; padding:clamp(4.5rem,11vh,7.5rem) max(20px,3vw); scroll-margin-top:74px; }
  .divider{ position:relative; z-index:2; max-width:var(--maxw); margin:0 auto; height:1px; transform:scaleX(0); transform-origin:center;
    background:linear-gradient(90deg,transparent,var(--gold),transparent); }
  .divider .dlabel{ position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); background:var(--bg-0); padding:0 1rem;
    font-family:"Space Mono",monospace; font-size:.6rem; letter-spacing:.24em; text-transform:uppercase; color:var(--dim); white-space:nowrap; }
  .bgnum{ position:absolute; top:-.3em; right:max(20px,3vw); font-weight:800; font-size:clamp(7rem,20vw,16rem); line-height:.8; color:var(--gold); opacity:.04; z-index:-1; pointer-events:none; will-change:transform; font-variant-numeric:tabular-nums; }
  .shead{ display:flex; align-items:baseline; gap:.9em; margin-bottom:1rem; font-family:"Space Mono",monospace; font-size:.74rem; letter-spacing:.2em; text-transform:uppercase; color:var(--gold); }
  .shead .ix{ color:var(--dim); }
  .lead{ font-size:clamp(1.7rem,4vw,2.6rem); line-height:1.18; font-weight:800; letter-spacing:-.02em; max-width:22ch; margin-bottom:.5rem; }
  .lead em{ font-family:"Fraunces",serif; font-style:italic; font-weight:400; color:var(--gold); }
  .ptext{ color:var(--ink-soft); font-size:1.04rem; line-height:1.7; max-width:60ch; } .ptext + .ptext{ margin-top:1.1rem; }

  [data-anim]{ will-change:transform,opacity; }

  .about{ display:grid; grid-template-columns:1.3fr .85fr; gap:clamp(2rem,5vw,4rem); align-items:start; }
  .photo{ position:relative; border-radius:6px; overflow:hidden; border:1px solid var(--stroke); aspect-ratio:3/4; background:linear-gradient(160deg,var(--bg-2),var(--bg-1)); }
  .photo img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
  .photo .frame{ position:absolute; inset:10px; border:1px solid rgba(216,180,106,.25); border-radius:3px; pointer-events:none; z-index:2; }
  .photo .ph{ display:none; position:absolute; inset:0; align-items:center; justify-content:center; flex-direction:column; gap:.6rem; color:var(--faint); font-family:"Space Mono",monospace; font-size:.72rem; letter-spacing:.1em; text-align:center; padding:1rem; }
  .photo img.failed{ display:none; } .photo img.failed ~ .ph{ display:flex; }
  .quote{ font-family:"Fraunces",serif; font-style:italic; font-weight:300; font-size:clamp(1.3rem,2.6vw,1.7rem); line-height:1.4; color:var(--ink); margin:2rem 0; padding-left:1.3rem; border-left:2px solid var(--gold); }
  .about-ctas{ margin-top:1.8rem; display:flex; flex-wrap:wrap; gap:.8rem; }
  .about-art{ position:relative; aspect-ratio:1/.92; display:flex; align-items:center; justify-content:center; padding:.5rem; margin-top:.5rem;
    border:1px solid var(--stroke-soft); border-radius:8px; background:linear-gradient(160deg, rgba(216,180,106,.03), transparent 60%); }
  .about-art svg{ width:100%; height:100%; overflow:visible; }
  .about-art .aa-glow{ position:absolute; inset:14%; border-radius:50%; background:radial-gradient(circle, rgba(216,180,106,.12), transparent 68%); filter:blur(14px); z-index:0; }

  .stats{ display:grid; grid-template-columns:repeat(4,1fr); gap:1px; margin-top:clamp(3rem,7vh,5rem); background:var(--stroke-soft); border:1px solid var(--stroke-soft); border-radius:6px; overflow:hidden; }
  .stat{ background:var(--bg-0); padding:1.8rem 1.4rem; }
  .stat .n{ font-size:clamp(2rem,4.5vw,2.9rem); font-weight:800; letter-spacing:-.02em; color:var(--gold); font-variant-numeric:tabular-nums; line-height:1; }
  .stat .l{ margin-top:.7rem; font-size:.86rem; color:var(--dim); line-height:1.4; }

  .growthband{ position:relative; z-index:2; max-width:var(--maxw); margin:0 auto; padding:clamp(2rem,5vh,4rem) max(20px,3vw); }
  .growthband .gb-head{ text-align:center; margin-bottom:1.5rem; }
  .growthband .gb-head .k{ font-family:"Space Mono",monospace; font-size:.72rem; letter-spacing:.2em; text-transform:uppercase; color:var(--gold); }
  .growthband .gb-head h3{ font-size:clamp(1.5rem,3.4vw,2.2rem); font-weight:800; letter-spacing:-.02em; margin-top:.6rem; }
  .growthband .gb-head h3 em{ font-family:"Fraunces",serif; font-style:italic; font-weight:400; color:var(--gold); }
  .gb-svg{ width:100%; height:auto; overflow:visible; display:block; }
  .gb-curve{ stroke:var(--gold); stroke-width:2; fill:none; stroke-linecap:round; stroke-dasharray:1; stroke-dashoffset:1; }
  .gb-area{ fill:url(#gbfill); opacity:0; }
  .gb-base{ stroke:var(--stroke); stroke-width:1; stroke-dasharray:3 5; }
  .gb-node circle{ fill:var(--bg-0); stroke:var(--gold); stroke-width:2; }
  .gb-node text{ fill:var(--ink-soft); font-family:"Space Mono",monospace; font-size:12px; letter-spacing:.04em; text-anchor:middle; }
  .gb-node{ opacity:0; transition:opacity .4s ease; }

  .svc-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(290px,1fr)); gap:1.1rem; margin-top:2.8rem; }
  .svc{ padding:2rem 1.8rem; border:1px solid var(--stroke-soft); border-radius:6px; background:var(--card); transition:border-color .3s,background .3s,box-shadow .3s; display:flex; flex-direction:column; }
  .svc:hover{ border-color:var(--gold); background:var(--card-hi); box-shadow:0 24px 60px -34px var(--gold); }
  .svc .ic{ width:42px; height:42px; margin-bottom:1.2rem; color:var(--gold); }
  .svc h3{ font-size:1.3rem; font-weight:700; letter-spacing:-.01em; margin-bottom:.7rem; }
  .svc p{ color:var(--ink-soft); font-size:.96rem; line-height:1.6; margin-bottom:1.4rem; }
  .svc .more{ margin-top:auto; font-family:"Space Mono",monospace; font-size:.78rem; color:var(--gold); text-decoration:none; display:inline-flex; align-items:center; gap:.5em; transition:gap .25s; }
  .svc .more:hover{ gap:.9em; } .svc.flat{ background:transparent; }
  .benefits{ display:grid; grid-template-columns:1fr 1fr; gap:.7rem 2.4rem; margin-top:2.6rem; }
  .benefits li{ list-style:none; display:flex; gap:.7em; align-items:flex-start; color:var(--ink-soft); font-size:.96rem; line-height:1.5; padding:.4rem 0; }
  .benefits li::before{ content:""; margin-top:.5em; width:6px; height:6px; flex:0 0 auto; border-radius:50%; background:var(--gold); box-shadow:0 0 7px rgba(216,180,106,.5); }

  /* process steps */
  .steps{ position:relative; display:grid; grid-template-columns:repeat(5,1fr); gap:1.2rem; margin-top:3rem; }
  .stepline{ position:absolute; top:18px; left:6%; right:6%; height:1px; z-index:0;
    background:linear-gradient(90deg,transparent,var(--gold) 12%,var(--gold) 88%,transparent); opacity:.5; }
  .step{ position:relative; z-index:1; }
  .step .snum{ width:38px; height:38px; border-radius:50%; display:flex; align-items:center; justify-content:center; margin-bottom:1.1rem;
    font-family:"Space Mono",monospace; font-size:.95rem; color:var(--gold); background:var(--bg-0); border:1.5px solid var(--gold); box-shadow:0 0 0 5px var(--bg-0), 0 0 18px -4px rgba(216,180,106,.5); }
  .step h4{ font-size:1.05rem; font-weight:700; margin-bottom:.5rem; }
  .step p{ color:var(--ink-soft); font-size:.9rem; line-height:1.55; }
  @media (max-width:860px){
    .steps{ grid-template-columns:1fr; gap:0; }
    .stepline{ top:6%; bottom:6%; left:18px; right:auto; width:1px; height:auto;
      background:linear-gradient(180deg,transparent,var(--gold) 8%,var(--gold) 92%,transparent); }
    .step{ display:grid; grid-template-columns:38px 1fr; gap:1rem 1.2rem; padding-bottom:1.8rem; align-items:start; }
    .step .snum{ margin-bottom:0; } .step h4{ margin-top:.4rem; } .step h4, .step p{ grid-column:2; }
  }

  /* testimonials */
  .placeholder-note{ font-family:"Space Mono",monospace; font-size:.74rem; letter-spacing:.04em; color:var(--dim);
    border-left:2px solid var(--stroke); padding-left:.9rem; }
  .testi-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:1.1rem; margin-top:2.4rem; }
  .testi{ display:flex; flex-direction:column; padding:1.8rem; border:1px solid var(--stroke-soft); border-radius:8px; background:var(--card);
    transition:border-color .3s,transform .3s; }
  .testi:hover{ border-color:var(--stroke); transform:translateY(-3px); }
  .testi .stars{ color:var(--gold); letter-spacing:.18em; font-size:.95rem; margin-bottom:1rem; }
  .testi blockquote{ font-family:"Fraunces",serif; font-style:italic; font-weight:300; font-size:1.12rem; line-height:1.5; color:var(--ink); margin-bottom:1.4rem; }
  .testi figcaption{ display:flex; align-items:center; gap:.8rem; margin-top:auto; }
  .testi .tav{ width:40px; height:40px; flex:0 0 auto; border-radius:50%; display:flex; align-items:center; justify-content:center;
    font-family:"Fraunces",serif; font-style:italic; color:var(--gold); font-size:1rem; background:linear-gradient(150deg,var(--bg-2),var(--bg-1)); border:1px solid var(--stroke); }
  .testi .tmeta{ font-size:.84rem; color:var(--dim); line-height:1.4; } .testi .tmeta strong{ display:block; color:var(--ink); font-weight:600; }
  .testi .tmeta em{ color:var(--dim); font-style:normal; font-family:"Space Mono",monospace; font-size:.68rem; }

  .team-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:1.1rem; margin-top:2.8rem; }
  .member{ padding:1.6rem; border:1px solid var(--stroke-soft); border-radius:6px; background:var(--card); transition:border-color .3s; }
  .member:hover{ border-color:var(--stroke); }
  .member .av{ position:relative; width:64px; height:64px; border-radius:50%; overflow:hidden; border:1px solid var(--stroke); background:linear-gradient(150deg,var(--bg-2),var(--bg-1)); display:flex; align-items:center; justify-content:center; font-family:"Fraunces",serif; font-style:italic; color:var(--gold); font-size:1.4rem; margin-bottom:1rem; }
  .member .av img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
  .member .role{ font-family:"Space Mono",monospace; font-size:.68rem; letter-spacing:.1em; text-transform:uppercase; color:var(--gold); margin-bottom:.5rem; }
  .member h4{ font-size:1.08rem; font-weight:600; margin-bottom:.4rem; }
  .member .meta{ color:var(--dim); font-size:.84rem; line-height:1.6; }
  .member .meta a{ color:var(--ink-soft); text-decoration:none; border-bottom:1px solid var(--stroke); } .member .meta a:hover{ color:var(--gold); border-color:var(--gold); }
  .member .tel{ font-family:"Space Mono",monospace; color:var(--ink-soft); }

  .news-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:1.1rem; margin-top:2.8rem; }
  .article{ border:1px solid var(--stroke-soft); border-radius:6px; overflow:hidden; background:var(--card); text-decoration:none; color:inherit; display:flex; flex-direction:column; transition:border-color .3s; }
  .article:hover{ border-color:var(--gold); }
  .article .thumb{ aspect-ratio:16/10; background:linear-gradient(150deg,var(--bg-2),var(--bg-1)); position:relative; overflow:hidden; }
  .article .thumb img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:0; }
  .article .thumb::after{ content:""; position:absolute; inset:0; z-index:1; background:linear-gradient(to top, rgba(14,11,7,.55), transparent 45%), radial-gradient(70% 70% at 70% 20%, rgba(216,180,106,.10), transparent 70%); }
  .article .thumb .tag{ position:absolute; left:.8rem; top:.8rem; z-index:2; font-family:"Space Mono",monospace; font-size:.62rem; letter-spacing:.1em; text-transform:uppercase; color:var(--gold); border:1px solid var(--stroke); border-radius:100px; padding:.3em .7em; background:rgba(14,11,7,.6); }
  .article .body{ padding:1.2rem 1.3rem 1.4rem; display:flex; flex-direction:column; flex:1; }
  .article h4{ font-size:1rem; font-weight:600; line-height:1.35; margin-bottom:.8rem; }
  .article .read{ margin-top:auto; font-family:"Space Mono",monospace; font-size:.74rem; color:var(--gold); display:inline-flex; align-items:center; gap:.5em; }

  .partner{ display:flex; align-items:center; gap:2rem; flex-wrap:wrap; justify-content:space-between; border:1px solid var(--stroke-soft); border-radius:8px; padding:2rem 2.2rem; background:var(--card); margin-top:.5rem; }
  .partner .ptxt{ max-width:48ch; } .partner .ptxt .k{ font-family:"Space Mono",monospace; font-size:.72rem; letter-spacing:.16em; text-transform:uppercase; color:var(--gold); margin-bottom:.6rem; }
  .partner .ptxt p{ color:var(--ink-soft); font-size:.98rem; line-height:1.6; }
  .partner .logo-sms{ font-family:"Fraunces",serif; font-style:italic; font-size:1.5rem; color:var(--gold); white-space:nowrap; text-decoration:none; }

  .contact-wrap{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(2rem,5vw,4rem); align-items:start; margin-top:2.8rem; }
  .form{ display:flex; flex-direction:column; gap:1rem; }
  .field label{ display:block; font-family:"Space Mono",monospace; font-size:.7rem; letter-spacing:.1em; text-transform:uppercase; color:var(--dim); margin-bottom:.5rem; }
  .field input, .field textarea{ width:100%; background:var(--bg-1); border:1px solid var(--stroke-soft); border-radius:4px; padding:.85em 1em; color:var(--ink); font-family:inherit; font-size:.96rem; transition:border-color .25s,box-shadow .25s; }
  .field textarea{ min-height:110px; resize:vertical; }
  .field input:focus, .field textarea:focus{ outline:0; border-color:var(--gold); box-shadow:0 0 0 1px var(--gold); }
  .form .note{ font-size:.78rem; color:var(--dim); line-height:1.5; }
  .contact-info{ display:flex; flex-direction:column; gap:1.6rem; }
  .info-block .k{ font-family:"Space Mono",monospace; font-size:.7rem; letter-spacing:.14em; text-transform:uppercase; color:var(--gold); margin-bottom:.6rem; }
  .info-block .big{ font-family:"Space Mono",monospace; font-size:1.5rem; color:var(--ink); text-decoration:none; } .info-block .big:hover{ color:var(--gold); }
  .info-block p{ color:var(--ink-soft); font-size:.94rem; line-height:1.65; }
  .info-block .office{ margin-bottom:1rem; } .info-block .office strong{ color:var(--ink); font-weight:600; display:block; margin-bottom:.2rem; }
  .office-map{ width:100%; height:190px; border:1px solid var(--stroke); border-radius:6px; margin-top:.7rem; display:block; }
  .info-grid{ display:grid; grid-template-columns:1fr 1fr; gap:1.2rem; }

  footer{ position:relative; z-index:2; border-top:1px solid var(--stroke-soft); margin-top:2rem; }
  .foot-inner{ max-width:var(--maxw); margin:0 auto; padding:3rem max(20px,3vw); display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:2rem; }
  .foot-inner .reg{ font-size:.8rem; color:var(--dim); line-height:1.7; max-width:50ch; } .foot-inner .reg strong{ color:var(--ink-soft); }
  .foot-col h5{ font-family:"Space Mono",monospace; font-size:.7rem; letter-spacing:.14em; text-transform:uppercase; color:var(--gold); margin-bottom:1rem; }
  .foot-col a, .foot-col p{ display:block; color:var(--ink-soft); font-size:.88rem; text-decoration:none; margin-bottom:.5rem; line-height:1.5; } .foot-col a:hover{ color:var(--gold); }
  .foot-bottom{ border-top:1px solid var(--stroke-soft); }
  .foot-bottom-inner{ max-width:var(--maxw); margin:0 auto; padding:1.4rem max(20px,3vw); display:flex; justify-content:space-between; gap:1rem; flex-wrap:wrap; font-family:"Space Mono",monospace; font-size:.72rem; color:var(--faint); }
  .foot-bottom-inner a{ color:var(--dim); text-decoration:none; } .foot-bottom-inner a:hover{ color:var(--gold); }

  @media (max-width:920px){
    .hero{ grid-template-columns:1fr; gap:2.4rem; } .art{ max-width:440px; margin:0 auto; width:100%; order:-1; }
    .about{ grid-template-columns:1fr; } .photo{ max-width:340px; }
    .contact-wrap{ grid-template-columns:1fr; } .foot-inner{ grid-template-columns:1fr; } .stats{ grid-template-columns:repeat(2,1fr); }
  }
  @media (max-width:680px){
    .nav-links{ position:fixed; inset:64px 0 auto 0; flex-direction:column; align-items:flex-start; gap:0; background:rgba(14,11,7,.97); backdrop-filter:blur(14px); padding:1rem max(20px,3vw) 1.5rem; border-bottom:1px solid var(--stroke-soft); transform:translateY(-120%); transition:transform .3s; }
    .nav-links.open{ transform:none; } .nav-links a{ padding:.9rem 0; width:100%; border-bottom:1px solid var(--stroke-soft); font-size:1rem; }
    .nav-phone,.nav-soc{ display:none; } .burger{ display:block; } .benefits{ grid-template-columns:1fr; } .info-grid{ grid-template-columns:1fr; }
  }
  /* reduced motion: reveal everything, no scrubbing */
  body.reduced [data-anim]{ opacity:1 !important; transform:none !important; clip-path:none !important; }
  body.reduced .divider{ transform:scaleX(1) !important; }
  body.reduced .gb-curve{ stroke-dashoffset:0 !important; } body.reduced .gb-node, body.reduced .gb-area{ opacity:1 !important; }
  body.reduced .spine .fill{ transform:scaleY(1) !important; }
  @media (prefers-reduced-motion:reduce){ html{ scroll-behavior:auto; } }

  /* ===== podstránky (multi-page) ===== */
  .nav-links a.active{ color:var(--gold); }
  .subhero{ position:relative; z-index:2; max-width:var(--maxw); margin:0 auto; padding:clamp(8rem,18vh,12rem) max(20px,3vw) clamp(2.5rem,6vh,4rem); }
  .subhero .eyebrow{ margin-bottom:1.4rem; }
  .subhero h1{ font-size:clamp(2.2rem,5.2vw,3.7rem); line-height:1.06; font-weight:800; letter-spacing:-.02em; max-width:20ch; }
  .subhero h1 em{ font-family:"Fraunces",serif; font-style:italic; font-weight:400; color:var(--gold); }
  .subhero .sub{ margin-top:1.5rem; font-size:clamp(1.02rem,2.2vw,1.16rem); line-height:1.65; color:var(--ink-soft); max-width:62ch; }
  .subhero .ctas{ margin-top:2.1rem; display:flex; flex-wrap:wrap; gap:.8rem; }

  /* obsahové karty (kategorie pojištění apod.) */
  .cards{ display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:1.3rem; margin-top:2.4rem; }
  .card{ padding:1.8rem; border:1px solid var(--stroke-soft); border-radius:6px; background:var(--card); transition:border-color .3s,transform .3s; }
  .card:hover{ border-color:var(--stroke); transform:translateY(-3px); }
  .card .ic{ width:30px; height:30px; color:var(--gold); margin-bottom:1rem; }
  .card h3{ font-size:1.18rem; font-weight:600; margin-bottom:.6rem; }
  .card p{ color:var(--ink-soft); font-size:.96rem; line-height:1.62; }

  /* kalkulačky (hypotéky) */
  .calc-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(300px,1fr)); gap:1.5rem; margin-top:2.4rem; align-items:start; }
  .calc{ padding:1.8rem; border:1px solid var(--stroke); border-radius:8px; background:var(--card-hi); display:flex; flex-direction:column; gap:1.05rem; }
  .calc h3{ font-size:1.1rem; font-weight:600; }
  .calc .cfield label{ display:block; font-family:"Space Mono",monospace; font-size:.66rem; letter-spacing:.1em; text-transform:uppercase; color:var(--gold); margin-bottom:.45rem; display:flex; justify-content:space-between; }
  .calc input[type=text], .calc input[type=month], .calc select{ width:100%; background:var(--bg-1); border:1px solid var(--stroke-soft); border-radius:4px; color:var(--ink); padding:.7em .9em; font:inherit; font-size:.95rem; color-scheme:dark; }
  .calc input[type=text]:focus, .calc input[type=month]:focus, .calc select:focus{ outline:none; border-color:var(--gold); }
  .calc input[type=range]{ width:100%; accent-color:var(--gold); }
  .calc .result{ border-top:1px solid var(--stroke-soft); padding-top:1.05rem; }
  .calc .result .rk{ font-family:"Space Mono",monospace; font-size:.64rem; letter-spacing:.1em; text-transform:uppercase; color:var(--dim); }
  .calc .result .rv{ font-family:"Space Mono",monospace; font-weight:700; font-size:1.7rem; color:var(--gold); margin-top:.2rem; }
  .calc .disclaimer{ font-size:.72rem; color:var(--dim); line-height:1.5; }
  .calc p.desc{ color:var(--ink-soft); font-size:.92rem; line-height:1.6; }
  .calc input[type=number]{ width:100%; background:var(--bg-1); border:1px solid var(--stroke-soft); border-radius:4px; color:var(--ink); padding:.7em .9em; font:inherit; font-size:.95rem; color-scheme:dark; }
  .calc input[type=number]:focus{ outline:none; border-color:var(--gold); }
  /* poptávkové formuláře (pojištění, investice) */
  .inq{ display:flex; flex-direction:column; gap:.95rem; }
  .chk-grid{ display:grid; gap:.55rem; }
  .chk{ display:flex; align-items:flex-start; gap:.6em; font-size:.9rem; line-height:1.4; color:var(--ink-soft); cursor:pointer; }
  .chk input{ accent-color:var(--gold); width:16px; height:16px; margin-top:.12em; flex:0 0 auto; }
  .chk:hover{ color:var(--ink); }

  /* vložená mapa — placeholder do udělení souhlasu */
  .map-wrap{ margin-top:.7rem; }
  .map-consent{ border:1px dashed var(--stroke); border-radius:6px; padding:1rem; background:var(--card);
    display:flex; flex-direction:column; gap:.7rem; align-items:flex-start; }
  .map-consent span{ font-size:.82rem; color:var(--dim); line-height:1.5; }
  .map-consent .btn{ padding:.55em 1.1em; }
  .map-wrap .office-map{ margin-top:0; }

  /* cookie consent banner */
  .cookie-banner{ position:fixed; left:0; right:0; bottom:0; z-index:60; padding:0 max(14px,2vw) max(14px,2vw);
    transform:translateY(140%); opacity:0; pointer-events:none; transition:transform .45s cubic-bezier(.22,1,.36,1),opacity .45s; }
  .cookie-banner.show{ transform:translateY(0); opacity:1; pointer-events:auto; }
  .cookie-inner{ max-width:var(--maxw); margin:0 auto; display:flex; align-items:center; gap:1.6rem;
    background:rgba(20,15,8,.94); backdrop-filter:blur(16px); border:1px solid var(--stroke); border-radius:10px;
    padding:1.1rem 1.4rem; box-shadow:0 24px 60px -24px #000; }
  .cookie-text strong{ display:block; color:var(--ink); font-weight:600; margin-bottom:.25rem; font-size:.96rem; }
  .cookie-text p{ font-size:.84rem; color:var(--ink-soft); line-height:1.55; max-width:70ch; }
  .cookie-text a{ color:var(--gold); text-decoration:underline; text-underline-offset:2px; }
  .cookie-actions{ display:flex; gap:.7rem; flex:0 0 auto; }
  .cookie-actions .btn{ padding:.7em 1.2em; white-space:nowrap; }
  body.reduced .cookie-banner{ transition:none; }
  @media (max-width:680px){
    .cookie-inner{ flex-direction:column; align-items:stretch; gap:1rem; padding:1.1rem; }
    .cookie-actions{ flex-direction:column-reverse; }
    .cookie-actions .btn{ justify-content:center; }
  }
