/* Land Finder v2: Apple-style, motion-first, phone-first. Tokens on :root, dark via prefers-color-scheme or data-theme. */
:root{
  --bg:#f5f5f7;--bg2:#ffffff;--card:#ffffff;--ink:#1d1d1f;--ink2:#424245;--muted:#6e6e73;--line:rgba(0,0,0,.08);--fill:rgba(118,118,128,.12);
  --accent:#0a8a4a;--accent2:#34c759;--accent-ink:#fff;--blue:#0071e3;--orange:#ff9500;--red:#ff3b30;--purple:#8e5cf6;--teal:#14b8a6;
  --glass:rgba(255,255,255,.72);--shadow:0 1px 2px rgba(0,0,0,.04),0 8px 28px rgba(0,0,0,.08);--shadow-lg:0 30px 80px rgba(0,0,0,.22);
  --r:22px;--r-sm:14px;--spring:cubic-bezier(.2,.9,.25,1.12);--ease:cubic-bezier(.25,.1,.25,1);--out:cubic-bezier(.16,1,.3,1);
  --nav-h:60px;color-scheme:light;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --bg:#000;--bg2:#111113;--card:#1c1c1e;--ink:#f5f5f7;--ink2:#d2d2d7;--muted:#98989d;--line:rgba(255,255,255,.1);--fill:rgba(118,118,128,.24);
  --accent:#30d158;--accent2:#30d158;--accent-ink:#00180a;--blue:#2997ff;--glass:rgba(22,22,24,.72);
  --shadow:0 1px 2px rgba(0,0,0,.4),0 8px 28px rgba(0,0,0,.5);color-scheme:dark}}
:root[data-theme="dark"]{
  --bg:#000;--bg2:#111113;--card:#1c1c1e;--ink:#f5f5f7;--ink2:#d2d2d7;--muted:#98989d;--line:rgba(255,255,255,.1);--fill:rgba(118,118,128,.24);
  --accent:#30d158;--accent2:#30d158;--accent-ink:#00180a;--blue:#2997ff;--glass:rgba(22,22,24,.72);
  --shadow:0 1px 2px rgba(0,0,0,.4),0 8px 28px rgba(0,0,0,.5);color-scheme:dark}

*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.45 Inter,-apple-system,BlinkMacSystemFont,"SF Pro Text","Segoe UI Variable Text","Segoe UI",Roboto,sans-serif;
  -webkit-font-smoothing:antialiased;letter-spacing:-.006em;overflow-x:hidden}
body.lock{overflow:hidden}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer}
a{color:var(--blue);text-decoration:none}
.tnum{font-variant-numeric:tabular-nums}
.glass{background:var(--glass);backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px)}
.muted{color:var(--muted)}

/* ---------- nav ---------- */
#nav{position:sticky;top:0;z-index:50;height:var(--nav-h);display:flex;align-items:center;gap:16px;padding:0 max(16px,env(safe-area-inset-left));border-bottom:1px solid var(--line)}
.brand{display:flex;align-items:center;gap:9px;font-weight:700;font-size:17px;letter-spacing:-.02em;white-space:nowrap}
.logo{width:28px;height:28px;border-radius:8px;background:linear-gradient(135deg,#34c759,#0a8a4a 60%,#065f46);display:grid;place-items:center;box-shadow:0 4px 12px rgba(10,138,74,.35)}
.logo svg{width:16px;height:16px}
.seg{position:relative;display:inline-flex;background:var(--fill);border-radius:10px;padding:2px;margin:0 auto}
.seg button{position:relative;z-index:1;border:0;background:none;padding:6px 16px;border-radius:8px;font-size:13.5px;font-weight:600;color:var(--ink2);transition:color .25s}
.seg button.on{color:var(--ink)}
.seg .pill{position:absolute;z-index:0;top:2px;bottom:2px;left:0;border-radius:8px;background:var(--bg2);box-shadow:0 1px 3px rgba(0,0,0,.12),0 3px 8px rgba(0,0,0,.06);transition:transform .45s var(--spring),width .45s var(--spring)}
.seg .badge{display:inline-grid;place-items:center;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--accent);color:var(--accent-ink);font-size:11px;margin-left:4px;transition:transform .4s var(--spring)}
.seg .badge:empty{display:none}
.seg .badge.pop{animation:pop .5s var(--spring)}
.nav-right{display:flex;align-items:center;gap:8px}
.search{display:flex;align-items:center;gap:6px;background:var(--fill);border-radius:10px;padding:0 10px;height:34px;width:260px;transition:width .4s var(--out),background .2s}
.search:focus-within{width:320px;background:var(--bg2);box-shadow:0 0 0 3px color-mix(in srgb,var(--blue) 35%,transparent)}
.search input{border:0;background:none;outline:0;flex:1;min-width:0;font-size:14px}
.search svg{width:15px;height:15px;color:var(--muted);flex:none}
.icon{width:34px;height:34px;border-radius:10px;border:0;background:var(--fill);display:grid;place-items:center;color:var(--ink);transition:transform .2s var(--spring),background .2s}
.icon:hover{transform:scale(1.06)}
.icon:active{transform:scale(.94)}
.icon svg{width:17px;height:17px}
.icon.on{background:var(--ink);color:var(--bg)}

/* ---------- views ---------- */
.view{display:none}
.view.on{display:block;animation:viewIn .5s var(--out)}
@keyframes viewIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}

