/* AWE Preloader — front-end styles */
#awe-preloader{
	position:fixed;inset:0;z-index:999999;overflow:hidden;
	background:var(--awe-bg,#050507);color:var(--awe-text,#f2ede6);
	display:flex;align-items:center;justify-content:center;
	font-family:var(--awe-body,system-ui,sans-serif);
	-webkit-font-smoothing:antialiased;
}
#awe-preloader *{box-sizing:border-box;margin:0}

/* ---- shared bits ---- */
.awe-counter{
	font-family:var(--awe-display);
	font-weight:900;line-height:.85;letter-spacing:-.02em;
	font-size:clamp(96px,22vw,320px);
	font-variant-numeric:tabular-nums;
}
.awe-suffix{
	font-size:.28em;vertical-align:baseline;margin-left:.08em;
	display:inline-block;transform:translateY(-.35em);
}
.awe-bar{
	position:absolute;left:5vw;right:5vw;bottom:6vh;height:2px;
	background:var(--awe-track,color-mix(in srgb,var(--awe-text) 18%,transparent));
	border-radius:2px;overflow:hidden;
}
.awe-bar i{
	display:block;height:100%;width:0;background:var(--awe-accent);
	transition:width .25s cubic-bezier(.22,1,.36,1);
}
.awe-tagline{
	position:absolute;left:5vw;bottom:calc(6vh + 16px);
	font-family:var(--awe-mono);font-size:11px;letter-spacing:.18em;
	text-transform:uppercase;color:var(--awe-muted,inherit);opacity:.85;
}
/* Logo badge + Logo Pulse preset */
.awe-logo-badge{position:absolute;top:5vh;z-index:2}
.awe-logo-badge.awe-tl{left:5vw}
.awe-logo-badge.awe-tc{left:50%;transform:translateX(-50%)}
.awe-logo-badge img{display:block;height:auto}
.awe-preset-logo .awe-logo-stage{position:relative;display:flex;flex-direction:column;align-items:center;gap:28px}
.awe-preset-logo .awe-logo-ring{position:relative;display:grid;place-items:center}
.awe-preset-logo .awe-logo-ring img{position:relative;z-index:1;animation:awe-logo-pulse 2.6s ease-in-out infinite}
@keyframes awe-logo-pulse{0%,100%{transform:scale(1);opacity:.92}50%{transform:scale(1.045);opacity:1}}
.awe-preset-logo svg.awe-ring{position:absolute;inset:-34px;width:calc(100% + 68px);height:calc(100% + 68px);transform:rotate(-90deg)}
.awe-preset-logo svg.awe-ring circle{fill:none;stroke-width:2}
.awe-preset-logo svg.awe-ring .awe-ring-track{stroke:var(--awe-track,rgba(255,255,255,.14))}
.awe-preset-logo svg.awe-ring .awe-ring-fill{stroke:var(--awe-accent);stroke-linecap:round;transition:stroke-dashoffset .3s cubic-bezier(.22,1,.36,1)}
.awe-preset-logo .awe-counter{font-size:clamp(28px,6vw,72px);opacity:.9}
.awe-preset-logo .awe-brand-text{font-family:var(--awe-display);text-transform:uppercase;font-size:clamp(20px,3.4vw,34px);letter-spacing:.14em}

/* ---- grain ---- */
.awe-grain::after{
	content:"";position:absolute;inset:-100%;pointer-events:none;opacity:.07;
	background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
	animation:awe-grain 7s steps(8) infinite;
}
@keyframes awe-grain{
	0%{transform:translate(0,0)}25%{transform:translate(-4%,3%)}
	50%{transform:translate(3%,-4%)}75%{transform:translate(-3%,-2%)}100%{transform:translate(0,0)}
}

/* =====================================================================
   PRESET 1 — ECLIPSE / MISSION CONTROL
   ===================================================================== */
