/* A genuinely open portrait scene and an unboxed first-view navigation. */
.homepage .nav{padding-top:19px}.homepage .nav-inner{width:min(1236px,calc(100% - 60px));height:61px;padding:0 18px;border:1px solid transparent;background:transparent;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none;border-radius:10px;transition:background .45s,border-color .45s,box-shadow .45s,backdrop-filter .45s}.homepage .nav-inner:before{display:none}.homepage .links{gap:29px}.homepage .nav-cta{padding:6px 0 6px 5px;border:0;background:transparent;border-radius:0;gap:11px}.homepage .nav-cta:after{content:'';height:1px;position:absolute;bottom:0;left:5px;right:0;background:linear-gradient(90deg,#a792f550,#a0d8c42b);transform:scaleX(.6);transform-origin:left;transition:transform .3s}.homepage .nav-cta:hover:after{transform:scaleX(1)}.homepage .brand .mark{border-color:#c6bbe24f;background:#b7a2e504;box-shadow:none;width:33px;height:33px}.homepage .brand:hover .mark{border-color:#a0d8c47a}.homepage.nav-scrolled .nav-inner{background:linear-gradient(115deg,#282330bd,#15231cc9);border-color:#bba9d72d;backdrop-filter:blur(23px);-webkit-backdrop-filter:blur(23px);box-shadow:inset 0 1px #ffffff0a,0 14px 32px #0002}.homepage.nav-scrolled .nav-cta{background:none;border:0}.homepage .hero{padding-top:45px;padding-bottom:42px}.homepage .hero-grid{grid-template-columns:1.06fr 1fr;gap:37px;align-items:center}.homepage .hero-grid>div:first-child{z-index:3}.homepage .hero-environment{inset:-130px -5vw 0}.homepage .plane-purple{left:38%;top:-90px;opacity:.17}.homepage .plane-mint{right:-1%;top:45px;opacity:.16}.homepage .environment-grid{opacity:.32}.homepage .portrait-open{height:620px;margin-right:-25px;transform:translateY(calc(var(--hero-scroll)*-16px));overflow:visible;perspective:1200px;isolation:isolate}.portrait-atmosphere{position:absolute;inset:-45px -80px -5px -70px;pointer-events:none;z-index:0;transform:translate3d(calc(var(--hero-x)*-12px),calc(var(--hero-y)*-8px),0)}.portrait-light{position:absolute;border-radius:50%;pointer-events:none}.light-mint{width:72%;height:80%;left:22%;top:0;background:radial-gradient(ellipse,#679c7c39 0%,#2c5f4a22 43%,transparent 72%);filter:blur(25px);transform:rotate(-23deg)}.light-violet{width:64%;height:72%;left:0;top:9%;background:radial-gradient(ellipse,#7653992b 0%,#4b32601a 44%,transparent 73%);filter:blur(31px);transform:rotate(25deg)}.portrait-horizon{position:absolute;left:5%;right:5%;bottom:11%;height:30%;border-radius:50%;background:radial-gradient(ellipse,#3a28431d,transparent 67%);filter:blur(22px)}.homepage .portrait-open .portrait{inset:-14px -15px 0 -25px;aspect-ratio:auto;overflow:visible;border:0;background:none;box-shadow:none;transform:translate3d(calc(var(--hero-x)*7px),calc(var(--hero-y)*4px),0) scale(calc(1 + var(--hero-scroll)*.014));z-index:1;isolation:auto}.homepage .portrait-open .portrait img{width:100%;height:100%;object-fit:contain;object-position:50% 50%;mask-image:linear-gradient(to bottom,#000 0%,#000 78%,transparent 99%);-webkit-mask-image:linear-gradient(to bottom,#000 0%,#000 78%,transparent 99%);mask-composite:add;-webkit-mask-composite:source-over;border-radius:0;filter:drop-shadow(-14px 7px 25px #32214020);background:transparent}.homepage .portrait-open .portrait-caption{left:8%;right:auto;bottom:2px;padding:0 0 0 14px;border:0;border-left:1px solid #a792f559;background:none;backdrop-filter:none;z-index:3;transform:none}.homepage .portrait-open .portrait-caption b{font-size:13px;font-weight:400;letter-spacing:.02em;color:#c6c0d3}.homepage .portrait-open .portrait-caption p{font-size:9px;color:#8c9894;margin-top:3px;max-width:none}.hero-system-rail{position:absolute;right:0;bottom:66px;z-index:4;width:220px;max-width:53%;padding:14px 0 12px 17px;border-left:1px solid #a0d8c45d;background:linear-gradient(90deg,#121b16a3,transparent);backdrop-filter:blur(4px);transform:translate3d(calc(var(--hero-x)*-5px),calc(var(--hero-y)*-4px),0);transition:transform .2s ease-out}.hero-rail-label{display:flex;align-items:center;gap:10px;letter-spacing:.13em;font-size:7px;color:#aab6b1}.hero-rail-label .status-dot{width:4px;height:4px;box-shadow:0 0 0 3px #a0d8c407}.hero-rail-flow{display:flex;gap:9px;align-items:center;margin-top:13px;font-family:'Space Grotesk',sans-serif;font-size:12px;color:#d9d4e2}.hero-rail-flow i{position:relative;flex:1;height:1px;background:linear-gradient(90deg,#a792f564,#a0d8c445)}.hero-rail-flow i:after{content:'';position:absolute;top:-1px;left:0;width:3px;height:3px;background:var(--mint);border-radius:50%;animation:hero-rail-signal 5s ease-in-out infinite}.hero-rail-flow i:last-of-type:after{animation-delay:1.1s}.hero-rail-context{font-size:8px;letter-spacing:.06em;color:#909b98;margin-top:10px}.homepage .flow-strip{margin-top:28px}
@keyframes hero-rail-signal{0%,10%{left:0;opacity:0}25%,65%{opacity:.8}80%,100%{left:100%;opacity:0}}
@media(min-width:1400px){.homepage .portrait-open{height:650px}.homepage .portrait-open .portrait{inset:-25px -25px 0 -40px}.homepage .hero{padding-top:44px}}
@media(max-width:1050px){.homepage .nav-inner{width:calc(100% - 32px);padding:0 15px}.homepage .links{gap:21px}.homepage .hero-grid{gap:20px;grid-template-columns:1.08fr 1fr}.homepage .portrait-open{height:566px;margin-right:-12px}.homepage .portrait-open .portrait{inset:0 -10px 0 -20px}.hero-system-rail{width:195px;bottom:61px;right:-2px;padding-left:13px}.hero-rail-flow{gap:7px;font-size:11px}.portrait-atmosphere{inset:-20px -35px 10px -35px}}
@media(max-width:780px){.homepage .nav{padding-top:14px}.homepage .nav-inner{width:calc(100% - 24px);height:57px;padding:0 14px}.homepage .links{top:66px;background:#191c23f5;backdrop-filter:blur(20px)}.homepage .hero{padding-top:32px}.homepage .hero-grid{grid-template-columns:1.06fr 1fr;gap:12px}.homepage .portrait-open{height:480px;margin-right:-8px}.homepage .portrait-open .portrait{inset:0 -15px 0 -12px}.hero-system-rail{bottom:58px;max-width:76%;width:185px;padding:11px 0 10px 11px}.hero-rail-label{font-size:6px}.hero-rail-flow{font-size:10px;gap:7px}.hero-rail-context{font-size:7px}.homepage .portrait-open .portrait-caption{left:5%;bottom:4px}.homepage .portrait-open .portrait-caption b{font-size:12px}.homepage .portrait-open .portrait-caption p{font-size:8px}.homepage .flow-strip{margin-top:26px}}
@media(max-width:540px){.homepage .nav{padding-top:10px}.homepage .nav-inner{height:55px;padding:0 10px}.homepage .brand{font-size:14px}.homepage .brand .mark{height:29px;width:29px;font-size:15px}.homepage .links{top:65px;left:0;right:0;padding:23px}.homepage .hero{padding-top:30px;padding-bottom:32px}.homepage .hero-grid{grid-template-columns:1fr;gap:8px}.homepage .portrait-open{height:515px;margin:16px -5px 0}.homepage .portrait-open .portrait{inset:-6px -3px 0 -3px;transform:none}.homepage .portrait-open .portrait img{object-fit:contain;object-position:50% 50%}.portrait-atmosphere{inset:-20px -15px 0}.hero-system-rail{right:5px;bottom:50px;max-width:61%;width:205px;padding:13px 0 12px 14px;transform:none;backdrop-filter:blur(3px)}.hero-rail-label{font-size:7px}.hero-rail-flow{font-size:11px;gap:9px}.hero-rail-context{font-size:8px}.homepage .portrait-open .portrait-caption{bottom:0;left:16px}.homepage .portrait-open .portrait-caption b{font-size:12px}.homepage .portrait-open .portrait-caption p{font-size:8px}.homepage .flow-strip{margin-top:24px}.light-mint{filter:blur(18px)}.light-violet{filter:blur(21px)}}
@media(prefers-reduced-motion:reduce){.homepage .portrait-open,.homepage .portrait-open .portrait,.homepage .hero-system-rail,.homepage .portrait-atmosphere{transform:none!important}.hero-rail-flow i:after{animation:none;left:50%;opacity:.6}.homepage .portrait-open .portrait{will-change:auto}}
.homepage.hero-outside .hero-rail-flow i:after,.homepage.environment-paused .hero-rail-flow i:after{animation-play-state:paused}
/* The generated asset supplies alpha only. Original photographic RGB stays intact. */
.homepage .portrait-open .portrait img{mask-image:url('/assets/alessio-cutout-mask.png'),linear-gradient(to bottom,#000 0%,#000 78%,transparent 99%);mask-size:contain,100% 100%;mask-position:center,center;mask-repeat:no-repeat;mask-mode:alpha;mask-composite:intersect;-webkit-mask-image:url('/assets/alessio-cutout-mask.png'),linear-gradient(to bottom,#000 0%,#000 78%,transparent 99%);-webkit-mask-size:contain,100% 100%;-webkit-mask-position:center,center;-webkit-mask-repeat:no-repeat;-webkit-mask-composite:source-in}
/* Broad professional positioning, within the existing hero visual system. */
.homepage .hero-system-rail{width:270px;max-width:78%}
.homepage .hero-rail-flow{gap:7px;font-size:11px}
.homepage .hero-rail-flow i{min-width:8px}
.homepage .hero-rail-flow i:nth-of-type(2):after{animation-delay:.55s}
.homepage .hero-rail-context{line-height:1.6;max-width:245px}
/* Professional role and a single, understated ecosystem strip. */
.homepage .hero .eyebrow{font-size:15px;letter-spacing:.09em;line-height:1.6}
.homepage .hero .eyebrow .dot{flex-shrink:0}
.homepage .ecosystem-strip{width:min(100%,960px);margin-left:auto;margin-right:auto;display:flex;flex-direction:column;justify-content:center;gap:19px;padding:25px 20px}
.homepage .ecosystem-strip>span{display:block;font-size:10px;line-height:1.8;letter-spacing:.13em;color:#969ba3;text-align:center}
.homepage .ecosystem-strip .tool-row{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:12px 0;min-width:0;padding:0;border:0;font-size:13px}
.homepage .ecosystem-strip .tool-row span{display:flex;align-items:center;white-space:nowrap;line-height:1.8}
.homepage .ecosystem-strip .tool-row span:not(:last-child):after{content:'';width:3px;height:3px;border-radius:50%;background:#a0d8c469;margin:0 20px}
.portfolio-projects{display:grid;gap:60px}
.portfolio-entry{min-width:0}
@media(max-width:1050px){.homepage .hero-system-rail{width:240px;max-width:90%}}
@media(max-width:780px){.homepage .hero .eyebrow{font-size:12.5px;letter-spacing:.06em}.homepage .ecosystem-strip{padding:23px 12px;gap:16px}.homepage .ecosystem-strip .tool-row{font-size:12px}.homepage .ecosystem-strip .tool-row span:not(:last-child):after{margin:0 14px}.homepage .hero-rail-flow{font-size:10px;gap:5px}.homepage .hero-rail-context{font-size:7px}}
@media(max-width:540px){.homepage .ecosystem-strip{padding:22px 0}.homepage .ecosystem-strip>span{font-size:9px}.homepage .ecosystem-strip .tool-row span:not(:last-child):after{margin:0 12px}.homepage .hero-system-rail{width:250px;max-width:80%}.homepage .hero-rail-flow{font-size:11px}.homepage .hero-rail-context{font-size:8px}}
/* Native hash navigation clears the actual sticky header, including wrapped branding. */
html{scroll-padding-top:var(--nav-anchor-offset,112px)}
main>section[id]{scroll-margin-top:0}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
