/*
 * Visual direction inspired by the quiet editorial rhythm of LuxeTime:
 * misted colour, organic crops, fine orbital lines and generous whitespace.
 */

:root {
  --shukuba-mist: #a9bac3;
  --shukuba-mist-light: #d9e1e2;
  --shukuba-cloud: #edf0ed;
  --shukuba-blush: #ddd0c9;
  --shukuba-parchment: #eee7dc;
  --shukuba-night: #26332f;
  --shukuba-charcoal: #292e2c;
  --shukuba-bronze: #957146;
  --shukuba-white: #f8f7f2;
  --shukuba-line-soft: rgba(41, 46, 44, 0.26);
  --shukuba-max: 1240px;
}

body {
  background:
    radial-gradient(circle at 20% 10%, rgba(255, 255, 255, 0.42), transparent 25rem),
    var(--shukuba-cloud);
  color: var(--shukuba-charcoal);
}

body::before {
  background-image:
    radial-gradient(circle, rgba(255, 255, 255, 0.48) 0 0.8px, transparent 1px),
    radial-gradient(circle, rgba(41, 46, 44, 0.12) 0 0.65px, transparent 0.9px);
  background-position: 0 0, 4px 7px;
  background-size: 9px 9px, 11px 11px;
  content: "";
  inset: 0;
  opacity: 0.23;
  pointer-events: none;
  position: fixed;
  z-index: 9999;
}

.shukuba-site-header {
  color: var(--shukuba-white);
  padding: 1.6rem clamp(1.25rem, 3.7vw, 4rem);
  position: fixed;
}

.shukuba-brand,
.shukuba-header-actions {
  color: var(--shukuba-charcoal);
  mix-blend-mode: normal;
}

.menu-is-open .shukuba-brand,
.menu-is-open .shukuba-header-actions {
  color: var(--shukuba-white);
}

.shukuba-brand {
  align-items: flex-start;
  display: flex;
  flex-direction: column;
  font-family: "Shippori Mincho", serif;
  font-size: clamp(1.45rem, 2.2vw, 2rem);
  font-weight: 500;
  gap: 0.08rem;
  letter-spacing: 0.14em;
  line-height: 1;
}

.shukuba-brand::before {
  display: none;
}

.shukuba-brand small {
  font-family: var(--shukuba-serif);
  font-size: 0.58rem;
  font-style: italic;
  font-weight: 400;
  letter-spacing: 0.12em;
  opacity: 0.78;
}

.shukuba-header-actions {
  align-items: center;
  display: flex;
  gap: clamp(1rem, 2.5vw, 2.2rem);
  pointer-events: auto;
}

.shukuba-header-social {
  align-items: center;
  display: flex;
  gap: 0.55rem;
}

.shukuba-header-social a {
  align-items: center;
  border: 1px solid currentColor;
  border-radius: 50%;
  display: inline-flex;
  font-family: var(--shukuba-serif);
  font-size: 0.58rem;
  height: 2rem;
  justify-content: center;
  letter-spacing: 0.03em;
  text-decoration: none;
  transition: opacity 180ms ease, transform 180ms ease;
  width: 2rem;
}

.shukuba-header-social a:hover,
.shukuba-header-social a:focus-visible {
  opacity: 0.58;
  transform: translateY(-2px);
}

.shukuba-menu-toggle {
  background: transparent;
  border: 0;
  border-radius: 0;
  color: inherit;
  display: grid;
  gap: 0.32rem;
  height: auto;
  justify-items: end;
  padding: 0.5rem 0;
  width: 5.3rem;
}

.shukuba-menu-toggle:hover,
.shukuba-menu-toggle:focus-visible {
  background: transparent;
  color: inherit;
  transform: none;
}

.shukuba-menu-lines {
  gap: 0.48rem;
  margin: 0;
}

.shukuba-menu-lines i {
  width: 5.3rem;
}

