/* ===========================================================
   kaguya.monster  —  Mcbling x Heian trading-card shrine
   Palette: #1d1410 #fde4c1 #fff1d8 #e87936 #7a1e0a #f4b860 #ff7eb3 #c14a18
   Fonts: DM Serif Display, Cormorant Garamond, Fraunces, Abril Fatface
   =========================================================== */

:root{
  --sumi:#1d1410;
  --apricot:#fde4c1;
  --washi:#fff1d8;
  --tangerine:#e87936;
  --maroon:#7a1e0a;
  --gilt:#f4b860;
  --bubblegum:#ff7eb3;
  --persimmon:#c14a18;
  --sunset-grad:linear-gradient(135deg,#c14a18 0%,#e87936 45%,#f4b860 100%);
  --mouse-x:0.5;
  --mouse-y:0.5;
}

*{box-sizing:border-box;margin:0;padding:0;}

html{scroll-behavior:smooth;}

body{
  font-family:"Fraunces",Georgia,serif;
  font-size:1.0625rem;
  line-height:1.65;
  color:var(--maroon);
  background-color:var(--washi);
  background-image:
    radial-gradient(circle at 18% 12%, rgba(244,184,96,.22), transparent 38%),
    radial-gradient(circle at 84% 78%, rgba(232,121,54,.18), transparent 42%),
    radial-gradient(circle at 50% 50%, rgba(255,241,216,.6), rgba(253,228,193,.85));
  background-attachment:fixed;
  overflow-x:hidden;
  cursor:none;
}

a{color:inherit;text-decoration:none;}

::selection{background:var(--bubblegum);color:var(--sumi);}

/* ---------- custom rhinestone cursor ---------- */
.sparkle-cursor{
  position:fixed;top:0;left:0;width:18px;height:18px;
  border-radius:50%;
  background:radial-gradient(circle at 35% 30%, #fff, var(--bubblegum) 55%, #d94e84 100%);
  box-shadow:0 0 6px var(--bubblegum),0 0 14px rgba(255,126,179,.5);
  mix-blend-mode:multiply;
  transform:translate(-50%,-50%);
  pointer-events:none;z-index:9999;
  transition:width .18s ease,height .18s ease,box-shadow .18s ease;
}
.sparkle-cursor.hot{
  width:30px;height:30px;
  box-shadow:0 0 10px var(--gilt),0 0 22px rgba(244,184,96,.7),0 0 6px var(--bubblegum);
}

/* ---------- background sparkle field ---------- */
.bg-sparkle-field{
  position:fixed;inset:0;z-index:-2;pointer-events:none;
}
.bg-sparkle-field span{
  position:absolute;width:3px;height:3px;border-radius:50%;
  opacity:.10;
}

/* ===========================================================
   NAV : bedazzled chips, floating top-right at slight tilt
   =========================================================== */
.bedazzle-nav{
  position:fixed;top:18px;right:18px;z-index:80;
  display:flex;flex-wrap:wrap;gap:8px;max-width:340px;justify-content:flex-end;
  perspective:600px;
}
.nav-chip{
  display:inline-flex;align-items:center;gap:6px;
  font-family:"Fraunces",serif;font-weight:500;font-size:.66rem;letter-spacing:.13em;
  text-transform:uppercase;
  padding:6px 11px;
  color:var(--washi);
  background:var(--sunset-grad);
  border:2px solid var(--maroon);
  border-radius:999px;
  box-shadow:
    0 0 0 1px var(--gilt) inset,
    2px 3px 0 rgba(122,30,10,.45),
    0 0 8px rgba(255,126,179,.35);
  transform:rotateZ(var(--chip-rz,-3deg)) translateY(0);
  transition:transform .22s cubic-bezier(.34,1.56,.64,1),box-shadow .22s;
}
.nav-chip:nth-child(odd){--chip-rz:-4deg;}
.nav-chip:nth-child(even){--chip-rz:3deg;}
.nav-chip:hover{
  transform:rotateZ(0deg) translateY(-3px) scale(1.06);
  box-shadow:0 0 0 1px #fff inset,3px 5px 0 rgba(122,30,10,.5),0 0 16px var(--bubblegum);
}
.nav-moon{
  width:11px;height:11px;border-radius:50%;
  background:radial-gradient(circle at 35% 30%, #fff1d8, var(--gilt) 50%, var(--persimmon) 100%);
  box-shadow:0 0 5px var(--gilt);
  display:inline-block;
}

/* ===========================================================
   WORDMARK BLOCK  (not a centered hero — left-anchored broadsheet)
   =========================================================== */
.wordmark-block{
  position:relative;z-index:2;
  padding:9rem 6vw 4rem;
  max-width:1100px;
}
.kicker{
  font-family:"Fraunces",serif;font-weight:500;font-size:.78rem;letter-spacing:.28em;
  text-transform:uppercase;color:var(--persimmon);margin-bottom:1.4rem;
}
.wordmark{
  font-family:"DM Serif Display",serif;font-weight:400;
  font-size:clamp(3.5rem,10vw,8.5rem);
  letter-spacing:-0.015em;line-height:.94;
  color:var(--persimmon);
  text-shadow:
    3px 3px 0 var(--gilt),
    5px 5px 0 rgba(122,30,10,.35),
    0 0 30px rgba(255,126,179,.25);
}
.wordmark .dot{color:var(--bubblegum);text-shadow:0 0 14px var(--bubblegum);}
.subwordmark{
  font-family:"Cormorant Garamond",serif;font-style:italic;font-weight:500;
  font-size:clamp(1.2rem,2.6vw,1.85rem);
  color:var(--maroon);max-width:42ch;margin-top:1.5rem;line-height:1.4;
  text-shadow:1px 1px 0 #fff8e1;
}
.subwordmark em{color:var(--persimmon);}

/* ===========================================================
   MAIN : the 3D tilt space
   =========================================================== */
main#cardMain{
  position:relative;
  perspective:1400px;
  perspective-origin:50% 30%;
  padding:1rem 4vw 5rem;
}

/* ---------- bamboo gutter glyphs ---------- */
.bamboo-gutter{
  position:absolute;top:6rem;bottom:6rem;width:60px;
  display:flex;gap:10px;align-items:stretch;justify-content:center;
  pointer-events:none;z-index:0;opacity:.85;
}
.bamboo-left{left:.4vw;}
.bamboo-right{right:.4vw;}
.bamboo-stalk{
  width:var(--w,12px);
  background:
    repeating-linear-gradient(to bottom,
      var(--persimmon) 0, var(--persimmon) 46px,
      var(--maroon) 46px, var(--maroon) 50px);
  border-radius:3px;
  transform:rotate(var(--t,0deg));
  box-shadow:1px 0 0 rgba(122,30,10,.3);
}
@media (max-width:1000px){.bamboo-gutter{display:none;}}

/* ===========================================================
   BANDS / SECTIONS
   =========================================================== */
.band{
  position:relative;z-index:1;
  margin:0 auto;max-width:1200px;
  padding:5rem 2vw;
}
.band-head{margin-bottom:3rem;max-width:780px;padding-left:1rem;}
.band-num{
  font-family:"Abril Fatface",serif;font-size:clamp(2.5rem,6vw,5rem);
  color:var(--persimmon);display:block;line-height:1;
  text-shadow:2px 2px 0 var(--gilt);
}
.band-num-return{color:var(--gilt);text-shadow:2px 2px 0 var(--maroon);}
.band-title{
  font-family:"DM Serif Display",serif;font-weight:400;
  font-size:clamp(2.4rem,6.5vw,5.2rem);line-height:.96;letter-spacing:-0.01em;
  color:var(--maroon);margin:.4rem 0 1rem;
  text-shadow:2px 2px 0 var(--gilt);
}
.band-sub{
  font-family:"Cormorant Garamond",serif;font-style:italic;font-weight:500;
  font-size:clamp(1.15rem,2.4vw,1.7rem);color:var(--persimmon);
  line-height:1.4;text-shadow:1px 1px 0 #fff8e1;
}

/* ===========================================================
   TRADING CARD : Lisa-Frank-protective-sleeve frame, 3D tilted
   =========================================================== */
.trade-card{
  position:relative;
  transform-style:preserve-3d;
  background:
    radial-gradient(circle at 28% 18%, rgba(255,255,255,.55), transparent 40%),
    linear-gradient(155deg, var(--apricot) 0%, var(--washi) 55%, #ffe9c8 100%);
  border:6px solid var(--persimmon);
  border-radius:14px;
  padding:1.7rem 1.6rem 2.2rem;
  box-shadow:
    0 0 0 2px var(--gilt) inset,
    0 14px 30px rgba(122,30,10,.28),
    0 0 22px rgba(255,126,179,.18);
  transform:
    rotateX(calc(var(--card-rx) + (var(--mouse-y) - 0.5) * -10deg))
    rotateY(calc(var(--card-ry) + (var(--mouse-x) - 0.5) * 12deg))
    translateZ(var(--card-tz));
  transition:transform .35s cubic-bezier(.34,1.56,.64,1),box-shadow .35s;
}
.trade-card::before{
  /* glossy chrome streak */
  content:"";position:absolute;inset:6px;border-radius:9px;pointer-events:none;
  background:linear-gradient(115deg, rgba(255,255,255,.45) 0%, transparent 32%, transparent 70%, rgba(255,241,216,.4) 100%);
}
.trade-card:hover{
  transform:translateZ(46px) rotateX(0deg) rotateY(0deg);
  box-shadow:
    0 0 0 2px #fff inset,
    0 26px 50px rgba(122,30,10,.4),
    0 0 36px var(--bubblegum);
}
.trade-card.is-revealing{
  animation:cardReveal .8s cubic-bezier(.34,1.56,.64,1) both;
}
@keyframes cardReveal{
  0%{opacity:0;transform:translateZ(-200px) rotateX(-30deg);}
  100%{opacity:1;
    transform:
      rotateX(calc(var(--card-rx) + (var(--mouse-y) - 0.5) * -10deg))
      rotateY(calc(var(--card-ry) + (var(--mouse-x) - 0.5) * 12deg))
      translateZ(var(--card-tz));}
}

/* corner rhinestone ornaments */
.card-corners i{
  position:absolute;width:9px;height:9px;border-radius:50%;
  background:radial-gradient(circle at 35% 30%, #fff, var(--bubblegum) 50%, #d94e84 100%);
  box-shadow:0 0 6px #fff,0 0 10px var(--gilt);
}
.card-corners i:nth-child(1){top:-5px;left:-5px;}
.card-corners i:nth-child(2){top:-5px;right:-5px;}
.card-corners i:nth-child(3){bottom:-5px;left:-5px;}
.card-corners i:nth-child(4){bottom:-5px;right:-5px;}
.trade-card:hover .card-corners i{
  box-shadow:0 0 9px #fff,0 0 18px var(--gilt),0 0 8px var(--bubblegum);
}

.card-tag{
  display:inline-block;font-family:"Fraunces",serif;font-weight:500;
  font-size:.62rem;letter-spacing:.22em;text-transform:uppercase;
  color:var(--washi);background:var(--persimmon);
  padding:3px 9px;border-radius:999px;margin-bottom:.7rem;
  box-shadow:1px 1px 0 var(--maroon);
}
.card-numeral{
  position:absolute;top:1rem;right:1.3rem;
  font-family:"Abril Fatface",serif;font-size:clamp(2.2rem,5vw,3.4rem);
  color:var(--persimmon);line-height:1;opacity:.85;
  text-shadow:1px 1px 0 var(--gilt);
}
.card-title{
  font-family:"DM Serif Display",serif;font-weight:400;
  font-size:clamp(1.35rem,2.6vw,1.95rem);line-height:1.04;
  color:var(--maroon);margin-bottom:.7rem;letter-spacing:-0.005em;
}
.card-task{
  font-family:"Cormorant Garamond",serif;font-style:italic;font-weight:500;
  font-size:1.05rem;color:var(--persimmon);margin-bottom:.55rem;
  text-shadow:1px 1px 0 #fff8e1;
}
.card-body{font-size:.97rem;color:var(--maroon);margin-bottom:1rem;}
.card-foot{
  font-family:"Fraunces",serif;font-size:.7rem;letter-spacing:.14em;
  text-transform:uppercase;color:var(--tangerine);
}

.verdict{
  display:inline-block;font-family:"Fraunces",serif;font-weight:500;
  font-size:.64rem;letter-spacing:.16em;text-transform:uppercase;
  padding:2px 8px;border-radius:6px;margin-left:.2rem;white-space:nowrap;
}
.v-blocked{background:var(--maroon);color:var(--washi);box-shadow:1px 1px 0 var(--sumi);}
.v-pending{background:var(--bubblegum);color:var(--sumi);box-shadow:1px 1px 0 var(--persimmon);}

/* ---------- DESCENT card fan : arc of 4 ---------- */
.card-fan{
  display:grid;grid-template-columns:repeat(12,1fr);gap:1.5rem;
  align-items:start;
}
.card-fan .trade-card{grid-column:span 4;}
.card-fan .trade-card:nth-child(1){grid-column:1/span 4;margin-top:2.2rem;}
.card-fan .trade-card:nth-child(2){grid-column:4/span 4;margin-top:0;z-index:3;}
.card-fan .trade-card:nth-child(3){grid-column:7/span 4;margin-top:1.4rem;z-index:2;}
.card-fan .trade-card:nth-child(4){grid-column:9/span 4;margin-top:3rem;}

/* ---------- COURT suitor grid : 2x3 ---------- */
.suitor-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:2.2rem 1.8rem;
}
.suitor-card{padding-top:1.6rem;}
.suitor-card .card-numeral{top:auto;bottom:1.1rem;right:1.3rem;}

.kamon{
  width:74px;height:74px;float:right;margin:0 0 .4rem .8rem;
  filter:drop-shadow(1px 1px 0 var(--gilt));
}
.kamon svg{width:100%;height:100%;display:block;}

/* ---------- moon medallions ---------- */
.moon-medallion{position:relative;}
.moon-svg{display:block;width:100%;height:100%;overflow:visible;}
.rhinestone-ring circle{
  fill:#fff;
  filter:drop-shadow(0 0 4px #fff) drop-shadow(0 0 8px var(--gilt));
  animation:twinkle 4s ease-in-out infinite;
}
@keyframes twinkle{
  0%,100%{opacity:.45;}
  45%{opacity:1;}
  55%{opacity:.9;}
}
.moon-medium{
  width:120px;height:120px;
  position:absolute;top:-46px;right:6vw;z-index:4;
}
.moon-giant{
  width:min(60vmin,520px);height:min(60vmin,520px);
  margin:0 auto 1.5rem;
}

/* ===========================================================
   DIAGONAL RIBBONS : burnt-orange strips at ~7deg
   =========================================================== */
.diagonal-ribbon{
  position:relative;z-index:5;
  margin:1rem 0;
  padding:3.4rem 0;
  transform:rotate(-7deg) scaleX(1.08);
  background:var(--sunset-grad);
  box-shadow:0 0 0 3px var(--maroon) inset,0 14px 30px rgba(122,30,10,.3);
}
.ribbon-b{
  transform:rotate(6deg) scaleX(1.08);
  background:linear-gradient(135deg,var(--maroon) 0%,var(--persimmon) 50%,var(--bubblegum) 130%);
}
.ribbon-quote{
  transform:rotate(7deg);
  max-width:900px;margin:0 auto;padding:0 6vw;
  font-family:"Cormorant Garamond",serif;font-style:italic;font-weight:500;
  font-size:clamp(1.5rem,3.2vw,2.6rem);line-height:1.3;
  color:var(--washi);
  text-shadow:1px 1px 0 rgba(122,30,10,.6),0 0 18px rgba(255,241,216,.3);
}
.ribbon-b .ribbon-quote{transform:rotate(-6deg);}
.ribbon-quote cite{
  display:block;margin-top:.8rem;font-style:normal;font-family:"Fraunces",serif;
  font-size:.8rem;letter-spacing:.16em;text-transform:uppercase;color:var(--gilt);
}

/* ===========================================================
   THE RETURN : full-bleed monster card, aggressive tilt
   =========================================================== */
.band-return{max-width:1400px;padding:6rem 2vw;}
.monster-card{
  padding:4rem 2rem 4.5rem;
  border-width:8px;
  background:
    radial-gradient(circle at 50% 22%, rgba(244,184,96,.5), transparent 55%),
    linear-gradient(160deg, #ffe7c6 0%, var(--apricot) 40%, var(--washi) 100%);
  transform:
    rotateX(calc(-14deg + (var(--mouse-y) - 0.5) * -8deg))
    rotateY(calc((var(--mouse-x) - 0.5) * 8deg))
    translateZ(0);
  box-shadow:
    0 0 0 2px var(--gilt) inset,
    0 40px 70px rgba(122,30,10,.4),
    0 0 50px rgba(255,126,179,.22);
}
.monster-card:hover{
  transform:translateZ(20px) rotateX(-6deg) rotateY(0deg);
}
.monster-text{position:relative;z-index:2;max-width:780px;margin:0 auto;text-align:center;}
.return-title{
  font-size:clamp(3rem,8vw,6.5rem);color:var(--persimmon);
  text-shadow:3px 3px 0 var(--gilt),0 0 30px rgba(255,126,179,.3);
  margin:.3rem 0 1.2rem;
}
.return-lede{
  font-size:1.1rem;color:var(--maroon);margin-bottom:1.6rem;max-width:60ch;
  margin-left:auto;margin-right:auto;
}
.return-quote{
  font-family:"Cormorant Garamond",serif;font-style:italic;font-weight:500;
  font-size:clamp(1.6rem,3.6vw,2.8rem);line-height:1.3;color:var(--persimmon);
  margin:1.6rem auto;max-width:24ch;
  text-shadow:1px 1px 0 #fff8e1;
}
.return-foot{
  font-size:1.02rem;color:var(--maroon);max-width:62ch;margin:1.4rem auto 0;
}
.return-foot strong{
  font-family:"DM Serif Display",serif;color:var(--persimmon);
  font-size:1.25em;letter-spacing:.02em;
}

/* ===========================================================
   FOOTER : the bamboo cutter's receipt
   =========================================================== */
.page-footer{
  position:relative;z-index:2;
  padding:5rem 6vw 6rem;
  background:linear-gradient(180deg, transparent, rgba(253,228,193,.7) 30%);
}
.receipt-block{
  display:flex;gap:2.4rem;align-items:center;flex-wrap:wrap;
  max-width:900px;margin:0 auto;
  padding:2.4rem;
  border:3px dashed var(--persimmon);border-radius:12px;
  background:rgba(255,241,216,.6);
}
.receipt-svg{width:120px;height:120px;flex:0 0 auto;}
.receipt-meta{flex:1;min-width:260px;}
.receipt-line{
  font-family:"DM Serif Display",serif;font-size:clamp(1.3rem,3vw,2rem);
  color:var(--persimmon);margin-bottom:.6rem;
}
.receipt-sub{
  font-family:"Cormorant Garamond",serif;font-style:italic;font-weight:500;
  font-size:1.1rem;color:var(--maroon);margin-bottom:.8rem;
}
.receipt-broadcast{
  font-family:"Fraunces",serif;font-size:.78rem;letter-spacing:.1em;
  text-transform:uppercase;color:var(--tangerine);margin-bottom:.7rem;
}
.receipt-hint{font-size:.85rem;color:var(--maroon);opacity:.75;}
.receipt-hint kbd{
  font-family:"Fraunces",serif;background:var(--persimmon);color:var(--washi);
  padding:1px 7px;border-radius:5px;letter-spacing:.1em;
  box-shadow:1px 1px 0 var(--maroon);
}

/* ---------- Kaguya departure easter egg ---------- */
.moon-medium.departing,.moon-giant.departing{
  position:fixed;z-index:9000;pointer-events:none;
  animation:kaguyaLeaves 4s cubic-bezier(.16,.84,.44,1) forwards;
}
@keyframes kaguyaLeaves{
  0%{opacity:1;transform:translate(0,0) scale(1) rotate(0deg);}
  70%{opacity:1;}
  100%{opacity:0;transform:translate(120vw,-120vh) scale(.35) rotate(220deg);}
}

/* ===========================================================
   RESPONSIVE
   =========================================================== */
@media (max-width:980px){
  .suitor-grid{grid-template-columns:repeat(2,1fr);}
  .moon-medium{right:3vw;}
}
@media (max-width:680px){
  body{cursor:auto;}
  .sparkle-cursor{display:none;}
  .bedazzle-nav{max-width:none;left:8px;right:8px;justify-content:center;top:8px;}
  .wordmark-block{padding:6rem 6vw 3rem;}
  .card-fan{grid-template-columns:1fr;}
  .card-fan .trade-card,
  .card-fan .trade-card:nth-child(1),
  .card-fan .trade-card:nth-child(2),
  .card-fan .trade-card:nth-child(3),
  .card-fan .trade-card:nth-child(4){grid-column:1;margin-top:0;}
  .suitor-grid{grid-template-columns:1fr;}
  .trade-card{transform:none !important;}
  .trade-card:hover{transform:translateY(-4px) !important;}
  .diagonal-ribbon{transform:rotate(-3deg);}
  .ribbon-b{transform:rotate(3deg);}
  .ribbon-quote,.ribbon-b .ribbon-quote{transform:none;}
  .moon-medium{position:static;width:140px;height:140px;margin:1rem auto;}
}
