/* Shared navigation and concise home page; existing Shiroji colors and type. */
[hidden]{display:none!important}
button{font:inherit}
:focus-visible{outline:2px solid var(--accent);outline-offset:4px}
[id]{scroll-margin-top:84px}
.site-header .wrap{position:relative;flex-wrap:wrap;height:auto;min-height:60px}
.site-nav{display:flex;gap:28px;align-items:center}
.site-nav a{font-size:13px;text-decoration:none;min-height:44px;display:flex;align-items:center}
.site-nav a[aria-current="page"]{text-decoration:underline;text-underline-offset:7px}
.site-nav a:last-child{color:var(--accent);font-weight:700}
.menu-toggle{border:1px solid var(--hair);background:transparent;color:var(--ink);padding:8px 12px;min-height:44px;cursor:pointer;font-size:13px}
.menu-toggle span{margin-left:12px}
.footer-nav{display:flex;gap:12px 24px;flex-wrap:wrap;font-size:13px}
.site-footer small{font-size:12px;color:var(--muted)}
.site-footer .wrap{max-width:1120px;gap:20px 32px}
.footer-nav{flex-basis:100%}
.mobile-consult{display:none}
.page-intro{padding:64px 0 48px}
.page-intro>.wrap,.case-section>.wrap,#other-work>.wrap{max-width:1120px;padding-left:32px;padding-right:32px}
.back-home{display:inline-block;font-size:13px;color:var(--muted);margin-bottom:22px;text-underline-offset:4px}
.page-intro h1{font-size:clamp(32px,5vw,56px);font-weight:500;margin-bottom:22px}
.page-intro .lead{max-width:42em}
/* Scope the page contents menu away from body.page-index on the home page. */
nav.page-index{display:flex;flex-wrap:wrap;gap:8px 24px;margin-top:24px}
nav.page-index a{font-size:14px;min-height:44px;display:flex;align-items:center;text-underline-offset:5px}
.case-section h2{margin-bottom:28px}
.case-detail{max-width:820px;margin:0 auto}
.case-detail .case{padding-top:24px}
.code-link{padding-top:24px;padding-bottom:48px}
#contact{background:#eff4f5}
/* Home summaries: lists and a comparison precede the single card collection. */
.home-concerns{background:#f1f3f0}
.home-concerns,.home-comparison{padding:40px 0}
.home-concerns h2,.home-comparison h2{font-size:26px;font-weight:500}
.concern-list{list-style:none;margin-top:16px}
.concern-list li{position:relative;padding:8px 0 8px 24px;font-size:15px;line-height:1.7}
.concern-list li::before{content:'';position:absolute;left:0;top:14px;width:11px;height:11px;border:1px solid var(--accent)}
.comparison{width:100%;border-collapse:collapse;table-layout:fixed;margin-top:18px;text-align:left;font-size:14px;line-height:1.65}
.comparison th{font-weight:500;color:var(--ink-soft);padding:10px 14px;border-bottom:1px solid var(--hair)}
.comparison td{padding:12px 14px;border-bottom:1px solid var(--hair);vertical-align:top}
.comparison th:last-child,.comparison td:last-child{background:#eff4f5}
.comparison th:last-child{color:var(--accent);font-weight:700}
.home-cases,.home-price,.home-flow,.home-about{padding:64px 0}
.home-cases{min-width:0}
.home-cases>.wrap{width:100%;min-width:0;max-width:1120px;padding-left:32px;padding-right:32px}
.home-cases h2,.home-price h2,.home-flow h2,.home-about h2{font-size:clamp(25px,3vw,34px);font-weight:500}
.section-heading{margin-bottom:24px}
.swipe-hint{display:none}
.case-cards{min-width:0;max-width:100%;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.case-card{min-width:0;padding:24px;background:#fff;border:1px solid var(--hair);display:flex;flex-direction:column}
.case-card h3{font-size:20px;font-weight:500;margin-bottom:20px;line-height:1.6}
.case-card .case-label{letter-spacing:.04em;font-size:12px}
.case-card dl>div+div{margin-top:16px}
.case-card dt{font-size:12px;color:var(--muted);margin-bottom:3px}
.case-card dd{font-size:14px;line-height:1.8}
.card-result{border-top:1px solid var(--hair);margin-top:24px;padding-top:18px}
.card-result p{font-size:18px;line-height:1.65;font-weight:500}
.card-result small{display:block;font-size:12px;line-height:1.8;color:var(--muted);margin-top:8px}
.case-card>a{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:44px;margin-top:auto;padding-top:18px;font-size:14px;text-underline-offset:4px}
.section-link{display:inline-flex;align-items:center;min-height:44px;margin-top:24px}
.home-price{background:#f3f3ef}
.mini-price{margin:28px 0 24px}
.mini-price h3{font-weight:500;margin-bottom:8px}
.mini-price .price{font-size:46px;line-height:1.5}
.mini-price .note{margin-top:6px}
.price-lines{border-top:1px solid var(--hair)}
.price-lines>div{display:flex;flex-wrap:wrap;justify-content:space-between;gap:4px 16px;padding:14px 0;border-bottom:1px solid var(--hair);font-size:14px}
.price-lines dd{white-space:nowrap}
.flow-short{list-style:none;counter-reset:flow;margin-top:24px}
.flow-short li{counter-increment:flow;padding:15px 0;border-top:1px solid var(--hair);font-size:15px}
.flow-short li::before{content:counter(flow,decimal-leading-zero);color:var(--accent);display:inline-block;width:36px;font-size:13px}
.flow-short li:last-child{border-bottom:1px solid var(--hair)}
.profile-short{display:flex;gap:22px;align-items:center;margin:26px 0}
.profile-short img{width:96px;height:112px;object-fit:cover;object-position:50% 40%;filter:saturate(.72)}
.profile-short h3{font-size:19px;font-weight:500}
.profile-short .name-reading{display:block;margin:4px 0}
.profile-short .note{font-size:12px;letter-spacing:0}
.home-about .lead{font-size:15px;line-height:2}
/* Home paper artwork has no brand-story classes or JavaScript dependency. */
.hero-layout{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:32px;align-items:center}
.hero-copy,.hero-art{min-width:0}
.hero-art{pointer-events:none}
.page-index .hero h1{font-size:clamp(32px,4vw,52px)}
.page-index .hero .cta-row{margin-top:24px}
.hero-color-paper-blue{animation:hero-paper-blue-in .9s ease-out}
.hero-color-paper-peach{animation:hero-paper-peach-in 1s ease-out}
.hero-color-paper-lilac{animation:hero-paper-lilac-in 1.1s ease-out}
/* Only the starting transforms differ; the shared paper CSS is the final state. */
@keyframes hero-paper-blue-in{from{transform:translate(-36%,-33%) rotate(-8deg)}}
@keyframes hero-paper-peach-in{from{transform:translate(43%,-16%) rotate(10deg)}}
@keyframes hero-paper-lilac-in{from{transform:translate(0%,54%) rotate(-6deg)}}
@media(min-width:701px){
 /* One outer reading edge (112px at 1280px); constrain text inside it. */
 main .wrap{max-width:var(--wide);padding-left:32px;padding-right:32px}
 .home-concerns .concern-list,.home-comparison .comparison,.home-price .price-lines,
 .home-flow .flow-short,#flow .process-story,#flow .pledge,#faq .faq-disclosures{max-width:45rem}
 .home-about .lead,.case-detail .lead,.shift-feedback p,#about .lead{max-width:45em}
 .case-detail{max-width:45rem;margin-left:0;margin-right:0}
 .shift-feedback,#teaching .voice{margin-left:0;margin-right:0}
 .brand-story-layout{max-width:var(--wide);padding-left:32px;padding-right:32px}
 #about>.wrap{grid-template-columns:minmax(0,1fr) clamp(220px,25vw,320px);column-gap:36px}
 #about .about-heading,#about .about-label,#about .about-story,#about .facts{grid-column:1}
 #about .profile{grid-column:2}
}
@media(max-width:700px){
 .page-index .hero{padding-top:16px}
 .hero-layout{grid-template-columns:minmax(0,1fr);gap:0}
 .hero-art{grid-row:1;width:min(100%,240px);height:240px;justify-self:center;display:grid;align-items:center}
 .hero-paper-sign{font-size:26px}
 .page-index .hero h1{font-size:clamp(36px,8.8vw,59px)}
 body{padding-bottom:calc(64px + env(safe-area-inset-bottom,0px))}
 .site-header .wrap{padding:8px 20px;min-height:60px;gap:8px 16px}
 .site-nav{width:100%;flex-wrap:wrap;gap:0 20px;padding:8px 0}
 .menu-ready .site-nav{position:absolute;top:100%;left:0;right:0;width:auto;display:flex;flex-direction:column;align-items:stretch;gap:0;background:var(--paper);border-bottom:1px solid var(--hair);padding:12px 20px 20px;box-shadow:0 12px 18px #1b1d1f0a}
 .menu-ready .site-nav a{min-height:48px;font-size:15px}
 .menu-ready .menu-toggle{display:block}
 .mobile-consult{position:fixed;bottom:0;left:0;right:0;z-index:9;display:block;background:var(--ink);padding-bottom:env(safe-area-inset-bottom,0px)}
 .mobile-consult a{height:60px;display:flex;align-items:center;justify-content:center;gap:26px;color:var(--paper);text-decoration:none;font-size:15px;font-weight:700}
 .mobile-consult a:focus-visible{outline-color:var(--paper);outline-offset:-5px}
 .page-intro{padding:36px 0 30px}
 .page-intro>.wrap,.case-section>.wrap,#other-work>.wrap,.home-cases>.wrap{padding-left:20px;padding-right:20px}
 .page-intro h1{font-size:32px}
 .page-intro .lead{font-size:15px}
 nav.page-index{gap:0 18px;margin-top:18px}
 nav.page-index a{font-size:13px}
 .home-concerns,.home-comparison{padding:26px 0}
 .home-concerns h2,.home-comparison h2{font-size:21px;letter-spacing:-.04em}
 .concern-list{margin-top:12px}
 .concern-list li{font-size:14px;letter-spacing:0;padding:6px 0 6px 22px;line-height:1.7}
 .concern-list li::before{top:12px}
 .comparison{font-size:13px;letter-spacing:0;line-height:1.6;margin-top:14px}
 .comparison th{padding:8px 9px;font-size:12px}
 .comparison td{padding:10px 9px}
 .home-cases{padding:28px 0 40px}
 .home-price,.home-flow,.home-about{padding:44px 0}
 .section-heading{margin-bottom:16px}
 .swipe-hint{display:block;font-size:12px;letter-spacing:.02em;color:var(--muted);margin-top:8px}
 .case-cards{display:flex;gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding:0;overscroll-behavior-x:contain;padding:5px 5px 14px;margin:0}
 .case-card{flex:0 0 88%;scroll-snap-align:start;padding:22px;scroll-margin:8px}
 .case-card h3{font-size:19px;margin-bottom:16px}
 .card-result{margin-top:20px;padding-top:16px}
 .section-link{margin-top:16px;font-size:14px}
 .mini-price .price{font-size:40px}
 .price-lines>div{font-size:12px;letter-spacing:0;gap:4px 8px}
 .profile-short{gap:18px}
 .site-footer{padding:28px 0}
}
@media(prefers-reduced-motion:reduce){
 *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
 .case-cards{scroll-snap-type:none}
}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
