/* Closed cloth first; all copy fades before the panels can separate. */
.curtain-cloth{gap:0;animation:cloth-descend 1.2s cubic-bezier(.19,1,.22,1)}
.cloth-width{flex:0 0 25%;width:25%;background:#111d36}
.cloth-width:not(:first-child) .cloth-weave::after{content:'';position:absolute;left:0;top:15%;bottom:0;width:1px;background:#0b1428;box-shadow:1px 0 #ffffff09}
.cloth-width{animation:hem-breeze 7s ease-in-out infinite alternate}.cloth-weave{animation:none;transform:none!important}
@keyframes hem-breeze{from{clip-path:inset(0 0 0)}to{clip-path:inset(0 0 2px)}}
.hero-copy,.hero-bottom{opacity:var(--hero-opacity,1);animation:closed-copy .45s 1.2s backwards;pointer-events:auto}
.hero-emblem,.hero-copy h1{animation:none}
@keyframes closed-copy{from{opacity:0}to{opacity:var(--hero-opacity,1)}}
.chapter{padding-top:84px;padding-bottom:84px}
.three-promises{background:var(--ink);color:var(--paper);padding:30px 12px}
.three-promises>div{border-color:#ffffff35}.three-promises strong{font-size:86px;color:var(--gold)}.three-promises .promise-jp{font-size:52px;line-height:2.48}
.price-table{background:var(--ink);color:var(--paper);border:double 4px var(--gold);box-shadow:8px 10px 0 #111d3610;max-width:740px;margin:48px auto 0}
.price-table::before{border-color:var(--gold)}.price-body{border-color:#f0c98760}.price-table .amount{color:var(--gold)}
.update-chapter{background:var(--ink);color:var(--paper);padding-left:40px;padding-right:40px}.update-chapter .text-link{border-color:var(--gold);color:var(--gold)}
.gallery-controls{display:flex;justify-content:flex-end;gap:12px;margin-top:24px}.gallery-controls button{width:48px;height:48px;border:1px solid var(--ink);background:var(--paper);color:var(--ink);font-size:24px;cursor:pointer}
.work-gallery{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:32px;scrollbar-width:thin;margin-top:16px}.work-gallery .featured-work{flex:0 0 100%;min-width:0;scroll-snap-align:start;margin:0 0 16px}.gallery-screens{position:relative;padding-right:8%;padding-bottom:24px}.gallery-desktop{display:block;aspect-ratio:1280/790;border:1px solid var(--line);overflow:hidden}.gallery-phone{position:absolute;bottom:0;right:0;width:21%;aspect-ratio:390/780;border:6px solid #111d36;border-top-width:16px;border-radius:18px;background:#111d36;overflow:hidden;box-shadow:0 8px 22px #111d3625}.featured-work .gallery-screens img{width:100%;height:100%;object-fit:cover;object-position:top}.gallery-desktop:hover img{transform:scale(1.03)}
.sub-curtain{position:relative;height:220px;margin-top:60px;background:#111d36;color:#f0c987;--panels:4;--seal:50%;border-bottom:2px solid #0b1428}
.sub-curtain>i{position:absolute;inset:15% 0 0;background:repeating-linear-gradient(to right,transparent 0,transparent calc(100% / var(--panels) - 1px),#0b1428 calc(100% / var(--panels) - 1px),#0b1428 calc(100% / var(--panels)))}
.sub-curtain>b{position:absolute;left:var(--seal);top:50%;transform:translate(-50%,-50%);border:1px solid #f0c98780;border-radius:50%;height:64px;width:64px;display:grid;place-items:center;font:32px 'Cormorant Garamond',serif;font-weight:400}
.sub-hero{padding-top:48px}.sub-hero::before{display:none}.industry-index .industry-list a{border-color:var(--line)}.industry-index small,.industry-index a>span{color:#856027}
.static-framed>.sub-main>.inner{width:100%;max-width:900px;padding:48px 0 80px}.static-framed h1::before{display:none}.static-framed .brand-rail a,.static-framed .navigation-rail a{color:inherit}.static-framed .menu-panel{color:var(--paper)}
@media(min-width:1000px){.editorial-steps{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:20px}.editorial-steps li{display:block;position:relative;border-top:1px solid #9d793e;padding:20px 0}.editorial-steps li::before{content:'';position:absolute;width:7px;height:7px;background:#9d793e;border-radius:50%;top:-4px}.editorial-steps h3{font-size:20px}.editorial-steps p{font-size:16px;line-height:2}.editorial-steps li>span{display:block;margin-bottom:14px}}
@media(max-width:767px){.chapter{padding-top:50px;padding-bottom:50px}.three-promises{padding:12px 22px}.three-promises>div{display:block;padding:24px 0}.three-promises>div>span{max-width:none;text-align:center}.three-promises strong{font-size:76px;line-height:1.4}.three-promises .promise-jp{font-size:46px;line-height:1.8}.update-chapter{padding-left:20px;padding-right:20px}.sub-curtain{height:140px;margin-top:96px}.sub-curtain>b{width:48px;height:48px;font-size:26px}.sub-hero{padding:32px 0 40px}.gallery-phone{width:25%;border-width:3px;border-top-width:9px;border-radius:10px}.gallery-screens{padding-right:10%;padding-bottom:18px}.static-framed h1{font-size:28px}.static-framed>.sub-main>.inner{padding-top:32px}.price-chapter,.industry-chapter,.contact-chapter{padding-top:50px;padding-bottom:50px}}
/* Preserve every cell, add its column heading, and remove horizontal table scrolling. */
@media(max-width:600px){
.cmp-scroll{overflow:visible!important;border:0!important}
table,table.cmp{display:block!important;width:100%!important;min-width:0!important;max-width:100%!important;table-layout:auto!important}
table caption{display:block}table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}table tbody,table tfoot{display:block!important;width:100%}
table tr{display:block!important;width:100%;margin-bottom:20px;border:1px solid #111d3630}
table td,table th{display:block!important;box-sizing:border-box;width:100%!important;min-width:0!important;max-width:100%;white-space:normal!important;overflow-wrap:anywhere;text-align:left!important;padding:12px 14px!important;font-size:16px!important;border:0!important;border-bottom:1px solid #111d3618!important}
table td[data-label]:not([data-label=""])::before,table tbody th[data-label]:not([data-label=""])::before{content:attr(data-label) '：';display:block;font-weight:600;font-size:16px;margin-bottom:4px}
table tr>th:first-child,table tr>td:first-child{background:#f1ede4;color:#111d36}
}
@media(prefers-reduced-motion:reduce){.hero-copy,.hero-bottom{animation:none!important;opacity:1!important}.work-gallery{scroll-behavior:auto!important}}
html[data-light-motion=true] .hero-copy,html[data-light-motion=true] .hero-bottom{animation:none;opacity:1}
html[data-light-motion=true] .curtain-cloth{animation:none}

@media(prefers-reduced-motion:reduce){.gallery-controls button{scroll-behavior:auto}}

.out-of-view .cloth-width{animation-play-state:paused}html[data-light-motion=true] .cloth-width{animation:none}

.simple-motion .curtain-cloth,.simple-motion .cloth-width,.simple-motion .hero-copy,.simple-motion .hero-bottom{animation:none!important}
/* Keep fractional mobile panel edges opaque; animate only the bottom hem. */
.cloth-width{flex-basis:calc(25% + 1px);width:calc(25% + 1px);margin-left:-1px;animation:none;clip-path:none}
.cloth-width:first-child{margin-left:0}
.cloth-width::after{bottom:-1px;height:3px;background:#111d36;animation:hem-edge 7s ease-in-out infinite alternate}
@keyframes hem-edge{from{transform:translateY(0)}to{transform:translateY(2px)}}
.out-of-view .cloth-width::after{animation-play-state:paused}
html[data-light-motion=true] .cloth-width::after,.simple-motion .cloth-width::after{animation:none}

@media(prefers-reduced-motion:reduce){.reveal,.fade,.fade-up{opacity:1!important;transform:none!important;transition:none!important}}
/* Existing sample-specific rules came after their mobile rules. Keep their prose readable. */
@media(max-width:760px){.wrap.intro{grid-template-columns:1fr!important;gap:24px!important}.wrap.intro>div,.wrap.intro>p{min-width:0}}
