/* v19: mobile-first, viewport-fit introduction and connected skill/tool trees. */
:root{--site-safe:env(safe-area-inset-bottom,0px)}
#skills .shell{justify-content:flex-start!important;padding:clamp(8px,1.5vh,18px) 0 clamp(8px,1.5vh,20px)!important}
#skills .section-heading{margin-bottom:clamp(12px,1.7vh,20px)!important}
#skills .section-heading h2{font-size:clamp(26px,3.6vw,46px)!important}
#skills .section-heading p{font-size:clamp(11px,1.05vw,14px)!important;max-width:450px}
.talent-forest{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(10px,1.7vw,24px);min-height:0;max-width:100%;flex:1 1 auto}
.talent-tree{border:1px solid var(--line);border-radius:12px;background:linear-gradient(145deg,rgba(211,168,107,.045),transparent 42%),var(--panel);padding:clamp(12px,1.5vw,22px);overflow-y:auto;overflow-x:hidden;scrollbar-width:thin;min-height:0;container-type:inline-size;position:relative}
.talent-tree-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;padding-bottom:12px;border-bottom:1px solid var(--line)}
.talent-tree-head span{font-size:10px;letter-spacing:.18em;color:var(--accent);font-weight:800}.talent-tree-head strong{font-size:clamp(11px,1.15vw,15px);font-weight:700}
.talent-root{display:flex;justify-content:center;padding:13px 0 22px;position:relative}.talent-root:after{content:'';position:absolute;bottom:0;left:50%;width:1px;height:22px;background:var(--accent);opacity:.7}
.talent-branches{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding-top:14px;position:relative}
.talent-branches:before{content:'';position:absolute;top:0;left:16.67%;right:16.67%;height:1px;background:var(--accent);opacity:.65}
.talent-branch{position:relative;display:flex;flex-direction:column;align-items:stretch;gap:11px;min-width:0}
.talent-branch:before{content:'';height:14px;width:1px;background:var(--accent);opacity:.7;position:absolute;top:-14px;left:50%}
.talent-leaves{display:flex;flex-direction:column;gap:8px;margin-left:9px;padding-left:12px;border-left:1px solid rgba(205,163,108,.52);position:relative;flex:1}
.talent-leaves .talent-node{position:relative}.talent-leaves .talent-node:before{content:'';position:absolute;left:-13px;top:50%;width:12px;height:1px;background:rgba(205,163,108,.55)}
.talent-node{font:inherit;appearance:none;display:block;width:100%;min-width:0;overflow-wrap:anywhere;border:1px solid var(--line);border-radius:6px;padding:clamp(9px,1vw,13px) clamp(5px,.9vw,12px);background:var(--bg);color:var(--text);text-align:center;font-size:clamp(10px,.9vw,12px);font-weight:650;line-height:1.28;cursor:pointer;transition:border-color .2s,background .2s,transform .2s,box-shadow .2s}
.talent-node-root{max-width:240px;font-size:clamp(12px,1.15vw,16px);border-color:rgba(209,164,105,.8);color:var(--accent);background:rgba(201,159,105,.075)}
.talent-category{min-height:56px;border-color:rgba(209,164,105,.38)}
.talent-node:hover,.talent-node:focus-visible,.talent-node.is-selected{border-color:var(--accent);background:rgba(201,159,105,.115);outline:none;box-shadow:0 0 0 2px rgba(209,164,105,.11)}
.talent-node:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.talent-tree-tools .talent-category{border-color:rgba(146,175,209,.6)}.talent-tree-tools .talent-node-root{border-color:rgba(146,175,209,.7);color:var(--text)}
.talent-inspector{display:flex;align-items:center;gap:18px;margin-top:12px;min-height:46px;border-top:1px solid var(--line);padding:10px 0 0}
.talent-inspector-label{font-size:9px;letter-spacing:.16em;color:var(--accent);font-weight:800;white-space:nowrap}
.talent-inspector p{font-size:clamp(11px,1vw,13px);line-height:1.4;color:var(--muted);margin:0!important}
#skills .section-footnote{margin-top:8px;font-size:10px}
/* Hero: remove fixed minimum heights that caused unwanted local page scrolling. */
main#main>section#home.hero.hero-v14{width:min(1220px,calc(100% - clamp(28px,7vw,100px)))!important;max-height:100%!important;height:100%!important;min-height:0!important;overflow:hidden!important;grid-template-rows:minmax(0,1fr) auto!important;gap:clamp(8px,1.4vh,18px)!important;padding:clamp(8px,1.4vh,20px) 0 clamp(6px,1vh,14px)!important;align-content:center!important}
#home .hero-v14-copy{min-height:0!important;align-self:center!important}
#home .hero-v14-preface{margin:clamp(8px,2.8vh,24px) 0 0!important}
#home .hero-v14-name{font-size:clamp(42px,min(7.3vw,12.4vh),114px)!important;margin:clamp(8px,1.5vh,17px) 0!important}
#home .hero-v14-rule{margin:clamp(8px,1.6vh,18px) 0!important}
#home .hero-v14-descriptor{margin:0 0 clamp(6px,1.3vh,14px)!important}
#home .hero-v14-lead{font-size:clamp(12px,1.05vw,16px)!important;line-height:1.5!important}
#home .hero-v14-links{margin-top:clamp(8px,2vh,23px)!important}
#home .hero-v14-visual{height:clamp(180px,55dvh,510px)!important;min-height:0!important;max-height:100%!important;align-self:center!important}
#home .hero-v14-bottom{padding-top:clamp(5px,.9vh,13px)!important}
/* Extend information in the role panels, not just résumé-style bullets. */
#experience .journey-duties{font-size:clamp(12px,1.1vw,15px);line-height:1.5;gap:10px 27px}
#experience .journey-card p{font-size:clamp(13px,1.04vw,15px)!important}
#experience .journey-card-main{scrollbar-width:thin!important}
/* Compact laptop windows and landscape mobile devices. */
@media(max-height:730px) and (min-width:761px){
 #home .hero-v14-visual{height:min(51dvh,380px)!important}
 #home .hero-v14-preface{margin-top:8px!important}
 #home .hero-v14-name{font-size:clamp(40px,min(6.8vw,11vh),85px)!important}
 #home .hero-v14-links{margin-top:8px!important}
 #home .hero-v14-lead{line-height:1.35!important}
 #home .hero-v14-caption{bottom:9px}
 #skills .talent-tree{padding:12px}
 .talent-node{padding:7px 5px}
 .talent-branch{gap:8px}.talent-leaves{gap:6px}
}
@media(max-width:1050px) and (min-width:761px){
 .talent-branches{grid-template-columns:1fr;gap:10px}
 .talent-branches:before{display:none}
 .talent-branch:before{left:10px}
 .talent-branch{padding-left:20px;align-items:stretch}
 .talent-category{min-height:0}
 .talent-leaves{margin-left:7px}
 .talent-tree{overflow:auto}
}
@media(max-width:760px){
 main#main{inset:clamp(56px,9dvh,72px) 0 0!important;height:auto!important;bottom:0!important}
 main#main>section#home.hero.hero-v14{width:calc(100% - 32px)!important;grid-template-columns:1fr!important;grid-template-rows:auto minmax(0,1fr) auto!important;gap:clamp(5px,1.2dvh,12px)!important;overflow:hidden!important;padding:clamp(8px,1.5dvh,18px) 0 9px!important;align-content:stretch!important;align-items:center!important}
 #home .hero-v14-copy{align-self:center!important}
 #home .hero-v14-name{font-size:clamp(38px,10.8vw,70px)!important;margin:7px 0!important}
 #home .hero-v14-preface{margin-top:5px!important}
 #home .hero-v14-topline{font-size:8px}
 #home .hero-v14-descriptor{font-size:clamp(8px,2.2vw,11px)!important;margin-bottom:6px!important;letter-spacing:.07em}
 #home .hero-v14-lead{font-size:clamp(11px,2.9vw,14px)!important;line-height:1.4!important}
 #home .hero-v14-links{margin-top:10px!important;gap:12px}
 #home .hero-v14-links .btn{font-size:11px;padding:9px 11px}
 #home .hero-v14-textlink{font-size:11px;padding:5px 0}
 #home .hero-v14-visual{height:100%!important;min-height:0!important;max-height:min(35dvh,290px)!important;width:100%}
 #home .hero-v14-caption{bottom:7px!important}
 #home .hero-v14-panel-index{padding:10px!important}
 #home .hero-v14-bottom{font-size:8px!important}
 #skills .shell{width:calc(100% - 28px)!important;min-width:0!important;padding:4px 0 15px!important}
 #skills .section-heading{display:flex;align-items:flex-start;gap:6px;margin-bottom:8px!important}
 #skills .section-heading h2{font-size:clamp(22px,6vw,32px)!important}
 #skills .section-heading p{font-size:11px!important}
 .talent-forest{grid-template-columns:1fr;gap:12px;display:block;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}
 .talent-tree{overflow:visible;min-height:0;margin-bottom:12px;padding:12px}
 .talent-branches{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
 .talent-branch{padding:0}.talent-branch:before{left:50%}.talent-branches:before{display:block}
 .talent-node{font-size:clamp(9px,2.5vw,12px);padding:9px 4px}
 .talent-leaves{margin-left:5px;padding-left:8px;gap:7px}.talent-leaves .talent-node:before{left:-9px;width:8px}
 .talent-inspector{flex:none;padding-bottom:4px;margin-top:7px;min-height:34px}
 .talent-inspector-label{font-size:8px}.talent-inspector p{font-size:11px}
 #skills .section-footnote{display:none}
 #experience .journey-duties{grid-template-columns:1fr}
}
@media(max-width:420px){
 #home .hero-v14-visual{max-height:min(30dvh,230px)!important}
 #home .hero-v14-name{font-size:clamp(36px,10vw,50px)!important}
 #home .hero-v14-bottom>span{display:none}
 .talent-branches{grid-template-columns:1fr;gap:10px}.talent-branches:before{display:none}
 .talent-branch{padding-left:18px}.talent-branch:before{left:8px}.talent-category{min-height:0}
 .talent-leaves{flex-direction:row;flex-wrap:wrap;justify-content:stretch;border-left:1px solid rgba(205,163,108,.5)}
 .talent-leaves .talent-node{flex:1 1 40%;min-width:105px}
}
@media(max-height:570px){
 #home .hero-v14-visual{display:none!important}
 #home .hero-v14-bottom{display:none!important}
 #home .hero-v14-name{font-size:clamp(36px,8vh,64px)!important}
 #home .hero-v14-copy{align-self:center!important}
}
@media(prefers-reduced-motion:reduce){.talent-node{transition:none}}
