:root{
  --g0:#0A0908; --g1:#13100F; --g2:#1D1917; --g3:#332D29;
  --g4:#514840; --g5:#8A837C; --g6:#CFC9C1;
  --ind:#CC785C;
  --bg:var(--g0); --surface:var(--g1); --surface-2:var(--g2);
  --border:var(--g3); --border-strong:var(--g4);
  --muted:var(--g5); --faint:var(--g5); --text:var(--g6);
  --clay:var(--ind); --clay-dark:#B25D43; --clay-soft:rgba(204,120,92,.13);
  --amber:var(--ind); --amber-dark:#B25D43; --amber-soft:rgba(204,120,92,.13);
  --danger:var(--ind); --danger-soft:rgba(204,120,92,.13);
  --green:var(--g5); --green-dark:var(--g5); --green-soft:var(--g2); --green-border:var(--g3);
  --sage:var(--g5); --sage-dark:var(--g5); --sage-soft:var(--g2);
  --t1:11px; --t2:15px; --t3:20px;
  --t4:clamp(26px,2.6vw,34px); --t5:clamp(40px,6.6vw,120px); --t6:clamp(56px,9vw,132px);
  --r:8px;
  --gut:clamp(18px,5vw,132px);
  --step:clamp(68px,11vh,164px);
  --s1:8px;
  --s2:16px;
  --s3:32px;
  --mono:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,monospace;
}
*{margin:0;padding:0;box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}
body{background:var(--bg);color:var(--text);font-family:Inter,system-ui,sans-serif;
  font-weight:400;font-size:var(--t2);line-height:1.55;
  min-height:100vh;display:flex;flex-direction:column}
.app{flex:1;display:flex;flex-direction:column}
img{display:block;max-width:100%}
button{font:inherit;color:inherit;background:none;border:0}
a{color:var(--text);text-decoration:none}
a:hover{color:var(--ind)}
.mono{font-variant-numeric:tabular-nums}
.micro{display:block;font-size:var(--t2);font-weight:500;color:var(--muted)}
.hidden{display:none!important}
.screen{display:none}
.screen.active{display:block;flex:1 0 auto}
html.restoring .screen.active{display:none}
html.restoring .ft{visibility:hidden}
.hd{display:flex;align-items:center;justify-content:space-between;gap:var(--s2);
  flex-wrap:wrap;padding:var(--s2) var(--gut)}
.hd-logo{display:flex;align-items:center;gap:var(--s1)}
.hd-mark{width:26px;height:26px;border-radius:6px;
  background:var(--surface-2);color:var(--text);box-shadow:inset 0 0 0 1px var(--ind);
  font-size:var(--t1);font-weight:700;display:flex;align-items:center;justify-content:center}
.hd-word{font-size:var(--t1);font-weight:500;letter-spacing:.3em;color:var(--muted);
  transition:color .14s ease}
.hd-logo:hover .hd-word{color:var(--text)}
.hd-right{display:flex;align-items:center;gap:var(--s1) var(--s3);flex-wrap:wrap}
.hd-bot{font-family:Inter,system-ui,sans-serif;font-size:var(--t2);color:var(--muted)}
.lang{display:flex}
.lang .lang-opt{min-height:48px;display:flex;align-items:center;padding:0 var(--s2);
  font-size:var(--t2);letter-spacing:.06em;color:var(--muted);
  cursor:pointer;user-select:none;transition:color .14s ease}
.lang .lang-opt:hover{color:var(--text)}
.lang .lang-opt.active{color:var(--text)}
.ft{border-top:1px solid var(--border);margin-top:var(--s3);
  padding:var(--s3) var(--gut);display:flex;flex-wrap:wrap;align-items:center;
  gap:var(--s2) var(--s3)}
.ft-links{display:flex;flex-wrap:wrap;gap:var(--s2) var(--s3)}
.ft-links a{font-size:var(--t2);color:var(--muted);transition:color .14s ease}
.ft-meta,.ft-count{font-size:var(--t2);color:var(--muted)}
.ft-count{margin-left:auto}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--s1);
  min-height:48px;padding:var(--s2);border:1px solid var(--border-strong);
  border-radius:var(--r);color:var(--text);font-size:var(--t2);font-weight:500;
  cursor:pointer;text-align:center;transition:border-color .14s ease,color .14s ease}
.btn:hover{border-color:var(--muted)}
.btn.primary{background:var(--g3);border-color:var(--muted);color:var(--text)}
.btn.primary:hover{background:var(--g4);border-color:var(--g6);color:var(--text)}
.btn.lg{min-height:56px;padding:var(--s2) var(--s3);font-size:var(--t2)}
.btn.disabled,.btn:disabled{opacity:.45;cursor:default}
@keyframes rise{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:no-preference){
  .hero h1,.hero-lead,.hero-sub,.tool{animation:rise .55s ease-out both}
  .hero-lead{animation-delay:.08s}
  .hero-sub{animation-delay:.16s}
  .tool{animation-delay:.24s}
}
.topbar{padding:var(--s2) var(--gut);text-align:center;font-size:var(--t2);
  border-bottom:1px solid var(--border)}
.topbar[hidden]{display:none}
.ft-num{font-variant-numeric:tabular-nums}
.promo-banner{background:var(--clay-soft);color:var(--text);
  border-bottom-color:rgba(204,120,92,.3)}
