@font-face{font-family:"TT2020";src:url("../shared/fonts/TT2020Base-Regular.woff2") format("woff2");font-weight:normal;font-style:normal;font-display:swap}:root{--paper:#FFFCF0;--base-100:#E6E4D9;--base-150:#DAD8CE;--base-200:#CECDC3;--ink:#100F0F;--ink-rgb:16 15 15;--muted:#6F6E69;--blue:#205EA6;--green:#66800B;--red:#AF3029;--roll-match:#163B66;--roll-div:#DFB431;--ghost-0:#92BFDB;--ghost-1:#ABCFE2;--ghost-2:#C6DDE8;--ghost-3:#E1ECEB;--text-xs:12px;--text-sm:14px;--text-base:16px;--text-lg:20px;--text-xl:28px;--text-2xl:40px;--leading:1.6}*,*::before,*::after{box-sizing:border-box}*{margin:0}html{-webkit-text-size-adjust:100%}body{-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}img,svg,canvas,video{display:block;max-width:100%}input,button,textarea,select{font:inherit;color:inherit}h1,h2,h3,h4,p,li{overflow-wrap:break-word}body{margin:0 auto;padding:20px;max-width:1100px;background:var(--paper);color:var(--ink);font-family:"TT2020","Courier New",Courier,monospace;font-size:var(--text-base);line-height:1.5;font-weight:600}h1{margin:0 0 0.5rem;font-size:var(--text-2xl);font-weight:normal;font-family:"Manufacturing Consent",system-ui,sans-serif;filter:url("#ink-texture-title")}header{display:grid;grid-template-columns:1fr auto;row-gap:0rem}header h1{grid-column:1 / -1;grid-row:2}header a{color:var(--ink)}.row{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:8px}.row label{display:flex;align-items:center;gap:8px;color:var(--muted)}.btn-group{display:flex;align-items:center;gap:14px}.filter-bank{position:absolute;width:0;height:0}input[type="range"]{-webkit-appearance:none;appearance:none;width:150px;height:18px;background:transparent;cursor:pointer;--fill:0%}input[type="range"]::-webkit-slider-runnable-track{-webkit-appearance:none;appearance:none;height:3px;border-radius:2px;background-color:var(--base-150);background-image:linear-gradient(var(--ink),var(--ink));background-repeat:no-repeat;background-size:var(--fill) 100%}input[type="range"]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:16px;height:16px;margin-top:-6.5px;background:var(--ink);border:0;border-radius:47% 53% 50% 50% / 55% 45% 55% 45%;box-shadow:0px 0px 1px var(--ink)}input[type="range"]::-moz-range-track{height:3px;border-radius:2px;background:var(--base-150)}input[type="range"]::-moz-range-progress{height:3px;border-radius:2px;background:var(--ink)}input[type="range"]::-moz-range-thumb{width:16px;height:16px;background:var(--ink);border:0;border-radius:47% 53% 50% 50% / 55% 45% 55% 45%}input[type="range"]:focus-visible{outline:none}input[type="range"]:focus-visible::-webkit-slider-thumb{outline:2px dashed var(--red);outline-offset:3px}input[type="range"]:focus-visible::-moz-range-thumb{outline:2px dashed var(--red);outline-offset:3px}.controls{margin-top:1.25rem}.ink-btn{position:relative;display:inline-grid;place-items:center;width:52px;aspect-ratio:1;padding:15px;border:0;border-radius:49% 46% 51% 47%;color:var(--ink);background:transparent;cursor:pointer;transform:rotate(var(--turn,-0.6deg));transition:background-color 100ms ease}#play{--turn:-0.7deg}#stop{--turn:0.8deg}.ink-btn::before{content:"";position:absolute;inset:0;pointer-events:none;border:1.8px solid var(--ink);border-radius:inherit;filter:url("#ink-texture")}.ink-btn.primary::before{border-width:2.4px}.ink-btn .i-pause{display:none}.ink-btn.is-playing .i-play{display:none}.ink-btn.is-playing .i-pause{display:block}.ink-btn::after{content:"";position:absolute;inset:3px;pointer-events:none;border:1px solid rgb(var(--ink-rgb) / 23%);border-radius:inherit;filter:url("#ink-texture")}.ink-btn svg{width:100%;overflow:visible;fill:currentColor;filter:url("#ink-texture")}.ink-btn:hover:not(:disabled){background:rgb(var(--ink-rgb) / 6%)}.ink-btn:active:not(:disabled){background:var(--base-100)}.ink-btn:disabled{opacity:0.4;cursor:default}.ink-text{padding:6px 2px 3px;border:0;border-bottom:1px solid var(--ink);background:transparent;color:var(--ink);cursor:pointer;font-family:inherit;font-style:italic;font-size:14px}.ink-text:hover:not(:disabled){background:rgb(var(--ink-rgb) / 6%)}.ink-text:disabled{opacity:0.4;cursor:default}.ink-btn:focus-visible,.ink-text:focus-visible{outline:2px dashed var(--red);outline-offset:4px}.info{color:var(--muted);font-size:var(--text-sm);min-height:1.4em}.loading{position:fixed;left:0;right:0;bottom:0;z-index:10;padding:14px 20px;text-align:center;background:var(--ink);color:var(--paper);font-size:var(--text-sm);letter-spacing:0.04em;box-shadow:0 -2px 12px rgb(var(--ink-rgb) / 14%);transform:translateY(100%);transition:transform 320ms ease}.loading.show{transform:translateY(0)}.roll-wrap{position:relative;margin-top:0rem}.roll-wrap::after{content:"";position:absolute;inset:0;border-radius:10px;pointer-events:none;box-shadow:inset 0 2px 6px rgb(var(--ink-rgb) / 14%),inset 0 8px 24px rgb(var(--ink-rgb) / 7%)}#roll{width:100%;height:420px;background:var(--paper);border:1px solid var(--base-150);border-radius:10px;display:block}.legend{display:flex;gap:18px;margin-top:0.75rem;margin-bottom:1.5rem;color:var(--muted);font-size:var(--text-sm);flex-wrap:wrap;line-height:1rem}.legend .sw{display:inline-block;width:14px;height:9px;border-radius:2px;margin-right:5px}.sw.truth{background:var(--base-200)}.sw.match{background:var(--roll-match)}.sw.div{background:var(--roll-div)}.sw.ghost{background:var(--ghost-0)}footer{margin-top:18px;padding-top:12px;border-top:1px solid var(--base-150);color:var(--muted);font-size:var(--text-xs);line-height:1.6}footer a{color:var(--blue)}hr{border-top:1px solid var(--base-150);margin-bottom:1rem}.prose{max-width:100%}.prose>* + *{margin-top:1em}.prose p,.prose li{line-height:var(--leading)}.prose h2{font-size:var(--text-xl);font-weight:600;line-height:1.2;margin-top:1.6em}.prose h3{font-size:var(--text-lg);font-weight:600;line-height:1.25;margin-top:1.4em}.prose a{color:var(--blue);text-underline-offset:2px}.prose ul,.prose ol{padding-left:1.4em}.prose li + li{margin-top:0.3em}.prose strong,.prose b{font-weight:600}.prose blockquote{padding-left:1em;border-left:2px solid var(--base-150);color:var(--muted);font-style:italic}.prose code{font-family:ui-monospace,"Cascadia Code",Consolas,monospace;font-size:0.9em;background:rgb(var(--ink-rgb) / 5%);padding:0.1em 0.35em;border-radius:4px}