:root{--ink:#202020;--paper:#fff;--soft:#f5f3f0;--red:#a84935;--line:#d8d3cc;--max:1240px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background:var(--paper);font-family:"Noto Sans JP",sans-serif;line-height:1.8}img{display:block;width:100%;height:100%;object-fit:cover}a{color:inherit;text-decoration:none}button{font:inherit}.skip{position:fixed;z-index:999;top:8px;left:8px;padding:10px 16px;background:#fff;transform:translateY(-150%)}.skip:focus{transform:none}.wrap{width:min(calc(100% - 48px),var(--max));margin-inline:auto}.site-header{height:82px;padding:0 28px;display:flex;align-items:center;gap:38px;position:fixed;inset:0 0 auto;background:rgba(255,255,255,.96);z-index:100;border-bottom:1px solid #eee}.brand{display:flex;align-items:center;gap:12px;line-height:1.1;white-space:nowrap}.brand-mark{display:grid;place-items:center;width:42px;height:42px;border:1px solid var(--ink);font-size:18px}.brand b{display:block;letter-spacing:.08em}.brand small{display:block;font:500 9px/1.4 "IBM Plex Sans";letter-spacing:.15em;margin-top:5px}.site-header nav{display:flex;gap:24px;margin-left:auto;font-size:13px}.site-header nav a,.text-link,.arrow-link,.work-card>a{position:relative}.site-header nav a:after,.text-link:after,.arrow-link:after,.work-card>a:after{content:"";position:absolute;left:0;bottom:-5px;width:100%;height:1px;background:var(--red);transform:scaleX(0);transform-origin:right;transition:.25s}.site-header nav a:hover:after,.text-link:hover:after,.arrow-link:hover:after,.work-card>a:hover:after{transform:scaleX(1);transform-origin:left}.header-actions{display:flex;align-items:center;gap:12px;font-size:12px}.btn{display:inline-flex;justify-content:center;align-items:center;gap:25px;background:var(--red);color:#fff;padding:13px 20px;border:1px solid var(--red);font-weight:600;transition:.25s}.btn:hover{background:#843625}.btn-line{background:#3c7656;border-color:#3c7656}.menu{display:none}.hero{min-height:760px;height:100svh;position:relative;color:#fff;display:flex;align-items:center;padding-top:82px}.hero-media,.hero-shade{position:absolute;inset:82px 0 0}.hero-shade{background:linear-gradient(90deg,rgba(14,16,16,.78) 0%,rgba(14,16,16,.48) 48%,rgba(14,16,16,.08) 78%)}.hero-content{position:relative;z-index:2;padding-top:30px}.eyebrow{font:600 11px/1.2 "IBM Plex Sans";letter-spacing:.2em;color:var(--red);margin:0 0 20px}.eyebrow.light{color:#e6c1b7}.hero h1{font-size:clamp(42px,5vw,74px);line-height:1.28;letter-spacing:.06em;margin:0;font-weight:500}.hero h1 em{font-style:normal;border-bottom:2px solid var(--red)}.hero-lead{font-size:16px;margin:28px 0}.hero-actions{display:flex;gap:10px}.btn-large{padding:18px 28px}.btn-ghost{background:transparent;border-color:rgba(255,255,255,.6)}.btn-ghost:hover{background:#fff;color:#202020}.assurances{display:flex;gap:0;padding:0;margin:20px 0;list-style:none;font-size:12px}.assurances li+li{border-left:1px solid #aaa;margin-left:14px;padding-left:14px}.image-note{position:absolute;right:18px;bottom:10px;z-index:3;font-size:10px;opacity:.7}.review-strip{min-height:138px;display:grid;grid-template-columns:1fr 1fr;align-items:center;padding:25px max(24px,calc((100% - var(--max))/2));border-bottom:1px solid var(--line)}.review-strip>div{display:flex;align-items:baseline;gap:15px}.review-strip .eyebrow{margin:0}.review-strip strong{font:600 42px "IBM Plex Sans"}.stars{letter-spacing:.12em;color:var(--red)}blockquote{margin:0}.review-strip blockquote{border-left:1px solid var(--line);padding-left:50px;font-size:15px}.review-strip blockquote small{display:block;color:#777;margin-top:5px}.section{padding:120px 0}.section-head{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:60px}.section-head h2,.people h2,.contact h2{font-size:clamp(34px,4vw,58px);line-height:1.35;letter-spacing:.03em;margin:0;font-weight:500}.section-head>p{font-size:14px;color:#595959}.problems{background:var(--soft)}.problem-grid{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line);border-right:0}.problem-grid article{min-height:260px;padding:25px;border-right:1px solid var(--line);background:rgba(255,255,255,.25)}.problem-grid span,.reason-no{font:500 12px "IBM Plex Sans";color:var(--red)}.problem-grid i{display:block;font-style:normal;font-size:55px;font-weight:300;margin:18px 0}.problem-grid h3{font-size:18px;margin:0 0 8px}.problem-grid p{font-size:13px;color:#666}.micro-copy{text-align:center;margin:32px 0 0;font-size:14px}.reasons{padding-bottom:60px}.reason-list{border-top:1px solid var(--ink)}.reason-list article{display:grid;grid-template-columns:90px 1fr 43%;gap:40px;align-items:center;padding:54px 0;border-bottom:1px solid var(--line)}.reason-list h3{font-size:30px;margin:0 0 18px;font-weight:500}.reason-list p:not(.eyebrow){max-width:560px;color:#555}.reason-list figure{height:300px;margin:0;position:relative;overflow:hidden}.reason-list figure img,.work-card figure img{transition:transform .5s}.reason-list figure:hover img,.work-card figure:hover img{transform:scale(1.02)}figcaption{position:absolute;right:10px;bottom:7px;color:white;font-size:10px}.photo-sequence{height:230px;display:grid;grid-template-columns:repeat(3,1fr);gap:4px}.photo-sequence span{display:grid;place-items:end start;padding:12px;color:#fff;font:600 10px "IBM Plex Sans";background:linear-gradient(145deg,#4d4c49,#b2aca5)}.photo-sequence span:nth-child(2){background:linear-gradient(145deg,#76736e,#282828)}.photo-sequence span:nth-child(3){background:linear-gradient(145deg,#7d695d,#c2b4a8)}.line-art{font-size:100px;text-align:center;color:#b8aea6;letter-spacing:-.25em}.works{background:#232323;color:#fff}.works .eyebrow{color:#d88c78}.works-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}.work-card figure{height:330px;margin:0 0 25px;position:relative;overflow:hidden}.work-card figure span{position:absolute;left:12px;bottom:10px;font:600 10px "IBM Plex Sans";letter-spacing:.1em}.location{color:#c5c5c5;font-size:12px}.work-card h3{font-size:22px;font-weight:500}.work-card dl{border-top:1px solid #555;margin:20px 0}.work-card dl div{display:flex;justify-content:space-between;padding:7px 0;border-bottom:1px solid #444;font-size:12px}.work-card dt{color:#aaa}.work-card a{font-size:13px}.data-note{font-size:11px;color:#999;margin-top:28px}.reviews{background:var(--soft)}.review-layout{display:grid;grid-template-columns:1fr 1.3fr;gap:80px}.review-layout h2{font-size:45px;font-weight:500;line-height:1.5}.score{margin-top:45px;display:grid;grid-template-columns:auto 1fr;align-items:center;gap:0 18px}.score strong{font:600 70px "IBM Plex Sans"}.score small{grid-column:2}.quotes{border-top:1px solid var(--line)}.quotes blockquote{padding:30px 10px;border-bottom:1px solid var(--line);display:grid;grid-template-columns:50px 1fr}.quotes blockquote>span{font:60px Georgia;color:var(--red)}.quotes p{font-size:15px}.quotes footer{grid-column:2;font-size:11px;color:#888}.steps{list-style:none;padding:0;display:grid;grid-template-columns:repeat(5,1fr);border-top:1px solid var(--ink);border-bottom:1px solid var(--ink)}.steps li{padding:30px 24px;min-height:180px;position:relative}.steps li+li{border-left:1px solid var(--line)}.steps li:not(:last-child):after{content:"→";position:absolute;right:-9px;top:50%;background:#fff;z-index:2}.steps b{color:var(--red);font:600 12px "IBM Plex Sans"}.steps h3{font-size:17px;margin:30px 0 5px}.steps p{font-size:12px;color:#777}.people{display:grid;grid-template-columns:1.2fr 1fr;background:#272727;color:#fff}.people-image{min-height:650px}.people-copy{padding:100px max(45px,calc((100vw - var(--max))/2));padding-left:70px}.people-copy>p{max-width:480px;color:#d2d2d2}.profile{border-top:1px solid #666;margin-top:50px;padding-top:25px;display:grid;gap:8px}.profile span{font-size:12px;color:#bbb}.data-note.light{color:#aaa}.service-cols{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--ink);border-bottom:1px solid var(--ink)}.service-cols article{padding:35px}.service-cols article+article{border-left:1px solid var(--line)}.service-cols b{font:600 12px "IBM Plex Sans";color:var(--red)}.service-cols h3{font-size:25px;margin:20px 0}.service-cols ul{list-style:none;padding:0}.service-cols li{padding:10px 0;border-bottom:1px solid var(--line);font-size:14px}.area{background:var(--soft)}.area-grid{display:grid;grid-template-columns:1fr 1fr;gap:100px;align-items:center}.area h2{font-size:45px;font-weight:500;line-height:1.5}.area-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:30px}.area-tags span{border:1px solid var(--line);background:#fff;padding:7px 14px;font-size:12px}.map{height:430px;position:relative;display:grid;place-items:center;background:linear-gradient(135deg,#ebe6df,#d9d4cd);clip-path:polygon(10% 0,85% 6%,100% 35%,90% 94%,47% 100%,0 70%)}.map span{font:600 12px "IBM Plex Sans";letter-spacing:.25em;z-index:2}.map i{position:absolute;width:110px;height:110px;border:1px solid var(--red);border-radius:50%;box-shadow:0 0 0 25px rgba(168,73,53,.08),0 0 0 50px rgba(168,73,53,.05)}.company-table{border-top:1px solid var(--ink)}.company-table div{display:grid;grid-template-columns:220px 1fr;padding:18px;border-bottom:1px solid var(--line);font-size:14px}.company-table dt{color:#777}.map-placeholder{height:260px;margin-top:40px;background:var(--soft);display:grid;place-items:center;color:#888;font:600 12px "IBM Plex Sans";letter-spacing:.12em}.contact{background:var(--red);color:#fff;padding:110px 0}.contact-grid{display:grid;grid-template-columns:1.25fr 1fr;gap:80px;align-items:center}.contact h2{font-size:43px}.contact-actions{display:grid;border-top:1px solid rgba(255,255,255,.5)}.contact-actions a{padding:22px;border-bottom:1px solid rgba(255,255,255,.5);display:grid;transition:.2s}.contact-actions a:hover{background:rgba(255,255,255,.1)}.contact-actions small{font-size:11px}.contact-actions strong{font-size:24px}.contact-actions span{font-size:10px}.footer{background:#1f1f1f;color:#eee;padding:70px 0 20px}.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:70px}.brand-light .brand-mark{border-color:#fff}.footer p,.footer a{font-size:12px;color:#bbb}.footer h3{font:600 11px "IBM Plex Sans";letter-spacing:.18em}.footer-grid>div{display:flex;flex-direction:column;gap:10px;align-items:flex-start}.copyright{margin-top:50px;padding-top:18px;border-top:1px solid #444;font:500 10px "IBM Plex Sans";display:flex;justify-content:space-between;color:#888}.mobile-cta{display:none}.reveal{opacity:0;transform:translateY(24px);transition:opacity .7s,transform .7s}.reveal.is-visible{opacity:1;transform:none}:focus-visible{outline:3px solid #e4a99a;outline-offset:3px}
@media(max-width:1050px){.site-header nav,.header-actions .text-link{display:none}.header-actions{margin-left:auto}.reason-list article{grid-template-columns:60px 1fr 40%}.works-grid{gap:16px}.work-card figure{height:270px}}
@media(max-width:760px){body{padding-bottom:62px}.wrap{width:min(calc(100% - 36px),var(--max))}.site-header{height:66px;padding:0 18px}.brand-mark{width:36px;height:36px}.brand small{display:none}.header-actions{display:none}.menu{display:grid;margin-left:auto;background:transparent;border:0;width:42px;height:42px;place-content:center;gap:7px}.menu span{display:block;width:24px;height:1px;background:#222}.site-header.is-open{height:auto;padding-bottom:18px;flex-wrap:wrap}.site-header.is-open nav{display:grid;order:4;width:100%;gap:0}.site-header.is-open nav a{padding:12px 0;border-bottom:1px solid #ddd}.hero{height:auto;min-height:760px;padding-top:66px}.hero-media,.hero-shade{inset:66px 0 0}.hero-media img{object-position:63% center}.hero-shade{background:linear-gradient(90deg,rgba(16,16,16,.79),rgba(16,16,16,.35))}.hero-content{padding-top:100px;padding-bottom:70px}.hero h1{font-size:32px}.hero-lead{font-size:14px}.hero-actions{display:grid}.assurances{font-size:11px}.review-strip{grid-template-columns:1fr;padding:25px 18px;gap:15px}.review-strip>div{flex-wrap:wrap}.review-strip blockquote{border-left:0;border-top:1px solid var(--line);padding:15px 0 0}.section{padding:78px 0}.section-head{display:block;margin-bottom:38px}.section-head>p{margin-top:22px}.problem-grid{grid-template-columns:1fr 1fr}.problem-grid article{min-height:225px}.reason-list article{grid-template-columns:42px 1fr;padding:38px 0;gap:15px}.reason-list article>figure,.reason-list article>.photo-sequence,.reason-list article>.line-art{grid-column:1/3;width:100%}.reason-list h3{font-size:24px}.reason-list figure{height:240px}.works-grid{grid-template-columns:1fr}.work-card{margin-bottom:35px}.work-card figure{height:340px}.review-layout{grid-template-columns:1fr;gap:40px}.review-layout h2{font-size:34px}.steps{grid-template-columns:1fr}.steps li{min-height:auto;padding:20px}.steps li+li{border-left:0;border-top:1px solid var(--line)}.steps li:not(:last-child):after{content:"↓";top:auto;right:20px;bottom:-16px}.steps h3{margin:10px 0}.people{grid-template-columns:1fr}.people-image{min-height:400px}.people-copy{padding:60px 18px}.service-cols{grid-template-columns:1fr}.service-cols article{padding:28px 8px}.service-cols article+article{border-left:0;border-top:1px solid var(--line)}.area-grid{grid-template-columns:1fr;gap:50px}.area h2{font-size:34px}.map{height:320px}.company-table div{grid-template-columns:1fr;gap:5px;padding:15px 5px}.contact-grid{grid-template-columns:1fr;gap:40px}.contact h2{font-size:34px}.footer-grid{grid-template-columns:1fr 1fr}.footer-grid>div:first-child{grid-column:1/3}.mobile-cta{position:fixed;z-index:90;display:grid;grid-template-columns:1fr 1fr 1.25fr;inset:auto 0 0;height:62px;background:#fff;box-shadow:0 -4px 18px #0002}.mobile-cta a{display:grid;place-items:center;border-right:1px solid #ddd;font-size:13px;font-weight:600}.mobile-cta a:nth-child(2){background:#3c7656;color:#fff}.mobile-cta a:last-child{background:var(--red);color:#fff}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transform:none;transition:none}*{animation:none!important;transition:none!important}}
.capture-mode .site-header{position:absolute}.capture-mode .reveal{opacity:1;transform:none;transition:none}

/* Readability and conversion refinement */
body{font-size:17px;line-height:1.9}.site-header nav{font-size:14px}.header-actions{font-size:14px}.btn{font-size:16px}.hero-lead{font-size:18px;line-height:1.9}.assurances{font-size:14px}.eyebrow{font-size:12px}.section-head>p,.reason-list p:not(.eyebrow),.area-grid>div>p,.people-copy>p,.contact-grid>div>p{font-size:16px;line-height:2}.micro-copy,.location,.work-card>a,.service-cols li,.company-table div{font-size:15px}.data-note,.footer p,.footer a{font-size:14px}.review-strip{grid-template-columns:1.15fr .45fr 1.4fr;gap:30px;padding-top:30px;padding-bottom:30px}.review-strip>div{display:flex}.trust-score{display:grid!important;grid-template-columns:auto 1fr;align-items:end;gap:4px 18px}.trust-score .eyebrow{grid-column:1/3;margin:0}.trust-score strong{font-size:64px;line-height:1}.trust-score .stars{font-size:17px}.trust-score small{grid-column:2;font-size:14px;color:#666}.trust-count{display:grid!important;align-content:center;justify-content:center;border-left:1px solid var(--line);border-right:1px solid var(--line);text-align:center}.trust-count strong{font-size:38px;line-height:1}.trust-count span{font:600 12px "IBM Plex Sans";letter-spacing:.15em}.review-strip blockquote{border-left:0;padding-left:0;font-size:17px}.problem-grid article{padding:22px;min-height:330px}.problem-grid figure{height:130px;margin:18px 0 22px;overflow:hidden;background:#ded9d2}.problem-grid figure img{transition:transform .4s}.problem-grid article:hover figure img{transform:scale(1.025)}.problem-grid h3{font-size:20px}.problem-grid p{font-size:15px;line-height:1.7}.consult-visual{padding:18px;background:#e8e3dc!important;display:grid;align-content:center;gap:10px}.consult-visual b{font:600 11px "IBM Plex Sans";letter-spacing:.16em;color:#777}.consult-visual i{display:block!important;width:75%!important;height:1px!important;margin:0!important;background:#aaa;font-size:0!important}.consult-visual i:nth-of-type(2){width:55%!important}.photo-sequence{height:300px;gap:7px}.photo-sequence figure{height:100%;margin:0;position:relative;overflow:hidden}.photo-sequence figure:after{content:"";position:absolute;inset:auto 0 0;height:42%;background:linear-gradient(transparent,rgba(0,0,0,.72))}.photo-sequence figcaption{left:12px;right:auto;bottom:10px;z-index:2;display:grid;font-size:13px;line-height:1.4}.photo-sequence figcaption b{font:600 11px "IBM Plex Sans";letter-spacing:.14em;color:#e7a08c}.work-card figure{height:390px}.work-card .location{color:#c9c9c9;margin-bottom:4px}.work-card h3{font-size:24px;margin-top:6px;margin-bottom:22px}.works .data-note{font-size:14px}.score{margin:0 0 42px;grid-template-columns:auto 1fr}.score strong{font-size:clamp(110px,13vw,190px);line-height:.78;letter-spacing:-.06em;color:var(--red)}.score .stars{font-size:19px}.score small{font-size:15px}.review-layout h2{font-size:44px}.quotes p{font-size:17px;line-height:1.9}.quotes footer{font-size:14px}.people{grid-template-columns:1fr 1fr}.people-image{min-height:760px}.people-copy{padding-top:120px;padding-bottom:120px}.profile{font-size:16px}.profile span{font-size:14px}.osaka-map{clip-path:none;display:grid;grid-template-columns:1fr 1fr;gap:18px;padding:36px}.osaka-map svg{height:360px;width:100%}.osaka-map path{fill:#d3cbc2;stroke:#9e9286;stroke-width:2}.osaka-map circle:not(.pulse){fill:var(--red)}.osaka-map .pulse{fill:none;stroke:var(--red);stroke-width:2}.osaka-map div{display:flex;flex-direction:column;justify-content:center;gap:10px}.osaka-map strong{font:600 18px "IBM Plex Sans";letter-spacing:.22em}.osaka-map span{font-size:15px;line-height:1.8}.contact-actions .contact-line{background:rgba(39,89,57,.22);border-left:3px solid #dbe9df}.contact-actions small,.contact-actions span{font-size:14px}.contact-actions strong{font-size:26px}.mobile-cta{padding-bottom:env(safe-area-inset-bottom);height:calc(58px + env(safe-area-inset-bottom))}
@media(max-width:760px){body{font-size:16px;line-height:1.85;padding-bottom:calc(58px + env(safe-area-inset-bottom))}.site-header nav,.header-actions{font-size:16px}.hero-lead{font-size:16px}.btn{font-size:16px;min-height:54px}.eyebrow{font-size:12px}.section-head>p,.reason-list p:not(.eyebrow),.area-grid>div>p,.people-copy>p,.contact-grid>div>p{font-size:16px;line-height:1.9}.review-strip{grid-template-columns:1fr 1fr;gap:18px}.trust-score strong{font-size:58px}.trust-count{border-right:0}.review-strip blockquote{grid-column:1/3;border-top:1px solid var(--line);padding-top:18px;font-size:16px}.problem-grid{grid-template-columns:1fr}.problem-grid article{min-height:auto}.problem-grid figure{height:150px}.photo-sequence{height:auto;grid-template-columns:1fr}.photo-sequence figure{height:190px}.work-card figure{height:370px}.score strong{font-size:120px}.review-layout h2{font-size:34px}.people-image{min-height:480px}.osaka-map{grid-template-columns:1fr 1fr;height:360px;padding:22px}.osaka-map svg{height:300px}.contact-actions strong{font-size:22px}.mobile-cta a{font-size:15px;min-height:58px}}
.score .score-note{grid-column:1/3;margin:14px 0 0;color:#777;font-size:12px;line-height:1.7;font-weight:400}.contact-actions>div{padding:22px;border-bottom:1px solid rgba(255,255,255,.5);display:grid}.contact-actions>div.contact-line{background:rgba(39,89,57,.22);border-left:3px solid #dbe9df}.footer-grid>div>span{font-size:14px;color:#bbb}.header-actions>.btn,.hero-actions>.btn,.contact-actions>div,.mobile-cta>span{cursor:default}.mobile-cta>span{display:grid;place-items:center;border-right:1px solid #ddd;font-size:15px;font-weight:600;min-height:58px}.mobile-cta>span:nth-child(2){background:#3c7656;color:#fff}.mobile-cta>span:last-child{background:var(--red);color:#fff}
.people-image img{object-position:center center}@media(max-width:760px){.people-image img{object-position:58% center}}
.header-actions .btn-line{margin-left:28px}
@media(max-width:760px){.hero h1 em{padding-bottom:4px}}
