:root{
  --ui-scale:1.25;
  --bg:#0e0e10;--bg2:#141416;--bg3:#1a1a1e;--card:#18181c;
  --border:#2a2a32;--border2:#353540;
  --accent:#e2b714;--accent2:#f0cc4a;
  --green:#4ade80;--red:#f87171;--blue:#60a5fa;--purple:#c084fc;
  --text:#e8e8f0;--text2:#a0a0b4;--text3:#606078;
  --mono:'JetBrains Mono',monospace;--sans:'Space Grotesk',sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0;}
html,body{min-height:calc(100vh / var(--ui-scale));}
html{zoom:var(--ui-scale);}
body{background:var(--bg);color:var(--text);font-family:var(--sans);}


.screen{display:none;}
.screen.active{display:flex;flex-direction:column;min-height:calc(100vh / var(--ui-scale));}


#menu{align-items:center;justify-content:center;padding:40px 20px;}
.logo-title{font-family:var(--mono);font-size:clamp(1.4rem,5vw,2.4rem);font-weight:700;color:var(--accent);text-align:center;text-shadow:0 0 40px rgba(226,183,20,.3);}
.logo-sub{font-family:var(--mono);font-size:.75rem;color:var(--text3);letter-spacing:.3em;text-align:center;margin-top:6px;margin-bottom:40px;}
.menu-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;max-width:660px;width:100%;}
.menu-card{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:24px 20px;cursor:pointer;transition:all .22s;position:relative;overflow:hidden;}
.menu-card:hover{border-color:var(--accent);transform:translateY(-3px);box-shadow:0 8px 28px rgba(226,183,20,.12);}
.card-icon{font-size:1.8rem;margin-bottom:10px;display:block;transition:transform .2s;}
.menu-card:hover .card-icon{transform:scale(1.15);}
.card-num{font-family:var(--mono);font-size:.6rem;color:var(--text3);letter-spacing:.2em;margin-bottom:3px;}
.card-title{font-size:1rem;font-weight:600;margin-bottom:5px;}
.card-desc{font-size:.75rem;color:var(--text2);line-height:1.5;}
.card-badge{position:absolute;top:10px;right:10px;font-family:var(--mono);font-size:.58rem;padding:2px 7px;border-radius:20px;font-weight:600;}
.badge-green{background:rgba(74,222,128,.15);color:var(--green);}
.badge-yellow{background:rgba(226,183,20,.15);color:var(--accent);}
.badge-blue{background:rgba(96,165,250,.15);color:var(--blue);}
.badge-purple{background:rgba(192,132,252,.15);color:var(--purple);}


.topbar{display:none;}
.topbar-title{font-family:var(--mono);font-size:.82rem;color:var(--accent);font-weight:600;}
.stats-row{display:flex;gap:14px;align-items:center;flex-wrap:wrap;}
.stat-chip{font-family:var(--mono);font-size:.72rem;color:var(--text2);display:flex;align-items:center;gap:5px;}
.stat-chip span{color:var(--text);font-weight:600;}
.hearts-disp{color:var(--red);letter-spacing:2px;}


.content{flex:1;padding:20px;max-width:960px;width:100%;margin:0 auto;}


