@font-face{font-family:GeneralSans;src:url(/assets/GeneralSans-p1VyP7gg.woff2)format("woff2");font-display:swap}@font-face{font-family:CommitMono;src:url(/assets/CommitMono-ytizKI8U.woff2)format("woff2");font-feature-settings:"ss01" on, "ss02" on, "ss03" on, "ss04" on, "ss05" on;font-display:swap}@font-face{font-family:PixelHackers;src:url(/assets/PixelHackers-Cvu3-QBA.woff2)format("woff2");font-display:swap}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#000;--text:#fff;--text-secondary:#a3a3a3;--text-muted:#737373;--border:#ffffff26;--border-strong:#ffffff4d;--fill-subtle:#ffffff0f;--fill-hover:#ffffff1a;--accent:#fcd34d;--danger:#ff6166;--font-sans:"GeneralSans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono:"CommitMono", ui-monospace, SFMono-Regular, Menlo, monospace;--font-display:"PixelHackers", "CommitMono", ui-monospace, monospace;--ease-out-strong:cubic-bezier(.23, 1, .32, 1)}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{font-family:var(--font-sans);background:var(--bg);color:var(--text);flex-direction:column;min-height:100dvh;margin:0;font-size:16px;display:flex}header{width:100%;max-width:672px;padding:calc(24px + env(safe-area-inset-top)) 24px 0;margin:0 auto}.skip-link{z-index:100;background:var(--bg);border:1px solid var(--border-strong);color:var(--text);font-family:var(--font-mono);clip-path:inset(100%);padding:10px 14px;font-size:13px;text-decoration:none;position:fixed;top:10px;left:10px}.skip-link:focus-visible{clip-path:none;box-shadow:0 0 0 2px var(--bg), 0 0 0 4px #fff6;outline:none}h1{font-family:var(--font-display);font-synthesis:none;text-wrap:balance;margin:0;font-size:28px;font-weight:400;line-height:1.2}.tagline{color:var(--text-secondary);margin:6px 0 0;font-size:14px}.steps{gap:8px;margin:20px 0 0;padding:0;list-style:none;display:flex}.steps li{font-family:var(--font-mono);color:var(--text-muted);text-align:center;font-variant-numeric:tabular-nums;flex:1;font-size:11px}.steps li:before{content:"";background:var(--border);height:3px;margin-bottom:6px;display:block}.steps li.done:before{background:var(--text)}.steps li.current{color:var(--accent)}main{flex:1;width:100%;max-width:672px;margin:0 auto;padding:0 24px}.screen{transition:opacity .25s var(--ease-out-strong), transform .25s var(--ease-out-strong)}@starting-style{.screen{opacity:0;transform:translateY(6px)}}.screen h2{font-family:var(--font-display);font-synthesis:none;text-wrap:balance;margin:24px 0 6px;font-size:22px;font-weight:400;line-height:1.2}.hint{color:var(--text-secondary);text-wrap:pretty;margin:0 0 14px;font-size:14px;line-height:1.5}.copy{text-wrap:pretty;margin:0 0 14px;font-size:16px;line-height:1.6}.copy a{color:var(--text);text-decoration:underline;-webkit-text-decoration-color:var(--text-muted);text-decoration-color:var(--text-muted);text-underline-offset:2px;text-decoration-thickness:1px;transition:text-decoration-color .15s}.copy a:focus-visible{box-shadow:0 0 0 2px var(--bg), 0 0 0 4px #fff6;outline:none}.msg{font-family:var(--font-mono);color:var(--danger);min-height:1em;margin:8px 0 0;font-size:13px}.counts{font-family:var(--font-mono);color:var(--text-secondary);font-variant-numeric:tabular-nums;margin:10px 2px 0;font-size:12px}footer{width:100%;max-width:672px;padding:24px 24px calc(24px + env(safe-area-inset-bottom));text-align:center;font-family:var(--font-mono);color:var(--text-muted);margin:0 auto;font-size:12px}.group+.group{margin-top:24px}.disclosure{border:1px solid var(--border);margin:0 0 14px}.disclosure summary{font-family:var(--font-mono);color:var(--text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;touch-action:manipulation;padding:10px 12px;font-size:13px;transition:color .15s}.disclosure summary:focus-visible{box-shadow:0 0 0 2px var(--bg), 0 0 0 4px #fff6;outline:none}.disclosure[open] summary{border-bottom:1px solid var(--border);color:var(--text)}.disclosure[open] ul,.disclosure[open] p{animation:disclosure-reveal .2s var(--ease-out-strong)}@keyframes disclosure-reveal{0%{opacity:0;transform:translateY(-2px)}}.disclosure ul{margin:12px 12px 0;padding-left:18px}.disclosure li{margin-bottom:8px}.disclosure li,.disclosure p{color:var(--text-secondary);font-size:14px;line-height:1.5}.disclosure li b{color:var(--text);font-weight:500}.disclosure p{margin:10px 12px 12px}.canvas-wrap{position:relative}.canvas-wrap>canvas:first-child{border:1px solid var(--border);width:100%;display:block}#corners-canvas{touch-action:none}#edit-canvas{touch-action:manipulation}#loupe{pointer-events:none;border:2px solid #fffffff2;border-radius:50%;width:140px;height:140px;position:absolute;top:10px;box-shadow:0 4px 16px #00000080}#loupe.left{left:10px;right:auto}#loupe.right{left:auto;right:10px}.btn{height:48px;font:inherit;white-space:nowrap;cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;touch-action:manipulation;transition:transform .16s var(--ease-out-strong), background .15s ease, border-color .15s ease, color .15s ease;border:1px solid #0000;border-radius:0;justify-content:center;align-items:center;padding:0 14px;font-size:15px;font-weight:500;display:inline-flex}.btn.primary{background:var(--text);color:var(--bg)}.btn.secondary{border-color:var(--border);color:var(--text);background:0 0}.btn:active{transform:scale(.97)}.btn:focus-visible,.seg button:focus-visible,.inputs input:focus-visible{box-shadow:0 0 0 2px var(--bg), 0 0 0 4px #fff6;outline:none}.actions{padding:12px 24px calc(12px + env(safe-area-inset-bottom));border-top:1px solid var(--border);-webkit-backdrop-filter:blur(12px);background:#000000d9;gap:8px;margin:20px -24px 0;display:flex;position:sticky;bottom:0}.actions .btn{flex:1;min-width:0}@media (width<=400px){.btn{padding:0 10px;font-size:14px}}.seg{border:1px solid var(--border);height:44px;margin:0 0 14px;display:flex}.seg button{font-family:var(--font-mono);color:var(--text-secondary);cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation;background:0 0;border:none;flex:1;font-size:13px;transition:background .15s,color .15s}.seg button+button{border-left:1px solid var(--border)}.seg button[aria-pressed=true]{background:var(--text);color:var(--bg)}.results{grid-template-columns:1fr;gap:8px;margin-top:16px;display:grid}@media (width>=540px){.results{grid-template-columns:1fr 1fr}}.rcard{border:1px solid var(--border);padding:14px 16px}.rcard h3{font-family:var(--font-mono);color:var(--text-secondary);margin:0;font-size:12px;font-weight:400}.rcard .big{font-family:var(--font-display);font-synthesis:none;margin:8px 0 10px;font-size:32px;font-weight:400;line-height:1}.rcard .line{color:var(--text-secondary);margin:3px 0;font-size:13px}.rcard .line b{font-family:var(--font-mono);color:var(--text);font-variant-numeric:tabular-nums;font-weight:600}.results .note{font-family:var(--font-mono);color:var(--text-muted);grid-column:1/-1;margin:2px;font-size:12px}.inputs{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;display:grid}.inputs label{min-width:0;font-family:var(--font-mono);color:var(--text-secondary);white-space:nowrap;flex-direction:column;gap:6px;font-size:12px;display:flex}.inputs label[hidden]{display:none}.inputs input{border:1px solid var(--border);background:var(--bg);width:100%;min-width:0;height:40px;font-family:var(--font-mono);color:var(--text);font-variant-numeric:tabular-nums;border-radius:0;padding:0 12px;font-size:16px}@media (hover:hover) and (pointer:fine){.btn.primary:hover{background:#e5e5e5}.btn.secondary:hover{background:var(--fill-hover);border-color:var(--border-strong)}.seg button:not([aria-pressed=true]):hover,.disclosure summary:hover{color:var(--text)}.copy a:hover{-webkit-text-decoration-color:inherit;text-decoration-color:inherit}.inputs input:hover{border-color:var(--border-strong)}}@media (prefers-reduced-motion:reduce){*{transition-property:opacity,background,border-color,color,text-decoration-color!important}.btn:active{transform:none}.disclosure[open] ul,.disclosure[open] p{animation:none}}
