:root{--ink:#0b0d1a;--ink2:#131735;--red:#e2453c;--red2:#ff6b5e;--gold:#e3bf78;--paper:#f4ede2;--muted:#a8a9c0;
  --serif:'Cormorant Garamond',Georgia,serif;--sans:'Inter',system-ui,-apple-system,'Segoe UI',sans-serif}
html[lang=ja]{--sans:'Noto Sans JP','Hiragino Sans','Yu Gothic',sans-serif}
*{box-sizing:border-box}
body{margin:0;background:radial-gradient(ellipse at 80% -10%,#2a1530 0%,transparent 50%),var(--ink);color:var(--paper);font:16px/1.7 var(--sans)}
a{color:inherit}
img{display:block;max-width:100%}

.top{position:sticky;top:0;z-index:10;display:flex;align-items:center;gap:1.2rem;padding:.8rem 4vw;background:rgba(11,13,26,.88);backdrop-filter:blur(10px);border-bottom:1px solid rgba(255,255,255,.07)}
.brand{font:600 1.15rem var(--serif);text-decoration:none;letter-spacing:.02em}
.brand span{color:var(--red2)}
.nav{display:flex;gap:1.1rem;margin-left:auto;font-size:.9rem}
.nav a{text-decoration:none;color:var(--muted)}
.nav a:hover{color:var(--paper)}
.nav a.hot{color:var(--red2);font-weight:600}
.langs{position:relative;font-size:.85rem}
.langs summary{cursor:pointer;list-style:none;padding:.35rem .7rem;border:1px solid rgba(255,255,255,.18);border-radius:8px;color:var(--muted)}
.langs summary::-webkit-details-marker{display:none}
.langs div{position:absolute;right:0;top:120%;display:flex;flex-direction:column;min-width:9rem;padding:.4rem;background:var(--ink2);border:1px solid rgba(255,255,255,.12);border-radius:10px}
.langs a{padding:.35rem .6rem;border-radius:6px;text-decoration:none}
.langs a:hover,.langs a[aria-current]{background:rgba(226,69,60,.2)}
@media (max-width:760px){.nav a:not(.hot){display:none}.top{gap:.6rem;padding:.7rem 4vw}.nav a.hot{white-space:nowrap;font-size:.82rem}.ll{display:none}.brand{font-size:1rem}}
.langs summary{white-space:nowrap}
@media (max-width:520px){.facts div{grid-template-columns:6.5rem 1fr}}

.crumbs{padding:1rem 4vw 0;font-size:.82rem;color:var(--muted)}
.crumbs a{text-decoration:none}
.crumbs a:hover{color:var(--paper)}

.ph{position:relative;margin:0;background:var(--ph);overflow:hidden}
.ph img{width:100%;height:100%;object-fit:cover}

.hero{position:relative;min-height:min(78vh,720px);display:flex;align-items:flex-end;margin:1rem 4vw 0;border-radius:22px;overflow:hidden}
.hero-img{position:absolute;inset:0}
.hero::after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,rgba(11,13,26,.95) 5%,rgba(11,13,26,.3) 55%,rgba(11,13,26,0))}
.hero-txt{position:relative;z-index:1;max-width:46rem;padding:3rem clamp(1.4rem,4vw,3.5rem)}
.kicker{margin:0 0 .5rem;font-size:.75rem;letter-spacing:.28em;text-transform:uppercase;color:var(--red2)}
h1{margin:0 0 .6rem;font:500 clamp(2.1rem,5vw,3.8rem)/1.05 var(--serif)}
html[lang=ja] h1{font-family:var(--sans);font-weight:700;font-size:clamp(1.7rem,4vw,2.8rem);line-height:1.3}
.lead{font:italic 500 clamp(1.15rem,2.2vw,1.45rem)/1.5 var(--serif);color:#ddd8ec;margin:0 0 1.6rem}
html[lang=ja] .lead{font:500 1.05rem/1.8 var(--sans)}
h2{font:500 clamp(1.6rem,3vw,2.2rem)/1.2 var(--serif);color:var(--gold);margin:0 0 1rem}
html[lang=ja] h2{font-family:var(--sans);font-weight:700;font-size:1.4rem}
h3{font:600 1.25rem var(--serif);margin:1.4rem 0 .5rem;color:var(--gold)}

.wrap{max-width:1100px;margin:3.5rem auto;padding:0 4vw}
.prose p{max-width:44rem;color:#dcd8e8}
.two{display:grid;grid-template-columns:1.4fr 1fr;gap:3rem;align-items:start}
@media (max-width:860px){.two{grid-template-columns:1fr;gap:1.5rem}}
.center{text-align:center}
.card{padding:1.6rem 1.8rem;border-radius:16px;background:linear-gradient(180deg,#151935,#0e1024);border:1px solid rgba(227,191,120,.2)}
ol li,ul li{margin-bottom:.5rem;color:#dcd8e8}
.note{color:var(--muted);font-style:italic}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.8rem 1.6rem;border-radius:999px;border:1px solid rgba(244,237,226,.3);
  background:rgba(10,12,28,.6);color:var(--paper);text-decoration:none;font:500 1rem var(--sans);cursor:pointer;transition:.25s}
.btn.primary{background:linear-gradient(135deg,var(--red),#b62a40);border-color:transparent;box-shadow:0 8px 30px rgba(226,69,60,.35)}
.btn.primary:hover{filter:brightness(1.12);transform:translateY(-1px)}
.btn.big{padding:1rem 2.2rem;font-size:1.08rem}
.btn.ghost{border-color:transparent;color:var(--muted)}
.link{color:var(--gold)}

.cities{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}
@media (max-width:860px){.cities{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.cities{grid-template-columns:1fr}}
.city{position:relative;min-height:12rem;display:flex;align-items:flex-end;border-radius:16px;overflow:hidden;border:1px solid rgba(255,255,255,.1);text-decoration:none;background:repeating-linear-gradient(45deg,#121530 0 12px,#0f1128 12px 24px)}
.city .ph{position:absolute;inset:0}
.city.on::after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,rgba(11,13,26,.95),rgba(11,13,26,.1))}
.city>div{position:relative;z-index:1;padding:1rem 1.2rem}
.city h3{margin:.2rem 0;color:var(--paper);font-size:1.6rem}
html[lang=ja] .city h3{font-family:var(--sans)}
.city p{margin:0;font-size:.88rem;color:#d4d0e2;line-height:1.5}
.city.on:hover{border-color:var(--red2)}
.city.off{opacity:.55}
.tag{display:inline-block;padding:.15rem .6rem;border-radius:999px;font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;background:rgba(255,255,255,.1)}
.city.on .tag{background:var(--red);color:#fff}

.faq{border-bottom:1px solid rgba(255,255,255,.1);padding:.7rem 0}
.faq summary{cursor:pointer;font-weight:500}
.faq p{margin:.5rem 0 0;color:var(--muted)}

.facts{margin:0;display:grid;gap:.1rem}
.facts div{display:grid;grid-template-columns:9.5rem 1fr;gap:1rem;padding:.55rem 0;border-bottom:1px solid rgba(255,255,255,.07)}
.facts dt{color:var(--muted);font-size:.88rem}
.facts dd{margin:0}
.shots{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}
.shots .ph{aspect-ratio:16/9;border-radius:12px}
@media (max-width:700px){.shots{grid-template-columns:1fr}}

.char{display:grid;grid-template-columns:minmax(220px,380px) 1fr;gap:3rem;align-items:start}
.portrait{aspect-ratio:2/3;border-radius:20px}
.portrait img{object-fit:contain;object-position:bottom}
@media (max-width:760px){.char{grid-template-columns:1fr}.portrait{max-width:320px;margin:0 auto}}

.foot{margin-top:5rem;padding:2.5rem 4vw;text-align:center;border-top:1px solid rgba(255,255,255,.07);color:var(--muted);font-size:.88rem}
.foot p{max-width:46rem;margin:.4rem auto}
.small{font-size:.78rem;opacity:.7}
.badge{display:inline-block;padding:.2rem .7rem;border:2px solid var(--red);border-radius:8px;color:var(--red2);font-weight:700}

.age{position:fixed;inset:0;z-index:50;display:grid;place-items:center;padding:1.5rem;background:rgba(5,6,14,.9);backdrop-filter:blur(10px)}
.age[hidden]{display:none}
.age-box{max-width:30rem;padding:2rem;text-align:center;border-radius:18px;background:linear-gradient(180deg,#151935,#0c0e20);border:1px solid rgba(227,191,120,.25)}
.age-box .btn{margin:.3rem}
.brand b{color:var(--red2);font-weight:400}
.nav a.cur{color:var(--gold)}
.foot-links a{color:var(--paper);text-decoration:none}
.foot-links a:hover{color:var(--gold)}
@media (max-width:760px){.nav a.cur{display:none}}
.brand{font-family:"Unbounded",var(--sans);font-weight:800;font-size:1rem;letter-spacing:-.01em}

@media (min-height:1400px){.age{place-items:start center;padding-top:120px}}
