/* Character Expansion Pilot. All styles scoped to existing Settings; not a new shell. */
.lab66[hidden]{display:none!important}
.lab66{background:linear-gradient(128deg,var(--surface),var(--surface) 48%,var(--surface));border:1px solid var(--line);border-radius:26px;padding:clamp(15px,2vw,27px);margin:26px 0 10px;color:var(--ink)}
.lab66-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap}
.lab66-kicker{font-size:9px;letter-spacing:.15em;font-weight:850;color:var(--ink-2)}
.lab66-head h2{font-size:clamp(22px,3vw,28px);line-height:1.15;margin:6px 0;letter-spacing:-.045em}
.lab66-head p{max-width:690px;font-size:12px;line-height:1.55;color:var(--ink-2);margin:0}
.lab66-language{display:flex;border:1px solid var(--line);border-radius:20px;background:var(--surface);padding:3px;gap:3px}
.lab66-language button,.lab66-mood{border:none;background:transparent;border-radius:17px;padding:9px 12px;min-height:35px;font-weight:750;color:var(--ink-2);font-size:11px;cursor:pointer}
.lab66-language button[aria-pressed=true],.lab66-mood[aria-pressed=true]{background:var(--act);color:var(--surface)}
.lab66-note{font-size:11px;line-height:1.55;color:var(--c-deep);margin:14px 0;padding:10px 12px;background:var(--surface);border:1px solid var(--line);border-radius:13px}
.lab66-candidates{display:grid;grid-template-columns:repeat(auto-fill,minmax(151px,1fr));gap:9px;margin:17px 0}
.lab66-candidate{cursor:pointer;display:flex;gap:9px;align-items:center;padding:8px 9px;text-align:left;background:var(--surface);border:1px solid var(--line);border-radius:14px;min-height:65px;color:var(--ink)}
.lab66-candidate[aria-pressed=true]{border-color:var(--ink-2);box-shadow:0 0 0 2px color-mix(in oklab,var(--line-2) 47%,transparent);background:var(--surface)}
.lab66-candidate img{width:48px;height:48px;flex:none;object-fit:contain;image-rendering:auto}
.lab66-cardtext{min-width:0;display:block}.lab66-cardtext strong{display:block;font-size:11px;font-weight:850;letter-spacing:.04em}
.lab66-cardtext small{display:block;font-size:9px;color:var(--ink-2);line-height:1.32;margin-top:4px;overflow-wrap:anywhere}
.lab66-detail{display:grid;grid-template-columns:minmax(240px,1.1fr) minmax(220px,1fr);gap:18px;align-items:stretch}
.lab66-stage-box{display:grid;place-items:center;min-height:330px;background:radial-gradient(ellipse at 50% 72%,var(--surface),var(--surface-2) 71%);border:1px solid var(--line);border-radius:20px;overflow:hidden}
.lab66-stage{width:min(100%,310px);aspect-ratio:360/380;position:relative;display:flex;align-items:center;justify-content:center}
.lab66-cutout{position:relative;inset:0;width:100%;height:100%;contain:layout paint}
.lab66-cutout img{position:absolute;inset:0;width:100%;height:100%;object-fit:fill;pointer-events:none;transition:transform .25s ease-out,opacity .22s ease-out;backface-visibility:hidden}
.lab66-static-avatar{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 9px 8px color-mix(in oklab,var(--ink) 10%,transparent))}
/* Articulated moves are produced by cutout67 pure pose frames, not ad-hoc CSS approximations.
   An entire-character idle offset prevents independent eye/body drift. */
.lab66[data-motion=on] .lab66-cutout{animation:lab67GentleFloat 4.6s ease-in-out infinite}
.lab66[data-motion=off] .lab66-cutout,.lab66[data-motion=off] .lab66-cutout img{animation:none!important;transition:none!important;transform:none!important}
.lab66-cutout img{transition:transform .32s cubic-bezier(.2,.8,.2,1),opacity .26s ease-out}
@keyframes lab67GentleFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-1.5px)}}
.lab66-info{padding:12px 0;min-width:0;align-content:center}
.lab66-info h3{font-size:26px;margin:5px 0;color:var(--ink)}
.lab66-info p{font-size:12px;line-height:1.55;margin:9px 0;overflow-wrap:anywhere;color:var(--ink-2)}
.lab66-tag{display:inline-block;font-size:9px;color:var(--ink);letter-spacing:.12em;font-weight:850;padding:7px 9px;background:var(--surface-2);border-radius:15px}
.lab66-info blockquote{font-size:14px;margin:14px 0;padding:13px 15px;border-left:3px solid var(--line-2);background:var(--surface);border-radius:8px;color:var(--ink)}
.lab66-moods{display:flex;gap:6px;flex-wrap:wrap;margin-top:12px}
.lab66-mood{background:var(--surface);border:1px solid var(--line)}
.lab66-status{font-size:10px;line-height:1.5;min-height:3em;color:var(--ink-2);margin:11px 0}
.lab66-privacy{border-top:1px solid var(--line);padding-top:12px;margin:17px 0 2px;font-size:11px;line-height:1.55;color:var(--ink-2)}
@media(max-width:730px){.lab66-detail{grid-template-columns:1fr}.lab66-candidates{grid-template-columns:repeat(2,minmax(0,1fr))}.lab66-stage-box{min-height:270px}.lab66-stage{width:min(100%,265px)}}
@media(max-width:410px){.lab66-candidate{gap:5px;padding:6px}.lab66-candidate img{width:43px;height:43px}.lab66-cardtext small{font-size:8px}.lab66{padding:12px}}
@media(prefers-reduced-motion:reduce){.lab66 *, .lab66 *::before,.lab66 *::after{animation:none!important;transition:none!important;transform:none!important;scroll-behavior:auto!important}}

