/* v21 — cohesive sea-glass palette + focused home + credential gallery */
:root,
:root[data-theme="dark"] {
  color-scheme: dark;
  --bg:#0c1921;--panel:#142630;--panel2:#19303a;--line:#2b4750;
  --text:#edf5f3;--muted:#abc0c3;--faint:#72949c;--accent:#71d7c6;
  --accent-dark:#49aa9f;--header:rgba(12,25,33,.95);--shadow:rgba(0,0,0,.24);
  --accent-rgb:113,215,198;
}
:root[data-theme="light"]{
  color-scheme:light;
  --bg:#f4f8f7;--panel:#ffffff;--panel2:#eaf2f0;--line:#c9dcda;
  --text:#14323b;--muted:#41616b;--faint:#64858d;--accent:#117a79;
  --accent-dark:#0b6666;--header:rgba(244,248,247,.97);--shadow:rgba(31,86,88,.09);
  --accent-rgb:17,122,121;
}
/* neutralize hardcoded dark surface introduced by older chapter styles */
body,main#main,main#main>section[id],main#main>section[id].deck-active,
main#main>section#home.hero.hero-v14,main#main>section#home.hero.hero-v14.deck-active,
#experience,#skills,#credentials,#about,#contact {background-color:var(--bg)!important;color:var(--text)!important}
.site-header,.deck-controls,.deck-dots,.mobile-menu,.main-nav{color:var(--text)}
#experience .journey-card, #skills .talent-tree,#skills .talent-node,
#credentials .education-compact-item,#about .photo-strip,#contact .contact-links a.btn-secondary,
#experience .journey-card-main,.v21-gallery {background-color:var(--panel)!important;color:var(--text)!important}
#experience .journey-card,#skills .talent-tree,#credentials .education-compact-item{border-color:var(--line)!important}
#experience .journey-card.is-active{border-color:var(--accent)!important}
#experience .journey-card p,#experience .journey-duties,#credentials .section-heading p{color:var(--muted)!important}
#skills .talent-node:hover,#skills .talent-node.is-selected{background-color:var(--panel2)!important}
#home.hero-v14 {grid-template-columns:1fr!important;grid-template-rows:minmax(0,1fr) auto!important;align-items:center!important;position:relative!important;isolation:isolate}
#home.hero-v14::before{content:"";position:absolute;inset:0;pointer-events:none;z-index:-1;background:radial-gradient(ellipse at 75% 49%,rgba(var(--accent-rgb),.11),transparent 40%),linear-gradient(90deg,transparent 0,transparent 65%,rgba(var(--accent-rgb),.025) 65.1%,transparent 65.2%)}
#home.hero-v14 .hero-v14-copy{width:min(950px,100%);margin:0 auto!important;align-self:center!important;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;min-height:0}
#home.hero-v14 .hero-v14-preface{color:var(--accent)!important;letter-spacing:.23em;font-size:clamp(9px,.8vw,12px)!important;margin:0 0 clamp(20px,3dvh,38px)!important}
#home.hero-v14 .hero-v14-name{font-size:clamp(50px,9.8vw,158px)!important;line-height:1.02!important;letter-spacing:-.089em!important;margin:0 0 clamp(12px,2vh,27px)!important;white-space:normal!important;max-width:100%;font-weight:800}
#home.hero-v14 .hero-v14-name>span{display:inline!important;white-space:nowrap!important}
#home.hero-v14 .hero-v14-last{color:var(--accent)!important}
#home.hero-v14 .hero-v14-rule{max-width:720px!important;width:100%;margin:0 0 clamp(18px,3vh,32px)!important}
#home.hero-v14 .hero-v14-rule span{background:var(--accent)!important}
#home.hero-v14 .hero-v14-descriptor{color:var(--accent)!important;font-size:clamp(10px,1.15vw,13px)!important;letter-spacing:.15em;line-height:1.6;margin:0 0 16px!important}
#home.hero-v14 .hero-v14-lead{max-width:710px!important;color:var(--muted)!important;font-size:clamp(14px,1.35vw,19px)!important;line-height:1.67!important;margin:0!important}
#home.hero-v14 .hero-v14-links{margin-top:clamp(20px,4dvh,38px)!important}
#home.hero-v14 .hero-v14-links .btn-primary,.btn-primary{background:var(--accent)!important;border-color:var(--accent)!important;color:var(--bg)!important}
#home.hero-v14 .hero-v14-bottom{width:100%;color:var(--faint);border-top:1px solid var(--line);letter-spacing:.2em;font-size:clamp(9px,.8vw,11px);grid-column:1!important}
#home .hero-v14-atmosphere{pointer-events:none}
#home .hero-v14-halo{background:radial-gradient(circle,rgba(var(--accent-rgb),.14),transparent 66%)}
/* dynamic gallery / hidden old data components retained for script safety */
#credentials .v21-legacy[hidden]{display:none!important}
#credentials .shell{max-height:100%;min-height:0!important;overflow-y:auto;scrollbar-width:none;padding-block:clamp(10px,2dvh,28px)!important}
#credentials .shell::-webkit-scrollbar{display:none}
#credentials .section-heading{margin:0 0 clamp(8px,2dvh,18px)!important;gap:18px}
#credentials .section-heading h2{font-size:clamp(26px,3.5vw,52px)!important}
#credentials .section-heading p{font-size:clamp(11px,1.05vw,14px)!important;max-width:370px}
.v21-gallery{border:1px solid var(--line);border-radius:13px;position:relative;overflow:hidden;background:var(--panel);padding:clamp(10px,1.4vw,22px);box-shadow:0 22px 60px var(--shadow);min-height:0}
.v21-gallery-top,.v21-gallery-bottom{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:24px}
.v21-gallery-label{font-size:10px;font-weight:800;color:var(--accent);letter-spacing:.2em}
.v21-gallery-label b{color:var(--muted);margin-left:18px;font-weight:500}
.v21-gallery-hint,.v21-gallery-note{color:var(--faint);font-size:10px;letter-spacing:.11em}
.v21-gallery-stage{height:clamp(240px,49dvh,515px);display:grid;grid-template-columns:44px minmax(0,1fr) 44px;align-items:center;gap:8px;min-height:0}
.v21-gallery-canvas{position:relative;width:100%;height:100%;overflow:hidden;perspective:900px;isolation:isolate}
.v21-gallery-item{position:absolute;top:50%;left:50%;width:min(69%,610px);aspect-ratio:1200/850;max-height:94%;appearance:none;border:0;background:transparent;padding:0;cursor:pointer;transform:translate(-50%,-50%) translateX(var(--offset)) rotateY(var(--rotate)) scale(var(--scale));opacity:var(--alpha);filter:blur(var(--blur));z-index:var(--layer);transition:transform .62s cubic-bezier(.18,.72,.16,1),opacity .55s ease,filter .55s ease;will-change:transform}
.v21-gallery-item img{width:100%;height:100%;display:block;object-fit:contain;box-shadow:0 20px 55px rgba(0,0,0,.25);border:1px solid var(--line);border-radius:3px;background:#f5f5f5}
.v21-gallery-item[data-distance="0"]{outline:1px solid var(--accent);outline-offset:5px}
.v21-gallery-nav,.v21-gallery-dots button{background:var(--panel2);border:1px solid var(--line);color:var(--text);cursor:pointer}
.v21-gallery-nav{border-radius:50%;width:42px;height:42px;font-size:22px;display:grid;place-items:center;position:relative;z-index:6}
.v21-gallery-nav:hover,.v21-gallery-nav:focus-visible{border-color:var(--accent);color:var(--accent)}
.v21-gallery-dots{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.v21-gallery-dots button{padding:0;width:8px;height:8px;border-radius:8px;transition:width .3s,background .3s}
.v21-gallery-dots button[aria-current="true"]{width:29px;background:var(--accent);border-color:var(--accent)}
#credentials .education-compact{margin-top:clamp(10px,2dvh,22px)!important;padding-top:clamp(10px,1.6dvh,17px)!important}
#credentials .education-compact-title{margin-bottom:9px!important}
#credentials .education-compact-title h3{font-size:clamp(14px,1.4vw,17px)!important}
#credentials .education-compact-item{padding:10px 14px!important}
#credentials .section-footnote{margin-top:8px!important;font-size:10px!important}
.v21-lightbox[hidden]{display:none!important}
.v21-lightbox{position:fixed;inset:0;z-index:10000;display:grid;grid-template-columns:62px minmax(0,1fr) 62px;align-items:center;justify-content:center;padding:clamp(14px,3vw,48px);color:white}
.v21-lightbox-backdrop{position:absolute;inset:0;background:rgba(5,17,23,.94);backdrop-filter:blur(18px);z-index:-1}
.v21-lightbox figure{margin:0;min-width:0;display:grid;place-items:center;gap:12px;animation:v21-zoom .42s cubic-bezier(.2,.7,.2,1) both}
.v21-lightbox img{max-width:100%;max-height:calc(100dvh - 140px);object-fit:contain;box-shadow:0 30px 110px #0009}
.v21-lightbox figcaption{font-size:12px;color:#b5d3d5;letter-spacing:.1em}
.v21-lightbox-close,.v21-lightbox-step{appearance:none;color:#f0faf8;background:rgba(255,255,255,.11);border:1px solid rgba(255,255,255,.25);cursor:pointer;display:grid;place-items:center}
.v21-lightbox-close{position:absolute;top:22px;right:24px;z-index:4;border-radius:50%;width:44px;height:44px;font-size:32px;line-height:1}
.v21-lightbox-step{border-radius:50%;width:46px;height:46px;font-size:24px}
@keyframes v21-zoom{from{opacity:0;transform:scale(.78)}to{opacity:1;transform:scale(1)}}
/* Existing pages must follow theme, including overlays from legacy styles. */
:root[data-theme="light"] .v15-intro{background:#eff7f5!important;color:#14323b!important}
:root[data-theme="light"] .v15-intro-name,:root[data-theme="light"] .v15-intro-letters{color:#14323b!important}
:root[data-theme="light"] #experience .journey-viewport,
:root[data-theme="light"] #experience .journey-track,
:root[data-theme="light"] #experience .journey-stage,
:root[data-theme="light"] #skills .talent-forest{background:transparent!important}
:root[data-theme="light"] .journey-card:not(.is-active){opacity:.72}
:root[data-theme="light"] .journey-heading h2,:root[data-theme="light"] .journey-card h3{color:var(--text)!important}
@media(max-width:760px){
 #home.hero-v14 .hero-v14-copy{width:100%;align-self:center!important}
 #home.hero-v14 .hero-v14-name{font-size:clamp(46px,11.4vw,84px)!important;line-height:1.08!important}
 #home.hero-v14 .hero-v14-name>span{display:block!important}
 #home.hero-v14 .hero-v14-lead{font-size:clamp(13px,3.55vw,17px)!important;line-height:1.55!important}
 #home.hero-v14 .hero-v14-preface{font-size:9px!important;margin-bottom:18px!important}
 #home.hero-v14 .hero-v14-descriptor{font-size:10px!important}
 #home.hero-v14 .hero-v14-bottom{font-size:8px!important}
 #credentials .shell{width:calc(100% - 28px)!important;padding-bottom:58px!important}
 #credentials .section-heading{display:block!important}
 #credentials .section-heading p{margin-top:6px!important;max-width:none}
 .v21-gallery-stage{grid-template-columns:30px minmax(0,1fr) 30px;gap:2px;height:clamp(190px,38dvh,340px)}
 .v21-gallery-nav{width:28px;height:28px;font-size:18px}
 .v21-gallery-item{width:min(88%,500px)}
 .v21-gallery-hint{display:none}
 .v21-gallery-note{font-size:9px;letter-spacing:0}
 .v21-gallery{padding:10px}
 .v21-lightbox{grid-template-columns:32px minmax(0,1fr) 32px;padding:15px 6px}
 .v21-lightbox-step{width:29px;height:34px;font-size:17px}
 .v21-lightbox img{max-height:calc(100dvh - 125px)}
}
@media(max-height:650px){
 #home.hero-v14 .hero-v14-name{font-size:clamp(36px,9vh,95px)!important}
 #home.hero-v14 .hero-v14-lead{font-size:clamp(12px,2vh,15px)!important;line-height:1.4!important}
 #home.hero-v14 .hero-v14-links{margin-top:12px!important}
 #home.hero-v14 .hero-v14-preface{margin-bottom:10px!important}
 .v21-gallery-stage{height:clamp(170px,33dvh,300px)}
}
@media(prefers-reduced-motion:reduce){.v21-gallery-item,.v21-lightbox figure{transition:none!important;animation:none!important}}
/* Legacy credential widgets may toggle their hidden attribute at runtime. */
#credentials .v21-legacy{display:none!important}
