@import url('https://fonts.googleapis.com/css2?family=DM+Mono:wght@300;400;500&family=Syne:wght@600;700;800&display=swap');

:root {
  --ink: #070a13;
  --navy: #0a1734;
  --red: #ff241b;
  --cream: #fff3d7;
  --muted: #a9adba;
  --mx: 50%;
  --my: 38%;
}

* { box-sizing: border-box; }

html {
  scroll-behavior: smooth;
  background: var(--ink);
  overflow-x: hidden;
}

body {
  margin: 0;
  min-width: 320px;
  overflow-x: hidden;
  color: var(--cream);
  background:
    radial-gradient(circle at var(--mx) var(--my), rgba(255, 36, 27, .18), transparent 26rem),
    linear-gradient(145deg, #03050a 0%, #0a0e1b 48%, #04050a 100%);
  font-family: "DM Mono", monospace;
}

body::before {
  content: "";
  position: fixed;
  inset: 0;
  z-index: -1;
  opacity: .19;
  background-image:
    repeating-linear-gradient(35deg, rgba(255,255,255,.06) 0 1px, transparent 1px 5px),
    repeating-linear-gradient(125deg, rgba(0,0,0,.5) 0 1px, transparent 1px 6px);
  pointer-events: none;
}

a, button { -webkit-tap-highlight-color: transparent; }

a:focus-visible, button:focus-visible {
  outline: 3px dashed var(--cream);
  outline-offset: 5px;
}

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.grain {
  position: fixed;
  inset: 0;
  z-index: 20;
  pointer-events: none;
  opacity: .17;
  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='.72' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.65'/%3E%3C/svg%3E");
  mix-blend-mode: soft-light;
}

.topbar {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 10;
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 22px clamp(20px, 4vw, 64px);
  mix-blend-mode: difference;
}

.brand {
  display: flex;
  gap: 10px;
  align-items: center;
  color: white;
  font: 800 1.3rem/1 "Syne", sans-serif;
  text-decoration: none;
}

.brand-heart { color: var(--red); transform: rotate(-9deg); }

nav { display: flex; gap: clamp(16px, 3vw, 36px); }

nav a {
  color: white;
  font-size: .72rem;
  letter-spacing: .14em;
  text-decoration: none;
}

nav a::after {
  content: "";
  display: block;
  width: 0;
  height: 1px;
  margin-top: 4px;
  background: currentColor;
  transition: width .25s ease;
}

nav a:hover::after { width: 100%; }

.hero {
  position: relative;
  min-height: 100svh;
  display: grid;
  place-items: center;
  padding: 94px 5vw 54px;
  isolation: isolate;
}

.hero-copy {
  position: absolute;
  z-index: 3;
  left: clamp(24px, 7vw, 110px);
  top: 27%;
  pointer-events: none;
}

.eyebrow {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0 0 10px;
  font-size: clamp(.57rem, .8vw, .72rem);
  letter-spacing: .22em;
}

.eyebrow span {
  width: 32px;
  border-top: 2px dashed var(--cream);
}

.visual-title {
  margin: 0;
  width: clamp(320px, 44vw, 670px);
}

.visual-title img {
  display: block;
  width: 100%;
  height: auto;
  filter: drop-shadow(0 15px 24px rgba(0,0,0,.46));
}

.intro {
  margin: 34px 0 0 1vw;
  font-size: clamp(.82rem, 1.2vw, 1.1rem);
  line-height: 1.7;
  letter-spacing: .02em;
  text-shadow: 0 2px 5px var(--ink), 0 0 14px var(--ink), 0 0 14px var(--ink);
}

.intro em { color: var(--red); font-style: normal; }

.floating-decor {
  position: absolute;
  z-index: 4;
  height: auto;
  pointer-events: none;
  user-select: none;
  transform: translate3d(var(--decor-x, 0), var(--decor-y, 0), 0) rotate(var(--decor-rotate, 0deg));
  transition: transform .2s ease-out;
  filter: drop-shadow(0 18px 22px rgba(0,0,0,.42));
}

.hero-flower {
  --decor-rotate: 11deg;
  top: 11%;
  right: 4%;
  width: clamp(90px, 13vw, 185px);
  opacity: .82;
}

.hero-thread {
  --decor-rotate: -14deg;
  right: 3%;
  bottom: 3%;
  width: clamp(120px, 18vw, 260px);
  opacity: .78;
}

.art-wrap {
  position: relative;
  z-index: 2;
  width: min(77vw, 1120px);
  margin-left: 14vw;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--cream);
  cursor: pointer;
  transform: translate3d(var(--shift-x, 0), var(--shift-y, 0), 0) rotate(var(--tilt, -1deg));
  transition: transform .18s ease-out, filter .2s ease;
}

.art-wrap::before {
  content: "";
  position: absolute;
  inset: 12% 15%;
  z-index: -1;
  background: var(--red);
  filter: blur(80px);
  opacity: .22;
}