.awe-preset-eclipse .awe-stage{position:absolute;inset:0}
.awe-eclipse-arc{
	position:absolute;top:50%;left:22%;width:min(90vh,900px);height:min(90vh,900px);
	transform:translate(-50%,-50%);border-radius:50%;
	background:radial-gradient(circle at 50% 50%,rgba(255,255,255,.02) 55%,transparent 56%);
	box-shadow:inset -6px 0 24px -6px rgba(255,255,255,.35), -2px 0 60px -10px rgba(255,255,255,.18);
	animation:awe-arc-breathe 6s ease-in-out infinite;
}
@keyframes awe-arc-breathe{0%,100%{opacity:.75}50%{opacity:1}}
.awe-terminal{
	position:absolute;left:18%;top:42%;min-width:230px;max-width:340px;
	border:1px solid color-mix(in srgb,var(--awe-text) 22%,transparent);
	background:var(--awe-term-bg,color-mix(in srgb,var(--awe-bg) 82%,#111));
	padding:14px 16px 12px;font-family:var(--awe-mono);font-size:11px;line-height:1.75;
	box-shadow:0 10px 40px rgba(0,0,0,.5);
}
.awe-terminal::before{
	content:"⠿";position:absolute;top:6px;right:10px;opacity:.4;font-size:10px;
}
.awe-terminal .awe-line{white-space:pre;opacity:.85;min-height:1.75em}
.awe-terminal .awe-line.awe-warn{color:var(--awe-accent)}
.awe-terminal .awe-caret{
	display:inline-block;width:7px;height:12px;background:var(--awe-text);
	vertical-align:-2px;animation:awe-blink 1s steps(1) infinite;
}
@keyframes awe-blink{50%{opacity:0}}
.awe-preset-eclipse .awe-counter{
	position:absolute;right:8vw;top:50%;transform:translateY(-50%);
}
@media (max-width:760px){
	.awe-eclipse-arc{left:50%;top:30%}
	.awe-terminal{left:8vw;right:8vw;top:auto;bottom:20vh;max-width:none}
	.awe-preset-eclipse .awe-counter{right:auto;left:50%;top:38%;transform:translate(-50%,-50%)}
}

/* =====================================================================
   PRESET 2 — TYPOGRAPHIC CURTAIN
   ===================================================================== */
.awe-preset-curtain .awe-brand{
	font-family:var(--awe-display);text-transform:uppercase;
	font-size:clamp(48px,11vw,160px);line-height:1;letter-spacing:.01em;
	display:flex;overflow:hidden;
}
.awe-preset-curtain .awe-brand span{
	display:inline-block;transform:translateY(110%);
	animation:awe-rise .9s cubic-bezier(.22,1,.36,1) forwards;
	animation-delay:calc(var(--i) * 55ms + 250ms);
	white-space:pre;
}
@keyframes awe-rise{to{transform:translateY(0)}}
.awe-preset-curtain .awe-counter{
	position:absolute;right:5vw;bottom:5vh;font-size:clamp(40px,8vw,110px);opacity:.9;
}
.awe-preset-curtain .awe-tagline{bottom:auto;top:6vh}

/* =====================================================================
   PRESET 3 — WORD CYCLER
   ===================================================================== */
.awe-preset-cycler .awe-cycle-wrap{
	display:flex;align-items:baseline;gap:.35em;
	font-family:var(--awe-display);text-transform:uppercase;
	font-size:clamp(36px,7.5vw,110px);line-height:1;
}
.awe-cycle-mask{position:relative;overflow:hidden;height:1.05em;min-width:1ch}
.awe-cycle-mask .awe-word{
	display:block;height:1.05em;color:var(--awe-accent);white-space:nowrap;
	transform:translateY(0);transition:transform .55s cubic-bezier(.7,0,.2,1);
}
.awe-preset-cycler .awe-counter{
	position:absolute;left:5vw;bottom:5vh;font-size:clamp(28px,5vw,64px);opacity:.6;
}

/* =====================================================================
   PRESET 4 — ODOMETER
   ===================================================================== */
.awe-odo{display:flex;font-family:var(--awe-display);font-weight:900;
	font-size:clamp(96px,22vw,320px);line-height:1;overflow:hidden;height:1em;
	font-variant-numeric:tabular-nums;
}
.awe-odo-digit{position:relative;height:1em;overflow:hidden;width:.62em;text-align:center}
.awe-odo-strip{
	position:absolute;left:0;right:0;top:0;
	transition:transform .6s cubic-bezier(.65,0,.15,1);
}
.awe-odo-strip b{display:block;height:1em;font-weight:inherit}
.awe-preset-odometer .awe-suffix-solo{
	font-family:var(--awe-display);font-size:clamp(28px,6vw,90px);
	align-self:flex-end;margin-left:.15em;opacity:.9;
}

/* =====================================================================
   PRESET 6 — CHROMATIC TAKEOVER (P10 style)
   ===================================================================== */
.awe-preset-takeover{background:var(--awe-accent)}
.awe-preset-takeover.awe-dark-ink{color:#0d0d0f}
.awe-preset-takeover .awe-take-brand{
	font-family:var(--awe-display);text-transform:uppercase;
	font-size:clamp(64px,18vw,300px);line-height:.9;letter-spacing:-.01em;
	text-align:center;transform:scale(.92);
	animation:awe-take-zoom 6s cubic-bezier(.16,1,.3,1) forwards;
	max-width:94vw;overflow:hidden;
}
@keyframes awe-take-zoom{to{transform:scale(1)}}
.awe-preset-takeover .awe-counter{
	position:absolute;right:5vw;bottom:5vh;font-size:clamp(28px,5vw,64px);
}
.awe-preset-takeover .awe-tagline{color:inherit;opacity:.6}
.awe-preset-takeover .awe-bar{background:rgba(0,0,0,.18)}
.awe-preset-takeover.awe-dark-ink .awe-bar i{background:#0d0d0f}
.awe-preset-takeover:not(.awe-dark-ink) .awe-bar i{background:var(--awe-text)}

/* =====================================================================
   PRESET 7 — MAISON (luxury editorial)
   ===================================================================== */
.awe-preset-maison{flex-direction:column;gap:26px}
.awe-preset-maison .awe-maison-brand{
	font-family:var(--awe-display);
	font-size:clamp(34px,7vw,96px);line-height:1.1;text-transform:uppercase;
	letter-spacing:.02em;display:flex;
	animation:awe-maison-track 3.2s cubic-bezier(.22,1,.36,1) forwards;
}
@keyframes awe-maison-track{from{letter-spacing:.02em}to{letter-spacing:.18em}}
.awe-preset-maison .awe-maison-brand span{
	opacity:0;filter:blur(6px);
	animation:awe-maison-in 1.1s cubic-bezier(.22,1,.36,1) forwards;
	animation-delay:calc(var(--i) * 70ms + 200ms);white-space:pre;
}
@keyframes awe-maison-in{to{opacity:1;filter:blur(0)}}
.awe-maison-line{
	font-family:var(--awe-mono);font-size:10px;letter-spacing:.34em;
	text-transform:uppercase;color:var(--awe-muted,inherit);
}
.awe-preset-maison .awe-bar{height:1px;left:32vw;right:32vw}
@media (max-width:760px){.awe-preset-maison .awe-bar{left:12vw;right:12vw}}

/* =====================================================================
   EXIT — COLOR PANEL SWEEP
   ===================================================================== */
.awe-sweep-panel{
	position:absolute;inset:0;transform:translateX(101%);z-index:5;
	animation:awe-sweep 1.05s cubic-bezier(.76,0,.24,1) forwards;
}
@keyframes awe-sweep{
	0%{transform:translateX(101%)}
	45%{transform:translateX(0)}
	55%{transform:translateX(0)}
	100%{transform:translateX(-101%)}
}
#awe-preloader.awe-exit-panels{background:transparent}
#awe-preloader.awe-exit-panels > *:not(.awe-sweep-panel){opacity:0;transition:opacity .25s}

/* =====================================================================
   EXITS
   ===================================================================== */
#awe-preloader.awe-exit-fade{transition:opacity .7s ease;opacity:0}
#awe-preloader.awe-exit-wipe-up{
	transition:transform .85s cubic-bezier(.76,0,.24,1);transform:translateY(-100%);
}
#awe-preloader.awe-exit-zoom{
	transition:transform .8s cubic-bezier(.7,0,.3,1),opacity .8s ease;
	transform:scale(1.6);opacity:0;
}
#awe-preloader.awe-exit-curtain{background:transparent}
#awe-preloader.awe-exit-curtain > *{opacity:0;transition:opacity .3s}
.awe-curtain-panel{
	position:absolute;top:0;bottom:0;width:50.5%;background:var(--awe-bg);
	transition:transform .9s cubic-bezier(.76,0,.24,1);
}
.awe-curtain-panel.awe-left{left:0}
.awe-curtain-panel.awe-right{right:0}
#awe-preloader.awe-exit-curtain .awe-left{transform:translateX(-101%)}
#awe-preloader.awe-exit-curtain .awe-right{transform:translateX(101%)}

/* Content fades in slightly under panels */
#awe-preloader.awe-leaving{pointer-events:none}

/* =====================================================================
   REDUCED MOTION
   ===================================================================== */
@media (prefers-reduced-motion:reduce){
	#awe-preloader *,#awe-preloader::after{animation:none!important;transition:none!important}
	#awe-preloader{transition:opacity .3s ease!important}
}
