:root{--bg:#f4f3ee;--surface:#ffffff;--ink:#1d2420;--muted:#69716c;--line:#e2e1da;--green:#1f5a3d;--green-soft:#e4efe7;--accent:#c8a24a;--red:#b3412e;--red-soft:#f6e3df;--radius:14px;--shadow:0 1px 2px rgba(20,30,25,0.06),0 4px 16px rgba(20,30,25,0.05);color-scheme:light}*{box-sizing:border-box}body,html{margin:0;padding:0}body{background:var(--bg);color:var(--ink);font-family:Hiragino Sans,Noto Sans JP,Yu Gothic UI,system-ui,sans-serif;font-size:15px;line-height:1.6;-webkit-font-smoothing:antialiased}a{color:var(--green)}button,input,select,textarea{font:inherit;color:inherit}.topbar{position:-webkit-sticky;position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;background:var(--green);color:#fff}.topbar .brand{font-weight:700;letter-spacing:.02em;font-size:15px}.topbar .brand small{display:block;font-weight:400;opacity:.75;font-size:11px;letter-spacing:.08em}.topbar nav{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.topbar nav a,.topbar nav button{color:#fff;text-decoration:none;background:rgba(255,255,255,.12);border:0;border-radius:999px;padding:6px 12px;font-size:13px;cursor:pointer}.topbar nav a.active{background:#fff;color:var(--green);font-weight:600}.badge-count{display:inline-block;min-width:18px;padding:0 5px;margin-left:4px;border-radius:999px;background:var(--accent);color:#1d2420;font-size:11px;font-weight:700;text-align:center}.container{max-width:760px;margin:0 auto;padding:20px 16px 80px}.container.wide{max-width:1100px}h1{font-size:22px;margin:4px 0;letter-spacing:.01em}h2{font-size:17px;margin:28px 0 10px}.lead{color:var(--muted);margin:0 0 20px}.card{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px;margin-bottom:14px}.card-row{display:flex;gap:14px;align-items:center}.card-row .grow{flex:1 1;min-width:0}.meta{font-size:13px}.empty,.meta{color:var(--muted)}.empty{text-align:center;padding:40px 16px;border:1.5px dashed var(--line);border-radius:var(--radius)}.tag{display:inline-block;font-size:12px;padding:2px 9px;border-radius:999px;background:var(--green-soft);color:var(--green);font-weight:600}.tag.new{background:#fbf1d8;color:#7a5a10}.tag.gray{background:#eceae4;color:var(--muted)}.tag.red{background:var(--red-soft);color:var(--red)}label.field{display:block;margin-bottom:14px}label.field>span{display:block;font-size:13px;font-weight:600;margin-bottom:6px}input[type=email],input[type=password],input[type=tel],input[type=text],select,textarea{width:100%;padding:11px 12px;border:1px solid var(--line);border-radius:10px;background:#fff}textarea{min-height:90px;resize:vertical}input:focus,select:focus,textarea:focus{outline:2px solid var(--green);outline-offset:-1px;border-color:transparent}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:11px 18px;border-radius:10px;border:1px solid var(--line);background:#fff;cursor:pointer;font-weight:600;text-decoration:none;color:var(--ink);min-height:44px}.btn.primary{background:var(--green);border-color:var(--green);color:#fff}.btn.danger{background:var(--red);border-color:var(--red);color:#fff}.btn.block{width:100%}.btn.small{padding:6px 12px;min-height:34px;font-size:13px}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-row{display:flex;gap:10px;flex-wrap:wrap}.segmented{display:flex;background:#eceae4;border-radius:10px;padding:3px;gap:3px}.segmented button{flex:1 1;border:0;background:transparent;padding:8px 6px;border-radius:8px;cursor:pointer;font-size:14px}.segmented button.on{background:#fff;box-shadow:var(--shadow);font-weight:600}.alert{padding:12px 14px;border-radius:10px;margin-bottom:14px;font-size:14px}.alert.error{background:var(--red-soft);color:var(--red)}.alert.info{background:var(--green-soft);color:var(--green)}video.player{width:100%;max-height:70vh;background:#000;border-radius:10px;display:block}.thumb{width:64px;height:64px;border-radius:10px;background:var(--green-soft);display:grid;place-items:center;color:var(--green);flex-shrink:0;font-size:22px}.reply-box{border-left:3px solid var(--accent);padding:4px 0 4px 14px;margin-top:14px}.auth-wrap{min-height:100vh;display:grid;place-items:center;padding:24px 16px}.auth-card{width:100%;max-width:400px}.auth-head{text-align:center;margin-bottom:20px}.auth-head .mark{width:56px;height:56px;border-radius:16px;background:var(--green);color:#fff;display:inline-grid;place-items:center;font-size:26px;margin-bottom:10px}.editor{display:grid;grid-template-columns:1fr 300px;grid-gap:16px;gap:16px;align-items:start}@media (max-width:900px){.editor{grid-template-columns:1fr}}.stage{position:relative;background:#111;border-radius:12px;overflow:hidden;display:flex;justify-content:center;align-items:center}.stage canvas{display:block;max-width:100%;max-height:72vh;touch-action:none;cursor:crosshair}.stage .rec-badge{position:absolute;top:10px;left:10px;background:var(--red);color:#fff;border-radius:999px;padding:4px 12px;font-size:13px;font-weight:700;display:flex;align-items:center;gap:6px}.stage .rec-badge:before{content:"";width:8px;height:8px;background:#fff;border-radius:50%;animation:blink 1s infinite}@keyframes blink{50%{opacity:.2}}.hidden-video{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.controls{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:10px}.controls .btn{padding:6px 10px;min-height:38px;font-size:13px}.controls .btn.on{background:var(--green);color:#fff;border-color:var(--green)}.seek{width:100%;margin-top:10px;accent-color:var(--green)}.time{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-size:13px;color:var(--muted)}.swatch{width:28px;height:28px;border-radius:50%;border:2px solid #fff;box-shadow:0 0 0 1px var(--line);cursor:pointer}.swatch.on{box-shadow:0 0 0 2px var(--ink)}.panel h3{font-size:14px;margin:0 0 8px}.panel .section{margin-bottom:18px}