/* exploded 3D server section */
.s3d{position:relative;height:760vh;margin-top:clamp(90px,14vh,150px)}
.s3d-sticky{position:sticky;top:0;height:100vh;height:100svh;overflow:hidden}
.s3d-canvas{position:absolute;inset:0;width:100%;height:100%;display:block}
.s3d-sticky::after{content:"";position:absolute;inset:0;background-image:var(--noise);opacity:.06;pointer-events:none}
.s3d-leaders{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible}
.s3d-leaders line{stroke:#1C1A18;stroke-width:1.2;stroke-dasharray:3 4}
.s3d-leaders circle{fill:#C8352B}
.s3d-labels{position:absolute;inset:0;pointer-events:none}
.s3d-label{position:absolute;left:0;top:0;font:400 clamp(16px,1.3vw,21px)/1.1 var(--hand,"Yuji Syuku"),serif;color:#1C1A18;white-space:nowrap;opacity:0;will-change:transform,opacity;background:rgba(246,238,223,.84);padding:2px 8px;border-radius:8px}
.s3d-panels{position:absolute;left:clamp(110px,9vw,170px);top:50%;transform:translateY(-50%);width:min(380px,30vw);pointer-events:none}
.s3d-panel{position:absolute;left:0;top:0;transform:translateY(-50%);opacity:0;visibility:hidden;background:rgba(251,246,236,.95);border:1px solid rgba(28,26,24,.12);border-radius:24px;padding:24px 26px;box-shadow:0 20px 40px -32px rgba(28,26,24,.5)}
.s3d-panel.on{pointer-events:auto}
.s3d-kick{font:600 12px/1 var(--sans,Inter),sans-serif;letter-spacing:.2em;text-transform:uppercase;color:#5E5850;margin:0 0 12px}
.s3d-kick span{color:#C8352B;margin-right:8px}
.s3d-title{font:700 clamp(28px,2.6vw,40px)/1.02 var(--serif,"Shippori Mincho B1"),serif;letter-spacing:-.01em;margin:0 0 12px}
.s3d-panel p:not(.s3d-kick){margin:0;font-size:15.5px;line-height:1.55;color:#3d3a35}
.s3d-cta{margin-top:18px}
.s3d-progress{position:absolute;right:clamp(16px,2.4vw,34px);top:50%;height:38vh;width:2px;transform:translateY(-50%);background:rgba(28,26,24,.15);border-radius:2px}
.s3d-fill{position:absolute;left:0;top:0;width:100%;height:100%;background:#C8352B;transform-origin:50% 0;transform:scaleY(0)}
.s3d-progress i{position:absolute;left:50%;width:8px;height:8px;border-radius:50%;border:1.5px solid #1C1A18;background:#F6EEDF;transform:translate(-50%,-50%)}
.s3d-progress i.done{background:#C8352B;border-color:#C8352B}
.s3d-hint{position:absolute;left:50%;bottom:4vh;transform:translateX(-50%);margin:0;color:#C8352B;font-size:24px;transition:opacity .4s}
.s3d-noscript{position:absolute;inset:auto 0 40% 0;text-align:center}
@media (max-width:900px){
  .s3d{height:640vh}
  .s3d-panels{left:14px;right:22px;top:auto;bottom:calc(14px + env(safe-area-inset-bottom));transform:none;width:auto;height:auto}
  .s3d-panel{top:auto;bottom:0;transform:none;width:100%;padding:16px 18px;border-radius:18px}
  .s3d-title{font-size:24px;margin-bottom:6px}
  .s3d-panel p:not(.s3d-kick){font-size:14px}
  .s3d-kick{margin-bottom:8px}
  .s3d-progress{right:auto;left:50%;top:76px;height:2px;width:56vw;transform:translateX(-50%)}
  .s3d-fill{transform-origin:0 50%;transform:scaleX(0)}
  .s3d-progress i{top:50%!important}
  .s3d-progress i:nth-of-type(1){left:0}.s3d-progress i:nth-of-type(2){left:14%}.s3d-progress i:nth-of-type(3){left:30%}.s3d-progress i:nth-of-type(4){left:50%}.s3d-progress i:nth-of-type(5){left:82%}
  .s3d-hint{display:none}
  .s3d-label{font-size:18px;padding:1px 6px}
}
/* static fallback: no scroll story */
html.rm .s3d{height:auto}
html.rm .s3d-sticky{position:relative;height:100vh;min-height:620px}
html.rm .s3d-hint{display:none}

/* UKUZO: ink leaders, brush-ish labels */
.s3d-leaders line{stroke-dasharray:none;stroke-width:1.1;opacity:.7}
.s3d-label{letter-spacing:-.02em;border-radius:4px}
.s3d-kick span{font-family:var(--kanji,"Yuji Syuku"),serif;font-size:15px;letter-spacing:0}
@media (max-width:900px){.s3d-label{font-size:15px}}
