.km-page{position:relative;max-width:1480px;margin:0 auto;padding:56px 40px}.km-top{display:grid;grid-template-columns:1fr;margin-bottom:22px}.km-top h1{font-family:var(--serif);font-weight:400;font-size:clamp(40px,4.6vw,64px);letter-spacing:-.005em;word-spacing:.08em;line-height:1.02}.km-top h1 em{font-style:italic}.km-top .sub{font-family:var(--serif);font-style:italic;font-size:18px;color:var(--ink-soft);margin-top:8px}.km-chal{display:grid;grid-template-columns:auto 1fr auto auto;gap:18px;align-items:center;padding:14px 18px;border:1px solid var(--ink);border-radius:10px;background:var(--paper);margin-bottom:22px}.km-chal .tag{font-family:var(--mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;background:var(--ink);color:var(--paper);padding:4px 8px;border-radius:3px}.km-chal .prompt{font-family:var(--serif);font-size:20px;line-height:1.2}.km-chal .prompt em{font-style:italic}.km-chal .prompt code{font-family:var(--mono);font-size:16px;background:var(--paper-2);padding:2px 8px;border-radius:4px}.km-chal .status{display:inline-flex;align-items:center;gap:8px;font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft)}.km-chal .status .dot{width:8px;height:8px;border-radius:50%;background:var(--ink-soft);transition:background-color .25s ease,box-shadow .25s ease}.km-chal.is-solved .status .dot{background:#1f8a5b;box-shadow:0 0 0 4px #1f8a5b26}.km-chal.is-solved .status .lab{color:#1f8a5b}.km-chal .actions{display:inline-flex;gap:8px;align-items:center}.km-chal button{border:1px solid var(--ink);background:var(--paper);color:var(--ink);padding:7px 14px;border-radius:999px;font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;cursor:pointer;transition:all .15s ease}.km-chal button:hover{background:var(--ink);color:var(--paper)}.km-chal-pick-wrap{position:relative;display:inline-block}.km-chal-pick{display:inline-flex!important;align-items:center;gap:10px;border:1px solid var(--ink);background:var(--paper);color:var(--ink);padding:7px 14px;border-radius:999px;font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;cursor:pointer;outline:none;max-width:320px}.km-chal-pick:hover{background-color:var(--paper-2)!important;color:var(--ink)!important}.km-chal-pick>#chalPickLabel{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.km-chal-pick .caret{font-size:9px;color:var(--ink-soft);transition:transform .2s ease,color .2s ease}.km-chal-pick[aria-expanded=true]{background:var(--ink)!important;color:var(--paper)!important}.km-chal-pick[aria-expanded=true] .caret{transform:rotate(180deg);color:var(--paper)}.km-chal-pop{position:fixed;margin:0;padding:6px;list-style:none;min-width:320px;max-width:380px;max-height:360px;overflow-y:auto;background:var(--paper);border:1px solid var(--ink);border-radius:10px;box-shadow:0 18px 38px -12px #0e133059;z-index:90;scrollbar-width:thin;scrollbar-color:var(--rule) transparent}.km-chal-pop li{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;padding:9px 12px;border-radius:6px;cursor:pointer;outline:none;font-family:var(--mono);color:var(--ink);border-bottom:1px dashed var(--rule);transition:background-color .12s ease}.km-chal-pop li:last-child{border-bottom:none}.km-chal-pop li:hover,.km-chal-pop li:focus-visible{background:var(--paper-2)}.km-chal-pop li[aria-selected=true]{background:var(--ink);color:var(--paper);border-bottom-color:transparent}.km-chal-pop li[aria-selected=true] .num,.km-chal-pop li[aria-selected=true] .meta{color:#f2ede2b3}.km-chal-pop li .num{font-size:9px;letter-spacing:.18em;color:var(--ink-soft);font-variant-numeric:tabular-nums}.km-chal-pop li .lbl{font-size:13px;font-weight:500;letter-spacing:-.005em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.km-chal-pop li .meta{font-size:9px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-soft);padding:2px 8px;border:1px solid var(--rule);border-radius:3px}.km-chal-pop li[aria-selected=true] .meta{border-color:#f2ede24d}.km-bench{display:grid;grid-template-columns:380px 1fr;gap:24px;margin-bottom:24px;align-items:start}.km-controls{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:14px;border:1px solid var(--ink);border-radius:10px;background:var(--paper)}.km-ctrl{display:flex;flex-direction:column;gap:4px;min-width:0}.km-ctrl-lab{font-family:var(--mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-soft)}.km-pick-select{width:100%;appearance:none;-webkit-appearance:none;-moz-appearance:none;font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;font-weight:600;color:var(--ink);background:var(--paper);border:1px solid var(--ink);border-radius:999px;padding:8px 30px 8px 14px;cursor:pointer;background-image:linear-gradient(45deg,transparent 50%,var(--ink) 50%),linear-gradient(135deg,var(--ink) 50%,transparent 50%);background-position:calc(100% - 14px) calc(50% - 1px),calc(100% - 10px) calc(50% - 1px);background-size:4px 4px,4px 4px;background-repeat:no-repeat;text-overflow:ellipsis}.km-pick-select:hover{background-color:var(--paper-2)}.km-pick-select:focus{outline:2px solid var(--acid);outline-offset:1px}.km-actions{grid-column:1 / -1;display:flex;gap:8px}.km-pick-btn{flex:1;font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;padding:8px 14px;border:1px solid var(--ink);border-radius:999px;background:var(--paper);color:var(--ink);cursor:pointer;transition:background-color .12s ease,color .12s ease}.km-pick-btn:hover{background:var(--paper-2)}.km-pick-btn--primary{background:var(--ink);color:var(--paper)}.km-pick-btn--primary:hover{background:#000}.km-stage{border:1px solid var(--ink);border-radius:10px;background:var(--paper);display:flex;flex-direction:column;overflow:hidden}.km-stage-foot{display:flex;align-items:baseline;gap:10px;padding:10px 18px;border-top:1px solid var(--rule);background:var(--paper-2);font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft);cursor:help;outline:none;transition:background-color .15s ease,color .15s ease}.km-stage-foot:hover,.km-stage-foot:focus-visible{background:var(--paper-3, var(--paper-2));color:var(--ink)}.km-stage-foot .lab{flex:0 0 auto;transition:color .15s ease}.km-stage-foot .hint{text-transform:none;letter-spacing:.04em;font-family:var(--serif);font-style:italic;font-size:14px;color:var(--ink);opacity:0;transform:translateY(2px);transition:opacity .18s ease,transform .18s ease;pointer-events:none}.km-stage-foot:hover .hint,.km-stage-foot:focus-visible .hint{opacity:1;transform:translateY(0)}.km-stage-foot .hint b{font-family:var(--mono);font-weight:600;font-size:12px}.km-grid-wrap{display:grid;place-items:center;padding:20px 20px 12px;background:repeating-linear-gradient(0deg,transparent 0 23px,rgba(14,19,48,.04) 23px 24px),repeating-linear-gradient(90deg,transparent 0 23px,rgba(14,19,48,.04) 23px 24px),var(--paper-2)}.km-grid{display:block;max-width:100%;max-height:460px;height:auto;font-family:var(--mono);user-select:none}.km-grid .km-cell{fill:var(--paper);stroke:var(--ink);stroke-width:1;cursor:pointer;transition:fill .15s ease}.km-grid .km-cell.is-1{fill:#1f8a5b1a}.km-grid .km-cell.is-x{fill:#ffb8001a}.km-grid .km-cell.is-active{fill:#c8102e26}.km-grid .km-cell:hover{fill:var(--paper-3)}.km-grid .km-cell.is-1:hover{fill:#1f8a5b2e}.km-grid .km-cell-text{font-family:var(--mono);font-size:22px;font-weight:600;fill:var(--ink-soft);pointer-events:none;font-variant-numeric:tabular-nums}.km-grid .km-cell-text.is-1{fill:#1f8a5b}.km-grid .km-cell-text.is-x{fill:#c46c3a;font-style:italic}.km-grid .km-minterm{font-family:var(--mono);font-size:9px;letter-spacing:.06em;fill:var(--ink-soft);pointer-events:none}.km-grid .km-axis-label{font-family:var(--serif);font-style:italic;font-size:18px;fill:var(--ink);pointer-events:none}.km-grid .km-bit-label{font-family:var(--mono);font-size:11px;letter-spacing:.12em;fill:var(--ink-soft);pointer-events:none}.km-grid .km-corner-line{stroke:var(--ink);stroke-width:1.2}.km-grid .km-group{fill:none;stroke-width:3;stroke-linejoin:round;pointer-events:none;filter:drop-shadow(0 1px 3px rgba(14,19,48,.15));animation:km-group-in .35s cubic-bezier(.4,0,.2,1)}@keyframes km-group-in{0%{opacity:0;stroke-width:6}to{opacity:1;stroke-width:3}}.km-side{display:flex;flex-direction:column;gap:14px;min-width:0}.km-card--tt .km-tt-wrap{max-height:220px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--rule) transparent}.km-card{border:1px solid var(--ink);border-radius:10px;background:var(--paper);padding:16px}.km-card h3{font-family:var(--mono);font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:12px;display:flex;justify-content:space-between;align-items:baseline}.km-card h3 .meta{color:var(--ink);font-weight:500;text-transform:none;letter-spacing:0;font-size:11px;font-variant-numeric:tabular-nums}.km-card .empty{font-family:var(--mono);font-size:11px;color:var(--ink-soft)}.km-expr{font-family:var(--serif);font-size:28px;line-height:1.3;color:var(--ink);word-break:break-word}.km-expr .term{display:inline-block;cursor:pointer;padding:1px 6px;border-radius:5px;transition:background-color .15s ease;font-style:italic;letter-spacing:-.01em}.km-expr .term:hover{background:#c8102e14}.km-expr .plus{color:var(--ink-soft);padding:0 4px;font-style:normal}.km-expr .dot{color:var(--ink-soft);padding:0 6px;font-style:normal}.km-expr .paren{color:var(--ink);font-style:normal;padding:0 1px}.km-expr .lit-bar{border-top:1.5px solid currentColor;display:inline-block;padding-top:1px}.km-tabs{display:grid;grid-template-columns:1fr 1fr;gap:0;border:1px solid var(--ink);border-radius:999px;overflow:hidden;margin-bottom:12px;background:var(--paper)}.km-tab{font-family:var(--mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;font-weight:600;color:var(--ink-soft);background:transparent;border:none;padding:8px 12px;cursor:pointer;transition:background-color .15s ease,color .15s ease}.km-tab+.km-tab{border-left:1px solid var(--ink)}.km-tab:hover{color:var(--ink);background:var(--paper-2)}.km-tab.is-on{background:var(--ink);color:var(--paper)}.km-tab:focus-visible{outline:2px solid var(--acid);outline-offset:-2px}.km-haz-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.km-haz-list li{display:flex;justify-content:space-between;align-items:baseline;padding:6px 10px;border:1px dashed var(--acid);border-radius:6px;background:color-mix(in srgb,var(--acid) 6%,transparent);font-family:var(--mono);font-size:10.5px;color:var(--ink)}.km-haz-list li.empty{border-style:solid;border-color:var(--rule);background:transparent;color:var(--ink-soft);justify-content:flex-start}.km-haz-pair{font-weight:600;letter-spacing:.04em;font-variant-numeric:tabular-nums}.km-haz-var{color:var(--ink-soft);letter-spacing:.14em;text-transform:uppercase;font-size:9.5px}.km-grid .km-hazard{stroke:var(--acid);stroke-width:2;stroke-dasharray:3 3;opacity:.85;pointer-events:none}.km-pi-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.km-pi-list li{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:baseline;padding:6px 8px;border:1px solid var(--rule);border-radius:6px;cursor:pointer;font-family:var(--mono);font-size:11px;color:var(--ink);transition:all .12s ease}.km-pi-list li:hover{background:var(--paper-2);border-color:var(--ink)}.km-pi-list li.is-essential{border-color:var(--ink);background:#c8102e0a}.km-pi-list li.is-essential:before{content:"EPI";font-size:8.5px;letter-spacing:.18em;color:var(--acid);font-weight:600}.km-pi-list li:not(.is-essential):before{content:"PI";font-size:8.5px;letter-spacing:.18em;color:var(--ink-soft);font-weight:600}.km-pi-list li .term{font-family:var(--serif);font-style:italic;font-size:16px}.km-pi-list li .cells{font-family:var(--mono);font-size:9.5px;color:var(--ink-soft);font-variant-numeric:tabular-nums}.km-tt-wrap{max-height:300px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--rule) transparent}.km-tt{width:100%;border-collapse:collapse;font-family:var(--mono);font-size:11px;font-variant-numeric:tabular-nums}.km-tt th,.km-tt td{padding:5px 8px;border-bottom:1px dashed var(--rule);text-align:center}.km-tt th{font-weight:500;color:var(--ink-soft);font-size:9.5px;letter-spacing:.16em;text-transform:uppercase;border-bottom:1px solid var(--ink)}.km-tt td.is-out{border-left:1px dashed var(--rule)}.km-tt td.is-out.is-1{color:#1f8a5b;font-weight:600;background:#1f8a5b14}.km-tt td.is-out.is-x{color:#c46c3a;font-style:italic}.km-tt td.is-out.is-0{color:var(--rule)}.km-tt tr.is-row-active{background:#c8102e0f}.km-foot{margin-top:24px;padding:12px 14px;border:1px solid var(--rule);border-radius:8px;background:var(--paper);font-family:var(--mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-soft);cursor:help;outline:none;transition:border-color .15s ease,background-color .15s ease}.km-foot:hover,.km-foot:focus-visible{border-color:var(--ink);background:var(--paper-2)}.km-foot-lab{display:inline-block;font-family:var(--mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-soft);transition:color .15s ease}.km-foot:hover .km-foot-lab,.km-foot:focus-visible .km-foot-lab{color:var(--ink)}.km-foot-body{display:grid;grid-template-rows:0fr;opacity:0;transition:grid-template-rows .25s ease,opacity .2s ease,margin-top .25s ease;margin-top:0}.km-foot-body>*{min-height:0}.km-foot-body>div{display:flex;flex-direction:column;gap:6px}.km-foot:hover .km-foot-body,.km-foot:focus-visible .km-foot-body{grid-template-rows:1fr;opacity:1;margin-top:10px}.km-foot em{font-style:italic;color:var(--ink);text-transform:none;letter-spacing:.02em;font-family:var(--serif)}.km-foot-body>*>div{text-transform:none;letter-spacing:.04em;font-family:var(--serif);font-style:italic;font-size:14px;color:var(--ink)}.km-foot code{font-family:var(--mono);background:var(--paper-2);padding:1px 5px;border-radius:3px;color:var(--ink);text-transform:none;letter-spacing:0}@media (max-width: 1100px){.km-bench{grid-template-columns:1fr 300px;gap:16px}}@media (max-width: 900px){.km-bench{grid-template-columns:1fr;gap:16px}.km-side{position:static;min-width:0;max-width:none}}@media (max-width: 720px){.km-page{padding:32px 16px}.km-chal{grid-template-columns:1fr;gap:10px;padding:12px 14px}.km-chal .actions{justify-self:stretch;flex-wrap:wrap}.km-chal .prompt{font-size:17px}}
