.site-loader { position:fixed; inset:0; z-index:10000; background:#f5f2ec; color:#28231e; display:grid; place-items:center; opacity:0; visibility:hidden; pointer-events:none; transition:opacity .45s ease,visibility .45s; }
.loading-hero .site-loader { opacity:1; visibility:visible; pointer-events:auto; }
.loader-identity { display:flex; flex-direction:column; align-items:center; padding:24px; text-align:center; }
.loader-frame { width:58px; height:58px; display:grid; place-items:center; border:1px solid #d4b9a5; border-radius:15px; font:italic 34px 'Playfair Display',serif; background:linear-gradient(135deg,#fff9f0,#ebdac8); box-shadow:inset 0 1px 0 #fff,0 12px 40px #b9936b12; }
.loader-wordmark { font:italic 30px 'Playfair Display',serif; margin-top:22px; }
.loader-identity p { color:#82786d; font-size:12px; line-height:1.6; margin:16px 0 26px; }
.loader-line { width:144px; height:2px; background:#e5ded5; overflow:hidden; }
.loader-line::after { content:''; display:block; width:50%; height:100%; background:#b95e39; animation:loader-sweep 1.3s ease-in-out infinite; }
.loader-skip { position:absolute; bottom:max(28px,env(safe-area-inset-bottom)); background:none; border:1px solid #d6c9bb; padding:11px 16px; border-radius:24px; font-size:11px; color:#716457; cursor:pointer; }
.loader-skip:hover { background:#ece4d9; }
#hero-sequence[data-sequence="architectural"] { background:#716052 url('./assets/hero-architectural/desktop/frame-000.jpg') center/cover no-repeat; filter:none; }
.hero:has([data-sequence="architectural"]) .hero-shade { background:linear-gradient(180deg,#231b1733,#231b175e 45%,#231b171a); }
@media(max-width:699px) and (orientation:portrait) { #hero-sequence[data-sequence="architectural"] { background-image:url('./assets/hero-architectural/mobile/frame-000.jpg'); } }
.loader-skip:focus-visible { outline:2px solid #aa5437; outline-offset:4px; }
.loader-skip span { margin-left:12px; }
@keyframes loader-sweep { from { transform:translateX(-110%); } to { transform:translateX(310%); } }
.cursor-trail { display:none; position:fixed; left:0; top:0; width:18px; height:18px; border:1px solid #fff; background:#fff2; border-radius:50%; z-index:9999; pointer-events:none; opacity:0; mix-blend-mode:difference; transform:translate3d(-100px,-100px,0); transition:opacity .12s,width .16s,height .16s,margin .16s,background .16s; }
.cursor-trail::after { content:''; position:absolute; left:50%; top:50%; width:3px; height:3px; border-radius:50%; background:#fff; transform:translate(-50%,-50%); transition:transform .16s; }
.cursor-trail.is-action { width:30px; height:30px; margin:-6px 0 0 -6px; background:#fff4; }
.cursor-trail.is-action::after { transform:translate(-50%,-50%) scale(1.5); }
.cursor-trail.is-down { width:12px; height:12px; margin:3px 0 0 3px; background:#fff8; }
@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference) {
  html.custom-cursor,html.custom-cursor * { cursor:none!important; }
  .cursor-trail { display:block; }
  .cursor-trail.is-visible { opacity:1; }
}
@media(prefers-reduced-motion:reduce) { .site-loader { transition:none; } .loader-line::after { animation:none; width:100%; } }
