/* The Atlas (/players directory + world map). Scoped under .atlas and the
   atlas-* / drill-* / pcard-* / crow / dcard-* class families. Extracted from
   the Views/Players/Index.cshtml inline style block in 2E. */
.atlas { --hero:#0B0F13; --cream:#F5EAD0; --accent:#E0541F; --accent-bright:#F26A2E; --line:rgba(245,234,208,.12); --mute:#a8acb2;
    background:var(--hero); color:var(--cream); font-family:var(--font-body); padding:40px 48px 64px; min-height:70vh; }
.atlas .eyebrow { display:flex; align-items:center; gap:16px; color:var(--mute); font-family:"JetBrains Mono",monospace; font-size:10.5px; letter-spacing:.22em; text-transform:uppercase; margin-bottom:18px; }
.atlas .eyebrow .num { font-family:"Bebas Neue",sans-serif; font-size:22px; color:var(--cream); }
.atlas .eyebrow .rule { flex:0 0 56px; height:1px; background:rgba(245,234,208,.4); }
.atlas-top { display:grid; grid-template-columns:1fr 380px; gap:48px; align-items:end; }
.atlas-h1 { font-family:"Bebas Neue",sans-serif; font-size:96px; line-height:.92; letter-spacing:.01em; margin:0; }
.atlas-h1 em { font-style:normal; color:var(--accent-bright); }
.atlas-sub { margin-top:14px; max-width:560px; font-size:14px; line-height:1.6; color:#cfd4da; }
.atlas-summary { display:flex; flex-direction:column; border-top:1px solid var(--line); }
.atlas-summary .sum { display:flex; justify-content:space-between; align-items:center; padding:12px 0; border-bottom:1px solid var(--line); }
.atlas-summary .k { font-size:11px; letter-spacing:.22em; text-transform:uppercase; color:var(--mute); }
.atlas-summary .v { font-family:"Bebas Neue",sans-serif; font-size:30px; }
.atlas-toolbar { display:flex; flex-wrap:wrap; gap:10px; align-items:center; padding:18px 0; margin-top:24px; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.atlas-toolbar .chips { display:flex; align-items:center; gap:6px; }
.atlas-toolbar .lbl { font-size:10.5px; letter-spacing:.2em; text-transform:uppercase; color:var(--mute); margin-right:4px; }
.atlas-toolbar .chip { padding:7px 13px; border:1px solid var(--line); font-size:11px; letter-spacing:.14em; text-transform:uppercase; cursor:pointer; }
.atlas-toolbar .chip.on { background:var(--accent); border-color:var(--accent); color:#fff; }
.atlas-toolbar .chip input { display:none; }
.atlas-search { flex:1 1 240px; min-width:200px; background:transparent; border:1px solid var(--line); color:var(--cream); padding:9px 13px; font-size:12px; }
.atlas-btn { padding:9px 16px; border:1px solid var(--cream); background:var(--cream); color:var(--hero); font-size:10.5px; letter-spacing:.2em; text-transform:uppercase; text-decoration:none; cursor:pointer; }
.atlas-btn.ghost { background:transparent; color:var(--cream); }
.atlas-toolbar .more { flex-basis:100%; }
.atlas-toolbar .more summary { cursor:pointer; font-size:10.5px; letter-spacing:.2em; text-transform:uppercase; color:var(--mute); padding:8px 0; }
.more-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:12px; padding-top:8px; }
.more-grid label { display:flex; flex-direction:column; gap:5px; font-size:10px; letter-spacing:.18em; text-transform:uppercase; color:var(--mute); }
.more-grid select, .more-grid input { background:transparent; border:1px solid var(--line); color:var(--cream); padding:8px 10px; font-size:12px; font-family:var(--font-body); }
.more-grid select { -webkit-appearance:none; appearance:none; background:#0F151B url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'><path d='M1 1l4 4 4-4' stroke='%23a8acb2' stroke-width='1.4' fill='none'/></svg>") no-repeat right 10px center; background-size:10px 6px; padding-right:28px; cursor:pointer; }
.more-grid select option { background:#0F151B; color:var(--cream); }
.atlas-stage { padding:28px 0; border-bottom:1px solid var(--line); }
.atlas-legend { display:flex; flex-wrap:wrap; gap:32px; padding:16px 0 4px; font-family:"JetBrains Mono",monospace; font-size:10px; letter-spacing:.16em; text-transform:uppercase; color:#7c818a; }
.atlas-legend .lg { display:inline-flex; align-items:center; gap:10px; }
.atlas-legend strong { color:var(--cream); font-weight:400; }
.atlas-legend .lg-hero { width:18px; height:18px; border-radius:50%; background:#2a2018; border:1px solid var(--accent-bright); flex:0 0 18px; }
.atlas-legend .lg-num { font-family:"Bebas Neue",sans-serif; font-size:20px; line-height:1; color:var(--accent-bright); }
.atlas-map { position:relative; aspect-ratio:16/9; background:#0d1620; border:1px solid var(--line); overflow:hidden; }
#atlas-map-svg { position:absolute; inset:0; width:100%; height:100%; display:block; z-index:1; }
.map-placeholder { position:absolute; inset:0; display:grid; place-items:center; text-align:center; color:var(--mute); z-index:0; }
.map-placeholder span { display:block; font-family:"Bebas Neue",sans-serif; font-size:26px; letter-spacing:.04em; color:#3a4654; }
.map-placeholder small { font-size:11px; }
/* country shapes */
.atlas-country { fill:#1c2733; stroke:#2a3645; stroke-width:.5; vector-effect:non-scaling-stroke; cursor:pointer; transition:fill .15s ease; }
.atlas-country.has-players { fill:#21303f; }
.atlas-country.has-players:hover { fill:#2a3d50; }
.atlas-country.atlas-dim { opacity:.32; }
.atlas-country.is-selected { fill:#2a2018; stroke:var(--accent); stroke-width:1; }

/* country count drawn at the pole of inaccessibility (no badge) */
.ccnt { cursor:pointer; }
.ccnt .glow { fill:var(--accent-bright); opacity:.16; filter:blur(6px); pointer-events:none; }
.ccnt text.num { font-family:"Bebas Neue",sans-serif; font-size:11px; letter-spacing:.04em; fill:var(--accent-bright); text-anchor:middle; dominant-baseline:central; paint-order:stroke; stroke:rgba(11,15,19,.95); stroke-width:3; stroke-linejoin:round; transition:fill .15s ease; }
.ccnt:hover text.num, .ccnt:focus text.num { fill:#FFB37A; }
.ccnt:hover .glow, .ccnt:focus .glow { opacity:.3; }
.ccnt:focus { outline:none; }

/* connector line: country number -> constellation chip */
.conn { stroke:rgba(242,106,46,.5); stroke-width:.7; stroke-dasharray:1.6 2.4; fill:none; pointer-events:none; transition:stroke .2s, stroke-width .2s; }
.conn.hot { stroke:#FFB37A; stroke-width:1.1; stroke-dasharray:none; }

/* hero constellation chip */
.atlas-cluster { cursor:pointer; }
.atlas-cluster .cl-bg { fill:rgba(11,15,19,.78); stroke:rgba(242,106,46,.45); stroke-width:.6; pointer-events:none; }
.atlas-cluster:hover .cl-bg { stroke:#FFB37A; }
.hero-mini { cursor:pointer; transition:transform .18s cubic-bezier(.34,1.56,.64,1); }
.hero-mini circle.ring { fill:none; stroke:var(--accent-bright); stroke-width:.7; opacity:.85; }
.hero-mini:hover { transform:scale(1.7); }
.hero-mini:hover circle.ring { stroke:#FFE0B8; opacity:1; }
.hero-mini .hm-initials { fill:var(--accent-bright); font-family:"Bebas Neue",sans-serif; font-size:7px; pointer-events:none; }

/* tooltip (country + hero card) */
.atlas-tip { position:absolute; z-index:1002; pointer-events:none; background:#0a0a0a !important; border:1px solid var(--accent-bright); color:var(--cream); padding:9px 12px; max-width:240px; opacity:0; transform:translate(-50%,calc(-100% - 14px)); transition:opacity .1s ease; box-shadow:0 16px 40px rgba(0,0,0,.55); }
.atlas-tip.show { opacity:1; }
/* flip variant: when there is no room above the cursor for the tip, world-map.js
   adds .tip-below and we render the card under the cursor instead of over it */
.atlas-tip.tip-below { transform:translate(-50%, 14px); }
.atlas-tip strong { display:block; font-family:"Bebas Neue",sans-serif; font-size:20px; letter-spacing:.04em; line-height:1; color:#FFB37A; }
.atlas-tip .t-sub { display:block; font-size:11px; color:#a8acb2; margin-top:5px; line-height:1.45; }
.atlas-tip .t-tag { display:inline-block; font-family:"JetBrains Mono",monospace; font-size:8px; letter-spacing:.18em; text-transform:uppercase; color:var(--accent-bright); border:1px solid var(--accent-bright); padding:1px 5px; margin-bottom:6px; }
/* hover card: a cream player card with a large image on top and text beneath */
.atlas-tip.card { padding:0; width:190px; max-width:190px; background:var(--cream) !important; border:1px solid rgba(20,20,20,.28) !important; overflow:hidden; }
.atlas-tip.card .t-img { width:100%; height:178px; background:#2a2018; }
.atlas-tip.card .t-img img { width:100%; height:100%; object-fit:cover; display:block; }
.atlas-tip.card .t-img-i { display:grid; place-items:center; font-family:"Bebas Neue",sans-serif; font-size:60px; color:var(--accent); }
.atlas-tip.card .t-cap { padding:12px 14px 14px; }
.atlas-tip.card .t-name { font-family:"Bebas Neue",sans-serif; font-size:22px; letter-spacing:.03em; color:var(--ink,#16191E); line-height:1; }
.atlas-tip.card .t-meta { font-size:11px; color:#6b6256; margin-top:6px; }
.atlas-sr-table { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0; }
.atlas-drill-backdrop { position:fixed; inset:0; background:rgba(6,6,6,.6); z-index:1000; }
.atlas-drill { position:fixed; top:0; right:0; height:100vh; width:440px; max-width:92vw; background:var(--panel-bg,#0F151B); border-left:1px solid var(--accent); color:var(--cream); z-index:1001; overflow-y:auto; padding:18px; box-shadow:-26px 0 60px rgba(0,0,0,.55); }
/* force the directory surfaces dark regardless of cascade/load order or the
   site.css light-theme .panel rules that load after atlas.css */
#atlas-drill { background:#0F151B !important; color:var(--cream) !important; }
.drill-close { position:absolute; top:12px; right:14px; background:transparent; border:1px solid var(--line); color:var(--cream); font-size:10px; letter-spacing:.18em; text-transform:uppercase; padding:6px 12px; cursor:pointer; }
.drill-close:hover { border-color:var(--accent); }
.drill-head { display:grid; grid-template-columns:auto 1fr; gap:12px; align-items:center; padding:8px 40px 16px 0; border-bottom:1px solid var(--line); margin-bottom:16px; }
.drill-titles .drill-country { font-family:"Bebas Neue",sans-serif; font-size:30px; margin:0; line-height:1; }
.drill-meta { font-family:"JetBrains Mono",monospace; font-size:10px; letter-spacing:.16em; text-transform:uppercase; color:var(--mute); margin-top:4px; }
.drill-cta { grid-column:1 / -1; color:var(--accent-bright); text-decoration:none; font-size:11px; letter-spacing:.16em; text-transform:uppercase; }
.drill-inset { aspect-ratio:16/9; background:#0d1620; border:1px solid var(--line); margin-bottom:16px; }
.drill-inset svg { width:100%; height:100%; display:block; }
.inset-land { fill:#1d2a38; stroke:#0B0F13; stroke-width:.4; }
.inset-pin { fill:var(--accent-bright); stroke:#0B0F13; stroke-width:1; }
.drill-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:12px; }
.dcard { text-decoration:none; color:var(--cream); }
.dcard-photo { aspect-ratio:3/4; background:#1a2230; position:relative; display:grid; place-items:center; overflow:hidden; }
.dcard-photo img { width:100%; height:100%; object-fit:cover; }
.dcard-initials { font-family:"Bebas Neue",sans-serif; font-size:34px; color:#3a4654; }
.dcard-alumni { position:absolute; top:6px; right:6px; background:var(--accent); color:#fff; font-family:"JetBrains Mono",monospace; font-size:8px; letter-spacing:.14em; text-transform:uppercase; padding:2px 6px; }
.dcard-name { font-family:"Bebas Neue",sans-serif; font-size:16px; margin-top:6px; line-height:1.05; }
.dcard-sub { font-size:10px; letter-spacing:.12em; text-transform:uppercase; color:var(--mute); margin-top:2px; }
.drill-loading { color:var(--mute); padding:24px 0; font-size:13px; }
body.atlas-drill-open { overflow:hidden; }
/* ====== editorial header block (replaces the old single-line count caption).
   on mobile this carries the visual weight that the world map carries on
   desktop. big Bebas numeral as the page anchor, mono meta row to the right. */
.atlas-count { display:grid; grid-template-columns:auto 1fr; gap:18px 22px; align-items:end; padding:20px 0 18px; border-bottom:1px solid var(--line); color:var(--mute); font-family:"JetBrains Mono",monospace; font-size:11px; letter-spacing:.18em; text-transform:uppercase; }
.atlas-count .stat-block { display:flex; align-items:baseline; gap:10px; min-width:0; }
.atlas-count .big { font-family:"Bebas Neue",sans-serif; font-size:56px; line-height:.85; letter-spacing:.01em; color:var(--cream); }
.atlas-count .stat-label { display:flex; flex-direction:column; gap:2px; font-size:10px; letter-spacing:.22em; color:var(--mute); padding-bottom:4px; }
.atlas-count .stat-label b { color:var(--cream); font-weight:500; }
.atlas-count .meta-row { display:flex; align-items:baseline; gap:12px; flex-wrap:wrap; padding-bottom:8px; justify-self:end; }
.atlas-count .meta-row strong { color:var(--cream); font-weight:500; font-size:12px; letter-spacing:.16em; }
.atlas-count .dot { color:var(--mute); opacity:.55; }
.atlas-count .hint { color:var(--mute); }

/* directory: horizontal market-table cards. desktop reads as a scannable
   directory; mobile flips to a 2-up portrait grid (photos carry the visual
   weight that the world map carries above the fold on desktop). */
.atlas-cards { display:grid; grid-template-columns:repeat(auto-fill, minmax(420px, 1fr)); gap:14px; padding:18px 0 6px; }
.pcard { display:grid; grid-template-columns:108px 1fr; gap:16px; background:var(--hero-2); border:1px solid var(--line); text-decoration:none; color:var(--cream); position:relative; overflow:hidden; padding:14px; transition:transform .16s ease, border-color .16s ease, background-color .16s ease; }
/* left-edge accent rule slides in on hover, very WSJ-pull-quote */
.pcard::before { content:""; position:absolute; left:0; top:0; bottom:0; width:2px; background:var(--accent); transform:scaleY(0); transform-origin:50% 0; transition:transform .22s ease; }
.pcard:hover { border-color:var(--line-strong); background:#10171F; transform:translateX(2px); }
.pcard:hover::before { transform:scaleY(1); }
.pcard:focus-visible { outline:none; border-color:var(--accent); box-shadow:0 0 0 1px var(--accent); }
.pcard-photo { width:108px; height:108px; aspect-ratio:1/1; background:linear-gradient(160deg,#18222e 0%,#0c1219 100%); position:relative; display:grid; place-items:center; overflow:hidden; border:1px solid var(--line); }
.pcard-photo img { width:100%; height:100%; object-fit:cover; transition:transform .5s ease; }
.pcard:hover .pcard-photo img { transform:scale(1.04); }
.pcard-initials { font-family:"Bebas Neue",sans-serif; font-size:46px; line-height:1; color:rgba(245,234,208,.18); letter-spacing:.04em; user-select:none; }
/* alumni state: outlined chip + desaturated photo */
.pcard.is-alumni .pcard-photo img,
.pcard.is-alumni .pcard-initials { filter:saturate(.55) brightness(.92); }
.pcard-alumni { position:absolute; top:14px; right:14px; z-index:2; color:var(--accent-bright); border:1px solid var(--accent); background:transparent; font-family:"JetBrains Mono",monospace; font-size:8.5px; font-weight:500; letter-spacing:.22em; text-transform:uppercase; padding:3px 7px 2px; line-height:1; }
.pcard-body { display:flex; flex-direction:column; justify-content:center; gap:6px; min-width:0; padding-right:64px; }
/* scan-tape: flag + ISO3 + conference + class. order matters: recruiter eye lands on country first */
.pcard-sub { display:flex; align-items:center; gap:6px; font-family:"JetBrains Mono",monospace; font-size:9.5px; letter-spacing:.2em; text-transform:uppercase; color:var(--mute); min-width:0; white-space:nowrap; overflow:hidden; }
.pcard-sub .iso { color:var(--cream); font-weight:500; letter-spacing:.22em; }
.pcard-sub .conf { color:var(--cream-2); overflow:hidden; text-overflow:ellipsis; min-width:0; flex:0 1 auto; }
.pcard-sub .class { color:var(--accent-bright); font-weight:500; flex:0 0 auto; }
.pcard-sub .sep { color:var(--mute); opacity:.55; flex:0 0 auto; }
.pcard-sub:empty { display:none; }
/* override the Flag ViewComponent's default sm size (24x16) to fit the scan-tape */
.pcard-sub .flag { width:15px !important; height:11px !important; border:1px solid rgba(245,234,208,.22); border-radius:0; position:relative; top:-1px; flex:0 0 auto; }
.pcard-name { font-family:"Bebas Neue",sans-serif; font-size:30px; letter-spacing:.015em; line-height:.98; color:var(--cream); margin-top:2px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.pcard-meta { font-size:14px; font-weight:500; line-height:1.25; color:var(--cream-2); min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.atlas-pager { display:flex; align-items:center; justify-content:space-between; gap:18px; padding-top:22px; margin-top:8px; border-top:1px solid var(--line); }
.atlas-pager .pg { color:var(--cream); text-decoration:none; padding:8px 0; font-family:"JetBrains Mono",monospace; font-size:10.5px; letter-spacing:.22em; text-transform:uppercase; transition:color .15s ease; display:inline-flex; align-items:center; gap:8px; }
.atlas-pager .pg:hover { color:var(--accent-bright); }
.atlas-pager .pg.off { opacity:.25; pointer-events:none; }
.atlas-pager .pg svg { width:10px; height:10px; flex:0 0 auto; }
.atlas-pager .pg-info { font-family:"JetBrains Mono",monospace; font-size:10.5px; letter-spacing:.2em; text-transform:uppercase; color:var(--mute); }
.atlas-pager .pg-info b { color:var(--cream); font-weight:500; }

/* country directory panel content (shared by the desktop drill + mobile sheet) */
.pl-head { padding:6px 36px 16px 0; border-bottom:1px solid var(--line); margin-bottom:6px; }
.pl-head-top { display:flex; align-items:center; gap:12px; margin-bottom:12px; }
.pl-crumb { font-family:"JetBrains Mono",monospace; font-size:10px; letter-spacing:.22em; color:var(--accent-bright); text-transform:uppercase; }
.pl-country { font-family:"Bebas Neue",sans-serif; font-size:44px; letter-spacing:.005em; line-height:.95; margin:0; color:var(--cream); }
.pl-meta { margin-top:8px; display:flex; gap:12px; align-items:center; font-family:"JetBrains Mono",monospace; font-size:10px; letter-spacing:.18em; color:#a8acb2; text-transform:uppercase; }
.pl-meta b { color:var(--accent-bright); font-weight:400; margin-right:4px; }
.pl-meta .dot { color:#5f636a; }
.pl-cta { display:inline-block; margin-top:10px; color:var(--accent-bright); text-decoration:none; font-family:"JetBrains Mono",monospace; font-size:10px; letter-spacing:.18em; text-transform:uppercase; }
.pl-controls { display:flex; gap:10px; padding:12px 0 4px; }
.pl-search { flex:1 1 auto; min-width:0; background:rgba(245,234,208,.05) !important; border:1px solid var(--line); color:var(--cream) !important; padding:8px 10px; font-size:12px; font-family:var(--font-sans,'Inter',sans-serif); }
.pl-search::placeholder { color:var(--mute); }
.pl-sort { -webkit-appearance:none; appearance:none; background:#0F151B url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'><path d='M1 1l4 4 4-4' stroke='%23a8acb2' stroke-width='1.4' fill='none'/></svg>") no-repeat right 9px center !important; background-size:10px 6px !important; border:1px solid var(--line); color:var(--cream) !important; padding:8px 28px 8px 10px; font-size:11px; font-family:var(--font-sans,'Inter',sans-serif); cursor:pointer; }
.pl-sort option { background:#0F151B; color:var(--cream); }
.pl-list { display:flex; flex-direction:column; }
.pl-section { display:flex; align-items:center; gap:10px; padding:16px 0 6px; font-family:"JetBrains Mono",monospace; font-size:10px; letter-spacing:.22em; color:#a8acb2; text-transform:uppercase; }
.pl-section b { color:var(--accent-bright); font-weight:400; }
.pl-section .ln { flex:1; height:1px; background:var(--line); }
.pl-row { display:grid; grid-template-columns:46px 1fr auto; gap:12px; align-items:center; padding:11px 4px; border-bottom:1px solid rgba(245,234,208,.05); text-decoration:none; color:var(--cream); border-left:3px solid transparent; transition:background .15s, border-left-color .2s; }
.pl-row:hover { background:rgba(224,84,31,.06); border-left-color:var(--accent-bright); }
.pl-row .avi { width:46px; height:46px; border-radius:50%; background:#2a2018 center/cover no-repeat; border:1px solid var(--line-strong); display:grid; place-items:center; }
.pl-row.hero .avi { border-color:var(--accent-bright); box-shadow:0 0 0 1px rgba(242,106,46,.4); }
.pl-row .avi-i { font-family:"Bebas Neue",sans-serif; font-size:18px; color:#5a6878; }
.pl-row .info { min-width:0; }
.pl-row .nm { font-family:"Bebas Neue",sans-serif; font-size:18px; letter-spacing:.04em; color:var(--cream); line-height:1; margin-bottom:4px; display:flex; align-items:center; gap:8px; }
.pl-row.hero .nm { color:#FFB37A; }
.pl-row .htag { font-family:"JetBrains Mono",monospace; font-size:8px; letter-spacing:.18em; color:var(--accent-bright); padding:1px 5px; border:1px solid rgba(242,106,46,.5); text-transform:uppercase; }
.pl-row .sub { font-size:11.5px; color:#a8acb2; line-height:1.4; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.pl-row .arr { font-family:"Bebas Neue",sans-serif; font-size:18px; color:var(--accent-bright); opacity:.4; }
.pl-row:hover .arr { opacity:1; }

@media (max-width:1100px) {
    .atlas-top { grid-template-columns:1fr; gap:24px; }
    .atlas-h1 { font-size:72px; }
    .atlas-cards { grid-template-columns:repeat(auto-fill, minmax(380px, 1fr)); }
}
@media (max-width:860px) {
    /* single-column horizontal directory list until we hit the mobile breakpoint */
    .atlas-cards { grid-template-columns:1fr; gap:10px; }
}
@media (max-width:760px) {
    .atlas { padding:28px 18px 48px; }
    .atlas-h1 { font-size:56px; }
    .pl-country { font-size:34px; }
}

/* ============ mobile (<=767): flat map is desktop-only; phones get a 2-up
   portrait showcase grid that flips the horizontal card into a tall card with
   photo on top + body below. the editorial header also collapses to a single
   column so the big numeral leads the page. ============ */
@media (max-width:767px) {
    .atlas-stage { display:none; }

    /* header collapses, numeral grows */
    .atlas-count { grid-template-columns:1fr; gap:14px; padding:18px 0 16px; }
    .atlas-count .big { font-size:64px; }
    .atlas-count .meta-row { justify-self:start; padding-bottom:0; font-size:9.5px; letter-spacing:.18em; gap:8px; }
    .atlas-count .meta-row strong { font-size:11px; }

    /* grid: 2-up portrait */
    .atlas-cards { grid-template-columns:repeat(2, minmax(0, 1fr)); gap:12px; padding:16px 0 6px; }

    /* card: flip from horizontal grid to vertical stack */
    .pcard { display:flex; flex-direction:column; gap:0; padding:0; }
    /* top-edge accent rule (was left-edge on horizontal) */
    .pcard::before { width:100%; height:2px; transform:scaleX(0); transform-origin:0 50%; top:0; left:0; bottom:auto; }
    .pcard:hover::before { transform:scaleX(1); }
    .pcard:hover { transform:translateY(-3px); }

    .pcard-photo { width:100%; height:auto; aspect-ratio:4/5; border:none; border-bottom:1px solid var(--line); }
    .pcard-initials { font-size:56px; }
    .pcard-body { padding:11px 12px 13px; padding-right:12px; gap:5px; }
    .pcard-name { font-size:21px; }
    .pcard-meta { font-size:13px; }
    .pcard-sub { font-size:9px; gap:5px; letter-spacing:.18em; }
    .pcard-alumni { top:8px; right:8px; font-size:8px; padding:2px 6px 1px; }
}
@media (max-width:380px) {
    .atlas-cards { gap:10px; }
    .atlas-count .big { font-size:56px; }
    .pcard-name { font-size:19px; }
    .pcard-meta { font-size:12.5px; }
    /* tape wraps to 2 lines so class year never gets truncated on the tightest phones */
    .pcard-sub { flex-wrap:wrap; row-gap:3px; white-space:nowrap; }
    .pcard-sub .conf { max-width:none; flex:1 1 auto; min-width:0; overflow:hidden; text-overflow:ellipsis; }
    .pcard-sub .class { flex-basis:100%; margin-top:1px; letter-spacing:.2em; }
    /* hide the separator dangling at the end of line 1 just before .class wraps */
    .pcard-sub > :nth-last-child(2) { display:none; }
}
