/* Large atmospheric scenes; text and navigation stay still. */
.bg-scene{position:relative;isolation:isolate;overflow:hidden}
.bg-scene>.wrap,.bg-scene>.container,.bg-scene>.principal-layout{position:relative;z-index:1}
.background-stage{position:absolute;inset:0;z-index:0;pointer-events:none;overflow:hidden;opacity:0;transition:opacity 1.8s ease;contain:strict}
.background-stage.is-visible{opacity:1}
.background-stage canvas{display:block;width:100%;height:100%;max-width:none}
.case-detail .background-stage{height:850px;max-height:100%;mask-image:linear-gradient(#000 55%,transparent)}
.case-detail>.wrap{position:relative;z-index:1}
.interior .hero:after{display:none}
.interior .hero .hero-copy{max-width:760px}
.home-section.bg-scene>.container{z-index:1}
.invitation:before{opacity:.13}
.service-row{grid-template-columns:30px minmax(0,1fr) 18px;gap:20px}
.interior .service-card,.overview-card,.strength{padding-top:30px!important}
.overview-card>.service-no,.interior .service-card>.service-no,.strength>.round,.strength>.icon-circle{position:static;inset:auto}
.case-heading .case-chapter{padding-right:0}
.value-statement{padding-top:28px!important}
.work-principle{padding:82px 28px 32px}
.method-panel{min-height:300px}
.background-stage[data-kind=weave]{opacity:.72}
.background-stage[data-kind=weave].is-visible{opacity:1}
.principal-section .background-stage{opacity:.4}
.principal-section .background-stage.is-visible{opacity:.6}
.lit-panel{position:relative;isolation:isolate}
.lit-panel>.panel-light{position:absolute;inset:0;z-index:-1;pointer-events:none;border-radius:inherit;opacity:0;background:radial-gradient(ellipse 350px 250px at var(--light-x,65%) var(--light-y,40%),#f0d8a738 0%,#d8b87820 32%,transparent 76%);transition:opacity .9s ease}
.lit-panel.light-on>.panel-light{opacity:1}
.case-overview:nth-child(2)>.panel-light,.case-secondary .panel-light{background:radial-gradient(ellipse 370px 250px at var(--light-x,65%) var(--light-y,40%),#e2bd7a45 0%,#bd8c3e29 34%,transparent 76%)}
.decor-paused .panel-light,.decor-hidden .panel-light{opacity:0!important}
.service-row:hover,.case-overview:hover{transform:none}
.case-overview{transition:border-color .8s ease,box-shadow .8s ease}
.case-overview:hover{box-shadow:0 12px 36px #0002;border-color:#cbb58d90}
.chapter-symbol,.card-symbol,.section-symbol,.method-symbol,.case-symbol,.hero-symbol{display:none!important}
@media(max-width:680px){
 .service-row{grid-template-columns:26px minmax(0,1fr) 16px;gap:12px}
 .interior .service-card,.overview-card,.strength{padding-top:26px!important}
 .value-statement{padding-top:23px!important}
 .work-principle{padding:75px 23px 28px}
 .method-panel{min-height:350px}
 .case-detail .background-stage{height:900px}
 .background-stage{transition-duration:1.3s}
}
@media(prefers-reduced-motion:reduce){.background-stage{transition:none}.panel-light{display:none}.case-overview{transition:none}}
@media print{.background-stage,.panel-light{display:none}}

/* Each discipline's light travels around a stable purpose. */
.orbit-system .orbit-glow{animation:axis-orbit-flow 22s linear infinite;stroke-dasharray:105 895;stroke-dashoffset:0}
.orbit-system .orbit-glow.two{animation:axis-orbit-flow 29s linear infinite reverse;animation-delay:-9s;stroke-dasharray:72 928}
.orbit-system .orbit-glow.three{animation:axis-orbit-flow 34s linear infinite;animation-delay:-19s;stroke-dasharray:84 916;stroke-width:1.1;opacity:.8}
.decor-hidden .orbit-glow{animation-play-state:paused!important}
@keyframes axis-orbit-flow{to{stroke-dashoffset:-1000}}
@media(prefers-reduced-motion:reduce){.orbit-system .orbit-glow{animation:none!important}}

/* Line drawings enter as ink, then settle into a quiet living scene. */
.future-flower{min-height:420px;overflow:visible}
.future-flower>.background-stage{opacity:0;overflow:visible}
.future-flower>.background-stage.is-visible{opacity:1}
.future-flower .orbit-core{position:absolute;inset:auto 0 10%;z-index:1;background:radial-gradient(ellipse,#0a1b26df,transparent 70%)}
.future-flower .orbit-core strong{font-size:28px}
.future-flower .orbit-core small{font-size:14px}
.future-flower .orbit-label{top:auto;bottom:0;z-index:1;color:#c9bc9f}
.future-flower .orbit-label.strategy{left:8%;right:auto}
.future-flower .orbit-label.finance{left:auto;right:8%}
.future-flower .orbit-label.people{left:50%;transform:translateX(-50%)}
.principal-section .background-stage[data-motif=dolphin].is-visible{opacity:1}
.background-stage[data-motif=visit]{height:650px;max-height:100%;mask-image:linear-gradient(#000 70%,transparent)}
.case-art .ink-stroke{stroke-dasharray:1000;stroke-dashoffset:1000;animation:case-ink-write 3.2s cubic-bezier(.3,.15,.2,1) both paused;animation-delay:var(--ink-delay,0s)}
.case-art.ink-started .ink-stroke{animation-play-state:running}
.case-art text{opacity:0;animation:case-ink-label 1.4s ease 1.2s both paused}
.case-art.ink-started text{animation-play-state:running}
.case-art .diagram-travel{fill:none;stroke:#f1d9a5;stroke-width:1.8;stroke-linecap:round;stroke-dasharray:75 925;filter:drop-shadow(0 0 5px #e6c58b);opacity:0;animation:case-light-current 13s linear infinite paused;animation-delay:5.4s}
.case-art.ink-started .diagram-travel{animation-play-state:running}
.case-art:not(.motion-visible) *,.decor-paused .case-art *,.decor-hidden .case-art *{animation-play-state:paused!important}
@keyframes case-ink-write{to{stroke-dashoffset:0}}
@keyframes case-ink-label{to{opacity:1}}
@keyframes case-light-current{0%{stroke-dashoffset:0;opacity:.2}12%,88%{opacity:.95}100%{stroke-dashoffset:-1000;opacity:.2}}
/* Keep the real portrait intact; dissolve its photographic edges into the page. */
.interior .about-hero .wrap{grid-template-columns:minmax(0,1fr) 280px;gap:35px 55px}
.interior .about-hero-photo{width:280px;max-width:none;margin:0;align-self:center}
.about-hero-photo img{display:block;width:240px;height:340px;margin:auto;object-fit:cover;object-position:50% 8%;border:0;border-radius:0;box-shadow:none;mask-image:linear-gradient(to right,transparent,#000 12%,#000 87%,transparent),linear-gradient(to bottom,transparent,#000 7%,#000 78%,transparent);mask-composite:intersect}
.about-hero-photo figcaption{text-align:center;padding-top:8px}
.about-hero-photo figcaption span{display:block}
.timeline-item .dot{display:grid;place-items:center;width:28px;height:28px;left:-49px;line-height:1;padding:0;font-size:14px}
@media(max-width:1000px){.interior .about-hero .wrap{grid-template-columns:minmax(0,1fr) 250px;gap:30px}.interior .about-hero-photo{width:250px}}
@media(max-width:680px){
 .future-flower{min-height:365px;width:100%;max-width:420px}
 .future-flower .orbit-core{bottom:11%}.future-flower .orbit-core strong{font-size:26px}
 .interior .about-hero .wrap{display:flex;gap:0}
 .interior .about-hero-photo{display:flex;flex-direction:column;align-items:center;gap:0;width:100%;margin-top:30px}
 .about-hero-photo img{width:200px;height:280px;flex:auto;margin:0}
 .about-hero-photo figcaption{text-align:center;padding:8px 0 0;min-width:0;width:100%;font-size:14px}
 .about-hero-photo figcaption strong{font-size:22px;line-height:1.7;white-space:nowrap}
 .timeline-item .dot{left:-36px}
 .background-stage[data-motif=visit]{height:640px}
}
@media(prefers-reduced-motion:reduce){.case-art .ink-stroke,.case-art text,.case-art .diagram-travel{animation:none!important;stroke-dashoffset:0;opacity:1}.case-art .diagram-travel{display:none}}

/* Stronger reading text; retain the established large serif headlines. */
:root{--sans:Meiryo,"Hiragino Kaku Gothic ProN","BIZ UDGothic","Yu Gothic",sans-serif;--muted:#c0ccd2}
body{font-family:var(--sans);font-size:17px;font-weight:400;line-height:2;letter-spacing:.03em;-webkit-font-smoothing:auto}
.home-section p,.principal-copy p,.case-text p,.case-secondary p,.invitation>div>p{font-size:17px!important;line-height:2.05;letter-spacing:.025em}
body.interior .hero p,body.interior .section p,body.interior article p,body.interior .service-card ul,.case-list{font-size:17px!important;line-height:2.05;letter-spacing:.025em}
.hero-copy-main .hero-description{font-size:17px!important;line-height:2.05}
.desktop-nav,.desktop-nav a{font-size:15px;font-weight:600;letter-spacing:.02em}
.desktop-nav{gap:20px}
.wordmark small{font-size:15px;font-weight:600;letter-spacing:.09em}
.section-label,.kicker,.eyebrow,.label{font-family:var(--sans);font-size:15px;font-weight:600;line-height:1.85;letter-spacing:.12em;color:#dfc699}
.section-label>span:first-child{font-size:15px;opacity:.9}
.header-contact,.pill-link,.arrow-link,.text-link,.method-tabs button,.method-steps,.footer-links,.case-jump a{font-family:var(--sans);font-size:15px;font-weight:600}
.fine,.method-note,.footer-brand p,.footer-bottom,.invitation .consult-note,.hero-cta small,.hero-bottom .location,.hero-bottom .scroll-cue,.principal-name small,.credentials span,.breadcrumb,.provider-badge,.provider,.case-theme,.concept,.case-kicker,.case-number,.case-value-label,.case-company,.story-stage,.case-status,.document-chips span,.case-overview>span,.read-more{font-family:var(--sans);font-size:15px!important;font-weight:500;line-height:1.95;letter-spacing:.035em}
.fine,.method-note,.footer-brand p,.footer-bottom,.invitation .consult-note,.provider-badge,.provider{color:#c0cdd4}
body.interior .note,body.interior .awac-note,body.interior .price-note,body.interior .visit-note,body.interior .awac-contract-note{font-size:15px!important;font-weight:500;line-height:1.95;color:#c2cfd6!important}
.price-table .desc{font-size:17px;line-height:2.05}
.price-table small,.labor-includes-note,.awac-link,.card-link{font-size:15px!important;font-weight:500}
.price-table th{font-size:18px}.price-table .price{font-weight:500}
.case-art text,.case-art .diagram-caption,.orbit-core small,.orbit-label{font-family:var(--sans);font-size:15px;font-weight:500;letter-spacing:.08em}
.case-section .fine{font-size:15px!important;color:#40545d}
.case-section .case-text p,.case-secondary p,.principal-copy p{color:#354c57}
.case-section .section-label,.case-section .case-kicker,.case-section .read-more,.principal-section .section-label{color:#72512a}
.principal-name small,.credentials span{color:#364d58}
.case-detail .case-list,.case-detail .case-story-grid p{font-size:17px!important}
.interior .pain span{font-size:16px;color:#c1cdd3}
.about-hero-photo figcaption{font-family:var(--sans);font-size:15px;font-weight:500;color:#d1d9dc}
/* The portrait now supplies its own clean alpha silhouette. */
.about-hero-photo img{mask-image:linear-gradient(#000 84%,transparent 100%);mask-composite:add}
.style-growth{grid-column:2/-1;min-height:310px;position:relative;margin:0;border-top:1px solid var(--line);background:radial-gradient(ellipse at 50% 80%,#c8ac780a,transparent 62%)}
.style-growth>.background-stage.is-visible{opacity:1}
@media(max-width:1000px){.awac-about-style{grid-template-columns:repeat(2,minmax(0,1fr))}.style-growth{grid-column:1/-1;min-height:320px}}
@media(max-width:680px){
 body{font-size:17px}
 .home-section p,.principal-copy p{font-size:17px!important}
 .section-label,.eyebrow,.kicker,.label,.section-label>span:first-child{font-size:15px;letter-spacing:.08em}
 .hero-copy-main .hero-description{font-size:17px!important}
 .method-tabs button{font-size:15px}
 .footer-brand .wordmark small,.footer-bottom,.credentials span,.principal-name small{font-size:15px!important}
 .case-jump a{font-size:15px}
 .awac-about-style{grid-template-columns:1fr}
 .style-growth{grid-column:1;min-height:285px}
 .about-hero-photo figcaption{font-size:15px}
}
/* Retain the approved photo's RGB; use generated alpha only for the silhouette. */
.principal-image img{mask-image:url("sasakura-portrait-alpha-v4.png");mask-mode:alpha;mask-size:cover;mask-position:50% 8%;mask-repeat:no-repeat}
.about-hero-photo img{mask-image:url("sasakura-portrait-alpha-v4.png"),linear-gradient(#000 84%,transparent 100%);mask-mode:alpha,alpha;mask-size:cover,100% 100%;mask-position:50% 8%,0 0;mask-repeat:no-repeat;mask-composite:intersect}
/* Functional labels and small annotations keep a readable minimum. */
small{font-size:15px;font-weight:500}
body :is(.en,.row-no,.plan-note,.service-tags,.back-top,.disciplines,.new-label,.amount small,.method-tabs button span,.menu-dialog p,.support-style-visual figcaption,.step .num,.timeline-item .dot){font-family:var(--sans);font-size:15px!important;font-weight:500;letter-spacing:.035em}
.cta-actions a,.contact-option>a:not(.card-link){font-family:var(--sans);font-size:15px;font-weight:600}
