:root{--bg:#f7f4ec;--card:#fffdf8;--ink:#2f3b33;--muted:#6f7a70;--green:#5d8a6a;--green-d:#476f53;--soft:#e8efe3;--line:#e2ddd0;--warn:#a5503f}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.55 "Segoe UI",system-ui,-apple-system,sans-serif}
.wrap{max-width:1100px;margin:0 auto;padding:0 20px}
.top{background:var(--card);border-bottom:1px solid var(--line)}.top .wrap{display:flex;justify-content:space-between;align-items:center;height:64px}
.brand{font-family:Georgia,serif;font-size:1.3rem;color:var(--green-d);text-decoration:none}.brand small{color:var(--muted);font-size:.85rem;margin-left:4px}.leaf{color:var(--green)}
nav{display:flex;gap:14px;align-items:center}.who{color:var(--muted);font-size:.9rem}
main{padding:28px 20px 60px}h1,h2,h3{font-family:Georgia,serif;font-weight:normal;color:var(--green-d)}h1{margin-top:0}h2{margin:0 0 4px;font-size:1.25rem}
a{color:var(--green-d)}.muted{color:var(--muted)}.small{font-size:.875rem}
.card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:20px 22px;margin-bottom:16px}.card.soft{background:var(--soft);border-color:#d6e2cf}
.narrow{max-width:420px;margin:40px auto}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}
.tile{display:block;text-decoration:none;color:inherit;transition:box-shadow .2s}.tile:hover{box-shadow:0 4px 18px rgba(70,100,80,.12)}
.row{display:flex;justify-content:space-between;align-items:center;gap:16px}
label{display:block;margin:12px 0;font-size:.92rem;color:var(--muted)}
input,textarea{display:block;width:100%;margin-top:4px;padding:10px 12px;border:1px solid var(--line);border-radius:8px;font:inherit;background:#fff;color:var(--ink)}
input:focus,textarea:focus{outline:2px solid #b9d1bf;border-color:var(--green)}
.btn{display:inline-block;background:var(--green);color:#fff;border:0;border-radius:999px;padding:10px 22px;font:inherit;cursor:pointer;text-decoration:none}
.btn:hover{background:var(--green-d)}.btn:disabled{opacity:.6;cursor:wait}.btn.ghost{background:transparent;color:var(--green-d);border:1px solid var(--green)}
.btn.small{padding:6px 14px;font-size:.9rem}.btn.stop{background:var(--warn)}.btn.danger{color:var(--warn);border-color:var(--warn)}
.link{background:none;border:0;color:var(--green-d);cursor:pointer;font:inherit;text-decoration:underline}.inline{display:inline}
.alert{color:var(--warn)}.ok{color:var(--green-d);font-weight:600}.demo{background:var(--soft);padding:8px 12px;border-radius:8px;font-size:.9rem}
.pill{display:inline-block;padding:4px 12px;border-radius:999px;background:#f1e9d6;color:#7a6234;font-size:.85rem}.pill.done{background:var(--soft);color:var(--green-d)}
.stage{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:16px 0}@media(max-width:760px){.stage{grid-template-columns:1fr}}
figure{margin:0;position:relative;background:#1f2621;border-radius:14px;overflow:hidden}figcaption{position:absolute;top:8px;left:10px;color:#fff;font-size:.8rem;background:rgba(0,0,0,.35);padding:2px 10px;border-radius:999px;z-index:2}
figure video{display:block;width:100%;aspect-ratio:16/9;background:#1f2621;object-fit:contain}
.recdot{color:#ff8a7a;margin-left:6px}
.prompt{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;text-align:center;padding:20px;background:rgba(47,70,54,.88);color:#fff;font-family:Georgia,serif;font-size:1.5rem}
.controls{display:flex;gap:12px}progress{width:100%;height:10px;accent-color:var(--green)}
table{width:100%;border-collapse:collapse;background:var(--card);border:1px solid var(--line);border-radius:12px;overflow:hidden;margin:12px 0}
th,td{padding:10px 12px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}th{background:var(--soft);font-weight:600;font-size:.9rem}
.rubric input.sc{width:80px;display:inline-block}.nowrap{white-space:nowrap}.total td{background:var(--soft)}
.score{font-size:1.3rem}.reset{margin-top:24px}.foot{color:var(--muted);font-size:.85rem;padding-bottom:30px}
.shield{position:absolute;inset:0;z-index:1}.shield.tap{display:flex;align-items:center;justify-content:center;color:#fff;background:rgba(0,0,0,.45);cursor:pointer;font-size:1.1rem}
video.locked{pointer-events:none;user-select:none}video.locked::-webkit-media-controls{display:none!important}
.prompt{z-index:3}.narrow.wide{max-width:640px}.check{display:flex;gap:10px;align-items:flex-start;color:var(--ink)}.check input{width:auto;margin-top:5px}
.sc.bad{border-color:var(--warn);outline:2px solid var(--warn)}
nav a{font-size:.9rem}.filters{display:flex;gap:10px;align-items:center;margin:12px 0}.filters input{max-width:340px;margin:0}
select{padding:9px 10px;border:1px solid var(--line);border-radius:8px;font:inherit;background:#fff;display:block;margin-top:4px}
fieldset{border:1px solid var(--line);border-radius:10px;padding:6px 14px;margin:12px 0}legend{color:var(--muted);font-size:.9rem}
.notice{background:#eef5fb;border-color:#c9dcee}
video{aspect-ratio:16/9;width:100%;height:auto;display:block;background:#1f2621}
