:root{--paper:#f3f0e8;--ink:#10110f;--line:#aaa79e;--lime:#baff34;--blue:#1a5ed6;--coral:#ff6954;--muted:#66655f}*{box-sizing:border-box}[hidden]{display:none!important}body{margin:0;background:var(--paper);color:var(--ink);font-family:Outfit,"Helvetica Neue",Arial,sans-serif;letter-spacing:0;overflow-x:hidden}button,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;color:#c5c5bf;font:750 .62rem ui-monospace,monospace}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:75rem;margin:0;font:500 clamp(3rem,5.8vw,6.2rem)/.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:630px;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 .6rem 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}textarea{height:295px;border:0;border-bottom:1px solid var(--ink);padding:13px;resize:vertical;font:11px/1.5 ui-monospace,monospace}.inputs>#solve{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;gap:6px;color:var(--muted);font:700 .64rem/1.45 ui-monospace,monospace}.rules b{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}.modelBar{display:flex;gap:14px;padding:9px 12px;border-bottom:1px solid var(--line);font:700 .59rem ui-monospace,monospace;color:var(--muted)}.resultHead{display:flex;justify-content:space-between;align-items:center;padding:12px;border-bottom:1px solid var(--line)}.resultHead h2{margin:0;font:500 1.45rem Georgia,serif}.resultHead p{margin:4px 0 0;color:var(--muted);font-size:.72rem}.resultHead>div:last-child{display:flex;gap:6px}.resultHead button,#completed>button{min-height:38px;border:1px solid var(--ink);background:white;padding:0 11px;font-weight:850}.resultHead #viewResult{background:var(--ink);color:white}.resultHead button:disabled{opacity:.4}#matches{flex:1;min-height:290px;overflow:auto}.match{display:grid;grid-template-columns:minmax(130px,.8fr) 1.4fr auto;gap:10px;align-items:center;padding:14px;border-bottom:1px solid var(--line);background:white}.match strong{font-size:1rem}.match small{display:block;color:var(--muted);margin-top:4px}.match .flow{font:700 .65rem/1.45 ui-monospace,monospace}.match b{font:500 1.8rem Georgia,serif;color:var(--blue)}.empty{padding:50px;text-align:center;color:var(--muted)}.boundary{padding:11px 13px;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.5vw,5.8rem)/.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}#proofPairs{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:220px}.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)}.modelBar{flex-wrap:wrap}.match{grid-template-columns:1fr auto}.match .flow{grid-column:1/-1}.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}}
