:root{
  color-scheme:dark;
  --bg:#03070d;
  --bg-deep:#02050a;
  --bg-soft:#07101a;
  --panel:rgba(7,13,22,.86);
  --panel-strong:rgba(10,18,30,.94);
  --panel-soft:rgba(14,24,39,.78);
  --surface:rgba(255,255,255,.035);
  --surface-2:rgba(255,255,255,.055);
  --line:rgba(188,211,238,.085);
  --line-strong:rgba(188,211,238,.16);
  --text:#f6f9ff;
  --muted:#8190a6;
  --muted-2:#5f6d81;
  --accent:#82f7bf;
  --accent-2:#6edcff;
  --accent-3:#8f7cff;
  --green:#48dd8c;
  --red:#ff6b66;
  --amber:#ffca78;
  --shadow-lg:0 40px 120px rgba(0,0,0,.56);
  --shadow-md:0 20px 64px rgba(0,0,0,.34);
  --radius-xl:30px;
  --radius-lg:22px;
  --radius-md:16px;
  --ease:cubic-bezier(.2,.8,.2,1);
}

html[data-theme="light"]{
  color-scheme:light;
  --bg:#edf3f8;
  --bg-deep:#e8eef5;
  --bg-soft:#f4f8fc;
  --panel:rgba(255,255,255,.82);
  --panel-strong:rgba(255,255,255,.96);
  --panel-soft:rgba(248,251,255,.88);
  --surface:rgba(20,39,62,.035);
  --surface-2:rgba(20,39,62,.055);
  --line:rgba(19,39,64,.09);
  --line-strong:rgba(19,39,64,.16);
  --text:#0e1828;
  --muted:#69788d;
  --muted-2:#8a97a9;
  --accent:#24c881;
  --accent-2:#25a9dc;
  --accent-3:#7666ef;
  --green:#159c61;
  --red:#e85552;
  --amber:#bc8123;
  --shadow-lg:0 30px 90px rgba(65,85,111,.15);
  --shadow-md:0 18px 52px rgba(65,85,111,.10);
}

*{box-sizing:border-box}
html{min-height:100%;background:var(--bg-deep);scroll-behavior:smooth}
body{
  margin:0;
  min-height:100vh;
  overflow-x:hidden;
  font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  font-feature-settings:"ss01" 1,"cv11" 1;
  color:var(--text);
  background:
    radial-gradient(circle at 50% -18%,rgba(99,211,255,.075),transparent 33%),
    radial-gradient(circle at 12% 25%,rgba(130,247,191,.045),transparent 24%),
    linear-gradient(180deg,var(--bg-soft) 0%,var(--bg) 52%,var(--bg-deep) 100%);
  transition:background .4s var(--ease),color .3s ease;
}
button,input{font:inherit}
button{color:inherit}
button:focus-visible,label:has(input:focus-visible){outline:2px solid color-mix(in srgb,var(--accent) 68%,white 10%);outline-offset:3px}
.hidden{display:none!important}

.page-ambient{position:fixed;inset:0;pointer-events:none;overflow:hidden;z-index:0}
.ambient-orb{position:absolute;border-radius:50%;filter:blur(70px);opacity:.34}
.ambient-orb-a{width:560px;height:560px;left:-210px;top:80px;background:radial-gradient(circle,rgba(71,222,157,.13),transparent 68%)}
.ambient-orb-b{width:680px;height:680px;right:-260px;top:-180px;background:radial-gradient(circle,rgba(89,188,255,.12),transparent 66%)}
.ambient-mesh{position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.012) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.012) 1px,transparent 1px);background-size:64px 64px;mask-image:linear-gradient(to bottom,rgba(0,0,0,.75),transparent 72%)}
html[data-theme="light"] .ambient-mesh{background-image:linear-gradient(rgba(14,38,64,.018) 1px,transparent 1px),linear-gradient(90deg,rgba(14,38,64,.018) 1px,transparent 1px)}

.app-shell{position:relative;z-index:1;width:min(1260px,calc(100% - 32px));margin:0 auto;padding:18px 0 64px}