.art-wrap img {
  display: block;
  width: 100%;
  height: auto;
  filter: drop-shadow(0 30px 40px rgba(0,0,0,.45));
  user-select: none;
}

.art-wrap:hover { filter: saturate(1.12) brightness(1.04); }
.art-wrap.beat img { animation: heartbeat .7s cubic-bezier(.2,.8,.2,1); }

.thread-label {
  position: absolute;
  z-index: 4;
  right: 8%;
  bottom: 16%;
  padding: 9px 13px;
  border: 1px dashed var(--navy);
  border-radius: 50%;
  color: var(--navy);
  background: var(--cream);
  font-size: .63rem;
  text-transform: uppercase;
  transform: rotate(8deg);
}

.pulse-ring {
  position: absolute;
  left: 53%;
  top: 49%;
  width: 10px;
  height: 10px;
  border: 2px solid var(--cream);
  border-radius: 50%;
  opacity: 0;
}

.art-wrap.beat .pulse-ring { animation: ring .7s ease-out; }

.ticker {
  position: absolute;
  z-index: 1;
  color: rgba(255,243,215,.12);
  font: 800 clamp(3rem, 7vw, 7rem)/1 "Syne", sans-serif;
  white-space: nowrap;
  letter-spacing: -.06em;
  writing-mode: vertical-rl;
  user-select: none;
}

.ticker-left { left: -1.5vw; top: 8%; transform: rotate(180deg); }
.ticker-right { right: -2vw; bottom: 4%; }

.scroll-note {
  position: absolute;
  right: clamp(22px, 5vw, 80px);
  bottom: 28px;
  color: var(--muted);
  font-size: .65rem;
  letter-spacing: .13em;
  animation: float 2s ease-in-out infinite;
}

.details {
  width: min(1180px, calc(100% - 40px));
  margin: 0 auto;
  padding: clamp(60px, 10vw, 140px) 0 80px;
}

.eye-stage {
  position: relative;
  width: min(900px, 88vw);
  margin: 0 auto clamp(45px, 8vw, 100px);
  isolation: isolate;
}

.eye-stage::before {
  content: "";
  position: absolute;
  inset: 10% 15%;
  z-index: -1;
  background: rgba(255,36,27,.32);
  filter: blur(70px);
}

.eye-stage img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 48% 52% 47% 53%;
  filter: drop-shadow(0 28px 32px rgba(0,0,0,.48));
}

.eye-stage p {
  position: absolute;
  right: 5%;
  bottom: 8%;
  margin: 0;
  padding: 10px 15px;
  border: 1px dashed var(--navy);
  border-radius: 50%;
  color: var(--navy);
  background: var(--cream);
  font-size: .63rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  transform: rotate(-6deg);
}

.statement {
  min-height: 48vh;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: clamp(20px, 5vw, 80px);
  text-align: center;
}

.statement p {
  margin: 0;
  font: 700 clamp(2.2rem, 6vw, 6.2rem)/.94 "Syne", sans-serif;
  letter-spacing: -.06em;
}

.statement-patch {
  width: clamp(78px, 13vw, 170px);
  height: auto;
  flex: 0 0 auto;
  filter: drop-shadow(9px 12px 0 rgba(255,36,27,.8));
  user-select: none;
}

.palm-patch { transform: rotate(-11deg); }
.peace-patch { width: clamp(70px, 10vw, 135px); transform: rotate(9deg); }

.contract-card {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding: clamp(24px, 5vw, 56px);
  border: 2px dashed rgba(255,243,215,.65);
  border-radius: 40px 28px 44px 31px;
  background: rgba(10,23,52,.72);
  box-shadow: inset 0 0 60px rgba(0,0,0,.36), 12px 15px 0 rgba(255,36,27,.9);
}

.contract-card::before {
  content: "";
  position: absolute;
  inset: 9px;
  border: 1px solid rgba(255,243,215,.12);
  border-radius: inherit;
  pointer-events: none;
}

.label {
  margin: 0 0 12px;
  color: var(--muted);
  font-size: .7rem;
  letter-spacing: .18em;
  text-transform: uppercase;
}

.address {
  margin: 0;
  max-width: min(760px, 68vw);
  overflow-wrap: anywhere;
  color: var(--cream);
  font: 700 clamp(1.15rem, 2.7vw, 2.35rem)/1.15 "Syne", sans-serif;
  letter-spacing: -.035em;
}

.copy-button {
  position: relative;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 34px;
  min-width: 170px;
  padding: 17px 20px;
  border: 0;
  border-radius: 999px;
  color: var(--ink);
  background: var(--cream);
  font: 500 .8rem "DM Mono", monospace;
  text-transform: uppercase;
  cursor: pointer;
  transition: transform .2s ease, background .2s ease;
}

.copy-button:hover { transform: rotate(-3deg) scale(1.04); background: var(--red); }
.copy-button.copied { background: var(--red); }

