:root{--bg:#eef0f5;--panel:#ffffff;--fg:#1b1d2a;--muted:#5d6278;--line:#d5d8e3;--accent:#e0336e;--stage:#dfe2ec;--print:#2f3448;--display:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;--body:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;--mono:ui-monospace,"SFMono-Regular",Consolas,monospace}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#12131c;--panel:#1b1d2a;--fg:#eceef6;--muted:#9aa0b8;--line:#2c2f42;--accent:#ff5c93;--stage:#181a26;--print:#c9cde0;color-scheme:dark}}:root[data-theme=dark]{--bg:#12131c;--panel:#1b1d2a;--fg:#eceef6;--muted:#9aa0b8;--line:#2c2f42;--accent:#ff5c93;--stage:#181a26;--print:#c9cde0;color-scheme:dark}body{background:var(--bg);color:var(--fg);font-family:var(--body);font-size:15px;line-height:1.5}.wrap{max-width:980px;margin:0 auto;padding-block:20px 32px;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));display:grid;gap:16px}h1{font-family:var(--display);font-weight:800;font-size:clamp(22px,4.5vw,34px);letter-spacing:.01em;margin:0;text-wrap:balance}h1 span{color:var(--accent)}.sub{color:var(--muted);margin:2px 0 0;max-width:62ch}#stage{position:relative;width:100%;aspect-ratio:4/3;max-height:70vh;background:var(--stage);border-radius:14px;overflow:hidden;touch-action:none}#stage canvas{display:block;width:100%;height:100%}.hint{position:absolute;left:12px;bottom:10px;font:12px var(--mono);color:var(--muted);pointer-events:none}.controls{display:flex;flex-wrap:wrap;gap:10px 20px;align-items:center}.ctl{display:flex;align-items:center;gap:10px}.ctl label{font:500 12px var(--mono);text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}input[type=range]{accent-color:var(--accent);width:140px}.val{font:500 15px var(--mono);font-variant-numeric:tabular-nums;min-width:4.5ch}button{font:500 14px var(--body);color:var(--fg);background:var(--panel);border:1px solid var(--line);border-radius:999px;padding:7px 14px;cursor:pointer}button.primary{background:var(--fg);color:var(--bg);border-color:var(--fg)}button:disabled{opacity:.5;cursor:default}.msg{font-size:13px;color:var(--muted)}button[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:#fff}button:focus-visible,input:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.fests{display:grid;gap:8px}.frow{display:grid;grid-template-columns:minmax(0,1fr) 76px auto;gap:8px;align-items:center;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:8px 10px}.frow input{min-width:0;width:100%;font:500 15px var(--body);color:var(--fg);background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:6px 9px}.frow input.num{font:500 15px var(--mono);font-variant-numeric:tabular-nums;text-align:right}.frow small{grid-column:1/-1;font:12px var(--mono);color:var(--muted);margin-top:-2px}.frow.top{border-color:var(--fg)}.pill{display:inline-block;font:600 11px var(--mono);letter-spacing:.04em;text-transform:uppercase;background:var(--fg);color:var(--bg);border-radius:999px;padding:1px 8px;margin-right:8px}.ibtns{display:flex;gap:4px}.ibtns button{padding:5px 9px;font:500 13px var(--mono)}.counts{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px}.cnt{display:flex;align-items:center;justify-content:space-between;gap:8px;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:8px 10px;min-width:0}.cnt label{font:600 13px var(--display);letter-spacing:.01em;min-width:0}.cnt input{width:64px;font:500 16px var(--mono);font-variant-numeric:tabular-nums;text-align:right;color:var(--fg);background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:5px 8px}.cnt small{display:block;font:12px var(--mono);color:var(--muted)}.clampbox{display:grid;grid-template-columns:minmax(0,220px) minmax(0,1fr);gap:14px;align-items:center;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:12px}@media (max-width:560px){.clampbox{grid-template-columns:1fr}}#clampStage{position:relative;width:100%;aspect-ratio:1/1;background:var(--stage);border-radius:10px;overflow:hidden;touch-action:none}#clampStage canvas{display:block;width:100%;height:100%}.clampbox h2{font:700 15px var(--display);margin:0 0 4px}.clampbox p{margin:0 0 10px;color:var(--muted);font-size:13.5px;max-width:52ch}.clampctl{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center}.clampctl input{width:76px;font:500 16px var(--mono);font-variant-numeric:tabular-nums;text-align:right;color:var(--fg);background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:5px 8px}.clampctl label{font:500 12px var(--mono);text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.clampctl small{font:12px var(--mono);color:var(--muted)}.plan h2{font:700 15px var(--display);margin:0 0 8px}.planwrap{overflow-x:auto;border:1px solid var(--line);border-radius:12px;background:var(--panel)}#plan{width:100%;border-collapse:collapse;font-size:14px}#plan td,#plan th{padding:8px 12px;border-bottom:1px solid var(--line);text-align:left;white-space:nowrap}#plan th{font:500 12px var(--mono);text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}#plan .n{text-align:right;font-variant-numeric:tabular-nums;font-family:var(--mono)}#plan tfoot td{font-weight:600;border-bottom:0}.specs{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1px;background:var(--line);border:1px solid var(--line);border-radius:12px;overflow:hidden}.spec{background:var(--panel);padding:12px 14px;display:grid;gap:2px;min-width:0}.spec b{font:600 13px var(--display);letter-spacing:.02em}.spec span{color:var(--muted);font-size:13.5px}.spec code{font:13px var(--mono);color:var(--fg)}body.shop header h1{display:none}body.shop .specs .spec:not(:first-child){display:none}body.shop .specs{grid-template-columns:1fr}body.show .wrap>:not(#stage){display:none!important}body.show .wrap{padding:0;max-width:none}body.show #stage{position:fixed;inset:0;aspect-ratio:auto;max-height:none;border-radius:0;background:0 0}body.show .hint{display:none}body.show{background:0 0}body.shop,body.show{--bg:transparent;--panel:#1f2124;--fg:#e8eaed;--muted:#a9aeb5;--line:#3a3d42;--accent:#7fb174;--stage:#1f2124;--display:Inter,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;--body:Inter,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;color-scheme:dark;background:0 0}body.shop #stage{background:radial-gradient(circle at 50% 40%,#3a3d42 0,#1f2124 75%)}body.shop .frow input{background:#2a2d30}body.shop .pill{background:#4e7d47;color:#fff}body.shop .frow.top{border-color:#4e7d47}body.shop button{background:#2a2d30;border-color:#3a3d42;color:#e8eaed}body.shop button[aria-pressed=true]{background:#4e7d47;border-color:#4e7d47;color:#fff}body.shop .spec b{color:#e8eaed}body.shop #htot b{color:#7fb174}body.shop #plan td:nth-child(3),body.shop #plan td:nth-child(4),body.shop #plan th:nth-child(3),body.shop #plan th:nth-child(4){display:none}body{margin:0}.wrap{padding-block:8px 16px}.ringsbox{display:grid;grid-template-columns:minmax(0,1fr) 90px;gap:12px;align-items:center;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:10px 12px}.ringsbox label{font:600 14px var(--body);display:block;margin-bottom:2px}.ringsbox small{display:block;font-size:12.5px;color:var(--muted);line-height:1.45}.ringsbox input{width:100%;font:500 16px var(--mono);text-align:right;color:var(--fg);background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:6px 9px;box-sizing:border-box}body.shop .ringsbox input{background:#2a2d30}body.shop .plan h2,body.shop .ringsbox label{color:#e8eaed}