/* Art direction for the approved 22-image series. */
.visual-frame{margin:0;position:relative;overflow:hidden;background:#ecefe5;isolation:isolate;width:100%;height:100%;border-radius:3px}
.visual-image{position:absolute;inset:0 0 -90px}.visual-image img{width:100%;height:100%;object-fit:cover;display:block}.visual-frame:after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(0deg,#f8f8f430,transparent 30%)}
.visual-trace{position:absolute;bottom:6%;left:8%;height:1px;width:25%;background:#faf9e7;box-shadow:0 0 15px #fff;opacity:.7;pointer-events:none}
.hero-image{inset:22% 0 -10%}.hero-image img{object-position:center 54%}.hero-image:after{background:linear-gradient(var(--paper),#f8f8f400 30%,#f8f8f400 65%,#f8f8f4c9)}.hero-bottom p{background:#f8f8f4ed}
.adg-visual{position:absolute;right:10%;top:24%;width:48%;height:66%}.adg-visual .visual-frame{border-radius:45% 45% 2px 2px}.district .project-heading{width:36%;padding-top:7vh}.district .metric-one{right:12%;top:35%}.district .metric-two{right:12%;bottom:8%}.district .metric{padding:14px 22px}.district .metric strong{font-size:58px}
.network-visual{position:absolute;left:0;top:22%;width:49%;height:65%}.network-visual .visual-frame{border-radius:0 48% 0 0}.network-copy{width:43%;padding-right:35px}.visual-badge{position:absolute;bottom:-4%;right:8%;background:#f8f8f4ed;padding:18px 30px;border-top:1px solid #acb5a4;z-index:3}.visual-badge b{display:block;font:50px Prata,Georgia,serif}.visual-badge span{font-size:11px}
.project-scene .stage{gap:5%;padding-left:6%;padding-right:10%}.scene-copy{width:37%;flex-shrink:0;padding:0}.scene-copy h2{font-size:clamp(32px,3.4vw,58px)}.scene-copy .description{font-size:13px}.project-art.visual-art{width:58%;height:min(66vh,690px);max-height:none;aspect-ratio:auto;margin:20px 0 0;pointer-events:auto}.visual-art .visual-frame{height:76%}.visual-art .visual-frame.panorama{width:108%;margin-left:-4%;border-radius:2px 60px 2px 2px}.visual-art .visual-frame.portrait{width:75%;margin:auto;border-radius:48% 48% 2px 2px}.portrait .visual-image img{object-position:center 58%}.object .visual-image img{object-position:center}.visual-metrics{display:grid;grid-template-columns:1fr 1fr;gap:20px;position:relative;z-index:4;margin:20px 0 0}.visual-number{border-top:1px solid #b9c4aa;padding:14px 8px 0;background:linear-gradient(#f8f8f4ed,#f8f8f480);opacity:0;translate:0 20px;transition:opacity .7s,translate .7s}.in-view .visual-number{opacity:1;translate:0 0}.visual-number:nth-child(2){transition-delay:.15s}.visual-number b{font:400 clamp(25px,3vw,48px)/1.2 Prata,Georgia,serif;display:block;letter-spacing:-.045em}.visual-number span{font-size:10px;line-height:1.6;display:block;margin-top:8px;max-width:230px}.reverse .scene-copy{margin-left:0}.project-scene .year{opacity:.3;z-index:0}.visual-art .editorial{border-radius:3px 3px 65px 3px}.reverse .visual-art .editorial{border-radius:65px 3px 3px 3px}
@media(min-width:701px) and (max-height:760px){.project-art.visual-art{height:65vh}.scene-copy h2{font-size:34px}.scene-copy .eyebrow{margin-bottom:14px}.scene-copy .description{font-size:12px}.visual-number b{font-size:30px}.network-copy h2{font-size:34px}.network-copy .description{font-size:12px}.small-metrics{margin-top:20px}.small-metrics strong{font-size:32px}}
@media(max-width:700px){
.hero-image{inset:30% -12% -3%}.hero-image img{object-position:45% center}.hero-bottom{bottom:60px}.hero-bottom p{font-size:11px}.hero-top h1{font-size:15vw}
.district .stage{min-height:0;padding-bottom:75px}.district .project-heading{width:100%;padding:0}.adg-visual{position:relative;inset:auto;width:100%;height:390px;margin-top:35px}.district .metric{position:relative;inset:auto;display:inline-block;vertical-align:top;width:48%;max-width:none;margin-top:18px;padding:12px 7px}.district .metric strong{font-size:40px}.district .metric strong span{font-size:24px}.district .metric>span{font-size:9px}.adg-visual .visual-frame{border-radius:40% 40% 2px 2px}
.network .stage{min-height:0;display:flex;flex-direction:column;align-items:stretch;padding-bottom:80px}.network-copy{order:0;width:100%;padding:0}.network-visual{position:relative;inset:auto;width:100%;height:360px;order:1;margin-top:35px}.network-visual .visual-frame{border-radius:35px 3px 3px 3px}.network .small-metrics{gap:36px}.network .visual-badge{right:0;bottom:-20px;padding:12px 20px}.visual-badge b{font-size:40px}
.project-scene .stage{padding:85px 13% 75px 7%;gap:0}.scene-copy,.reverse .scene-copy{width:100%}.scene-copy h2{font-size:34px}.scene-copy .description{font-size:13px}.project-art.visual-art,.reverse .project-art.visual-art{width:100%;height:auto;margin-top:30px;max-height:none}.visual-art .visual-frame{height:310px}.visual-art .visual-frame.panorama{width:107%;margin-left:-3%;height:290px;border-radius:3px 40px 3px 3px}.visual-art .visual-frame.portrait{width:100%;height:410px}.visual-art .visual-frame.object{height:300px}.visual-image{inset:0 0 -50px}.visual-metrics{gap:12px;margin-top:18px}.visual-number{padding:12px 2px 0;opacity:1;translate:none}.visual-number b{font-size:28px}.visual-number span{font-size:9px}.project-scene .project-foot{bottom:23px}.scene-nav{background:#f8f8f4f2}.visual-art .editorial{border-radius:3px 3px 40px 3px}.visual-trace{display:none}
}
@media(prefers-reduced-motion:reduce){.visual-number{opacity:1;translate:none;transition:none}.visual-image{transform:none!important}.visual-trace{display:none}}
/* Quieter introductory typography and restored original garden. */
.hero-top h1{font-family:Manrope,Arial,sans-serif;font-weight:300;font-size:clamp(58px,7.5vw,118px);line-height:1.12;letter-spacing:-.065em}.hero-top h1 span{padding-left:8vw}.hero-bottom p{max-width:435px;font-size:14px;line-height:1.85}.hero-image img{object-position:center 60%}
@media(max-width:700px){.hero-top h1{font-size:13.5vw;font-weight:300;letter-spacing:-.06em}.hero-top h1 span{padding-left:0}.hero-bottom p{max-width:280px;font-size:11px;line-height:1.75}.hero-image{inset:28% -30% -3%}}

/* Direct contact at the end of the portfolio. */
.closing .contact-links{align-items:center;gap:26px 40px;margin-top:36px}
.closing .contact-phone{font:300 clamp(23px,3vw,38px)/1.4 Manrope,Arial,sans-serif;letter-spacing:-.035em;white-space:nowrap}
.closing .contact-telegram{display:inline-flex;align-items:center;gap:12px;min-height:52px;padding:12px 22px;border:1px solid #8d9e7c;border-radius:40px;color:#34472a;font-size:13px;transition:background .2s}
.closing .contact-telegram:hover{background:#dce5d0}.closing .contact-telegram svg{flex-shrink:0}
.closing .footer-links{border-top:1px solid #cbd5bf;padding-top:28px;margin-top:40px}
@media(max-width:700px){.closing .contact-links{align-items:flex-start;flex-direction:column;gap:22px}.closing .contact-telegram{font-size:12px;padding:12px 16px;gap:10px}.closing .footer-links{gap:22px}}

/* 2023 · Two achievements in the established framed-image layout. */
.type-achievement-2023 .project-art.visual-art{height:auto;max-height:none}
.type-achievement-2023 .achievement-frame{height:auto;aspect-ratio:3/2;width:100%}
#ecosystem .achievement-frame{border-radius:0;clip-path:polygon(12% 0,100% 0,100% 82%,88% 100%,0 100%,0 18%)}
#ticket-system .achievement-frame{border-radius:50% / 50%}
.type-achievement-2023 .visual-image{inset:0 0 -36px}
.type-achievement-2023 .visual-metrics{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:26px}
.type-achievement-2023 .visual-number b{font-size:clamp(24px,2.65vw,44px);white-space:nowrap}
.type-achievement-2023 .visual-number:nth-child(3){transition-delay:.3s}
@media(max-width:700px){
 .type-achievement-2023 .achievement-frame{height:auto}
 .type-achievement-2023 .visual-image{inset:0 0 -16px}
 .type-achievement-2023 .visual-metrics{gap:10px;margin-top:24px}
 .type-achievement-2023 .visual-number b{font-size:clamp(18px,5.1vw,28px)}
 .type-achievement-2023 .visual-number span{font-size:10px;line-height:1.6}
}
/* 2024 · Broad arch keeps the kiosk and both visitors in view. */
.type-knigomats .project-art.visual-art{height:auto;max-height:none}
.type-knigomats .knigomat-frame{height:auto;aspect-ratio:3/2;width:100%;border-radius:50% 50% 3px 3px / 30% 30% 3px 3px}
.type-knigomats .visual-image{inset:0 0 -36px}
.type-knigomats .visual-metrics{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:26px}
.type-knigomats .visual-number b{font-size:clamp(26px,2.8vw,46px);white-space:nowrap}
.type-knigomats .visual-number:nth-child(3){transition-delay:.3s}
@media(max-width:700px){
 .type-knigomats .knigomat-frame{height:auto}
 .type-knigomats .visual-image{inset:0 0 -16px}
 .type-knigomats .visual-metrics{gap:10px;margin-top:24px}
 .type-knigomats .visual-number b{font-size:clamp(22px,6.2vw,32px)}
 .type-knigomats .visual-number span{font-size:10px}
}
/* Give the newest years more presence without changing earlier chapters. */
.type-knigomats .year,.type-achievement-2023 .year{font-size:26vw;opacity:.45}
@media(max-width:700px){
 .type-knigomats .year,.type-achievement-2023 .year{font-size:46vw}
}
