/* Real-time 3D scene. The reference photograph is never part of the rendered site. */
.hero{width:100%;max-width:none;margin:0;height:100svh;min-height:680px;padding:0;background:#a38a7c}
.hero>.room,.hero>.scroll-hint{display:none!important}
.hero:before,.hero:after{display:none!important}
#webglStudio{position:absolute;inset:0;isolation:isolate}
#webglStudio canvas{display:block;width:100%;height:100%;outline:none}
#studioLoading{position:absolute;inset:0;z-index:5;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;background:#e6dfdc;color:#291d25;font-size:12px}
#studioLoading[hidden]{display:none}
#studioLoading b{font-size:21px;font-weight:500;letter-spacing:-.04em}
.loading-orbit{width:45px;height:45px;border:1px solid #b6102925;border-top:2px solid #b61029;border-radius:50%;animation:spin 1s linear infinite}
#studioTooltip{position:absolute;z-index:10;pointer-events:none;max-width:245px;background:#1e1623e8;backdrop-filter:blur(12px);color:#fff;padding:10px 15px;border-radius:20px;font-size:11px;border:1px solid #fff3;box-shadow:0 5px 15px #0002}
.studio-caption{display:none;position:absolute;left:3.4%;top:112px;pointer-events:none;z-index:2;color:#fff4eb;text-shadow:0 1px 25px #34202b77;max-width:250px}
.studio-caption>span{font-size:8px;letter-spacing:.2em}
.studio-caption p{font-size:clamp(22px,2.2vw,33px);line-height:1.05;letter-spacing:-.04em;margin:12px 0}
.studio-caption em{font-family:Georgia,serif;font-weight:400;color:#fff7f2}
.studio-controls{position:absolute;bottom:77px;left:50%;transform:translateX(-50%);z-index:20;display:flex;align-items:center;gap:4px;padding:6px;border-radius:35px;background:#211a22d9;backdrop-filter:blur(24px);border:1px solid #fff5;box-shadow:0 10px 30px #120e1b40}
.studio-controls button,.studio-shortcuts button{border:0;background:transparent;color:#fff;font-family:inherit;font-size:11px;white-space:nowrap;cursor:pointer;border-radius:22px;padding:11px 13px;transition:background .2s}
.studio-controls button:hover{background:#fff2}.studio-controls .studio-primary{background:#b80925;font-weight:600;padding-inline:20px}
.studio-controls button:focus-visible,.studio-shortcuts button:focus-visible{outline:2px solid #fff;outline-offset:2px}
.studio-controls #cameraLeft,.studio-controls #cameraRight{font-size:20px;padding:6px 10px}
.studio-hint{position:absolute;left:50%;bottom:49px;transform:translateX(-50%);font-size:10px;letter-spacing:.025em;white-space:nowrap;z-index:3;color:#fffc;text-shadow:0 1px 4px #000}
.studio-shortcuts{position:absolute;bottom:6px;left:50%;transform:translateX(-50%);z-index:3;display:flex;gap:3px}
.studio-shortcuts button{font-size:10px;padding:8px 12px;background:#251a25a8;border:1px solid #fff2}
.studio-shortcuts button:hover{background:#b20b29}
body .hero>.service-window{position:absolute;z-index:40;left:50%;right:auto;top:50%;bottom:auto;width:min(690px,88vw);height:330px;transform:translate(-50%,-46%) scale(.96);background:linear-gradient(130deg,#fffaf7f7,#e5dce4f7);backdrop-filter:blur(28px);color:#231a26;border:1px solid #fff9;box-shadow:0 30px 100px #190d2077;overflow:hidden}
body .hero>.service-window.open{transform:translate(-50%,-50%) scale(1)}
body .hero>.service-window .win-head{height:45px;background:#fff5;border-color:#2a13201a}
body .hero>.service-window .win-title{font-size:11px;color:#513843}
body .hero>.service-window .win-close{background:#b909251c;color:#7e1230;width:30px;height:30px;font-size:20px}
body .hero>.service-window .win-body{height:calc(100% - 45px)}
body .hero>.service-window .win-copy h3{font-size:35px;line-height:1.02}
body .hero>.service-window .win-copy p{font-size:12px;color:#62545d}
body .hero>.service-window .eyebrow{color:#b71032;font-size:9px}
body .hero>.service-window .win-tags span{background:#fff8;color:#513843;font-size:9px}
body .hero>.service-window .win-visual{border-color:#2a13201a}
body.focus-mode .studio-caption{opacity:0}
body.focus-mode .focus-exit{z-index:50;top:100px;right:30px;background:#241b25e8;padding:12px 18px;font-size:11px}
@media(max-width:1000px){.studio-caption{display:none}.studio-controls #lightToggle{display:none}.studio-controls{gap:0}.studio-shortcuts button{padding:8px}}
@media(max-width:759px){.hero{min-height:650px;height:90svh}.topbar .brand{max-width:160px}.topbar .nav a:not(.pill){display:none}.topbar .nav #focusNav{display:none}.studio-controls{bottom:99px;max-width:95%;padding:5px}.studio-controls button{font-size:10px;padding:10px}.studio-controls #motionToggle{display:none}.studio-hint{bottom:77px;font-size:9px}.studio-hint:after{content:' · Use ↶ ↷ to orbit'}.studio-shortcuts{bottom:17px;width:96%;justify-content:center;flex-wrap:wrap;gap:4px}.studio-shortcuts button{font-size:9px;padding:8px 11px}body .hero>.service-window{width:92%;height:360px}body .hero>.service-window .win-body{grid-template-columns:.55fr 1.45fr}body .hero>.service-window .win-copy h3{font-size:28px}body .hero>.service-window .win-copy p{font-size:12px}body .hero>.service-window .win-copy{padding:6%}body .hero>.service-window .win-cube{width:52px}.studio-controls .studio-primary{padding-inline:14px}}
@media(prefers-reduced-motion:reduce){.loading-orbit{animation:none}body .hero>.service-window{transition:none}}
