/* Front-door polish (Will, 2026-09-28): less text under the box — the ticker and one quiet way into the map. */
.fd .hint,.fd .sugg-hint{display:none!important}
.fd .fdx-way{margin-top:12px;font-size:13px}
.fd .fdx-way a{font-weight:600}
/* the glow that follows your pointer (frontdoor-glow.js): yellow in dark mode, red in light */
.fd .stage{position:relative}
.fd .stage::before{content:"";position:absolute;inset:0;pointer-events:none;z-index:0;opacity:var(--fg-o,0);transition:opacity .6s ease;
  background:radial-gradient(520px circle at var(--fg-x,50%) var(--fg-y,40%),rgba(235,170,31,.13),rgba(235,170,31,.04) 40%,transparent 70%)}
:root[data-theme="light"] .fd .stage::before{background:radial-gradient(520px circle at var(--fg-x,50%) var(--fg-y,40%),rgba(178,44,46,.10),rgba(178,44,46,.03) 40%,transparent 70%)}
.fd .stage>*{position:relative;z-index:1}
/* phones: the plan/credits pill never pushes the top bar off-screen (Maria, Linda, Jorge 2026-09-28) */
@media (max-width:420px){
  .fd .plan-chip{max-width:112px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:4px 10px;font-size:11px}
}

/* ── front-door box, ChatGPT-style growth (Will, 2026-09-28) ── */
.fd .composer{align-items:flex-end}
.fd .composer textarea{max-height:136px!important;scrollbar-width:thin}
.fd .composer .fdx-geo{align-self:flex-start!important;margin-top:4px}        /* Geo starts the conversation, top-left */
.fd .composer .vg-mic,.fd .composer .send{align-self:flex-end!important}      /* controls stay bottom-right */
.fd .composer .vg-mic{margin-bottom:2px}
/* the ring turns all the time, like the recommended plan: this box is the star of the page */
.fd .composer::after{opacity:1!important;animation:vg-spin 6s linear infinite!important;animation-play-state:running!important}
.fd .composer:focus-within::after{animation-duration:4s!important}
@media (prefers-reduced-motion:reduce){.fd .composer::after{animation:none!important}}

/* ── liquid pointer glow (frontdoor-glow.js, Will 2026-09-28): three melting colour blobs instead of one radial glow ── */
.fd .stage.vg-liquid-on::before{display:none}
.fd .stage .vg-liquid{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:0!important;opacity:0;transition:opacity .8s ease}
.fd .stage .vg-liquid.on{opacity:1}
.fd .stage .vg-liquid i{position:absolute;left:0;top:0;width:340px;height:300px;will-change:transform;filter:blur(56px);mix-blend-mode:screen;
  border-radius:42% 58% 63% 37% / 45% 38% 62% 55%;animation:vg-morph 11s ease-in-out infinite alternate,vg-hue-d 14s ease-in-out infinite}
.fd .stage .vg-liquid i.b2{width:280px;height:240px;animation-duration:9s,17s;animation-delay:-3s,-6s}
.fd .stage .vg-liquid i.b3{width:220px;height:260px;animation-duration:13s,12s;animation-delay:-7s,-2s}
@keyframes vg-morph{
  0%{border-radius:42% 58% 63% 37% / 45% 38% 62% 55%}
  33%{border-radius:63% 37% 41% 59% / 58% 55% 45% 42%}
  66%{border-radius:36% 64% 55% 45% / 38% 62% 38% 62%}
  100%{border-radius:55% 45% 34% 66% / 62% 44% 56% 38%}}
/* dark: gold → amber → ember, a hint of Vista blue */
@keyframes vg-hue-d{0%,100%{background:rgba(235,170,31,.22)}30%{background:rgba(227,134,42,.20)}60%{background:rgba(178,44,46,.16)}80%{background:rgba(111,152,192,.12)}}
/* light: red → coral → gold, softer */
@keyframes vg-hue-l{0%,100%{background:rgba(178,44,46,.13)}35%{background:rgba(211,95,44,.12)}70%{background:rgba(235,170,31,.14)}}
:root[data-theme="light"] .fd .stage .vg-liquid i{mix-blend-mode:multiply;animation-name:vg-morph,vg-hue-l}
@media (prefers-reduced-motion:reduce){.fd .stage .vg-liquid{display:none}}
/* liquid glow, a touch bolder (Will: needs sex appeal) */
.fd .stage .vg-liquid i{width:420px;height:360px;filter:blur(64px)}
.fd .stage .vg-liquid i.b2{width:340px;height:300px}
.fd .stage .vg-liquid i.b3{width:280px;height:320px}
@keyframes vg-hue-d{0%,100%{background:rgba(235,170,31,.34)}30%{background:rgba(227,134,42,.30)}60%{background:rgba(178,44,46,.26)}80%{background:rgba(111,152,192,.20)}}
@keyframes vg-hue-l{0%,100%{background:rgba(178,44,46,.20)}35%{background:rgba(211,95,44,.18)}70%{background:rgba(235,170,31,.22)}}

