

*{box-sizing:border-box;margin:0;padding:0}

html{-webkit-text-size-adjust:100%}
@media(prefers-reduced-motion:no-preference){ html{scroll-behavior:smooth} }

body{background:var(--bg);color:var(--ink);font-family:var(--sans);
  font-weight:var(--w-body);font-size:var(--t-body);line-height:var(--lh-body);
  letter-spacing:var(--ls-body);-webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;overflow-x:hidden;
  
  background-image:radial-gradient(ellipse 120% 60% at 50% 0%,
    rgba(201,162,39,.055),transparent 70%)}

img{max-width:100%;height:auto;display:block}


.num{font-family:var(--serif-num);font-variant-numeric:lining-nums;
  font-feature-settings:"lnum" 1;letter-spacing:.01em}


.eyebrow{font-family:var(--serif-num);font-size:var(--t-label);font-weight:600;
  letter-spacing:var(--ls-label);text-transform:uppercase;color:var(--gold);
  display:block;margin-bottom:18px;text-align:center}
.eyebrow.on-dark{color:var(--gold-lit)}


.wrap{width:100%;max-width:var(--max);margin-inline:auto;padding-inline:var(--gut)}
.measure{max-width:var(--measure);margin-inline:auto}

.s-xl{padding-block:var(--s-xl)}
.s-lg{padding-block:var(--s-lg)}
.s-md{padding-block:var(--s-md)}


main>section.cv{
  content-visibility:auto;
  contain-intrinsic-size:auto none auto var(--cvh,1200px);
}


.band{background:var(--bg-deep)}
.band-white{background:var(--bg-deep)}      
.band-dark{background:var(--bg-deep)}
.rule{border:0;border-top:1px solid var(--line-soft)}


.framed{position:relative;border:1px solid var(--line);background:var(--bg-panel)}
.framed::before,.framed::after{content:"";position:absolute;width:13px;height:13px;
  border:1px solid var(--gold);opacity:.85;pointer-events:none}
.framed::before{top:5px;left:5px;border-right:0;border-bottom:0}
.framed::after{bottom:5px;right:5px;border-left:0;border-top:0}

.cnr{position:absolute;inset:5px;pointer-events:none}
.cnr::before,.cnr::after{content:"";position:absolute;width:13px;height:13px;
  border:1px solid var(--gold);opacity:.85}
.cnr::before{top:0;right:0;border-left:0;border-bottom:0}
.cnr::after{bottom:0;left:0;border-right:0;border-top:0}


.dia{display:flex;align-items:center;justify-content:center;gap:14px;
  margin:20px auto 0;max-width:280px}
.dia::before,.dia::after{content:"";height:1px;flex:1;
  background:linear-gradient(90deg,transparent,var(--line-strong))}
.dia::after{background:linear-gradient(90deg,var(--line-strong),transparent)}
.dia i{width:6px;height:6px;background:var(--gold);transform:rotate(45deg);
  flex:none;font-style:normal}


h1,h2,h3{font-family:var(--serif-jp);font-weight:var(--w-bold);text-wrap:balance}
.t-h2{font-size:var(--t-h2);line-height:var(--lh-h);letter-spacing:var(--ls-h);
  text-align:center;color:var(--ink)}
.t-h3{font-size:var(--t-h3);line-height:var(--lh-tight);letter-spacing:var(--ls-h);
  font-weight:var(--w-bold)}
.t-lead{font-size:var(--t-lead);line-height:var(--lh-body);color:var(--dim);
  text-align:center;margin-inline:auto}
.t-small{font-size:var(--t-small);color:var(--dim)}
.t-cap{font-size:var(--t-cap);color:var(--dim)}

.t-h2 em{font-style:normal;font-family:var(--serif-num);color:var(--gold-lit);
  font-size:1.28em;line-height:1;padding-inline:.06em}


.script{font-family:var(--script);font-size:var(--t-script);color:var(--gold);
  line-height:1.3;letter-spacing:.02em}


.hd{position:sticky;top:0;z-index:50;
  background:color-mix(in srgb,var(--bg) 92%,transparent);
  backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
  border-bottom:1px solid transparent;transition:border-color .3s ease}
.hd .wrap{display:flex;align-items:center;justify-content:space-between;
  height:64px;transition:height .3s ease}
.hd.on{border-bottom-color:var(--line)}
.hd.on .wrap{height:56px}

.logo{font-family:var(--serif-jp);font-size:20px;font-weight:var(--w-bold);
  letter-spacing:.08em;color:var(--ink);text-decoration:none;
  display:flex;align-items:center;gap:8px;min-height:44px}
.logo small{font-family:var(--serif-num);font-size:9.5px;font-weight:600;
  letter-spacing:.24em;color:var(--gold);text-transform:uppercase}

.nav{display:flex;align-items:center;gap:2px}

