/* Passport — a two-page booklet with an MRZ and visa stamps. */
:root { --t-font-display: "IBM Plex Sans", system-ui, sans-serif; --t-font-body: "IBM Plex Sans", system-ui, sans-serif; --t-font-mono: "Courier Prime", monospace; --t-max: 1080px; --t-radius: 10px; --t-radius-sm: 4px; }

.t-pass { grid-template-columns: 1fr; gap: 24px; padding-block: clamp(20px, 4vw, 40px) 16px; }
.t-pass__book { display: grid; border-radius: var(--t-radius); overflow: hidden; box-shadow: 0 30px 60px -30px rgba(0,0,0,.5); border: 1px solid var(--t-line); }
@media (min-width: 860px) { .t-pass__book { grid-template-columns: 1fr 1.4fr; } }
/* cover page */
.t-pass__cover { background: var(--t-accent); color: var(--t-on-accent); display: grid; place-content: center; justify-items: center; gap: 14px; padding: clamp(28px, 5vw, 56px); text-align: center; background-image: repeating-radial-gradient(circle at 50% 50%, transparent 0 9px, color-mix(in srgb, var(--t-on-accent) 7%, transparent) 9px 10px); }
.t-pass__emblem { width: 92px; height: 92px; border-radius: 50%; border: 3px double var(--t-on-accent); display: grid; place-items: center; background: radial-gradient(circle, var(--t-on-accent) 10px, transparent 11px), conic-gradient(from 0deg, transparent 0 20deg, color-mix(in srgb, var(--t-on-accent) 30%, transparent) 20deg 40deg) 0 0 / 100% 100%; }
.t-pass__title { font-weight: 700; letter-spacing: .4em; font-size: clamp(1.2rem, 2.4vw, 1.8rem); }
.t-pass__sub { font-size: 10px; letter-spacing: .3em; opacity: .85; }
/* data page */
.t-pass__data { background: var(--t-surface); padding: clamp(18px, 3vw, 28px); display: grid; gap: 14px; background-image: repeating-radial-gradient(circle at 0 0, transparent 0 14px, color-mix(in srgb, var(--t-accent) 6%, transparent) 14px 15px); }
.t-pass__kicker { margin: 0; font-family: var(--t-font-mono); font-size: var(--t-size-0); color: var(--t-accent-text); letter-spacing: .08em; }
.t-pass__grid { display: grid; gap: 18px; }
@media (min-width: 600px) { .t-pass__grid { grid-template-columns: auto minmax(0, 1fr); } }
.t-pass__photo .t-photo { width: clamp(110px, 16vw, 150px); border-radius: var(--t-radius-sm); box-shadow: none; border: 1px solid var(--t-line); aspect-ratio: 3 / 4; object-fit: cover; }
.t-pass__fields { display: grid; gap: 8px; }
.t-pass__field { display: grid; gap: 1px; }
.t-pass__label { font-size: 10px; text-transform: uppercase; letter-spacing: .16em; color: var(--t-muted); }
.t-pass__value { font-weight: 600; }
.t-pass .t-name { font-size: clamp(1.4rem, 3vw, 2rem); font-weight: 700; letter-spacing: .02em; text-transform: uppercase; order: -1; grid-column: 1 / -1; margin-block-end: 4px; border-block-end: 1px solid var(--t-line); padding-block-end: 6px; }
.t-pass__mrz { margin: 6px 0 0; font-family: var(--t-font-mono); font-size: clamp(11px, 1.6vw, 15px); letter-spacing: .12em; line-height: 1.5; background: var(--t-bg); padding: 10px 12px; border-radius: var(--t-radius-sm); overflow: hidden; white-space: nowrap; display: grid; }
/* stamps */
.t-stamps ul { display: flex; flex-wrap: wrap; gap: 16px 22px; margin: 0; padding: 8px 0 0; list-style: none; }
.t-stamp { display: grid; gap: 2px; text-align: center; padding: 14px 18px; border: 3px double var(--t-accent-text); border-radius: 50% / 40%; color: var(--t-accent-text); min-width: 160px; transform: rotate(-6deg); mask: radial-gradient(circle at 30% 40%, #000 60%, rgba(0,0,0,.6) 100%); -webkit-mask: radial-gradient(circle at 30% 40%, #000 60%, rgba(0,0,0,.6) 100%); }
.t-stamp--1 { transform: rotate(5deg); border-radius: 8px; } .t-stamp--2 { transform: rotate(-2deg); border-style: dashed; border-width: 2px; }
.t-stamp__org { font-weight: 700; text-transform: uppercase; letter-spacing: .06em; font-size: var(--t-size-0); }
.t-stamp__where { font-size: var(--t-size-0); }
.t-stamp__when { font-family: var(--t-font-mono); font-size: var(--t-size-0); }
.t-pass__rest { display: grid; gap: 14px; }
.t-pass__rest .t-tagline, .t-pass__rest .t-actions, .t-pass__rest .t-links--hero, .t-pass__rest .t-stats { margin: 0; }
.btn { --bs-btn-border-radius: 4px; --bs-btn-font-weight: 600; letter-spacing: .04em; }
.t-link { border-radius: 4px; }

.t-section__title { font-weight: 700; font-size: var(--t-size-1); text-transform: uppercase; letter-spacing: .16em; color: var(--t-accent-text); display: flex; align-items: center; gap: 12px; }
.t-section__title::after { content: ""; flex: 1; height: 1px; background: var(--t-line); }
.t-section--summary .t-section__title { display: none; }
.t-summary { font-size: clamp(1.15rem, 2vw, 1.4rem); max-width: 60ch; }
.t-timeline__when { font-family: var(--t-font-mono); color: var(--t-accent-text); }
.t-item__title { font-weight: 700; }
.t-section--languages .t-list { display: flex; flex-wrap: wrap; gap: 10px; }
.t-section--languages .t-list li { border: 1px solid var(--t-line); border-radius: 4px; padding: 8px 12px; display: grid; gap: 2px; }
.card { box-shadow: none; }
.t-chip { border-radius: 4px; }
.t-footer { font-family: var(--t-font-mono); font-size: var(--t-size-0); letter-spacing: .06em; }
@media (prefers-reduced-motion: reduce) { .t-stamp { transform: none; } }
