:root{color-scheme:light;--color-bg: #f7f6f2;--color-bg-muted: #eef2ef;--color-bg-soft: #faf8f1;--color-surface: #ffffff;--color-input-bg: #faf8f1;--color-text: #1d2522;--color-text-muted: #5d6661;--color-text-subtle: #8a918c;--color-text-legacy: #777777;--color-inverse: #ffffff;--color-inverse-muted: #b9cbc2;--color-brand-primary: #166448;--color-brand-primary-hover: #0f4f38;--color-brand-primary-soft: #e3eee9;--color-bg-inverse: #0f2e25;--color-accent: #8e7332;--color-accent-strong: #c9a85c;--color-form-submit: var(--color-brand-primary);--color-border: rgba(29, 37, 34, .18);--color-border-soft: rgba(29, 37, 34, .1);--color-border-inverse: rgba(255, 255, 255, .3);--color-footer-bg: var(--color-bg-inverse);--color-footer-text: var(--color-inverse-muted);--color-hero-overlay: rgba(15, 46, 37, .42);--font-sans: "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Yu Gothic Medium", "Yu Gothic", Meiryo, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-display: "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Yu Gothic Medium", "Yu Gothic", Meiryo, system-ui, sans-serif;--font-legacy-body: "Open Sans", Helvetica, Arial, sans-serif;--font-legacy-heading: "Raleway", Helvetica, Arial, sans-serif;--font-nav-legacy: "ABeeZee", system-ui, sans-serif;--font-size-micro: 11px;--font-size-xs: 12px;--font-size-sm: 13px;--font-size-md: 15.5px;--font-size-lg: 18px;--font-size-xl: 22px;--font-size-2xl: 28px;--font-size-3xl: 38px;--font-size-h3: clamp(18px, 1.6vw, 22px);--font-size-display: clamp(38px, 5.6vw, 72px);--font-size-section-title: clamp(28px, 3.2vw, 44px);--font-weight-regular: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--font-weight-extrabold: 800;--line-height-tight: 1.2;--line-height-heading: 1.5;--line-height-body: 1.9;--line-height-relaxed: 1.9;--letter-spacing-normal: 0;--letter-spacing-label: .32em;--letter-spacing-current-nav: 0;--letter-spacing-current-label: .32em;--space-0: 0;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-7: 28px;--space-8: 32px;--space-9: 36px;--space-10: 40px;--space-12: 48px;--space-14: 56px;--space-18: 72px;--space-28: 140px;--section-padding-y: var(--space-18);--section-padding-y-lg: 96px;--section-padding-y-xl: var(--space-28);--section-padding-y-fluid: clamp(72px, 9vw, 140px);--section-title-gap: clamp(40px, 5vw, 72px);--layout-container: 1280px;--layout-gutter: clamp(20px, 4vw, 56px);--breakpoint-mobile: 680px;--breakpoint-tablet: 1024px;--breakpoint-nav: 1140px;--header-height: 72px;--logo-width: 272px;--logo-height: 72px;--article-card-image-ratio: 3 / 1;--project-image-ratio: 8 / 5;--radius-none: 0;--radius-sm: 2px;--radius-md: 4px;--radius-lg: 8px;--radius-media: 16px;--radius-round: 50%;--radius-pill: 9999px;--border-width: 1px;--border-width-strong: 2px;--border-default: var(--border-width) solid var(--color-border);--border-soft: var(--border-width) solid var(--color-border-soft);--border-button-outline: var(--border-width) solid currentColor;--shadow-header: none;--shadow-card: none;--shadow-card-hover: none;--shadow-input-inset: none;--shadow-button-inset: none;--shadow-soft: 0 12px 30px rgba(20, 32, 30, .06);--shadow-media: 0 28px 64px -24px rgba(0, 0, 0, .5), 0 4px 16px rgba(0, 0, 0, .2);--button-primary-bg: var(--color-brand-primary);--button-primary-bg-hover: var(--color-brand-primary-hover);--button-primary-text: var(--color-inverse);--button-primary-radius: var(--radius-md);--button-primary-font-size: 15px;--button-primary-font-weight: var(--font-weight-bold);--button-cta-bg: var(--color-brand-primary);--button-cta-bg-hover: var(--color-brand-primary-hover);--button-cta-radius: var(--radius-md);--button-form-bg: var(--color-form-submit);--button-form-radius: var(--radius-md);--button-form-font-size: 18px;--button-form-font-weight: var(--font-weight-bold)}:root{--paper: var(--color-bg);--white: var(--color-surface);--ink: var(--color-text);--ink-sub: var(--color-text-muted);--deep: var(--color-bg-inverse);--deep-text: var(--color-inverse-muted);--green: var(--color-brand-primary);--green-hov: var(--color-brand-primary-hover);--gold: var(--color-accent);--line: var(--color-border);--line-soft: var(--color-border-soft);--serif: var(--font-display);--sans: var(--font-sans);--fs-display: var(--font-size-display);--fs-h2: var(--font-size-section-title);--fs-h3: var(--font-size-h3);--fs-body: var(--font-size-md);--fs-small: var(--font-size-sm);--fs-micro: var(--font-size-micro);--maxw: var(--layout-container);--gut: var(--layout-gutter);--sec-y: var(--section-padding-y-fluid);--radius: var(--radius-md)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:var(--fs-body);line-height:1.9;-webkit-font-smoothing:antialiased;font-feature-settings:"palt"}body.nav-open{overflow:hidden}a{color:inherit}img,video{max-width:100%}button,input,textarea,select{font:inherit}.wrap{width:min(var(--maxw),100%);margin:0 auto;padding:0 var(--gut)}.micro{color:var(--gold);font-size:var(--fs-micro);font-weight:700;letter-spacing:.32em;text-transform:uppercase}.btn{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:58px;padding:18px 36px;border:1px solid transparent;border-radius:var(--radius);font-size:15px;font-weight:700;line-height:1.3;text-decoration:none;transition:background-color .2s ease,border-color .2s ease,color .2s ease,transform .2s ease}.btn .arrow{transition:transform .2s ease}.btn:hover .arrow{transform:translate(4px)}.btn-primary{background:var(--green);color:#fff}.btn-primary:hover{background:var(--green-hov)}.btn-ghost{border-color:var(--line);background:transparent;color:var(--ink)}.btn-ghost:hover{border-color:var(--ink)}.site-header{position:sticky;top:0;z-index:60;border-bottom:1px solid var(--line);background:#f7f6f2f0;backdrop-filter:blur(6px)}.header-inner{display:flex;align-items:center;gap:34px;height:var(--header-height)}.logo{color:var(--ink);font-family:var(--serif);font-size:24px;font-weight:800;letter-spacing:.04em;text-decoration:none}.logo sup{margin-left:10px;color:var(--ink-sub);font-family:var(--sans);font-size:10px;font-weight:600;letter-spacing:.2em;vertical-align:middle}.global-nav{display:flex;gap:30px;margin-left:auto}.global-nav a{border-bottom:1px solid transparent;font-size:13.5px;font-weight:600;text-decoration:none}.global-nav a:hover,.global-nav a[aria-current=page]{border-bottom-color:var(--ink)}.header-cta{display:inline-flex;flex-shrink:0;align-items:center;gap:10px;padding:11px 22px;border-radius:var(--radius);background:var(--green);color:#fff;font-size:13.5px;font-weight:700;text-decoration:none}.header-cta:hover{background:var(--green-hov)}.menu-toggle{display:none;margin-left:auto;padding:10px 0;border:0;background:transparent;color:var(--ink);font-size:13px;font-weight:700}.sec-head{display:grid;grid-template-columns:220px 1fr;gap:32px;margin-bottom:clamp(40px,5vw,72px);padding-top:28px;border-top:1px solid var(--ink)}.sec-head .idx{display:flex;flex-direction:column;gap:6px}.sec-head .num{color:var(--ink-sub);font-family:var(--serif);font-size:15px;letter-spacing:.1em}.sec-title{margin:0;font-family:var(--serif);font-size:var(--fs-h2);font-weight:800;letter-spacing:.015em;line-height:1.5;text-wrap:pretty}.sec-lede{max-width:720px;margin:18px 0 0;color:var(--ink-sub);text-wrap:pretty}.page-hero{padding:clamp(64px,8vw,116px) 0 clamp(36px,6vw,72px)}.page-hero-grid{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,4fr);gap:clamp(32px,5vw,80px);align-items:end}.page-kicker{display:block;margin-bottom:20px}.page-hero h1{margin:0;font-family:var(--serif);font-size:var(--fs-display);font-weight:800;letter-spacing:.015em;line-height:1.36;text-wrap:pretty}.page-hero h1 em{color:var(--green);font-style:normal}.page-hero-side{display:flex;flex-direction:column;gap:26px;padding-bottom:10px}.page-hero-side p{margin:0;color:var(--ink-sub);font-size:15px;text-wrap:pretty}.hero-cta-row,.cta-row{display:flex;flex-wrap:wrap;gap:14px}.hero-facts{display:grid;grid-template-columns:repeat(3,1fr);margin:clamp(48px,6vw,88px) 0 0;padding:0;border-top:1px solid var(--ink)}.hero-facts>div{padding:26px 28px 30px 0;border-right:1px solid var(--line-soft)}.hero-facts>div+div{padding-left:28px}.hero-facts>div:last-child{border-right:none}.hero-facts dt{margin-bottom:10px;color:var(--gold);font-size:var(--fs-micro);font-weight:700;letter-spacing:.28em;text-transform:uppercase}.hero-facts dd{margin:0;font-size:15px;font-weight:700;line-height:1.7}.hero-facts dd span{display:block;margin-top:4px;color:var(--ink-sub);font-size:var(--fs-small);font-weight:400}.section{padding:var(--sec-y) 0 0}.section-panel{margin-top:var(--sec-y);padding:var(--sec-y) 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--white)}.deep-section{margin-top:var(--sec-y);padding:var(--sec-y) 0;background:var(--deep);color:#fff}.deep-section .sec-head{border-top-color:#ffffffd9}.deep-section .sec-head .num,.deep-section .sec-lede{color:var(--deep-text)}.deep-section .micro{color:var(--color-accent-strong)}.row-list{margin:0;padding:0;border-top:1px solid var(--ink);list-style:none}.row-link,.split-row,.article-row,.work-row,.metric-row{display:grid;grid-template-columns:90px minmax(0,5fr) minmax(0,6fr) 60px;gap:28px;align-items:start;padding:34px 0;border-bottom:1px solid var(--line-soft);color:inherit;text-decoration:none;transition:background-color .2s ease}.split-row{grid-template-columns:90px minmax(0,5fr) minmax(0,7fr)}.metric-row{grid-template-columns:170px minmax(0,1fr)}.article-row,.work-row{grid-template-columns:150px minmax(0,5fr) minmax(0,6fr) 46px}.row-link:hover,.article-row:hover,.work-row:hover{background:#1664480a}.row-no{padding-top:8px;color:var(--ink-sub);font-family:var(--serif);font-size:15px;letter-spacing:.12em;white-space:nowrap}.row-title{margin:0;font-family:var(--serif);font-size:clamp(20px,2vw,27px);font-weight:800;line-height:1.55}.row-sub{display:block;margin-top:8px;color:var(--green);font-family:var(--sans);font-size:var(--fs-small);font-weight:600}.row-body p{margin:0;color:var(--ink-sub);font-size:14.5px;text-wrap:pretty}.row-tags,.plain-tags{display:flex;flex-wrap:wrap;gap:4px 20px;margin:12px 0 0;padding:0;font-size:12.5px;font-weight:600;list-style:none}.row-tags li,.plain-tags li{display:flex;align-items:center;gap:8px}.row-tags li:before,.plain-tags li:before{width:14px;height:1px;background:var(--gold);content:""}.row-go{padding-top:10px;color:var(--ink-sub);font-size:22px;text-align:right;transition:color .2s ease,transform .2s ease}.row-link:hover .row-go,.article-row:hover .row-go,.work-row:hover .row-go{color:var(--green);transform:translate(6px)}.process-grid{display:grid;grid-template-columns:repeat(6,1fr);border-top:1px solid var(--ink)}.process-step{display:flex;flex-direction:column;gap:10px;padding:26px 22px 34px 0;border-right:1px solid var(--line-soft)}.process-step+.process-step{padding-left:22px}.process-step:last-child{border-right:none}.process-step .step-num{color:var(--green);font-family:var(--serif);font-size:26px;font-weight:700;line-height:1}.process-step h3{margin:0;font-size:16.5px;font-weight:700}.process-step p{margin:0;color:var(--ink-sub);font-size:var(--fs-small);line-height:1.75}.process-step .out{margin-top:auto;padding-top:14px;color:var(--green);font-size:12px;font-weight:600}.definition-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:0 clamp(32px,5vw,80px)}.definition-item{display:grid;grid-template-columns:150px 1fr;gap:20px;align-items:baseline;margin:0;padding:22px 0;border-bottom:1px solid var(--line-soft)}.definition-item dt{font-size:15px;font-weight:700}.definition-item dd{margin:0;color:var(--ink-sub);font-size:var(--fs-small);line-height:1.8}.definition-item b{display:block;margin-top:6px;color:var(--green);font-size:12.5px;font-weight:600}.team-photo{margin-bottom:clamp(40px,5vw,64px)}.team-photo video,.media-frame img{display:block;width:100%;object-fit:cover;border-radius:16px;box-shadow:var(--shadow-media)}.team-photo video{aspect-ratio:21 / 9}.team-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid rgba(255,255,255,.3)}.team-col{padding:30px 28px 36px 0;border-right:1px solid rgba(255,255,255,.14)}.team-col+.team-col{padding-left:28px}.team-col:last-child{border-right:none}.team-col .role{display:block;margin-bottom:14px;color:var(--color-accent-strong);font-size:var(--fs-micro);font-weight:700;letter-spacing:.3em;text-transform:uppercase}.team-col h3{margin:0 0 16px;font-family:var(--serif);font-size:22px;font-weight:800}.team-col ul{margin:0;padding:0;list-style:none}.team-col li{padding:9px 0;border-bottom:1px solid rgba(255,255,255,.1);color:var(--deep-text);font-size:var(--fs-small);line-height:1.7}.team-col li:last-child{border-bottom:none}.team-principle{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,4fr);gap:32px;align-items:baseline;margin-top:clamp(40px,5vw,64px)}.team-principle .big{margin:0;font-family:var(--serif);font-size:clamp(22px,2.6vw,34px);font-weight:800;line-height:1.6;text-wrap:pretty}.team-principle .small{margin:0;color:var(--deep-text);font-size:var(--fs-small);text-wrap:pretty}.final{padding:var(--sec-y) 0}.final-inner{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,4fr);gap:clamp(32px,5vw,80px);align-items:end;padding-top:clamp(40px,5vw,64px);border-top:1px solid var(--ink)}.final h2{margin:0;font-family:var(--serif);font-size:clamp(30px,4vw,54px);font-weight:800;line-height:1.5;text-wrap:pretty}.final-side{display:flex;flex-direction:column;gap:24px}.final-side p{margin:0;color:var(--ink-sub);font-size:15px;text-wrap:pretty}.final-checks{display:flex;flex-wrap:wrap;gap:6px 24px;margin:0;padding:0;color:var(--ink-sub);font-size:12.5px;list-style:none}.final-checks li{display:flex;gap:8px;align-items:center}.final-checks li:before{color:var(--gold);content:"—"}.site-footer{padding:56px 0 40px;background:var(--deep);color:var(--deep-text)}.footer-top{display:flex;flex-wrap:wrap;gap:24px;align-items:baseline;justify-content:space-between;margin-bottom:24px;padding-bottom:32px;border-bottom:1px solid rgba(255,255,255,.14)}.footer-mark{color:#fff;font-family:var(--serif);font-size:clamp(40px,5vw,64px);font-weight:800;letter-spacing:.04em;line-height:1}.footer-nav{display:flex;flex-wrap:wrap;gap:24px}.footer-nav a{color:var(--deep-text);font-size:13px;text-decoration:none}.footer-nav a:hover{color:#fff}.footer-meta{margin:0;font-size:12px}.article-body{max-width:840px;margin:0 auto;padding:clamp(36px,6vw,72px) var(--gut) var(--sec-y)}.article-body h2{margin:56px 0 18px;padding-top:24px;border-top:1px solid var(--line-soft);font-family:var(--serif);font-size:clamp(24px,3vw,36px);line-height:1.55}.article-body h3{margin:34px 0 12px;font-size:20px}.article-body p,.article-body li{color:var(--ink-sub);line-height:1.95}.article-body p{margin:0 0 18px}.article-body ul,.article-body ol{margin:0 0 26px;padding-left:1.2em}.article-body li+li{margin-top:8px}.service-detail-grid{display:grid;grid-template-columns:minmax(0,6fr) minmax(280px,3fr);gap:clamp(32px,5vw,72px);align-items:start}.side-note{position:sticky;top:calc(var(--header-height) + 24px);padding:28px;border-top:1px solid var(--ink);background:var(--white)}.side-note h2,.side-note h3{margin:0 0 14px;font-size:18px}.side-note p{margin:0 0 18px;color:var(--ink-sub);font-size:var(--fs-small)}.contact-hero{padding-bottom:clamp(28px,4vw,52px)}.contact-hero .page-hero-grid{display:block;max-width:980px}.contact-hero .page-hero-side{max-width:720px;margin-top:clamp(24px,3vw,34px);padding-top:clamp(20px,2vw,26px);padding-bottom:0;border-top:1px solid var(--line)}.contact-hero .page-hero-side p{color:var(--ink);font-size:clamp(15.5px,1.2vw,17px)}.contact-grid{display:block;max-width:var(--maxw)}.contact-copy .sec-head{grid-template-columns:minmax(104px,126px) minmax(0,1fr);gap:clamp(20px,2.6vw,30px);margin-bottom:clamp(34px,4vw,56px)}.contact-copy .sec-lede{max-width:36em;overflow-wrap:anywhere}.contact-notes .metric-row{grid-template-columns:minmax(92px,112px) minmax(0,1fr);gap:clamp(16px,2vw,22px);padding:28px 0}.contact-notes .row-no{padding-top:3px;letter-spacing:.08em;line-height:1.7;white-space:normal}.contact-notes .row-body p{overflow-wrap:anywhere}.contact-grid form{max-width:760px;margin-top:clamp(40px,5vw,64px);margin-left:min(156px,14vw)}.form-grid{display:grid;grid-template-columns:1fr;gap:22px}.field{display:flex;flex-direction:column;gap:8px}.field.full{grid-column:1 / -1}.field.hp-field{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}.field label{font-size:13px;font-weight:700}.field input,.field textarea,.field select{width:100%;min-height:52px;padding:14px 16px;border:1px solid var(--line);border-radius:var(--radius);background:var(--color-input-bg);color:var(--ink)}.field textarea{min-height:180px;resize:vertical}.policy-note{margin:18px 0 0;color:var(--ink-sub);font-size:12.5px}@media(max-width:1024px){.page-hero-grid,.service-detail-grid{grid-template-columns:1fr}.process-grid{grid-template-columns:repeat(3,1fr)}.process-step:nth-child(3n){border-right:none}.process-step:nth-child(3n+1){padding-left:0}.process-step:nth-child(n+4){border-top:1px solid var(--line-soft)}.definition-grid{grid-template-columns:1fr}.sec-head,.contact-copy .sec-head{grid-template-columns:1fr;gap:14px}.contact-grid form{max-width:none;margin-left:0}.side-note{position:static}}@media(max-width:840px){.global-nav,.header-cta{display:none}.menu-toggle{display:inline-flex}.site-header[data-open=true] .global-nav{position:absolute;right:0;left:0;top:100%;display:grid;gap:0;margin:0;border-bottom:1px solid var(--line);background:var(--paper)}.site-header[data-open=true] .global-nav a{padding:18px var(--gut);border-top:1px solid var(--line-soft)}}@media(max-width:680px){.header-inner{height:62px;gap:18px}.logo sup,.page-hero h1 br.pc{display:none}.hero-facts{grid-template-columns:1fr}.hero-facts>div{padding:20px 0;border-right:none;border-bottom:1px solid var(--line-soft)}.hero-facts>div+div{padding-left:0}.hero-facts>div:last-child{border-bottom:none}.row-link,.split-row,.article-row,.work-row{grid-template-columns:56px 1fr;gap:16px;padding:26px 0}.row-body{grid-column:2}.row-go{display:none}.metric-row{grid-template-columns:1fr;gap:8px}.metric-row .row-body{grid-column:auto}.contact-notes .metric-row{grid-template-columns:1fr;gap:10px;padding:24px 0}.page-hero.contact-hero h1 .ln{display:block;overflow:visible}.page-hero.contact-hero h1 .ln-in{display:inline}.process-grid{grid-template-columns:1fr}.process-step{padding:20px 0;border-top:1px solid var(--line-soft);border-right:none}.process-step:first-child{border-top:none}.process-step+.process-step{padding-left:0}.definition-item{grid-template-columns:1fr;gap:6px}.team-photo video{aspect-ratio:16 / 10}.team-grid{grid-template-columns:1fr}.team-col{padding:24px 0;border-right:none;border-bottom:1px solid rgba(255,255,255,.14)}.team-col+.team-col{padding-left:0}.team-col:last-child{border-bottom:none}.team-principle,.final-inner{grid-template-columns:1fr}.final .btn,.form-grid,.form-grid .btn{width:100%}.form-grid{grid-template-columns:1fr}}@media(prefers-reduced-motion:no-preference){html.motion:not(.play) .page-hero h1 .ln-in{transform:translateY(112%)}.page-hero h1 .ln{display:inline-block;overflow:hidden;vertical-align:bottom}.page-hero h1 .ln-in{display:inline-block}html.motion .page-hero h1 .ln-in{transition:transform 1.1s cubic-bezier(.22,.61,.2,1) .25s}html.motion .page-hero h1 .ln:nth-of-type(2) .ln-in{transition-delay:.55s}html.motion:not(.play) .page-hero-side{opacity:0;transform:translateY(10px)}html.motion .page-hero-side{transition:opacity .8s ease 1.15s,transform .8s ease 1.15s}html.motion .contact-hero .page-hero-side{transition:opacity .6s ease .75s,transform .6s ease .75s}html.motion .row-link,html.motion .split-row,html.motion .article-row,html.motion .work-row,html.motion .process-step,html.motion .reveal{transition:opacity .5s ease calc(var(--i, 0) * 60ms),transform .5s ease calc(var(--i, 0) * 60ms),background-color .2s ease}html.motion .row-link,html.motion .article-row,html.motion .work-row{position:relative}html.motion .row-link:before,html.motion .article-row:before,html.motion .work-row:before{position:absolute;left:-16px;top:22%;width:3px;height:56%;background:var(--green);content:"";transform:scaleY(0);transform-origin:top;transition:transform .25s ease}html.motion .row-link:hover:before,html.motion .article-row:hover:before,html.motion .work-row:hover:before{transform:scaleY(1)}}@media print{html.motion *,html.motion *:before{opacity:1!important;transform:none!important;transition:none!important}}
