:root{
  --bg:#06050b;
  /* ブランドカラー: サクセスカラー。Serendipity(#B92874)に変える場合は --brand-rgb を差し替える */
  --brand:#459BDB;
  --brand-rgb:69,155,219;
  --gold:var(--brand);                       /* 旧名称。ブランドカラーの別名 */
  --gold-dim:rgba(var(--brand-rgb),.62);
  --gold-faint:rgba(var(--brand-rgb),.22);
  --ink:#efe6d2;
  --ink-dim:rgba(239,230,210,.72);
  --gem:#f2c230;
  --serif:"Cormorant Garamond","Noto Serif JP",serif;
  --jp:"Noto Serif JP","Cormorant Garamond",serif;
  --logo:"Jost","Futura","Century Gothic",sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;background:var(--bg)}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--jp);font-weight:300;line-height:1.9;
     -webkit-font-smoothing:antialiased;overflow-x:hidden}
a{color:inherit}
h1,h2,h3,p,ul,ol,figure{margin:0;padding:0}
ul,ol{list-style:none}

#stars{position:fixed;inset:0;width:100%;height:100%;z-index:0}
.halo{
  position:fixed;left:50%;top:46%;width:min(120vmin,1100px);height:min(120vmin,1100px);z-index:0;
  transform:translate(-50%,-50%) scale(.6);opacity:0;pointer-events:none;
  background:radial-gradient(circle,color-mix(in srgb,var(--gem) 34%,transparent) 0%,transparent 62%);
  transition:opacity 2s ease,transform 2.4s ease,background 1s;
}
.halo.on{opacity:var(--halo-o,1);transform:translate(-50%,-50%) scale(1)}

main,footer.site,header.site,.devnote{position:relative;z-index:1}

/* ---------- header ---------- */
header.site{position:fixed;top:0;left:0;right:0;z-index:50;display:flex;align-items:center;justify-content:space-between;
  padding:20px clamp(16px,3vw,40px);background:linear-gradient(to bottom,rgba(6,5,11,.85),rgba(6,5,11,0))}
.logo{display:inline-flex;align-items:center;gap:12px;font-family:var(--logo);font-weight:500;letter-spacing:.42em;font-size:13px;
      color:var(--brand);text-decoration:none;text-transform:uppercase}
.logo svg{width:30px;height:auto;flex:none}
.logo span{white-space:nowrap}
footer .logo{flex-direction:column;gap:14px;font-size:12px;line-height:1.8;text-align:center}
footer .logo svg{width:56px}
header.site nav{display:flex;gap:clamp(14px,2.2vw,34px)}
header.site nav a{font-family:var(--serif);font-size:13px;letter-spacing:.28em;text-decoration:none;color:var(--ink-dim);transition:color .3s}
header.site nav a:hover{color:var(--gold)}
header.site nav a.shop{color:var(--gold);border-bottom:1px solid var(--gold-dim)}
.menu{display:none;background:none;border:0;width:40px;height:40px;position:relative;cursor:pointer}
.menu span{position:absolute;left:8px;right:8px;height:1px;background:var(--gold);transition:transform .3s,top .3s}
.menu span:first-child{top:16px}.menu span:last-child{top:24px}
.menu[aria-expanded="true"] span:first-child{top:20px;transform:rotate(45deg)}
.menu[aria-expanded="true"] span:last-child{top:20px;transform:rotate(-45deg)}

/* ---------- hero ---------- */
.hero{position:relative;height:100svh;min-height:640px;display:flex;align-items:center;justify-content:center}
.hero-inner{display:flex;flex-direction:column;align-items:center;will-change:transform,opacity;padding-top:5vh}
.hero-copy-old{font-size:clamp(12px,1.4vmin,14px);letter-spacing:.34em;color:rgba(255,255,255,.92);padding-left:.34em;margin-bottom:1vh;
            text-shadow:0 0 6px rgba(var(--brand-rgb),.85),0 0 16px rgba(var(--brand-rgb),.5)}
svg#chart{width:min(56vmin,560px);height:auto;aspect-ratio:1;overflow:visible}

.draw{fill:none;stroke:var(--gold);stroke-width:1.2;stroke-linecap:round;
      stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset 2.4s cubic-bezier(.55,0,.15,1)}
.draw.thin{stroke-width:.6;stroke:var(--gold-dim)}
#chart.on .draw{stroke-dashoffset:0}
#lines{transition:opacity 1.6s ease}
#lines.recede{opacity:.28}
.rashi{fill:var(--gold-dim);font-size:11px;text-anchor:middle;dominant-baseline:middle;opacity:0;transition:opacity 1.6s ease;font-family:var(--serif)}
#chart.nums .rashi{opacity:1}
#lines.recede .rashi{opacity:.6}

.planet{opacity:0;transform:scale(.4);transform-box:fill-box;transform-origin:center;
        transition:opacity .9s ease,transform .9s cubic-bezier(.2,.8,.2,1),filter .8s ease;cursor:pointer}
.planet.in{opacity:1;transform:scale(1)}
.planet .sym{stroke:var(--ink);fill:none;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;color:var(--ink)}
.planet text{fill:var(--gold);font-size:11px;text-anchor:middle;letter-spacing:.08em;font-family:var(--serif)}
#planets.dim .planet.in{opacity:.16}
#planets.dim .planet.in.active{opacity:1;filter:drop-shadow(0 0 7px var(--gold));transform:scale(1.35)}
.planet:hover .sym{stroke:var(--gold)}

