:root{--fg:#111827;--mut:#6b7280;--bg:#fff;--acc:#dc2626;--acc2:#111827;--line:#e5e7eb;--soft:#f9fafb}
*{box-sizing:border-box}
body{margin:0;font:1rem/1.5 system-ui,-apple-system,"Segoe UI",Roboto,"Hiragino Sans","Noto Sans JP",sans-serif;color:var(--fg);background:var(--bg)}
a{color:inherit}
.top{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center;padding:.6rem 1rem;border-bottom:1px solid var(--line)}
.brand{display:flex;gap:.4rem;align-items:center;font-weight:700;text-decoration:none}
.langs{display:flex;gap:.5rem;flex-wrap:wrap;margin-left:auto;font-size:.9rem}
.langs a{text-decoration:none;color:var(--mut)} .langs a[aria-current]{color:var(--fg);font-weight:700}
.badge,.pill{background:var(--acc2);color:#fff;border-radius:999px;padding:.05rem .55rem;font-size:.8125rem;font-weight:700}
.hero{max-width:880px;margin:0 auto;padding:1.2rem 1rem .4rem}
h1{font-size:1.75rem;line-height:1.2;margin:.2rem 0 .6rem}
.sub{font-size:1.05rem;margin:.2rem 0 .8rem}
.better{margin:.4rem 0;padding-left:1.2rem} .better li{margin:.25rem 0} .better .why-pro{font-weight:600}
.lede{background:var(--soft);border-left:4px solid var(--acc);padding:.6rem .8rem;margin:.8rem 0}
.cta{display:flex;flex-wrap:wrap;gap:.6rem;margin:.8rem 0}
button,.primary,.ghost{font:inherit;border-radius:10px;padding:.6rem 1rem;cursor:pointer;text-decoration:none;display:inline-block;border:1px solid var(--fg);background:#fff;color:var(--fg)}
.primary{background:var(--acc);border-color:var(--acc);color:#fff;font-weight:700}
.rec{background:#fff;color:var(--acc);border-color:var(--acc);font-weight:700}
.small{font-size:.88rem} .muted{color:var(--mut)} .icon{border:0;background:none;font-size:1.4rem;padding:.2rem .5rem}
button.small,.ghost.small{padding:.3rem .7rem}
main{max-width:880px;margin:0 auto;padding:0 1rem}
.card{border:1px solid var(--line);border-radius:14px;padding:1rem;margin:1rem 0;background:#fff}
.row{display:flex;gap:.6rem;align-items:flex-end;flex-wrap:wrap} .grow{flex:1;display:flex;flex-direction:column;gap:.2rem}
input,select,textarea{font:inherit;border:1px solid #d1d5db;border-radius:8px;padding:.45rem .6rem;font-size:max(1rem,1em)}
textarea{width:100%;margin-top:.6rem;font-size:1.05rem;line-height:1.5}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.8rem}
.grid label{display:flex;flex-direction:column;gap:.2rem} .grid label.chk{flex-direction:row;align-items:center;gap:.5rem}
fieldset{border:1px solid var(--line);border-radius:8px} fieldset label{display:flex!important;flex-direction:row!important;gap:.4rem}
.lib ul{list-style:none;padding:0;margin:.3rem 0} .lib li{display:flex;gap:.5rem;align-items:center;padding:.3rem 0;border-bottom:1px solid var(--line)} .lib li span{flex:1}
.lib li.cur span{font-weight:700}
.pro{max-width:880px;margin:1.5rem auto;padding:1rem;border-top:3px solid var(--acc2)}
.procols{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1rem}
table{border-collapse:collapse;width:100%} th,td{text-align:left;padding:.3rem .4rem;border-bottom:1px solid var(--line);font-size:.92rem}
.msg{min-height:1.2em}
.foot{max-width:880px;margin:2rem auto;padding:1rem;color:var(--mut);font-size:.9rem}
/* prompter */
.prompter{position:fixed;inset:0;background:#000;color:#fff;z-index:50;overflow:hidden}
.prompter video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transform:scaleX(-1);opacity:.35}
.stage{position:absolute;inset:0 0 64px 0;overflow:hidden}
.stage.mirror{transform:scaleX(-1)} .stage.flipv{transform:scaleY(-1)} .stage.mirror.flipv{transform:scale(-1,-1)}
.flow{position:absolute;left:0;right:0;padding:0 6vw 70vh;font-weight:600;line-height:1.35;will-change:transform;white-space:pre-wrap;text-shadow:0 2px 6px #000}
.flow .w.read{color:#9ca3af} .flow .w.now{color:#fde047} .flow .w.win{text-decoration:underline dotted #fde04788}
.bandmark{position:absolute;left:0;right:0;height:0;background:linear-gradient(90deg,#ffffff1f,#ffffff10);border-left:5px solid #dc2626;pointer-events:none}
.status{position:absolute;left:0;right:0;bottom:64px;margin:0;padding:.35rem .8rem;background:#000c;font-size:.9rem;min-height:1.8em}
.bar{position:absolute;left:0;right:0;bottom:0;height:64px;display:flex;gap:.4rem;align-items:center;justify-content:center;flex-wrap:nowrap;overflow-x:auto;background:#111;padding:0 .5rem}
.bar button{padding:.45rem .7rem;background:#222;color:#fff;border-color:#444;white-space:nowrap} .bar .primary{background:var(--acc);border-color:var(--acc)} .bar .rec{background:#fff;color:var(--acc)}
.bar .rec.on{background:var(--acc);color:#fff}
.countbig{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:30vmin;font-weight:800;color:#fff;text-shadow:0 0 30px #000}
.recdot{position:absolute;top:10px;right:14px;color:#ef4444;font-weight:800;background:#000a;padding:.15rem .5rem;border-radius:6px}
dialog{border:0;border-radius:14px;padding:0;max-width:min(680px,95vw);width:100%}
.dlg{padding:1rem} .dlghead{display:flex;justify-content:space-between;align-items:center}
#takeVideo{width:100%;max-height:50vh;background:#000;border-radius:8px}
@media (max-width:600px){h1{font-size:1.4rem}.bar{height:104px;flex-wrap:wrap;align-content:center;justify-content:center;row-gap:.35rem}.bar button{padding:.35rem .55rem;font-size:.85rem}.stage{bottom:104px}.status{bottom:104px}.bar .lbl{display:none}}