/* ---------- hero ---------- */
.hero{position:relative;max-width:1180px;margin:0 auto;padding:64px 24px 28px;text-align:center}
.hero::before{content:"";position:absolute;inset:-60px 0 auto;height:520px;z-index:-1;pointer-events:none;
  background:radial-gradient(600px 300px at 30% 30%,rgba(52,199,89,.20),transparent 70%),radial-gradient(520px 280px at 72% 20%,rgba(0,113,227,.16),transparent 70%),radial-gradient(400px 240px at 55% 70%,rgba(142,92,246,.12),transparent 70%);
  animation:drift 18s ease-in-out infinite alternate}
@keyframes drift{to{transform:translate3d(0,24px,0) scale(1.06)}}
.eyebrow{margin:0 0 10px;font-weight:600;font-size:14px;color:var(--accent);letter-spacing:.01em}
.hero h1{margin:0;font-size:clamp(40px,7.4vw,80px);line-height:1.02;letter-spacing:-.045em;font-weight:800}
.grad{background:linear-gradient(92deg,#34c759 0%,#0a8a4a 30%,#0071e3 70%,#8e5cf6 100%);background-size:200% auto;-webkit-background-clip:text;background-clip:text;color:transparent;animation:shine 8s linear infinite}
@keyframes shine{to{background-position:200% center}}
.lede{max-width:620px;margin:18px auto 0;font-size:clamp(16px,2.1vw,20px);color:var(--muted);line-height:1.45}
.hero .rise{opacity:0;transform:translateY(22px);animation:rise .9s var(--out) forwards;animation-delay:calc(var(--d,0) * 1ms)}
@keyframes rise{to{opacity:1;transform:none}}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;max-width:900px;margin:36px auto 0}
.stat{background:var(--card);border-radius:var(--r-sm);padding:16px 14px;box-shadow:var(--shadow);text-align:left}
.stat b{display:block;font-size:clamp(22px,3.2vw,32px);font-weight:750;letter-spacing:-.03em;line-height:1.1}
.stat span{font-size:12.5px;color:var(--muted)}
.stat:nth-child(1) b{color:var(--ink)}.stat:nth-child(2) b{color:var(--orange)}.stat:nth-child(3) b{color:var(--purple)}.stat:nth-child(4) b{color:var(--accent)}
.hero-cta{display:flex;gap:10px;justify-content:center;margin-top:26px;flex-wrap:wrap}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;border:0;border-radius:980px;padding:11px 20px;font-weight:600;font-size:15px;background:var(--fill);color:var(--ink);
  transition:transform .25s var(--spring),box-shadow .25s,background .2s,opacity .2s;white-space:nowrap}
