/* ============================================================
   KANT Landing — production stylesheet
   Base: "Aurora Magnetic" concept, elevated + wired for the real product.
   ============================================================ */

:root{
  --gold:#d4af37; --gold-soft:#e8c873; --amber:#e8a04b;
  --blue:#4fc3f7; --blue-deep:#2b7ec4;
  --navy:#0a1420; --charcoal:#1a1d23; --ink:#06101a;
  --offwhite:#f4f1ea; --mist:#c9cdd6; --muted:#8b93a3;

  --bar-bg:rgba(14,22,34,0.72); --card-bg:rgba(18,26,38,0.82);
  --hairline:rgba(244,241,234,0.10); --hairline-2:rgba(244,241,234,0.16);

  --radius-pill:999px; --radius-lg:22px; --radius-md:16px; --radius-sm:12px;
  --s1:8px; --s2:16px; --s3:24px; --s4:32px; --s5:40px; --s6:48px; --s8:64px; --s10:80px;

  --shadow-float:0 1px 0 rgba(244,241,234,0.06) inset,0 24px 60px -24px rgba(0,0,0,0.75),0 8px 24px -12px rgba(0,0,0,0.55);
  --shadow-card:0 1px 0 rgba(244,241,234,0.05) inset,0 30px 70px -30px rgba(0,0,0,0.7);
  --ease:cubic-bezier(0.22,0.61,0.36,1); --ease-out:cubic-bezier(0.16,1,0.3,1);
}

