.npc-anchor{pointer-events:none;-webkit-user-select:none;user-select:none;font-family:var(--ui);flex-direction:column;align-items:center;gap:8px;display:flex;position:absolute;bottom:0;left:0;transform:translate(-50%)}.npc-tag{transform-origin:50% 100%;border:1px solid color-mix(in srgb, var(--npc) 70%, #f6efe3 30%);white-space:nowrap;background:#0e0b0adb;border-radius:12px;justify-items:center;gap:1px;padding:6px 12px 7px;transition:opacity .2s,box-shadow .25s,border-color .25s;display:grid;box-shadow:0 6px 18px #00000059}.npc-tag.active{border-color:#e8c48f}.npc-tag.speaking{box-shadow:0 0 0 2px #e8c48f73, 0 0 22px color-mix(in srgb, var(--npc) 80%, #e8c48f 20%);border-color:#e8c48f}.npc-tag-top{align-items:center;gap:8px;display:flex}.npc-tag-name{color:#f6efe3;font-size:16px;font-weight:700;line-height:1.2}.npc-tag-ai{letter-spacing:.06em;color:#1a1208;background:#e8c48f;border-radius:6px;padding:2px 6px;font-size:14px;font-weight:700;line-height:1}.npc-tag-role{color:#d8cfc1;font-size:14px;line-height:1.25}.npc-bubble{color:#1b1511;white-space:normal;background:#f6efe3f5;border-radius:14px;width:max-content;max-width:320px;padding:10px 14px;animation:.25s ease-out npc-pop;box-shadow:0 10px 26px #0006}.npc-bubble-q{color:#4a3d33;margin-bottom:4px;font-size:14px;line-height:1.35}.npc-bubble-q span{color:#2b221c;font-weight:700}.npc-bubble-a{color:#1b1511;font-size:16px;line-height:1.4}@keyframes npc-pop{0%{opacity:0;transform:translateY(6px)}}.npc-mark{flex:none;width:24px;height:21px;margin-right:-2px}.npc-mark-bubble{fill:#f6efe3;stroke:#140e0a;stroke-width:1.4px;stroke-linejoin:round}.npc-mark-dot{fill:#1a1208}.npc-mark-spark{fill:#e8c48f;stroke:#140e0a;stroke-width:.9px;stroke-linejoin:round}.npc-tag-state{letter-spacing:.08em;text-transform:uppercase;border-radius:999px;margin-top:3px;padding:3px 8px;font-size:12px;font-weight:700;line-height:1.2;display:none}.npc-tag[data-state=listening] .npc-tag-state,.npc-tag[data-state=thinking] .npc-tag-state,.npc-tag[data-state=speaking] .npc-tag-state{display:block}.npc-tag[data-state=listening] .npc-tag-state{color:#1a1208;background:#e8c48f}.npc-tag[data-state=thinking] .npc-tag-state{color:#f6efe3;background:#f6efe324}.npc-tag[data-state=thinking] .npc-tag-state:after{content:"...";text-align:left;vertical-align:bottom;width:1.4em;animation:1.2s steps(4,end) infinite npc-think;display:inline-block;overflow:hidden}.npc-tag[data-state=speaking] .npc-tag-state{color:#f6efe3;background:#e8c48f33;box-shadow:inset 0 0 0 1px #e8c48f99}@keyframes npc-think{0%{width:0}to{width:1.4em}}@media (prefers-reduced-motion:reduce){.npc-bubble{animation:none}.npc-tag[data-state=thinking] .npc-tag-state:after{width:1.4em;animation:none}}.look-studio{pointer-events:auto;background:var(--glass-strong);border:1px solid var(--line);border-radius:18px;grid-template-rows:minmax(0,1fr);grid-template-columns:240px minmax(0,1fr);gap:20px;width:min(680px,46vw);max-height:calc(100vh - 64px);padding:16px 18px 16px 16px;display:grid;box-shadow:0 30px 80px #00000080}.look-preview{background:radial-gradient(120% 90% at 50% 30%,#3a302a 0%,#1c1714 70%);border-radius:14px;flex-direction:column;min-height:0;display:flex;position:relative;overflow:hidden}.look-canvas{cursor:grab;touch-action:none;flex:1;min-height:0}.look-canvas:active{cursor:grabbing}.look-caption{color:#1b1511;border-top:5px solid var(--accent,var(--gold));background:#f4ecdd;border-radius:10px;gap:2px;margin:0 12px 10px;padding:10px 12px;display:grid}.look-caption-name{font-family:var(--display);word-break:break-word;font-size:20px;line-height:1.15}.look-caption-role{color:#3d2f24;font-size:14px}.look-drag{letter-spacing:.06em;color:var(--text-2);margin:0;font-size:12px;font-weight:700;position:absolute;top:8px;right:10px}.look-controls{align-content:start;gap:8px;min-height:0;padding-right:4px;display:grid;overflow-y:auto}.look-title{font-family:var(--display);color:var(--text);margin:0 0 2px;font-size:22px;font-weight:400}.look-row{gap:5px;display:grid}.look-label{letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-size:12px;font-weight:700}.look-row-body{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.look-swatches{flex-wrap:wrap;gap:7px;display:flex}.look-swatch{cursor:pointer;border:2px solid #f3ece059;border-radius:50%;width:26px;height:26px;padding:0}.look-swatch.look-preset{width:32px;height:32px}.look-swatch:hover{border-color:#f3ece0cc}.look-swatch.on{outline:2px solid var(--gold);outline-offset:2px;border-color:#fff}.look-swatch:focus-visible,.look-pill:focus-visible{outline:3px solid var(--gold);outline-offset:2px}.look-pills{flex-wrap:wrap;gap:6px;display:flex}.look-pill{border:1px solid var(--line);color:var(--text);cursor:pointer;background:#f3ece014;border-radius:999px;padding:6px 12px;font-size:15px;line-height:1.2}.look-pill:hover{background:#f3ece029}.look-pill.on{background:var(--gold);border-color:var(--gold);color:var(--gold-ink);font-weight:700}@media (width<=900px){.look-studio{grid-template-rows:auto auto;grid-template-columns:1fr;gap:14px;width:100%;max-height:none;padding:14px}.look-preview{min-height:300px}.look-canvas{min-height:230px}.look-controls{overflow:visible}}.practice-steps{color:var(--text-2,#e6ddd0);gap:8px;margin:8px 0 0;padding-left:22px;font-size:16px;line-height:1.5;display:grid}.practice-steps strong{color:var(--text,#f6efe3)}.practice-brief p{color:var(--text-2,#e6ddd0);margin:0 0 10px;font-size:16px;line-height:1.55}.practice-brief strong{color:var(--text,#f6efe3)}.fb{overscroll-behavior:contain;gap:10px;max-height:min(52vh,460px);padding-right:6px;display:grid;overflow-y:auto}.fb-head{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.fb-result{letter-spacing:.08em;text-transform:uppercase;border-radius:999px;padding:4px 10px;font-size:13px;font-weight:700}.fb-result.pass{color:#e7f6ea;background:#2f5b3e}.fb-result.notyet{color:#fbecd2;background:#5b4626}.fb-total{color:var(--text,#f6efe3);font-family:Young Serif,Georgia,serif;font-size:22px}.fb-stamp{color:#cfe8d4;font-size:14px}.fb-summary{color:var(--text,#f6efe3);margin:0;font-size:17px;line-height:1.5}.fb-skills{gap:10px;margin:0;padding:0;list-style:none;display:grid}.fb-skill{background:#f3ece00f;border:1px solid #f3ece01a;border-radius:10px;padding:10px 12px}.fb-skill-head{justify-content:space-between;align-items:center;gap:10px;display:flex}.fb-skill-name{color:var(--text,#f6efe3);font-size:15px;font-weight:700}.fb-dots{gap:5px;display:inline-flex}.fb-dots i{border:1.5px solid #e8c48f;border-radius:50%;width:11px;height:11px}.fb-dots i.on{background:#e8c48f}.fb-quote{color:#efe5d4;margin:6px 0 4px;font-size:15px;font-style:italic;line-height:1.45}.fb-said{letter-spacing:.08em;text-transform:uppercase;color:#e8c48f;margin-right:4px;font-size:12px;font-style:normal;font-weight:700}.fb-note{color:var(--text-2,#e6ddd0);margin:0;font-size:15px;line-height:1.45}.fb-next{color:var(--text,#f6efe3);background:#e8c48f24;border:1px solid #e8c48f73;border-radius:10px;margin:0;padding:10px 12px;font-size:16px;line-height:1.5}.fb-missing{color:#fbecd2;margin:0;font-size:15px}.fb-foot{color:var(--muted,#b9ae9f);margin:0;font-size:14px;line-height:1.4}.fb-wait-title{color:var(--text,#f6efe3);align-items:center;gap:8px;margin:0;font-size:18px;display:flex}.fb-wait-body{color:var(--text-2,#e6ddd0);margin:0;font-size:15px}.pp-stamps{gap:10px;margin:8px 0 4px;display:grid}.pp-stamp{text-align:left;width:100%;font:inherit;color:var(--muted,#b9ae9d);background:0 0;border:1px dashed #f3ece04d;border-radius:12px;align-items:center;gap:14px;padding:12px 14px;display:flex}button.pp-stamp{cursor:pointer}.pp-stamp.on{color:var(--text,#f6efe3);background:#e8c48f14;border:1px solid #e8c48f}.pp-ring{border:2px dashed #f3ece059;border-radius:50%;flex:none;place-items:center;width:58px;height:58px;display:grid}.pp-stamp.on .pp-ring{color:#e8c48f;border:3px double #e8c48f;font-family:Young Serif,Georgia,serif;font-size:18px;transform:rotate(-8deg)}.pp-stamp-text{gap:2px;font-size:15px;display:grid}.pp-stamp-text strong{color:var(--text,#f6efe3);font-size:16px}.pp-attempts{gap:8px;margin:8px 0 0;padding:0;list-style:none;display:grid}.pp-attempt{text-align:left;width:100%;font:inherit;color:var(--text-2,#d8cfc1);cursor:pointer;background:#f3ece00a;border:1px solid #f3ece024;border-radius:10px;grid-template-columns:auto 1fr auto;align-items:center;gap:4px 14px;padding:10px 12px;font-size:15px;display:grid}.pp-attempt.pass{border-color:#e8c48f80}.pp-attempt-score{color:var(--text,#f6efe3);font-weight:700}@media (width<=560px){.pp-attempt{grid-template-columns:1fr}}.pp-detail{background:#f3ece00d;border-radius:10px;margin:8px 0 4px;padding:12px 14px}.pp-detail-head{color:var(--text-2,#d8cfc1);gap:2px;margin:0 0 8px;font-size:15px;display:grid}.pp-detail-head strong{color:var(--text,#f6efe3);font-size:16px}.pp-scores{gap:6px;margin:0;padding:0;list-style:none;display:grid}.pp-scores li{color:var(--text,#f6efe3);justify-content:space-between;align-items:center;font-size:15px;display:flex}.pp-next{color:var(--text-2,#d8cfc1);margin:10px 0 0;font-size:15px;line-height:1.5}.dock{background:var(--glass);border:1px solid var(--line);border-radius:var(--r);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);width:264px;color:var(--text);flex-direction:column;gap:8px;padding:10px;display:flex}.dock-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:6px;display:grid}.dock-people{min-height:38px;color:var(--text);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:10px;grid-column:1/-1;align-items:center;gap:8px;padding:6px 10px;font-size:15px;font-weight:700;display:flex}.dock-people:hover,.dock-people.open{border-color:var(--line);background:#f3ece00f}.dock-people-count{text-align:left;flex:1}.dock-people-more{color:var(--gold);font-size:14px;font-weight:700}.dock-mic{text-align:left;border:1px solid var(--line);min-height:46px;color:var(--text);cursor:pointer;touch-action:none;-webkit-user-select:none;user-select:none;background:#f3ece014;border-radius:12px;grid-column:1/-1;align-items:center;gap:10px;padding:8px 12px;font-size:15px;font-weight:700;line-height:1.2;display:flex;position:relative;overflow:hidden}.dock-mic>*{position:relative}.dock-mic:hover:not(:disabled){border-color:var(--gold);background:#f3ece024}.dock-mic.on{background:var(--gold);border-color:var(--gold);color:var(--gold-ink)}.dock-mic.on kbd{color:var(--gold-ink);background:#1a12081f;border-color:#1a12084d}.dock-level{width:calc(var(--lvl,0) * 100%);background:#1a120829;transition:width 60ms linear;top:0;bottom:0;left:0;position:absolute!important}.dock-mic:not(.on) .dock-level{display:none}.dock-mic-label{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.dock-toggle,.dock-btn{white-space:nowrap;border:1px solid var(--line);min-height:40px;color:var(--text);cursor:pointer;background:#f3ece014;border-radius:10px;justify-content:center;align-items:center;gap:6px;padding:6px;font-size:15px;font-weight:700;line-height:1.1;display:inline-flex}.dock-toggle:hover:not(:disabled),.dock-btn:hover:not(:disabled){border-color:var(--gold);background:#f3ece024}.dock-toggle.on,.dock-btn.on{background:var(--gold);border-color:var(--gold);color:var(--gold-ink)}.dock-toggle.on kbd,.dock-btn.on kbd{color:var(--gold-ink);background:#1a12081f;border-color:#1a12084d}.dock-toggle:disabled,.dock-btn:disabled{cursor:default;color:var(--text-2);background:#f3ece00d}.dock-toggle:disabled kbd,.dock-btn:disabled kbd{color:var(--text-2)}.dock-toggle:focus-visible,.dock-btn:focus-visible,.dock-mic:focus-visible,.dock-people:focus-visible,.dock-mute:focus-visible,.dock-link:focus-visible{outline:2px solid var(--gold);outline-offset:2px}.dock-line{color:var(--text-2);margin:0;font-size:14px;line-height:1.4}.dock-line.error{color:#ffd9d3}.dock-link{font:inherit;color:var(--gold);cursor:pointer;background:0 0;border:0;padding:0;font-size:14px;font-weight:700;text-decoration:underline}.dock-live{color:#ffe6e1;background:#b3261e47;border:1px solid #ff9b8e8c;border-radius:999px;align-items:center;gap:8px;padding:6px 10px;font-size:14px;font-weight:700;line-height:1.3;display:flex}.dock-live .dock-link{color:#ffe6e1;margin-left:auto}.dock-live-dot{background:#ff6b5b;border-radius:50%;flex:none;width:9px;height:9px;animation:1.2s ease-in-out infinite net-pulse}@keyframes net-pulse{50%{opacity:.35}}.dock-people-list{overscroll-behavior:contain;scrollbar-width:thin;border-bottom:1px solid var(--line);max-height:280px;padding-bottom:8px;overflow:auto}.dock-people-list ul{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.dock-person{align-items:center;gap:10px;min-width:0;display:flex}.dock-person-text{flex-direction:column;flex:1;min-width:0;display:flex}.dock-mute{border:1px solid var(--line);color:var(--text);cursor:pointer;background:#f3ece014;border-radius:999px;flex:none;padding:5px 10px;font-size:15px}.dock-mute.on{color:#fff;background:#b3261e;border-color:#b3261e}.dock-empty{color:var(--text-2);margin:8px 0 0;font-size:14px;line-height:1.4}.net-self{aspect-ratio:16/9;border:1px solid var(--line);background:#0b0908;border-radius:10px;width:176px;position:relative;overflow:hidden}.net-self video{object-fit:cover;width:100%;height:100%;display:block;transform:scaleX(-1)}.net-self-tag{letter-spacing:.04em;color:var(--text);background:#080605d1;border-radius:999px;padding:2px 8px;font-size:12px;font-weight:700;position:absolute;bottom:8px;left:8px}.net-talk{border:2px solid #f3ece047;border-radius:50%;flex:none;width:10px;height:10px}.net-talk.on{border-color:var(--gold);background:var(--gold);box-shadow:0 0 0 4px #e8c48f40}.net-name{color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-size:16px;font-weight:700;line-height:1.25;overflow:hidden}.net-meta{color:var(--text-2);text-overflow:ellipsis;white-space:nowrap;font-size:14px;line-height:1.3;overflow:hidden}.net-ico{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;flex:none;width:20px;height:20px}.net-ico-slash{stroke-width:2.2px}@media (width<=900px),(pointer:coarse){.dock{width:100%;padding:8px}.dock-people{min-height:44px}}@media (pointer:coarse){.dock-mic{display:none}.dock-toggle,.dock-btn{min-height:44px}.dock kbd{display:none}}@media (prefers-reduced-motion:reduce){.dock-live-dot{animation:none!important}}.net-anchor{pointer-events:none;flex-direction:column;align-items:center;display:flex;position:absolute;bottom:0;left:0;transform:translate(-50%)}.net-tag{border:1px solid color-mix(in srgb, var(--c) 50%, #f6efe3 50%);white-space:nowrap;transform-origin:50% 100%;font-family:var(--ui);background:#0e0b0adb;border-radius:999px;align-items:center;gap:7px;padding:6px 12px 7px;transition:box-shadow .2s,border-color .2s;display:inline-flex;box-shadow:0 6px 18px #00000059}.net-tag.speaking{border-color:#e8c48f;box-shadow:0 0 0 2px #e8c48f73,0 0 18px #e8c48f59}.net-tag-dot{background:var(--c);border-radius:50%;flex:none;width:9px;height:9px;box-shadow:0 0 0 1.5px #f6efe3bf}.net-tag-name{color:#f6efe3;text-overflow:ellipsis;max-width:220px;font-size:16px;font-weight:700;line-height:1.2;overflow:hidden}.net-tag-mic{fill:none;stroke:#d8cfc1;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;flex:none;width:16px;height:16px}.net-tag-hint{font-family:var(--ui);color:#f6efe3;white-space:nowrap;background:#0e0b0ae6;border:1px solid #e8c48fa6;border-radius:999px;margin-top:6px;padding:5px 11px;font-size:14px;font-weight:700;line-height:1.2;display:none}.net-tag-hint.on{animation:.3s ease-out net-hint-in;display:block}@keyframes net-hint-in{0%{opacity:0;transform:translateY(4px)}}.chat-anchor{pointer-events:none;flex-direction:column;align-items:center;display:flex;position:absolute;bottom:0;left:0;transform:translate(-50%)}.chat-bubble{color:#1b1511;width:max-content;max-width:280px;font-family:var(--ui);white-space:normal;background:#f6efe3f7;border-radius:14px;margin-bottom:10px;padding:8px 12px;font-size:16px;line-height:1.35;animation:.25s ease-out net-hint-in;position:relative;box-shadow:0 10px 26px #0006}.chat-bubble:after{content:"";border:7px solid #0000;border-top-color:#f6efe3f7;border-bottom:0;margin-left:-7px;position:absolute;bottom:-7px;left:50%}@media (prefers-reduced-motion:reduce){.net-tag{transition:none}.net-tag-hint.on,.chat-bubble{animation:none}}