.shukuba-menu-lines i:last-child {
  width: 3.7rem;
}

.shukuba-menu-label {
  font-family: var(--shukuba-serif);
  font-size: 0.6rem;
  font-style: italic;
  letter-spacing: 0.14em;
}

.shukuba-menu-panel {
  background:
    radial-gradient(circle at 22% 16%, rgba(255, 255, 255, 0.13), transparent 22rem),
    var(--shukuba-night);
}

.shukuba-menu-panel::before {
  border: 1px solid rgba(248, 247, 242, 0.25);
  border-radius: 50%;
  content: "";
  height: min(78vw, 52rem);
  left: 50%;
  position: absolute;
  top: 50%;
  transform: translate(-50%, -50%);
  width: min(78vw, 52rem);
}

.shukuba-menu-panel a {
  font-style: italic;
}

.shukuba-hero {
  background:
    radial-gradient(circle at 24% 9%, rgba(255, 255, 255, 0.38), transparent 30rem),
    linear-gradient(165deg, #b7c6cd 0%, var(--shukuba-mist) 55%, #9dafb8 100%);
  color: var(--shukuba-charcoal);
  min-height: clamp(980px, 128svh, 1320px);
  padding: clamp(7.5rem, 10vw, 10rem) clamp(1.1rem, 4vw, 4rem) 7rem;
}

.shukuba-hero::after {
  background:
    radial-gradient(circle at 22% 76%, rgba(255, 255, 255, 0.85) 0 1.5px, transparent 2px),
    radial-gradient(circle at 71% 83%, rgba(255, 255, 255, 0.75) 0 1px, transparent 1.8px),
    radial-gradient(circle at 88% 63%, rgba(255, 255, 255, 0.58) 0 1.2px, transparent 2px);
  opacity: 1;
}

.shukuba-hero-atmosphere {
  inset: 0;
  overflow: hidden;
  pointer-events: none;
  position: absolute;
}

.shukuba-orbit {
  border: 1px solid rgba(41, 46, 44, 0.38);
  border-radius: 50%;
  height: min(92vw, 1120px);
  left: 50%;
  position: absolute;
  top: 4.5rem;
  transform: translateX(-50%) rotate(7deg);
  width: min(92vw, 1120px);
}

.shukuba-star {
  color: rgba(248, 247, 242, 0.85);
  font-family: serif;
  position: absolute;
}

.shukuba-star-a {
  font-size: 1.1rem;
  left: 13%;
  top: 47%;
}

.shukuba-star-b {
  font-size: 1.45rem;
  right: 17%;
  top: 58%;
}

.shukuba-star-c {
  font-size: 3rem;
  left: 55%;
  top: 72%;
}

.shukuba-crescent {
  border-radius: 50%;
  box-shadow: -11px 5px 0 0 rgba(248, 247, 242, 0.88);
  height: 2.5rem;
  left: 49%;
  position: absolute;
  top: 72%;
  transform: rotate(-18deg);
  width: 2.5rem;
}

.shukuba-hero-grid {
  display: block;
  height: 100%;
  margin: 0 auto;
  max-width: 1450px;
  min-height: 1040px;
}

.shukuba-hero-image-wrap {
  border-radius: 48% 52% 46% 54% / 16% 18% 55% 57%;
  box-shadow: 0 2.2rem 7rem rgba(44, 56, 53, 0.15);
  height: clamp(610px, 72vw, 900px);
  left: 50%;
  max-width: 1110px;
  min-height: 0;
  overflow: hidden;
  position: absolute;
  top: clamp(6rem, 8vw, 8.5rem);
  transform: translateX(-50%);
  width: min(86vw, 1110px);
}

.shukuba-hero-image {
  filter: saturate(0.75) contrast(0.9) brightness(1.05);
  object-position: 50% center;
  transform: scale(1.04);
}

.shukuba-hero-image-wrap::after {
  background:
    linear-gradient(180deg, rgba(169, 186, 195, 0.02) 45%, rgba(38, 51, 47, 0.2)),
    linear-gradient(90deg, rgba(169, 186, 195, 0.08), transparent 34%);
}

.shukuba-hero-copy {
  color: var(--shukuba-white);
  left: clamp(0.4rem, 4vw, 4rem);
  margin: 0;
  position: absolute;
  top: clamp(16rem, 29vw, 25rem);
  width: min(72rem, 90%);
}

.shukuba-kicker {
  color: var(--shukuba-bronze);
  font-family: var(--shukuba-serif);
  font-size: clamp(0.68rem, 1vw, 0.85rem);
  margin: 0 0 1.4rem 0.5rem;
}

.shukuba-kicker::before {
  background: currentColor;
}

.shukuba-hero-title {
  margin: 0;
}

.shukuba-hero-title-ja {
  color: var(--shukuba-bronze);
  display: block;
  font-family: "Shippori Mincho", serif;
  font-size: clamp(1.7rem, 3.2vw, 3.2rem);
  font-weight: 500;
  letter-spacing: 0.18em;
  line-height: 1;
  margin-left: 0.28em;
}

.shukuba-hero-roman {
  color: var(--shukuba-white);
  font-family: var(--shukuba-serif);
  font-size: clamp(6.3rem, 17vw, 15.7rem);
  font-style: italic;
  font-weight: 400;
  letter-spacing: -0.07em;
  line-height: 0.7;
  margin: 0.18em 0 0;
  text-shadow: 0 0.15em 1.1em rgba(40, 45, 43, 0.08);
  white-space: nowrap;
}

.shukuba-hero-description {
  color: rgba(248, 247, 242, 0.88);
  font-size: clamp(0.87rem, 1.35vw, 1.1rem);
  letter-spacing: 0.12em;
  margin: clamp(3.5rem, 6vw, 6rem) 0 0 0.6rem;
  max-width: 28rem;
}

.shukuba-next-card {
  background: rgba(237, 240, 237, 0.82);
  border: 0;
  border-radius: 48% 52% 1.6rem 1.6rem / 18% 18% 1.6rem 1.6rem;
  bottom: 5.5rem;
  box-shadow: 0 1.4rem 4rem rgba(41, 46, 44, 0.1);
  color: var(--shukuba-charcoal);
  padding: 2.6rem 2.4rem 2rem;
  position: absolute;
  right: clamp(0.2rem, 4vw, 4rem);
  width: min(19rem, 29vw);
}

.shukuba-next-label {
  color: var(--shukuba-bronze);
}

.shukuba-next-date {
  font-style: italic;
}

.shukuba-next-card .shukuba-circle-link {
  height: 5.2rem;
  position: absolute;
  right: 1.5rem;
  top: -3.5rem;
  width: 5.2rem;
}

.shukuba-next-card .shukuba-circle-link:hover,
.shukuba-next-card .shukuba-circle-link:focus-visible {
  background: var(--shukuba-charcoal);
  color: var(--shukuba-white);
}

.shukuba-hero-vertical {
  bottom: 5.8rem;
  color: rgba(41, 46, 44, 0.78);
  font-family: "Shippori Mincho", serif;
  font-size: 0.85rem;
  letter-spacing: 0.22em;
  line-height: 2.2;
  margin: 0;
  position: absolute;
  right: 42%;
  writing-mode: vertical-rl;
}

.shukuba-intro {
  background:
    radial-gradient(circle at 90% 16%, rgba(255, 255, 255, 0.56), transparent 27rem),
    var(--shukuba-mist-light);
  min-height: 900px;
  overflow: hidden;
  padding-bottom: clamp(12rem, 23vw, 23rem);
}

.shukuba-intro::before,
.shukuba-intro::after {
  border-radius: 50% 46% 0 0 / 100% 100% 0 0;
  bottom: -17rem;
  content: "";
  height: 34rem;
  pointer-events: none;
  position: absolute;
  width: 78%;
}

.shukuba-intro::before {
  background: rgba(248, 247, 242, 0.72);
  left: -12%;
  transform: rotate(7deg);
}

.shukuba-intro::after {
  background: var(--shukuba-blush);
  right: -16%;
  transform: rotate(-8deg);
}

.shukuba-intro-inner {
  position: relative;
  z-index: 2;
}

.shukuba-section-no {
  color: var(--shukuba-bronze);
}

.shukuba-intro-title,
.shukuba-section-title {
  color: var(--shukuba-charcoal);
  font-family: "Shippori Mincho", serif;
}

.shukuba-intro-title {
  font-size: clamp(3rem, 7.4vw, 7.6rem);
  letter-spacing: -0.07em;
  line-height: 1.18;
}

.shukuba-intro-text {
  font-size: clamp(1rem, 1.4vw, 1.2rem);
  line-height: 2.65;
}

.shukuba-live {
  background:
    radial-gradient(circle at 14% 18%, rgba(255, 255, 255, 0.44), transparent 24rem),
    var(--shukuba-blush);
  color: var(--shukuba-charcoal);
  overflow: hidden;
  position: relative;
}

.shukuba-live::before {
  border: 1px solid rgba(41, 46, 44, 0.24);
  border-radius: 50%;
  content: "";
  height: 46rem;
  left: -20rem;
  position: absolute;
  top: 7rem;
  width: 46rem;
}

.shukuba-live-inner {
  position: relative;
  z-index: 1;
}

.shukuba-live .shukuba-section-title,
.shukuba-live .shukuba-circle-link {
  color: var(--shukuba-charcoal);
}

.shukuba-live-title-ja {
  color: rgba(41, 46, 44, 0.66);
}

.shukuba-live .shukuba-circle-link:hover,
.shukuba-live .shukuba-circle-link:focus-visible {
  background: var(--shukuba-charcoal);
  color: var(--shukuba-white);
}

.shukuba-video-shell {
  border: 1px solid rgba(41, 46, 44, 0.13);
  border-radius: 48% 52% 1.2rem 1.2rem / 22% 22% 1.2rem 1.2rem;
  box-shadow: 0 2rem 5rem rgba(41, 46, 44, 0.14);
}

.shukuba-live-caption {
  border-top: 1px solid var(--shukuba-line-soft);
  padding-top: 1.5rem;
}

.shukuba-live-caption p {
  color: rgba(41, 46, 44, 0.68);
}

.shukuba-details-head {
  background:
    linear-gradient(148deg, rgba(255, 255, 255, 0.32), transparent 56%),
    var(--shukuba-mist);
  color: var(--shukuba-charcoal);
  overflow: hidden;
  position: relative;
}

.shukuba-details-head::after {
  border: 1px solid rgba(41, 46, 44, 0.28);
  border-radius: 50%;
  content: "";
  height: 34rem;
  position: absolute;
  right: -8rem;
  top: -19rem;
  width: 34rem;
}

.shukuba-details-head-inner {
  position: relative;
  z-index: 1;
}

.shukuba-existing-content {
  background: var(--shukuba-cloud);
  color: var(--shukuba-charcoal);
}

.shukuba-existing-content .wp-block-cover {
  background-color: var(--shukuba-cloud) !important;
  color: var(--shukuba-charcoal) !important;
}

.shukuba-existing-content .wp-block-cover__image-background {
  filter: grayscale(0.14) saturate(0.48) contrast(0.88) brightness(1.12);
}

.shukuba-existing-content .wp-block-cover__background {
  background: var(--shukuba-cloud) !important;
  opacity: 0.74 !important;
}

.shukuba-existing-content .wp-block-cover h2,
.shukuba-existing-content .wp-block-cover h3,
.shukuba-existing-content .wp-block-cover h4,
.shukuba-existing-content .wp-block-cover p,
.shukuba-existing-content .wp-block-cover li,
.shukuba-existing-content .wp-block-cover a:not(.wp-block-button__link) {
  color: var(--shukuba-charcoal) !important;
  text-shadow: none !important;
}

.shukuba-existing-content > .wp-block-cover:nth-of-type(even),
.shukuba-existing-content > .wp-block-group:nth-of-type(even) {
  background: var(--shukuba-parchment) !important;
}

.shukuba-existing-content h2 {
  letter-spacing: -0.055em;
}

.shukuba-existing-content .wp-block-column {
  border-radius: 45% 45% 1.4rem 1.4rem / 10% 10% 1.4rem 1.4rem;
}

.shukuba-existing-content .wp-block-image img,
.shukuba-existing-content .wp-block-gallery img {
  border-radius: 46% 54% 1.4rem 1.4rem / 12% 12% 1.4rem 1.4rem;
  filter: saturate(0.72) contrast(0.92);
}

.shukuba-existing-content .wp-block-button__link {
  background: transparent !important;
  border-color: var(--shukuba-charcoal) !important;
  color: var(--shukuba-charcoal) !important;
}

.shukuba-existing-content .wp-block-button__link:hover,
.shukuba-existing-content .wp-block-button__link:focus-visible {
  background: var(--shukuba-charcoal) !important;
  color: var(--shukuba-white) !important;
}

.shukuba-site-footer {
  background:
    radial-gradient(circle at 22% 16%, rgba(255, 255, 255, 0.07), transparent 25rem),
    var(--shukuba-night);
  min-height: 72svh;
  overflow: hidden;
  position: relative;
}

.shukuba-site-footer::before {
  border: 1px solid rgba(248, 247, 242, 0.18);
  border-radius: 50%;
  content: "";
  height: min(72vw, 58rem);
  position: absolute;
  right: -10rem;
  top: -17rem;
  width: min(72vw, 58rem);
}

.shukuba-footer-grid,
.shukuba-copyright {
  position: relative;
  z-index: 1;
}

.shukuba-footer-logo {
  font-family: var(--shukuba-serif);
  font-style: italic;
  letter-spacing: -0.09em;
}

.shukuba-footer-nav a {
  font-style: italic;
}

.shukuba-reveal-ready .shukuba-intro-inner,
.shukuba-reveal-ready .shukuba-live-head,
.shukuba-reveal-ready .shukuba-video-shell,
.shukuba-reveal-ready .shukuba-live-caption,
.shukuba-reveal-ready .shukuba-details-head-inner,
.shukuba-reveal-ready .shukuba-existing-content > * {
  opacity: 0;
  transform: translateY(2.2rem);
  transition: opacity 900ms ease, transform 900ms cubic-bezier(0.2, 0.7, 0.2, 1);
}

.shukuba-reveal-ready .shukuba-video-shell {
  transition-delay: 80ms;
}

.shukuba-reveal-ready .shukuba-live-caption {
  transition-delay: 140ms;
}

.shukuba-reveal-ready .is-visible {
  opacity: 1;
  transform: none;
}

body:not(.home) .shukuba-site-header {
  background: transparent;
  position: fixed;
}

body:not(.home) .site-content,
body:not(.home) #main {
  padding-top: clamp(8rem, 13vw, 11rem);
}

