:root{--bg: #06110b;--bg-1: #0a1a11;--bg-2: #0f2417;--bg-3: #14301e;--line: rgba(199, 242, 74, .16);--line-soft: rgba(233, 245, 235, .09);--ink: #eaf4ec;--ink-dim: #8aa593;--ink-faint: #5c7567;--lime: #c7f24a;--lime-deep: #9fd11f;--amber: #ff9d3c;--red: #ff5f5f;--turf: #1f6f43;--radius: 18px;--radius-sm: 12px;--gap: clamp(.9rem, 3.5vw, 1.4rem);--shadow: 0 24px 60px -28px rgba(0, 0, 0, .85), 0 2px 0 rgba(199, 242, 74, .05) inset;--font-display: "Bricolage Grotesque", ui-sans-serif, system-ui, sans-serif;--font-mono: "Martian Mono", ui-monospace, "SFMono-Regular", monospace}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%}body{font-family:var(--font-display);background:var(--bg);color:var(--ink);min-height:100svh;line-height:1.45;letter-spacing:.01em;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:-2;background:radial-gradient(120% 90% at 78% -8%,rgba(199,242,74,.14),transparent 55%),radial-gradient(90% 70% at 12% 108%,rgba(31,111,67,.34),transparent 60%),repeating-radial-gradient(circle at 72% 28%,transparent 0 26px,rgba(31,111,67,.13) 26px 27px),var(--bg)}body:after{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;pointer-events:none;opacity:.05;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}#root{display:flex;justify-content:center}.app{width:100%;max-width:460px;min-height:100svh;display:flex;flex-direction:column;padding:max(env(safe-area-inset-top),14px) 16px calc(env(safe-area-inset-bottom) + 16px)}.app__header{display:flex;flex-direction:column;gap:14px;padding:6px 4px 18px}.brand{font-size:clamp(1.05rem,4.2vw,1.4rem);font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--ink);display:flex;align-items:center;gap:.6ch}.brand:before{content:"";width:.62em;height:.62em;border-radius:50%;background:var(--lime);box-shadow:0 0 16px var(--lime);flex:none}.nav{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;padding:5px;background:linear-gradient(180deg,var(--bg-1),var(--bg));border:1px solid var(--line-soft);border-radius:999px}.nav a{text-align:center;padding:.62rem .4rem;border-radius:999px;text-decoration:none;color:var(--ink-dim);font-size:.74rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;transition:color .18s,background .18s,box-shadow .18s}.nav a:hover{color:var(--ink)}.nav a.active{color:#08130b;background:var(--lime);box-shadow:0 0 22px -4px var(--lime)}.app__main{flex:1;display:flex;flex-direction:column}.panel{position:relative;background:linear-gradient(180deg,#14301e8c,#0a1a118c);border:1px solid var(--line-soft);border-radius:var(--radius);box-shadow:var(--shadow);padding:clamp(1.1rem,4.5vw,1.6rem);display:flex;flex-direction:column;gap:var(--gap);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);overflow:hidden}.panel:before{content:"";position:absolute;top:10px;left:10px;width:16px;height:16px;border-top:2px solid var(--line);border-left:2px solid var(--line)}.panel:after{content:"";position:absolute;bottom:10px;right:10px;width:16px;height:16px;border-bottom:2px solid var(--line);border-right:2px solid var(--line)}.holetag{font-family:var(--font-mono);font-size:.7rem;font-weight:600;letter-spacing:.28em;text-transform:uppercase;color:var(--lime);display:flex;align-items:center;gap:.8ch}.holetag:after{content:"";flex:1;height:1px;background:linear-gradient(90deg,var(--line),transparent)}.eyebrow{font-family:var(--font-mono);font-size:.66rem;letter-spacing:.26em;text-transform:uppercase;color:var(--ink-faint)}.dist{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:clamp(.6rem,3vw,1.1rem)}.dist__value{text-align:center;white-space:nowrap;font-family:var(--font-mono);font-weight:600;font-size:clamp(2rem,11.5vw,3.2rem);line-height:.95;color:var(--ink);letter-spacing:-.04em;font-variant-numeric:tabular-nums;text-shadow:0 0 32px rgba(199,242,74,.18)}.step{--d: 64px;width:var(--d);height:var(--d);flex:none;border-radius:50%;border:1px solid var(--line);background:radial-gradient(120% 120% at 50% 20%,var(--bg-3),var(--bg-1));color:var(--ink);font-family:var(--font-mono);font-size:0;cursor:pointer;position:relative;transition:transform .12s,border-color .18s,box-shadow .18s,background .18s}.step:before{font-size:2rem;font-weight:300;line-height:1;color:var(--lime)}.step--minus:before{content:"−"}.step--plus:before{content:"+"}.step:hover{border-color:var(--lime);box-shadow:0 0 24px -6px var(--lime)}.step:active{transform:scale(.92);background:var(--bg-3)}.field{display:flex;flex-direction:column;gap:9px}.seg{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;padding:6px;background:var(--bg);border:1px solid var(--line-soft);border-radius:var(--radius-sm)}.seg button{padding:.85rem .4rem;border:1px solid transparent;border-radius:9px;background:var(--bg-1);color:var(--ink-dim);font-family:var(--font-mono);font-size:.92rem;font-weight:500;cursor:pointer;transition:transform .1s,background .16s,color .16s,box-shadow .16s,border-color .16s}.seg button:hover{color:var(--ink);border-color:var(--line)}.seg button:active{transform:translateY(1px)}.seg button[aria-pressed=true]{background:var(--lime);color:#08130b;font-weight:700;box-shadow:0 0 22px -6px var(--lime)}.pad{display:grid;grid-template-columns:1fr 1fr;gap:8px}.pad button{padding:.8rem .5rem;border-radius:10px;border:1px solid var(--line-soft);background:var(--bg-1);color:var(--ink-dim);font-family:var(--font-display);font-weight:600;font-size:.86rem;letter-spacing:.04em;cursor:pointer;transition:transform .1s,background .16s,color .16s,border-color .16s,box-shadow .16s}.pad button:active{transform:translateY(1px)}.pad button[aria-pressed=true]{color:#1a0d02;background:var(--amber);border-color:transparent;box-shadow:0 0 22px -6px var(--amber)}.toggle{display:grid;grid-template-columns:1fr 1fr;gap:8px}.toggle button{padding:.95rem .5rem;border-radius:var(--radius-sm);border:1px solid var(--line-soft);background:var(--bg-1);color:var(--ink-dim);font-family:var(--font-display);font-weight:700;font-size:.95rem;letter-spacing:.04em;cursor:pointer;transition:transform .1s,background .16s,color .16s,box-shadow .16s,border-color .16s}.toggle button:active{transform:translateY(1px)}.toggle button[aria-pressed=true]{color:#08130b;background:var(--lime);border-color:transparent;box-shadow:0 0 22px -6px var(--lime)}.toggle button.is-miss[aria-pressed=true]{color:#1a0d02;background:var(--amber);box-shadow:0 0 22px -6px var(--amber)}.actions{display:flex;flex-direction:column;gap:10px;margin-top:2px}.btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--line);background:var(--bg-1);color:var(--ink);font-family:var(--font-display);font-weight:700;font-size:.98rem;letter-spacing:.06em;padding:1rem 1.2rem;border-radius:var(--radius-sm);cursor:pointer;transition:transform .1s,background .16s,box-shadow .18s,border-color .16s,color .16s}.btn:active{transform:translateY(1px) scale(.995)}.btn--primary{background:var(--lime);color:#08130b;border-color:transparent;box-shadow:0 14px 34px -16px var(--lime)}.btn--primary:hover{background:var(--lime-deep)}.btn--ghost{background:transparent;color:var(--ink-dim)}.btn--ghost:hover{color:var(--ink);border-color:var(--lime)}.statusbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:16px;padding:0 4px}.sync{display:inline-flex;align-items:center;gap:.7ch;background:transparent;border:1px solid var(--line);color:var(--ink);font-family:var(--font-mono);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;padding:.55rem .95rem;border-radius:999px;cursor:pointer;transition:border-color .16s,box-shadow .16s,color .16s}.sync:before{content:"";width:7px;height:7px;border-radius:50%;background:var(--lime);box-shadow:0 0 10px var(--lime);animation:pulse 2.4s ease-in-out infinite}.sync:hover{border-color:var(--lime);box-shadow:0 0 22px -8px var(--lime)}.synced{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.08em;color:var(--lime)}.stats__head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:4px}.stats h2{font-size:clamp(1.3rem,6vw,1.7rem);font-weight:800;letter-spacing:-.01em}.log{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}.log thead th{font-family:var(--font-mono);font-size:.62rem;letter-spacing:.22em;text-transform:uppercase;color:var(--ink-faint);text-align:right;padding:0 .4rem .7rem;border-bottom:1px solid var(--line-soft)}.log thead th:first-child{text-align:left}.log tbody td{font-family:var(--font-mono);font-size:.95rem;padding:.85rem .4rem;border-bottom:1px solid var(--line-soft);text-align:right;color:var(--ink)}.log tbody td:first-child{text-align:left;color:var(--ink-dim);letter-spacing:.02em}.log .sg-pos{color:var(--lime);font-weight:600}.log .sg-neg{color:var(--amber);font-weight:600}.empty{font-family:var(--font-mono);font-size:.8rem;color:var(--ink-faint);padding:2.4rem 0;text-align:center;letter-spacing:.05em}[role=alert]{font-family:var(--font-mono);font-size:.82rem;color:var(--amber);background:#ff9d3c14;border:1px solid rgba(255,157,60,.3);border-radius:var(--radius-sm);padding:1rem 1.1rem;letter-spacing:.03em}@keyframes rise{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.35}}.app__header,.panel,.stats,.statusbar{animation:rise .5s cubic-bezier(.2,.7,.2,1) both}.panel{animation-delay:.06s}.statusbar{animation-delay:.14s}.panel>*{animation:rise .45s cubic-bezier(.2,.7,.2,1) both}.panel>*:nth-child(2){animation-delay:.08s}.panel>*:nth-child(3){animation-delay:.13s}.panel>*:nth-child(4){animation-delay:.18s}.panel>*:nth-child(5){animation-delay:.23s}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation:none!important;transition:none!important}}:focus-visible{outline:2px solid var(--lime);outline-offset:2px}
