:root {
  --fp-cs-black: #080808;
  --fp-cs-black-soft: #0d0d0c;
  --fp-cs-white: #f3f0e8;
  --fp-cs-muted: #a7a197;
  --fp-cs-gold: #c8a66b;
  --fp-cs-gold-soft: rgba(200, 166, 107, .35);
  --fp-cs-line: rgba(255, 255, 255, .1);
  --fp-cs-mx: 0;
  --fp-cs-my: 0;
  color-scheme: dark;
}

*, *::before, *::after { box-sizing: border-box; }
html { min-height: 100%; background: var(--fp-cs-black); }
body {
  min-height: 100vh;
  min-height: 100svh;
  margin: 0;
  overflow: hidden;
  background: var(--fp-cs-black);
  color: var(--fp-cs-white);
  font-family: Manrope, Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  -webkit-font-smoothing: antialiased;
}
button { font: inherit; }

.fp-cs-page { position: relative; isolation: isolate; }
.fp-cs-noise {
  position: fixed;
  inset: -50%;
  z-index: -1;
  opacity: .055;
  pointer-events: none;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.83' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.9'/%3E%3C/svg%3E");
  transform: rotate(7deg);
}
.fp-cs-grid {
  position: fixed;
  inset: 0;
  z-index: -2;
  opacity: .55;
  pointer-events: none;
  background-image: linear-gradient(rgba(200, 166, 107, .055) 1px, transparent 1px), linear-gradient(90deg, rgba(200, 166, 107, .055) 1px, transparent 1px);
  background-size: clamp(70px, 10vw, 150px) clamp(70px, 10vw, 150px);
  mask-image: radial-gradient(ellipse at center, #000 0%, rgba(0, 0, 0, .65) 48%, transparent 88%);
}
.fp-cs-glow { position: fixed; z-index: -1; pointer-events: none; border-radius: 50%; filter: blur(3px); }
.fp-cs-glow-one { width: 65vw; height: 65vw; max-width: 900px; max-height: 900px; top: 4%; left: -28%; background: radial-gradient(circle, rgba(144, 106, 45, .1), transparent 67%); }
.fp-cs-glow-two { width: 58vw; height: 58vw; max-width: 800px; max-height: 800px; right: -25%; bottom: -35%; background: radial-gradient(circle, rgba(200, 166, 107, .09), transparent 68%); }

.fp-cs-shell { width: min(100%, 1440px); min-height: 100vh; min-height: 100svh; margin: 0 auto; padding: clamp(24px, 4vw, 58px) clamp(22px, 6vw, 100px) clamp(22px, 4vw, 45px); display: flex; flex-direction: column; }
.fp-cs-header, .fp-cs-footer, .fp-cs-bottomline { display: flex; justify-content: space-between; align-items: center; gap: 24px; text-transform: uppercase; letter-spacing: .16em; font-size: 10px; color: var(--fp-cs-muted); }
.fp-cs-header { border-bottom: 1px solid var(--fp-cs-line); padding-bottom: 20px; }
.fp-cs-wordmark { color: var(--fp-cs-white); font-weight: 700; letter-spacing: .2em; }
.fp-cs-index { color: var(--fp-cs-gold); }
.fp-cs-content { flex: 1; width: min(100%, 960px); margin: 0 auto; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; padding: clamp(45px, 7vh, 95px) 0 clamp(36px, 7vh, 90px); }
.fp-cs-label { display: flex; align-items: center; gap: 11px; margin: 0 0 clamp(25px, 4vh, 44px); color: var(--fp-cs-gold); font-size: 10px; letter-spacing: .25em; font-weight: 700; }
.fp-cs-label-dot { width: 6px; height: 6px; border-radius: 50%; background: var(--fp-cs-gold); box-shadow: 0 0 16px rgba(200, 166, 107, .9); animation: fp-cs-blink 2.4s ease-in-out infinite; }
.fp-cs-logo-button { position: relative; display: grid; place-items: center; width: clamp(175px, 24vw, 315px); aspect-ratio: 250 / 275; margin: 0 0 clamp(27px, 4vh, 49px); padding: 0; border: 0; background: transparent; color: var(--fp-cs-gold); cursor: pointer; perspective: 1000px; transform: translate3d(calc(var(--fp-cs-mx) * 9px), calc(var(--fp-cs-my) * 9px), 0); transition: transform .6s cubic-bezier(.19, 1, .22, 1); }
.fp-cs-logo-button::after { content: ''; position: absolute; inset: 17%; border: 1px solid rgba(200, 166, 107, .16); border-radius: 50%; transform: rotateX(66deg) rotateZ(-17deg) scaleX(1.18); pointer-events: none; }
.fp-cs-logo-image, .fp-cs-logo-fallback { grid-area: 1 / 1; display: block; width: 70%; height: auto; transform: rotateX(calc(var(--fp-cs-my) * -8deg)) rotateY(calc(var(--fp-cs-mx) * 10deg)) translateZ(0); filter: drop-shadow(0 26px 18px rgba(0, 0, 0, .62)) drop-shadow(0 0 24px rgba(200, 166, 107, .13)); animation: fp-cs-float 6.5s ease-in-out infinite; transition: transform .7s cubic-bezier(.19, 1, .22, 1), filter .7s ease; }
.fp-cs-logo-image { position: relative; z-index: 2; }
.fp-cs-logo-fallback { position: absolute; inset: 0; z-index: 1; display: grid; place-items: center; pointer-events: none; opacity: 0; }
.fp-cs-logo-fallback .fp-cs-logo { width: 70%; fill: var(--fp-cs-gold); }
.fp-cs-logo-halo { position: absolute; width: 105%; aspect-ratio: 1; border-radius: 50%; background: radial-gradient(circle, rgba(200, 166, 107, .19), rgba(200, 166, 107, .04) 36%, transparent 67%); filter: blur(10px); animation: fp-cs-pulse 4.4s ease-in-out infinite; }
.fp-cs-orbit { position: absolute; z-index: 0; border: 1px solid rgba(200, 166, 107, .21); border-radius: 50%; pointer-events: none; }
.fp-cs-orbit-a { width: 112%; height: 74%; transform: rotateX(64deg) rotateZ(-18deg); animation: fp-cs-orbit 17s linear infinite; }
.fp-cs-orbit-b { width: 96%; height: 62%; transform: rotateY(67deg) rotateZ(28deg); border-color: rgba(243, 240, 232, .12); animation: fp-cs-orbit 23s linear infinite reverse; }
.fp-cs-logo-button:hover .fp-cs-logo-image, .fp-cs-logo-button:focus-visible .fp-cs-logo-image { filter: drop-shadow(0 30px 20px rgba(0, 0, 0, .68)) drop-shadow(0 0 36px rgba(200, 166, 107, .35)); }
.fp-cs-logo-button:focus-visible { outline: 1px solid var(--fp-cs-gold); outline-offset: 16px; }
.fp-cs-logo-button.is-pulsing .fp-cs-logo-image { animation: fp-cs-click 1.05s cubic-bezier(.19, 1, .22, 1); }
.fp-cs-copy { max-width: 740px; }
.fp-cs-copy h1 { margin: 0; color: var(--fp-cs-white); font-size: clamp(38px, 6.6vw, 86px); line-height: .98; letter-spacing: -.065em; font-weight: 500; text-wrap: balance; }
.fp-cs-copy p { max-width: 540px; margin: clamp(23px, 3.5vh, 35px) auto 0; color: var(--fp-cs-muted); font-size: clamp(15px, 1.5vw, 18px); line-height: 1.75; }
.fp-cs-bottomline { width: min(100%, 760px); margin-top: clamp(45px, 8vh, 86px); padding-top: 17px; border-top: 1px solid var(--fp-cs-line); font-size: 9px; }
.fp-cs-bottomline span:last-child { color: var(--fp-cs-gold); }
.fp-cs-footer { padding-top: 21px; border-top: 1px solid var(--fp-cs-line); }
.fp-cs-footer span:last-child { color: var(--fp-cs-gold); }

@keyframes fp-cs-float { 0%, 100% { transform: rotateX(calc(var(--fp-cs-my) * -8deg)) rotateY(calc(var(--fp-cs-mx) * 10deg)) translateY(-7px) rotateZ(-.8deg); } 50% { transform: rotateX(calc(var(--fp-cs-my) * -8deg)) rotateY(calc(var(--fp-cs-mx) * 10deg)) translateY(10px) rotateZ(.8deg); } }
@keyframes fp-cs-orbit { from { rotate: 0deg; } to { rotate: 360deg; } }
@keyframes fp-cs-pulse { 0%, 100% { opacity: .55; transform: scale(.92); } 50% { opacity: .95; transform: scale(1.07); } }
@keyframes fp-cs-blink { 0%, 100% { opacity: .45; } 50% { opacity: 1; } }
@keyframes fp-cs-click { 0% { transform: scale(1) rotateZ(0); } 35% { transform: scale(1.08) rotateZ(-4deg); } 70% { transform: scale(.96) rotateZ(3deg); } 100% { transform: scale(1) rotateZ(0); } }

@media (max-width: 620px) {
  .fp-cs-shell { padding-inline: 20px; }
  .fp-cs-header, .fp-cs-footer, .fp-cs-bottomline { letter-spacing: .12em; font-size: 8px; }
  .fp-cs-index { display: none; }
  .fp-cs-content { padding-top: 42px; }
  .fp-cs-logo-button { width: min(64vw, 245px); margin-bottom: 27px; }
  .fp-cs-copy h1 { font-size: clamp(36px, 11.3vw, 54px); }
  .fp-cs-copy p { font-size: 14px; line-height: 1.7; max-width: 330px; }
  .fp-cs-bottomline { align-items: flex-start; flex-direction: column; gap: 7px; margin-top: 43px; }
}

@media (max-height: 700px) and (min-width: 621px) {
  .fp-cs-content { padding-block: 28px; }
  .fp-cs-label { margin-bottom: 18px; }
  .fp-cs-logo-button { width: 175px; margin-bottom: 22px; }
  .fp-cs-copy h1 { font-size: clamp(34px, 5vw, 60px); }
  .fp-cs-copy p { margin-top: 15px; font-size: 14px; }
  .fp-cs-bottomline { margin-top: 31px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; scroll-behavior: auto !important; }
  .fp-cs-logo-button { transform: none; }
  .fp-cs-logo-image { transform: none; }
}
