
/* PV LAB Character Studio | Soul ID creation */
#hf-dialog.hf-character-dialog{
  width:min(1020px,calc(100vw - 32px));max-width:1020px;max-height:calc(100dvh - 40px);
  margin:auto;padding:0;overflow:auto;overscroll-behavior:contain;
  background:#191a1c;color:#f4f3f0;border:1px solid #3d3f41;border-radius:20px;
  box-shadow:0 32px 105px #000c;scrollbar-width:thin;scrollbar-color:#454648 transparent;
}
#hf-dialog.hf-character-dialog::backdrop{background:rgba(3,4,5,.8);backdrop-filter:blur(10px)}
#hf-dialog .hf-shell{min-width:0}
#hf-dialog .hf-modal-header{
  position:relative;top:auto;z-index:auto;backdrop-filter:none;
  display:flex;justify-content:space-between;align-items:flex-start;gap:20px;
  padding:20px 32px 17px;border-bottom:1px solid #35373a;background:#1e1f21;
}
#hf-dialog .hf-kicker{display:block;margin-bottom:7px;color:#efb951;font-size:10px;font-weight:750;letter-spacing:.17em}
#hf-dialog .hf-modal-header h2{margin:0;font-size:clamp(25px,3vw,31px);line-height:1.08;letter-spacing:-.045em;font-weight:740}
#hf-dialog #hf-intro{margin:6px 0 0;color:#a9aaac;font-size:11.5px;line-height:1.5}
#hf-dialog .hf-close{
  display:grid;place-items:center;flex:0 0 34px;width:34px;height:34px;
  padding:0;border:1px solid #45474a;border-radius:50%;background:#292b2e;
  color:#e7e7e6;font-size:22px;line-height:1;transition:background .18s,border-color .18s;
}
#hf-dialog .hf-close:hover{background:#38393b;border-color:#71706c}
#hf-dialog .hf-library-view,#hf-dialog .hf-create-view{padding:18px 32px 22px}
#hf-dialog .hf-character-banner{
  position:relative;display:grid;grid-template-columns:1fr auto;align-items:end;gap:22px;
  min-height:185px;overflow:hidden;padding:30px 32px;border:1px solid #484039;border-radius:16px;
  background:radial-gradient(ellipse at 82% 35%,#7d614345 0,transparent 46%),linear-gradient(115deg,#2c2928,#1e2021 64%,#232122);
}
#hf-dialog .hf-character-banner::after{
  content:"";position:absolute;right:19%;top:-120px;width:360px;height:360px;opacity:.45;
  border:1px solid #a28a695e;border-radius:48% 52% 40% 60%;
  box-shadow:0 0 0 28px #8067490c,0 0 0 56px #8067490d,0 0 0 88px #8067490a;
  transform:rotate(-22deg);pointer-events:none;
}
#hf-dialog .hf-banner-copy{position:relative;z-index:1;min-width:0}
#hf-dialog .hf-banner-copy small{display:block;margin-bottom:12px;color:#d3b27a;letter-spacing:.14em;font-size:10px;font-weight:750}
#hf-dialog .hf-banner-copy h3{margin:0;color:#f5f3ef;font-size:clamp(25px,3.25vw,39px);line-height:1.03;letter-spacing:-.048em;font-weight:750}
#hf-dialog .hf-banner-copy p{max-width:430px;margin:13px 0 0;color:#b5b1ac;font-size:12px;line-height:1.6}
#hf-dialog .hf-gold-button{
  display:inline-flex;align-items:center;justify-content:center;gap:13px;position:relative;z-index:1;
  padding:11px 19px;min-height:43px;white-space:nowrap;background:#efb951;color:#191713;
  border:1px solid #efb951;border-radius:10px;font-size:13px;font-weight:730;
  letter-spacing:-.01em;box-shadow:none;transition:background .18s,transform .18s;
}
#hf-dialog .hf-gold-button:hover:not(:disabled){background:#ffd079;transform:translateY(-1px)}
#hf-dialog .hf-gold-button:disabled{opacity:1;background:#3d3b39;border-color:#514a42;color:#a8a09a;cursor:not-allowed;transform:none}
#hf-dialog .hf-library-toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:27px 0 13px}
#hf-dialog .hf-library-toolbar strong{font-size:16px;letter-spacing:-.025em}
#hf-dialog .hf-library-toolbar small{margin-left:11px;color:#8e9190;font-size:11px}
#hf-dialog .hf-text-action{border:0;background:transparent;color:#b3b3b2;font-size:12px;padding:8px 2px}
#hf-dialog .hf-text-action:hover{color:#fff}
#hf-dialog #hf-characters{display:grid;grid-template-columns:repeat(auto-fill,minmax(144px,1fr));gap:13px;margin:0}
#hf-dialog #hf-characters .composer-library-card{
  padding:8px 8px 12px;background:#232526;border:1px solid #454647;
  border-radius:14px;display:flex;flex-direction:column;gap:8px;min-width:0;color:#f3f2f0;text-align:left;
}
#hf-dialog #hf-characters .composer-library-card:hover:not(:disabled){border-color:#bb9156;background:#292929}
#hf-dialog #hf-characters .composer-library-card[aria-pressed=true]{border-color:#efb951}
#hf-dialog #hf-characters .composer-library-card:disabled{opacity:.75}
#hf-dialog #hf-characters .composer-library-photo{width:100%;aspect-ratio:1;display:grid;place-items:center;background:linear-gradient(135deg,#44413d,#222426);border-radius:9px;overflow:hidden;color:#c0a57a;font-size:31px;letter-spacing:-.05em}
#hf-dialog #hf-characters .composer-library-photo img{width:100%;height:100%;object-fit:cover}
#hf-dialog #hf-characters .composer-library-card strong{padding:0 4px;font-size:13px}
#hf-dialog #hf-characters .composer-library-card small{padding:0 4px;color:#aaa8a5;font-size:10px}
#hf-dialog .hf-empty-state{grid-column:1/-1;display:flex;align-items:center;gap:16px;min-height:107px;padding:22px;border:1px dashed #4b4b49;border-radius:13px;background:#212223}
#hf-dialog .hf-empty-symbol{display:grid;place-items:center;flex:0 0 46px;width:46px;height:46px;border:1px solid #5a5042;border-radius:13px;color:#efb951;font-size:23px}
#hf-dialog .hf-empty-state strong{display:block;color:#e7e7e6;font-size:13px}
#hf-dialog .hf-empty-state span:last-child{display:block;color:#aaa6a2;font-size:11px;margin-top:3px}
#hf-dialog .hf-library-message{margin:10px 0 0;color:#c8a877;font-size:12px}
#hf-dialog .hf-library-message:empty{display:none}
#hf-dialog .hf-step-row{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 0 10px}
#hf-dialog .hf-back{border:0;padding:6px 0;background:none;color:#bebbb7;font-size:12px}
#hf-dialog .hf-back:hover{color:#fff}
#hf-dialog .hf-step-row>span{font-size:10px;letter-spacing:.12em;color:#a09e99;font-weight:700}
#hf-dialog .hf-create-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:0 0 12px}
#hf-dialog .hf-create-heading h3{margin:0;font-size:23px;line-height:1.15;letter-spacing:-.04em;font-weight:650}
#hf-dialog .hf-create-heading p{max-width:560px;margin:4px 0 0;color:#aaaeb0;font-size:11.5px;line-height:1.45}
#hf-dialog .hf-price-box{flex:none;min-width:138px;padding:8px 13px;border:1px solid #62513a;border-radius:10px;background:linear-gradient(145deg,#292a29,#242526)}
#hf-dialog .hf-price-box small{display:block;margin-bottom:2px;color:#aaa7a0;font-size:10px}
#hf-dialog .hf-price-box strong{font-size:14px;line-height:1.4;color:#efb951;white-space:nowrap}
#hf-dialog .hf-name-field{display:block;margin:0 0 13px}
#hf-dialog .hf-name-field .label{display:block;margin:0 0 6px;font-size:10px;letter-spacing:.12em;color:#a9abac;font-weight:750}
#hf-dialog #hf-training-name{
  width:100%;height:42px;margin:0;padding:9px 13px;background:#232528;
  border:1px solid #474a4d;border-radius:10px;color:#f6f5f2;font-size:13px;outline:none;
}
#hf-dialog #hf-training-name:focus{border-color:#efb951;box-shadow:0 0 0 2px #efb95124}
#hf-dialog #hf-training-name::placeholder{color:#797b7b}
#hf-dialog .hf-upload-methods{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:0 0 11px}
#hf-dialog .hf-upload-choice{
  display:flex;flex-direction:column;justify-content:center;align-items:center;gap:6px;
  min-height:122px;padding:12px 16px;background:linear-gradient(155deg,#292b2d,#242628);
  border:1px solid #42464a;border-radius:12px;color:#f4f3f1;text-align:center;
  transition:border-color .15s,background .15s;
}
#hf-dialog .hf-upload-choice:hover,#hf-dialog .hf-upload-choice.is-selected,#hf-dialog .hf-upload-choice.is-dragging{
  border-color:#bb925b;background:linear-gradient(155deg,#333231,#28292a);
}
#hf-dialog .hf-upload-choice .hf-choice-icon{display:grid;place-items:center;width:36px;height:36px;background:#333638;border:1px solid #505356;border-radius:10px;color:#efb951;font-size:20px;line-height:1}
#hf-dialog .hf-upload-choice strong{font-size:13px;letter-spacing:-.015em;font-weight:670}
#hf-dialog .hf-upload-choice small{color:#a9aaab;font-size:10.5px;line-height:1.4}
#hf-dialog .hf-file-input{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;clip-path:inset(50%);opacity:0;pointer-events:none}
#hf-dialog .hf-pack-picker{margin:0 0 15px;padding:13px 15px;border:1px solid #484746;border-radius:11px;background:#222324}
#hf-dialog .hf-pack-picker label{display:block;margin:0;color:#b9b6b2;font-size:11px}
#hf-dialog #hf-training-pack{
  display:block;width:100%;margin-top:7px;padding:10px 12px;border:1px solid #52514f;border-radius:8px;
  background:#181a1b;color:#f1f0ee;font-size:12px;
}
#hf-dialog .hf-photo-section{padding:11px 13px;border:1px solid #3d4144;border-radius:12px;background:#202224}
#hf-dialog .hf-photo-header{display:flex;justify-content:space-between;align-items:center;gap:14px}
#hf-dialog .hf-photo-header strong{font-size:13px}
#hf-dialog #hf-training-count{margin-left:10px;color:#c9aa76;font-size:11px}
#hf-dialog #hf-photo-clear{border:0;padding:4px 0;background:transparent;color:#adaaa6;font-size:11px}
#hf-dialog #hf-photo-clear:hover{color:#fff}
#hf-dialog .hf-photo-empty{display:flex;justify-content:center;align-items:center;gap:10px;min-height:49px;color:#929698;font-size:11px}
#hf-dialog .hf-photo-empty-mark{width:28px;height:28px;border:1px dashed #5c6164;border-radius:8px;display:grid;place-items:center;font-size:17px}
#hf-dialog #hf-training-preview{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(80px,1fr));gap:9px;
  max-width:none;max-height:290px;overflow-y:auto;overflow-x:hidden;padding:0;margin-top:12px;
  scrollbar-color:#505151 transparent;scrollbar-width:thin;
}
#hf-dialog #hf-training-preview:empty{display:none}
#hf-dialog .hf-preview-tile{
  position:relative;min-width:0;aspect-ratio:4/5;border:1px solid #545251;border-radius:9px;overflow:hidden;
  background:linear-gradient(135deg,#383a3b,#252526);
}
#hf-dialog .hf-preview-tile>img,#hf-dialog .hf-preview-tile>.hf-preview-saved,#hf-dialog .hf-preview-saved img{
  display:block;width:100%;height:100%;object-fit:cover;border-radius:0;
}
#hf-dialog .hf-preview-saved{display:grid!important;place-items:center;color:#aa9577;font-size:20px}
#hf-dialog .hf-preview-tile button{
  position:absolute;right:4px;top:4px;display:grid;place-items:center;width:24px;height:24px;
  padding:0;border:1px solid #ffffff5e;border-radius:50%;background:#141414dc;color:#fff;font-size:17px;
}
#hf-dialog .hf-preview-extra{display:grid;place-items:center;min-height:75px;border:1px dashed #55504a;border-radius:9px;color:#b6a386;font-size:12px;text-align:center}
#hf-dialog .hf-photo-guides{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:9px 0 11px}
#hf-dialog .hf-photo-guide{display:flex;gap:10px;min-width:0;padding:10px 12px;border:1px solid #3f4447;border-radius:11px;background:#242628}
#hf-dialog .hf-guide-mark{flex:0 0 25px;display:grid;place-items:center;width:25px;height:25px;border:1px solid #746343;border-radius:50%;color:#efb951;font-size:13px}
#hf-dialog .hf-photo-guide.is-avoid .hf-guide-mark{border-color:#655a56;color:#bfa9a1}
#hf-dialog .hf-photo-guide strong{display:block;font-size:12px;color:#e9e6e3}
#hf-dialog .hf-photo-guide p{margin:2px 0 0;font-size:10.5px;line-height:1.45;color:#a6aaac}
#hf-dialog .hf-create-bottom{padding:12px 15px;border:1px solid #434548;border-radius:12px;background:#252628}
#hf-dialog .hf-consent{display:flex!important;align-items:flex-start;gap:10px;margin:0}
#hf-dialog #hf-training-confirm{flex:none;width:16px;height:16px;margin:2px 0 0;accent-color:#efb951}
#hf-dialog #hf-training-consent-copy{font-size:11px;line-height:1.55;color:#c7c3be}
#hf-dialog #hf-training-offer-note{margin:9px 0 0 26px;color:#a9a5a0;font-size:10px}
#hf-dialog .hf-bottom-actions{display:flex;align-items:center;justify-content:flex-end;gap:18px;margin-top:9px}
#hf-dialog #hf-training-status{flex:1;margin:0 auto 0 0;color:#d3b689;font-size:11px;line-height:1.5;overflow-wrap:anywhere}
#hf-dialog #hf-training-status:empty{display:none}
#hf-dialog #hf-training-submit{flex:none;width:auto;min-width:220px;margin:0}
#hf-dialog button:focus-visible,#hf-dialog input:focus-visible,#hf-dialog select:focus-visible{outline:2px solid #efb951;outline-offset:3px}
#hf-dialog button:disabled{cursor:not-allowed}

