:root {
  --night:#101e34;
  --deep:#0b1729;
  --blue:#182d48;
  --ink:#e9e7e0;
  --muted:#b4beca;
  --gold:#d7bd88;
  --line:rgba(215,189,136,.25);
  --paper:#eeede6;
  --serif:'Noto Serif JP','Yu Mincho','Hiragino Mincho ProN',serif;
  --en:'Cormorant Garamond',Georgia,serif
}
* {
  box-sizing:border-box
}
html {
  scroll-behavior:smooth;
  scroll-padding-top:90px
}
body {
  margin:0;
  background:var(--night);
  color:var(--ink);
  font-family:var(--serif);
  font-size:15px;
  font-weight:400;
  line-height:2.25;
  letter-spacing:.065em;
  -webkit-font-smoothing:antialiased
}
body:after {
  content:"";
  position:fixed;
  inset:0;
  pointer-events:none;
  opacity:.035;
  z-index:100;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 160 160' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' opacity='.8' filter='url(%23n)'/%3E%3C/svg%3E")
}
a {
  color:inherit;
  text-decoration:none
}
button {
  font:inherit;
  color:inherit;
  cursor:pointer
}
button,a {
  -webkit-tap-highlight-color:transparent
}
a:focus-visible,button:focus-visible,summary:focus-visible {
  outline:2px solid var(--gold);
  outline-offset:6px
}
img {
  display:block;
  max-width:100%;
  height:auto
}
h1,h2,h3,h4,p,figure {
  margin:0
}
h1,h2,h3,h4 {
  font-weight:400
}
button {
  border:0
}
::selection {
  background:#b29c72;
  color:#0b1729
}
.wrap {
  width:min(1160px,calc(100% - 112px));
  margin-inline:auto
}
.narrow {
  max-width:690px;
  margin-inline:auto
}
.section {
  padding:135px 0
}
.eyebrow {
  font:500 12px/1.5 var(--en);
  letter-spacing:.27em;
  text-transform:uppercase;
  color:var(--gold);
  display:flex;
  align-items:center;
  gap:15px;
  margin-bottom:25px
}
.eyebrow:before {
  content:"✦";
  font-size:12px
}
.center {
  text-align:center
}
.center .eyebrow {
  justify-content:center
}
.section-title {
  font-size:clamp(27px,3.1vw,42px);
  line-height:1.8;
  letter-spacing:.12em
}
.small {
  font-size:12px;
  line-height:2;
  color:var(--muted)
}
.prose p+p {
  margin-top:26px
}
.prose h3 {
  font-size:23px;
  line-height:1.9;
  margin:50px 0 24px
}
.gold {
  color:var(--gold)
}
.en {
  font-family:var(--en)
}
.rule {
  width:1px;
  height:78px;
  background:linear-gradient(transparent,var(--gold),transparent);
  margin:0 auto 40px
}
.ornament {
  display:flex;
  align-items:center;
  justify-content:center;
  gap:18px;
  color:var(--gold);
  font-size:13px;
  margin:36px 0
}
.ornament:before,.ornament:after {
  content:"";
  height:1px;
  width:65px;
  background:linear-gradient(90deg,transparent,var(--gold))
}
.ornament:after {
  transform:rotate(180deg)
}
.btn {
  min-height:61px;
  padding:17px 28px;
  border:1px solid #bca36f;
  display:inline-flex;
  align-items:center;
  justify-content:space-between;
  gap:40px;
  font-size:13px;
  line-height:1.8;
  letter-spacing:.1em;
  transition:background .3s,transform .3s;
  position:relative;
  background:transparent
}
.btn .arrow {
  font-size:23px;
  font-family:var(--en);
  line-height:1
}
.btn:hover {
  background:rgba(215,189,136,.12);
  transform:translateY(-2px)
}
.btn-filled {
  background:var(--gold);
  color:var(--deep)
}
.btn-filled:hover {
  background:#ecdbb5
}
.reveal {
  opacity:1;
  transform:none
}
.js-motion .reveal {
  opacity:0;
  transform:translateY(24px);
  transition:opacity 1.1s ease,transform 1.1s ease
}
.js-motion .reveal.visible {
  opacity:1;
  transform:none
}
.site-head {
  height:86px;
  position:absolute;
  top:0;
  left:0;
  width:100%;
  z-index:20;
  padding:0 48px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  border-bottom:1px solid rgba(235,229,213,.12)
}
.brand {
  display:flex;
  gap:13px;
  align-items:center;
  font-family:var(--en);
  font-size:18px;
  line-height:1;
  letter-spacing:.13em
}
.seal {
  width:32px;
  height:32px;
  border:1px solid var(--gold);
  border-radius:50%;
  display:grid;
  place-items:center;
  color:var(--gold);
  font-size:19px
}
.desktop-nav {
  display:flex;
  align-items:center;
  gap:32px;
  font-size:11px;
  letter-spacing:.1em
}
.nav-entry {
  padding:9px 18px;
  border:1px solid var(--line);
  color:var(--gold)
}
.menu-toggle {
  display:none;
  background:none;
  width:42px;
  height:42px;
  align-items:center;
  justify-content:center;
  flex-direction:column;
  gap:7px
}
.menu-toggle span {
  height:1px;
  width:23px;
  background:var(--ink)
}
.progress {
  height:2px;
  position:fixed;
  top:0;
  left:0;
  background:var(--gold);
  transform-origin:left;
  transform:scaleX(0);
  width:100%;
  z-index:110
}
.hero {
  position:relative;
  min-height:860px;
  height:100svh;
  max-height:1200px;
  overflow:hidden;
  isolation:isolate;
  display:flex;
  align-items:center
}
.hero-art {
  max-width:none;
  position:absolute;
  z-index:-3;
  width:87%;
  height:100%;
  right:-13%;
  top:0;
  object-fit:cover;
  object-position:50% 50%;
  opacity:.95;
  mask-image:linear-gradient(to right,transparent,black 27%);
  -webkit-mask-image:linear-gradient(to right,transparent,black 27%)
}
.hero:before {
  content:"";
  position:absolute;
  z-index:-2;
  inset:0;
  background:linear-gradient(90deg,#101e34 0%,rgba(16,30,52,.92) 22%,rgba(16,30,52,.1) 75%),linear-gradient(0deg,#101e34 0%,transparent 27%,rgba(16,30,52,.25) 100%)
}
.hero:after {
  content:"";
  position:absolute;
  z-index:-1;
  inset:0;
  background:radial-gradient(ellipse at 78% 45%,transparent 20%,rgba(10,24,44,.15) 70%)
}
.hero-copy {
  padding-top:40px;
  position:relative
}
.hero-pre {
  font-size:19px;
  letter-spacing:.2em;
  margin-bottom:24px
}
.hero h1 {
  font-size:clamp(37px,4.2vw,62px);
  line-height:1.65;
  letter-spacing:.13em;
  max-width:780px;
  text-shadow:0 3px 35px #101e3466
}
.hero h1 span {
  display:block
}
.hero h1 .title-second {
  font-size:.72em;
  margin-top:3px;
  letter-spacing:.17em
}
.hero-en {
  font-family:var(--en);
  font-size:clamp(35px,5.5vw,77px);
  font-weight:400;
  line-height:1;
  letter-spacing:.1em;
  color:var(--gold);
  margin-top:28px;
  opacity:.95
}
.hero-sub {
  font-size:21px;
  margin-top:29px;
  letter-spacing:.12em
}
.hero-date {
  font-size:11px;
  letter-spacing:.07em;
  margin-top:10px;
  color:#b9c2ce
}
.hero .btn {
  margin-top:33px;
  min-width:285px
}
.hero-side {
  position:absolute;
  right:35px;
  top:42%;
  writing-mode:vertical-rl;
  font:12px/1 var(--en);
  letter-spacing:.3em;
  color:#e3d5b6aa
}
.hero-bottom {
  position:absolute;
  bottom:34px;
  left:48px;
  right:48px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  font:11px/1.5 var(--en);
  letter-spacing:.23em;
  color:var(--muted)
}
.scroll-link {
  display:flex;
  align-items:center;
  gap:15px
}
.scroll-link:after {
  content:"";
  height:45px;
  width:1px;
  background:linear-gradient(var(--gold),transparent)
}
.hero-ring {
  position:absolute;
  width:570px;
  height:570px;
  border:1px solid #ddc58c20;
  border-radius:50%;
  right:5%;
  top:16%;
  z-index:-2
}
.hero-ring:after {
  content:"✧";
  position:absolute;
  top:70px;
  right:45px;
  color:var(--gold);
  font-size:21px
}
.star {
  position:absolute;
  width:3px;
  height:3px;
  background:#f4e3bb;
  box-shadow:0 0 9px #ffe8ac;
  border-radius:50%;
  pointer-events:none;
  animation:twinkle 5s ease-in-out infinite
}
.star:nth-child(2n) {
  animation-delay:-2s
}
.star:nth-child(3n) {
  animation-delay:-4s
}
@keyframes twinkle {
  50% {
    opacity:.2;
    transform:scale(.6)
  }
}
.intro {
  position:relative;
  overflow:hidden;
  padding:95px 0 125px;
  text-align:center
}
.intro:before {
  content:"";
  position:absolute;
  left:50%;
  top:60px;
  width:580px;
  height:580px;
  border:1px solid #d7bd8812;
  border-radius:50%;
  transform:translateX(-50%);
  pointer-events:none
}
.intro .section-title {
  font-size:clamp(24px,2.9vw,35px);
  line-height:2;
  position:relative
}
.intro .prose {
  position:relative;
  margin-top:45px;
  font-size:15px;
  line-height:2.6
}
.intro-sign {
  font:italic 26px var(--en);
  color:var(--gold);
  margin-top:34px
}
.chapter-index {
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  display:grid;
  grid-template-columns:repeat(4,1fr);
  padding:28px 0;
  gap:20px
}
.chapter-index a {
  display:flex;
  align-items:center;
  gap:18px;
  padding-left:20px;
  border-right:1px solid var(--line)
}
.chapter-index a:last-child {
  border:0
}
.chapter-index .num {
  font:italic 30px var(--en);
  color:var(--gold)
}
.chapter-index small {
  display:block;
  font:11px var(--en);
  letter-spacing:.15em;
  color:var(--muted)
}
.chapter-index strong {
  display:block;
  font-size:12px;
  font-weight:400;
  margin-top:6px
}
.landscape {
  height:620px;
  position:relative;
  display:grid;
  place-items:center;
  text-align:center;
  isolation:isolate;
  overflow:hidden
}
.landscape>img {
  position:absolute;
  width:100%;
  height:100%;
  object-fit:cover;
  z-index:-2
}
.landscape:after {
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(#101e34,transparent 35%,transparent 65%,#101e34),linear-gradient(90deg,#101e3455,#101e3477);
  z-index:-1
}
.landscape h2 {
  font-size:clamp(26px,3.2vw,42px);
  line-height:2;
  letter-spacing:.18em
}
.landscape p {
  font-size:13px;
  line-height:2.5;
  margin-top:24px
}
.split {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:100px;
  align-items:start
}
.lead-visual {
  position:sticky;
  top:95px
}
.arch {
  border-radius:48% 48% 2px 2px;
  overflow:hidden;
  position:relative;
  outline:1px solid var(--line);
  outline-offset:12px;
  margin:16px 12px
}
.arch img {
  aspect-ratio:4/5;
  object-fit:cover
}
.arch-label {
  text-align:center;
  font:italic 24px var(--en);
  color:var(--gold);
  margin:36px 0
}
.read-story {
  border-top:1px solid var(--line);
  margin-top:32px
}
.read-story summary {
  cursor:pointer;
  list-style:none;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:20px;
  padding:18px 0;
  font-size:13px;
  color:var(--gold)
}
summary::-webkit-details-marker {
  display:none
}
.read-story summary:after {
  content:"＋";
  font-size:18px
}
.read-story[open] summary:after {
  content:"−"
}
.read-story .prose {
  padding:15px 0 20px
}
.message .prose {
  font-size:14px;
  line-height:2.4
}
.message .section-title {
  margin-bottom:32px
}
.message blockquote {
  font-size:20px;
  line-height:2;
  letter-spacing:.12em;
  color:var(--gold);
  border-left:1px solid var(--gold);
  margin:30px 0;
  padding:0 0 0 25px
}
.dragons {
  background:linear-gradient(#101e34,#142740,#101e34)
}
.section-head {
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  margin-bottom:70px;
  gap:45px
}
.section-head>p {
  max-width:385px;
  font-size:13px;
  color:var(--muted)
}
.dragon-grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:80px 65px
}
.dragon-card {
  position:relative
}
.dragon-card:nth-child(even) {
  margin-top:120px
}
.dragon-portrait {
  position:relative;
  overflow:hidden;
  border-radius:2px;
  isolation:isolate
}
.dragon-portrait img {
  width:100%;
  aspect-ratio:1.18;
  object-fit:cover;
  transition:transform 1.8s ease
}
.dragon-card:hover img {
  transform:scale(1.04)
}
.dragon-portrait:after {
  content:"";
  position:absolute;
  inset:0;
  border:1px solid #d7bd8833;
  margin:12px;
  pointer-events:none
}
.dragon-portrait .dragon-num {
  position:absolute;
  bottom:18px;
  left:27px;
  font:italic 57px var(--en);
  color:var(--gold);
  opacity:.8
}
.dragon-card.atlantis .dragon-portrait img {
  object-position:22% 12%;
  width:160%;
  max-width:none;
  aspect-ratio:1.9
}
.dragon-card.lemuria .dragon-portrait img {
  object-position:100% 85%;
  width:160%;
  max-width:none;
  aspect-ratio:1.9;
  margin-left:-60%
}
.dragon-kicker {
  font:italic 22px var(--en);
  color:var(--gold);
  margin:23px 0 5px;
  letter-spacing:.04em
}
.dragon-name {
  font-size:23px;
  line-height:1.6;
  letter-spacing:.06em
}
.dragon-role {
  font-size:11px;
  letter-spacing:.15em;
  color:var(--muted);
  margin:9px 0 18px
}
.dragon-card p {
  font-size:13px;
  line-height:2.3;
  color:#c4cdd8
}
.dragon-quote {
  font-size:16px!important;
  color:var(--gold)!important;
  margin:18px 0
}
.story-flow {
  position:relative;
  padding-top:55px
}
.story-flow:before {
  content:"";
  position:absolute;
  left:50%;
  top:40px;
  bottom:20px;
  width:1px;
  background:linear-gradient(transparent,var(--gold) 12%,var(--gold) 88%,transparent);
  opacity:.3
}
.story-step {
  display:grid;
  grid-template-columns:1fr 80px 1fr;
  align-items:center;
  gap:35px;
  margin:45px 0 85px
}
.step-visual {
  overflow:hidden;
  position:relative
}
.step-visual img {
  aspect-ratio:1.5;
  object-fit:cover;
  border-radius:2px
}
.step-number {
  align-self:center;
  justify-self:center;
  position:relative;
  font:italic 31px var(--en);
  color:var(--gold);
  width:55px;
  height:55px;
  border:1px solid var(--line);
  background:var(--night);
  border-radius:50%;
  display:grid;
  place-items:center
}
.step-copy h3 {
  font-size:23px;
  line-height:1.8;
  margin:10px 0 20px
}
.step-copy p {
  font-size:13px;
  color:#c4cdd8
}
.step-label {
  font:12px var(--en);
  letter-spacing:.2em;
  color:var(--gold)
}
.story-step.reverse .step-copy {
  grid-column:1;
  grid-row:1
}
.story-step.reverse .step-number {
  grid-column:2;
  grid-row:1
}
.story-step.reverse .step-visual {
  grid-column:3;
  grid-row:1
}
.flow-note {
  max-width:720px;
  margin:0 auto;
  text-align:center;
  line-height:2.5
}
.flow-note strong {
  font-weight:400;
  color:var(--gold)
}
.flow-map {
  margin:55px auto 0;
  max-width:780px;
  text-align:left;
  border-bottom:1px solid var(--line);
  border-top:1px solid var(--line)
}
.flow-map summary {
  list-style:none;
  cursor:pointer;
  padding:18px 4px;
  display:flex;
  justify-content:space-between;
  font-size:12px
}
.flow-map summary:after {
  content:"＋";
  color:var(--gold)
}
.flow-map[open] summary:after {
  content:"−"
}
.map-images {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:20px;
  padding-bottom:25px;
  align-items:start
}
.map-images img {
  width:100%
}
.map-images button {
  padding:0;
  background:none;
  cursor:zoom-in
}
.memo {
  background:var(--paper);
  color:#28394a;
  position:relative
}
.memo .eyebrow {
  color:#876d42
}
.memo .section-title {
  font-size:clamp(27px,3vw,39px)
}
.memo .split {
  grid-template-columns:.8fr 1.2fr;
  gap:95px
}
.memo-art {
  margin-top:45px;
  aspect-ratio:1;
  object-fit:cover;
  border-radius:50%;
  padding:14px;
  border:1px solid #9f8c663a
}
.memo-caption {
  font:italic 28px var(--en);
  text-align:center;
  margin-top:25px;
  color:#947c51
}
.memo .prose {
  font-size:14px;
  line-height:2.6
}
.memo .read-story {
  border-color:#8d795a50
}
.memo .read-story summary {
  color:#806b44
}
.memo .gold {
  color:#8a7046
}
.memo .small {
  color:#687583
}
.guardian {
  position:relative;
  min-height:700px;
  display:flex;
  align-items:center;
  isolation:isolate;
  padding:110px 0
}
.guardian>img {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  z-index:-2
}
.guardian:after {
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  background:linear-gradient(90deg,rgba(12,25,44,.97) 0%,rgba(12,25,44,.88) 40%,rgba(12,25,44,.1) 100%),linear-gradient(0deg,#101e34,transparent 30%)
}
.guardian .guardian-copy {
  max-width:550px
}
.guardian h2 {
  font-size:clamp(26px,3vw,36px);
  line-height:2;
  letter-spacing:.13em;
  margin-bottom:30px
}
.guardian p {
  font-size:14px
}
.guardian .prose {
  max-width:510px
}
.for-you .split {
  gap:80px;
  grid-template-columns:1.15fr .85fr
}
.for-you h2 {
  font-size:28px;
  margin-bottom:32px
}
.audience-list {
  list-style:none;
  padding:0;
  margin:25px 0 0
}
.audience-list li {
  border-bottom:1px solid var(--line);
  font-size:13px;
  padding:17px 0 17px 26px;
  position:relative
}
.audience-list li:before {
  content:"✧";
  position:absolute;
  left:0;
  color:var(--gold)
}
.not-for {
  border:1px solid var(--line);
  padding:37px 32px;
  margin-top:5px
}
.not-for h3 {
  font-size:19px;
  line-height:1.9;
  margin-bottom:25px
}
.not-for ul {
  padding-left:18px;
  font-size:12px;
  color:var(--muted)
}
.not-for li+li {
  margin-top:16px
}
.medical {
  font-size:11px;
  color:var(--muted);
  border-top:1px solid var(--line);
  padding-top:22px;
  margin-top:24px
}
.experience {
  background:linear-gradient(180deg,#152b45 0%,#101e34 100%)
}
.experience-top {
  display:grid;
  grid-template-columns:1fr 1fr;
  align-items:center;
  gap:80px;
  margin-bottom:85px
}
.seven {
  font:190px/.9 var(--en);
  color:var(--gold);
  text-align:center;
  position:relative;
  letter-spacing:-.06em
}
.seven span {
  font:italic 32px var(--en);
  display:block;
  letter-spacing:.05em;
  margin-top:10px
}
.seven:before,.seven:after {
  content:"";
  position:absolute;
  border:1px solid var(--line);
  width:260px;
  height:260px;
  top:45%;
  left:50%;
  transform:translate(-50%,-50%);
  border-radius:50%
}
.seven:after {
  width:286px;
  height:286px;
  border-style:dashed;
  opacity:.35
}
.experience-top h2 {
  font-size:33px;
  line-height:1.9;
  margin-bottom:28px
}
.experience-top p {
  font-size:14px
}
.days-rail {
  display:grid;
  grid-template-columns:repeat(7,1fr);
  gap:12px;
  margin:65px 0 40px;
  position:relative
}
.days-rail:before {
  content:"";
  position:absolute;
  top:26px;
  left:6%;
  right:6%;
  height:1px;
  background:var(--line)
}
.day {
  text-align:center;
  position:relative
}
.day b {
  width:54px;
  height:54px;
  border:1px solid var(--line);
  background:var(--night);
  border-radius:50%;
  display:grid;
  place-items:center;
  margin:auto;
  font:22px var(--en);
  font-weight:400;
  color:var(--gold)
}
.day:first-child b {
  background:var(--gold);
  color:var(--night)
}
.day span {
  display:block;
  font:10px var(--en);
  letter-spacing:.12em;
  color:var(--muted);
  margin-top:12px
}
.days-caption {
  display:grid;
  grid-template-columns:1fr 2.5fr;
  gap:30px;
  font-size:12px;
  border-bottom:1px solid var(--line);
  padding-bottom:32px
}
.days-caption strong {
  font-weight:400;
  color:var(--gold)
}
.schedule-area {
  display:grid;
  grid-template-columns:.9fr 1.1fr;
  gap:100px;
  margin-top:100px
}
.schedule-area h3 {
  font-size:25px;
  margin-bottom:25px
}
.schedule-area .prose {
  font-size:13px;
  color:var(--muted)
}
.schedule {
  list-style:none;
  margin:0;
  padding:0
}
.schedule li {
  display:grid;
  grid-template-columns:75px 1fr;
  gap:25px;
  position:relative;
  padding:0 0 29px 28px;
  border-left:1px solid var(--line)
}
.schedule li:before {
  content:"";
  width:5px;
  height:5px;
  border:1px solid var(--gold);
  background:var(--night);
  position:absolute;
  left:-3px;
  top:10px;
  border-radius:50%
}
.schedule time {
  font:26px var(--en);
  color:var(--gold);
  line-height:1.3
}
.schedule b {
  font-size:14px;
  font-weight:400;
  display:block;
  line-height:2
}
.schedule small {
  font-size:11px;
  color:var(--muted);
  line-height:1.9;
  display:block;
  margin-top:8px
}
.participation-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:60px;
  margin-top:55px
}
.participation-item {
  padding:36px 0;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line)
}
.participation-item .participation-label {
  color:var(--gold);
  font-family:var(--serif);
  font-size:28px;
  letter-spacing:.1em
}
.participation-item h3 {
  font-size:22px;
  margin:5px 0 20px
}
.participation-item p {
  font-size:13px;
  color:var(--muted)
}
.participation-note {
  text-align:center;
  max-width:750px;
  margin:50px auto 0;
  font-size:14px
}
.participation-note p+p {
  margin-top:20px
}
.event-details {
  margin-top:110px;
  display:grid;
  grid-template-columns:.8fr 1.2fr;
  gap:80px
}
.event-details h3 {
  font-size:27px;
  margin:15px 0
}
.details-list {
  margin:0
}
.details-list>div {
  display:grid;
  grid-template-columns:110px 1fr;
  gap:25px;
  border-bottom:1px solid var(--line);
  padding:21px 0;
  font-size:13px
}
.details-list dt {
  color:var(--muted)
}
.details-list dd {
  margin:0
}
.pending {
  font-size:11px;
  display:inline-block;
  border:1px solid var(--line);
  padding:1px 10px;
  color:var(--gold);
  margin-right:10px;
  line-height:1.8
}
.entry {
  position:relative;
  isolation:isolate;
  text-align:center;
  padding:125px 25px;
  overflow:hidden
}
.entry>img {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  z-index:-2;
  opacity:.55
}
.entry:before {
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(0deg,#101e34,rgba(16,30,52,.4) 50%,#101e34);
  z-index:-1
}
.entry .eyebrow {
  justify-content:center
}
.entry h2 {
  font-size:clamp(25px,3.2vw,40px);
  line-height:2;
  letter-spacing:.15em
}
.entry p {
  font-size:13px;
  margin-top:25px
}
.entry .btn {
  margin-top:38px;
  min-width:390px
}
.entry .small {
  margin-top:17px;
  font-size:11px
}
.faq {
  padding-top:100px
}
.faq-layout {
  display:grid;
  grid-template-columns:.7fr 1.3fr;
  gap:80px
}
.faq h2 {
  font-size:30px
}
.faq-list details {
  border-bottom:1px solid var(--line)
}
.faq-list details:first-child {
  border-top:1px solid var(--line)
}
.faq-list summary {
  font-size:13px;
  cursor:pointer;
  list-style:none;
  padding:26px 37px 26px 32px;
  position:relative;
  line-height:2
}
.faq-list summary:before {
  content:"Q";
  position:absolute;
  left:0;
  top:23px;
  font:italic 23px var(--en);
  color:var(--gold)
}
.faq-list summary:after {
  content:"＋";
  position:absolute;
  right:2px;
  top:26px;
  color:var(--gold);
  font-size:17px
}
.faq-list details[open] summary:after {
  content:"−"
}
.faq-list details p {
  font-size:12px;
  line-height:2.3;
  color:var(--muted);
  padding:0 28px 28px 32px
}
.epilogue {
  padding-bottom:60px;
  text-align:center;
  position:relative;
  overflow:hidden
}
.epilogue:before {
  content:"";
  position:absolute;
  width:800px;
  height:800px;
  left:50%;
  top:100px;
  transform:translateX(-50%);
  border-radius:50%;
  border:1px solid #d7bd8813;
  pointer-events:none
}
.epilogue .prose {
  max-width:670px;
  margin:45px auto 0;
  font-size:14px;
  line-height:2.8;
  position:relative
}
.epilogue .invitation {
  font-size:20px;
  line-height:2.3;
  color:var(--gold);
  margin:38px -10px
}
.signature {
  font-size:25px;
  margin-top:40px;
  letter-spacing:.18em
}
.signature small {
  display:block;
  font:italic 19px var(--en);
  color:var(--muted);
  letter-spacing:.08em;
  margin-top:6px
}
.final-entry {
  padding-top:60px;
  padding-bottom:140px
}
.final-entry .door {
  position:relative;
  width:min(440px,100%);
  height:auto;
  aspect-ratio:22/17;
  margin:0 auto 25px;
  border-radius:0;
  overflow:hidden;
  outline:none;
  mask-image:radial-gradient(ellipse 55% 68% at 50% 52%,#000 58%,transparent 90%),linear-gradient(180deg,transparent,#000 12%,#000 90%,transparent);
  mask-composite:intersect;
  -webkit-mask-image:radial-gradient(ellipse 55% 68% at 50% 52%,#000 58%,transparent 90%),linear-gradient(180deg,transparent,#000 12%,#000 90%,transparent);
  -webkit-mask-composite:source-in
}
.final-entry .door img {
  position:absolute;
  width:220%;
  max-width:none;
  height:auto;
  top:50%;
  left:50%;
  transform:translate(-79%,-52%)
}
.final-entry .btn {
  min-width:430px
}
.footer {
  border-top:1px solid var(--line);
  padding:35px 0;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:25px;
  font-size:10px;
  color:var(--muted)
}
.footer .brand {
  font-size:15px;
  color:var(--ink)
}
.footer-links {
  display:flex;
  gap:25px;
  align-items:center
}
.sticky-entry {
  position:fixed;
  bottom:20px;
  right:25px;
  z-index:30;
  background:rgba(16,30,52,.94);
  backdrop-filter:blur(10px);
  border:1px solid var(--line);
  padding:12px 20px;
  display:flex;
  gap:28px;
  align-items:center;
  font-size:11px;
  line-height:1.7;
  opacity:0;
  transform:translateY(15px);
  visibility:hidden;
  transition:.4s
}
.sticky-entry.show {
  opacity:1;
  transform:none;
  visibility:visible
}
.sticky-entry .arrow {
  color:var(--gold);
  font:25px var(--en)
}
dialog {
  border:1px solid var(--line);
  background:var(--night);
  color:var(--ink);
  width:min(540px,calc(100% - 36px));
  padding:50px 38px;
  text-align:center;
  line-height:2.2;
  max-height:85svh;
  overflow:auto;
  box-shadow:0 20px 100px #0009
}
dialog::backdrop {
  background:#060e1ccf;
  backdrop-filter:blur(9px)
}
dialog h2 {
  font-size:24px;
  line-height:1.9;
  margin-bottom:20px
}
dialog p {
  font-size:13px;
  color:var(--muted)
}
dialog .btn {
  margin-top:28px
}
dialog .close {
  position:absolute;
  right:12px;
  top:10px;
  background:none;
  font-size:25px;
  line-height:1;
  padding:10px;
  color:var(--gold)
}
.image-dialog {
  width:min(900px,calc(100% - 26px));
  padding:45px 20px 20px
}
.image-dialog img {
  max-height:75svh;
  margin:auto;
  width:auto
}
.mobile-menu {
  position:fixed;
  inset:0;
  background:var(--deep);
  z-index:40;
  padding:90px 35px 35px;
  display:none
}
.mobile-menu.open {
  display:block
}
.mobile-menu .close {
  position:absolute;
  right:25px;
  top:20px;
  background:none;
  font-size:30px
}
.mobile-menu a {
  display:block;
  font-size:20px;
  padding:16px 0;
  border-bottom:1px solid var(--line)
}
.mobile-menu a small {
  font:italic 19px var(--en);
  color:var(--gold);
  margin-right:18px
}
.no-js-note {
  display:none
}
@media(min-width:1600px) {
  .hero-art {
    right:0;
    width:75%
  }
  .hero-ring {
    right:13%
  }
}
@media(max-width:1000px) {
  .wrap {
    width:calc(100% - 72px)
  }
  .site-head {
    padding:0 35px
  }
  .desktop-nav {
    gap:20px
  }
  .hero h1 {
    font-size:45px
  }
  .hero-art {
    right:-20%;
    width:110%;
    opacity:.8
  }
  .split {
    gap:55px
  }
  .section {
    padding:100px 0
  }
  .section-head {
    gap:30px
  }
  .section-head>p {
    max-width:300px
  }
  .dragon-grid {
    gap:60px 40px
  }
  .memo .split {
    gap:50px
  }
  .story-step {
    gap:20px;
    grid-template-columns:1fr 60px 1fr
  }
  .schedule-area {
    gap:50px
  }
  .event-details {
    gap:45px
  }
  .faq-layout {
    gap:45px
  }
  .chapter-index a {
    padding-left:5px;
    gap:10px
  }
  .hero-bottom {
    left:35px;
    right:35px
  }
}
@media(max-width:700px) {
  body {
    font-size:14px;
    letter-spacing:.045em;
    line-height:2.2
  }
  .wrap {
    width:calc(100% - 44px)
  }
  .section {
    padding:85px 0
  }
  .site-head {
    height:72px;
    padding:0 23px
  }
  .brand {
    font-size:15px;
    gap:10px
  }
  .seal {
    width:28px;
    height:28px;
    font-size:16px
  }
  .desktop-nav {
    display:none
  }
  .menu-toggle {
    display:flex
  }
  .hero {
    height:100svh;
    min-height:790px;
    max-height:1000px;
    align-items:flex-end;
    padding-bottom:115px
  }
  .hero-art {
    height:68%;
    width:145%;
    right:-25%;
    top:30px;
    object-position:50% 50%;
    mask-image:linear-gradient(black 20%,black 60%,transparent);
    -webkit-mask-image:linear-gradient(black 20%,black 60%,transparent);
    opacity:.85
  }
  .hero:before {
    background:linear-gradient(0deg,#101e34 0%,#101e34 18%,rgba(16,30,52,.5) 50%,rgba(16,30,52,.12) 80%,#101e34 100%)
  }
  .hero-copy {
    padding-top:0
  }
  .hero .eyebrow {
    font-size:10px;
    margin-bottom:16px;
    letter-spacing:.21em
  }
  .hero-pre {
    font-size:15px;
    letter-spacing:.12em;
    margin-bottom:13px
  }
  .hero h1 {
    font-size:clamp(24px,7vw,30px);
    line-height:1.75;
    letter-spacing:.08em
  }
  .hero h1 .title-second {
    font-size:25px;
    letter-spacing:.16em
  }
  .hero-en {
    font-size:42px;
    margin-top:21px;
    letter-spacing:.07em
  }
  .hero-sub {
    font-size:16px;
    letter-spacing:.055em;
    margin-top:19px
  }
  .hero-date {
    font-size:10px;
    line-height:2;
    margin-top:7px;
    max-width:260px
  }
  .hero .btn {
    margin-top:24px;
    min-height:54px;
    min-width:260px;
    font-size:12px;
    padding:15px 21px
  }
  .hero-side {
    display:none
  }
  .hero-ring {
    width:350px;
    height:350px;
    right:-70px;
    top:80px
  }
  .hero-bottom {
    bottom:27px;
    left:23px;
    right:23px;
    font-size:9px;
    letter-spacing:.1em
  }
  .hero-bottom>span {
    max-width:160px
  }
  .scroll-link {
    gap:11px
  }
  .scroll-link:after {
    height:30px
  }
  .intro {
    padding:60px 0 75px
  }
  .intro:before {
    width:370px;
    height:480px;
    top:100px
  }
  .intro .section-title {
    font-size:23px;
    letter-spacing:.09em;
    line-height:2
  }
  .intro .prose {
    font-size:12px;
    line-height:2.7;
    margin-top:33px
  }
  .intro .prose p+p {
    margin-top:25px
  }
  .intro-sign {
    font-size:22px
  }
  .rule {
    height:60px;
    margin-bottom:30px
  }
  .chapter-index {
    grid-template-columns:1fr 1fr;
    gap:22px;
    padding:26px 0
  }
  .chapter-index a {
    gap:13px;
    border:0
  }
  .chapter-index .num {
    font-size:26px
  }
  .chapter-index strong {
    font-size:11px
  }
  .chapter-index small {
    font-size:10px
  }
  .landscape {
    height:500px
  }
  .landscape>img {
    object-position:61% center
  }
  .landscape h2 {
    font-size:27px;
    line-height:2;
    letter-spacing:.1em
  }
  .landscape p {
    font-size:12px;
    max-width:300px;
    margin-inline:auto;
    line-height:2.5
  }
  .split,.memo .split,.for-you .split {
    grid-template-columns:1fr;
    gap:45px
  }
  .lead-visual {
    position:relative;
    top:0;
    max-width:350px;
    width:100%;
    margin:0 auto
  }
  .arch {
    margin-inline:28px
  }
  .arch img {
    aspect-ratio:1.05
  }
  .arch-label {
    font-size:23px;
    margin:28px 0 5px
  }
  .section-title {
    font-size:27px;
    letter-spacing:.1em
  }
  .eyebrow {
    font-size:11px;
    margin-bottom:21px
  }
  .message .prose {
    font-size:13px;
    line-height:2.5
  }
  .message blockquote {
    font-size:18px;
    padding-left:21px;
    margin:28px 0
  }
  .section-head {
    display:block;
    margin-bottom:40px
  }
  .section-head>p {
    margin-top:25px;
    max-width:none;
    font-size:12px
  }
  .dragon-grid {
    grid-template-columns:1fr;
    gap:55px
  }
  .dragon-card:nth-child(even) {
    margin-top:0
  }
  .dragon-card {
    max-width:470px;
    margin-inline:auto;
    width:100%
  }
  .dragon-portrait img {
    aspect-ratio:1.3
  }
  .dragon-card.atlantis .dragon-portrait img,.dragon-card.lemuria .dragon-portrait img {
    aspect-ratio:2.08
  }
  .dragon-kicker {
    font-size:24px;
    margin-top:21px
  }
  .dragon-name {
    font-size:23px
  }
  .dragon-role {
    font-size:10px;
    margin-bottom:14px
  }
  .dragon-card p {
    font-size:12px
  }
  .story-flow {
    padding-top:15px
  }
  .story-flow:before {
    left:22px;
    top:45px;
    bottom:20px
  }
  .story-step,.story-step.reverse {
    display:grid;
    grid-template-columns:44px 1fr;
    gap:20px;
    margin:35px 0 48px;
    align-items:start
  }
  .step-number,.story-step.reverse .step-number {
    grid-column:1;
    grid-row:1 / 3;
    width:44px;
    height:44px;
    font-size:25px;
    position:relative;
    top:0
  }
  .step-visual,.story-step.reverse .step-visual {
    grid-column:2;
    grid-row:1
  }
  .step-copy,.story-step.reverse .step-copy {
    grid-column:2;
    grid-row:2
  }
  .step-visual img {
    aspect-ratio:1.5
  }
  .step-copy h3 {
    font-size:20px;
    margin:8px 0 15px
  }
  .step-copy p {
    font-size:12px
  }
  .step-label {
    font-size:10px
  }
  .flow-note {
    font-size:13px;
    text-align:left
  }
  .flow-map {
    margin-top:35px
  }
  .map-images {
    grid-template-columns:1fr
  }
  .memo .section-title {
    font-size:26px
  }
  .memo .split {
    gap:35px
  }
  .memo .prose {
    font-size:13px;
    line-height:2.5
  }
  .memo-art {
    max-width:230px;
    margin:35px auto 0
  }
  .memo-caption {
    font-size:24px;
    margin-top:18px
  }
  .guardian {
    min-height:0;
    padding:85px 0 100px
  }
  .guardian>img {
    object-position:65% center;
    opacity:.6
  }
  .guardian:after {
    background:linear-gradient(90deg,#101e34eb,#101e34a6),linear-gradient(0deg,#101e34,transparent)
  }
  .guardian h2 {
    font-size:25px;
    line-height:2.1
  }
  .guardian p {
    font-size:13px
  }
  .for-you h2 {
    font-size:25px
  }
  .audience-list li {
    font-size:12px;
    padding:17px 0 17px 24px
  }
  .not-for {
    padding:28px 24px
  }
  .not-for h3 {
    font-size:18px
  }
  .not-for ul {
    font-size:12px
  }
  .experience-top {
    grid-template-columns:1fr;
    gap:55px;
    margin-bottom:40px
  }
  .seven {
    font-size:140px;
    margin:45px 0 20px
  }
  .seven span {
    font-size:28px
  }
  .seven:before {
    width:205px;
    height:205px
  }
  .seven:after {
    width:228px;
    height:228px
  }
  .experience-top h2 {
    font-size:27px;
    margin-bottom:22px
  }
  .experience-top p {
    font-size:13px
  }
  .days-rail {
    gap:4px;
    margin-top:40px
  }
  .day b {
    width:36px;
    height:36px;
    font-size:18px
  }
  .day span {
    font-size:8px;
    margin-top:10px
  }
  .days-rail:before {
    top:18px
  }
  .days-caption {
    gap:17px;
    grid-template-columns:1fr;
    font-size:12px
  }
  .schedule-area {
    grid-template-columns:1fr;
    gap:35px;
    margin-top:65px
  }
  .schedule-area h3 {
    font-size:25px
  }
  .schedule {
    padding-left:3px
  }
  .schedule li {
    grid-template-columns:70px 1fr;
    gap:15px;
    padding-left:23px;
    padding-bottom:25px
  }
  .participation-grid {
    grid-template-columns:1fr;
    gap:25px;
    margin-top:35px
  }
  .participation-item {
    padding:26px 0
  }
  .participation-item .participation-label {
    font-size:25px
  }
  .participation-item h3 {
    font-size:21px
  }
  .participation-item p {
    font-size:12px
  }
  .participation-note {
    text-align:left;
    margin-top:33px;
    font-size:13px
  }
  .event-details {
    grid-template-columns:1fr;
    gap:25px;
    margin-top:65px
  }
  .details-list>div {
    grid-template-columns:76px 1fr;
    gap:20px;
    font-size:12px;
    padding:18px 0
  }
  .entry {
    padding:80px 22px
  }
  .entry h2 {
    font-size:26px;
    letter-spacing:.12em
  }
  .entry p {
    font-size:12px
  }
  .entry .btn {
    min-width:0;
    width:100%;
    max-width:390px;
    font-size:12px;
    padding:18px 20px;
    gap:15px
  }
  .entry .small {
    font-size:10px
  }
  .faq-layout {
    grid-template-columns:1fr;
    gap:35px
  }
  .faq h2 {
    font-size:27px
  }
  .faq-list summary {
    font-size:12px;
    padding-top:23px;
    padding-bottom:23px;
    padding-left:27px
  }
  .faq-list summary:before {
    top:21px;
    font-size:21px
  }
  .faq-list summary:after {
    top:22px
  }
  .faq-list details p {
    font-size:12px;
    padding-left:27px;
    padding-right:15px
  }
  .epilogue {
    padding-bottom:30px
  }
  .epilogue .prose {
    font-size:13px;
    line-height:2.7;
    margin-top:35px
  }
  .epilogue .invitation {
    font-size:18px;
    line-height:2.4;
    margin:30px 0
  }
  .signature {
    font-size:23px
  }
  .final-entry {
    padding-top:45px;
    padding-bottom:85px
  }
  .final-entry .btn {
    min-width:0
  }
  .footer {
    display:block;
    padding:30px 0 90px;
    text-align:center
  }
  .footer .brand {
    justify-content:center
  }
  .footer-links {
    justify-content:center;
    margin-top:22px;
    font-size:9px;
    gap:16px
  }
  .sticky-entry {
    bottom:12px;
    right:12px;
    left:12px;
    justify-content:space-between;
    padding:12px 20px;
    font-size:11px
  }
  .sticky-entry small {
    font:10px var(--en);
    letter-spacing:.12em;
    display:block;
    color:var(--gold)
  }
  .image-dialog {
    padding-top:45px
  }
  .mobile-break {
    display:block
  }
}
@media(prefers-reduced-motion:reduce) {
  html {
    scroll-behavior:auto
  }
  *,*:before,*:after {
    animation:none!important;
    transition:none!important
  }
  .js-motion .reveal {
    opacity:1;
    transform:none
  }
}
/* Chapter 01: a clear reading column and an unframed full dragon. */
.message {
  padding:0 0 95px;
  background:var(--night)
}
.message-intro {
  position:relative;
  isolation:isolate;
  overflow:hidden;
  min-height:760px;
  display:flex;
  align-items:center;
  padding:120px 0
}
.message-art {
  position:absolute;
  z-index:-3;
  right:0;
  top:50%;
  transform:translateY(-50%);
  width:min(66vw,760px);
  height:auto;
  aspect-ratio:1;
  max-width:none;
  object-fit:contain;
  object-position:center;
  opacity:.94;
  mask-image:linear-gradient(90deg,transparent,#000 25%,#000 100%);
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 25%,#000 100%)
}
.message-shade {
  position:absolute;
  z-index:-2;
  inset:0;
  pointer-events:none;
  background:linear-gradient(90deg,#101e34 0%,#101e34 21%,rgba(16,30,52,.94) 35%,rgba(16,30,52,.53) 51%,rgba(16,30,52,.03) 73%),linear-gradient(0deg,#101e34,transparent 18%,transparent 88%,#101e34)
}
.message-intro-copy {
  width:56%;
  max-width:650px;
  position:relative
}
.message-intro-copy .section-title {
  font-size:clamp(28px,2.75vw,39px);
  line-height:1.9;
  letter-spacing:.06em;
  margin-bottom:32px
}
.message-intro-copy .prose {
  font-size:15px;
  line-height:2.45;
  color:#e3e8ed;
  max-width:570px
}
.message-letter {
  max-width:760px;
  margin:0 auto;
  padding:0 25px
}
.message-letter .ornament {
  margin:0 0 30px
}
.message-letter>.small {
  text-align:center;
  font-size:13px;
  color:#c3ccd6
}
.message-letter blockquote {
  margin:35px 0 40px;
  padding:0;
  border:none;
  text-align:center;
  font-size:30px;
  line-height:1.95;
  color:var(--gold);
  letter-spacing:.1em
}
.message-letter .prose {
  font-size:15px;
  line-height:2.5;
  color:#e3e8ed
}
.message-letter .read-story {
  margin-top:32px
}
.message-letter .read-story summary {
  font-size:14px;
  padding:22px 0
}
@media(min-width:1600px) {
  .message-art {
    right:2%;
    width:61%;
  }
}
@media(max-width:1000px) and (min-width:701px) {
  .message-intro-copy {
    width:59%
  }
  .message-intro-copy .section-title {
    font-size:29px
  }
  .message-intro-copy .prose {
    font-size:14px
  }
  .message-art {
    right:-12%;
    width:76%;
  }
  .message-intro {
    min-height:690px;
    padding:90px 0
  }
}
@media(max-width:700px) {
  .message {
    padding-bottom:75px
  }
  .message-intro {
    display:block;
    min-height:0;
    padding:350px 0 60px
  }
  .message-art {
    top:0;
    right:0;
    transform:none;
    width:100%;
    height:auto;
    object-fit:contain;
    object-position:center top;
    opacity:1;
    mask-image:linear-gradient(180deg,transparent,#000 10%,#000 78%,transparent);
    -webkit-mask-image:linear-gradient(180deg,transparent,#000 10%,#000 78%,transparent)
  }
  .message-shade {
    background:linear-gradient(180deg,rgba(16,30,52,0) 0,rgba(16,30,52,0) 200px,rgba(16,30,52,.28) 290px,#101e34 410px)
  }
  .message-intro-copy {
    width:100%;
    max-width:none
  }
  .message-intro-copy .section-title {
    font-size:clamp(23px,6.4vw,28px);
    line-height:1.95;
    letter-spacing:.035em;
    margin-bottom:27px
  }
  .message-intro-copy .prose {
    font-size:14px;
    line-height:2.45
  }
  .message-letter {
    padding:0;
    max-width:none
  }
  .message-letter>.small {
    font-size:12px
  }
  .message-letter blockquote {
    font-size:23px;
    line-height:2;
    margin:29px 0 32px;
    letter-spacing:.05em
  }
  .message-letter .prose {
    font-size:14px;
    line-height:2.5
  }
  .message-letter .read-story summary {
    font-size:13px
  }
}
/* Original story illustration: preserve every edge and the 2:3 aspect ratio. */
.story-poster {
  max-width:860px;
  margin:75px auto 0
}
.poster-heading {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  margin-bottom:25px
}
.poster-heading .eyebrow {
  margin:0
}
.poster-image {
  display:block;
  width:100%;
  padding:0;
  background:none;
  cursor:zoom-in
}
.poster-image img {
  width:100%;
  height:auto;
  max-height:none;
  object-fit:contain;
  border-radius:0
}
.story-poster figcaption {
  text-align:right;
  font-size:11px;
  color:var(--muted);
  margin-top:14px
}
.image-dialog.poster-viewer {
  width:min(1100px,calc(100% - 26px));
  height:85svh;
  max-height:85svh;
  overflow:auto
}
.image-dialog.poster-viewer img {
  width:100%;
  height:auto;
  max-height:none;
  max-width:none;
  min-width:650px
}
@media(max-width:700px) {
  .story-poster {
    margin-top:45px
  }
  .poster-heading {
    display:block;
    margin-bottom:20px
  }
  .poster-heading .small {
    display:block;
    margin-top:10px;
    font-size:12px
  }
  .story-poster figcaption {
    font-size:10px;
    text-align:center
  }
  .image-dialog.poster-viewer {
    padding:48px 12px 15px
  }
}

/* 申込ボタン：ゆっくり呼吸する金色の光と、横切るきらめき */
.btn-filled {
  overflow:hidden;
  isolation:isolate;
  background:linear-gradient(105deg,#cfb27a 0%,#ecd9a8 45%,#d7bd88 100%);
  border-color:#101e34;
  font-weight:500;
  animation:btnGlow 3.8s ease-in-out infinite
}
.btn-filled:before {
  content:"";
  position:absolute;
  top:0;
  bottom:0;
  left:-60%;
  width:45%;
  z-index:1;
  pointer-events:none;
  background:linear-gradient(105deg,transparent,rgba(255,255,255,.75),transparent);
  transform:skewX(-20deg);
  animation:btnShine 4.6s ease-in-out infinite
}
.btn-filled:after {
  content:"";
  position:absolute;
  inset:3px;
  border:1px solid rgba(16,30,52,.55);
  pointer-events:none
}
.btn-filled .arrow {
  display:inline-block;
  transition:transform .4s
}
.btn-filled:hover {
  background:linear-gradient(105deg,#d9c08a 0%,#f6e8c2 50%,#e0c895 100%);
  box-shadow:0 0 38px rgba(236,219,181,.55),0 0 90px rgba(215,189,136,.3)
}
.btn-filled:hover .arrow {
  transform:translate(3px,-3px)
}
@keyframes btnGlow {
  0%,100% {
    box-shadow:0 0 14px rgba(215,189,136,.28),0 0 40px rgba(215,189,136,.12)
  }
  50% {
    box-shadow:0 0 26px rgba(236,219,181,.55),0 0 76px rgba(215,189,136,.28)
  }
}
@keyframes btnShine {
  0%,55% {
    left:-60%
  }
  100% {
    left:130%
  }
}

.entry .entry-note {
  margin-top:8px;
  color:var(--gold);
  letter-spacing:.06em
}

.seal svg {
  display:block
}

.hero-bottom {
  justify-content:flex-end
}

.days-caption {
  margin-top:65px
}
@media(max-width:700px) {
  .days-caption {
    margin-top:40px
  }
}

/* 申込ボタンの文字を大きく（長い場合は2段に折り返す） */
.entry .btn-filled {
  font-size:18px;
  line-height:1.7;
  letter-spacing:.1em;
  padding:22px 34px;
  min-width:0;
  width:min(520px,100%);
  text-align:center
}
@media(max-width:700px) {
  .entry .btn-filled {
    font-size:16px;
    padding:20px 22px;
    max-width:none
  }
}

/* 会場参加／オンライン参加：線ではなく、淡く明るいパネルで区切る */
.participation-item {
  border:none;
  padding:42px 40px 44px;
  background:linear-gradient(160deg,rgba(40,66,102,.55),rgba(24,45,72,.35));
  box-shadow:inset 0 0 0 1px rgba(215,189,136,.14);
  position:relative
}
.participation-item:before {
  content:"";
  position:absolute;
  top:0;
  left:40px;
  width:46px;
  height:1px;
  background:var(--gold)
}
@media(max-width:700px) {
  .participation-grid {
    gap:18px
  }
  .participation-item {
    padding:32px 24px 34px
  }
  .participation-item:before {
    left:24px
  }
}
.participation-item h3 {
  word-break:auto-phrase;
  text-wrap:balance
}

.entry .btn-filled {
  justify-content:center;
  padding-left:64px;
  padding-right:64px
}
.entry .btn-filled .arrow {
  position:absolute;
  right:26px;
  top:50%;
  margin-top:-.5em
}
@media(max-width:700px) {
  .entry .btn-filled {
    padding-left:48px;
    padding-right:48px
  }
  .entry .btn-filled .arrow {
    right:18px
  }
}

.entry .btn-filled {
  font-size:22px;
  width:min(560px,100%)
}
@media(max-width:700px) {
  .entry .btn-filled {
    font-size:18px
  }
}

.hero h1 {
  font-size:clamp(40px,4.8vw,72px);
  line-height:1.6;
  letter-spacing:.14em
}
.hero-en {
  margin-top:22px
}
@media(max-width:700px) {
  .hero h1 {
    font-size:clamp(30px,8.6vw,38px);
    line-height:1.65;
    letter-spacing:.08em
  }
}

/* 扉の景色と第１章の間：金色の線と星の飾り（下の飾りと同じ大きさ） */
.ornament-divider {
  position:relative;
  height:240px;
  overflow:hidden;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:18px;
  color:var(--gold)
}
.od-line {
  width:65px;
  height:1px;
  background:linear-gradient(90deg,transparent,var(--gold));
  position:relative
}
.od-line.od-r {
  background:linear-gradient(90deg,var(--gold),transparent)
}
.ornament-divider svg {
  position:relative;
  flex:none
}
@media(max-width:700px) {
  .ornament-divider {
    height:170px
  }
}

.story-more {
  margin-top:26px
}

/* 第１章：扉の景色の中に文章をまとめる */
.landscape {
  height:auto;
  min-height:760px;
  padding:150px 0 170px
}
.landscape p {
  font-size:15px;
  line-height:2.4;
  margin:0 auto 22px
}
.landscape h2 {
  margin-bottom:34px
}
.landscape .eyebrow {
  margin-bottom:26px
}
#message+.message {
  padding-top:60px
}
@media(max-width:700px) {
  .landscape {
    height:auto;
    min-height:0;
    padding:110px 0 140px
  }
  .landscape p {
    font-size:14px;
    max-width:none
  }
  .landscape p br {
    display:none
  }
}

.landscape p {
  word-break:auto-phrase;
  text-wrap:balance
}
@media(max-width:700px) {
  .landscape>img {
    object-position:68% 60%
  }
}

.letter-title {
  margin:35px 0 40px;
  text-align:center;
  font-size:30px;
  font-weight:inherit;
  line-height:1.95;
  letter-spacing:.1em;
  color:var(--gold)
}
.letter-title span {
  display:block;
  font-size:.6em;
  line-height:2;
  letter-spacing:.14em;
  color:#c3ccd6
}
@media(max-width:700px) {
  .letter-title {
    font-size:23px;
    line-height:2;
    margin:29px 0 32px;
    letter-spacing:.05em
  }
}

.letter-title span {
  font-size:.8em
}

#dragons .section-title {
  font-size:clamp(20px,2.6vw,34px);
  line-height:1.8;
  letter-spacing:.08em;
  text-wrap:balance
}
@media(max-width:700px) {
  #dragons .section-title {
    font-size:21px;
    letter-spacing:.04em
  }
}

#dragons .section-head {
  display:block
}
#dragons .section-head>p {
  max-width:none;
  margin-top:22px
}
#dragons .section-title {
  text-wrap:pretty
}
@media(max-width:700px) {
  #dragons .section-title {
    font-size:19px;
    letter-spacing:.02em
  }
}

.schedule li {
  align-items:baseline
}
.schedule time {
  line-height:1.6
}
.schedule b {
  line-height:1.6
}

.step-number {
  display:flex;
  align-items:center;
  justify-content:center;
  line-height:1;
  padding:0 2px 5px 0;
  box-sizing:border-box;
  font-variant-numeric:lining-nums
}
@media(max-width:700px) {
  .step-number,.story-step.reverse .step-number {
    align-self:start;
    justify-self:center;
    padding:0 1px 4px 0
  }
}

.letter-title span {
  font-size:calc(.8em - 2px)
}

@media(max-width:700px) {
  .for-you h2 {
    font-size:clamp(17px,5.4vw,24px);
    letter-spacing:.04em
  }
}

/* プロローグと第１章の間：７日間ヒーリングの概要 */
.overview {
  padding:40px 0 150px;
  text-align:center
}
.overview-lead p {
  font-size:17px;
  line-height:2.5;
  letter-spacing:.1em;
  margin:0 auto
}
.overview-head {
  margin:110px 0 60px
}
.overview-head h2 {
  font-size:clamp(24px,2.6vw,34px);
  line-height:1.9;
  letter-spacing:.12em;
  font-weight:inherit;
  margin:0
}
.overview-list {
  list-style:none;
  padding:0;
  margin:0 auto;
  max-width:980px;
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:1px;
  background:rgba(215,189,136,.22);
  border:1px solid rgba(215,189,136,.22)
}
.overview-list li {
  background:#101e34;
  padding:46px 34px 50px;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:14px
}
.ov-num {
  font:italic 30px/1 var(--en);
  color:var(--gold)
}
.overview-list h3 {
  font-size:19px;
  font-weight:inherit;
  letter-spacing:.14em;
  color:var(--gold);
  margin:0
}
.overview-list p {
  font-size:15px;
  line-height:2.1;
  letter-spacing:.06em;
  margin:0;
  text-wrap:pretty
}
@media(max-width:700px) {
  .overview {
    padding:20px 0 100px
  }
  .overview-lead p {
    font-size:15px;
    line-height:2.3;
    letter-spacing:.04em
  }
  .overview-lead br {
    display:none
  }
  .overview-head {
    margin:70px 0 40px
  }
  .overview-head h2 {
    font-size:22px
  }
  .overview-list {
    grid-template-columns:minmax(0,1fr)
  }
  .overview-list li {
    padding:34px 22px 38px
  }
  .overview-list p {
    font-size:14px
  }
}

/* 概要：まっすぐ読める箇条書き */
.overview-list {
  display:block;
  max-width:820px;
  background:none;
  border:none;
  border-top:1px solid rgba(215,189,136,.22);
  text-align:left
}
.overview-list li {
  background:none;
  display:grid;
  grid-template-columns:150px minmax(0,1fr);
  align-items:baseline;
  gap:0 34px;
  padding:26px 10px;
  border-bottom:1px solid rgba(215,189,136,.22)
}
.overview-list h3 {
  font-size:16px;
  letter-spacing:.12em;
  white-space:nowrap
}
.overview-list p {
  font-size:16px;
  line-height:2;
  letter-spacing:.06em
}
@media(max-width:700px) {
  .overview-list li {
    grid-template-columns:minmax(0,1fr);
    gap:6px;
    padding:22px 4px
  }
  .overview-list h3 {
    font-size:15px
  }
  .overview-list p {
    font-size:14px;
    line-height:1.95
  }
}

/* このヒーリングで受け取れるもの */
.receive {
  padding:130px 0 40px
}
.receive .overview-head {
  margin:0 0 56px
}
.receive-list {
  list-style:none;
  padding:0;
  margin:0 auto;
  max-width:820px;
  text-align:left;
  border-top:1px solid rgba(215,189,136,.22)
}
.receive-list li {
  display:grid;
  grid-template-columns:22px minmax(0,1fr);
  align-items:baseline;
  gap:0 18px;
  padding:24px 10px;
  border-bottom:1px solid rgba(215,189,136,.22)
}
.rv-mark {
  color:var(--gold);
  font-size:11px;
  line-height:1;
  text-align:center
}
.receive-list p {
  font-size:16px;
  line-height:2;
  letter-spacing:.06em;
  margin:0;
  text-wrap:pretty
}
@media(max-width:700px) {
  .receive {
    padding:90px 0 20px
  }
  .receive .overview-head {
    margin-bottom:38px
  }
  .receive-list li {
    grid-template-columns:16px minmax(0,1fr);
    gap:0 12px;
    padding:20px 4px
  }
  .receive-list p {
    font-size:14px;
    line-height:1.95
  }
}

.points {
  padding:40px 0 120px
}
@media(max-width:700px) {
  .points {
    padding:20px 0 80px
  }
}

.faq-list details p+p {
  margin-top:-14px
}

.venue-addr {
  display:block;
  margin-top:8px
}
.venue-link {
  display:inline-flex;
  align-items:center;
  gap:8px;
  margin-top:14px;
  color:var(--gold);
  font-size:15px;
  letter-spacing:.1em;
  text-decoration:none;
  border-bottom:1px solid rgba(215,189,136,.5);
  padding-bottom:3px
}
.venue-link:hover {
  color:#fff;
  border-color:#fff
}
.venue-access {
  margin-top:16px
}
.venue-access summary {
  cursor:pointer;
  font-size:14px;
  letter-spacing:.1em;
  color:#c3ccd6;
  list-style:none;
  display:inline-flex;
  align-items:center;
  gap:10px
}
.venue-access summary::-webkit-details-marker {
  display:none
}
.venue-access summary:after {
  content:"+";
  color:var(--gold)
}
.venue-access[open] summary:after {
  content:"−"
}
.venue-access p {
  font-size:14px;
  line-height:2.1;
  margin:10px 0 0
}

/* 申込ポップアップ：参加方法の選択 */
.app-options {
  display:grid;
  gap:14px;
  margin:30px 0 26px
}
.app-option {
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  gap:4px 16px;
  padding:20px 24px;
  border:1px solid rgba(215,189,136,.45);
  background:rgba(40,66,102,.35);
  color:inherit;
  text-decoration:none;
  text-align:left;
  transition:background .3s,border-color .3s
}
.app-option:hover {
  background:rgba(215,189,136,.14);
  border-color:var(--gold);
  color:inherit
}
.app-option-label {
  font-size:18px;
  letter-spacing:.12em;
  color:var(--gold)
}
.app-option-sub {
  grid-row:2;
  font-size:12px;
  letter-spacing:.08em;
  color:#c3ccd6
}
.app-option .arrow {
  grid-row:1/3;
  grid-column:2;
  color:var(--gold)
}
.app-option[hidden],.app-pending[hidden],.app-choice[hidden] {
  display:none
}

/* 申込ポップアップの選択ボタン：きらめく金の枠と光の流れ */
.app-option {
  position:relative;
  overflow:hidden;
  grid-template-columns:minmax(0,1fr) auto;
  padding:28px 32px;
  border:1px solid rgba(215,189,136,.7);
  background:linear-gradient(120deg,rgba(40,66,102,.6),rgba(24,45,72,.4) 50%,rgba(60,78,96,.5));
  animation:btnGlow 3.6s ease-in-out infinite
}
.app-option+.app-option {
  animation-delay:-1.8s
}
.app-option:before {
  content:"";
  position:absolute;
  top:0;
  bottom:0;
  left:-60%;
  width:40%;
  pointer-events:none;
  background:linear-gradient(105deg,transparent,rgba(246,232,194,.35),transparent);
  transform:skewX(-20deg);
  animation:btnShine 4.6s ease-in-out infinite
}
.app-option+.app-option:before {
  animation-delay:-2.3s
}
.app-option:after {
  content:"";
  position:absolute;
  inset:4px;
  border:1px solid rgba(215,189,136,.22);
  pointer-events:none
}
.app-option:hover {
  background:linear-gradient(120deg,rgba(215,189,136,.22),rgba(215,189,136,.1));
  border-color:#f6e8c2
}
.app-option-label {
  position:relative;
  font-size:24px;
  letter-spacing:.18em;
  background:linear-gradient(105deg,#d7bd88,#f6e8c2 50%,#d7bd88);
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent
}
.app-option .arrow {
  position:relative;
  grid-row:auto;
  font-size:20px;
  transition:transform .4s
}
.app-option:hover .arrow {
  transform:translate(3px,-3px)
}
@media(max-width:700px) {
  .app-option {
    padding:24px 22px
  }
  .app-option-label {
    font-size:20px;
    letter-spacing:.12em
  }
}
@media(prefers-reduced-motion:reduce) {
  .app-option,.app-option:before {
    animation:none
  }
}

.app-option {
  grid-template-columns:28px minmax(0,1fr) 28px;
  text-align:center
}
.app-option-label {
  grid-column:2;
  justify-self:center
}
.app-option .arrow {
  grid-column:3;
  justify-self:end
}

#entry .btn-filled {
  width:min(380px,100%);
  padding:20px 30px;
  display:inline-grid;
  grid-template-columns:24px minmax(0,1fr) 24px;
  align-items:center
}
#entry .btn-filled>span:first-child {
  grid-column:2;
  text-align:center;
  letter-spacing:.24em;
  padding-left:.24em
}
#entry .btn-filled .arrow {
  grid-column:3;
  justify-self:end
}
@media(max-width:700px) {
  #entry .btn-filled {
    width:min(300px,100%);
    padding:18px 22px
  }
}