/* top bar */
.topbar{
  position:sticky;top:12px;z-index:40;
  display:flex;align-items:center;justify-content:space-between;gap:18px;
  min-height:64px;margin-bottom:18px;padding:10px 12px 10px 14px;
  border:1px solid var(--line);border-radius:20px;
  background:linear-gradient(180deg,color-mix(in srgb,var(--panel-strong) 94%,transparent),color-mix(in srgb,var(--panel) 92%,transparent));
  backdrop-filter:blur(24px) saturate(1.18);
  box-shadow:0 16px 48px rgba(0,0,0,.18),inset 0 1px 0 rgba(255,255,255,.04);
}
html[data-theme="light"] .topbar{box-shadow:0 14px 46px rgba(65,85,111,.09),inset 0 1px 0 rgba(255,255,255,.85)}
.brand{display:flex;align-items:center;gap:12px;min-width:0}
.brand-mark{display:flex;align-items:end;justify-content:center;gap:3px;width:40px;height:40px;padding:9px 8px;border:1px solid color-mix(in srgb,var(--accent) 28%,var(--line));border-radius:13px;background:linear-gradient(145deg,color-mix(in srgb,var(--accent) 11%,transparent),color-mix(in srgb,var(--accent-2) 5%,transparent));box-shadow:inset 0 1px 0 rgba(255,255,255,.055),0 10px 28px rgba(0,0,0,.16)}
.brand-mark i{display:block;width:3px;border-radius:999px;background:linear-gradient(180deg,var(--accent-2),var(--accent));box-shadow:0 0 14px color-mix(in srgb,var(--accent) 38%,transparent)}
.brand-mark i:nth-child(1){height:8px}.brand-mark i:nth-child(2){height:20px}.brand-mark i:nth-child(3){height:13px}.brand-mark i:nth-child(4){height:25px}
.brand-copy{display:flex;flex-direction:column;line-height:1.05;min-width:0}
.brand-copy strong{font-size:15px;font-weight:820;letter-spacing:-.025em}
.brand-copy small{margin-top:5px;color:var(--muted);font-size:9px;font-weight:650;letter-spacing:.11em;text-transform:uppercase}
.topbar-actions{display:flex;align-items:center;gap:10px}
.topbar-state{display:inline-flex;align-items:center;gap:7px;padding:8px 10px;border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--muted);font-size:9px;font-weight:720;letter-spacing:.04em}
.topbar-state i{width:6px;height:6px;border-radius:50%;background:var(--accent);box-shadow:0 0 12px color-mix(in srgb,var(--accent) 62%,transparent)}
.theme-toggle{border:0;background:transparent;padding:0;cursor:pointer}
.theme-track{position:relative;display:grid;grid-template-columns:1fr 1fr;align-items:center;width:78px;height:40px;padding:3px;border:1px solid var(--line);border-radius:999px;background:color-mix(in srgb,var(--panel-soft) 94%,transparent);box-shadow:inset 0 1px 0 rgba(255,255,255,.05)}
.theme-glyph{position:relative;z-index:2;text-align:center;font-size:12px;color:var(--muted);transition:color .25s ease}
.theme-thumb{position:absolute;left:4px;top:4px;width:30px;height:30px;border-radius:50%;background:linear-gradient(180deg,#f8fbff,#dbe5ef);box-shadow:0 7px 18px rgba(0,0,0,.18),inset 0 1px 0 white;transition:transform .35s var(--ease),background .3s ease}
html[data-theme="light"] .theme-thumb{transform:translateX(38px);background:linear-gradient(180deg,#172536,#0f1a29);box-shadow:0 7px 18px rgba(57,76,100,.18)}

/* upload */
.upload-card{
  position:relative;isolation:isolate;min-height:300px;overflow:hidden;
  display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;
  padding:40px 26px;cursor:pointer;
  border:1px solid color-mix(in srgb,var(--accent) 18%,var(--line));border-radius:var(--radius-xl);
  background:
    radial-gradient(circle at 50% 36%,color-mix(in srgb,var(--accent) 8%,transparent),transparent 25%),
    linear-gradient(180deg,color-mix(in srgb,var(--panel-strong) 92%,transparent),color-mix(in srgb,var(--panel) 96%,transparent));
  box-shadow:var(--shadow-lg),inset 0 1px 0 rgba(255,255,255,.045);
  transition:transform .28s var(--ease),border-color .28s ease,box-shadow .28s ease;
}
.upload-card::before{content:"";position:absolute;inset:1px;border-radius:calc(var(--radius-xl) - 1px);pointer-events:none;background:linear-gradient(115deg,rgba(255,255,255,.035),transparent 24%,transparent 72%,rgba(111,221,255,.035));z-index:-1}
.upload-card::after{content:"";position:absolute;inset:-1px;border-radius:inherit;padding:1px;background:linear-gradient(120deg,transparent 4%,color-mix(in srgb,var(--accent) 34%,transparent),transparent 28%,transparent 72%,color-mix(in srgb,var(--accent-2) 24%,transparent),transparent 96%);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;opacity:.72;pointer-events:none}
.upload-card:hover,.upload-card.dragover{transform:translateY(-3px);border-color:color-mix(in srgb,var(--accent) 42%,var(--line));box-shadow:0 42px 130px rgba(0,0,0,.62),0 0 0 1px color-mix(in srgb,var(--accent) 8%,transparent),inset 0 1px 0 rgba(255,255,255,.055)}
html[data-theme="light"] .upload-card:hover,html[data-theme="light"] .upload-card.dragover{box-shadow:0 34px 95px rgba(65,85,111,.17),0 0 0 1px color-mix(in srgb,var(--accent) 8%,transparent)}
.upload-grid{position:absolute;inset:0;background-image:linear-gradient(rgba(132,248,193,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(112,223,255,.025) 1px,transparent 1px);background-size:34px 34px;mask-image:radial-gradient(circle at 50% 42%,#000 0%,rgba(0,0,0,.55) 35%,transparent 76%);opacity:.75}
.upload-beam{position:absolute;left:8%;right:8%;top:50%;height:1px;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--accent) 36%,transparent),color-mix(in srgb,var(--accent-2) 24%,transparent),transparent);opacity:.45;box-shadow:0 0 28px color-mix(in srgb,var(--accent) 18%,transparent);transform:translateY(52px)}
.upload-visual{position:relative;display:grid;place-items:center;width:108px;height:108px;margin-bottom:17px}
.upload-ring{position:absolute;border:1px solid color-mix(in srgb,var(--accent) 19%,transparent);border-radius:50%;opacity:.7}.ring-one{inset:8px}.ring-two{inset:0;border-style:dashed;animation:slowSpin 16s linear infinite}
.upload-orb{position:relative;z-index:2;display:grid;place-items:center;width:56px;height:56px;border:1px solid color-mix(in srgb,var(--accent) 38%,transparent);border-radius:18px;background:linear-gradient(145deg,color-mix(in srgb,var(--accent) 82%,white 3%),color-mix(in srgb,var(--accent-2) 82%,white 2%));color:#06120f;box-shadow:0 20px 48px color-mix(in srgb,var(--accent) 18%,transparent),inset 0 1px 0 rgba(255,255,255,.55);font-size:25px;font-weight:900;transition:transform .28s var(--ease)}
.upload-card:hover .upload-orb{transform:translateY(-3px) scale(1.03)}
.upload-copy{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center}
.upload-kicker{margin-bottom:8px;color:var(--accent);font-size:8px;font-weight:900;letter-spacing:.22em}
.upload-main{font-size:21px;font-weight:820;letter-spacing:-.035em}
.upload-sub{max-width:480px;margin-top:9px;color:var(--muted);font-size:12px;line-height:1.5}
.upload-meta{position:relative;z-index:2;display:flex;align-items:center;gap:8px;margin-top:20px;padding:7px 10px;border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--muted);font-size:8px;font-weight:800;letter-spacing:.08em}.upload-meta i{display:block;width:2px;height:2px;border-radius:50%;background:var(--muted-2)}
@keyframes slowSpin{to{transform:rotate(360deg)}}

/* workspace */
.result-card{position:relative;overflow:hidden;border:1px solid var(--line);border-radius:var(--radius-xl);background:linear-gradient(180deg,color-mix(in srgb,var(--panel-strong) 96%,transparent),color-mix(in srgb,var(--panel) 98%,transparent));box-shadow:var(--shadow-lg),inset 0 1px 0 rgba(255,255,255,.035);backdrop-filter:blur(22px) saturate(1.08)}
.result-card::before{content:"";position:absolute;left:11%;right:11%;top:-1px;height:1px;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--accent) 38%,transparent),color-mix(in srgb,var(--accent-2) 28%,transparent),transparent);z-index:3}
.result-head{position:relative;z-index:3;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 18px;border-bottom:1px solid var(--line);background:linear-gradient(180deg,color-mix(in srgb,var(--panel-strong) 74%,transparent),color-mix(in srgb,var(--panel) 60%,transparent));backdrop-filter:blur(18px)}
.result-title-wrap{display:flex;align-items:center;gap:11px;min-width:0}
.result-icon{display:flex;align-items:end;gap:2px;width:34px;height:34px;padding:8px;border:1px solid color-mix(in srgb,var(--accent) 20%,var(--line));border-radius:11px;background:color-mix(in srgb,var(--accent) 7%,transparent)}
.result-icon i{display:block;width:3px;border-radius:999px;background:var(--accent)}.result-icon i:nth-child(1){height:8px}.result-icon i:nth-child(2){height:18px}.result-icon i:nth-child(3){height:12px}
.result-title-copy{display:flex;flex-direction:column;min-width:0}.result-label{font-size:14px;font-weight:820;letter-spacing:-.02em}.result-subtitle{margin-top:3px;color:var(--muted);font-size:9px}
.redraw-badge{display:inline-flex;align-items:center;gap:6px;padding:6px 8px;border:1px solid color-mix(in srgb,var(--accent) 25%,var(--line));border-radius:9px;background:color-mix(in srgb,var(--accent) 5%,transparent);color:var(--accent);font-size:8px;font-weight:880;letter-spacing:.15em}.redraw-badge i{width:5px;height:5px;border-radius:50%;background:var(--accent);box-shadow:0 0 10px color-mix(in srgb,var(--accent) 65%,transparent)}
.result-actions{display:flex;align-items:center;gap:9px}
.mini-btn,.analyze-btn,.forecast-btn{position:relative;overflow:hidden;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:42px;border-radius:13px;cursor:pointer;transition:transform .2s var(--ease),border-color .2s ease,box-shadow .2s ease,background .2s ease}
.mini-btn{padding:0 14px;border:1px solid var(--line);background:color-mix(in srgb,var(--panel-soft) 84%,transparent);color:var(--muted);font-size:11px;font-weight:720}.mini-btn span{font-size:14px}.mini-btn:hover{color:var(--text);border-color:var(--line-strong);background:var(--surface-2)}
.analyze-btn,.forecast-btn{min-width:145px;padding:0 16px;border:1px solid color-mix(in srgb,var(--accent) 35%,transparent);background:linear-gradient(135deg,var(--accent),color-mix(in srgb,var(--accent-2) 88%,var(--accent) 12%));color:#05120e;font-weight:900;font-size:11px;box-shadow:0 10px 28px color-mix(in srgb,var(--accent) 12%,transparent),inset 0 1px 0 rgba(255,255,255,.45)}
.analyze-btn:disabled,.forecast-btn:disabled{opacity:.38;cursor:not-allowed;filter:saturate(.55);box-shadow:none}.analyze-btn:not(:disabled):hover,.forecast-btn:not(:disabled):hover{transform:translateY(-2px);box-shadow:0 16px 34px color-mix(in srgb,var(--accent) 21%,transparent),inset 0 1px 0 rgba(255,255,255,.48)}
.analyze-arrow{margin-left:2px}.analyze-btn-shine,.forecast-btn-glow{position:absolute;inset:0;background:linear-gradient(105deg,transparent 15%,rgba(255,255,255,.4) 45%,transparent 72%);transform:translateX(-125%)}.analyze-btn:not(:disabled):hover .analyze-btn-shine,.forecast-btn:not(:disabled):hover .forecast-btn-glow{animation:shine .9s ease}@keyframes shine{to{transform:translateX(125%)}}

.render-wrap{position:relative;min-height:500px;overflow:hidden;background:linear-gradient(180deg,#06101b,#050c15);isolation:isolate}
html[data-theme="light"] .render-wrap{background:linear-gradient(180deg,#f8fbff,#eef4f9)}
.render-wrap::before{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(180deg,rgba(255,255,255,.012),transparent 22%,transparent 78%,rgba(0,0,0,.035))}
.render-wrap::after{content:"";position:absolute;inset:0;z-index:2;pointer-events:none;box-shadow:inset 0 0 0 1px rgba(255,255,255,.012),inset 0 -80px 100px rgba(0,0,0,.045)}
.render-wrap canvas{position:relative;z-index:0;display:block;width:100%;height:auto;min-height:500px;max-height:720px;object-fit:contain}.render-wrap #patternCanvas{position:absolute;inset:0;z-index:4;width:100%;height:100%;pointer-events:none;filter:drop-shadow(0 0 9px rgba(130,247,191,.09))}
.chart-corner{position:absolute;z-index:6;width:22px;height:22px;pointer-events:none;opacity:.58}.chart-corner::before,.chart-corner::after{content:"";position:absolute;background:color-mix(in srgb,var(--accent) 36%,transparent)}.chart-corner::before{width:100%;height:1px}.chart-corner::after{width:1px;height:100%}.corner-tl{top:14px;left:14px}.corner-tr{top:14px;right:14px;transform:rotate(90deg)}.corner-br{bottom:14px;right:14px;transform:rotate(180deg)}.corner-bl{bottom:14px;left:14px;transform:rotate(270deg)}

/* loader */
.loader-layer{position:absolute;inset:0;z-index:10;display:grid;place-items:center;background:rgba(3,8,14,.35);backdrop-filter:blur(4px);transition:opacity .3s ease}.loader-layer.hidden{display:none}.loader-ring{position:relative;width:52px;height:52px;border:1px solid rgba(255,255,255,.10);border-top-color:var(--accent);border-radius:50%;animation:spin .9s linear infinite;box-shadow:0 0 28px color-mix(in srgb,var(--accent) 12%,transparent)}.loader-ring::before{content:"";position:absolute;inset:7px;border:1px solid rgba(255,255,255,.06);border-right-color:var(--accent-2);border-radius:50%;animation:spin 1.4s linear infinite reverse}.loader-ring i{position:absolute;left:50%;top:-2px;width:6px;height:6px;border-radius:50%;background:white;box-shadow:0 0 8px white,0 0 20px var(--accent)}@keyframes spin{to{transform:rotate(360deg)}}

/* scan theatre */
.scan-layer{position:absolute;inset:0;z-index:8;overflow:hidden;pointer-events:none;background:linear-gradient(180deg,rgba(4,10,18,.04),rgba(4,10,18,.2))}.scan-vignette{position:absolute;inset:0;box-shadow:inset 0 0 120px rgba(0,0,0,.38)}.scan-grid{position:absolute;inset:0;background-image:linear-gradient(rgba(130,247,191,.052) 1px,transparent 1px),linear-gradient(90deg,rgba(110,220,255,.046) 1px,transparent 1px);background-size:42px 42px;animation:gridPulse 1.8s ease-in-out infinite alternate;mask-image:linear-gradient(to bottom,transparent,#000 8%,#000 92%,transparent)}
.scan-beam{position:absolute;left:0;right:0;top:-9%;height:96px;will-change:top;filter:drop-shadow(0 0 18px color-mix(in srgb,var(--accent) 70%,transparent));background:linear-gradient(180deg,transparent,rgba(130,247,191,.024) 16%,rgba(130,247,191,.13) 72%,transparent)}.scan-beam::after{content:"";position:absolute;left:0;right:0;bottom:10px;height:1px;background:linear-gradient(90deg,transparent,var(--accent-2) 12%,var(--accent) 50%,var(--accent-2) 88%,transparent);box-shadow:0 0 18px var(--accent),0 0 34px color-mix(in srgb,var(--accent-2) 55%,transparent)}.scan-beam i{position:absolute;right:12%;bottom:4px;width:12px;height:12px;border-radius:50%;background:#fff;box-shadow:0 0 8px #fff,0 0 22px var(--accent),0 0 42px var(--accent-2)}.scan-layer.running .scan-beam{animation:scanFull 7.2s cubic-bezier(.28,.02,.18,1) forwards}@keyframes scanFull{0%{top:-9%}100%{top:102%}}@keyframes gridPulse{from{opacity:.34}to{opacity:.82}}
.scan-cross{position:absolute;top:0;bottom:0;left:-10%;width:92px;opacity:0;will-change:left,opacity;background:linear-gradient(90deg,transparent,rgba(110,220,255,.028) 18%,rgba(110,220,255,.115) 72%,transparent);filter:drop-shadow(0 0 18px rgba(110,220,255,.38))}.scan-cross::after{content:"";position:absolute;top:0;bottom:0;right:10px;width:1px;background:linear-gradient(180deg,transparent,var(--accent-2) 16%,var(--accent) 50%,var(--accent-2) 84%,transparent);box-shadow:0 0 18px var(--accent-2),0 0 34px color-mix(in srgb,var(--accent) 45%,transparent)}.scan-cross i{position:absolute;right:4px;top:24%;width:12px;height:12px;border-radius:50%;background:white;box-shadow:0 0 8px white,0 0 24px var(--accent-2),0 0 44px var(--accent)}.scan-layer.running .scan-cross{animation:crossScan 7.2s 7.2s cubic-bezier(.3,.02,.16,1) forwards}@keyframes crossScan{0%{left:-10%;opacity:0}8%{opacity:1}92%{opacity:1}100%{left:103%;opacity:0}}
.scan-orbit{position:absolute;width:9px;height:9px;border:1px solid var(--accent-2);border-radius:50%;opacity:0;box-shadow:0 0 18px var(--accent-2)}.scan-layer.running .orbit-a{left:21%;top:32%;animation:orb 2s 2.1s ease-out}.scan-layer.running .orbit-b{left:71%;top:62%;animation:orb 2s 8.8s ease-out}.scan-layer.running .orbit-c{left:47%;top:72%;animation:orb 2.3s 15.6s ease-out}@keyframes orb{0%{opacity:0;transform:scale(.2)}35%{opacity:.9}100%{opacity:0;transform:scale(6)}}.scan-layer.soft-exit{animation:scanExit .58s ease forwards}@keyframes scanExit{to{opacity:0;filter:blur(3px)}}

/* live analysis card */
.analysis-stream{position:absolute;z-index:12;left:18px;top:18px;width:min(410px,calc(100% - 36px));pointer-events:none}.stream-card{position:relative;display:grid;grid-template-columns:46px minmax(0,1fr);gap:13px;align-items:center;padding:14px 15px;border:1px solid color-mix(in srgb,var(--accent) 16%,var(--line));border-radius:18px;background:linear-gradient(145deg,color-mix(in srgb,var(--panel-strong) 93%,transparent),color-mix(in srgb,var(--panel-soft) 90%,transparent));backdrop-filter:blur(22px) saturate(1.12);box-shadow:0 20px 60px rgba(0,0,0,.30),inset 0 1px 0 rgba(255,255,255,.045);overflow:hidden}.stream-card::after{content:"";position:absolute;inset:0;background:linear-gradient(105deg,transparent 10%,color-mix(in srgb,var(--accent) 8%,transparent) 46%,transparent 80%);transform:translateX(-100%)}.stream-card.swap{animation:streamSwap .48s var(--ease)}.stream-card.swap::after{animation:streamShine .95s ease}.stream-icon{display:grid;place-items:center;width:46px;height:46px;border:1px solid color-mix(in srgb,var(--accent) 22%,transparent);border-radius:14px;background:linear-gradient(145deg,color-mix(in srgb,var(--accent) 13%,transparent),color-mix(in srgb,var(--accent-2) 6%,transparent));color:var(--accent);font-size:20px;font-weight:900;box-shadow:inset 0 0 24px color-mix(in srgb,var(--accent) 7%,transparent),0 0 28px color-mix(in srgb,var(--accent) 8%,transparent)}.stream-copy{min-width:0}.stream-kicker{display:block;color:var(--accent);font-size:8px;font-weight:900;letter-spacing:.18em}.stream-copy strong{display:block;margin-top:3px;font-size:13px;letter-spacing:-.015em}.stream-copy p{margin:4px 0 0;color:var(--muted);font-size:10px;line-height:1.46}.stream-rail{height:2px;margin:8px 10px 0;border-radius:999px;background:rgba(255,255,255,.055);overflow:hidden}.stream-rail i{display:block;width:0;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--accent),var(--accent-2));box-shadow:0 0 14px color-mix(in srgb,var(--accent) 58%,transparent);transition:width .18s linear}.macro-source{display:inline-flex;margin:7px 10px 0;padding:5px 8px;border:1px solid var(--line);border-radius:999px;background:color-mix(in srgb,var(--panel-soft) 86%,transparent);color:var(--muted);font-size:8px;text-decoration:none;pointer-events:auto}.macro-source:hover{color:var(--text);border-color:var(--line-strong)}@keyframes streamSwap{0%{opacity:.28;transform:translateY(9px) scale(.985)}100%{opacity:1;transform:none}}@keyframes streamShine{to{transform:translateX(110%)}}

/* analysis dock */
.analysis-dock{padding:16px 18px 20px;border-top:1px solid var(--line);background:linear-gradient(180deg,color-mix(in srgb,var(--panel-soft) 64%,transparent),color-mix(in srgb,var(--panel) 94%,transparent))}
.analysis-meta{display:flex;justify-content:space-between;gap:12px;align-items:center;color:var(--muted);font-size:10px}.analysis-status{display:flex;align-items:center;gap:8px;font-weight:700}.status-dot{width:7px;height:7px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 8%,transparent),0 0 13px color-mix(in srgb,var(--accent) 70%,transparent)}.analysis-time{font-variant-numeric:tabular-nums;font-weight:760}.analysis-progress{position:relative;height:4px;margin:12px 0 15px;border-radius:999px;background:color-mix(in srgb,var(--line-strong) 48%,transparent);overflow:hidden}.analysis-progress i{display:block;width:0;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--accent),var(--accent-2) 58%,var(--accent));background-size:180% 100%;box-shadow:0 0 14px color-mix(in srgb,var(--accent) 55%,transparent);transition:width .15s linear;animation:progressFlow 2.2s linear infinite}@keyframes progressFlow{to{background-position:180% 0}}
.pattern-list{counter-reset:pattern;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.pattern-card{counter-increment:pattern;position:relative;min-width:0;overflow:hidden;padding:13px 13px 13px 14px;border:1px solid var(--line);border-radius:16px;background:linear-gradient(155deg,color-mix(in srgb,var(--panel-soft) 88%,transparent),color-mix(in srgb,var(--panel) 96%,transparent));box-shadow:inset 0 1px 0 rgba(255,255,255,.025);animation:cardIn .45s var(--ease) both}.pattern-card::before{content:"0" counter(pattern);position:absolute;right:12px;bottom:6px;color:color-mix(in srgb,var(--muted) 16%,transparent);font-size:28px;font-weight:900;letter-spacing:-.08em}.pattern-card-top{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:8px}.pattern-card strong{font-size:11px;font-weight:810;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pattern-chip{padding:5px 7px;border:1px solid color-mix(in srgb,var(--accent) 22%,transparent);border-radius:999px;background:color-mix(in srgb,var(--accent) 5%,transparent);color:var(--accent);font-size:8px;font-weight:860;white-space:nowrap}.pattern-card p{position:relative;z-index:1;margin:8px 0 0;max-width:86%;color:var(--muted);font-size:9px;line-height:1.5}@keyframes cardIn{from{opacity:0;transform:translateY(8px) scale(.985)}to{opacity:1;transform:none}}

/* signal panel */
.signal-panel{position:relative;margin-top:14px;padding:17px;border:1px solid var(--line);border-radius:22px;background:linear-gradient(145deg,color-mix(in srgb,var(--panel-strong) 96%,transparent),color-mix(in srgb,var(--panel-soft) 90%,transparent));box-shadow:inset 0 1px 0 rgba(255,255,255,.032)}
.signal-panel::before{content:"";position:absolute;left:20px;right:20px;top:-1px;height:1px;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--accent) 28%,transparent),transparent)}
.signal-head{display:flex;justify-content:space-between;align-items:center;gap:18px}.signal-heading-copy{display:flex;flex-direction:column}.signal-kicker{color:var(--muted);font-size:8px;font-weight:900;letter-spacing:.17em;text-transform:uppercase}.signal-title{margin-top:4px;font-size:17px;font-weight:860;letter-spacing:-.03em}.signal-heading-copy small{margin-top:4px;color:var(--muted-2);font-size:9px}
.signal-controls{display:flex;align-items:center;gap:9px}.timeframe-switch{display:flex;align-items:center;gap:3px;padding:4px;border:1px solid var(--line);border-radius:14px;background:color-mix(in srgb,var(--bg-deep) 66%,transparent);box-shadow:inset 0 1px 0 rgba(255,255,255,.025)}.timeframe-switch button{min-width:62px;height:34px;padding:0 11px;border:0;border-radius:10px;background:transparent;color:var(--muted);font-size:10px;font-weight:800;cursor:pointer;transition:.2s var(--ease)}.timeframe-switch button:hover{color:var(--text)}.timeframe-switch button.active{background:linear-gradient(180deg,color-mix(in srgb,var(--surface-2) 100%,transparent),color-mix(in srgb,var(--surface) 100%,transparent));color:var(--text);box-shadow:0 4px 14px rgba(0,0,0,.12),inset 0 0 0 1px color-mix(in srgb,var(--accent) 18%,transparent)}
.forecast-btn{min-width:152px}
.signal-result{margin-top:15px}
.compact-signal{position:relative;isolation:isolate;overflow:hidden;display:grid;grid-template-columns:58px minmax(0,1fr) auto;align-items:center;gap:14px;min-height:92px;padding:15px 17px;border:1px solid color-mix(in srgb,var(--green) 26%,var(--line));border-radius:18px;background:linear-gradient(135deg,color-mix(in srgb,var(--green) 9%,transparent),color-mix(in srgb,var(--panel-strong) 95%,transparent) 44%);box-shadow:inset 0 1px 0 rgba(255,255,255,.035)}.compact-signal[data-dir="down"]{border-color:color-mix(in srgb,var(--red) 28%,var(--line));background:linear-gradient(135deg,color-mix(in srgb,var(--red) 9%,transparent),color-mix(in srgb,var(--panel-strong) 95%,transparent) 44%)}.compact-signal-aura{position:absolute;left:-60px;top:50%;width:220px;height:220px;transform:translateY(-50%);border-radius:50%;background:radial-gradient(circle,color-mix(in srgb,var(--green) 13%,transparent),transparent 67%);z-index:-1}.compact-signal[data-dir="down"] .compact-signal-aura{background:radial-gradient(circle,color-mix(in srgb,var(--red) 13%,transparent),transparent 67%)}.compact-signal-icon{display:grid;place-items:center;width:58px;height:58px;border:1px solid color-mix(in srgb,var(--green) 28%,transparent);border-radius:18px;background:color-mix(in srgb,var(--green) 8%,transparent);color:var(--green);font-size:33px;font-weight:900;text-shadow:0 0 18px color-mix(in srgb,var(--green) 56%,transparent);box-shadow:0 12px 30px color-mix(in srgb,var(--green) 8%,transparent)}.compact-signal[data-dir="down"] .compact-signal-icon{border-color:color-mix(in srgb,var(--red) 30%,transparent);background:color-mix(in srgb,var(--red) 8%,transparent);color:var(--red);text-shadow:0 0 18px color-mix(in srgb,var(--red) 56%,transparent)}.compact-signal-copy{display:flex;flex-direction:column;min-width:0}.compact-signal-copy span{color:var(--muted);font-size:9px;font-weight:750}.compact-signal-copy strong{margin-top:1px;font-size:26px;font-weight:920;letter-spacing:.04em}.compact-signal-copy small{margin-top:3px;color:var(--muted);font-size:10px}.compact-signal-pulse{width:10px;height:10px;border-radius:50%;background:var(--green);box-shadow:0 0 0 0 color-mix(in srgb,var(--green) 22%,transparent);animation:signalPulse 2s ease-out infinite}.compact-signal[data-dir="down"] .compact-signal-pulse{background:var(--red);box-shadow:0 0 0 0 color-mix(in srgb,var(--red) 22%,transparent)}@keyframes signalPulse{70%{box-shadow:0 0 0 14px transparent}100%{box-shadow:0 0 0 0 transparent}}
.signal-reasons{display:flex;flex-wrap:wrap;gap:7px;margin-top:10px}.reason-chip{display:inline-flex;align-items:center;min-height:28px;padding:0 9px;border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--muted);font-size:8px;font-weight:760}.reason-chip.up{color:var(--green);border-color:color-mix(in srgb,var(--green) 22%,var(--line));background:color-mix(in srgb,var(--green) 5%,transparent)}.reason-chip.down{color:var(--red);border-color:color-mix(in srgb,var(--red) 22%,var(--line));background:color-mix(in srgb,var(--red) 5%,transparent)}
.signal-insights{margin-top:12px}.insight-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px}.insight-stat{min-width:0;padding:11px;border:1px solid var(--line);border-radius:14px;background:linear-gradient(155deg,color-mix(in srgb,var(--panel-soft) 82%,transparent),color-mix(in srgb,var(--panel) 94%,transparent))}.insight-stat span{display:block;color:var(--muted);font-size:8px}.insight-stat strong{display:block;margin-top:6px;font-size:10px;font-weight:820;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.factor-board{margin-top:10px;padding:13px;border:1px solid var(--line);border-radius:16px;background:color-mix(in srgb,var(--bg-deep) 32%,transparent)}.factor-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.factor-head span{font-size:10px;font-weight:820}.factor-head small{color:var(--muted-2);font-size:8px}.factor-list{display:grid;gap:8px;margin-top:11px}.factor-row{display:grid;grid-template-columns:150px 1fr 64px;align-items:center;gap:10px;min-width:0}.factor-row>span{min-width:0;color:var(--muted);font-size:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.factor-track{height:5px;border-radius:999px;background:color-mix(in srgb,var(--line-strong) 38%,transparent);overflow:hidden}.factor-track i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,color-mix(in srgb,var(--green) 78%,transparent),var(--green));box-shadow:0 0 10px color-mix(in srgb,var(--green) 32%,transparent)}.factor-row.down .factor-track i{background:linear-gradient(90deg,color-mix(in srgb,var(--red) 78%,transparent),var(--red));box-shadow:0 0 10px color-mix(in srgb,var(--red) 32%,transparent)}.factor-row em{color:var(--muted);font-size:8px;font-style:normal;text-align:right}
.scenario-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:10px}.scenario-card{position:relative;overflow:hidden;padding:13px;border:1px solid var(--line);border-radius:15px;background:linear-gradient(155deg,color-mix(in srgb,var(--panel-soft) 80%,transparent),color-mix(in srgb,var(--panel) 96%,transparent))}.scenario-card::after{content:"";position:absolute;width:90px;height:90px;right:-36px;top:-36px;border-radius:50%;background:radial-gradient(circle,currentColor 0,transparent 68%);opacity:.035}.scenario-card span{font-size:9px;font-weight:860}.scenario-card.up span{color:var(--green)}.scenario-card.down span{color:var(--red)}.scenario-card p{margin:7px 0 0;color:var(--muted);font-size:9px;line-height:1.55}
.signal-note{display:flex;gap:9px;align-items:flex-start;margin-top:12px;padding-top:12px;border-top:1px solid var(--line);color:var(--muted);font-size:8.5px;line-height:1.55}.signal-note-icon{flex:0 0 auto;display:grid;place-items:center;width:18px;height:18px;border:1px solid var(--line);border-radius:50%;color:var(--muted);font-size:10px;font-weight:850}

