/* Leonardo Firenze — cinematic scroll narrative v0.8. Original implementation;
   reference-inspired sequencing, with LF typography, logo and color tokens. */
.lf08-story.v02-hero.lf07-hero{height:380svh;min-height:0;overflow:visible;display:block;padding:0;background:var(--lf07-bg);color:var(--lf07-ink);isolation:auto}
.lf08-sticky{position:sticky;top:var(--nav-h);height:calc(100svh - var(--nav-h));min-height:560px;overflow:hidden;isolation:isolate;background:var(--lf07-bg);color:var(--lf07-ink)}
.lf08-sticky::before{content:'';position:absolute;inset:0;z-index:0;background:radial-gradient(ellipse 45% 44% at 79% 48%,rgba(230,34,61,.15),transparent 75%),radial-gradient(ellipse 30% 48% at 4% 82%,rgba(190,185,200,.06),transparent 72%);pointer-events:none}
.lf08-sticky .lf07-underlay{inset:0;z-index:0;opacity:.66}
.lf08-sticky .lf07-ambient{opacity:.40;filter:blur(90px)}
.lf08-sticky .lf07-glass-shine{opacity:.17}
.lf08-topline{position:absolute;top:clamp(25px,3.2vw,51px);left:var(--gutter);right:var(--gutter);z-index:3;display:flex;justify-content:space-between;gap:18px;align-items:center;font:600 11px/1.25 'Mozilla Text',Arial,sans-serif;letter-spacing:.10em;color:var(--lf07-muted)}
.lf08-topline span:first-child{color:var(--lf07-ink)}
.lf08-scenes{position:absolute;inset:0;z-index:2}
.lf08-scene{position:absolute;inset:0;padding:clamp(100px,9vh,148px) var(--gutter) clamp(85px,10vh,145px);display:flex;flex-direction:column;justify-content:center;will-change:transform,opacity;pointer-events:none;visibility:hidden;opacity:0;transform:translate3d(0,50px,0) scale(.985);backface-visibility:hidden}
.lf08-scene.is-current{visibility:visible;pointer-events:auto}
.lf08-scene--hello{visibility:visible;opacity:1;transform:none}
.lf08-overline{font:650 clamp(11px,1vw,13px)/1.5 'Mozilla Text',Arial,sans-serif;letter-spacing:.16em;display:flex;align-items:center;gap:12px;color:var(--lf07-muted)}
.lf08-dot{display:inline-block;flex:none;width:9px;height:9px;border-radius:50%;background:#E6223D;box-shadow:0 0 20px rgba(230,34,61,.43)}
.lf08-gigantic{font:600 clamp(160px,32.4vw,740px)/.7 var(--heading-now);letter-spacing:.025em;margin:clamp(32px,5vw,75px) 0 clamp(22px,4vw,54px);white-space:nowrap;text-transform:uppercase;color:var(--lf07-ink);max-width:none;align-self:flex-start}
.lf08-gigantic span{color:#E6223D}
.lf08-hello-bottom,.lf08-identity-bottom{display:flex;justify-content:space-between;gap:22px;width:100%;max-width:100%;font:600 clamp(10px,.95vw,13px)/1.5 'Mozilla Text',Arial,sans-serif;letter-spacing:.11em;color:var(--lf07-muted)}
.lf08-identity-title{width:100%;max-width:none!important;margin:clamp(33px,5vw,70px) 0 clamp(40px,5vw,85px);font:600 clamp(95px,13.8vw,310px)/.80 var(--heading-now);letter-spacing:.024em;text-transform:uppercase}
.lf08-identity-title>span,.lf08-identity-title>strong{display:block;font-weight:600;max-width:none;white-space:nowrap}
.lf08-identity-title strong{color:#E6223D}
.lf08-period{color:var(--lf07-ink)}
.lf08-identity-title .lf08-identity-small{font-size:.69em;letter-spacing:.018em;line-height:1.06;margin-top:.06em}
.lf08-scene--profile{display:grid;grid-template-columns:minmax(260px,.91fr) minmax(320px,1.09fr);gap:clamp(35px,5vw,110px);align-items:center;padding-top:clamp(85px,7vh,115px);padding-bottom:clamp(85px,9vh,125px)}
.lf08-photo{margin:0;min-width:0;display:flex;flex-direction:column;gap:13px;align-self:stretch;justify-content:center;max-height:100%}
.lf08-photo-art{position:relative;width:100%;max-height:min(55vh,620px);aspect-ratio:5 / 5.35;border-radius:clamp(22px,2.4vw,36px);overflow:hidden;background:linear-gradient(135deg,#161719 0%,#66696c 52%,#202124 100%);filter:grayscale(1);isolation:isolate;box-shadow:0 25px 70px rgba(0,0,0,.25)}
.lf08-photo-art::before{content:'';position:absolute;inset:0;background:radial-gradient(circle at 77% 23%,rgba(246,247,247,.54),transparent 25%),linear-gradient(140deg,transparent 27%,rgba(238,238,238,.23) 43%,transparent 70%);mix-blend-mode:screen}
.lf08-photo-grid{position:absolute;inset:0;background:linear-gradient(rgba(245,245,245,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(245,245,245,.045) 1px,transparent 1px);background-size:44px 44px}
.lf08-photo-disc{position:absolute;top:7%;left:19%;height:82%;aspect-ratio:1;border-radius:50%;border:clamp(33px,6vw,110px) solid #999da1;box-shadow:inset 19px 0 23px rgba(0,0,0,.35),16px 16px 65px rgba(0,0,0,.50);transform:rotate(-16deg) perspective(650px) rotateY(-25deg)}
.lf08-photo-plane{position:absolute;left:-12%;right:-11%;height:27%;bottom:6%;background:linear-gradient(120deg,#404143,#d5d6d8 55%,#404143);transform:rotate(-20deg);mix-blend-mode:screen;opacity:.45}
.lf08-photo-type{position:absolute;bottom:6%;left:5%;font:600 clamp(105px,17vw,290px)/.7 var(--heading-now);letter-spacing:.04em;color:rgba(252,252,252,.80);text-shadow:0 8px 45px rgba(0,0,0,.32)}
.lf08-photo-type span{font:600 .15em/1 'Mozilla Text',Arial,sans-serif;vertical-align:top}
.lf08-photo-id{position:absolute;top:5%;left:6%;font:700 10px/1.3 'Mozilla Text',Arial,sans-serif;letter-spacing:.16em;color:#f5f5f5}
.lf08-photo figcaption{font:650 10px/1.5 'Mozilla Text',Arial,sans-serif;letter-spacing:.15em;color:var(--lf07-muted)}
.lf08-bio{align-self:center;min-width:0;max-width:810px}
.lf08-bio h2{font:700 clamp(50px,5.35vw,111px)/1.02 'Mozilla Text',Arial,sans-serif;letter-spacing:-.07em;margin:clamp(26px,3vw,44px) 0 clamp(30px,3.8vw,62px)}
.lf08-bio h2 span{color:#E6223D}
.lf08-bio>p:not(.lf08-overline){max-width:660px;color:var(--lf07-muted);font:400 clamp(16px,1.12vw,20px)/1.56 'Mozilla Text',Arial,sans-serif;margin-bottom:20px;letter-spacing:-.02em}
.lf08-bio>p.lf08-bio-lead{font-size:clamp(20px,1.45vw,27px);line-height:1.47;color:var(--lf07-ink)}
.lf08-bio-links{margin-top:clamp(28px,3vw,45px);display:flex;gap:12px;flex-wrap:wrap}
.lf08-footerline{position:absolute;bottom:clamp(22px,2.4vw,42px);left:var(--gutter);right:var(--gutter);z-index:4;display:flex;align-items:center;gap:23px;color:var(--lf07-muted);font:650 11px/1 'Mozilla Text',Arial,sans-serif;letter-spacing:.13em}
.lf08-step{white-space:nowrap;color:var(--lf07-ink)}.lf08-step i{font-style:normal;color:#E6223D;margin:0 3px}
.lf08-track{height:2px;background:var(--lf07-rule);flex:1;position:relative;border-radius:3px;overflow:hidden}
.lf08-track>span{display:block;width:100%;height:100%;transform:scaleX(0);transform-origin:left;background:#E6223D;will-change:transform}
.lf08-scroll-prompt{white-space:nowrap}.lf08-scroll-prompt span{color:#E6223D;font-size:16px}
html[data-theme=light] .lf08-photo-art{box-shadow:0 24px 60px rgba(0,0,0,.14)}
/* The story occupies viewport height on narrow screens, but never clips the copy. */
@media(max-width:900px){
 .lf08-story.v02-hero.lf07-hero{height:340svh}
 .lf08-sticky{min-height:0}
 .lf08-scene{padding-top:100px;padding-bottom:90px}
 .lf08-gigantic{font-size:clamp(110px,31vw,340px)}
 .lf08-identity-title{font-size:clamp(84px,12.7vw,154px)}
 .lf08-scene--profile{grid-template-columns:minmax(200px,.9fr) minmax(0,1.1fr);gap:clamp(20px,3vw,46px)}
 .lf08-bio h2{font-size:clamp(35px,5vw,64px)}
 .lf08-bio>p:not(.lf08-overline){font-size:15px;margin-bottom:12px}
 .lf08-bio>p.lf08-bio-lead{font-size:17px}
 .lf08-bio-links{margin-top:20px}
 .lf08-button{min-height:44px}
}
@media(max-width:620px){
 .lf08-story.v02-hero.lf07-hero{height:325svh}
 .lf08-topline{font-size:9px;top:22px}.lf08-topline span:last-child{display:none}
 .lf08-scene{padding:90px 20px 80px}
 .lf08-gigantic{font-size:clamp(105px,33vw,220px)}
 .lf08-identity-title{font-size:clamp(72px,14vw,106px);letter-spacing:.01em;line-height:.89}
 .lf08-identity-title .lf08-identity-small{font-size:.67em}
 .lf08-identity-bottom,.lf08-hello-bottom{font-size:9px;letter-spacing:.07em}
 .lf08-scene--profile{grid-template-columns:1fr;grid-template-rows:minmax(0,.85fr) auto;gap:17px;align-content:center;padding:68px 20px 70px}
 .lf08-photo{max-width:100%;gap:6px;min-height:0;justify-content:flex-end}
 .lf08-photo-art{width:min(100%,360px);aspect-ratio: 16 / 8.7;max-height:29vh;border-radius:18px}
 .lf08-photo-disc{border-width:38px}.lf08-photo-type{font-size:125px}.lf08-photo-id{font-size:8px}
 .lf08-photo figcaption{font-size:9px}
 .lf08-bio h2{font-size:clamp(40px,9vw,55px);margin:13px 0 18px;line-height:1}
 .lf08-bio>p:not(.lf08-overline){font-size:13px;line-height:1.42;margin-bottom:9px}
 .lf08-bio>p.lf08-bio-lead{font-size:15px;line-height:1.38}
 .lf08-bio .lf08-overline{font-size:9px}
 .lf08-bio-links{margin-top:16px;gap:8px}
 .lf08-bio-links .lf07-button{min-height:40px;font-size:10px;padding:9px 13px;gap:13px}
 .lf08-footerline{left:20px;right:20px;bottom:19px;font-size:9px;gap:11px}
 .lf08-scroll-prompt{font-size:8px}
 .lf08-sticky .lf07-fluid{opacity:.60}
}
@media(max-height:650px) and (min-width:621px){.lf08-sticky{min-height:0}.lf08-scene--profile{padding-block:65px}.lf08-bio h2{margin-block:15px}.lf08-photo-art{max-height:46vh}.lf08-bio>p:not(.lf08-overline){font-size:14px}}
@media(prefers-reduced-motion:reduce){
 .lf08-story.v02-hero.lf07-hero{height:auto}
 .lf08-sticky{position:relative;top:auto;height:auto;min-height:0;overflow:visible}
 .lf08-scenes{position:relative}
 .lf08-scene{position:relative;visibility:visible!important;opacity:1!important;pointer-events:auto!important;transform:none!important;min-height:70svh}
 .lf08-scene--profile{min-height:95svh}
 .lf08-footerline{display:none}
 .lf08-sticky .lf07-underlay{opacity:.08}
}
/* Keep both editorial lines inside narrow viewports without sacrificing desktop scale. */
@media(max-width:620px){
 .lf08-gigantic{font-size:clamp(76px,27vw,175px)}
 .lf08-identity-title{font-size:clamp(53px,16.7vw,110px)}
 .lf08-identity-title .lf08-identity-small{white-space:normal;max-width:100%;line-height:.98}
}
@media(max-width:620px) and (max-height:760px){
 .lf08-scene--profile{padding-top:54px;padding-bottom:54px;gap:8px}
 .lf08-photo-art{max-height:20vh}
 .lf08-photo figcaption{display:none}
 .lf08-bio h2{font-size:clamp(35px,7.9vw,45px);margin:8px 0 12px}
 .lf08-bio>p:not(.lf08-overline){font-size:12px;margin-bottom:7px;line-height:1.34}
 .lf08-bio>p.lf08-bio-lead{font-size:13px}
 .lf08-bio-links{margin-top:10px}
 .lf08-footerline{bottom:13px}
}
html:not(.js) .lf08-story{height:auto!important}
html:not(.js) .lf08-sticky{position:static;height:auto}
html:not(.js) .lf08-scenes{position:relative}
html:not(.js) .lf08-scene{position:relative;visibility:visible;opacity:1;pointer-events:auto;transform:none;min-height:75vh}