.btn{font-family:var(--mono);font-size:.78rem;font-weight:600;padding:9px 18px;border-radius:7px;border:none;cursor:pointer;transition:all .18s;letter-spacing:.02em;}
.btn-primary{background:var(--accent);color:#000;}
.btn-primary:hover{background:var(--accent2);transform:translateY(-1px);}
.btn-secondary{background:var(--bg3);border:1px solid var(--border);color:var(--text);}
.btn-secondary:hover{border-color:var(--accent);color:var(--accent);}
.btn-back{background:none;border:1px solid var(--border);color:var(--text2);font-family:var(--mono);font-size:.72rem;padding:6px 12px;border-radius:6px;cursor:pointer;transition:all .18s;}
.btn-back:hover{border-color:var(--accent);color:var(--accent);}
.ch-lives-wrap{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  margin:10px 0 12px;
  padding:8px 10px;
  border:1px solid var(--border);
  border-radius:10px;
  background:rgba(26,26,32,.65);
}
.ch-lives-label{
  font-family:var(--mono);
  font-size:.72rem;
  color:var(--text2);
  text-transform:uppercase;
  letter-spacing:.08em;
}
.ch-lives-hearts{
  font-size:1.06rem;
  letter-spacing:.14em;
  line-height:1;
}
.quick-menu-btn{
  position:fixed;
  left:14px;
  top:14px;
  z-index:220;
  border:1px solid var(--accent);
  background:rgba(18,18,22,.92);
  color:var(--accent);
  border-radius:999px;
  font-family:var(--mono);
  font-size:.72rem;
  padding:9px 14px;
  cursor:pointer;
  box-shadow:0 10px 22px rgba(0,0,0,.28);
}
.quick-menu-btn:hover{filter:brightness(1.08);}
.settings-btn{
  position:fixed;
  right:14px;
  bottom:14px;
  z-index:220;
  width:42px;
  height:42px;
  border-radius:50%;
  border:1px solid var(--accent);
  background:rgba(18,18,22,.92);
  color:var(--accent);
  font-size:1.05rem;
  line-height:1;
  cursor:pointer;
  box-shadow:0 10px 22px rgba(0,0,0,.28);
}
.settings-btn:hover{filter:brightness(1.08);}
.btn:disabled{opacity:.35;cursor:not-allowed;transform:none!important;}


.tut-card{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:28px;margin-bottom:16px;animation:fadeUp .35s ease;}
.step-label{font-family:var(--mono);font-size:.62rem;color:var(--accent);letter-spacing:.25em;text-transform:uppercase;margin-bottom:10px;}
.step-title{font-size:1.1rem;font-weight:600;margin-bottom:14px;}
.step-body{color:var(--text2);line-height:1.85;font-size:.87rem;}
.step-body p{margin-bottom:10px;}
.formula-block{background:var(--bg3);border:1px solid var(--border);border-radius:8px;padding:18px 20px;margin:14px 0;text-align:center;overflow-x:auto;}
.highlight{color:var(--accent);font-weight:600;}
.highlight-green{color:var(--green);font-weight:600;}
.highlight-blue{color:var(--blue);font-weight:600;}
.prog-dots{display:flex;gap:5px;align-items:center;}
.prog-dot{width:6px;height:6px;border-radius:50%;background:var(--border2);transition:all .25s;}
.prog-dot.active{background:var(--accent);width:18px;border-radius:3px;}
.prog-dot.done{background:var(--green);}
.tut-nav{display:flex;justify-content:space-between;align-items:center;margin-top:14px;gap:10px;}


.dd-wrap{overflow-x:auto;margin:14px 0;}
.dd-table{border-collapse:collapse;font-family:var(--mono);font-size:.78rem;width:100%;min-width:420px;}
.dd-table th{padding:9px 12px;background:var(--bg3);color:var(--text3);font-size:.62rem;letter-spacing:.12em;text-transform:uppercase;border:1px solid var(--border);text-align:center;}
.dd-table td{padding:9px 12px;border:1px solid var(--border);text-align:center;transition:all .25s;}
.tg-dd-table{font-size:.86rem;min-width:500px;}
.tg-dd-table th{padding:11px 14px;font-size:.66rem;}
.tg-dd-table td{padding:11px 14px;}
.idx-col{width:58px;min-width:58px;max-width:58px;}
.cell-index{color:var(--text3);background:var(--bg);font-weight:600;}
.cell-known{color:var(--text);background:var(--bg2);}
.cell-revealed{color:var(--green);background:rgba(74,222,128,.06);animation:cellReveal .45s ease;}
.tg-cell-revealed{animation:none;}
.cell-target{background:rgba(226,183,20,.08);border-color:var(--accent)!important;color:var(--accent);}
.cell-hidden{color:var(--text3);background:var(--bg);font-size:.68rem;}
.cell-empty{background:var(--bg);border-color:transparent!important;}
.cell-prompt{font-family:var(--mono);font-size:.64rem;color:var(--blue);margin-bottom:6px;}
.cell-operands{justify-content:center;margin:0;}
.cell-operands .op-btn{font-size:.68rem;padding:4px 7px;}
.cell-live-formula{font-family:var(--mono);font-size:.7rem;color:var(--text);margin-bottom:6px;}
.cell-live-formula .hot{color:var(--accent);text-decoration:underline;}
.cell-note{font-family:var(--mono);font-size:.62rem;color:var(--text2);margin-top:4px;}
.frac{display:inline-flex;flex-direction:column;align-items:center;line-height:1.2;}
.frac .num{display:block;padding:0 4px 2px;border-bottom:1px solid var(--text2);}
.frac .den{display:block;padding:2px 4px 0;}
.cell-source{cursor:pointer;outline:1px dashed rgba(226,183,20,.45);outline-offset:-3px;}
.cell-source:hover{background:rgba(226,183,20,.1)!important;color:var(--accent);}


.target-box{background:var(--card);border:1px solid var(--border2);border-radius:10px;padding:18px 20px;margin:14px 0;}
.target-label{font-family:var(--mono);font-size:.62rem;color:var(--text3);letter-spacing:.18em;text-transform:uppercase;margin-bottom:8px;}


.settings-wrap{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
@media(max-width:760px){.settings-wrap{grid-template-columns:1fr;}}
.settings-card{
  background:var(--card);
  border:1px solid var(--border);
  border-radius:12px;
  padding:16px;
}
.settings-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px;}
.settings-label{font-family:var(--mono);font-size:.74rem;color:var(--text2);}
.settings-color{
  width:48px;
  height:34px;
  border:1px solid var(--border2);
  border-radius:8px;
  background:var(--bg3);
  cursor:pointer;
}
.settings-sub{font-size:.78rem;color:var(--text2);margin-bottom:10px;}
.settings-lang-row{display:flex;gap:8px;flex-wrap:wrap;}
.settings-lang-btn{min-width:165px;text-align:left;}
.flag-emoji{
  font-family:"Segoe UI Emoji","Apple Color Emoji","Noto Color Emoji",sans-serif;
  font-size:1rem;
  margin-right:6px;
}
.ch-grid3{
  display:grid;
  grid-template-columns:1fr 1fr 1fr;
  gap:10px;
  align-items:start;
}
@media(max-width:980px){.ch-grid3{grid-template-columns:1fr;}}
.ch-grid2-top{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
  align-items:start;
}
.ch-grid-bottom{
  display:grid;
  grid-template-columns:1fr;
  gap:10px;
  margin-top:10px;
}
@media(max-width:980px){.ch-grid2-top{grid-template-columns:1fr;}}
.ch-locked-panel{opacity:.62;}
.ch-done-panel{border-color:rgba(74,222,128,.45);}


.operands-row{display:flex;flex-wrap:wrap;gap:7px;margin:10px 0;}
.op-btn{font-family:var(--mono);font-size:.8rem;padding:7px 13px;border-radius:6px;border:1px solid var(--border2);background:var(--bg3);color:var(--text);cursor:pointer;transition:all .18s;}
.op-btn:hover:not(:disabled){border-color:var(--accent);background:rgba(226,183,20,.08);color:var(--accent);}
.op-btn:disabled{opacity:.3;cursor:not-allowed;}
.op-btn.selected{border-color:var(--green);background:rgba(74,222,128,.1);color:var(--green);}
.slot-pill{font-size:.58rem;background:rgba(96,165,250,.2);color:var(--blue);padding:1px 5px;border-radius:3px;font-weight:700;margin-left:4px;}


.fb{padding:10px 16px;border-radius:7px;font-family:var(--mono);font-size:.78rem;font-weight:600;margin:7px 0;text-align:center;animation:fbPop .25s ease;display:none;}
.fb.show{display:block;}
.fb-ok{background:rgba(74,222,128,.14);border:1px solid rgba(74,222,128,.3);color:var(--green);}
.fb-err{background:rgba(248,113,113,.14);border:1px solid rgba(248,113,113,.3);color:var(--red);}
.fb-info{background:rgba(96,165,250,.12);border:1px solid rgba(96,165,250,.3);color:var(--blue);}


.timer-wrap{height:4px;background:var(--bg3);border-radius:2px;overflow:hidden;margin:10px 0;}
.timer-bar{height:100%;background:var(--accent);border-radius:2px;transition:width .25s linear,background .4s;}
.timer-bar.warn{background:var(--red);}


.typed-row{display:flex;gap:8px;margin:10px 0;flex-wrap:wrap;align-items:flex-end;}
.typed-field{font-family:var(--mono);font-size:.82rem;background:var(--bg3);border:1px solid var(--border);border-radius:6px;padding:8px 10px;color:var(--text);width:76px;text-align:center;transition:border-color .18s;}
.typed-field:focus{outline:none;border-color:var(--blue);}
.typed-field.ok{border-color:var(--green);color:var(--green);}
.typed-field.err{border-color:var(--red);color:var(--red);}


.tg-drop-zone{
  border:1px dashed var(--blue);
  background:rgba(96,165,250,.08);
  border-radius:8px;
  padding:14px;
  text-align:center;
  font-family:var(--mono);
  font-size:.76rem;
  color:var(--blue);
  margin-bottom:10px;
}
.tg-drop-zone.done{
  border-color:var(--green);
  color:var(--green);
  background:rgba(74,222,128,.1);
}
.tg-dnd-row{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}
.tg-dnd-chip{
  user-select:none;
  cursor:grab;
  font-family:var(--mono);
  font-size:.73rem;
  padding:8px 10px;
  border-radius:8px;
  border:1px solid var(--border2);
  background:var(--bg3);
  color:var(--text);
}
.tg-dnd-chip:active{cursor:grabbing;}
.omega-tri{
  margin-top:8px;
  border:1px solid var(--border);
  border-radius:10px;
  background:rgba(26,26,32,.5);
  padding:10px;
}
.omega-row{
  margin:4px 0;
  font-size:.84rem;
  overflow-x:auto;
}
.omega-row-active{
  background:rgba(226,183,20,.08);
  border:1px solid rgba(226,183,20,.35);
  border-radius:8px;
  padding:6px 8px;
}
.omega-item{
  border:1px solid var(--border2);
  background:var(--bg3);
  border-radius:8px;
  padding:8px;
  margin-bottom:8px;
  cursor:grab;
  overflow-x:auto;
}
.omega-item:active{cursor:grabbing;}
.omega-item-active{
  border-color:var(--blue);
  box-shadow:0 0 0 1px rgba(96,165,250,.35) inset;
}
.tg-poly-grid{
  display:grid;
  grid-template-columns:1fr 1.15fr 1fr;
  gap:10px;
  align-items:start;
}
@media(max-width:900px){
  .tg-poly-grid{grid-template-columns:1fr;}
}
.tg-poly-left,.tg-poly-mid,.tg-poly-right{
  background:rgba(20,20,24,.55);
  border:1px solid var(--border);
  border-radius:10px;
  padding:10px;
}
.tg-pts-table .tg-idx-sm{
  width:44px;
  min-width:44px;
  max-width:44px;
  padding:6px 6px;
}
.tg-x-target{
  background:rgba(96,165,250,.14)!important;
  outline:1px dashed rgba(96,165,250,.55);
  color:var(--blue);
}


.viz-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;align-items:start;}
@media(max-width:660px){.viz-grid{grid-template-columns:1fr;}}
.viz-panel{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:18px;}
.panel-title{font-family:var(--mono);font-size:.62rem;color:var(--text3);letter-spacing:.18em;text-transform:uppercase;margin-bottom:14px;}
.point-list{display:flex;flex-direction:column;gap:7px;margin-bottom:10px;max-height:180px;overflow-y:auto;}
.point-row{display:flex;align-items:center;gap:7px;font-family:var(--mono);font-size:.78rem;}
.point-coord{background:var(--bg3);border:1px solid var(--border);border-radius:5px;padding:5px 9px;color:var(--text2);flex:1;}
.btn-rm{background:none;border:none;color:var(--text3);cursor:pointer;font-size:.95rem;padding:2px 6px;border-radius:4px;transition:color .18s;}
.btn-rm:hover{color:var(--red);}
.add-row{display:flex;gap:6px;flex-wrap:wrap;}
.coord-in{font-family:var(--mono);font-size:.78rem;background:var(--bg3);border:1px solid var(--border);border-radius:6px;padding:7px 9px;color:var(--text);width:58px;text-align:center;}
.coord-in:focus{outline:none;border-color:var(--blue);}
.poly-display{background:var(--bg3);border:1px solid var(--border);border-radius:8px;padding:14px 16px;font-size:.88rem;overflow-x:auto;min-height:52px;text-align:center;color:var(--text2);}
.viz-ord-nav{display:flex;gap:8px;align-items:center;justify-content:center;margin-top:10px;flex-wrap:wrap;}
.viz-ord-label{font-family:var(--mono);font-size:.72rem;color:var(--text2);min-width:110px;text-align:center;}
.viz-ord-nav .btn{background:var(--accent);color:#000;border:1px solid var(--accent);}
.viz-ord-nav .btn:hover:not(:disabled){background:var(--accent2);border-color:var(--accent2);color:#000;}
.chart-wrap{position:relative;width:100%;aspect-ratio:4/3;}


.level-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:20px;}
@media(max-width:480px){.level-grid{grid-template-columns:1fr;}}
.lv-card{background:var(--card);border:1px solid var(--border);border-radius:10px;padding:18px;cursor:pointer;transition:all .2s;text-align:center;}
.lv-card:hover,.lv-card.active{border-color:var(--accent);}
.lv-card.active{background:rgba(226,183,20,.05);}
.lv-num{font-family:var(--mono);font-size:1.6rem;font-weight:700;color:var(--accent);}
.lv-name{font-size:.85rem;font-weight:600;margin-top:4px;}
.lv-desc{font-size:.7rem;color:var(--text2);margin-top:3px;}


.exp-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px;}
.exp-header-card{background:linear-gradient(120deg,rgba(226,183,20,.08),rgba(96,165,250,.08));border:1px solid var(--border2);border-radius:12px;padding:16px;margin-bottom:12px;}
.exp-header-title{font-size:1rem;font-weight:700;color:var(--accent);margin-bottom:6px;}
.exp-header-sub{font-size:.8rem;color:var(--text2);line-height:1.65;}
.exp-gif-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:10px;margin-bottom:12px;}
@media(max-width:860px){.exp-gif-grid{grid-template-columns:1fr;}}
.exp-gif{background:var(--bg3);border:1px solid var(--border);border-radius:10px;padding:12px;position:relative;overflow:hidden;min-height:180px;}
.exp-gif-lg{min-height:260px;}
.exp-gif-title{font-family:var(--mono);font-size:.62rem;color:var(--text3);letter-spacing:.14em;text-transform:uppercase;margin-bottom:8px;}
.exp-gif-table-wrap{display:flex;justify-content:center;padding-bottom:8px;}
.exp-gif-table{border-collapse:collapse;font-family:var(--mono);font-size:.72rem;min-width:320px;}
.exp-gif-table th,.exp-gif-table td{border:1px solid var(--border);padding:6px 8px;text-align:center;}
.exp-gif-table th{background:var(--bg2);color:var(--text3);font-size:.58rem;letter-spacing:.1em;text-transform:uppercase;}
.exp-gif-table td{background:rgba(255,255,255,.01);}
.exp-gif-hi{background:rgba(226,183,20,.15)!important;color:var(--accent);animation:pulseHi 1.2s ease-in-out infinite;}
.exp-gif-new{background:rgba(74,222,128,.12)!important;color:var(--green);}
.exp-gif-muted{color:var(--text3);}
.exp-flow{margin-top:8px;padding:8px 10px;background:rgba(96,165,250,.08);border:1px solid rgba(96,165,250,.25);border-radius:8px;}
.exp-flow-row{display:flex;align-items:center;justify-content:center;gap:6px;flex-wrap:wrap;}
.exp-chip{font-family:var(--mono);font-size:.68rem;background:var(--bg2);border:1px solid var(--border2);padding:3px 7px;border-radius:6px;display:inline-block;}
.exp-chip-target{background:rgba(74,222,128,.14);border-color:rgba(74,222,128,.35);color:var(--green);}
.exp-arr{color:var(--accent);font-weight:700;}
.exp-flow-expr{
  margin-top:6px;
  font-family:var(--mono);
  font-size:.64rem;
  color:var(--text2);
  text-align:center;
  line-height:1.5;
  overflow-wrap:anywhere;
  word-break:break-word;
}
.exp-trick{margin-top:8px;padding:8px 10px;background:rgba(226,183,20,.08);border:1px solid rgba(226,183,20,.28);border-radius:8px;font-family:var(--mono);font-size:.66rem;color:var(--accent2);}
.exp-gif-eq{
  position:static;
  margin-top:8px;
  font-family:var(--mono);
  font-size:.64rem;
  color:var(--text2);
  text-align:center;
  line-height:1.5;
  overflow-wrap:anywhere;
  word-break:break-word;
}
.exp-hero-note{margin-top:10px;font-size:.74rem;color:var(--text3);font-family:var(--mono);}
.exp-grid{display:grid;grid-template-columns:1fr;gap:10px;}
@media(max-width:720px){.exp-grid{grid-template-columns:1fr;}}
.exp-card{background:var(--card);border:1px solid var(--border);border-radius:10px;padding:16px;animation:fadeUp .35s ease both;}
.exp-card-kicker{font-family:var(--mono);font-size:.58rem;color:var(--text3);letter-spacing:.16em;text-transform:uppercase;margin-bottom:6px;}
.exp-card-title{font-size:1rem;font-weight:700;color:var(--accent);margin-bottom:8px;}
.exp-card-body{font-size:.84rem;line-height:1.9;color:var(--text2);}
.exp-mini-stage{height:170px;display:flex;align-items:center;justify-content:center;}
.exp-mini-note{font-family:var(--mono);font-size:.68rem;color:var(--text2);text-align:center;margin-top:6px;}
.exp-curve-svg{width:100%;max-width:320px;height:130px;}
.exp-curve-path{fill:none;stroke:var(--accent);stroke-width:2.3;stroke-linecap:round;}
.exp-curve-pts{fill:var(--green);}
.exp-basis-term{font-family:var(--mono);font-size:.78rem;color:var(--text);text-align:center;}
.exp-basis-term .hot{color:var(--accent);}


