
:root{
  --bg:#050506; --bg2:#0b0b0d; --line:#232327; --fg:#ecebe8; --dim:#8f8e8a; --dim2:#5d5c59;
  --gold:#e8b33c; --gold2:#b98d2f; --purple:#b48cff; --blue:#6fa8d6;
  --safe-t:env(safe-area-inset-top,0px); --safe-b:env(safe-area-inset-bottom,0px);
  --serif:"Hiragino Mincho ProN","Yu Mincho","YuMincho","Noto Serif JP",serif;
  --sans:system-ui,-apple-system,"Hiragino Kaku Gothic ProN","Noto Sans JP","Yu Gothic",sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--safe-t) + 104px);-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--fg);font:15px/1.9 var(--sans);letter-spacing:.02em}
a{color:inherit}
.sp{display:inline}@media(min-width:641px){.sp{display:none}}
.dim{color:var(--dim)}
.preview{position:fixed;left:0;right:0;bottom:0;z-index:60;padding:6px 12px calc(6px + var(--safe-b));background:#2a1f08;color:#f3cf7a;
  font-size:11.5px;letter-spacing:.08em;text-align:center;border-top:1px solid #5b4312}
.top{position:fixed;top:0;left:0;right:0;z-index:50;display:flex;align-items:center;gap:18px;
  padding:calc(var(--safe-t) + 12px) 20px 10px;background:linear-gradient(180deg,rgba(5,5,6,.92),rgba(5,5,6,.78));backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
.brand{text-decoration:none;display:flex;flex-direction:column;line-height:1.1}
.brand b{color:var(--gold);font-size:18px;letter-spacing:.08em}
.brand span{font-size:9px;letter-spacing:.3em;color:var(--dim);margin-top:3px}
.main{display:flex;gap:22px;margin-left:auto}
.main a,.back{text-decoration:none;font-size:12px;letter-spacing:.2em;color:#cfcdc8}
.main a:hover,.back:hover{color:var(--gold)}
.back{border:1px solid var(--line);border-radius:4px;padding:6px 10px;white-space:nowrap}
.back i{font-style:normal;color:var(--gold)}
.index{position:fixed;left:0;right:0;top:calc(var(--safe-t) + 58px);z-index:49;display:flex;gap:4px;overflow-x:auto;scrollbar-width:none;
  padding:6px 16px 8px;background:rgba(5,5,6,.78);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.index::-webkit-scrollbar{display:none}
.index a{flex:0 0 auto;text-decoration:none;font-size:10.5px;letter-spacing:.16em;color:var(--dim);padding:4px 8px;border-radius:3px;white-space:nowrap}
.index a em{font-style:normal;color:var(--dim2);margin-right:6px}
.index a.on{color:var(--fg)}
.index a.on em{color:var(--gold)}
@media(max-width:640px){
  .top{gap:10px;padding:calc(var(--safe-t) + 10px) 16px 8px}
  .main{gap:12px}.main a{font-size:10.5px;letter-spacing:.14em}
  .back{font-size:10px;padding:5px 7px;letter-spacing:.1em}
  .brand b{font-size:16px}.brand span{display:none}
  .index{top:calc(var(--safe-t) + 46px)}
  html{scroll-padding-top:calc(var(--safe-t) + 92px)}
}
.hero{position:relative;min-height:100svh;display:flex;align-items:flex-end;padding:calc(var(--safe-t) + 120px) 20px 64px;overflow:hidden;isolation:isolate}
.hero-bg{position:absolute;inset:0;z-index:-2}
.hero-bg img{width:100%;height:100%;object-fit:cover;object-position:50% 60%;filter:saturate(.9)}
.hero::after{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(5,5,6,.55) 0%,rgba(5,5,6,.15) 30%,rgba(5,5,6,.55) 62%,rgba(5,5,6,.96) 100%)}
.hero-in{max-width:760px;margin:0 auto 0 max(0px,calc((100vw - 1040px)/2))}
.kicker{font-size:11px;letter-spacing:.32em;color:var(--gold);margin:0 0 18px}
.hero h1{font:600 clamp(34px,7.2vw,64px)/1.28 var(--serif);letter-spacing:.06em;margin:0 0 26px}
.hero p{margin:0 0 12px}
.lead{font-size:16px}
.list-inline{color:#d9d6cf;font-size:14px}
.lead2{color:#d9d6cf;font-size:14px}
.gate{font-size:14px;color:var(--gold)}
.cta{display:inline-block;margin-top:22px;text-decoration:none;font-size:12px;letter-spacing:.26em;border-bottom:1px solid var(--gold);padding:8px 2px;color:var(--fg)}
.cta i{font-style:normal;color:var(--gold);margin-left:8px}
.hero-cap{position:absolute;right:16px;bottom:12px;margin:0;font-size:9.5px;color:var(--dim2);letter-spacing:.06em}
.sec{max-width:760px;margin:0 auto;padding:112px 20px 96px;border-top:1px solid var(--line)}
.num{font-size:11px;letter-spacing:.3em;color:var(--gold);margin:0 0 20px}
.num span{color:var(--dim);margin-left:10px}
.sec h2{font:600 clamp(26px,5.4vw,40px)/1.45 var(--serif);letter-spacing:.05em;margin:0 0 34px}
.body{margin:0 0 22px;color:#d6d4ce}
.body.strong{color:var(--fg);font-size:17px}
.quote{font:500 clamp(20px,4.4vw,28px)/1.6 var(--serif);color:var(--fg);margin:44px 0 18px;padding-left:18px;border-left:2px solid var(--gold)}
.quote.small{font-size:clamp(17px,3.8vw,22px);margin:26px 0}
.sub{margin:48px 0 14px;font-size:11px;letter-spacing:.26em;color:var(--dim)}
.more{margin:30px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.more summary{cursor:pointer;list-style:none;padding:16px 0;font-size:13px;letter-spacing:.08em;color:#cfcdc8;display:flex;justify-content:space-between;gap:12px}
.more summary::-webkit-details-marker{display:none}
.more summary::after{content:'+';color:var(--gold);font-size:16px;line-height:1}
.more[open] summary::after{content:'−'}
.more > div{padding:0 0 18px}
.more p{margin:0 0 14px;color:#cfccc5;font-size:14px}
.cycle{margin:40px 0 30px;padding:26px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.cycle ol{list-style:none;margin:0;padding:0;counter-reset:c;display:grid;grid-template-columns:1fr 1fr;gap:14px 20px}
.cycle li{position:relative;padding-left:26px;font-size:14px;color:#dedbd4}
.cycle li::before{counter-increment:c;content:counter(c);position:absolute;left:0;top:.35em;font-size:10px;color:var(--gold);letter-spacing:0}
.cycle .again{margin:20px 0 0;font:500 16px/1.6 var(--serif);color:var(--gold)}
.flows{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);border:1px solid var(--line)}
.flows li{background:var(--bg);padding:16px 14px}
.flows b{display:block;font-size:11px;letter-spacing:.2em;font-weight:600}
.flows span{font-size:12px;color:var(--dim)}
@media(min-width:641px){.cycle ol{grid-template-columns:repeat(3,1fr)}.flows{grid-template-columns:repeat(4,1fr)}}
.pair{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;margin:26px 0;font-size:14px}
.pair span{border:1px solid var(--line);padding:8px 12px;border-radius:2px}
.pair i{font-style:normal;color:var(--gold)}
.words{color:var(--dim);font-size:13px;line-height:2.2;letter-spacing:.12em;margin:10px 0 30px}
.role{margin:40px 0;padding:24px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.role-t{margin:0;font-size:11px;letter-spacing:.26em;color:var(--dim)}
.role-v{margin:8px 0;font-size:24px;letter-spacing:.18em}
.role-v i{font-style:normal;color:var(--gold);margin:0 12px}
.role-n{margin:0;color:#cfccc5;font-size:14px}
.route{list-style:none;margin:6px 0 16px;padding:0;display:flex;flex-wrap:wrap;gap:6px 0}
.route li{font-size:13px;color:#dcd9d2}
.route li:not(:last-child)::after{content:'→';color:var(--gold);margin:0 8px}
.route-s{font-size:11.5px;letter-spacing:.14em;color:var(--dim)}
.spine{list-style:none;margin:36px 0;padding:0 0 0 22px;position:relative}
.spine::before{content:'';position:absolute;left:4px;top:8px;bottom:8px;width:1px;background:linear-gradient(180deg,var(--gold2),var(--gold))}
.spine li{position:relative;padding:9px 0;font-size:15px;color:#dcd9d2}
.spine li::before{content:'';position:absolute;left:-22px;top:50%;width:9px;height:9px;margin-top:-4px;border-radius:50%;background:var(--bg);border:1px solid var(--gold)}
.spine li.end{color:var(--gold)}
.spine li.end::before{background:var(--gold)}
.steps{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center;font-size:11px;letter-spacing:.2em;margin:0 0 30px}
.steps i{font-style:normal;color:var(--gold)}
.products{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.products li{padding:18px 0;border-bottom:1px solid var(--line)}
.p-h{display:flex;align-items:center;justify-content:space-between;gap:10px}
.p-h b{font-size:14px;letter-spacing:.16em}
.p-v{margin:4px 0 0;font:500 16px/1.6 var(--serif)}
.p-n{margin:2px 0 0;font-size:12.5px;color:var(--dim)}
.st{flex:0 0 auto;font-size:10.5px;letter-spacing:.08em;padding:2px 8px;border:1px solid var(--line);border-radius:2px;color:var(--dim)}
.st-LIVE{color:#7fd6a2;border-color:#2f5a41}
.st-PREPARING{color:var(--gold);border-color:#5b4312}
.st-BUILDING{color:var(--blue);border-color:#27415a}
.st-CONCEPT{color:var(--purple);border-color:#3f325e}
.expansion{display:flex;flex-wrap:wrap;gap:10px 16px;font-size:12.5px;letter-spacing:.1em}
.expansion .st{margin-left:4px}
.dots{margin:0 0 12px;padding-left:18px;color:#cfccc5;font-size:14px}
.policy{margin:0 0 30px;padding:14px 16px;border-left:2px solid var(--gold);background:var(--bg2);font-size:13.5px;color:#dcd9d2}
.values{list-style:none;margin:0 0 34px;padding:0;display:grid;grid-template-columns:1fr;gap:0;border-top:1px solid var(--line)}
.values li{padding:12px 0;border-bottom:1px solid var(--line);font-size:14px}
.values li::before{content:'—';color:var(--gold);margin-right:10px}
.plans{display:grid;grid-template-columns:1fr;gap:1px;background:var(--line);border:1px solid var(--line);margin:0 0 10px}
@media(min-width:641px){.plans{grid-template-columns:1fr 1fr}.values{grid-template-columns:1fr 1fr;column-gap:24px}}
.plan{background:var(--bg);padding:22px 18px}
.plan-n{margin:0;font-size:11px;letter-spacing:.22em;color:var(--dim)}
.plan.gold .plan-n{color:var(--gold)}
.plan-p{margin:8px 0 4px;font:500 30px/1.2 var(--serif);letter-spacing:.02em}
.plan-p small{font:12px var(--sans);color:var(--dim);margin-left:8px}
.plan-x{margin:0;font-size:12.5px;color:#cfccc5}
.soon{margin:0;background:var(--bg);padding:20px 18px;color:var(--dim);font-size:13.5px}
.opts{list-style:none;margin:0 0 12px;padding:0}
.opts li{display:flex;justify-content:space-between;gap:14px;padding:12px 0;border-bottom:1px solid var(--line)}
.o-n b{display:block;font-size:12.5px;letter-spacing:.12em}
.o-n small{font-size:11.5px;color:var(--dim)}
.o-p{text-align:right;font-size:13.5px;white-space:nowrap}
.o-p small{display:block;font-size:11px;color:var(--gold)}
.contact-line{margin:30px 0 0;font-size:13px;color:#cfccc5}
.contact-line a{color:var(--gold)}
.badge{font-style:normal;display:inline-block;margin-left:8px;font-size:10px;letter-spacing:.06em;padding:1px 6px;border-radius:2px;vertical-align:middle}
.badge.warn{background:#2a1f08;color:#f3cf7a;border:1px solid #5b4312}
.name{display:flex;flex-direction:column}
.name small{font:11px var(--sans);letter-spacing:.3em;color:var(--dim);margin-top:8px}
.co{margin:0;border-top:1px solid var(--line)}
.co div{display:grid;grid-template-columns:140px 1fr;gap:12px;padding:14px 0;border-bottom:1px solid var(--line)}
.co dt{font-size:10.5px;letter-spacing:.22em;color:var(--dim);padding-top:3px}
.co dd{margin:0;font-size:14px}
@media(max-width:640px){.co div{grid-template-columns:1fr;gap:2px}.sec{padding:96px 20px 80px}}
.foot{max-width:760px;margin:0 auto;padding:40px 20px calc(80px + var(--safe-b));border-top:1px solid var(--line);font-size:12px;letter-spacing:.1em}
.foot a{text-decoration:none;color:#cfccc5}
.foot .foot-contact{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 14px;margin:18px 0}
.foot .foot-contact span{font-size:10.5px;letter-spacing:.22em;color:var(--dim)}
.foot .foot-contact a{color:var(--gold);letter-spacing:.04em;overflow-wrap:anywhere}
.foot .big{display:inline-block;margin-bottom:22px;padding:12px 16px;font-size:12px;letter-spacing:.2em;border:1px solid var(--gold2);color:var(--fg)}
.is-preview .foot{padding-bottom:calc(110px + var(--safe-b))}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
.st-NEXT{color:var(--gold);border-color:#5b4312}
.pg .sub{margin:34px 0 8px}
.pg:first-child .sub{margin-top:8px}
.pg-note{margin:0 0 10px;font-size:12.5px;color:var(--dim)}
.pg .values{margin:0 0 6px}
.values li b{font-weight:600;letter-spacing:.06em}
.pg-next .values li::before{color:var(--purple)}
.pg-opt .values li::before{color:var(--dim)}
.also{margin:22px 0 0;font-size:13px;color:#cfccc5}
.also b{font-weight:600;color:var(--fg);letter-spacing:.06em}
.nots{list-style:none;margin:10px 0 0;padding:0;border-top:1px solid var(--line)}
.nots li{padding:10px 0;border-bottom:1px solid var(--line);font-size:14px;color:#dcd9d2}
.targets{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0 10px;padding:0;list-style:none}
.targets li{font-size:11px;letter-spacing:.14em;border:1px solid var(--line);padding:4px 9px;border-radius:2px;color:#dcd9d2}
@media(min-width:641px){.plans .plan:last-child:nth-child(odd){grid-column:1 / -1}}