.promo-counts{font-weight:500;font-variant-numeric:tabular-nums;color:var(--ind)}
#maint-banner{background:var(--surface-2);color:var(--muted)}
#gate-banner{position:sticky;top:0;z-index:50;background:var(--surface-2);color:var(--text)}
:where(a,button,input,[tabindex]):focus-visible{outline:2px solid var(--ind);
  outline-offset:2px;border-radius:var(--r)}
.btn:active,.mkt-b:active{transform:translateY(1px)}
.btn.disabled,.btn:disabled,.dropzone.disabled{opacity:.45;cursor:default}
.btn.disabled:hover,.btn:disabled:hover{border-color:var(--border-strong)}
.btn.loading{opacity:.6;pointer-events:none}
.btn.loading::after{content:"";width:12px;height:12px;border-radius:50%;
  border:2px solid var(--muted);border-top-color:transparent;animation:spin .7s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.btn.loading::after{animation:none}}
.field{display:flex;flex-wrap:wrap;gap:var(--s1);align-items:stretch}
.field .btn{flex:0 0 auto;min-width:140px}
.field input{flex:1 1 60%;min-height:48px;padding:0 var(--s2);
  background:var(--g0);color:var(--text);border:1px solid var(--border-strong);
  border-radius:var(--r);font:inherit;transition:border-color .14s ease}
.field input::placeholder{color:var(--g4)}
.field input:hover{border-color:var(--muted)}
.field-msg{display:block;min-height:1.55em;margin-top:var(--s1);font-size:var(--t2);
  color:var(--muted)}
.field-msg.bad{color:var(--ind)}
.field-msg.ok{color:var(--text)}
.err-line{padding-left:var(--s2);border-left:2px solid var(--ind);color:var(--text)}
.warn-line{padding:var(--s2);background:var(--surface-2);border-radius:var(--r);
  color:var(--muted)}
.flow-card{padding:var(--s2);background:var(--surface);
  border:1px solid var(--border);border-radius:var(--r)}
.fc-title{display:flex;align-items:center;font-size:var(--t2);font-weight:500}
.fc-acts{display:flex;flex-wrap:wrap;gap:var(--s1);margin-top:var(--s2)}
.fc-acts .btn{min-height:44px;padding:var(--s1) var(--s2)}
.stuck-msg{margin-top:var(--s2);color:var(--muted);text-wrap:pretty}
.flow{padding:var(--s3) var(--gut) 0;text-align:center}
.flow h1{font-size:var(--t4);font-weight:700;letter-spacing:-.02em;line-height:1.1}
.flow .sub{color:var(--muted);margin-top:var(--s1)}
.measure{max-width:54ch;margin-inline:auto}
.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);
  padding:var(--s3) var(--s2)}
.acts{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--s1);margin-top:var(--s3)}
.acts .btn{flex:0 1 260px}
.label{display:block;font-size:var(--t2);color:var(--muted);margin-bottom:var(--s1)}
.fc-status{display:inline-flex;align-items:center;justify-content:center;
  width:16px;height:16px;flex:0 0 16px;margin-right:var(--s1)}
.fc-status svg{width:16px;height:16px}
.flow-card.passed .fc-status,.flow-card.passed .fc-icon{color:var(--text)}
.flow-card.checking .fc-check{color:var(--muted)}
.fc-check{display:flex;align-items:baseline;gap:var(--s1);margin-top:var(--s1);
  color:var(--muted);text-wrap:pretty}
.fc-check strong{color:var(--text);font-weight:500}
.fc-check div > span{display:block;margin-top:2px;color:var(--muted);text-wrap:pretty}
.flow-card.warning .fc-check .fc-icon::before{content:"!";color:var(--ind);font-weight:500}
.flow-card.warning .fc-status,.flow-card.duplicate .fc-status,
.flow-card.error .fc-status{color:var(--ind);font-weight:500}
.flow-card.warning .fc-status:empty::before,
.flow-card.duplicate .fc-status:empty::before,
.flow-card.error .fc-status:empty::before{content:"!"}
.fc-icon{display:inline-flex;align-items:center;justify-content:center;
  width:14px;height:14px;flex:0 0 14px;position:relative;top:2px;color:var(--text)}
.fc-icon svg{width:14px;height:14px}
.fc-btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;
  padding:var(--s1) var(--s2);margin-top:var(--s1);margin-right:var(--s1);
  border:1px solid var(--border-strong);border-radius:var(--r);background:none;
  color:var(--text);font:inherit;font-weight:500;cursor:pointer;
  transition:border-color .14s ease}
.fc-btn:hover{border-color:var(--muted)}
.fc-btn.primary{background:var(--g3);border-color:var(--muted)}
.fc-btn.primary:hover{background:var(--g4);border-color:var(--g6)}
.fc-btn.danger{border-left:2px solid var(--ind)}
.fc-spinner{display:inline-block;width:14px;height:14px;border-radius:50%;
  border:2px solid var(--g4);border-top-color:var(--text);animation:spin .7s linear infinite}
@media (prefers-reduced-motion:reduce){.fc-spinner{animation:none}}
.flow-card.wide{grid-template-columns:1fr}
.flow-card.wide .fc-title{margin-bottom:var(--s1)}
.net-card{display:flex;align-items:center;justify-content:center;cursor:pointer}
.promo-result{display:block;min-height:1.55em;margin-top:var(--s1);color:var(--muted)}
.urgent{color:var(--ind)}
