:root{--bg: #0f1115;--panel: #1a1d26;--panel-2: #232734;--border: #2e3342;--text: #e6e8ee;--muted: #9aa0b0;--accent: #5b8cff;--accent-2: #7b5bff;--danger: #ff5b6e;--ok: #34d399;color-scheme:dark}*{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Hiragino Kaku Gothic ProN,Noto Sans JP,Meiryo,sans-serif;background:var(--bg);color:var(--text)}.app{max-width:1180px;margin:0 auto;padding:24px 20px 64px}.app__header{display:flex;align-items:baseline;gap:12px;margin-bottom:8px}.app__header h1{font-size:22px;margin:0}.app__header .tag{font-size:12px;color:var(--muted)}.app__sub{color:var(--muted);font-size:13px;margin:0 0 24px;line-height:1.6}.layout{display:grid;grid-template-columns:1fr 380px;gap:20px;align-items:start}@media (max-width: 900px){.layout{grid-template-columns:1fr}}.panel{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:16px;margin-bottom:16px}.panel h2{font-size:14px;margin:0 0 12px;letter-spacing:.02em}.panel h2 .step{display:inline-block;width:20px;height:20px;line-height:20px;text-align:center;background:var(--accent);color:#fff;border-radius:50%;font-size:12px;margin-right:8px}label{display:block;font-size:13px;margin-bottom:6px;color:var(--muted)}.row{display:flex;gap:12px;align-items:center;margin-bottom:12px}.row>*{flex:1}.check{display:flex;align-items:center;gap:8px;color:var(--text);font-size:14px;margin-bottom:10px}.check input{width:16px;height:16px;flex:0 0 auto}input[type=number],input[type=text],textarea,select{width:100%;background:var(--panel-2);border:1px solid var(--border);color:var(--text);border-radius:8px;padding:8px 10px;font-size:14px;font-family:inherit}textarea{resize:vertical}.field{margin-bottom:12px}.field>span{display:block;font-size:13px;margin-bottom:6px;color:var(--muted)}input[type=range]{width:100%}input[type=color]{width:100%;height:34px;background:var(--panel-2);border:1px solid var(--border);border-radius:8px}button{background:var(--accent);color:#fff;border:none;border-radius:8px;padding:11px 16px;font-size:14px;font-weight:600;cursor:pointer;transition:filter .15s ease}button:hover:not(:disabled){filter:brightness(1.1)}button:disabled{opacity:.45;cursor:not-allowed}button.secondary{background:var(--panel-2);border:1px solid var(--border)}button.block{width:100%}.uploader{border:2px dashed var(--border);border-radius:12px;padding:28px;text-align:center;cursor:pointer;transition:border-color .15s ease,background .15s ease}.uploader:hover,.uploader.drag{border-color:var(--accent);background:#5b8cff0f}.uploader input{display:none}.uploader .hint{color:var(--muted);font-size:13px;margin-top:6px}.filemeta{font-size:13px;color:var(--muted);margin-top:12px}.filemeta b{color:var(--text)}.cropstage{position:relative;width:100%;background:#000;border-radius:8px;overflow:hidden;line-height:0}.cropstage img{width:100%;display:block;opacity:.55}.cropbox{position:absolute;border:2px solid var(--accent);box-shadow:0 0 0 9999px #00000073;pointer-events:none}.cropbox .ratio{position:absolute;top:4px;left:4px;font-size:11px;background:var(--accent);color:#fff;padding:1px 6px;border-radius:4px;line-height:1.4}.progress{height:8px;background:var(--panel-2);border-radius:999px;overflow:hidden;margin:10px 0}.progress>div{height:100%;background:linear-gradient(90deg,var(--accent),var(--accent-2));transition:width .2s ease}.status{font-size:13px;color:var(--muted)}.status.err{color:var(--danger)}.status.ok{color:var(--ok)}.badge{display:inline-block;font-size:12px;padding:2px 8px;border-radius:999px;background:var(--panel-2);border:1px solid var(--border);color:var(--muted);margin-left:8px}.result video{width:100%;max-height:60vh;background:#000;border-radius:8px}.result .actions{display:flex;gap:10px;margin-top:12px}.result a.download{flex:1;text-align:center;text-decoration:none;background:var(--ok);color:#06231a;border-radius:8px;padding:11px 16px;font-weight:700}.note{font-size:12px;color:var(--muted);line-height:1.6;background:var(--panel-2);border:1px solid var(--border);border-radius:8px;padding:10px 12px;margin-top:12px}.mini{font-size:12px;color:var(--muted)}.val{color:var(--text);font-weight:600}