.btn:hover{transform:translateY(-1px)}
.btn:active{transform:scale(.96)}
.btn.primary{background:var(--accent);color:var(--accent-ink);box-shadow:0 6px 18px color-mix(in srgb,var(--accent) 35%,transparent)}
.btn.blue{background:var(--blue);color:#fff}
.btn.dark{background:var(--ink);color:var(--bg)}
.btn.sm{padding:7px 14px;font-size:13.5px}
.btn svg{width:16px;height:16px}
.btn[disabled]{opacity:.45;pointer-events:none}

/* ---------- toolbar ---------- */
.toolbar{position:sticky;top:var(--nav-h);z-index:40;border-bottom:1px solid var(--line)}
.toolbar-in{max-width:1400px;margin:0 auto;display:flex;align-items:center;gap:10px;padding:10px 24px}
.presets{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;flex:1;padding:2px;mask-image:linear-gradient(90deg,#000 92%,transparent)}
.presets::-webkit-scrollbar{display:none}
.chip-btn{flex:none;border:0;border-radius:980px;padding:8px 14px;font-size:13.5px;font-weight:600;background:var(--fill);color:var(--ink2);transition:all .3s var(--spring)}
.chip-btn:hover{transform:translateY(-1px)}
.chip-btn.on{background:var(--ink);color:var(--bg);transform:scale(1.03)}
.tools{display:flex;gap:8px;align-items:center}
.select{appearance:none;border:0;border-radius:980px;padding:8px 32px 8px 14px;font-size:13.5px;font-weight:600;background:var(--fill) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%2386868b' stroke-width='1.6' fill='none' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat right 13px center;cursor:pointer}
.tune-dot{display:inline-grid;place-items:center;min-width:18px;height:18px;border-radius:9px;background:var(--blue);color:#fff;font-size:11px;padding:0 5px}
.tune-dot:empty{display:none}
.resultline{max-width:1400px;margin:0 auto;padding:18px 24px 4px;display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.resultline h2{margin:0;font-size:24px;letter-spacing:-.03em}
.resultline .muted{font-size:14px}

/* ---------- cards ---------- */
.grid{max-width:1400px;margin:0 auto;padding:14px 24px 80px;display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:22px}
.card{position:relative;background:var(--card);border-radius:var(--r);overflow:hidden;box-shadow:var(--shadow);cursor:pointer;
  transition:transform .45s var(--spring),box-shadow .45s var(--ease);will-change:transform}
.card.enter{opacity:0;transform:translateY(26px) scale(.97)}
.card.in{animation:cardIn .7s var(--out) both;animation-delay:calc(var(--i,0) * 45ms)}
@keyframes cardIn{from{opacity:0;transform:translateY(26px) scale(.97)}to{opacity:1;transform:none}}
@media (hover:hover){.card:hover{transform:translateY(-6px) scale(1.012);box-shadow:0 2px 4px rgba(0,0,0,.05),0 24px 50px rgba(0,0,0,.16)}
  .card:hover .media img{transform:scale(1.07)}}
.card:active{transform:scale(.98)}
.media{position:relative;aspect-ratio:16/10;background:linear-gradient(135deg,#2f4f3a,#1d2b23);overflow:hidden}
.media img{width:100%;height:100%;object-fit:cover;display:block;transition:transform 1.2s var(--out),opacity .6s;opacity:0}
.media img.ok{opacity:1}
.media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.28) 0%,transparent 34%,transparent 62%,rgba(0,0,0,.42) 100%);pointer-events:none}
.media .noimg{position:absolute;inset:0;display:grid;place-items:center;color:rgba(255,255,255,.5);font-size:13px}
.ring{position:absolute;z-index:2;top:12px;left:12px;width:50px;height:50px;border-radius:50%;background:rgba(0,0,0,.42);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);display:grid;place-items:center}
.ring svg{position:absolute;inset:0;transform:rotate(-90deg)}
.ring circle{fill:none;stroke-width:4;stroke-linecap:round}
.ring .trk{stroke:rgba(255,255,255,.18)}
.ring .val{stroke-dasharray:132;stroke-dashoffset:132;transition:stroke-dashoffset 1.3s var(--out) .15s}
.card.seen .ring .val{stroke-dashoffset:var(--off,132)}
.card.seen .eq-bar i{width:var(--w)}
.ring b{position:relative;color:#fff;font-size:16px;font-weight:750;letter-spacing:-.03em}
.kind{position:absolute;z-index:2;left:12px;bottom:12px;display:flex;gap:6px;flex-wrap:wrap}
.tag{display:inline-flex;align-items:center;gap:5px;border-radius:980px;padding:4px 10px;font-size:12px;font-weight:650;background:rgba(255,255,255,.9);color:#1d1d1f;backdrop-filter:blur(8px)}
.tag.auction{background:#ff9500;color:#fff}.tag.otc{background:#0071e3;color:#fff}.tag.list{background:#34c759;color:#04210f}.tag.offmarket{background:#8e5cf6;color:#fff}.tag.reo{background:#14b8a6;color:#03211d}
.tag.hot{background:#ff3b30;color:#fff;animation:pulse 1.8s ease-in-out infinite}
@keyframes pulse{50%{box-shadow:0 0 0 6px rgba(255,59,48,0)}0%{box-shadow:0 0 0 0 rgba(255,59,48,.55)}}
.star{position:absolute;z-index:2;top:12px;right:12px;width:38px;height:38px;border-radius:50%;border:0;background:rgba(0,0,0,.38);backdrop-filter:blur(10px);color:#fff;display:grid;place-items:center;transition:transform .35s var(--spring),background .2s}
.star svg{width:19px;height:19px}
.star:hover{transform:scale(1.1)}
.star.on{background:#fff;color:#ff9f0a}
.star.burst{animation:burst .6s var(--spring)}
@keyframes burst{0%{transform:scale(1)}30%{transform:scale(1.45) rotate(-12deg)}100%{transform:scale(1)}}
.body{padding:14px 16px 16px}
.price-row{display:flex;align-items:baseline;gap:8px}
.price{font-size:26px;font-weight:780;letter-spacing:-.035em}
.price-sub{font-size:13px;color:var(--muted)}
.title{margin-top:2px;font-weight:600;font-size:15px;color:var(--ink2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.meta{font-size:13px;color:var(--muted);margin-top:1px}
.eq{margin-top:12px}
.eq-bar{height:6px;border-radius:3px;background:var(--fill);overflow:hidden}
.eq-bar i{display:block;height:100%;width:0;border-radius:3px;background:linear-gradient(90deg,var(--accent2),var(--accent));transition:width 1.2s var(--out) .25s}
.eq-txt{display:flex;justify-content:space-between;font-size:12.5px;margin-top:6px;color:var(--muted)}
.eq-txt b{color:var(--accent);font-weight:700}
.chips{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}
.chip{font-size:11.5px;font-weight:600;border-radius:7px;padding:3px 8px;background:var(--fill);color:var(--ink2)}
.chip.good{background:color-mix(in srgb,var(--accent) 15%,transparent);color:var(--accent)}
.chip.warn{background:color-mix(in srgb,var(--orange) 16%,transparent);color:#c26a00}
.chip.bad{background:color-mix(in srgb,var(--red) 14%,transparent);color:var(--red)}
.chip.est{background:color-mix(in srgb,var(--purple) 16%,transparent);color:var(--purple)}
:root[data-theme="dark"] .chip.warn{color:#ffb340}
.sentinel{height:1px}
.empty{grid-column:1/-1;text-align:center;padding:80px 20px;color:var(--muted)}
.empty b{display:block;font-size:22px;color:var(--ink);margin-bottom:6px}
.skel{border-radius:var(--r);background:var(--card);box-shadow:var(--shadow);overflow:hidden}
.skel .s1{aspect-ratio:16/10}.skel .s2{height:16px;margin:16px;border-radius:6px;width:60%}.skel .s3{height:12px;margin:0 16px 18px;border-radius:6px;width:40%}
.skel div{background:linear-gradient(90deg,var(--fill) 0%,color-mix(in srgb,var(--fill) 40%,transparent) 50%,var(--fill) 100%);background-size:200% 100%;animation:shim 1.3s linear infinite}
@keyframes shim{to{background-position:-200% 0}}

/* ---------- map view ---------- */
#v-map{position:relative;height:calc(100vh - var(--nav-h))}
#map{position:absolute;inset:0;background:#1d2b23}
.map-count{position:absolute;z-index:500;top:14px;left:50%;transform:translateX(-50%);border-radius:980px;padding:8px 16px;font-weight:600;font-size:13.5px;box-shadow:var(--shadow)}
.leaflet-container{font:inherit}
.mk-tip{font:600 12px Inter,system-ui,sans-serif}
.d-hero .leaflet-control-attribution{font-size:9px;background:rgba(0,0,0,.35);color:rgba(255,255,255,.7)}
.d-hero .leaflet-control-attribution a{color:rgba(255,255,255,.8)}

/* ---------- pipeline ---------- */
.phead{max-width:1400px;margin:0 auto;padding:40px 24px 8px}
.phead h2{margin:0;font-size:clamp(30px,4vw,44px);letter-spacing:-.04em}
.phead p{margin:6px 0 0;color:var(--muted)}
.board{max-width:1400px;margin:0 auto;padding:18px 24px 60px;display:grid;grid-auto-flow:column;grid-auto-columns:minmax(250px,1fr);gap:14px;overflow-x:auto;scroll-snap-type:x mandatory}
.col{background:var(--bg2);border-radius:var(--r-sm);padding:10px;min-height:360px;scroll-snap-align:start;transition:background .2s,box-shadow .2s}
.col.over{box-shadow:inset 0 0 0 2px var(--blue)}
.col h3{margin:4px 6px 10px;font-size:13px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);display:flex;justify-content:space-between}
.col h3 i{font-style:normal;color:var(--ink)}
.dcard{display:grid;grid-template-columns:56px 1fr;gap:10px;align-items:center;background:var(--card);border-radius:12px;padding:8px;margin-bottom:8px;box-shadow:var(--shadow);cursor:grab;animation:cardIn .5s var(--out) both}
.dcard img,.dcard .ph{width:56px;height:56px;border-radius:9px;object-fit:cover;background:#2f4f3a}
.dcard b{display:block;font-size:14px;letter-spacing:-.02em}
.dcard span{display:block;font-size:12px;color:var(--muted)}
.dcard .due{color:var(--orange);font-weight:600}
.dcard.dragging{opacity:.4}

/* ---------- sheets (detail, studio, tune) ---------- */
#scrim{position:fixed;inset:0;z-index:90;background:rgba(0,0,0,.42);opacity:0;pointer-events:none;transition:opacity .4s var(--ease);backdrop-filter:blur(2px)}
#scrim.on{opacity:1;pointer-events:auto}
.sheet{position:fixed;z-index:100;background:var(--bg);box-shadow:var(--shadow-lg);overflow:auto;overscroll-behavior:contain;visibility:hidden}
.sheet.modal{left:50%;top:4vh;width:min(920px,calc(100% - 32px));max-height:92vh;border-radius:28px;transform:translate(-50%,40px) scale(.96);opacity:0;
  transition:transform .55s var(--spring),opacity .35s var(--ease),visibility 0s .55s}
.sheet.modal.open{transform:translate(-50%,0) scale(1);opacity:1;visibility:visible;transition:transform .6s var(--spring),opacity .3s var(--ease)}
.sheet.side{top:0;right:0;bottom:0;width:min(420px,100%);transform:translateX(100%);transition:transform .5s var(--out),visibility 0s .5s}
.sheet.side.open{transform:none;visibility:visible;transition:transform .55s var(--out)}
#studio{z-index:110}
.close{position:sticky;top:14px;float:right;margin:14px 14px -52px 0;z-index:1000;width:36px;height:36px;border-radius:50%;border:0;background:rgba(0,0,0,.45);color:#fff;backdrop-filter:blur(10px);display:grid;place-items:center;transition:transform .2s var(--spring)}
.close:hover{transform:scale(1.08) rotate(90deg)}
.close svg{width:15px;height:15px}

/* detail */
.d-hero{position:relative;height:340px;background:#1d2b23;overflow:hidden}
#dmap{position:absolute;inset:0}
.d-hero .shade{position:absolute;inset:0;z-index:400;pointer-events:none;background:linear-gradient(180deg,transparent 45%,rgba(0,0,0,.7) 100%)}
.d-title{position:absolute;z-index:401;left:28px;right:28px;bottom:22px;color:#fff;pointer-events:none}
.d-title h2{margin:8px 0 2px;font-size:clamp(26px,4vw,38px);letter-spacing:-.04em;line-height:1.05}
.d-title p{margin:0;opacity:.85;font-size:15px}
.d-body{padding:22px 28px 40px}
.d-top{display:grid;grid-template-columns:auto 1fr auto;gap:22px;align-items:center}
.bigring{position:relative;width:96px;height:96px;display:grid;place-items:center}
.bigring svg{position:absolute;inset:0;transform:rotate(-90deg)}
.bigring circle{fill:none;stroke-width:8;stroke-linecap:round}
.bigring .trk{stroke:var(--fill)}
.bigring .val{stroke-dasharray:264;stroke-dashoffset:264;transition:stroke-dashoffset 1.5s var(--out) .2s}
.bigring b{font-size:30px;font-weight:800;letter-spacing:-.04em;line-height:1}
.bigring small{position:absolute;bottom:18px;font-size:10px;color:var(--muted);font-weight:600;letter-spacing:.05em;text-transform:uppercase}
.d-price b{display:block;font-size:clamp(30px,4.6vw,44px);font-weight:800;letter-spacing:-.045em;line-height:1.05}
.d-price span{color:var(--muted);font-size:14px}
.d-cta{display:flex;flex-direction:column;gap:8px}
.sec{margin-top:30px}
.sec>h3{margin:0 0 12px;font-size:21px;letter-spacing:-.03em}
.sec>h3 small{font-size:13px;color:var(--muted);font-weight:500;letter-spacing:0;margin-left:6px}
.tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.tile{background:var(--card);border-radius:var(--r-sm);padding:14px 16px;box-shadow:var(--shadow);opacity:0;transform:translateY(14px);animation:rise .7s var(--out) forwards;animation-delay:calc(var(--i,0) * 70ms + 150ms)}
.tile b{display:block;font-size:24px;font-weight:760;letter-spacing:-.035em;line-height:1.15}
.tile span{font-size:12.5px;color:var(--muted)}
.tile.hl{background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 16%,var(--card)),var(--card))}
.tile.hl b{color:var(--accent)}
.tile.neg b{color:var(--red)}
.how{margin-top:10px;font-size:13px;color:var(--muted)}
.how summary{cursor:pointer;font-weight:600;color:var(--blue);list-style:none}
.how ul{margin:8px 0 0;padding-left:18px}
.cash{margin-top:10px;padding:12px 14px;border-radius:var(--r-sm);background:color-mix(in srgb,var(--blue) 10%,transparent);font-size:14px}
.count{display:flex;gap:10px;align-items:stretch}
.count div{flex:1;background:var(--card);border-radius:var(--r-sm);padding:12px;text-align:center;box-shadow:var(--shadow)}
.count b{display:block;font-size:34px;font-weight:800;letter-spacing:-.04em;line-height:1.1}
.count span{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-weight:600}
.count.past b{color:var(--muted)}
.fbar{display:grid;grid-template-columns:150px 1fr 54px;gap:12px;align-items:center;padding:7px 0}
.fbar .lbl{font-size:14px;font-weight:600}
.fbar .trk{height:9px;border-radius:5px;background:var(--fill);overflow:hidden}
.fbar .trk i{display:block;height:100%;width:0;border-radius:5px;transition:width 1.1s var(--out);transition-delay:calc(var(--i,0) * 60ms + 200ms)}
.fbar .pct{font-size:13px;color:var(--muted);text-align:right}
.fbar .fnote{grid-column:2/4;font-size:12px;color:var(--muted);margin-top:-4px}
.facts{display:grid;grid-template-columns:repeat(2,1fr);gap:0 26px;margin:0}
.facts div{display:flex;justify-content:space-between;gap:14px;padding:10px 0;border-bottom:1px solid var(--line);font-size:14px}
.facts dt{color:var(--muted)}
.facts dd{margin:0;font-weight:600;text-align:right}
.warnbox{border-radius:var(--r-sm);padding:12px 16px;background:color-mix(in srgb,var(--orange) 12%,transparent);font-size:14px}
.warnbox li{margin:3px 0}
.steps{list-style:none;margin:0;padding:0;position:relative}
.steps::before{content:"";position:absolute;left:15px;top:8px;bottom:8px;width:2px;background:var(--line)}
.steps li{position:relative;padding:0 0 18px 46px;opacity:0;transform:translateX(-10px);animation:slideIn .6s var(--out) forwards;animation-delay:calc(var(--i,0) * 90ms + 200ms)}
@keyframes slideIn{to{opacity:1;transform:none}}
.steps li::before{content:attr(data-n);position:absolute;left:0;top:-2px;width:32px;height:32px;border-radius:50%;background:var(--card);box-shadow:var(--shadow);display:grid;place-items:center;font-weight:700;font-size:14px;color:var(--accent)}
.steps b{display:block;font-size:15px}
.steps span{font-size:14px;color:var(--muted)}
.links{display:flex;flex-wrap:wrap;gap:8px}
.fine{margin-top:26px;font-size:12px;color:var(--muted)}
.owner{display:flex;gap:14px;align-items:center;background:var(--card);border-radius:var(--r-sm);padding:14px 16px;box-shadow:var(--shadow)}
.avatar{width:46px;height:46px;border-radius:50%;flex:none;display:grid;place-items:center;font-weight:700;color:#fff;background:linear-gradient(135deg,#8e5cf6,#0071e3)}
.owner b{display:block}
.owner span{font-size:13px;color:var(--muted)}
.owner .grow{flex:1;min-width:0}

/* title & redemption (premium) */
.prem{display:inline-block;margin-left:10px;vertical-align:middle;border-radius:980px;padding:3px 10px;font-size:11.5px;font-weight:700;letter-spacing:0;color:#3d2a00;
  background:linear-gradient(135deg,#ffe28a,#ffb340 60%,#ff9f0a);box-shadow:0 2px 8px rgba(255,159,10,.35)}
.redeem{border-radius:var(--r-sm);padding:16px 18px;background:linear-gradient(135deg,color-mix(in srgb,var(--blue) 14%,var(--card)),var(--card));box-shadow:var(--shadow);animation:rise .7s var(--out) both}
.redeem.redemption{background:linear-gradient(135deg,color-mix(in srgb,var(--orange) 18%,var(--card)),var(--card))}
.redeem.after_sale,.redeem.closed{background:var(--card)}
.rdh{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}
.rdh b{font-size:17px;letter-spacing:-.02em}
.rdd{font-size:30px;font-weight:800;letter-spacing:-.04em;line-height:1;text-align:right}
.rdd small{display:block;font-size:11px;color:var(--muted);font-weight:600;letter-spacing:.05em;text-transform:uppercase}
.redeem p{margin:8px 0 0;font-size:14px;color:var(--ink2)}
.redeem small{display:block;margin-top:8px;color:var(--muted);font-size:12px}
.flags{list-style:none;margin:12px 0 0;padding:0}
.flags li{display:flex;gap:10px;align-items:flex-start;padding:8px 0;border-bottom:1px solid var(--line);font-size:14px}
.flags li i{flex:none;width:9px;height:9px;border-radius:50%;margin-top:6px;background:var(--muted)}
.flags li.bad i{background:var(--red);box-shadow:0 0 0 4px color-mix(in srgb,var(--red) 18%,transparent)}
.flags li.warn i{background:var(--orange)}
.tiles.tt{grid-template-columns:repeat(5,1fr);margin-top:14px}
.tiles.tt b{font-size:22px}
.grp{margin-top:10px;background:var(--card);border-radius:var(--r-sm);box-shadow:var(--shadow);padding:4px 14px}
.grp summary{cursor:pointer;padding:10px 0;font-weight:650;list-style:none;display:flex;justify-content:space-between}
.grp summary i{font-style:normal;color:var(--muted)}
.rec{padding:10px 0;border-top:1px solid var(--line);font-size:13.5px}
.rec .rt{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap}
.rec .rt span{color:var(--muted);font-size:12.5px}
.rec .rp{color:var(--ink2);margin-top:2px}
.rec .rw{color:var(--muted);font-size:12.5px;margin-top:2px}
.rec .re{margin-top:4px;font-size:12.5px;color:#c26a00}
.rec .rr{margin-top:4px;font-size:12.5px;color:var(--accent)}
.rec.open .rt b{color:var(--red)}
.imp{margin-top:14px;background:var(--card);border-radius:var(--r-sm);box-shadow:var(--shadow);padding:14px 18px}
.imp h4{margin:0 0 6px;font-size:16px}
.imp ol{margin:0;padding-left:20px}
.imp li{margin:10px 0;font-size:14px;color:var(--ink2)}
.imp textarea,.imp input:not([type=file]){display:block;width:100%;margin-top:8px;border:0;border-radius:10px;padding:10px 12px;background:var(--fill);outline:0;font:13px/1.45 ui-monospace,Consolas,monospace}
.imp input:not([type=file]){font:14px Inter,system-ui,sans-serif}
.locked{display:grid;gap:6px;justify-items:start;padding:16px 18px;border-radius:var(--r-sm);background:var(--card);box-shadow:var(--shadow)}
.locked span{color:var(--muted);font-size:14px}
@media (max-width:820px){.tiles.tt{grid-template-columns:repeat(3,1fr)}}

/* presentation mode: owner names, mailing addresses and parcel ids are blurred for screen recording */
body.demo .pii{filter:blur(7px);user-select:none}
.demo-pill{position:fixed;z-index:200;left:50%;bottom:22px;transform:translate(-50%,120px);border-radius:980px;padding:9px 16px;font-size:13px;font-weight:650;
  background:var(--ink);color:var(--bg);box-shadow:var(--shadow-lg);transition:transform .5s var(--spring);display:flex;gap:8px;align-items:center}
.demo-pill.on{transform:translate(-50%,0)}
.demo-pill button{border:0;background:rgba(127,127,127,.3);color:inherit;border-radius:980px;padding:3px 10px;font-size:12px;font-weight:650}

/* tune sheet */
.tune-in{padding:22px 22px 120px}
.tune-in h2{margin:4px 0 2px;font-size:28px;letter-spacing:-.04em}
.tune-in>p{margin:0 0 18px;color:var(--muted);font-size:14px}
.who{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:14px}
.who button{border:0;border-radius:var(--r-sm);padding:12px 14px;text-align:left;background:var(--card);box-shadow:var(--shadow);transition:transform .3s var(--spring),box-shadow .3s}
.who button b{display:block;font-size:15px;letter-spacing:-.02em}
.who button span{font-size:12px;color:var(--muted)}
.who button.on{box-shadow:0 0 0 2px var(--accent),var(--shadow);transform:translateY(-2px)}
.who button.on b{color:var(--accent)}
.tgroup{background:var(--card);border-radius:var(--r-sm);padding:6px 14px;margin-bottom:14px;box-shadow:var(--shadow)}
.tgroup h4{margin:12px 0 4px;font-size:12px;text-transform:uppercase;letter-spacing:.07em;color:var(--muted)}
.trow{padding:10px 0;border-bottom:1px solid var(--line)}
.trow:last-child{border-bottom:0}
.trow .top{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:14.5px;font-weight:600}
.trow .top em{font-style:normal;font-weight:600;font-size:13px;color:var(--blue);min-width:60px;text-align:right}
.trow small{display:block;color:var(--muted);font-size:12px;font-weight:400}
input[type=range]{-webkit-appearance:none;appearance:none;width:100%;height:28px;background:transparent;margin:4px 0 0}
input[type=range]::-webkit-slider-runnable-track{height:4px;border-radius:2px;background:linear-gradient(90deg,var(--blue) var(--p,50%),var(--fill) var(--p,50%))}
input[type=range]::-moz-range-track{height:4px;border-radius:2px;background:var(--fill)}
input[type=range]::-moz-range-progress{height:4px;border-radius:2px;background:var(--blue)}
input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:26px;height:26px;margin-top:-11px;border-radius:50%;background:#fff;box-shadow:0 0 0 .5px rgba(0,0,0,.08),0 3px 8px rgba(0,0,0,.2);transition:transform .2s var(--spring)}
input[type=range]::-moz-range-thumb{width:26px;height:26px;border:0;border-radius:50%;background:#fff;box-shadow:0 0 0 .5px rgba(0,0,0,.08),0 3px 8px rgba(0,0,0,.2)}
input[type=range]:active::-webkit-slider-thumb{transform:scale(1.12)}
.switch{position:relative;width:51px;height:31px;flex:none}
.switch input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer;z-index:1}
.switch i{position:absolute;inset:0;border-radius:16px;background:var(--fill);transition:background .3s}
.switch i::after{content:"";position:absolute;top:2px;left:2px;width:27px;height:27px;border-radius:50%;background:#fff;box-shadow:0 3px 8px rgba(0,0,0,.15),0 1px 1px rgba(0,0,0,.16);transition:transform .35s var(--spring)}
.switch input:checked+i{background:var(--accent2)}
.switch input:checked+i::after{transform:translateX(20px)}
.pills{display:flex;gap:6px;flex-wrap:wrap;padding:10px 0}
.pills button{border:0;border-radius:980px;padding:7px 13px;font-size:13px;font-weight:600;background:var(--fill);color:var(--ink2);transition:all .25s var(--spring)}
.pills button.on{background:var(--blue);color:#fff}
.tune-foot{position:sticky;bottom:0;display:flex;gap:10px;padding:14px 22px calc(14px + env(safe-area-inset-bottom));border-top:1px solid var(--line);margin-top:-100px}
.tune-foot .btn{flex:1}

/* studio */
.st-head{padding:26px 28px 0}
.st-head h2{margin:0;font-size:30px;letter-spacing:-.04em}
.st-head p{margin:4px 0 0;color:var(--muted)}
.stepper{display:flex;gap:6px;margin:20px 0 0;position:relative}
.stepper button{flex:1;border:0;background:none;padding:0 0 10px;font-size:13px;font-weight:650;color:var(--muted);text-align:left;position:relative}
.stepper button::after{content:"";position:absolute;left:0;right:0;bottom:0;height:4px;border-radius:2px;background:var(--fill)}
.stepper button.done::after,.stepper button.on::after{background:var(--accent)}
.stepper button.on{color:var(--ink)}
.st-body{padding:22px 28px 30px;min-height:420px}
.st-pane{display:none}
.st-pane.on{display:block;animation:paneIn .5s var(--out)}
@keyframes paneIn{from{opacity:0;transform:translateX(24px)}to{opacity:1;transform:none}}
.st-foot{position:sticky;bottom:0;display:flex;justify-content:space-between;gap:10px;padding:14px 28px;border-top:1px solid var(--line)}
.offer-big{text-align:center;padding:10px 0 4px}
.offer-big b{display:block;font-size:clamp(44px,7vw,64px);font-weight:800;letter-spacing:-.05em;line-height:1}
.offer-big span{color:var(--muted);font-size:14px}
.compare{margin-top:18px;display:grid;gap:12px}
.cmp .lb{display:flex;justify-content:space-between;font-size:13.5px;margin-bottom:5px}
.cmp .lb b{font-weight:700}
.cmp .tr{height:12px;border-radius:6px;background:var(--fill);overflow:hidden}
.cmp .tr i{display:block;height:100%;border-radius:6px;transition:width .6s var(--spring)}
.note{margin-top:14px;padding:12px 14px;border-radius:var(--r-sm);font-size:13.5px;background:var(--fill)}
.note.blue{background:color-mix(in srgb,var(--blue) 11%,transparent)}
.note.orange{background:color-mix(in srgb,var(--orange) 13%,transparent)}
.tpl{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:14px}
.tpl button{border:0;border-radius:var(--r-sm);padding:10px 12px;text-align:left;background:var(--card);box-shadow:var(--shadow);transition:transform .25s var(--spring),box-shadow .25s}
.tpl button b{display:block;font-size:14px}
.tpl button span{font-size:12px;color:var(--muted)}
.tpl button.on{box-shadow:0 0 0 2px var(--blue),var(--shadow);transform:translateY(-2px)}
.paper{background:#fffdf8;color:#1d1d1f;border-radius:6px;box-shadow:0 1px 2px rgba(0,0,0,.08),0 12px 40px rgba(0,0,0,.14);padding:0;position:relative}
.paper textarea{display:block;width:100%;min-height:440px;border:0;background:transparent;resize:vertical;padding:40px 46px;font:14.5px/1.6 "Iowan Old Style","Palatino Linotype",Georgia,serif;color:#1d1d1f;outline:0}
body.demo .paper textarea{filter:none}
.fields{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin:12px 0 0}
.fields input{border:0;border-radius:10px;padding:10px 12px;background:var(--fill);outline:0;font-size:14px}
.fields input:focus{box-shadow:0 0 0 3px color-mix(in srgb,var(--blue) 35%,transparent)}
.send-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
.send-grid .btn{padding:14px}
.checks{list-style:none;padding:0;margin:0}
.checks li{display:flex;gap:10px;padding:9px 0;border-bottom:1px solid var(--line);font-size:14px}
.checks li::before{content:"";flex:none;width:20px;height:20px;border-radius:50%;border:2px solid var(--accent);margin-top:1px}
.done-anim{text-align:center;padding:20px 0}
.done-anim svg{width:84px;height:84px}
.done-anim circle{fill:none;stroke:var(--accent);stroke-width:5;stroke-dasharray:252;stroke-dashoffset:252;animation:draw .8s var(--out) forwards}
.done-anim path{fill:none;stroke:var(--accent);stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:60;stroke-dashoffset:60;animation:draw .5s var(--out) .55s forwards}
@keyframes draw{to{stroke-dashoffset:0}}
@keyframes pop{0%{transform:scale(.6)}60%{transform:scale(1.25)}100%{transform:scale(1)}}

#toast{position:fixed;z-index:300;left:50%;top:calc(var(--nav-h) + 12px);transform:translate(-50%,-20px);opacity:0;pointer-events:none;border-radius:980px;padding:10px 18px;font-weight:600;font-size:14px;
  background:var(--ink);color:var(--bg);box-shadow:var(--shadow-lg);transition:all .45s var(--spring)}
#toast.on{transform:translate(-50%,0);opacity:1;pointer-events:auto}
.tour-pill{position:fixed;z-index:210;right:22px;bottom:22px;border-radius:980px;padding:10px 16px;background:var(--ink);color:var(--bg);font-weight:650;font-size:13.5px;box-shadow:var(--shadow-lg);display:none;gap:10px;align-items:center}
.tour-pill.on{display:flex;animation:pop .5s var(--spring)}
.tour-pill i{display:block;width:90px;height:4px;border-radius:2px;background:rgba(127,127,127,.35);overflow:hidden}
.tour-pill i::after{content:"";display:block;height:100%;width:100%;background:var(--accent2);transform-origin:left;animation:tbar var(--t,6s) linear forwards}
.tour-pill.paused i::after{animation-play-state:paused}
.tour-pill span{white-space:nowrap}
.tour-pill .btn{background:rgba(127,127,127,.28);color:inherit;padding:6px 12px}
.tour-pill #tourPause{background:var(--accent2);color:#04210f}
.tour-pill.paused #tourPause{animation:pop .5s var(--spring)}
@media (max-width:820px){.tour-pill{left:12px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom));justify-content:space-between;gap:8px;padding:8px 10px 8px 14px}
  .tour-pill i{flex:1;width:auto}}
@keyframes tbar{from{transform:scaleX(0)}to{transform:scaleX(1)}}
#printArea{display:none}

/* ---------- phone ---------- */
@media (max-width:820px){
  :root{--nav-h:56px}
  #nav{gap:10px}
  .brand span.name{display:none}
  .seg{margin:0}
  .seg button{padding:6px 11px}
  .search{display:none}
  .nav-right .classic{display:none}
  .hero{padding:40px 18px 20px}
  .stats{grid-template-columns:repeat(2,1fr);gap:10px;margin-top:26px}
  .toolbar-in{padding:10px 16px;flex-wrap:wrap}
  .tools{width:100%}
  .tools .msearch{display:flex;flex:1;width:auto;min-width:0}
  .tools .select{flex:none;max-width:42%}
  .tools .chip-btn{flex:none}
  .grid{padding:12px 16px 80px;grid-template-columns:1fr;gap:18px}
  .resultline{padding:14px 16px 2px}
  .sheet.modal{top:auto;bottom:0;left:0;width:100%;max-height:94vh;border-radius:26px 26px 0 0;transform:translateY(100%);opacity:1}
  .sheet.modal.open{transform:none}
  .d-hero{height:260px}
  .d-body,.st-body{padding:18px 18px 34px}
  .st-head{padding:22px 18px 0}
  .st-foot{padding:12px 18px calc(12px + env(safe-area-inset-bottom))}
  .d-title{left:18px;right:18px}
  .d-top{grid-template-columns:auto 1fr}
  .d-cta{grid-column:1/-1;flex-direction:row;flex-wrap:wrap}
  .d-cta .btn{flex:1}
  .tiles{grid-template-columns:repeat(2,1fr)}
  .facts{grid-template-columns:1fr}
  .fbar{grid-template-columns:110px 1fr 44px}
  .tpl{grid-template-columns:repeat(2,1fr)}
  .fields,.send-grid{grid-template-columns:1fr}
  .paper textarea{padding:26px 22px;font-size:14px}
  .board{padding:14px 16px 60px;grid-auto-columns:82%}
}
@media (min-width:821px){.tools .msearch{display:none}}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-delay:0ms!important;transition-duration:.01ms!important;transition-delay:0ms!important}}

/* ---------- print: only the letter (and LOI) ---------- */
@media print{
  body>*:not(#printArea){display:none!important}
  #printArea{display:block!important;color:#000;font:12pt/1.5 Georgia,serif}
  #printArea pre{white-space:pre-wrap;font:inherit;margin:0}
  #printArea .pb{break-before:page}
}

/* ways to pay (homebuyer programs for non-tax-sale properties) */
.pay-who{padding:0 0 12px}
.pay-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
.pay-card{--tone:var(--accent);display:flex;flex-direction:column;gap:2px;background:var(--card);border-radius:var(--r-sm);padding:14px 16px;box-shadow:var(--shadow);
  border-top:3px solid var(--tone);opacity:0;transform:translateY(14px);animation:rise .7s var(--out) forwards;animation-delay:calc(var(--i,0) * 70ms + 150ms)}
.pay-card.loan{--tone:var(--blue)}.pay-card.tax{--tone:var(--purple)}.pay-card.deal{--tone:var(--orange)}.pay-card.class{--tone:var(--teal)}
.pay-top{display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin-bottom:6px}
.pay-badge{font-size:11.5px;font-weight:700;border-radius:7px;padding:3px 8px;color:var(--tone);background:color-mix(in srgb,var(--tone) 14%,transparent)}
.pay-card>b{font-size:16px;letter-spacing:-.02em}
.pay-card p{margin:6px 0 0;font-size:13.5px;line-height:1.4}
.pay-card p.why{color:var(--ink2)}
.pay-card p.need{color:var(--muted);font-size:13px}
.pay-card p.need b{color:var(--ink2);font-weight:600}
.pay-foot{margin-top:auto;padding-top:10px;display:flex;justify-content:space-between;gap:10px;font-size:12px;color:var(--muted)}
.pay-foot a{font-weight:600}
.pay-more{margin-top:12px}
.pay-more .pay-grid{margin-top:10px}
.pay-h{margin:24px 0 12px;font-size:17px;letter-spacing:-.02em}
.pay-steps a{font-weight:600;white-space:nowrap}
.pay-note{margin-top:4px;font-size:13px}
@media (max-width:820px){.pay-grid{grid-template-columns:1fr}}
.pay-det{margin-top:6px;font-size:13px}
.pay-det summary{cursor:pointer;color:var(--blue);font-weight:600;list-style:none}
.pay-det summary::-webkit-details-marker{display:none}
