:root{--fg: #1a1a1a;--bg: #fff;--muted: #777;--accent: #1a1aff;--danger: #cc0000;--line: 1px solid var(--fg);--hair: 1px solid #e6e6e6;--box-pad: 1rem 1.25rem;--mono: "Hack", "SFMono-Regular", "SF Mono", Menlo, Consolas, monospace}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--fg);font-family:var(--mono);font-size:13px;line-height:1.55;-webkit-font-smoothing:antialiased}button,input,select,pre{font-family:inherit}[hidden]{display:none}:focus-visible{outline:2px solid var(--accent);outline-offset:1px}h1,.label,.field>.name,.stat .cap,#dropOverlay span{text-transform:uppercase;font-weight:700}.tagline,.label,#drop .sub,.field .hint,.stat .cap,.stat-breakdown,.stat-estimate .note,.stat-estimate .proj .pct,footer{color:var(--muted)}.stat .num,.slider-val{font-variant-numeric:tabular-nums}.box{border:var(--line)}.btn-block{display:block;width:100%;padding:.7rem;border:var(--line);font-size:.92rem;font-weight:700;text-align:center;text-decoration:none;text-transform:uppercase;cursor:pointer;transition:background .1s,color .1s}main{max-width:700px;margin:0 auto;padding:clamp(1.5rem,5vw,3.5rem) 1.25rem 5rem}header{border-bottom:var(--line);padding-bottom:.85rem;margin-bottom:1.75rem}h1{margin:0;font-size:clamp(1.25rem,4vw,1.7rem);letter-spacing:-.01em;line-height:1.1}.tagline{margin:.6rem 0 0;max-width:100ch;font-size:.92em}.tagline b{color:var(--fg);font-weight:700}section{margin-bottom:1.5rem}.label{display:block;font-size:.7rem;letter-spacing:.12em;margin-bottom:.5rem}.label:before{content:"// ";color:var(--accent)}#drop{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:.3rem;min-height:140px;padding:1.5rem;border:1px dashed #999;cursor:pointer;transition:background .1s,border-color .1s}#drop:hover{background:#fafafa;border-color:var(--fg)}#drop.loaded{border-style:solid;border-color:var(--fg)}#drop .big{font-size:1rem;font-weight:700}#drop .sub{font-size:.8rem}#drop .sub .err{color:var(--danger);font-weight:700}#drop .file-name{font-weight:700;word-break:break-all}#drop .file-meta{color:var(--accent);font-size:.8rem}#drop input[type=file]{display:none}#dropOverlay{position:fixed;inset:0;z-index:100;display:none;align-items:center;justify-content:center;background:#eef0ffeb;border:3px dashed var(--accent);pointer-events:none}body.dragging #dropOverlay{display:flex}#dropOverlay span{font-size:clamp(1.1rem,4vw,1.9rem);letter-spacing:.06em;color:var(--accent)}.statbox{padding:var(--box-pad)}.stat-facts{display:flex;flex-wrap:wrap;gap:1rem 2.25rem}.stat .num{font-size:1.2rem;font-weight:700;line-height:1}.stat .cap{margin-top:.3rem;font-size:.66rem;letter-spacing:.1em}.stat-breakdown{margin:.85rem 0 0;font-size:.78rem}.stat-breakdown:empty{display:none}.stat-estimate{margin-top:.95rem;padding-top:.85rem;border-top:var(--hair)}.stat-estimate .proj{font-size:1.02rem;font-weight:700}.stat-estimate .proj .approx{color:var(--accent)}.stat-estimate .proj .pct{font-weight:400;font-size:.85rem}.stat-estimate .note{margin-top:.25rem;font-size:.72rem}#options{padding:var(--box-pad)}.field{display:flex;align-items:center;gap:.85rem;padding:.55rem 0;flex-wrap:wrap}.field+.field{border-top:var(--hair)}.field>.name{flex:0 0 8rem;font-size:.7rem;letter-spacing:.08em}.field .control{display:flex;align-items:center;gap:.5rem;flex:1 1 auto;flex-wrap:wrap}.field .hint{font-size:.72rem}input[type=number],select{font-size:.85rem;color:var(--fg);background:var(--bg);border:var(--line);padding:.3rem .45rem;border-radius:0;appearance:none;-webkit-appearance:none}input[type=number]{width:5rem}input[type=number]#workers{width:4rem}select{padding-right:1.8rem;background-image:linear-gradient(45deg,transparent 50%,var(--fg) 50%),linear-gradient(135deg,var(--fg) 50%,transparent 50%);background-position:right .75rem center,right .55rem center;background-size:5px 5px,5px 5px;background-repeat:no-repeat;cursor:pointer}.slider-row{display:flex;align-items:center;gap:.85rem;flex:1 1 auto}input[type=range]{-webkit-appearance:none;appearance:none;flex:1 1 auto;min-width:130px;height:20px;background:transparent;cursor:pointer}input[type=range]::-webkit-slider-runnable-track{height:8px;background:var(--bg);border:var(--line)}input[type=range]::-moz-range-track{height:8px;background:var(--bg);border:var(--line)}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:11px;height:18px;margin-top:-6px;background:var(--fg);border:none}input[type=range]::-moz-range-thumb{width:11px;height:18px;border-radius:0;background:var(--fg);border:none}.slider-val{flex:0 0 auto;min-width:3ch;text-align:right;font-weight:700;font-size:.95rem}.check{display:inline-flex;align-items:center;gap:.5rem;cursor:pointer;user-select:none}.check input{position:absolute;opacity:0;width:0;height:0}.check .ind{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:16px;height:16px;border:var(--line);font-size:.7rem;font-weight:700;line-height:1}.check input:checked+.ind{background:var(--fg);color:var(--bg)}.check input:checked+.ind:after{content:"x"}.btn-sm{font-size:.78rem;font-weight:700;color:var(--fg);background:var(--bg);border:var(--line);padding:.25rem .5rem;cursor:pointer}.btn-sm:hover{background:var(--fg);color:var(--bg)}.btn-sm:active{background:var(--accent);border-color:var(--accent);color:var(--bg)}.presets{display:inline-flex}.presets .btn-sm+.btn-sm{margin-left:-1px}#go{letter-spacing:.1em;color:var(--bg);background:var(--fg)}#go:hover:not(:disabled){background:var(--accent);border-color:var(--accent)}#go:disabled{background:var(--bg);color:#bbb;border-color:#ddd;cursor:not-allowed}#go.cancel{background:var(--danger);border-color:var(--danger);color:var(--bg)}#go.cancel:hover{background:#a30000;border-color:#a30000}.bar{height:16px;border:var(--line);overflow:hidden;position:relative}.bar-fill{height:100%;width:0%;background:var(--fg);transition:width .15s linear}.bar.indeterminate .bar-fill{width:35%;background:repeating-linear-gradient(45deg,var(--fg) 0 8px,var(--accent) 8px 16px);animation:slide 1.1s linear infinite}@keyframes slide{0%{transform:translate(-100%)}to{transform:translate(286%)}}#status{margin:.6rem 0 0;font-size:.82rem;min-height:1.4em;word-break:break-word}#status .tick{color:var(--accent);font-weight:700}#download{letter-spacing:.08em;color:var(--bg);background:var(--accent);border-color:var(--accent);margin-bottom:1.25rem}#download:hover{background:var(--bg);color:var(--accent)}#download .meta{display:block;margin-top:.2rem;font-size:.72rem;font-weight:400;letter-spacing:0;text-transform:none}#report{margin:0;padding:var(--box-pad);border:var(--line);font-size:.74rem;line-height:1.6;white-space:pre;overflow-x:auto}footer{margin-top:2.5rem;padding-top:.85rem;border-top:var(--hair);font-size:.72rem}footer a{color:var(--accent)}@media(max-width:520px){.field>.name{flex-basis:100%}}/*!
 *  Hack typeface https://github.com/source-foundry/Hack
 *  License: https://github.com/source-foundry/Hack/blob/master/LICENSE.md
 */@font-face{font-family:Hack;src:url(./hack-regular-Dv5unGLz.woff2?sha=3114f1256) format("woff2"),url(./hack-regular-DEir-J6A.woff?sha=3114f1256) format("woff");font-weight:400;font-style:normal}@font-face{font-family:Hack;src:url(./hack-bold-o0myPlua.woff2?sha=3114f1256) format("woff2"),url(./hack-bold-XM2YsVf3.woff?sha=3114f1256) format("woff");font-weight:700;font-style:normal}@font-face{font-family:Hack;src:url(./hack-italic-CQtdA7T5.woff2?sha=3114f1256) format("woff2"),url(./hack-italic-CxLZKZQa.woff?sha=3114f1256) format("woff");font-weight:400;font-style:italic}@font-face{font-family:Hack;src:url(./hack-bolditalic-D5TV5Tsg.woff2?sha=3114f1256) format("woff2"),url(./hack-bolditalic-CcY3gI8S.woff?sha=3114f1256) format("woff");font-weight:700;font-style:italic}
