@import url("../fonts/fonts.css");

/* ============================================================================
   DESIGN SYSTEM — "Estate Intelligence"
   ============================================================================ */
:root{
  --ink:#100d0b; --ink-2:#16120f; --panel:#1c1714; --panel-2:#221b17;
  --line:#352a23; --line-2:#473930;
  --cream:#f3ead9; --paper:#ece2cf;
  --txt:#e9ddc8; --txt-dim:#b6a890; --txt-mute:#897c68;
  --gold:#d2a857; --gold-2:#e6c885; --gold-deep:#a07c34;
  --wine:#8e3344; --wine-2:#b14a5c;
  --sage:#86946f; --sage-2:#a3b189;
  --terra:#c4683f;
  --sky:#6f9bb3;
  --ok:#7fa66a; --warn:#d49a3f; --bad:#b9485a;
  --radius:18px; --radius-sm:11px;
  --shadow:0 24px 60px -28px rgba(0,0,0,.8);
  --shadow-lg:0 40px 100px -30px rgba(0,0,0,.85);
  --maxw:1280px;
  --serif:"Fraunces",Georgia,"Times New Roman",serif;
  --sans:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:84px;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
body{
  font-family:var(--sans); color:var(--txt); background:var(--ink);
  line-height:1.6; overflow-x:hidden;
  background-image:
    radial-gradient(1100px 700px at 82% 8%, rgba(210,168,87,.07), transparent 58%),
    radial-gradient(900px 700px at 8% 60%, rgba(142,51,68,.06), transparent 55%),
    radial-gradient(1000px 800px at 90% 92%, rgba(134,148,111,.05), transparent 60%);
  background-attachment:fixed;
}
/* consistent ambient whisper on every band so the material reads as one world */
.band::after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:radial-gradient(900px 400px at 50% 0%,rgba(210,168,87,.022),transparent 60%)}
::selection{background:var(--gold);color:#1a140c}
img{max-width:100%;display:block}
a{color:var(--gold-2);text-decoration:none}
.serif{font-family:var(--serif)}
.tnum{font-variant-numeric:tabular-nums}

/* scrollbar */
::-webkit-scrollbar{width:12px;height:12px}
::-webkit-scrollbar-track{background:var(--ink-2)}
::-webkit-scrollbar-thumb{background:var(--line-2);border-radius:8px;border:3px solid var(--ink-2)}
::-webkit-scrollbar-thumb:hover{background:var(--gold-deep)}

/* ============================================================================
   NAV
   ============================================================================ */
.nav{
  position:fixed;top:0;left:0;right:0;z-index:60;
  display:flex;align-items:center;justify-content:space-between;
  padding:14px clamp(16px,4vw,40px);
  background:linear-gradient(180deg,rgba(16,13,11,.92),rgba(16,13,11,.55) 70%,transparent);
  backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
  transition:background .3s,border-color .3s;border-bottom:1px solid transparent;
}
.nav.solid{background:rgba(16,13,11,.94);border-bottom:1px solid var(--line)}
.nav-brand{display:flex;align-items:center;gap:11px;font-family:var(--serif);font-weight:600;letter-spacing:.2px}
.nav-brand .mark{width:34px;height:34px;border-radius:9px;display:grid;place-items:center;
  background:linear-gradient(145deg,var(--gold),var(--gold-deep));color:#1a140c;font-weight:700;font-size:18px;box-shadow:0 6px 18px -6px var(--gold-deep)}
.nav-brand small{display:block;font-family:var(--sans);font-weight:500;font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--txt-mute);margin-top:1px}
.nav-links{display:flex;gap:4px;align-items:center}
.nav-links a{
  color:var(--txt-dim);font-size:13px;font-weight:500;padding:8px 13px;border-radius:9px;
  transition:.2s;position:relative;white-space:nowrap;
}
.nav-links a:hover{color:var(--txt);background:rgba(255,255,255,.04)}
.nav-links a.active{color:var(--gold-2)}
.nav-links a.active::after{content:"";position:absolute;left:13px;right:13px;bottom:3px;height:2px;border-radius:2px;background:var(--gold)}
.nav-cta{background:var(--gold);color:#1a140c !important;font-weight:600 !important;padding:9px 16px !important;border-radius:10px}
.nav-cta:hover{background:var(--gold-2) !important}
.nav-toggle{display:none;background:none;border:1px solid var(--line-2);color:var(--txt);border-radius:9px;padding:8px 11px;cursor:pointer;font-size:16px}
@media(max-width:1080px){
  .nav-links{position:fixed;inset:64px 0 auto 0;flex-direction:column;align-items:stretch;gap:2px;
    background:rgba(16,13,11,.98);padding:14px;border-bottom:1px solid var(--line);transform:translateY(-130%);transition:transform .35s;max-height:80vh;overflow:auto}
  .nav-links.open{transform:none}
  .nav-links a{padding:13px}
  .nav-toggle{display:block}
}

/* ============================================================================
   LAYOUT
   ============================================================================ */
section{position:relative}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 clamp(16px,4vw,40px)}
.band{padding:clamp(60px,9vw,120px) 0}
.eyebrow{display:inline-flex;align-items:center;gap:9px;font-size:11.5px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);margin-bottom:18px}
.eyebrow::before{content:"";width:26px;height:1.5px;background:var(--gold);opacity:.7}
.h-sec{font-family:var(--serif);font-weight:600;font-size:clamp(30px,4.6vw,52px);line-height:1.04;letter-spacing:-.01em;color:#f6efe0}
.sub-sec{color:var(--txt-dim);font-size:clamp(15px,1.6vw,18px);max-width:62ch;margin-top:16px;line-height:1.65}
.sec-head{margin-bottom:46px;max-width:820px}

/* reveal */
.reveal{opacity:0;transform:translateY(26px);transition:opacity .8s cubic-bezier(.2,.7,.2,1),transform .8s cubic-bezier(.2,.7,.2,1)}
.reveal.in{opacity:1;transform:none}
.reveal[data-d="1"]{transition-delay:.08s}.reveal[data-d="2"]{transition-delay:.16s}
.reveal[data-d="3"]{transition-delay:.24s}.reveal[data-d="4"]{transition-delay:.32s}

/* ============================================================================
   HERO
   ============================================================================ */
.hero{min-height:100svh;display:flex;flex-direction:column;justify-content:flex-end;position:relative;overflow:hidden;padding-bottom:clamp(40px,6vw,72px)}
.hero-bg{position:absolute;inset:0;z-index:0}
.hero-bg img{width:100%;height:100%;object-fit:cover;transform:scale(1.06);animation:kenburns 26s ease-in-out infinite alternate}
@keyframes kenburns{from{transform:scale(1.06) translateY(0)}to{transform:scale(1.14) translateY(-2%)}}
.hero-bg::after{content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(16,13,11,.55) 0%,rgba(16,13,11,.2) 32%,rgba(16,13,11,.55) 66%,rgba(16,13,11,.97) 100%),
             linear-gradient(90deg,rgba(16,13,11,.7),transparent 55%)}
.hero-inner{position:relative;z-index:2;max-width:var(--maxw);margin:0 auto;width:100%;padding:0 clamp(16px,4vw,40px)}
.hero-badges{display:flex;flex-wrap:wrap;gap:9px;margin-bottom:22px}
.badge{display:inline-flex;align-items:center;gap:7px;font-size:12px;font-weight:600;letter-spacing:.03em;
  padding:7px 13px;border-radius:100px;background:rgba(28,23,20,.66);border:1px solid var(--line-2);backdrop-filter:blur(8px);color:var(--txt-dim)}
