/* GlobalVet Clinical Pathology Atlas + Microscope Masterclass — page helpers (modal, lazy thumbnails, lock panes) */
.brand .mark{background:linear-gradient(135deg,#A78BFA,#C4A574)}
.region-strip{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0 0}
.region-strip span{display:inline-flex;align-items:center;gap:7px;padding:6px 12px;border-radius:99px;border:1px solid var(--line-2);font-size:13px;color:var(--ink-2);background:rgba(255,255,255,.02)}
.region-strip i{width:9px;height:9px;border-radius:50%;display:inline-block}
.hero-atlas h1 .grad{background:linear-gradient(100deg,#E1C48F 0%,#F3A9B3 45%,#A78BFA 100%);-webkit-background-clip:text;background-clip:text;color:transparent}
.hero-duel-wrap{position:relative}
.hero-duel{aspect-ratio:5/4}
.hero-duel .layer{position:absolute;inset:0}
.hero-duel .layer svg{width:100%;height:100%}
.hero-duel .layer.top{will-change:clip-path}
.hero-cap{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-top:10px;font-size:13px;color:var(--muted)}
.hero-cap .seg button{font-size:12px;padding:6px 10px}
.method{display:grid;grid-template-columns:repeat(3,1fr);gap:0;margin-top:26px;border:1px solid var(--line-2);border-radius:var(--r);overflow:hidden}
.method>div{padding:26px 24px;background:var(--panel);position:relative}
.method>div+div{border-left:1px solid var(--line-2)}
.method .n{font-family:var(--mono);font-size:12px;letter-spacing:.14em;color:var(--muted)}
.method h3{font-size:30px;margin:6px 0 8px}
.method>div:nth-child(1) h3{color:var(--exam)} .method>div:nth-child(2) h3{color:var(--copper-2)} .method>div:nth-child(3) h3{color:var(--cyan)}
.method>div+div::before{content:"→";position:absolute;left:-13px;top:34px;width:24px;height:24px;border-radius:50%;background:var(--bg);border:1px solid var(--line-2);display:grid;place-items:center;font-size:13px;color:var(--copper)}
@media(max-width:760px){.method{grid-template-columns:1fr}.method>div+div{border-left:0;border-top:1px solid var(--line-2)}.method>div+div::before{display:none}}
.showcase-tabs{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0 16px}
.showcase-tabs button{background:var(--panel);border:1px solid var(--line-2);color:var(--ink-2);border-radius:99px;padding:8px 14px;cursor:pointer;font-size:14px;display:inline-flex;gap:8px;align-items:center}
.showcase-tabs button i{width:9px;height:9px;border-radius:50%;display:inline-block}
.showcase-tabs button.on{border-color:var(--copper);color:var(--ink);box-shadow:0 0 0 1px var(--copper) inset}
.mod-card{display:block;text-decoration:none;color:inherit;border-left:3px solid var(--rc,var(--copper))}
.mod-card .eyebrow{color:var(--rc,var(--copper))}
.tool-card{display:block;text-decoration:none;color:inherit}
.tool-card .ic{font-size:26px;line-height:1}
.tool-card h3{margin:10px 0 6px;font-size:19px}
.tool-card p{font-size:14px;color:var(--muted);margin:0}
.free-badge{font-family:var(--mono);font-size:10px;letter-spacing:.12em;color:var(--ok);border:1px solid rgba(76,195,138,.45);border-radius:99px;padding:2px 8px;margin-left:6px;vertical-align:middle}
.lock-badge{font-family:var(--mono);font-size:10px;letter-spacing:.12em;color:var(--copper);border:1px solid rgba(196,165,116,.45);border-radius:99px;padding:2px 8px;margin-left:6px;vertical-align:middle}
/* atlas browser */
.pcard{cursor:pointer}
.pcard .th{position:relative}
.pcard .th .ph{aspect-ratio:8/5;background:linear-gradient(180deg,#0A1119,#142131)}
.pcard .lk{position:absolute;top:10px;right:10px}
.pcard .rg{position:absolute;top:10px;left:10px;font-family:var(--mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;padding:3px 9px;border-radius:99px;background:rgba(7,11,16,.82);border:1px solid var(--line-2)}
.atlas-count{font-size:14px;color:var(--muted);margin:0 0 14px}
.modal .box{max-width:1180px;margin:0 auto}
.modal .navx{display:flex;justify-content:space-between;gap:10px;margin:12px 0 0}
/* duels trainer */
.dgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px}
.dcard{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;cursor:pointer;transition:transform .2s,border-color .2s}
.dcard:hover{transform:translateY(-3px);border-color:var(--line-2)}
.dcard .pair{display:grid;grid-template-columns:1fr 1fr;gap:2px;background:#05080C}
.dcard .pair .ph{aspect-ratio:5/4;background:linear-gradient(180deg,#0A1119,#142131)}
.dcard .pair svg{display:block;width:100%;height:auto}
.dcard .cap{padding:12px 14px}
.dcard .cap b{display:block;font-size:15px}
.dcard .cap span{font-size:12px;color:var(--muted);font-family:var(--mono);letter-spacing:.06em}
.drill{background:var(--panel);border:1px solid var(--line-2);border-radius:22px;padding:20px;box-shadow:var(--glow)}
.drill .q{font-family:var(--serif);font-size:clamp(22px,3vw,30px);margin:4px 0 14px}
.drill .pair{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.drill .pair .s{position:relative;border:1px solid var(--line-2);border-radius:16px;overflow:hidden;background:#0A1119;cursor:pointer;transition:border-color .2s,box-shadow .2s}
.drill .pair .s:hover{border-color:var(--copper)}
.drill .pair .s.ok{border-color:var(--ok);box-shadow:0 0 0 2px var(--ok)}
.drill .pair .s.bad{border-color:var(--bad);box-shadow:0 0 0 2px var(--bad)}
.drill .pair .s .nm{position:absolute;left:10px;bottom:10px;font-family:var(--mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase;background:rgba(7,11,16,.85);padding:5px 10px;border-radius:99px;border:1px solid var(--line-2);display:none}
.drill.revealed .pair .s .nm{display:block}
.drill .pair svg{display:block;width:100%;height:auto}
.drill:not(.revealed) .tell{opacity:0}
.drill .tell{transition:opacity .4s}
.drill .res{margin-top:14px}
.drill .score{font-family:var(--mono);font-size:13px;color:var(--muted)}
@media(max-width:640px){.drill .pair{grid-template-columns:1fr}}
/* tools + lab */
.tool-tabs{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0 20px}
.tool-tabs button{background:var(--panel);border:1px solid var(--line-2);color:var(--ink-2);border-radius:99px;padding:8px 14px;cursor:pointer;font-size:14px}
.tool-tabs button.on{background:var(--copper);border-color:var(--copper);color:#14100A}
.tool-pane{display:none}.tool-pane.on{display:block}
.locked-pane{position:relative;border-radius:var(--r);overflow:hidden;min-height:340px}
.locked-pane>.gw,.locked-pane>.ghost{filter:blur(3px) saturate(.5) brightness(.55);pointer-events:none;user-select:none}
.locked-pane .over{position:absolute;inset:0;display:grid;place-items:center;padding:20px;background:linear-gradient(180deg,rgba(7,11,16,.15),rgba(7,11,16,.75))}
.locked-pane .over .card{max-width:440px;text-align:center}
.sample-list{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.sample-list span{font-size:12px;padding:4px 10px;border-radius:99px;border:1px solid var(--line-2);color:var(--muted)}
/* lesson accents */
.lesson .eyebrow .rg{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:8px;vertical-align:middle}
.lesson .body .plate,.lesson .body .duel,.lesson .body .gw{margin:26px 0}
.vs-table td:nth-child(2){color:var(--muted)}
.inside-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:16px;margin-top:24px}
.inside-strip .card{padding:0;overflow:hidden}
.inside-strip .card .ph{aspect-ratio:8/5;background:#0A1119;overflow:hidden}
.inside-strip .card .ph svg{display:block;width:100%;height:100%}
.inside-strip .card div.t{padding:12px 14px}
.inside-strip .card div.t b{display:block}
.inside-strip .card div.t span{font-size:14px;color:var(--muted)}
.guarantee{display:flex;gap:16px;align-items:center;border:1px dashed rgba(76,195,138,.45);border-radius:var(--r);padding:16px 18px;margin-top:18px;background:rgba(76,195,138,.05)}
.guarantee .ic{font-size:30px}

/* ── photo scenes (AI illustrations of setting/technique — tools/visuals) ── */
.hero-photo{position:relative;overflow:hidden;min-height:min(88vh,780px);display:flex;flex-direction:column;justify-content:center;padding:120px 0 96px}
.hero-photo .hero-media{position:absolute;inset:0;z-index:0}
.hero-photo .hero-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:66% 32%}
.hero-photo .hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(7,11,16,.97) 0%,rgba(7,11,16,.9) 28%,rgba(7,11,16,.58) 48%,rgba(7,11,16,.14) 70%,rgba(7,11,16,0) 100%),linear-gradient(0deg,var(--bg) 0%,rgba(7,11,16,0) 24%),linear-gradient(180deg,rgba(7,11,16,.55) 0%,rgba(7,11,16,0) 18%)}
.hero-photo>.wrap{position:relative;z-index:2}
.hero-photo .hero-grid{display:block}.hero-photo .hero-grid>div:first-child{max-width:620px}
.hero-photo .lede{color:var(--ink-2)}
@media(max-width:860px){.hero-photo{display:block;min-height:0;padding:0 0 48px}.hero-photo .hero-media{position:relative;inset:auto;height:clamp(250px,68vw,460px)}.hero-photo .hero-bg{object-position:74% 28%}.hero-photo .hero-shade{background:linear-gradient(0deg,var(--bg) 0%,rgba(7,11,16,.35) 38%,rgba(7,11,16,0) 62%),linear-gradient(180deg,rgba(7,11,16,.45) 0%,rgba(7,11,16,0) 22%)}.hero-photo>.wrap{margin-top:-28px}}
.mod-card.has-img{padding:0;overflow:hidden;display:flex;flex-direction:column}
.mod-card .mc-img{position:relative;aspect-ratio:16/7;overflow:hidden;background:var(--bg-3)}
.mod-card .mc-img img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s ease}
.mod-card:hover .mc-img img{transform:scale(1.035)}
.mod-card .mc-img::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,var(--panel) 0%,rgba(14,22,32,0) 55%)}
.mod-card .mc-body{padding:4px 18px 18px;display:flex;flex-direction:column;gap:8px}
.lesson-banner{position:relative;aspect-ratio:21/7;border-radius:16px;overflow:hidden;margin:0 0 18px;border:1px solid var(--line);background:var(--bg-3)}
.lesson-banner img{width:100%;height:100%;object-fit:cover;object-position:62% 38%;display:block}
.lesson-banner::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(7,11,16,.78) 0%,rgba(7,11,16,.2) 55%,rgba(7,11,16,0) 100%)}
.lesson-banner span{position:absolute;left:18px;bottom:14px;z-index:1;font:600 12px/1.2 var(--mono,"IBM Plex Mono",monospace);letter-spacing:.12em;text-transform:uppercase;color:#F3EEDD}
.page-band{position:relative;height:clamp(150px,22vw,280px);overflow:hidden;margin-bottom:-56px}
.page-band .pb-img{width:100%;height:100%;object-fit:cover;object-position:60% 40%;display:block}
.page-band::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,var(--bg) 0%,rgba(7,11,16,.55) 45%,rgba(7,11,16,.35) 100%)}
.nav-links a.btn.on{background:linear-gradient(135deg,var(--copper-2),var(--copper));color:#1A1408}
.scene-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px;margin-top:16px}
.scene-grid figure{margin:0;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:var(--panel)}
.scene-grid img{display:block;width:100%;aspect-ratio:16/9;object-fit:cover}
.scene-grid figcaption{font-size:12.5px;color:var(--muted);padding:8px 10px}

/* ── v2: final exam · Daily 10 · pocket cards (certificate styles live in certificate.html) ── */
.toc .toc-x{display:flex;flex-wrap:wrap;gap:2px;padding:4px 4px 10px;border-bottom:1px solid var(--line);margin-bottom:6px}
.toc .toc-x a{padding:6px 9px;font-size:13px;gap:0}
.ex-facts{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:0 0 20px}
.ex-facts div{border:1px solid var(--line);border-radius:12px;padding:12px 14px;background:rgba(255,255,255,.02)}
.ex-facts b{display:block;font-family:var(--mono);font-size:21px;color:var(--copper-2);margin-bottom:2px}
.ex-facts span{font-size:13px;color:var(--muted);line-height:1.35;display:block}
.ex-name{display:block;font-weight:600;margin:6px 0 8px}
#ex-name{width:100%;max-width:520px;padding:13px 15px;border-radius:12px;border:1px solid var(--line-2);background:var(--panel);color:var(--ink);font:inherit;font-size:18px}
#ex-name:focus{outline:2px solid var(--copper);outline-offset:1px}
#ex-name.err{border-color:var(--bad);box-shadow:0 0 0 3px rgba(242,109,109,.18)}
.ex-small{font-size:13px;margin:10px 0 16px;line-height:1.5}
.ex-bar,.rv-top{position:sticky;top:72px;z-index:5;display:flex;align-items:center;gap:14px;padding:10px 14px;margin-bottom:16px;border:1px solid var(--line);border-radius:12px;background:var(--bg-2)}
.ex-bar span{font-family:var(--mono);font-size:13px;white-space:nowrap}
.rv-bar{flex:1;height:8px;border-radius:99px;background:var(--line);overflow:hidden;min-width:60px}
.rv-bar i{display:block;height:100%;width:0;background:var(--copper);transition:width .25s}
.ex-mod{margin:28px 0 10px;font:600 13px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.ex-q{margin:12px 0}
.ex-q .opts button.on{border-color:var(--copper);background:rgba(196,165,116,.16);color:var(--ink)}
.ex-q.answered{border-color:rgba(196,165,116,.42)}
.ex-submit{margin-top:24px;display:flex;flex-direction:column;align-items:flex-start;gap:4px}
.ex-result{display:flex;gap:24px;align-items:center;flex-wrap:wrap;margin-bottom:8px}
.ex-result h2{margin:0 0 4px}
.ex-result.pass{border-color:rgba(76,195,138,.55)}
.ring.ex-ring{width:104px;height:104px;font-size:22px;flex:none}
.ring.ex-ring::after{width:84px;height:84px}
.ex-tbl td:nth-child(2){white-space:nowrap;width:64px}
.ex-tbl td:nth-child(3){width:34%}
.ex-tbl .rv-bar{display:block}
.ex-rev{columns:2;column-gap:28px}.ex-rev li{margin:4px 0;break-inside:avoid}
.rv-top .eyebrow{white-space:nowrap}
.rv-streak{font-family:var(--mono);font-size:13px;white-space:nowrap}
.rv-kind{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:12px}
.rv-fig{border-radius:12px;overflow:hidden;background:#0b0f14;margin-bottom:6px}
.rv-fig svg{display:block;width:100%;height:auto}
.rv-card .quiz{border:0;padding:14px 0 0;background:none}
.rv-next{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:14px;flex-wrap:wrap}
.rv-done{display:flex;gap:24px;align-items:center;flex-wrap:wrap}
.rv-done h2{margin:0 0 6px}
.rv-lock{margin-top:0}
.cards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:18px}
.pc-card{display:flex;flex-direction:column;gap:8px}
.pc-card.on{outline:2px solid var(--copper)}
.pc-card h3{margin:0;font-size:18px;line-height:1.25}
.pc-card .btn{align-self:flex-start;margin-top:auto}
.pc-img{position:relative;display:block;border-radius:10px;overflow:hidden;background:#F7F3E4;margin-bottom:4px}
.pc-img img{display:block;width:100%;height:auto}
.pc-img::after{content:"";position:absolute;left:0;right:0;bottom:0;height:34%;background:linear-gradient(rgba(247,243,228,0),#F7F3E4)}
@media(max-width:700px){.ex-facts{grid-template-columns:repeat(2,1fr)}.ex-rev{columns:1}.ex-bar,.rv-top{top:66px}}
/* visible AI label on every scene photo (SPEC 10b) — HTML overlay, never burned into the image */
.ai-tag{position:absolute;top:10px;right:10px;z-index:3;font:600 10px/1 var(--mono,"IBM Plex Mono",monospace);letter-spacing:.12em;text-transform:uppercase;color:#F3EEDD;background:rgba(7,11,16,.66);border:1px solid rgba(243,238,221,.28);border-radius:99px;padding:5px 9px;pointer-events:none}
.hero-media .ai-tag{top:16px;right:20px}
.page-band .ai-tag{top:auto;bottom:66px}
.hero-photo .hero-grid>.card{max-width:620px;margin-top:6px;background:rgba(14,22,32,.8);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.page-band img[src*="scenes/ms-"]{object-position:64% 16%}