.copy-status {
  position: absolute;
  right: 24px;
  bottom: -38px;
  min-height: 1em;
  color: var(--cream);
  font-size: .7rem;
}

.eye-ribbon {
  position: relative;
  width: min(620px, 76vw);
  margin: clamp(80px, 12vw, 150px) auto 0;
}

.eye-ribbon img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 52% 48% 50% 46%;
  opacity: .9;
  filter: drop-shadow(0 24px 30px rgba(0,0,0,.5));
}

.eye-ribbon span {
  position: absolute;
  left: 50%;
  bottom: -14px;
  padding: 9px 16px;
  border-radius: 999px;
  color: var(--ink);
  background: var(--cream);
  font-size: .63rem;
  letter-spacing: .14em;
  white-space: nowrap;
  text-transform: uppercase;
  transform: translateX(-50%) rotate(2deg);
}

.links-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
  margin-top: 90px;
}

.links-grid a {
  min-height: 210px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: 24px;
  border: 1px solid rgba(255,243,215,.3);
  border-radius: 16px 38px 20px 44px;
  color: var(--cream);
  background: rgba(255,255,255,.025);
  font: 700 clamp(1.3rem, 2.3vw, 2.1rem) "Syne", sans-serif;
  text-decoration: none;
  transition: color .25s ease, background .25s ease, transform .25s ease;
}

.links-grid a:nth-child(2) { border-radius: 42px 18px 38px 19px; }
.links-grid a:nth-child(3) { border-radius: 19px 43px 18px 40px; }
.links-grid a:hover { color: var(--ink); background: var(--red); transform: translateY(-8px) rotate(-1deg); }
.links-grid a > span:last-child { align-self: flex-end; font-size: 1rem; }
.link-number { color: var(--muted); font: 400 .66rem "DM Mono", monospace; }

footer {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 28px clamp(20px, 5vw, 70px);
  border-top: 1px dashed rgba(255,243,215,.25);
  color: var(--muted);
  font-size: .7rem;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.footer-heart { color: var(--red); font-size: 1.5rem; animation: heartbeat 1.7s infinite; }

.reveal {
  opacity: 0;
  transform: translateY(45px);
  transition: opacity .8s ease, transform .8s cubic-bezier(.2,.8,.2,1);
}

.reveal.visible { opacity: 1; transform: translateY(0); }

.cursor-thread {
  position: fixed;
  z-index: 30;
  width: 12px;
  height: 12px;
  border: 1px solid var(--cream);
  border-radius: 50%;
  opacity: 0;
  pointer-events: none;
  transform: translate(-50%, -50%);
  transition: opacity .2s ease, width .2s ease, height .2s ease;
  mix-blend-mode: difference;
}

@keyframes heartbeat {
  0%, 100% { transform: scale(1); }
  18% { transform: scale(1.04); }
  34% { transform: scale(.99); }
  50% { transform: scale(1.025); }
}

@keyframes ring {
  0% { opacity: .8; transform: translate(-50%, -50%) scale(1); }
  100% { opacity: 0; transform: translate(-50%, -50%) scale(35); }
}

@keyframes float { 50% { transform: translateY(8px); } }

@media (max-width: 760px) {
  .topbar { padding: 18px 20px; }
  nav { gap: 14px; }
  nav a { font-size: .6rem; }
  .hero { min-height: 920px; padding-inline: 12px; align-items: start; }
  .hero-copy { top: 135px; left: 23px; }
  .visual-title { width: min(92vw, 430px); }
  .intro { margin-top: 24px; }
  .hero-flower { top: 37%; right: -7%; width: 105px; opacity: .68; }
  .hero-thread { right: -13%; bottom: 4%; width: 160px; opacity: .65; }
  .art-wrap { width: 136vw; margin: 310px 0 0; }
  .thread-label { right: 22%; bottom: 22%; }
  .ticker { font-size: 4rem; }
  .ticker-left { top: 25%; }
  .statement { min-height: 52vh; gap: 12px; }
  .statement p { font-size: clamp(2rem, 10vw, 3.6rem); }
  .statement-patch { width: 68px; }
  .peace-patch { width: 56px; }
  .eye-stage { width: 112vw; margin-left: -16vw; }
  .eye-stage p { right: 17%; }
  .eye-ribbon { width: 100%; }
  .contract-card { align-items: flex-start; flex-direction: column; border-radius: 26px; }
  .address { max-width: 100%; font-size: clamp(1rem, 5vw, 1.35rem); line-height: 1.25; }
  .copy-button { width: 100%; }
  .links-grid { grid-template-columns: 1fr; margin-top: 70px; }
  .links-grid a { min-height: 150px; }
  footer { gap: 14px; }
}

@media (pointer: fine) {
  body, a, button { cursor: none; }
  .cursor-thread { opacity: 1; }
  body.cursor-big .cursor-thread { width: 44px; height: 44px; border-style: dashed; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation: none !important; transition-duration: .01ms !important; }
  .art-wrap { transform: none !important; }
}
