:root {
  color-scheme: dark;
  --ink: #07090d;
  --surface: #0e131b;
  --surface-2: #121925;
  --line: rgba(255, 255, 255, .11);
  --line-strong: rgba(255, 255, 255, .19);
  --text: #f6f7fa;
  --muted: #9ba5b4;
  --orange: #ff7a00;
  --pink: #ee3cc3;
  --green: #52d99b;
  --red: #ff6b73;
  --radius: 22px;
  --shadow: 0 28px 80px rgba(0, 0, 0, .36);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  min-height: 100vh;
  margin: 0;
  color: var(--text);
  background:
    radial-gradient(circle at 12% -10%, rgba(238, 60, 195, .11), transparent 31rem),
    radial-gradient(circle at 88% 10%, rgba(255, 122, 0, .08), transparent 28rem),
    var(--ink);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  -webkit-font-smoothing: antialiased;
}

a { color: inherit; text-decoration: none; }
button, input, textarea { font: inherit; }
button, a, input, textarea { -webkit-tap-highlight-color: transparent; }
img { max-width: 100%; }
button:focus-visible,
a:focus-visible,
input:focus-visible,
textarea:focus-visible { outline: 3px solid var(--orange); outline-offset: 3px; }

.site-header,
.admin-header {
  width: min(1220px, calc(100% - 40px));
  min-height: 82px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  border-bottom: 1px solid var(--line);
}

