:root{--ink: #1a2230;--muted: #5a6472;--line: #e2e6ec;--accent: #3a6ea5;--bg: #ffffff;--bg-soft: #f6f8fa;--maxw: 860px;--radius: 10px;font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif}*{box-sizing:border-box}body{margin:0;color:var(--ink);background:var(--bg);line-height:1.55;-webkit-text-size-adjust:100%}.wrap{max-width:var(--maxw);margin:0 auto;padding:0 20px}header.site{border-bottom:1px solid var(--line);padding:14px 0}header.site .wrap{display:flex;align-items:baseline;justify-content:space-between;gap:16px}header.site a.brand{font-weight:700;color:var(--ink);text-decoration:none;font-size:18px}header.site nav a{color:var(--muted);text-decoration:none;margin-left:16px;font-size:14px}header.site nav a:hover{color:var(--accent)}h1{font-size:28px;line-height:1.2;margin:24px 0 8px}h2{font-size:20px;margin:32px 0 10px}p.lede{color:var(--muted);margin-top:0}.tool{display:grid;grid-template-columns:260px 1fr;gap:20px;margin:20px 0}@media (max-width: 680px){.tool{grid-template-columns:1fr}}.controls{background:var(--bg-soft);border:1px solid var(--line);border-radius:var(--radius);padding:16px}.controls label{display:block;font-size:13px;font-weight:600;margin:12px 0 4px}.controls label:first-child{margin-top:0}.controls select,.controls input[type=number]{width:100%;padding:7px 8px;border:1px solid var(--line);border-radius:6px;font:inherit;background:#fff}.controls .row{display:flex;align-items:center;gap:8px}.controls input[type=range]{width:100%}.controls .val{font-variant-numeric:tabular-nums;color:var(--muted);font-size:13px}.controls .check{display:flex;align-items:center;gap:8px;margin-top:12px}.controls .check input{width:auto}.controls .check.featured{margin-top:14px;padding:10px;border-radius:8px;background:#eef4fb;border:1px solid #cfe0f2}.controls small{display:block;margin-top:4px;font-size:12px}.controls .spacing{margin:12px 0 4px}.controls .spacing:first-child{margin-top:0}.controls .control-label{display:block;font-size:13px;font-weight:600;margin:0 0 6px}.unit-toggle{display:inline-flex;border:1px solid var(--line);border-radius:8px;overflow:hidden;margin-bottom:8px}.unit-toggle button{font:inherit;font-size:12px;font-weight:600;cursor:pointer;border:0;background:#fff;color:var(--muted);padding:6px 12px}.unit-toggle button+button{border-left:1px solid var(--line)}.unit-toggle button.active{background:var(--accent);color:#fff}.controls .spacing-readout{font-size:13px;font-weight:600;margin:0 0 4px}.actions{display:flex;gap:10px;margin-top:16px;flex-wrap:wrap}button.btn{font:inherit;font-weight:600;cursor:pointer;border:1px solid var(--accent);background:var(--accent);color:#fff;padding:9px 14px;border-radius:8px}button.btn.secondary{background:#fff;color:var(--accent)}button.btn:disabled{opacity:.55;cursor:default}.preview{border:1px solid var(--line);border-radius:var(--radius);background:#fff;aspect-ratio:215.9 / 279.4;overflow:hidden;display:flex;align-items:stretch;justify-content:stretch}.preview svg{width:100%;height:100%;display:block}.presets{margin:8px 0 0}.presets .chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px}.presets button{font:inherit;font-size:13px;cursor:pointer;border:1px solid var(--line);background:#fff;color:var(--ink);padding:6px 10px;border-radius:999px}.presets button:hover{border-color:var(--accent);color:var(--accent)}.explainer{margin:28px 0}.halsey-todo{background:#fff6e5;border:1px dashed #e0a93a;color:#7a5a12;padding:2px 6px;border-radius:4px;font-size:13px}.faq dt{font-weight:600;margin-top:14px}.faq dd{margin:4px 0 0;color:var(--muted)}.related{margin:28px 0}.related ul{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:10px}.related a{text-decoration:none;color:var(--accent);border:1px solid var(--line);border-radius:8px;padding:8px 12px}.related a:hover{border-color:var(--accent)}.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:16px;margin:20px 0}.card{border:1px solid var(--line);border-radius:var(--radius);padding:16px;text-decoration:none;color:var(--ink);display:block}.card:hover{border-color:var(--accent)}.card h2{margin:0 0 6px;font-size:17px;font-weight:600}.card p{margin:0;color:var(--muted);font-size:14px}.ad-slot{min-height:100px;margin:24px 0;display:flex;align-items:center;justify-content:center;border:1px dashed var(--line);border-radius:8px;color:var(--muted);font-size:12px;background:repeating-linear-gradient(45deg,#fafbfc,#fafbfc 10px,#f2f4f7 10px 20px)}.ad-slot.leaderboard{min-height:100px}.ad-slot.rect{min-height:280px}footer.site{border-top:1px solid var(--line);margin-top:40px;padding:20px 0;color:var(--muted);font-size:13px}footer.site a{color:var(--muted)}.cmp{position:fixed;inset:auto 0 0;z-index:50;background:#1a2230;color:#fff;padding:14px 16px;display:flex;gap:14px;align-items:center;justify-content:center;flex-wrap:wrap;font-size:14px}.cmp button{font:inherit;font-weight:600;cursor:pointer;border-radius:7px;padding:8px 14px;border:0}.cmp .accept{background:#2e6b47;color:#fff}.cmp .reject{background:transparent;color:#cfd6df;border:1px solid #47526a}.cmp[hidden]{display:none}.tool textarea{width:100%;font:inherit;font-size:13px;padding:8px;border:1px solid var(--line);border-radius:6px;resize:vertical;font-variant-numeric:tabular-nums}.tool input[type=text]{width:100%;padding:7px 8px;border:1px solid var(--line);border-radius:6px;font:inherit}.plot-area{display:flex;flex-direction:column;gap:14px}.summary{overflow-x:auto}.summary table{border-collapse:collapse;font-size:13px;width:100%}.summary th,.summary td{border:1px solid var(--line);padding:5px 8px;text-align:right;font-variant-numeric:tabular-nums}.summary th:first-child,.summary td:first-child{text-align:left}@media print{@page{margin:0}header.site,footer.site,.controls,.actions,.presets,.explainer,.related,.ad-slot,.cmp,nav,.lede,h1,h2{display:none!important}body{margin:0}.wrap{max-width:none;margin:0;padding:0}.tool{display:block;margin:0}.preview{border:0;border-radius:0;aspect-ratio:auto;width:auto;height:auto;overflow:visible}.preview svg{width:auto;height:auto}}
