/* Leonardo Firenze — v0.5: theme and spatial hero reset.
   The SVG brand mark is supplied by Leonardo; HeadingNow prefers an installed/licensed local font.
*/
html[data-theme="dark"] {
  color-scheme: dark;
  --paper:#0E0E0F;
  --paper-2:#141416;
  --white:#1B1B1E;
  --ink:#F3F3F3;
  --muted:#ABACB0;
  --line:#363638;
  --hero-surface:#0E0E0F;
  --hero-ink:#F3F3F3;
  --hero-sub:#BFC0C4;
  --hero-line:rgba(255,255,255,.13);
  --hero-glow:rgba(230,34,61,.23);
  --hero-ring:rgba(237,238,242,.30);
  --hero-core:#CE3048;
  --work-bg:#141416;
  --statement-bg:#0E0E0F;
  --value-bg:linear-gradient(155deg,#212124,#161618);
  --exp-bg:radial-gradient(circle at 86% 12%,rgba(230,34,61,.15),transparent 35%),linear-gradient(180deg,#0E0E0F,#17171A);
  --exp-ink:#F3F3F3;
  --exp-muted:#AEAFB5;
  --exp-line:rgba(255,255,255,.18);
  --cv-bg:linear-gradient(155deg,#27272B,#1B1B1E);
  --cv-ink:#F3F3F3;
  --cv-line:rgba(255,255,255,.20);
  --contact-gradient:linear-gradient(155deg,#D81E37,#A5132D);
  --contact-text:#FDF4F5;
}
html[data-theme="light"] {
  color-scheme: light;
  --paper:#F5F3EF;
  --paper-2:#ECEAE5;
  --white:#FFFFFF;
  --ink:#0E0E0F;
  --muted:#616266;
  --line:#D9D7D3;
  --hero-surface:#F5F3EF;
  --hero-ink:#0E0E0F;
  --hero-sub:#48494E;
  --hero-line:rgba(14,14,15,.18);
  --hero-glow:rgba(230,34,61,.13);
  --hero-ring:rgba(14,14,15,.32);
  --hero-core:#E6223D;
  --work-bg:#ECEAE5;
  --statement-bg:#F5F3EF;
  --value-bg:linear-gradient(155deg,#FFFFFF,#F4F0EB);
  --exp-bg:radial-gradient(circle at 86% 12%,rgba(230,34,61,.10),transparent 35%),linear-gradient(180deg,#F1EEE8,#EAE6E1);
  --exp-ink:#0E0E0F;
  --exp-muted:#626368;
  --exp-line:rgba(14,14,15,.20);
  --cv-bg:linear-gradient(155deg,#FFFFFF,#F6F3EF);
  --cv-ink:#0E0E0F;
  --cv-line:rgba(14,14,15,.20);
  --contact-gradient:linear-gradient(155deg,#E6223D,#D91F3A);
  --contact-text:#FFF8F9;
}
body.v02-page {background:var(--paper);color:var(--ink);transition:background-color 220ms ease,color 220ms ease}
.v02-header {background:rgba(14,14,15,.95);border-bottom-color:rgba(255,255,255,.14)}
.v02-nav a,.theme-toggle{color:#F3F3F3}
.theme-toggle{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.22)}
.theme-toggle:hover{background:rgba(255,255,255,.12)}
.mobile-nav{background:#0E0E0F;color:#F3F3F3}
.mobile-nav a{border-bottom-color:rgba(255,255,255,.15)}
.v02-logo img{height:31px;max-width:215px}

/* Hero: art is absolutely positioned; never participates in width calculation. */
.v02-hero {
  isolation:isolate;
  position:relative;
  width:100%;
  min-height:calc(100svh - var(--nav-h));
  overflow:hidden;
  padding:0;
  color:var(--hero-ink);
  background:
    radial-gradient(ellipse 45% 55% at 90% 49%, var(--hero-glow), transparent 82%),
    var(--hero-surface);
  transition:background-color 220ms ease,color 220ms ease;
}
.hero-shell.shell{width:100%;max-width:none}
.hero-shell{position:relative;z-index:2;display:flex;flex-direction:column;min-height:calc(100svh - var(--nav-h));padding-top:clamp(42px,5.2vw,88px);padding-bottom:25px}
.hero-preamble{z-index:4}
.hero-preamble-r,.hero-baseline,.hero-right{color:var(--hero-sub)}
.hero-preamble .kicker{color:var(--hero-ink)}
.hero-stage{display:block;position:relative;flex:1;padding-block:clamp(88px,10vw,162px) clamp(65px,7vw,124px)}
.hero-copy {width:100%;max-width:none;display:block;position:relative;z-index:4}
.v02-hero-title {
  display:block;
  max-width:none;
  width:100%;
  margin:0;
  padding:0;
  font-family:var(--heading-now);
  font-size:clamp(78px,11vw,204px);
  font-weight:600;
  line-height:.87;
  letter-spacing:.026em;
  text-transform:uppercase;
  color:var(--hero-ink);
  text-wrap:normal;
}
.v02-hero-title .title-line{display:block;max-width:none;width:100%;white-space:normal}
.v02-hero-title .title-line--red{color:#E6223D}
.v02-hero-title .title-line--last{font-size:clamp(54px,6.4vw,120px);max-width:none;letter-spacing:.015em;color:var(--hero-ink)}
.v02-hero-title .last-dot{display:inline;color:var(--hero-ink)}
.hero-meta-row{display:flex;align-items:flex-end;justify-content:space-between;gap:clamp(36px,5vw,90px);margin-top:clamp(65px,7vw,120px);max-width:none}
.hero-intro{font-size:clamp(18px,1.65vw,28px);line-height:1.52;max-width:700px;color:var(--hero-ink)}
.hero-right{gap:clamp(20px,3vw,40px);flex:0 0 auto}
.round-link{background:var(--hero-ink);color:var(--hero-surface)}
.hero-baseline{border-top:0;color:var(--hero-sub)}
.hero-marquee{border-block:1px solid var(--hero-line);background:transparent;margin:0}
.hero-marquee-track span{color:var(--hero-sub)}
.hero-art {position:absolute;inset:0;overflow:hidden;z-index:0;pointer-events:none}
.hero-art::after{
 content:"";position:absolute;inset:0;z-index:3;
 background:linear-gradient(90deg,var(--hero-surface) 0%,color-mix(in srgb,var(--hero-surface) 94%,transparent) 20%,color-mix(in srgb,var(--hero-surface) 44%,transparent) 54%,transparent 100%);
 pointer-events:none;
}
.hero-art__glow{
 position:absolute;width:min(75vw,950px);aspect-ratio:1;right:-12%;top:10%;border-radius:50%;
 background:radial-gradient(circle,rgba(230,34,61,.27) 0%,rgba(230,34,61,.12) 27%,transparent 65%);
 filter:blur(42px);opacity:.75;
}
html[data-theme="light"] .hero-art__glow{opacity:.48}
.hero-art__structure{position:absolute;width:min(58vw,870px);aspect-ratio:1;top:8%;right:-9%;will-change:transform;transform:translate3d(0,0,0);filter:drop-shadow(0 24px 76px rgba(0,0,0,.14))}
.hero-art__structure::before{
 content:"";position:absolute;inset:4%;border-radius:50%;
 background:radial-gradient(circle at 33% 25%,rgba(255,255,255,.40),transparent 17%),radial-gradient(circle at 50% 52%,rgba(230,34,61,.18),transparent 56%);
 filter:blur(18px);opacity:.65;
}
.hero-art__halo{position:absolute;border-radius:50%;border:1px solid var(--hero-ring);box-shadow:inset 0 0 20px rgba(255,255,255,.035),0 0 16px rgba(230,34,61,.08);transform:rotate(-25deg)}
.hero-art__halo--one{inset:13% 7%;border-width:2px;transform:rotate(-28deg) scaleY(.55);opacity:.75}
.hero-art__halo--two{inset:8% 3%;transform:rotate(35deg) scaleY(.44);border-color:color-mix(in srgb,var(--hero-ring) 60%,transparent);opacity:.8}
.hero-art__halo--three{inset:22% 13%;transform:rotate(-52deg) scaleY(.62);border-width:1px;opacity:.7}
.hero-art__center{
 position:absolute;inset:30%;border-radius:50%;
 background:radial-gradient(circle at 32% 26%,#F3A0B0 0%,#E6223D 17%,#671123 52%,#12090D 82%);
 box-shadow:inset -22px -30px 34px rgba(0,0,0,.55),inset 7px 9px 25px rgba(255,255,255,.10),0 0 70px rgba(230,34,61,.38);
 opacity:.94;
}
.hero-art__arc{
 position:absolute;inset:13%;border-radius:50%;border:13px solid transparent;
 border-right-color:rgba(230,34,61,.74);border-top-color:rgba(230,34,61,.24);
 transform:rotate(-35deg) scaleY(.72);
 filter:blur(1.5px) drop-shadow(0 0 14px rgba(230,34,61,.38));
}
.hero-art__star{position:absolute;width:5px;height:5px;background:var(--hero-ink);border-radius:50%;box-shadow:0 0 0 7px rgba(230,34,61,.11),0 0 26px rgba(230,34,61,.5)}
.hero-art__star--one{top:15%;right:27%}.hero-art__star--two{bottom:28%;left:14%}
@media (prefers-reduced-motion:no-preference){
 .hero-art__halo--one{animation:lf-orbit-a 24s linear infinite}
 .hero-art__halo--two{animation:lf-orbit-b 34s linear infinite reverse}
 .hero-art__center{animation:lf-breathe 7s ease-in-out infinite alternate}
}
@keyframes lf-orbit-a{from{transform:rotate(-28deg) scaleY(.55)}to{transform:rotate(332deg) scaleY(.55)}}
@keyframes lf-orbit-b{from{transform:rotate(35deg) scaleY(.44)}to{transform:rotate(395deg) scaleY(.44)}}
@keyframes lf-breathe{from{opacity:.86;transform:scale(.97)}to{opacity:1;transform:scale(1.03)}}

/* Global theme consistency: no hardcoded white panels on dark mode. */
.v02-work{background:var(--work-bg)}
.v02-statement{background:var(--statement-bg);color:var(--ink)}
.value-card{background:var(--value-bg);border-color:var(--line);color:var(--ink)}
.case-card{background:var(--white);border-color:var(--line);color:var(--ink)}
.case-card::before,.value-card::before,.cv-panel::before{opacity:.58}
.case-card__tags span{border-color:var(--line)}
.v02-experience{background:var(--exp-bg);color:var(--exp-ink)}
.exp-heading .kicker,.exp-heading>p,.exp-kind,.exp-main p,.exp-status,.cv-panel-head,.cv-note{color:var(--exp-muted)}
.exp-table,.exp-row{border-color:var(--exp-line)}
.cv-panel{background:var(--cv-bg);border-color:var(--cv-line);color:var(--cv-ink)}
.skill-lines span,.tool-rows span{color:var(--cv-ink);border-color:var(--cv-line)}
.v02-contact{background:var(--contact-gradient);color:var(--contact-text)}
.v02-contact h2 span,.contact-spark{color:#fff}
.contact-email{border-bottom-color:rgba(255,255,255,.36)}
.foot-bottom{border-top-color:rgba(255,255,255,.34)}
html[data-theme="light"] .v02-contact{--contact-text:#14080C}
html[data-theme="dark"] .v02-contact{--contact-text:#FFF3F5}

@media (max-width:1100px){
 .v02-hero-title{font-size:clamp(70px,11.8vw,140px)}
 .hero-art__structure{right:-20%;top:14%;width:76vw;opacity:.84}
 .hero-art::after{background:linear-gradient(90deg,var(--hero-surface) 0%,color-mix(in srgb,var(--hero-surface) 82%,transparent) 39%,transparent 95%)}
}
@media (max-width:780px){
 .v02-hero{min-height:calc(100svh - var(--nav-h))}
 .hero-shell{min-height:calc(100svh - var(--nav-h));padding-top:31px}
 .hero-stage{padding-block:clamp(88px,16vw,128px) 64px}
 .v02-hero-title{font-size:clamp(58px,13.8vw,105px);line-height:.89;letter-spacing:.018em}
 .v02-hero-title .title-line--last{font-size:.79em}
 .hero-meta-row{display:flex;flex-direction:column;align-items:flex-start;gap:26px;margin-top:clamp(46px,8vw,72px)}
 .hero-right{width:100%;justify-content:space-between;align-items:center;text-align:left}
 .hero-right>p{display:block}
 .hero-art__structure{width:110vw;right:-57vw;top:12%;opacity:.7}
 .hero-art__glow{width:110vw;right:-60vw;top:16%}
 .hero-art::after{background:linear-gradient(90deg,var(--hero-surface) 0%,color-mix(in srgb,var(--hero-surface) 72%,transparent) 35%,transparent 92%)}
}
@media (max-width:540px){
 .v02-hero-title{font-size:clamp(49px,14.3vw,78px);letter-spacing:.01em;line-height:.91}
 .v02-hero-title .title-line--last{font-size:.80em}
 .hero-stage{padding-top:clamp(100px,22vw,150px);padding-bottom:58px}
 .hero-meta-row{margin-top:52px;gap:27px}
 .hero-intro{font-size:17px;line-height:1.5}
 .hero-right>p{font-size:10px}
 .hero-art__structure{width:145vw;right:-83vw;top:10%;opacity:.73}
 .hero-art__glow{width:145vw;right:-90vw;top:10%}
 .hero-preamble-r{display:none}
 .hero-marquee{padding-block:11px}
 .hero-marquee-track span{font-size:9px}
 .hero-baseline{font-size:8px}
}
@media (prefers-reduced-motion:reduce){
 .hero-art__halo,.hero-art__center{animation:none!important}
 .hero-marquee-track{animation:none!important}
 .hero-art__structure{will-change:auto;transform:none!important}
 .v02-hero-title [data-enter]{transition:none;transform:none;opacity:1}
}
