/* Four distinct signatures, confined to the homepage cast. */
.signature-cast{--stop-x:37%;--stop-y:30%;position:relative;margin-top:76px}
.signature-cast .section-heading{margin-bottom:17px}
.signature-instructions{font: .875rem/1.6 var(--sans);color:#bac7c3;margin:0 0 24px}
.signature-instructions>span[aria-hidden]{color:#eed8a6;font-size:1.15rem;vertical-align:-1px}
.signature-stage{position:relative;isolation:isolate}
.signature-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;position:relative;z-index:1}
.signature-card{--pointer-x:50%;--pointer-y:30%;--tilt-x:0deg;--tilt-y:0deg;position:relative;min-width:0;background:linear-gradient(165deg,rgb(var(--signature)/.10),transparent 55%),#0b1217;border:1px solid rgb(var(--signature)/.3);border-top:2px solid rgb(var(--signature)/.65);box-shadow:0 16px 40px #0004;isolation:isolate;transition:transform .45s cubic-bezier(.2,.8,.2,1),box-shadow .45s,border-color .4s,filter .45s}
.signature-card:after{content:'';position:absolute;inset:7px;border:1px solid rgb(var(--signature)/.09);pointer-events:none;z-index:5;transition:border-color .4s}
.signature-card.is-awake{z-index:3;border-color:rgb(var(--signature)/.9);box-shadow:0 16px 52px #000a,0 0 25px rgb(var(--signature)/.25),0 0 75px rgb(var(--signature)/.10);transform:perspective(900px) translateY(-7px) rotateX(var(--tilt-x)) rotateY(var(--tilt-y))}
.signature-card.is-awake:after{border-color:rgb(var(--signature)/.3)}
.signature-link{position:relative;display:flex;flex-direction:column;height:100%;text-decoration:none!important;color:inherit;z-index:3;outline-offset:7px}
.signature-link:focus-visible{outline:2px solid rgb(var(--signature))}
.signature-visual{position:relative;height:160px;overflow:hidden;pointer-events:none;flex-shrink:0}
.signature-number{position:absolute;left:25px;top:23px;font: .75rem/1 var(--sans);letter-spacing:.25em;color:rgb(var(--signature)/.85)}
.signature-monogram{position:absolute;right:22px;bottom:-10px;font:italic 6.2rem/1 var(--serif);letter-spacing:-.08em;color:rgb(var(--signature)/.13);text-shadow:0 0 40px rgb(var(--signature)/.16);transition:color .5s,text-shadow .5s,transform .6s}
.signature-card.is-awake .signature-monogram{color:rgb(var(--signature)/.52);text-shadow:0 0 32px rgb(var(--signature)/.5);transform:translateY(-5px)}
.signature-copy{padding:15px 25px 27px;display:flex;flex:1;flex-direction:column;position:relative;z-index:2;text-shadow:0 2px 14px #02090f}
.signature-copy .eyebrow{color:rgb(var(--signature)/.85);font-size:.75rem;letter-spacing:.10em;min-height:2.2em;margin:0 0 12px}
.signature-copy h3{font:400 clamp(2rem,2.7vw,2.75rem)/1.07 var(--serif);letter-spacing:-.025em;margin:0 0 20px;color:#f0eee6;transition:color .35s,text-shadow .35s;overflow-wrap:normal}
.signature-card.is-awake h3{color:#fff;text-shadow:0 0 20px rgb(var(--signature)/.7),0 2px 12px #000}
.signature-copy>p{font:1rem/1.7 var(--sans);color:#b6c3c2;margin:0 0 26px;flex:1;transition:color .4s}
.signature-card.is-awake .signature-copy>p{color:#d9e5e3}
.signature-dossier{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:auto;padding-top:18px;border-top:1px solid rgb(var(--signature)/.2);font:.875rem/1.4 var(--sans);color:rgb(var(--signature));letter-spacing:.02em}
.signature-dossier>span{font-size:1.3rem;transition:transform .3s}.signature-card.is-awake .signature-dossier>span{transform:translate(3px,-3px)}
.signature-preview{position:absolute;right:17px;top:14px;width:44px;height:44px;min-height:44px;display:grid;place-items:center;border:1px solid rgb(var(--signature)/.3);border-radius:50%;color:rgb(var(--signature));background:#09141dbe;z-index:6;cursor:pointer;transition:background .3s,box-shadow .3s,border-color .3s}
.signature-preview>span{font:1.6rem/1 var(--serif)}
.signature-preview:hover,.signature-preview[aria-pressed=true]{background:rgb(var(--signature)/.16);border-color:rgb(var(--signature)/.9);box-shadow:0 0 22px rgb(var(--signature)/.2)}
.signature-preview:focus-visible{outline:2px solid rgb(var(--signature));outline-offset:4px}
.signature-vfx{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:1}
.signature-light{position:absolute;inset:0;opacity:0;background:radial-gradient(ellipse at var(--pointer-x) var(--pointer-y),rgb(var(--signature)/.18),transparent 58%);transition:opacity .5s}
.signature-card.is-awake .signature-light{opacity:1}
.signature-texture{position:absolute;inset:0;width:100%;height:100%;object-fit:fill;opacity:.13;filter:saturate(.8);transform:scale(1.04);transition:opacity .6s,filter .6s,transform .8s;mask-image:linear-gradient(#000c,#0008 40%,#000);-webkit-mask-image:linear-gradient(#000c,#0008 40%,#000)}
.signature-card.is-awake .signature-texture{opacity:.88;filter:saturate(1.3);transform:scale(1)}
.signature-particles{position:absolute;inset:0;opacity:0;transition:opacity .35s}
.signature-card.is-awake .signature-particles{opacity:.9}
.signature-particles i{position:absolute;left:var(--x);bottom:8%;width:2px;height:4px;background:rgb(var(--signature));box-shadow:0 0 9px rgb(var(--signature)/.8);border-radius:2px;animation:signature-rise var(--speed) ease-out var(--delay) infinite;animation-play-state:paused;opacity:0}
.signature-card.is-awake .signature-particles i{animation-play-state:running}
.signature-sweep{position:absolute;inset:0;opacity:0;background:linear-gradient(105deg,transparent 35%,rgb(var(--signature)/.14) 50%,transparent 65%);transform:translateX(-130%)}
.signature-card.is-awake .signature-sweep{animation:signature-sweep 1s ease-out both}
.signature-halo{position:absolute;left:50%;top:29%;width:110%;aspect-ratio:1;border-radius:50%;border:1px solid rgb(var(--signature)/.3);opacity:0;transform:translate(-50%,-50%) scale(.3)}
/* Kaze: upward blue flame motion, bright edges, and rising cinders. */
.signature-kaze .signature-visual{background:radial-gradient(ellipse at 50% 100%,#197ce32b,transparent 68%)}
.signature-kaze.is-awake{box-shadow:0 16px 50px #0009,0 0 24px #298dff66,0 -10px 68px #1679ec29}
.signature-kaze.is-awake .signature-texture{animation:blue-flame-surge 1.9s ease-in-out infinite alternate}
.signature-kaze .signature-particles i:nth-child(3n){width:3px;height:9px;background:#a4e9ff;filter:blur(.4px)}
/* Sai: one expanding pulse, a suspended dial, and a local time freeze. */
.signature-sai .signature-visual{background:radial-gradient(ellipse at 50% 80%,#6f498b21,transparent 65%)}
.signature-dial,.signature-orbit{display:none;position:absolute;left:50%;top:58%;width:142px;aspect-ratio:1;border-radius:50%;transform:translate(-50%,-50%);pointer-events:none}
.signature-sai .signature-dial{display:block;opacity:.18;background:repeating-conic-gradient(from 0deg,#ebd598 0deg 1deg,transparent 1deg 15deg);mask:radial-gradient(transparent 61%,#000 62% 67%,transparent 68%);-webkit-mask:radial-gradient(transparent 61%,#000 62% 67%,transparent 68%);transition:opacity .3s;animation:signature-orbit 26s linear infinite;animation-play-state:paused}
.signature-sai .signature-orbit{display:block;width:117px;border:1px solid #c9abd84d;box-shadow:0 0 0 5px #e3c87608;opacity:.7}
.signature-sai.is-awake .signature-dial{opacity:.85;animation:time-dial-stop 1.1s cubic-bezier(.16,1,.3,1) both}
.signature-sai.is-awake .signature-orbit{border-color:#e3cba3aa;box-shadow:0 0 25px #ba8bd85e,inset 0 0 25px #ddc48619}
.signature-sai.is-awake .signature-halo{animation:signature-time-ring 1.15s ease-out both}
.signature-sai.is-awake .halo-two{animation-delay:.16s}
.signature-sai .signature-particles i{bottom:auto;top:var(--y);animation:none;opacity:.5;width:2px;height:2px;transition:box-shadow .4s}
.signature-sai.is-awake .signature-particles i{box-shadow:0 0 13px #f2d992;opacity:.85}
.signature-cast.is-time-stopped .signature-card:not(.signature-sai){filter:grayscale(.9) saturate(.15) brightness(.69)}
.signature-cast.is-time-stopped .signature-card:not(.signature-sai) *{animation-play-state:paused!important}
.time-stop-field{position:absolute;inset:-35px;z-index:4;overflow:hidden;pointer-events:none;opacity:0}
.is-time-stopped .time-stop-field{opacity:1}
.time-stop-wave{position:absolute;left:calc(var(--stop-x) + 35px);top:calc(var(--stop-y) + 35px);width:120px;aspect-ratio:1;border:2px solid #dfc689;box-shadow:0 0 20px #d2a6e84d,inset 0 0 16px #e4d09260;border-radius:50%;opacity:0;transform:translate(-50%,-50%) scale(.15)}
.is-time-stopped .time-stop-wave{animation:cast-time-stop 1.15s cubic-bezier(.1,.65,.2,1) both}
.is-time-stopped .wave-echo{border-color:#ad8ecaaa;animation-delay:.13s}
/* Kazuya: staggered pressure waves and a breathing field of energy. */
.signature-kazuya .signature-visual{background:radial-gradient(ellipse at 50% 100%,#a339c333,transparent 70%)}
.signature-kazuya .signature-light{background:radial-gradient(ellipse at 50% 32%,#d873f32e,transparent 58%),linear-gradient(0deg,#8738b522,transparent 70%)}
.signature-kazuya.is-awake{animation:aura-border-pulse 1.8s ease-in-out infinite}
.signature-kazuya.is-awake .signature-light{animation:aura-heartbeat 1.8s ease-in-out infinite}
.signature-kazuya.is-awake .signature-halo{animation:aura-pressure-wave 2.1s ease-out infinite}
.signature-kazuya.is-awake .halo-two{animation-delay:1.05s}
.signature-kazuya .signature-particles i{height:13px;width:1px;box-shadow:0 0 11px #dd8bf5;animation-duration:calc(var(--speed) * .65)}
.signature-kazuya.is-awake .signature-monogram{color:#e3b3eb88;text-shadow:0 0 38px #d974ed88}
/* South: frost travels in from the edges while suspended crystals settle. */
.signature-south .signature-visual{background:radial-gradient(ellipse at 50% 100%,#8acee029,transparent 67%)}
.signature-south .signature-texture{opacity:.16;filter:brightness(.9);transform:scale(1.16);transition:opacity .85s,transform 1.1s cubic-bezier(.18,.7,.2,1),filter .8s}
.signature-south.is-awake .signature-texture{opacity:.94;transform:scale(1);filter:brightness(1.2);animation:frost-settle 1.3s ease-out both}
.signature-south.is-awake{border-color:#d7f7ff;box-shadow:0 16px 48px #0009,0 0 24px #a3e4f762,0 0 62px #84d6f020}
.signature-south.is-awake .signature-light{background:radial-gradient(ellipse at 50% 100%,#b7e3ed2b,transparent 50%)}
.signature-south .signature-particles i{top:var(--y);bottom:auto;width:3px;height:3px;transform:rotate(45deg);border-radius:0;animation:none}
.signature-south.is-awake .signature-particles i{animation:ice-crystal-stop 1.5s ease-out both;animation-delay:calc(var(--delay) * -.2)}
.signature-south .signature-sweep{background:linear-gradient(175deg,transparent 35%,#cbeaf332 50%,transparent 65%)}
@keyframes signature-rise{0%{opacity:0;transform:translate(0,30px) scale(.7)}15%{opacity:.85}100%{opacity:0;transform:translate(var(--drift),-310px) scale(.25)}}
@keyframes signature-sweep{0%{opacity:0;transform:translateX(-130%)}30%{opacity:.8}100%{opacity:0;transform:translateX(130%)}}
@keyframes blue-flame-surge{0%{transform:translateY(5px) scaleX(1.025) scaleY(1.025);opacity:.73;filter:saturate(1.15) brightness(1)}45%{opacity:.92}100%{transform:translateY(-7px) scaleX(.995) scaleY(1.08);opacity:.95;filter:saturate(1.4) brightness(1.16)}}
@keyframes signature-orbit{to{transform:translate(-50%,-50%) rotate(360deg)}}
@keyframes time-dial-stop{0%{transform:translate(-50%,-50%) rotate(-95deg)}100%{transform:translate(-50%,-50%) rotate(0)}}
@keyframes signature-time-ring{0%{opacity:0;transform:translate(-50%,-50%) scale(.2)}25%{opacity:.8}100%{opacity:0;transform:translate(-50%,-50%) scale(2.2)}}
@keyframes cast-time-stop{0%{opacity:0;transform:translate(-50%,-50%) scale(.15)}12%{opacity:.7}100%{opacity:0;transform:translate(-50%,-50%) scale(13)}}
@keyframes aura-border-pulse{0%,100%{box-shadow:0 16px 50px #0009,0 0 20px #c55bea44,0 0 55px #9236b82b}50%{box-shadow:0 16px 50px #0009,0 0 35px #d979f277,0 0 75px #9236b849}}
@keyframes aura-heartbeat{0%,100%{opacity:.55;transform:scale(1)}48%{opacity:1;transform:scale(1.12)}}
@keyframes aura-pressure-wave{0%{opacity:0;transform:translate(-50%,-50%) scale(.18);border-width:2px}15%{opacity:.65}100%{opacity:0;transform:translate(-50%,-50%) scale(2);border-width:1px}}
@keyframes frost-settle{0%{opacity:.15;transform:scale(1.18);filter:blur(3px)}100%{opacity:.94;transform:scale(1);filter:blur(0)}}
@keyframes ice-crystal-stop{0%{opacity:0;transform:translateY(-25px) rotate(45deg)}50%{opacity:.9}100%{opacity:.6;transform:translateY(6px) rotate(45deg)}}
@media(max-width:1100px){.signature-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:25px}.signature-visual{height:155px}.signature-copy{padding:16px 27px 27px}.signature-copy h3{font-size:2.7rem}.signature-texture{object-fit:cover;object-position:bottom}.signature-copy .eyebrow{min-height:0}}
@media(max-width:560px){.signature-cast{margin-top:50px}.signature-grid{grid-template-columns:1fr;gap:27px}.signature-card{min-height:390px}.signature-visual{height:125px}.signature-monogram{right:28px;font-size:5.7rem;bottom:-7px}.signature-copy{padding:10px 26px 26px}.signature-copy h3{font-size:2.6rem}.signature-copy>p{font-size:1rem;line-height:1.75;margin-bottom:21px}.signature-dossier{padding-top:17px}.signature-dial{width:125px}.signature-preview{top:14px;right:17px}.signature-texture{object-fit:fill}.signature-number{left:26px}.time-stop-field{inset:-20px}.time-stop-wave{left:calc(var(--stop-x) + 20px);top:calc(var(--stop-y) + 20px)}}
@media(hover:none){.signature-card.is-awake{transform:none}.signature-preview{background:rgb(var(--signature)/.08);border-color:rgb(var(--signature)/.65)}}
html[data-motion=quiet] .signature-card.is-awake{transform:none;animation:none}
html[data-motion=quiet] .signature-particles,html[data-motion=quiet] .time-stop-field,html[data-motion=quiet] .signature-halo,html[data-motion=quiet] .signature-sweep{display:none}
html[data-motion=quiet] .signature-card.is-awake .signature-texture{animation:none;transform:none;opacity:.6}
html[data-motion=quiet] .signature-cast.is-time-stopped .signature-card:not(.signature-sai){filter:none}
@media(prefers-reduced-motion:reduce){.signature-card.is-awake{transform:none;animation:none}.signature-particles,.time-stop-field,.signature-halo,.signature-sweep{display:none}.signature-card.is-awake .signature-texture{animation:none;transform:none;opacity:.6}.signature-cast.is-time-stopped .signature-card:not(.signature-sai){filter:none}}
