/* ============================================================
   LAVISH MOTION — Worker T presentation/animation layer (v4)
   Additive only: no engine, price, copy or gate changes.
   State changes animate (totals tween, panels transition,
   charts draw in); prefers-reduced-motion = instant change.
   ============================================================ */

/* ---------- landscape art strip (signature header) ---------- */
.lv-land{position:relative;margin:0 0 20px;border-radius:18px;overflow:hidden;
  border:1px solid var(--line,rgba(255,255,255,.09));background:#0a0d13;
  height:clamp(112px,24vw,196px)}
.lv-land img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.lv-land::after{content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(7,9,13,.06) 40%,rgba(7,9,13,.55)),
             linear-gradient(100deg,color-mix(in srgb,var(--tone,#87dbc5) 14%,transparent),transparent 55%)}
.lv-land figcaption{position:absolute;left:14px;bottom:10px;z-index:1;
  font:700 11px/1.3 ui-monospace,Consolas,monospace;letter-spacing:.14em;
  color:#eef1f6;text-shadow:0 1px 8px rgba(0,0,0,.8);text-transform:uppercase}
.lv-land{opacity:0;transform:translateY(8px);transition:opacity .45s ease,transform .45s ease}
.lv-in .lv-land,section:not(.lv-arm) .lv-land{opacity:1;transform:none}

/* ---------- panel / state transitions (homepage tools) ---------- */
#signature .sig-card,#signature .sig-variant,#signature .sig-draft,#signature .sig-branch,
#signature .sig-panel,#signature .sig-totalbar,#signature .sig-stage,#signature .sig-result,
#instant-home-render .sig-panel,#instant-home-render .sig-totalbar,#instant-home-render .sig-stage,
#demo .demo-panel,#demo .v3d-card,#demo .demo-card,#demo [class*="result"],#demo [class*="summary"],
#signature [class*="result"],#signature [class*="panel"],#instant-home-render [class*="result"]{
  transition:opacity .25s ease,transform .25s ease,background-color .25s ease,border-color .25s ease,box-shadow .25s ease}
@keyframes lvPulse{0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--tone,#87dbc5) 45%,transparent)}100%{box-shadow:0 0 0 14px transparent}}
.lv-pulse{animation:lvPulse .45s ease-out}
.lv-tweening{font-variant-numeric:tabular-nums}

/* bars / meters / fills draw toward their new width */
#signature [class*="bar"],#signature [class*="fill"],#signature [class*="meter"],#signature [class*="track"],
#demo [class*="bar"],#demo [class*="fill"],#demo [class*="meter"],#demo [class*="track"],
#instant-home-render [class*="bar"],#instant-home-render [class*="fill"]{
  transition:width .35s ease,height .35s ease,transform .35s ease,stroke-dashoffset .6s ease,opacity .3s ease}

/* section entrance: panels rise once, when first seen */
.lv-arm .lv-rise{opacity:0;transform:translateY(14px)}
.lv-rise{transition:opacity .4s ease,transform .4s ease}
.lv-in .lv-rise{opacity:1;transform:none}

/* ---------- CleanQuote construction sequence ---------- */
#instant-home-render.lv-arm .sig-stage{opacity:.3;transform:translateY(14px)}
#instant-home-render .sig-stage{transition:transform .55s ease,opacity .55s ease}
#instant-home-render.lv-built .sig-stage{opacity:1;transform:none}
/* invisible build-state elements must never intercept a tap */
#instant-home-render.lv-arm .sig-panel,#instant-home-render.lv-arm .sig-totalbar,
#instant-home-render.lv-arm .sig-rooms>*,.lv-arm .lv-rise{pointer-events:none}
#instant-home-render.lv-arm .sig-rooms>*{opacity:0;transform:translateY(10px) scale(.96)}
#instant-home-render .sig-rooms>*{transition:opacity .3s ease,transform .3s ease}
#instant-home-render.lv-furnished .sig-rooms>*{opacity:1;transform:none}
#instant-home-render.lv-arm .sig-panel,#instant-home-render.lv-arm .sig-totalbar{opacity:0;transform:translateY(12px)}
#instant-home-render.lv-furnished .sig-panel,#instant-home-render.lv-furnished .sig-totalbar{opacity:1;transform:none}

/* ---------- workspace: landscape header + theme ---------- */
.lv-ws-land{position:relative;margin:14px 0 4px;border-radius:16px;overflow:hidden;
  border:1px solid var(--line,rgba(255,255,255,.09));height:clamp(96px,20vw,168px);background:#0a0d13}
.lv-ws-land img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.lv-ws-land::after{content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,transparent 45%,rgba(7,9,13,.5)),
             linear-gradient(100deg,color-mix(in srgb,var(--tone,#87dbc5) 14%,transparent),transparent 55%)}
.lv-ws-land figcaption{position:absolute;left:14px;bottom:9px;z-index:1;
  font:700 11px/1.3 ui-monospace,Consolas,monospace;letter-spacing:.14em;color:#eef1f6;
  text-shadow:0 1px 8px rgba(0,0,0,.8);text-transform:uppercase}
.site [class*="card"],.site [class*="panel"],.site .workspace-banner,.site .demo-tab{
  transition:background-color .25s ease,border-color .25s ease,box-shadow .25s ease,opacity .25s ease}
.lv-theme-toggle{margin-left:auto;min-height:48px;min-width:48px;padding:10px 16px;border-radius:999px;
  border:1px solid var(--line,rgba(255,255,255,.16));background:transparent;color:var(--ink,#eef1f6);
  font:700 14px/1.2 var(--sans,system-ui,sans-serif);cursor:pointer;display:inline-flex;align-items:center;gap:8px}
.lv-theme-toggle:focus-visible{outline:3px solid var(--tone,#87dbc5);outline-offset:2px}

/* Daylight theme — a genuine light restyle through the workspace's own
   CSS variables (no filter/invert). Wins over the D3 noir block by
   specificity: html[data-lv-theme] prefix outranks its :root/.site rules. */
html[data-lv-theme="daylight"],html[data-lv-theme="daylight"] .site[class*="skin-"]{
  color-scheme:light;
  --paper:#f3efe7;--panel:#fffdf8;--ink:#171a21;--muted:#47505e;
  --line:rgba(23,26,33,.16);--soft:#eae5da;
  --accent2:color-mix(in srgb,var(--tone,#87dbc5) 24%,#fffdf8);
  --accent-text:color-mix(in srgb,var(--tone,#87dbc5) 52%,#101319);
  --cream:#14181f;--cream-dim:#39424f}
html[data-lv-theme="daylight"] body{
  background:radial-gradient(1200px 600px at 85% -5%,color-mix(in srgb,var(--tone,#87dbc5) 16%,transparent),transparent 55%),
             radial-gradient(900px 500px at -10% 30%,rgba(70,90,160,.10),transparent 55%),var(--paper);
  color:var(--ink)}
html[data-lv-theme="daylight"] .mast{background:rgba(255,253,248,.88);border-bottom-color:var(--line)}
html[data-lv-theme="daylight"] ::selection{background:var(--tone,#87dbc5);color:#101319}
html[data-lv-theme="daylight"] .lv-ws-land{border-color:var(--line)}
html[data-lv-theme="daylight"] .lv-ws-land::after{
  background:linear-gradient(180deg,transparent 45%,rgba(255,253,248,.35)),
             linear-gradient(100deg,color-mix(in srgb,var(--tone,#87dbc5) 18%,transparent),transparent 55%)}
html[data-lv-theme="daylight"] .lv-ws-land figcaption{color:#14181f;text-shadow:0 1px 8px rgba(255,255,255,.75)}

/* ---------- reduced motion: instant state change only ---------- */
@media (prefers-reduced-motion: reduce){
  .lv-land,.lv-rise,#instant-home-render .sig-stage,#instant-home-render .sig-rooms>*,
  #instant-home-render .sig-panel,#instant-home-render .sig-totalbar,
  #signature *,#demo *,#instant-home-render *, .site *{
    transition:none !important;animation:none !important}
  .lv-land{opacity:1;transform:none}
  #instant-home-render.lv-arm .sig-stage{opacity:1;transform:none}
  #instant-home-render.lv-arm .sig-rooms>*{opacity:1;transform:none}
  #instant-home-render.lv-arm .sig-panel,#instant-home-render.lv-arm .sig-totalbar{opacity:1;transform:none}
}
