:root{
  --navy:#07111F;
  --navy-2:#0b1a2c;
  --card:#0e1d31;
  --card-2:#10233a;
  --orange:#FF9600;
  --cyan:#0CC0DF;
  --ink:#E9F1FA;
  --muted:#8AA0B8;
  --line:rgba(12,192,223,.16);
  --orange-soft:rgba(255,150,0,.14);
  --cyan-soft:rgba(12,192,223,.14);
  --shadow:0 18px 50px rgba(0,0,0,.45);
}
*{box-sizing:border-box}
html,body{margin:0}
body{
  font-family:"Outfit",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  color:var(--ink);
  background:
    radial-gradient(1200px 700px at 18% -10%, rgba(12,192,223,.10), transparent 60%),
    radial-gradient(1000px 600px at 110% 10%, rgba(255,150,0,.08), transparent 55%),
    var(--navy);
  min-height:100vh;
  -webkit-font-smoothing:antialiased;
}
/* malha sutil ciano */
.grid-overlay{
  position:fixed; inset:0; pointer-events:none; z-index:0;
  background-image:
    linear-gradient(rgba(12,192,223,.05) 1px, transparent 1px),
    linear-gradient(90deg, rgba(12,192,223,.05) 1px, transparent 1px);
  background-size:38px 38px;
  mask-image:radial-gradient(120% 100% at 50% 0%, #000 55%, transparent 100%);
}

.wrap{position:relative; z-index:1; max-width:1120px; margin:0 auto; padding:26px 20px 0;}

/* ---------- Cabeçalho ---------- */
header{display:flex; align-items:center; gap:16px; flex-wrap:wrap; margin-bottom:18px;}
.logo{display:flex; align-items:center; gap:11px;}
.logo-mark{
  width:42px;height:42px;border-radius:12px;flex:none;
  background:linear-gradient(135deg,var(--orange),#ffb84d);
  display:grid;place-items:center;
  box-shadow:0 6px 18px rgba(255,150,0,.35);
  position:relative;
}
.logo-mark span{font-weight:800;font-size:23px;color:#0a1422;line-height:1}
.logo-mark::after{
  content:"";position:absolute;inset:0;border-radius:12px;
  border:1.5px solid rgba(255,255,255,.35);
}
.logo-txt b{font-weight:800;letter-spacing:.2px;font-size:19px}
.logo-txt b i{color:var(--cyan);font-style:normal}
.logo-txt small{display:block;color:var(--muted);font-size:11.5px;letter-spacing:1.6px;text-transform:uppercase;margin-top:1px}
.title{text-align:left}
.title h1{margin:0;font-size:19px;font-weight:800;line-height:1.15}
.title h1 b{color:var(--orange)}
.title p{margin:3px 0 0;color:var(--muted);font-size:12.5px}

/* ---------- Layout principal ---------- */
.board{
  display:grid; grid-template-columns:1.15fr .85fr; gap:18px; align-items:stretch;
}
.card{
  background:linear-gradient(180deg,var(--card),var(--card-2));
  border:1px solid var(--line);
  border-radius:18px;
  box-shadow:var(--shadow);
  padding:18px;
}
.stage{display:flex;flex-direction:column;gap:14px}
.canvas-shell{
  position:relative;width:100%;aspect-ratio:1/1;border-radius:14px;overflow:hidden;
  background:
    radial-gradient(120% 120% at 50% 30%, rgba(12,192,223,.05), transparent 60%),
    #081323;
  border:1px solid rgba(12,192,223,.12);
}
.canvas-shell::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background-image:
    linear-gradient(rgba(12,192,223,.05) 1px, transparent 1px),
    linear-gradient(90deg, rgba(12,192,223,.05) 1px, transparent 1px);
  background-size:30px 30px;
}
canvas{position:absolute;inset:0;width:100%;height:100%}

.legend{display:flex;gap:16px;flex-wrap:wrap;justify-content:center;font-size:12.5px;color:var(--muted)}
.legend span{display:inline-flex;align-items:center;gap:7px}
.chip{width:13px;height:13px;border-radius:4px;flex:none}
.chip.in{background:var(--cyan-soft);border:2px solid var(--cyan)}
.chip.out{background:var(--orange-soft);border:2px solid var(--orange)}
.chip.circ{border-radius:50%;background:transparent;border:2px solid #cdd9e6}

/* ---------- Controles ---------- */
.panel{display:flex;flex-direction:column;gap:16px}

.toggle{
  display:grid;grid-template-columns:1fr 1fr;gap:5px;padding:5px;
  background:#091627;border:1px solid var(--line);border-radius:13px;
}
.toggle button{
  appearance:none;border:0;cursor:pointer;border-radius:9px;padding:11px 8px;
  font-family:inherit;font-weight:700;font-size:14px;color:var(--muted);
  background:transparent;transition:.18s; letter-spacing:.3px;
}
.toggle button.active{color:#0a1422;box-shadow:0 4px 14px rgba(0,0,0,.3)}
.toggle button[data-m="perimetro"].active{background:linear-gradient(135deg,var(--cyan),#5bd8ee)}
.toggle button[data-m="area"].active{background:linear-gradient(135deg,var(--orange),#ffb84d)}

.control label{display:flex;justify-content:space-between;align-items:baseline;font-size:13.5px;color:var(--muted);margin-bottom:9px}
.control label b{color:var(--ink);font-size:15px;font-weight:700}
.control label b u{text-decoration:none;color:var(--orange)}
input[type=range]{
  -webkit-appearance:none;appearance:none;width:100%;height:8px;border-radius:999px;
  background:#16304d;box-shadow:inset 0 1px 3px rgba(0,0,0,.5);outline:none;cursor:pointer;
}
input[type=range]::-webkit-slider-thumb{
  -webkit-appearance:none;width:22px;height:22px;border-radius:50%;
  background:#fff;border:4px solid var(--orange);cursor:pointer;
  box-shadow:0 3px 10px rgba(0,0,0,.4);transition:transform .1s;
}
input[type=range]::-webkit-slider-thumb:active{transform:scale(1.12)}
input[type=range]::-moz-range-thumb{
  width:22px;height:22px;border-radius:50%;background:#fff;border:4px solid var(--orange);cursor:pointer;
}

.hint{font-size:11.5px;color:var(--muted);margin-top:7px;line-height:1.4}

/* ---------- Leitura de valores ---------- */
.readout{display:flex;flex-direction:column;gap:9px}
.row{
  display:flex;justify-content:space-between;align-items:center;gap:10px;
  padding:11px 13px;border-radius:11px;background:#0a1726;border:1px solid rgba(255,255,255,.05);
}
.row .k{display:flex;align-items:center;gap:9px;font-size:13px;color:var(--muted)}
.row .k .dot{width:9px;height:9px;border-radius:50%}
.row .v{font-family:"Fira Code",monospace;font-weight:500;font-size:15px}
.row.falta{border-left:3px solid var(--cyan)}
.row.real{border-left:3px solid #cdd9e6}
.row.excesso{border-left:3px solid var(--orange)}
.row.falta .v{color:var(--cyan)}
.row.excesso .v{color:var(--orange)}
.row .v small{color:var(--muted);font-size:11px;font-weight:400}

.pi-box{
  margin-top:2px;padding:14px;border-radius:13px;
  background:linear-gradient(135deg, rgba(12,192,223,.10), rgba(255,150,0,.10));
  border:1px solid rgba(255,255,255,.08);text-align:center;
}
.pi-box .lab{font-size:11.5px;letter-spacing:1.4px;text-transform:uppercase;color:var(--muted)}
.pi-box .ineq{font-family:"Fira Code",monospace;font-size:15.5px;margin-top:7px;line-height:1.5}
.pi-box .ineq .lo{color:var(--cyan)} .pi-box .ineq .hi{color:var(--orange)}
.pi-box .ineq .pi{color:#fff;font-weight:600}
.pi-box .amp{font-size:12px;color:var(--muted);margin-top:8px}
.pi-box .amp b{color:#fff;font-family:"Fira Code",monospace;font-weight:500}

.formula{
  font-size:12.5px;color:var(--muted);background:#091525;border:1px dashed rgba(12,192,223,.18);
  border-radius:11px;padding:11px 13px;line-height:1.7;
}
.formula b{color:var(--ink);font-weight:600}
.formula .o{color:var(--orange)} .formula .c{color:var(--cyan)}
.formula em{font-style:italic}

/* ---------- Faixa MicroMath (padrão dos dispositivos) ---------- */
.mm-footer{
  position:relative;z-index:1;margin-top:24px;
  background:#050d18;
  border-top:3px solid var(--cyan);
  color:var(--muted);
  text-align:center;
  padding:14px 20px;
  font-size:13px;line-height:1.5;
}
.mm-footer b{color:var(--ink);font-weight:700}
.mm-footer::before{
  content:"";position:absolute;left:0;right:0;top:0;height:3px;background:var(--orange);
}

/* ---------- Página inicial (splash) ---------- */
#intro{
  position:fixed; inset:0; z-index:60;
  display:flex; align-items:center; justify-content:center;
  background:
    radial-gradient(900px 600px at 50% -8%, rgba(12,192,223,.13), transparent 60%),
    radial-gradient(760px 520px at 50% 118%, rgba(255,150,0,.11), transparent 60%),
    var(--navy);
  transition:opacity .5s ease, visibility .5s ease;
}
#intro::before{
  content:""; position:absolute; inset:0; pointer-events:none;
  background-image:
    linear-gradient(rgba(12,192,223,.05) 1px, transparent 1px),
    linear-gradient(90deg, rgba(12,192,223,.05) 1px, transparent 1px);
  background-size:38px 38px;
  mask-image:radial-gradient(120% 100% at 50% 45%, #000 55%, transparent 100%);
}
#intro.hidden{opacity:0; visibility:hidden; pointer-events:none;}
.intro-inner{
  position:relative; z-index:1; display:flex; flex-direction:column; align-items:center;
  gap:24px; padding:26px; text-align:center;
}
.intro-title{
  margin:0; font-weight:800; line-height:1.06; letter-spacing:.3px;
  font-size:clamp(26px,6.2vw,46px);
}
.intro-title span{color:var(--orange)}
.medallion{position:relative; width:min(74vw,320px); aspect-ratio:1/1; display:grid; place-items:center;}
.med-circle{position:absolute; inset:0; width:100%; height:100%}
.med-figura{position:absolute; top:12%; left:12%; width:76%; height:76%; object-fit:contain}
.start-btn{
  font-family:inherit; font-weight:700; font-size:18px; color:#0a1422; cursor:pointer; border:0;
  padding:15px 46px; border-radius:14px; letter-spacing:.4px;
  background:linear-gradient(180deg,#ffb856,var(--orange));
  box-shadow:0 6px 0 #b26800, 0 12px 24px rgba(0,0,0,.42);
  transition:transform .08s ease, box-shadow .08s ease;
}
.start-btn:hover{filter:brightness(1.04)}
.start-btn:active{transform:translateY(4px); box-shadow:0 2px 0 #b26800, 0 6px 14px rgba(0,0,0,.42);}
.intro-tag{margin:0; color:var(--muted); font-size:12px; letter-spacing:1.6px; text-transform:uppercase;}
.intro-tag b{color:var(--ink); font-weight:700}

@media (max-width:860px){
  .board{grid-template-columns:1fr}
  .title{margin-left:0;text-align:left;width:100%}
  header{gap:10px}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}
