:root{--paper:#f4f1e9;--ink:#10110f;--line:#aaa79e;--lime:#baff35;--blue:#1d5fd5;--coral:#ff6955;--white:#fff;--muted:#66655f}*{box-sizing:border-box}[hidden]{display:none!important}body{margin:0;background:var(--paper);color:var(--ink);font-family:Geist,"Helvetica Neue",Arial,sans-serif;letter-spacing:0;overflow-x:hidden}button,input,textarea{font:inherit}button{cursor:pointer}button:focus-visible,textarea:focus-visible{outline:3px solid var(--blue);outline-offset:2px}nav{height:56px;display:grid;grid-template-columns:1fr auto 40px;align-items:center;gap:18px;padding:0 clamp(14px,3vw,42px);background:var(--ink);color:white}nav>div{display:flex;gap:16px;font:750 .62rem ui-monospace,monospace;color:#c5c5bf}nav .ready{color:var(--lime)}nav button{width:36px;height:36px;border:1px solid #777;border-radius:50%;background:transparent;color:white;font-size:1.2rem}header{padding:clamp(35px,5vw,72px) clamp(16px,5vw,68px);display:grid;grid-template-columns:minmax(0,1.5fr) minmax(250px,.5fr);align-items:end;gap:70px;border-bottom:1px solid var(--ink)}header p{margin:0 0 13px;color:var(--blue);font:850 .68rem ui-monospace,monospace;text-transform:uppercase}header h1{max-width:72rem;margin:0;font:500 clamp(3rem,5.8vw,6.1rem)/.9 Georgia,serif}header em{color:var(--blue);font-weight:500}header aside{color:var(--muted);line-height:1.55}.workspace{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));grid-auto-flow:dense;min-height:620px;border-bottom:1px solid var(--ink)}.inputs{grid-column:span 5;min-width:0;background:white;border-right:1px solid var(--ink);display:flex;flex-direction:column}.results{grid-column:span 7;min-width:0;display:flex;flex-direction:column}.inputHead{min-height:48px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--ink);font:700 .58rem ui-monospace,monospace;color:var(--muted)}.inputHead button{align-self:stretch;border:0;border-right:1px solid var(--ink);background:var(--lime);font-weight:900;padding:0 14px}.inputHead span{padding:8px;text-align:right}textarea{height:275px;border:0;border-bottom:1px solid var(--ink);padding:13px;resize:vertical;font:11px/1.5 ui-monospace,monospace}.inputs>#compile{min-height:50px;margin:13px;border:1px solid var(--ink);background:var(--coral);display:flex;justify-content:space-between;align-items:center;padding:0 14px;font-weight:900}.inputs>#error{margin:0 13px 12px;padding:10px;border:1px solid #a42d22;background:#ffe1db;color:#7d2119}.rules{margin-top:auto;padding:13px;border-top:1px solid var(--line);display:grid;grid-template-columns:1fr 1fr;gap:7px;font:700 .64rem ui-monospace,monospace;color:var(--muted)}.rules b{grid-column:1/-1;color:var(--ink)}.metrics{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-flow:dense;border-bottom:1px solid var(--ink)}.metrics>div{padding:13px;border-right:1px solid var(--ink);background:white}.metrics>div:last-child{border-right:0;background:var(--lime)}.metrics span,#completed span{display:block;color:var(--muted);font:750 .57rem ui-monospace,monospace;text-transform:uppercase}.metrics b{display:block;margin-top:8px;font:500 clamp(1.55rem,3vw,3rem) Georgia,serif}.graphHead{padding:12px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line)}.graphHead h2{margin:0;font:500 1.45rem Georgia,serif}.graphHead p{margin:4px 0 0;color:var(--muted);font-size:.72rem}.graphHead>div:last-child{display:flex;gap:6px}.graphHead button,#completed>button{min-height:38px;border:1px solid var(--ink);background:white;padding:0 11px;font-weight:850}.graphHead #viewResult{background:var(--ink);color:white}.graphHead button:disabled{opacity:.4}#graph{width:100%;height:280px;background:white;border-bottom:1px solid var(--line)}.edge{stroke:#aaa;stroke-width:2}.edge.critical{stroke:var(--coral);stroke-width:4}.node rect{fill:var(--paper);stroke:var(--ink);stroke-width:1.5}.node.critical rect{fill:var(--lime)}.node text{font:700 11px ui-monospace,monospace}.node .sub{font-size:9px;fill:var(--muted)}.stageRail{display:flex;gap:7px;padding:9px 12px;overflow:auto;border-bottom:1px solid var(--line)}.stageRail span{white-space:nowrap;padding:6px 8px;border:1px solid var(--line);font:700 .59rem ui-monospace,monospace}.criticalNote{display:grid;grid-template-columns:auto 1fr auto;gap:12px;padding:10px 12px;background:#dfe8ff;font-size:.68rem}.criticalNote strong{color:var(--blue)}.boundary{padding:10px 12px;background:var(--ink);color:white;display:grid;grid-template-columns:auto 1fr;gap:13px;font-size:.67rem}.boundary span{color:#c8c8c2}.method{padding:clamp(100px,15vw,200px) clamp(18px,6vw,86px);background:var(--blue);color:white;display:grid;grid-template-columns:1fr 1fr;gap:90px}.method h2{margin:0;font:500 clamp(2.8rem,5.4vw,5.7rem)/.94 Georgia,serif}.method p{margin:0 0 84px;color:#dce7ff;font:500 clamp(1.15rem,2vw,1.7rem)/1.45 Georgia,serif}#completed{position:fixed;inset:0;z-index:50;background:var(--blue);color:white;padding:clamp(28px,7vw,88px);display:flex;flex-direction:column;justify-content:center}#completed>p{margin:0;text-transform:uppercase;font:850 .68rem ui-monospace,monospace}#completed h2{margin:12px 0 32px;font:500 clamp(3rem,8vw,8rem)/.89 Georgia,serif}.proof{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:#86a8ef;border:1px solid #86a8ef}.proof>div{padding:15px;background:#164fad}.proof span{color:#c5d4f7!important}.proof b{display:block;margin-top:8px;font:500 clamp(1.5rem,3vw,2.8rem) Georgia,serif}#proofPath{padding:14px;border:1px solid #86a8ef;margin:10px 0 25px;font:750 .8rem ui-monospace,monospace}#completed #closeResult{position:absolute;right:22px;top:20px;background:transparent;color:white;border-color:white;font-size:1.3rem}#completed #downloadCompleted{align-self:flex-start;background:var(--lime)}
@media(max-width:820px){nav{padding:0 10px}nav>div{gap:6px;font-size:.48rem}header{grid-template-columns:1fr;gap:20px;padding:27px 12px}header h1{font-size:clamp(2.6rem,12vw,4rem)}header aside{font-size:.8rem}.workspace{display:block}.inputs{border-right:0;border-bottom:1px solid var(--ink)}.inputHead span{display:none}textarea{height:210px}.metrics{grid-template-columns:repeat(2,1fr)}.metrics>div:nth-child(2){border-right:0}.metrics>div:nth-child(-n+2){border-bottom:1px solid var(--ink)}#graph{height:250px}.criticalNote,.boundary{grid-template-columns:1fr}.method{grid-template-columns:1fr;gap:60px;padding:90px 14px}#completed{padding:28px 14px}#completed h2{font-size:clamp(3rem,15vw,5rem)}.proof{grid-template-columns:1fr}#completed #downloadCompleted{width:100%}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}
