/* Albturm case study: image-led visitor journey and original concept material. */
.alb-icon-defs { position: absolute; width: 0; height: 0; overflow: hidden; }
.alb-process-section { padding-block: clamp(3.5rem, 6vw, 5.5rem); background: #e7edeb; }
.alb-process-list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 0; padding: 0; border-block: 1px solid #a9b7b5; list-style: none; }
.alb-process-list li { display: flex; flex-direction: column; min-width: 0; padding: clamp(1.5rem, 3vw, 2.5rem); border-right: 1px solid #a9b7b5; }
.alb-process-list li:first-child { padding-left: 0; }
.alb-process-list li:last-child { padding-right: 0; border-right: 0; }
.alb-process-list__number { color: #3a41e4; font: 700 .85rem/1.3 'Montserrat', sans-serif; font-variant-numeric: tabular-nums; }
.alb-process-list h3 { max-width: 340px; margin: 2rem 0 1rem; color: #202b2d; font: 600 clamp(1.5rem, 2.2vw, 2.35rem)/1.15 'Montserrat', sans-serif; letter-spacing: -.035em; }
.alb-process-list p { max-width: 390px; margin: 0; color: #39494b; font: 400 clamp(.95rem, 1.1vw, 1.08rem)/1.6 'Montserrat', sans-serif; }
.alb-process-list a { display: inline-flex; align-items: baseline; align-self: flex-start; gap: .35rem; margin-top: auto; padding-top: 2.5rem; color: #2932bd; font: 700 .85rem/1.45 'Montserrat', sans-serif; text-decoration: underline; text-underline-offset: .22em; }
.alb-process-list a:hover { color: #111875; }
.alb-process-list a:focus-visible { outline: 3px solid #3a41e4; outline-offset: 4px; }
#topics { scroll-margin-top: 6rem; }
#forum-plan { scroll-margin-top: 6rem; }
@media (prefers-reduced-motion: no-preference) {
  .alb-interactive .alb-reveal { opacity: 0; transform: translateY(18px); transition: opacity .65s ease, transform .65s ease; }
  .alb-interactive .alb-reveal.is-visible { opacity: 1; transform: none; }
  .alb-interactive .alb-content-model .alb-reveal:nth-child(2) { transition-delay: .08s; }
  .alb-interactive .alb-content-model .alb-reveal:nth-child(3) { transition-delay: .16s; }
  .alb-interactive .alb-content-model .alb-reveal:nth-child(4) { transition-delay: .24s; }
}

.alb-ascent { --ascent-position: 86%; margin-top: clamp(2.5rem, 5vw, 5rem); }
.alb-interactive .alb-ascent { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: clamp(2rem, 5vw, 5rem); align-items: start; }
.alb-ascent__sticky { min-width: 0; margin: 0; }
.alb-interactive .alb-ascent__sticky { position: sticky; top: 96px; }
.alb-ascent__visual { position: relative; overflow: hidden; height: clamp(420px, 73vh, 760px); background: #26352e; }
.alb-ascent__visual img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 23% center; }
.alb-ascent__rail { position: absolute; top: 10%; left: 39%; bottom: 10%; width: 1px; background: rgba(255,255,255,.8); box-shadow: 0 0 12px rgba(0,0,0,.35); }
.alb-ascent__marker { position: absolute; top: var(--ascent-position); left: 50%; width: 15px; height: 15px; border: 3px solid #fff; border-radius: 50%; background: #3a41e4; box-shadow: 0 0 0 5px rgba(23,36,38,.4); transform: translate(-50%,-50%); transition: top .55s ease; }
.alb-ascent__sticky figcaption { display: flex; gap: 1.25rem; align-items: baseline; justify-content: space-between; margin-top: .8rem; }
.alb-ascent__sticky figcaption span:first-child { flex: none; color: #3a41e4; font-weight: 700; font-variant-numeric: tabular-nums; }
.alb-ascent__steps { min-width: 0; }
.alb-ascent__step { position: relative; display: flex; flex-direction: column; justify-content: center; min-height: 70vh; padding: 2.5rem 0 2.5rem clamp(1.25rem, 2.5vw, 2.5rem); border-left: 1px solid #b5bbbc; }
.alb-ascent__step::before { position: absolute; top: 50%; left: -3px; width: 5px; height: 0; background: #3a41e4; content: ''; transition: height .35s ease, top .35s ease; }
.alb-ascent__step.is-active::before { top: 0; height: 100%; }
.alb-interactive .alb-ascent__step { opacity: .78; transition: opacity .35s ease; }
.alb-interactive .alb-ascent__step.is-active { opacity: 1; }
.alb-ascent__step > span { color: #3a41e4; font: 700 .78rem/1.4 'Montserrat', sans-serif; letter-spacing: .08em; text-transform: uppercase; }
.alb-ascent__step h3 { margin: 1.2rem 0 1rem; color: #20262a; font: 600 clamp(2rem, 3vw, 3.25rem)/1.1 'Montserrat', sans-serif; letter-spacing: -.04em; }
.alb-ascent__step p { max-width: 490px; margin: 0; color: #41484b; font: 400 clamp(1rem, 1.2vw, 1.18rem)/1.65 'Montserrat', sans-serif; }
.alb-ascent__note { max-width: 760px; margin: 1.2rem 0 0; color: #646d70; font: 400 .88rem/1.55 'Montserrat', sans-serif; }
.alb-ascent__panorama { margin: clamp(3.5rem, 7vw, 7rem) 0 0; }
.alb-ascent__panorama img { display: block; width: 100%; aspect-ratio: 21 / 7; object-fit: cover; background: #e5e8e6; }
.alb-topic-map { margin-top: clamp(3rem, 6vw, 6rem); padding: clamp(1.5rem, 4vw, 4rem); border-radius: 24px; background: linear-gradient(155deg, #1f2d31, #1a272c); color: #fff; }
.alb-topic-map__intro { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, .8fr); gap: 2rem; align-items: end; padding-bottom: 2.2rem; border-bottom: 1px solid #526164; }
.alb-topic-map__intro h3 { max-width: 660px; margin: 0; color: #fff; font: 600 clamp(1.8rem, 3.3vw, 3.1rem)/1.15 'Montserrat', sans-serif; letter-spacing: -.035em; }
.alb-topic-map__intro p { max-width: 550px; margin: 0; color: #c6d0d1; font: 400 clamp(.95rem, 1.15vw, 1.05rem)/1.65 'Montserrat', sans-serif; }
.alb-topic-map__diagram { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) minmax(165px, .6fr) minmax(0, 1fr); grid-template-rows: repeat(3, minmax(0, 1fr)); gap: 1rem; height: 570px; margin-top: 2rem; }
.alb-topic-map__diagram > svg { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; pointer-events: none; }
.alb-topic-map__diagram > svg path { fill: none; stroke: #829a9b; stroke-width: 1.2; vector-effect: non-scaling-stroke; }
.alb-topic-map__hub { z-index: 1; display: grid; width: min(100%, 195px); aspect-ratio: 1; place-self: center; place-items: center; grid-column: 2; grid-row: 2; border: 1px solid transparent; border-radius: 50%; background: linear-gradient(145deg, #4951e7, #313abf) padding-box, linear-gradient(145deg, #c1c8ff, #8ac7c0) border-box; box-shadow: 0 0 0 12px #1d2b2f, 0 18px 40px rgba(7, 16, 24, .2); text-align: center; }
.alb-topic-map__hub span { padding: 1rem; font: 600 clamp(1.05rem, 1.6vw, 1.4rem)/1.3 'Montserrat', sans-serif; letter-spacing: -.025em; }
.alb-topic-map__node { z-index: 1; display: flex; flex-direction: column; justify-content: space-between; min-width: 0; padding: clamp(1.1rem, 2.2vw, 2rem); border: 1px solid transparent; border-radius: 16px; background: linear-gradient(145deg, #2d3d41, #253438) padding-box, linear-gradient(135deg, rgba(184, 192, 255, .75), rgba(130, 178, 171, .38) 58%, rgba(130, 178, 171, .2)) border-box; box-shadow: 0 10px 28px rgba(7, 16, 20, .12); }
.alb-topic-map__heading { display: flex; align-items: center; gap: .8rem; min-width: 0; }
.alb-topic-map__icon { display: block; width: 32px; height: 32px; flex: none; fill: currentColor; color: #acb7fa; }
.alb-topic-map__node h4 { margin: 0; color: #fff; font: 600 clamp(1.25rem, 1.9vw, 1.9rem)/1.15 'Montserrat', sans-serif; letter-spacing: -.025em; }
.alb-topic-map__node p { margin: 1.2rem 0 0; color: #bccacd; font: 400 .85rem/1.45 'Montserrat', sans-serif; }
.alb-topic-map__node--a { grid-column: 1; grid-row: 1; }
.alb-topic-map__node--b { grid-column: 3; grid-row: 1; }
.alb-topic-map__node--c { grid-column: 1; grid-row: 2; }
.alb-topic-map__node--d { grid-column: 3; grid-row: 2; }
.alb-topic-map__node--d { background: linear-gradient(145deg, #34434b, #293a42) padding-box, linear-gradient(135deg, #c4caff, #91c8c0) border-box; }
.alb-topic-map__node--e { grid-column: 1; grid-row: 3; }
.alb-topic-map__node--f { grid-column: 3; grid-row: 3; }
.alb-topic-path { margin-top: clamp(2.5rem, 5vw, 5rem); padding-top: clamp(1.5rem, 3vw, 2.5rem); border-top: 1px solid #6d7f82; }
.alb-topic-path__heading { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); gap: 1.5rem; align-items: start; }
.alb-topic-path__heading > p { margin: .3rem 0 0; color: #aab2ff; font: 700 .75rem/1.4 'Montserrat', sans-serif; letter-spacing: .09em; text-transform: uppercase; }
.alb-topic-path__heading h4 { max-width: 750px; margin: 0; color: #fff; font: 600 clamp(1.65rem, 3vw, 3rem)/1.18 'Montserrat', sans-serif; letter-spacing: -.035em; }
.alb-topic-path__steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(1rem, 2vw, 2rem); margin: clamp(2rem, 4vw, 3.5rem) 0 0; padding: 0; list-style: none; }
.alb-topic-path__steps li { min-width: 0; padding-top: 1.2rem; border-top: 2px solid #aab2ff; }
.alb-topic-path__steps span { display: block; margin-bottom: 1.7rem; color: #aab2ff; font: 700 .7rem/1.4 'Montserrat', sans-serif; letter-spacing: .08em; text-transform: uppercase; }
.alb-topic-path__steps strong { display: block; color: #fff; font: 600 clamp(1.2rem, 1.7vw, 1.8rem)/1.2 'Montserrat', sans-serif; letter-spacing: -.025em; }
.alb-topic-path__steps p { max-width: 280px; margin: .8rem 0 0; color: #c6d0d1; font: 400 .88rem/1.55 'Montserrat', sans-serif; }
.alb-topic-path__note { margin: 2rem 0 0; color: #aebcbd; font: 400 .75rem/1.5 'Montserrat', sans-serif; }
@media (prefers-reduced-motion: no-preference) {
  .alb-interactive .alb-topic-path__steps li { opacity: 0; transform: translateY(16px); transition: opacity .55s ease, transform .55s ease; }
  .alb-interactive .alb-topic-path.is-visible .alb-topic-path__steps li { opacity: 1; transform: none; }
  .alb-interactive .alb-topic-path.is-visible .alb-topic-path__steps li:nth-child(2) { transition-delay: .12s; }
  .alb-interactive .alb-topic-path.is-visible .alb-topic-path__steps li:nth-child(3) { transition-delay: .24s; }
}
.alb-forum-transition { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); min-height: 560px; margin-top: clamp(3rem, 6vw, 6rem); background: #dfe6e1; }
.alb-forum-transition figure { position: relative; min-width: 0; margin: 0; overflow: hidden; background: #b7c2bd; }
.alb-forum-transition img { display: block; width: 100%; height: 100%; min-height: 560px; object-fit: cover; object-position: 43% center; }
.alb-forum-transition figcaption { position: absolute; right: 1.2rem; bottom: 1.2rem; left: 1.2rem; width: fit-content; padding: .45rem .7rem; background: rgba(25, 37, 38, .82); color: #fff; font: 500 .7rem/1.45 'Montserrat', sans-serif; }
.alb-forum-transition__copy { display: flex; flex-direction: column; align-items: flex-start; justify-content: center; min-width: 0; padding: clamp(2rem, 5vw, 5rem); }
.alb-forum-transition__route { display: flex; flex-direction: column; gap: 3rem; margin-bottom: clamp(2.5rem, 5vw, 4.5rem); padding-left: 1.4rem; border-left: 1px solid #758780; color: #465a52; font: 700 .7rem/1.4 'Montserrat', sans-serif; letter-spacing: .08em; text-transform: uppercase; }
.alb-forum-transition__route span { position: relative; }
.alb-forum-transition__route span::before { position: absolute; top: .25em; left: calc(-1.4rem - 4px); width: 7px; height: 7px; border-radius: 50%; background: #344a43; content: ''; }
.alb-forum-transition__route span:last-child::before { width: 10px; height: 10px; left: calc(-1.4rem - 5px); background: #3a41e4; }
.alb-forum-transition h3 { max-width: 550px; margin: 0; color: #202b2d; font: 600 clamp(2rem, 3.7vw, 4rem)/1.08 'Montserrat', sans-serif; letter-spacing: -.05em; }
.alb-forum-transition__copy > p { max-width: 520px; margin: 1.5rem 0 0; color: #364945; font: 400 clamp(1rem, 1.25vw, 1.13rem)/1.65 'Montserrat', sans-serif; }
.alb-forum-transition a { display: inline-flex; gap: .4rem; align-items: baseline; margin-top: 2rem; color: #2932bd; font: 700 .86rem/1.4 'Montserrat', sans-serif; text-decoration: underline; text-underline-offset: .25em; }
.alb-forum-transition a:focus-visible { outline: 3px solid #3a41e4; outline-offset: 4px; }
@media (prefers-reduced-motion: no-preference) {
  .alb-interactive .alb-topic-map__diagram > svg path { stroke-dasharray: 850; stroke-dashoffset: 850; transition: stroke-dashoffset 1s ease .2s; }
  .alb-interactive .alb-topic-map.is-visible .alb-topic-map__diagram > svg path { stroke-dashoffset: 0; }
}

.alb-visual-switch { margin-top: clamp(2.5rem, 5vw, 5rem); }
.alb-visual-switch__controls { display: none; gap: .45rem; flex-wrap: wrap; margin-bottom: 1rem; }
.alb-interactive .alb-visual-switch__controls { display: flex; }
.alb-visual-switch__controls button { min-height: 44px; padding: .65rem 1rem; border: 1px solid #8e999e; border-radius: 10px; background: transparent; color: #e9eeee; cursor: pointer; font: 600 .85rem/1.3 'Montserrat', sans-serif; }
.alb-visual-switch__controls button[aria-pressed="true"] { border-color: #dce0ff; background: #dce0ff; color: #1d2429; }
.alb-visual-switch__controls button:hover, .alb-visual-switch__controls button:focus-visible { border-color: #fff; }
.alb-visual-switch figure { margin: 0; }
.alb-visual-switch img { display: block; width: 100%; max-height: 720px; aspect-ratio: 16 / 10; object-fit: cover; background: #e8e8e8; }
.alb-visual-switch figcaption { margin-top: .8rem; }
.alb-content-next { display: inline-flex; gap: .4rem; align-items: baseline; margin-top: 2.5rem; color: #dce0ff; font: 700 .86rem/1.4 'Montserrat', sans-serif; text-decoration: underline; text-underline-offset: .25em; }
.alb-content-next:focus-visible { outline: 3px solid #dce0ff; outline-offset: 4px; }

.alb-plan-story { padding: clamp(3rem, 6vw, 6rem) 0; border-top: 1px solid #d5d8d9; }
.alb-plan-story__intro { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 3fr); gap: clamp(2rem, 6vw, 6rem); align-items: end; }
.alb-plan-story__intro h3 { max-width: 580px; margin: 0; color: #20262a; font: 600 clamp(1.8rem, 3vw, 3.1rem)/1.15 'Montserrat', sans-serif; letter-spacing: -.035em; }
.alb-plan-story__intro p { max-width: 630px; margin: 0; color: #454d50; font: 400 clamp(1rem, 1.25vw, 1.13rem)/1.7 'Montserrat', sans-serif; }
.alb-plan-story__images { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(1rem, 2.5vw, 2rem); margin-top: 2.5rem; }
.alb-plan-story figure { min-width: 0; margin: 0; }
.alb-plan-story figure > a { display: block; border: 1px solid #d5d8d9; background: #f2f2ef; }
.alb-plan-story figure > a:focus-visible, .alb-plan-story figcaption a:focus-visible { outline: 3px solid #3a41e4; outline-offset: 3px; }
.alb-plan-story img { display: block; width: 100%; height: auto; }
.alb-plan-story figcaption { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .3rem 1rem; }
.alb-plan-story figcaption a { color: #3a41e4; font-weight: 700; text-decoration: underline; text-underline-offset: .2em; white-space: nowrap; }
.alb-plan-story figcaption a.alb-attribution-link { color: inherit; font-weight: inherit; white-space: normal; }
.alb-construction { padding: clamp(3rem, 6vw, 6rem) 0; border-top: 1px solid #d5d8d9; }
.alb-construction__copy p + p { margin-top: 1rem; }
.alb-construction__grid { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); gap: clamp(1rem, 2.5vw, 2rem); align-items: start; margin-top: 2.5rem; }
.alb-construction figure { min-width: 0; margin: 0; }
.alb-construction video { display: block; width: 100%; aspect-ratio: 16 / 9; background: #20262a; object-fit: cover; }
.alb-construction__details { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(1rem, 2.5vw, 2rem); margin-top: clamp(1.5rem, 3vw, 3rem); }
.alb-construction__details img { display: block; width: 100%; height: clamp(260px, 30vw, 460px); background: #f4f4f2; object-fit: contain; }
.alb-construction figcaption { margin-top: .8rem; color: #5a6367; font: 400 .8rem/1.5 'Montserrat', sans-serif; }
.alb-layout { margin-top: 2.5rem; border: 1px solid #ccd1d0; background: #f1f3f1; }
.alb-layout__heading { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 3fr); gap: clamp(1rem, 4vw, 4rem); align-items: end; padding: clamp(1.25rem, 3vw, 2.5rem); }
.alb-layout__heading h4 { margin: 0; color: #20262a; font: 600 clamp(1.45rem, 2.2vw, 2.3rem)/1.2 'Montserrat', sans-serif; letter-spacing: -.03em; }
.alb-layout__heading p { max-width: 650px; margin: 0; color: #454d50; font: 400 1rem/1.6 'Montserrat', sans-serif; }
.alb-layout__tabs { display: none; grid-template-columns: repeat(3, minmax(0, 1fr)); border-block: 1px solid #ccd1d0; }
.alb-interactive .alb-layout__tabs { display: grid; }
.alb-layout__tabs button { display: flex; gap: .8rem; align-items: center; min-width: 0; min-height: 66px; padding: .8rem clamp(.9rem, 2vw, 2rem); border: 0; border-right: 1px solid #ccd1d0; background: transparent; color: #354044; cursor: pointer; text-align: left; font: 600 clamp(.85rem, 1.15vw, 1.05rem)/1.35 'Montserrat', sans-serif; }
.alb-layout__tabs button:last-child { border-right: 0; }
.alb-layout__icon { display: block; width: 24px; height: 24px; flex: none; fill: currentColor; color: #647074; }
.alb-layout__tabs button[aria-selected="true"] { background: #252d31; color: #fff; }
.alb-layout__tabs button[aria-selected="true"] .alb-layout__icon { color: #adb5ff; }
.alb-layout__tabs button:hover:not([aria-selected="true"]) { background: #e5e9e7; }
.alb-layout__tabs button:focus-visible, .alb-layout a:focus-visible { outline: 3px solid #3a41e4; outline-offset: -3px; }
.alb-layout__stage { padding: clamp(1rem, 2.5vw, 2rem); }
.alb-layout__panel[hidden] { display: none; }
.alb-layout__canvas { overflow-x: auto; background: #fff; scrollbar-color: #8e999e #e6e9e7; }
.alb-layout__canvas a { display: block; width: max(100%, 1050px); }
.alb-layout__canvas img { display: block; width: 100%; height: auto; }
.alb-layout__caption { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .6rem 1.5rem; align-items: baseline; margin-top: 1rem; }
.alb-layout__caption p { margin: 0; color: #354044; font: 500 .95rem/1.5 'Montserrat', sans-serif; }
.alb-layout__caption a, .alb-layout__source a { color: #3a41e4; font: 700 .88rem/1.5 'Montserrat', sans-serif; text-decoration: underline; text-underline-offset: .2em; }
.alb-layout__source a.alb-attribution-link { color: inherit; font: inherit; }
.alb-layout__source { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .7rem 1.5rem; padding: 1rem clamp(1rem, 2.5vw, 2rem); border-top: 1px solid #ccd1d0; color: #5a6367; font: 400 .78rem/1.5 'Montserrat', sans-serif; }

@media (max-width: 900px) {
  .alb-process-list { grid-template-columns: 1fr; }
  .alb-process-list li, .alb-process-list li:first-child, .alb-process-list li:last-child { padding: 1.5rem 0; border-right: 0; border-bottom: 1px solid #a9b7b5; }
  .alb-process-list li:last-child { border-bottom: 0; }
  .alb-process-list h3 { max-width: none; margin-top: 1.25rem; }
  .alb-process-list p { max-width: 700px; }
  .alb-process-list a { padding-top: 1.25rem; }
  .alb-interactive .alb-ascent { grid-template-columns: minmax(0, 3fr) minmax(0, 4fr); gap: clamp(1.25rem, 3vw, 2rem); }
  .alb-interactive .alb-ascent__sticky { top: 96px; }
  .alb-ascent__visual { height: min(68vh, 620px); min-height: 430px; }
  .alb-ascent__visual img { object-position: 25% center; }
  .alb-ascent__rail { left: 45%; }
  .alb-ascent__step { min-height: 58vh; padding-block: 2.3rem; }
  .alb-ascent__panorama img { aspect-ratio: 16 / 9; object-position: left center; }
  .alb-topic-map__intro { grid-template-columns: 1fr; gap: 1rem; }
  .alb-topic-map__diagram { height: auto; grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: none; }
  .alb-topic-map__diagram > svg { display: none; }
  .alb-topic-map__hub { grid-column: 1 / -1; grid-row: auto; margin-block: 1rem; }
  .alb-topic-map__node { grid-column: auto; grid-row: auto; min-height: 128px; }
  .alb-topic-path__heading { grid-template-columns: 1fr; gap: .75rem; }
  .alb-forum-transition { grid-template-columns: 1fr; min-height: 0; }
  .alb-forum-transition figure { aspect-ratio: 16 / 9; }
  .alb-forum-transition img { min-height: 0; }
  .alb-forum-transition__route { flex-direction: row; gap: 2rem; margin-bottom: 2.5rem; padding: 1rem 0 0; border-top: 1px solid #758780; border-left: 0; }
  .alb-forum-transition__route span::before { top: calc(-1rem - 5px); left: 0; }
  .alb-forum-transition__route span:last-child::before { left: 0; }
  .alb-plan-story__intro, .alb-layout__heading { grid-template-columns: 1fr; gap: 1rem; }
}

@media (max-width: 600px) {
  .alb-topic-map__diagram { grid-template-columns: 1fr; }
  .alb-topic-map { border-radius: 18px; }
  .alb-topic-map__hub { width: 100%; aspect-ratio: auto; border-radius: 16px; box-shadow: 0 12px 28px rgba(7, 16, 24, .14); }
  .alb-topic-map__hub span { padding: 1.4rem; }
  .alb-topic-map__node { min-height: 100px; }
  .alb-topic-path__steps { grid-template-columns: 1fr; gap: 1.7rem; }
  .alb-topic-path__steps span { margin-bottom: .65rem; }
  .alb-topic-path__steps p { max-width: none; }
  .alb-forum-transition figure { aspect-ratio: 4 / 3; }
  .alb-forum-transition__copy { padding: 2rem 1.5rem 2.5rem; }
  .alb-forum-transition__route { flex-direction: column; gap: 1.2rem; margin-bottom: 2.25rem; padding: 0 0 0 1.2rem; border-top: 0; border-left: 1px solid #758780; }
  .alb-forum-transition__route span::before { top: .25em; left: calc(-1.2rem - 4px); }
  .alb-forum-transition__route span:last-child::before { left: calc(-1.2rem - 5px); }
  .alb-plan-story__images { grid-template-columns: 1fr; }
  .alb-construction__grid { grid-template-columns: 1fr; }
  .alb-construction__details { grid-template-columns: 1fr; }
  .alb-construction__details img { height: auto; max-height: 460px; }
  .alb-layout__tabs button { flex-direction: column; align-items: flex-start; gap: .3rem; min-height: 78px; padding: .75rem; }
  .alb-visual-switch img { aspect-ratio: 4 / 3; }
  .alb-interactive .alb-ascent { display: block; }
  .alb-interactive .alb-ascent__sticky { position: sticky; top: 96px; z-index: 4; padding-bottom: .5rem; background: #f1f0ec; }
  .alb-ascent__visual { height: clamp(180px, 26vh, 220px); min-height: 0; }
  .alb-ascent__visual img { object-position: 25% center; }
  .alb-ascent__rail { left: 32%; }
  .alb-ascent__sticky figcaption { gap: .75rem; font-size: .75rem; }
  .alb-ascent__steps { margin-top: 1rem; }
  .alb-ascent__step { min-height: max(340px, 45vh); padding-block: 2rem; }
  .alb-ascent__step h3 { font-size: clamp(1.7rem, 7vw, 2.2rem); }
  .alb-ascent__panorama img { aspect-ratio: 4 / 3; }
}

@media (max-width: 900px) and (max-height: 520px) {
  .alb-interactive .alb-ascent { display: block; }
  .alb-interactive .alb-ascent__sticky { position: static; padding-bottom: 0; }
  .alb-ascent__visual { height: auto; min-height: 0; aspect-ratio: 2400 / 1332; }
  .alb-ascent__visual img { object-position: center; }
  .alb-ascent__rail { display: none; }
  .alb-ascent__sticky figcaption { display: none; }
  .alb-ascent__steps { margin-top: 1rem; }
  .alb-ascent__step, .alb-interactive .alb-ascent__step { min-height: 0; opacity: 1; }
}

@media (max-width: 600px) and (max-height: 640px) {
  .alb-interactive .alb-ascent__sticky { position: static; padding-bottom: 0; }
  .alb-ascent__visual { height: auto; aspect-ratio: 2400 / 1332; }
  .alb-ascent__visual img { object-position: center; }
  .alb-ascent__rail { display: none; }
  .alb-ascent__sticky figcaption { display: none; }
  .alb-ascent__step, .alb-interactive .alb-ascent__step { min-height: 0; opacity: 1; }
}

@media (prefers-reduced-motion: reduce) {
  .alb-ascent__step, .alb-ascent__step::before, .alb-ascent__marker, .alb-reveal { transition: none !important; }
}
