@font-face{font-family:Manrope;src:url('../fonts/manrope.woff2') format('woff2');font-weight:200 800;font-display:swap}@font-face{font-family:Noto;src:url('../fonts/noto.woff2') format('woff2');font-weight:400 700;font-display:swap}
:root{--paper:#edece6;--ink:#222420;--clay:#a44b32;--soft:#dedbd2;--muted:#5d5d55;--pad:clamp(22px,4.7vw,92px)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background:var(--paper);font-family:Manrope,Noto,sans-serif;font-size:18px;line-height:1.8}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}button,summary,a{-webkit-tap-highlight-color:transparent;touch-action:manipulation}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid var(--clay);outline-offset:6px}h1,h2,h3,p,figure{margin:0}h1,h2,h3{line-height:1.35;font-weight:600;letter-spacing:-.02em}p{overflow-wrap:anywhere}svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.sprite{position:absolute;width:0;height:0}.skip{position:fixed;top:-100px;left:20px;z-index:50;padding:14px 20px;background:#fff}.skip:focus{top:12px}header{position:sticky;top:0;z-index:30;height:90px;background:#fff;display:flex;align-items:center;justify-content:space-between;padding:16px var(--pad);border-bottom:1px solid #c6c5bb}.brand{display:flex;align-items:center;gap:14px;font-size:21px;line-height:1.2;font-weight:800;letter-spacing:-.035em}.brand img{object-fit:contain}.brand small{display:block;font-size:14px;font-weight:500;letter-spacing:.04em;margin-top:6px}header nav{display:flex;align-items:center;gap:32px;font-size:16px;font-weight:600}.business-nav{display:flex;align-items:center;gap:14px}.business-nav svg{width:20px}.hero{padding:24px var(--pad) 0;overflow:hidden}.hero-meta{font-size:14px;letter-spacing:.045em;display:flex;justify-content:space-between;gap:20px}.hero-grid{display:grid;grid-template-columns:48% 52%;min-height:680px;align-items:center;position:relative}.hero-copy{z-index:2;padding:45px 0 40px}h1{font-size:clamp(70px,7.6vw,148px);line-height:.96;font-weight:700;letter-spacing:-.055em;white-space:nowrap}.hero h2{font-size:clamp(34px,3.5vw,64px);margin-top:30px;line-height:1.4;letter-spacing:-.035em}.hero-copy>p{font-size:18px;line-height:1.8;margin-top:22px}.line-link{display:flex;align-items:center;justify-content:space-between;gap:35px;width:max-content;min-width:265px;border-bottom:1px solid;padding:15px 0;font-size:17px;font-weight:600;margin-top:26px}.line-link svg,.service-link svg,.final nav svg,.business-links svg{transition:transform .2s}.line-link:hover svg,.service-link:hover svg,.final nav a:hover svg,.business-links a:hover>svg{transform:translateX(4px)}.hero-visual{height:690px;position:relative;isolation:isolate;--material:1;--data:0}.hero-backword{position:absolute;top:39%;left:0;font-size:clamp(100px,16vw,290px);font-weight:700;color:#d0cec3;line-height:1;letter-spacing:-.07em;z-index:-1}.bird{position:absolute;width:103%;height:84%;object-fit:contain;left:0;top:7%;z-index:2;clip-path:inset(calc((1 - var(--material))*100%) 0 0 0);opacity:calc(1 - var(--data)*.78);transform:translateY(calc((1 - var(--material))*12px))}.hero-visual canvas{position:absolute;width:103%;height:84%;left:0;top:7%;z-index:3;pointer-events:none}.source-sheet{position:absolute;left:-1%;top:27%;width:34%;transform:rotate(-5deg) translateY(calc(var(--material)*35px));background:#faf9f4;padding:10px;z-index:1;box-shadow:0 16px 40px #28292320;opacity:calc(1 - var(--data));transition:opacity .35s}.source-sheet img{display:block;width:100%;height:auto}.source-sheet span{display:block;font-size:14px;margin-top:5px;letter-spacing:.04em}.hero-visual[data-mode=scan] .source-sheet{opacity:0}.hero-state{position:absolute;bottom:15px;left:8%;right:0;display:flex;flex-wrap:wrap;gap:6px 25px;font-size:14px;align-items:center}.hero-state>span{font-weight:600}.hero-state p{font-family:Noto;font-size:15px}.hero-rail{display:grid;grid-template-columns:1fr 1.25fr;gap:8%;align-items:center;border-top:1px solid #babbb0;padding:24px 0 30px}.hero-rail>p{font-size:17px}.hero-rail small{display:block;font-size:14px;color:var(--muted);margin-top:3px}.mode-controls{display:flex;gap:35px}.mode-controls button{background:none;border:0;border-top:2px solid transparent;padding:13px 0;flex:1;text-align:left;min-height:64px;font-size:16px;font-weight:500;transition:color .2s}.mode-controls button span{display:block;font-family:Manrope;font-size:14px;font-weight:600}.mode-controls button[aria-pressed=true]{border-color:var(--clay);color:var(--clay)}.visual-fallback{position:absolute;inset:40% 5% auto;font-size:30px;z-index:5}.hero-visual.asset-error .bird,.hero-visual.asset-error canvas,.hero-visual.asset-error .source-sheet{display:none}.no-js .mode-controls{display:none}.section{padding:100px var(--pad);scroll-margin-top:108px}.eyebrow{font-family:Manrope;font-size:14px;font-weight:600;letter-spacing:.055em}.section-head{display:grid;grid-template-columns:1.2fr 1fr;gap:8%;align-items:end;margin:30px 0 76px}.section h2{font-size:clamp(44px,5.8vw,110px);line-height:1.4}.section-head p{font-size:19px}.ways{background:#f9f8f3}.way{display:grid;grid-template-columns:1fr 1fr;min-height:610px;gap:8%;align-items:center;scroll-margin-top:110px;border-top:1px solid #babbaf;padding-top:55px}.way+.way{margin-top:90px}.way-label{font-size:15px;font-family:Manrope;letter-spacing:.04em;font-weight:600}.way h3{font-size:clamp(32px,3.15vw,58px);margin-top:27px;line-height:1.5}.way-copy>p{font-size:19px;margin-top:25px}.way .way-foot{font-size:15px;margin-top:34px;color:var(--muted)}.service-link{display:flex;align-items:center;justify-content:space-between;font-size:20px;font-weight:600;padding:22px 0 16px;border-bottom:1px solid;max-width:420px;margin-top:20px}.source-art{height:580px;position:relative;background:#e9e4da;--reveal:1;overflow:hidden}.source-preview{position:absolute;width:34%;height:auto;left:6%;top:18%;box-shadow:0 15px 30px #30322620;transform:translateY(calc((1 - var(--reveal))*20px)) rotate(-4deg);transition:transform .6s}.source-result{position:absolute;width:90%;height:87%;object-fit:contain;right:0;top:0;clip-path:inset(calc((1 - var(--reveal))*100%) 0 0 0);transition:clip-path 1.4s cubic-bezier(.2,.7,.2,1)}.source-art figcaption,.scan-art figcaption{display:flex;justify-content:space-between;align-items:center;position:absolute;bottom:0;left:0;right:0;padding:20px 26px;font-size:14px;font-weight:600;background:#f1ede4}.source-art:hover .source-preview{transform:translateY(-8px) rotate(-4deg)}.scan-art{height:610px;position:relative;background:#272b27;isolation:isolate;overflow:hidden;--scan:0}.scan-art img,.scan-art canvas{position:absolute;top:4%;left:12%;width:76%;height:85%;object-fit:contain}.scan-art img{opacity:calc(1 - var(--scan)*.8)}.scan-backword{position:absolute;top:30%;left:3%;font-size:clamp(90px,10vw,180px);color:#555e53;line-height:1;font-weight:700;letter-spacing:-.06em}.scan-art figcaption{background:#353c34;color:#efeee7}.scan-way .way-copy{order:2}.brand-story{background:#deddd5;overflow:hidden}.brand-story h2{margin-top:38px;max-width:1050px}.brand-story h2 em{color:var(--clay);font-style:normal}.brand-story-bottom{display:grid;grid-template-columns:1.4fr 1fr;gap:8%;align-items:end;margin-top:65px}.story-word{font-size:clamp(42px,5.3vw,100px);font-weight:700;line-height:1;letter-spacing:-.06em;transform:translateX(calc(var(--shift,0)*-25px))}.brand-story-bottom>p:last-child{font-size:18px}.business{background:#242723;color:#f3efe6}.business a:focus-visible,.business summary:focus-visible{outline-color:#d7977d}.business-grid{display:grid;grid-template-columns:1fr 1fr;gap:9%;align-items:center}.business h2{font-size:clamp(44px,4.8vw,86px);margin:30px 0}.business-grid>div>p:last-child{font-size:19px;color:#d2d1c5}.business figure img{width:100%;height:auto;aspect-ratio:1.5;object-fit:cover;display:block}.business figcaption{font-size:14px;margin-top:16px;color:#d2d1c5}.business-doors{border-top:1px solid #777a6e;margin-top:65px}.business-doors summary{list-style:none;display:flex;justify-content:space-between;align-items:center;padding:25px 0;font-size:19px;font-weight:600;cursor:pointer}.business-doors summary::-webkit-details-marker{display:none}.business-doors[open] summary svg{transform:rotate(180deg)}.business-links{display:grid;grid-template-columns:1fr 1fr;gap:8%;padding:0 0 20px}.business-links a{position:relative;padding:25px 45px 25px 0;border-top:1px solid #777a6e}.business-links a>span{font-size:14px;color:#d7977d;display:block}.business-links strong{font-family:Noto;font-size:28px;line-height:1.6;display:block;margin-top:10px;font-weight:500}.business-links a>svg{position:absolute;right:0;top:45%}.business-doors[open] .business-links{animation:doors .25s ease-out}@keyframes doors{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}.final{background:#ddd5c9}.final h2{margin:35px 0 60px;font-size:clamp(44px,6vw,110px)}.final nav{display:grid;grid-template-columns:1fr 1fr .8fr;gap:4%}.final nav a{display:flex;align-items:center;justify-content:space-between;gap:18px;font-size:24px;padding:28px 0;border-top:1px solid #8a897f;font-weight:600}footer{background:#fff;padding:48px var(--pad) 30px}.footer-head{display:flex;justify-content:space-between;align-items:center;gap:30px}.footer-head>a:last-child{font-size:15px}footer nav{display:flex;flex-wrap:wrap;gap:20px 35px;margin-top:40px;font-size:16px}.footer-bottom{border-top:1px solid #c6c5bb;margin-top:35px;padding-top:25px;display:flex;justify-content:space-between;gap:20px;font-size:14px}.footer-bottom a{display:flex;align-items:center;gap:15px}.footer-bottom svg{transform:rotate(-90deg)}
@media(max-width:1100px){header nav{gap:22px;font-size:15px}.brand{font-size:18px}.brand small{font-size:14px}.hero-grid{min-height:610px}.hero-visual{height:590px}.hero-copy{padding:30px 0}h1{font-size:7.5vw}.hero h2{font-size:38px}.hero-copy>p{font-size:17px}.hero-state p{font-size:14px}.source-sheet{width:38%;left:0}.way{gap:6%;min-height:500px}.source-art{height:480px}.scan-art{height:510px}.way h3{font-size:34px}.way-copy>p{font-size:18px}.business-links strong{font-size:24px}.final nav a{font-size:20px}.section{padding-top:80px;padding-bottom:80px}}
@media(max-width:767px){header{height:76px;padding:12px 20px}.brand{gap:9px;font-size:15px;white-space:nowrap}.brand img{width:25px;height:36px}.brand small{display:none}header nav>a:not(.business-nav){display:none}header nav{font-size:14px}.business-nav{gap:6px;min-height:44px}.business-nav svg{width:17px}.hero{padding-top:22px}.hero-meta{font-size:14px}.hero-meta>span:last-child{display:none}.hero-grid{display:block;min-height:0}.hero-copy{padding:32px 0 0}h1{font-size:clamp(48px,12.8vw,76px);letter-spacing:-.05em}.hero h2{font-size:34px;line-height:1.4;margin-top:24px}.hero h2 br{display:none}.hero-copy>p{font-size:16px;line-height:1.8;margin-top:18px}.line-link{font-size:16px;margin-top:16px;min-width:260px;padding:15px 0}.hero-visual{height:410px;margin-top:12px}.hero-backword{font-size:140px;top:42%;left:3%}.bird,.hero-visual canvas{height:85%;width:100%;top:3%;left:3%}.source-sheet{top:29%;left:0;width:32%;padding:6px}.source-sheet span{font-size:14px}.hero-state{bottom:0;left:0;right:0;display:block;font-size:14px}.hero-state p{margin-top:3px;font-size:14px}.hero-rail{grid-template-columns:1fr;gap:20px;padding:23px 0}.hero-rail>p{order:2;font-size:16px}.mode-controls{gap:22px}.mode-controls button{font-size:16px;padding-top:12px}.mode-controls button span{font-size:14px}.section{padding:60px 22px;scroll-margin-top:94px}.section h2{font-size:34px}.section-head{grid-template-columns:1fr;gap:24px;margin:26px 0 40px}.section-head p{font-size:17px}.way{grid-template-columns:1fr;padding-top:34px;gap:30px;min-height:0;scroll-margin-top:94px}.way+.way{margin-top:60px}.way h3{font-size:32px;margin-top:20px}.way-copy>p{font-size:17px;margin-top:20px}.way-copy>p br{display:none}.service-link{font-size:18px;margin-top:16px;padding:20px 0 16px;max-width:none}.way .way-foot{margin-top:20px;font-size:15px}.source-art{height:370px}.source-art figcaption,.scan-art figcaption{padding:17px 20px;font-size:14px}.scan-way .way-copy{order:0}.scan-art{order:1;height:420px}.scan-backword{font-size:100px;left:3%}.brand-story h2{margin-top:28px;font-size:40px}.brand-story-bottom{grid-template-columns:1fr;gap:30px;margin-top:45px}.story-word{font-size:44px}.brand-story-bottom>p:last-child{font-size:17px}.business-grid{grid-template-columns:1fr;gap:35px}.business h2{font-size:40px;margin:25px 0}.business-grid>div>p:last-child{font-size:17px}.business-doors{margin-top:35px}.business-doors summary{font-size:17px;min-height:64px}.business-links{grid-template-columns:1fr;gap:8px}.business-links a{padding:24px 35px 24px 0}.business-links strong{font-size:24px}.final h2{font-size:34px;margin:30px 0 40px}.final nav{grid-template-columns:1fr;gap:0}.final nav a{font-size:22px;padding:23px 0}footer{padding:35px 22px 25px}.footer-head{display:block}.footer-head>a:last-child{display:inline-block;margin-top:25px;padding:10px 0}.footer-head .brand{font-size:17px;white-space:normal}footer nav{display:grid;grid-template-columns:1fr;font-size:16px;gap:0;margin-top:22px}footer nav a{padding:10px 0;min-height:44px}.footer-bottom{display:block;margin-top:25px}.footer-bottom a{margin-top:15px;min-height:44px}.no-js .hero-rail>p{order:0}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important;transform:none!important}.bird,.source-result{clip-path:none}.bird,.scan-art img{opacity:1}}
html[data-reduced=true]{scroll-behavior:auto}html[data-reduced=true] *,html[data-reduced=true] *:before,html[data-reduced=true] *:after{animation:none!important;transition:none!important;transform:none!important}