.start-overlay{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:52px 36px;text-align:center;}
.ov-title{font-family:var(--mono);font-size:1.1rem;font-weight:700;color:var(--accent);margin-bottom:8px;}
.ov-sub{font-size:.8rem;color:var(--text2);margin-bottom:22px;line-height:1.6;}

.res-overlay{position:fixed;inset:0;background:rgba(14,14,16,.94);display:flex;align-items:center;justify-content:center;z-index:300;animation:fadeIn .28s ease;}
.res-card{background:var(--card);border:1px solid var(--border2);border-radius:16px;padding:36px;max-width:400px;width:90%;text-align:center;animation:fadeUp .35s ease;}
.res-emoji{font-size:2.8rem;margin-bottom:10px;}
.res-title{font-size:1.4rem;font-weight:700;margin-bottom:6px;}
.res-sub{color:var(--text2);font-size:.82rem;margin-bottom:20px;}
.res-stats{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:20px;}
.res-stat{background:var(--bg3);border-radius:8px;padding:11px;}
.rs-label{font-family:var(--mono);font-size:.58rem;color:var(--text3);letter-spacing:.18em;text-transform:uppercase;margin-bottom:3px;}
.rs-val{font-family:var(--mono);font-size:1.25rem;font-weight:700;}
.res-btns{display:flex;gap:9px;justify-content:center;flex-wrap:wrap;}


