:root{color-scheme:dark;--bg:#101713;--panel:#18231c;--text:#eff5ec;--muted:#b9c8bc;--line:#3a4b3e;--accent:#d7fc70}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:25px}body{margin:0;background:var(--bg);color:var(--text);font:16px/1.65 -apple-system,BlinkMacSystemFont,"Segoe UI","Hiragino Kaku Gothic ProN",sans-serif}a{color:inherit;text-underline-offset:5px}header{padding:22px 4vw;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;gap:24px;font-size:14px}.brand{text-decoration:none;letter-spacing:.08em;font-weight:650}.brand span{color:var(--muted);font-weight:400;letter-spacing:0;margin-left:12px}main{max-width:1160px;margin:auto;padding:0 30px}h1,h2,h3,p{margin-top:0}h1{font:500 clamp(3rem,7vw,5.6rem)/1.08 Georgia,"Yu Mincho",serif;letter-spacing:-.04em;margin:16px 0 20px}h2{font:500 clamp(1.75rem,3.5vw,2.8rem)/1.2 Georgia,"Yu Mincho",serif;margin-bottom:18px}h3{font-size:1.2rem;font-weight:550;line-height:1.4}p{color:var(--muted);max-width:83ch}strong{color:var(--text)}.intro{padding:48px 0 25px}.intro p{margin-bottom:12px}.eyebrow{font-size:13px;letter-spacing:.13em;color:var(--accent);font-weight:600}.lead{font-size:clamp(1.2rem,2.5vw,1.55rem);color:var(--text)}.pixel-mark{color:var(--accent);font-family:monospace;margin-left:24px}nav{display:flex;flex-wrap:wrap;gap:10px 27px;border-top:1px solid var(--line);padding:20px 0 30px;font-size:14px}nav a{text-decoration:none}nav a:hover{color:var(--accent)}section{padding:55px 0;border-bottom:1px solid var(--line)}section.lab{padding:30px;background:var(--panel);border:1px solid var(--line);margin:12px 0 10px}.section-head{display:flex;justify-content:space-between;gap:20px}.stamp{font:16px monospace;color:var(--accent);white-space:nowrap}.controls{display:flex;flex-wrap:wrap;align-items:end;gap:12px;margin:18px 0}label{display:flex;flex-direction:column;gap:5px;font-size:14px;color:var(--muted)}button,input,select{font:inherit;color:var(--text);accent-color:var(--accent)}button,select,input[type=number]{min-height:44px;background:#223027;border:1px solid #56654f;padding:9px 13px;border-radius:4px}input[type=number]{width:88px}button{cursor:pointer}button:hover{border-color:var(--accent);background:#34462b}button:focus-visible,input:focus-visible,select:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid var(--accent);outline-offset:4px}button.primary,button[aria-pressed=true]{background:var(--accent);color:#182111;border-color:var(--accent)}.presets{display:flex;gap:5px}.presets button{padding:9px 11px}.rule-table{display:grid;grid-template-columns:repeat(8,1fr);gap:8px}.rule-tile{display:flex;flex-direction:column;align-items:center;gap:8px;padding:10px 0}.mini{display:flex;gap:3px}.mini i{width:12px;height:12px;border:1px solid #abbba0;background:transparent}.mini i.on{background:var(--accent)}.rule-tile[aria-pressed=true] .mini i.on{background:#223019}.rule-tile[aria-pressed=true] .mini i{border-color:#53673f}.out{font:500 20px monospace}.small,figcaption{font-size:14px;color:var(--muted);line-height:1.6}.mono{font-family:ui-monospace,monospace;font-size:15px;color:var(--accent);overflow-wrap:anywhere}.plot-label{font-size:13px;margin-bottom:8px;color:var(--muted)}figure{margin:24px 0}canvas{display:block;width:100%;height:auto;image-rendering:pixelated;background:#0b110d;border:1px solid var(--line)}#eca{max-height:560px;object-fit:fill}figcaption{margin-top:12px}aside{border-left:3px solid var(--accent);padding:5px 0 5px 20px;margin-top:25px}aside p{margin:6px 0 0}.three{display:grid;grid-template-columns:repeat(3,1fr);gap:32px;margin-top:32px}.number{font:14px monospace;color:var(--accent)}.three h3{margin-top:10px}.tool-grid,.two{display:grid;grid-template-columns:1fr 1fr;gap:28px}.tool-grid article{padding:24px;border:1px solid var(--line);min-width:0}.result{display:block;font-family:ui-monospace,monospace;color:var(--accent);font-size:16px;min-height:3.2em;margin-top:16px;overflow-wrap:anywhere}.bits{display:flex;gap:6px;flex-wrap:wrap}.bits button{width:44px;padding:7px}.formula{font-family:monospace;overflow-wrap:anywhere}.proof{border-top:1px solid var(--line);margin-top:28px;padding-top:28px}.proof li{color:var(--muted);margin-bottom:12px}svg{width:100%;max-height:160px}.inspector{display:grid;grid-template-columns:1fr auto;gap:30px;align-items:center;border-top:1px solid var(--line);padding-top:25px;margin-top:28px}.neighbours{display:grid;grid-template-columns:repeat(3,48px);gap:5px}.neighbours button{width:48px;height:48px;padding:0}.neighbours button:nth-child(5){outline:2px solid #8ba5ff;outline-offset:1px}details{border-top:1px solid var(--line);padding:18px 0}summary{cursor:pointer;color:var(--text)}details p{margin:14px 0 0}footer{padding:45px 0 65px}footer h2{font-size:1.55rem}footer li{margin:10px 0;color:var(--muted)}.skip{position:absolute;left:20px;top:-100px;background:var(--accent);color:#101713;padding:10px;z-index:5}.skip:focus{top:10px}@media(max-width:700px){main{padding:0 16px}header{padding:16px}.brand span{display:none}.intro{padding:32px 0 20px}section{padding:36px 0}section.lab{padding:18px}.three,.tool-grid,.two{grid-template-columns:1fr;gap:18px}.rule-table{grid-template-columns:repeat(4,1fr)}.stamp{display:none}.inspector{grid-template-columns:1fr}.neighbours{margin:auto}.tool-grid article{padding:18px}h1{letter-spacing:-.03em}.pixel-mark{margin-left:12px}.controls{gap:10px}.rule-tile{min-height:80px}nav{gap:9px 17px}#life-board{min-height:180px}.presets{flex-wrap:wrap}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
/* Match the shared light/dark theme without leaving dark panels under dark text. */
html.ig-editorial{--panel:var(--ig-panel)}
html.ig-editorial main :is(button,select,input[type=number]){background:var(--ig-panel);color:var(--ig-ink);border-color:var(--ig-rule)}
html.ig-editorial main button:hover{border-color:var(--ig-accent)}
html.ig-editorial main :is(button.primary,button[aria-pressed=true]){background:var(--ig-accent);color:var(--ig-paper);border-color:var(--ig-accent)}
html.ig-editorial .rule-tile[aria-pressed=true] .small{color:inherit}
html.ig-editorial .mini i{border-color:currentColor}
html.ig-editorial .mini i.on,html.ig-editorial .rule-tile[aria-pressed=true] .mini i.on{background:currentColor}
html.ig-editorial .rule-tile[aria-pressed=true] .mini i{border-color:currentColor}
