/* LN: illuminated contours, a champagne sweep, then a soft light reveal. */
html.ln-loading, html.ln-loading body { overflow: hidden; }
html.ln-loading { scrollbar-gutter: stable; background: #200c17; }
html.ln-loading .ln-preloader { display: grid !important; }
.ln-preloader { --ln-progress: 0; position: fixed; inset: 0; z-index: 100000; isolation: isolate; place-items: center; overflow: hidden; color: #f1d5d4; font-family: Inter, Arial, sans-serif; overscroll-behavior: none; }
.ln-loader-backdrop, .ln-loader-light { position: absolute; inset: 0; z-index: -2; }
.ln-loader-backdrop { background: radial-gradient(ellipse at 50% 43%, #4b2033 0%, #321222 45%, #200c17 100%); }
.ln-loader-light { background: #f6ece5; opacity: 0; z-index: -1; }
.ln-loader-art { display: flex; flex-direction: column; align-items: center; width: min(82vw, 380px); }
.ln-loader-signature { position: relative; width: clamp(178px, 23vw, 236px); }
.ln-loader-signature::before { content: ''; position: absolute; top: 40%; left: -65%; width: 230%; height: 1px; background: linear-gradient(90deg, transparent, #d799ac00 15%, #f7d8c940 50%, #d799ac00 85%, transparent); animation: ln-ray 3200ms cubic-bezier(.45,0,.2,1) infinite; pointer-events: none; }
.ln-loader-logo { display: block; width: 100%; height: auto; overflow: visible; }
.ln-loader-aura { position: absolute; inset: 10% -45%; background: radial-gradient(ellipse, #d587a01a, transparent 67%); opacity: .5; animation: ln-aura 4s ease-in-out infinite alternate; pointer-events: none; }
.ln-loader-outline { stroke-dasharray: 1; stroke-dashoffset: 0; animation: ln-engrave 1800ms cubic-bezier(.22,.61,.36,1) both; }
.ln-loader-fill { clip-path: inset(0 calc((1 - var(--ln-progress)) * 100%) 0 0); transition: clip-path 550ms cubic-bezier(.22,.61,.36,1); }
.ln-loader-shine { animation: ln-sweep 3200ms cubic-bezier(.45,0,.2,1) infinite; }
.ln-loader-rose { opacity: 0; }
.ln-loader-motto { margin: 30px 0 0; color: #edd2ce; font: italic 22px/1.35 'Cormorant Garamond', Georgia, serif; letter-spacing: .015em; animation: ln-arrive 1000ms cubic-bezier(.22,.61,.36,1) 180ms both; }
.ln-loader-progress { width: 96px; height: 1px; margin: 29px 0 14px; background: #ecc4cf26; }
.ln-loader-progress span { display: block; height: 100%; background: #e9bfc8; transform: scaleX(var(--ln-progress)); transform-origin: left; transition: transform 400ms cubic-bezier(.22,.61,.36,1); }
.ln-loader-status { margin: 0; color: #d2abb9; font-size: 10px; font-weight: 400; line-height: 1.6; letter-spacing: .075em; text-align: center; }
.ln-loader-actions { position: absolute; top: calc(50% + 240px); display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; max-width: 90vw; }
.ln-loader-actions button { padding: 10px 16px; border: 1px solid #e3a6b54d; border-radius: 999px; background: transparent; color: #f5d9de; font: 11px/1.4 Inter, Arial, sans-serif; cursor: pointer; }
.ln-loader-actions button:focus-visible { outline: 2px solid #f5d9de; outline-offset: 4px; }
.ln-loader-footnote { position: absolute; bottom: max(30px, env(safe-area-inset-bottom)); left: 0; right: 0; color: #c49aa980; text-align: center; font-size: 8px; letter-spacing: .34em; }
.ln-preloader.is-revealing .ln-loader-fill { clip-path: inset(0); transition-duration: 200ms; }
.ln-preloader.is-revealing .ln-loader-outline { animation: none; }
.ln-preloader.is-revealing .ln-loader-shine, .ln-preloader.is-revealing .ln-loader-aura { animation-play-state: paused; }
.ln-preloader.is-revealing .ln-loader-signature::before { display: none; }
@keyframes ln-engrave { from { stroke-dashoffset: 1; opacity: .15; } to { stroke-dashoffset: 0; opacity: 1; } }
@keyframes ln-sweep { 0% { transform: translateX(0); opacity: 0; } 12% { opacity: 1; } 68%, 100% { transform: translateX(2500px); opacity: 0; } }
@keyframes ln-aura { to { opacity: 1; transform: scale(1.12); } }
@keyframes ln-ray { 0%, 12%, 75%, 100% { opacity: 0; transform: scaleX(.3); } 35% { opacity: .6; transform: scaleX(.8); } 52% { opacity: .25; transform: scaleX(1); } }
@keyframes ln-arrive { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: translateY(0); } }
@media (max-width: 480px) {
  .ln-loader-signature { width: 184px; }
  .ln-loader-motto { margin-top: 26px; font-size: 21px; }
  .ln-loader-actions { top: calc(50% + 210px); }
}
@media (max-height: 560px) {
  .ln-loader-signature { width: 130px; }
  .ln-loader-motto { margin-top: 12px; font-size: 19px; }
  .ln-loader-progress { margin-top: 16px; margin-bottom: 8px; }
  .ln-loader-actions { top: auto; bottom: 28px; }
  .ln-loader-footnote { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  .ln-loader-outline, .ln-loader-shine, .ln-loader-aura, .ln-loader-motto { animation: none; }
  .ln-loader-shine, .ln-loader-signature::before { display: none; }
  .ln-loader-fill, .ln-loader-progress span { transition: none; }
}