/* ── pricing v7 "What things use" (Evan's table, Will's look): a quiet card, column heads in small caps,
   credits in mono on a shared right edge, the typical project row as the summary line ── */
.fd .fd-menu{margin-top:16px;border:1px solid var(--vg-rule,var(--rule));border-radius:16px;padding:24px;background:var(--vg-raise,var(--raise))}
.fd .fd-menu>b{display:block;margin:0 0 16px;font:700 11px/1.2 var(--vg-font-display);letter-spacing:.1em;text-transform:uppercase;color:var(--vg-muted,var(--muted))}
.fd .fd-menu table{width:100%;border-collapse:collapse;font-size:13.5px}
.fd .fd-menu td{padding:12px 8px;border-bottom:1px solid var(--vg-rule,var(--rule));vertical-align:baseline;color:var(--vg-ink,var(--ink));line-height:1.45}
.fd .fd-menu td:first-child{padding-left:0}
.fd .fd-menu td:last-child{padding-right:0}
.fd .fd-menu td+td{width:112px;text-align:right;white-space:nowrap;font:500 13px var(--vg-font-mono);color:var(--vg-ink,var(--ink));font-variant-numeric:tabular-nums}
.fd .fd-menu thead td{padding-top:0;padding-bottom:8px;font:600 11px/1.3 var(--vg-font-display)!important;letter-spacing:.06em;text-transform:uppercase;
  color:var(--vg-faint,var(--muted))!important;white-space:normal;vertical-align:bottom}
