:root{--bg:#f4f6f5;--surface:#fff;--surface-2:#eef2f0;--ink:#1b2422;--muted:#5d6b67;--line:#d9e0dd;--brand:#1f6f63;--brand-ink:#fff;--brand-soft:#dcefe9;--warn:#8a5a00;--warn-bg:#fff5de;--error:#a3261c;--error-bg:#fdecea;--info-bg:#e8f1fb;--select:#c77a0a;--radius:10px;--shadow:0 1px 2px #0000000f, 0 4px 16px #0000000d;--font:system-ui, -apple-system, "Segoe UI", Roboto, "Noto Sans TC", "PingFang TC", "Microsoft JhengHei", "Noto Sans SC", "PingFang SC", "Microsoft YaHei", sans-serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:lang(zh-Hans){--font:system-ui, -apple-system, "Segoe UI", Roboto, "Noto Sans SC", "PingFang SC", "Microsoft YaHei", "Noto Sans TC", sans-serif}*{box-sizing:border-box}html,body{background:var(--bg);height:100%;color:var(--ink);font-family:var(--font);margin:0;font-size:15px;line-height:1.55}#root{height:100%}h2{margin:0 0 .5rem;font-size:1.15rem;line-height:1.35}h3{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin:1.1rem 0 .4rem;font-size:.8rem}:lang(zh-Hant) h3,:lang(zh-Hans) h3{letter-spacing:.08em}p{margin:0 0 .6rem}a{color:var(--brand)}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{outline-offset:2px;outline:3px solid #2f8f80}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;overflow:hidden;position:absolute!important}.skip{z-index:50;background:var(--surface);border-radius:6px;padding:6px 10px;position:absolute;top:8px;left:-999px}.skip:focus{left:8px}.muted{color:var(--muted);font-size:.87rem}.hint{color:var(--muted);margin:.35rem 0 0;font-size:.82rem}.field-error{color:var(--error);font-size:.87rem}.btn{border:1px solid var(--line);background:var(--surface);cursor:pointer;white-space:nowrap;border-radius:8px;align-items:center;gap:.35rem;min-height:38px;padding:.4rem .85rem;text-decoration:none;display:inline-flex}.btn:hover:not(:disabled){background:#f9fbfa;border-color:#b7c4bf}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--brand);border-color:var(--brand);color:var(--brand-ink);font-weight:600}.btn-primary:hover:not(:disabled){background:#185a50;border-color:#185a50}.btn-ghost{background:0 0;border-color:#0000}.btn-on{background:var(--brand-soft);border-color:var(--brand)}.link{color:var(--brand);cursor:pointer;text-underline-offset:2px;background:0 0;border:0;padding:0;text-decoration:underline}.link.danger{color:var(--error)}.icon-btn{cursor:pointer;color:var(--muted);background:0 0;border:0;padding:0 6px;font-size:1.6rem;line-height:1}.app{flex-direction:column;min-height:100%;display:flex}.topbar{background:var(--surface);border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:1rem;padding:.5rem 1rem;display:flex}.brand{color:var(--brand);align-items:center;gap:.5rem;font-size:1.02rem;font-weight:700;text-decoration:none;display:flex}.brand span{color:var(--ink)}.topnav{flex-wrap:wrap;align-items:center;gap:.15rem;margin-left:auto;display:flex}.locale select{border:1px solid var(--line);background:var(--surface);border-radius:8px;min-height:36px;padding:0 .4rem}.layout{flex:1;grid-template-columns:minmax(0,1fr) minmax(340px,440px);gap:0;min-height:0;display:grid}.stage{flex-direction:column;gap:.5rem;min-width:0;height:calc(100vh - 56px);padding:.75rem;display:flex;position:sticky;top:0}.side{background:var(--surface);border-left:1px solid var(--line);height:calc(100vh - 56px);padding:1rem 1.1rem 2rem;overflow-y:auto}.tagline{color:var(--muted);font-size:1.05rem}.home-intro{flex-direction:column;align-items:flex-start;margin-bottom:1rem;display:flex}.home-intro .tagline{margin:.35rem 0 0}.brand-badge{color:var(--ink);align-items:center;gap:.35rem;text-decoration:none;display:inline-flex}.brand-badge img{object-fit:contain;width:28px;height:28px}.brand-badge span{letter-spacing:-.01em;font-size:1.1rem;font-weight:700;line-height:1}.brand-badge b{color:#ff7928;font-weight:inherit}.mascot-face{object-fit:contain;flex:none;width:40px;height:40px}.status-guide{flex-wrap:nowrap;align-items:flex-start}.status-body{flex-wrap:wrap;flex:1;align-self:center;align-items:center;gap:.5rem .75rem;min-width:0;display:flex}.feedback-thanks{align-items:center;gap:.5rem;display:flex}.feedback-thanks .mascot-face{width:32px;height:32px}.cookie-notice{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-2);flex-wrap:wrap;align-items:center;gap:.4rem .6rem;margin-bottom:.8rem;padding:.5rem .7rem;font-size:.85rem;line-height:1.45;display:flex}.cookie-notice p{flex:14rem;margin:0}.cookie-actions{gap:.4rem;margin-left:auto;display:flex}.cookie-actions .btn{min-height:36px;padding:.25rem .75rem}.foot{margin-top:1.5rem;font-size:.8rem}.viewer{flex-direction:column;flex:1;min-height:0;display:flex;position:relative}.viewer-stage{border-radius:var(--radius);border:1px solid var(--line);touch-action:none;background:#f2f4f3;flex:1;min-height:0;position:relative;overflow:hidden}.viewer-canvas{width:100%;height:100%;display:block}.viewer-status,.viewer-empty{text-align:center;color:var(--muted);pointer-events:none;z-index:3;justify-content:center;align-items:center;gap:.6rem;padding:1.5rem;display:flex;position:absolute;inset:0}.viewer-empty{color:var(--ink);background:#f2f4f3;font-size:1.05rem}.viewer-overview-note{color:var(--muted);pointer-events:none;z-index:2;margin:0;font-size:.78rem;position:absolute;bottom:6px;left:10px}.viewer-selection{z-index:4;pointer-events:none;flex-wrap:wrap;gap:6px;display:flex;position:absolute;top:8px;left:8px;right:8px}.viewer-selection .chip{pointer-events:auto}.label-layer{pointer-events:none;z-index:2;position:absolute;inset:0}.label-lines{width:100%;height:100%;position:absolute;inset:0;overflow:visible}.label-lines line{stroke:#0e3f38;stroke-width:1.25px}.label-lines circle{fill:#0e3f38;stroke:#fff;stroke-width:1.5px}.label{white-space:nowrap;text-overflow:ellipsis;color:#0e3f38;background:#fffffff0;border:1px solid #9fb8b2;border-radius:6px;height:26px;padding:0 8px;font-size:13px;font-weight:600;line-height:24px;position:absolute;top:0;left:0;overflow:hidden;box-shadow:0 1px 3px #0000001f}.spinner{border:2.5px solid var(--brand-soft);border-top-color:var(--brand);border-radius:50%;flex:none;width:18px;height:18px;animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.playback{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:.5rem .6rem}.playback-row{align-items:center;gap:.5rem;display:flex}.btn-play{justify-content:center;min-width:108px}.seek{min-width:80px;accent-color:var(--brand);flex:1;height:32px}.time{font-variant-numeric:tabular-nums;color:var(--muted);white-space:nowrap;font-size:.85rem}.step-dots{flex-wrap:wrap;gap:6px;margin:.4rem 0 0;padding:0;list-style:none;display:flex}.step-dot{border:1px solid var(--line);background:var(--surface);cursor:pointer;border-radius:50%;width:30px;height:30px;font-size:.8rem}.step-dot[aria-current=step]{background:var(--brand);color:#fff;border-color:var(--brand)}.playback-note{color:var(--warn);margin:.4rem 0 0;font-size:.85rem}.status{border-radius:var(--radius);flex-wrap:wrap;align-items:center;gap:.5rem .75rem;margin-bottom:.8rem;padding:.65rem .8rem;font-size:.93rem;display:flex}.status-busy{background:var(--brand-soft);flex-direction:column;align-items:stretch}.status-line{align-items:center;gap:.75rem;display:flex}.reasoning{flex-direction:column;gap:.3rem;min-width:0;display:flex}.reasoning-label{color:var(--muted);font-size:.8rem}.reasoning-text{background:var(--surface);max-height:9.5rem;color:var(--muted);font:inherit;white-space:pre-wrap;overflow-wrap:anywhere;border-radius:8px;margin:0;padding:.5rem .6rem;font-size:.8rem;line-height:1.45;overflow-y:auto}.status-error{background:var(--error-bg);color:var(--error)}.status-error .muted{color:#6b3b36}.status-warn{background:var(--warn-bg);color:#5c3d00}.status-info{background:var(--info-bg)}.notice{border-radius:8px;padding:.6rem .8rem}.notice-info{background:var(--info-bg)}.question{flex-direction:column;gap:.5rem;display:flex}.question-label{font-weight:600}.question textarea,.review textarea,.feedback textarea{resize:vertical;border:1px solid var(--line);background:#fbfcfc;border-radius:8px;width:100%;min-height:84px;padding:.6rem .7rem}.question-meta{flex-wrap:wrap;justify-content:space-between;gap:.5rem;display:flex}.question-actions{flex-wrap:wrap;gap:.5rem;display:flex}.question-actions .submit{margin-left:auto}.privacy{background:var(--warn-bg);border-radius:var(--radius);border:1px solid #f0d9a4;padding:.8rem .9rem;font-size:.9rem}.attachment{align-items:center;gap:.6rem;font-size:.9rem;display:flex}.attachment img{object-fit:cover;border:1px solid var(--line);border-radius:6px;width:56px;height:56px}.selection{flex-direction:column;gap:.35rem;display:flex}.chips{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.chip{border:1.5px solid var(--select);background:#fff4e0;border-radius:999px;align-items:center;gap:2px;max-width:100%;padding:2px 4px 2px 10px;font-size:.84rem;display:inline-flex}.chip span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.chip-x{cursor:pointer;background:0 0;border:0;min-width:28px;min-height:28px;padding:2px 6px;font-size:1.1rem;line-height:1}.answer-language{border-top:1px dashed var(--line);gap:.3rem;margin-top:.4rem;padding-top:.6rem;display:grid}.answer-language label{font-size:.9rem;font-weight:600}.answer-language select,.answer-custom input,.browser-filters input,.browser-filters select,.feedback select,.access input{border:1px solid var(--line);background:var(--surface);border-radius:8px;min-height:38px;padding:0 .55rem}.answer-custom{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.answer-custom input{flex:1;min-width:140px}.lesson{border-top:1px solid var(--line);margin-top:1.2rem;padding-top:1rem}.caption{background:var(--surface-2);border-left:4px solid var(--brand);border-radius:6px;min-height:2.8em;padding:.6rem .75rem;font-size:1rem}.steps{gap:4px;margin:0;padding:0;list-style:none;display:grid}.step{text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;gap:.55rem;width:100%;padding:.4rem .45rem;font-size:.92rem;display:flex}.step:hover:not(:disabled){background:var(--surface-2)}.step[aria-current=step]{background:var(--brand-soft);border-color:#a9d3c8}.step-n{background:var(--surface-2);border-radius:50%;flex:none;place-items:center;width:22px;height:22px;margin-top:1px;font-size:.75rem;font-weight:700;display:grid}.label-list{flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none;display:flex}.label-list li{border:1px solid #9fb8b2;border-radius:6px;padding:1px 8px;font-size:.85rem}.limitations{color:#3e4a47;padding-left:1.2rem;font-size:.92rem}.feedback{margin-top:1rem;font-size:.9rem}.feedback summary{cursor:pointer;color:var(--muted)}.feedback form{gap:.5rem;margin-top:.5rem;display:grid}.feedback label{gap:.25rem;display:grid}.turns{margin-top:1.2rem;font-size:.9rem}.turns summary{cursor:pointer;font-weight:600}.turns ol{padding-left:1.2rem}.turns li[aria-current=true]{font-weight:700}.review{border-radius:var(--radius);background:#fffaf0;border:1px solid #f0d9a4;gap:.5rem;margin-bottom:1rem;padding:.9rem;display:grid}.uncertain{margin:0;padding-left:1.2rem;font-size:.9rem}.modal{width:min(560px,100vw - 32px);max-height:min(80vh,720px);color:var(--ink);border:0;border-radius:14px;padding:0;box-shadow:0 10px 40px #00000040}.modal::backdrop{background:#141e1c73}.modal-head{background:var(--surface);justify-content:space-between;align-items:center;padding:.8rem 1rem .2rem;display:flex;position:sticky;top:0}.modal-head h2{margin:0}.modal-body{padding:.4rem 1rem 1rem}.sources{gap:.5rem;padding-left:1.1rem;font-size:.93rem;display:grid}.history{gap:2px;margin:0;padding:0;list-style:none;display:grid}.history li{border-radius:8px;align-items:center;gap:.5rem;padding:.4rem .3rem;display:flex}.history li[aria-current=page]{background:var(--brand-soft)}.history a{color:var(--ink);flex:1;min-width:0;text-decoration:none;display:grid}.history-title{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.browser-filters{flex-wrap:wrap;gap:.5rem;display:flex}.browser-filters input{flex:1;min-width:180px}.browser-list{gap:2px;margin:.5rem 0 0;padding:0;list-style:none;display:grid}.browser-list li{border-bottom:1px solid var(--surface-2);grid-template-columns:1fr auto auto;align-items:center;gap:.5rem;padding:.25rem 0;display:grid}.browser-name{font-size:.92rem}.browser-system{font-size:.78rem}.dialog-backdrop{z-index:40;background:#141e1c80;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.dialog{background:var(--surface);border-radius:14px;width:min(720px,100%);max-height:calc(100vh - 32px);padding:1rem;overflow:auto}.dialog-actions{flex-wrap:wrap;justify-content:flex-end;gap:.5rem;margin-top:.6rem;display:flex}.crop-area{touch-action:none;cursor:crosshair;-webkit-user-select:none;user-select:none;max-width:100%;display:inline-block;position:relative}.crop-area canvas{max-width:100%;height:auto;max-height:60vh;display:block}.crop-rect{border:2px solid var(--select);pointer-events:none;position:absolute;box-shadow:0 0 0 9999px #00000073}.access{border:1px solid var(--line);border-radius:var(--radius);gap:.6rem;padding:1rem;display:grid}.access label{gap:.25rem;display:grid}@media (max-width:900px){.layout{display:block}.stage{height:auto;padding:.5rem .5rem 0;position:static}.viewer{flex:none;height:max(300px,52vh)}.has-scene .stage{z-index:2;background:var(--bg);box-shadow:0 1px 0 var(--line);padding-bottom:.5rem;position:sticky;top:0}.has-scene .viewer{height:max(240px,40vh)}.side{border-left:0;border-top:1px solid var(--line);height:auto;padding:1rem 1rem 2rem;overflow:visible}.topbar{gap:.4rem;padding:.4rem .6rem}.topnav .btn-ghost{padding:.3rem .5rem;font-size:.88rem}.btn-play{min-width:0}.btn-play-text,.viewer-hint{display:none}}@media (pointer:fine){.camera-btn{display:none}}@media (prefers-reduced-motion:reduce){.spinner{animation:none}}
