/* First-paint torch optic: no extra media or graphics context during loading. */
html[data-site-view="read"] #journey-preloader { display: none !important; }
html[data-site-view="journey"][data-journey-loading] body > :not(#journey-preloader):not(script):not(style) { visibility: hidden; }
html[data-site-view="journey"] #journey-preloader {
  --load-gold: #e7c28b;
  position: fixed; inset: 0; z-index: 2000; display: grid; place-items: center;
  box-sizing: border-box; padding: 24px; overflow: hidden; isolation: isolate;
  background: transparent; color: #f3e9d8; text-align: center;
  font: 400 14px/1.5 Onest, JourneyOnest, Arial, sans-serif;
  transition: opacity 240ms 440ms ease, visibility 680ms;
}
#journey-preloader[hidden] { display: none !important; }
#journey-preloader .journey-load-shutters { position: absolute; inset: 0; z-index: -2; pointer-events: none; }
#journey-preloader .journey-load-shutters span { position: absolute; top: 0; bottom: 0; width: calc(50% + 1px); background: #070c11; transition: transform 680ms cubic-bezier(.65, 0, .2, 1); }
#journey-preloader .journey-load-shutters span:first-child { left: 0; }
#journey-preloader .journey-load-shutters span:last-child { right: 0; }
#journey-preloader .journey-load-atmosphere { position: absolute; inset: 0; z-index: -1; overflow: hidden; pointer-events: none; background: radial-gradient(ellipse at 50% 47%, #aa7b4226, #151c2414 38%, transparent 66%); transition: opacity 320ms ease; }
#journey-preloader .journey-load-light {
  position: absolute; left: 50%; top: 48%; width: min(150vmax, 1800px); aspect-ratio: 1;
  background: conic-gradient(from 210deg, transparent 0 15deg, #ebc89305 25deg, #ebc89315 38deg, transparent 43deg 190deg, #ebc8930a 213deg, transparent 232deg);
  border-radius: 50%; transform: translate(-50%, -50%);
  -webkit-mask-image: radial-gradient(circle, transparent 8%, #000 16%, transparent 68%);
  mask-image: radial-gradient(circle, transparent 8%, #000 16%, transparent 68%);
  animation: journey-light-drift 11s ease-in-out infinite alternate;
}
#journey-preloader .journey-load-card { position: relative; width: min(100%, 520px); display: grid; justify-items: center; transform: translateY(-12px); transition: opacity 280ms ease, transform 440ms cubic-bezier(.2, .7, .2, 1); }
#journey-preloader .journey-load-optic { position: relative; display: grid; place-items: center; width: clamp(240px, 43vw, 400px); max-width: 100%; aspect-ratio: 1; animation: journey-optic-arrive 800ms cubic-bezier(.2, .7, .2, 1) both; }
#journey-preloader .journey-load-optic::before { content: ''; position: absolute; inset: -14%; border-radius: 50%; pointer-events: none; background: radial-gradient(circle, #edc3820a 20%, #edc38210 40%, transparent 67%); animation: journey-optic-breathe 3.4s ease-in-out infinite alternate; }
#journey-preloader .journey-load-lens { position: absolute; inset: 9%; border: 1px solid #e7c28b14; border-radius: 50%; background: radial-gradient(circle at 30% 25%, #ffdbab0a, transparent 45%), radial-gradient(circle at 60% 85%, #b4784312, transparent 50%); box-shadow: inset 0 0 32px #e7c28b08, 0 0 60px #edc38206; }
#journey-preloader .journey-load-lens::before { content: ''; position: absolute; inset: 8%; border: 1px solid #e7c28b0e; border-radius: 50%; }
#journey-preloader .journey-load-lens::after {
  content: ''; position: absolute; inset: -14%; border-radius: 50%;
  background: conic-gradient(from 20deg, transparent 0 54deg, #e7c28b80 70deg, transparent 73deg 220deg, #e7c28b20 240deg, transparent 255deg);
  -webkit-mask-image: radial-gradient(circle, transparent 69.1%, #000 69.4% 69.8%, transparent 70.1%);
  mask-image: radial-gradient(circle, transparent 69.1%, #000 69.4% 69.8%, transparent 70.1%);
  animation: journey-optic-orbit 12s linear infinite;
}
#journey-preloader .journey-load-dial { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; }
#journey-preloader .journey-load-ticks { fill: none; stroke: #e7c28b28; stroke-width: 1; }
#journey-preloader .journey-load-rail { fill: none; stroke: #e7c28b13; stroke-width: 1; }
#journey-preloader .journey-load-arc { fill: none; stroke: var(--load-gold); stroke-width: 1.5; stroke-linecap: round; stroke-dasharray: 100; stroke-dashoffset: var(--load-gap, 100); transform-origin: 160px 160px; transform: rotate(-90deg); transition: stroke-dashoffset 180ms linear; }
#journey-preloader[data-progress="waiting"] .journey-load-arc { stroke-dasharray: 18 82; stroke-dashoffset: 0; animation: journey-optic-search 2.8s cubic-bezier(.45, .1, .55, .9) infinite; }
#journey-preloader .journey-load-mark { position: relative; width: 43%; aspect-ratio: 1; }
#journey-preloader .journey-load-logo { display: block; width: 100%; height: 100%; margin: 0; object-fit: contain; filter: drop-shadow(0 6px 16px #0008) drop-shadow(0 0 15px #e7c28b12); }
#journey-preloader .journey-load-sheen { position: absolute; inset: 0; pointer-events: none; overflow: hidden; -webkit-mask: url('/assets/logo-white-studio.webp') center / contain no-repeat; mask: url('/assets/logo-white-studio.webp') center / contain no-repeat; }
#journey-preloader .journey-load-sheen::after { content: ''; position: absolute; inset: -50%; background: linear-gradient(110deg, transparent 40%, #fff1d554 49%, transparent 58%); animation: journey-logo-sheen 4.8s ease-in-out infinite; }
#journey-preloader .journey-load-spark { position: absolute; left: var(--x); top: var(--y); width: 2px; height: 2px; border-radius: 50%; opacity: 0; background: #f5dab0; box-shadow: 0 0 9px #e7c28b80; animation: journey-load-spark 5s var(--delay) ease-in-out infinite; }
#journey-preloader .journey-load-spark:nth-of-type(1) { --x: 20%; --y: 62%; --delay: -1s; }
#journey-preloader .journey-load-spark:nth-of-type(2) { --x: 75%; --y: 38%; --delay: -3.2s; }
#journey-preloader .journey-load-spark:nth-of-type(3) { --x: 40%; --y: 24%; --delay: -2.6s; }
#journey-preloader .journey-load-spark:nth-of-type(4) { --x: 63%; --y: 78%; --delay: -.5s; }
#journey-preloader .journey-load-spark:nth-of-type(5) { --x: 35%; --y: 74%; --delay: -3.7s; }
#journey-preloader .journey-load-spark:nth-of-type(6) { --x: 68%; --y: 22%; --delay: -1.8s; }
#journey-preloader .journey-load-spark:nth-of-type(7) { --x: 12%; --y: 40%; --delay: -4.2s; }
#journey-preloader .journey-load-spark:nth-of-type(8) { --x: 86%; --y: 68%; --delay: -2.2s; }
#journey-preloader .journey-load-meter { position: relative; display: grid; place-items: center; width: 100%; height: 32px; margin-top: 22px; }
#journey-preloader .journey-load-detail { margin: 0; color: #d9bf99; font-size: 13px; line-height: 1; letter-spacing: .1em; font-variant-numeric: tabular-nums; }
#journey-preloader .journey-load-wait { display: flex; gap: 7px; align-items: center; position: absolute; }
#journey-preloader .journey-load-wait i { width: 3px; height: 3px; border-radius: 50%; background: #e7c28b; animation: journey-load-dot 1.6s ease-in-out infinite; }
#journey-preloader .journey-load-wait i:nth-child(2) { animation-delay: .16s; }
#journey-preloader .journey-load-wait i:nth-child(3) { animation-delay: .32s; }
#journey-preloader:not([data-progress="waiting"]) .journey-load-wait { display: none; }
#journey-preloader .journey-load-status { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
#journey-preloader .journey-load-read {
  position: absolute; left: max(28px, env(safe-area-inset-left)); bottom: max(28px, env(safe-area-inset-bottom));
  display: flex; align-items: center; justify-content: center; gap: 0; min-width: 52px; min-height: 52px;
  box-sizing: border-box; padding: 12px; border: 1px solid #d0b38340; border-radius: 100px;
  color: #cfbea4; background: #0d141c; text-decoration: none; touch-action: manipulation;
  transition: border-color 180ms, color 180ms, opacity 180ms;
}
#journey-preloader .journey-load-read svg { display: block; width: 26px; height: 26px; flex-shrink: 0; fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
#journey-preloader .journey-load-read span { display: none; font-size: 13px; line-height: 1.4; }
#journey-preloader .journey-load-read:hover, #journey-preloader .journey-load-read:focus-visible { color: #ffdfad; border-color: #e7c28b99; }
#journey-preloader .journey-load-read:focus-visible { outline: 2px solid #e7c28b; outline-offset: 5px; }
#journey-preloader.is-slow .journey-load-read, #journey-preloader.is-error .journey-load-read, #journey-preloader .journey-load-read:focus-visible { gap: 10px; padding-right: 20px; }
#journey-preloader.is-slow .journey-load-read span, #journey-preloader.is-error .journey-load-read span, #journey-preloader .journey-load-read:focus-visible span { display: inline; }
#journey-preloader .journey-load-flare { position: absolute; inset: 0; z-index: 2; opacity: 0; pointer-events: none; background: linear-gradient(90deg, transparent 36%, #f1ca8522 49.7%, #ffdfac66 50%, #f1ca8522 50.3%, transparent 64%); }
#journey-preloader.is-leaving { opacity: 0; visibility: hidden; pointer-events: none; }
#journey-preloader.is-leaving .journey-load-shutters span:first-child { transform: translateX(-100%); }
#journey-preloader.is-leaving .journey-load-shutters span:last-child { transform: translateX(100%); }
#journey-preloader.is-leaving .journey-load-card { opacity: 0; transform: translateY(-12px) scale(1.07); }
#journey-preloader.is-leaving .journey-load-atmosphere, #journey-preloader.is-leaving .journey-load-read { opacity: 0; }
#journey-preloader.is-leaving .journey-load-flare { animation: journey-load-open 680ms ease both; }
#journey-preloader.is-error *, #journey-preloader.is-error *::before, #journey-preloader.is-error *::after { animation: none !important; }
#journey-preloader.is-error .journey-load-arc, #journey-preloader.is-error .journey-load-wait { opacity: 0; }
#journey-preloader.is-error .journey-load-status { position: static; width: auto; height: auto; max-width: 280px; margin: 6px 0 0; overflow: visible; clip-path: none; white-space: normal; color: #d9cbb5; font-size: 14px; }
@keyframes journey-light-drift { from { transform: translate(-50%, -50%) rotate(-16deg); opacity: .6; } to { transform: translate(-50%, -50%) rotate(16deg); opacity: 1; } }
@keyframes journey-optic-arrive { from { opacity: 0; transform: scale(.9); } to { opacity: 1; transform: scale(1); } }
@keyframes journey-optic-breathe { from { opacity: .5; transform: scale(.96); } to { opacity: 1; transform: scale(1.05); } }
@keyframes journey-optic-orbit { to { transform: rotate(360deg); } }
@keyframes journey-optic-search { from { transform: rotate(-90deg); } to { transform: rotate(270deg); } }
@keyframes journey-logo-sheen { 0%, 20% { transform: translateX(-55%); } 70%, 100% { transform: translateX(55%); } }
@keyframes journey-load-spark { 0%, 100% { opacity: 0; transform: translate3d(0, 15px, 0); } 40% { opacity: .65; } 80% { opacity: 0; transform: translate3d(24px, -45px, 0); } }
@keyframes journey-load-dot { 0%, 80%, 100% { opacity: .2; transform: scale(.7); } 35% { opacity: 1; transform: scale(1); } }
@keyframes journey-load-open { 0% { opacity: 0; transform: scaleX(.1); } 32% { opacity: .75; } 100% { opacity: 0; transform: scaleX(2); } }
@media (hover: hover) {
  #journey-preloader .journey-load-read:hover { gap: 10px; padding-right: 20px; }
  #journey-preloader .journey-load-read:hover span { display: inline; }
}
@media (max-width: 600px) {
  #journey-preloader .journey-load-optic { width: min(80vw, 340px); }
  #journey-preloader .journey-load-read { left: max(20px, env(safe-area-inset-left)); bottom: max(20px, env(safe-area-inset-bottom)); }
}
@media (max-height: 600px) {
  html[data-site-view="journey"] #journey-preloader { padding: 16px 16px 72px; }
  #journey-preloader .journey-load-optic { width: min(50vh, 260px); }
  #journey-preloader .journey-load-meter { margin-top: 10px; height: 24px; }
  #journey-preloader .journey-load-card { transform: translateY(-8px); }
  #journey-preloader .journey-load-read { min-width: 44px; min-height: 44px; padding: 8px; bottom: max(16px, env(safe-area-inset-bottom)); }
}
@media (prefers-reduced-motion: reduce) {
  html[data-site-view="journey"] #journey-preloader, #journey-preloader *, #journey-preloader *::before, #journey-preloader *::after { animation: none !important; transition: none !important; }
  #journey-preloader .journey-load-optic, #journey-preloader .journey-load-wait i { opacity: 1; }
  #journey-preloader .journey-load-sheen { display: none; }
}
@media print { #journey-preloader { display: none !important; } }
