:root{--ink:#211f1c;--paper:#f4f1ea;--accent:#ea4e28;--taupe:#a79b8e;--serif:"Cormorant Garamond","Noto Serif JP",serif}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:"Noto Serif JP",serif;font-weight:300;letter-spacing:.035em}
a{color:inherit;text-decoration:none}
img{display:block;width:100%;height:100%;object-fit:cover}
header{position:absolute;z-index:10;top:0;left:0;width:100%;display:flex;align-items:center;justify-content:space-between;padding:2rem 4vw;color:#fff}
.brand{font:300 clamp(1.4rem,2.4vw,2rem) var(--serif);letter-spacing:.02em}
nav{display:flex;gap:2rem;font:400 .75rem var(--serif);letter-spacing:.15em}
.header-right{display:flex;align-items:center;gap:2rem}
.header-social{border-left:1px solid rgba(255,255,255,.55);padding-left:2rem;font:400 .75rem var(--serif);letter-spacing:.12em}
.hero{height:100svh;min-height:690px;position:relative;color:#fff;overflow:hidden}
.hero>img{position:absolute;inset:0;object-position:center 48%}
.hero-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(12,12,10,.08),rgba(12,12,10,.62))}
.hero-copy{position:absolute;z-index:2;left:7vw;bottom:10vh;max-width:720px}
.eyebrow,.section-no{font:400 .72rem var(--serif);letter-spacing:.2em}
.hero h1{font-size:clamp(2.5rem,6vw,5.5rem);font-weight:300;line-height:1.3;margin:1.2rem 0 2rem}
.hero-copy>p:last-child{font-size:.9rem;line-height:2}
.limit{position:absolute;z-index:2;right:4vw;bottom:8vh;border:1px solid rgba(255,255,255,.65);width:145px;height:145px;border-radius:50%;display:grid;place-content:center;text-align:center;font:300 .75rem var(--serif);letter-spacing:.13em;line-height:1.8;transform:rotate(8deg)}
.limit strong{font-size:.95rem;font-weight:400}
.intro{padding:18vh 8vw;text-align:center;max-width:900px;margin:auto}
.intro h2,.plans-lead h2,.contact h2{font-size:clamp(1.9rem,4vw,3.7rem);font-weight:300;line-height:1.7;margin:2rem 0}
.venue-free-title span{display:block;white-space:nowrap}
.intro>p:last-child,.plans-lead>p:last-child{font-size:.9rem;line-height:2.2;color:#625d56}
.story-grid{display:grid;grid-template-columns:1.05fr .95fr;grid-template-rows:42vw 42vw;background:#292621;padding:1vw;gap:1vw;color:#fff}
.story-grid figure{margin:0;position:relative;overflow:hidden}
.story-grid .large{grid-row:1/3}
.story-grid figcaption{position:absolute;left:1.5rem;bottom:1.4rem;font:300 1.1rem var(--serif);letter-spacing:.18em}
.story-copy{padding:6vw;display:flex;flex-direction:column;justify-content:space-between;background:var(--accent)}
.story-copy p{font:italic clamp(2.4rem,5vw,5.5rem)/1 var(--serif);margin:0}
.story-copy span{font-size:.82rem;line-height:2}
.party-gallery{display:grid;grid-template-columns:1fr 1fr;gap:1vw;padding:0 1vw 1vw;background:#292621}
.party-gallery figure{position:relative;margin:0;height:60vw;max-height:900px;overflow:hidden}
.party-gallery .wide{grid-column:1/3;height:55vw;max-height:850px}
.party-gallery .wide:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 45%,rgba(15,12,10,.65))}
.party-gallery .wide p{position:absolute;z-index:2;left:6vw;bottom:6vh;margin:0;color:#fff;font-size:clamp(1.5rem,3vw,3rem);font-weight:300;line-height:1.75}
.okinawa-callout{padding:16vh 8vw;text-align:center;background:#dce8e8;color:#243133}
.okinawa-callout h2{font-size:clamp(2rem,4.5vw,4.2rem);font-weight:300;line-height:1.65;margin:2rem 0}
.okinawa-callout>p:last-child{max-width:760px;margin:0 auto;font-size:1rem;line-height:2.2;color:#566365}
.plans{padding:17vh 7vw}
.plans-lead{text-align:center;max-width:650px;margin:0 auto 10vh}
.plans-lead .early-booking{display:inline-block;margin:2rem 0 0;padding:.75rem 1.4rem;border-top:1px solid #bdb5aa;border-bottom:1px solid #bdb5aa;color:var(--ink);font-size:.9rem;letter-spacing:.08em}
.plan-list{max-width:1100px;margin:auto;display:grid;grid-template-columns:1fr 1fr;gap:1.2rem}
.plan-card{border:1px solid #bdb5aa;padding:4rem 3.5rem;min-height:430px;display:flex;flex-direction:column}
.plan-card.dark{background:#26231f;color:#fff;border-color:#26231f}
.plan-no{font:400 .7rem var(--serif);letter-spacing:.18em}
.plan-card h3{font-size:clamp(1.1rem,2vw,1.5rem);font-weight:300;line-height:1.8;margin:3rem 0 auto}
.price{font:italic clamp(2.3rem,4vw,4rem) var(--serif);margin:2rem 0 .7rem;white-space:nowrap}
.price span{font:300 .72rem "Noto Serif JP",serif}
.data{margin:0;font-size:.82rem;letter-spacing:.1em}
.details{max-width:1100px;margin:10vh auto 0;display:grid;grid-template-columns:1fr 1fr;border-top:1px solid #bdb5aa;border-bottom:1px solid #bdb5aa}
.details>div{padding:3rem 4rem}
.details>div+div{border-left:1px solid #bdb5aa}
.detail-title{font-size:.8rem;letter-spacing:.12em;margin:0 0 1.5rem}
ul{list-style:none;margin:0;padding:0;font-size:.86rem;line-height:2.1;color:#625d56}
li:before{content:"—";margin-right:.8rem;color:var(--accent)}
.plan-note{max-width:1100px;margin:1.2rem auto 0;font-size:.72rem;color:#716a63}
.contact{display:grid;grid-template-columns:.9fr 1.1fr;background:#a3988c;color:#fff}
.contact-copy{padding:13vh 7vw}
.contact-copy>p:nth-of-type(2){font-size:.8rem;line-height:2.1;margin:2.5rem 0}
.button{display:inline-flex;border:1px solid #fff;border-radius:999px;padding:1rem 2rem;font-size:.82rem;transition:.25s}
.button:hover{background:#fff;color:#282522}
.contact-actions{display:flex;flex-wrap:wrap;gap:.8rem}
.button.instagram{background:#fff;color:#62584f}
.button.instagram:hover{background:transparent;color:#fff}
.map{min-height:620px}
.map iframe{width:100%;height:100%;border:0;filter:grayscale(1) contrast(.9)}
footer{padding:5rem 5vw 7rem;display:flex;align-items:end;gap:2rem}
footer p{margin:0 0 .35rem auto;font:400 .65rem var(--serif);letter-spacing:.12em}
.header-social:hover{opacity:.65}
@media(max-width:760px){.header-right{gap:0}.header-social{border-left:0;padding-left:0;font-size:.68rem}}
footer p+p{margin-left:0}
.sticky{position:fixed;z-index:20;right:1.2rem;bottom:1.2rem;background:#24221f;color:#fff;border-radius:999px;padding:1rem 1.5rem;font-size:.78rem;box-shadow:0 10px 35px rgba(0,0,0,.18)}
@media(max-width:760px){header{padding:1.5rem 5vw}.brand{font-size:1.25rem}nav{display:none}.hero{min-height:660px}.hero>img{object-position:53% center}.hero-copy{left:7vw;right:7vw;bottom:12vh}.hero h1{font-size:2.45rem}.hero-copy>p:last-child{font-size:.78rem}.limit{width:110px;height:110px;right:5vw;bottom:3vh;font-size:.62rem}.limit strong{font-size:.75rem}.intro{padding:13vh 9vw}.intro h2,.plans-lead h2,.contact h2{font-size:1.7rem}.intro .venue-free-title{font-size:clamp(1.2rem,5.8vw,1.45rem);line-height:1.9;letter-spacing:0}.intro>p:last-child br{display:none}.story-grid{grid-template-columns:1fr;grid-template-rows:135vw 75vw 72vw}.story-grid .large{grid-column:auto;grid-row:auto}.story-copy{padding:9vw}.story-copy p{font-size:3.2rem}.party-gallery{gap:2vw;padding:0 2vw 2vw}.party-gallery figure{height:105vw}.party-gallery .wide{height:75vw}.party-gallery .wide p{left:7vw;bottom:4vh;font-size:1.35rem}.okinawa-callout{padding:12vh 9vw}.okinawa-callout h2{font-size:1.8rem}.okinawa-callout>p:last-child br{display:none}.plans{padding:13vh 6vw}.plan-list{grid-template-columns:1fr}.plan-card{min-height:360px;padding:3rem 2.2rem}.details{grid-template-columns:1fr;margin-top:8vh}.details>div{padding:2.3rem 1.5rem}.details>div+div{border-left:0;border-top:1px solid #bdb5aa}.contact{grid-template-columns:1fr}.contact-copy{padding:12vh 8vw}.map{min-height:420px}.map iframe{min-height:420px}footer{display:block;padding:4rem 6vw 7rem}footer p{margin:1.5rem 0 0}.sticky{font-size:.72rem;padding:.9rem 1.2rem}}
