/* A destination feels like a place: each orbit has its own atmosphere. */
.world-nav a{isolation:isolate;transition:filter .3s ease,transform .3s ease!important}
.world-nav a:before{background:radial-gradient(circle at 32% 28%,#fbfff6 0%,#cce0d7 31%,#6c9a8e 70%,#2e5c59 100%)!important;border:1px solid #82aea0!important;border-radius:50%!important;box-shadow:inset -12px -15px 17px #193f4b42,0 8px 28px #286b5840!important;opacity:.9!important;transition:transform .35s ease,box-shadow .35s ease,filter .35s ease!important}
.world-nav a:nth-of-type(2):before{background:radial-gradient(circle at 30% 25%,#fff8e8,#e6ccaa 42%,#a88072 75%,#634958)!important}
.world-nav a:nth-of-type(3):before{background:radial-gradient(circle at 30% 25%,#fff6e8,#dcc5b6 42%,#8f8296 75%,#4c586f)!important}
.world-nav a:nth-of-type(4):before{background:radial-gradient(circle at 30% 25%,#f3fcfa,#b8dde0 42%,#6c9aa8 75%,#365569)!important}
.world-nav a:nth-of-type(5):before{background:radial-gradient(circle at 30% 25%,#f7f9e9,#c8dda9 42%,#739871 75%,#335b52)!important}
.world-nav a:nth-of-type(6):before{background:radial-gradient(circle at 30% 25%,#fff9ed,#ecd3b4 42%,#ba937a 75%,#765e64)!important}
.world-nav a:hover:before,.world-nav a:focus-visible:before,.world-nav a.drop-ready:before{transform:scale(1.14);box-shadow:inset -12px -15px 17px #193f4b42,0 0 0 8px #a8d7aa50,0 0 34px #3c887c88!important}
.world-nav a.world-arriving:before{animation:world-pulse .7s ease-in-out infinite alternate;filter:brightness(1.25)}
.world-nav a .nav-label{background:#f6f4edee!important;box-shadow:0 2px 12px #22483825!important}
.world-launching .companion:not(.is-floating) .character-button{opacity:.2}
.world-flyer{position:fixed;z-index:1201;pointer-events:none;transform-origin:center center;transition:transform .72s cubic-bezier(.3,.05,.3,1),opacity .65s ease;filter:drop-shadow(0 14px 15px #09282060)}
.world-flyer svg{width:100%;height:100%}
.world-transition{position:fixed;inset:0;z-index:1199;pointer-events:none;display:grid;place-items:center;opacity:0;background:radial-gradient(circle at 50% 52%,#e8f2dfc9 0,#274d4dba 45%,#071d27e8 100%);transition:opacity .3s ease}
.world-transition.is-active{opacity:1}.world-transition.is-arriving{opacity:0;transition:opacity .48s ease}
.world-transition-orbit{position:absolute;width:min(65vw,420px);aspect-ratio:1;border:1px solid #d6edc69c;border-radius:50%;box-shadow:0 0 0 34px #ccedb521,0 0 0 76px #ccedb50e,0 0 80px #cbefbd6b;transform:scale(.5);transition:transform .7s ease}
.world-transition.is-active .world-transition-orbit{transform:scale(1.1)}
.world-transition-name{position:relative;z-index:1;margin-top:min(50vw,370px);font:800 clamp(22px,4vw,48px)/1.1 Montserrat,Verdana,sans-serif;letter-spacing:-.05em;color:white;text-shadow:0 2px 16px #071d27}
@keyframes world-pulse{to{transform:scale(1.2);filter:brightness(1.3)}}

/* Keep the provincial story prominent and remove repeated chart views. */
#approach .dashboard-grid{display:block}
#approach .dashboard-grid>.panel{display:none}
#approach .dashboard-shell{background:linear-gradient(135deg,#0e2832,#143d42 58%,#173e34);padding:clamp(22px,4vw,42px);border-radius:24px;box-shadow:0 22px 55px #15392724}
#approach .dashboard-head{align-items:center}
#approach .dashboard-head h3{font-size:clamp(19px,2.2vw,29px);letter-spacing:-.04em}
#approach .dashboard-intro{margin:7px 0 0;color:#b7cbd0;font-size:12px;line-height:1.5}
#approach .metrics{margin-bottom:0;padding:14px 0 20px;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;border-bottom:0}
#approach .metric{padding:10px 14px!important;border:0!important;border-radius:12px;background:#ffffff09}
#approach .metric:last-child{background:#d5ef9521}
#approach .metric strong{font-size:clamp(22px,3vw,38px)}
#approach .metric .change{color:#a9c5bc}
#approach .dashboard-controls{border-top:0;border-bottom:1px solid #45615d;padding:14px 0 25px;margin-bottom:0}
#approach .dashboard-selects{grid-template-columns:repeat(2,minmax(0,1fr));max-width:530px}
#approach .data-explorer{border-top:0;margin-top:0;padding-top:26px}
#approach .explorer-columns{grid-template-columns:minmax(0,1.6fr) minmax(230px,.8fr);gap:clamp(20px,4vw,54px)}
#approach .province-map{border-radius:16px;background:radial-gradient(circle at 45% 35%,#41635854,transparent 65%);padding:12px}
#approach .province-detail{font:700 clamp(15px,2vw,20px)/1.5 Montserrat,Verdana,sans-serif}
#approach .share-chart{width:155px;height:155px;margin:26px auto}
#approach .week-picker{margin:8px 0 20px}
#approach .week-picker button{font-size:11px;line-height:1.1;padding:6px 2px}
@media(max-width:700px){
 .world-transition-name{margin-top:68vw;padding:0 18px;text-align:center}
 #approach .dashboard-shell{padding:20px 16px;border-radius:18px}
 #approach .dashboard-head{align-items:flex-start}
 #approach .metrics{grid-template-columns:1fr 1fr;gap:7px}
 #approach .metric:last-child{grid-column:1/-1}
 #approach .metric strong{font-size:clamp(20px,6vw,27px)}
 #approach .explorer-columns{grid-template-columns:minmax(0,1fr);gap:34px}
 #approach .dashboard-selects{grid-template-columns:repeat(2,minmax(0,1fr))}
 #approach .dashboard-selects label:last-child{grid-column:auto}
 #approach .week-picker{grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}
 #approach .week-picker button{font-size:12px}
 #approach .share-chart{width:140px;height:140px;margin:18px auto}
}
@media(prefers-reduced-motion:reduce){.world-flyer,.world-transition,.world-transition-orbit{transition:none!important}.world-nav a.world-arriving:before{animation:none}}

/* Cloned characters keep the outfit visible at the moment they are picked up. */
.drag-character-ghost[data-context=running] .running-outfit,.world-flyer[data-context=running] .running-outfit{display:block;opacity:1}
.drag-character-ghost[data-context=running] .leg>path:first-child,.drag-character-ghost[data-context=running] .arm>path:first-child,.world-flyer[data-context=running] .leg>path:first-child,.world-flyer[data-context=running] .arm>path:first-child{stroke:#dbab8e}
.drag-character-ghost[data-context=running] .leg>path:last-child,.world-flyer[data-context=running] .leg>path:last-child{stroke:#a4c6ad}
.drag-character-ghost[data-context=education] .academic-accessories,.world-flyer[data-context=education] .academic-accessories{opacity:1}
.drag-character-ghost[data-context=approach] .laptop,.drag-character-ghost[data-context=projects] .laptop,.drag-character-ghost[data-context=skills] .laptop,.drag-character-ghost[data-state=work] .laptop,.world-flyer[data-context=approach] .laptop,.world-flyer[data-context=projects] .laptop,.world-flyer[data-context=skills] .laptop,.world-flyer[data-state=work] .laptop{opacity:1}

/* Make Alberto and the worlds the first, central encounter. */
.hero.wrap{display:block;width:min(100% - 48px,1060px);min-height:0;padding:46px 0 110px;margin-inline:auto}
.hero .hero-side{width:100%;max-width:none;display:flex;flex-direction:column;align-items:center;order:initial;text-align:center}
.hero .character-stage{width:min(100%,820px);height:610px;margin-inline:auto;flex:none}
.hero .hero-side h1{width:100%;margin:12px auto 5px!important;font-size:clamp(30px,4vw,48px)!important;letter-spacing:-.055em}
.hero .portrait-role{margin:0 auto 25px;font-size:14px}
.hero .profile-dashboard{width:min(100%,720px);align-self:center;padding:25px 30px;margin:0 auto;box-shadow:0 14px 50px #183e3210;border:1px solid #d4e1d744;border-radius:20px;background:#f6f4ed75;text-align:left}
.hero .profile-heading{margin:0 0 15px}.hero .profile-heading h2{font-size:23px}
.hero .profile-content{min-height:0}
.hero .profile-milestone{grid-template-columns:110px 1fr}
.hero .character-stage .companion:not(.is-floating){width:220px}
.hero .companion:not(.is-floating) .character-button{width:200px;height:350px}
.hero .world-nav a{width:130px;min-height:78px}
.hero .world-nav a:before{width:128px;height:110px}
.hero .world-nav a:nth-of-type(5){top:74%}.hero .world-nav a:nth-of-type(6){top:74%}
@media(max-width:700px){
 .hero.wrap{width:calc(100% - 30px);padding:8px 0 65px}
 .hero .character-stage{width:100%;height:490px}
 .hero .hero-side h1{font-size:clamp(26px,7vw,35px)!important;margin:8px auto 4px!important}
 .hero .portrait-role{font-size:12px;margin-bottom:16px}
 .hero .profile-dashboard{padding:20px 17px;margin:0;border-radius:16px}
 .hero .profile-heading h2{font-size:21px}
 .hero .profile-milestone{grid-template-columns:74px 1fr}
 .hero .character-stage .companion:not(.is-floating){width:155px}
 .hero .companion:not(.is-floating) .character-button{width:137px;height:270px}
 .hero .world-nav a,.hero .world-nav a:last-child{width:88px;min-height:55px}
 .hero .world-nav a:before{width:85px;height:76px}
}

/* Each world reveals its subject during the journey. */
.world-transition[data-world=approach]{background:radial-gradient(circle at 50% 50%,#1d6d6770,#11343fe8 62%,#071d27f2)}
.world-transition[data-world=projects]{background:radial-gradient(circle at 50% 45%,#e4e9d7ef,#749a8deb 62%,#18343deb)}
.world-transition[data-world=experience]{background:radial-gradient(circle at 50% 50%,#cfded6ee,#3b696de8 68%,#122e3ce9)}
.world-transition[data-world=skills]{background:radial-gradient(circle at 50% 50%,#d3e7dded,#44818adf 65%,#15364beb)}
.world-transition[data-world=running]{background:radial-gradient(circle at 50% 46%,#e3ecdbd6,#39765de0 61%,#102e36f0)}
.world-transition[data-world=contact]{background:radial-gradient(circle at 50% 50%,#f6ebdce8,#8c9d89e4 61%,#243c46ed)}
.world-transition-orbit{width:min(52vw,390px)}
.world-transition-visual{position:absolute;inset:0;display:grid;place-items:center;overflow:hidden}
.world-transition-name{position:absolute;top:calc(50% + min(26vw,210px));margin:0;text-align:center}
.world-dashboard-numbers{width:min(90vw,700px);height:52vh;position:relative;color:#d7f1ac;font:800 clamp(26px,5vw,64px)/1 Montserrat,Verdana,sans-serif}
.world-dashboard-numbers span{position:absolute;opacity:0;animation:world-number .85s ease forwards;text-shadow:0 0 22px #d4ed9a80}
.world-dashboard-numbers span:nth-child(1){left:2%;top:10%}.world-dashboard-numbers span:nth-child(2){right:4%;top:17%;animation-delay:.1s}.world-dashboard-numbers span:nth-child(3){left:14%;bottom:13%;animation-delay:.2s}.world-dashboard-numbers span:nth-child(4){right:14%;bottom:6%;animation-delay:.3s}
.world-project-logos{display:flex;gap:clamp(15px,4vw,48px);align-items:center;justify-content:center;width:min(90vw,700px)}
.world-project-logos img{width:min(36vw,230px);height:min(30vw,190px);object-fit:contain;background:#fffdf5ef;padding:20px;border-radius:22px;box-shadow:0 18px 45px #1b3f3e45;animation:world-card .75s ease both}
.world-project-logos img+img{animation-delay:.18s}
.world-years{display:flex;align-items:center;gap:22px;color:white;font:800 clamp(18px,3vw,32px)/1 Montserrat,Verdana,sans-serif}
.world-years i{display:block;width:clamp(24px,7vw,90px);height:1px;background:#d5ef95;position:relative}
.world-years i:after{content:"";position:absolute;right:0;top:-4px;width:9px;height:9px;border-radius:50%;background:#d5ef95}
.world-skills{display:grid;grid-template-columns:repeat(2,minmax(100px,1fr));gap:15px;width:min(80vw,480px)}
.world-skills span{padding:18px 12px;border:1px solid #d5ef95b8;border-radius:14px;background:#173d45bd;text-align:center;color:#f7ffe9;font:800 clamp(15px,2vw,22px) Montserrat,Verdana,sans-serif;animation:world-card .6s ease both}
.world-skills span:nth-child(even){animation-delay:.16s}
.world-running-track{width:min(90vw,700px);height:170px;border-bottom:4px dashed #e8f3d7;position:relative;transform:rotate(-5deg)}
.world-running-track:after{content:"";position:absolute;left:0;right:0;bottom:20px;border-bottom:2px solid #e8f3d774}
.world-envelope{width:clamp(120px,20vw,210px);height:auto;filter:drop-shadow(0 12px 20px #183d3a70)}
.world-flyer[data-world=approach] .laptop,.world-flyer[data-world=skills] .laptop,.world-flyer[data-world=projects] .laptop{opacity:1}
.world-flyer[data-world=running][data-context=running] .running-outfit{display:block;opacity:1}
.world-flyer[data-world=running] .leg-left,.world-flyer[data-world=running] .arm-right{animation:character-run .24s ease-in-out infinite alternate}
.world-flyer[data-world=running] .leg-right,.world-flyer[data-world=running] .arm-left{animation:character-run .24s ease-in-out infinite alternate-reverse}
.world-flyer[data-world=running] .character-body{animation:world-hop .2s ease-in-out infinite alternate}
body.is-running-world #companion:not(.is-floating) .leg-left,body.is-running-world #companion:not(.is-floating) .arm-right{animation:character-run .24s ease-in-out infinite alternate}
body.is-running-world #companion:not(.is-floating) .leg-right,body.is-running-world #companion:not(.is-floating) .arm-left{animation:character-run .24s ease-in-out infinite alternate-reverse}
body.is-running-world #companion:not(.is-floating) .character-body{animation:character-bounce .24s ease-in-out infinite alternate}
body.is-running-world #companion:not(.is-floating) .running-outfit{display:block;opacity:1}
.companion.is-floating.is-quiet-zone{opacity:0;visibility:hidden;pointer-events:none;transition:opacity .2s ease,visibility .2s ease}
@keyframes world-number{from{opacity:0;transform:translateY(20px) scale(.8)}to{opacity:1;transform:none}}
@keyframes world-card{from{opacity:0;transform:translateY(25px) rotate(-5deg)}to{opacity:1;transform:none}}
@keyframes world-sprint{to{transform:rotate(25deg)}}
@keyframes world-hop{to{transform:translateY(-8px)}}
@media(max-width:700px){.world-transition-name{top:calc(50% + 31vw);font-size:clamp(22px,6vw,32px)}.world-years{gap:8px}.world-project-logos img{padding:10px;border-radius:12px}.world-running-track{height:100px}}
@media(prefers-reduced-motion:reduce){.world-dashboard-numbers span,.world-project-logos img,.world-skills span,.world-flyer[data-world=running] *,body.is-running-world #companion *{animation:none!important}}

/* Keep the six worlds and Alberto's name together in the opening viewport. */
.hero.wrap{
 --stage-h:clamp(260px,calc(100svh - 205px),575px);
 --actor-w:min(200px,calc(var(--stage-h) * .38));
 width:min(100% - 32px,1080px);
 min-height:calc(100svh - 64px);
 padding:0 0 16px;
 display:flex;
 align-items:center;
 justify-content:center;
}
.hero .hero-side{width:100%;flex:none;gap:0}
.hero .character-stage{height:var(--stage-h);width:min(100%,850px);margin:0 auto}
.hero .character-stage .companion:not(.is-floating){width:max(140px,var(--actor-w));max-width:100%}
.hero .companion:not(.is-floating) .character-button{width:var(--actor-w);height:auto;aspect-ratio:220/340}
.hero .hero-side h1{font-size:clamp(27px,4vw,46px)!important;line-height:1.08;margin:4px auto 4px!important}
.hero .portrait-role{font-size:clamp(11px,1.3vw,14px);line-height:1.4;margin:0 auto!important}
.profile-section.wrap{width:min(100% - 48px,760px);padding:36px 0 84px;margin:0 auto}
.profile-section .profile-dashboard{width:100%;max-width:none;background:transparent;border:0;box-shadow:none;border-radius:0;padding:0;margin:0;text-align:left}
.profile-section .profile-heading{margin:0 0 18px}
.profile-section .profile-heading h2{font-size:clamp(24px,2.8vw,32px)}
.profile-section .profile-content{min-height:0}
.profile-section .profile-milestone{grid-template-columns:110px minmax(0,1fr)}
@media(max-width:700px){
 .hero.wrap{--stage-h:clamp(290px,calc(100svh - 176px),515px);--actor-w:min(145px,calc(var(--stage-h) * .37));width:calc(100% - 24px);min-height:calc(100svh - 58px);padding:0 0 12px;gap:0}
 .hero .character-stage{height:var(--stage-h);width:100%}
 .hero .character-stage .companion:not(.is-floating){width:max(135px,var(--actor-w))}
 .hero .companion:not(.is-floating) .character-button{width:var(--actor-w);height:auto;aspect-ratio:220/340}
 .hero .hero-side h1{font-size:clamp(26px,7.5vw,34px)!important;margin:2px auto 2px!important}
 .hero .portrait-role{font-size:11px;margin:0!important}
 .profile-section.wrap{width:calc(100% - 36px);padding:36px 0 64px}
 .profile-section .profile-dashboard{padding:0;border:0;background:transparent;box-shadow:none}
 .profile-section .profile-milestone{grid-template-columns:75px minmax(0,1fr)}
}
@media(max-height:600px){
 .hero.wrap{--stage-h:clamp(245px,calc(100svh - 170px),420px);--actor-w:min(145px,calc(var(--stage-h) * .37));min-height:calc(100svh - 56px)}
 .hero .character-stage .companion:not(.is-floating){width:max(125px,var(--actor-w))}
 .hero .companion:not(.is-floating) .character-button{width:var(--actor-w);height:auto;aspect-ratio:220/340}
 .hero .world-nav a,.hero .world-nav a:last-child{min-height:45px}
 .hero .world-nav a:before{height:68px}
 .hero .hero-side h1{font-size:clamp(25px,5vw,34px)!important}
}
