:root {
  --tangerine-cake: #FF9B2F;
  --soda-cyan: #21E6FF;
  --rice-paper: #FFF5D8;
  --confetti-pink: #FF4FB8;
  --dance-floor-ink: #171126;
  --lilac-fog: #BFA7FF;
  --lime-jelly: #B8FF3D;
  --font-display: Bungee, Impact, Haettenschweiler, "Arial Black", sans-serif;
  --font-jp: "Noto Sans JP", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;
  --font-body: "DM Sans", Inter, ui-sans-serif, system-ui, sans-serif;
  --font-hand: Gaegu, "Comic Sans MS", "Marker Felt", cursive;
}

* { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
  margin: 0;
  overflow-x: hidden;
  color: var(--rice-paper);
  background:
    radial-gradient(circle at 20% 10%, rgba(255, 79, 184, .22), transparent 28rem),
    radial-gradient(circle at 78% 14%, rgba(33, 230, 255, .18), transparent 24rem),
    var(--dance-floor-ink);
  font-family: var(--font-body);
}

button { font: inherit; color: inherit; }

.party-track { width: 100%; }

.party-room {
  position: relative;
  min-height: 100vh;
  overflow: hidden;
  padding: clamp(1.5rem, 4vw, 4.5rem);
  isolation: isolate;
}

.party-room::before,
.party-room::after {
  content: "";
  position: absolute;
  pointer-events: none;
  z-index: -1;
}

.party-room::before {
  inset: 0;
  background-image:
    radial-gradient(circle, rgba(255,245,216,.9) 0 .12rem, transparent .14rem),
    radial-gradient(circle, rgba(184,255,61,.75) 0 .1rem, transparent .12rem),
    radial-gradient(circle, rgba(255,79,184,.72) 0 .16rem, transparent .18rem);
  background-size: 7rem 6rem, 9rem 8rem, 11rem 10rem;
  opacity: .22;
  animation: confettiDrift 20s linear infinite;
}

.party-room::after {
  width: 52vw;
  height: 52vw;
  border-radius: 50%;
  filter: blur(2.5rem);
  opacity: .45;
  right: -18vw;
  top: -12vw;
}

.floorplan {
  position: fixed;
  right: 1rem;
  top: 1rem;
  width: 12.5rem;
  height: 10.8rem;
  z-index: 30;
  padding: 1rem;
  transform: rotate(2deg);
  color: var(--dance-floor-ink);
  background: var(--rice-paper);
  border: .2rem solid var(--dance-floor-ink);
  border-radius: 1.1rem .35rem 1.3rem .45rem;
  box-shadow: .55rem .55rem 0 var(--confetti-pink), -.25rem .25rem 0 var(--soda-cyan);
}

.floorplan-title {
  font-family: var(--font-hand);
  font-size: 1rem;
  margin-bottom: .35rem;
}

.map-room {
  position: absolute;
  border: .12rem solid var(--dance-floor-ink);
  background: var(--lilac-fog);
  color: var(--dance-floor-ink);
  border-radius: .55rem;
  height: 2rem;
  min-width: 3.05rem;
  font-size: .68rem;
  font-weight: 900;
  cursor: pointer;
  text-transform: uppercase;
  box-shadow: .18rem .18rem 0 rgba(23,17,38,.9);
  transition: transform .24s, background .24s;
}

.map-room.active { background: var(--lime-jelly); transform: scale(1.08) rotate(-5deg); }
.map-room:nth-of-type(1) { left: .9rem; top: 3rem; }
.map-room:nth-of-type(2) { left: 4.2rem; top: 2.35rem; }
.map-room:nth-of-type(3) { right: 1rem; top: 4rem; }
.map-room:nth-of-type(4) { left: 2rem; bottom: 2.1rem; }
.map-room:nth-of-type(5) { left: 5.8rem; bottom: 1.2rem; }
.map-room:nth-of-type(6) { right: 1.15rem; bottom: 2.9rem; }
.map-path {
  position: absolute;
  inset: 3.15rem 1.35rem 1.8rem 1.35rem;
  border: .16rem dashed var(--confetti-pink);
  border-radius: 45% 28% 38% 32%;
  z-index: -1;
}