.fd .fd-menu tbody tr:hover td{background:color-mix(in srgb,var(--vg-ink,#14191c) 3%,transparent)}
.fd .fd-menu tr.proj td{border-bottom:0;padding-top:16px;font-weight:700}
.fd .fd-menu tr.proj td+td{color:var(--vg-accent,#b22c2e);font-weight:700}
.fd .fd-menu p{margin:16px 0 0;font-size:12.5px;color:var(--vg-muted,var(--muted));line-height:1.55}
@media (max-width:560px){
  .fd .fd-menu{padding:16px}
  .fd .fd-menu td+td{width:auto;white-space:normal;font-size:12px}
  .fd .fd-menu thead td{font-size:10px!important}
}
/* liquid glow v3 (Will): much slower, and one colour per theme — yellow in dark, red in light (no colour cycling) */
.fd .stage .vg-liquid i{animation:vg-morph 26s ease-in-out infinite alternate!important;background:rgba(235,170,31,.30)}
.fd .stage .vg-liquid i.b2{animation-duration:32s!important;animation-delay:-9s!important;background:rgba(235,170,31,.24)}
.fd .stage .vg-liquid i.b3{animation-duration:38s!important;animation-delay:-17s!important;background:rgba(235,170,31,.20)}
:root[data-theme="light"] .fd .stage .vg-liquid i{mix-blend-mode:multiply;background:rgba(178,44,46,.18)}
:root[data-theme="light"] .fd .stage .vg-liquid i.b2{background:rgba(178,44,46,.14)}
:root[data-theme="light"] .fd .stage .vg-liquid i.b3{background:rgba(178,44,46,.11)}
.fd .stage .vg-liquid{transition:opacity 1.4s ease}
/* the box's ring turns slower too */
.fd .composer::after{animation-duration:14s!important}
.fd .composer:focus-within::after{animation-duration:10s!important}

/* ── lava-lamp pointer light (frontdoor-glow.js, Will 2026-09-28): dim wax that rises, sinks and merges ── */
.fd .stage.vg-liquid-on::before{display:none}
.fd .stage .vg-lava-clip{position:absolute!important;inset:0;overflow:hidden;pointer-events:none;z-index:0!important}
.fd .stage .vg-lava-clip .vg-lava{position:absolute!important;left:0;top:0;width:0;height:0;pointer-events:none;z-index:0!important;
  opacity:0;transition:opacity 1.4s ease;will-change:transform}
.fd .stage .vg-lava.on{opacity:1}
.fd .stage .vg-lava .vg-wax{position:absolute;left:-360px;top:-360px;width:720px;height:720px;filter:url(#vg-goo);opacity:.16;mix-blend-mode:screen}
.fd .stage .vg-lava .vg-wax i{position:absolute;left:50%;top:50%;border-radius:50%;background:#ebaa1f;will-change:transform}
.fd .stage .vg-lava .vg-wax i:nth-child(1){width:300px;height:300px;margin:-150px 0 0 -150px}
.fd .stage .vg-lava .vg-wax i:nth-child(2){width:220px;height:220px;margin:-110px 0 0 -110px}
.fd .stage .vg-lava .vg-wax i:nth-child(3){width:190px;height:190px;margin:-95px 0 0 -95px}
.fd .stage .vg-lava .vg-wax i:nth-child(4){width:140px;height:140px;margin:-70px 0 0 -70px}
.fd .stage .vg-lava .vg-wax i:nth-child(5){width:120px;height:120px;margin:-60px 0 0 -60px}
:root[data-theme="light"] .fd .stage .vg-lava .vg-wax{opacity:.09;mix-blend-mode:multiply}
:root[data-theme="light"] .fd .stage .vg-lava .vg-wax i{background:#b22c2e}
@media (prefers-reduced-motion:reduce){.fd .stage .vg-lava-clip .vg-lava{display:none}}
/* liquid glow v4 (Will: back to the flowing blobs, but not so round and not so fast) — long, soft, shifting forms */
.fd .stage .vg-liquid i{width:520px!important;height:210px!important;filter:blur(46px)!important;
  animation:vg-morph2 40s ease-in-out infinite alternate!important;background:rgba(235,170,31,.26)}
.fd .stage .vg-liquid i.b2{width:380px!important;height:170px!important;animation-duration:52s!important;animation-delay:-14s!important;background:rgba(235,170,31,.2)}
.fd .stage .vg-liquid i.b3{width:300px!important;height:190px!important;animation-duration:61s!important;animation-delay:-29s!important;background:rgba(235,170,31,.16)}
:root[data-theme="light"] .fd .stage .vg-liquid i{background:rgba(178,44,46,.15)}
:root[data-theme="light"] .fd .stage .vg-liquid i.b2{background:rgba(178,44,46,.12)}
:root[data-theme="light"] .fd .stage .vg-liquid i.b3{background:rgba(178,44,46,.09)}
@keyframes vg-morph2{
  0%{border-radius:62% 38% 70% 30% / 44% 58% 42% 56%}
  25%{border-radius:30% 70% 38% 62% / 64% 36% 60% 40%}
  50%{border-radius:74% 26% 55% 45% / 36% 62% 38% 64%}
  75%{border-radius:40% 60% 28% 72% / 58% 42% 66% 34%}
  100%{border-radius:55% 45% 64% 36% / 30% 70% 44% 56%}}

/* ── pointer glow, final (Will, evening): the original soft glow, one colour per theme, tight to the pointer ── */
.fd .stage .vg-liquid,.fd .stage .vg-lava-clip{display:none!important}
.fd .stage::before{display:block!important;transition:opacity .4s ease!important;
  background:radial-gradient(460px circle at var(--fg-x,50%) var(--fg-y,40%),rgba(235,170,31,.12),rgba(235,170,31,.035) 45%,transparent 70%)!important}
:root[data-theme="light"] .fd .stage::before{
  background:radial-gradient(460px circle at var(--fg-x,50%) var(--fg-y,40%),rgba(178,44,46,.08),rgba(178,44,46,.025) 45%,transparent 70%)!important}

/* ── sidebar history (Will, 2026-09-28): fills the rail down to Plans and pricing; Recent and Projects fold ── */
.fd:not([data-user="out"]) .rail .rail-spacer{flex:0 0 0!important;min-height:0!important}
.fd:not([data-user="out"]) .rail .hist{flex:1 1 auto!important;min-height:0;overflow-y:auto;padding:4px 8px 16px!important}
.fd .hist .hs{margin:0 0 4px}
.fd .hist .hs-head,.fd .hist .hp-head{display:flex;align-items:center;gap:8px;width:100%;border:0;background:none;cursor:pointer;text-align:left;
  color:var(--vg-faint);padding:12px 8px 8px;font:600 10.5px var(--vg-font-display);letter-spacing:.12em;text-transform:uppercase;border-radius:8px}
.fd .hist .hs-head:hover,.fd .hist .hp-head:hover{color:var(--vg-ink)}
.fd .hist .hs-head i,.fd .hist .hp-head i{margin-left:auto;font:500 11px var(--vg-font-mono);letter-spacing:0;color:var(--vg-faint);font-style:normal}
.fd .hist .hs-chev{flex:none;transition:transform .18s ease}
.fd .hist .open > button > .hs-chev{transform:rotate(90deg)}
.fd .hist .hs-body,.fd .hist .hp-body{display:none}
.fd .hist .hs.open > .hs-body,.fd .hist .hp.open > .hp-body{display:block}
/* a project: a quieter row with its questions indented under it */
.fd .hist .hp-head{padding:8px;text-transform:none;letter-spacing:0;font:600 13.5px var(--vg-font-body,inherit);color:var(--vg-ink)}
.fd .hist .hp-head span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fd .hist .hp-head:hover{background:var(--vg-raise2,var(--vg-raise))}
.fd .hist .hp-body{padding-left:16px;margin-left:13px;border-left:1px solid var(--vg-rule)}
.fd .hist .hp-body .hist-item{font-size:13px}
.fd .hist .hs-head:focus-visible,.fd .hist .hp-head:focus-visible{outline:2px solid var(--vg-accent);outline-offset:-2px}
