:root{--wine:#a88457;--primary:#c6aa7d;--font-heading:'Noto Serif TC',serif;--font-body:'Noto Sans TC',sans-serif;--bg-base:#f7f4ed;--text:#332f28;--muted:#756f63;--glass-bg:#ffffffd9;--glass-border:#cbb999;--radius:2px}html,body{height:auto;overflow-x:clip;color:var(--text);font-size:14px}body{margin:0}#app{height:auto;overflow:visible;scroll-snap-type:none;scroll-behavior:smooth}html{scroll-behavior:smooth;scroll-padding-top:80px}p{color:inherit;font-size:14px;line-height:2}a{text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer}h1,h2,h3{font-weight:400}h2{font-size:36px;letter-spacing:.09em;line-height:1.7;margin:20px 0}section,footer{height:auto;min-height:0;display:block;text-align:left;padding:95px 8%;scroll-margin-top:0}section:before,footer:before{display:none}section>*,footer>*{max-width:none;width:auto;z-index:auto;position:relative}.topbar{height:80px;position:absolute;top:0;left:0;right:0;z-index:10;color:#fff7e9;display:flex;align-items:center;justify-content:space-between;padding:0 6%;border-bottom:1px solid #fff3}.brand{font:26px Georgia,serif;letter-spacing:.06em}.brand em{font-size:20px}.brand span{font:9px var(--font-body);letter-spacing:.25em;display:inline-block;margin-left:22px;border-left:1px solid #fff5;padding-left:22px}nav{display:flex;gap:28px;align-items:center;font-size:11px;letter-spacing:.14em}.nav-reply{border:1px solid #fff7;padding:9px 17px}.eyebrow{font-size:10px;letter-spacing:.23em;color:#937247}.hero{min-height:850px;min-height:100svh;color:#fff8e9;position:relative;padding:145px 8% 100px;overflow:hidden;display:flex;align-items:center}.hero-background{position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:cover;object-position:70% 55%;z-index:0}.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,#171a17e0 0%,#232823b3 33%,#17231b20 75%),linear-gradient(0deg,#1f261b80,transparent 40%);z-index:1;width:100%;max-width:none}.hero-content{position:relative;z-index:2;width:100%;max-width:600px;text-align:left;margin:0}.hero .eyebrow{color:#d6c39f}.hero-intro{font-size:11px;letter-spacing:.07em;margin:22px 0}.hero h1{font:400 clamp(65px,6.6vw,104px)/1.1 Georgia,serif;letter-spacing:-.035em;text-shadow:none;margin:16px 0}.names{font-size:15px;letter-spacing:.35em}.gold-line{display:block;width:42px;height:1px;background:#ccb38b;margin:28px 0}.hero h2{font-size:39px;line-height:1.55;margin:22px 0 8px}.hero #subtitle{font-size:13px;letter-spacing:.12em;color:#e3ded3}.hero-venue{display:flex;flex-direction:column;gap:6px;margin:25px 0}.hero-venue strong{font:22px Georgia,serif;letter-spacing:.08em}.hero-venue span{font-size:16px;letter-spacing:.2em}.hero-venue small{font-size:10px;letter-spacing:.17em;color:#d2cbbd}.button,.primary-btn{display:inline-flex;justify-content:center;align-items:center;gap:28px;border:1px solid #a88457;background:#a88457;color:white;font-size:12px;font-weight:400;padding:13px 24px;border-radius:0;box-shadow:none;text-decoration:none;letter-spacing:.06em;min-height:48px;max-width:none}.hero .button{margin:7px 0 0;min-width:250px;background:#e9dfce;color:#34392d;border-color:#e9dfce}.button:hover{background:#8c6c45;transform:none}.hero .button:hover{background:#fff4e1}.hero-bottom{position:absolute;left:6%;right:6%;bottom:25px;width:auto;max-width:none;z-index:2;display:flex;justify-content:space-between;border-top:1px solid #fff3;padding-top:20px;font-size:9px;letter-spacing:.19em}.story{background:#f7f4ed}.story-layout{display:grid;grid-template-columns:1fr 1fr;gap:12%;align-items:center;max-width:1100px;margin:auto}.story-picture{padding:0 24px 24px 0;position:relative}.story-picture:after{content:'';position:absolute;inset:24px 0 0 24px;border:1px solid #b4a587;pointer-events:none}.story-picture img{display:block;width:100%;height:550px;object-fit:cover}.story-picture span{font:italic 18px Georgia,serif;position:absolute;bottom:3px;left:30px;z-index:1;background:#f7f4ed;color:#917044;padding:0 15px}.story-opening{color:#756f63;font-size:12px;margin-bottom:28px}.story-item{padding:0 0 23px 24px;border-left:1px solid #d7cdbd;position:relative}.story-item:before{content:'';position:absolute;left:-3px;top:6px;width:5px;height:5px;background:#a88457;border-radius:50%}.story-item small{color:#917044;font-size:10px;letter-spacing:.2em}.story-item h3{font-size:15px;letter-spacing:.1em;margin:7px 0}.story-item p{font-size:12px;color:#756f63;margin:5px 0}.details{background:#e9e6dd}.section-inner{max-width:1120px;margin:auto}.section-heading{text-align:center;margin-bottom:48px}.section-heading h2{margin:15px 0}.section-heading p{color:#756f63;font-size:12px}.event-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:7%;align-items:center}.venue{padding:36px 40px;background:#faf8f1;border:1px solid #c8b99b;backdrop-filter:none;border-radius:0;text-align:center}.venue h3{font:28px var(--font-heading);letter-spacing:.15em;margin:20px 0 8px}.venue #venue-room{font-size:10px;letter-spacing:.2em;color:#937247}.venue-rule{width:35px;height:1px;background:#b79c71;margin:23px auto}.event-date{font:20px var(--font-heading)}#event-time{font-size:12px}address{font-style:normal;font-size:12px;line-height:1.8}.actions{display:flex;justify-content:center;align-items:center;gap:23px;margin:25px 0}.text-link{font-size:11px;text-decoration:underline;text-underline-offset:5px}.venue details{font-size:11px;color:#756f63}.venue details p{font-size:11px}summary{cursor:pointer}.time-note{font-size:10px!important;color:#84796b;margin-bottom:0}.schedule-item{display:grid;grid-template-columns:60px 1fr;gap:22px;padding:24px 0;border-bottom:1px solid #d0c7b8}.schedule-item time{font:24px Georgia,serif;color:#947144}.schedule-item h3{font-size:16px;letter-spacing:.06em;margin:0}.schedule-item p{font-size:11px;margin:8px 0;color:#756f63}.countdown-wrap{text-align:center;margin-top:50px}.countdown{display:flex;justify-content:center;gap:38px;position:static;padding:0;background:none;border:0;border-radius:0;margin:18px 0 0}.countdown strong{font:35px Georgia,serif;display:block;color:#947144}.countdown span{font-size:10px;color:#756f63;display:block;margin-top:6px}.gallery{background:#f7f4ed}.gallery-grid{display:grid;grid-template-columns:1fr 1.15fr 1fr;gap:20px;align-items:start}.photo{border:0;padding:0;background:none;color:#756f63;text-align:left}.photo img{width:100%;height:350px;object-fit:cover;display:block}.photo:nth-child(2){margin-top:35px}.photo:nth-child(2) img{height:410px}.photo span{font-size:10px;display:block;margin-top:14px;letter-spacing:.07em}.rsvp{background:linear-gradient(90deg,#273b32ed,#263b31f2),url('assets/couple-temple.jpg') center/cover;color:#f8f2e5}.rsvp-layout{max-width:1100px;display:grid;grid-template-columns:.85fr 1.15fr;gap:10%;margin:auto;align-items:start}.rsvp .eyebrow{color:#c8b28c}.rsvp-copy{padding-top:28px}.rsvp-copy h2{font-size:36px}.rsvp-copy p{font-size:12px;color:#d6d7c9;line-height:2.3}.rsvp-sign{display:block;font:italic 22px Georgia,serif;color:#d7c6a7;margin-top:40px;line-height:1.8}.rsvp-sign i{font-size:38px}form{background:#faf8f1;color:#332f28;padding:30px;border:1px solid #cbb999}label{display:block;font-size:12px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}input:not([type=radio]):not([type=checkbox]),select,textarea{display:block;width:100%;padding:10px 12px;background:#fffef9;border:1px solid #d8cebb;color:#332f28;border-radius:0;margin:7px 0 16px;min-height:43px}textarea{resize:vertical}fieldset{border:0;margin:0 0 16px;padding:0}legend{font-size:12px;margin-bottom:9px}.radio{padding:5px 0}input[type=radio],input[type=checkbox]{accent-color:#947144;margin-right:7px}.small{font-size:10px;color:#756f63;line-height:1.8}.honeypot{position:absolute;left:-9999px}.submit{width:100%;justify-content:space-between;margin-top:13px}.submit:disabled{opacity:.6;cursor:wait}#form-status{font-size:12px;color:#795a34;line-height:1.8;margin:12px 0 0}footer{padding:80px 8% 100px;text-align:center;color:#332f28;background:#ede8dc}footer h2{font-size:30px}.closing-names{font:22px Georgia,serif;letter-spacing:.1em;margin:20px 0 45px}.credits{padding-top:25px;border-top:1px solid #d3c9b8}.credits p,.credits summary{font-size:10px;color:#756f63}.credits a{text-decoration:underline}.music{position:fixed;right:22px;bottom:22px;z-index:30;color:#3c422f;background:#f8f3e5;border:1px solid #b8a17b;border-radius:30px;padding:10px 16px;font-size:11px;box-shadow:0 3px 20px #0002}#global-status{position:fixed;right:22px;bottom:65px;z-index:30;background:#faf8f1;color:#795a34;font-size:11px;max-width:270px}.skip{position:absolute;left:-9999px}.skip:focus{left:10px;top:10px;background:white;z-index:40;padding:15px}:focus-visible{outline:2px solid #b39562;outline-offset:4px}[hidden]{display:none!important}dialog{padding:12px;border:0;max-width:90vw;max-height:90vh;background:#faf8f1}dialog::backdrop{background:#17211ee6}dialog img{display:block;max-width:82vw;max-height:80vh}dialog button{position:absolute;right:16px;top:16px;border:0;border-radius:50%;width:38px;height:38px;background:#faf8f1}body:has(dialog[open]){overflow:hidden}@media(min-width:1100px){.hero-background{object-position:70% 56%}.hero-content{padding-left:3%}}@media(max-width:760px){.topbar{height:68px;padding:0 6%}.brand span{display:none}nav{gap:17px;font-size:10px}nav>a:first-child,nav>a:nth-child(3){display:none}.nav-reply{padding:7px 12px}.hero{padding:110px 8% 90px;min-height:860px;min-height:100svh;align-items:center}.hero-background{object-position:60% center}.hero-shade{background:linear-gradient(90deg,#172019c9,#17201940),linear-gradient(0deg,#172019b3,transparent)}.hero-content{max-width:100%}.hero h1{font-size:62px}.hero h2{font-size:32px}.hero .hero-intro{font-size:9px}.hero .eyebrow{font-size:9px}.names{font-size:13px}.hero-venue{margin:23px 0}.hero-venue strong{font-size:20px}.hero-bottom{font-size:8px;gap:15px}.hero-bottom>span:last-child{display:none}section,footer{padding:65px 7%}h2{font-size:27px}.story-layout,.event-grid,.rsvp-layout{grid-template-columns:1fr;gap:35px}.story-picture{max-width:430px;margin:auto}.story-picture img{height:450px}.story-copy h2{margin-top:15px}.section-heading{margin-bottom:30px}.venue{padding:30px 23px}.venue h3{font-size:25px}.schedule{padding:0 8px}.countdown{gap:32px}.gallery-grid{gap:12px;grid-template-columns:1fr 1fr}.photo img{height:250px}.photo:nth-child(2){margin-top:28px}.photo:nth-child(2) img{height:290px}.photo:nth-child(3){grid-column:1/-1;width:65%;margin:15px auto 0}.photo:nth-child(3) img{height:300px}.rsvp-copy{padding-top:0}.rsvp-copy h2{font-size:29px}.rsvp-sign{margin-top:22px}form{padding:23px}.form-row{gap:12px}.music{bottom:16px;right:16px}footer h2{font-size:25px}.closing-names{font-size:18px}.hero .button{min-width:230px}}@media(prefers-reduced-motion:reduce){html,#app{scroll-behavior:auto}*{transition:none!important;animation:none!important}}
/* Override inherited layout rules for the Chinese edition. */
.countdown{flex-direction:row;backdrop-filter:none;-webkit-backdrop-filter:none}#rsvp>.rsvp-layout{max-width:1100px}#rsvp{padding-top:95px}#rsvp h2{margin-bottom:20px}#rsvp p{margin-top:0;margin-bottom:16px}#rsvp #form-status{margin:12px 0 0}section>.hero-background,section>.hero-shade,section>.hero-bottom{animation:none}@media(max-width:760px){#rsvp{padding-top:65px}}

.child-seat{display:flex;align-items:center;gap:6px;margin:0 0 14px;min-height:36px;cursor:pointer}.child-seat input{width:17px;height:17px;flex:0 0 auto}.child-seat[hidden]{display:none!important}
.rsvp-extra-checks{display:flex;flex-wrap:wrap;gap:6px 24px;margin:0 0 8px}
@media(min-width:761px){.photo:nth-child(3n+2){margin-top:35px}.photo:nth-child(3n+2) img{height:410px}}
@media(max-width:760px){.photo:nth-child(3){grid-column:auto;width:100%;margin:0}.photo:nth-child(3):last-child{grid-column:1/-1;width:65%;margin:15px auto 0}}
.button,.primary-btn{background:var(--wine);border-color:var(--wine)}.story-item:before{background:var(--wine)}.eyebrow,.venue #venue-room,.schedule-item time,.countdown strong{color:var(--wine)}input[type=radio],input[type=checkbox]{accent-color:var(--wine)}

/* ==========================================================================
   韓系簡約・首屏自動花綻毛玻璃載入小動畫 (Non-Envelope, Auto-Play Intro Loader)
   ========================================================================== */
body.is-intro-playing {
  overflow: hidden;
}

.kr-intro-loader {
  position: fixed;
  inset: 0;
  z-index: 999;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
  background: radial-gradient(circle at 50% 35%, rgba(253, 251, 246, 0.94) 0%, rgba(243, 238, 227, 0.90) 65%, rgba(235, 228, 214, 0.94) 100%);
  backdrop-filter: blur(22px) saturate(135%);
  -webkit-backdrop-filter: blur(22px) saturate(135%);
  opacity: 1;
  visibility: visible;
  transition: opacity 0.85s cubic-bezier(0.22, 1, 0.36, 1),
              transform 0.85s cubic-bezier(0.22, 1, 0.36, 1),
              filter 0.85s cubic-bezier(0.22, 1, 0.36, 1),
              visibility 0.85s;
}

.kr-intro-loader.is-leaving {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: scale(1.04);
  filter: blur(8px);
}

.kr-intro-loader.is-hidden {
  display: none !important;
}

.kr-orb {
  position: absolute;
  border-radius: 50%;
  filter: blur(45px);
  pointer-events: none;
  opacity: 0.55;
  animation: krOrbFloat 3.6s ease-in-out infinite alternate;
}

.kr-orb-1 {
  width: 280px;
  height: 280px;
  top: 14%;
  left: calc(50% - 210px);
  background: radial-gradient(circle, rgba(214, 188, 148, 0.55) 0%, rgba(214, 188, 148, 0) 70%);
}

.kr-orb-2 {
  width: 320px;
  height: 320px;
  bottom: 12%;
  right: calc(50% - 220px);
  background: radial-gradient(circle, rgba(226, 198, 186, 0.5) 0%, rgba(226, 198, 186, 0) 70%);
  animation-delay: -1.4s;
}

.kr-intro-arch-box {
  position: relative;
  width: min(330px, 86vw);
  padding: 10px;
  border-radius: 165px 165px 16px 16px;
  background: rgba(255, 253, 249, 0.72);
  border: 1px solid rgba(168, 132, 87, 0.36);
  box-shadow: 0 24px 60px rgba(82, 65, 43, 0.09), 0 2px 12px rgba(168, 132, 87, 0.08);
  animation: krArchRise 0.85s cubic-bezier(0.22, 1, 0.36, 1) both;
}

.kr-arch-inner {
  border-radius: 155px 155px 10px 10px;
  border: 1px solid rgba(168, 132, 87, 0.22);
  padding: 46px 28px 34px;
  text-align: center;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.65) 0%, rgba(249, 245, 236, 0.45) 100%);
}