.beam{fill:none;stroke:url(#beamGrad);stroke-width:1.6;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset 1s ease-in}
.beam.go{stroke-dashoffset:0}
.ring{fill:none;stroke:var(--gem);stroke-width:1;opacity:0;transform-box:fill-box;transform-origin:center}
.ring.go{animation:ring 1.6s ease-out forwards}
@keyframes ring{0%{opacity:.9;transform:scale(.1)}100%{opacity:0;transform:scale(1)}}

#gemWrap{opacity:0;transform:scale(.2);transform-box:view-box;transform-origin:200px 200px;
         transition:opacity 1.1s ease,transform 1.5s cubic-bezier(.2,.9,.2,1)}
#gemWrap.show{opacity:1;transform:scale(1)}
.rays line{stroke:var(--gem);stroke-width:.7;opacity:.55}
.rays{transform-origin:200px 200px;animation:spin 60s linear infinite;opacity:0;transition:opacity 1.5s}
#gemWrap.show .rays{opacity:1}
@keyframes spin{to{transform:rotate(360deg)}}
.facet-edge{stroke:rgba(255,255,255,.4);stroke-width:.6}
.sh{fill:#fff;opacity:0;animation:shimmer 3.6s ease-in-out infinite}
@keyframes shimmer{0%,60%,100%{opacity:0}30%{opacity:.6}}
.eye{animation:eye 4.2s ease-in-out infinite;transform-box:fill-box;transform-origin:center}
@keyframes eye{0%,100%{transform:translateX(-5px)}50%{transform:translateX(5px)}}

.caption{position:relative;height:clamp(110px,17vh,150px);text-align:center;margin-top:1.4vh;
         opacity:0;transform:translateY(10px);transition:opacity 1s ease,transform 1s ease}
.caption.show{opacity:1;transform:none}
.caption .k{font-family:var(--serif);font-size:clamp(11px,1.4vmin,14px);letter-spacing:.42em;color:#fff;padding-left:.42em;
               text-shadow:0 0 6px rgba(var(--brand-rgb),.9),0 0 18px rgba(var(--brand-rgb),.6)}
.caption .n{font-family:var(--serif);font-size:clamp(26px,4.4vmin,46px);font-weight:400;letter-spacing:.1em;margin:.2em 0 0;line-height:1.3;color:#fff;
               text-shadow:0 0 8px rgba(var(--brand-rgb),.85),0 0 24px rgba(var(--brand-rgb),.55),0 0 48px rgba(var(--brand-rgb),.35)}
.caption .j{font-size:clamp(12px,1.6vmin,15px);letter-spacing:.3em;color:rgba(255,255,255,.92);padding-left:.3em;
               text-shadow:0 0 6px rgba(var(--brand-rgb),.85),0 0 16px rgba(var(--brand-rgb),.5)}
.cta{display:inline-block;margin-top:1em;font-size:clamp(11px,1.4vmin,13px);letter-spacing:.3em;color:var(--gold);text-decoration:none;
     border-bottom:1px solid var(--gold-dim);padding:0 0 .35em .3em;transition:color .3s,border-color .3s}
.cta:hover{color:#fff;border-color:#fff}

.scroll{position:absolute;left:50%;bottom:20px;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:8px;
        text-decoration:none;font-family:var(--serif);font-size:10px;letter-spacing:.4em;color:var(--gold-dim);padding-left:.4em}
.scroll i{display:block;width:1px;height:34px;background:linear-gradient(var(--gold-dim),transparent);animation:drip 2.4s ease-in-out infinite}
@keyframes drip{0%{transform:scaleY(0);transform-origin:top}50%{transform:scaleY(1);transform-origin:top}51%{transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}

/* ---------- sections ---------- */
.block{padding:clamp(90px,16vh,170px) clamp(20px,5vw,60px)}
.wrap{max-width:1080px;margin:0 auto}
.wrap.narrow{max-width:760px}
.center{text-align:center}
.en{font-family:var(--serif);font-size:13px;letter-spacing:.42em;color:var(--gold);padding-left:.42em}
h2{font-weight:300;font-size:clamp(22px,3vw,32px);letter-spacing:.14em;line-height:1.7;margin-top:.4em}
h2.lead{font-size:clamp(28px,4.6vw,52px);letter-spacing:.2em;font-weight:300;margin:.5em 0 1em}
.body p,.sub,.block p{color:var(--ink-dim)}
.sub{margin-top:1em;letter-spacing:.1em;font-size:14px}
.body{font-size:15px;letter-spacing:.12em}
.sec-head{margin-bottom:clamp(36px,6vh,64px)}
.more{margin-top:clamp(36px,6vh,60px);text-align:center}
.link{font-family:var(--jp);font-size:13px;letter-spacing:.3em;color:var(--gold);text-decoration:none;border-bottom:1px solid var(--gold-dim);padding:0 0 .35em .3em;transition:color .3s,border-color .3s}
.link:hover{color:#fff;border-color:#fff}
.stance{text-align:center;padding-top:clamp(120px,22vh,240px);padding-bottom:clamp(120px,22vh,240px)}
.stance .body{line-height:2.4}

/* reveal */
.rv{opacity:0;transform:translateY(26px);transition:opacity 1.2s ease,transform 1.2s cubic-bezier(.2,.7,.2,1)}
.rv.in{opacity:1;transform:none}

/* cards */
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(14px,2vw,28px)}
.card{display:block;text-decoration:none;color:inherit;border:1px solid var(--gold-faint);padding:18px 18px 24px;position:relative;
      background:linear-gradient(180deg,rgba(255,255,255,.025),transparent);transition:border-color .5s,transform .5s,background .5s;
      opacity:0;transform:translateY(26px)}
.card.in{opacity:1;transform:none;transition:opacity 1.1s ease,transform 1.1s cubic-bezier(.2,.7,.2,1),border-color .5s,background .5s}
.card .art{aspect-ratio:1;display:grid;place-items:center;position:relative;overflow:hidden}
.card .art::before{content:"";position:absolute;inset:8%;border-radius:50%;
  background:radial-gradient(circle,color-mix(in srgb,var(--c) 30%,transparent),transparent 68%);opacity:.5;transition:opacity .6s,transform .8s}
.card .art svg{position:relative;width:58%;height:auto;transition:transform .8s cubic-bezier(.2,.8,.2,1)}
.card:hover{border-color:var(--gold-dim);background:linear-gradient(180deg,rgba(var(--brand-rgb),.07),transparent)}
.card:hover .art::before{opacity:1;transform:scale(1.15)}
.card:hover .art svg{transform:scale(1.06)}
.card h3{font-family:var(--serif);font-weight:400;font-size:22px;letter-spacing:.2em;margin-top:14px}
.card .gem{font-size:13px;letter-spacing:.14em;color:var(--ink-dim)}
.card .tags{display:flex;align-items:center;gap:10px;margin-top:12px;font-family:var(--serif);font-size:12px;letter-spacing:.22em;color:var(--gold)}
.card .tags svg{width:18px;height:18px;overflow:visible}
.card .tags .sym{stroke:var(--gold);fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;color:var(--gold)}
.card .state{position:absolute;top:14px;left:14px;font-size:11px;letter-spacing:.2em;color:var(--gold);
             border:1px solid var(--gold-dim);padding:2px 10px 2px 12px;background:rgba(6,5,11,.6)}
.card.collected{filter:saturate(.35)}
.card.collected .state,.card.archive .state{color:var(--ink-dim);border-color:rgba(239,230,210,.3)}
.card.collected .sh{animation:none}

/* steps */
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(24px,4vw,56px);text-align:center}
.step svg{width:120px;height:120px;margin:0 auto;display:block;overflow:visible}
.step .no{font-family:var(--serif);letter-spacing:.3em;color:var(--gold);font-size:12px;margin-top:20px}
.step h3{font-weight:300;font-size:22px;letter-spacing:.3em;margin:.2em 0 .6em;padding-left:.3em}
.step p{font-size:14px;letter-spacing:.1em}
.mini-chart .draw{stroke-dashoffset:1}
.step.in .mini-chart .draw{stroke-dashoffset:0}
.ringline{fill:none;stroke:var(--gold);stroke-width:1.4}.ringline.thin{stroke-width:.6;stroke:var(--gold-dim)}
.ringgem{fill:rgba(var(--brand-rgb),.25);stroke:var(--gold);stroke-width:1.2}

/* bespoke panel */
.panel{position:relative;padding:clamp(40px,7vw,80px) clamp(24px,5vw,70px);text-align:center;border:1px solid var(--gold-faint);
       background:radial-gradient(ellipse at 50% 0%,rgba(var(--brand-rgb),.09),transparent 70%)}
.panel::before,.panel::after{content:"";position:absolute;width:18px;height:18px;border:1px solid var(--gold)}
.panel::before{top:-1px;left:-1px;border-right:0;border-bottom:0}
.panel::after{right:-1px;bottom:-1px;border-left:0;border-top:0}
.panel h2{margin-bottom:1em}

/* artist */
.two{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(30px,6vw,90px);align-items:center}
.portrait{aspect-ratio:4/5;border:1px solid var(--gold-faint);display:grid;place-items:center;
          background:linear-gradient(160deg,rgba(var(--brand-rgb),.09),rgba(255,255,255,0) 60%),#0b0912}
.portrait span{font-family:var(--serif);letter-spacing:.5em;color:var(--gold-dim);font-size:12px}
.role{font-family:var(--serif);letter-spacing:.3em;color:var(--gold);font-size:13px;margin:.4em 0 1.6em}

/* craft */
.route{display:flex;align-items:center;justify-content:center;gap:clamp(14px,3vw,36px);margin-bottom:clamp(30px,5vh,50px)}
.route .node{text-align:center}
.route b{display:block;font-family:var(--serif);font-weight:400;letter-spacing:.34em;color:var(--gold);font-size:14px;padding-left:.34em}
.route span{font-size:13px;letter-spacing:.14em;color:var(--ink-dim)}
.route .line{flex:0 1 220px;height:1px;background:linear-gradient(90deg,var(--gold-dim),var(--gold),var(--gold-dim));position:relative}
.route .line::after{content:"";position:absolute;left:50%;top:-3px;width:7px;height:7px;transform:translateX(-50%) rotate(45deg);border:1px solid var(--gold);background:var(--bg)}
.body.center{max-width:560px;margin:0 auto;text-align:center}

/* news */
.news li{display:grid;grid-template-columns:110px 80px 1fr;gap:16px;padding:18px 0;border-bottom:1px solid var(--gold-faint);align-items:baseline}
.news time{font-family:var(--serif);letter-spacing:.14em;color:var(--ink-dim);font-size:14px}
.news .tag{font-family:var(--serif);letter-spacing:.24em;font-size:11px;color:var(--gold)}
.news a{text-decoration:none;font-size:14px;letter-spacing:.08em;transition:color .3s}
.news a:hover{color:var(--gold)}

/* closing */
.closing{padding-bottom:clamp(120px,20vh,200px)}
.actions{display:flex;flex-wrap:wrap;gap:14px;justify-content:center;margin-top:20px}
.btn{font-family:var(--serif);letter-spacing:.3em;font-size:13px;text-decoration:none;padding:14px 28px 14px 32px;
     border:1px solid var(--gold-dim);color:var(--gold);transition:background .3s,color .3s,border-color .3s}
.btn:hover{background:rgba(var(--brand-rgb),.14);color:#fff;border-color:var(--gold)}
.btn.primary{background:var(--brand);color:#04101a;border-color:var(--brand)}
.btn.primary:hover{background:#6db3ea}

footer.site{padding:40px 20px 56px;text-align:center;border-top:1px solid var(--gold-faint)}
footer .logo{margin-bottom:14px}
footer .copy{font-family:var(--serif);font-size:12px;letter-spacing:.2em;color:var(--gold-dim)}
.devnote{position:fixed;right:12px;bottom:10px;z-index:60;font-size:11px;letter-spacing:.1em;color:rgba(var(--brand-rgb),.5);pointer-events:none}

/* ---------- responsive ---------- */
@media (max-width:900px){
  .cards{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:1400px){
  .menu{display:block}
  header.site nav{position:fixed;inset:0;background:rgba(6,5,11,.96);flex-direction:column;align-items:center;justify-content:center;gap:28px;
                  opacity:0;pointer-events:none;transition:opacity .4s}
  header.site nav.open{opacity:1;pointer-events:auto}
  header.site nav a{font-size:16px}
  header.site{z-index:60}
  .logo{position:relative;z-index:70}.menu{position:relative;z-index:70}
}
@media (max-width:720px){
  svg#chart{width:88vw}
  .steps{grid-template-columns:1fr;gap:56px}
  .two{grid-template-columns:1fr}
  .portrait{max-width:320px;margin:0 auto}
  .news li{grid-template-columns:1fr;gap:4px}
  .route{flex-direction:column}
  .route .line{width:1px;height:50px;flex:none;background:linear-gradient(var(--gold-dim),var(--gold),var(--gold-dim))}
  .route .line::after{left:-3px;top:50%;transform:translateY(-50%) rotate(45deg)}
}
@media (max-width:480px){
  .cards{grid-template-columns:1fr}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .rv,.card{opacity:1;transform:none;transition:none}
  .scroll i{animation:none}
}

/* =====================================================
   サブページ（ENCOUNTER 一覧 / 作品詳細）
   ===================================================== */
body.sub main.page{padding-top:84px}
.page-title{font-weight:300;font-size:clamp(23px,3.5vw,36px);letter-spacing:.2em;margin:.2em 0 0}
header.site nav a.here{color:var(--gold)}

.filters{display:flex;flex-direction:column;gap:14px;margin-bottom:28px}
.filter-group{display:flex;flex-wrap:wrap;gap:8px}
.chip{display:inline-flex;align-items:center;gap:8px;font-family:var(--jp);font-weight:300;font-size:13px;letter-spacing:.14em;
      color:var(--ink-dim);background:transparent;border:1px solid var(--gold-faint);padding:8px 16px;cursor:pointer;
      transition:color .3s,border-color .3s,background .3s}
.chip:hover{border-color:var(--gold-dim);color:var(--ink)}
.chip[aria-pressed="true"]{color:var(--gold);border-color:var(--gold);background:rgba(var(--brand-rgb),.1)}
.chip svg{width:16px;height:16px;overflow:visible}
.chip .sym{stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;color:currentColor}
.count{font-family:var(--serif);letter-spacing:.2em;color:var(--gold-dim);font-size:13px;margin-bottom:16px;min-height:1.6em}
.empty{color:var(--ink-dim);letter-spacing:.1em;padding:40px 0;text-align:center}

.crumb{font-family:var(--serif);font-size:12px;letter-spacing:.25em;color:var(--gold-dim);margin-bottom:28px;display:flex;gap:10px;flex-wrap:wrap}
.crumb a{color:var(--gold);text-decoration:none}
.work{display:grid;grid-template-columns:minmax(0,6fr) minmax(0,5fr);gap:clamp(30px,6vw,84px);align-items:start}
.work-art .stage{aspect-ratio:1;display:grid;place-items:center;position:relative;border:1px solid var(--gold-faint);
                 background:linear-gradient(180deg,rgba(255,255,255,.025),transparent);overflow:hidden}
.work-art .stage::before{content:"";position:absolute;inset:6%;border-radius:50%;
  background:radial-gradient(circle,color-mix(in srgb,var(--c) 34%,transparent),transparent 68%)}
.work-art .stage svg{position:relative;width:62%;height:auto}
.thumbs{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:10px}
.thumbs li{aspect-ratio:1;border:1px solid var(--gold-faint);display:grid;place-items:center;font-family:var(--serif);
           font-size:10px;letter-spacing:.3em;color:var(--gold-dim);background:rgba(255,255,255,.015)}
.state.inline{position:static;display:inline-block;font-size:11px;letter-spacing:.2em;color:var(--gold);
              border:1px solid var(--gold-dim);padding:2px 10px 2px 12px}
.state.inline.collected,.state.inline.archive{color:var(--ink-dim);border-color:rgba(239,230,210,.3)}
.work-name{font-family:var(--serif);font-weight:400;font-size:clamp(34px,5vw,56px);letter-spacing:.2em;margin:.35em 0 0;line-height:1.2}
.work-gem{font-family:var(--serif);font-size:20px;letter-spacing:.12em;margin-top:6px}
.work-gem span{font-family:var(--jp);font-size:14px;color:var(--ink-dim);letter-spacing:.14em}
.planet-link{display:inline-block;text-decoration:none;margin-top:10px}
.planet-link .tags{margin-top:0}
.planet-link:hover .tags{color:#fff}
.price{font-family:var(--serif);font-size:26px;letter-spacing:.12em;margin-top:22px}
.price small{font-family:var(--jp);font-size:12px;color:var(--ink-dim);letter-spacing:.1em;margin-left:8px}
.buy{margin:20px 0 10px}
.buy .btn[disabled]{opacity:.55;cursor:not-allowed}
.buy .note,.met-note{font-size:12px;letter-spacing:.1em;color:var(--ink-dim);margin-top:10px}
.info-block{margin-top:36px;padding-top:24px;border-top:1px solid var(--gold-faint)}
.info-block h2{font-size:18px;margin:.2em 0 .6em}
.info-block p{font-size:14px;letter-spacing:.08em}
.spec{margin:0}
.spec div{display:grid;grid-template-columns:90px 1fr;gap:12px;padding:8px 0;border-bottom:1px solid var(--gold-faint);font-size:14px}
.spec dt{color:var(--gold);letter-spacing:.2em;font-size:12px}
.spec dd{margin:0;color:var(--ink-dim);letter-spacing:.06em}
.ended{text-align:center;padding:12vh 0}
.related{padding-top:0}
@media (max-width:820px){
  .work{grid-template-columns:1fr}
}
body.sub main.page > .block:first-child{padding-top:clamp(36px,7vh,80px)}
/* 惑星タグ（カード外でも使う） */
.tags{display:flex;align-items:center;gap:10px;font-family:var(--serif);font-size:12px;letter-spacing:.22em;color:var(--gold)}
.tags svg{width:18px;height:18px;overflow:visible;flex:none}
.tags .sym{stroke:var(--gold);fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;color:var(--gold)}

/* ---------- v3: 確定コピー版 ---------- */
.hero-title{font-weight:300;font-size:clamp(24px,4.2vmin,44px);letter-spacing:.2em;line-height:1.6;padding-left:.2em;color:#fff;
            text-shadow:0 0 10px rgba(var(--brand-rgb),.8),0 0 30px rgba(var(--brand-rgb),.45)}
.hero-sub{font-family:var(--serif);font-size:clamp(13px,1.8vmin,18px);letter-spacing:.42em;padding-left:.42em;color:#fff;margin:.2em 0 1.4vh;
          text-shadow:0 0 8px rgba(var(--brand-rgb),.8)}
.verify{display:inline-block;font-size:11px;letter-spacing:.12em;padding:.15em .7em;border:1px dashed rgba(var(--brand-rgb),.7);color:rgba(var(--brand-rgb),1);vertical-align:middle;margin:0 .4em}
.verify-block{border:1px dashed rgba(var(--brand-rgb),.45);padding:20px 24px;color:var(--ink-dim);line-height:1.9;font-size:14px;margin:1.4em 0}
.pillars{display:grid;grid-template-columns:repeat(5,1fr);gap:20px;list-style:none;margin:3em 0 0;padding:0;text-align:center}
.pillars li{font-family:var(--serif);letter-spacing:.3em;font-size:12px;color:#fff;padding-top:18px;border-top:1px solid var(--gold-dim)}
.doors{display:grid;grid-template-columns:repeat(2,1fr);gap:28px}
.door{display:block;padding:44px 32px;border:1px solid var(--gold-dim);text-decoration:none;color:var(--ink);text-align:center;transition:border-color .4s,background .4s}
.door:hover{border-color:var(--gold);background:rgba(var(--brand-rgb),.06)}
.door .en{margin-bottom:.8em}.door h3{font-weight:300;font-size:clamp(18px,2.2vw,24px);letter-spacing:.14em;margin:0 0 .6em}
.door p{font-size:14px;color:var(--ink-dim);margin:0}
.lead-star{font-weight:300;font-size:clamp(22px,3.4vw,38px);letter-spacing:.14em;line-height:1.9;text-align:center;color:#fff;
           text-shadow:0 0 14px rgba(var(--brand-rgb),.5)}
@media (max-width:720px){.pillars{grid-template-columns:repeat(2,1fr)}.doors{grid-template-columns:1fr}}

.phil{font-size:clamp(15px,1.7vw,17px);line-height:2.3;letter-spacing:.08em;color:var(--ink);margin:0 0 2.4em;text-align:center}
.phil.sign{font-family:var(--serif);letter-spacing:.4em;color:var(--gold);margin-top:3em}
.phil.first{font-weight:300;font-size:clamp(26px,4.6vw,46px);line-height:1.9;letter-spacing:.16em;color:#fff;margin:0 0 2.6em;
            text-shadow:0 0 14px rgba(var(--brand-rgb),.55)}
.caption .k{letter-spacing:.24em;padding-left:.24em}
.note{margin-top:2.4em;font-size:12px;line-height:1.9;color:var(--ink-dim);text-align:center;letter-spacing:.06em}
#cards{min-height:8em}
.hero-title{font-size:clamp(18px,min(4.2vmin,5.2vw),44px);white-space:nowrap}
.hero-inner{padding-bottom:64px}
svg#chart{width:min(52vmin,520px)}
@media (max-width:720px){svg#chart{width:min(84vw,52vh)}}
.hero-inner{padding-top:9vh;padding-bottom:84px}

/* ---------- 宝石リスト（9つ） ---------- */
.gempick{list-style:none;margin:2.4em 0 1.6em;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
@media (min-width:720px){.gempick{grid-template-columns:repeat(9,1fr);gap:8px}}
.gp{width:100%;display:flex;flex-direction:column;align-items:center;gap:4px;padding:12px 6px 10px;background:transparent;border:1px solid rgba(var(--brand-rgb),.22);
    color:var(--ink);cursor:pointer;font:inherit;transition:border-color .3s,background .3s}
.gp:hover{border-color:rgba(var(--brand-rgb),.7)}
.gp[aria-pressed="true"]{border-color:var(--brand);background:rgba(var(--brand-rgb),.1)}
.gp svg{width:64px;height:64px}
.gp .sh{animation:none}
.gp-n{font-size:12px;letter-spacing:.06em;line-height:1.4;text-align:center}
.gp-c{font-family:var(--serif);font-size:10px;letter-spacing:.12em;color:var(--ink-dim)}
.gp-p{font-size:10px;letter-spacing:.2em;color:var(--gold-dim)}
.gem-info{display:flex;flex-wrap:wrap;justify-content:center;gap:10px 28px;margin:0 0 2.4em;padding:0}
.gem-info div{display:flex;gap:10px;align-items:baseline}
.gem-info dt{font-family:var(--serif);font-size:11px;letter-spacing:.22em;color:var(--gold-dim)}
.gem-info dd{margin:0;font-size:14px;letter-spacing:.08em}

#planetChips.pgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:6px}
#planetChips.pgrid .all-chip{grid-column:1/-1;justify-self:start}
@media (min-width:720px){#planetChips.pgrid{grid-template-columns:repeat(9,1fr);gap:8px}#planetChips.pgrid .all-chip{grid-column:1/-1}}

.results{margin-top:clamp(40px,7vh,72px);padding-top:clamp(28px,5vh,48px);border-top:1px solid rgba(var(--brand-rgb),.25);scroll-margin-top:84px}
.results-head{text-align:center;margin-bottom:1.6em}
.results-head h2{margin:.3em 0 .2em}
.results .filter-group{justify-content:center;margin-bottom:1em}
.results .count{text-align:center}
#planetChips.pgrid .all-chip{justify-self:center;margin-top:8px}

.gemstep{margin-top:clamp(36px,6vh,64px);padding-top:clamp(24px,4vh,40px);border-top:1px solid rgba(var(--brand-rgb),.25);scroll-margin-top:84px}
.gems2{margin-top:1.2em}
@media (min-width:720px){.gems2{grid-template-columns:repeat(auto-fit,minmax(110px,150px));justify-content:center}}
.gp.all{justify-content:center;min-height:116px}

/* ---------- 3つの出会い方 ---------- */
.ways{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin:0 0 2em}
.ways a{font-size:13px;letter-spacing:.14em;padding:10px 18px;border:1px solid rgba(var(--brand-rgb),.28);color:var(--ink-dim);text-decoration:none;transition:border-color .3s,color .3s}
.ways a:hover{border-color:var(--brand);color:var(--ink)}
.ways a.here{border-color:var(--brand);color:#fff;background:rgba(var(--brand-rgb),.12)}
.pgrid2{margin-top:0}
@media (min-width:720px){.pgrid2{grid-template-columns:repeat(7,1fr)}}
.gp .gp-p{color:var(--ink-dim)}
.doors.three{grid-template-columns:repeat(3,1fr)}
@media (max-width:900px){.doors.three{grid-template-columns:1fr}}

/* ---------- 星座のイラスト（PHILOSOPHY） ---------- */
.trio{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(20px,4vw,56px);margin:2.4em 0 1em}
.trio figure{margin:0;text-align:center}
.trio svg{width:100%;max-width:260px;height:auto;overflow:visible}
.trio figcaption{margin-top:1em;font-weight:300;font-size:clamp(18px,2.2vw,26px);letter-spacing:.16em;line-height:1.8;color:#fff;
                 text-shadow:0 0 12px rgba(var(--brand-rgb),.55)}
.cn-line{fill:none;stroke:rgba(var(--brand-rgb),.85);stroke-width:1.1;stroke-linecap:round;stroke-linejoin:round;
         stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset 1.8s cubic-bezier(.4,0,.2,1)}
.rv.in .cn-line{stroke-dashoffset:0}
.cn-node{fill:#fff;opacity:0;transition:opacity 1s ease .9s;filter:drop-shadow(0 0 3px rgba(var(--brand-rgb),1)) drop-shadow(0 0 7px rgba(var(--brand-rgb),.7));
         animation:cnTw 3.4s ease-in-out infinite}
.rv.in .cn-node{opacity:1}
.cn-node.big{filter:drop-shadow(0 0 4px #fff) drop-shadow(0 0 12px rgba(var(--brand-rgb),1))}
.cn-head{fill:none;stroke:rgba(var(--brand-rgb),.85);stroke-width:1.1}
@keyframes cnTw{0%,100%{transform:scale(1)}50%{transform:scale(1.35)}}
.cn-node{transform-box:fill-box;transform-origin:center}
@media (prefers-reduced-motion:reduce){.cn-line{transition:none;stroke-dashoffset:0}.cn-node{animation:none;opacity:1}}
@media (max-width:720px){.trio{grid-template-columns:1fr;gap:40px}.trio svg{max-width:220px}}

/* ---------- 目が離せない（石を見つける演出） ---------- */
#opening{overflow:hidden}
.gaze{position:relative;min-height:clamp(260px,40vh,380px);display:flex;align-items:center;justify-content:center;margin-bottom:1.4em}
.gaze-field{position:absolute;left:50%;top:0;bottom:0;width:100vw;transform:translateX(-50%);pointer-events:none}
.gz{position:absolute;opacity:0;transform:translate(-50%,-50%) rotate(var(--rot,0deg));filter:blur(.4px) saturate(.9);
    transition:opacity 1.6s ease,filter 1.4s ease;animation:gzFloat 11s ease-in-out infinite}
.gaze.look .gz{opacity:.34}
.gaze.found .gz{opacity:.09;filter:blur(2.4px) saturate(.6)}
@keyframes gzFloat{0%,100%{margin-top:0}50%{margin-top:-9px}}
.gaze-main{position:absolute;left:50%;top:50%;width:clamp(180px,34vw,280px);height:auto;
  transform:translate(calc(-50% + var(--dx,0px)),calc(-50% + var(--dy,0px))) scale(.5);opacity:0;pointer-events:none;
  transition:opacity 1.6s ease,transform 1.8s cubic-bezier(.2,.7,.2,1);filter:drop-shadow(0 0 22px var(--gz,#459BDB))}
.gaze.found .gaze-main{opacity:.62;transform:translate(calc(-50% + var(--dx,0px)),calc(-50% + var(--dy,0px))) scale(1)}
.gaze .phil.first{position:relative;z-index:1;margin:0;text-shadow:0 0 18px rgba(7,6,13,.95),0 0 36px rgba(7,6,13,.8),0 0 14px rgba(var(--brand-rgb),.5)}
@media (prefers-reduced-motion:reduce){.gz{animation:none}.gaze-main{transition:none}}
.phil.first{font-size:clamp(18px,min(5vw,46px),46px);letter-spacing:.1em;white-space:nowrap}

.note-sub,.ways a small{display:block;font-size:11px;font-weight:300;letter-spacing:.2em;color:var(--ink-dim);margin-top:.5em}
.door h3 .note-sub{margin-top:.7em}

/* ---------- 3つの出会い方のアイコン / 余白調整 ---------- */
.door-ic{display:block;width:76px;height:76px;margin:0 auto 1.1em;overflow:visible}
.door-ic .cn-line{stroke-width:1.3}
.door .orbit{transform-origin:40px 40px;animation:orb 9s linear infinite}
@keyframes orb{to{transform:rotate(360deg)}}
.door-ic .orbit .cn-node{opacity:1}
.door-ic .spark{fill:#fff;opacity:0;transform-box:fill-box;transform-origin:center;filter:drop-shadow(0 0 4px rgba(var(--brand-rgb),1));animation:spark 3.2s ease-in-out infinite}
@keyframes spark{0%,55%,100%{opacity:0;transform:scale(.3) rotate(0)}70%{opacity:1;transform:scale(1) rotate(45deg)}85%{opacity:.2;transform:scale(.6) rotate(90deg)}}
.door-ic .chk{opacity:.35;filter:drop-shadow(0 0 4px currentColor);animation:chk 3.6s ease-in-out infinite}
@keyframes chk{0%,100%{opacity:.3;transform:scale(1)}18%{opacity:1}30%{opacity:.3}}
.door-ic .chk{transform-box:fill-box;transform-origin:center}
@media (prefers-reduced-motion:reduce){.door .orbit,.door-ic .spark,.door-ic .chk{animation:none}.door-ic .spark{opacity:1}.door-ic .chk{opacity:.9}}
#opening{padding-bottom:clamp(20px,4vh,48px)}
#opening .phil:last-child{margin-bottom:0}
#philosophy{padding-top:clamp(40px,8vh,90px)}

/* JEWELRY / ART: セクション見出し・カテゴリ表記 */
.lead-line{font-family:var(--serif);font-weight:400;font-size:clamp(18px,2.6vw,24px);letter-spacing:.2em;text-align:center;margin:clamp(28px,5vh,48px) 0 clamp(16px,3vh,28px);color:var(--ink)}
.cat-line{font-size:12px;letter-spacing:.2em;color:var(--ink-dim);margin:0 0 12px}
.cat-line span{font-family:var(--serif);color:var(--gold);margin-right:.9em;letter-spacing:.28em}

/* チャクラ: 狭い幅では縦1列＋左に人型の星座（チャクラの位置から各行へ光の線） */
.cb-fig{display:none}
@media (max-width:719px){
  #groups.chakra-list{grid-template-columns:1fr;gap:0;max-width:420px;margin-left:auto;margin-right:auto;position:relative;padding-left:120px}
  #groups.chakra-list li{height:104px;display:block}
  .cb-fig{display:block;position:absolute;left:0;top:0;width:112px;height:728px;pointer-events:none;overflow:visible}
  .cb-line{fill:none;stroke:rgba(var(--brand-rgb),.62);stroke-width:1;stroke-linecap:round;stroke-linejoin:round}
  .cb-line .aura{stroke:rgba(var(--brand-rgb),.22)}
  .cb-line .sp{stroke-dasharray:1.5 5;stroke:rgba(var(--brand-rgb),.4)}
  .cb-lead{fill:none;stroke-width:.7;opacity:.5;stroke-dasharray:1 4;stroke-linecap:round}
  .cb-joint circle{fill:#fff;opacity:.7;animation:cbtw 3.6s ease-in-out infinite;animation-delay:var(--tw,0s)}
  .cb-halo{opacity:.28;transform-box:fill-box;transform-origin:center;animation:cbpulse 4.2s ease-in-out infinite;animation-delay:var(--cd,0s)}
  .cb-node.on .cb-halo{opacity:.6;animation-duration:2.4s}
  #groups.chakra-list .gp{flex-direction:column;align-items:flex-start;gap:3px;padding:14px 16px;margin:5px 0;text-align:left;height:calc(100% - 10px);justify-content:center}
  #groups.chakra-list .gp > svg{display:none}
  #groups.chakra-list .gp-n{text-align:left;font-size:13px}
}
@keyframes cbpulse{0%,100%{transform:scale(.8);opacity:.18}50%{transform:scale(1.7);opacity:.5}}
@keyframes cbtw{0%,100%{opacity:.25}50%{opacity:.95}}
@media (prefers-reduced-motion:reduce){.cb-halo,.cb-joint circle{animation:none}}

/* 作品の動画（背景透過）: 読み込めたら宝石イラストと入れ替える */
video.clip{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;opacity:0;transition:opacity .6s;background:transparent;pointer-events:none}
.clip-on video.clip{opacity:1}
.clip-on > svg{opacity:0;transition:opacity .6s}
.work-art .stage,.card .art{position:relative}

/* PHILOSOPHY: タイトル横の12星座 */
.sec-head.has-zodiac{display:flex;align-items:center;justify-content:space-between;gap:clamp(12px,3vw,32px)}
.zodiac{flex:0 0 auto;width:clamp(104px,22vw,170px);text-align:center}
.zodiac svg{display:block;width:100%;height:auto;overflow:visible}
.zodiac .zl{fill:none;stroke:rgba(var(--brand-rgb),.85);stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:1}
.zodiac .zn{fill:#fff;filter:drop-shadow(0 0 3px rgba(var(--brand-rgb),.9));opacity:0}
.zodiac.on .zl{animation:zdraw 2.4s ease-out forwards;animation-delay:var(--d,0s)}
.zodiac.on .zn{animation:zpop .8s ease-out forwards,ztw 3s ease-in-out 1s infinite;animation-delay:calc(var(--t,0s) * .4),calc(1s + var(--t,0s))}
.zodiac.on .zg{animation:zfade 7s linear forwards}
.zodiac-name{margin:.4em 0 0;display:flex;flex-direction:column;gap:2px}
.zodiac-name .en{font-family:var(--serif);font-size:11px;letter-spacing:.3em;color:var(--gold)}
.zodiac-name .jp{font-size:11px;letter-spacing:.2em;color:var(--ink-dim)}
@keyframes zdraw{to{stroke-dashoffset:0}}
@keyframes zpop{from{opacity:0;transform:scale(.2)}to{opacity:.95;transform:scale(1)}}
@keyframes ztw{0%,100%{opacity:.95}50%{opacity:.35}}
@keyframes zfade{0%,88%{opacity:1}100%{opacity:0}}
.zodiac .zn{transform-box:fill-box;transform-origin:center}
@media (prefers-reduced-motion:reduce){.zodiac .zl{stroke-dashoffset:0;animation:none!important}.zodiac .zn{opacity:.9;animation:none!important}.zodiac.on .zg{animation:none}}

.sec-head.has-zodiac .sec-text{flex:1 1 0;min-width:0}
@media (max-width:560px){.sec-head.has-zodiac{flex-direction:column;align-items:flex-start;gap:20px}.zodiac{width:132px;align-self:flex-end;margin-top:-8px}}

/* ---------- THE FIVE ESSENCES（PHILOSOPHY） ---------- */
.essences{margin-top:clamp(96px,16vh,180px);padding-top:clamp(56px,9vh,96px);border-top:1px solid var(--gold-faint)}
.fe-head{text-align:center;margin-bottom:clamp(28px,5vh,52px)}
.fe-head h2{font-weight:300;font-size:clamp(18px,4.6vw,30px);letter-spacing:.14em;line-height:1.8;margin:.5em 0 0;white-space:nowrap}
.fe-fig{margin:0 auto clamp(48px,8vh,88px);max-width:420px}
.fe-fig svg{max-width:300px;margin:0 auto}
.fe{scroll-margin-top:90px}
.fe-fig svg{display:block;width:100%;height:auto;overflow:visible}
.fe-lab{font-family:var(--serif);font-size:5px;letter-spacing:.1em;fill:var(--gold)}
.fe-legend{list-style:none;margin:clamp(28px,5vh,44px) auto 0;padding:0;max-width:360px}
.fe-legend li{position:relative}
.fe-legend li::before{content:"";position:absolute;left:0;right:0;top:0;height:1px;background:linear-gradient(90deg,var(--gold-dim),rgba(var(--brand-rgb),.15));transform:scaleX(0);transform-origin:left}
.fe-legend li:last-child::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:linear-gradient(90deg,var(--gold-dim),rgba(var(--brand-rgb),.15));transform:scaleX(0);transform-origin:left}
.fe-legend a{display:grid;grid-template-columns:34px 2.2em 1fr auto;align-items:center;gap:10px;padding:10px 4px;text-decoration:none;color:var(--ink);opacity:0;transform:translateX(-8px)}
.fe-legend .fe-star{width:30px;height:30px;margin:0}
.fe-legend .n{font-family:var(--serif);font-size:12px;letter-spacing:.2em;color:var(--gold)}
.fe-legend .e{font-family:var(--serif);font-size:16px;letter-spacing:.26em;transition:color .3s,letter-spacing .4s}
.fe-legend .j{font-size:12px;letter-spacing:.14em;color:var(--ink-dim)}
.fe-legend .fe-v.on{transition:r .4s}
/* 画面に入ると、線が引かれ、一行ずつ灯る（五芒星の頂点を順に巡る） */
.rv.in .fe-legend li::before,.rv.in .fe-legend li:last-child::after{animation:feLine 1.1s ease forwards;animation-delay:calc(.9s + var(--i) * .28s)}
.rv.in .fe-legend a{animation:feRow .9s ease forwards;animation-delay:calc(1.1s + var(--i) * .28s)}
.rv.in .fe-legend .fe-v.on{animation:fePulse 3.4s ease-in-out infinite;animation-delay:calc(2.4s + var(--i) * .5s)}
@keyframes feLine{to{transform:scaleX(1)}}
@keyframes feRow{to{opacity:1;transform:none}}
@keyframes fePulse{0%,100%{opacity:1}50%{opacity:.45}}
.fe-legend a:hover .e,.fe-legend a:focus-visible .e{color:#fff;letter-spacing:.32em}
/* 一覧に触れると、上の大きな五芒星の対応する頂点が強く光る */
.fe-fig svg circle.cn-node{transition:r .4s,filter .4s}
.fe-fig:has(.fe-legend li:nth-child(1) a:hover) > svg circle:nth-of-type(1),
.fe-fig:has(.fe-legend li:nth-child(2) a:hover) > svg circle:nth-of-type(2),
.fe-fig:has(.fe-legend li:nth-child(3) a:hover) > svg circle:nth-of-type(3),
.fe-fig:has(.fe-legend li:nth-child(4) a:hover) > svg circle:nth-of-type(4),
.fe-fig:has(.fe-legend li:nth-child(5) a:hover) > svg circle:nth-of-type(5){r:4.2;filter:drop-shadow(0 0 6px #fff) drop-shadow(0 0 16px rgba(var(--brand-rgb),1))}
@media (prefers-reduced-motion:reduce){.fe-legend a{opacity:1;transform:none;animation:none!important}.fe-legend li::before,.fe-legend li:last-child::after{transform:none;animation:none!important}.fe-legend .fe-v.on{animation:none!important}}
.fe-intro{font-size:clamp(15px,1.7vw,17px);line-height:2.3;letter-spacing:.08em;color:var(--ink);text-align:center;margin:0 0 2.4em}
.fe{text-align:center;margin-top:clamp(88px,15vh,160px)}
.fe-star{width:56px;height:56px;display:block;margin:0 auto 18px;overflow:visible}
.fe-star .fe-edge{fill:none;stroke:rgba(var(--brand-rgb),.38);stroke-width:1;stroke-linejoin:round}
.fe-star .fe-v{fill:rgba(var(--brand-rgb),.5)}
.fe-star .fe-v.on{fill:#fff;filter:drop-shadow(0 0 3px rgba(var(--brand-rgb),1)) drop-shadow(0 0 8px rgba(var(--brand-rgb),.7))}
.fe-no{font-family:var(--serif);font-size:12px;letter-spacing:.4em;color:var(--gold);margin:0}
.fe-en{font-family:var(--serif);font-weight:400;font-size:clamp(28px,5vw,46px);letter-spacing:.28em;margin:.25em 0 .2em;padding-left:.28em;color:#fff}
.fe-jp{font-size:13px;letter-spacing:.2em;color:var(--ink-dim);margin:0 0 clamp(36px,6vh,56px)}
.fe-p{font-size:clamp(15px,1.7vw,17px);line-height:2.3;letter-spacing:.08em;color:var(--ink);margin:0 0 2.2em}
.fe-end{text-align:center;margin-top:clamp(120px,22vh,240px);padding-bottom:clamp(40px,8vh,90px)}
.fe-mark{position:relative;width:104px;height:104px;margin:0 auto 34px}
.fe-mark svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.fe-star.full{margin:0;width:100%;height:100%}
.fe-logo{color:var(--brand);opacity:0;transform:scale(.86);transform-origin:50% 50%;filter:drop-shadow(0 0 0 rgba(var(--brand-rgb),0))}
/* 星が描かれたあと（約2.6秒後）、ロゴの星へ変わる */
.fe-end.in .fe-star.full{animation:feOut 1.6s ease 2.7s forwards}
.fe-end.in .fe-logo{animation:feIn 2.2s ease 2.7s forwards}
@keyframes feOut{to{opacity:0;transform:scale(1.08)}}
@keyframes feIn{0%{opacity:0;transform:scale(.86);filter:drop-shadow(0 0 0 rgba(var(--brand-rgb),0))}
  55%{opacity:1;filter:drop-shadow(0 0 14px rgba(var(--brand-rgb),.9))}
  100%{opacity:1;transform:scale(1);filter:drop-shadow(0 0 7px rgba(var(--brand-rgb),.55))}}
@media (prefers-reduced-motion:reduce){.fe-end.in .fe-star.full{animation:none;opacity:0}.fe-end.in .fe-logo{animation:none;opacity:1;transform:none}}
.fe-star.full .cn-line{stroke-width:1.2}
.fe-last{font-family:var(--serif);font-weight:300;font-size:clamp(20px,3.6vw,34px);letter-spacing:.16em;line-height:1.9;color:#fff;margin:0;text-shadow:0 0 22px rgba(var(--brand-rgb),.45)}
.fe-sign{font-size:clamp(14px,1.6vw,16px);letter-spacing:.24em;color:var(--ink-dim);margin:2.4em 0 0}
@media (max-width:560px){.fe-last{font-size:clamp(17px,5.2vw,22px);letter-spacing:.1em}}

/* 実物ジュエリーの動画を、窓の額縁の中で光らせて見せる（白背景のまま・透過なし）
   内側: 5pxずつ段階的に濃くなる光のグラデーション / 外側: 二重の細い額縁 + 淡いにじみ */
.spot{position:relative;margin:clamp(28px,5vh,60px) auto;width:clamp(200px,30vw,250px);aspect-ratio:1}
.spot::before{content:"";position:absolute;inset:-14%;border-radius:50%;background:radial-gradient(circle,rgba(var(--brand-rgb),.2),rgba(var(--brand-rgb),.05) 55%,transparent 72%);pointer-events:none}
video.clip.plate{border-radius:50% 50% 3px 3px / 50% 50% 3px 3px;object-fit:cover;opacity:1;background:#fff;
  filter:sepia(.14) saturate(1.05) brightness(.98)}
.spot::after,.card .art.clip-on::after,.work-art .stage.clip-on::after{content:"";position:absolute;pointer-events:none;z-index:2;
  border-radius:50% 50% 3px 3px / 50% 50% 3px 3px;
  box-shadow:
    inset 0 0 0 5px  rgba(var(--brand-rgb),.34),
    inset 0 0 0 10px rgba(var(--brand-rgb),.24),
    inset 0 0 0 15px rgba(var(--brand-rgb),.15),
    inset 0 0 0 20px rgba(var(--brand-rgb),.08),
    inset 0 0 0 25px rgba(var(--brand-rgb),.035),
    0 0 0 1px rgba(var(--brand-rgb),.75),
    0 0 0 6px rgba(8,10,18,.55),
    0 0 0 7px rgba(var(--brand-rgb),.4),
    0 0 26px 8px rgba(var(--brand-rgb),.22)}
.spot::after{inset:0}
.card .art.clip-on::after,.work-art .stage.clip-on::after{inset:7%}
.card .art video.clip.plate,.work-art .stage video.clip.plate{inset:7%;width:86%;height:86%;opacity:1;visibility:hidden;transition:none}
.card .art.clip-on video.clip.plate,.work-art .stage.clip-on video.clip.plate{visibility:visible}
.spot video.clip.plate{opacity:1}

/* 窓の額縁のまわりのきらめき（一番星のように、ランダムな位置できら、きら） */
.sp-wrap{position:absolute;inset:0;pointer-events:none;z-index:3}
.card .art>.sp-wrap,.work-art .stage>.sp-wrap{inset:7%}
.sp{position:absolute;width:var(--s,10px);height:var(--s,10px);margin:calc(var(--s,10px)/-2) 0 0 calc(var(--s,10px)/-2);
  background:#fff;clip-path:polygon(50.0% 0.0%,61.2% 34.6%,97.6% 34.5%,68.1% 55.9%,79.4% 90.5%,50.0% 69.0%,20.6% 90.5%,31.9% 55.9%,2.4% 34.5%,38.8% 34.6%);
  filter:drop-shadow(0 0 3px rgba(var(--brand-rgb),.95));opacity:0;transform:scale(0) rotate(0);
  animation:spark 4s ease-in-out infinite}
@keyframes spark{0%,48%,100%{opacity:0;transform:scale(0) rotate(0)}68%{opacity:1;transform:scale(1) rotate(45deg)}86%{opacity:.5;transform:scale(.55) rotate(90deg)}}
@media (prefers-reduced-motion:reduce){.sp-wrap{display:none}}

/* IDENTITY ページ: 冒頭の一行と、最後の一行 */
.phil.lead{font-family:var(--serif);font-weight:300;font-size:clamp(20px,3.4vw,30px);line-height:1.9;letter-spacing:.14em;color:#fff;margin:0 0 2.4em}
.phil.close{font-family:var(--serif);font-weight:300;font-size:clamp(18px,3vw,26px);line-height:1.9;letter-spacing:.14em;color:#fff;margin:3em 0 0;text-shadow:0 0 22px rgba(var(--brand-rgb),.45)}

/* IDENTITY: DNA二重螺旋のキャンバス */
.dna{margin:clamp(8px,2vh,24px) auto clamp(20px,4vh,44px);width:100%;max-width:560px}
.dna canvas{display:block;width:100%;aspect-ratio:16/9}
/* 星のきらめきは、イラストではなくグラデーションの光で（五芒星 + やわらかなにじみ） */
.sp{background:none;clip-path:none;filter:drop-shadow(0 0 4px rgba(var(--brand-rgb),.8))}
.sp::before{content:"";position:absolute;inset:0;
  background:radial-gradient(circle,#fff 0,#fff 22%,rgba(190,225,255,.9) 48%,rgba(var(--brand-rgb),.55) 100%);
  clip-path:polygon(50.0% 0.0%,61.2% 34.6%,97.6% 34.5%,68.1% 55.9%,79.4% 90.5%,50.0% 69.0%,20.6% 90.5%,31.9% 55.9%,2.4% 34.5%,38.8% 34.6%)}
.sp::after{content:"";position:absolute;inset:-130%;border-radius:50%;
  background:radial-gradient(circle,rgba(255,255,255,.55) 0,rgba(var(--brand-rgb),.28) 30%,rgba(var(--brand-rgb),.08) 55%,transparent 72%)}

/* IDENTITY: 宝石サンプル（透過）。下から上へ立ちのぼる光の中に、ゆっくり浮かぶ */
.gemfloat{position:relative;margin:clamp(28px,6vh,64px) auto 0;width:min(78%,340px);aspect-ratio:450/565;display:grid;place-items:center}
.gemfloat::before{content:"";position:absolute;left:-30%;right:-30%;bottom:-8%;height:70%;pointer-events:none;
  background:radial-gradient(ellipse at 50% 100%,rgba(var(--brand-rgb),.34),rgba(var(--brand-rgb),.1) 45%,transparent 70%)}
.gemfloat img{position:relative;max-width:100%;max-height:100%;opacity:0;transition:opacity 1.2s;animation:gfloat 7s ease-in-out infinite;
  filter:drop-shadow(0 0 18px rgba(var(--brand-rgb),.35))}
.gemfloat.on img{opacity:1}
.gemfloat img.out{opacity:0!important}
@keyframes gfloat{0%,100%{transform:translateY(6px)}50%{transform:translateY(-8px)}}
@media (prefers-reduced-motion:reduce){.gemfloat img{animation:none}}

/* IDENTITY: 上部の余白を詰める / 締めの前の一行 */
body.sub main.page > .block:first-child:has(.dna){padding-top:clamp(6px,1.5vh,18px)}
.wrap:has(.dna) .sec-head{margin-bottom:0}
.dna{margin-top:0}
.dna canvas{aspect-ratio:16/8}
.phil.lead2{font-family:var(--serif);font-weight:300;font-size:clamp(15px,2.2vw,19px);letter-spacing:.3em;color:var(--gold);margin:3.2em 0 .8em}
.gemfloat::before{inset:-25% -45%;left:auto;right:auto;bottom:auto;height:auto;
  background:radial-gradient(ellipse 50% 50% at 50% 60%,rgba(var(--brand-rgb),.3),rgba(var(--brand-rgb),.1) 45%,transparent 100%)}
.phil.close,.phil.lead,.phil.lead2{text-wrap:balance}

/* 宝石サンプルの登場: 天上の光 → つぶつぶ → 透明の中から姿をあらわす */
@property --gm{syntax:'<percentage>';inherits:false;initial-value:-30%}
.gemfloat .gf-fx{position:absolute;inset:-12% -40%;width:180%;height:124%;pointer-events:none;z-index:2}
.gemfloat img{opacity:0;
  -webkit-mask-image:linear-gradient(to bottom,#000 var(--gm),transparent calc(var(--gm) + 30%));mask-image:linear-gradient(to bottom,#000 var(--gm),transparent calc(var(--gm) + 30%))}
.gemfloat img.reveal{animation:gfloat 7s ease-in-out infinite,gmask 3s cubic-bezier(.3,.6,.3,1) 1s forwards,gglint 3s ease-out 1s both}
@keyframes gmask{from{--gm:-30%}to{--gm:105%}}
@keyframes gglint{0%{opacity:0;filter:blur(12px) brightness(2.4) drop-shadow(0 0 30px rgba(255,255,255,.8))}
  60%{opacity:1}100%{opacity:1;filter:blur(0) brightness(1) drop-shadow(0 0 18px rgba(var(--brand-rgb),.35))}}
.gemfloat.on img.reveal{opacity:1;-webkit-mask-image:none;mask-image:none;animation:gfloat 7s ease-in-out infinite;filter:drop-shadow(0 0 18px rgba(var(--brand-rgb),.35))}
.gemfloat img.reveal-done{opacity:1;-webkit-mask-image:none;mask-image:none}
@media (prefers-reduced-motion:reduce){.gemfloat img{opacity:1;-webkit-mask-image:none;mask-image:none}.gemfloat .gf-fx{display:none}}

/* 宝石の登場: 光の筋の先（上中央）から、ひろがるように姿をあらわす */
.gemfloat img{-webkit-mask-image:radial-gradient(circle at 50% 8%,#000 var(--gm),transparent calc(var(--gm) + 28%));mask-image:radial-gradient(circle at 50% 8%,#000 var(--gm),transparent calc(var(--gm) + 28%))}
@keyframes gmask{from{--gm:-30%}to{--gm:130%}}

/* 宝石サンプルは実寸に近く（石 約15mm → 画面上で約2cm以内） */
.gemfloat{width:150px}
@media (max-width:600px){.gemfloat{width:170px}}

/* 「わたしという、唯一無二のかたち」: 白い文字に、ブルーが左から重なっていく */
.phil.lead2{position:relative;color:#fff;font-size:clamp(17px,2.6vw,22px);letter-spacing:.3em;text-shadow:0 0 14px rgba(255,255,255,.25)}
.phil.lead2::after{content:attr(data-t);position:absolute;inset:0;pointer-events:none;
  color:rgb(96,178,255);text-shadow:0 0 16px rgba(var(--brand-rgb),.85),0 0 4px rgba(120,190,255,.6);
  clip-path:inset(0 100% 0 0);opacity:.9}
.phil.lead2.in::after{animation:blueOver 2.8s cubic-bezier(.45,.05,.25,1) .5s forwards,blueBreath 6s ease-in-out 3.4s infinite}
@keyframes blueOver{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0 0 0)}}
@keyframes blueBreath{0%,100%{opacity:.9}50%{opacity:.35}}
@media (prefers-reduced-motion:reduce){.phil.lead2::after{clip-path:inset(0);opacity:.6;animation:none!important}}

/* 「同じ人生がないように、同じ曲線もない。」: 唯一無二の一行より少し大きく、同じ重なりの演出 */
.phil.lead2.big{font-size:clamp(20px,3.1vw,27px);line-height:2.1;letter-spacing:.2em;margin:3em 0}
.phil.lead2::after{white-space:pre-line}

/* 行末に1文字だけ残る折り返しを避ける */
.phil{text-wrap:balance}

/* TOP の冒頭: 流星が通るあいだ、ヒーローは隠れている */
.meteor-fx{position:fixed;inset:0;width:100%;height:100%;z-index:6;pointer-events:none}
html.pre-meteor .hero-inner{opacity:0!important}
html.meteor-fade .hero-inner{transition:opacity .9s ease}

/* ---- 背景の星座（js/sky.js） ---- */
#sky{position:fixed;inset:0;width:100%;height:100%;z-index:0;pointer-events:none}
.sky-btn{position:fixed;left:14px;bottom:14px;z-index:20;font:400 10.5px/1 var(--sans, 'Jost', sans-serif);letter-spacing:.14em;color:rgba(215,225,250,.55);background:rgba(8,12,28,.35);border:1px solid rgba(190,210,255,.18);border-radius:999px;padding:8px 13px;cursor:pointer;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);transition:color .3s,border-color .3s,opacity .3s}
.sky-btn:hover,.sky-btn:focus-visible{color:#fff;border-color:rgba(190,210,255,.5)}
.sky-btn.on{opacity:.55}
html.pre-meteor .sky-btn{opacity:0}
@media print{#sky,.sky-btn{display:none}}

/* ---- JEWELRY / GEMSTONES / ART / ARTIST の導入文 ---- */
.intro{max-width:640px;margin:0 auto 1em}
.intro .phil{margin-bottom:2em}
.pick-head{margin-top:5.5em}
.page-title.sm{font-size:clamp(20px,3vw,26px);letter-spacing:.2em}
.art-works{margin-top:5em}
body.sub main.page .role{text-align:center}
/* 長い見出しは、文節で折り返す */
body.sub .sec-head .page-title{text-wrap:balance}

/* ---- IDENTITY 制作の流れ ---- */
.flow{max-width:640px;margin:6em auto 0;text-align:center}
.flow .page-title.sm{margin-bottom:1.6em}
.flow-steps{list-style:none;margin:0 0 2em;padding:0;text-align:left}
.flow-steps li{display:grid;grid-template-columns:11.5em 1fr;gap:1.2em;padding:1.1em 0;border-top:1px solid var(--gold-faint);font-size:14.5px;line-height:1.9;letter-spacing:.06em;color:var(--ink)}
.flow-steps li:last-child{border-bottom:1px solid var(--gold-faint)}
.flow-steps .st{font-family:var(--serif);letter-spacing:.2em;font-size:12.5px;color:var(--gold)}
@media (max-width:640px){.flow-steps li{grid-template-columns:1fr;gap:.2em}}
.period{max-width:640px;margin:5em auto 0;text-align:center}
.period .page-title.sm{margin-bottom:1.6em}
.period .phil{margin-bottom:1.8em}

/* ---- TOP ジョーティシュ: 宝石名まわりの文字を読みやすく（2026-10-13） ----
   背後のハロー（宝石色の光）が明るいと文字がにじむため、文字の後ろに暗いやわらかな面を敷き、
   文字の光（同色グロー）を暗い影に置き換える。ハローは文字側で弱める。 */
.halo{background:radial-gradient(circle,color-mix(in srgb,var(--gem) 26%,transparent) 0%,transparent 60%)}
.caption::before{content:"";position:absolute;z-index:-1;pointer-events:none;inset:-22px -9vmin -14px;
  background:radial-gradient(ellipse at 50% 52%,rgba(4,7,20,.78) 0%,rgba(4,7,20,.58) 42%,rgba(4,7,20,0) 74%)}
.caption .k{font-size:clamp(12px,1.5vmin,15px);color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.7),0 0 12px rgba(0,0,0,.6)}
.caption .n{color:#fff;text-shadow:0 1px 3px rgba(0,0,0,.7),0 0 18px rgba(0,0,0,.6),0 0 40px rgba(var(--brand-rgb),.28)}
.caption .j{font-size:clamp(13px,1.7vmin,16px);color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.7),0 0 12px rgba(0,0,0,.6)}
.cta{font-size:clamp(12px,1.5vmin,14px);color:#fff;border-bottom-color:rgba(255,255,255,.6);text-shadow:0 1px 2px rgba(0,0,0,.7)}
.hero-inner{padding-bottom:96px}
/* 「この宝石の作品を見る」と SCROLL が重ならないように */
svg#chart{width:min(48vmin,500px)}
.scroll{bottom:10px}
@media (max-width:720px){svg#chart{width:min(80vw,46vh)}}
.caption{height:auto;min-height:clamp(150px,21vh,190px)}
/* 図の惑星記号・線は、宝石が出ている間も、うっすら読める濃さに */
#planets.dim .planet.in{opacity:.28}
#planets.dim .planet.in.active{opacity:1}
#lines.recede{opacity:.36}

/* ---- LOOSE STONES ---- */
.stones-gallery{margin-top:4.5em;padding-top:0;border-top:0}
.stone-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(20px,3vw,40px);margin-top:1.4em}
@media (max-width:900px){.stone-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:520px){.stone-grid{grid-template-columns:1fr}}
.stone-card{display:block;text-decoration:none;color:var(--ink);text-align:center}
.stone-ph{aspect-ratio:1;border:1px solid var(--gold-faint);background:rgba(255,255,255,.015);display:grid;place-items:center;overflow:hidden}
.stone-ph img{width:100%;height:100%;object-fit:cover;display:block}
.stone-ph .ph{font-family:var(--serif);letter-spacing:.5em;color:var(--gold-dim);font-size:12px}
.stone-card .en{margin:1.1em 0 .2em}.stone-card h3{font-weight:300;font-size:clamp(16px,1.8vw,19px);letter-spacing:.14em;margin:0}
.stone-card .meta{font-size:13px;letter-spacing:.1em;color:var(--ink-dim);margin-top:.5em}
.stone-card:hover .stone-ph{border-color:var(--gold)}
.sample-tag,.sample-banner{font-size:12px;letter-spacing:.14em;color:var(--gold);margin-top:.8em}
.sample-banner{border:1px dashed var(--gold-dim);padding:.7em 1em;display:inline-block;margin:0 0 2em}
.select-block{max-width:640px;margin:6em auto 0;text-align:center}
.select-block .page-title.sm{margin-bottom:1.6em}
.q-note{position:relative}
.q-tag{display:block;font-family:var(--serif);font-size:11px;letter-spacing:.3em;color:var(--gold);margin-bottom:.6em}
.quality .q-note{border-top:1px solid var(--gold-faint);padding-top:1.4em}
.stone-detail{display:grid;grid-template-columns:1.1fr 1fr;gap:clamp(28px,5vw,64px);align-items:start}
@media (max-width:760px){.stone-detail{grid-template-columns:1fr}}
.stone-ph.big{aspect-ratio:1}
.stone-thumbs{display:flex;gap:10px;margin-top:12px;flex-wrap:wrap}
.stone-thumbs button{width:64px;height:64px;padding:0;border:1px solid var(--gold-faint);background:none;cursor:pointer}
.stone-thumbs img{width:100%;height:100%;object-fit:cover;display:block}
.stone-spec{margin:1.6em 0 0;border-top:1px solid var(--gold-faint)}
.stone-spec div{display:grid;grid-template-columns:7em 1fr;gap:1em;padding:.9em 0;border-bottom:1px solid var(--gold-faint);font-size:14px}
.stone-spec dt{color:var(--ink-dim);letter-spacing:.14em}.stone-spec dd{margin:0}
.artist-comment{margin-top:2em;padding-left:1.2em;border-left:1px solid var(--gold-dim)}
.artist-comment .cm{font-family:var(--serif);line-height:2.2;letter-spacing:.12em;color:#fff;margin-top:.6em}
.to-identity{text-align:center;margin-top:6em;line-height:2.3;letter-spacing:.08em}
.to-identity p{margin-bottom:1.6em}

/* ---- TOP（確定稿 2026-10-13）: FIND YOUR LIGHT / ART / THE ARTIST / ATELIER / JOURNAL & NEWS ---- */
.fy-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(20px,3vw,44px);margin-top:3em}
@media (max-width:900px){.fy-grid{grid-template-columns:1fr;gap:56px}}
.fy-card{display:block;text-decoration:none;color:var(--ink);text-align:center}
.fy-photo{margin:0 0 1.6em;aspect-ratio:4/5;border:1px solid var(--gold-faint);background:radial-gradient(ellipse at 50% 60%,rgba(var(--brand-rgb),.12),transparent 70%);display:grid;place-items:center;overflow:hidden;transition:border-color .4s}
.fy-photo img{width:78%;height:78%;object-fit:contain;display:block}
.fy-photo .ph,.ft-photo .ph{font-family:var(--serif);letter-spacing:.5em;color:var(--gold-dim);font-size:12px}
.fy-card:hover .fy-photo{border-color:var(--gold)}
.fy-card .en{margin-bottom:.7em}
.fy-card h3{font-weight:300;font-size:clamp(19px,2.2vw,24px);letter-spacing:.14em;margin:0 0 .9em}
.fy-card p:not(.en){font-size:14px;line-height:2.1;letter-spacing:.06em;color:var(--ink-dim)}
.fy-link{display:inline-block;margin-top:1.4em;font-family:var(--serif);font-size:12px;letter-spacing:.28em;color:var(--gold);border-bottom:1px solid var(--gold-dim);padding-bottom:.35em}
.fy-card:hover .fy-link{color:#fff;border-color:#fff}
.feature{padding-top:clamp(40px,8vh,96px);padding-bottom:clamp(40px,8vh,96px)}
.ft{display:grid;grid-template-columns:1.25fr 1fr;gap:clamp(28px,6vw,88px);align-items:center;text-decoration:none;color:var(--ink)}
.ft.rev{grid-template-columns:1fr 1.25fr}.ft.rev .ft-photo{order:2}
@media (max-width:820px){.ft,.ft.rev{grid-template-columns:1fr}.ft.rev .ft-photo{order:0}}
.ft-photo{margin:0;aspect-ratio:4/3;border:1px solid var(--gold-faint);background:rgba(255,255,255,.015);display:grid;place-items:center;overflow:hidden;transition:border-color .4s}
.ft:hover .ft-photo{border-color:var(--gold)}
.ft-photo img{width:100%;height:100%;object-fit:cover;display:block}
.ft-text .en{margin-bottom:.8em}
.ft-text h2{font-weight:300;font-size:clamp(20px,2.6vw,28px);line-height:1.8;letter-spacing:.14em;margin:0 0 1em}
.ft-text p:not(.en){font-size:14.5px;line-height:2.2;letter-spacing:.06em;color:var(--ink-dim)}
.ft-arrow{display:inline-block;margin-top:1.4em;color:var(--gold);letter-spacing:.2em;transition:transform .3s}
.ft:hover .ft-arrow{transform:translateX(6px)}
#journal{padding-bottom:clamp(60px,10vh,120px)}
#journal h2{font-weight:300;font-size:clamp(20px,2.6vw,28px);letter-spacing:.14em}
.news-feed{list-style:none;margin:2.4em auto 0;padding:0;max-width:560px}
.news-feed:empty{display:none}
.news-feed a{display:grid;grid-template-columns:7.5em 1fr;gap:1em;padding:1em 0;border-top:1px solid var(--gold-faint);text-decoration:none;color:var(--ink);text-align:left;font-size:14px}
.news-feed li:last-child a{border-bottom:1px solid var(--gold-faint)}
.news-feed time{color:var(--ink-dim);letter-spacing:.1em}

/* ---- スマホのメニュー: 項目が多くても画面に収まり、全部押せるように ---- */
@media (max-width:1400px){
  header.site nav{justify-content:safe center;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:84px 0 40px;gap:clamp(12px,3.2vh,28px)}
  header.site nav a{padding:.2em .6em}
}

/* アーティスト写真: ジュエリーの窓と同じ額縁・光・サイズ（写真の色は加工しない） */
.spot.photo{width:clamp(200px,30vw,250px)}
.spot .photo-plate{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;border-radius:50% 50% 3px 3px / 50% 50% 3px 3px;background:#fff}

/* ---- ARTIST: 経歴と写真（ページの最後・写真の横） ---- */
.profile-row{display:grid;grid-template-columns:auto 1fr;gap:clamp(28px,5vw,64px);align-items:center;margin:7em auto 0;max-width:820px;text-align:left}
.profile-row .spot{margin:0}
@media (max-width:720px){.profile-row{grid-template-columns:1fr;justify-items:center}.career{text-align:left}}
.career .en{margin-bottom:.6em}
.career-name{font-family:var(--serif);font-size:18px;letter-spacing:.2em;color:#fff;margin:0 0 1.2em}
.career p{font-size:14px;line-height:2.1;letter-spacing:.05em;color:var(--ink-dim);margin-bottom:.9em}
.career .career-close{font-family:var(--serif);color:#fff;letter-spacing:.14em;margin-top:1.6em}
.career-name{font-size:clamp(22px,3vw,26px);letter-spacing:.22em;margin-bottom:1.1em}
/* プロフィールの名前と締めの一文を同じ大きさに（.career p より優先させる） */
.career .career-name,.career .career-close{font-family:var(--serif);font-size:clamp(17px,2.2vw,20px);letter-spacing:.18em;color:#fff;line-height:1.9}
.career .career-name{margin:0 0 1.1em}
.career .career-close{margin-top:1.8em}
.career .career-name,.career .career-close{font-size:clamp(20px,2.6vw,26px)}

/* プロフィール写真: 上端を「PROFILE／名前」の高さに揃える */
.profile-row{align-items:start}
.profile-row .spot.photo{align-self:start}

/* ---- PHILOSOPHY → BRAND STORY の導線 / BRAND STORY の前後リンク ---- */
.next-link{display:flex;flex-direction:column;align-items:center;gap:.7em;margin:clamp(72px,12vh,140px) auto 0;padding:clamp(36px,6vh,56px) 0 0;border-top:1px solid var(--gold-faint);max-width:520px;text-align:center;text-decoration:none;color:var(--ink)}
.next-link .en{font-family:var(--en);font-size:12px;letter-spacing:.38em;color:var(--gold)}
.next-link .t{font-family:var(--serif);font-size:clamp(17px,2.2vw,21px);letter-spacing:.16em;line-height:1.9}
.next-link .ar{color:var(--gold);transition:transform .4s}
.next-link:hover .ar,.next-link:focus-visible .ar{transform:translateX(8px)}
.next-pair{display:flex;justify-content:center;gap:clamp(28px,8vw,72px);margin:clamp(56px,9vh,96px) auto 0;padding-top:28px;border-top:1px solid var(--gold-faint)}
.next-pair a{text-decoration:none;color:var(--ink-dim);letter-spacing:.3em;font-size:12px;padding:.6em .2em}
.next-pair a:hover,.next-pair a:focus-visible{color:var(--gold)}

/* 長い一行が、ひらがな1〜2字だけ折り返さないように */
.phil{text-wrap:balance}
.ph{display:inline-block}
.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}

/* ARTIST: 公式プロフィール（ロング）と、整理待ちの旧経歴 */
.career .career-role{font-family:var(--en);font-size:12px;letter-spacing:.3em;color:var(--ink-dim);margin:-.6em 0 1.6em}
.career-prev{max-width:820px;margin:clamp(56px,9vh,96px) auto 0;padding-top:28px;border-top:1px solid var(--gold-faint);text-align:left}
.career-prev p{font-size:13px;line-height:2;letter-spacing:.05em;color:var(--ink-dim);margin-bottom:.7em}
.career-prev .verify-line{margin-bottom:1.2em}
/* TOP 03 ルース写真: 切り抜きが枠いっぱいに出るため、リング写真と同じ見え方になるよう縮小 */
.fy-photo[data-slot="top-gemstones"] img{width:50%;height:50%}

.btn[aria-disabled="true"]{opacity:.6;cursor:default;pointer-events:none}
/* ORDER: 文字サイズを一段小さく */
.order-intro .phil{font-size:clamp(13px,1.5vw,15px);line-height:2.2}
.order-intro .phil.close{font-size:clamp(15px,2.2vw,19px)}
main:has(.order-intro) .page-title{font-size:clamp(22px,3.6vw,34px)}
main:has(.order-intro) .note{font-size:11px}
/* WORKS（これまでの作品）: 白背景の動画を、ギャラリーのプレートのように並べる */
.wk-lb{position:fixed;inset:0;z-index:9999;background:rgba(3,8,16,.94);display:flex;align-items:center;justify-content:center;gap:clamp(8px,3vw,40px);padding:20px}
.wk-lb[hidden]{display:none}
.wk-stage{margin:0;width:min(86vw,78vh,640px)}
.wk-stage video{display:block;width:100%;aspect-ratio:1/1;background:#fff;object-fit:cover}
.wk-stage figcaption{margin-top:1em;text-align:center;font-family:var(--serif);font-size:13px;letter-spacing:.24em;color:var(--ink)}
.wk-x{position:absolute;top:14px;right:18px;background:none;border:0;color:#fff;font-size:34px;line-height:1;cursor:pointer;padding:8px}
.wk-nav{background:none;border:0;color:var(--gold);font-size:44px;line-height:1;cursor:pointer;padding:12px 8px}
.wk-nav:hover,.wk-x:hover{color:#fff}
body.wk-open{overflow:hidden}
@media (max-width:520px){.wk-lb{gap:0;padding:12px}.wk-nav{position:absolute;bottom:18px;font-size:38px}.wk-nav.prev{left:18px}.wk-nav.next{right:18px}.wk-stage{width:min(92vw,70vh)}}

/* JEWELRY: 1点ずつ見せる舞台。切り抜いた作品に、光のラインを添える */
.jw-intro .en-line{font-family:var(--serif);font-size:12px;letter-spacing:.5em;color:var(--gold);padding-left:.5em;margin:0 0 1.4em;text-align:center}
.jw-stage{position:relative;width:min(92vw,540px,58vh);aspect-ratio:1/1;margin:1.5em auto 0}
.jw-glow{position:absolute;inset:6%;border-radius:50%;background:radial-gradient(circle at 50% 52%,rgba(var(--brand-rgb),.22),rgba(var(--brand-rgb),.06) 45%,transparent 70%);filter:blur(8px)}
.jw-lines{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}
.jw-lines ellipse{fill:none;vector-effect:non-scaling-stroke}
.jw-lines .base{stroke:rgba(190,215,255,.16);stroke-width:1}
.jw-lines .run{stroke:url(#jwg);stroke-width:1.6;stroke-linecap:round;stroke-dasharray:0 100;filter:drop-shadow(0 0 4px rgba(255,255,255,.55))}
.jw-lines .o1{transform-origin:300px 300px;transform:rotate(-26deg)}
.jw-lines .o2{transform-origin:300px 300px;transform:rotate(26deg)}
.jw-lines .sweep{stroke:rgba(255,255,255,.0);stroke-width:1;vector-effect:non-scaling-stroke}
.jw-lines.draw .o1 .run{animation:jwRun 4.8s cubic-bezier(.4,.1,.2,1) both}
.jw-lines.draw .o2 .run{animation:jwRun 4.8s cubic-bezier(.4,.1,.2,1) .5s both}
.jw-lines.draw .sweep{animation:jwSweep 3.2s ease-out both}
@keyframes jwRun{0%{stroke-dasharray:0 100;stroke-dashoffset:0}35%{stroke-dasharray:46 54}100%{stroke-dasharray:0 100;stroke-dashoffset:-100}}
@keyframes jwSweep{0%{stroke:rgba(255,255,255,0);stroke-dasharray:0 600}40%{stroke:rgba(255,255,255,.55);stroke-dasharray:420 600}100%{stroke:rgba(255,255,255,0);stroke-dasharray:420 600;stroke-dashoffset:-420}}
.jw-slides{position:absolute;inset:0}
.jw-slide{position:absolute;inset:0;margin:0;display:flex;align-items:center;justify-content:center;flex-direction:column;opacity:0;visibility:hidden;
  transform:scale(.96);filter:blur(6px);transition:opacity 1.1s ease,transform 1.4s ease,filter 1.1s ease,visibility 0s 1.1s;cursor:pointer}
.jw-slide.is-on{opacity:1;visibility:visible;transform:none;filter:none;transition:opacity 1.1s ease,transform 1.4s ease,filter 1.1s ease,visibility 0s}
.jw-slide img{display:block;max-width:var(--w,74%);max-height:70%;width:auto;height:auto;object-fit:contain;filter:drop-shadow(0 10px 28px rgba(0,0,0,.45))}
.jw-slide.hang img{-webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 24%);mask-image:linear-gradient(to bottom,transparent 0,#000 24%)}
.jw-nav{position:absolute;top:50%;transform:translateY(-50%);background:none;border:0;color:var(--gold);font-size:40px;line-height:1;padding:14px 10px;cursor:pointer;z-index:2}
.jw-nav.prev{left:-6px}.jw-nav.next{right:-6px}.jw-nav:hover{color:#fff}
@media (min-width:760px){.jw-nav.prev{left:-56px}.jw-nav.next{right:-56px}}
.jw-play{position:absolute;right:2px;top:2px;background:none;border:1px solid var(--gold-faint);color:var(--ink-dim);font-family:var(--serif);font-size:11px;letter-spacing:.24em;padding:8px 12px 8px 14px;cursor:pointer;z-index:2;transition:color .3s,border-color .3s}
.jw-play:hover{color:#fff;border-color:var(--gold)}
.jw-dots button{width:7px;height:7px;border-radius:50%;border:1px solid var(--gold);background:transparent;padding:0;cursor:pointer;transition:background .3s,transform .3s}
.jw-dots button.on{background:var(--gold);transform:scale(1.25)}
.jw-close{margin-top:4.2em!important}
@media (prefers-reduced-motion:reduce){.jw-slide,.jw-slide.is-on{transition:opacity .01s}.jw-lines .run,.jw-lines .sweep{animation:none!important}.jw-lines .base{stroke:rgba(190,215,255,.28)}}
.jw-label{font-family:var(--serif);font-size:12px;letter-spacing:.5em;color:var(--gold);padding-left:.5em;margin:3.2em 0 0;text-align:center}
/* 作品に添える言葉 */
.jw-cn{display:block;font-family:var(--serif);font-size:15px;letter-spacing:.3em;color:var(--gold);padding-left:.3em;margin-bottom:.9em}
.jw-tx{display:block;font-size:12.5px;line-height:1.95;letter-spacing:.08em;color:var(--ink);text-wrap:balance}
.jw-tx br+br{display:block;content:"";margin-top:.5em}
@media (max-width:520px){.jw-tx{font-size:11.5px;letter-spacing:.04em}}

/* 舞台の下に、題名・宝石・言葉の枠を取る（作品が切り替わると一緒に入れ替わる） */
.jw-caps{display:grid;width:min(92vw,520px);margin:-1.6em auto 0;min-height:11.5em;position:relative;z-index:2;text-align:center}
.jw-cap{grid-area:1/1;opacity:0;visibility:hidden;transition:opacity .9s ease,visibility 0s .9s}
.jw-cap.is-on{opacity:1;visibility:visible;transition:opacity .9s ease .25s,visibility 0s}
.jw-cap .jw-cn{margin-bottom:.7em}
.jw-cap .jw-gem{margin:0 0 .7em}
.jw-cap .jw-gem.jw-sub{margin-top:-.2em}
.jw-gem{display:flex;justify-content:center;align-items:baseline;gap:1em;margin:0 0 1.2em;font-size:11.5px;color:var(--ink-dim)}
.jw-gem .e{letter-spacing:.24em;padding-left:.24em}
.jw-gem .j{letter-spacing:.14em}
.jw-dots{display:flex;justify-content:center;gap:10px;margin:1.6em 0 0}
@media (prefers-reduced-motion:reduce){.jw-cap,.jw-cap.is-on{transition:none}}
.jw-sub{margin-bottom:.5em}
.jw-gem.stack{flex-direction:column;align-items:center;gap:.35em}
.jw-gem.stack .j{font-size:10.5px}
.gt{opacity:0;transition:opacity .9s ease}
.gt.gt-on{opacity:1}
@keyframes gtGlow{0%,100%{text-shadow:0 0 22px rgba(var(--brand-rgb),.45)}50%{text-shadow:0 0 30px rgba(var(--brand-rgb),.7),0 0 6px rgba(255,255,255,.55)}}
@media (prefers-reduced-motion:reduce){.gt{opacity:1}}

.phil.art-wow{font-size:clamp(18px,2.1vw,20px);transition:opacity .5s ease,color .7s ease,text-shadow .9s ease}
/* 集まり終えたあと: 太字にして、ネオンのように光りつづける（きらきらではなく、ひと続きの光）。
   背景の写真が明るくても読めるよう、文字のうしろに暗いぼかしを敷く */
.phil.art-wow{isolation:isolate}
.phil.art-wow::before{content:"";position:absolute;z-index:-1;inset:-34px -70px;pointer-events:none;opacity:0;transition:opacity .9s ease;
  background:radial-gradient(ellipse at center,rgba(4,6,15,.55) 0%,rgba(4,6,15,.34) 42%,rgba(4,6,15,0) 74%)}
.phil.art-wow.gt-neon::before{opacity:1}
.phil.art-wow.gt-neon,.sub-sec#art .phil.art-wow.gt-neon{color:#f3faff;
  text-shadow:0 0 2px rgba(255,255,255,.4),0 0 8px rgba(120,196,255,.4),0 0 18px rgba(61,155,240,.28),0 0 36px rgba(47,139,224,.16)}

/* FILM（サンプル）: 切り抜きをずらっと並べ、タップで映像 */
.fm-note{margin:2em auto 0;font-size:12px;color:var(--gold-dim);text-align:center}
.fm-chips{display:flex;flex-wrap:wrap;gap:.6em;justify-content:center;margin:2.2em 0 2.6em}
.fm-chip{background:none;border:1px solid var(--gold-faint);color:var(--ink-dim);padding:.5em 1.1em;font:inherit;font-size:11px;letter-spacing:.18em;cursor:pointer}
.fm-chip.on,.fm-chip:hover{border-color:var(--gold);color:var(--gold)}
.fm-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:34px 14px;width:min(1040px,100%);margin:0 auto}
.fm-tile{background:none;border:0;padding:0;color:inherit;font:inherit;cursor:pointer;display:block;text-align:center}
.fm-tile[hidden]{display:none}
.fm-pic{display:grid;place-items:center;aspect-ratio:1/1;position:relative}
.fm-pic:before{content:"";position:absolute;inset:12%;border-radius:50%;background:radial-gradient(circle,rgba(var(--brand-rgb),.2),transparent 68%);opacity:.7;transition:opacity .5s}
.fm-tile:hover .fm-pic:before{opacity:1}
.fm-pic img{position:relative;max-width:82%;max-height:82%;width:auto;height:auto;object-fit:contain;filter:drop-shadow(0 8px 18px rgba(0,0,0,.45));transition:transform .6s ease}
.fm-tile:hover .fm-pic img{transform:scale(1.05)}
.fm-gem{display:block;margin-top:.5em;font-size:10.5px;letter-spacing:.22em;color:var(--gold);padding-left:.22em}
.fm-name{display:block;margin-top:.45em;font-family:var(--serif);font-size:12.5px;letter-spacing:.12em;color:var(--ink)}
.fm-no{display:block;margin-top:.35em;font-size:10px;letter-spacing:.16em;color:var(--ink-dim)}
.fm-foot{margin:4em 0 0;text-align:center;font-size:12px;color:var(--ink-dim)}.fm-foot a{color:var(--gold)}
.fm-lb{position:fixed;inset:0;z-index:200;background:rgba(3,5,14,.94);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:56px 16px 24px}
.fm-lb[hidden]{display:none}
.fm-frame{width:min(92vw,420px,calc((100vh - 150px)*9/16));aspect-ratio:9/16;background:#000;border:1px solid var(--gold-faint)}
.fm-frame iframe{width:100%;height:100%;border:0;display:block}
.fm-cap{margin:1.2em 0 0;font-family:var(--serif);font-size:13px;letter-spacing:.16em;color:var(--gold);text-align:center}
.fm-x{position:absolute;top:10px;right:14px;background:none;border:0;color:var(--gold);font-size:34px;line-height:1;cursor:pointer;padding:8px 12px}
.fm-tile.is-ring .fm-pic img{max-width:57%;max-height:57%}
.fm-label{font-family:var(--serif);font-size:12px;letter-spacing:.5em;color:var(--gold);padding-left:.5em;margin:6em 0 2.4em;text-align:center}
.fm-photos{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:26px 18px;width:min(1040px,100%);margin:0 auto}
.fm-photo{margin:0;text-align:center}
.fm-photo img{display:block;width:100%;aspect-ratio:1/1;object-fit:cover;border:1px solid var(--gold-faint);background:#fff}
.fm-photo figcaption{margin-top:.8em;font-family:var(--serif);font-size:12.5px;letter-spacing:.12em;color:var(--ink)}
.fm-tile.no-video{cursor:default}.fm-tile.no-video:hover .fm-pic img{transform:none}
.fm-photo.has-video{cursor:pointer}
.fm-photo.has-video img{transition:border-color .4s,opacity .4s}
.fm-photo.has-video:hover img{border-color:var(--gold)}
.fm-pl{display:block;margin-top:.4em;font-size:10px;letter-spacing:.2em;color:var(--gold)}
.fm-chips[data-group]{align-items:center;margin:1.4em 0 0}
.fm-chips[data-group]+.fm-chips[data-group]{margin:.8em 0 2.6em}
.fm-chiplabel{font-size:10px;letter-spacing:.3em;color:var(--ink-dim);margin-right:.6em}
.wk-stage video[hidden]{display:none}
.wk-stage:has(iframe.wk-yt){width:min(92vw,420px,calc((100vh - 130px)*9/16))}
.wk-stage iframe.wk-yt{width:100%;aspect-ratio:9/16;border:1px solid var(--gold-faint);background:#000;display:block}
.jw-cap .jw-gem .e{padding-left:0}
.jw-cap .jw-cn{font-variant-numeric:lining-nums}
.jw-cap .jw-no{display:block;margin-top:-.2em;font-size:9.5px;letter-spacing:.22em;color:var(--ink-dim);opacity:.8}
.fm-buy{display:inline-block;margin-top:.9em;padding:.45em 1.2em;border:1px solid var(--gold);color:var(--gold);font-size:10.5px;letter-spacing:.24em;cursor:pointer}
.fm-buy:hover{background:var(--gold);color:#04060f}.fm-buy.wait{opacity:.5;pointer-events:none}
/* 購入の確認画面（自社デザイン）。カード入力はSquareの画面 */
.fm-buymodal{position:fixed;inset:0;z-index:300;background:rgba(3,5,14,.94);display:flex;align-items:center;justify-content:center;padding:20px}
.fm-buymodal[hidden]{display:none}
.fm-bm-box{position:relative;width:min(92vw,420px);max-height:92vh;overflow:auto;text-align:center;padding:28px 24px;border:1px solid var(--gold-faint);background:rgba(8,12,28,.9)}
.fm-bm-box .fm-x{position:absolute;top:6px;right:8px}
.fm-bm-pic{display:grid;place-items:center;min-height:160px}
.fm-bm-pic img{max-width:60%;max-height:190px;filter:drop-shadow(0 8px 18px rgba(0,0,0,.45))}
.fm-bm-gem{margin:1em 0 0;font-size:11px;letter-spacing:.24em;color:var(--gold)}
.fm-bm-name{margin:.5em 0 1.2em;font-family:var(--serif);font-size:16px;letter-spacing:.14em;color:var(--ink)}
.fm-bm-note{margin:0 0 1.4em;font-size:12px;line-height:1.9;color:var(--ink-dim)}
.fm-bm-go{display:block;width:100%;padding:.9em 1em;border:1px solid var(--gold);background:none;color:var(--gold);font-family:var(--serif);font-size:13px;letter-spacing:.2em;cursor:pointer}
.fm-bm-go:hover:not(:disabled){background:var(--gold);color:#04060f}.fm-bm-go:disabled{opacity:.5}
.fm-bm-sub{margin:1em 0 0;font-size:10.5px;color:var(--ink-dim)}
.fm-bm-lead{margin:.4em 0 1.2em;font-family:var(--serif);font-size:15px;letter-spacing:.16em;color:var(--ink);line-height:1.9}
.fm-bm-note{margin:0 0 1.5em;text-align:left;font-size:12px;line-height:1.85;color:var(--ink-dim)}
.fm-bm-note dt{margin-top:.9em;font-size:10.5px;letter-spacing:.22em;color:var(--gold)}
.fm-bm-note dd{margin:.2em 0 0}
/* 法令ページ（特商法・プライバシー） */
.lg-note{margin:2em auto;font-size:12px;color:var(--gold-dim);text-align:center}
.lg{width:min(760px,100%);margin:2.4em auto 0;text-align:left}
.lg dt{margin-top:1.6em;font-size:11px;letter-spacing:.2em;color:var(--gold)}
.lg dd{margin:.4em 0 0;padding-bottom:1.1em;border-bottom:1px solid var(--gold-faint);font-size:13.5px;line-height:1.9;color:var(--ink)}
.lg-body{width:min(760px,100%);margin:2em auto 0;text-align:left;font-size:13.5px;line-height:1.95;color:var(--ink)}
.lg-body h2{margin:2.2em 0 .6em;font-family:var(--serif);font-size:14px;letter-spacing:.14em;color:var(--gold);font-weight:400}
.lg-body ul{margin:.6em 0 0;padding-left:1.4em}.lg-date{margin-top:2em;color:var(--ink-dim)}
.ck-bar{position:fixed;left:0;right:0;bottom:0;z-index:9000;display:flex;flex-wrap:wrap;gap:12px 20px;align-items:center;justify-content:center;padding:14px 18px;background:rgba(6,9,22,.96);border-top:1px solid var(--gold-faint);font-size:12px;line-height:1.8;color:var(--ink)}
.ck-bar p{margin:0;max-width:640px}.ck-bar a{color:var(--gold);margin-left:.6em}
.ck-bar button{background:none;border:1px solid var(--gold-faint);color:var(--gold);padding:.5em 1.2em;font:inherit;font-size:11px;letter-spacing:.14em;cursor:pointer;margin-left:.5em}
.ck-bar button:hover{border-color:var(--gold)}
.fm-bm-dm{display:block;margin:0 0 1.2em;text-align:left;font-size:12px;line-height:1.7;color:var(--ink-dim);cursor:pointer}
.fm-bm-dm input{margin-right:.5em;vertical-align:-1px}
.fm-bm-law{margin:.9em 0 0;font-size:10.5px}.fm-bm-law a{color:var(--ink-dim);text-decoration:underline}

/* GEM STORIES（仮） */
.gs-quote{max-width:34em;margin:1.6em auto 0;color:var(--ink-dim);font-size:13px;line-height:2;letter-spacing:.04em;text-align:left}
.gs-quote cite{display:block;margin-top:.8em;font-style:normal;font-size:11px;letter-spacing:.14em;color:var(--gold)}
.gs-card{background:none;border:0;color:inherit;font:inherit;cursor:pointer;text-align:center;padding:0}
.gs-card[hidden]{display:none}
.gs-pic{display:block;aspect-ratio:1/1;display:flex;align-items:center;justify-content:center}
.gs-pic img{max-width:78%;max-height:78%;object-fit:contain}
.gs-detail{position:fixed;inset:0;z-index:90;background:rgba(4,6,15,.92);overflow:auto;display:flex;align-items:flex-start;justify-content:center;padding:6vh 16px}
.gs-detail[hidden]{display:none}
.gs-box{position:relative;max-width:30em;width:100%;text-align:center}
.gs-box .fm-x{position:fixed;top:14px;right:16px}
.gs-big{max-width:60%;max-height:34vh;object-fit:contain}
.gs-box h2{font-weight:400;letter-spacing:.2em;margin:.2em 0 1em}
.gs-story{color:var(--ink-dim);font-size:13px;line-height:2}
.gs-tab{margin:1.6em auto;border-collapse:collapse;font-size:12px;text-align:left}
.gs-tab th{color:var(--gold);font-weight:400;letter-spacing:.14em;padding:.5em 1.2em .5em 0;vertical-align:top;white-space:nowrap}
.gs-tab td{color:var(--ink-dim);padding:.5em 0;line-height:1.8}
.gs-go{display:inline-block;margin-top:.6em;border:1px solid var(--gold);color:var(--gold);padding:.7em 1.6em;letter-spacing:.16em;font-size:12px;text-decoration:none}
.gs-draft{display:block;margin-top:2em;font-size:10px;letter-spacing:.14em;color:var(--ink-dim)}
.gs-sec{margin:2.4em 0;text-align:center}
.gs-sn{font-size:11px;letter-spacing:.22em;color:var(--gold);margin:0}
.gs-sj{font-size:12px;color:var(--ink-dim);letter-spacing:.1em;margin:.3em 0 .8em}
.gs-wait{opacity:.5}
.gs-note .gs-story{font-size:14px}
.gs-card{display:block;text-decoration:none}
.gs-page{max-width:34em;margin:0 auto;text-align:center}
.gs-planet{width:190px;height:190px;display:block;margin:1em auto}
.gs-stone{font-size:13px;letter-spacing:.24em;color:var(--gold);margin:.4em 0 0}
.gs-story p{color:var(--ink-dim);font-size:13.5px;line-height:2.1;margin:0 0 1.1em;text-align:left}
.gs-story sup a{color:var(--gold);text-decoration:none;font-size:10px}
.gs-cosmic .gs-story{text-align:center}
.gs-page .gs-tab{margin:1em auto}
.gs-refs ul{list-style:none;padding:0;margin:1em 0 0;text-align:left;font-size:11px;line-height:1.9;color:var(--ink-dim);word-break:break-all}
.gs-refs a{color:var(--ink-dim)}
.gs-navs{margin:3em 0 1em;display:flex;flex-direction:column;gap:1.4em;align-items:center}
.gs-back{font-size:11px;letter-spacing:.16em;color:var(--ink-dim);text-decoration:none}
.gs-note{padding-top:1.2em;border-top:1px solid var(--gold-faint)}
/* GEM STORIES 見た目調整 */
.gs-page .gs-story p{letter-spacing:.03em;line-height:2.15;font-size:14px;line-break:strict;word-break:auto-phrase;text-wrap:pretty}
.gs-sec{margin:3.6em 0}
.gs-sj{font-size:13px;letter-spacing:.14em;margin:.4em 0 1.6em}
.gs-hero{display:block;max-width:min(260px,70%);max-height:260px;object-fit:contain;margin:1em auto 1.2em;filter:drop-shadow(0 0 24px rgba(200,170,110,.18))}
.gs-page .gs-tab{width:100%;max-width:24em}
.gs-page .gs-tab th{width:8.5em}
.gs-note .gs-story p{font-size:14.5px}
.gs-works{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-top:1.2em}
.gs-works a{width:calc(25% - 8px);min-width:72px;aspect-ratio:1/1;display:flex;align-items:center;justify-content:center}
.gs-works img{max-width:100%;max-height:100%;object-fit:contain}
.gs-pn{display:flex;justify-content:space-between;gap:1em;margin:2.4em 0 1em;font-size:11px;letter-spacing:.14em}
.gs-pn a{color:var(--ink-dim);text-decoration:none}
.gs-cosmic{margin-top:1.5em}
@media(max-width:600px){.gs-page{padding:0 4px}}

.gs-pic svg{width:62%;height:auto;max-height:100%;filter:drop-shadow(0 0 18px rgba(255,255,255,.08))}
.gs-hero.gs-pic{display:block;width:150px;height:150px;margin:1em auto 1.2em;max-width:none;max-height:none;filter:none}
.gs-hero.gs-pic svg{width:100%}
.gs-planet{width:190px;height:190px}
.story-photo{margin:3.2em calc(50% - 50vw);width:100vw;max-width:none}
.story-photo img{display:block;width:100%;max-height:60vh;object-fit:cover;opacity:.92}
@media(min-width:900px){.story-photo{margin:3.6em auto;width:min(960px,92%)}}
/* ARTIST: プロフィールを最上段に、ストーリーの背景に「窓」 */
.story-wrap{position:relative;margin-top:6em}
.story-win{position:sticky;top:14vh;height:0;z-index:0;pointer-events:none}
.story-win .spot{position:absolute;left:50%;top:0;transform:translateX(-50%);margin:0;width:clamp(260px,48vw,400px)}
.story-win .photo-plate{transition:opacity 2.4s ease;filter:grayscale(.2) brightness(.55)}
.story-text{position:relative;z-index:1}
.story-text .phil{text-shadow:0 0 14px rgba(4,6,15,.85),0 0 4px rgba(4,6,15,.9)}
/* メニュー: 親子（JEWELRY / ARTIST の下に子項目） */
header.site nav .has-sub{position:relative;display:flex;flex-direction:column;align-items:center}
header.site nav .has-sub>a{display:inline-block}
header.site nav .has-sub.here>a{color:var(--gold)}
header.site nav .sub{display:flex;flex-direction:column;align-items:center;gap:.3em}
header.site nav .sub a{font-size:12px;letter-spacing:.22em;color:var(--ink-dim);opacity:.85}
@media (min-width:1401px){
  header.site nav .sub{position:absolute;top:100%;left:50%;transform:translateX(-50%);min-width:9em;padding:1.1em 1.2em .9em;background:rgba(6,5,11,.94);border:1px solid var(--gold-faint);opacity:0;pointer-events:none;transition:opacity .25s;gap:.9em}
  header.site nav .has-sub:hover .sub,header.site nav .has-sub:focus-within .sub{opacity:1;pointer-events:auto}
}
@media (max-width:1400px){
  header.site nav .sub{gap:.1em;margin-top:.5em}
  header.site nav .sub a{font-size:13px;padding:.15em .6em}
}
.art-ext{margin:2.4em 0 0;text-align:center}
.art-ext a{display:inline-block;border:1px solid var(--gold);color:var(--gold);padding:.8em 1.8em;letter-spacing:.14em;font-size:12px;text-decoration:none}
@media (max-width:1400px){header.site nav .sub a:first-child{display:none}}
/* 1ページ化: 親ページの中の子セクション */
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
.sub-sec{margin-top:clamp(7em,16vh,12em);padding-top:clamp(3em,8vh,5em);border-top:1px solid var(--gold-faint);scroll-margin-top:70px}
.sub-sec>.sec-head{margin-bottom:1.6em}
.sub-sec .sub-title{font-size:clamp(20px,3vw,28px)}
/* ARTIST: 背景の窓が ART に重ならないよう、ストーリーの終わりで窓ごと上へ流れていく余白 */
.story-wrap{padding-bottom:clamp(300px,52vw,440px)}
/* ART: 背景動画（グラデで溶け込ませる） */
.sub-sec#art{position:relative}
main.page{overflow-x:clip}
.sub-sec#art>*:not(.art-bg){position:relative;z-index:1}
.art-bg{position:absolute;top:0;bottom:0;left:50%;width:100vw;transform:translateX(-50%);overflow:hidden;z-index:0;display:flex;justify-content:center;pointer-events:none;
  -webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 22%,#000 78%,transparent 100%);mask-image:linear-gradient(to bottom,transparent 0,#000 22%,#000 78%,transparent 100%)}
.art-bg-frame{position:relative;height:100%;aspect-ratio:9/16;max-width:none;opacity:.55;
  -webkit-mask-image:linear-gradient(to right,transparent 0,#000 22%,#000 78%,transparent 100%);mask-image:linear-gradient(to right,transparent 0,#000 22%,#000 78%,transparent 100%)}
.art-bg-frame iframe{position:absolute;left:50%;top:50%;width:100%;height:100%;border:0;transform:translate(-50%,-50%) scale(1.2);pointer-events:none}
.art-bg::after{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at center,rgba(4,6,15,.15),rgba(4,6,15,.7) 75%)}
.sub-sec#art .phil{text-shadow:0 0 14px rgba(4,6,15,.9),0 0 4px rgba(4,6,15,.9)}
/* ご相談フォーム */
.ct{max-width:560px;margin:56px auto 0;text-align:left}
.ct h2{font-family:var(--serif);font-weight:400;letter-spacing:.3em;font-size:15px;text-align:center;margin:0 0 6px;color:var(--gold)}
.ct .ct-lead{text-align:center;font-size:13px;color:var(--ink-dim);margin:0 0 24px}
.ct label{display:block;font-size:12px;letter-spacing:.14em;color:var(--ink-dim);margin:16px 0 6px}
.ct input,.ct select,.ct textarea{width:100%;box-sizing:border-box;background:rgba(255,255,255,.04);border:1px solid var(--gold-faint);color:var(--ink);
  font:inherit;font-size:16px;padding:12px 14px;border-radius:2px}
.ct input:focus,.ct select:focus,.ct textarea:focus{outline:none;border-color:var(--gold)}
.ct textarea{min-height:150px;resize:vertical}
.ct .ct-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.ct .cf-turnstile{margin:20px 0 4px}
.ct .btn{border:1px solid var(--gold-dim);cursor:pointer;margin-top:12px;background:transparent;color:var(--ink)}
.ct .ct-msg{min-height:1.6em;font-size:13px;margin:12px 0 0}
.ct .ct-msg.ok{color:var(--gold)}.ct .ct-msg.ng{color:#e8a0a0}
/* 言語の切り替え（JA | EN）: ヘッダーに常に出す。メニューには隠さない */
header.site .lang{display:inline-flex;align-items:center;border:1px solid var(--gold-faint);border-radius:999px;overflow:hidden;margin-left:clamp(14px,2vw,28px);flex:none;position:relative;z-index:70}
header.site .lang a{font-family:var(--logo);font-size:11px;letter-spacing:.18em;padding:5px 11px 5px 13px;color:var(--ink-dim);text-decoration:none;line-height:1.4;transition:color .3s,background .3s}
header.site .lang a:hover{color:var(--gold)}
header.site .lang a.on{background:rgba(var(--brand-rgb),.2);color:#fff;pointer-events:none}
@media (max-width:1400px){
  header.site .lang{order:1;margin-left:auto;margin-right:6px}
  header.site .menu{order:2}
}
/* 英語版の文字組み（欧文は Cormorant を主にし、行間・字間を欧文向けに） */
html[lang="en"] body{font-family:var(--serif);font-weight:400}
html[lang="en"] .phil{font-size:clamp(17px,2vw,21px);line-height:2.05;letter-spacing:.02em;text-wrap:balance}
html[lang="en"] .phil.first,html[lang="en"] .gaze .phil.first{letter-spacing:.03em;white-space:normal;text-wrap:balance}
html[lang="en"] .page-title,html[lang="en"] .page-title.sm{letter-spacing:.06em}
html[lang="en"] .note,html[lang="en"] .sub{letter-spacing:.03em}
html[lang="en"] .btn{letter-spacing:.18em}
html[lang="en"] .gs-body p,html[lang="en"] .gs-sec p{letter-spacing:.015em;line-height:1.95}
/* 英語版: 英字の名前と、訳した名前が重なる所は、片方だけ出す */
html[lang="en"] .jw-gem .e + .j,html[lang="en"] .gs-card .fm-name{display:none}
html[lang="en"] .gs-stone + .gs-sj{display:none}
/* フッターの、プライバシーポリシーへのリンク */
footer.site .copy a.pp{color:inherit;text-decoration:none;border-bottom:1px solid var(--gold-faint);opacity:.85}
footer.site .copy a.pp:hover{color:var(--gold);opacity:1}
