:root{--yellow:#ffce00;--ink:#171815;--muted:#575a53;--line:#d4d7cf;--paper:#fff;--red:#b51d14;--gutter:clamp(20px,4vw,64px);--space:clamp(64px,8vw,112px)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:28px}body{margin:0;color:var(--ink);background:var(--paper);font-family:"Noto Sans CJK JP","Yu Gothic",Meiryo,sans-serif;font-size:1rem;line-height:1.9;letter-spacing:.025em;overflow-wrap:anywhere}a{color:inherit;text-underline-offset:6px}a:focus-visible{outline:3px solid var(--red);outline-offset:6px}img{max-width:100%;height:auto}p,h1,h2,h3{margin:0}p{color:var(--muted)}h1,h2,h3{line-height:1.5;letter-spacing:0;font-weight:800}h2{font-size:clamp(2rem,3.6vw,3.15rem);line-height:1.5}h3{font-size:1.35rem}.wrap{width:min(1240px,calc(100% - var(--gutter)*2));margin-inline:auto}.preview{padding:9px 20px;background:var(--ink);color:#fff;text-align:center;font-size:.8125rem;line-height:1.7}.header{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:106px;border-bottom:1px solid var(--ink)}.brand{display:flex;align-items:center;gap:14px;text-decoration:none;font-weight:750;line-height:1.5;font-size:1rem}.brand img{width:60px;flex-shrink:0}.header nav{display:flex;align-items:center;gap:28px;font-size:.875rem;font-weight:700}.header nav a{text-decoration:none;padding-block:12px}.header nav a:not(.nav-contact):hover{text-decoration:underline}.header nav .nav-contact{background:var(--ink);color:#fff;padding:11px 20px;border-radius:2px}.header nav .nav-contact:hover{background:#393d32}.hero{display:grid;grid-template-columns:minmax(0,1.75fr) minmax(0,1fr);align-items:start;column-gap:48px;padding-top:54px}.eyebrow{display:flex;align-items:center;gap:14px;font-size:.8125rem;font-weight:750;letter-spacing:.065em;color:var(--ink);margin-bottom:25px}.eyebrow:before{content:"";width:22px;height:3px;background:var(--red);flex-shrink:0}h1{font-size:clamp(2.8rem,5.8vw,5.1rem);line-height:1.4;letter-spacing:-.035em;margin-bottom:32px}h1 span{display:block;width:fit-content;max-width:100%}.hero-emphasis{position:relative;padding:0 .07em;background:var(--yellow);margin-left:-.07em}.hero-summary{font-size:1.1rem;font-weight:700;color:var(--ink);line-height:1.9}.hero-description{max-width:36em;font-size:1rem;margin-top:20px}.hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}.button{display:inline-flex;align-items:center;justify-content:center;min-height:50px;padding:12px 24px;border:1px solid var(--ink);border-radius:2px;text-decoration:none;font-weight:700;font-size:.9375rem;transition:background-color .15s,color .15s}.dark{background:var(--ink);color:#fff}.dark:hover{background:#393d32}.outline:hover{background:var(--yellow)}.hero-visual{border-top:9px solid var(--yellow);border-bottom:1px solid var(--ink);padding:38px 0 30px;margin-top:40px;display:flex;flex-direction:column;align-items:center}.hero-visual img{width:270px;display:block}.hero-visual p{width:100%;padding-top:26px;margin-top:22px;border-top:1px solid var(--line);color:var(--ink);font-size:.9375rem;font-weight:700;line-height:2.15;letter-spacing:.08em}.hero-footer{grid-column:1/-1;display:flex;justify-content:space-between;gap:20px;border-top:1px solid var(--ink);padding:24px 0;font-size:.875rem;margin-top:55px}.hero-footer span{font-weight:750}.hero-footer a{padding-inline:4px}.section{padding-block:var(--space)}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:48px;margin-bottom:46px}.section-heading>p{font-size:1rem;max-width:31em}.services-section{background:var(--yellow);margin-top:36px}.services-section .eyebrow:before{background:var(--ink)}.services{border-top:1px solid var(--ink)}.service{display:grid;grid-template-columns:60px minmax(0,.92fr) minmax(0,1.15fr);gap:10px 28px;padding:32px 0;border-bottom:1px solid #a78900}.service-label{grid-row:1/3;font:600 1rem/1.8 ui-monospace,SFMono-Regular,Consolas,monospace;padding-top:4px}.service h3{grid-row:1/3;align-self:start;font-size:clamp(1.4rem,2.1vw,1.8rem);padding-top:1px}.service>p{color:#303225;line-height:2}.service-note{grid-column:3;font-size:.875rem;line-height:1.9!important;margin-top:5px}.approach{margin-top:36px;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:32px}.approach strong{font-size:1.1rem}.approach p{font-size:.9375rem;color:#303225}.projects{border-top:1px solid var(--ink)}.project{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:64px;padding:43px 0;border-bottom:1px solid var(--ink)}.project-title{display:grid;grid-template-columns:auto 1fr;gap:22px 20px;align-content:start}.project-number{font:600 .875rem/1.8 ui-monospace,SFMono-Regular,Consolas,monospace}.tag{font-size:.75rem;width:fit-content;border-bottom:1px solid var(--line);padding-bottom:2px}.project h3{grid-column:1/-1;font-size:clamp(1.65rem,2.8vw,2.5rem);overflow-wrap:anywhere;line-height:1.45}.project-body{padding-top:2px}.project-body p{line-height:2}.text-link{display:block;width:fit-content;min-height:44px;font-size:1rem;font-weight:700;margin-top:24px;text-decoration-thickness:1px}.text-link:hover{text-decoration-thickness:2px}.text-link span{display:block;font-size:.75rem;color:var(--muted);font-weight:400;margin-top:7px}.caption{font-size:.8125rem;margin-top:24px}.about-section{background:var(--ink);color:#fff}.about-section .eyebrow{color:var(--yellow)}.about-section .eyebrow:before{background:var(--yellow)}.about-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:76px}.about-copy>p{color:#d1d6ca}.about-copy .about-lead{color:#fff;font-size:1.35rem;margin-bottom:28px;line-height:1.9}.profile{margin-top:35px;padding-top:25px;border-top:1px solid #62695b;display:flex;flex-wrap:wrap;gap:12px 24px;align-items:baseline}.profile span{font-size:.875rem;color:#d1d6ca}.profile strong{font-size:1.5rem}.flow{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:28px}.flow li{border-top:3px solid var(--ink);padding-top:18px}.flow span{font:600 .875rem/1.8 ui-monospace,SFMono-Regular,Consolas,monospace}.flow h3{font-size:1.1rem;margin:25px 0 14px}.flow p{font-size:.9375rem}.price-note{margin-top:34px;font-size:.875rem;padding-top:24px;border-top:1px solid var(--line)}.contact-section{border-top:1px solid var(--ink);background:#f5f6f2}.contact-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:64px}.contact-grid>div>p{margin-top:25px}.contact-section h2{font-size:clamp(1.7rem,2.9vw,2.6rem);line-height:1.55}.contact-info h3{font-size:1.125rem}.contact-info ul{list-style:none;margin:20px 0 29px;padding:0}.contact-info li{border-bottom:1px solid var(--line);padding:10px 0;font-size:1rem}.contact-notice{border-left:4px solid var(--yellow);padding:3px 0 3px 20px}.contact-notice strong{font-size:1rem}.contact-notice p{margin-top:10px;font-size:.875rem}.footer{display:flex;gap:24px;align-items:center;padding-block:30px;font-size:.8125rem}.footer a{text-decoration:none;font-weight:700}.footer small{font-size:inherit;margin-left:auto}.footer>span{color:var(--muted)}.skip{position:fixed;top:-100px;left:20px;z-index:5;background:#fff;padding:12px}.skip:focus{top:10px}.hero>*,.service>*,.project>*,.about-grid>*,.contact-grid>*{min-width:0}
@media(max-width:1000px){.header nav{gap:16px}.header nav a:not(.nav-contact){display:none}.hero{column-gap:34px}.hero-visual{margin-top:40px}.service{grid-template-columns:40px minmax(0,.95fr) minmax(0,1.2fr);column-gap:22px}.service h3{font-size:1.4rem}.about-grid{gap:44px}.about-copy .about-lead{font-size:1.2rem}.flow{grid-template-columns:1fr 1fr;gap:35px}.project{gap:32px}.contact-grid{gap:40px}}
@media(max-width:700px){:root{--gutter:24px}.header{min-height:90px;gap:12px;flex-wrap:wrap;padding-block:14px}.brand{font-size:.9375rem;gap:8px;max-width:220px}.brand img{width:48px}.header nav{margin-left:auto}.header nav .nav-contact{padding:10px 13px;font-size:.875rem}.hero{grid-template-columns:minmax(0,1fr);padding-top:38px;row-gap:32px}h1{font-size:clamp(2.5rem,8.4vw,3.7rem);line-height:1.45;margin-bottom:28px;letter-spacing:-.025em}.eyebrow{font-size:.75rem;gap:10px;margin-bottom:22px}.eyebrow:before{width:16px}.hero-summary{font-size:1rem}.hero-description{font-size:1rem;margin-top:18px}.hero-actions{margin-top:25px;gap:10px}.button{padding:12px 20px;font-size:.875rem}.hero-visual{display:grid;grid-template-columns:130px minmax(0,1fr);gap:20px;margin:0;padding:20px 0;border-top-width:5px}.hero-visual img{width:130px}.hero-visual p{margin:0;padding:0;border:0;font-size:.875rem;line-height:2.05;letter-spacing:0}.hero-footer{margin-top:0;padding-top:0;border-top:0;font-size:.8125rem;gap:14px;flex-wrap:wrap}.services-section{margin-top:14px}.section-heading{flex-direction:column;align-items:start;gap:20px;margin-bottom:32px}.section-heading>p{font-size:.9375rem}.service{grid-template-columns:30px minmax(0,1fr);gap:14px 14px;padding:28px 0}.service-label{grid-row:1;align-self:center;padding:0;font-size:.875rem}.service h3{grid-row:1;font-size:1.4rem;padding:0}.service>p{grid-column:2;font-size:1rem}.service .service-note{font-size:.875rem;grid-column:2;margin-top:0}.approach{grid-template-columns:1fr;gap:12px;margin-top:30px}.approach strong{font-size:1rem}.approach p{font-size:.9375rem}.project{grid-template-columns:1fr;gap:24px;padding:30px 0}.project-title{gap:17px 16px}.project h3{font-size:clamp(1.65rem,6vw,2.25rem)}.project-body{padding:0}.text-link{margin-top:20px}.caption{font-size:.8125rem}.about-grid{grid-template-columns:1fr;gap:28px}.about-copy .about-lead{font-size:1.15rem;margin-bottom:24px}.profile{margin-top:30px}.contact-grid{grid-template-columns:1fr;gap:36px}.contact-section h2{font-size:1.8rem}.footer{flex-wrap:wrap;gap:10px 24px}.footer>a{width:100%}.footer small{margin-left:0}}
@media(max-width:380px){:root{--gutter:20px}.brand{max-width:none}.header nav{margin-left:auto}.hero{padding-top:30px}h1{font-size:2.3rem}.hero-visual{grid-template-columns:106px minmax(0,1fr);gap:16px}.hero-visual img{width:106px}.hero-visual p{font-size:.875rem}.button{padding-inline:17px}.flow{grid-template-columns:1fr;gap:28px}.flow li{display:grid;grid-template-columns:28px 1fr;gap:0 12px}.flow h3{margin:0 0 12px}.flow p{grid-column:2}.contact-section h2{font-size:1.55rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.button{transition:none}}