.kr-loader-eyebrow {
  display: block;
  font-size: 9px;
  letter-spacing: 0.32em;
  color: var(--wine, #a88457);
  margin-bottom: 14px;
  opacity: 0;
  animation: krFadeUp 0.7s ease 0.1s forwards;
}

.kr-bloom-svg {
  width: 132px;
  height: 98px;
  margin: 0 auto 10px;
  display: block;
  color: var(--wine, #a88457);
  overflow: visible;
}

.kr-draw-ring {
  stroke-dasharray: 170;
  stroke-dashoffset: 170;
  opacity: 0.42;
  animation: krDrawStroke 1.2s cubic-bezier(0.22, 1, 0.36, 1) 0.12s forwards;
}

.kr-draw-ring.kr-ring-2 {
  animation-delay: 0.28s;
}

.kr-draw-petal {
  stroke-dasharray: 145;
  stroke-dashoffset: 145;
  animation: krDrawStroke 1.15s cubic-bezier(0.22, 1, 0.36, 1) 0.34s forwards;
}

.kr-draw-stem {
  stroke-dasharray: 120;
  stroke-dashoffset: 120;
  animation: krDrawStroke 1.05s cubic-bezier(0.22, 1, 0.36, 1) 0.52s forwards;
}

.kr-bloom-dot {
  opacity: 0;
  transform-origin: 80px 10px;
  animation: krBloomDot 0.65s cubic-bezier(0.22, 1, 0.36, 1) 0.9s forwards;
}

.kr-loader-monogram {
  font: 400 32px/1.15 Georgia, 'Noto Serif TC', serif;
  letter-spacing: 0.08em;
  color: #332f28;
  margin: 4px 0 6px;
  opacity: 0;
  animation: krFadeUp 0.75s cubic-bezier(0.22, 1, 0.36, 1) 0.32s forwards;
}

.kr-loader-monogram em {
  font-size: 22px;
  color: var(--wine, #a88457);
  font-style: italic;
}

.kr-loader-eng {
  font: 400 14px/1.4 Georgia, serif;
  letter-spacing: 0.18em;
  color: #5b5346;
  margin: 0 0 4px;
  opacity: 0;
  animation: krFadeUp 0.75s cubic-bezier(0.22, 1, 0.36, 1) 0.46s forwards;
}

.kr-loader-chi {
  font-size: 12px;
  letter-spacing: 0.28em;
  color: #7c7365;
  margin: 0 0 22px;
  opacity: 0;
  animation: krFadeUp 0.75s cubic-bezier(0.22, 1, 0.36, 1) 0.58s forwards;
}

.kr-loader-progress {
  width: 118px;
  height: 1.5px;
  background: rgba(168, 132, 87, 0.18);
  margin: 0 auto 14px;
  overflow: hidden;
  border-radius: 2px;
}

.kr-loader-bar {
  display: block;
  width: 100%;
  height: 100%;
  background: linear-gradient(90deg, rgba(168, 132, 87, 0.35), var(--wine, #a88457), rgba(215, 186, 137, 0.9));
  transform-origin: left center;
  transform: scaleX(0);
  animation: krProgressFill 1.68s cubic-bezier(0.33, 1, 0.68, 1) 0.15s forwards;
}

.kr-loader-date {
  font: 400 10px/1.4 Georgia, serif;
  letter-spacing: 0.3em;
  color: var(--wine, #a88457);
  margin: 0;
  opacity: 0;
  animation: krFadeUp 0.7s ease 0.68s forwards;
}

/* 主頁首屏連動進場效果 */
.hero-background {
  transition: transform 2.2s cubic-bezier(0.22, 1, 0.36, 1), filter 1.4s ease;
}

body.is-intro-playing .hero-background {
  transform: scale(1.07);
  filter: brightness(0.92);
}

.hero-content > * {
  transition: opacity 0.9s cubic-bezier(0.22, 1, 0.36, 1), transform 0.9s cubic-bezier(0.22, 1, 0.36, 1);
}

body.is-intro-playing .hero-content > * {
  opacity: 0;
  transform: translateY(18px);
}

body:not(.is-intro-playing) .hero-content > *:nth-child(1) { transition-delay: 0.05s; }
body:not(.is-intro-playing) .hero-content > *:nth-child(2) { transition-delay: 0.12s; }
body:not(.is-intro-playing) .hero-content > *:nth-child(3) { transition-delay: 0.20s; }
body:not(.is-intro-playing) .hero-content > *:nth-child(4) { transition-delay: 0.28s; }
body:not(.is-intro-playing) .hero-content > *:nth-child(5) { transition-delay: 0.34s; }
body:not(.is-intro-playing) .hero-content > *:nth-child(6) { transition-delay: 0.40s; }
body:not(.is-intro-playing) .hero-content > *:nth-child(7) { transition-delay: 0.46s; }
body:not(.is-intro-playing) .hero-content > *:nth-child(8) { transition-delay: 0.52s; }
body:not(.is-intro-playing) .hero-content > *:nth-child(9) { transition-delay: 0.58s; }

@keyframes krDrawStroke {
  to {
    stroke-dashoffset: 0;
  }
}

@keyframes krBloomDot {
  0% {
    opacity: 0;
    transform: scale(0.2);
  }
  60% {
    opacity: 1;
    transform: scale(1.35);
  }
  100% {
    opacity: 0.85;
    transform: scale(1);
  }
}

@keyframes krFadeUp {
  from {
    opacity: 0;
    transform: translateY(10px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes krArchRise {
  from {
    opacity: 0;
    transform: translateY(16px) scale(0.97);
  }
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

@keyframes krProgressFill {
  0% {
    transform: scaleX(0);
  }
  100% {
    transform: scaleX(1);
  }
}

@keyframes krOrbFloat {
  from {
    transform: translate3d(0, 0, 0) scale(1);
  }
  to {
    transform: translate3d(14px, -16px, 0) scale(1.08);
  }
}

.venue #transport {
  font-size: 11px;
  color: #756f63;
}

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

.credits a:hover {
  text-decoration: underline;
}

.back-to-top {
  position: fixed;
  right: 22px;
  bottom: 66px;
  z-index: 30;
  width: 38px;
  height: 38px;
  padding: 0;
  border-radius: 50%;
  color: #3c422f;
  background: #f8f3e5;
  border: 1px solid #b8a17b;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 3px 20px #0002;
  transition: transform 0.25s ease, background-color 0.25s ease, color 0.25s ease;
}

.back-to-top svg {
  width: 17px;
  height: 17px;
}

.back-to-top:hover {
  background: var(--wine, #a88457);
  color: #ffffff;
  border-color: var(--wine, #a88457);
  transform: translateY(-2px);
}

/* Dynamic Theme Accent Overrides (Synced with Admin Accent Color) */
.button,
.primary-btn,
.hero .button {
  background: var(--wine, #a88457);
  border-color: var(--wine, #a88457);
  color: #ffffff;
}

.button:hover,
.primary-btn:hover,
.hero .button:hover {
  background: color-mix(in srgb, var(--wine, #a88457) 84%, #1f1a14);
  border-color: color-mix(in srgb, var(--wine, #a88457) 84%, #1f1a14);
  color: #ffffff;
}

.gold-line,
.venue-rule,
.story-item:before {
  background: var(--wine, #a88457);
}

.eyebrow,
.story-picture span,
.story-item small,
.venue #venue-room,
.schedule-item time,
.countdown strong,
#form-status {
  color: var(--wine, #a88457);
}

.hero .eyebrow,
.rsvp .eyebrow,
.rsvp-sign {
  color: color-mix(in srgb, var(--wine, #a88457) 68%, #fff8e9);
}

.story-picture:after,
.venue,
form,
.music,
.back-to-top {
  border-color: color-mix(in srgb, var(--wine, #a88457) 58%, #e2d8c5);
}

@media (max-width: 760px) {
  .back-to-top {
    right: 16px;
    bottom: 60px;
  }
}

/* Circular Icon-Only Music Toggle & Playing Animation */
.music {
  position: fixed;
  right: 22px;
  bottom: 18px;
  z-index: 30;
  width: 38px;
  height: 38px;
  padding: 0;
  border-radius: 50%;
  color: #3c422f;
  background: #f8f3e5;
  border: 1px solid color-mix(in srgb, var(--wine, #a88457) 58%, #e2d8c5);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 3px 20px #0002;
  transition: transform 0.25s ease, background-color 0.25s ease, color 0.25s ease, box-shadow 0.25s ease;
}

.music:hover {
  background: var(--wine, #a88457);
  color: #ffffff;
  border-color: var(--wine, #a88457);
  transform: translateY(-2px);
}

.music svg {
  width: 17px;
  height: 17px;
  display: block;
  transform-origin: center;
}

.music::after {
  content: '';
  position: absolute;
  width: 68%;
  border-top: 1.5px solid currentColor;
  transform: rotate(45deg);
  transition: width 0.3s ease, opacity 0.3s ease;
  opacity: 0.7;
  pointer-events: none;
}

.music.is-playing::after,
.music[aria-pressed="true"]::after {
  width: 0;
  opacity: 0;
}

.music.is-playing,
.music[aria-pressed="true"] {
  color: var(--wine, #a88457);
  box-shadow: 0 0 0 4px color-mix(in srgb, var(--wine, #a88457) 20%, transparent), 0 4px 18px #0002;
}

.music.is-playing:hover,
.music[aria-pressed="true"]:hover {
  color: #ffffff;
}

.music.is-playing svg,
.music[aria-pressed="true"] svg {
  animation: krMusicIconSpin 3.4s linear infinite;
}

@keyframes krMusicIconSpin {
  0% {
    transform: rotate(0deg) scale(1);
  }
  50% {
    transform: rotate(180deg) scale(1.08);
  }
  100% {
    transform: rotate(360deg) scale(1);
  }
}

@media (max-width: 760px) {
  .topbar {
    display: none !important;
  }

  .music {
    right: 16px;
    bottom: 14px;
  }
}

