:root{
  --black:#000000;--ink:#1A1A1A;--gray:#5A5A5A;--line:#DCDCDC;--line-soft:#EEEEEE;
  --white:#FFFFFF;--accent:#D12E26;--logo-font:"Inter","Helvetica Neue",Arial,sans-serif;
  --sans:"Noto Sans JP","Hiragino Kaku Gothic ProN","BIZ UDPGothic",sans-serif;
  --gutter:clamp(1.25rem,5vw,4rem);--maxw:76rem;--hdr:72px;
}
*,*::before,*::after{box-sizing:border-box}
html{font-family:var(--sans);font-feature-settings:"palt" 1;line-break:strict;word-break:normal;overflow-wrap:anywhere;-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:var(--hdr)}
body{margin:0;background:var(--white);color:var(--ink);font-size:16px;line-height:1.9}
h1,h2,h3,h4{margin:0;font-weight:700;line-height:1.3;letter-spacing:-.01em;text-align:left}
p{margin:0}a{color:inherit}img{max-width:100%;display:block}.wrap{max-width:var(--maxw);margin:0 auto;padding:0 var(--gutter)}
.hdr{position:sticky;top:0;z-index:60;background:var(--black);color:#fff;height:var(--hdr);display:flex;align-items:center}
.hdr .bar{max-width:var(--maxw);margin:0 auto;padding:0 var(--gutter);width:100%;display:flex;align-items:center;justify-content:space-between;gap:1rem}
.brand{display:flex;align-items:center;gap:.7rem;text-decoration:none;color:#fff}.brand img{width:26px;height:26px;object-fit:contain}
.brand .wm{font-family:var(--logo-font);font-weight:600;font-size:1.02rem;letter-spacing:-.015em;white-space:nowrap}.brand .wm b{font-weight:700}.brand .wm span{font-weight:400;opacity:.82}
.nav{display:flex;gap:2rem;font-size:.84rem;letter-spacing:.02em}.nav a{color:rgba(255,255,255,.85);text-decoration:none;position:relative;padding:.4rem 0}.nav a::after{content:"";position:absolute;left:0;bottom:0;height:2px;width:0;background:var(--accent);transition:width .25s ease}.nav a:hover{color:#fff}.nav a:hover::after,.nav a[aria-current="page"]::after{width:100%}
.burger{display:none;flex-direction:column;gap:5px;background:none;border:0;padding:6px;cursor:pointer}.burger span{display:block;width:22px;height:2px;background:#fff}.mobile-nav{display:none}.mobile-nav:not([hidden]){display:block}
.eyebrow{font-family:var(--logo-font);font-size:.72rem;font-weight:700;letter-spacing:.18em;color:var(--accent);margin-bottom:1rem}.rule{height:1px;background:var(--line);border:0;margin:0}
section{padding:clamp(3.5rem,7vw,6.5rem) 0}.lede{color:var(--gray);font-size:clamp(.95rem,1.6vw,1.05rem);max-width:44em}
.more{display:inline-flex;align-items:center;gap:.5rem;font-size:.92rem;font-weight:500;text-decoration:none;color:var(--ink);border-bottom:1px solid var(--ink);padding-bottom:.2rem;margin-top:1.4rem}.more::after{content:"→";color:var(--accent);font-weight:700}.more:hover{color:var(--accent);border-bottom-color:var(--accent)}
.hero{padding:clamp(3.5rem,8vw,7rem) 0 clamp(3rem,6vw,5rem)}.hero h1{font-size:clamp(2rem,6.2vw,4.2rem);line-height:1.22;letter-spacing:-.02em;max-width:18em}.hero .sub{margin-top:1.8rem;max-width:38em;font-size:clamp(1rem,1.9vw,1.2rem);color:var(--gray);line-height:1.9}
.page-hero{padding:clamp(1.5rem,3.5vw,2.75rem) 0;border-bottom:1px solid var(--line)}.page-hero h1{font-size:clamp(2rem,5vw,3.5rem);max-width:18em}.page-hero .lede{margin-top:1.4rem}.breadcrumbs{display:flex;flex-wrap:wrap;gap:.35rem .65rem;margin-bottom:1.5rem;font-size:.78rem;color:var(--gray)}.breadcrumbs a{text-decoration:none}.breadcrumbs a:hover{color:var(--accent)}.breadcrumbs a+a::before,.breadcrumbs span+span::before,.breadcrumbs a+span::before{content:"/";margin-right:.65rem;color:#AAA}
.photo-bg,.motion-bg{position:relative;isolation:isolate;overflow:hidden}.photo-bg::before,.photo-bg::after,.motion-bg::before,.motion-bg::after{content:"";position:absolute;inset:0;pointer-events:none}.photo-bg::before,.motion-bg::before{z-index:-2;background-repeat:no-repeat;background-size:cover;background-position:center bottom}.photo-bg::after,.motion-bg::after{z-index:-1}.photo-bg>.wrap,.motion-bg>.wrap{position:relative;z-index:1}.page-hero.photo-bg{min-height:clamp(15rem,20.8vw,18.75rem);display:flex;align-items:flex-end}.page-hero.photo-bg>.wrap{width:100%}
.home-hero{min-height:clamp(30rem,64vh,42rem);display:flex;align-items:flex-end;color:#fff;padding-bottom:clamp(2rem,4vw,3.5rem)}.home-hero>.wrap{width:100%}.home-hero::before{background-image:url("/assets/backgrounds/home-sky-21x9-v3.jpg");filter:saturate(.78)}.home-hero::after{background:linear-gradient(90deg,rgba(3,14,30,.9) 0%,rgba(3,14,30,.72) 52%,rgba(3,14,30,.35) 100%)}.home-hero .eyebrow{color:#fff;opacity:.72}.home-hero .sub{color:rgba(255,255,255,.84);text-shadow:0 1px 14px rgba(0,0,0,.35)}
.service-hero{color:#fff;border-bottom:0}.service-hero::before{background-image:url("/assets/backgrounds/services-city-blur-21x9-v4.jpg");background-position:center 58%;filter:saturate(.82) contrast(1.04)}.service-hero::after{background:linear-gradient(90deg,rgba(5,14,28,.7),rgba(5,14,28,.38))}.service-hero h1,.service-hero .lede,.service-hero .eyebrow,.service-hero .breadcrumbs{text-shadow:0 1px 12px rgba(0,0,0,.5)}.service-hero .breadcrumbs,.service-hero .lede{color:rgba(255,255,255,.9)}.service-hero .eyebrow{color:#fff}.service-hero .breadcrumbs a:hover{color:#fff}
.cases-hero{color:#fff;border-bottom:0}.cases-hero::before{background-image:url("/assets/backgrounds/case-studies-road-blur-21x9-v2.jpg");background-position:center 58%;filter:saturate(.78) contrast(1.04)}.cases-hero::after{background:linear-gradient(90deg,rgba(4,13,26,.82) 0%,rgba(4,13,26,.58) 54%,rgba(4,13,26,.34) 100%)}.cases-hero h1,.cases-hero .lede,.cases-hero .breadcrumbs{text-shadow:0 1px 12px rgba(0,0,0,.55)}.cases-hero .breadcrumbs,.cases-hero .lede{color:rgba(255,255,255,.92)}.cases-hero .breadcrumbs a:hover{color:#fff}
.about-hero{background:#07101d;color:#fff;border-bottom:0}.about-hero::before{background-image:url("/assets/backgrounds/about-f-line-art-21x9-v1.jpg");background-position:left center}.about-hero::after{background:linear-gradient(90deg,rgba(7,16,29,.82) 0%,rgba(7,16,29,.5) 58%,rgba(7,16,29,.18) 100%)}.about-hero h1,.about-hero .lede,.about-hero .breadcrumbs{text-shadow:0 1px 12px rgba(0,0,0,.55)}.about-hero .breadcrumbs,.about-hero .lede{color:rgba(255,255,255,.92)}.about-hero .breadcrumbs a:hover{color:#fff}
.case-detail-hero{min-height:clamp(15rem,20.8vw,18.75rem);display:flex;align-items:flex-end;padding-top:clamp(.75rem,1.6vw,1.25rem);padding-bottom:clamp(.75rem,1.6vw,1.25rem)}.case-detail-hero>.wrap{width:100%}
.cta-row{display:flex;flex-wrap:wrap;gap:.9rem;margin-top:2.4rem}.btn{display:inline-block;padding:.85rem 2rem;font-size:.92rem;font-weight:500;text-decoration:none;border:1px solid var(--ink);color:var(--ink)}.btn:hover{background:var(--ink);color:#fff}.btn.solid{background:var(--ink);color:#fff}.btn.solid:hover{background:var(--accent);border-color:var(--accent)}
.split{display:grid;grid-template-columns:minmax(0,1fr);gap:2rem}.split h2{font-size:clamp(1.5rem,3.4vw,2.3rem);line-height:1.45}
.pillars{display:grid;gap:0;margin-top:1rem}.pillar{padding:2.2rem 0;border-top:1px solid var(--line);display:grid;gap:.6rem 2.5rem}@media (min-width:52rem){.pillar{grid-template-columns:5rem minmax(0,1fr)}}.pillar:last-child{border-bottom:1px solid var(--line)}.pillar .no{font-family:var(--logo-font);font-size:1.6rem;font-weight:700;color:var(--accent);line-height:1}.pillar h3{font-size:1.15rem;margin-bottom:.6rem}.pillar p{color:var(--gray);font-size:.95rem;max-width:44em}
.phases{display:grid;gap:0;margin-top:1rem}.phase{display:grid;gap:.5rem 2rem;padding:2rem 0;border-top:1px solid var(--line)}@media (min-width:64rem){.phase{grid-template-columns:7rem 1fr 1fr}}.phase:last-child{border-bottom:1px solid var(--line)}.phase .ph{font-family:var(--logo-font);font-size:.78rem;font-weight:700;letter-spacing:.12em;color:var(--accent)}.phase h3{font-size:1.08rem;margin-bottom:.5rem}.phase .do{color:var(--gray);font-size:.93rem}.phase .left{font-size:.9rem}.phase .left .lab{font-family:var(--logo-font);font-size:.68rem;font-weight:700;letter-spacing:.12em;color:var(--gray);display:block;margin-bottom:.35rem}
.cards{display:grid;gap:1px;background:var(--line);border:1px solid var(--line);margin-top:2.4rem}@media (min-width:52rem){.cards{grid-template-columns:repeat(2,1fr)}}@media (min-width:76rem){.cards{grid-template-columns:repeat(3,1fr)}}
.card{background:#fff;padding:1.8rem 1.6rem 2rem;display:flex;flex-direction:column;text-decoration:none}.card .thumb{aspect-ratio:21/9;background:linear-gradient(135deg,#F2F3F4,#E4E6E8);margin:-1.8rem -1.6rem 1.4rem;overflow:hidden}.card .thumb img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .35s ease}.tag,.card .tag{font-family:var(--logo-font);font-size:.68rem;font-weight:700;letter-spacing:.14em;color:var(--accent);margin-bottom:.6rem}.card h3{font-size:1.05rem;line-height:1.55;margin-bottom:.6rem;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;min-height:3.1em}.card .summary{color:var(--gray);font-size:.88rem;line-height:1.9;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden;min-height:5.7em}.card .go{margin-top:auto;padding-top:1.2rem;font-size:.85rem;font-weight:500;display:inline-flex;gap:.4rem;align-items:center}.card .go::after{content:"→";color:var(--accent);font-weight:700}.card:hover h3{color:var(--accent)}.card:hover .thumb img{transform:scale(1.025)}
.case-carousel{margin-top:2.4rem}.case-carousel .case-track{display:flex;gap:1px;margin-top:0;overflow-x:auto;scroll-behavior:smooth;scroll-snap-type:x mandatory;scroll-padding-inline:1px;overscroll-behavior-inline:contain;scrollbar-width:none}.case-carousel .case-track::-webkit-scrollbar{display:none}.case-carousel .card{flex:0 0 calc((100% - 2px)/3);scroll-snap-align:start;scroll-snap-stop:always}.carousel-controls{display:flex;justify-content:flex-end;gap:.55rem;margin-top:1rem}.carousel-button{width:3rem;height:3rem;border:1px solid var(--ink);background:#fff;color:var(--ink);font:500 1.2rem/1 var(--sans);cursor:pointer}.carousel-button:hover:not(:disabled){background:var(--ink);color:#fff}.carousel-button:disabled{opacity:.3;cursor:default}@media (max-width:75.999rem){.case-carousel .card{flex-basis:calc((100% - 1px)/2)}}@media (max-width:51.999rem){.case-carousel .card{flex-basis:100%}}
.case-meta{margin-top:1.25rem;font-family:var(--logo-font);font-size:.78rem;letter-spacing:.08em;color:var(--gray)}
.case-cover{padding-top:2.5rem}.case-cover img{width:100%;height:auto;aspect-ratio:21/9;object-fit:cover}
.case-story{padding-top:clamp(3.5rem,7vw,6rem)}
.story-section{display:block;padding:clamp(3.5rem,7vw,6rem) 0;border-bottom:1px solid var(--line)}
.story-kicker{font-family:var(--logo-font);font-size:.72rem;font-weight:700;letter-spacing:.16em;color:var(--accent);margin-bottom:1rem}.story-heading h2{font-size:clamp(1.55rem,3.4vw,2.4rem);line-height:1.4;max-width:24em}.story-body{width:100%;max-width:none;margin-top:1.75rem}.story-body p{color:var(--gray);font-size:clamp(.97rem,1.4vw,1.05rem);line-height:2}.story-body p+p{margin-top:1.5rem}.story-highlight{margin-top:2rem;padding:1.5rem 0;border-top:1px solid var(--ink);border-bottom:1px solid var(--ink);color:var(--ink)!important;font-size:clamp(1.1rem,2.2vw,1.35rem)!important;font-weight:700;line-height:1.7!important}
.page-links{display:flex;flex-wrap:wrap;justify-content:space-between;gap:1rem;padding-top:2rem;margin-top:1rem}.page-links a{text-decoration:none}.page-links a:hover{color:var(--accent)}
.vision{background:var(--black);color:#fff}.vision .eyebrow{color:#fff;opacity:.7}.vision h2{font-size:clamp(1.8rem,4.6vw,3rem);line-height:1.35;max-width:16em}.vision p{color:rgba(255,255,255,.84);max-width:42em;margin-top:1.6rem;font-size:1rem}.vision.motion-bg{min-height:clamp(30rem,64vh,42rem);display:flex;align-items:flex-end;padding-bottom:clamp(2rem,4vw,3.5rem)}.vision.motion-bg>.wrap{width:100%}.vision.motion-bg::before{background-image:url("/assets/backgrounds/vision-motion-blur-21x9-v3.jpg");filter:saturate(.8)}.vision.motion-bg::after{background:linear-gradient(90deg,rgba(0,6,18,.9),rgba(0,6,18,.68))}
.experience-split h2{font-size:clamp(1.45rem,2.7vw,2.05rem);line-height:1.48;letter-spacing:-.025em;padding-bottom:.15em;overflow:visible}
.tags{display:flex;flex-wrap:wrap;gap:.55rem;margin-top:2rem;padding:0}.tags li{list-style:none}.tags a{display:block;font-size:.84rem;border:1px solid var(--line);padding:.45rem 1rem;color:var(--gray);text-decoration:none;transition:border-color .2s,color .2s,background .2s}.tags a:hover{border-color:var(--ink);color:var(--ink);background:#F7F7F7}
.case-filters{display:flex;flex-wrap:wrap;gap:.55rem;margin:0 0 2rem;padding:0}.case-filters li{list-style:none}.case-filter{display:block;border:1px solid var(--line);padding:.5rem 1rem;color:var(--gray);font-size:.84rem;text-decoration:none;background:#fff}.case-filter:hover,.case-filter[aria-pressed="true"]{border-color:var(--ink);background:var(--ink);color:#fff}.filter-status{min-height:1.9em;color:var(--gray);font-size:.88rem;margin-bottom:.5rem}.cards[data-case-list]{margin-top:0;background:transparent;border:0}.cards[data-case-list] .card{border:1px solid var(--line)}.card[hidden]{display:none!important}
.facts{display:grid;grid-template-columns:max-content 1fr;gap:0 2.5rem;margin-top:1rem;max-width:46rem}.facts dt{font-size:.86rem;color:var(--gray);padding:1rem 0;border-top:1px solid var(--line-soft);white-space:nowrap}.facts dd{margin:0;padding:1rem 0;border-top:1px solid var(--line-soft);font-size:.95rem}
.notice{background:#F7F7F7;border-left:3px solid var(--accent);padding:1rem 1.2rem;color:var(--gray);font-size:.9rem;margin-top:1.5rem}.center-page{min-height:60vh;padding-top:clamp(4rem,10vw,8rem);padding-bottom:clamp(4rem,10vw,8rem)}.center-page p{margin-top:1rem}
.foot{background:var(--black);color:rgba(255,255,255,.72);padding:3rem 0 2.4rem;font-size:.85rem}.foot .top{display:flex;flex-wrap:wrap;justify-content:space-between;gap:2rem;padding-bottom:2rem;border-bottom:1px solid rgba(255,255,255,.15)}.foot nav{display:flex;flex-wrap:wrap;gap:.6rem 2rem;font-size:.85rem}.foot nav a{color:rgba(255,255,255,.8);text-decoration:none}.foot nav a:hover{color:#fff}.foot .addr{font-size:.82rem;line-height:1.8;color:rgba(255,255,255,.6)}.foot .bottom{padding-top:1.4rem;font-size:.75rem;color:rgba(255,255,255,.5);display:flex;flex-wrap:wrap;justify-content:space-between;gap:.5rem 1.5rem}
@media (max-width:60rem){.nav{display:none}.burger{display:flex}.mobile-nav{position:absolute;top:var(--hdr);left:0;right:0;padding:1rem var(--gutter) 1.3rem;background:var(--black);border-top:1px solid rgba(255,255,255,.15);box-shadow:0 .8rem 1.2rem rgba(0,0,0,.18)}.mobile-nav a{display:block;padding:.85rem 0;color:rgba(255,255,255,.9);font-size:.9rem;letter-spacing:.04em;text-decoration:none;border-bottom:1px solid rgba(255,255,255,.14)}.mobile-nav a:last-child{border-bottom:0}}
@media (max-width:40rem){.home-hero{min-height:0;align-items:flex-end;padding-top:clamp(4rem,18vw,6rem);padding-bottom:0}.home-hero .wrap{padding-bottom:0}.home-hero .sub{padding-bottom:0;margin-bottom:0}.vision.motion-bg{min-height:0;padding-bottom:1.5rem}.page-hero.photo-bg,.case-detail-hero{min-height:18.5625rem}.facts{grid-template-columns:1fr;gap:0}.facts dd{border-top:none;padding-top:0}.card h3,.card .summary{min-height:0}.brand .wm{font-size:.9rem}}
@media (prefers-reduced-motion:reduce){html,.case-carousel .case-track{scroll-behavior:auto}.card .thumb img{transition:none}.card:hover .thumb img{transform:none}}
a:focus-visible,button:focus-visible{outline:3px solid var(--accent);outline-offset:3px}

.hero-line{display:block}.hero-phrase{display:inline-block;max-width:100%}
@media(max-width:40rem){.home-hero h1{font-size:clamp(1.4rem,7.1vw,1.75rem);line-height:1.35}}
