/* Бланки документов — из игры (game-ui/css/social.css, CC-080): Driver License / Non-Driver ID штата Нью-Йорк, CAC, MV-999. */
.dv-card { position: relative; overflow: hidden; color: #15171c; box-shadow: 0 2rem 5rem rgba(0, 0, 0, .7), 0 0 0 .0625rem rgba(255, 255, 255, .08); animation: dv-card .32s var(--ease); user-select: none; }
@keyframes dv-card { from { opacity: 0; transform: translateY(1rem) scale(.96); } }
.dv-photo { position: absolute; background: linear-gradient(180deg, #c9d8e6, #a9bccf); overflow: hidden; }
.dv-photo svg { position: absolute; left: 0; right: 0; bottom: 0; width: 100%; height: 86%; fill: #4f5d6d; }
.dv-sig { font-family: "Segoe Script", "Brush Script MT", "Lucida Handwriting", cursive; }

/* --- карта DMV Нью-Йорка (горизонтальная 86 × 54: 46 × 28.9rem; вертикальная 54 × 86) --- */
.ny { width: 46rem; height: 28.9rem; border-radius: 1.5rem; font-family: Arial, "Helvetica Neue", Helvetica, sans-serif;
  background:
    radial-gradient(ellipse at 70% 60%, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0) 55%, rgba(180, 205, 225, .35) 100%),
    repeating-radial-gradient(circle at 30% 120%, rgba(90, 140, 190, .09) 0 .0625rem, transparent .0625rem .375rem),
    repeating-radial-gradient(circle at 110% -20%, rgba(90, 140, 190, .09) 0 .0625rem, transparent .0625rem .4375rem),
    linear-gradient(135deg, #eef4f9 0%, #dfeaf3 42%, #f3f6f9 70%, #d8e5ef 100%); }
.ny.is-vertical { width: 28.9rem; height: 46rem; }
.ny-seal { position: absolute; right: 7.25rem; top: 5.5rem; width: 19rem; height: 19rem; background: url(../assets/docs/ny-seal.png) center / contain no-repeat; opacity: .13; filter: grayscale(.2); }
.ny.is-vertical .ny-seal { right: 2rem; top: 15rem; width: 15rem; height: 15rem; }
.ny-head { position: absolute; left: 7.9rem; top: 1.25rem; display: flex; align-items: baseline; gap: .375rem; }
.ny-state { font: 700 2.5rem/1 "Trajan Pro", "Times New Roman", Georgia, serif; letter-spacing: .01em; color: #1f3f7c; font-variant: small-caps; }
.ny-usa { font: 700 .6875rem/1 Arial, sans-serif; color: #1f3f7c; letter-spacing: .06em; }
.ny-type { position: absolute; left: 7.9rem; top: 3.95rem; font: 700 .9375rem/1 Arial, sans-serif; letter-spacing: .42em; color: #6b86a4; }
.ny.is-vertical .ny-head { left: 1.5rem; top: 1.125rem; }
.ny.is-vertical .ny-state { font-size: 2.125rem; }
.ny.is-vertical .ny-type { left: 1.5rem; top: 3.5rem; font-size: .8125rem; letter-spacing: .36em; }
.ny-under { position: absolute; left: 1.5rem; top: 4.75rem; font: 700 .9375rem/1 Arial, sans-serif; letter-spacing: .14em; color: #c8262c; }
.ny-comm { position: absolute; left: 1.5rem; top: 1.2rem; width: 6rem; text-align: center; }
.ny-comm .dv-sig { font-size: .875rem; line-height: 1; color: #1f3f7c; }
.ny-comm small { display: block; font: 500 .34rem/1.1 Arial, sans-serif; color: #44546a; margin-top: .125rem; }
.ny.is-vertical .ny-comm { left: auto; right: 1.25rem; top: 3.9rem; width: 6rem; }
.ny-nffp { position: absolute; right: 1.5rem; top: 1.25rem; width: 5.25rem; font: 700 .625rem/1.15 Arial, sans-serif; letter-spacing: .02em; color: #1f3f7c; text-align: center; }
.ny.is-vertical .ny-nffp { right: 1.25rem; top: 1.25rem; width: 4.25rem; font-size: .5625rem; }
.ny .dv-photo { left: 1.5rem; top: 5.9rem; width: 7.9rem; height: 9.9rem; border-radius: .125rem; }
.ny.is-vertical .dv-photo { left: 1.5rem; top: 7.25rem; width: 9.5rem; height: 11.9rem; }
.ny-sig { position: absolute; left: 1.5rem; top: 16.1rem; width: 9.5rem; font-size: 1.25rem; line-height: 1; color: #1b2a44; white-space: nowrap; overflow: hidden; }
.ny.is-vertical .ny-sig { top: 19.5rem; width: 11rem; }
.ny-ghost { position: absolute; left: 1.5rem; top: 17.9rem; font: 700 2.25rem/1 Arial, sans-serif; letter-spacing: .08em; color: rgba(70, 95, 130, .45); }
.ny.is-vertical .ny-ghost { left: 1.5rem; top: 41.5rem; font-size: 1.875rem; }
.ny-fields { position: absolute; left: 10.25rem; top: 5.9rem; right: 7.25rem; display: flex; flex-direction: column; gap: .3rem; font-size: .9375rem; line-height: 1.1; color: #15171c; }
.ny.is-vertical .ny-fields { left: 12rem; top: 7.25rem; right: 1.25rem; }
.ny-id { display: flex; align-items: baseline; gap: .375rem; margin-bottom: .2rem; }
.ny-id small { font: 700 .5625rem/1 Arial, sans-serif; color: #44546a; }
.ny-id b { font: 700 1.5rem/1 Arial, sans-serif; letter-spacing: .06em; color: #15171c; }
.ny-class { position: absolute; right: 0; top: 0; display: flex; align-items: baseline; gap: .25rem; }
.ny-class small { font: 700 .5625rem/1 Arial, sans-serif; color: #44546a; }
.ny-class b { font: 700 1.5rem/1 Arial, sans-serif; }
.ny.is-vertical .ny-class { position: static; margin-top: .125rem; }
.ny-name { font: 700 1.0625rem/1.15 Arial, sans-serif; text-transform: uppercase; }
.ny-addr { font: 500 .875rem/1.15 Arial, sans-serif; text-transform: uppercase; margin-bottom: .4rem; }
.ny-f { display: flex; align-items: baseline; gap: .3125rem; }
.ny-f small { font: 700 .5625rem/1 Arial, sans-serif; color: #44546a; min-width: 2.4rem; }
.ny-f b { font: 700 .9375rem/1 Arial, sans-serif; letter-spacing: .02em; }
.ny-f + .ny-f.is-sex { margin-top: .35rem; }
.ny-f.is-sex { gap: .75rem; }
.ny-f.is-sex span { display: inline-flex; align-items: baseline; gap: .3125rem; }
.ny-f.is-sex span small { min-width: 0; }
.ny-mini { position: absolute; right: 1.5rem; top: 12.5rem; width: 3.6rem; height: 4.5rem; background: linear-gradient(180deg, rgba(201, 216, 230, .55), rgba(169, 188, 207, .55)); overflow: hidden; }
.ny-mini svg { position: absolute; left: 0; right: 0; bottom: 0; width: 100%; height: 86%; fill: rgba(79, 93, 109, .55); }
.ny.is-vertical .ny-mini { right: 1.5rem; top: 29rem; }
.ny-vert { position: absolute; right: .25rem; top: 5.5rem; height: 20rem; width: 1.25rem; writing-mode: vertical-rl; text-orientation: mixed; font: 700 .75rem/1 Arial, sans-serif; letter-spacing: .2em; color: rgba(70, 95, 130, .4); text-transform: uppercase; white-space: nowrap; }
.ny.is-vertical .ny-vert { right: auto; left: 10.3rem; top: 22rem; height: 18rem; }
.ny-icons { position: absolute; right: 1.6rem; bottom: 1.25rem; display: flex; gap: .625rem; }
.ny-icons svg { width: 1.25rem; height: 1.25rem; fill: #15171c; opacity: .9; }
.ny.is-vertical .ny-icons { right: 1.5rem; bottom: 4.75rem; flex-direction: column; }
.ny-udates { position: absolute; left: 1.5rem; bottom: 4.75rem; display: flex; flex-direction: column; gap: .25rem; }
.ny-udates div { display: flex; flex-direction: column; padding: .1875rem .5rem; border-radius: .25rem; background: #15171c; color: #fff; font: 700 .5625rem/1.1 Arial, sans-serif; letter-spacing: .04em; }
.ny-udates b { font-size: .875rem; }
.ny-excelsior { position: absolute; left: 14rem; bottom: 1.4rem; font: 700 .75rem/1 "Trajan Pro", Georgia, serif; letter-spacing: .3em; color: rgba(70, 95, 130, .35); }
.ny.is-vertical .ny-excelsior { left: 11.5rem; bottom: 1.4rem; }

/* --- Common Access Card (86 × 54) --- */
.cac { width: 46rem; height: 28.9rem; border-radius: 1.25rem; font-family: Arial, Helvetica, sans-serif; background: linear-gradient(180deg, #f6f8fb 0%, #e9eef5 100%); }
.cac-bg { position: absolute; inset: 0; background: repeating-linear-gradient(0deg, transparent 0 1.1rem, rgba(31, 63, 124, .06) 1.1rem 1.2rem); }
.cac-bg::before { content: "U.S. DEPARTMENT OF DEFENSE  ·  U.S. DEPARTMENT OF DEFENSE  ·  U.S. DEPARTMENT OF DEFENSE  ·  U.S. DEPARTMENT OF DEFENSE  ·  U.S. DEPARTMENT OF DEFENSE  ·  U.S. DEPARTMENT OF DEFENSE  ·  U.S. DEPARTMENT OF DEFENSE  ·  U.S. DEPARTMENT OF DEFENSE  ·  U.S. DEPARTMENT OF DEFENSE  ·  U.S. DEPARTMENT OF DEFENSE  ·  U.S. DEPARTMENT OF DEFENSE  ·  U.S. DEPARTMENT OF DEFENSE  ·  U.S. DEPARTMENT OF DEFENSE  ·  U.S. DEPARTMENT OF DEFENSE  ·  U.S. DEPARTMENT OF DEFENSE  ·  U.S. DEPARTMENT OF DEFENSE  ·  U.S. DEPARTMENT OF DEFENSE  ·  U.S. DEPARTMENT OF DEFENSE  ·  U.S. DEPARTMENT OF DEFENSE  ·  U.S. DEPARTMENT OF DEFENSE  ·  U.S. DEPARTMENT OF DEFENSE  ·  U.S. DEPARTMENT OF DEFENSE  ·  U.S. DEPARTMENT OF DEFENSE  ·  U.S. DEPARTMENT OF DEFENSE  ·  U.S. DEPARTMENT OF DEFENSE  ·  U.S. DEPARTMENT OF DEFENSE  ·  U.S. DEPARTMENT OF DEFENSE  ·  U.S. DEPARTMENT OF DEFENSE  ·  U.S. DEPARTMENT OF DEFENSE  ·  U.S. DEPARTMENT OF DEFENSE  ·  U.S. DEPARTMENT OF DEFENSE  ·  U.S. DEPARTMENT OF DEFENSE  ·  U.S. DEPARTMENT OF DEFENSE  ·  U.S. DEPARTMENT OF DEFENSE  ·  U.S. DEPARTMENT OF DEFENSE  ·  U.S. DEPARTMENT OF DEFENSE";
  position: absolute; inset: 0; padding: 1rem 1.25rem; font: 700 .5rem/1.2rem Arial, sans-serif; letter-spacing: .12em; color: rgba(31, 63, 124, .12); overflow: hidden; word-break: break-all; }
.cac-band { position: absolute; left: 0; top: 0; right: 0; height: 5.25rem; display: grid; grid-template-columns: 4.25rem 1fr auto; align-items: center; column-gap: .875rem; padding: 0 1.5rem;
  background: linear-gradient(90deg, #1b3f7a 0%, #2a5aa6 100%); color: #fff; }
.cac-seal { width: 3.75rem; height: 3.75rem; background: url(../assets/docs/dod-seal.png) center / contain no-repeat; }
.cac-h1 { font: 700 1.25rem/1.1 Arial, sans-serif; letter-spacing: .02em; }
.cac-h2 { margin-top: .25rem; font: 700 .875rem/1.1 Arial, sans-serif; letter-spacing: .1em; text-transform: uppercase; color: #cfe0fa; }
.cac-exp { text-align: right; }
.cac-exp small { display: block; font: 700 .5625rem/1 Arial, sans-serif; letter-spacing: .1em; color: #cfe0fa; }
.cac-exp b { display: block; margin-top: .25rem; font: 700 1.125rem/1 "Courier New", monospace; }
.cac .dv-photo { left: 1.5rem; top: 6.5rem; width: 8.75rem; height: 11rem; border-radius: .25rem; }
.cac-army { position: absolute; right: 1.5rem; top: 6.5rem; width: 5.5rem; height: 5.5rem; background: url(../assets/docs/army-seal.png) center / contain no-repeat; opacity: .9; }
.cac-fields { position: absolute; left: 11.25rem; top: 6.75rem; right: 8rem; display: grid; grid-template-columns: 1fr 1fr; gap: .875rem 1.25rem; }
.cac-f small { display: block; font: 700 .5625rem/1 Arial, sans-serif; letter-spacing: .1em; text-transform: uppercase; color: #44546a; }
.cac-f b { display: block; margin-top: .3125rem; font: 700 1.0625rem/1.1 Arial, sans-serif; color: #15171c; text-transform: uppercase; }
.cac-f.is-wide { grid-column: 1 / -1; }
.cac-f.is-wide b { font-size: 1.375rem; }
.cac-chip { position: absolute; left: 11.25rem; bottom: 1.75rem; width: 3.6rem; height: 2.9rem; border-radius: .375rem; background: linear-gradient(135deg, #e8d28a, #c9a74a 55%, #e9d48f); box-shadow: inset 0 0 0 .0625rem rgba(0, 0, 0, .25); }
.cac-chip::before, .cac-chip::after { content: ""; position: absolute; background: rgba(0, 0, 0, .3); }
.cac-chip::before { left: 0; right: 0; top: 50%; height: .0625rem; }
.cac-chip::after { top: 0; bottom: 0; left: 33%; width: .0625rem; box-shadow: 1.2rem 0 0 rgba(0, 0, 0, .3); }
.cac-bar { position: absolute; left: 1.5rem; bottom: 1.5rem; width: 8.75rem; height: 2.75rem; background: repeating-linear-gradient(90deg, #15171c 0 .0625rem, transparent .0625rem .1875rem, #15171c .1875rem .3125rem, transparent .3125rem .4375rem, #15171c .4375rem .5rem, transparent .5rem .75rem); }
.cac-geneva { position: absolute; right: 1.5rem; bottom: 1.75rem; text-align: right; }
.cac-geneva b { display: block; font: 700 .9375rem/1.1 Arial, sans-serif; color: #1b3f7a; }
.cac-geneva small { display: block; margin-top: .25rem; font: 700 .625rem/1 Arial, sans-serif; letter-spacing: .08em; text-transform: uppercase; color: #44546a; }

/* --- Certificate of Title MV-999 (лист 8,5 × 11: 34 × 44rem) --- */
.mv { width: 34rem; height: 44rem; padding: 1.75rem 2rem; font-family: "Times New Roman", Times, serif; color: #1c2430;
  background: repeating-linear-gradient(45deg, rgba(60, 120, 110, .05) 0 .0625rem, transparent .0625rem .25rem), linear-gradient(180deg, #e9f2ee 0%, #dbe9e3 100%); box-shadow: 0 2rem 5rem rgba(0, 0, 0, .7); }
.mv::before { content: ""; position: absolute; inset: .75rem; border: .125rem solid #2f6a5c; outline: .0625rem solid #2f6a5c; outline-offset: .1875rem; pointer-events: none; }
.mv-seal { position: absolute; left: 50%; top: 50%; width: 20rem; height: 20rem; transform: translate(-50%, -50%); background: url(../assets/docs/ny-seal.png) center / contain no-repeat; opacity: .08; }
.mv-head { position: relative; text-align: center; }
.mv-head .mv-state { font: 700 1.375rem/1.1 "Times New Roman", serif; letter-spacing: .18em; }
.mv-head .mv-dept { margin-top: .25rem; font: 600 .8125rem/1.1 "Times New Roman", serif; letter-spacing: .12em; }
.mv-head .mv-title { margin-top: .625rem; font: 700 1.75rem/1.1 "Times New Roman", serif; letter-spacing: .14em; }
.mv-no { position: relative; margin-top: .875rem; display: flex; justify-content: flex-end; align-items: baseline; gap: .625rem; }
.mv-no small { font: 700 .5625rem/1 Arial, sans-serif; letter-spacing: .1em; }
.mv-no b { font: 700 1.125rem/1 "Courier New", monospace; }
.mv-grid { position: relative; margin-top: .875rem; display: grid; grid-template-columns: 2fr 1fr 1fr; border-top: .0625rem solid #2f6a5c; border-left: .0625rem solid #2f6a5c; }
.mv-cell { padding: .375rem .5rem .5rem; border-right: .0625rem solid #2f6a5c; border-bottom: .0625rem solid #2f6a5c; min-height: 3rem; }
.mv-cell small { display: block; font: 700 .5rem/1 Arial, sans-serif; letter-spacing: .1em; color: #2f6a5c; }
.mv-cell b { display: block; margin-top: .375rem; font: 700 .9375rem/1.1 "Courier New", monospace; text-transform: uppercase; min-height: 1.1em; }
.mv-cell.is-wide { grid-column: span 3; }
.mv-cell.is-two { grid-column: span 2; }
.mv-block { position: relative; margin-top: 1rem; padding: .5rem .625rem .625rem; border: .0625rem solid #2f6a5c; min-height: 5rem; }
.mv-block small { display: block; font: 700 .5rem/1 Arial, sans-serif; letter-spacing: .1em; color: #2f6a5c; }
.mv-block b { display: block; margin-top: .375rem; font: 700 1rem/1.25 "Courier New", monospace; text-transform: uppercase; white-space: pre-line; }
.mv-foot { position: absolute; left: 2rem; right: 2rem; bottom: 1.75rem; display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; align-items: end; }
.mv-foot .mv-sign { border-top: .0625rem solid #1c2430; padding-top: .25rem; font: 600 .625rem/1.2 Arial, sans-serif; letter-spacing: .06em; text-transform: uppercase; }
.mv-foot .mv-sign .dv-sig { display: block; font-size: 1.125rem; line-height: 1; margin: -1.5rem 0 .375rem .5rem; color: #1b3f7a; }
.mv-foot .mv-note { font: 500 .5625rem/1.3 Arial, sans-serif; color: #2f4a44; text-align: right; }
.mv-form { position: absolute; left: 2rem; bottom: .9rem; font: 600 .5625rem/1 Arial, sans-serif; letter-spacing: .06em; color: #2f4a44; }

