@charset "UTF-8";
@font-face{font-family:"Nikumaru";src:url("fonts/nikumaru.woff2") format("woff2");font-style:normal;font-weight:400;font-display:swap}
:root{--paper:#ffffff;--paper-deep:#f5f5dc;--ink:#292b29;--muted:#5d625e;--line:#d5d5c8;--red:#ff7f50;--red-dark:#a9401e;--green:#e5ede6;--max:1120px;--font:"Nikumaru","Yu Gothic",Meiryo,sans-serif}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.95 var(--font);-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
a:hover{color:var(--red-dark)}
a:focus-visible,button:focus-visible{outline:3px solid var(--red);outline-offset:4px}
button{font:inherit}
img,svg{max-width:100%}
.serif,h1,h2,h3,blockquote{font-family:var(--font);font-weight:400}
h1,h2,h3,p,blockquote{margin-top:0}
p{margin-bottom:1.25em}
.wrap{width:min(calc(100% - 64px),var(--max));margin-inline:auto}
.skip-link{position:absolute;top:-70px;left:16px;z-index:100;padding:8px 14px;background:var(--ink);color:white}
.skip-link:focus{top:10px}
.site-header{height:82px;border-bottom:1px solid var(--line);position:relative;z-index:20;background:var(--paper)}
.header-inner{height:100%;display:flex;align-items:center;justify-content:space-between;gap:28px}
.brand{font-family:"Yu Mincho","Hiragino Mincho ProN","Noto Serif JP",serif;font-size:29px;letter-spacing:.17em;line-height:1;white-space:nowrap}
.header-descriptor{font-size:11px;color:var(--muted);letter-spacing:.12em;white-space:nowrap;margin-right:auto}
.nav{display:flex;align-items:center;gap:22px;font-size:12px;letter-spacing:.05em}
.nav a{padding:6px 0;white-space:nowrap}
.nav a[aria-current="page"]{color:var(--red);border-bottom:1px solid var(--red)}
.nav-contact{margin-left:3px;padding:8px 14px!important;border:1px solid var(--ink);border-radius:100px}
.nav-contact[aria-current="page"]{border-color:var(--red)}
.menu-toggle{display:none;background:none;border:0;cursor:pointer;padding:10px;margin-right:-10px;color:var(--ink)}
.menu-toggle span{display:block;width:26px;height:1px;background:currentColor;margin:6px 0}
.eyebrow{font:12px/1.5 var(--font);color:var(--red);letter-spacing:.18em;text-transform:uppercase}
.kicker{font-size:12px;letter-spacing:.12em;color:var(--red);display:flex;align-items:center;gap:12px}
.kicker:before{content:"";width:29px;height:1px;background:var(--red)}
.button{display:inline-flex;align-items:center;justify-content:space-between;gap:28px;min-width:215px;padding:11px 18px 11px 23px;border-radius:100px;border:1px solid var(--ink);font-size:13px;letter-spacing:.05em;line-height:1.6;transition:background .2s,color .2s,transform .2s}
.button:after{content:"↗";font:21px/1 var(--font)}
.button:hover{background:var(--ink);color:var(--paper);transform:translateY(-2px)}
.button-red{background:var(--red);border-color:var(--red);color:var(--ink)}
.button-red:hover{background:#e9683b;border-color:#e9683b;color:var(--ink)}
.text-link{display:inline-flex;align-items:center;gap:25px;border-bottom:1px solid currentColor;padding-bottom:4px;font-size:13px;letter-spacing:.04em}
.text-link:after{content:"↗";font:18px var(--font)}
.section-head{display:flex;justify-content:space-between;gap:28px;align-items:end;margin-bottom:32px}
.section-head h2{font-size:clamp(30px,3.5vw,43px);line-height:1.55;letter-spacing:.05em;margin:10px 0 0}
.section-head .section-note{max-width:370px;font-size:13px;color:var(--muted);margin:0}
.section-pad{padding:95px 0}
.line-top{border-top:1px solid var(--line)}
.home-hero{border-bottom:1px solid var(--line);overflow:hidden}
.home-hero-grid{min-height:670px;display:grid;grid-template-columns:62% 38%;position:relative}
.home-thread{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:0}
.home-hero-copy{position:relative;z-index:1;align-self:center;padding:66px 0 95px}
.home-hero h1{font-size:clamp(46px,5.25vw,70px);line-height:1.43;letter-spacing:.075em;margin:31px 0 28px}
.home-hero-lead{font-size:15px;line-height:2.2;max-width:570px}
.home-hero-side{border-left:1px solid var(--line);position:relative;z-index:1;display:flex;flex-direction:column;justify-content:end;align-items:start;padding:40px 0 54px 37px}
.home-hero-side .side-label{writing-mode:vertical-rl;align-self:end;margin:auto 6px 0 0;color:var(--red);font:13px var(--font);letter-spacing:.16em}
.home-hero-side p{font-size:14px;line-height:2.1;max-width:320px;margin-bottom:18px}
.home-quote{padding:89px 0 93px;display:grid;grid-template-columns:1fr 2fr;gap:9%}
.home-quote h2{font-size:clamp(28px,3.5vw,43px);line-height:1.7;letter-spacing:.05em;margin:0 0 17px}
.home-quote p{font-size:15px;color:#4c5550;max-width:650px;line-height:2.15}
.portrait-column .eyebrow{display:block;margin-bottom:13px}
.portrait-frame{margin:0;background:#ffffff;border:1px solid var(--line);padding:10px 10px 8px;max-width:330px}
.portrait-frame img{display:block;width:100%;height:auto;max-height:440px;object-fit:contain;object-position:center bottom}
.values-section{background:var(--paper-deep);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.values-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--ink);border-bottom:1px solid var(--ink)}
.value{padding:27px 28px 32px;border-right:1px solid var(--line)}
.value:first-child{padding-left:0}.value:last-child{border:0;padding-right:0}
.value small{font:13px var(--font);color:var(--red)}
.value h3{font-size:22px;line-height:1.5;letter-spacing:.03em;margin:23px 0 12px}
.value p{font-size:14px;line-height:2;color:#53605a;margin:0}
.value-link{margin-top:30px}
.project-rows{border-top:1px solid var(--ink)}
.project-row{display:grid;grid-template-columns:95px 1.1fr 1.5fr 20px;gap:25px;align-items:start;padding:27px 0;border-bottom:1px solid var(--line)}
.project-row .number{font:15px var(--font);color:var(--red)}
.project-row h3{font-size:23px;line-height:1.5;letter-spacing:.02em;margin:0}
.project-row p{font-size:14px;color:#53605a;line-height:2;margin:0}
.project-row .arrow{font:21px var(--font);text-align:right}
a.project-row:hover h3{color:var(--red)}
.future-band{background:#2c2b29;color:#f9f8f3;padding:88px 0;position:relative;overflow:hidden}
.future-band:after{content:"";position:absolute;right:-12%;top:-140px;width:650px;height:520px;border:2px solid rgba(255,127,80,.65);border-radius:50%;transform:rotate(-17deg)}
.future-inner{display:grid;grid-template-columns:1fr 1fr;gap:11%;position:relative;z-index:1}
.future-band .eyebrow{color:#e0a59a}
.future-band h2{font-size:clamp(31px,3.8vw,47px);line-height:1.6;margin:14px 0 0}
.future-band p{font-size:14px;line-height:2.2;color:#e2dfd8}
.future-band .text-link{color:#f9f8f3}
.contact-band{text-align:center;padding:95px 0 105px}
.contact-band h2{font-size:clamp(30px,3.8vw,47px);line-height:1.6;margin:17px 0}
.contact-band p{font-size:15px;color:#535c56;line-height:2.15}
.page-hero{padding:80px 0 78px;border-bottom:1px solid var(--line);position:relative;overflow:hidden}
.page-hero:after{content:"";position:absolute;right:-170px;top:-190px;width:520px;height:470px;border:1px solid rgba(255,127,80,.45);border-radius:52% 48% 60% 40%;transform:rotate(23deg);pointer-events:none}
.page-hero-inner{display:grid;grid-template-columns:135px 1fr;gap:40px;position:relative;z-index:1}
.page-number{font:15px var(--font);color:var(--red);padding-top:8px}
.page-hero h1{font-size:clamp(40px,5vw,64px);line-height:1.48;letter-spacing:.055em;margin:13px 0 24px}
.page-hero p{font-size:15px;line-height:2.2;max-width:680px;color:#4f5752;margin:0}
.about-hero-layout{display:grid;grid-template-columns:minmax(0,1fr) 270px;gap:45px;align-items:center}
.about-page-hero h1{font-size:clamp(35px,3.6vw,47px)}
.portrait-hero{width:100%;max-width:none}
.mobile-only{display:none}
.content-grid{display:grid;grid-template-columns:245px 1fr;gap:60px}
.side-heading{font:12px var(--font);letter-spacing:.16em;color:var(--red);padding-top:8px;text-transform:uppercase}
.story h2,.article-section h2{font-size:clamp(28px,3vw,39px);line-height:1.6;letter-spacing:.04em;margin:0 0 23px}
.story p,.article-section p{font-size:15px;line-height:2.2;color:#46504a;max-width:760px}
.timeline{border-top:1px solid var(--ink);margin-top:50px}
.timeline-item{display:grid;grid-template-columns:130px 1fr;gap:28px;padding:30px 0;border-bottom:1px solid var(--line)}
.timeline-item .num{font:14px var(--font);color:var(--red);padding-top:6px}
.timeline-item h3{font-size:25px;line-height:1.6;margin:0 0 12px}
.timeline-item p{margin:0}
.quote-panel{background:var(--paper-deep);border-left:3px solid var(--red);padding:38px 45px;margin:42px 0}
.quote-panel p{font-size:clamp(19px,2.5vw,27px);line-height:1.85;color:var(--ink);margin:0}
.article-section+.article-section{border-top:1px solid var(--line);padding-top:62px;margin-top:62px}
.article-section .eyebrow{display:block;margin-bottom:13px}
.philosophy-values{display:grid;gap:25px;margin:46px 0}
.philosophy-values article{border-top:1px solid var(--ink);display:grid;grid-template-columns:80px 230px 1fr;gap:20px;padding-top:22px}
.philosophy-values .num{font:15px var(--font);color:var(--red)}
.philosophy-values h3{font-size:23px;line-height:1.5;margin:0}
.philosophy-values p{font-size:14px;line-height:2.1;margin:0}
.project-detail{display:grid;grid-template-columns:115px 1fr;gap:35px;padding:38px 0 44px;border-top:1px solid var(--line)}
.project-detail:first-of-type{border-top:1px solid var(--ink)}
.project-detail .num{font:14px var(--font);color:var(--red);padding-top:7px}
.project-detail h2{font-size:clamp(27px,3vw,38px);line-height:1.5;margin:0 0 18px}
.project-detail p{font-size:15px;line-height:2.15;color:#4e5750;max-width:750px}
.status{display:inline-block;font-size:11px;letter-spacing:.08em;border:1px solid var(--line);border-radius:100px;padding:1px 11px;margin-bottom:19px;color:#59655c}
.status.future{border-color:var(--red);color:var(--red)}
.link-out{display:inline-flex;gap:12px;align-items:center;border-bottom:1px solid var(--ink);font-size:13px;padding:3px 0}
.link-out:after{content:"↗";font:18px var(--font)}
.future-project{background:var(--paper-deep);padding:38px 45px;margin-top:10px;border-left:3px solid var(--red)}
.future-project h2{font-size:30px;margin:0 0 18px}
.future-project p{font-size:15px;line-height:2.1;max-width:800px}
.vision-target{display:grid;grid-template-columns:1fr 1fr;gap:12%;padding:48px 0;border-top:1px solid var(--ink)}
.vision-target h2{font-size:clamp(29px,3.5vw,42px);line-height:1.55;margin:12px 0 0}
.vision-target p{font-size:15px;line-height:2.15;color:#4e5750}
.roadmap{border-top:1px solid var(--ink)}
.roadmap li{display:grid;grid-template-columns:180px 1fr;gap:30px;border-bottom:1px solid var(--line);padding:21px 0;list-style:none}
.roadmap{padding-left:0}
.roadmap time{font:20px var(--font);color:var(--red)}
.roadmap p{margin:0;font-size:14px;color:#4e5750;line-height:2}
.contact-options{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin:42px 0 55px}
.contact-option{border:1px solid var(--line);padding:28px 30px;background:#fffefa}
.contact-option small{font:13px var(--font);color:var(--red)}
.contact-option h2{font-size:25px;line-height:1.5;margin:13px 0 10px}
.contact-option p{font-size:14px;line-height:2;color:#52605a;margin:0}
.contact-method{background:var(--paper-deep);border-top:1px solid var(--ink);padding:45px;margin-bottom:45px}
.contact-method h2{font-size:30px;margin:0 0 15px}
.contact-method p{font-size:14px;color:#52605a;line-height:2}
.social-links{display:flex;gap:14px;flex-wrap:wrap}
.social-links a{display:inline-flex;align-items:center;gap:24px;border:1px solid var(--ink);border-radius:100px;padding:9px 16px 9px 21px;font-size:13px}
.social-links a:after{content:"↗";font:18px var(--font)}
.site-footer{border-top:1px solid var(--line);padding:39px 0 27px}
.footer-inner{display:flex;align-items:start;justify-content:space-between;gap:35px}
.footer-brand{font-family:"Yu Mincho","Hiragino Mincho ProN","Noto Serif JP",serif;font-size:29px;letter-spacing:.17em;line-height:1.2}
.footer-inner small{font-size:11px;color:var(--muted)}
.footer-nav{display:flex;flex-wrap:wrap;gap:18px;font-size:12px}
.footer-bottom{display:flex;justify-content:space-between;border-top:1px solid var(--line);margin-top:37px;padding-top:19px;font-size:11px;color:var(--muted)}
.eyebrow,.kicker,.page-number,.side-heading,.value small,.project-row .number,.timeline-item .num,.philosophy-values .num,.project-detail .num,.roadmap time,.contact-option small,.status.future,.nav a[aria-current="page"],.home-hero-side .side-label{color:var(--red-dark)}
.future-band .eyebrow{color:#ffc3aa}
@media(max-width:1050px){.header-descriptor{display:none}.nav{gap:15px}.home-hero h1{font-size:clamp(43px,5.2vw,58px)}.home-hero-grid{grid-template-columns:60% 40%}}
@media(max-width:760px){.wrap{width:min(calc(100% - 38px),var(--max))}.site-header{height:69px}.brand{font-size:25px}.menu-toggle{display:block}.nav{display:none;position:absolute;top:68px;left:0;right:0;background:var(--paper);border-bottom:1px solid var(--line);box-shadow:0 13px 18px rgba(0,0,0,.06);padding:13px 19px 23px;flex-direction:column;align-items:stretch;gap:0}.nav.is-open{display:flex}.nav a{padding:9px 0;font-size:14px}.nav a[aria-current="page"]{border-bottom:0}.nav-contact{align-self:flex-start;margin:12px 0 0}.home-hero-grid{display:block;min-height:0}.home-hero-copy{padding:61px 0 45px}.home-hero h1{font-size:clamp(32px,7.4vw,46px);margin:28px 0 27px}.home-hero-side{border-left:0;border-top:1px solid var(--line);padding:25px 0 43px}.home-hero-side .side-label{display:none}.home-hero-side p{max-width:none}.home-thread{height:470px;top:auto;bottom:0;opacity:.5}.home-quote,.future-inner,.content-grid,.vision-target{grid-template-columns:1fr;gap:20px}.section-pad{padding:70px 0}.home-quote{padding:68px 0}.section-head{display:block}.section-head .section-note{margin-top:15px}.values-grid{display:block}.value,.value:first-child,.value:last-child{padding:24px 0;border-right:0;border-bottom:1px solid var(--line)}.value:last-child{border-bottom:0}.value h3{margin:11px 0 8px}.project-row{grid-template-columns:50px 1fr 18px;gap:12px;padding:23px 0}.project-row p{grid-column:2;grid-row:2}.project-row .arrow{grid-column:3;grid-row:1}.future-band{padding:68px 0}.future-band:after{width:310px;height:300px;right:-150px;top:30px}.contact-band{padding:68px 0 76px}.page-hero{padding:58px 0}.page-hero-inner{display:block}.page-number{display:block;margin-bottom:13px}.page-hero h1{font-size:clamp(35px,8vw,51px);margin:11px 0 18px}.page-hero p{font-size:14px}.side-heading{margin-bottom:10px}.timeline-item{grid-template-columns:78px 1fr;gap:12px}.timeline-item h3{font-size:22px}.philosophy-values article{grid-template-columns:52px 1fr;gap:10px}.philosophy-values article p{grid-column:2}.project-detail{grid-template-columns:62px 1fr;gap:14px}.roadmap li{grid-template-columns:110px 1fr;gap:15px}.contact-options{grid-template-columns:1fr;gap:10px}.contact-method{padding:28px}.footer-inner{display:block}.footer-nav{margin-top:22px}}
@media(max-width:760px){.about-hero-layout{display:block}.portrait-hero{max-width:310px;margin-top:31px}.portrait-column{max-width:310px}.home-quote{gap:35px}}
@media(max-width:480px){.home-hero h1{font-size:clamp(31px,7.7vw,37px);letter-spacing:.04em}.home-hero-lead{font-size:14px}.home-hero-side p{font-size:14px}.home-quote h2,.section-head h2,.future-band h2,.contact-band h2{font-size:30px}.page-hero h1{font-size:clamp(29px,7.6vw,34px);letter-spacing:.03em}.quote-panel{padding:25px 22px}.timeline-item{display:block}.timeline-item .num{display:block;margin-bottom:10px}.project-detail{display:block}.project-detail .num{display:block;margin-bottom:10px}.roadmap li{display:block}.roadmap time{display:block;margin-bottom:9px}.footer-bottom{gap:15px;flex-direction:column}}
@media(max-width:480px){.mobile-only{display:initial}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important}}

/* contact page redesign (colors unchanged) */
.c-topics{padding:100px 0 70px}
.c-grid{display:grid;grid-template-columns:340px 1fr;gap:56px;align-items:start}
.c-side{position:sticky;top:30px}
.c-side h2{font-size:clamp(26px,2.6vw,34px);line-height:1.55;letter-spacing:.05em;margin:12px 0 18px}
.c-side p{font-size:14px;line-height:2.1;color:var(--muted);margin:0}
.c-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--ink)}
.c-item{display:grid;grid-template-columns:84px 1fr;gap:12px;padding:34px 0 34px 6px;border-bottom:1px solid var(--line);transition:padding .25s,background .25s}
.c-item:hover{padding-left:22px;background:var(--paper-deep)}
.c-item small{font:34px/1 var(--font);color:var(--red-dark);padding-top:6px}
.c-tag{display:inline-block;font-size:11px;letter-spacing:.16em;color:var(--red-dark);margin-bottom:6px}
.c-item h3{font-size:26px;line-height:1.5;letter-spacing:.03em;margin:0 0 8px}
.c-item p{font-size:14px;line-height:2;color:var(--muted);margin:0}
.c-reach{padding:30px 0 110px}
.c-panel{display:grid;grid-template-columns:1fr 1.1fr;gap:56px;align-items:center;background:var(--paper-deep);border-radius:32px;padding:64px 60px;position:relative;overflow:hidden}
.c-panel:after{content:"";position:absolute;right:-110px;top:-130px;width:360px;height:330px;border:1px solid rgba(255,127,80,.55);border-radius:52% 48% 60% 40%;transform:rotate(23deg);pointer-events:none}
.c-panel-text,.c-links{position:relative;z-index:1}
.c-panel h2{font-size:clamp(30px,3.6vw,44px);line-height:1.5;margin:12px 0 16px}
.c-panel p{font-size:14px;line-height:2.1;color:var(--muted);margin:0}
.c-links{display:grid;gap:12px}
.c-links a{display:flex;align-items:center;justify-content:space-between;gap:20px;background:var(--paper);border:1px solid var(--ink);border-radius:100px;padding:18px 28px;transition:background .2s,color .2s,transform .2s}
.c-links a:after{content:"↗";font:22px/1 var(--font)}
.c-links span{font-size:20px;letter-spacing:.06em;margin-right:auto}
.c-links em{font-style:normal;font-size:12px;color:var(--muted);letter-spacing:.08em}
.c-links a:hover{background:var(--ink);color:var(--paper);transform:translateX(6px)}
.c-links a:hover em{color:var(--paper)}
.c-closing{text-align:center;font-size:15px;margin:56px 0 0;color:var(--ink)}
@media(max-width:900px){.c-grid{grid-template-columns:1fr;gap:34px}.c-side{position:static}.c-panel{grid-template-columns:1fr;gap:34px;padding:44px 28px}}
@media(max-width:480px){.c-topics{padding:64px 0 40px}.c-item{grid-template-columns:52px 1fr}.c-item small{font-size:24px}.c-item h3{font-size:21px}.c-links a{padding:15px 20px}.c-links em{display:none}.c-reach{padding-bottom:76px}}