.badge .dot{width:7px;height:7px;border-radius:50%}
.dot.gold{background:var(--gold)}.dot.wine{background:var(--wine-2)}.dot.sage{background:var(--sage-2)}
.hero h1{font-family:var(--serif);font-weight:600;font-size:clamp(44px,8vw,104px);line-height:.95;letter-spacing:-.02em;color:#f7f0e2;text-shadow:0 4px 40px rgba(0,0,0,.5)}
.hero h1 em{font-style:italic;color:var(--gold-2)}
.hero-loc{font-size:clamp(15px,2vw,21px);color:var(--txt-dim);margin-top:18px;font-weight:500;letter-spacing:.01em}
.hero-loc b{color:var(--txt)}
.hero-tagline{margin-top:22px;max-width:60ch;font-size:clamp(15px,1.8vw,19px);color:var(--cream);line-height:1.6}
.hero-tagline b{color:var(--gold-2);font-weight:600}
.hero-cta{display:flex;flex-wrap:wrap;gap:13px;margin-top:34px}
.btn{display:inline-flex;align-items:center;gap:9px;font-family:var(--sans);font-weight:600;font-size:14.5px;
  padding:14px 24px;border-radius:12px;cursor:pointer;border:1px solid transparent;transition:.22s;letter-spacing:.01em}
.btn-gold{background:var(--gold);color:#1a140c;box-shadow:0 12px 30px -12px var(--gold-deep)}
.btn-gold:hover{background:var(--gold-2);transform:translateY(-2px)}
.btn-ghost{background:rgba(28,23,20,.5);border-color:var(--line-2);color:var(--txt);backdrop-filter:blur(8px)}
.btn-ghost:hover{border-color:var(--gold);color:var(--gold-2)}
.scroll-cue{position:absolute;bottom:22px;left:50%;transform:translateX(-50%);z-index:3;color:var(--txt-mute);font-size:11px;letter-spacing:.2em;text-transform:uppercase;display:flex;flex-direction:column;align-items:center;gap:8px;opacity:.8}
.scroll-cue .line{width:1px;height:42px;background:linear-gradient(var(--gold),transparent);animation:cue 2s ease-in-out infinite}
@keyframes cue{0%,100%{opacity:.3;transform:scaleY(.6)}50%{opacity:1;transform:scaleY(1)}}

/* hero stat ribbon */
.ribbon{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;margin-top:46px;background:var(--line);border:1px solid var(--line);border-radius:14px;overflow:hidden;backdrop-filter:blur(8px)}
.ribbon .cell{background:rgba(22,18,15,.72);padding:18px 20px}
.ribbon .num{font-family:var(--serif);font-weight:600;font-size:clamp(22px,3vw,30px);color:#f6efe0;line-height:1}
.ribbon .lab{font-size:11.5px;color:var(--txt-mute);margin-top:7px;letter-spacing:.04em;text-transform:uppercase}
@media(max-width:720px){.ribbon{grid-template-columns:repeat(2,1fr)}}

/* ============================================================================
   ALERT / REFRAME
   ============================================================================ */
.reframe-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:8px}
@media(max-width:860px){.reframe-grid{grid-template-columns:1fr}}
.reframe-card{background:linear-gradient(160deg,var(--panel),var(--ink-2));border:1px solid var(--line);border-radius:var(--radius);padding:30px;position:relative;overflow:hidden}
.reframe-card::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px}
.reframe-card.a::before{background:var(--wine)}.reframe-card.b::before{background:var(--sage)}
.reframe-card .tag{font-size:11.5px;font-weight:700;letter-spacing:.13em;text-transform:uppercase;color:var(--txt-mute)}
.reframe-card h3{font-family:var(--serif);font-size:25px;font-weight:600;color:#f4ecdc;margin:10px 0 12px;line-height:1.15}
.reframe-card p{color:var(--txt-dim);font-size:15px}
.reframe-card p b{color:var(--cream)}

/* ============================================================================
   KPI GRID
   ============================================================================ */
.kpi-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
@media(max-width:980px){.kpi-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:520px){.kpi-grid{grid-template-columns:1fr}}
.kpi{background:linear-gradient(165deg,var(--panel),var(--ink-2));border:1px solid var(--line);border-radius:var(--radius-sm);padding:22px;transition:.25s;position:relative;overflow:hidden}
.kpi:hover{border-color:var(--gold-deep);transform:translateY(-3px);box-shadow:var(--shadow)}
.kpi .k{font-size:12px;color:var(--txt-mute);font-weight:600;letter-spacing:.03em;text-transform:uppercase;min-height:28px}
.kpi .v{font-family:var(--serif);font-weight:600;font-size:clamp(26px,3.3vw,34px);color:#f6efe0;line-height:1;margin:12px 0 8px}
.kpi .s{font-size:12.5px;color:var(--txt-dim)}
.kpi::after{content:"";position:absolute;right:-30px;bottom:-30px;width:90px;height:90px;border-radius:50%;background:radial-gradient(var(--gold),transparent 70%);opacity:.07}

/* ============================================================================
   GENERIC PANEL / CARD
   ============================================================================ */
.panel{background:linear-gradient(165deg,var(--panel),var(--ink-2));border:1px solid var(--line);border-radius:var(--radius);padding:clamp(22px,3vw,34px);box-shadow:var(--shadow)}
.split{display:grid;grid-template-columns:1.05fr .95fr;gap:28px;align-items:center}
.split.rev{grid-template-columns:.95fr 1.05fr}
@media(max-width:900px){.split,.split.rev{grid-template-columns:1fr}}
.media{border-radius:var(--radius);overflow:hidden;border:1px solid var(--line);box-shadow:var(--shadow);position:relative}
.media img{width:100%;height:100%;object-fit:cover;transition:transform .8s}
.media:hover img{transform:scale(1.04)}
.media .cap{position:absolute;left:0;right:0;bottom:0;padding:16px 18px;font-size:12.5px;color:var(--cream);
  background:linear-gradient(transparent,rgba(16,13,11,.9));font-weight:500}

/* ============================================================================
   EASEMENT / PARCELS
   ============================================================================ */
.parcel-wrap{display:grid;grid-template-columns:1fr 1fr;gap:26px;align-items:start}
@media(max-width:900px){.parcel-wrap{grid-template-columns:1fr}}
.parcel-list{display:flex;flex-direction:column;gap:12px}
.parcel{border:1px solid var(--line);border-radius:var(--radius-sm);padding:20px;cursor:pointer;transition:.25s;background:var(--ink-2);position:relative;overflow:hidden}
.parcel:hover{border-color:var(--line-2);transform:translateX(4px)}
.parcel.active{border-color:var(--gold-deep);background:var(--panel)}
.parcel .row{display:flex;justify-content:space-between;align-items:baseline;gap:12px}
.parcel h4{font-family:var(--serif);font-size:21px;color:#f4ecdc;font-weight:600}
.parcel .ac{font-family:var(--serif);font-size:24px;color:var(--gold-2);font-weight:600}
.parcel .pill{font-size:10.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:4px 9px;border-radius:100px;margin-top:8px;display:inline-block}
.pill.eased{background:rgba(142,51,68,.18);color:var(--wine-2);border:1px solid rgba(177,74,92,.3)}
.pill.free{background:rgba(134,148,111,.16);color:var(--sage-2);border:1px solid rgba(163,177,137,.3)}
.parcel .desc{font-size:13.5px;color:var(--txt-dim);margin-top:11px;line-height:1.55}
.parcel .rights{font-size:13px;color:var(--cream);margin-top:9px;padding-top:11px;border-top:1px dashed var(--line-2);display:none}
.parcel.active .rights{display:block}

.allow-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:30px}
@media(max-width:700px){.allow-grid{grid-template-columns:1fr}}
.allow-col h5{display:flex;align-items:center;gap:9px;font-size:13px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;margin-bottom:14px}
.allow-col.ok h5{color:var(--ok)}.allow-col.no h5{color:var(--bad)}
.allow-col ul{list-style:none;display:flex;flex-direction:column;gap:9px}
.allow-col li{display:flex;gap:11px;font-size:14px;color:var(--txt-dim);line-height:1.5}
.allow-col li::before{flex:none;width:20px;height:20px;border-radius:6px;display:grid;place-items:center;font-size:12px;font-weight:700;margin-top:1px}
.allow-col.ok li::before{content:"✓";background:rgba(127,166,106,.15);color:var(--ok)}
.allow-col.no li::before{content:"✕";background:rgba(185,72,90,.15);color:var(--bad)}

/* envelope viz */
.envelope-viz{margin-top:24px;background:var(--ink-2);border:1px solid var(--line);border-radius:var(--radius-sm);padding:24px;text-align:center}
.env-bar{height:46px;border-radius:9px;overflow:hidden;display:flex;border:1px solid var(--line-2);margin:18px 0 10px}
.env-bar .seg{display:grid;place-items:center;font-size:11px;font-weight:700;color:#1a140c;position:relative}
.env-seg-eased{background:repeating-linear-gradient(45deg,var(--wine),var(--wine) 8px,#7c2c3b 8px,#7c2c3b 16px);color:#f3d9df}
.env-seg-free{background:var(--sage);color:#1a200f}
.env-seg-env{background:var(--gold);min-width:6px}
.env-legend{display:flex;gap:18px;justify-content:center;flex-wrap:wrap;font-size:12px;color:var(--txt-dim);margin-top:6px}
.env-legend span{display:inline-flex;align-items:center;gap:7px}
.env-legend i{width:13px;height:13px;border-radius:3px;display:inline-block}

/* ============================================================================
   CHARTS
   ============================================================================ */
.chart-card{background:linear-gradient(165deg,var(--panel),var(--ink-2));border:1px solid var(--line);border-radius:var(--radius);padding:26px;box-shadow:var(--shadow)}
.chart-card h4{font-family:var(--serif);font-size:21px;font-weight:600;color:#f4ecdc;margin-bottom:4px}
.chart-card .note{font-size:13px;color:var(--txt-mute);margin-bottom:18px}
.chart-holder{position:relative;height:300px}
.chart-2{display:grid;grid-template-columns:1fr 1fr;gap:22px}
@media(max-width:880px){.chart-2{grid-template-columns:1fr}}
.callout{margin-top:18px;padding:16px 18px;border-radius:12px;background:rgba(210,168,87,.07);border:1px solid rgba(210,168,87,.22);font-size:14px;color:var(--cream);line-height:1.6}
.callout b{color:var(--gold-2)}

/* ============================================================================
   PATHS
   ============================================================================ */
.paths{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
@media(max-width:980px){.paths{grid-template-columns:repeat(2,1fr)}}
@media(max-width:640px){.paths{grid-template-columns:1fr}}
.path{border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:var(--ink-2);transition:.3s;display:flex;flex-direction:column;position:relative}
.path:hover{transform:translateY(-6px);box-shadow:var(--shadow-lg);border-color:var(--line-2)}
.path-img{height:180px;position:relative;overflow:hidden}
.path-img img{width:100%;height:100%;object-fit:cover;transition:transform .9s}
.path:hover .path-img img{transform:scale(1.08)}
.path-img::after{content:"";position:absolute;inset:0;background:linear-gradient(transparent 40%,rgba(20,16,13,.96))}
.path-key{position:absolute;top:14px;left:14px;z-index:2;width:40px;height:40px;border-radius:11px;display:grid;place-items:center;font-family:var(--serif);font-weight:700;font-size:20px;background:rgba(16,13,11,.7);border:1px solid var(--line-2);backdrop-filter:blur(6px)}
.path-tag{position:absolute;bottom:13px;left:16px;z-index:2;font-size:11.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--gold-2)}
.path-body{padding:20px;display:flex;flex-direction:column;gap:14px;flex:1}
.path-body h3{font-family:var(--serif);font-size:24px;font-weight:600;color:#f4ecdc;line-height:1.05}
.path-stats{display:flex;flex-direction:column;gap:7px}
.path-stats .ps{display:flex;justify-content:space-between;gap:12px;font-size:13px;padding-bottom:7px;border-bottom:1px dashed var(--line-2)}
.path-stats .ps span{color:var(--txt-mute)}
.path-stats .ps b{color:var(--cream);text-align:right;font-weight:600}
.path-verdict{font-size:13.5px;color:var(--txt-dim);line-height:1.55;margin-top:auto}
.tone-gold .path-key{color:var(--gold-2)}.tone-wine .path-key{color:var(--wine-2)}
.tone-sage .path-key{color:var(--sage-2)}.tone-muted .path-key{color:var(--txt-mute)}
.tone-gold{border-top:3px solid var(--gold)}.tone-wine{border-top:3px solid var(--wine)}
.tone-sage{border-top:3px solid var(--sage)}.tone-muted{border-top:3px solid var(--line-2)}

/* scenario table */
.scn-table{width:100%;border-collapse:collapse;margin-top:30px;font-size:14px;overflow:hidden;border-radius:var(--radius-sm)}
.scn-table th,.scn-table td{text-align:left;padding:15px 16px;border-bottom:1px solid var(--line)}
.scn-table thead th{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--txt-mute);background:var(--ink-2);font-weight:700}
.scn-table tbody tr{transition:.2s}.scn-table tbody tr:hover{background:rgba(255,255,255,.025)}
.scn-table td:first-child{font-weight:600;color:var(--cream)}
.scn-table .allin{font-family:var(--serif);font-weight:600;font-size:18px;color:var(--gold-2)}

/* ============================================================================
   CALCULATORS
   ============================================================================ */
.calc-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:26px}
.calc-tab{padding:11px 20px;border-radius:11px;border:1px solid var(--line);background:var(--ink-2);color:var(--txt-dim);font-weight:600;font-size:13.5px;cursor:pointer;transition:.2s}
.calc-tab:hover{border-color:var(--line-2);color:var(--txt)}
.calc-tab.active{background:var(--gold);color:#1a140c;border-color:var(--gold)}
.calc-panel{display:none}.calc-panel.active{display:block;animation:fade .4s}
@keyframes fade{from{opacity:0;transform:translateY(10px)}to{opacity:1}}
.calc-layout{display:grid;grid-template-columns:1fr 1fr;gap:34px;align-items:stretch}
@media(max-width:900px){.calc-layout{grid-template-columns:1fr}}
.controls{display:flex;flex-direction:column;gap:18px;justify-content:center}
.ctrl label{display:flex;justify-content:space-between;align-items:baseline;font-size:13.5px;font-weight:600;color:var(--txt-dim);margin-bottom:7px}
.ctrl label .val{font-family:var(--serif);font-size:18px;color:var(--gold-2);font-weight:600}
input[type=range]{-webkit-appearance:none;appearance:none;width:100%;height:6px;border-radius:6px;background:var(--line-2);outline:none}
input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:22px;height:22px;border-radius:50%;background:linear-gradient(145deg,var(--gold-2),var(--gold-deep));cursor:pointer;border:3px solid var(--ink);box-shadow:0 4px 12px -2px rgba(0,0,0,.6);transition:.15s}
input[type=range]::-webkit-slider-thumb:hover{transform:scale(1.15)}
input[type=range]::-moz-range-thumb{width:22px;height:22px;border-radius:50%;background:var(--gold);cursor:pointer;border:3px solid var(--ink)}
.toggle-row{display:flex;flex-wrap:wrap;gap:9px}
.toggle{padding:9px 15px;border-radius:10px;border:1px solid var(--line-2);background:var(--ink-2);color:var(--txt-dim);font-size:13px;font-weight:600;cursor:pointer;transition:.2s}
.toggle.on{background:var(--sage);color:#172011;border-color:var(--sage)}
.seg{display:flex;border:1px solid var(--line-2);border-radius:10px;overflow:hidden}
.seg button{flex:1;padding:10px;background:var(--ink-2);color:var(--txt-dim);border:none;font-size:12.5px;font-weight:600;cursor:pointer;transition:.2s}
.seg button.on{background:var(--gold);color:#1a140c}
.readout{background:var(--ink-2);border:1px solid var(--line);border-radius:var(--radius);padding:26px;text-align:center;position:sticky;top:90px}
.readout .big{font-family:var(--serif);font-weight:600;font-size:clamp(38px,6vw,58px);color:#f6efe0;line-height:1;letter-spacing:-.01em}
.readout .big.good{color:var(--sage-2)}.readout .big.warn{color:var(--warn)}.readout .big.bad{color:var(--wine-2)}
.readout .biglab{font-size:13px;color:var(--txt-mute);text-transform:uppercase;letter-spacing:.1em;margin-top:12px}
.readout .verdict{margin-top:18px;font-size:14px;color:var(--cream);line-height:1.6;min-height:44px}
.readout-rows{margin-top:22px;border-top:1px solid var(--line);padding-top:18px;display:flex;flex-direction:column;gap:10px;text-align:left}
.readout-rows .rr{display:flex;justify-content:space-between;font-size:13.5px}
.readout-rows .rr span{color:var(--txt-mute)}.readout-rows .rr b{color:var(--txt);font-variant-numeric:tabular-nums}
.readout-rows .rr.total{border-top:1px dashed var(--line-2);padding-top:11px;margin-top:3px}
.readout-rows .rr.total b{color:var(--gold-2);font-size:16px;font-family:var(--serif)}

/* ============================================================================
   TIMELINE / GANTT
   ============================================================================ */
.gantt{margin-top:10px;overflow-x:auto;padding-bottom:8px}
.gantt-inner{min-width:760px}
.gantt-scale{display:grid;grid-template-columns:140px 1fr;gap:14px;align-items:center;margin-bottom:10px}
.gantt-months{display:grid;grid-template-columns:repeat(7,1fr);font-size:11px;color:var(--txt-mute);text-transform:uppercase;letter-spacing:.06em}
.gantt-months span{text-align:left;border-left:1px solid var(--line);padding-left:8px}
.gantt-row{display:grid;grid-template-columns:140px 1fr;gap:14px;align-items:center;margin-bottom:9px}
.gantt-row .lbl{font-size:13px;color:var(--txt-dim);font-weight:500}
.gantt-track{position:relative;height:34px;background:var(--ink-2);border-radius:8px;border:1px solid var(--line);overflow:hidden}
.gantt-bar{position:absolute;top:5px;bottom:5px;border-radius:6px;display:flex;align-items:center;padding:0 10px;font-size:11px;font-weight:600;color:#1a140c;white-space:nowrap;overflow:hidden;box-shadow:0 4px 10px -3px rgba(0,0,0,.5)}
.lane-Acquire{background:linear-gradient(90deg,var(--wine-2),var(--wine))}
.lane-Design{background:linear-gradient(90deg,var(--gold-2),var(--gold-deep))}
.lane-Build{background:linear-gradient(90deg,var(--sage-2),var(--sage))}
.lane-Wine{background:linear-gradient(90deg,var(--sky),#557d92);color:#0e1a20}
.gantt-legend{display:flex;gap:16px;flex-wrap:wrap;margin-top:14px;font-size:12px;color:var(--txt-dim)}
.gantt-legend span{display:inline-flex;align-items:center;gap:7px}
.gantt-legend i{width:14px;height:14px;border-radius:4px}

/* ============================================================================
   DILIGENCE CHECKLIST
   ============================================================================ */
.dd-head{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;margin-bottom:28px}
.dd-progress{display:flex;align-items:center;gap:18px}
.ring{--p:0;width:78px;height:78px;border-radius:50%;display:grid;place-items:center;flex:none;
  background:conic-gradient(var(--gold) calc(var(--p)*1%),var(--line) 0)}
.ring .inner{width:62px;height:62px;border-radius:50%;background:var(--ink-2);display:grid;place-items:center;font-family:var(--serif);font-weight:600;font-size:20px;color:var(--gold-2)}
.dd-progress .meta b{display:block;font-size:15px;color:var(--cream)}
.dd-progress .meta span{font-size:13px;color:var(--txt-mute)}
.dd-actions{display:flex;gap:10px;flex-wrap:wrap}
.dd-groups{display:grid;grid-template-columns:1fr 1fr;gap:18px}
@media(max-width:820px){.dd-groups{grid-template-columns:1fr}}
.dd-group{border:1px solid var(--line);border-radius:var(--radius);background:var(--ink-2);overflow:hidden}
.dd-group-head{display:flex;justify-content:space-between;align-items:center;padding:16px 18px;border-bottom:1px solid var(--line)}
.dd-group-head h4{font-size:15px;font-weight:700;color:var(--cream);letter-spacing:.01em}
.prio{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;padding:4px 9px;border-radius:100px}
.prio.critical{background:rgba(185,72,90,.18);color:var(--wine-2)}
.prio.high{background:rgba(212,154,63,.18);color:var(--warn)}
.prio.medium{background:rgba(111,155,179,.16);color:var(--sky)}
.dd-list{padding:8px}
.dd-item{display:flex;gap:12px;padding:12px;border-radius:10px;cursor:pointer;transition:.18s;align-items:flex-start}
.dd-item:hover{background:rgba(255,255,255,.03)}
.dd-box{flex:none;width:22px;height:22px;border-radius:7px;border:2px solid var(--line-2);display:grid;place-items:center;transition:.2s;margin-top:1px}
.dd-item.done .dd-box{background:var(--sage);border-color:var(--sage)}
.dd-box svg{width:13px;height:13px;stroke:#172011;stroke-width:3.5;fill:none;opacity:0;transition:.2s}
.dd-item.done .dd-box svg{opacity:1}
.dd-item .txt{font-size:14px;color:var(--txt-dim);line-height:1.5;transition:.2s}
.dd-item.done .txt{color:var(--txt-mute);text-decoration:line-through;text-decoration-color:var(--line-2)}

/* ============================================================================
   VALUATION
   ============================================================================ */
.val-bars{display:flex;flex-direction:column;gap:16px;margin-top:6px}
.val-bar .vb-top{display:flex;justify-content:space-between;font-size:13.5px;margin-bottom:7px}
.val-bar .vb-top span{color:var(--txt-dim)}.val-bar .vb-top b{color:var(--cream)}
.vb-track{height:14px;border-radius:8px;background:var(--ink-2);border:1px solid var(--line);overflow:hidden;position:relative}
.vb-fill{position:absolute;top:0;bottom:0;background:linear-gradient(90deg,var(--gold-deep),var(--gold-2));border-radius:8px;opacity:.85}
.vb-range{position:absolute;top:0;bottom:0;background:rgba(210,168,87,.18)}
.val-total{display:flex;justify-content:space-between;align-items:baseline;margin-top:20px;padding-top:18px;border-top:1px solid var(--line)}
.val-total .lab{font-size:14px;color:var(--txt-dim)}
.val-total .amt{font-family:var(--serif);font-size:30px;font-weight:600;color:var(--gold-2)}
.verdict-box{margin-top:24px;background:linear-gradient(160deg,rgba(142,51,68,.12),transparent);border:1px solid rgba(177,74,92,.28);border-radius:var(--radius);padding:24px}
.verdict-box h4{font-family:var(--serif);font-size:20px;color:#f4ecdc;margin-bottom:10px}
.verdict-box p{font-size:14.5px;color:var(--txt-dim);line-height:1.65}
.verdict-box .bid{display:inline-block;margin-top:14px;font-family:var(--serif);font-size:22px;font-weight:600;color:var(--sage-2);padding:8px 18px;border-radius:12px;background:rgba(134,148,111,.12);border:1px solid rgba(163,177,137,.3)}

/* ============================================================================
   GALLERY
   ============================================================================ */
.gallery{columns:3;column-gap:14px}
@media(max-width:820px){.gallery{columns:2}}
@media(max-width:520px){.gallery{columns:1}}
.gallery figure{break-inside:avoid;margin-bottom:14px;border-radius:var(--radius-sm);overflow:hidden;border:1px solid var(--line);cursor:pointer;position:relative}
.gallery img{width:100%;transition:transform .6s,filter .3s;filter:saturate(.95)}
.gallery figure:hover img{transform:scale(1.05);filter:saturate(1.1)}
.gallery figcaption{position:absolute;left:0;right:0;bottom:0;padding:24px 14px 12px;font-size:12px;color:var(--cream);background:linear-gradient(transparent,rgba(16,13,11,.92));opacity:0;transition:.3s}
.gallery figure:hover figcaption{opacity:1}
.lightbox{position:fixed;inset:0;z-index:100;background:rgba(8,6,5,.95);display:none;place-items:center;padding:30px;cursor:zoom-out;backdrop-filter:blur(6px)}
.lightbox.open{display:grid;animation:fade .3s}
.lightbox img{max-width:94vw;max-height:88vh;border-radius:12px;box-shadow:var(--shadow-lg)}
.lightbox .lb-cap{position:absolute;bottom:24px;left:0;right:0;text-align:center;color:var(--cream);font-size:14px}
.lightbox .lb-close{position:absolute;top:22px;right:26px;font-size:30px;color:var(--txt);cursor:pointer;line-height:1}

/* ============================================================================
   FOOTER
   ============================================================================ */
.foot{border-top:1px solid var(--line);padding:50px 0 40px;margin-top:40px}
.foot-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:40px}
@media(max-width:760px){.foot-grid{grid-template-columns:1fr;gap:26px}}
.foot h4{font-family:var(--serif);font-size:22px;color:#f4ecdc;margin-bottom:12px}
.foot p{font-size:13.5px;color:var(--txt-mute);line-height:1.7;max-width:52ch}
.foot ul{list-style:none;font-size:12.5px;color:var(--txt-mute);line-height:1.9}
.foot .disclaimer{margin-top:30px;font-size:11.5px;color:var(--txt-mute);opacity:.8;border-top:1px solid var(--line);padding-top:20px}

/* decorative section divider */
.divider{height:1px;background:linear-gradient(90deg,transparent,var(--line-2),transparent);margin:0 auto;max-width:var(--maxw)}
.tag-row{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}
.mini-tag{font-size:12px;color:var(--txt-dim);padding:6px 12px;border-radius:100px;border:1px solid var(--line-2);background:var(--ink-2)}
.mini-tag b{color:var(--gold-2)}

/* ============================================================================
   v2 — scroll progress, grain, motion, new modules
   ============================================================================ */
.scroll-progress{position:fixed;top:0;left:0;height:3px;width:0;z-index:70;
  background:linear-gradient(90deg,var(--gold-deep),var(--gold-2));box-shadow:0 0 12px rgba(210,168,87,.5);transition:width .1s linear}
.grain{position:fixed;inset:0;z-index:1;pointer-events:none;opacity:.035;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='.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
.band{padding:clamp(54px,7.5vw,104px) 0}

/* deepen hero scrim + grain already global */
.hero-bg::after{background:linear-gradient(180deg,rgba(16,13,11,.62) 0%,rgba(16,13,11,.28) 30%,rgba(16,13,11,.55) 60%,rgba(16,13,11,.99) 100%),
  linear-gradient(90deg,rgba(16,13,11,.78),transparent 58%),radial-gradient(120% 80% at 50% 120%,rgba(142,51,68,.25),transparent 60%)}
.ribbon .cell{position:relative}
.ribbon .cell::before{content:"";position:absolute;top:0;left:18px;right:18px;height:2px;background:linear-gradient(90deg,var(--gold),transparent);opacity:.5}

/* gold slider track fill (webkit shows via background gradient set in JS-free way) */
input[type=range]{background:linear-gradient(90deg,var(--gold-deep),var(--gold) var(--fill,50%),var(--line-2) var(--fill,50%))}

/* ---- THE CALL ---- */
.call-card{display:grid;grid-template-columns:1.4fr 1fr;gap:0;border:1px solid var(--gold-deep);border-radius:var(--radius);overflow:hidden;box-shadow:0 40px 120px -40px rgba(210,168,87,.3);background:linear-gradient(150deg,#221b15,#161210)}
@media(max-width:880px){.call-card{grid-template-columns:1fr}}
.call-main{padding:clamp(26px,3.4vw,42px);position:relative}
.call-main::before{content:"";position:absolute;inset:0;background:radial-gradient(120% 100% at 0% 0%,rgba(210,168,87,.10),transparent 55%);pointer-events:none}
.call-stamp{display:inline-block;font-size:11px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:#1a140c;background:var(--gold);padding:6px 13px;border-radius:7px;margin-bottom:18px}
.call-headline{font-family:var(--serif);font-weight:600;font-size:clamp(24px,3vw,34px);line-height:1.18;color:#f7f0e2}
.call-figures{display:flex;flex-wrap:wrap;gap:10px;margin:24px 0}
.call-fig{flex:1;min-width:130px;background:rgba(16,13,11,.5);border:1px solid var(--line-2);border-radius:12px;padding:14px 16px}
.call-fig .l{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--txt-mute)}
.call-fig .v{font-family:var(--serif);font-size:20px;font-weight:600;color:var(--gold-2);margin-top:5px;line-height:1.1}
.call-why h5,.call-triggers h5{font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--txt-mute);margin-bottom:13px}
.call-why ul{list-style:none;display:flex;flex-direction:column;gap:12px}
.call-why li{font-size:14.5px;color:var(--txt-dim);line-height:1.6;padding-left:20px;position:relative}
.call-why li::before{content:"";position:absolute;left:0;top:9px;width:7px;height:7px;border-radius:50%;background:var(--gold)}
.call-triggers{padding:clamp(26px,3.4vw,42px);background:rgba(12,9,8,.5);border-left:1px solid var(--line)}
.trigger{padding:15px 0;border-bottom:1px dashed var(--line-2)}
.trigger:last-child{border-bottom:none}
.trigger .tif{font-size:13px;color:var(--cream);font-weight:600;display:flex;gap:9px;align-items:flex-start}
.trigger .tif .ic{flex:none;width:18px;height:18px;border-radius:5px;display:grid;place-items:center;font-size:11px;font-weight:700;margin-top:1px}
.trigger.good .ic{background:rgba(127,166,106,.2);color:var(--ok)}
.trigger.warn .ic{background:rgba(212,154,63,.2);color:var(--warn)}
.trigger.bad .ic{background:rgba(185,72,90,.2);color:var(--bad)}
.trigger .tthen{font-size:13px;color:var(--txt-dim);margin-top:6px;padding-left:27px}
.trigger .tthen b{color:var(--txt)}

/* ---- building envelope ---- */
.env-layout{display:grid;grid-template-columns:1fr 1fr;gap:26px;align-items:start}
@media(max-width:860px){.env-layout{grid-template-columns:1fr}}
.env-controls{display:flex;flex-direction:column;gap:9px}
.env-item{display:flex;align-items:center;gap:13px;padding:13px 16px;border:1px solid var(--line);border-radius:11px;background:var(--ink-2);cursor:pointer;transition:.2s}
.env-item:hover{border-color:var(--line-2)}
.env-item.on{border-color:var(--gold-deep);background:var(--panel)}
.env-item .ebox{flex:none;width:20px;height:20px;border-radius:6px;border:2px solid var(--line-2);display:grid;place-items:center;transition:.2s}
.env-item.on .ebox{background:var(--gold);border-color:var(--gold)}
.env-item .ebox::after{content:"✓";font-size:12px;font-weight:800;color:#1a140c;opacity:0;transition:.2s}
.env-item.on .ebox::after{opacity:1}
.env-item .enm{flex:1;font-size:14px;color:var(--txt);font-weight:500}
.env-item .eac{font-family:var(--serif);font-size:15px;color:var(--gold-2);font-weight:600}
.env-item.ess{opacity:.92}
.env-item .ereq{font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--txt-mute);margin-left:4px}
.env-render{border-radius:var(--radius);overflow:hidden;border:1px solid var(--line);margin-bottom:16px}
.env-render img{width:100%;height:230px;object-fit:cover}
.env-meter{background:var(--ink-2);border:1px solid var(--line);border-radius:var(--radius-sm);padding:20px}
.env-meter-top{display:flex;justify-content:space-between;align-items:baseline;font-size:13px;color:var(--txt-dim)}
.env-meter-top b{font-family:var(--serif);font-size:22px;color:#f6efe0;font-weight:600}
.env-meter-track{height:18px;border-radius:9px;background:var(--ink);border:1px solid var(--line-2);overflow:hidden;margin:12px 0 10px;position:relative}
.env-meter-fill{height:100%;border-radius:9px;background:linear-gradient(90deg,var(--sage),var(--gold));transition:width .4s cubic-bezier(.2,.7,.2,1);position:relative}
.env-meter-fill.over{background:linear-gradient(90deg,var(--warn),var(--wine))}
.env-meter-msg{font-size:13px;color:var(--txt-dim);min-height:20px}
.env-meter-msg.over{color:var(--wine-2);font-weight:600}

/* ---- scoring matrix ---- */
.matrix-layout{display:grid;grid-template-columns:280px 1fr;gap:28px;margin-top:26px;align-items:start}
@media(max-width:860px){.matrix-layout{grid-template-columns:1fr}}
.matrix-weights{background:var(--ink-2);border:1px solid var(--line);border-radius:var(--radius);padding:20px;position:sticky;top:90px}
.mw{margin-bottom:14px}.mw:last-child{margin-bottom:0}
.mw label{display:flex;justify-content:space-between;font-size:12px;color:var(--txt-dim);margin-bottom:6px;font-weight:600;letter-spacing:.01em}
.mw label b{color:var(--gold-2)}
.matrix-board{display:flex;flex-direction:column;gap:12px}
.mrow{display:grid;grid-template-columns:170px 1fr 64px;gap:16px;align-items:center;padding:16px 20px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--ink-2);transition:.4s cubic-bezier(.2,.7,.2,1)}
.mrow.lead{border-color:var(--gold-deep);background:linear-gradient(120deg,var(--panel),var(--ink-2));box-shadow:0 16px 40px -20px rgba(210,168,87,.3)}
.mrow .mname{font-family:var(--serif);font-size:18px;font-weight:600;color:#f4ecdc;display:flex;align-items:center;gap:9px}
.mrow .mrank{font-size:11px;width:22px;height:22px;border-radius:50%;display:grid;place-items:center;background:var(--line-2);color:var(--txt-dim);font-weight:700}
.mrow.lead .mrank{background:var(--gold);color:#1a140c}
.mbar-track{height:12px;border-radius:7px;background:var(--ink);overflow:hidden;border:1px solid var(--line)}
.mbar-fill{height:100%;border-radius:7px;background:linear-gradient(90deg,var(--gold-deep),var(--gold-2));transition:width .5s}
.mrow .mscore{font-family:var(--serif);font-size:22px;font-weight:600;color:var(--gold-2);text-align:right}

/* ---- calculator gauge + verdict badge ---- */
.verdict-badge{display:inline-flex;align-items:center;gap:9px;font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:7px 15px;border-radius:100px;margin-bottom:6px}
.vb-good{background:rgba(127,166,106,.16);color:var(--ok);border:1px solid rgba(127,166,106,.35)}
.vb-fair{background:rgba(210,168,87,.14);color:var(--gold-2);border:1px solid rgba(210,168,87,.32)}
.vb-warn{background:rgba(212,154,63,.16);color:var(--warn);border:1px solid rgba(212,154,63,.34)}
.vb-bad{background:rgba(185,72,90,.16);color:var(--wine-2);border:1px solid rgba(185,72,90,.34)}
.gauge{position:relative;height:8px;border-radius:5px;margin:18px 0 6px;
  background:linear-gradient(90deg,var(--sage) 0%,var(--gold) 45%,var(--warn) 72%,var(--wine) 100%)}
.gauge .needle{position:absolute;top:-6px;width:4px;height:20px;border-radius:3px;background:#fff;box-shadow:0 0 10px rgba(255,255,255,.6);transition:left .25s cubic-bezier(.2,.7,.2,1);transform:translateX(-50%)}
.gauge-labels{display:flex;justify-content:space-between;font-size:10.5px;color:var(--txt-mute);letter-spacing:.04em}

/* ---- scenario tray ---- */
.scn-tray{margin-top:30px;border:1px solid var(--line);border-radius:var(--radius);padding:22px;background:var(--ink-2)}
.scn-tray-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}
.scn-tray-head h4{font-size:18px;color:#f4ecdc}
.mini-clear{background:none;border:1px solid var(--line-2);color:var(--txt-dim);font-size:12px;padding:6px 12px;border-radius:8px;cursor:pointer}
.scn-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:14px}
.scn-saved{border:1px solid var(--line-2);border-radius:12px;padding:16px;background:var(--panel);position:relative}
.scn-saved .x{position:absolute;top:10px;right:12px;cursor:pointer;color:var(--txt-mute);font-size:16px}
.scn-saved .st{font-family:var(--serif);font-size:24px;color:var(--gold-2);font-weight:600}
.scn-saved .sl{font-size:11px;color:var(--txt-mute);text-transform:uppercase;letter-spacing:.06em;margin-bottom:8px}
.scn-saved .srow{display:flex;justify-content:space-between;font-size:12px;color:var(--txt-dim);margin-top:5px}
.scn-saved .srow b{color:var(--txt)}

/* ---- risk register ---- */
.risk-wrap{display:grid;grid-template-columns:300px 1fr;gap:26px;align-items:start}
@media(max-width:920px){.risk-wrap{grid-template-columns:1fr}}
.risk-matrix{background:var(--ink-2);border:1px solid var(--line);border-radius:var(--radius);padding:22px;position:sticky;top:90px}
.risk-grid{display:grid;grid-template-columns:auto repeat(3,1fr);gap:4px;margin-top:10px}
.risk-grid .rh{font-size:10px;color:var(--txt-dim);font-weight:700;text-transform:uppercase;letter-spacing:.06em;display:grid;place-items:center;padding:5px}
.risk-cell{aspect-ratio:1;border-radius:7px;display:grid;place-items:center;font-family:var(--serif);font-size:16px;font-weight:600;color:#1a140c;position:relative;cursor:default;transition:.2s}
.risk-cell.empty{background:var(--ink);color:var(--txt-mute);font-family:var(--sans);font-size:11px}
.risk-cell:hover{transform:scale(1.06);z-index:2}
.risk-axis-y{writing-mode:vertical-rl;transform:rotate(180deg);font-size:10px;color:var(--txt-mute);text-transform:uppercase;letter-spacing:.1em;display:grid;place-items:center}
.risk-legend{font-size:11.5px;color:var(--txt-mute);margin-top:14px;line-height:1.6}
.risk-list{display:flex;flex-direction:column;gap:10px}
.risk-item{display:grid;grid-template-columns:42px 1fr auto;gap:15px;align-items:center;padding:16px 18px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--ink-2);transition:.2s}
.risk-item:hover{border-color:var(--line-2)}
.risk-sev{width:42px;height:42px;border-radius:11px;display:grid;place-items:center;font-family:var(--serif);font-weight:700;font-size:17px;color:#1a140c}
.risk-body .rt{font-size:14.5px;color:var(--cream);font-weight:500;line-height:1.4}
.risk-body .ri{font-size:12.5px;color:var(--txt-mute);margin-top:4px}
.risk-when{font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:5px 10px;border-radius:100px;white-space:nowrap}
.risk-when.before{background:rgba(185,72,90,.16);color:var(--wine-2)}
.risk-when.after{background:rgba(134,148,111,.16);color:var(--sage-2)}
.risk-when.monitor{background:rgba(111,155,179,.16);color:var(--sky)}

/* chart sizing tweak */
.chart-holder.tall{height:340px}

/* ---- The Call: derivation waterfall + confidence ---- */
.call-derive{margin:22px 0 6px;padding:16px 18px;border:1px solid var(--line-2);border-radius:13px;background:rgba(12,9,8,.4)}
.call-derive .dh{font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--txt-mute);margin-bottom:13px}
.derive-flow{display:flex;align-items:stretch;gap:8px;flex-wrap:wrap}
.derive-step{flex:1;min-width:96px;background:var(--ink-2);border:1px solid var(--line);border-radius:10px;padding:11px 12px;text-align:center;position:relative}
.derive-step.minus{border-color:rgba(185,72,90,.3)}
.derive-step.final{border-color:var(--gold-deep);background:rgba(210,168,87,.08)}
.derive-step .dv{font-family:var(--serif);font-size:18px;font-weight:600;color:#f4ecdc;line-height:1}
.derive-step.minus .dv{color:var(--wine-2)}
.derive-step.final .dv{color:var(--gold-2)}
.derive-step .dl{font-size:10.5px;color:var(--txt-mute);margin-top:6px;line-height:1.3}
.derive-op{display:grid;place-items:center;font-size:18px;color:var(--txt-mute);font-weight:700;flex:none;width:14px}
@media(max-width:560px){.derive-flow{flex-direction:column}.derive-op{transform:rotate(90deg);width:auto;height:14px}}

.conf-meter{margin-bottom:22px;padding-bottom:20px;border-bottom:1px dashed var(--line-2)}
.conf-top{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:10px}
.conf-top .cl{font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--txt-mute)}
.conf-top .cv{font-family:var(--serif);font-size:26px;font-weight:600;color:var(--gold-2);line-height:1}
.conf-track{height:10px;border-radius:6px;background:var(--ink);border:1px solid var(--line-2);overflow:hidden}
.conf-fill{height:100%;border-radius:6px;background:linear-gradient(90deg,var(--wine),var(--gold) 60%,var(--sage));transition:width .5s cubic-bezier(.2,.7,.2,1)}
.conf-note{font-size:12px;color:var(--txt-dim);margin-top:9px;line-height:1.5}
.conf-note a{cursor:pointer;border-bottom:1px solid var(--gold-deep)}
.derive-step.released{border-color:rgba(127,166,106,.4);background:rgba(127,166,106,.08);opacity:.92}
.derive-step.released .dv{color:var(--sage-2);text-transform:uppercase;font-size:12px;letter-spacing:.06em;font-family:var(--sans);font-weight:700;padding-top:4px}
.derive-op{transition:.3s}

/* featured KPI tile — one moment of emphasis */
.kpi.feature{grid-column:span 2;background:linear-gradient(145deg,#2a2017,var(--ink-2));border-color:var(--gold-deep)}
.kpi.feature::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--gold)}
.kpi.feature .v{font-size:clamp(34px,4.5vw,46px);color:var(--gold-2)}
.kpi.feature .k{color:var(--gold-2);opacity:.8}
@media(max-width:520px){.kpi.feature{grid-column:span 1}}

/* unify card material — warm amber-lifted surface everywhere */
.readout,.risk-matrix,.matrix-weights,.chart-card,.risk-item,.env-meter,.scn-saved,.dd-group{
  background:linear-gradient(165deg,var(--panel),var(--ink-2))}

/* calmer gauge — match the muted palette */
.gauge{background:linear-gradient(90deg,#7e8c6a 0%,var(--gold) 48%,#c08a45 74%,#9a4150 100%);opacity:.92}

/* matrix narrative line */
.matrix-note{margin-top:16px;padding:15px 18px;border-radius:12px;background:rgba(210,168,87,.06);border:1px solid rgba(210,168,87,.2);font-size:13.5px;color:var(--cream);line-height:1.6}
.matrix-note b{color:var(--gold-2)}

/* diligence hero ring bigger */
.ring{width:92px;height:92px}.ring .inner{width:74px;height:74px;font-size:23px}

/* parcel map tint — pull the gray aerial into the palette */
.map-tinted img{filter:sepia(.32) saturate(1.15) hue-rotate(-8deg) brightness(.82) contrast(1.08)}
.map-tinted::before{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
  background:radial-gradient(120% 90% at 50% 0%,rgba(210,168,87,.14),transparent 55%),
            linear-gradient(180deg,rgba(16,13,11,.25),rgba(16,13,11,.35));mix-blend-mode:multiply}
.map-tinted .cap{z-index:2}

/* keep price-history chart breathing */
#priceHistChart{min-height:230px}

/* ---- contingent offer (LOI) modal ---- */
.loi-overlay{position:fixed;inset:0;z-index:100;background:rgba(8,6,5,.9);backdrop-filter:blur(8px);display:none;place-items:center;padding:24px}
.loi-overlay.open{display:grid;animation:fade .3s}
.loi-sheet{background:#f6efe0;color:#241c14;width:min(720px,95vw);max-height:90vh;overflow:auto;border-radius:14px;box-shadow:var(--shadow-lg);position:relative}
.loi-actions{position:sticky;top:0;display:flex;gap:9px;justify-content:flex-end;padding:14px 18px;background:linear-gradient(#f6efe0,rgba(246,239,224,.9));border-bottom:1px solid #d9cdb4}
.loi-actions .btn-ghost{background:#fff;border-color:#cdbf9f;color:#5a4a30}
.loi-actions .btn-ghost:hover{border-color:var(--gold-deep);color:#241c14}
.loi-body{padding:34px 44px 48px;font-family:"Fraunces",Georgia,serif}
.loi-body h1{font-size:24px;margin-bottom:4px;letter-spacing:-.01em}
.loi-body .loi-sub{font-family:var(--sans);font-size:12px;color:#7a6a4c;text-transform:uppercase;letter-spacing:.1em;margin-bottom:24px}
.loi-body h2{font-family:var(--sans);font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:#9a7d3f;margin:24px 0 10px;border-bottom:1px solid #ddd0b4;padding-bottom:6px}
.loi-body p,.loi-body li{font-family:var(--sans);font-size:14px;line-height:1.65;color:#3a2f20}
.loi-body .big-band{font-size:30px;color:#7a5a1c;margin:6px 0}
.loi-body ul{margin:6px 0 0 18px}.loi-body li{margin-bottom:7px}
.loi-body .loi-foot{margin-top:28px;font-family:var(--sans);font-size:11px;color:#8a7a5c;border-top:1px solid #ddd0b4;padding-top:14px;line-height:1.55}
@media print{
  body:has(.loi-overlay.open) *{visibility:hidden}
  body:has(.loi-overlay.open) .loi-overlay,
  body:has(.loi-overlay.open) .loi-overlay *{visibility:visible}
  .loi-overlay.open{position:absolute;inset:0;background:#fff;display:block;padding:0}
  .loi-sheet{box-shadow:none;max-height:none;width:100%}
  .loi-actions{display:none}
  .scroll-progress,.grain,.nav{display:none !important}
}

/* ============================================================================
   MOBILE HARDENING — never any horizontal scroll on the page
   (overflow-x:clip keeps position:sticky working, unlike hidden)
   ============================================================================ */
html{overflow-x:clip}
body{overflow-x:clip;max-width:100%}
img,canvas,svg,video,table,iframe{max-width:100%}
/* allow flex/grid children to shrink below content width instead of forcing it */
.mrow,.risk-item,.path-stats .ps,.call-fig,.derive-step,.env-item,.kpi,
.gantt-row,.ribbon .cell,.readout-rows .rr,.scn-saved,.path,.parcel{min-width:0}
.mname,.risk-body,.risk-body .rt,.env-item .enm,.path-stats .ps b,
.kpi .v,.derive-step .dl,.call-headline,.h-sec,.hero h1{min-width:0;overflow-wrap:anywhere}
/* internal-scroll regions stay contained, never push the page */
.gantt,.scn-wrap{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}

@media(max-width:600px){
  .wrap{padding:0 15px}
  .band{padding:46px 0}
  .sec-head{margin-bottom:32px}
  /* nav: keep brand from crowding the toggle */
  .nav-brand{font-size:15px}
  .nav-brand small{font-size:9px}
  /* hero */
  .hero h1{font-size:clamp(40px,13vw,62px)}
  .hero-badges .badge{font-size:11px;padding:6px 11px}
  .ribbon{grid-template-columns:repeat(2,1fr)}
  /* the call */
  .call-card{border-radius:14px}
  .call-main,.call-triggers{padding:24px}
  .call-figures{gap:8px}
  .call-fig{min-width:calc(50% - 4px)}
  .derive-flow{flex-direction:column}
  .derive-op{transform:rotate(90deg);width:auto;height:14px;margin:1px 0}
  /* calculators */
  .calc-tabs{gap:6px}
  .calc-tab{flex:1 1 calc(50% - 6px);text-align:center;padding:10px 8px;font-size:12.5px}
  .calc-layout{gap:24px}
  .readout{position:static}
  .gauge-labels{font-size:9px}
  /* matrix */
  .matrix-weights{position:static}
  .mrow{grid-template-columns:108px 1fr 40px;gap:10px;padding:13px 14px}
  .mrow .mname{font-size:15px;gap:7px}
  .mrow .mscore{font-size:18px}
  /* risk register — pill drops under the text on very narrow screens */
  .risk-matrix{position:static}
  .risk-item{grid-template-columns:38px 1fr;gap:12px;row-gap:8px}
  .risk-when{grid-column:2;justify-self:start}
  /* envelope */
  .env-render img{height:190px}
  /* timeline fits with no internal scroll */
  .gantt-inner{min-width:0}
  .gantt-scale,.gantt-row{grid-template-columns:84px 1fr;gap:9px}
  .gantt-row .lbl{font-size:10.5px;line-height:1.25}
  .gantt-months{font-size:9px}
  .gantt-months span{padding-left:4px}
  .gantt-bar{font-size:0}
  /* scenario table → stacked cards (no horizontal scroll) */
  #scnTable thead{display:none}
  #scnTable,#scnTable tbody,#scnTable tr,#scnTable td{display:block;width:100%}
  #scnTable tr{border:1px solid var(--line);border-radius:13px;margin-bottom:11px;padding:6px 2px;background:var(--ink-2)}
  #scnTable td{display:flex;justify-content:space-between;align-items:baseline;gap:14px;border:none;padding:9px 16px;text-align:right}
  #scnTable td::before{content:attr(data-label);color:var(--txt-mute);font-weight:600;font-size:12px;letter-spacing:.02em;text-align:left}
  #scnTable td:first-child{font-family:var(--serif);font-size:17px;color:#f4ecdc;border-bottom:1px solid var(--line);padding-bottom:12px;margin-bottom:3px}
  #scnTable td:first-child::before{content:"";display:none}
  #compTable{font-size:12.5px}
  #compTable th,#compTable td{padding:11px 12px}
  /* diligence */
  .dd-head{gap:14px}
  .dd-actions{width:100%}
  .dd-actions .btn{flex:1;justify-content:center}
  /* gallery a touch tighter */
  .gallery{column-gap:12px}
  /* LOI sheet fills the small screen */
  .loi-body{padding:26px 22px 36px}
}

@media(max-width:380px){
  .ribbon{grid-template-columns:1fr 1fr}
  .mrow{grid-template-columns:92px 1fr 36px;gap:8px}
  .call-fig{min-width:100%}
}