@media (max-width: 960px) {
  .shukuba-hero {
    min-height: 1080px;
  }

  .shukuba-hero-grid {
    min-height: 920px;
  }

  .shukuba-hero-copy {
    top: 20rem;
  }

  .shukuba-hero-roman {
    font-size: clamp(6rem, 18vw, 10rem);
  }

  .shukuba-next-card {
    bottom: 2.5rem;
    width: min(20rem, 39vw);
  }

  .shukuba-hero-vertical {
    bottom: 2.8rem;
    right: 47%;
  }
}

@media (max-width: 720px) {
  .shukuba-site-header {
    padding: 1rem 1.05rem;
  }

  .shukuba-brand {
    font-size: 1.32rem;
  }

  .shukuba-header-social {
    display: none;
  }

  .shukuba-menu-toggle,
  .shukuba-menu-lines i {
    width: 3.6rem;
  }

  .shukuba-menu-lines i:last-child {
    width: 2.5rem;
  }

  .shukuba-hero {
    min-height: 900px;
    padding: 6.5rem 1rem 3rem;
  }

  .shukuba-hero-grid {
    display: block;
    min-height: 790px;
    width: 100%;
  }

  .shukuba-hero-image-wrap {
    border-radius: 48% 52% 42% 58% / 13% 13% 42% 47%;
    height: 61svh;
    left: 50%;
    min-height: 520px;
    top: 7.2rem;
    width: calc(100% - 1rem);
  }

  .shukuba-orbit {
    height: 86vw;
    top: 10rem;
    width: 86vw;
  }

  .shukuba-hero-copy {
    left: 0.15rem;
    top: 14.5rem;
    width: calc(100% - 0.3rem);
  }

  .shukuba-kicker {
    font-size: 0.56rem;
    margin-bottom: 1rem;
  }

  .shukuba-hero-title {
    white-space: normal;
  }

  .shukuba-hero-title-ja {
    font-size: 1.45rem;
  }

  .shukuba-hero-roman {
    font-size: clamp(5.2rem, 25vw, 7.4rem);
    margin-top: 0.25em;
    white-space: normal;
  }

  .shukuba-hero-description {
    display: block;
    font-size: 0.72rem;
    line-height: 2;
    margin: 3.1rem 0 0 0.4rem;
  }

  .shukuba-next-card {
    bottom: 0;
    left: 0.4rem;
    padding: 2.1rem 1.5rem 1.4rem;
    right: auto;
    width: calc(100% - 0.8rem);
  }

  .shukuba-next-card .shukuba-circle-link {
    height: 4.6rem;
    right: 1.2rem;
    top: -2.5rem;
    width: 4.6rem;
  }

  .shukuba-next-date {
    font-size: 2.9rem;
  }

  .shukuba-hero-vertical,
  .shukuba-crescent {
    display: none;
  }

  .shukuba-intro {
    min-height: 760px;
    padding-bottom: 13rem;
  }

  .shukuba-intro::before,
  .shukuba-intro::after {
    bottom: -10rem;
    height: 20rem;
  }

  .shukuba-intro-title {
    font-size: clamp(2.8rem, 13vw, 4.6rem);
  }

  .shukuba-live-head {
    gap: 2.2rem;
  }

  .shukuba-video-shell {
    border-radius: 43% 57% 0.9rem 0.9rem / 10% 10% 0.9rem 0.9rem;
  }

  .shukuba-details-head::after {
    right: -17rem;
  }

  .shukuba-existing-content .wp-block-column {
    border-radius: 1.2rem;
  }

  .shukuba-existing-content .wp-block-image img,
  .shukuba-existing-content .wp-block-gallery img {
    border-radius: 34% 34% 1rem 1rem / 8% 8% 1rem 1rem;
  }

  .shukuba-existing-content .CDT.flip-clock-wrapper {
    margin-bottom: -10.5rem !important;
    margin-left: 0 !important;
    max-width: none !important;
    transform: scale(0.45);
    transform-origin: top left;
    width: 640px !important;
  }

  .shukuba-existing-content .navbar + .wp-block-paragraph {
    padding-top: 7rem !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  .shukuba-reveal-ready .shukuba-intro-inner,
  .shukuba-reveal-ready .shukuba-live-head,
  .shukuba-reveal-ready .shukuba-video-shell,
  .shukuba-reveal-ready .shukuba-live-caption,
  .shukuba-reveal-ready .shukuba-details-head-inner,
  .shukuba-reveal-ready .shukuba-existing-content > * {
    opacity: 1;
    transform: none;
  }
}