/* cinematic signal reveal */
.signal-reveal{position:absolute;inset:0;z-index:20;display:grid;place-items:center;background:radial-gradient(circle at center,rgba(3,9,15,.14),rgba(3,9,15,.68));backdrop-filter:blur(5px);opacity:0}.signal-reveal.show{animation:revealIn .45s ease forwards}.signal-reveal.hide-out{animation:revealOut .42s ease forwards}.signal-reveal-core{position:relative;z-index:3;display:flex;flex-direction:column;align-items:center;text-align:center;min-width:280px;padding:24px 34px 26px;border:1px solid color-mix(in srgb,var(--green) 38%,transparent);border-radius:28px;background:linear-gradient(180deg,rgba(10,21,29,.93),rgba(6,13,22,.96));box-shadow:0 28px 90px rgba(0,0,0,.46),0 0 70px color-mix(in srgb,var(--green) 18%,transparent),inset 0 1px 0 rgba(255,255,255,.055);transform:translateY(8px) scale(.78);overflow:hidden}.signal-reveal-core::before{content:"";position:absolute;inset:0;background:linear-gradient(120deg,transparent 12%,rgba(255,255,255,.055) 45%,transparent 68%);transform:translateX(-120%)}.signal-reveal.show .signal-reveal-core{animation:corePop .62s .10s var(--ease) forwards}.signal-reveal.show .signal-reveal-core::before{animation:revealShine 1.1s .4s ease forwards}.signal-reveal-core[data-dir="down"]{border-color:color-mix(in srgb,var(--red) 40%,transparent);box-shadow:0 28px 90px rgba(0,0,0,.46),0 0 70px color-mix(in srgb,var(--red) 18%,transparent),inset 0 1px 0 rgba(255,255,255,.055)}.signal-ready{color:#9fafc3;font-size:8px;font-weight:900;letter-spacing:.22em}.signal-reveal-arrow{margin-top:7px;color:var(--green);font-size:64px;line-height:.88;text-shadow:0 0 28px color-mix(in srgb,var(--green) 75%,transparent)}.signal-reveal-core[data-dir="down"] .signal-reveal-arrow{color:var(--red);text-shadow:0 0 28px color-mix(in srgb,var(--red) 75%,transparent)}.signal-reveal-core strong{margin-top:4px;font-size:34px;letter-spacing:.045em}.signal-reveal-core>span:last-child{margin-top:8px;color:#9fafc3;font-size:10px}.signal-reveal-ring{position:absolute;width:170px;height:170px;border:1px solid color-mix(in srgb,var(--accent) 34%,transparent);border-radius:50%;opacity:0}.signal-reveal.show .ring-a{animation:ringOut 1.55s .12s ease-out infinite}.signal-reveal.show .ring-b{animation:ringOut 1.55s .62s ease-out infinite}.signal-reveal-burst{position:absolute;width:8px;height:8px;border-radius:50%;background:var(--accent);box-shadow:0 0 100px 58px color-mix(in srgb,var(--accent) 15%,transparent)}@keyframes revealIn{to{opacity:1}}@keyframes revealOut{to{opacity:0}}@keyframes corePop{to{transform:translateY(0) scale(1)}}@keyframes revealShine{to{transform:translateX(120%)}}@keyframes ringOut{0%{opacity:.72;transform:scale(.35)}100%{opacity:0;transform:scale(3.6)}}

/* light refinements */
html[data-theme="light"] .result-card,html[data-theme="light"] .signal-panel,html[data-theme="light"] .pattern-card,html[data-theme="light"] .insight-stat,html[data-theme="light"] .scenario-card{box-shadow:inset 0 1px 0 rgba(255,255,255,.9)}
html[data-theme="light"] .signal-reveal{background:radial-gradient(circle at center,rgba(239,247,251,.20),rgba(226,235,244,.74))}
html[data-theme="light"] .signal-reveal-core{background:linear-gradient(180deg,rgba(255,255,255,.96),rgba(247,251,255,.98));color:#122033;box-shadow:0 28px 90px rgba(67,86,111,.20),0 0 70px color-mix(in srgb,var(--green) 12%,transparent)}
html[data-theme="light"] .signal-reveal-core>span:last-child,html[data-theme="light"] .signal-ready{color:#708095}

/* responsive */
@media(max-width:980px){
  .insight-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .factor-row{grid-template-columns:130px 1fr 58px}
}
@media(max-width:850px){
  .app-shell{width:min(100% - 22px,1260px)}
  .result-head,.signal-head{align-items:stretch;flex-direction:column}
  .result-actions,.signal-controls{width:100%}
  .analyze-btn,.forecast-btn{flex:1}
  .timeframe-switch{flex:1}.timeframe-switch button{flex:1;min-width:0}
  .pattern-list{grid-template-columns:1fr}
  .scenario-grid{grid-template-columns:1fr}
  .render-wrap,.render-wrap canvas{min-height:390px}
}
@media(max-width:700px){
  .topbar-state{display:none}
  .analysis-stream{left:10px;top:10px;width:calc(100% - 20px)}
  .stream-card{grid-template-columns:40px minmax(0,1fr);padding:11px 12px}.stream-icon{width:40px;height:40px}.stream-copy strong{font-size:12px}.stream-copy p{font-size:9px}
  .upload-card{min-height:250px;padding:32px 18px}.upload-main{font-size:19px}
  .compact-signal{grid-template-columns:52px minmax(0,1fr) auto}.compact-signal-icon{width:52px;height:52px}
}
@media(max-width:560px){
  .app-shell{width:min(100% - 14px,1260px);padding-top:8px;padding-bottom:34px}
  .topbar{top:7px;min-height:58px;padding:8px 9px 8px 10px;border-radius:17px}.brand-copy small{display:none}.brand-mark{width:36px;height:36px}.theme-track{width:70px;height:36px}.theme-thumb{width:28px;height:28px}.theme-track{grid-template-columns:1fr 1fr}html[data-theme="light"] .theme-thumb{transform:translateX(33px)}
  .upload-card{border-radius:24px}.upload-visual{width:96px;height:96px}.upload-sub{font-size:11px}
  .result-card{border-radius:24px}.result-head{padding:13px}.result-title-wrap{gap:8px}.result-subtitle{display:none}.redraw-badge{margin-left:auto}.result-actions{flex-wrap:wrap}.mini-btn,.analyze-btn{flex:1;min-width:0}.mini-btn{padding:0 10px}
  .render-wrap,.render-wrap canvas{min-height:300px}
  .analysis-dock{padding:13px 12px 15px}
  .signal-panel{padding:13px;border-radius:18px}.signal-controls{flex-direction:column}.timeframe-switch,.forecast-btn{width:100%}.forecast-btn{min-height:44px}
  .insight-grid{grid-template-columns:1fr 1fr}.factor-row{grid-template-columns:1fr auto}.factor-track{grid-column:1/-1;order:3}.factor-row em{text-align:right}.compact-signal{grid-template-columns:48px minmax(0,1fr);padding:13px}.compact-signal-pulse{display:none}.compact-signal-icon{width:48px;height:48px;border-radius:15px}.compact-signal-copy strong{font-size:22px}
  .signal-reveal-core{min-width:240px;padding:20px 24px}.signal-reveal-arrow{font-size:54px}.signal-reveal-core strong{font-size:30px}
}

@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.001ms!important}
  .scan-layer.running .scan-beam{top:102%!important}.scan-layer.running .scan-cross{left:103%!important;opacity:0!important}
}

/* Product landing layer */
.launch-panel{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(380px,.95fr);gap:46px;align-items:center;padding:42px 10px 30px;transition:opacity .45s var(--ease),transform .45s var(--ease),max-height .5s var(--ease),padding .5s var(--ease),margin .5s var(--ease);overflow:hidden;max-height:720px}
.launch-copy{min-width:0;padding:10px 6px 10px 4px}.product-pill{display:inline-flex;align-items:center;gap:9px;height:30px;padding:0 12px;border:1px solid color-mix(in srgb,var(--accent) 22%,var(--line));border-radius:999px;background:color-mix(in srgb,var(--accent) 6%,transparent);color:color-mix(in srgb,var(--text) 72%,var(--accent));font-size:9px;font-weight:850;letter-spacing:.14em}.product-pill i{width:6px;height:6px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 5px color-mix(in srgb,var(--accent) 10%,transparent),0 0 18px color-mix(in srgb,var(--accent) 60%,transparent)}
.launch-copy h1{margin:22px 0 0;font-size:clamp(42px,5.3vw,76px);line-height:.94;letter-spacing:-.058em;font-weight:820;max-width:760px}.launch-copy h1 span{background:linear-gradient(92deg,var(--text) 0%,color-mix(in srgb,var(--accent) 78%,white) 58%,color-mix(in srgb,var(--accent-2) 70%,white) 100%);-webkit-background-clip:text;background-clip:text;color:transparent}.launch-lead{max-width:670px;margin:22px 0 0;color:var(--muted);font-size:15px;line-height:1.68;letter-spacing:-.012em}
.value-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin-top:28px}.value-item{display:flex;align-items:center;gap:11px;min-width:0;padding:12px 13px;border:1px solid var(--line);border-radius:16px;background:linear-gradient(145deg,color-mix(in srgb,var(--panel-soft) 58%,transparent),color-mix(in srgb,var(--panel) 84%,transparent));box-shadow:inset 0 1px 0 color-mix(in srgb,white 4%,transparent)}.value-icon{display:grid;place-items:center;flex:0 0 auto;width:31px;height:31px;border:1px solid color-mix(in srgb,var(--accent) 20%,var(--line));border-radius:10px;background:color-mix(in srgb,var(--accent) 6%,transparent);color:var(--accent);font-size:8px;font-weight:900;letter-spacing:.06em}.value-item div{min-width:0}.value-item strong,.value-item small{display:block}.value-item strong{font-size:10px;font-weight:820;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.value-item small{margin-top:3px;color:var(--muted-2);font-size:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.launch-action{position:relative;min-width:0}.upload-caption{display:flex;justify-content:space-between;align-items:flex-end;gap:18px;margin:0 5px 11px}.upload-caption span{font-size:12px;font-weight:820;letter-spacing:-.01em}.upload-caption small{color:var(--muted-2);font-size:8px;text-align:right}.launch-action .upload-card{min-height:360px;margin:0;border-radius:30px}.trust-line{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:11px;color:var(--muted-2);font-size:8px}.trust-dot{width:6px;height:6px;border-radius:50%;background:var(--green);box-shadow:0 0 10px color-mix(in srgb,var(--green) 55%,transparent)}
body.workspace-mode .launch-panel{opacity:0;transform:translateY(-10px);pointer-events:none;max-height:0;padding-top:0;padding-bottom:0;margin:0}.product-footer{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-top:30px;padding:20px 4px 4px;border-top:1px solid var(--line);color:var(--muted-2)}.footer-brand{display:flex;align-items:center;gap:10px}.footer-mark{display:flex;align-items:flex-end;gap:2px;width:23px;height:23px;padding:4px;border:1px solid var(--line);border-radius:8px;background:var(--surface)}.footer-mark i{display:block;width:3px;border-radius:2px;background:var(--accent)}.footer-mark i:nth-child(1){height:8px}.footer-mark i:nth-child(2){height:14px}.footer-mark i:nth-child(3){height:10px}.footer-brand strong,.footer-brand small{display:block}.footer-brand strong{color:var(--text);font-size:10px;font-weight:850}.footer-brand small{margin-top:2px;font-size:8px}.product-footer p{margin:0;max-width:420px;font-size:8px;line-height:1.45;text-align:right}
html[data-theme="light"] .value-item{box-shadow:inset 0 1px 0 rgba(255,255,255,.9),0 9px 28px rgba(38,54,78,.04)}
@media(max-width:980px){.launch-panel{grid-template-columns:1fr;gap:30px;padding-top:30px}.launch-copy{max-width:820px}.launch-action{max-width:760px;width:100%;justify-self:center}.launch-action .upload-card{min-height:300px}}
@media(max-width:700px){.launch-panel{padding:24px 0 24px}.launch-copy h1{font-size:clamp(38px,12vw,58px)}.launch-lead{font-size:13px}.value-row{grid-template-columns:1fr}.value-item{padding:11px 12px}.launch-action .upload-card{min-height:270px}.product-footer{align-items:flex-start;flex-direction:column}.product-footer p{text-align:left}.upload-caption{align-items:flex-start;flex-direction:column;gap:3px}.upload-caption small{text-align:left}}
@media(max-width:560px){.launch-copy h1{font-size:40px}.launch-lead{margin-top:17px;font-size:12px}.product-pill{font-size:8px}.value-row{margin-top:20px}.launch-action .upload-card{min-height:245px}.product-footer{margin-top:20px;padding-top:16px}}

/* Live focus lens — premium magnifier synced with analysis */
.focus-lens{
  --lens-size:154px;
  position:absolute;
  z-index:14;
  width:var(--lens-size);
  height:var(--lens-size);
  border-radius:50%;
  pointer-events:none;
  opacity:0;
  transform:scale(.72) translateY(8px);
  transform-origin:center;
  transition:left 1.05s cubic-bezier(.22,.75,.18,1),top 1.05s cubic-bezier(.22,.75,.18,1),opacity .38s ease,transform .58s cubic-bezier(.18,.86,.22,1),filter .5s ease;
  filter:blur(4px);
  will-change:left,top,opacity,transform;
}
.focus-lens::before{
  content:"";
  position:absolute;
  inset:-8px;
  border-radius:50%;
  border:1px solid color-mix(in srgb,var(--accent) 22%,transparent);
  box-shadow:0 0 0 7px color-mix(in srgb,var(--accent) 3%,transparent),0 0 38px color-mix(in srgb,var(--accent) 24%,transparent),0 18px 46px rgba(0,0,0,.34);
  opacity:.9;
}
.focus-lens::after{
  content:"";
  position:absolute;
  inset:0;
  border-radius:50%;
  border:1px solid color-mix(in srgb,white 17%,transparent);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.17),inset 0 -18px 40px rgba(0,0,0,.14);
  z-index:3;
}
.focus-lens.focus-in{opacity:1;transform:scale(1) translateY(0);filter:blur(0)}
.focus-lens.focus-out{opacity:0;transform:scale(.88) translateY(-4px);filter:blur(2px)}
.focus-halo{
  position:absolute;
  inset:-24px;
  border-radius:50%;
  background:radial-gradient(circle,color-mix(in srgb,var(--accent) 10%,transparent) 0 34%,transparent 68%);
  opacity:.8;
  animation:focusHalo 2.4s ease-in-out infinite;
}
.focus-lens canvas{
  position:absolute!important;
  inset:0!important;
  z-index:1!important;
  width:100%!important;
  height:100%!important;
  min-height:0!important;
  max-height:none!important;
  object-fit:cover!important;
  border-radius:50%;
  clip-path:circle(50% at 50% 50%);
  image-rendering:auto;
}
.focus-reticle{position:absolute;inset:0;z-index:4;border-radius:50%;overflow:hidden;opacity:.76}
.focus-reticle::before,.focus-reticle::after{content:"";position:absolute;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--accent-2) 72%,white 8%),transparent);opacity:.42}
.focus-reticle::before{left:18%;right:18%;top:50%;height:1px}.focus-reticle::after{top:18%;bottom:18%;left:50%;width:1px;background:linear-gradient(180deg,transparent,color-mix(in srgb,var(--accent) 72%,white 8%),transparent)}
.focus-reticle i{position:absolute;left:50%;top:50%;width:12px;height:12px;transform:translate(-50%,-50%);border:1px solid color-mix(in srgb,var(--accent) 78%,white 14%);border-radius:50%;box-shadow:0 0 16px color-mix(in srgb,var(--accent) 52%,transparent)}
.focus-reticle b{position:absolute;inset:8px;border:1px dashed color-mix(in srgb,var(--accent-2) 18%,transparent);border-radius:50%;animation:slowSpin 9s linear infinite}
.focus-caption{
  position:absolute;
  z-index:6;
  left:50%;
  bottom:-42px;
  min-width:max-content;
  max-width:190px;
  transform:translateX(-50%);
  padding:7px 10px 8px;
  border:1px solid color-mix(in srgb,var(--accent) 17%,var(--line));
  border-radius:11px;
  background:linear-gradient(180deg,color-mix(in srgb,var(--panel-strong) 96%,transparent),color-mix(in srgb,var(--panel) 96%,transparent));
  backdrop-filter:blur(16px);
  box-shadow:0 12px 32px rgba(0,0,0,.24),inset 0 1px 0 rgba(255,255,255,.04);
  text-align:center;
}
.focus-caption span{display:block;color:var(--accent);font-size:7px;font-weight:900;letter-spacing:.16em}
.focus-caption strong{display:block;margin-top:2px;color:var(--text);font-size:9px;font-weight:820;white-space:nowrap}
@keyframes focusHalo{0%,100%{transform:scale(.94);opacity:.45}50%{transform:scale(1.08);opacity:.9}}
html[data-theme="light"] .focus-lens::before{box-shadow:0 0 0 7px color-mix(in srgb,var(--accent) 4%,transparent),0 0 38px color-mix(in srgb,var(--accent) 16%,transparent),0 18px 46px rgba(56,79,105,.18)}
html[data-theme="light"] .focus-caption{box-shadow:0 12px 32px rgba(56,79,105,.12),inset 0 1px 0 rgba(255,255,255,.88)}
@media(max-width:700px){
  .focus-lens{--lens-size:118px}
  .focus-caption{bottom:-36px;padding:6px 8px 7px}.focus-caption strong{font-size:8px}.focus-caption span{font-size:6.5px}
}
@media(max-width:480px){.focus-lens{--lens-size:100px}.focus-caption{max-width:145px}}
@media(prefers-reduced-motion:reduce){.focus-lens,.focus-lens.focus-in,.focus-lens.focus-out{transition:none!important;transform:none!important;filter:none!important}.focus-halo,.focus-reticle b{animation:none!important}}

