@import url('https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Noto+Sans+JP:wght@400;500;600;700&family=Plus+Jakarta+Sans:wght@400;500;600&display=swap');

:root { --black:#111214; --porcelain:#f5f4f0; --white:#fbfaf7; --silver:#aeb0b2; --mist:#deded9; --ink:#222326; --cobalt:#2957c8; --line:rgba(255,255,255,.18); --dark-line:rgba(17,18,20,.22); }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--porcelain); color:var(--ink); font-family:'Noto Sans JP',sans-serif; -webkit-font-smoothing:antialiased; }
a { color:inherit; text-decoration:none; }
.container { width:min(100% - 11.5vw, 1400px); margin:auto; }
.section-dark { background:var(--black); color:var(--white); }
.section-light { background:var(--porcelain); color:var(--ink); }
.skip-link { position:fixed; left:1rem; top:-4rem; z-index:100; padding:.7rem 1rem; background:var(--white); color:var(--black); } .skip-link:focus { top:1rem; }
.site-header { position:fixed; z-index:10; top:0; left:0; width:100%; display:flex; align-items:flex-start; justify-content:space-between; padding:2.25rem 5.75vw; mix-blend-mode:difference; color:white; }
.wordmark { display:flex; flex-direction:column; gap:.35rem; font-family:'Plus Jakarta Sans',sans-serif; font-size:2rem; font-weight:500; line-height:1; letter-spacing:-.06em; }
.wordmark small { font-family:'DM Mono',monospace; font-size:.61rem; letter-spacing:.12em; text-transform:uppercase; font-weight:400; }
.site-nav { display:flex; align-items:center; gap:1.8rem; padding-top:.33rem; font-family:'DM Mono',monospace; font-size:.68rem; letter-spacing:.08em; text-transform:uppercase; }
.site-nav a { opacity:.78; transition:opacity .2s; } .site-nav a:hover { opacity:1; }
.nav-contact { border-bottom:1px solid currentColor; padding-bottom:.3rem; }
.menu-button { display:none; }
.hero { min-height:100svh; display:grid; position:relative; overflow:hidden; isolation:isolate; }
.hero-material { position:absolute; z-index:-2; width:100%; height:100%; object-fit:cover; object-position:center 28%; opacity:.9; }
.hero-shade { position:absolute; z-index:-1; inset:0; background:linear-gradient(90deg,rgba(8,9,10,.52),rgba(8,9,10,.12) 70%),linear-gradient(0deg,rgba(8,9,10,.65),transparent 55%); }
.hero-inner { align-self:end; padding-bottom:4.3rem; }
.eyebrow { margin:0; font-family:'DM Mono',monospace; font-size:.72rem; font-weight:500; letter-spacing:.16em; text-transform:uppercase; } .light { color:rgba(255,255,255,.88); }
h1,h2,h3,p { margin-top:0; }
h1 { max-width:900px; margin:1.95rem 0 0; font-size:clamp(2.55rem,5.1vw,5rem); font-weight:600; letter-spacing:-.075em; line-height:1.22; }
.hero-foot { margin-top:6rem; display:flex; align-items:flex-end; justify-content:space-between; font-family:'Plus Jakarta Sans','Noto Sans JP',sans-serif; font-size:1.2rem; line-height:1.45; }
.hero-foot p { margin:0; }.hero-foot .index { font-family:'DM Mono',monospace; font-size:.7rem; letter-spacing:.14em; text-transform:uppercase; }.index span { color:var(--silver); }
.scroll-cue { position:absolute; bottom:2rem; right:5.75vw; font-family:'DM Mono',monospace; font-size:.65rem; text-transform:uppercase; letter-spacing:.1em; }.scroll-cue span { padding-left:.45rem; }
.section-grid { padding:9.2rem 0 10rem; display:grid; grid-template-columns:1fr 3fr; gap:4rem; }
.moment-content { display:grid; grid-template-columns:1.7fr 1fr; column-gap:5vw; align-items:end; }.moment h2,.service h2,.case h2,.work h2,.people h2,.contact h2 { margin:2rem 0 0; font-size:clamp(2.25rem,4.2vw,4.2rem); line-height:1.28; letter-spacing:-.075em; font-weight:600; }.moment-content p { margin:0 0 .35rem; font-size:1rem; line-height:2; color:#5c5d60; }
.bring { padding:8.7rem 0 10rem; }.bring-list { list-style:none; padding:2rem 0 0; margin:3rem 0 0; border-top:1px solid var(--line); }.bring-list li { display:grid; grid-template-columns:18% 36% 1fr; align-items:baseline; padding:2.2rem 0; border-bottom:1px solid var(--line); }.bring-list span { font-family:'Plus Jakarta Sans',sans-serif; font-size:clamp(3.4rem,5vw,5.2rem); line-height:.8; font-weight:400; letter-spacing:-.08em; }.bring-list h2 { margin:0; font-size:clamp(1.7rem,2.7vw,2.8rem); letter-spacing:-.06em; }.bring-list p { margin:0; color:#cbccca; line-height:1.8; max-width:25rem; }
.service { padding:9rem 0; }.service-layout { display:grid; grid-template-columns:1.05fr 1fr; gap:8vw; }.service-detail { padding-top:4.1rem; }.service-name { margin:0 0 1.6rem; font-family:'Plus Jakarta Sans',sans-serif; font-size:1.35rem; letter-spacing:-.04em; }.service-copy { max-width:35rem; font-size:1.05rem; line-height:2; }.micro-note { margin:3.6rem 0 2.4rem; font-family:'DM Mono',monospace; font-size:.7rem; letter-spacing:.09em; text-transform:uppercase; }.micro-note span { color:var(--cobalt); padding:0 .5rem; }.text-link,.contact-link { display:inline-block; border-bottom:1px solid var(--ink); padding-bottom:.42rem; font-size:.9rem; font-weight:500; }.text-link span,.contact-link span { padding-left:.4rem; color:var(--cobalt); }
.case { padding:9rem 0; }.case-layout { display:grid; grid-template-columns:1fr 1fr; gap:8vw; }.case-panel { position:relative; padding:2.6rem 0 0 23%; border-top:1px solid var(--line); }.case-number { position:absolute; top:2.35rem; left:0; font-family:'Plus Jakarta Sans',sans-serif; font-size:1.15rem; }.case-type,.preparing { font-family:'DM Mono',monospace; font-size:.65rem; letter-spacing:.13em; text-transform:uppercase; color:#c7c8c5; }.case-panel h3 { margin:1.2rem 0 1.4rem; font-size:clamp(1.8rem,2.7vw,2.7rem); letter-spacing:-.06em; }.case-panel > p:not(.case-type):not(.preparing) { max-width:28rem; line-height:1.9; color:#d0d1cf; }.preparing { margin-top:3.4rem; color:#858785; }
.work { padding:9rem 0; }.work-head { display:grid; grid-template-columns:1.3fr 1fr; gap:7vw; align-items:end; }.work-head p { margin:0; max-width:29rem; line-height:1.95; color:#5e5f62; }.work-list { display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid var(--dark-line); margin-top:7rem; }.work-list article { min-height:13rem; padding:1.4rem 1.6rem; border-right:1px solid var(--dark-line); }.work-list article:first-child { padding-left:0; }.work-list article:last-child { border-right:0; }.work-list span { font-family:'Plus Jakarta Sans',sans-serif; font-size:2rem; letter-spacing:-.065em; }.work-list p { margin:4.7rem 0 0; font-size:.93rem; }
.people { padding:9rem 0 10rem; }.people-heading { display:flex; align-items:flex-start; justify-content:space-between; }.people-heading h2 { margin-top:0; }.people-grid { margin-top:6.8rem; border-top:1px solid var(--line); display:grid; grid-template-columns:1fr 1fr; }.person-card { padding:2rem 10% 0 0; min-height:25rem; }.person-card+ .person-card { border-left:1px solid var(--line); padding-left:10%; padding-right:0; }.role { font-family:'DM Mono',monospace; font-size:.65rem; letter-spacing:.13em; text-transform:uppercase; color:#c9cac8; }.person-card h3 { font-size:clamp(1.7rem,2.4vw,2.4rem); line-height:1.2; letter-spacing:-.06em; margin:4.7rem 0 1.6rem; }.person-card > p:last-child { max-width:30rem; color:#d1d2d0; line-height:1.9; font-size:.92rem; }
.contact { position:relative; overflow:hidden; padding:10rem 0 11rem; }.contact-material { position:absolute; pointer-events:none; right:-8%; bottom:-43%; width:min(71vw,1000px); aspect-ratio:1.35; background:radial-gradient(ellipse at 55% 60%, transparent 0 25%,rgba(255,255,255,.4) 25.3% 26%, transparent 26.4% 41%,rgba(20,21,23,.09) 41.4% 42%, transparent 42.3%),linear-gradient(140deg,transparent 45%,rgba(255,255,255,.5) 45.2% 45.5%,transparent 45.8%); transform:rotate(-9deg); opacity:.75; }.contact-inner { position:relative; }.contact h2 { margin-bottom:2rem; }.contact-inner > p:not(.eyebrow) { color:#5e5f62; line-height:2; }.contact-link { margin-top:3rem; font-family:'Plus Jakarta Sans',sans-serif; font-size:1.25rem; }
.footer { padding:1.6rem 0; }.footer .container { display:flex; justify-content:space-between; font-family:'DM Mono',monospace; font-size:.62rem; letter-spacing:.12em; text-transform:uppercase; color:#a9aaa7; }
.mobile-only { display:none; }
@media (max-width:760px) { .container { width:min(100% - 2.5rem, 680px); }.site-header { padding:1.45rem 1.25rem; align-items:center; }.wordmark { font-size:1.5rem; }.wordmark small { font-size:.47rem; }.site-nav { position:absolute; top:0; right:0; width:min(80vw,22rem); min-height:100vh; padding:6.7rem 2rem 2rem; display:flex; flex-direction:column; align-items:flex-start; gap:1.7rem; background:#151619; transform:translateX(100%); transition:transform .25s ease; }.site-nav.open { transform:translateX(0); }.menu-button { z-index:2; display:flex; align-items:center; gap:.65rem; border:0; padding:0; background:transparent; color:inherit; font-family:'DM Mono',monospace; font-size:.65rem; text-transform:uppercase; letter-spacing:.1em; }.menu-button i,.menu-button i::after { display:block; width:1.4rem; height:1px; background:currentColor; content:""; }.menu-button i::after { transform:translateY(.35rem); }.hero { min-height:44rem; }.hero-material { object-position:58% 35%; }.hero-inner { padding-bottom:3rem; }.eyebrow { font-size:.62rem; }.hero h1 { margin-top:1.4rem; font-size:2.4rem; line-height:1.35; }.hero-foot { margin-top:4.6rem; font-size:1rem; }.hero-foot .index { display:none; }.scroll-cue { display:none; }.section-grid,.moment-content,.service-layout,.case-layout,.work-head { display:block; }.section-grid { padding:5.5rem 0 6rem; }.moment-content h2,.service h2,.case h2,.work h2,.people h2,.contact h2 { font-size:2.25rem; }.moment-content h2 { margin-top:2.3rem; }.moment-content p { margin-top:2rem; font-size:.93rem; line-height:1.9; }.bring { padding:5.5rem 0 6rem; }.bring-list { margin-top:2.4rem; padding-top:0; }.bring-list li { grid-template-columns:4.6rem 1fr; row-gap:1.3rem; padding:1.7rem 0 1.9rem; }.bring-list span { font-size:3.4rem; }.bring-list h2 { font-size:1.65rem; }.bring-list p { grid-column:2; font-size:.88rem; }.service { padding:5.5rem 0 6rem; }.service-detail { padding-top:3.4rem; }.service-copy { font-size:.95rem; }.case { padding:5.5rem 0 6rem; }.case-panel { margin-top:4rem; padding-left:5.6rem; }.case-number { font-size:1rem; }.case-panel h3 { font-size:2rem; }.work { padding:5.5rem 0 6rem; }.work-head p { margin-top:2.3rem; font-size:.93rem; }.work-list { display:block; margin-top:4.2rem; }.work-list article { min-height:0; padding:1.25rem 0; border-right:0; border-bottom:1px solid var(--dark-line); display:flex; align-items:baseline; justify-content:space-between; }.work-list article:last-child { border-bottom:0; }.work-list span { font-size:1.6rem; }.work-list p { margin:0; font-size:.82rem; }.people { padding:5.5rem 0 6rem; }.people-heading { display:block; }.people-heading h2 { margin-top:2rem; }.people-grid { margin-top:4rem; display:block; }.person-card,.person-card + .person-card { min-height:0; padding:1.7rem 0 2.7rem; border-left:0; border-bottom:1px solid var(--line); }.person-card h3 { margin-top:3.8rem; font-size:1.9rem; }.person-card > p:last-child { font-size:.88rem; }.contact { padding:5.5rem 0 7rem; }.contact-material { width:160vw; right:-80%; bottom:-21%; }.contact-inner > p:not(.eyebrow) { font-size:.9rem; }.footer { padding:1.25rem 0; }.footer .container { font-size:.53rem; }.mobile-only { display:block; } }
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } .site-nav { transition:none; } }
