.ng-ritual{background:#e8e2d6;color:#283a34;padding:clamp(80px,10vw,160px) 5vw 65px}
.ng-ritual *{box-sizing:border-box}
.ng-opening{max-width:1450px;margin:auto;display:grid;grid-template-columns:1fr 1fr;gap:30px 5vw;align-items:end}
.ng-kicker{font:.65rem/1.5 sans-serif;letter-spacing:.21em;color:#60786b}
.ng-opening>.ng-kicker{grid-column:1/-1}.ng-opening h2{font-family:'Noto Serif JP',serif;font-size:clamp(2.7rem,5.8vw,7rem);font-weight:400;line-height:1.4;letter-spacing:-.08em;margin:0}.ng-opening h2 em{font-style:normal;color:#82978b}
.ng-opening>p:last-child{max-width:390px;justify-self:end;line-height:2.1}
.ng-timeline{max-width:1450px;margin:70px auto 0;display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid #a4b0a6;border-bottom:1px solid #a4b0a6}
.ng-timeline button{appearance:none;border:0;border-right:1px solid #b2bdb4;background:transparent;color:#3b5145;text-align:left;padding:24px 20px;display:grid;gap:9px;cursor:pointer;transition:background .35s,color .35s}
.ng-timeline button:last-child{border-right:0}.ng-timeline button[aria-pressed=true]{background:#30463b;color:#f9f7f0}.ng-timeline button span{font:.72rem sans-serif;letter-spacing:.12em}.ng-timeline button b{font-family:'Noto Serif JP',serif;font-size:1.4rem;font-weight:400}.ng-timeline button small{font:.58rem sans-serif;letter-spacing:.16em}
.ng-timeline button:focus-visible{outline:3px solid #a27758;outline-offset:-3px}
.ng-scene{max-width:1450px;margin:0 auto;display:grid;grid-template-columns:1.4fr .6fr;background:#f5f1e8}
.ng-image{position:relative;min-height:660px;overflow:hidden;background:#c6bdad}
.ng-image img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:var(--ng-pos,0%) center;transition:object-position .8s ease,opacity .35s}
.ng-image span{position:absolute;left:30px;bottom:25px;color:#fff;font:500 1rem sans-serif;letter-spacing:.13em;text-shadow:0 1px 4px #333}
.ng-story{padding:clamp(38px,4vw,80px);display:flex;flex-direction:column;justify-content:center}
.ng-story h3{font-family:'Noto Serif JP',serif;font-weight:400;font-size:clamp(1.7rem,2.35vw,2.8rem);line-height:1.5;margin:26px 0}
.ng-story>p:not(.ng-kicker){line-height:2.1}.ng-story-note{margin-top:60px;border-top:1px solid #adbbb0;padding-top:25px}.ng-story-note span{font:.63rem sans-serif;letter-spacing:.15em}.ng-story-note p{line-height:1.9;font-size:.84rem}
.ng-disclaimer{max-width:1450px;margin:35px auto 0;font-size:.75rem;line-height:1.9}
@media(max-width:900px){.ng-opening{display:block}.ng-opening>p:last-child{max-width:560px;margin-top:30px}.ng-scene{display:block}.ng-image{min-height:62vw}.ng-story{padding:50px}.ng-story-note{margin-top:28px}}
@media(max-width:600px){.ng-ritual{padding:75px 20px 45px}.ng-opening h2{font-size:clamp(2.3rem,10vw,4rem)}.ng-timeline{margin-top:42px}.ng-timeline button{padding:13px 8px;gap:5px}.ng-timeline button b{font-size:.86rem}.ng-timeline button small{font-size:.44rem;letter-spacing:.02em}.ng-image{min-height:390px}.ng-story{padding:40px 25px}.ng-story h3{font-size:2rem;margin:20px 0}.ng-disclaimer{margin-top:24px}}
@media(prefers-reduced-motion:reduce){.ng-image img,.ng-timeline button{transition:none!important}}
html.quiet .ng-image img{transition:none!important}