/* P2 Motion Studio remains in the same Settings view and does not mutate the game. */
.lab67-controls[hidden]{display:none!important}
.lab67-controls{margin-top:17px;padding:13px;border:1px solid var(--line);background:linear-gradient(130deg,var(--surface),var(--surface));border-radius:15px}
.lab67-kicker{font-size:9px;font-weight:850;letter-spacing:.13em;color:var(--ink-2)}
.lab67-buttons{display:flex;gap:6px;margin-top:10px;flex-wrap:wrap}
.lab67-btn{color:var(--ink);font-size:11px;font-weight:740;border:1px solid var(--line);border-radius:12px;padding:9px 11px;min-height:39px;background:white;cursor:pointer}
.lab67-btn:disabled{opacity:.53;cursor:not-allowed}
.lab67-btn.lab67-play{background:var(--act);color:var(--surface);border-color:var(--ink)}
.lab67-beat{font-size:10px!important;line-height:1.45;color:var(--ink-2)!important;margin:10px 0 0!important}
.lab67-btn:focus-visible,.lab66-mood:focus-visible,.lab66-candidate:focus-visible{outline:3px solid var(--ink-2);outline-offset:2px}
@media(prefers-reduced-motion:reduce){.lab67-controls *{transition:none!important;animation:none!important}}

/* P3 comedy rehearsal — additive to the same existing Character Lab, no independent app. */
.lab68[hidden],.lab68-match[hidden],.lab68-reactions[hidden]{display:none!important}
.lab68{border:1px solid var(--line);border-radius:19px;background:linear-gradient(123deg,var(--surface),var(--surface));margin:23px 0 0;padding:clamp(13px,2vw,20px)}
.lab68-heading{display:flex;gap:14px;justify-content:space-between;align-items:start;flex-wrap:wrap}
.lab68-heading h3{color:var(--ink);font-size:20px;letter-spacing:-.035em;margin:7px 0 5px}
.lab68-heading p,.lab68-tiny{color:var(--ink-2);font-size:11px;line-height:1.65;margin:4px 0}
.lab68-toolbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:15px}
.lab68-toolbar label{color:var(--ink-2);font-size:11px;font-weight:780}
.lab68-toolbar select{background:var(--surface);border:1px solid var(--line);padding:9px 13px;border-radius:12px;font-size:12px;color:var(--ink);min-height:40px}
.lab68-match{margin-top:17px;border-top:1px solid var(--line);padding-top:14px}
.lab68-prompt{color:var(--ink);font-size:15px;font-weight:750;line-height:1.4;margin:4px 0 7px}
.lab68-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px;margin:12px 0}
.lab68-card{cursor:pointer;background:var(--surface);border:1px solid var(--line);border-radius:16px;min-height:95px;padding:14px;display:flex;text-align:left;gap:14px;align-items:start;color:var(--ink);font-size:12px;line-height:1.5}
.lab68-card b{display:grid;place-items:center;border-radius:9px;width:30px;height:30px;flex:none;background:var(--surface);color:var(--ink-2);font-size:15px}
.lab68-card[aria-pressed=true]{border:2px solid var(--ink-2);background:var(--surface)}
.lab68-card:disabled{cursor:default}
.lab68-tie{display:flex;gap:7px;flex-wrap:wrap}
.lab68-result{font-size:12px;line-height:1.55;color:var(--ink);font-weight:700;min-height:18px}
.lab68-reactions{padding:13px;border-radius:14px;border:1px dashed var(--line-2);background:var(--surface)}
.lab68-reactions .lab67-buttons{margin-top:10px}
.lab68-reactions .lab67-btn[aria-pressed=true]{background:var(--act);color:white}
.lab68-card:focus-visible,.lab68-toolbar select:focus-visible,.lab68 button:focus-visible{outline:3px solid var(--ink-2);outline-offset:3px}
@media(max-width:520px){.lab68-cards{grid-template-columns:1fr}.lab68-toolbar{align-items:stretch}.lab68-toolbar label{width:100%}.lab68-toolbar select{flex:1;min-width:0}}
@media(prefers-reduced-motion:reduce){.lab68 *, .lab68 *::before,.lab68 *::after{animation:none!important;transition:none!important}}
/* Readable results: browser disabled-button defaults must not wash out jokes. */
.lab68-card:disabled{opacity:1;color:var(--ink);background:var(--surface)}
.lab68-card[aria-pressed=true]:disabled{background:var(--surface)}
@media(max-width:520px){.lab68-toolbar select{flex:1 0 100%;width:100%}.lab68-toolbar button{flex:1 1 auto}}
