@font-face{font-family:'Instrument Sans';src:url('/static/fonts/InstrumentSans-Regular.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'Instrument Sans';src:url('/static/fonts/InstrumentSans-Bold.woff2') format('woff2');font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:'Plex Mono';src:url('/static/fonts/IBMPlexMono-Regular.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap}

:root{
 color-scheme:light dark;
 --paper:#f2f2ef;--slip:#fafaf8;--ink:#15171a;--ink-2:#53585f;--rule:#d6d7d2;--rule-2:#a9aca6;
 --mark:#f4da3f;--mark-ink:#15171a;--bad:#a1261b;
 --sans:'Instrument Sans',ui-sans-serif,system-ui,sans-serif;--mono:'Plex Mono',ui-monospace,'SF Mono',Menlo,monospace;
 --t-fine:14px;--t-label:15px;--t-body:17px;--t-lead:21px;--t-section:28px;--t-verdict:clamp(32px,4.4vw,56px);--t-title:clamp(44px,6.4vw,84px);--t-num:clamp(40px,4.6vw,60px);
 --wrap:1200px;--gut:48px;--edge:1.5px solid var(--ink);--hair:1px solid var(--rule);
}
@media (prefers-color-scheme:dark){:root{--paper:#111315;--slip:#181a1d;--ink:#ececE8;--ink-2:#a2a7ad;--rule:#2c3034;--rule-2:#4d5257;--mark:#e9cf3f;--mark-ink:#111315;--bad:#ff9384}}

*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:24px}
body{margin:0;background:var(--paper);color:var(--ink);font:400 var(--t-body)/1.55 var(--sans);font-variant-numeric:tabular-nums;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
a{color:inherit;text-decoration-thickness:1px;text-underline-offset:3px}
a:hover{text-decoration-thickness:2px}
:focus-visible{outline:2px solid var(--ink);outline-offset:3px}
h1,h2,h3,h4,p,figure{margin:0}
h3{font-size:var(--t-label);font-weight:700;letter-spacing:0}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.muted{color:var(--ink-2)}
code.q{font:400 15px/1.6 var(--mono);color:var(--ink);overflow-wrap:anywhere;word-break:break-word}
mark.hl{color:var(--mark-ink);background:linear-gradient(var(--mark),var(--mark)) no-repeat 0 0/100% 100%;padding:1px 0;-webkit-box-decoration-break:clone;box-decoration-break:clone}
.struck{color:var(--ink-2);text-decoration:line-through;text-decoration-thickness:1.5px;text-decoration-color:var(--ink)}

.bar{max-width:var(--wrap);margin:0 auto;padding:22px var(--gut);display:flex;justify-content:space-between;align-items:baseline;gap:16px}
.mark{font-weight:700;text-decoration:none;letter-spacing:-.01em}
body:not(.has-result) .mark{visibility:hidden}
.bar-link{font-size:var(--t-label);color:var(--ink-2)}
main{max-width:var(--wrap);margin:0 auto;padding:0 var(--gut) 56px}

.ask{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:72px;align-items:center;padding-top:40px}
h1{font-size:var(--t-title);font-weight:700;line-height:.98;letter-spacing:-.04em}
.nb{white-space:nowrap}
.intro{font-size:var(--t-lead);line-height:1.42;color:var(--ink-2);max-width:31ch;margin-top:24px;text-wrap:pretty}
form{margin-top:36px}
label{display:block;font-size:var(--t-label);font-weight:700;margin-bottom:8px}
.field{display:grid;grid-template-columns:minmax(0,1fr) auto;border:var(--edge);background:var(--slip)}
.field:focus-within{outline:2px solid var(--ink);outline-offset:2px}
input{font:400 var(--t-lead)/1 var(--sans);color:var(--ink);background:transparent;border:0;padding:0 18px;height:64px;min-width:0;border-radius:0}
input::placeholder{color:var(--ink-2);opacity:1}
input:focus{outline:none}
.field-bad .field{border-color:var(--bad);outline-color:var(--bad)}
button{font:inherit;color:inherit;cursor:pointer}
.field button{border:0;border-radius:0;background:var(--ink);color:var(--paper);font-weight:700;padding:0 28px;transition:transform 140ms ease-out}
.field button:active{transform:scale(.98)}
.field button:disabled{cursor:progress}
.busy .field button{background:var(--ink-2)}
.field-msg{color:var(--bad);font-size:var(--t-label);font-weight:700;margin-top:10px;min-height:0}
.field-msg:empty{display:none}
.tries{margin-top:28px}
.tries-label{font-size:var(--t-label);color:var(--ink-2);margin-bottom:4px}
.tries ul{list-style:none;margin:0;padding:0}
.tries li+li{border-top:var(--hair)}
.tries button{display:grid;grid-template-columns:8.5rem minmax(0,1fr) auto;align-items:baseline;gap:16px;width:100%;min-height:48px;padding:12px 0;background:none;border:0;text-align:left}
.tries button::after{content:'→';color:var(--ink-2);transition:transform 160ms ease-out}
.tries button:hover::after{transform:translateX(4px);color:var(--ink)}
.tries button:hover .try-promise{color:var(--ink)}
.try-site{font-weight:700}
.try-promise{color:var(--ink-2);transition:color 160ms}

.teach{border-top:var(--edge);padding-top:20px;margin-bottom:6px}
.t-file{display:flex;flex-direction:column;gap:6px}
.t-src{font-size:var(--t-fine);color:var(--ink-2)}
.teach code.q{font-size:20px}
.t-src b{color:var(--ink)}
.t-eq{display:block;font-size:28px;line-height:1;margin:14px 0 12px}
.teach figcaption{font-size:var(--t-label);color:var(--ink-2);margin-top:20px;padding-top:14px;border-top:var(--hair);text-wrap:pretty}

.progress{font-size:var(--t-label);color:var(--ink-2);margin-top:20px;min-height:1.55em}
.has-result .ask{grid-template-columns:minmax(0,1fr);gap:0;padding-top:0}
.has-result h1,.has-result .intro,.has-result .teach,.has-result .tries-label{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.has-result form{margin-top:4px}
.has-result label{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.has-result .ask-main{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 32px;align-items:center}
.has-result .tries{margin:0}
.has-result .tries ul{display:flex;gap:20px}
.has-result .tries li+li{border:0}
.has-result .tries button{display:inline;min-height:44px;padding:10px 0;font-size:var(--t-label);color:var(--ink-2);text-decoration:underline;text-underline-offset:3px}
.has-result .tries button:hover{color:var(--ink)}
.has-result .tries button::after,.has-result .try-promise{display:none}
.has-result .try-site{font-weight:400}
.has-result input,.has-result .field button{height:56px}

#result:empty{display:none}
#result{margin-top:44px}
.verdict{font-size:var(--t-verdict);font-weight:700;line-height:1.05;letter-spacing:-.03em;max-width:21ch;overflow-wrap:anywhere;text-wrap:balance}
.verdict:focus{outline:none}
.owner-line{font-size:var(--t-lead);line-height:1.42;margin-top:18px;max-width:44ch;overflow-wrap:anywhere}
.live-line,.sub{font-size:var(--t-body);margin-top:10px;max-width:58ch}
.caveat{font-size:var(--t-label);color:var(--ink-2);margin-top:12px;max-width:62ch}
.report{margin-top:28px;padding:14px 0;border-top:var(--hair);border-bottom:var(--hair);max-width:70ch}
.verdict-block+.stage,.verdict-block+.exhibit,.verdict-block+.wall,.report+.stage,.report+.wall,.report+.exhibit{margin-top:48px}

.stage{display:block}
.stage.has-pairs{display:grid;grid-template-columns:200px minmax(0,1fr);gap:56px;align-items:start}
.pairs{border-top:var(--edge);padding-top:14px;position:sticky;top:16px}
.pairs h3{color:var(--ink-2);font-weight:400;margin-bottom:2px}
.pairs h3:not(:first-child){margin-top:20px}
.pairs ul{list-style:none;margin:0;padding:0}
.pairs button{display:block;width:100%;text-align:left;background:none;border:0;padding:9px 0;min-height:42px;color:var(--ink-2);overflow-wrap:anywhere}
.pairs button:hover{color:var(--ink)}
.pairs button[aria-pressed=true]{color:var(--ink);font-weight:700}
.pairs button[aria-pressed=true]::before{content:'→ '}

.exhibit{border-top:var(--edge)}
.ex-head,.ex-row{display:grid;grid-template-columns:minmax(0,1fr) 112px minmax(0,1fr)}
.ex-head{align-items:center;padding:18px 0;border-bottom:var(--hair)}
.ex-site{font-size:var(--t-lead);font-weight:700;letter-spacing:-.01em;overflow-wrap:anywhere}
.vchip{justify-self:center;font-size:var(--t-label);font-weight:700;line-height:1;padding:8px 12px;border:1.5px solid var(--ink);border-radius:2px;white-space:nowrap}
.vchip.is-link{background:var(--ink);color:var(--paper)}
.vchip.is-lead{border-style:dashed}
.vchip.is-ignored{text-decoration:line-through;text-decoration-thickness:1.5px;color:var(--ink-2)}
.ex-rows{list-style:none;margin:0;padding:0;counter-reset:none}
.ex-row{grid-template-areas:"what what what" "a eq b";row-gap:12px;padding:22px 0 24px;border-bottom:var(--hair)}
.ex-what{grid-area:what;display:flex;gap:14px;align-items:baseline;font-size:var(--t-label);font-weight:700}
.ex-n{display:inline-grid;place-items:center;min-width:24px;height:24px;padding:0 6px;border:1.5px solid var(--ink);border-radius:2px;font-size:13px;line-height:1}
.ex-quote{display:flex;flex-direction:column;gap:8px;min-width:0}
.ex-quote.ex-a{grid-area:a}.ex-quote.ex-b{grid-area:b}
.ex-quote code.q{font-size:16px;background:var(--slip);padding:10px 12px;border:var(--hair)}
.ex-eq{grid-area:eq;justify-self:center;font-size:30px;line-height:1;padding-top:8px}
.ex-who{display:none;font-size:var(--t-fine);font-weight:700}
.src{font-size:var(--t-fine);color:var(--ink-2);overflow-wrap:anywhere}
.ex-note{grid-column:1/-1;font-size:var(--t-body);margin-top:4px}
.ex-empty .ex-what{color:var(--ink-2)}
.ex-empty .ex-n{border-style:dashed;color:var(--ink-2);border-color:var(--rule-2)}
.ex-slot{grid-column:1/-1;border:1.5px dashed var(--rule-2);padding:16px;color:var(--ink-2);max-width:none}
.ex-slot.ex-b{grid-column:auto;grid-area:b;align-self:start;padding:10px 12px;font-size:var(--t-label)}
.ex-none{color:var(--ink-2);font-weight:400}
.vchip.is-none{border-style:dashed;color:var(--ink-2)}
.ex-sum{font-size:var(--t-label);color:var(--ink-2);padding:14px 0;border-bottom:var(--hair)}
.slot>.fold{margin-top:0;border-top:0}

.fold{margin-top:28px;border-top:var(--hair);border-bottom:var(--hair)}
.fold>summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:16px;min-height:52px;font-weight:700}
.fold>summary::-webkit-details-marker{display:none}
.fold>summary::after{content:'+';font-weight:400;font-size:24px;line-height:1;color:var(--ink-2)}
.fold[open]>summary::after{content:'\2212'}
.fold>summary:hover::after{color:var(--ink)}
.fold[open]{padding-bottom:20px}
.all{list-style:none;margin:0;padding:0}
.all li{padding:14px 0;border-top:var(--hair)}
.all-what{font-size:var(--t-label);font-weight:700;margin-bottom:8px}
.all-side{display:grid;grid-template-columns:11rem minmax(0,1fr);gap:4px 16px;align-items:baseline;margin-top:6px}
.all-side .ex-who{display:block;font-weight:400;color:var(--ink-2)}
.all-side .src{grid-column:2}
.fold p.muted{font-size:var(--t-label);margin-top:12px}

.ignored{margin-top:56px}
.ignored h3{font-size:var(--t-lead);margin-bottom:6px}
.ignored ul{list-style:none;margin:0;padding:0}
.ignored li{display:grid;grid-template-columns:13rem minmax(0,1fr) auto;gap:4px 24px;align-items:baseline;padding:12px 0;border-top:var(--hair)}
.ig-kind{font-size:var(--t-label);color:var(--ink-2)}
.ig-note{font-size:var(--t-label);white-space:nowrap}

.wall ul{list-style:none;margin:0;padding:18px 0 0;border-top:var(--edge);display:flex;flex-wrap:wrap;gap:2px 14px;font:400 14px/1.7 var(--mono);color:var(--ink-2)}
.wall li.me{color:var(--mark-ink);background:var(--mark);padding:0 4px;font-weight:400}
.wall figcaption{font-size:var(--t-label);margin-top:16px;padding-top:12px;border-top:var(--hair)}

.own{padding-top:4px}
.ids{display:grid;grid-template-columns:13rem minmax(0,1fr);gap:10px 24px;margin:8px 0 0}
.ids dt{font-size:var(--t-label);color:var(--ink-2)}
.ids dd{margin:0;display:flex;flex-wrap:wrap;gap:4px 14px;align-items:baseline;min-width:0}
.ids .src{flex-basis:100%}
.ids .more{font-size:var(--t-label);color:var(--ink-2)}
.own h4{font-size:var(--t-label);margin:22px 0 6px}
.log-title{margin-top:40px;font-size:var(--t-lead)}
.log{display:grid;grid-template-columns:13rem minmax(0,1fr);gap:6px 24px;margin:8px 0 0;font-size:var(--t-label)}
.log dt{color:var(--ink-2)}
.log dd{margin:0}
.log dd.miss{font-weight:700}

.proof{margin-top:112px;border-top:var(--edge);padding-top:28px}
body:not(.has-result) .proof{margin-top:72px}
.proof h2{font-size:var(--t-section);font-weight:700;letter-spacing:-.02em}
.proof-intro{color:var(--ink-2);margin-top:6px;max-width:58ch}
.tally{margin-top:28px}
.t-row{display:grid;grid-template-columns:13rem 15rem minmax(0,1fr);gap:4px 32px;align-items:baseline;padding:22px 0;border-top:var(--hair)}
.t-label{font-weight:700}
.t-num{font-size:var(--t-num);font-weight:700;line-height:1;letter-spacing:-.03em;white-space:nowrap}
.t-say{max-width:44ch}
.t-more{display:block;color:var(--ink-2);font-size:var(--t-label);margin-top:4px}
#method{margin-top:8px}
#method table{width:100%;border-collapse:collapse;font-size:var(--t-label);margin:4px 0 20px}
#method caption{text-align:left;color:var(--ink-2);padding-bottom:10px}
#method th,#method td{padding:10px 0;border-bottom:var(--hair);text-align:right;vertical-align:baseline}
#method th:first-child{text-align:left;font-weight:400;padding-right:16px}
#method tr:first-of-type th{font-weight:700;color:var(--ink-2)}
#method td{font-weight:700;padding-left:16px}
.notes{margin:0;padding:0 0 0 18px;font-size:var(--t-label);max-width:72ch}
.notes li{margin:0 0 8px;overflow-wrap:anywhere}
.method-text{margin-top:24px;max-width:72ch;font-size:var(--t-label)}
.method-text h3{margin-bottom:6px}
.method-text p+p{margin-top:8px}
.foot{margin-top:72px;padding-top:18px;border-top:var(--hair);font-size:var(--t-fine);color:var(--ink-2);display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}

@media (prefers-reduced-motion:no-preference){
 .ex-row{transition:opacity 220ms ease-out,transform 220ms cubic-bezier(.2,.7,.2,1)}
 .ex-row.pending{opacity:0;transform:translateY(6px)}
 .ex-row mark.hl{transition:background-size 260ms cubic-bezier(.3,.7,.2,1) 120ms}
 .ex-row.pending mark.hl{background-size:0% 100%}
 .vchip.flip{animation:flip 240ms cubic-bezier(.2,.7,.2,1)}
 @keyframes flip{from{transform:scale(.9);opacity:.35}to{transform:none;opacity:1}}
}

@media (max-width:860px){
 :root{--gut:16px}
 .bar{padding:16px var(--gut)}
 .ask{grid-template-columns:minmax(0,1fr);gap:40px;padding-top:12px}
 .teach{margin:0}
 .stage.has-pairs{grid-template-columns:minmax(0,1fr);gap:24px}
 .pairs{position:static;order:2}
 .slot{order:1}
 .pairs ul{display:flex;flex-wrap:wrap;gap:0 18px}
 .pairs button{width:auto;padding:8px 0;min-height:44px}
 .t-row{grid-template-columns:minmax(0,1fr);gap:6px}
 .ignored li{grid-template-columns:minmax(0,1fr)}
 .ig-note{white-space:normal}
}
@media (max-width:600px){
 :root{--t-lead:19px}
 h1{font-size:44px}
 .intro{margin-top:16px}
 form{margin-top:28px}
 input{font-size:18px;padding:0 14px;height:56px}
 .field button{padding:0 18px;height:56px}
 .tries button{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"site go" "say go";gap:2px 12px;padding:12px 0}
 .try-site{grid-area:site}.try-promise{grid-area:say;font-size:var(--t-label)}
 .tries button::after{grid-area:go;align-self:center}
 .has-result .ask-main{grid-template-columns:minmax(0,1fr)}
 .has-result .tries ul{gap:18px}
 #result{margin-top:28px}
 .verdict{font-size:32px}
 .ex-head{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"a chip" "b chip";row-gap:2px}
 .ex-head .ex-a{grid-area:a}.ex-head .ex-b{grid-area:b}.ex-head .vchip{grid-area:chip;justify-self:end}
 .ex-head .ex-site{font-size:var(--t-body)}
 .ex-head .ex-b::before{content:'and ';font-weight:400;color:var(--ink-2)}
 .ex-head .ex-none::before{content:none}
 .ex-row{grid-template-columns:minmax(0,1fr);grid-template-areas:"what" "a" "eq" "b";row-gap:8px}
 .ex-who{display:block}
 .ex-eq{justify-self:start;font-size:22px;padding:0 0 0 2px}
 .ex-quote code.q{font-size:15px;padding:9px 10px}
 .all-side{grid-template-columns:minmax(0,1fr)}
 .all-side .src{grid-column:1}
 .ids,.log{grid-template-columns:minmax(0,1fr);gap:2px 0}
 .ids dd{margin-bottom:10px}
 .log dd{margin-bottom:6px}
 .proof{margin-top:80px}
 .t-num{font-size:44px}
}
