:root{--board:#cfc9bc;--panel:#dcd7cb;--paper:#e9e5db;--ink:#1a1917;--rule:#a9a294;--accent:#1e4fa3;--mono:ui-monospace, "SF Mono", Menlo, Consolas, monospace}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--board);color:var(--ink);font-family:var(--mono);-webkit-font-smoothing:antialiased;font-size:13px;line-height:1.45}.wrap{max-width:1180px;margin:0 auto;padding:20px 16px 64px}header{border-bottom:1px solid var(--rule);margin-bottom:20px;padding-bottom:12px}h1{letter-spacing:-.03em;text-transform:uppercase;margin:0 0 4px;font-family:system-ui,-apple-system,sans-serif;font-size:clamp(24px,5vw,40px);font-weight:800}.sub{color:#4a463f;max-width:60ch}.layout{grid-template-columns:260px 1fr;align-items:start;gap:20px;display:grid}@media (width<=760px){.layout{grid-template-columns:1fr}}.panel{background:var(--panel);border:1px solid var(--rule);padding:14px}.panel+.panel{margin-top:14px}.legend{letter-spacing:.14em;text-transform:uppercase;color:#6a6459;border-bottom:1px solid var(--rule);margin-bottom:12px;padding-bottom:6px;font-size:10px}.row{margin-bottom:12px}.row:last-child{margin-bottom:0}label{letter-spacing:.06em;text-transform:uppercase;color:#4a463f;justify-content:space-between;gap:8px;margin-bottom:5px;font-size:11px;display:flex}label b{color:var(--ink);font-weight:400}input[type=range]{width:100%;accent-color:var(--accent);margin:0}select,input[type=number]{width:100%;font:inherit;border:1px solid var(--rule);background:var(--paper);color:var(--ink);border-radius:0;padding:6px 8px}input:focus-visible,button:focus-visible,canvas:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.btns{flex-wrap:wrap;gap:6px;display:flex}button{font:inherit;border:1px solid var(--ink);color:var(--ink);cursor:pointer;letter-spacing:.04em;background:0 0;border-radius:0;padding:7px 11px}button:hover,button.primary{background:var(--ink);color:var(--paper)}button.primary:hover{background:var(--accent);border-color:var(--accent)}.check{cursor:pointer;text-transform:none;letter-spacing:0;align-items:center;gap:8px;font-size:12px;display:flex}.check input{accent-color:var(--accent);width:15px;height:15px}canvas{background:var(--paper);border:1px solid var(--rule);width:100%;height:auto;display:block}#focusCanvas{max-width:300px;margin:0 auto}#grid{cursor:crosshair}.caption{color:#6a6459;margin-top:8px;font-size:11px}.caption b{color:var(--ink);font-weight:400}.stack{flex-direction:column;gap:14px;display:flex}.stack .legend{margin-bottom:8px}.chips{flex-wrap:wrap;gap:6px;display:flex}.chip{border:1px solid var(--ink);background:var(--paper);display:inline-flex}.chip button{background:0 0;border:0;padding:4px 8px}.chip button:first-child{border-right:1px solid var(--rule)}.chip button:hover{background:var(--ink);color:var(--paper)}.sub a{color:var(--accent)}body.presse{height:100vh;overflow:hidden}.presse #grid{cursor:pointer;border:0;width:100vw;height:100vh;position:fixed;inset:0}.presse .marke{z-index:3;letter-spacing:.14em;text-transform:uppercase;color:#6a6459;mix-blend-mode:multiply;margin:0;font-size:10px;position:fixed;top:8px;left:10px}.presse .marke a{color:inherit;opacity:0;text-decoration:none;transition:opacity .2s}.presse .marke:hover a{opacity:1;text-decoration:underline}.presse .marke .dank{text-transform:none;letter-spacing:.06em}.presse .marke a.dank-link{opacity:1;text-decoration:underline}.steuer{z-index:3;background:var(--rule);border:1px solid var(--rule);gap:1px;padding:1px;transition:opacity .45s;display:flex;position:fixed;bottom:18px;left:50%;transform:translate(-50%)}.steuer button{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);white-space:nowrap;background:#e9e5dbeb;border:0;padding:8px 14px}.steuer button:hover:not(:disabled){background:var(--ink);color:var(--paper)}.steuer button:disabled{opacity:.35;cursor:default}.steuer button.primary{background:var(--ink);color:var(--paper)}.steuer button.primary:hover{background:var(--accent)}body.ruhe .steuer{opacity:.22}.steuer:hover,.steuer:focus-within{opacity:1!important}.gross{z-index:10;position:fixed;inset:0}.gross-dim{opacity:0;background:#1a19178c;position:absolute;inset:0}.gross #grossCanvas{border:1px solid var(--rule);cursor:zoom-out;position:fixed;box-shadow:0 24px 60px #1a191759}@media (prefers-reduced-motion:reduce){.steuer{transition:none}body.ruhe .steuer{opacity:1}}