.brand { display: inline-flex; align-items: center; gap: 11px; }
.brand-mark {
  width: 38px;
  height: 38px;
  display: grid;
  place-items: center;
  color: var(--pink);
  border: 1px solid rgba(238, 60, 195, .42);
  border-radius: 11px;
  background: rgba(238, 60, 195, .08);
  font-size: 11px;
  font-weight: 950;
  letter-spacing: -.05em;
}
.brand > span:last-child { display: grid; gap: 3px; }
.brand strong { font-size: 12px; letter-spacing: .12em; }
.brand small { color: var(--muted); font-size: 8px; font-weight: 800; letter-spacing: .2em; }
.site-header nav { display: flex; align-items: center; gap: 28px; color: #d3d8e0; font-size: 12px; font-weight: 750; }
.site-header nav a:hover { color: var(--orange); }

main { width: min(1220px, calc(100% - 40px)); margin: 0 auto; }
.library-hero {
  min-height: 430px;
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 60px;
  align-items: center;
  padding: 70px 0 64px;
  border-bottom: 1px solid var(--line);
}
.eyebrow,
.admin-kicker {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  color: #ffc3ed;
  font-size: 10px;
  font-weight: 900;
  letter-spacing: .18em;
}
.eyebrow i { width: 7px; height: 7px; border-radius: 50%; background: var(--pink); box-shadow: 0 0 16px var(--pink); }
.library-hero h1 {
  max-width: 820px;
  margin: 23px 0 0;
  font-family: Impact, "Arial Narrow", sans-serif;
  font-size: clamp(56px, 7vw, 96px);
  font-weight: 900;
  line-height: .9;
  letter-spacing: -.035em;
}
.library-hero h1 em { color: transparent; -webkit-text-stroke: 1px rgba(255, 255, 255, .72); font-style: normal; }
.hero-copy > p { max-width: 590px; margin: 27px 0 0; color: var(--muted); font-size: 15px; line-height: 1.75; }
.hero-stat {
  width: 170px;
  height: 170px;
  display: grid;
  place-content: center;
  gap: 9px;
  text-align: center;
  border: 1px solid var(--line-strong);
  border-radius: 50%;
  background: radial-gradient(circle, rgba(255, 122, 0, .11), rgba(255, 255, 255, .02) 62%);
  box-shadow: 0 0 80px rgba(255, 122, 0, .08);
}
.hero-stat span { font-family: Impact, sans-serif; font-size: 48px; line-height: 1; }
.hero-stat small { color: var(--orange); font-size: 8px; font-weight: 900; line-height: 1.45; letter-spacing: .16em; }

.catalog-section { padding: 64px 0 115px; }
.section-title { display: flex; justify-content: space-between; align-items: end; gap: 40px; margin-bottom: 32px; }
.section-title span { color: var(--orange); font-size: 9px; font-weight: 900; letter-spacing: .2em; }
.section-title h2 { margin: 10px 0 0; font-size: clamp(31px, 4vw, 46px); letter-spacing: -.045em; }
.section-title > p { max-width: 330px; margin: 0; color: var(--muted); font-size: 12px; line-height: 1.65; text-align: right; }
.model-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.model-card {
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: linear-gradient(150deg, rgba(255,255,255,.055), rgba(255,255,255,.018));
  box-shadow: 0 18px 55px rgba(0, 0, 0, .2);
  transition: transform .25s ease, border-color .25s ease;
}
.model-card:hover { transform: translateY(-5px); border-color: rgba(238, 60, 195, .42); }
.model-media { position: relative; aspect-ratio: 4 / 3; overflow: hidden; display: grid; place-items: center; background: #151a22; }
.model-media::after { content: ""; position: absolute; inset: auto 0 0; height: 30%; background: linear-gradient(transparent, rgba(7,9,13,.62)); }
.model-media img { width: auto; height: auto; max-width: 100%; max-height: 100%; display: block; object-fit: contain; object-position: center; }
.model-card:hover .model-media img { transform: none; }
.new-badge { position: absolute; z-index: 2; top: 14px; left: 14px; padding: 7px 9px; color: #07090d; border-radius: 999px; background: var(--orange); font-size: 8px; font-weight: 950; letter-spacing: .12em; }
.model-body { min-height: 250px; padding: 24px; display: flex; flex-direction: column; }
.model-body h3 { margin: 0; font-size: 21px; letter-spacing: -.025em; }
.model-body > p { margin: 12px 0 23px; color: var(--muted); font-size: 13px; line-height: 1.65; }
.model-body .button { margin-top: auto; }
.model-body > small { margin-top: 11px; color: #747f8e; font-size: 9px; text-align: center; }
.button {
  min-height: 50px;
  padding: 0 19px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  border: 0;
  border-radius: 13px;
  cursor: pointer;
  font-size: 13px;
  font-weight: 900;
  transition: transform .2s ease, filter .2s ease, border-color .2s ease;
}
.button:hover { transform: translateY(-2px); filter: brightness(1.06); }
.button-download { color: #080a0e; background: linear-gradient(100deg, var(--orange), #ff9b35); box-shadow: 0 13px 35px rgba(255, 122, 0, .15); }
.button-ghost { border: 1px solid var(--line-strong); background: rgba(255,255,255,.04); }
.empty-state { padding: 90px 24px; text-align: center; border: 1px dashed var(--line-strong); border-radius: var(--radius); background: rgba(255,255,255,.02); }
.empty-state .empty-icon { display: block; color: var(--pink); font-size: 34px; }
.empty-state h2 { margin: 16px 0 9px; font-size: 25px; }
.empty-state p { margin: 0 0 24px; color: var(--muted); }

footer {
  width: min(1220px, calc(100% - 40px));
  min-height: 150px;
  margin: 0 auto;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 35px;
  color: var(--muted);
  border-top: 1px solid var(--line);
}
footer > div > p { margin: 15px 0 0; font-size: 11px; }
footer nav { display: flex; gap: 25px; font-size: 11px; }
footer a:hover { color: white; }

/* Admin */
.admin-body { background: #080b10; }
.admin-header { position: sticky; z-index: 15; top: 0; width: 100%; min-height: 74px; padding: 0 max(28px, calc((100% - 1280px) / 2)); background: rgba(8,11,16,.91); backdrop-filter: blur(18px); }
.admin-header-actions { display: flex; align-items: center; gap: 19px; font-size: 11px; font-weight: 800; }
.admin-header-actions form { margin: 0; }
.admin-header-actions button { padding: 9px 12px; color: #c8ced7; border: 1px solid var(--line); border-radius: 9px; background: transparent; cursor: pointer; }
.admin-main { width: min(1280px, calc(100% - 40px)); padding: 54px 0 90px; }
.admin-welcome { display: flex; align-items: end; justify-content: space-between; gap: 30px; }
.admin-welcome h1 { margin: 11px 0 7px; font-size: clamp(35px, 5vw, 54px); letter-spacing: -.055em; }
.admin-welcome p { margin: 0; color: var(--muted); font-size: 13px; }
.admin-user { max-width: 300px; padding: 10px 13px; overflow: hidden; color: #c9d0d9; border: 1px solid var(--line); border-radius: 999px; background: rgba(255,255,255,.03); font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.admin-stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; margin-top: 34px; }
.admin-stats article { min-height: 114px; padding: 21px; display: flex; flex-direction: column; justify-content: space-between; border: 1px solid var(--line); border-radius: 16px; background: linear-gradient(145deg, rgba(255,255,255,.045), rgba(255,255,255,.015)); }
.admin-stats span { color: var(--muted); font-size: 8px; font-weight: 850; letter-spacing: .16em; }
.admin-stats strong { font-family: Impact, sans-serif; font-size: 36px; font-weight: 500; }
.admin-layout { display: grid; grid-template-columns: minmax(300px, 390px) minmax(0, 1fr); gap: 17px; margin-top: 18px; align-items: start; }
.editor-panel,
.model-manager { border: 1px solid var(--line); border-radius: 20px; background: var(--surface); box-shadow: var(--shadow); }
.editor-panel { position: sticky; top: 92px; max-height: calc(100vh - 112px); overflow: auto; padding: 24px; }
.model-manager { min-width: 0; padding: 24px; }
.panel-heading { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin-bottom: 22px; }
.panel-heading h2 { margin: 8px 0 0; font-size: 22px; letter-spacing: -.035em; }
.panel-heading > a,
.panel-heading > span { color: var(--muted); font-size: 10px; }
.admin-form { display: grid; gap: 17px; }
.admin-form label { min-width: 0; display: grid; gap: 8px; }
.admin-form label > span { color: #dbe0e7; font-size: 11px; font-weight: 750; }
.admin-form input,
.admin-form textarea {
  width: 100%;
  padding: 13px 14px;
  color: white;
  border: 1px solid var(--line);
  outline: 0;
  border-radius: 11px;
  background: #0a0f16;
  font-size: 13px;
  transition: border-color .2s ease, box-shadow .2s ease;
}
.admin-form input:focus,
.admin-form textarea:focus { border-color: rgba(255, 122, 0, .65); box-shadow: 0 0 0 3px rgba(255, 122, 0, .09); }
.admin-form textarea { resize: vertical; line-height: 1.55; }
.admin-form label > small { color: #717c8b; font-size: 9px; }
.character-count { justify-self: end; }
.image-upload input { padding: 8px; font-size: 10px; }
.admin-image-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.admin-image-grid .image-upload { min-width: 0; }
.admin-image-grid .image-preview { min-height: 130px; }
.upload-note { margin: -7px 0 0; color: #7f8998; font-size: 9px; line-height: 1.55; }
.remove-image-option { display: flex; align-items: center; gap: 7px; color: #ffb2b7; font-size: 9px; }
.remove-image-option input { width: auto; margin: 0; padding: 0; accent-color: var(--red); }
.image-preview { min-height: 150px; overflow: hidden; display: grid; place-items: center; color: var(--muted); border: 1px dashed var(--line-strong); border-radius: 13px; background: #090d13; text-align: center; }
.image-preview b { color: var(--pink); font-size: 32px; font-weight: 300; }
.image-preview small { margin-top: -38px; font-size: 9px; line-height: 1.5; }
.image-preview img { width: auto; height: auto; max-width: 100%; max-height: 170px; display: block; object-fit: contain; object-position: center; }
.form-row { display: grid; grid-template-columns: 1fr 1.45fr; gap: 12px; }
.switch-label { align-content: end; }
.switch-label input { position: absolute; width: 1px; height: 1px; overflow: hidden; opacity: 0; }
.switch-label b { min-height: 44px; padding: 0 12px; display: flex; align-items: center; gap: 9px; color: var(--muted); border: 1px solid var(--line); border-radius: 11px; background: #0a0f16; font-size: 10px; }
.switch-label b::before { content: ""; width: 9px; height: 9px; border-radius: 50%; background: #5c6572; }
.switch-label input:checked + b { color: #dff8ec; border-color: rgba(82,217,155,.34); }
.switch-label input:checked + b::before { background: var(--green); box-shadow: 0 0 12px rgba(82,217,155,.7); }
.switch-label input:focus-visible + b { outline: 3px solid var(--orange); outline-offset: 3px; }
.admin-submit { width: 100%; margin-top: 3px; }
.manager-list { display: grid; gap: 10px; }
.manager-card { min-width: 0; padding: 12px; display: grid; grid-template-columns: 105px minmax(0, 1fr) auto; gap: 16px; align-items: center; border: 1px solid var(--line); border-radius: 14px; background: #0a0f16; }
.manager-card > img { width: 105px; height: 84px; object-fit: contain; object-position: center; border-radius: 10px; background: #151b24; }
.manager-card-copy { min-width: 0; }
.manager-card-title { display: flex; align-items: center; gap: 9px; }
.manager-card h3 { min-width: 0; margin: 0; overflow: hidden; font-size: 14px; text-overflow: ellipsis; white-space: nowrap; }
.manager-card p { margin: 8px 0; overflow: hidden; color: var(--muted); font-size: 10px; line-height: 1.5; text-overflow: ellipsis; white-space: nowrap; }
.manager-card small { color: #98a3b2; font-size: 11px; }
.status { flex: 0 0 auto; padding: 5px 7px; border-radius: 999px; font-size: 7px; font-weight: 900; letter-spacing: .1em; }
.status-live { color: #a7f1ce; background: rgba(82,217,155,.11); }
.status-draft { color: #a3adba; background: rgba(255,255,255,.07); }
.manager-actions { display: grid; gap: 5px; text-align: right; }
.manager-actions form { margin: 0; }
.manager-actions a,
.manager-actions button { padding: 4px 0; color: #c3cad3; border: 0; background: transparent; cursor: pointer; font-size: 9px; font-weight: 750; }
.manager-actions .danger { color: var(--red); }
.manager-empty { padding: 75px 20px; color: var(--muted); text-align: center; }
.manager-empty strong { color: white; }
.manager-empty p { font-size: 11px; }
.alert { margin: 20px 0; padding: 13px 15px; border: 1px solid; border-radius: 12px; font-size: 12px; line-height: 1.5; }
.alert-success { color: #c4f5dd; border-color: rgba(82,217,155,.27); background: rgba(82,217,155,.08); }
.alert-error { color: #ffc4c7; border-color: rgba(255,107,115,.3); background: rgba(255,107,115,.08); }

/* Authentication */
.auth-body { display: grid; place-items: center; padding: 30px 18px; }
.auth-shell { width: 100%; display: grid; place-items: center; }
.auth-card { width: min(470px, 100%); padding: 39px; border: 1px solid var(--line); border-radius: 25px; background: rgba(14,19,27,.93); box-shadow: 0 36px 110px rgba(0,0,0,.52); }
.auth-brand { margin-bottom: 40px; }
.auth-card h1 { margin: 13px 0 10px; font-size: 33px; letter-spacing: -.045em; }
.auth-card > p { margin: 0 0 23px; color: var(--muted); font-size: 12px; line-height: 1.65; }
.auth-form { margin-top: 18px; }
.back-link { margin-top: 23px; display: inline-block; color: var(--muted); font-size: 10px; }

@media (max-width: 960px) {
  .model-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .admin-layout { grid-template-columns: 1fr; }
  .editor-panel { position: static; }
  .editor-panel { max-height: none; overflow: visible; }
}

@media (max-width: 700px) {
  .site-header { width: calc(100% - 28px); min-height: 70px; }
  .site-header nav a:last-child { display: none; }
  .site-header nav { gap: 14px; }
  main { width: calc(100% - 28px); }
  .library-hero { min-height: auto; grid-template-columns: 1fr; gap: 36px; padding: 58px 0 48px; }
  .library-hero h1 { font-size: clamp(50px, 16vw, 74px); }
  .hero-stat { width: 118px; height: 118px; grid-auto-flow: column; align-items: center; justify-content: center; border-radius: 19px; }
  .hero-stat span { font-size: 38px; }
  .section-title { align-items: start; flex-direction: column; gap: 15px; }
  .section-title > p { text-align: left; }
  .catalog-section { padding: 48px 0 80px; }
  .model-grid { grid-template-columns: 1fr; }
  .model-body { min-height: 225px; }
  footer { width: calc(100% - 28px); padding: 40px 0; align-items: flex-start; flex-direction: column; }
  footer nav { flex-wrap: wrap; }
  .admin-header { padding: 0 14px; }
  .admin-header .brand small { display: none; }
  .admin-header-actions > a { display: none; }
  .admin-main { width: calc(100% - 28px); padding-top: 36px; }
  .admin-welcome { align-items: flex-start; flex-direction: column; }
  .admin-stats { grid-template-columns: 1fr 1fr; }
  .manager-card { grid-template-columns: 80px minmax(0, 1fr); }
  .manager-card > img { width: 80px; height: 75px; }
  .manager-actions { grid-column: 1 / -1; grid-template-columns: repeat(3, 1fr); padding-top: 8px; border-top: 1px solid var(--line); text-align: center; }
  .manager-actions a,
  .manager-actions button { width: 100%; min-height: 44px; display: grid; place-items: center; font-size: 11px; }
  .auth-card { padding: 28px 22px; }
}

@media (max-width: 420px) {
  .brand strong { font-size: 10px; }
  .site-header nav { font-size: 10px; }
  .admin-stats article { min-height: 95px; padding: 16px; }
  .admin-stats strong { font-size: 30px; }
  .form-row { grid-template-columns: 1fr; }
  .admin-image-grid { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition-duration: .01ms !important; }
}

/* Public catalog V2 — industrial editorial direction */
.catalog-v2 {
  --v2-ink: #08090b;
  --v2-paper: #f4f1ea;
  --v2-orange: #ff681f;
  --v2-pink: #f037bd;
  background:
    linear-gradient(rgba(255,255,255,.026) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.026) 1px, transparent 1px),
    radial-gradient(circle at 72% 12%, rgba(240,55,189,.1), transparent 24rem),
    var(--v2-ink);
  background-size: 72px 72px, 72px 72px, auto, auto;
}

.catalog-v2::before {
  content: "";
  position: fixed;
  z-index: -1;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(90deg, transparent 49.95%, rgba(255,255,255,.035) 50%, transparent 50.05%);
}

.catalog-v2 .site-header {
  min-height: 78px;
  border-color: rgba(255,255,255,.14);
}

.catalog-v2 .brand-mark {
  width: 42px;
  height: 42px;
  color: var(--v2-paper);
  border-color: rgba(255,104,31,.7);
  border-radius: 2px;
  background: var(--v2-orange);
  box-shadow: 8px 8px 0 rgba(240,55,189,.16);
}

.catalog-v2 .brand strong { color: var(--v2-paper); font-size: 12px; letter-spacing: .16em; }
.catalog-v2 .brand small { color: #747985; font-size: 9px; letter-spacing: .22em; }
.catalog-v2 .site-header nav { gap: 24px; }
.catalog-v2 .catalog-status { display: inline-flex; align-items: center; gap: 8px; color: #858a94; font-size: 9px; font-weight: 900; letter-spacing: .15em; }
.catalog-v2 .catalog-status i { width: 6px; height: 6px; border-radius: 50%; background: #54dda1; box-shadow: 0 0 13px rgba(84,221,161,.8); }
.catalog-v2 .nav-partnership { padding: 10px 13px; color: var(--v2-paper); border: 1px solid rgba(255,255,255,.17); }
.catalog-v2 .nav-partnership:hover { color: var(--v2-ink); border-color: var(--v2-orange); background: var(--v2-orange); }

.catalog-v2 main { width: min(1280px, calc(100% - 40px)); }
.catalog-v2 .library-hero {
  position: relative;
  min-height: 510px;
  grid-template-columns: minmax(0, 1fr) 260px;
  gap: 0;
  padding: 0;
  align-items: stretch;
  border-color: rgba(255,255,255,.14);
}

.catalog-v2 .hero-copy { padding: 76px 64px 60px 0; display: flex; flex-direction: column; justify-content: center; }
.catalog-v2 .hero-overline { margin-bottom: 33px; display: flex; align-items: center; justify-content: space-between; gap: 25px; color: #777d87; font-size: 9px; font-weight: 850; letter-spacing: .17em; }
.catalog-v2 .eyebrow { color: #f7b2e4; font-size: 9px; }
.catalog-v2 .eyebrow i { width: 18px; height: 2px; border-radius: 0; }
.catalog-v2 .library-hero h1 {
  max-width: 960px;
  margin: 0;
  color: var(--v2-paper);
  font-family: "Arial Narrow", "Aptos Narrow", "Helvetica Neue Condensed", sans-serif;
  font-weight: 900;
  font-size: clamp(70px, 7.5vw, 116px);
  line-height: .82;
  letter-spacing: -.046em;
  text-transform: uppercase;
}
.catalog-v2 .library-hero h1 em { display: inline-block; color: transparent; -webkit-text-stroke: 1px rgba(244,241,234,.82); }
.catalog-v2 .hero-foot { margin-top: 39px; display: flex; align-items: end; justify-content: space-between; gap: 36px; }
.catalog-v2 .hero-foot p { max-width: 570px; margin: 0; color: #a0a5ae; font-size: 13px; line-height: 1.75; }
.catalog-v2 .hero-foot > span { flex: 0 0 auto; display: flex; align-items: center; gap: 11px; color: #777d86; font-size: 9px; font-weight: 900; letter-spacing: .17em; }
.catalog-v2 .hero-foot b { width: 28px; height: 28px; display: grid; place-items: center; color: var(--v2-orange); border: 1px solid rgba(255,104,31,.4); border-radius: 50%; }

.catalog-v2 .hero-index {
  position: relative;
  padding: 30px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  overflow: hidden;
  border-left: 1px solid rgba(255,255,255,.14);
  background: rgba(255,255,255,.025);
}
.catalog-v2 .hero-index::after { content: ""; position: absolute; right: -38px; bottom: -38px; width: 130px; height: 130px; border: 1px solid rgba(240,55,189,.25); border-radius: 50%; box-shadow: 0 0 60px rgba(240,55,189,.08); }
.catalog-v2 .index-label { color: var(--v2-orange); font-size: 9px; font-weight: 900; letter-spacing: .2em; }
.catalog-v2 .hero-index > strong { color: var(--v2-paper); font-family: "Arial Narrow", "Aptos Narrow", sans-serif; font-size: clamp(76px, 8vw, 112px); font-weight: 900; line-height: .75; letter-spacing: -.07em; }
.catalog-v2 .hero-index > div { display: flex; align-items: end; justify-content: space-between; gap: 16px; color: #c7c6c1; font-size: 9px; font-weight: 900; line-height: 1.5; letter-spacing: .16em; }
.catalog-v2 .hero-index > div i { flex: 1; height: 2px; margin-bottom: 5px; background: linear-gradient(90deg, var(--v2-orange), var(--v2-pink)); }
.catalog-v2 .hero-index > p { position: relative; z-index: 2; margin: 0; color: #737985; font-size: 9px; line-height: 1.65; letter-spacing: .08em; text-transform: uppercase; }

.catalog-v2 .catalog-section { padding: 70px 0 130px; }
.catalog-v2 .section-title { margin-bottom: 30px; padding-bottom: 25px; border-bottom: 1px solid rgba(255,255,255,.14); }
.catalog-v2 .section-title span { color: var(--v2-orange); font-size: 9px; letter-spacing: .21em; }
.catalog-v2 .section-title h2 { margin-top: 12px; color: var(--v2-paper); font-size: clamp(38px, 4vw, 58px); line-height: .95; text-transform: uppercase; }
.catalog-v2 .section-title > p { max-width: 430px; color: #797f89; font-size: 11px; }
.catalog-v2 .model-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.catalog-v2 .model-card {
  position: relative;
  border-color: rgba(255,255,255,.13);
  border-radius: 2px;
  background: #0e1014;
  box-shadow: none;
}
.catalog-v2 .model-card:hover { transform: translateY(-4px); border-color: rgba(255,104,31,.7); }
.catalog-v2 .model-media { aspect-ratio: 4 / 3; padding: 18px; background: #13161b; }
.catalog-v2 .model-media::after { height: 45%; background: linear-gradient(transparent, rgba(8,9,11,.84)); }
.catalog-v2 .model-media::after { display: none; }
.catalog-v2 .model-sequence { position: absolute; z-index: 3; left: 16px; bottom: 15px; color: rgba(255,255,255,.7); font-size: 9px; font-weight: 900; letter-spacing: .18em; }
.catalog-v2 .new-badge { top: 13px; right: 13px; left: auto; padding: 7px 9px; border-radius: 1px; }
.catalog-v2 .model-body { min-height: 255px; padding: 22px; border-top: 1px solid rgba(255,255,255,.08); }
.catalog-v2 .model-heading { margin-bottom: 16px; display: flex; justify-content: space-between; color: #737984; font-size: 9px; font-weight: 900; letter-spacing: .18em; }
.catalog-v2 .model-heading span:last-child { color: var(--v2-pink); font-size: 11px; }
.catalog-v2 .model-body h3 { color: var(--v2-paper); font-size: 23px; line-height: 1.05; text-transform: uppercase; }
.catalog-v2 .model-body > p { color: #898f99; font-size: 11px; }
.catalog-v2 .button-download { min-height: 48px; color: var(--v2-paper); border: 1px solid rgba(255,255,255,.16); border-radius: 1px; background: transparent; box-shadow: none; }
.catalog-v2 .button-download:hover { color: var(--v2-ink); border-color: var(--v2-orange); background: var(--v2-orange); }
.catalog-v2 .model-body > small { color: #6d737d; font-size: 10px; }
.catalog-v2 .model-card-link { display: block; }
.catalog-v2 .model-card-link:focus-visible,
.catalog-v2 .model-body h3 a:focus-visible { outline: 3px solid var(--v2-orange); outline-offset: -3px; }
.catalog-v2 .model-body h3 a:hover { color: var(--v2-orange); }
.catalog-v2 .empty-state { border-color: rgba(255,255,255,.16); border-radius: 2px; background: rgba(255,255,255,.018); }
.catalog-v2 .empty-state .empty-icon { color: var(--v2-orange); }
.catalog-v2 .button-ghost { border-radius: 1px; }

.catalog-v2 footer { min-height: 170px; border-color: rgba(255,255,255,.14); }
.catalog-v2 footer > div > p { color: #686e77; text-transform: uppercase; letter-spacing: .1em; }
.catalog-v2 footer nav { color: #8a9099; font-size: 9px; font-weight: 750; letter-spacing: .08em; text-transform: uppercase; }

/* Public model detail V2 */
.model-detail-v2 .model-detail-main { padding: 0 0 120px; }
.model-detail-v2 .detail-heading { padding: 72px 0 48px; border-bottom: 1px solid rgba(255,255,255,.14); }
.model-detail-v2 .detail-overline { display: flex; justify-content: space-between; gap: 20px; color: #7b818b; font-size: 9px; font-weight: 900; letter-spacing: .18em; }
.model-detail-v2 .detail-overline span:first-child { color: var(--v2-orange); }
.model-detail-v2 .detail-heading h1 { max-width: 1020px; margin: 24px 0 0; color: var(--v2-paper); font-family: "Arial Narrow", "Aptos Narrow", "Helvetica Neue Condensed", sans-serif; font-size: clamp(58px, 7.2vw, 108px); font-weight: 900; line-height: .84; letter-spacing: -.045em; text-transform: uppercase; }
.model-detail-v2 .detail-heading > p { max-width: 650px; margin: 28px 0 0; color: #9da3ad; font-size: 13px; line-height: 1.7; }
.model-detail-v2 .detail-gallery { padding: 28px 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; border-bottom: 1px solid rgba(255,255,255,.14); }
.model-detail-v2 .detail-gallery-single { grid-template-columns: minmax(0, 900px); justify-content: center; }
.model-detail-v2 .detail-image-frame { position: relative; aspect-ratio: 4 / 3; overflow: hidden; display: grid; place-items: center; padding: 42px 24px 38px; border: 1px solid rgba(255,255,255,.13); background: #0c0f14; }
.model-detail-v2 .detail-image-frame > span,
.model-detail-v2 .detail-image-frame > small { position: absolute; z-index: 2; color: #777e89; font-size: 9px; font-weight: 900; letter-spacing: .17em; }
.model-detail-v2 .detail-image-frame > span { top: 17px; left: 18px; color: var(--v2-orange); }
.model-detail-v2 .detail-image-frame > small { right: 18px; bottom: 15px; }
.model-detail-v2 .detail-image-frame img { width: auto; height: auto; max-width: 100%; max-height: 100%; display: block; object-fit: contain; object-position: center; }
.model-detail-v2 .detail-image-frame:hover { border-color: rgba(255,104,31,.68); }
.model-detail-v2 .detail-download-panel { margin-top: 42px; padding: 38px; display: grid; grid-template-columns: minmax(0, 1fr) minmax(280px, 390px); gap: 55px; align-items: end; border: 1px solid rgba(255,255,255,.14); background: linear-gradient(130deg, rgba(255,255,255,.035), rgba(240,55,189,.045)); }
.model-detail-v2 .detail-label { color: var(--v2-orange); font-size: 9px; font-weight: 900; letter-spacing: .2em; }
.model-detail-v2 .detail-download-panel h2 { margin: 13px 0 0; color: var(--v2-paper); font-size: clamp(32px, 4vw, 52px); line-height: .95; text-transform: uppercase; }
.model-detail-v2 .detail-download-panel p { max-width: 680px; margin: 20px 0 13px; color: #a0a6b0; font-size: 13px; line-height: 1.75; }
.model-detail-v2 .detail-download-panel small { color: #737984; font-size: 10px; }
.model-detail-v2 .detail-download-button { min-height: 72px; padding: 0 25px; display: flex; align-items: center; justify-content: space-between; gap: 20px; color: #08090b; background: var(--v2-orange); font-size: 14px; font-weight: 950; }
.model-detail-v2 .detail-download-button:hover { background: var(--v2-paper); }
.model-detail-v2 .detail-not-found { min-height: 610px; display: grid; place-content: center; justify-items: start; border-bottom: 1px solid rgba(255,255,255,.14); }
.model-detail-v2 .detail-not-found > span { color: var(--v2-orange); font-size: 9px; font-weight: 900; letter-spacing: .2em; }
.model-detail-v2 .detail-not-found h1 { max-width: 760px; margin: 20px 0 0; color: var(--v2-paper); font-size: clamp(48px, 6vw, 82px); line-height: .9; text-transform: uppercase; }
.model-detail-v2 .detail-not-found p { margin: 20px 0 28px; color: #8b929d; }

@media (max-width: 980px) {
  .catalog-v2 .library-hero { grid-template-columns: minmax(0, 1fr) 210px; }
  .catalog-v2 .hero-copy { padding-right: 35px; }
  .catalog-v2 .hero-index { padding: 24px; }
  .catalog-v2 .hero-index > strong { font-size: 88px; }
  .catalog-v2 .model-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 700px) {
  .catalog-v2 { background-size: 42px 42px, 42px 42px, auto, auto; }
  .catalog-v2 .site-header { width: calc(100% - 28px); }
  .catalog-v2 .catalog-status,
  .catalog-v2 .site-header nav > a:first-of-type { display: none; }
  .catalog-v2 .nav-partnership { display: inline-flex !important; }
  .catalog-v2 main { width: calc(100% - 28px); }
  .catalog-v2 .library-hero { grid-template-columns: 1fr; }
  .catalog-v2 .hero-copy { padding: 62px 0 50px; }
  .catalog-v2 .hero-overline > span:last-child { display: none; }
  .catalog-v2 .library-hero h1 { font-size: clamp(38px, 12vw, 58px); }
  .catalog-v2 .library-hero h1 em { white-space: nowrap; }
  .catalog-v2 .hero-foot { align-items: flex-start; flex-direction: column; }
  .catalog-v2 .hero-foot > span { display: none; }
  .catalog-v2 .hero-index { min-height: 155px; padding: 20px; display: grid; grid-template-columns: 1fr auto; gap: 18px; border-top: 1px solid rgba(255,255,255,.14); border-left: 0; }
  .catalog-v2 .hero-index > strong { grid-row: span 2; align-self: center; font-size: 74px; }
  .catalog-v2 .hero-index > div { align-self: end; }
  .catalog-v2 .hero-index > p { display: none; }
  .catalog-v2 .catalog-section { padding: 55px 0 90px; }
  .catalog-v2 .section-title { align-items: flex-start; }
  .catalog-v2 .section-title > p { text-align: left; }
  .catalog-v2 .model-grid { grid-template-columns: 1fr; }
  .catalog-v2 .model-media { aspect-ratio: 4 / 3; }
  .catalog-v2 .model-body { min-height: 230px; }
  .catalog-v2 footer { width: calc(100% - 28px); }
  .model-detail-v2 .model-detail-main { padding-bottom: 80px; }
  .model-detail-v2 .detail-heading { padding: 52px 0 36px; }
  .model-detail-v2 .detail-overline span:last-child { display: none; }
  .model-detail-v2 .detail-heading h1 { font-size: clamp(42px, 14vw, 64px); }
  .model-detail-v2 .detail-gallery,
  .model-detail-v2 .detail-gallery-single { grid-template-columns: 1fr; gap: 10px; }
  .model-detail-v2 .detail-image-frame { aspect-ratio: 4 / 3; padding: 37px 15px 34px; }
  .model-detail-v2 .detail-download-panel { margin-top: 28px; padding: 25px 20px; grid-template-columns: 1fr; gap: 30px; }
  .model-detail-v2 .detail-download-button { min-height: 62px; }
}

@media (max-width: 420px) {
  .catalog-v2 .brand small { display: none; }
  .catalog-v2 .nav-partnership { padding: 9px 10px; font-size: 9px; }
}

/* Public catalog V2.1 — luminous gallery */
.catalog-v2 {
  --v2-ink: #151923;
  --v2-paper: #f4f6f9;
  --v2-orange: #ff6422;
  --v2-pink: #e537a6;
  color: var(--v2-ink);
  color-scheme: light;
  background:
    linear-gradient(rgba(21,25,35,.038) 1px, transparent 1px),
    linear-gradient(90deg, rgba(21,25,35,.038) 1px, transparent 1px),
    radial-gradient(circle at 84% 8%, rgba(229,55,166,.10), transparent 25rem),
    radial-gradient(circle at 12% 0%, rgba(255,100,34,.09), transparent 24rem),
    var(--v2-paper);
  background-size: 64px 64px, 64px 64px, auto, auto, auto;
}

.catalog-v2::before {
  background: linear-gradient(90deg, transparent 49.94%, rgba(21,25,35,.045) 50%, transparent 50.06%);
}

.catalog-v2 .site-header {
  position: sticky;
  z-index: 30;
  top: 0;
  min-height: 76px;
  padding: 0 18px;
  color: #222835;
  border-color: rgba(21,25,35,.10);
  border-radius: 0 0 18px 18px;
  background: rgba(248,249,251,.88);
  box-shadow: 0 10px 30px rgba(27,35,52,.05);
  backdrop-filter: blur(18px);
}

.catalog-v2 .brand-mark {
  color: #fff;
  border-color: rgba(255,100,34,.35);
  border-radius: 11px;
  box-shadow: 7px 7px 0 rgba(229,55,166,.14);
}

.catalog-v2 .brand strong { color: #161a23; font-size: 13px; }
.catalog-v2 .brand small { color: #697181; font-size: 12px; letter-spacing: .13em; }
.catalog-v2 .site-header nav { color: #586171; font-size: 13px; }
.catalog-v2 .catalog-status { color: #657080; font-size: 12px; }
.catalog-v2 .catalog-status i { background: #19a870; box-shadow: 0 0 0 4px rgba(25,168,112,.12); }
.catalog-v2 .nav-partnership {
  padding: 11px 15px;
  color: #161a23;
  border-color: rgba(21,25,35,.16);
  border-radius: 10px;
  background: #fff;
}
.catalog-v2 .nav-partnership:hover { color: #fff; background: var(--v2-orange); }

.catalog-v2 .library-hero {
  min-height: 410px;
  margin-top: 24px;
  grid-template-columns: minmax(0, 1fr) 250px;
  overflow: hidden;
  border: 1px solid rgba(21,25,35,.10);
  border-radius: 28px;
  background: rgba(255,255,255,.92);
  box-shadow: 0 28px 80px rgba(41,50,70,.09);
}

.catalog-v2 .hero-copy { padding: 58px 54px; }
.catalog-v2 .hero-overline { margin-bottom: 25px; color: #687181; font-size: 12px; }
.catalog-v2 .eyebrow { color: #b7247d; font-size: 12px; }
.catalog-v2 .library-hero h1 { color: #151923; font-size: clamp(62px, 7vw, 104px); line-height: .84; }
.catalog-v2 .library-hero h1 em { color: transparent; -webkit-text-stroke: 1.5px var(--v2-pink); }
.catalog-v2 .hero-foot { margin-top: 28px; align-items: center; }
.catalog-v2 .hero-foot p { color: #596273; font-size: 16px; line-height: 1.65; }
.catalog-v2 .hero-foot > span { color: #5d6676; font-size: 12px; }
.catalog-v2 .hero-foot b { width: 32px; height: 32px; background: #fff4ee; }

.catalog-v2 .hero-index {
  padding: 30px;
  border-left-color: rgba(21,25,35,.09);
  background:
    radial-gradient(circle at 110% 110%, rgba(229,55,166,.18), transparent 52%),
    linear-gradient(155deg, #fff7f2, #f3eef9);
}
.catalog-v2 .hero-index::after { border-color: rgba(229,55,166,.26); box-shadow: none; }
.catalog-v2 .index-label { font-size: 12px; }
.catalog-v2 .hero-index > strong { color: #151923; }
.catalog-v2 .hero-index > div { color: #363d4a; font-size: 12px; }
.catalog-v2 .hero-index > p { color: #687181; font-size: 12px; }

.catalog-v2 .catalog-section { padding: 58px 0 120px; }
.catalog-v2 .section-title { margin-bottom: 28px; border-bottom-color: rgba(21,25,35,.12); }
.catalog-v2 .section-title span { font-size: 12px; }
.catalog-v2 .section-title h2 { color: #151923; font-size: clamp(40px, 4vw, 58px); }
.catalog-v2 .section-title > p { color: #616a79; font-size: 14px; line-height: 1.65; }
.catalog-v2 .model-grid { gap: 18px; }
.catalog-v2 .model-card {
  overflow: hidden;
  border-color: rgba(21,25,35,.10);
  border-radius: 20px;
  background: rgba(255,255,255,.96);
  box-shadow: 0 18px 50px rgba(39,48,68,.08);
}
.catalog-v2 .model-card:hover { border-color: rgba(255,100,34,.6); box-shadow: 0 25px 60px rgba(39,48,68,.13); }
.catalog-v2 .model-media {
  min-width: 0;
  min-height: 0;
  padding: 26px;
  background:
    linear-gradient(rgba(21,25,35,.025) 1px, transparent 1px),
    linear-gradient(90deg, rgba(21,25,35,.025) 1px, transparent 1px),
    #edf1f5;
  background-size: 28px 28px, 28px 28px, auto;
}
.catalog-v2 .model-media img {
  position: absolute;
  top: 50%;
  left: 50%;
  width: auto;
  height: auto;
  max-width: calc(100% - 52px);
  max-height: calc(100% - 52px);
  transform: translate(-50%, -50%);
}
.catalog-v2 .model-card:hover .model-media img { transform: translate(-50%, -50%); }
.catalog-v2 .model-sequence {
  left: 16px;
  bottom: 15px;
  padding: 6px 8px;
  color: #fff;
  border-radius: 7px;
  background: rgba(18,22,30,.78);
  font-size: 12px;
  backdrop-filter: blur(10px);
}
.catalog-v2 .new-badge { border-radius: 7px; font-size: 12px; }
.catalog-v2 .model-body { min-height: 255px; border-top-color: rgba(21,25,35,.08); }
.catalog-v2 .model-heading { color: #6b7483; font-size: 12px; }
.catalog-v2 .model-heading span:last-child { color: var(--v2-pink); font-size: 15px; }
.catalog-v2 .model-body h3 { color: #151923; font-size: 24px; }
.catalog-v2 .model-body > p { color: #626b7a; font-size: 14px; line-height: 1.65; }
.catalog-v2 .button-download {
  min-height: 52px;
  color: #fff;
  border: 0;
  border-radius: 11px;
  background: #171c26;
  box-shadow: 0 12px 25px rgba(23,28,38,.12);
}
.catalog-v2 .button-download:hover { color: #fff; background: var(--v2-orange); }
.catalog-v2 .model-body > small { color: #697282; font-size: 12px; }
.catalog-v2 .empty-state { border-color: rgba(21,25,35,.18); border-radius: 20px; background: rgba(255,255,255,.72); }
.catalog-v2 .button-ghost { color: #171c26; border-color: rgba(21,25,35,.18); background: #fff; }

.catalog-v2 footer { color: #657080; border-color: rgba(21,25,35,.12); }
.catalog-v2 footer .brand strong { color: #151923; }
.catalog-v2 footer > div > p { color: #657080; }
.catalog-v2 footer nav { color: #525b6a; font-size: 12px; }

.model-detail-v2 .detail-heading {
  margin-top: 24px;
  padding: 52px;
  border: 1px solid rgba(21,25,35,.10);
  border-radius: 28px;
  background: rgba(255,255,255,.92);
  box-shadow: 0 24px 70px rgba(41,50,70,.08);
}
.model-detail-v2 .detail-overline { color: #697282; font-size: 12px; }
.model-detail-v2 .detail-heading h1 { color: #151923; font-size: clamp(58px, 7vw, 100px); }
.model-detail-v2 .detail-heading > p { color: #5d6676; font-size: 16px; }
.model-detail-v2 .detail-gallery { padding: 28px 0; gap: 18px; border-bottom-color: rgba(21,25,35,.12); }
.model-detail-v2 .detail-image-frame {
  min-width: 0;
  min-height: 0;
  aspect-ratio: 1 / 1;
  padding: 58px 30px 50px;
  border-color: rgba(21,25,35,.11);
  border-radius: 22px;
  background:
    linear-gradient(rgba(21,25,35,.025) 1px, transparent 1px),
    linear-gradient(90deg, rgba(21,25,35,.025) 1px, transparent 1px),
    #edf1f5;
  background-size: 32px 32px, 32px 32px, auto;
  box-shadow: 0 18px 48px rgba(39,48,68,.08);
}
.model-detail-v2 .detail-image-frame img {
  position: absolute;
  top: 50%;
  left: 50%;
  width: auto;
  height: auto;
  max-width: calc(100% - 60px);
  max-height: calc(100% - 108px);
  transform: translate(-50%, -50%);
}
.model-detail-v2 .detail-image-frame > span,
.model-detail-v2 .detail-image-frame > small { color: #606a79; font-size: 12px; }
.model-detail-v2 .detail-image-frame > span { color: #d94b16; }
.model-detail-v2 .detail-image-frame:hover { border-color: rgba(255,100,34,.64); }
.model-detail-v2 .detail-download-panel {
  margin-top: 18px;
  padding: 42px;
  border-color: rgba(21,25,35,.10);
  border-radius: 22px;
  background: linear-gradient(130deg, rgba(255,255,255,.97), rgba(255,244,250,.9));
  box-shadow: 0 20px 55px rgba(39,48,68,.08);
}
.model-detail-v2 .detail-label { font-size: 12px; }
.model-detail-v2 .detail-download-panel h2 { color: #151923; }
.model-detail-v2 .detail-download-panel p { color: #596273; font-size: 15px; }
.model-detail-v2 .detail-download-panel small { color: #697282; font-size: 12px; }
.model-detail-v2 .detail-download-button { color: #fff; border-radius: 12px; background: var(--v2-orange); box-shadow: 0 16px 34px rgba(255,100,34,.22); }
.model-detail-v2 .detail-download-button:hover { color: #fff; background: #151923; }
.model-detail-v2 .detail-not-found { border-bottom-color: rgba(21,25,35,.12); }
.model-detail-v2 .detail-not-found > span { font-size: 12px; }
.model-detail-v2 .detail-not-found h1 { color: #151923; }
.model-detail-v2 .detail-not-found p { color: #606a79; }

@media (max-width: 700px) {
  .catalog-v2 .site-header { width: calc(100% - 20px); padding: 0 10px; }
  .catalog-v2 .library-hero { margin-top: 14px; border-radius: 20px; }
  .catalog-v2 .hero-copy { padding: 46px 25px 40px; }
  .catalog-v2 .library-hero h1 { font-size: clamp(44px, 13vw, 62px); }
  .catalog-v2 .hero-foot p { font-size: 15px; }
  .catalog-v2 .hero-index { border-top-color: rgba(21,25,35,.10); }
  .catalog-v2 .model-body { min-height: 225px; }
  .model-detail-v2 .detail-heading { margin-top: 14px; padding: 38px 24px; border-radius: 20px; }
  .model-detail-v2 .detail-heading > p { font-size: 15px; }
  .model-detail-v2 .detail-image-frame { aspect-ratio: 1 / 1; padding: 48px 18px 42px; border-radius: 18px; }
  .model-detail-v2 .detail-download-panel { padding: 29px 22px; border-radius: 18px; }
}

@media (max-width: 420px) {
  .catalog-v2 .nav-partnership { font-size: 12px; }
}
