/* DON Roofing intro loader (November 5, 2026). Only shown while html.dr-loading is set,
   which happens on the first page view of a visit. */
#dr-loader{display:none}
.dr-loading #dr-loader{display:flex;position:fixed;inset:0;z-index:100000;align-items:center;justify-content:center;background:#050505;transition:opacity .55s cubic-bezier(.16,1,.3,1),visibility .55s}
.dr-loading body{overflow:hidden}
#dr-loader .lg{position:relative;width:min(340px,66vw);aspect-ratio:640/265;background:linear-gradient(135deg,#8c6a20 0%,#c99c3e 18%,#f3dc95 38%,#d6ad52 52%,#a9802c 72%,#e6c675 90%,#b48a32 100%);-webkit-mask:url(assets/don-logo-loader.png) center/contain no-repeat;mask:url(assets/don-logo-loader.png) center/contain no-repeat;opacity:0;transform:scale(.9);filter:blur(10px);animation:dr-ld-in .9s cubic-bezier(.16,1,.3,1) .1s forwards}
/* Light sweep: clipped to the lettering by the parent's mask. */
#dr-loader .lg::after{content:"";position:absolute;inset:0;background:linear-gradient(105deg,rgba(255,255,255,0) 35%,rgba(255,247,220,.95) 50%,rgba(255,255,255,0) 65%) 120% 0/260% 100% no-repeat;animation:dr-ld-sheen 1.1s cubic-bezier(.45,0,.2,1) .75s forwards}
/* Thin gold line that fills while the page loads. */
#dr-loader .bar{position:absolute;left:50%;top:calc(50% + min(104px,24vw));width:min(180px,40vw);height:2px;transform:translateX(-50%);background:rgba(203,162,67,.18);overflow:hidden;opacity:0;animation:dr-ld-fade .5s ease .4s forwards}
#dr-loader .bar::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#b8902f,#f3dc95,#cfa64a);transform:scaleX(0);transform-origin:left;animation:dr-ld-bar 1.3s cubic-bezier(.65,0,.35,1) .45s forwards}
@keyframes dr-ld-in{to{opacity:1;transform:none;filter:none}}
@keyframes dr-ld-sheen{to{background-position:-30% 0}}
@keyframes dr-ld-fade{to{opacity:1}}
@keyframes dr-ld-bar{to{transform:scaleX(1)}}
/* Out: the logo lifts and fades, then the black curtain clears. */
.dr-loaded #dr-loader{opacity:0;visibility:hidden;transition-delay:.25s}
.dr-loaded #dr-loader .lg{animation:none;opacity:0;transform:scale(1.08);filter:blur(6px);transition:opacity .45s ease,transform .6s cubic-bezier(.16,1,.3,1),filter .45s ease}
.dr-loaded #dr-loader .bar{opacity:0;transition:opacity .25s}
@media (prefers-reduced-motion:reduce){
  #dr-loader .lg{transform:none;filter:none;animation:dr-ld-fade .4s ease forwards}
  #dr-loader .lg::after,#dr-loader .bar{display:none}
  .dr-loaded #dr-loader .lg{transform:none;filter:none}
}