.room-label {
  position: fixed;
  left: 1rem;
  bottom: 1rem;
  z-index: 31;
  padding: .7rem 1rem;
  background: var(--dance-floor-ink);
  border: .16rem solid var(--soda-cyan);
  color: var(--rice-paper);
  font-family: var(--font-jp);
  font-weight: 900;
  border-radius: 999px;
  box-shadow: 0 0 1.7rem rgba(33,230,255,.35);
}

.wristband-label {
  display: inline-block;
  padding: .45rem .8rem;
  background: repeating-linear-gradient(90deg, var(--lime-jelly) 0 .7rem, #dfff8f .7rem 1.4rem);
  color: var(--dance-floor-ink);
  border: .13rem solid var(--dance-floor-ink);
  border-radius: 999px;
  font-family: var(--font-jp);
  font-weight: 900;
  letter-spacing: .04em;
  text-transform: uppercase;
  box-shadow: .22rem .22rem 0 var(--confetti-pink);
}

.floor-arrow {
  position: absolute;
  right: clamp(1.3rem, 5vw, 5rem);
  bottom: clamp(1.2rem, 4vw, 3.5rem);
  z-index: 8;
  border: .18rem solid var(--dance-floor-ink);
  background: var(--rice-paper);
  color: var(--dance-floor-ink);
  padding: .85rem 1.15rem;
  border-radius: 999px;
  font-family: var(--font-hand);
  font-size: 1.25rem;
  cursor: pointer;
  box-shadow: .35rem .35rem 0 var(--lime-jelly);
  transition: transform .25s, box-shadow .25s;
}

.floor-arrow:hover { transform: translate(-.2rem, -.2rem) rotate(-3deg); box-shadow: .55rem .55rem 0 var(--confetti-pink); }

.sticker-note {
  background: var(--rice-paper);
  color: var(--dance-floor-ink);
  font-family: var(--font-hand);
  font-size: clamp(1.05rem, 2vw, 1.45rem);
  line-height: 1.04;
  border: .14rem solid var(--dance-floor-ink);
  box-shadow: .35rem .35rem 0 rgba(23,17,38,.85);
}

.room-doorbell {
  display: grid;
  place-items: center;
  background:
    radial-gradient(circle at 50% 65%, rgba(255,79,184,.28), transparent 24rem),
    linear-gradient(135deg, var(--dance-floor-ink), #25153e 55%, #100b1b);
}

.room-doorbell::after { background: var(--soda-cyan); }

.bass-ring {
  position: absolute;
  width: 38rem;
  height: 38rem;
  border: .2rem solid rgba(255,79,184,.5);
  border-radius: 50%;
  animation: bassPulse 2.5s ease-in-out infinite;
}
.ring-two { animation-delay: 1.2s; border-color: rgba(33,230,255,.45); }

.paper-doorway {
  position: absolute;
  left: -8vw;
  top: 8vh;
  width: 24vw;
  height: 78vh;
  background: var(--rice-paper);
  transform: rotate(-9deg);
  box-shadow: .7rem .7rem 0 var(--confetti-pink);
}

.buzzer-panel {
  position: relative;
  width: min(48rem, 86vw);
  min-height: 34rem;
  padding: 2rem;
  transform: rotate(-5deg);
  background: linear-gradient(145deg, #322449, #1d1530);
  border: .45rem solid var(--rice-paper);
  border-radius: 2.2rem;
  box-shadow: 1.2rem 1.2rem 0 rgba(0,0,0,.35), 0 0 5rem rgba(33,230,255,.25);
}

.panel-screws i {
  position: absolute;
  width: 1.2rem;
  height: 1.2rem;
  border-radius: 50%;
  background: var(--tangerine-cake);
  border: .16rem solid var(--dance-floor-ink);
}
.panel-screws i:nth-child(1) { left: 1rem; top: 1rem; }
.panel-screws i:nth-child(2) { right: 1rem; top: 1rem; }
.panel-screws i:nth-child(3) { left: 1rem; bottom: 1rem; }
.panel-screws i:nth-child(4) { right: 1rem; bottom: 1rem; }

.domain-tape {
  display: inline-block;
  margin: 1rem 0 1.5rem;
  padding: .55rem 1rem;
  transform: rotate(4deg);
  background: var(--rice-paper);
  color: var(--dance-floor-ink);
  font-family: var(--font-display);
  font-size: clamp(2.6rem, 7vw, 6rem);
  line-height: .9;
  letter-spacing: .02em;
  text-shadow: .07em .07em 0 var(--lilac-fog);
}

.buzzer-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(5rem, 1fr));
  gap: 1rem;
}

.buzzer-button {
  position: relative;
  min-height: 6.5rem;
  border: .18rem solid var(--rice-paper);
  border-radius: 1.25rem;
  background: #0d0920;
  cursor: pointer;
  overflow: hidden;
  box-shadow: inset 0 0 1.5rem rgba(255,245,216,.14), .32rem .32rem 0 rgba(0,0,0,.35);
}
.buzzer-button span { font-family: var(--font-display); font-size: 1.5rem; }
.buzzer-button em { display: block; font-family: var(--font-hand); color: var(--rice-paper); font-style: normal; }
.buzzer-button.sleepy { color: rgba(255,245,216,.45); }
.buzzer-button.glowing {
  grid-column: span 2;
  color: var(--dance-floor-ink);
  background: radial-gradient(circle at 50% 45%, var(--soda-cyan), var(--lime-jelly) 52%, var(--confetti-pink));
  animation: buttonVibrate 1.7s infinite, glowBeat 2.4s infinite;
}

.note-door { position: absolute; right: -2rem; bottom: 2.2rem; width: 16rem; padding: 1rem; transform: rotate(9deg); }
.streamer { position: absolute; width: 17rem; height: 1.2rem; background: repeating-linear-gradient(90deg, var(--confetti-pink) 0 1rem, var(--soda-cyan) 1rem 2rem, var(--lime-jelly) 2rem 3rem); border-radius: 99px; animation: streamerWind 3s ease-in-out infinite; }
.streamer-a { top: 15%; right: 12%; transform: rotate(22deg); }
.streamer-b { bottom: 18%; left: 13%; transform: rotate(-31deg); animation-delay: .7s; }

.room-coat {
  background: radial-gradient(circle at 35% 52%, rgba(191,167,255,.33), transparent 28rem), linear-gradient(120deg, #201333, #171126 70%);
}
.room-coat::after { background: var(--confetti-pink); left: -20vw; right: auto; top: 8vh; }

.room-title-stack { max-width: 50rem; position: relative; z-index: 3; }
.room-title-stack h2,
.karaoke-booth h2,
.tabletop h2,
.night-card h2,
.final-invite h2 {
  margin: .8rem 0;
  font-family: var(--font-display);
  font-size: clamp(2.6rem, 8vw, 6.5rem);
  line-height: .85;
  text-transform: uppercase;
  text-shadow: .07em .07em 0 var(--confetti-pink), -.04em .04em 0 var(--soda-cyan);
}

.coat-orbit {
  position: absolute;
  width: min(62vw, 43rem);
  aspect-ratio: 1;
  right: 8vw;
  top: 18vh;
  border: .2rem dashed rgba(255,245,216,.45);
  border-radius: 50%;
  animation: orbitSpin 18s linear infinite;
}
.coat-piece {
  position: absolute;
  width: 13rem;
  height: 8rem;
  display: grid;
  place-items: center;
  color: var(--dance-floor-ink);
  border: .2rem solid var(--dance-floor-ink);
  border-radius: 45% 55% 50% 35%;
  font-family: var(--font-hand);
  font-size: 1.5rem;
  box-shadow: .4rem .4rem 0 rgba(0,0,0,.35);
}
.coat-pink { background: var(--confetti-pink); left: 7%; top: 13%; }
.coat-cyan { background: var(--soda-cyan); right: 3%; top: 24%; }
.coat-lime { background: var(--lime-jelly); left: 28%; bottom: 0; }
.coat-orange { background: var(--tangerine-cake); right: 21%; bottom: 18%; }
.jelly-heart { position: absolute; left: 39%; top: 37%; width: 8rem; height: 8rem; background: var(--lilac-fog); transform: rotate(45deg); border-radius: 35% 18% 40% 18%; box-shadow: 0 0 2rem var(--lilac-fog); }
.orbit-note { position: absolute; width: 12rem; padding: .9rem; left: 18%; top: 45%; transform: rotate(-18deg); }

.polaroid-frame { position: absolute; width: 12rem; padding: .7rem .7rem 2rem; background: var(--rice-paper); color: var(--dance-floor-ink); border: .15rem solid var(--dance-floor-ink); box-shadow: .45rem .45rem 0 var(--soda-cyan); font-family: var(--font-hand); }
.frame-one { left: 7vw; bottom: 14vh; transform: rotate(-13deg); }
.frame-two { left: 25vw; bottom: 7vh; transform: rotate(9deg); }
.silhouette { height: 8rem; background: radial-gradient(circle at 42% 36%, var(--confetti-pink) 0 1.7rem, transparent 1.8rem), radial-gradient(circle at 58% 52%, var(--soda-cyan) 0 2.1rem, transparent 2.2rem), var(--dance-floor-ink); }

.room-karaoke { background: linear-gradient(160deg, #100a1e, #241a42 55%, #120b22); }
.room-karaoke::after { background: var(--lilac-fog); }
.karaoke-booth { position: relative; margin: 6vh auto 0; width: min(72rem, 88vw); padding: clamp(1.5rem, 4vw, 3rem); border-radius: 3rem; background: linear-gradient(145deg, rgba(255,79,184,.18), rgba(33,230,255,.08)); border: .22rem solid var(--lilac-fog); box-shadow: inset 0 0 4rem rgba(0,0,0,.45), 0 0 5rem rgba(191,167,255,.22); }
.karaoke-screen { position: relative; padding: 2rem; min-height: 20rem; background: #080613; border: .2rem solid var(--rice-paper); border-radius: 1.2rem; overflow: hidden; }
.karaoke-screen::before { content:""; position:absolute; inset:0; background: linear-gradient(90deg, transparent, rgba(255,79,184,.15), transparent); animation: lyricSweep 3.5s linear infinite; }
.karaoke-line { position: relative; z-index: 2; margin: .65rem 0; padding: .55rem .9rem; width: max-content; max-width: 95%; font-size: clamp(1.45rem, 4vw, 3.8rem); font-family: var(--font-display); line-height: .95; text-transform: uppercase; }
.line-hot { color: var(--confetti-pink); text-shadow: 0 0 1rem var(--confetti-pink); animation: lyricBounce 2s ease-in-out infinite; }
.line-jp { color: var(--soda-cyan); font-family: var(--font-jp); animation: lyricBounce 2.2s ease-in-out infinite .3s; }
.line-soft { color: var(--rice-paper); animation: lyricBounce 2.4s ease-in-out infinite .6s; }
.lyric-progress { position: absolute; left: 2rem; right: 2rem; bottom: 1.5rem; height: 1rem; border: .13rem solid var(--rice-paper); border-radius: 99px; overflow: hidden; }
.lyric-progress span { display: block; height: 100%; width: 40%; background: linear-gradient(90deg, var(--lime-jelly), var(--confetti-pink), var(--soda-cyan)); animation: progressSweep 2.8s ease-in-out infinite alternate; }
.mic-cable { position: absolute; width: 26rem; height: 14rem; right: -3rem; bottom: 2rem; border: .35rem solid transparent; border-bottom-color: var(--soda-cyan); border-left-color: var(--soda-cyan); border-radius: 50%; transform: rotate(-18deg); }
.speech-balloon { position: absolute; display: grid; place-items: center; border-radius: 50%; width: 8.4rem; height: 7.3rem; background: var(--rice-paper); color: var(--dance-floor-ink); border: .16rem solid var(--dance-floor-ink); font-family: var(--font-hand); font-size: 1.3rem; animation: balloonBob 3.2s ease-in-out infinite; }
.balloon-one { right: 8%; top: 8%; }
.balloon-two { left: 5%; bottom: 8%; background: var(--lime-jelly); animation-delay: .9s; }

.room-kitchen { background: radial-gradient(circle at 45% 44%, rgba(255,155,47,.33), transparent 28rem), linear-gradient(120deg, #211125, #171126); }
.room-kitchen::after { background: var(--tangerine-cake); }
.tabletop { position: relative; margin: 3vh auto 0; width: min(74rem, 90vw); min-height: 38rem; padding: 2rem; border-radius: 45% 38% 46% 34%; background: var(--tangerine-cake); color: var(--dance-floor-ink); border: .25rem solid var(--dance-floor-ink); box-shadow: 1rem 1rem 0 var(--confetti-pink), inset 0 0 4rem rgba(255,245,216,.35); transform: rotate(-2deg); }
.tabletop h2 { color: var(--rice-paper); text-shadow: .07em .07em 0 var(--dance-floor-ink), -.04em .04em 0 var(--confetti-pink); max-width: 47rem; }
.plate { position: absolute; width: 13rem; height: 13rem; border-radius: 50%; background: var(--rice-paper); border: .18rem solid var(--dance-floor-ink); box-shadow: inset 0 0 0 1.7rem rgba(33,230,255,.22), .45rem .45rem 0 rgba(23,17,38,.35); display: grid; place-items: center; font-family: var(--font-display); }
.plate-one { right: 11%; top: 21%; }
.plate-two { left: 9%; bottom: 10%; }
.plate i { width: 5rem; height: 5rem; background: var(--confetti-pink); display:block; clip-path: polygon(50% 0, 100% 85%, 0 85%); }
.plastic-cup { position: absolute; right: 31%; bottom: 17%; width: 10rem; height: 13rem; border: .2rem solid var(--dance-floor-ink); background: linear-gradient(100deg, rgba(33,230,255,.5), rgba(255,245,216,.7)); color: var(--dance-floor-ink); clip-path: polygon(14% 0, 86% 0, 72% 100%, 28% 100%); cursor: pointer; font-family: var(--font-hand); font-size: 1.25rem; transition: transform .35s; }
.plastic-cup.lifted { transform: translateY(-2.5rem) rotate(8deg); }
.plastic-cup em { display: block; font-size: 1.8rem; color: var(--confetti-pink); font-style: normal; }
.secret-note { position: absolute; left: 33%; bottom: 7%; width: 18rem; padding: 1rem; opacity: 0; transform: rotate(-7deg) translateY(1rem); transition: opacity .35s, transform .35s; }
.secret-note.visible { opacity: 1; transform: rotate(-7deg) translateY(0); }
.soda-bottle { position: absolute; width: 4rem; height: 16rem; border-radius: 1rem 1rem 1.7rem 1.7rem; border: .18rem solid var(--dance-floor-ink); background: linear-gradient(90deg, var(--soda-cyan), var(--lime-jelly)); box-shadow: .35rem .35rem 0 rgba(23,17,38,.35); }
.bottle-a { left: 24%; top: 22%; transform: rotate(17deg); }
.bottle-b { right: 6%; bottom: 9%; transform: rotate(-28deg); background: linear-gradient(90deg, var(--lilac-fog), var(--confetti-pink)); }
.candle-row { position: absolute; right: 25%; top: 13%; display:flex; gap:.55rem; }
.candle-row i { width: .75rem; height: 4rem; background: var(--rice-paper); border: .1rem solid var(--dance-floor-ink); position:relative; }
.candle-row i::before { content:""; position:absolute; left:-.15rem; top:-.95rem; width:1rem; height:1.1rem; background: var(--lime-jelly); border-radius:50% 50% 45% 45%; box-shadow:0 0 1rem var(--lime-jelly); }

.room-balcony { background: linear-gradient(180deg, #100920, #211b4e 56%, #171126); }
.room-balcony::after { background: var(--soda-cyan); top: 20vh; }
.balcony-rail { position: absolute; left: 0; right: 0; bottom: 20vh; height: 1.1rem; background: var(--rice-paper); box-shadow: 0 2.5rem 0 rgba(255,245,216,.55), 0 5rem 0 rgba(255,245,216,.28); }
.night-card { position: relative; z-index: 3; max-width: 62rem; margin-top: 8vh; }
.night-card p, .final-invite p { max-width: 38rem; font-size: clamp(1.15rem, 2vw, 1.55rem); line-height: 1.45; }
.balloon-message { position: absolute; display:grid; place-items:center; width: clamp(7rem, 13vw, 12rem); height: clamp(7rem, 13vw, 12rem); border-radius: 50% 50% 45% 55%; color: var(--dance-floor-ink); border: .18rem solid var(--dance-floor-ink); font-family: var(--font-hand); font-size: clamp(1.3rem, 3vw, 2.1rem); box-shadow: 0 0 2rem currentColor; animation: balloonBob 4s ease-in-out infinite; }
.moon-a { right: 13%; top: 15%; background: var(--lilac-fog); }
.moon-b { left: 18%; bottom: 25%; background: var(--soda-cyan); animation-delay: .8s; }
.moon-c { right: 38%; bottom: 33%; background: var(--rice-paper); animation-delay: 1.6s; }
.balloon-string { position: absolute; width: .15rem; height: 14rem; background: rgba(255,245,216,.8); animation: streamerWind 4s ease-in-out infinite; }
.string-a { right: 18%; top: 34%; }.string-b { left: 24%; bottom: 10%; }

.room-last { background: radial-gradient(circle at 50% 50%, rgba(255,79,184,.22), transparent 34rem), #080511; display: grid; place-items: center; }
.dance-canvas { position: absolute; inset: 0; width: 100%; height: 100%; }
.final-invite { position: relative; z-index: 3; width: min(48rem, 84vw); padding: 2rem; transform: rotate(-4deg); background: rgba(255,245,216,.92); color: var(--dance-floor-ink); border: .2rem solid var(--dance-floor-ink); border-radius: 1.3rem 3rem 1.8rem .8rem; box-shadow: .8rem .8rem 0 var(--confetti-pink), 0 0 4rem rgba(184,255,61,.25); }
.final-invite h2 { color: var(--dance-floor-ink); text-shadow: .07em .07em 0 var(--soda-cyan), -.04em .04em 0 var(--confetti-pink); }
.disco-fragments i { position: absolute; width: 3rem; height: 3rem; background: linear-gradient(135deg, var(--soda-cyan), var(--rice-paper)); transform: rotate(45deg); opacity:.8; animation: discoTwinkle 2.5s ease-in-out infinite; }
.disco-fragments i:nth-child(1){left:8%;top:16%;}.disco-fragments i:nth-child(2){left:22%;bottom:14%;animation-delay:.4s}.disco-fragments i:nth-child(3){right:13%;top:19%;animation-delay:.8s}.disco-fragments i:nth-child(4){right:25%;bottom:12%;animation-delay:1.1s}.disco-fragments i:nth-child(5){left:49%;top:9%;animation-delay:1.5s}.disco-fragments i:nth-child(6){right:45%;bottom:20%;animation-delay:1.9s}

.cursor-confetti { position: fixed; inset: 0; pointer-events: none; z-index: 100; }
.cursor-dot { position: absolute; width: .55rem; height: .55rem; border-radius: 50%; animation: dotFade .7s ease-out forwards; }

@keyframes bassPulse { 0%,100% { transform: scale(.78); opacity: .1; } 45% { transform: scale(1.08); opacity: .42; } }
@keyframes buttonVibrate { 0%,100% { transform: translate(0,0); } 12% { transform: translate(.08rem,-.05rem); } 24% { transform: translate(-.07rem,.05rem); } 36% { transform: translate(.04rem,.07rem); } }
@keyframes glowBeat { 0%,100% { box-shadow: 0 0 1rem var(--soda-cyan), .32rem .32rem 0 rgba(0,0,0,.35); } 50% { box-shadow: 0 0 3rem var(--lime-jelly), 0 0 5rem var(--confetti-pink); } }
@keyframes streamerWind { 0%,100% { border-radius: 35% 65% 30% 70%; } 50% { border-radius: 70% 30% 65% 35%; transform: translateY(.6rem) rotate(var(--twist, 8deg)); } }
@keyframes orbitSpin { to { transform: rotate(360deg); } }
@keyframes lyricSweep { from { transform: translateX(-100%); } to { transform: translateX(100%); } }
@keyframes lyricBounce { 0%,100% { transform: translateX(0); } 50% { transform: translateX(1.2rem); } }
@keyframes progressSweep { from { width: 18%; } to { width: 96%; } }
@keyframes balloonBob { 0%,100% { transform: translateY(0) rotate(-3deg); } 50% { transform: translateY(-1.2rem) rotate(4deg); } }
@keyframes confettiDrift { to { background-position: 9rem 8rem, -7rem 10rem, 13rem -6rem; } }
@keyframes discoTwinkle { 0%,100% { opacity:.35; transform: rotate(45deg) scale(.75); } 50% { opacity:1; transform: rotate(90deg) scale(1.1); } }
@keyframes dotFade { to { opacity: 0; transform: translate(var(--dx), var(--dy)) scale(.2) rotate(180deg); } }

@media (max-width: 760px) {
  .floorplan { transform: scale(.78) rotate(2deg); transform-origin: top right; }
  .buzzer-grid { grid-template-columns: 1fr 1fr; }
  .buzzer-button.glowing { grid-column: span 2; }
  .note-door { right: 1rem; bottom: -4rem; }
  .coat-orbit { position: relative; width: 92vw; right: auto; top: auto; margin-top: 3rem; }
  .polaroid-frame { display: none; }
  .tabletop { min-height: 48rem; border-radius: 2rem; }
  .plate-one { right: 4%; top: 30%; }
  .plastic-cup { right: 24%; bottom: 20%; }
}