/* Modal header is not the site's sticky navigation. Preserve full form visibility. */
#hf-dialog .hf-modal-header{box-shadow:none}
#hf-dialog .hf-upload-choice .hf-choice-icon svg{display:block;width:19px;height:19px;stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
#hf-dialog .hf-upload-choice:focus-visible{outline:2px solid #efb951;outline-offset:3px}
@media (min-width:741px) and (max-height:820px){
  #hf-dialog.hf-character-dialog{max-height:calc(100dvh - 22px)}
  #hf-dialog .hf-modal-header{padding-top:16px;padding-bottom:14px}
  #hf-dialog .hf-library-view,#hf-dialog .hf-create-view{padding-top:14px;padding-bottom:16px}
  #hf-dialog .hf-upload-choice{min-height:106px;padding-block:9px}
  #hf-dialog .hf-photo-empty{min-height:39px}
  #hf-dialog .hf-photo-guides{margin-block:7px}
  #hf-dialog .hf-step-row{margin-bottom:7px}
}

@media(max-width:740px){
  #hf-dialog.hf-character-dialog{width:calc(100vw - 18px);max-height:94dvh;border-radius:16px}
  #hf-dialog .hf-modal-header{padding:21px 20px 18px}
  #hf-dialog .hf-library-view,#hf-dialog .hf-create-view{padding:19px 20px 22px}
  #hf-dialog .hf-character-banner{padding:23px;min-height:172px}
  #hf-dialog .hf-banner-copy h3{font-size:30px}
  #hf-dialog .hf-create-heading h3{font-size:24px}
  #hf-dialog #hf-characters{grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}
}
@media(max-width:530px){
  #hf-dialog .hf-modal-header h2{font-size:26px}
  #hf-dialog .hf-modal-header{padding:20px 16px}
  #hf-dialog .hf-library-view,#hf-dialog .hf-create-view{padding:16px}
  #hf-dialog .hf-character-banner{display:flex;flex-direction:column;align-items:flex-start;gap:17px;padding:22px;min-height:0}
  #hf-dialog .hf-banner-copy h3{font-size:28px}
  #hf-dialog .hf-banner-copy p{font-size:11px}
  #hf-dialog .hf-gold-button{min-height:43px;padding:11px 15px}
  #hf-dialog .hf-library-toolbar{margin:21px 0 12px}
  #hf-dialog .hf-library-toolbar small{display:block;margin-left:0}
  #hf-dialog #hf-characters{grid-template-columns:repeat(2,minmax(0,1fr))}
  #hf-dialog .hf-create-heading{align-items:stretch;gap:11px}
  #hf-dialog .hf-create-heading h3{font-size:23px}
  #hf-dialog .hf-price-box{min-width:102px;padding:9px 10px}
  #hf-dialog .hf-price-box strong{font-size:13px}
  #hf-dialog .hf-price-box small{font-size:9px}
  #hf-dialog .hf-upload-methods{gap:9px}
  #hf-dialog .hf-upload-choice{min-height:139px;padding:13px 8px}
  #hf-dialog .hf-upload-choice strong{font-size:12px}
  #hf-dialog .hf-upload-choice small{font-size:10px}
  #hf-dialog .hf-photo-guides{grid-template-columns:1fr;gap:8px}
  #hf-dialog .hf-photo-section{padding:12px}
  #hf-dialog #hf-training-preview{grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}
  #hf-dialog #hf-training-count{display:block;margin:2px 0 0}
  #hf-dialog .hf-bottom-actions{flex-direction:column;align-items:stretch}
  #hf-dialog #hf-training-submit{min-width:0;width:100%}
  #hf-dialog .hf-create-bottom{padding:14px}
}
@media(prefers-reduced-motion:reduce){
  #hf-dialog .hf-gold-button,#hf-dialog .hf-upload-choice,#hf-dialog .hf-close{transition:none}
}