/* Review 1: calmer type spacing and clearer illustration-to-object layering. */
h1{letter-spacing:-.035em}.hero h2{letter-spacing:-.015em}.source-sheet{width:30%;left:1%;z-index:4;transform:rotate(-4deg) translateY(calc(var(--material)*25px))}.source-sheet span{font-size:14px}.hero-backword{color:#d4d1c5}.source-art .source-preview{z-index:2}.source-art .source-result{z-index:1}.source-art figcaption{z-index:3}
@media(max-width:767px){h1{letter-spacing:-.035em}.source-sheet{width:30%;left:0}}

/* Review 2: mobile is an image-led composition with phrase-safe Japanese. */
.hero h2 span{display:inline-block;white-space:nowrap}.hero-brief{display:none}
@media(max-width:767px){.hero-grid{display:flex;flex-direction:column;align-items:stretch}.hero-copy{display:contents}.hero h1{order:1;margin-top:30px}.hero h2{order:2;margin-top:22px}.hero h2 br{display:block}.hero-copy>.hero-brief{display:block;order:3;font-size:16px;margin-top:16px}.hero-visual{order:4;height:350px;margin-top:5px}.hero-copy>p:not(.hero-brief){order:5;margin-top:25px}.hero-copy>.line-link{order:6;margin:15px 0 25px}.hero-state{bottom:0}.hero-backword{font-size:125px}.brand-story h2{font-size:38px}}
@media(max-width:350px){header{padding-left:16px;padding-right:16px}.brand{font-size:14px;gap:7px}header .business-nav{font-size:14px;gap:4px}header .business-nav svg{display:none}.hero-visual{height:330px}.hero-copy>.line-link{min-width:245px}}

/* Review 3: direct anchors, phrase boundaries and an uncramped mobile header. */
html{scroll-behavior:auto}.business-nav-mobile{display:none}.way h3 span,.final h2 span,.brand-story em{display:inline-block;white-space:nowrap}p{text-wrap:pretty}
@media(max-width:767px){.business-nav-desktop{display:none}.business-nav-mobile{display:inline}.brand-story h2{font-size:36px}.business-links strong{font-size:24px}}

/* Review 4: controls remain adjacent to the subject; bounded drawing work. */
@media(max-width:767px){.hero{display:flex;flex-direction:column;align-items:stretch}.hero-meta{order:0}.hero-grid{display:contents}.hero-rail{order:5;margin-top:24px}.hero-copy>p:not(.hero-brief){order:6;margin-top:0}.hero-copy>.line-link{order:7;margin:18px 0 28px}.hero-rail>p{font-size:15px}.hero-visual{margin-top:12px}}

/* Review 5: tablet type has its own composition rather than a reduced desktop. */
[hidden]{display:none!important}
@media(min-width:768px) and (max-width:900px){h1{font-size:72px;white-space:normal}.hero-copy{padding-top:25px}.hero-copy>p{font-size:18px}.hero-visual{height:630px}.hero h2{font-size:36px}.source-art{height:425px}.scan-art{height:470px}.way h3{font-size:32px}.hero-rail{gap:5%;grid-template-columns:.9fr 1.25fr}.mode-controls{gap:18px}.section-head p{font-size:18px}}

/* Review 6: every visible link has at least a 44px hit target. */
.brand{min-height:44px}header nav>a{min-height:44px;display:flex;align-items:center}.footer-head>a:last-child{min-height:44px;display:inline-flex;align-items:center}footer nav a{min-height:44px;display:flex;align-items:center}.footer-bottom a{min-height:44px}

/* Review 7: DOM and visual focus order agree in the mobile composition. */
@media(max-width:767px){.hero>.line-link{order:7;margin:18px 0 28px}}

/* Review 8: arrows communicate local movement versus the next service page. */
.line-link svg,.business-nav svg,.final nav a[href="#business"] svg{transform:rotate(90deg)}.line-link:hover svg,.business-nav:hover svg,.final nav a[href="#business"]:hover svg{transform:rotate(90deg) translateX(4px)}

/* Human IA correction: business branches belong to the business hub LP. */
.business-hub-link{display:flex;align-items:center;justify-content:space-between;gap:28px;border-top:1px solid #777a6e;border-bottom:1px solid #777a6e;margin-top:56px;padding:30px 0}
.business-hub-label{display:block;font-size:14px;color:#d7977d;letter-spacing:.055em}
.business-hub-link strong{display:block;font-size:clamp(26px,3vw,44px);line-height:1.5;font-weight:600;margin-top:8px}
.business-hub-link>svg{transition:transform .2s}
.business-hub-link:hover>svg{transform:translateX(4px)}
@media(max-width:767px){.business-hub-link{margin-top:35px;padding:24px 0;gap:20px}.business-hub-link strong{font-size:24px}}
@media(prefers-reduced-motion:reduce){.business-hub-link>svg{transition:none}}

/* Keep the PC artwork inside its own stage, above the readable caption row. */
.hero-scene{display:contents}
@media(min-width:768px){
  .hero-visual{display:flex;flex-direction:column}
  .hero-scene{display:block;position:relative;isolation:isolate;flex:1;min-height:0;overflow:hidden}
  .hero-scene .source-sheet{max-width:280px}
  .hero-state{position:static;flex-shrink:0;min-height:54px;margin-top:14px;padding-left:8%;align-content:start}
}
