#process .process-intro{margin-bottom:35px}#process .process-scroll{position:relative;height:520svh;min-height:2400px}#process .process-sticky{position:sticky;top:84px;height:calc(100svh - 96px);max-height:920px;display:flex;flex-direction:column;justify-content:center;gap:16px}#process .process-scene{position:relative;flex:1;min-height:0;display:flex;align-items:center;justify-content:center;overflow:hidden;border-radius:14px;background:#f1eee6}#process .process-frame{position:relative;width:100%;max-width:calc((100svh - 210px)*1.333333);aspect-ratio:4/3;overflow:hidden}#process .process-frame canvas,#process .process-frame img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}#process .process-frame canvas{display:block}#process .process-photo{opacity:0;pointer-events:none}#process .process-static{opacity:1;pointer-events:none}#process .process-status{position:absolute;left:20px;bottom:18px;font:400 13px/1.5 Arial,sans-serif;color:#6b665e;background:rgba(244,241,234,.85);padding:6px 10px;border-radius:4px;max-width:calc(100% - 40px)}#process .process-status:empty{display:none}#process .process-stages{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;padding-bottom:16px}#process .process-stage{position:relative;border:0;border-top:1px solid #c9c3b8;background:none;text-align:left;padding:13px 0 0;min-height:55px;color:#8a857c;font:400 22px Georgia,serif;cursor:pointer}#process .process-stage[aria-current=true]{color:#181714}#process .process-stage:before{content:'';position:absolute;top:-1px;left:0;width:var(--fill,0%);height:2px;background:#555b49}#process .process-guide{display:flex;justify-content:space-between;gap:20px;font:400 13px/1.5 Arial,sans-serif;color:#706b62;margin:0}#process .process-skip{font:inherit;text-decoration:underline;text-underline-offset:4px}#process .process-stage:focus-visible,#process .process-skip:focus-visible{outline:2px solid #9f7354;outline-offset:4px}#process .process-legacy{display:none}#process .process-scroll.reduced{height:200svh;min-height:1200px}#process .process-scroll[data-mode=fallback] .process-static{opacity:1}#process .process-scroll[data-mode=fallback] canvas{visibility:hidden}
@media(max-width:1100px){#process .process-sticky{top:88px;height:calc(100svh - 105px)}#process .process-stage{font-size:20px}}
@media(max-width:650px){#process .process-scroll{height:360svh;min-height:1800px}#process .process-sticky{top:82px;height:calc(100svh - 105px);max-height:620px;gap:14px}#process .process-frame{max-width:none;width:100%}#process .process-scene{flex:0 0 auto;aspect-ratio:4/3;border-radius:10px}#process .process-stages{gap:12px;padding-bottom:0}#process .process-stage{font-size:16px;line-height:1.25;min-height:58px;padding-top:12px}#process .process-guide{font-size:13px;gap:16px}#process .process-status{font-size:12px;left:8px;bottom:8px;max-width:calc(100% - 16px);padding:4px 7px}#process .process-scroll.reduced{min-height:1000px;height:220svh}}
@media(prefers-reduced-motion:reduce){#process .process-stage{transition:none}#process .process-scroll{height:220svh;min-height:1000px}}

#process .process-scroll[data-mode=webgl] .process-static{opacity:0}

#process .process-stage{display:flex;align-items:flex-start}

/* Fit the full 4:3 frame inside the actual available scene height, also on short desktops. */
#process .process-scroll{height:calc(100svh + 1500px);min-height:0}
#process .process-sticky{top:84px;height:calc(100svh - 108px);max-height:none;display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr) auto auto;gap:14px}
#process .process-scene{width:100%;height:100%;min-height:0;aspect-ratio:auto}
#process .process-frame{flex:none;max-width:100%;max-height:100%;aspect-ratio:4/3}
#process .process-installation{opacity:0;pointer-events:none}
#process .process-scroll.reduced{height:calc(100svh + 1050px);min-height:0}
@media(max-width:650px){#process .process-scroll{height:calc(100svh + 1200px);min-height:0}#process .process-sticky{top:82px;height:calc(100svh - 106px);max-height:620px}#process .process-scroll.reduced{height:calc(100svh + 900px);min-height:0}}