:root{--bg: #fafafa;--fg: #1a1a1a;--muted: #666;--border: #ddd;--accent: #2563eb;--accent-fg: #fff;--code-bg: #f3f4f6;font-family:system-ui,-apple-system,Hiragino Kaku Gothic ProN,Noto Sans JP,Meiryo,sans-serif;line-height:1.7;color:var(--fg);background:var(--bg)}*{box-sizing:border-box}body{margin:0;padding:1.5rem;max-width:820px;margin-inline:auto}header h1{margin:0 0 .25rem;font-size:1.6rem}.lead{margin:0 0 1.5rem;color:var(--muted);font-size:.95rem}label{display:block;font-weight:600;margin-bottom:.4rem}textarea{width:100%;min-height:8rem;padding:.75rem;font-size:1rem;line-height:1.7;border:1px solid var(--border);border-radius:8px;resize:vertical;font-family:inherit}.howto{list-style:none;display:flex;flex-wrap:wrap;gap:.5rem 1.25rem;margin:0 0 1.5rem;padding:.75rem 1rem;background:#eef2ff;border:1px solid #dbe3ff;border-radius:8px;font-size:.9rem}.howto li{display:flex;align-items:center;gap:.4rem}.step-no{display:inline-grid;place-items:center;width:1.4rem;height:1.4rem;border-radius:50%;background:var(--accent);color:var(--accent-fg);font-size:.8rem;font-weight:700}.meta-row{display:flex;justify-content:flex-end;margin-top:.3rem}.char-count{font-size:.8rem;color:var(--muted)}.char-count.over{color:#c0262d;font-weight:600}.controls{display:flex;align-items:center;flex-wrap:wrap;gap:.75rem 1rem;margin:1.25rem 0 0}.options{display:flex;align-items:center;flex-wrap:wrap;gap:.6rem 1.25rem;margin:.85rem 0 0}.opt{font-size:.9rem;font-weight:400;color:var(--fg);display:inline-flex;align-items:center;gap:.4rem;margin:0}.opt select{font:inherit;font-size:.9rem;padding:.3rem .4rem;border:1px solid var(--border);border-radius:6px;background:#fff;color:var(--fg)}.trial-note{margin:.5rem 0 0;font-size:.78rem;color:var(--muted)}.hint{margin:.6rem 0 0;font-size:.82rem;color:var(--muted)}.caveat{margin:.4rem 0 0;font-size:.8rem;color:var(--muted)}.modes{border:1px solid var(--border);border-radius:8px;padding:.75rem 1rem .6rem;margin:.85rem 0 0}.modes legend{font-weight:600;font-size:.85rem;padding:0 .4rem;color:var(--muted)}.mode{display:grid;grid-template-columns:auto 1fr;grid-template-areas:"radio title" "radio desc";column-gap:.55rem;align-items:center;margin:0 0 .55rem;font-weight:400;cursor:pointer}.mode:last-of-type{margin-bottom:0}.mode input{grid-area:radio;align-self:center}.mode-title{grid-area:title;font-weight:600}.mode-desc{grid-area:desc;font-size:.82rem;color:var(--muted)}.sparkle{color:var(--accent)}button{font:inherit;cursor:pointer;border:1px solid var(--border);border-radius:6px;background:#fff;padding:.45rem .9rem}button#run{background:var(--accent);color:var(--accent-fg);border-color:var(--accent);font-weight:600}button:disabled{opacity:.5;cursor:not-allowed}.status{color:var(--muted);font-size:.9rem}.status.busy:before{content:"⏳ "}.output{margin-top:1.75rem}.output-head{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem;flex-wrap:wrap}.output h2{font-size:1.05rem;margin:0 0 .5rem}.actions{display:flex;gap:.5rem;flex-wrap:wrap}.copy{font-size:.85rem;padding:.25rem .6rem}.preview{border:1px solid var(--border);border-radius:8px;padding:1rem;min-height:3rem;background:#fff;font-size:1.4rem;line-height:2.2;white-space:pre-wrap;word-break:break-word}.preview ruby rt{font-size:.5em;color:var(--muted)}.code{border:1px solid var(--border);border-radius:8px;padding:1rem;background:var(--code-bg);white-space:pre-wrap;word-break:break-word;font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:.95rem;min-height:2rem;margin:0}.about{margin-top:2.5rem}.about details{border:1px solid var(--border);border-radius:8px;background:#fff}.about summary{cursor:pointer;padding:.85rem 1rem;font-weight:600;font-size:.95rem}.about summary:hover{color:var(--accent)}.about-body{padding:0 1rem 1rem;border-top:1px solid var(--border)}.about-body h3{font-size:.95rem;margin:1rem 0 .3rem}.about-body p{margin:0;font-size:.9rem;color:#333}footer{margin-top:2.5rem;color:var(--muted);font-size:.8rem;border-top:1px solid var(--border);padding-top:1rem}@media(max-width:480px){body{padding:1rem}header h1{font-size:1.4rem}.howto{flex-direction:column;gap:.4rem}.controls{gap:.6rem}button#run{width:100%;padding:.7rem 1rem}.status{width:100%}.options{flex-direction:column;align-items:flex-start;gap:.6rem}.opt,.opt select{width:100%}.opt select{flex:1}.output-head .actions{width:100%}.actions .copy{flex:1}.preview{font-size:1.25rem;line-height:2}}
