.nova-model, .nova-model-fallback {
  display: block; width: auto; height: 100%; aspect-ratio: 1 / 1;
  max-width: 100%; object-fit: contain; margin: 0 auto; flex: 0 0 auto;
  touch-action: manipulation; filter: none; transform: translateZ(0);
}
.nova-model[hidden], .nova-model-fallback[hidden] { display: none; }
#stage:has(.nova-model)::before { display: none; }
#stage:has(.nova-model) { isolation: isolate; }
#stage .nova-model, #stage .nova-model-fallback { position: relative; z-index: 1; }
.nova-selecting { overflow: hidden; }
.nova-picker {
  --nova-accent: #dea36d;
  width: min(860px, calc(100vw - 40px)); max-width: none; max-height: min(880px, calc(100dvh - 40px));
  padding: 0; margin: auto; overflow: auto; color: #f2f2f3;
  background: #10141d; border: 1px solid #ffffff1c; border-radius: 28px;
  box-shadow: 0 30px 100px #0009; font-family: var(--sans, sans-serif);
  overscroll-behavior: contain; scrollbar-width: thin;
}
.nova-picker::backdrop { background: #030711dd; }
.nova-picker button { font-family: inherit; -webkit-tap-highlight-color: transparent; touch-action: manipulation; }
.nova-picker button:focus-visible, .nova-settings-button:focus-visible { outline: 2px solid var(--nova-accent, #adc8ef); outline-offset: 4px; }
.nova-choice-shell { padding: 32px; }
.nova-choice-head { position: relative; }
.nova-choice-kicker { color: #979eac; font-size: 10px; letter-spacing: .2em; font-weight: 600; }
.nova-choice-head h1 { margin: 15px 0 8px; font: 500 36px/1.13 var(--serif, Georgia, serif); letter-spacing: -.025em; }
.nova-choice-head h1 br { display: none; }
.nova-choice-head h1:focus { outline: none; }
.nova-choice-head p { margin: 0; font-size: 13px; line-height: 1.5; color: #aab0bd; }
.nova-choice-close { position: absolute; right: -6px; top: -8px; width: 40px; height: 40px; padding: 10px; border: 1px solid #ffffff18; background: #ffffff05; color: #c4c9d1; border-radius: 50%; }
.nova-choice-close[hidden] { display: none; }
.nova-choice-close svg { width: 100%; height: 100%; }
.nova-choice-content { display: grid; grid-template-columns: 1fr 1fr; gap: 26px; margin-top: 28px; align-items: center; }
.nova-choice-portrait { position: relative; height: 460px; min-width: 0; overflow: hidden; border-radius: 18px; background: radial-gradient(ellipse at 50% 40%, #b1baca18, transparent 69%); }
.nova-choice-portrait::after { content: ""; position: absolute; bottom: 26px; left: 25%; right: 25%; height: 1px; background: linear-gradient(90deg, transparent, var(--nova-accent), transparent); opacity: .45; pointer-events: none; }
.nova-choice-model { height: 100%; display: flex; align-items: center; justify-content: center; }
.nova-choice-personality { position: absolute; bottom: 2px; left: 0; right: 0; color: var(--nova-accent); text-align: center; font-size: 11px; letter-spacing: .045em; }
.nova-choice-loading { position: absolute; top: 12px; left: 0; right: 0; text-align: center; color: #c6cbd4; font-size: 11px; }
.nova-choice-options { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 9px; }
.nova-choice-option { background: transparent; padding: 0; border: 0; color: #9da5b5; min-width: 0; cursor: pointer; }
.nova-choice-thumb { height: 120px; display: block; position: relative; overflow: hidden; border-radius: 13px; background: linear-gradient(180deg,#212631,#151923); border: 1px solid #ffffff10; transition: border-color .15s, background .15s; }
.nova-choice-thumb img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 50% 35%; transform: scale(1.55); transform-origin: 50% 32%; }
.nova-choice-option strong { display: block; font-size: 10.5px; font-weight: 500; text-align: center; padding: 9px 0 0; }
.nova-choice-thumb i { position: absolute; right: 6px; bottom: 6px; width: 19px; height: 19px; background: var(--nova-accent); color: #11151c; border-radius: 50%; display: none; }
.nova-choice-thumb svg { width: 19px; height: 19px; }
.nova-choice-option[aria-pressed="true"] { color: #f4f4f5; }
.nova-choice-option[aria-pressed="true"] .nova-choice-thumb { border-color: var(--nova-accent); background: linear-gradient(180deg,#353b47,#1d222e); }
.nova-choice-option[aria-pressed="true"] i { display: block; }
.nova-choice-option:active { transform: translateY(1px); }
.nova-choice-copy { margin-top: 26px; min-height: 192px; }
.nova-choice-copy h2 { margin: 0 0 10px; font: 500 24px/1.2 var(--serif,Georgia,serif); letter-spacing: -.015em; }
.nova-choice-description { font-size: 13px; line-height: 1.6; color: #c5c9d1; margin: 0 0 13px; }
.nova-choice-traits { display: flex; flex-wrap: wrap; gap: 6px; }
.nova-choice-traits span { border: 1px solid #ffffff13; border-radius: 6px; padding: 5px 7px; color: var(--nova-accent); font-size: 10px; line-height: 1; }
.nova-choice-appearance { color: #969eae; font-size: 11px; line-height: 1.5; margin: 13px 0 0; }
.nova-choice-footer { margin-top: 18px; }
.nova-choice-confirm { width: 100%; min-height: 50px; display: flex; align-items: center; justify-content: space-between; padding: 13px 18px; border-radius: 12px; border: 1px solid #ffffff45; background: linear-gradient(180deg,#e5eaf3,#bdc9db); color: #16212f; box-shadow: inset 0 1px #fff8, 0 3px 0 #64728a, 0 7px 20px #0003; font-size: 13px; font-weight: 700; cursor: pointer; }
.nova-choice-confirm svg { width: 19px; height: 19px; }
.nova-choice-confirm:active { transform: translateY(1px); box-shadow: inset 0 1px #fff8, 0 2px 0 #64728a; }
.nova-choice-confirm:disabled { opacity: .5; cursor: wait; }
.nova-choice-note { margin: 13px 0 0; text-align: center; color: #8c96a6; font-size: 10px; }
.nova-choice-error { color: #f6b7ad; font-size: 12px; line-height: 1.4; margin: 0 0 10px; }
.nova-choice-error:empty { display: none; }
.nova-settings-heading { font: 600 10px var(--sans,sans-serif); text-transform: uppercase; letter-spacing: .1em; color: var(--muted); margin-bottom: 12px; }
.nova-settings-button { display: flex; align-items: center; gap: 12px; border: 0; border-radius: 10px; padding: 0; width: 100%; color: var(--text); background: transparent; text-align: left; }
.nova-settings-button img { width: 48px; height: 60px; object-fit: cover; object-position: 50% 30%; border-radius: 9px; background: #273040; }
.nova-settings-button > span { flex: 1; }
.nova-settings-button b { display: block; font: 600 14px var(--sans,sans-serif); }
.nova-settings-button small { display: block; margin-top: 5px; color: var(--muted); font: 400 11px var(--sans,sans-serif); }
.nova-settings-button i { display: flex; align-items: center; gap: 5px; font: 500 11px var(--sans,sans-serif); color: #b6ccec; }
.nova-settings-button svg { width: 16px; height: 16px; }
.hcard .ava img[data-nova-avatar] { width: 100%; height: 100%; object-fit: cover; object-position: 50% 15%; }
@media(max-width:600px) {
  .nova-picker { width: 100%; max-height: 100dvh; height: 100dvh; border: 0; border-radius: 0; }
  .nova-choice-shell { padding: max(22px, env(safe-area-inset-top)) 24px max(18px, env(safe-area-inset-bottom)); min-height: 100%; display: flex; flex-direction: column; box-sizing: border-box; }
  .nova-choice-head h1 { font-size: 31px; margin-top: 12px; }
  .nova-choice-head h1 br { display: initial; }
  .nova-choice-head p { font-size: 11px; }
  .nova-choice-content { display: flex; flex-direction: column; gap: 12px; margin-top: 12px; flex: 1; }
  .nova-choice-portrait { width: 100%; height: clamp(180px,29dvh,310px); flex: 0 0 auto; }
  .nova-choice-model { padding-bottom: 15px; box-sizing: border-box; }
  .nova-choice-personality { bottom: 0; font-size: 10px; }
  .nova-choice-portrait::after { bottom: 20px; }
  .nova-choice-details { width: 100%; flex: 1; display: flex; flex-direction: column; }
  .nova-choice-options { gap: 10px; }
  .nova-choice-thumb { height: clamp(80px,12dvh,110px); }
  .nova-choice-option strong { font-size: 10px; padding-top: 7px; }
  .nova-choice-copy { margin-top: 17px; min-height: 0; }
  .nova-choice-copy h2 { font-size: 23px; margin-bottom: 7px; }
  .nova-choice-description { font-size: 12px; line-height: 1.5; margin-bottom: 10px; }
  .nova-choice-appearance { font-size: 10px; margin-top: 10px; }
  .nova-choice-traits span { font-size: 9px; padding: 5px 7px; }
  .nova-choice-footer { margin-top: auto; padding-top: 18px; }
}
@media(max-width:600px) and (max-height:740px) {
  .nova-choice-shell { padding: 17px 20px; }
  .nova-choice-head h1 { font-size: 27px; margin-top: 9px; }
  .nova-choice-head h1 br { display: none; }
  .nova-choice-head p { font-size: 10px; }
  .nova-choice-portrait { height: 160px; }
  .nova-choice-content { margin-top: 8px; gap: 10px; }
  .nova-choice-thumb { height: 80px; }
  .nova-choice-copy { margin-top: 13px; }
  .nova-choice-copy h2 { font-size: 21px; }
  .nova-choice-footer { padding-top: 13px; }
}
@media(prefers-reduced-motion:reduce) {
  .nova-choice-thumb { transition: none; }
}