/* CandleTrace authentication — intentionally uses the original CandleTrace visual language. */
body.auth-locked{overflow:hidden}
body.auth-locked .app-shell{filter:blur(10px) saturate(.72);transform:scale(.994);pointer-events:none;user-select:none;opacity:.48;transition:filter .35s ease,transform .35s ease,opacity .35s ease}
.auth-overlay{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:22px;background:radial-gradient(circle at 50% 35%,rgba(28,58,73,.18),rgba(2,5,10,.72) 48%,rgba(2,5,10,.88));backdrop-filter:blur(5px)}
.auth-overlay[hidden]{display:none!important}
.auth-card{position:relative;width:min(470px,100%);max-height:calc(100vh - 34px);overflow:auto;padding:24px;border:1px solid color-mix(in srgb,var(--accent) 18%,var(--line));border-radius:26px;background:linear-gradient(155deg,color-mix(in srgb,var(--panel-strong) 98%,transparent),color-mix(in srgb,var(--panel) 96%,transparent));box-shadow:0 40px 120px rgba(0,0,0,.56),inset 0 1px 0 rgba(255,255,255,.05)}
.auth-card::before{content:"";position:absolute;inset:0;pointer-events:none;border-radius:inherit;background:radial-gradient(circle at 80% 0,color-mix(in srgb,var(--accent-2) 7%,transparent),transparent 30%),radial-gradient(circle at 5% 95%,color-mix(in srgb,var(--accent) 6%,transparent),transparent 28%)}
.auth-brand{position:relative;display:flex;align-items:center;gap:12px;margin-bottom:19px}.auth-brand>div{display:flex;flex-direction:column}.auth-brand strong{font-size:16px;font-weight:850;letter-spacing:-.025em}.auth-brand small{margin-top:4px;color:var(--muted);font-size:9px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.auth-tabs{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:4px;margin-bottom:20px;border:1px solid var(--line);border-radius:14px;background:var(--surface)}.auth-tabs button{height:42px;border:0;border-radius:10px;background:transparent;color:var(--muted);cursor:pointer;font-size:12px;font-weight:780;transition:.2s ease}.auth-tabs button.active{background:linear-gradient(145deg,color-mix(in srgb,var(--accent) 12%,var(--panel-soft)),color-mix(in srgb,var(--accent-2) 6%,var(--panel-soft)));color:var(--text);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 18%,transparent)}
.auth-form{position:relative}.auth-form[hidden]{display:none!important}.auth-heading{margin:0 0 17px}.auth-heading h1{margin:0;font-size:24px;line-height:1.08;letter-spacing:-.045em}.auth-heading p{margin:7px 0 0;color:var(--muted);font-size:11px;line-height:1.55}
.auth-form>label{display:block;margin-top:12px}.auth-form>label>span{display:block;margin:0 0 7px;color:var(--muted);font-size:9px;font-weight:780;letter-spacing:.065em;text-transform:uppercase}.auth-form input{width:100%;height:48px;padding:0 13px;border:1px solid var(--line);border-radius:13px;outline:0;background:color-mix(in srgb,var(--bg-soft) 72%,transparent);color:var(--text);font-size:12px;transition:border-color .2s ease,box-shadow .2s ease,background .2s ease}.auth-form input::placeholder{color:var(--muted-2)}.auth-form input:focus{border-color:color-mix(in srgb,var(--accent) 45%,var(--line));box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 7%,transparent);background:color-mix(in srgb,var(--panel-soft) 88%,transparent)}
.auth-password{position:relative}.auth-password input{padding-right:87px}.auth-password button{position:absolute;right:7px;top:7px;height:34px;padding:0 10px;border:1px solid var(--line);border-radius:9px;background:var(--surface);color:var(--muted);cursor:pointer;font-size:9px;font-weight:760}.auth-password button:hover{color:var(--text);border-color:var(--line-strong)}
.auth-submit{display:flex;align-items:center;justify-content:space-between;width:100%;height:50px;margin-top:18px;padding:0 15px 0 17px;border:1px solid color-mix(in srgb,var(--accent) 38%,transparent);border-radius:14px;background:linear-gradient(100deg,color-mix(in srgb,var(--accent) 88%,white 3%),color-mix(in srgb,var(--accent-2) 80%,white 2%));color:#06120f;cursor:pointer;font-size:12px;font-weight:900;box-shadow:0 16px 35px color-mix(in srgb,var(--accent) 13%,transparent);transition:transform .2s ease,filter .2s ease}.auth-submit:hover{transform:translateY(-1px);filter:brightness(1.05)}.auth-submit:disabled{opacity:.58;cursor:wait;transform:none}.auth-submit b{font-size:17px}
.auth-message{margin-top:13px;padding:10px 11px;border:1px solid color-mix(in srgb,var(--red) 25%,var(--line));border-radius:11px;background:color-mix(in srgb,var(--red) 7%,transparent);color:color-mix(in srgb,var(--red) 80%,white 15%);font-size:10px;line-height:1.45}.auth-message.success{border-color:color-mix(in srgb,var(--accent) 25%,var(--line));background:color-mix(in srgb,var(--accent) 7%,transparent);color:var(--accent)}
.auth-bottom{position:relative;display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:20px;padding-top:15px;border-top:1px solid var(--line);color:var(--muted);font-size:9px}.auth-bottom>span{display:flex;align-items:center;gap:7px}.auth-bottom i{width:6px;height:6px;border-radius:50%;background:var(--accent);box-shadow:0 0 11px color-mix(in srgb,var(--accent) 65%,transparent)}.auth-bottom small{color:var(--muted-2);font-size:8px;text-align:right}
.account-box{position:relative}.account-trigger{display:flex;align-items:center;gap:7px;height:40px;max-width:240px;padding:0 10px;border:1px solid var(--line);border-radius:999px;background:color-mix(in srgb,var(--panel-soft) 94%,transparent);cursor:pointer;color:var(--muted);font-size:9px;font-weight:760}.account-trigger>i{width:6px;height:6px;border-radius:50%;background:var(--accent);box-shadow:0 0 10px color-mix(in srgb,var(--accent) 60%,transparent)}.account-trigger>span{max-width:170px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.account-trigger>b{font-size:11px;color:var(--muted-2)}
.account-menu{position:absolute;right:0;top:48px;width:min(300px,calc(100vw - 36px));padding:15px;border:1px solid var(--line);border-radius:17px;background:color-mix(in srgb,var(--panel-strong) 98%,transparent);backdrop-filter:blur(22px);box-shadow:var(--shadow-md)}.account-menu[hidden]{display:none!important}.account-menu>small{display:block;color:var(--muted-2);font-size:8px;font-weight:850;letter-spacing:.12em}.account-menu>strong{display:block;margin-top:7px;font-size:11px;overflow:hidden;text-overflow:ellipsis}.account-menu>span{display:block;margin-top:4px;color:var(--muted);font-size:9px}.account-access{display:flex;align-items:center;gap:7px;margin-top:13px;padding:9px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--muted);font-size:9px}.account-access i{width:6px;height:6px;border-radius:50%;background:var(--accent)}.account-menu>button{width:100%;height:36px;margin-top:10px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--text);cursor:pointer;font-size:9px;font-weight:800}.account-menu>button:hover{border-color:color-mix(in srgb,var(--red) 30%,var(--line));color:var(--red)}
@media(max-width:640px){.auth-overlay{padding:12px}.auth-card{padding:18px;border-radius:21px}.auth-heading h1{font-size:21px}.auth-bottom{align-items:flex-start;flex-direction:column}.auth-bottom small{text-align:left}.account-trigger>span{max-width:90px}.topbar-actions{gap:6px}}

