@charset "UTF-8";
:root{--ink:#171717;--muted:#666;--line:#d9d9d6;--paper:#fff;--sans:-apple-system,BlinkMacSystemFont,"Hiragino Kaku Gothic ProN","Hiragino Sans",sans-serif;--serif:"Bodoni 72","Times New Roman","Hiragino Mincho ProN",serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:35px}body{margin:0;color:var(--ink);background:var(--paper);font-family:var(--sans);font-size:16px;line-height:1.9;-webkit-font-smoothing:antialiased}a{color:inherit;text-underline-offset:5px}a:focus-visible,button:focus-visible{outline:2px solid #333;outline-offset:6px}button{font:inherit;cursor:pointer}h1,h2,h3,p{margin:0}h1,h2,h3{font-weight:500}.wrap{width:min(1280px,calc(100% - 112px));margin:auto}.site-header{height:110px;display:flex;justify-content:space-between;align-items:center;gap:28px}.logo{font-size:30px;font-weight:800;letter-spacing:-1px;text-decoration:none;line-height:1.2}.logo small{display:block;font-size:11px;letter-spacing:.18em;margin-top:5px;font-weight:500}.nav{display:flex;gap:32px;align-items:center}.nav a{text-decoration:none;font-size:13px;line-height:1.2}.nav a:last-child{border:1px solid #222;padding:13px 20px;border-radius:30px}.nav a:hover{text-decoration:underline}.eyebrow{font-family:Arial,sans-serif;font-size:13px;letter-spacing:.09em;line-height:1.5}.intro{max-width:580px;color:#555;font-size:16px;line-height:2.15}.section{padding:118px 0;scroll-margin-top:30px}.section-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:58px;gap:24px}.section-head h2{font-family:var(--serif);font-size:64px;line-height:1;letter-spacing:-.02em}.section-head .jp{font-size:14px;letter-spacing:.06em}.section-head .number{font-family:Arial,sans-serif;font-size:12px;color:#666;margin-right:20px}.service-grid{display:grid;grid-template-columns:1fr 1fr;gap:70px}.service{border-top:1px solid var(--ink);padding-top:25px}.service .en{font-family:var(--serif);font-size:42px;line-height:1.4;margin:8px 0 20px}.service h3{font-size:24px;line-height:1.6;margin-bottom:18px}.service p{font-size:16px;max-width:450px;color:#555}.service .text-link{display:inline-block;font-size:14px;margin-top:25px;text-decoration:none;border-bottom:1px solid #333;padding-bottom:5px}.company{border-top:1px solid var(--line)}.company-layout{display:grid;grid-template-columns:1fr 1.4fr;gap:80px}.company .section-head{display:block}.company .jp{display:block;margin-top:16px}.profile{margin:0}.profile .row{display:grid;grid-template-columns:125px 1fr;border-bottom:1px solid var(--line);padding:20px 0;gap:20px}.profile .row:first-child{border-top:1px solid var(--line)}.profile dt{font-size:14px;color:#666}.profile dd{margin:0;font-size:16px}.contact{border-top:1px solid var(--line)}.contact-layout{display:grid;grid-template-columns:1fr 1.4fr;gap:80px}.contact .section-head{display:block;margin-bottom:24px}.contact .jp{display:block;margin-top:16px}.contact p{font-size:16px;color:#666}.email{display:inline-block;font-family:var(--serif);font-size:clamp(28px,3.6vw,48px);line-height:1.5;text-decoration:none;border-bottom:1px solid #333;letter-spacing:-.03em;overflow-wrap:anywhere;margin-bottom:20px}.telephone{font-size:15px}.telephone a{text-decoration:none}.site-footer{padding:35px 0;border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:20px;color:#777;font-family:Arial,sans-serif;font-size:11px}.site-footer .wordmark{font-weight:800;font-size:20px;color:#171717;letter-spacing:-.5px}.bottom-about{font-family:var(--sans);font-size:12px}.hero{position:relative}.scroll-note{font-family:Arial,sans-serif;font-size:11px;letter-spacing:.06em;display:flex;align-items:center;gap:12px}.scroll-note:before{content:"";width:35px;height:1px;background:#777}.hero-sub{font-size:15px;line-height:2;max-width:450px}.top-link{font-size:12px;text-decoration:none}
/* A — strong type, white space, a restrained line field. */
.a .hero{min-height:660px;padding:95px 0 70px}.a .hero-title{font-family:Arial,var(--sans);font-weight:800;font-size:clamp(52px,5.8vw,86px);line-height:1.45;letter-spacing:-.055em;position:relative;z-index:1}.a .hero-title span{display:block}.a .hero-en{font-family:var(--serif);font-size:36px;font-style:italic;margin:27px 0 24px;line-height:1.3}.a .hero-copy{position:relative;z-index:1}.a .hero-sub{color:#555}.a .hero .scroll-note{margin-top:60px}.line-field{position:absolute;right:-1%;top:30px;width:48%;height:520px;pointer-events:none;overflow:hidden;opacity:.35;mask-image:linear-gradient(to bottom,transparent,#000 15%,#000 80%,transparent)}.line-field svg{width:100%;height:100%;display:block}.a .services{padding-top:35px}.a .service .en{font-style:normal}.a .contact{background:#f7f7f5;padding:0}.a .contact>.wrap{padding:100px 0}
/* B — vertical Japanese, near-silent first view. */
.b .site-header{height:115px}.b .logo{font-family:var(--serif);font-weight:500;letter-spacing:.03em;font-size:28px}.b .logo small{font-family:var(--sans);letter-spacing:.2em}.b .nav a:last-child{border:none;border-radius:0;padding:0}.b .hero{height:680px;display:grid;grid-template-columns:1fr 1fr;align-items:center}.b .hero-title{display:flex;flex-direction:row-reverse;justify-content:center;gap:30px;font-family:"Hiragino Mincho ProN",var(--serif);font-size:43px;line-height:1.7;font-weight:500;letter-spacing:.18em;align-self:start;margin-top:54px}.b .hero-title span{writing-mode:vertical-rl;white-space:nowrap}.b .hero-copy{align-self:end;padding-bottom:95px;max-width:370px;margin-left:8%}.b .hero-sub{font-size:15px;line-height:2.2}.b .hero .eyebrow{margin-bottom:22px;letter-spacing:.12em;font-size:12px}.b .hero .scroll-note{margin-top:40px}.b .quiet-lines{width:60%;height:140px;position:absolute;left:4%;top:60px;background:repeating-linear-gradient(0deg,transparent 0,transparent 22px,#eaeae7 22px,#eaeae7 23px);transform:skewY(-8deg);opacity:.45}.b .hero-title{position:relative;z-index:1}.b .section-head h2{font-size:45px}.b .services{padding-top:65px}.b .service .en{font-size:32px}.b .service-grid{gap:110px}.b .company{background:#fafaf9}.b .contact{padding:110px 0}.b .email{font-size:38px}
/* C — editorial grid, oversized wordmark and precise rules. */
.c .site-header{height:96px;border-bottom:1px solid #222}.c .logo{font-size:18px;letter-spacing:0}.c .logo small{display:none}.c .nav a:last-child{border-radius:0;padding:10px 15px}.c .hero{padding-top:38px;padding-bottom:65px}.c .big-wordmark{font-family:Arial,sans-serif;font-size:clamp(130px,22.5vw,340px);font-weight:800;line-height:.93;letter-spacing:-.075em;display:block;margin-left:-.025em}.c .hero-overline{display:flex;justify-content:space-between;margin:25px 0 35px;font-size:12px;font-family:Arial,sans-serif}.c .hero-bottom{display:grid;grid-template-columns:1.2fr 1fr;gap:70px;padding:38px 0 0;border-top:1px solid #222}.c .hero-title{font-family:"Hiragino Mincho ProN",var(--serif);font-size:clamp(36px,3.7vw,58px);line-height:1.6;letter-spacing:-.03em}.c .hero-sub{padding-top:10px;line-height:2.1;font-size:15px}.c .hero .scroll-note{margin-top:32px}.c .section{padding:95px 0}.c .section-head{border-top:1px solid #222;padding-top:26px}.c .section-head h2{font-family:Arial,sans-serif;font-size:48px;font-weight:700;letter-spacing:-.05em}.c .service-grid{gap:50px}.c .service{border-top:0}.c .service:first-child{border-right:1px solid var(--line);padding-right:50px}.c .service .en{font-size:37px;font-style:italic}.c .company,.c .contact{border-top:0}.c .company-layout,.c .contact-layout{gap:55px}.c .company .section-head,.c .contact .section-head{border-top:0;padding-top:0}.c .company-layout{border-top:1px solid #222;padding-top:40px}.c .contact-layout{border-top:1px solid #222;padding-top:45px}.c .email{font-family:Arial,sans-serif;letter-spacing:-.05em;font-size:38px}.c .site-footer{border-color:#222}
/* D — high-key abstract artwork and contrasting serif type. */
.d{background:#f7f7f5}.d .site-header{height:110px;position:relative;z-index:2}.d .logo{font-family:var(--serif);font-weight:500;letter-spacing:-.03em;font-size:34px}.d .logo small{font-family:var(--sans);font-size:10px;letter-spacing:.12em}.d .hero{min-height:670px;display:flex;align-items:center}.d .hero-art{position:absolute;width:100%;height:100%;inset:0;object-fit:cover;object-position:center;z-index:0}.d .hero .wrap{position:relative;z-index:1;width:100%}.d .hero-copy{max-width:590px;padding:40px 0}.d .hero-title{font-family:var(--serif);font-weight:500;font-size:clamp(76px,9.3vw,150px);line-height:.98;letter-spacing:-.05em}.d .hero-title em{font-weight:400}.d .hero-caption{font-family:"Hiragino Mincho ProN",var(--serif);font-size:28px;margin-top:38px;line-height:1.6}.d .hero-sub{font-size:14px;margin-top:22px;max-width:410px}.d .hero .scroll-note{margin-top:40px}.d .section-head h2{font-style:italic;font-size:64px}.d .service .en{font-style:normal}.d .services{background:#fff;padding-bottom:120px}.d .company{padding:105px 0}.d .contact{background:#fff}.d .site-footer{background:#fff}.d .page-frame{width:min(1280px,calc(100% - 112px));margin:auto}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
@media(min-width:1500px){.a .line-field{right:3%}.a .hero{min-height:700px}.b .hero{height:760px}.d .hero{min-height:760px}}
@media(max-width:900px){.wrap,.d .page-frame{width:calc(100% - 56px)}.nav{gap:20px}.hero-sub{font-size:15px}.section{padding:85px 0}.section-head h2{font-size:50px}.service-grid{gap:35px}.company-layout,.contact-layout{grid-template-columns:1fr;gap:30px}.company .section-head{margin-bottom:15px}.service .en{font-size:33px}.service h3{font-size:21px}.a .hero{min-height:580px;padding-top:85px}.a .hero-title{font-size:57px}.a .line-field{width:45%;right:0;opacity:.22}.b .hero{height:650px}.b .hero-title{font-size:37px;gap:22px}.b .service-grid{gap:50px}.b .hero-copy{margin-left:0}.c .hero-bottom{gap:35px}.c .hero-title{font-size:40px}.c .hero-sub{font-size:14px}.d .hero{min-height:620px}.d .hero-title{font-size:108px}.d .hero-caption{font-size:25px}.d .hero-art{opacity:.75;object-position:60% center}.d .hero-copy{max-width:510px}.email{font-size:38px}}
@media(max-width:600px){html{scroll-padding-top:20px}.wrap,.d .page-frame{width:calc(100% - 40px)}.site-header,.b .site-header,.d .site-header{height:88px;gap:15px}.logo{font-size:25px}.logo small{font-size:9px}.nav{gap:15px}.nav a{font-size:12px;white-space:nowrap}.nav a:last-child{padding:0;border:0}.nav a:first-child{display:none}.section{padding:68px 0}.section-head{margin-bottom:32px}.section-head h2{font-size:43px}.section-head .jp{font-size:13px}.section-head .number{margin-right:10px}.service-grid,.b .service-grid{grid-template-columns:1fr;gap:44px}.service .en{font-size:34px;margin-bottom:15px}.service h3{font-size:21px}.service p{font-size:15px}.profile .row{grid-template-columns:85px 1fr;gap:12px;padding:17px 0}.profile dd{font-size:15px}.profile dt{font-size:13px}.contact-layout,.company-layout{gap:25px}.contact .section-head{margin-bottom:10px}.email,.b .email,.c .email{font-size:28px}.site-footer{flex-wrap:wrap;font-size:10px;padding:25px 0;gap:12px}.site-footer .wordmark{font-size:18px}.bottom-about{display:none}.a .hero{min-height:590px;padding:58px 0 40px}.a .hero-title{font-size:clamp(36px,10.5vw,55px);line-height:1.55;letter-spacing:-.055em}.a .hero-en{font-size:29px;margin:22px 0}.a .hero-sub{font-size:14px;max-width:300px}.a .hero .scroll-note{margin-top:50px}.a .line-field{width:60%;height:350px;top:170px;opacity:.25}.a .services{padding-top:40px}.a .contact>.wrap{padding:70px 0}.b .hero{height:auto;min-height:695px;display:flex;flex-direction:column;gap:45px;padding-bottom:50px}.b .hero-title{font-size:32px;margin-top:28px;align-self:center;gap:19px;line-height:1.7;letter-spacing:.12em}.b .hero-copy{align-self:stretch;margin:0;padding:0;max-width:100%}.b .hero .eyebrow{font-size:11px;margin-bottom:13px}.b .hero-sub{font-size:14px;max-width:320px}.b .hero .scroll-note{margin-top:22px}.b .quiet-lines{top:50px;width:85%;left:0}.b .section-head h2{font-size:41px}.b .contact{padding:70px 0}.c .site-header{height:82px}.c .logo{font-size:14px}.c .nav{gap:12px}.c .nav a{font-size:11px}.c .hero{padding-top:32px;padding-bottom:38px}.c .big-wordmark{font-size:27vw;line-height:1.04}.c .hero-overline{font-size:10px;margin:16px 0 24px}.c .hero-bottom{grid-template-columns:1fr;gap:22px;padding-top:25px}.c .hero-title{font-size:32px;line-height:1.65}.c .hero-sub{font-size:14px;padding-top:0;max-width:320px}.c .hero .scroll-note{margin-top:22px}.c .section{padding:60px 0}.c .section-head h2{font-size:37px}.c .service:first-child{border-right:0;padding-right:0}.c .service{padding-top:0}.c .service:last-child{border-top:1px solid var(--line);padding-top:30px}.c .company-layout,.c .contact-layout{gap:25px}.d .hero{min-height:660px;align-items:flex-start}.d .hero-art{object-position:66% center;opacity:.55}.d .hero .wrap{width:100%}.d .hero-copy{padding-top:40px;max-width:100%}.d .hero-title{font-size:clamp(70px,20vw,110px);line-height:1.05}.d .hero-caption{font-size:22px;margin-top:30px}.d .hero-sub{font-size:13px;max-width:280px}.d .hero .scroll-note{margin-top:35px}.d .section-head h2{font-size:45px}.d .services{padding-bottom:70px}.d .company{padding:70px 0}}

/* Japanese service headings: avoid a short final line. */
.service .en,.b .service .en,.c .service .en{font-size:32px;font-style:normal;text-wrap:balance;line-height:1.65}
@media(max-width:600px){.service .en,.b .service .en,.c .service .en{font-size:27px}}

/* A revision: paired illustrations and two dedicated contact routes. */
.business-art{margin:24px 0 28px;background:#fafaf8;border:1px solid #e4e4df;aspect-ratio:3/2;overflow:hidden}
.business-art img{display:block;width:100%;height:100%;object-fit:contain}
.contact-option+.contact-option{margin-top:38px;padding-top:32px;border-top:1px solid var(--line)}
.contact .contact-label{font-size:15px;color:#171717;margin-bottom:10px;font-weight:500}
.contact .contact-help{font-size:14px;color:#666;line-height:1.8;max-width:520px}
.contact .email{font-size:24px;margin-bottom:11px}
.phone-link{font-family:Arial,sans-serif;display:inline-block;font-size:24px;line-height:1.5;letter-spacing:-.03em;text-decoration:none;margin-bottom:10px;border-bottom:1px solid #333}
@media(max-width:600px){.business-art{margin:20px 0 23px}.contact .email{font-size:20px}.phone-link{font-size:20px}.contact .contact-label{font-size:14px}.contact .contact-help{font-size:13px}.contact-option+.contact-option{margin-top:29px;padding-top:25px}}

/* Keep sentence endings together without changing the copy. */
.service h3+p{max-width:none}
.copy-end{white-space:nowrap}
