/* Quiet studio chrome: warm paper, hairlines, and generous negative space. */
:root{--paper:#ece6db;--muted:#c2bcb1;--line:#ece6db26;font-family:"Helvetica Neue","PingFang SC","Hiragino Sans GB",sans-serif;color:var(--paper)}
.masthead{padding:34px 42px}.identity{font-size:23px;font-weight:400;letter-spacing:-.045em}.identity span{font-size:8px;letter-spacing:.2em;color:var(--muted);margin-top:9px}.masthead nav{gap:28px}.masthead nav a,.masthead nav button{font-size:12px;min-height:32px;color:#ddd7cd;transition:color .2s}.masthead nav a:hover,.masthead nav button:hover{color:#fff}#language{border:0;padding-left:12px;font-size:10px;color:var(--muted)}
.welcome{left:42px;bottom:35px;max-width:360px}.welcome p{font-size:12px;font-weight:400;line-height:1.6;letter-spacing:.025em;margin:0}.welcome #scene-status:empty{display:none}.welcome #scene-status{max-width:250px;margin-top:8px}.fallback-link{display:none}body[data-scene-state=failure] .fallback-link{display:inline-block}.scene-shade{background:linear-gradient(#0003,transparent 18%,transparent 78%,#0005)}
#studio .studio-mode{position:absolute;bottom:27px;gap:2px;padding:3px;background:#17171466;border:1px solid #ece6db24;border-radius:4px;box-shadow:none;backdrop-filter:blur(16px);font-family:inherit}
#studio .studio-mode a{min-width:100px;min-height:38px;padding:14px 17px 12px;border-radius:2px;font-size:12px;letter-spacing:.12em;color:#c0bbb3;transition:color .2s,background .2s}
#studio .studio-mode a[aria-current=page]{background:#ece6db12;color:#fff}#studio .studio-mode a[aria-current=page]::before{content:'';display:inline-block;width:3px;height:3px;border-radius:50%;background:#e4d1ac;vertical-align:middle;margin-right:8px}#studio .studio-mode a:hover{color:white;background:#ece6db0c}
.view-controls{bottom:29px;right:42px;gap:18px;height:42px;color:var(--muted);font-size:10px;letter-spacing:.04em}#view-hint{transition:opacity .4s}body[data-explored=true] #view-hint{opacity:0;pointer-events:none}.view-controls button{width:40px;height:40px;padding:11px;background:none;border:1px solid transparent;border-radius:50%;transition:border-color .2s,background .2s}.view-controls button:hover{border-color:var(--line);background:#ece6db0b}.view-controls button[hidden]{display:none}.view-controls svg{display:block;width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.25;stroke-linecap:round;stroke-linejoin:round}
.hotspots button::before{inset:18px;border:1px solid #e8e1d699;background:#e8e1d633;box-shadow:none;transition:background .2s,transform .2s,box-shadow .2s}.hotspots button:hover::before,.hotspots button:focus-visible::before{background:var(--paper);transform:scale(.75);box-shadow:0 0 0 7px #ece6db15}.hotspots button span{top:39px;background:#171714c9;border:1px solid #ece6db12;border-radius:2px;padding:6px 10px;letter-spacing:.03em;font-size:10px;backdrop-filter:blur(12px);opacity:0;transition:opacity .2s,translate .2s;translate:0 3px}.hotspots button:hover span,.hotspots button:focus-visible span{opacity:1;translate:0 0}
.scene-loader{position:absolute;z-index:8;width:180px;left:42px;bottom:89px;color:var(--muted);pointer-events:none;transition:opacity .45s .4s,translate .45s .4s;--progress:0}.loader-caption{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:11px;font-size:9px;letter-spacing:.1em}.loader-number{font-variant-numeric:tabular-nums;font-size:10px;letter-spacing:.02em}.loader-track{height:1px;background:#ece6db24;overflow:hidden}.loader-track i{display:block;width:100%;height:100%;background:#e4d1ac;transform:scaleX(var(--progress));transform-origin:left;transition:transform .45s cubic-bezier(.2,.7,.2,1)}body[data-load-state=complete] .scene-loader,body[data-load-state=failure] .scene-loader{opacity:0;translate:0 -4px;visibility:hidden;transition:opacity .45s .4s,translate .45s .4s,visibility 0s .85s}
body[data-scene-state=loading] .loading-links{display:none}body[data-scene-state=failure] .loading-links{display:flex}.hotspots{transition:opacity .7s}body:not([data-scene-state=ready]) .hotspots{opacity:0;visibility:hidden}
dialog{border:1px solid var(--line);border-radius:3px;background:#191a18f5;box-shadow:0 30px 100px #0005;padding:30px 34px 36px;animation:panel-reveal .3s cubic-bezier(.2,.7,.2,1)}dialog::backdrop{background:#080a0929;backdrop-filter:blur(3px)}@keyframes panel-reveal{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.panel-top{margin-bottom:30px}.eyebrow{color:#a9a398;font-size:9px;letter-spacing:.18em}#panel-close{border-color:transparent;background:none;font-weight:200;color:#c9c4bb;transition:color .2s,background .2s}#panel-close:hover{color:white;background:#ffffff08}.panel-classic{color:var(--muted);font-size:10px}dialog h1{font-size:29px;letter-spacing:-.035em}dialog p{font-size:13px;line-height:1.85;color:#bdb8af}.panel-link{padding:10px 0 7px;margin:4px 23px 12px 0;border:0;border-bottom:1px solid #ece6db35;border-radius:0;background:none;color:var(--paper);font-size:12px;min-height:40px;transition:color .2s,border-color .2s}.panel-link:hover{background:none;transform:none;border-color:var(--paper);color:white}.panel-link::after{color:var(--muted)}.contact-actions{margin-top:24px;padding-top:14px}.contact-actions .panel-link{padding:8px 0;margin:0 22px 8px 0;font-size:11px;color:var(--muted)}.small-button{border:1px solid var(--line);border-radius:2px;background:none;min-height:36px;padding:9px 13px}.small-button:hover{background:#ece6db0a}.object-navigation{gap:6px}.project-list a{font-size:14px;padding:17px 0;transition:padding .2s,color .2s}.project-list a:hover{padding-left:5px;color:#fff}.project-list a::after{color:var(--muted)}dialog .cover{border-radius:2px}dialog .portrait{border-radius:2px}.loading-links a{color:#c4beb4;font-size:10px;border:0;min-height:36px}
@media(max-width:700px){.masthead{padding:23px 22px}.identity{font-size:20px}.identity span{font-size:7px;letter-spacing:.12em}.masthead nav{gap:13px}.masthead nav a,.masthead nav button{font-size:10px}#language{padding-left:0;font-size:9px}.welcome,body[data-scene-state=ready] .welcome{left:22px;bottom:132px;max-width:calc(100% - 44px)}.welcome p{font-size:11px;letter-spacing:.015em}#studio .studio-mode{bottom:max(22px,env(safe-area-inset-bottom))}#studio .studio-mode a{min-width:92px;min-height:40px;padding:15px 15px 12px;font-size:11px}.scene-loader{left:22px;bottom:177px;width:150px}.view-controls{right:20px;bottom:119px;height:40px}.view-controls span{display:none}body[data-scene-state=ready] .loading-links{left:22px;right:22px;bottom:87px;gap:24px}.loading-links a{font-size:10px}.hotspots button span{opacity:0}.hotspots button:focus-visible span{opacity:1}dialog,dialog[data-collection]{padding:24px;width:calc(100vw - 24px);max-height:calc(100svh - 48px);margin:auto}dialog h1{font-size:26px}.panel-top{margin-bottom:24px}.contact-actions .panel-link{font-size:11px}}
@media(prefers-reduced-motion:reduce){.scene-loader,.loader-track i,.hotspots,.view-controls *,dialog{transition:none!important;animation:none!important}}
/* Reveal the assembled room once; avoid an empty chair flashing before the avatar. */
body[data-load-state=loading] #scene-poster{opacity:1}
body[data-load-state=loading] #scene-root canvas{opacity:0;pointer-events:none}
body[data-load-state=loading] .hotspots,body[data-load-state=loading] .view-controls{opacity:0;visibility:hidden}
.loader-number::after{content:'%';margin-left:2px;font-size:8px;opacity:.65}

/* Keep object markers continuous as the camera moves across their visibility edge. */
.hotspots button[data-visible]{transition:opacity .26s ease}
.hotspots button[data-visible=false]{opacity:0;pointer-events:none}
@media(min-width:701px){
 body[data-view-moving=true] .hotspots button[data-visible=true] span{opacity:.72;translate:0 0}
 body[data-view-moving=true] #view-hint{opacity:1}
}