/* CandleTrace auth approval states */
.auth-status{position:relative;text-align:center;padding-top:4px}
.auth-status[hidden]{display:none!important}
.auth-status-icon{display:grid;place-items:center;width:58px;height:58px;margin:2px auto 15px;border:1px solid color-mix(in srgb,var(--accent) 26%,var(--line));border-radius:18px;background:color-mix(in srgb,var(--accent) 8%,var(--surface));color:var(--accent);font-size:24px;font-weight:900;box-shadow:inset 0 1px 0 rgba(255,255,255,.04)}
.auth-status-copy{margin-bottom:13px;text-align:center}
.auth-status-copy p{max-width:355px;margin:8px auto 0}
.auth-status-user{margin:0 0 17px;padding:10px 12px;border:1px solid var(--line);border-radius:11px;background:color-mix(in srgb,var(--bg-soft) 72%,transparent);color:var(--muted);font-size:9px;line-height:1.45;overflow-wrap:anywhere}
.auth-status[data-status="rejected"] .auth-status-icon{border-color:color-mix(in srgb,var(--red) 30%,var(--line));background:color-mix(in srgb,var(--red) 7%,var(--surface));color:var(--red)}
.auth-status[data-status="revoked"] .auth-status-icon{color:var(--muted);border-color:var(--line-strong);background:var(--surface)}
.auth-secondary{width:100%;height:44px;margin-top:9px;border:1px solid var(--line);border-radius:13px;background:var(--surface);color:var(--muted);cursor:pointer;font-size:10px;font-weight:800;transition:.2s ease}
.auth-secondary:hover{color:var(--text);border-color:var(--line-strong);background:var(--panel-soft)}
