/* land-check.html — "Explore your project's potential".
   Loads after styles.css; only what this page adds. Same palette (dark #141210, gold #8c6d2a /
   #c9a961, paper #f5f1e8), no new colours. The homepage address bar lives here too. */

:root{--lc-dark:#141210;--lc-deep:#0f0e0c;--lc-gold:#c9a961;--lc-gold-deep:#8c6d2a;--lc-paper:#f5f1e8;--lc-ease:cubic-bezier(.22,.61,.36,1)}

/* ================= homepage: the bar under "Look at what your house could become" ================= */
.lc-search{display:flex;align-items:stretch;gap:0;max-width:820px;background:#fff;border:1px solid rgba(20,18,16,.18);box-shadow:0 18px 50px rgba(12,10,8,.10)}
.lc-search input{flex:1;min-width:0;border:0;background:transparent;padding:0 26px;font:500 18px/1 "DM Sans",Inter,Arial,sans-serif;color:#141210;outline:none}
.lc-search input::placeholder{color:#8f877a}
.lc-search .lc-search-postal{flex:0 0 150px;border-left:1px solid rgba(20,18,16,.14);text-transform:uppercase;letter-spacing:.06em}
.lc-search .lc-search-postal::placeholder{text-transform:none;letter-spacing:0}
.lc-search .btn{min-height:68px;border-radius:0;white-space:nowrap}
.lc-search:focus-within{border-color:#8c6d2a;box-shadow:0 18px 50px rgba(140,109,42,.18)}
.home-showcase .lc-explore{display:flex;flex-wrap:wrap;align-items:center;gap:18px 32px;margin:-16px 0 60px}
.home-showcase .lc-explore .lc-search{flex:1 1 520px;margin:0}
.home-showcase .lc-explore .amber-arrow-link{margin-top:0}
#explore{scroll-margin-top:82px}

/* ================= this page: header sits on the dark entry ================= */
.lc-page{background:var(--lc-dark)}
.lc-page .header .navright .btn{background:transparent;border:1px solid rgba(201,169,97,.45);color:#e8d7a8}
.lc-page .header .navright .btn:hover{background:var(--lc-gold);border-color:var(--lc-gold);color:#141210}
.lc-page .header .navlinks a.active{color:var(--lc-gold)}
.lc-page .motion-progress{display:none}

/* ================= THE ENTRY ================= */
.lc-enter{position:relative;min-height:100svh;height:100svh;background:var(--lc-dark);color:var(--lc-paper);overflow:hidden;isolation:isolate}

/* slow, quiet background: two drifting gold glows, a faint parcel grid, film grain */
.lc-bg{position:absolute;inset:0;z-index:0;pointer-events:none;overflow:hidden;contain:layout paint}
.lc-bg i{position:absolute;display:block}
.lc-bg-glow{left:50%;top:58%;width:120vmax;height:120vmax;margin:-60vmax 0 0 -60vmax;border-radius:50%;background:radial-gradient(circle at center,rgba(214,181,110,.09) 0%,rgba(201,169,97,.05) 22%,rgba(140,109,42,.02) 40%,rgba(20,18,16,0) 55%);animation:lcDrift 26s ease-in-out infinite alternate,lcBreathe 9s ease-in-out infinite;will-change:transform,opacity}
@keyframes lcBreathe{0%,100%{opacity:.7}50%{opacity:1}}
/* light rays: a slow conic sweep, masked to the centre — the "treasure in the dark" */
.lc-bg-rays{left:50%;top:58%;width:170vmax;height:170vmax;margin:-85vmax 0 0 -85vmax;border-radius:50%;background:conic-gradient(from 0deg,transparent 0 5%,rgba(241,223,174,.05) 8%,transparent 12%,transparent 22%,rgba(201,169,97,.04) 26%,transparent 31%,transparent 45%,rgba(241,223,174,.06) 50%,transparent 55%,transparent 68%,rgba(201,169,97,.04) 72%,transparent 77%,transparent 88%,rgba(241,223,174,.05) 92%,transparent 97%);-webkit-mask-image:radial-gradient(circle at center,transparent 0%,rgba(0,0,0,.5) 30%,#000 60%);mask-image:radial-gradient(circle at center,transparent 0%,rgba(0,0,0,.5) 30%,#000 60%);animation:lcRays 90s linear infinite}
@keyframes lcRays{to{transform:rotate(360deg)}}
.lc-bg-motes{position:absolute;inset:0;width:100%;height:100%}
/* aurora: two soft gold veils drifting across each other — the surreal layer */
.lc-bg-aurora{left:-10%;top:55%;width:70vmax;height:40vmax;border-radius:50%;background:radial-gradient(ellipse at center,rgba(214,181,110,.16),rgba(201,169,97,.06) 45%,transparent 70%);filter:blur(24px);animation:lcAurora 22s ease-in-out infinite alternate;will-change:transform}
.lc-bg-aurora--2{left:60%;top:-5%;width:70vmax;height:36vmax;background:radial-gradient(ellipse at center,rgba(241,223,174,.14),rgba(201,169,97,.05) 45%,transparent 70%);animation:lcAurora2 31s ease-in-out infinite alternate}
@keyframes lcAurora{from{transform:translate(-8%,-6%) rotate(-8deg) scale(1)}to{transform:translate(10%,8%) rotate(6deg) scale(1.15)}}
@keyframes lcAurora2{from{transform:translate(10%,6%) rotate(10deg)}to{transform:translate(-12%,-10%) rotate(-6deg) scale(1.2)}}
.lc-bg-vignette{inset:0;background:radial-gradient(ellipse 70% 60% at 50% 55%,rgba(10,9,7,.35) 0%,transparent 55%),radial-gradient(circle at 0% 100%,rgba(201,169,97,.10),transparent 45%),radial-gradient(circle at 100% 0%,rgba(201,169,97,.09),transparent 45%),radial-gradient(circle at 100% 100%,rgba(140,109,42,.07),transparent 40%),radial-gradient(circle at 0% 0%,rgba(140,109,42,.06),transparent 40%)}
.lc-bg-glow--2{left:30%;top:20%;width:80vmax;height:80vmax;margin:-40vmax 0 0 -40vmax;background:radial-gradient(circle at center,rgba(140,109,42,.14) 0%,rgba(20,18,16,0) 50%);animation:lcDrift2 34s ease-in-out infinite alternate}
.lc-bg-grain{inset:0;opacity:.07;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='220' height='220'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 1  0 0 0 0 .92  0 0 0 0 .75  0 0 0 .9 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>")}
@keyframes lcDrift{from{transform:translate(-4%,-2%) scale(1)}to{transform:translate(5%,4%) scale(1.12)}}
@keyframes lcDrift2{from{transform:translate(6%,3%)}to{transform:translate(-8%,-6%) scale(1.15)}}
@keyframes lcGrid{from{background-position:0 0}to{background-position:0 140px}}

/* the rendering lives under everything, invisible until revealed */
.lc-canvas-wrap{position:absolute;inset:0;z-index:1;opacity:0;transition:opacity 1.2s ease}
.lc-canvas{position:absolute;inset:0}
.lc-canvas.km-root{border-radius:0}
.lc-enter.is-revealed .lc-canvas-wrap{opacity:1}
.lc-enter.is-revealed .lc-bg{opacity:0;visibility:hidden;transition:opacity 1.6s ease,visibility 0s 1.6s}
.lc-enter.is-revealed .lc-bg i{animation-play-state:paused}   /* frozen, not just faded — eight animated layers under the 3D view is what made it lag */

/* the shade: a dark sheet over the canvas that irises open from the centre once the model is
   ready. JS drives --r (0% → 140%) with requestAnimationFrame; nothing to animate in CSS. */
.lc-shade{position:absolute;inset:0;z-index:2;background:var(--lc-dark);pointer-events:none;--r:0%;-webkit-mask:radial-gradient(circle at 50% 56%,transparent var(--r),#000 calc(var(--r) + 22%));mask:radial-gradient(circle at 50% 56%,transparent var(--r),#000 calc(var(--r) + 22%))}
.lc-shade.is-open{display:none}

/* the horizon: a gold line that opens from the centre while we look the lot up */
.lc-horizon{position:absolute;left:50%;top:56%;z-index:3;width:min(720px,80vw);height:1px;transform:translate(-50%,-50%) scaleX(0);background:linear-gradient(90deg,transparent,var(--lc-gold) 20%,#f1dfae 50%,var(--lc-gold) 80%,transparent);box-shadow:0 0 24px rgba(201,169,97,.55),0 0 80px rgba(201,169,97,.25);opacity:0;pointer-events:none;transition:transform 1.1s var(--lc-ease) .35s,opacity .4s ease .35s}
.lc-horizon span{position:absolute;left:50%;top:22px;transform:translateX(-50%);white-space:nowrap;font:500 10px Inter,sans-serif;letter-spacing:.32em;text-transform:uppercase;color:var(--lc-gold);opacity:0;transition:opacity .6s ease 1.2s}
.lc-enter.is-revealing .lc-horizon{opacity:1;transform:translate(-50%,-50%) scaleX(1)}
.lc-enter.is-revealing .lc-horizon span{opacity:1}
.lc-enter.is-revealed .lc-horizon{opacity:0;transform:translate(-50%,-50%) scaleX(1.25);transition:opacity .8s ease,transform 1.4s var(--lc-ease)}
.lc-enter.is-revealed .lc-horizon span{opacity:0;transition:opacity .3s}

/* the invitation, centred */
.lc-invite{position:absolute;inset:0;z-index:4;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:110px 24px 60px;transition:opacity .7s ease,filter .7s ease,transform .9s var(--lc-ease)}
.lc-invite .eyebrow{color:var(--lc-gold);font-size:11px;letter-spacing:.34em;margin-bottom:34px;opacity:0;animation:lcUp 1.1s var(--lc-ease) .2s forwards}
.lc-invite .eyebrow::before{display:none}
.lc-invite h1{font-family:'Playfair Display',Georgia,serif;font-weight:500;font-size:clamp(44px,7vw,104px);line-height:1;letter-spacing:-.035em;margin:0;color:var(--lc-paper);opacity:0;animation:lcUp 1.2s var(--lc-ease) .4s forwards}
.lc-invite h1 em{font-style:italic;color:var(--lc-gold)}
.lc-invite-lead{max-width:560px;margin:30px 0 0;font-size:17px;line-height:1.6;color:rgba(245,241,232,.66);opacity:0;animation:lcUp 1.2s var(--lc-ease) .65s forwards}
.lc-invite-note{margin:34px 0 0;font-size:11px;letter-spacing:.04em;color:rgba(245,241,232,.38);max-width:520px;opacity:0;animation:lcUp 1.2s var(--lc-ease) 1.1s forwards}
@keyframes lcUp{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}
.lc-enter.is-revealing .lc-invite,.lc-enter.is-revealed .lc-invite{opacity:0;filter:blur(10px);transform:translateY(-24px) scale(.985);pointer-events:none}

/* the field: one luminous underline with two slots — address, then postal code */
.lc-field{position:relative;display:flex;align-items:baseline;width:min(960px,100%);margin-top:54px;padding-right:140px;border-bottom:1px solid rgba(201,169,97,.38);opacity:0;animation:lcUp 1.2s var(--lc-ease) .85s forwards;transition:border-color .4s,box-shadow .6s}
.lc-field:focus-within{border-color:var(--lc-gold);box-shadow:0 24px 60px -30px rgba(201,169,97,.55)}
.lc-field input{background:transparent;border:0;outline:none;caret-color:var(--lc-gold);font:italic 500 clamp(20px,2.5vw,30px)/1.2 'Playfair Display',Georgia,serif;color:var(--lc-paper);padding:16px 8px 18px}
.lc-field input::placeholder{color:rgba(245,241,232,.38);font-style:italic}
.lc-field input#lc-address{flex:1;min-width:0;text-align:center}
.lc-field-divider{flex:none;width:1px;height:.9em;align-self:center;background:rgba(201,169,97,.35)}
.lc-field-postal{flex:0 0 clamp(170px,15vw,200px);text-align:center;text-transform:uppercase;letter-spacing:.04em;font-style:italic}
.lc-field-postal::placeholder{text-transform:none;letter-spacing:0}
.lc-field.is-missing-postal{border-color:#d6b58a}
.lc-field.is-missing-postal .lc-field-postal::placeholder{color:#d6b58a}
.lc-field::after{content:'';position:absolute;left:50%;bottom:-1px;width:0;height:1px;background:#f1dfae;box-shadow:0 0 18px rgba(201,169,97,.8);transform:translateX(-50%);transition:width .8s var(--lc-ease)}
.lc-field:focus-within::after{width:100%}
/* Chrome paints autofilled fields pale blue — keep ours dark */
.lc-field input:-webkit-autofill,.lc-field input:-webkit-autofill:hover,.lc-field input:-webkit-autofill:focus{-webkit-text-fill-color:var(--lc-paper);-webkit-box-shadow:0 0 0 1000px var(--lc-dark) inset;box-shadow:0 0 0 1000px var(--lc-dark) inset;caret-color:var(--lc-gold);transition:background-color 99999s ease-in-out 0s;font:italic 500 clamp(22px,3.2vw,36px)/1.2 'Playfair Display',Georgia,serif}
.lc-reveal{position:absolute;right:0;top:50%;transform:translateY(-50%);display:inline-flex;align-items:center;gap:12px;background:none;border:0;padding:12px 8px;color:var(--lc-gold);font:600 11px Inter,sans-serif;letter-spacing:.3em;text-transform:uppercase;cursor:pointer;opacity:.85;transition:opacity .3s,gap .4s var(--lc-ease)}
.lc-reveal i{font-style:normal;font-size:16px;line-height:1;transition:transform .4s var(--lc-ease)}
.lc-reveal:hover,.lc-field:focus-within .lc-reveal{opacity:1;gap:18px}
.lc-reveal:hover i{transform:translateX(4px)}
.lc-error{margin:22px 0 0;font-size:14px;color:#d6b58a;max-width:560px}
.lc-error:empty{display:none}
.lc-error code{font:500 13px/1.5 ui-monospace,Menlo,monospace;color:var(--lc-paper);background:rgba(255,255,255,.06);padding:2px 6px}
.lc-error a{color:var(--lc-gold);border-bottom:1px solid currentColor}

/* "Is this your lot?" */
.lc-candidates{width:min(560px,100%);margin-top:26px;border:1px solid rgba(201,169,97,.3);background:rgba(20,18,16,.7);backdrop-filter:blur(8px);text-align:left}
.lc-candidates:empty{display:none}
.lc-candidates h4{margin:0;padding:14px 22px;font:600 10px/1 Inter,sans-serif;letter-spacing:.28em;text-transform:uppercase;color:var(--lc-gold);border-bottom:1px solid rgba(201,169,97,.2)}
.lc-candidates button{display:flex;width:100%;justify-content:space-between;gap:20px;padding:16px 22px;background:none;border:0;border-bottom:1px solid rgba(201,169,97,.12);font:500 16px "DM Sans",sans-serif;color:var(--lc-paper);text-align:left;cursor:pointer}
.lc-candidates button:last-child{border-bottom:0}
.lc-candidates button:hover{background:rgba(201,169,97,.1)}
.lc-candidates button span{color:rgba(245,241,232,.5);font-size:13px;white-space:nowrap}

/* ================= "doesn't qualify" — takes the invitation's place ================= */
.lc-sorry{position:absolute;inset:0;z-index:4;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:110px 24px 60px;opacity:0;transition:opacity .9s ease .2s}
.lc-sorry[hidden]{display:none}
.lc-enter.is-sorry .lc-sorry{opacity:1}
.lc-enter.is-sorry .lc-invite{opacity:0;filter:blur(10px);pointer-events:none}
.lc-enter.is-sorry .lc-horizon{opacity:0}
.lc-sorry .eyebrow{color:var(--lc-gold);font-size:11px;letter-spacing:.34em;margin-bottom:34px}
.lc-sorry .eyebrow::before{display:none}
.lc-sorry h1{font-family:'Playfair Display',Georgia,serif;font-weight:500;font-size:clamp(40px,6vw,88px);line-height:1;letter-spacing:-.035em;margin:0;color:var(--lc-paper);max-width:1000px}
.lc-sorry h1 em{font-style:italic;color:var(--lc-gold)}
.lc-sorry-text{max-width:600px;margin:30px 0 0;font-size:18px;line-height:1.6;color:rgba(245,241,232,.7)}
.lc-sorry-detail{margin:14px 0 0;max-width:640px;font:400 12px/1.5 ui-monospace,Menlo,monospace;color:rgba(245,241,232,.35)}
.lc-sorry-detail[hidden]{display:none}
.lc-sorry-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:22px 44px;margin-top:46px}
.lc-sorry-actions .lc-reveal{position:static;transform:none;padding:0}
.lc-sorry-actions .btn{background:transparent;border:1px solid rgba(201,169,97,.5);color:#e8d7a8;min-height:56px;padding:0 26px}
.lc-sorry-actions .btn:hover{background:var(--lc-gold);border-color:var(--lc-gold);color:#141210}
.lc-sorry .lc-invite-note{animation:none;opacity:1}

.lc-sorry-form{display:flex;align-items:baseline;gap:10px;width:min(520px,100%);margin-top:40px;border-bottom:1px solid rgba(201,169,97,.38);padding-bottom:10px}
.lc-sorry-form[hidden]{display:none}
.lc-sorry-form span{font-family:'Playfair Display',Georgia,serif;font-size:clamp(26px,3vw,40px);color:var(--lc-gold)}
.lc-sorry-form input{flex:1;min-width:0;background:transparent;border:0;outline:none;font:500 clamp(28px,3.4vw,46px)/1 'Playfair Display',Georgia,serif;letter-spacing:-.03em;color:var(--lc-paper);font-variant-numeric:lining-nums tabular-nums;caret-color:var(--lc-gold);text-align:center}
.lc-sorry-form input::placeholder{color:rgba(245,241,232,.3)}
.lc-sorry-form .lc-reveal{position:static;transform:none;padding:0}
.lc-sorry.is-asking .lc-sorry-actions{margin-top:26px}
.lc-recompute-note{margin:18px 0 0;font-size:13px;color:#d6b58a}
.lc-recompute-note[hidden]{display:none}

/* ================= THE HUD over the house ================= */
.lc-hud{position:absolute;inset:0;z-index:5;pointer-events:none;display:flex;flex-direction:column;justify-content:space-between;padding:104px 48px 96px;opacity:0;transition:opacity 1.2s ease .3s}
.lc-hud[hidden]{display:none}
.lc-enter.is-revealed .lc-hud.is-on{opacity:1}
.lc-hud .eyebrow{color:var(--lc-gold);margin:0;font-size:10px;letter-spacing:.3em}
.lc-hud .eyebrow::before{display:none}
.lc-hud .eyebrow b{color:var(--lc-paper);font-weight:500;letter-spacing:.04em;text-transform:none;font-size:13px}
.lc-hud-top{pointer-events:auto;position:relative}
.lc-hud::before{content:'';position:absolute;left:0;right:0;top:0;height:240px;background:linear-gradient(180deg,rgba(20,18,16,.82),rgba(20,18,16,.35) 55%,rgba(20,18,16,0));pointer-events:none}
.lc-hud-bottom{display:flex;align-items:flex-end;justify-content:space-between;gap:24px 48px;position:relative}
.lc-hud-bottom::before{content:'';position:absolute;left:-48px;right:-48px;bottom:-96px;height:calc(100% + 240px);background:linear-gradient(180deg,rgba(20,18,16,0),rgba(20,18,16,.72) 45%,rgba(20,18,16,.96));z-index:-1;pointer-events:none}
.lc-hud-copy{pointer-events:auto;max-width:760px}
.lc-hud-copy h2{font-family:'Playfair Display',Georgia,serif;font-weight:500;font-size:clamp(26px,3vw,44px);line-height:1.02;letter-spacing:-.03em;margin:0 0 16px;color:var(--lc-paper)}
.lc-hud-copy h2 span{color:var(--lc-gold);font-style:italic}
.lc-facts{display:flex;flex-wrap:wrap;gap:8px 30px;margin:0;padding:0;list-style:none}
.lc-facts li{font:500 13px/1.3 "DM Sans",sans-serif;color:rgba(245,241,232,.84)}
.lc-facts li small{display:block;font:600 9px Inter,sans-serif;letter-spacing:.24em;text-transform:uppercase;color:var(--lc-gold);margin-bottom:4px}
.lc-like{grid-column:1/-1;display:flex;align-items:center;gap:16px;color:rgba(245,241,232,.6);font-size:14px;margin-top:8px}
.lc-like:empty{display:none}
.lc-like img{width:84px;height:56px;object-fit:cover;flex:none;border:1px solid rgba(201,169,97,.35)}
.lc-like b{color:var(--lc-paper);font-weight:600}
.lc-like a{color:var(--lc-gold);border-bottom:1px solid currentColor}
.lc-preview-pill{display:inline-flex;align-items:center;margin-left:14px;padding:4px 10px;border:1px dashed rgba(201,169,97,.55);color:var(--lc-gold);font:500 9px Inter,sans-serif;letter-spacing:.2em;text-transform:uppercase;vertical-align:middle}
.lc-preview-pill:empty{display:none}
.lc-controls{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px;pointer-events:auto}
.lc-controls button{background:rgba(20,18,16,.45);backdrop-filter:blur(6px);border:1px solid rgba(201,169,97,.35);color:var(--lc-paper);padding:9px 14px;font:500 10px Inter,sans-serif;letter-spacing:.16em;text-transform:uppercase;cursor:pointer;transition:.25s}
.lc-controls button:hover,.lc-controls button[aria-pressed="true"]{background:var(--lc-gold);border-color:var(--lc-gold);color:#141210}
.lc-controls button[hidden]{display:none}
.lc-cue{position:absolute;left:50%;bottom:16px;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:10px;color:var(--lc-gold);font:600 9px Inter,sans-serif;letter-spacing:.3em;text-transform:uppercase;pointer-events:auto;opacity:.9}
.lc-cue i{display:block;width:1px;height:34px;background:linear-gradient(var(--lc-gold),transparent);animation:lcCue 2.2s ease-in-out infinite}
@keyframes lcCue{0%{transform:scaleY(0);transform-origin:top}45%{transform:scaleY(1);transform-origin:top}55%{transform:scaleY(1);transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}
.lc-canvas.is-clickable .km-canvas{cursor:pointer}

/* the viewer's own bits on this page */
.lc-enter .km-root::after{left:auto;right:48px;bottom:74px;font-size:10px;color:rgba(245,241,232,.55);background:none;padding:0;backdrop-filter:none}
.lc-enter .km-compass{top:auto;bottom:118px;right:48px}
.lc-enter .km-root::before{background:radial-gradient(ellipse at 50% 45%,rgba(0,0,0,0) 50%,rgba(20,18,16,.45) 100%)}

/* ================= THE NUMBERS (dark) ================= */
.lc-numbers{background:var(--lc-deep);color:var(--lc-paper);border-top:1px solid rgba(201,169,97,.2);scroll-margin-top:0;padding:72px 0 110px}
.lc-numbers[hidden]{display:none}
.lc-numbers-head{display:grid;grid-template-columns:1fr 1fr;gap:32px 80px;align-items:end;padding-bottom:40px}
.lc-numbers-title .eyebrow{color:var(--lc-gold);margin:0 0 14px;font-size:10px;letter-spacing:.28em}
.lc-numbers-title .eyebrow::before{display:none}
.lc-numbers-head h2{font-family:'Playfair Display',Georgia,serif;font-weight:500;font-size:clamp(34px,3.6vw,54px);line-height:1;letter-spacing:-.03em;margin:0;color:var(--lc-paper)}
.lc-numbers-head h2 span{color:var(--lc-gold);font-style:italic}

/* the owner's land value (public path: MONOPOLAI's MLS-derived figure never reaches the site) */
.lc-numbers-head.has-landprice{grid-template-columns:1fr .9fr 1fr}
.lc-postal-field input{text-transform:uppercase;letter-spacing:.04em}
.lc-postal.is-missing .lc-landprice-field{border-color:#d6b58a}
.lc-landprice[hidden]{display:none}
.lc-landprice-field{display:flex;align-items:baseline;gap:6px;border-bottom:1px solid rgba(201,169,97,.38);padding:0 0 10px;margin-bottom:18px}
.lc-landprice-field span{font-family:'Playfair Display',Georgia,serif;font-size:clamp(28px,3vw,44px);color:var(--lc-gold)}
.lc-landprice-field input{flex:1;min-width:0;background:transparent;border:0;outline:none;font-family:'Playfair Display',Georgia,serif;font-weight:500;font-size:clamp(34px,3.6vw,54px);line-height:1;letter-spacing:-.03em;color:var(--lc-paper);font-variant-numeric:lining-nums tabular-nums;caret-color:var(--lc-gold)}
.lc-landprice-field input::placeholder{color:rgba(245,241,232,.3)}
.lc-landprice:focus-within .lc-landprice-field{border-color:var(--lc-gold)}
.lc-landprice.is-missing .lc-landprice-field{border-color:#d6b58a}
/* the mortgage slider, in the banner */
.lc-mortgage-label{display:block;font:600 10px Inter,sans-serif;letter-spacing:.26em;text-transform:uppercase;color:var(--lc-gold);margin-bottom:10px}
.lc-mortgage-val{display:block;font-family:'Playfair Display',Georgia,serif;font-weight:500;font-size:clamp(34px,3.6vw,54px);line-height:1;letter-spacing:-.03em;color:var(--lc-paper);font-variant-numeric:lining-nums tabular-nums;margin-bottom:18px;transition:color .3s}
.lc-mortgage-val.is-zero{color:var(--lc-gold);font-style:italic}
.lc-mortgage input[type=range]{-webkit-appearance:none;appearance:none;width:100%;height:2px;background:linear-gradient(90deg,var(--lc-gold) var(--p,20%),rgba(245,241,232,.14) var(--p,20%));outline:none;cursor:pointer;margin:0;display:block}
.lc-mortgage input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:22px;height:22px;border-radius:50%;background:var(--lc-paper);border:1px solid var(--lc-gold);box-shadow:0 0 0 6px rgba(201,169,97,.18),0 0 24px rgba(201,169,97,.55);transition:box-shadow .3s}
.lc-mortgage input[type=range]::-moz-range-thumb{width:22px;height:22px;border-radius:50%;background:var(--lc-paper);border:1px solid var(--lc-gold);box-shadow:0 0 0 6px rgba(201,169,97,.18),0 0 24px rgba(201,169,97,.55)}
.lc-mortgage input[type=range]:focus-visible::-webkit-slider-thumb{box-shadow:0 0 0 10px rgba(201,169,97,.3),0 0 30px rgba(201,169,97,.7)}
.lc-mortgage-scale{display:flex;justify-content:space-between;margin-top:12px;font:600 9px Inter,sans-serif;letter-spacing:.24em;text-transform:uppercase;color:rgba(245,241,232,.4)}
.lc-numbers.is-recomputing .lc-ranges{opacity:.45;transition:opacity .2s}

/* the rows */
.lc-ranges{display:grid;grid-template-columns:repeat(2,1fr);gap:0 80px;border-top:1px solid rgba(201,169,97,.25);transition:opacity .5s}
.lc-range{display:grid;grid-template-columns:1fr auto;grid-template-areas:"label val" "bar bar" "hint hint";gap:6px 24px;align-items:end;padding:26px 0 22px;border-bottom:1px solid rgba(245,241,232,.1)}
.lc-range.is-hero{grid-template-columns:1fr;grid-template-areas:"label" "val" "bar" "hint";gap:14px 0;align-items:start;padding:48px 0 40px;border-bottom:1px solid rgba(201,169,97,.35);position:relative}
.lc-range.is-hero::before{content:'';position:absolute;left:-40px;right:-40px;top:0;bottom:0;background:radial-gradient(ellipse 70% 60% at 50% 50%,rgba(201,169,97,.10),transparent 70%);pointer-events:none}
.lc-range.is-hero .lc-range-val{font-size:clamp(56px,7vw,116px);letter-spacing:-.04em;text-shadow:0 0 40px rgba(201,169,97,.35),0 0 90px rgba(201,169,97,.18)}
.lc-range.is-hero .lc-range-val.is-negative{color:#d6b58a}
.lc-range.is-hero .lc-range-hint{font-size:15px}
.lc-range-group{grid-column:1/-1;padding:44px 0 10px;font:italic 500 clamp(22px,2.2vw,32px)/1.1 'Playfair Display',Georgia,serif;letter-spacing:-.01em;color:var(--lc-gold);border-bottom:1px solid rgba(245,241,232,.1)}
.lc-range-label{grid-area:label;font:500 clamp(20px,1.7vw,26px)/1.15 'Playfair Display',Georgia,serif;letter-spacing:-.01em;color:var(--lc-paper);padding-bottom:4px}
.lc-range.is-hero .lc-range-label{font-size:clamp(24px,2.2vw,34px);font-style:italic;color:var(--lc-gold)}
.lc-range-val{grid-area:val;font-family:'Playfair Display',Georgia,serif;font-weight:500;font-size:clamp(26px,2.6vw,40px);letter-spacing:-.03em;line-height:1;color:var(--lc-paper);font-variant-numeric:lining-nums tabular-nums;white-space:nowrap}
.lc-range.is-hero .lc-range-val{font-size:clamp(44px,5.5vw,84px)}
.lc-range-val small{font-family:'Playfair Display',Georgia,serif;font-style:italic;font-size:.4em;font-weight:500;color:rgba(245,241,232,.5);letter-spacing:0;margin:0 10px}
.lc-range-val.is-negative{color:#d6b58a}
.lc-range-bar{grid-area:bar;height:2px;background:rgba(245,241,232,.1);position:relative;margin-top:8px}
.lc-range-bar i{position:absolute;top:0;bottom:0;background:linear-gradient(90deg,var(--lc-gold-deep),var(--lc-gold))}
.lc-range-bar b{position:absolute;top:-4px;width:10px;height:10px;border-radius:50%;background:var(--lc-paper);transform:translateX(-50%);box-shadow:0 0 12px rgba(201,169,97,.7)}
.lc-range-hint{grid-area:hint;font-size:14px;color:rgba(245,241,232,.5);margin-top:6px}
.lc-range-hint em{font-style:normal;color:var(--lc-gold);opacity:.85}
.lc-range-hint:empty{display:none}
.lc-range.is-empty .lc-range-val{color:rgba(245,241,232,.5);font-size:16px;font-family:"DM Sans",sans-serif;font-style:normal;letter-spacing:0}

/* footnote, notes, CTA */
.lc-assumptions{margin-top:28px;font-size:13px;line-height:1.6;color:rgba(245,241,232,.5);max-width:820px}
.lc-assumptions b{color:var(--lc-paper);font-weight:500}
/* how the rent was reached — evidence → conclusion → rent (calculAI proforma.rent, two layers) */
.lc-rent-how{margin-top:18px;max-width:820px;padding:14px 16px;border:1px solid rgba(245,241,232,.12);border-radius:8px;font-size:13px;line-height:1.6;color:rgba(245,241,232,.6)}
.lc-rent-how small{display:block;font:600 10px Inter,sans-serif;letter-spacing:.24em;text-transform:uppercase;color:var(--lc-gold);margin-bottom:8px}
.lc-rent-how ol{margin:0;padding:0;list-style:none;display:flex;flex-wrap:wrap;gap:6px 18px}
.lc-rent-how li{position:relative;padding-left:0}
.lc-rent-how li+li::before{content:'→';position:absolute;left:-14px;color:rgba(245,241,232,.35)}
.lc-rent-how b{color:var(--lc-paper);font-weight:500}
.lc-rent-how em{display:block;margin-top:6px;font-style:normal;color:rgba(245,241,232,.45);font-size:12px}
.lc-notes{margin-top:14px;max-width:820px}
.lc-notes summary{cursor:pointer;list-style:none;display:inline-flex;align-items:center;gap:10px;font:600 10px Inter,sans-serif;letter-spacing:.24em;text-transform:uppercase;color:var(--lc-gold)}
.lc-notes summary::-webkit-details-marker{display:none}
.lc-notes summary::before{content:'+';font-size:14px;line-height:1}
.lc-notes[open] summary::before{content:'−'}
.lc-notes summary:empty,.lc-notes.is-empty{display:none}
.lc-warnings{margin:12px 0 0;padding:0;list-style:none;display:flex;flex-direction:column;gap:6px}
.lc-warnings li{font-size:12px;color:rgba(245,241,232,.55);padding-left:14px;position:relative}
.lc-warnings li::before{content:'·';position:absolute;left:0;top:0;color:var(--lc-gold)}
.lc-warnings:empty{display:none}
.lc-numbers-foot{margin-top:48px;display:flex;flex-wrap:wrap;align-items:center;gap:22px 40px}
.lc-numbers-foot .btn{min-height:68px;padding:0 34px;background:var(--lc-gold);border-color:var(--lc-gold);color:#141210}
.lc-numbers-foot .btn:hover{background:var(--lc-paper);border-color:var(--lc-paper)}
.lc-numbers-foot p{margin:0;font-size:14px;color:rgba(245,241,232,.55);max-width:360px}
.lc-like{flex-basis:100%;display:flex;align-items:center;gap:14px;color:rgba(245,241,232,.55);font-size:13px;margin-top:6px}
.lc-like:empty{display:none}
.lc-like img{width:64px;height:44px;object-fit:cover;flex:none;border:1px solid rgba(201,169,97,.35)}
.lc-like b{color:var(--lc-paper);font-weight:600}
.lc-like a{color:var(--lc-gold);border-bottom:1px solid currentColor}
.lc-pending{padding:40px 0 0;max-width:820px;font-size:19px;line-height:1.55;color:var(--lc-paper)}
.lc-pending[hidden]{display:none}

/* the light showcase after the dark experience */
.lc-showcase{background:#fff}

/* ================= reduced motion ================= */
@media(prefers-reduced-motion:reduce){
  .lc-bg i,.lc-cue i{animation:none}
  .lc-bg-motes{display:none}
  .lc-invite .eyebrow,.lc-invite h1,.lc-invite-lead,.lc-invite-note,.lc-field{animation:none;opacity:1}
  .lc-canvas-wrap,.lc-horizon,.lc-invite,.lc-hud{transition-duration:.01s;transition-delay:0s}
}

/* ================= responsive ================= */
@media(max-width:980px){
  .lc-numbers-head,.lc-numbers-head.has-landprice{grid-template-columns:1fr}
  .lc-ranges{grid-template-columns:1fr;gap:0}
  .lc-hud{padding:96px 20px 70px}
  .lc-hud-bottom::before{left:-20px;right:-20px;bottom:-70px;height:calc(100% + 160px)}
  .lc-enter .km-root::after,.lc-enter .km-compass{right:24px}
}
/* phones: one-finger vertical swipes scroll the page even over the map; horizontal drags orbit.
   MapLibre sets touch-action:none on its canvas container — pan-y wins here on purpose. */
@media(max-width:980px){
  .lc-enter .lc-canvas-wrap,.lc-enter .lc-canvas,.lc-enter .km-root,.lc-enter .km-canvas,.lc-enter .maplibregl-canvas-container,.lc-enter .maplibregl-canvas{touch-action:pan-y!important}
  .lc-controls button{font-size:11px;padding:12px 14px;min-height:44px}
  .lc-reveal{min-height:44px}
}
@media(max-width:640px){
  .lc-search{flex-direction:column;border:0;background:none;box-shadow:none;gap:10px}
  .lc-search input{background:#fff;border:1px solid rgba(20,18,16,.18);padding:20px 18px;font-size:16px}
  .lc-search .lc-search-postal{flex:none;border-left:1px solid rgba(20,18,16,.18)}
  .lc-search .btn{min-height:60px}
  .home-showcase .lc-explore{margin:0 0 44px}
  .lc-invite{padding:96px 20px 40px}
  .lc-invite h1{font-size:clamp(40px,12vw,64px)}
  .lc-field{margin-top:40px}
  .lc-field{flex-wrap:wrap;padding-right:0;border-bottom:0;box-shadow:none}
  .lc-field input{padding:14px 8px 16px;font-size:22px;border-bottom:1px solid rgba(201,169,97,.38)}
  .lc-field input#lc-address{flex-basis:100%}
  .lc-field-divider{display:none}
  .lc-field-postal{flex:1 1 100%;margin-top:6px}
  .lc-field::after{display:none}
  .lc-reveal{position:static;transform:none;margin:18px auto 0;justify-content:center}
  .lc-hud-bottom{flex-direction:column;align-items:flex-start;gap:16px}
  .lc-hud-copy h2{font-size:30px}
  .lc-facts{gap:8px 18px}
  .lc-controls{justify-content:flex-start}
  .lc-cue{bottom:12px}
  .lc-enter .km-compass{display:none}
  .lc-enter .km-root::after{right:auto;left:20px;bottom:auto;top:84px}
  .lc-range{grid-template-columns:1fr;grid-template-areas:"label" "val" "bar" "hint"}
  .lc-range-val{white-space:normal}
}

/* how we worked it out — the controller's stage trace inside the notes */
.lc-warnings li.lc-stages{padding-left:0;margin-bottom:8px}
.lc-warnings li.lc-stages::before{content:none}
.lc-warnings li.lc-stages>b{display:block;font:600 10px Inter,sans-serif;letter-spacing:.24em;text-transform:uppercase;color:var(--lc-gold);margin-bottom:8px}
.lc-warnings li.lc-stages ol{margin:0;padding:0;list-style:none;display:grid;gap:6px;counter-reset:st}
.lc-warnings li.lc-stages ol li{padding-left:26px;color:rgba(245,241,232,.7);counter-increment:st}
.lc-warnings li.lc-stages ol li::before{content:counter(st);left:0;top:1px;width:16px;height:16px;border:1px solid var(--lc-gold);border-radius:50%;font-size:9px;line-height:16px;text-align:center;color:var(--lc-gold)}
.lc-warnings li.lc-stages ol li.is-off{color:rgba(245,241,232,.4)}
.lc-warnings li.lc-stages ol li small{display:block;font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:rgba(245,241,232,.45);margin-bottom:2px}