*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; }
body{
  margin:0;
  font-family:"Inter",system-ui,-apple-system,"Segoe UI",sans-serif;
  color:var(--offwhite);
  background:radial-gradient(1200px 700px at 50% -10%,#16273b 0%,var(--navy) 55%,var(--ink) 100%);
  min-height:100vh; min-height:100dvh; overflow-x:hidden; line-height:1.55;
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
}
:focus-visible{ outline:2px solid var(--blue); outline-offset:3px; border-radius:6px; }
.go:focus-visible,.chip:focus-visible,.mic:focus-visible{ outline:3px solid var(--blue); outline-offset:3px; }
::selection{ background:rgba(212,175,55,0.32); color:#fff; }
img{ display:block; max-width:100%; }
button{ font-family:inherit; cursor:pointer; }
a{ color:inherit; }

.sr-only{ position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.skip-link{ position:absolute; left:var(--s2); top:-60px; z-index:200; background:var(--gold); color:var(--ink); font-weight:600; padding:10px 16px; border-radius:10px; transition:top .2s var(--ease); }
.skip-link:focus{ top:var(--s2); }

/* ---- AURORA BACKDROP ---- */
.aurora{ position:fixed; inset:-15% -10% auto -10%; height:80vh; z-index:0; pointer-events:none; filter:blur(60px); opacity:0.55; }
.aurora span{ position:absolute; border-radius:50%; mix-blend-mode:screen; }
.aurora .a1{ width:48vw; height:48vw; left:8%; top:-6%; background:radial-gradient(circle,rgba(232,160,75,0.55),transparent 65%); animation:drift1 26s var(--ease) infinite alternate; }
.aurora .a2{ width:42vw; height:42vw; right:4%; top:-2%; background:radial-gradient(circle,rgba(79,195,247,0.42),transparent 65%); animation:drift2 32s var(--ease) infinite alternate; }
.aurora .a3{ width:36vw; height:36vw; left:38%; top:8%; background:radial-gradient(circle,rgba(212,175,55,0.40),transparent 65%); animation:drift3 38s var(--ease) infinite alternate; }
@keyframes drift1{ to{ transform:translate3d(6%,4%,0) scale(1.12);} }
@keyframes drift2{ to{ transform:translate3d(-7%,6%,0) scale(1.08);} }
@keyframes drift3{ to{ transform:translate3d(4%,-5%,0) scale(1.14);} }

/* ---- SHELL ---- */
.shell{ position:relative; z-index:1; display:flex; flex-direction:column; align-items:center; min-height:100vh; min-height:100dvh; padding:max(var(--s4),env(safe-area-inset-top)) max(var(--s3),env(safe-area-inset-right)) max(var(--s6),env(safe-area-inset-bottom)) max(var(--s3),env(safe-area-inset-left)); }
.brandmark{ position:fixed; top:var(--s3); left:var(--s4); z-index:50; display:flex; align-items:center; gap:10px; font-family:"Fira Code",monospace; font-size:12px; letter-spacing:0.28em; color:var(--mist); text-transform:uppercase; opacity:0; transform:translateY(-6px); transition:opacity .5s var(--ease),transform .5s var(--ease); }
.brandmark.show{ opacity:1; transform:none; }
.brandmark .dot{ width:7px; height:7px; border-radius:50%; background:var(--gold); box-shadow:0 0 12px 2px rgba(212,175,55,0.7); }

/* ---- HERO ---- */
.hero{ width:100%; max-width:1180px; margin:0 auto; flex:1 1 auto; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:clamp(28px,5vh,64px); transition:flex .8s var(--ease),gap .6s var(--ease),padding .6s var(--ease); }
.hero-figure{ position:relative; width:100%; border-radius:var(--radius-lg); overflow:hidden; box-shadow:0 1px 0 rgba(244,241,234,0.10) inset,0 40px 90px -40px rgba(0,0,0,0.85),0 0 0 1px rgba(244,241,234,0.06); transform:translateZ(0); transition:max-width .8s var(--ease),border-radius .6s var(--ease),box-shadow .6s var(--ease),transform .8s var(--ease); will-change:transform; }
.hero-figure::after{ content:""; position:absolute; inset:0; background:linear-gradient(to bottom,transparent 52%,rgba(6,16,26,0.55) 100%); pointer-events:none; }
.hero-figure img{ width:100%; height:auto; aspect-ratio:1408/768; object-fit:cover; }

/* ---- ADDRESS BAR ---- */
.searchwrap{ width:100%; max-width:760px; position:relative; }
.search-eyebrow{ text-align:center; font-size:13px; letter-spacing:0.04em; color:var(--mist); margin:0 0 var(--s2); font-weight:500; }
.search-eyebrow b{ color:var(--gold-soft); font-weight:600; }

.address{ position:relative; border-radius:var(--radius-pill); padding:2px; isolation:isolate; transition:transform .4s var(--ease-out),filter .4s var(--ease-out); }
.address.is-focus{ transform:translateY(-2px); }
.address::before{ content:""; position:absolute; inset:0; border-radius:inherit; z-index:0; padding:2px;
  background:conic-gradient(from var(--angle,0deg),var(--gold) 0deg,var(--gold-soft) 80deg,var(--amber) 150deg,var(--blue) 212deg,var(--amber) 268deg,var(--gold-soft) 320deg,var(--gold) 360deg);
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0); -webkit-mask-composite:xor;
  mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0); mask-composite:exclude;
  animation:spin 9s linear infinite; opacity:0.85; transition:opacity .4s var(--ease); }
.address.is-focus::before{ opacity:1; animation-duration:4.5s; }
.address::after{ content:""; position:absolute; inset:-6px; border-radius:inherit; z-index:-1;
  background:conic-gradient(from var(--angle,0deg),rgba(212,175,55,0.55),rgba(232,160,75,0.4),rgba(79,195,247,0.5),rgba(212,175,55,0.55));
  filter:blur(22px); opacity:0.35; animation:spin 9s linear infinite; transition:opacity .45s var(--ease),filter .45s var(--ease); }
.address.is-focus::after{ opacity:0.6; filter:blur(28px); }
@property --angle{ syntax:'<angle>'; initial-value:0deg; inherits:false; }
@keyframes spin{ to{ --angle:360deg; } }

.address__inner{ position:relative; z-index:2; display:flex; align-items:center; gap:6px; background:var(--bar-bg); -webkit-backdrop-filter:blur(18px) saturate(140%); backdrop-filter:blur(18px) saturate(140%); border-radius:var(--radius-pill); padding:8px 8px 8px 22px; box-shadow:var(--shadow-float); }
.address .leadicon{ flex:0 0 auto; color:var(--gold-soft); display:grid; place-items:center; width:22px; height:22px; transition:color .3s var(--ease),transform .3s var(--ease); }
.address.is-focus .leadicon{ color:var(--gold); transform:scale(1.08); }
#address-input{ flex:1 1 auto; min-width:0; border:0; background:transparent; outline:none; color:var(--offwhite); font-size:clamp(16px,2.1vw,19px); font-weight:500; letter-spacing:0.01em; padding:14px 6px; font-family:inherit; }
#address-input::placeholder{ color:var(--muted); font-weight:400; }
.ph-rotator{ position:absolute; left:54px; right:120px; top:50%; transform:translateY(-50%); color:var(--muted); font-size:clamp(15px,2vw,18px); pointer-events:none; z-index:3; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; transition:opacity .35s var(--ease); }
.ph-rotator .ph-item{ display:inline-block; animation:phfade .35s var(--ease); }
@keyframes phfade{ from{ opacity:0; transform:translateY(6px);} to{opacity:1; transform:none;} }

.address__controls{ display:flex; align-items:center; gap:6px; flex:0 0 auto; }
.iconbtn{ appearance:none; border:0; width:46px; height:46px; display:grid; place-items:center; border-radius:50%; background:transparent; color:var(--mist); transition:background .25s var(--ease),color .25s var(--ease),transform .25s var(--ease-out),box-shadow .25s var(--ease); }
.iconbtn:hover{ background:rgba(244,241,234,0.08); color:var(--offwhite); }
.iconbtn:active{ transform:scale(0.94); }

.mic{ position:relative; }
.mic .ring{ position:absolute; inset:0; border-radius:50%; border:2px solid var(--blue); opacity:0; transform:scale(0.6); pointer-events:none; }
.mic.listening{ color:var(--blue); background:rgba(79,195,247,0.12); }
.mic.listening .ring{ animation:pulse 1.6s var(--ease) infinite; }
.mic.listening .ring:nth-child(2){ animation-delay:.5s; }
.mic.listening .ring:nth-child(3){ animation-delay:1s; }
@keyframes pulse{ 0%{ opacity:0.7; transform:scale(0.7);} 80%{ opacity:0; transform:scale(1.9);} 100%{ opacity:0; transform:scale(1.9);} }
.mic.filled{ color:var(--gold); }
.mic[disabled]{ opacity:0.4; cursor:not-allowed; }

.go{ position:relative; width:auto; min-width:54px; height:46px; padding:0 18px; border-radius:var(--radius-pill); background:linear-gradient(135deg,var(--gold-soft) 0%,var(--amber) 100%); color:var(--ink); font-weight:700; font-size:14px; display:inline-flex; align-items:center; gap:8px; box-shadow:0 0 0 1px rgba(255,255,255,0.22) inset,0 1px 0 rgba(255,255,255,0.25) inset,0 6px 20px -6px rgba(212,175,55,0.55); transition:transform .25s var(--ease-out),box-shadow .25s var(--ease),filter .25s var(--ease); }
.go:hover{ transform:translateY(-1px); box-shadow:0 0 0 1px rgba(255,255,255,0.3) inset,0 1px 0 rgba(255,255,255,0.3) inset,0 12px 30px -8px rgba(212,175,55,0.8); filter:saturate(1.06) brightness(1.03); }
.go:active{ transform:translateY(0) scale(0.97); }
.go .go-arrow{ width:16px; height:16px; }
.go .go-spin{ display:none; width:16px; height:16px; border:2px solid rgba(6,16,26,0.35); border-top-color:var(--ink); border-radius:50%; animation:spin360 .7s linear infinite; }
@keyframes spin360{ to{ transform:rotate(360deg);} }
body.loading .go{ pointer-events:none; }
body.loading .go .go-arrow,body.loading .go .go-label{ display:none; }
body.loading .go .go-spin{ display:inline-block; }

.search-hint{ text-align:center; margin:var(--s2) 0 0; font-family:"Fira Code",monospace; font-size:12px; color:var(--muted); letter-spacing:0.02em; display:flex; gap:14px; justify-content:center; align-items:center; flex-wrap:wrap; }
.search-hint kbd{ font-family:inherit; font-size:11px; background:rgba(244,241,234,0.07); border:1px solid var(--hairline-2); border-bottom-width:2px; border-radius:6px; padding:2px 7px; color:var(--mist); }
.search-hint .live-tag{ display:inline-flex; align-items:center; gap:6px; }
.search-hint .live-tag .pip{ width:6px; height:6px; border-radius:50%; background:var(--blue); box-shadow:0 0 8px 1px rgba(79,195,247,0.8); animation:blink 2.4s var(--ease) infinite; }
@keyframes blink{ 0%,100%{opacity:1;} 50%{opacity:.3;} }

.voice-status{ position:absolute; left:50%; transform:translate(-50%,8px); top:100%; margin-top:14px; z-index:5; background:var(--card-bg); border:1px solid var(--hairline-2); -webkit-backdrop-filter:blur(14px); backdrop-filter:blur(14px); border-radius:14px; padding:10px 16px; font-size:13px; color:var(--mist); display:flex; align-items:center; gap:10px; box-shadow:var(--shadow-float); opacity:0; pointer-events:none; transition:opacity .3s var(--ease),transform .3s var(--ease); max-width:90vw; }
.voice-status.show{ opacity:1; transform:translate(-50%,0); }
.voice-status .eq{ display:inline-flex; gap:3px; align-items:flex-end; height:16px; }
.voice-status .eq i{ width:3px; background:var(--blue); border-radius:2px; animation:eq 1s var(--ease) infinite; }
.voice-status .eq i:nth-child(1){ height:6px; animation-delay:0s; }
.voice-status .eq i:nth-child(2){ height:14px; animation-delay:.15s; }
.voice-status .eq i:nth-child(3){ height:9px; animation-delay:.3s; }
.voice-status .eq i:nth-child(4){ height:16px; animation-delay:.45s; }
.voice-status .eq i:nth-child(5){ height:7px; animation-delay:.6s; }
@keyframes eq{ 0%,100%{ transform:scaleY(0.4);} 50%{ transform:scaleY(1);} }
.voice-status.error{ border-color:rgba(232,160,75,0.5); color:var(--gold-soft); }

/* ---- DOCKED ---- */
body.docked .hero{ flex:0 0 auto; gap:var(--s4); padding-top:var(--s4); }
body.docked .hero-figure{ max-width:760px; transform:scale(0.98); border-radius:var(--radius-md); box-shadow:0 1px 0 rgba(244,241,234,0.08) inset,0 24px 60px -34px rgba(0,0,0,0.8); }

/* ---- RESULT ---- */
.result{ width:100%; max-width:920px; margin:var(--s5) auto 0; display:none; }
.result.show{ display:block; animation:rise .7s var(--ease-out) both; }
@keyframes rise{ from{ opacity:0; transform:translateY(28px);} to{opacity:1; transform:none;} }
.result__grid{ display:grid; gap:var(--s3); }

/* OBJECT CARD */
.objcard{ background:var(--card-bg); border:1px solid var(--hairline-2); border-radius:var(--radius-lg); box-shadow:var(--shadow-card); -webkit-backdrop-filter:blur(16px); backdrop-filter:blur(16px); overflow:hidden; }
.objcard__head{ display:flex; flex-wrap:wrap; gap:var(--s2); align-items:center; justify-content:space-between; padding:var(--s3) var(--s4); border-bottom:1px solid var(--hairline); background:linear-gradient(120deg,rgba(212,175,55,0.06),rgba(79,195,247,0.05)); }
.objcard__addr{ display:flex; align-items:center; gap:14px; min-width:0; }
.objcard__pin{ flex:0 0 auto; width:42px; height:42px; border-radius:12px; display:grid; place-items:center; background:linear-gradient(135deg,rgba(212,175,55,0.22),rgba(232,160,75,0.14)); color:var(--gold); border:1px solid rgba(212,175,55,0.3); }
.objcard__addr h2{ margin:0; font-family:"Playfair Display",serif; font-weight:600; font-size:clamp(19px,2.6vw,24px); line-height:1.2; letter-spacing:0.005em; }
.objcard__addr p{ margin:2px 0 0; font-size:13px; color:var(--muted); font-family:"Fira Code",monospace; }
.objcard__type{ flex:0 0 auto; display:inline-flex; align-items:center; gap:8px; padding:8px 16px; border-radius:var(--radius-pill); background:rgba(79,195,247,0.12); border:1px solid rgba(79,195,247,0.3); color:var(--blue); font-weight:600; font-size:14px; }
.objcard__type .glyph{ font-size:15px; }
.objcard__type.uncertain{ background:rgba(232,160,75,0.14); border-color:rgba(232,160,75,0.45); color:var(--amber); }
.objcard__caveat{ margin:0; padding:10px var(--s4) 16px; font-size:11.5px; line-height:1.5; color:var(--muted); border-top:1px solid var(--hairline); font-family:"Fira Code",monospace; }
.objcard__caveat:empty{ display:none; }

/* Schätzsicherheit + gläserne Preis-Spanne (additiv, erscheint nur bei vorliegender Spanne) */
.estimate{ display:flex; flex-direction:column; gap:9px; padding:var(--s3) var(--s4) var(--s3); border-top:1px solid var(--hairline); background:linear-gradient(120deg,rgba(212,175,55,0.06),rgba(79,195,247,0.045)); }
.estimate[hidden]{ display:none; }
.estimate__line{ display:flex; align-items:center; justify-content:space-between; gap:var(--s2); }
.estimate__lbl{ font-size:11px; letter-spacing:0.10em; text-transform:uppercase; color:var(--muted); font-weight:600; }
.estimate__amp{ display:inline-flex; align-items:center; gap:8px; font-size:14px; font-weight:600; color:var(--mist); text-transform:capitalize; }
.estimate__amp .dot{ width:10px; height:10px; border-radius:50%; background:var(--muted); flex:0 0 auto; transition:background .3s var(--ease),box-shadow .3s var(--ease); }
.estimate.amp-gruen .estimate__amp .dot{ background:#5fbf7f; box-shadow:0 0 9px 1px rgba(95,191,127,0.65); }
.estimate.amp-gelb  .estimate__amp .dot{ background:var(--amber); box-shadow:0 0 9px 1px rgba(232,160,75,0.65); }
.estimate.amp-rot   .estimate__amp .dot{ background:#e06a6a; box-shadow:0 0 9px 1px rgba(224,106,106,0.65); }
.estimate.amp-gruen .estimate__amp{ color:#8fd6a3; }
.estimate.amp-gelb  .estimate__amp{ color:var(--gold-soft); }
.estimate.amp-rot   .estimate__amp{ color:#ec9a9a; }
.estimate__line--price{ align-items:baseline; }
.estimate__range b{ font-family:"Playfair Display",serif; font-size:clamp(20px,2.7vw,27px); font-weight:600; color:var(--gold-soft); letter-spacing:0.01em; }
.estimate__mid{ font-size:12.5px; color:var(--mist); margin-top:-3px; }
.estimate__mid:empty{ display:none; }
.estimate__note{ margin:3px 0 0; font-size:11px; line-height:1.5; color:var(--muted); font-family:"Fira Code",monospace; }

/* 3D-Dach-Skizze */
.model3d{ position:relative; width:100%; height:300px; display:none; border-bottom:1px solid var(--hairline);
  background:radial-gradient(120% 120% at 50% 20%, rgba(79,195,247,0.06), transparent 60%); touch-action:none; }
.model3d.ready{ display:block; }
.model3d canvas{ display:block; width:100%; height:100%; }
.model3d__hint{ position:absolute; left:12px; bottom:10px; z-index:2; pointer-events:none;
  font-family:"Fira Code",monospace; font-size:10.5px; letter-spacing:0.04em; color:var(--muted);
  background:rgba(6,16,26,0.35); padding:3px 8px; border-radius:6px; }
@media (max-width:460px){ .model3d{ height:230px; } }

.metrics{ display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--hairline); }
.metric{ background:var(--card-bg); padding:var(--s3) var(--s3); display:flex; flex-direction:column; gap:4px; transition:background .3s var(--ease); }
.metric:hover{ background:rgba(28,38,54,0.9); }
.metric .k{ font-size:11px; letter-spacing:0.10em; text-transform:uppercase; color:var(--muted); font-weight:600; display:flex; align-items:center; gap:7px; }
.metric .k .swatch{ width:9px; height:9px; border-radius:3px; flex:0 0 auto; }
.metric .v{ font-family:"Playfair Display",serif; font-size:clamp(22px,3vw,30px); font-weight:600; color:var(--offwhite); line-height:1.05; }
.metric .v small{ font-family:"Inter",sans-serif; font-size:13px; font-weight:500; color:var(--mist); margin-left:3px; }
.metric.hero-metric .v{ color:var(--gold-soft); }
.metric--filler{ background:var(--card-bg); }
.metric--filler:hover{ background:var(--card-bg); }
.sw-first{ background:var(--gold); } .sw-grat{ background:var(--amber); } .sw-kehle{ background:var(--blue); }
.sw-traufe{ background:#7dd3a0; } .sw-ortgang{ background:#c792ea; } .sw-hoehe{ background:#f4f1ea; } .sw-neigung{ background:var(--blue-deep); }

/* skeleton loading for metrics */
.metric.skeleton .k,.metric.skeleton .v{ color:transparent; }
.metric.skeleton{ position:relative; overflow:hidden; }
.metric.skeleton::after{ content:""; position:absolute; inset:0; background:linear-gradient(100deg,transparent 20%,rgba(244,241,234,0.06) 50%,transparent 80%); animation:shimmer 1.3s infinite; }
@keyframes shimmer{ from{ transform:translateX(-100%);} to{ transform:translateX(100%);} }

/* PROMPT CHIPS */
.chips-block h3{ margin:var(--s1) 0 var(--s2); font-size:13px; font-weight:600; letter-spacing:0.06em; text-transform:uppercase; color:var(--mist); display:flex; align-items:center; gap:10px; }
.chips-block h3 .spark{ color:var(--gold); }
.chips{ display:grid; grid-template-columns:repeat(auto-fill,minmax(232px,1fr)); gap:10px; }
.chip{ text-align:left; display:flex; align-items:center; gap:12px; padding:14px 16px; background:rgba(20,30,44,0.7); border:1px solid var(--hairline-2); border-radius:var(--radius-sm); color:var(--offwhite); font-size:14px; font-weight:500; line-height:1.35; transition:transform .22s var(--ease-out),border-color .22s var(--ease),background .22s var(--ease),box-shadow .22s var(--ease); }
.chip:hover{ transform:translateY(-2px); border-color:rgba(212,175,55,0.5); background:rgba(26,38,55,0.92); box-shadow:0 12px 28px -16px rgba(0,0,0,0.8); }
.chip:active{ transform:translateY(0) scale(0.99); }
.chip.active{ border-color:rgba(212,175,55,0.7); background:rgba(30,42,60,0.95); }
.chip .ic{ flex:0 0 auto; font-size:17px; line-height:1; filter:saturate(1.1); }
.chip .num{ flex:0 0 auto; width:26px; height:26px; border-radius:8px; display:grid; place-items:center; font-family:"Fira Code",monospace; font-size:12px; font-weight:600; background:linear-gradient(135deg,rgba(212,175,55,0.2),rgba(79,195,247,0.14)); color:var(--gold-soft); border:1px solid var(--hairline-2); }
.chip .ic + .label{ flex:1 1 auto; }

/* CHAT / ANSWER */
.chat{ background:var(--card-bg); border:1px solid var(--hairline-2); border-radius:var(--radius-lg); box-shadow:var(--shadow-card); overflow:hidden; display:none; }
.chat.show{ display:block; animation:rise .5s var(--ease-out) both; }
.chat__head{ display:flex; align-items:center; gap:12px; padding:var(--s2) var(--s3); border-bottom:1px solid var(--hairline); font-size:13px; color:var(--mist); }
.chat__head .avatar{ width:30px; height:30px; border-radius:9px; background:linear-gradient(135deg,var(--gold),var(--amber)); color:var(--ink); display:grid; place-items:center; font-weight:800; font-size:13px; font-family:"Playfair Display",serif; }
.chat__head .who{ font-weight:600; color:var(--offwhite); }
.chat__head .grounded{ margin-left:auto; display:inline-flex; align-items:center; gap:6px; font-family:"Fira Code",monospace; font-size:11px; color:var(--blue); background:rgba(79,195,247,0.1); border:1px solid rgba(79,195,247,0.25); padding:4px 10px; border-radius:var(--radius-pill); }
.chat__body{ padding:var(--s3) var(--s4) var(--s4); }

.bubble{ font-size:15px; line-height:1.7; color:var(--mist); }
.bubble .q{ display:inline-block; margin-bottom:var(--s2); padding:10px 16px; border-radius:14px 14px 14px 4px; background:rgba(79,195,247,0.1); border:1px solid rgba(79,195,247,0.22); color:var(--offwhite); font-weight:500; font-size:14px; }
.bubble .answer{ max-width:68ch; }
.bubble .answer h1,.bubble .answer h2,.bubble .answer h3,.bubble .answer h4{ color:var(--offwhite); font-family:"Playfair Display",serif; font-weight:600; line-height:1.25; margin:var(--s3) 0 var(--s1); }
.bubble .answer h1{ font-size:22px; } .bubble .answer h2{ font-size:20px; } .bubble .answer h3{ font-size:18px; } .bubble .answer h4{ font-size:16px; }
.bubble .answer p{ margin:var(--s1) 0; }
.bubble .answer strong{ color:var(--gold-soft); font-weight:600; }
.bubble .answer a{ color:var(--blue); }
.bubble .answer ul,.bubble .answer ol{ margin:var(--s1) 0; padding-left:22px; }
.bubble .answer li{ margin:6px 0; }
.bubble .answer li::marker{ color:var(--gold); }
.bubble .answer code{ font-family:"Fira Code",monospace; font-size:0.88em; background:rgba(244,241,234,0.08); padding:2px 6px; border-radius:6px; color:var(--gold-soft); }
.bubble .answer pre{ background:rgba(6,16,26,0.6); border:1px solid var(--hairline); border-radius:12px; padding:14px 16px; overflow-x:auto; }
.bubble .answer pre code{ background:none; padding:0; color:var(--mist); }
.bubble .answer blockquote{ margin:var(--s2) 0; padding:4px 16px; border-left:3px solid var(--gold); color:var(--mist); background:rgba(244,241,234,0.03); border-radius:0 8px 8px 0; }
.bubble .answer table{ width:100%; border-collapse:collapse; margin:var(--s2) 0; font-size:14px; }
.bubble .answer th,.bubble .answer td{ text-align:left; padding:9px 12px; border-bottom:1px solid var(--hairline); }
.bubble .answer th{ color:var(--mist); font-weight:600; font-size:12px; letter-spacing:0.04em; text-transform:uppercase; }
.bubble .answer td:last-child,.bubble .answer th:last-child{ text-align:right; }
.bubble .answer tr:last-child td{ border-bottom:0; font-weight:600; color:var(--offwhite); }
.bubble .answer hr{ border:0; border-top:1px solid var(--hairline); margin:var(--s3) 0; }

.caret{ display:inline-block; width:9px; height:18px; background:var(--gold); margin-left:2px; vertical-align:-3px; border-radius:2px; animation:caret 1s steps(1) infinite; }
@keyframes caret{ 50%{ opacity:0; } }

/* thinking dots */
.thinking{ display:inline-flex; gap:5px; align-items:center; color:var(--muted); font-size:14px; }
.thinking i{ width:7px; height:7px; border-radius:50%; background:var(--gold-soft); animation:think 1.2s var(--ease) infinite; }
.thinking i:nth-child(2){ animation-delay:.18s; } .thinking i:nth-child(3){ animation-delay:.36s; }
@keyframes think{ 0%,100%{ opacity:.25; transform:translateY(0);} 50%{ opacity:1; transform:translateY(-3px);} }

.chat__foot{ display:flex; align-items:center; gap:14px; flex-wrap:wrap; margin-top:var(--s4); padding-top:var(--s3); border-top:1px solid var(--hairline); font-size:12px; color:var(--muted); }
.chat__foot .disclaimer{ font-family:"Fira Code",monospace; }
.chat__foot .actions{ margin-left:auto; display:flex; gap:8px; }
.ghostbtn{ background:transparent; border:1px solid var(--hairline-2); color:var(--mist); border-radius:10px; padding:11px 16px; min-height:44px; display:inline-flex; align-items:center; font-size:13px; font-weight:500; transition:border-color .2s var(--ease),color .2s var(--ease),background .2s var(--ease); }
.ghostbtn:hover{ border-color:var(--gold); color:var(--offwhite); background:rgba(244,241,234,0.04); }

/* ---- TOAST ---- */
.toast{ position:fixed; left:50%; bottom:var(--s4); transform:translate(-50%,20px); background:var(--card-bg); border:1px solid rgba(232,160,75,0.45); -webkit-backdrop-filter:blur(14px); backdrop-filter:blur(14px); color:var(--offwhite); padding:14px 20px; border-radius:14px; box-shadow:var(--shadow-float); z-index:120; display:flex; align-items:center; gap:12px; font-size:14px; opacity:0; pointer-events:none; max-width:92vw; transition:opacity .35s var(--ease),transform .35s var(--ease); }
.toast.show{ opacity:1; transform:translate(-50%,0); }
.toast .ic{ color:var(--amber); flex:0 0 auto; }

/* ---- SUBFOOTER ---- */
.subfoot{ width:100%; max-width:920px; margin:var(--s10) auto 0; display:flex; flex-wrap:wrap; gap:var(--s2) var(--s4); align-items:center; justify-content:center; font-size:12.5px; color:var(--muted); border-top:1px solid var(--hairline); padding-top:var(--s3); }
.subfoot a{ color:var(--mist); text-decoration:none; display:inline-block; padding:6px 4px; transition:color .2s var(--ease); }
.subfoot a:hover{ color:var(--gold-soft); }
.subfoot .sep{ opacity:0.4; }

/* ---- RESPONSIVE ---- */
@media (max-width:880px){ .metrics{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:720px){
  .shell{ padding:var(--s3) var(--s2) var(--s5); }
  .brandmark{ top:var(--s2); left:var(--s2); }
  .ph-rotator{ left:48px; right:104px; }
  .objcard__head{ flex-direction:column; align-items:flex-start; }
  .objcard__type{ align-self:flex-start; }
  .go .go-label{ display:none; }
  .go{ min-width:46px; width:46px; padding:0; }
}
@media (max-width:460px){
  .metrics{ grid-template-columns:repeat(2,1fr); }
  .metric{ padding:var(--s2); }
  .chips{ grid-template-columns:1fr; }
  .address__inner{ padding-left:16px; }
  .ph-rotator{ left:44px; right:96px; font-size:14px; }
  #address-input{ font-size:16px; }
  .search-hint{ font-size:11px; gap:10px; }
  .chat__body{ padding:var(--s2) var(--s2) var(--s3); }
}
@media (max-width:360px){ .objcard__addr h2{ font-size:18px; } }
@media (min-width:1500px){ .hero{ max-width:1240px; } }

/* ---- REDUCED MOTION ---- */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{ animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important; scroll-behavior:auto !important; }
  .address::before{ opacity:0.9; } .address::after{ opacity:0.3; } .aurora{ opacity:0.4; }
}
