.fn-projects-stack{background:var(--fn-paper);padding:90px 0 100px}
.fn-stack-layout{display:grid;grid-template-columns:minmax(210px,.72fr) minmax(0,2.28fr);gap:48px;align-items:start}
.fn-stack-intro{position:sticky;top:130px;padding-top:10px}
.fn-stack-intro h2{font-size:clamp(40px,4.4vw,66px);line-height:1.03;margin-bottom:26px}
.fn-stack-intro>p:not(.fn-eyebrow){font-size:16px;max-width:22ch}
.fn-stack-navigation{display:grid;gap:12px;margin:36px 0 28px}
.fn-stack-nav{display:flex;align-items:center;gap:12px;text-align:left;border:0;background:none;padding:4px 0;font:400 13px/1.4 Arial,sans-serif;color:var(--fn-ink);cursor:pointer;transition:color .25s,transform .25s}
.fn-stack-dot{width:7px;height:7px;flex-shrink:0;background:#20343b30;border-radius:50%;transition:background .25s,box-shadow .25s}
.fn-stack-nav.is-active{color:var(--fn-teal);font-weight:600;transform:translateX(4px)}
.fn-stack-nav.is-active .fn-stack-dot{background:var(--fn-teal);box-shadow:0 0 0 4px #487c8d18}
.fn-stack-nav:focus-visible{outline:2px solid var(--fn-teal);outline-offset:5px;border-radius:4px}
.fn-stack-progress{font-size:18px;color:var(--fn-teal);font-variant-numeric:tabular-nums;max-width:180px}
.fn-stack-progress>span:first-child{font-weight:600;color:var(--fn-ink)}
.fn-stack-progress-track{height:2px;background:#487c8d25;margin-top:14px;overflow:hidden}
.fn-stack-progress-track span{display:block;width:100%;height:100%;background:var(--fn-teal);transform-origin:left;transform:scaleX(var(--stack-progress,.2));transition:transform .35s}
.fn-stack-hint{display:inline-flex;gap:24px;margin-top:26px;font-size:12px;color:var(--fn-ink)}
.fn-stack-track{position:relative;padding-bottom:180px;min-width:0}
.fn-stack-marker{height:0;scroll-margin-top:130px}
.fn-stack-marker:not(:first-child){height:160px}
.fn-stack-card{position:sticky;top:calc(130px + var(--card-index)*12px);z-index:calc(var(--card-index) + 1);margin:0;perspective:1200px}
.fn-stack-card:last-child{margin-bottom:0}
.fn-stack-surface{position:relative;display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);min-height:clamp(390px,56vh,490px);background:var(--fn-white);border:1px solid #487c8d20;border-radius:24px;overflow:hidden;box-shadow:0 16px 45px #20343b14;transform:translateY(var(--stack-lift,0px)) scale(var(--stack-scale,1)) rotateX(var(--stack-tilt,0deg));transform-origin:center top;transition:box-shadow .3s;will-change:transform}
.fn-stack-surface:after{content:'';position:absolute;inset:0;background:var(--fn-ink);opacity:var(--stack-shade,0);pointer-events:none;border-radius:inherit}
.fn-stack-image{display:flex;align-items:center;justify-content:center;background:var(--fn-ink);overflow:hidden}
.fn-stack-image img{width:100%;height:auto;max-height:100%;object-fit:contain;transition:transform .7s cubic-bezier(.22,1,.36,1)}
.fn-stack-card:hover .fn-stack-image img{transform:scale(1.025)}
.fn-stack-details{display:flex;flex-direction:column;align-items:start;justify-content:center;padding:32px;min-width:0}
.fn-stack-number{font-size:12px;letter-spacing:.1em;color:var(--fn-teal);margin-bottom:26px}
.fn-stack-details h3{font-size:clamp(26px,2.5vw,38px);font-weight:500;line-height:1.08;letter-spacing:-.04em;margin:0 0 16px;overflow-wrap:anywhere}
.fn-stack-category{background:#487c8d15;color:var(--fn-teal);border-radius:100px;padding:5px 12px;font-size:11px;margin-bottom:20px}
.fn-stack-details p{font-size:14px;line-height:1.6;margin:0 0 26px}
.fn-stack-visit{font-size:12px;padding:13px 18px;gap:25px}
.fn-stack-card.is-current .fn-stack-surface{box-shadow:0 20px 60px #20343b20}
@media(min-width:1024px) and (max-height:700px){.fn-stack-intro{top:112px}.fn-stack-intro h2{font-size:44px}.fn-stack-navigation{margin:20px 0;gap:7px}.fn-stack-hint{margin-top:18px}.fn-stack-card{top:calc(112px + var(--card-index)*8px)}.fn-stack-surface{min-height:350px}.fn-stack-details{padding:24px}}
@media(max-width:1023px){.fn-stack-layout{grid-template-columns:1fr;gap:36px}.fn-stack-intro{position:relative;top:auto}.fn-stack-intro h2{font-size:48px}.fn-stack-intro h2 br{display:none}.fn-stack-intro h2 em{margin-left:.15em}.fn-stack-intro>p:not(.fn-eyebrow){max-width:none}.fn-stack-navigation{display:flex;flex-wrap:wrap;gap:12px 24px;margin:24px 0}.fn-stack-hint{display:none}.fn-stack-track{padding-bottom:0}.fn-stack-card{position:relative;top:auto;margin-bottom:28px}.fn-stack-surface{min-height:340px;transform:none!important;will-change:auto}.fn-stack-surface:after{display:none}}
@media(max-width:767px){.fn-projects-stack{padding:56px 0}.fn-stack-intro h2{font-size:42px}.fn-stack-intro h2 br{display:block}.fn-stack-intro h2 em{margin-left:0}.fn-stack-navigation{gap:10px 20px}.fn-stack-nav{font-size:12px}.fn-stack-surface{display:block;border-radius:20px}.fn-stack-image{aspect-ratio:1.9}.fn-stack-details{padding:24px}.fn-stack-number{margin-bottom:18px}.fn-stack-details h3{font-size:30px}.fn-stack-details p{font-size:14px}.fn-stack-card{margin-bottom:28px}}
@media(prefers-reduced-motion:reduce){.fn-stack-card{position:relative;top:auto;margin-bottom:28px}.fn-stack-surface{transform:none!important;will-change:auto}.fn-stack-surface:after{display:none}.fn-stack-image img,.fn-stack-nav,.fn-stack-dot,.fn-stack-progress-track span{transition:none}}
@media(max-width:1023px),(prefers-reduced-motion:reduce){.fn-stack-marker:not(:first-child){height:0}}