.nav-links a{font-size:var(--t-small);font-weight:var(--w-body);color:var(--ink-soft);
  text-decoration:none;display:flex;align-items:center;min-height:44px;padding-inline:12px}
.nav-links a:hover{color:var(--gold-lit)}
.nav a.btn-primary{color:var(--on-gold)}
.nav a.btn-line{color:#fff}
.nav-links{display:none}
@media(min-width:900px){ .nav-links{display:flex} }


.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;
  text-decoration:none;font-family:var(--sans);font-weight:var(--w-mid);
  border:1px solid transparent;border-radius:var(--r-sm);cursor:pointer;
  transition:background .3s ease,color .3s ease,border-color .3s ease;
  min-height:52px;padding-inline:30px;font-size:15px;white-space:nowrap;
  letter-spacing:.08em}

.btn-primary{background:linear-gradient(180deg,var(--gold-lit),var(--gold));
  color:var(--on-gold);font-weight:var(--w-bold);
  box-shadow:0 1px 0 rgba(255,255,255,.25) inset}
.btn-primary:hover{background:linear-gradient(180deg,var(--gold-lit),var(--gold-lit))}

.btn-ghost{background:transparent;color:var(--gold-lit);border-color:var(--line-strong)}
.btn-ghost:hover{border-color:var(--gold);background:rgba(201,162,39,.07)}
.btn-line{background:var(--line-green);color:#fff}
.btn-line:hover{background:var(--line-green-d)}
.btn-sm{min-height:44px;padding-inline:20px;font-size:13px}

.link-arrow{display:inline-flex;
  
  background:none;border:0;padding:0;font-family:inherit;cursor:pointer;align-items:center;gap:9px;min-height:44px;
  color:var(--gold-lit);text-decoration:none;font-size:var(--t-small);
  letter-spacing:.08em}
.link-arrow::after{content:"";width:18px;height:1px;background:currentColor;
  transition:width .3s ease}
.link-arrow:hover::after{width:28px}

.btn-row{display:flex;flex-wrap:wrap;align-items:center;gap:14px 22px;
  justify-content:center}

:focus{outline:none}
:focus-visible{outline:1px solid var(--gold-lit);outline-offset:3px}


.rv{opacity:0;transform:translate3d(0,16px,0);
  transition:opacity .9s cubic-bezier(.16,.8,.28,1),transform .9s cubic-bezier(.16,.8,.28,1)}
.rv.in{opacity:1;transform:none}
.rv-d1{transition-delay:.09s}
.rv-d2{transition-delay:.18s}
.rv-d3{transition-delay:.27s}

.img-rv{overflow:hidden;background:var(--bg-deep)}
.img-rv img{transform:scale(1.06);transition:transform 1.4s cubic-bezier(.16,.8,.28,1)}
.img-rv.in img{transform:scale(1)}

@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{transition:none!important;animation:none!important}
  .rv{opacity:1;transform:none}
  .img-rv img{transform:none}
}


details{border:1px solid var(--line-soft);background:var(--bg-panel);
  margin-bottom:10px;border-radius:var(--r-sm)}
details:first-of-type{border-top:1px solid var(--line-soft)}
summary{cursor:pointer;list-style:none;padding:19px 48px 19px 20px;position:relative;
  font-size:var(--t-small);font-weight:var(--w-body);color:var(--ink-soft)}
summary::-webkit-details-marker{display:none}
summary::after{content:"";position:absolute;right:20px;top:50%;width:11px;height:1px;
  background:var(--gold)}
summary::before{content:"";position:absolute;right:25px;top:50%;width:1px;height:11px;
  background:var(--gold);margin-top:-5px;transition:opacity .3s ease}
details[open]{border-color:var(--line)}
details[open] summary::before{opacity:0}
details .a{font-size:var(--t-small);color:var(--dim);padding:0 20px 20px;
  line-height:var(--lh-body)}


footer{border-top:1px solid var(--line-soft);padding-block:44px;
  font-size:var(--t-cap);color:var(--dim-2);text-align:center}
footer .wrap{display:flex;justify-content:center;flex-wrap:wrap;gap:10px 20px}
footer a{color:var(--dim);text-decoration:none;display:inline-flex;align-items:center;
  min-height:44px}
footer a:hover{color:var(--gold-lit)}


.mock{position:absolute;left:12px;bottom:12px;z-index:2;
  font-family:var(--serif-num);font-size:10.5px;font-weight:600;letter-spacing:.1em;
  color:var(--gold-lit);background:rgba(12,10,8,.72);border:1px solid var(--line);
  padding:4px 10px;border-radius:var(--r-sm)}

.sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;
  clip:rect(0,0,0,0);white-space:nowrap;border:0}


strong{font-weight:var(--w-bold);color:var(--gold-lit)}

b{font-weight:var(--w-bold);color:var(--ink-soft)}

b.items{display:block;margin:.5em 0;letter-spacing:.06em}