.score-flash{position:fixed;top:45%;left:50%;transform:translate(-50%,-50%);font-family:var(--mono);font-size:1.8rem;font-weight:700;pointer-events:none;z-index:9998;animation:flashAnim .8s ease forwards;}
.sf-plus{color:var(--green);}
.sf-minus{color:var(--red);}


.poly-builder{background:var(--bg3);border:1px solid var(--border);border-radius:8px;padding:12px 16px;margin:10px 0;font-size:.84rem;overflow-x:auto;min-height:46px;text-align:center;color:var(--text2);}


.iter-steps{display:flex;flex-direction:column;gap:7px;margin:10px 0;}
.iter-step{background:var(--bg3);border-left:3px solid var(--border2);border-radius:0 6px 6px 0;padding:9px 13px;font-size:.8rem;opacity:.5;transition:all .35s;}
.iter-step.on{border-color:var(--accent);opacity:1;background:rgba(226,183,20,.05);}


@keyframes fadeDown{from{opacity:0;transform:translateY(-18px)}to{opacity:1;transform:none}}
@keyframes fadeUp{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
@keyframes cellReveal{0%{transform:scale(.8);opacity:0;background:rgba(74,222,128,.25)}100%{transform:scale(1);opacity:1}}
@keyframes fbPop{0%{transform:scale(.94);opacity:0}100%{transform:scale(1);opacity:1}}
@keyframes shake{0%,100%{transform:translateX(0)}20%{transform:translateX(-7px)}40%{transform:translateX(7px)}60%{transform:translateX(-4px)}80%{transform:translateX(4px)}}
@keyframes flashAnim{0%{opacity:1;transform:translate(-50%,-60%)}100%{opacity:0;transform:translate(-50%,-110%)}}
@keyframes pulseHi{0%,100%{box-shadow:0 0 0 rgba(226,183,20,0)}50%{box-shadow:0 0 14px rgba(226,183,20,.35)}}
@keyframes moveChip{0%{transform:translateX(0)}50%{transform:translateX(5px)}100%{transform:translateX(0)}}
.move-0{animation:moveChip 1.1s ease-in-out infinite;}
.move-1{animation:moveChip 1.1s ease-in-out .15s infinite;}
.move-2{animation:moveChip 1.1s ease-in-out .3s infinite;}
.move-3{animation:moveChip 1.1s ease-in-out .45s infinite;}
.shake{animation:shake .38s ease;}


::-webkit-scrollbar{width:5px;height:5px}
::-webkit-scrollbar-track{background:var(--bg2)}
::-webkit-scrollbar-thumb{background:var(--border2);border-radius:3px}

@media(max-width:520px){
  .menu-grid{grid-template-columns:1fr;}
  .content{padding:14px;}
}
