/* avatar.css (R737): the Avatar Studio. Uses the door's tokens from zez.css. */
.av .lead{max-width:44em}
.av-sec{margin:28px 0;padding:20px;border:1px solid var(--edge);border-radius:16px;background:var(--well)}
.av-sec h2{display:flex;align-items:center;gap:12px}
.av-n{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;border:1px solid var(--acb);font-size:15px;font-weight:600;color:var(--ember-soft)}
.av-sub{color:var(--mist);margin:6px 0 14px;max-width:44em}
.av-row{display:flex;flex-wrap:wrap;gap:10px;margin:10px 0}
.av-hide{position:absolute;left:0;top:0;width:1px;height:1px;opacity:0;pointer-events:none;overflow:hidden}
.av-row{position:relative}
.av .av-hide{width:1px;min-height:0;height:1px;padding:0;border:0;margin:0}
.av-row:has(#av-file:focus-visible) label[for=av-file]{outline:2px solid var(--ember-soft);outline-offset:3px}
.av-stage{margin-top:14px}
.av-frame{position:relative;width:min(300px,100%);aspect-ratio:3/4;border-radius:14px;overflow:hidden;background:var(--void);border:1px solid var(--edge)}
.av-frame video,.av-frame canvas,.av-frame .av-guide{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.av-frame video{transform:scaleX(-1)}
.av-guide{pointer-events:none}
.av-note{min-height:1.4em;color:var(--ember-soft);margin:8px 0 0}
.av-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:20px}
@media (min-width:860px){.av-grid{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr)}}
.av-ctl{display:grid;gap:16px}
.av-group{border:0;margin:0;padding:0;min-width:0}
.av-group legend,.av-lab{font-size:14px;font-weight:600;color:var(--ink);margin-bottom:8px;display:block}
.av-sw{display:flex;flex-wrap:wrap;gap:8px}
.av-sw label{position:relative;display:block;width:44px;height:44px;border-radius:50%;cursor:pointer;border:2px solid var(--edge);box-sizing:border-box}
.av-sw input{position:absolute;inset:0;opacity:0;margin:0;cursor:pointer}
.av-sw label:has(input:checked){border-color:var(--ink);box-shadow:0 0 0 2px var(--night),0 0 0 4px var(--ember-soft)}
.av-sw label:has(input:focus-visible){outline:2px solid var(--ember-soft);outline-offset:3px}
.av-sel{width:100%;min-height:44px;border-radius:10px;background:var(--well2);color:var(--ink);border:1px solid var(--acb);padding:0 12px;font:inherit}
.av-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.av-fig{margin:0;min-width:0}
.av-pic{position:relative;width:100%;max-width:420px;aspect-ratio:1;border-radius:50%;overflow:hidden;background:var(--well2);border:1px solid var(--edge);display:flex;align-items:center;justify-content:center}
.av-pic img{width:100%;height:100%;display:block}
.av-pic img[hidden]{display:none}
.av-ph{padding:24px;text-align:center;color:var(--haze);margin:0;box-sizing:border-box;max-width:100%}
.av-terms{margin:8px 0 12px}
.av-terms summary{cursor:pointer;min-height:44px;display:flex;align-items:center;gap:8px;color:var(--ink);list-style:none}
.av-terms summary::-webkit-details-marker{display:none}
.av-terms summary::before{content:"\25B8";display:inline-block;color:var(--ember-soft)}
.av-terms[open] summary::before{transform:rotate(90deg)}
.av-terms pre{white-space:pre-wrap;word-break:break-word;font:14px/1.5 var(--fb,system-ui,sans-serif);color:var(--mist);background:var(--well2);padding:14px;border-radius:10px;max-height:320px;overflow:auto}
.av-checks{border:0;padding:0;margin:0 0 6px;display:grid;gap:10px}
.av-checks label{display:flex;gap:10px;align-items:flex-start;min-height:44px;color:var(--mist)}
.av-checks input{width:20px;height:20px;margin-top:2px;flex:none}
.av-mine{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:14px}
.av-card{margin:0}
.av-card img{width:100%;aspect-ratio:1;border-radius:50%;display:block;background:var(--well2)}
.av-card figcaption{font-size:13px;color:var(--haze);margin-top:6px}
.av-small{font-size:13px;color:var(--haze);max-width:44em}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
@media (prefers-reduced-motion:no-preference){.av-pic img{transition:opacity .2s ease}}
@media (max-width:420px){.av-sec{padding:16px}.av-pair{grid-template-columns:1fr}}
@media (max-width:859px){.av-fig{order:-1}.av-pic{max-width:280px;margin:0 auto}.av-fig .av-row,.av-fig figcaption{justify-content:center;text-align:center}}
