:root{--bg: #F5F7FB;--surface: #FFFFFF;--surface-sunk: #F8FAFC;--surface-tint: #E6ECF5;--surface-hover: #EDF1F7;--border: #E1E7F0;--border-strong: #B6C1D3;--border-soft: #EEF2F8;--ink: #1F2A44;--ink-strong: #0F1A33;--ink-mid: #3B4869;--ink-soft: #5B6684;--ink-quiet: #6B7590;--ink-inverse: #FFFFFF;--brand: #1E3A6B;--brand-strong: #142A52;--brand-tint: #5A6885;--radius-sm: 7px;--radius: 10px;--radius-lg: 14px;--radius-xl: 18px;--radius-pill: 999px;--font-heading: "Zen Kaku Gothic New", system-ui, sans-serif;--font-body: "Noto Sans JP", system-ui, sans-serif}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);font-family:var(--font-body);color:var(--ink);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{color:var(--brand);text-decoration:none}a:hover{color:var(--ink-soft)}input,textarea,select,button{font-family:inherit;color:inherit}button{cursor:pointer}::selection{background:var(--border)}.h1{font-family:var(--font-heading);font-weight:700;letter-spacing:-.01em}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg)}.pill{display:inline-flex;align-items:center;gap:6px;background:var(--surface);border:1px solid var(--border);color:var(--brand-tint);font-size:11px;font-weight:500;padding:5px 12px;border-radius:var(--radius-pill)}.btn{border:none;background:var(--brand);color:var(--ink-inverse);font-size:13px;font-weight:700;padding:10px 16px;border-radius:var(--radius);cursor:pointer}.btn:hover{background:var(--brand-strong)}.btn-ghost{border:1px solid var(--border);background:var(--surface);color:var(--ink-mid);font-size:13px;font-weight:500;padding:10px 16px;border-radius:var(--radius)}.btn-ghost:hover{background:var(--surface-sunk)}.input{border:1px solid var(--border);border-radius:var(--radius);padding:11px 13px;font-size:13.5px;outline:none;background:var(--surface);color:var(--ink);width:100%}.input:focus{border-color:var(--brand)}.thumb{position:relative;aspect-ratio:16 / 9;border-radius:12px;overflow:hidden;display:grid;place-items:center}.thumb .label{color:#ffffffc7;font-size:11.5px;letter-spacing:.08em}.thumb .duration{position:absolute;right:7px;bottom:7px;background:#0000009e;color:#fff;font-size:10.5px;padding:2px 6px;border-radius:5px}.thumb .progress{position:absolute;left:0;right:0;bottom:0;height:3px;background:#ffffff4d}.thumb .progress>span{display:block;height:3px;background:var(--brand)}
