@layer reset, tokens, base, layout, components, utilities;
@layer reset {
/* css/reset.css */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
img,svg,video{display:block;max-width:100%}
svg{flex:none}
input,button,textarea,select{font:inherit;color:inherit}
button{background:none;border:0;cursor:pointer}
a{color:inherit;text-decoration:none}
table{border-collapse:collapse}
:where(ul,ol)[role=list]{list-style:none}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

}
@layer tokens {
/* Generated by kit/build_tokens.py from scale.json and tokens.json. Do not edit. */
:root{--space-0:0;--space-1:0.25rem;--space-2:0.5rem;--space-3:0.75rem;--space-4:1rem;--space-5:1.5rem;--space-6:2rem;--space-7:3rem;--space-8:4rem;--space-9:6rem;--text-label:clamp(0.7188rem, 0.7065rem + 0.05435vw, 0.75rem);--text-small:clamp(0.7812rem, 0.769rem + 0.05435vw, 0.8125rem);--text-ui:clamp(0.875rem, 0.8628rem + 0.05435vw, 0.9062rem);--text-body:clamp(0.9688rem, 0.9443rem + 0.1087vw, 1.031rem);--text-lede:clamp(1.031rem, 0.9946rem + 0.163vw, 1.125rem);--text-h3:clamp(1.062rem, 0.9891rem + 0.3261vw, 1.25rem);--text-h2:clamp(1.25rem, 1.103rem + 0.6522vw, 1.625rem);--text-h1:clamp(1.688rem, 1.418rem + 1.196vw, 2.375rem);--text-display:clamp(2rem, 1.658rem + 1.522vw, 2.875rem);--leading-tight:1.1;--leading-snug:1.25;--leading-ui:1.4;--leading-prose:1.65;--hair:0.0625rem;--rule:0.125rem;--hit:2.75rem;--hit-sm:2rem;--icon:1.125rem;--icon-sm:0.875rem;--glyph:0.9375rem;--avatar-sm:1.5rem;--avatar:2.5rem;--avatar-lg:7rem;--mark-sm:1.375rem;--mark:2.5rem;--mark-lg:6rem;--bar:3.75rem;--measure:42.5rem;--page:82rem;--rail:17rem;--aside:20rem;--icon-lg:1.5rem;--form:26rem;--feature:18rem;--fact-label:7rem;--status-col:16rem;--meter-col:12rem;--review-col:10rem;--search:21rem;--motion-fast:120ms;--motion-base:200ms;--motion-ease:cubic-bezier(.2,.7,.2,1);--z-bar:20;--z-drawer:30;--z-pop:40;--z-toast:50}
:root,[data-mode=light]{--radius-sm:0.5625rem;--radius-md:0.875rem;--radius-pill:62.44rem;--shadow-card:0 1px 2px rgb(60 40 20 / .04), 0 6px 18px rgb(60 40 20 / .05);--shadow-pop:0 2px 10px rgb(0 0 0 / .18);--f-display:"Ubuntu",system-ui,sans-serif;--f-prose:"Ubuntu",system-ui,sans-serif;--f-ui:"Ubuntu",system-ui,sans-serif;--f-mono:"JetBrains Mono",ui-monospace,monospace}
[data-mode=dark]{--radius-sm:0.375rem;--radius-md:0.625rem;--radius-pill:62.44rem;--shadow-card:none;--shadow-pop:0 2px 12px rgb(0 0 0 / .5);--f-display:"JetBrains Mono",ui-monospace,monospace;--f-prose:"Atkinson Hyperlegible Next",system-ui,sans-serif;--f-ui:"JetBrains Mono",ui-monospace,monospace;--f-mono:"JetBrains Mono",ui-monospace,monospace}
[data-palette="ubuntu"]{--bg:#F5F2ED;--surface:#ECE7DF;--raised:#FFFDF9;--line:#DED6CA;--ink:#2B2622;--dim:#5E554D;--mute:#6F665C;--hl:#6B2A8C;--on-hl:#FFFFFF;--grad:linear-gradient(115deg,#E9A75F,#C2557E 50%,#6B2A8C);--accepted:#559946;--accepted-text:#317521;--on-accepted:#FFFFFF;--disputed:#CE9125;--disputed-text:#8C5E03;--on-disputed:#2B2622;--ruled-out:#C7604B;--ruled-out-text:#AC4834;--on-ruled-out:#FFFFFF;--on-status:#FFFFFF;color-scheme:light}
[data-palette="mesa"]{--bg:#F7EEE6;--surface:#EFE2D6;--raised:#FFFAF5;--line:#E3D2C3;--ink:#2E231D;--dim:#61514A;--mute:#6C5A51;--hl:#A8226A;--on-hl:#FFFFFF;--grad:linear-gradient(115deg,#F2B27A,#E0607E 50%,#A8226A);--accepted:#4F9B3D;--accepted-text:#26730E;--on-accepted:#FFFFFF;--disputed:#CD8D0E;--disputed-text:#885C03;--on-disputed:#2E231D;--ruled-out:#D05E47;--ruled-out-text:#AE3F29;--on-ruled-out:#FFFFFF;--on-status:#FFFFFF;color-scheme:light}
[data-palette="desertsky"]{--bg:#F8F0EC;--surface:#EFE3DD;--raised:#FFFBF9;--line:#E4D3CA;--ink:#2E2228;--dim:#614F57;--mute:#755F68;--hl:#006B80;--on-hl:#FFFFFF;--grad:linear-gradient(115deg,#FFB38A,#EE7FA6 50%,#1FA8B8);--accepted:#609655;--accepted-text:#3E7132;--on-accepted:#FFFFFF;--disputed:#C59448;--disputed-text:#8B5E08;--on-disputed:#2E2228;--ruled-out:#BE6B5A;--ruled-out-text:#9D4E3D;--on-ruled-out:#FFFFFF;--on-status:#FFFFFF;color-scheme:light}
[data-palette="macaw"]{--bg:#F3F5F8;--surface:#E8ECF2;--raised:#FFFFFF;--line:#D5DCE6;--ink:#151A24;--dim:#475064;--mute:#596277;--hl:#3150C8;--on-hl:#FFFFFF;--grad:linear-gradient(115deg,#F2B33D,#E5484D 50%,#3150C8);--accepted:#519E40;--accepted-text:#2C7916;--on-accepted:#FFFFFF;--disputed:#D4920E;--disputed-text:#8F6103;--on-disputed:#151A24;--ruled-out:#D05D46;--ruled-out-text:#B4442F;--on-ruled-out:#FFFFFF;--on-status:#FFFFFF;color-scheme:light}
[data-palette="paper"]{--bg:#FBFAF7;--surface:#F1EEE8;--raised:#FFFFFF;--line:#E3DFD7;--ink:#141414;--dim:#4D4B47;--mute:#605D58;--hl:#141414;--on-hl:#FFFFFF;--grad:linear-gradient(115deg,#BDBDB6,#141414);--accepted:#519142;--accepted-text:#39782A;--on-accepted:#FFFFFF;--disputed:#D19635;--disputed-text:#916207;--on-disputed:#141414;--ruled-out:#B85744;--ruled-out-text:#AE4E3B;--on-ruled-out:#FFFFFF;--on-status:#FFFFFF;color-scheme:light}
[data-palette="paper"]{--link-decoration:underline}
[data-palette="cedar"]{--bg:#0C1210;--surface:#131B18;--raised:#1A2420;--line:#22302B;--ink:#E9EFEC;--dim:#93A49D;--mute:#7D8E87;--hl:#8FA3FF;--on-hl:#0C1210;--grad:linear-gradient(120deg,#FF9D6C,#E56399 45%,#8B7CF6);--accepted:#8EC882;--accepted-text:#8EC882;--on-accepted:#0C1210;--disputed:#F4BF70;--disputed-text:#F4BF70;--on-disputed:#0C1210;--ruled-out:#E98E7A;--ruled-out-text:#E98E7A;--on-ruled-out:#0C1210;--on-status:#0C1210;color-scheme:dark}
[data-palette="canyon"]{--bg:#100C14;--surface:#181220;--raised:#201828;--line:#2C2138;--ink:#F2ECF4;--dim:#A393AD;--mute:#9686A0;--hl:#F0A3C0;--on-hl:#100C14;--grad:linear-gradient(120deg,#FFD27F,#F0A3C0 50%,#8BE9C9);--accepted:#96CE8A;--accepted-text:#96CE8A;--on-accepted:#100C14;--disputed:#F9C57A;--disputed-text:#F9C57A;--on-disputed:#100C14;--ruled-out:#EC9582;--ruled-out-text:#EC9582;--on-ruled-out:#100C14;--on-status:#100C14;color-scheme:dark}
[data-palette="aurora"]{--bg:#070B12;--surface:#0D1420;--raised:#131C2C;--line:#1C2A3D;--ink:#EAF2F5;--dim:#8AA0AD;--mute:#74889A;--hl:#4CCFE8;--on-hl:#070B12;--grad:linear-gradient(120deg,#4CCFE8,#A78BFA 60%,#FB7185);--accepted:#95CD89;--accepted-text:#95CD89;--on-accepted:#070B12;--disputed:#F8C57A;--disputed-text:#F8C57A;--on-disputed:#070B12;--ruled-out:#EC9481;--ruled-out-text:#EC9481;--on-ruled-out:#070B12;--on-status:#070B12;color-scheme:dark}
[data-palette="junglenight"]{--bg:#0B130E;--surface:#111B14;--raised:#17231B;--line:#223127;--ink:#E6EFE8;--dim:#93A598;--mute:#7F9285;--hl:#D29BFF;--on-hl:#0B130E;--grad:linear-gradient(120deg,#8FD14F,#2BA58C 45%,#D29BFF);--accepted:#8DCE7F;--accepted-text:#8DCE7F;--on-accepted:#0B130E;--disputed:#FDC168;--disputed-text:#FDC168;--on-disputed:#0B130E;--ruled-out:#F28E79;--ruled-out-text:#F28E79;--on-ruled-out:#0B130E;--on-status:#0B130E;color-scheme:dark}
[data-palette="obsidian"]{--bg:#0C0C0C;--surface:#151515;--raised:#1C1C1C;--line:#2A2A2A;--ink:#EDEAE4;--dim:#A39F98;--mute:#8F8B85;--hl:#EDEAE4;--on-hl:#0C0C0C;--grad:linear-gradient(120deg,#5A5A5A,#EDEAE4);--accepted:#97DA89;--accepted-text:#97DA89;--on-accepted:#0C0C0C;--disputed:#FFC670;--disputed-text:#FFC670;--on-disputed:#0C0C0C;--ruled-out:#FF9A84;--ruled-out-text:#FF9A84;--on-ruled-out:#0C0C0C;--on-status:#0C0C0C;color-scheme:dark}
[data-palette="obsidian"]{--link-decoration:underline}
/* defaults: light mesa, dark canyon */
}
@layer base {
/* css/base.css */
/* Fonts and the page itself. Light mode is Ubuntu on a warm ground; dark mode is kami OS mono on a dotted grid. */
@font-face{font-family:"Ubuntu";font-weight:300;font-display:swap;src:url(../fonts/ubuntu-latin-300-normal.woff2) format("woff2")}
@font-face{font-family:"Ubuntu";font-weight:400;font-display:swap;src:url(../fonts/ubuntu-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"Ubuntu";font-weight:400;font-style:italic;font-display:swap;src:url(../fonts/ubuntu-latin-400-italic.woff2) format("woff2")}
@font-face{font-family:"Ubuntu";font-weight:500;font-display:swap;src:url(../fonts/ubuntu-latin-500-normal.woff2) format("woff2")}
@font-face{font-family:"Ubuntu";font-weight:700;font-display:swap;src:url(../fonts/ubuntu-latin-700-normal.woff2) format("woff2")}
@font-face{font-family:"JetBrains Mono";font-weight:400;font-display:swap;src:url(../fonts/jetbrains-mono-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"JetBrains Mono";font-weight:500;font-display:swap;src:url(../fonts/jetbrains-mono-latin-500-normal.woff2) format("woff2")}
@font-face{font-family:"JetBrains Mono";font-weight:700;font-display:swap;src:url(../fonts/jetbrains-mono-latin-700-normal.woff2) format("woff2")}
@font-face{font-family:"Atkinson Hyperlegible Next";font-weight:400;font-display:swap;src:url(../fonts/atkinson-hyperlegible-next-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"Atkinson Hyperlegible Next";font-weight:600;font-display:swap;src:url(../fonts/atkinson-hyperlegible-next-latin-600-normal.woff2) format("woff2")}

body{background:var(--bg);color:var(--ink);font-family:var(--f-ui);font-size:var(--text-ui);line-height:var(--leading-ui);
  -webkit-font-smoothing:antialiased;font-variant-numeric:tabular-nums;min-height:100dvh}
[data-mode=dark] body{background-image:radial-gradient(var(--line) var(--hair),transparent calc(var(--hair) * 1.2));background-size:var(--space-4) var(--space-4)}
::selection{background:color-mix(in srgb,var(--hl) 30%,var(--bg))}
:focus-visible{outline:var(--rule) solid var(--hl);outline-offset:var(--rule);border-radius:var(--radius-sm)}
a:where(.link,.prose a){color:var(--hl);text-decoration:var(--link-decoration,none);text-underline-offset:.2em}
a:where(.link,.prose a):hover{text-decoration:underline}

h1,.h1{font-family:var(--f-display);font-size:var(--text-h1);line-height:var(--leading-tight);font-weight:700;letter-spacing:-.025em}
h2,.h2{font-family:var(--f-display);font-size:var(--text-h2);line-height:var(--leading-snug);font-weight:700;letter-spacing:-.015em}
h3,.h3{font-family:var(--f-display);font-size:var(--text-h3);line-height:var(--leading-snug);font-weight:700}
[data-mode=dark] :is(h1,.h1){font-weight:500;letter-spacing:-.02em}
[data-mode=dark] :is(h2,.h2){font-family:var(--f-mono);font-size:var(--text-small);font-weight:500;letter-spacing:.14em;text-transform:uppercase}
[data-mode=dark] :is(h3,.h3){font-weight:500}

.prose{font-family:var(--f-prose);font-size:var(--text-body);line-height:var(--leading-prose);max-width:var(--measure)}
.prose>*+*{margin-top:var(--space-3)}
.prose :is(h2,h3){margin-top:var(--space-6)}
.prose ul,.prose ol{padding-left:var(--space-5)}
.lede{font-family:var(--f-prose);font-size:var(--text-lede);line-height:var(--leading-prose);max-width:var(--measure)}
.label{font-family:var(--f-mono);font-size:var(--text-label);font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--dim);white-space:nowrap}
code,kbd,.mono{font-family:var(--f-mono)}

}
@layer layout {
/* css/layout.css */
/* Layout primitives (after Every Layout). Pages arrange components with these and nothing else.
   Each reads its gap from a token named by the macro: <div class="stack" style="--gap:var(--space-4)">.
   Viewport queries live only here and in the page shell; components use container queries. */

.stack{display:flex;flex-direction:column;gap:var(--gap,var(--space-4))}
.cluster{display:flex;flex-wrap:wrap;align-items:center;gap:var(--gap,var(--space-3))}
.cluster>.push{margin-left:auto}
.center{max-width:var(--max,var(--page));margin-inline:auto;padding-inline:var(--gutter,var(--space-4))}
@media (min-width:45rem){.center{--gutter:var(--space-6)}}
.measure{max-width:var(--measure)}
.grow{flex:1;min-width:0}

/* Main column with a side panel; the panel drops below the main column when there isn't room for both. */
.sidebar{display:flex;flex-wrap:wrap;gap:var(--gap,var(--space-6))}
.sidebar>:first-child{flex-basis:var(--side,var(--aside));flex-grow:1}
.sidebar>:last-child{flex-basis:0;flex-grow:999;min-width:min(100%,var(--content-min,32rem))}
.sidebar.side-end>:first-child{flex-basis:0;flex-grow:999;min-width:min(100%,var(--content-min,32rem))}
.sidebar.side-end>:last-child{flex-basis:var(--side,var(--aside));flex-grow:1;min-width:0}

/* Columns that become a stack below a threshold width. */
.switcher{display:flex;flex-wrap:wrap;gap:var(--gap,var(--space-4))}
.switcher>*{flex-grow:1;flex-basis:calc((var(--threshold,40rem) - 100%) * 999)}

/* Cards that fill the row, as many as fit. */
.grid{display:grid;gap:var(--gap,var(--space-4));grid-template-columns:repeat(auto-fill,minmax(min(100%,var(--min,16rem)),1fr))}

/* Media with a fixed aspect ratio. */
.frame{aspect-ratio:var(--ratio,4 / 3);overflow:hidden;position:relative}
.frame>:is(img,video,svg){width:100%;height:100%;object-fit:cover}

/* A region whose children adapt to its width (components use @container). */
.slot{container-type:inline-size}

}
@layer components {
/* components/article.css */
/* Article parts: the page rhythm, the question board, the timeline panel. */
.main{padding-block:var(--space-5) var(--space-7)}
.page-gap{--gap:var(--space-6)}
.board+.board{border-top:var(--hair) solid var(--line)}
.board .qrow{border-bottom:0}
.board .kids{padding:0 var(--space-4) var(--space-3) calc(var(--hit) + var(--space-6));gap:var(--space-1) var(--space-4);color:var(--dim)}
.tl{list-style:none;display:flex;flex-direction:column;margin-top:var(--space-3)}
.tl li{display:grid;grid-template-columns:var(--fact-label) minmax(0,1fr);gap:var(--space-3);padding-block:var(--space-2);border-top:var(--hair) solid var(--line)}
.tl li:first-child{border-top:0}
.tl-when{color:var(--dim);white-space:nowrap}
.article h1{flex:1 1 var(--feature);overflow-wrap:break-word}

/* components/controls.css */
.logo{width:var(--icon-lg);height:var(--icon-lg);flex:none;color:var(--hl);display:block}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:var(--hit-sm);padding:var(--space-1) var(--space-4);
  border:var(--hair) solid var(--line);border-radius:var(--radius-pill);background:var(--raised);color:var(--ink);font-size:var(--text-ui);font-weight:500;line-height:1.2;white-space:nowrap;cursor:pointer}
@media (pointer:coarse){.btn{min-height:var(--hit)}}
.btn:hover{border-color:var(--dim)}
.btn.pri{background:var(--hl);border-color:var(--hl);color:var(--on-hl);font-weight:700}
.btn.quiet{border-color:transparent;background:transparent;color:var(--dim)}
.btn.sm{min-height:calc(var(--hit-sm) - var(--space-1));padding-inline:var(--space-3);font-size:var(--text-small)}
.btn .ic{width:var(--icon-sm);height:var(--icon-sm)}
[data-mode=dark] .btn{font-family:var(--f-mono);font-size:var(--text-small);border-radius:var(--radius-sm)}

.tabs{display:flex;gap:var(--space-1);border-bottom:var(--hair) solid var(--line);overflow-x:auto;scrollbar-width:none}
.tabs a{display:flex;align-items:center;gap:var(--space-2);min-height:var(--hit);padding-inline:var(--space-3);font-weight:500;font-size:var(--text-ui);color:var(--dim);
  border-bottom:var(--space-1) solid transparent;margin-bottom:calc(var(--hair) * -1);white-space:nowrap}
.tabs a.on{color:var(--ink);border-color:var(--hl)}
.tabs a em{font-family:var(--f-mono);font-size:var(--text-label);font-style:normal;color:var(--mute)}
[data-mode=dark] .tabs a{font-family:var(--f-mono);font-size:var(--text-label);letter-spacing:.1em;text-transform:uppercase}

.pills{display:flex;gap:var(--space-1);align-items:center;overflow-x:auto;scrollbar-width:none}
.pills a{display:inline-flex;align-items:center;gap:var(--space-2);min-height:var(--hit-sm);padding-inline:var(--space-4);border-radius:var(--radius-pill);
  font-weight:500;color:var(--dim);white-space:nowrap;border:var(--hair) solid transparent}
.pills a.on{background:var(--hl);color:var(--on-hl);font-weight:700}
[data-mode=dark] .pills a{font-family:var(--f-mono);font-size:var(--text-small);border-radius:var(--radius-sm)}
[data-mode=dark] .pills a.on{background:transparent;border-color:var(--hl);color:var(--hl)}

.vote{display:flex;flex-direction:column;align-items:center;gap:var(--hair);width:var(--hit);flex:none}
.vote button{width:var(--hit-sm);height:var(--hit-sm);display:grid;place-items:center;border-radius:var(--radius-sm);color:var(--mute)}
.vote button:hover{color:var(--ink);background:var(--surface)}
.vote svg{width:var(--icon);height:var(--icon);stroke:currentColor;fill:none;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.vote b{font-family:var(--f-mono);font-weight:700;font-size:var(--text-ui);line-height:1.2;color:var(--ink)}
.vote.up .u,.vote.down .d{color:var(--hl)}
.vote.up .u svg,.vote.down .d svg{stroke-width:2.9}
.vote.up b,.vote.down b{color:var(--hl)}
.vote.row{flex-direction:row;width:auto}

.av{width:var(--avatar);height:var(--avatar);border-radius:50%;display:grid;place-items:center;flex:none;object-fit:cover;
  background:var(--surface);border:var(--hair) solid var(--line);font-family:var(--f-mono);font-size:var(--text-label);font-weight:500;color:var(--ink)}
.av.sm{width:var(--avatar-sm);height:var(--avatar-sm)}
.av.lg{width:var(--avatar-lg);height:var(--avatar-lg);font-family:var(--f-display);font-size:var(--text-h2);font-weight:700}
.av.ai{border-radius:var(--radius-sm);border-style:dashed;color:var(--dim)}

.role{display:inline-flex;align-items:center;min-height:var(--space-5);padding-inline:var(--space-2);border-radius:var(--radius-sm);
  font-family:var(--f-mono);font-size:var(--text-label);font-weight:500;letter-spacing:.04em;background:var(--surface);color:var(--dim);white-space:nowrap}
.role.r-editor{color:var(--ink);box-shadow:inset 0 0 0 var(--hair) var(--ink)}

/* components/forms.css */
.field{display:flex;flex-direction:column;gap:var(--space-1)}
.field label{font-weight:700;font-size:var(--text-ui)}
.field input,.field textarea,.field select{min-height:var(--hit);padding:var(--space-2) var(--space-3);border:var(--hair) solid var(--line);border-radius:var(--radius-sm);
  background:var(--raised);font-size:var(--text-body)}
.field input:focus,.field textarea:focus{outline:var(--rule) solid var(--hl);outline-offset:0;border-color:var(--hl)}
.field .hint{font-size:var(--text-small);color:var(--dim)}
.field .err{font-size:var(--text-small);color:var(--ruled-out-text)}
.field.has-error input{border-color:var(--ruled-out)}
.form-card{width:100%;max-width:var(--form);margin-inline:auto}

.tbl{width:100%;font-size:var(--text-ui)}
.tbl th{font-family:var(--f-mono);font-size:var(--text-label);font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--dim);text-align:left;padding:var(--space-2) var(--space-3);border-bottom:var(--hair) solid var(--line);white-space:nowrap}
.tbl td{padding:var(--space-2) var(--space-3);border-bottom:var(--hair) solid var(--line);vertical-align:top}
.tbl .n{text-align:right;font-family:var(--f-mono)}
.tbl-wrap{overflow-x:auto}

/* components/icon.css */
.ic{width:var(--icon);height:var(--icon);fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.ic.sm{width:var(--icon-sm);height:var(--icon-sm)}

/* components/key.css */
.key{display:inline-flex;align-items:center;gap:var(--hair);white-space:nowrap;vertical-align:middle}
.kid{font-family:var(--f-mono);font-size:var(--text-small);color:var(--dim);white-space:nowrap;user-select:all;cursor:text}
.kid b{font-weight:700;color:var(--ink);letter-spacing:.02em}
.kid span{margin-left:.32em}
.kid span+span{margin-left:.24em}
.cpy{display:inline-grid;place-items:center;width:var(--hit-sm);height:var(--hit-sm);margin-block:calc(var(--space-2) * -1);border-radius:var(--radius-sm);color:var(--mute);cursor:copy}
.cpy:hover{color:var(--ink);background:var(--surface)}
.idm{display:block;color:var(--ink)}
.idm[data-key]{cursor:copy}
.copied{position:fixed;z-index:var(--z-toast);padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);background:var(--ink);color:var(--bg);
  font-size:var(--text-small);font-weight:500;pointer-events:none;transform:translate(-50%,-130%);white-space:nowrap}

/* components/library.css */
/* source rows (SR): votes | title, who and where, what it is | its mark */
.srow{display:grid;grid-template-columns:var(--hit) minmax(0,1fr);gap:var(--space-3);align-items:center;padding:var(--space-3) var(--space-4);border-top:var(--hair) solid var(--line)}
.srow:first-child{border-top:0}
.srow-m{display:none}
@container (min-width:40rem){.srow{grid-template-columns:var(--hit) minmax(0,1fr) var(--mark)}.srow-m{display:flex;justify-content:flex-end}}
.srow-t{display:block;font-family:var(--f-display);font-weight:700;font-size:var(--text-h3);line-height:var(--leading-snug);letter-spacing:-.01em}
[data-mode=dark] .srow-t{font-family:var(--f-mono);font-weight:500;font-size:var(--text-ui);letter-spacing:0}
.srow-by{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-1);font-size:var(--text-small);color:var(--dim);margin-top:var(--space-1)}
.tag{font-size:var(--text-label);font-weight:500;padding:var(--space-1) var(--space-2);border-radius:var(--radius-pill);background:var(--surface);color:var(--dim);white-space:nowrap}

/* files */
.files td{vertical-align:middle}
.files td:first-child{width:calc(var(--icon-sm) + var(--space-3));padding-right:0;color:var(--dim)}
.files td:first-child .ic{max-width:none}
.nowrap{white-space:nowrap}

/* the PDF reader: the browser's own viewer, the width of the column and most of the screen's height */
.reader{padding:0;overflow:hidden}
.reader iframe{display:block;width:100%;height:80vh;border:0;background:var(--surface)}

/* research sessions */
.scard{display:grid;grid-template-columns:var(--hit) minmax(0,1fr);gap:var(--space-3);align-items:start}
.scard-n{font-size:var(--text-h2);font-weight:500;color:var(--mute);line-height:1}
.scard-t{font-family:var(--f-display);font-weight:700;font-size:var(--text-h3);line-height:var(--leading-snug)}
[data-mode=dark] .scard-t{font-family:var(--f-mono);font-weight:500;font-size:var(--text-ui)}
.journey{display:grid;gap:var(--space-3)}

/* components/meter.css */
/* The profile's Answers meter: one segment per answer, as tall as its evidence is strong. */
.meter2{display:flex;align-items:flex-end;gap:var(--rule);height:var(--space-7);padding-bottom:var(--space-1);border-bottom:var(--hair) solid var(--line)}
.meter2 i{flex:1 1 0;min-width:var(--rule);max-width:var(--space-3);border-radius:var(--rule) var(--rule) 0 0;background:color-mix(in srgb,var(--ink) 22%,transparent)}
.meter2 .m-accepted{height:100%;background:var(--accepted)}
.meter2 .m-likely{height:78%;background:var(--accepted)}
.meter2 .m-disputed{height:56%;background:var(--disputed)}
.meter2 .m-possible{height:36%}
.meter2 .m-needs{height:24%;background:none;box-shadow:inset 0 0 0 var(--hair) var(--mute)}
.meter2 .m-ruled{height:16%;background:var(--ruled-out);opacity:.75}

/* components/panels.css */
.card{background:var(--raised);border:var(--hair) solid var(--line);border-radius:var(--radius-md);box-shadow:var(--shadow-card)}
.card.pad{padding:var(--space-4)}
@container (min-width:30rem){.card.pad{padding:var(--space-4) var(--space-5)}}

.tile{display:flex;flex-direction:column;gap:var(--space-1)}
.tile .k{display:flex;align-items:center;gap:var(--space-2);font-weight:500}
.tile .n{font-family:var(--f-display);font-weight:700;font-size:var(--text-display);line-height:1;letter-spacing:-.02em;margin-top:var(--space-2)}
[data-mode=dark] .tile .n{font-family:var(--f-mono);font-weight:500}
.tile .ex{font-size:var(--text-small);color:var(--dim)}
.tile .go{display:inline-flex;align-items:center;gap:var(--space-1);margin-top:var(--space-2);font-weight:700;font-size:var(--text-small);color:var(--hl)}

.sect{display:flex;flex-direction:column;gap:var(--space-3)}
.sect-h{display:flex;align-items:baseline;gap:var(--space-2)}
.sect-h .push{margin-left:auto}

.live-h{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-2);padding-bottom:var(--space-2);border-bottom:var(--hair) solid var(--line)}
.live-h .push{margin-left:auto}
.live{display:inline-flex;align-items:center;gap:var(--space-1);font-size:var(--text-label);color:var(--mute)}
.live i{width:var(--space-2);height:var(--space-2);border-radius:50%;background:var(--accepted)}

.notice{padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);background:var(--surface);font-size:var(--text-small)}
.notice.n-ok{color:var(--accepted-text)}
.notice.n-warn{color:var(--ruled-out-text);background:color-mix(in srgb,var(--ruled-out) 8%,var(--raised))}

/* components/records.css */
/* the featured mystery card */
.gcard{width:100%;max-width:var(--feature);border-radius:var(--radius-md);border:var(--hair) solid var(--line);background:var(--raised);overflow:hidden;box-shadow:var(--shadow-card)}
.gcard .band{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4) var(--space-2)}
.gcard .band .t{display:block;font-family:var(--f-display);font-weight:700;font-size:var(--text-ui);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
[data-mode=dark] .gcard .band .t{font-family:var(--f-mono);font-weight:500}
.gcard .band small{display:block;margin-top:var(--space-1)}
.gcard .pic{display:block;aspect-ratio:16 / 9;background:var(--surface);overflow:hidden}
.gcard .pic img{width:100%;height:100%;object-fit:cover;object-position:center 22%}
.gcard .pic .ph{width:100%;height:100%;display:grid;place-items:center}
.gcard .stats{display:grid;grid-template-columns:repeat(4,1fr);border-bottom:var(--hair) solid var(--line)}
.gcard .stats div{padding:var(--space-2) var(--hair);text-align:center;border-left:var(--hair) solid var(--line)}
.gcard .stats div:first-child{border-left:0}
.gcard .stats b{display:block;font-family:var(--f-display);font-weight:700;font-size:var(--text-h3);line-height:1}
.gcard .stats small{display:block;font-size:var(--text-label);color:var(--dim);margin-top:var(--space-1)}
.gcard .stl{padding:var(--space-3) var(--space-4) var(--space-1)}
.gcard .stl .w{display:flex;align-items:center;gap:var(--space-1);font-size:var(--text-small);font-weight:500;margin-bottom:var(--space-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.gcard .foot{padding:var(--space-2) var(--space-4);margin-top:var(--space-2);border-top:var(--hair) solid var(--line);font-family:var(--f-mono);font-size:var(--text-label);color:var(--mute);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* artifact tiles */
.acard{display:flex;flex-direction:column;overflow:hidden}
.acard .pv{position:relative;display:block;aspect-ratio:8 / 5;background:var(--surface);overflow:hidden;border-bottom:var(--hair) solid var(--line)}
.acard .pv img{width:100%;height:100%;object-fit:cover;object-position:center 25%}
.acard .pv .ph{display:grid;place-items:center;width:100%;height:100%;color:var(--mute)}
.acard .tx,.acard .dt{display:flex;flex-direction:column;padding:var(--space-3);font-family:var(--f-mono);font-size:var(--text-small);line-height:1.75;white-space:nowrap;overflow:hidden}
.acard .tx em{display:inline-block;width:var(--space-5);font-style:normal;color:var(--mute)}
.acard .dt>span{display:grid;grid-template-columns:repeat(3,1fr);border-bottom:var(--hair) solid var(--line)}
.acard .bd{display:flex;flex-direction:column;gap:var(--space-1);padding:var(--space-3) var(--space-4) var(--space-4)}
.acard .kd{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-small);font-weight:500;color:var(--dim)}
.acard .kd .st{margin-left:auto;font-family:var(--f-mono);font-size:var(--text-label);color:var(--mute);white-space:nowrap}
.acard .tt{font-weight:700;font-size:var(--text-ui)}
.acard .mt{font-size:var(--text-small);color:var(--dim)}
.imk{position:absolute;right:var(--space-2);bottom:var(--space-2);padding:var(--space-1);border-radius:var(--radius-sm);background:var(--raised);box-shadow:var(--shadow-pop);line-height:0}
.imk.bl{right:auto;left:var(--space-2)}

/* infobox */
.ibox{overflow:hidden;width:100%}
.ib-t{padding:var(--space-3) var(--space-4);font-family:var(--f-display);font-weight:700;font-size:var(--text-h3);text-align:center;border-bottom:var(--hair) solid var(--line)}
.ifig{border-bottom:var(--hair) solid var(--line)}
.iim{position:relative;aspect-ratio:3 / 2;overflow:hidden;background:var(--surface)}
.iim>img,.iim>svg{width:100%;height:100%;object-fit:cover}
.ifig figcaption{padding:var(--space-2) var(--space-4);font-size:var(--text-small);color:var(--dim)}
.facts>div{display:grid;grid-template-columns:var(--fact-label) minmax(0,1fr);gap:var(--space-3);padding:var(--space-2) var(--space-4);border-top:var(--hair) solid var(--line);font-size:var(--text-small)}
.facts>div:first-child{border-top:0}
.facts dt{font-weight:700}
.ik{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);padding:var(--space-3) var(--space-4);border-top:var(--hair) solid var(--line);background:var(--surface)}

/* citations and references */
.cite{font-size:.72em;vertical-align:super;line-height:0;color:var(--hl);white-space:nowrap}
.refs{list-style:none;display:flex;flex-direction:column;gap:var(--space-2);font-size:var(--text-small)}
.refs li{display:grid;grid-template-columns:var(--space-6) minmax(0,1fr);gap:var(--space-1)}
.refs .rn{color:var(--mute);font-family:var(--f-mono)}
.refs :target{background:color-mix(in srgb,var(--hl) 10%,transparent)}

/* components/rows.css */
/* question feed row: votes | question + meta | status. On narrow slots the status drops under the question. */
.qrow{display:grid;grid-template-columns:var(--hit) minmax(0,1fr);gap:var(--space-2) var(--space-3);align-items:start;padding:var(--space-3) var(--space-2);border-bottom:var(--hair) solid var(--line)}
.qrow-st{grid-column:2;display:flex;flex-direction:column;gap:var(--space-2)}
@container (min-width:40rem){
  .qrow{grid-template-columns:var(--hit) minmax(0,1fr) var(--status-col);align-items:center;gap:var(--space-4);padding:var(--space-3) var(--space-4)}
  .qrow-st{grid-column:3}
}
.qrow-q{display:block;font-family:var(--f-display);font-weight:700;font-size:var(--text-h3);line-height:var(--leading-snug);letter-spacing:-.01em}
[data-mode=dark] .qrow-q{font-family:var(--f-mono);font-weight:500;font-size:var(--text-ui)}
.meta{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-1) var(--space-2);margin-top:var(--space-1);font-size:var(--text-small);color:var(--dim)}
.meta b{color:var(--ink);font-weight:500}
.meta-m,.meta-n{display:inline-flex;align-items:center;gap:var(--space-1)}
.qrow-st .st{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-small);font-weight:500;min-width:0}

/* answer box */
.abox{--sc:var(--accepted);--st:var(--accepted-text);display:grid;grid-template-columns:auto minmax(0,1fr);gap:var(--space-3) var(--space-4);align-items:center;
  padding:var(--space-4);border-radius:var(--radius-md);border:var(--rule) solid var(--sc);background:color-mix(in srgb,var(--sc) 7%,var(--raised))}
.abox.s-disputed{--sc:var(--disputed);--st:var(--disputed-text)}
.abox:is(.s-ruled,.s-dropped){--sc:var(--ruled-out);--st:var(--ruled-out-text)}
.abox:is(.s-open,.s-possible,.s-needs){--sc:var(--line);--st:var(--dim)}
.abox>.glyph{width:var(--hit);height:var(--hit)}
.abox>.btn{grid-column:1 / -1;justify-self:start}
@container (min-width:36rem){.abox{grid-template-columns:auto minmax(0,1fr) auto}.abox>.btn{grid-column:auto}}
.abox .k{font-weight:700;font-size:var(--text-small);color:var(--st)}
.abox .a{font-family:var(--f-display);font-weight:700;font-size:var(--text-h2);line-height:var(--leading-snug);letter-spacing:-.015em;margin-top:var(--space-1)}
.abox .w{font-size:var(--text-small);color:var(--dim);margin-top:var(--space-1)}
[data-mode=dark] .abox .k{font-family:var(--f-mono);font-size:var(--text-label);letter-spacing:.12em;text-transform:uppercase}
[data-mode=dark] .abox .a{font-family:var(--f-mono);font-weight:500;font-size:var(--text-h3)}

/* answer rows */
.ans{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-3);padding:var(--space-4);border-top:var(--hair) solid var(--line)}
.ans:first-child{border-top:0}
@container (min-width:44rem){.ans{grid-template-columns:minmax(0,1fr) var(--meter-col) var(--review-col);gap:var(--space-5);align-items:center}}
.an{display:flex;align-items:center;gap:var(--space-2);font-family:var(--f-display);font-weight:700;font-size:var(--text-h3);line-height:var(--leading-snug)}
[data-mode=dark] .an{font-family:var(--f-mono);font-weight:500;font-size:var(--text-ui)}
.ad{font-size:var(--text-small);color:var(--dim);margin-top:var(--space-1)}
.ans.lead{background:color-mix(in srgb,var(--accepted) 6%,var(--raised))}
.ans.out .an span{color:var(--mute);text-decoration:line-through;text-decoration-thickness:var(--hair)}
.meter .mh{display:flex;justify-content:space-between;gap:var(--space-2);font-size:var(--text-small);color:var(--dim);margin-bottom:var(--space-1);white-space:nowrap}
.meter .mh b{font-weight:700;color:var(--ink)}
.meter .mb{display:flex;gap:var(--rule);height:var(--space-2)}
.meter .mb i{flex:1;border-radius:var(--rule);background:var(--line)}
.meter .mb i.f{background:var(--ink)}
.meter .mb i.a{background:transparent;box-shadow:inset 0 0 0 var(--rule) var(--ink)}
.meter .rv{display:flex;gap:var(--space-1);align-items:center}
.meter .rv i{width:var(--space-5);height:var(--space-5);border-radius:50%;border:var(--rule) dashed var(--mute)}
.meter .rv i.ok{border:0;background:var(--accepted)}

/* comments */
.cm{display:grid;grid-template-columns:var(--avatar-sm) minmax(0,1fr);gap:var(--space-3);padding-top:var(--space-4)}
.cm .who{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-small);color:var(--dim);white-space:nowrap}
.cm .who b{color:var(--ink);font-weight:500}
.cm .body{font-family:var(--f-prose);font-size:var(--text-body);line-height:var(--leading-prose);margin:var(--space-1) 0;max-width:var(--measure)}
.cm .acts{display:flex;align-items:center;gap:var(--space-3);font-size:var(--text-small);color:var(--dim)}
.cm .acts a{display:inline-flex;align-items:center;gap:var(--space-1);min-height:var(--hit-sm)}
.cm .kids{border-left:var(--rule) solid var(--line);padding-left:var(--space-4);margin-top:var(--space-1)}

/* components/shell.css */
.topbar{position:sticky;top:0;z-index:var(--z-bar);display:flex;align-items:center;gap:var(--space-2);height:var(--bar);padding-inline:var(--space-4);
  border-bottom:var(--hair) solid var(--line);background:var(--bg)}
.brand{display:flex;align-items:center;gap:var(--space-2);margin-right:auto;font-family:var(--f-display);font-weight:700;font-size:var(--text-ui);white-space:nowrap;letter-spacing:-.01em}
.brand span{display:none}
[data-mode=dark] .brand{font-family:var(--f-mono);font-weight:500;font-size:var(--text-label);letter-spacing:.14em;text-transform:uppercase}
.nav,.search{display:none}
.ib{width:var(--hit);height:var(--hit);display:grid;place-items:center;border-radius:var(--radius-pill);color:var(--dim)}
.ib:hover{color:var(--ink);background:var(--surface)}
[data-mode=light] .i-dark,[data-mode=dark] .i-light{display:none}
.me{display:grid;place-items:center;width:var(--hit);height:var(--hit)}
.drawer{display:flex;flex-direction:column;padding:var(--space-2) var(--space-4) var(--space-4);border-bottom:var(--hair) solid var(--line);background:var(--bg)}
.drawer[hidden]{display:none}
.drawer a{display:flex;align-items:center;min-height:var(--hit);font-weight:500;color:var(--dim)}
.drawer a.on{color:var(--ink)}

@media (min-width:45rem){
  .topbar{gap:var(--space-4);padding-inline:var(--space-6)}
  .brand{margin-right:0}
  .brand span{display:inline}
  .search{display:flex;align-items:center;gap:var(--space-2);margin-left:auto;height:calc(var(--hit) - var(--space-2));width:min(100%,var(--search));padding-inline:var(--space-3);
    border:var(--hair) solid var(--line);border-radius:var(--radius-pill);background:var(--raised);color:var(--mute)}
  [data-mode=dark] .search{border-radius:var(--radius-sm)}
  .search input{flex:1;min-width:0;border:0;background:none;outline:0;font-size:var(--text-ui)}
  .search:focus-within{border-color:var(--hl)}
}
@media (min-width:67.5rem){
  .nav{display:flex;gap:var(--space-1)}
  .nav a{display:flex;align-items:center;height:calc(var(--hit) - var(--space-2));padding-inline:var(--space-3);border-radius:var(--radius-pill);font-weight:500;color:var(--dim);white-space:nowrap}
  .nav a.on{color:var(--ink);background:var(--surface)}
  [data-mode=dark] .nav a{font-family:var(--f-mono);font-size:var(--text-label);letter-spacing:.1em;text-transform:uppercase;border-radius:var(--radius-sm)}
  [data-mode=dark] .nav a.on{color:var(--hl);background:color-mix(in srgb,var(--hl) 10%,transparent)}
  .drawer,[data-drawer]{display:none}
}
.footer{margin-top:var(--space-8);padding-block:var(--space-6);border-top:var(--hair) solid var(--line)}

/* components/status.css */
.glyph{display:inline-block;width:var(--glyph);height:var(--glyph);flex:none;vertical-align:-.2em}
.chip{display:inline-flex;align-items:center;gap:var(--space-2);min-height:calc(var(--hit-sm) - var(--space-1));padding-inline:var(--space-2) var(--space-3);
  border:var(--rule) solid var(--line);border-radius:var(--radius-pill);font-size:var(--text-small);font-weight:500;line-height:1;color:var(--dim);white-space:nowrap}
[data-mode=dark] .chip{font-family:var(--f-mono);font-size:var(--text-label);letter-spacing:.06em;text-transform:uppercase;border-radius:var(--radius-sm)}
.chip.s-accepted{background:var(--accepted-text);border-color:var(--accepted-text);color:var(--on-accepted);font-weight:700}
.chip.s-likely{border-color:var(--accepted);color:var(--accepted-text);font-weight:700}
.chip.s-disputed{border-color:var(--disputed);color:var(--disputed-text);font-weight:700}
.chip.s-ruled{background:var(--ruled-out-text);border-color:var(--ruled-out-text);color:var(--on-ruled-out);font-weight:700}
.chip.plain{border:0;background:none;padding:0;min-height:0}
.chip.plain.s-accepted,.chip.plain.s-likely{color:var(--accepted-text)}
.chip.plain.s-disputed{color:var(--disputed-text)}
.chip.plain.s-ruled{color:var(--ruled-out-text)}

/* the settlement bar: one question; each answer's share of the evidence */
.settle{display:flex;gap:var(--rule);height:calc(var(--space-6) + var(--space-2));border-radius:var(--radius-sm);overflow:hidden}
.settle i{display:flex;align-items:center;gap:var(--space-1);padding-inline:var(--space-3);min-width:var(--space-1);font-style:normal;font-size:var(--text-small);font-weight:500;
  white-space:nowrap;overflow:hidden;color:var(--ink);background:color-mix(in srgb,var(--ink) 13%,var(--raised))}
.settle i b{font-family:var(--f-mono)}
.settle i:is(.s-likely,.s-accepted){background:var(--accepted-text);color:var(--on-accepted);font-weight:700}
.settle i.s-disputed{background:var(--disputed);color:var(--on-disputed);font-weight:700}
.settle i.s-ruled{background:repeating-linear-gradient(135deg,color-mix(in srgb,var(--ruled-out) 30%,transparent) 0 var(--space-1),transparent var(--space-1) var(--space-2));color:var(--ruled-out-text)}
.settle.sm{height:var(--space-3);border-radius:var(--radius-pill);gap:var(--rule)}
.settle.sm i{padding:0}
.settle.sm i:is(.s-likely,.s-accepted){background:var(--accepted)}
.settle.none{background:repeating-linear-gradient(135deg,var(--line) 0 var(--space-1),transparent var(--space-1) var(--space-2));border:var(--hair) solid var(--line)}

}
@layer utilities {
/* css/utilities.css */
.dim{color:var(--dim)} .mute{color:var(--mute)}
.small{font-size:var(--text-small)} .tiny{font-size:var(--text-label)}
.one-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.visually-hidden{position:absolute!important;width:var(--hair);height:var(--hair);overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
@media (min-width:45rem){.only-phone{display:none!important}}
@media (max-width:44.99rem){.not-phone{display:none!important}}

}
