:root{--ink:#0a0a0a;--paper:#fff;--mist:#dedede;--line:#d7d7d7;--blue:#078fca;--sans:"Helvetica Neue","Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif;--jp:"Yu Gothic","Hiragino Kaku Gothic ProN",Meiryo,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background:var(--paper);font-family:var(--sans);font-size:16px;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}img{display:block;max-width:100%}.site-header{height:64px;display:flex;align-items:center;justify-content:space-between;padding:0 2.4vw;background:#fff;border-bottom:1px solid #eee;position:relative;z-index:20}.logo{display:flex;align-items:center}.logo img{display:block;width:112px;height:auto}.nav{display:flex;gap:28px;font-size:13px}.hero{min-height:calc(100svh - 64px);background:url('hero.jpg') center 58%/cover no-repeat;position:relative;color:#fff;display:grid;grid-template-columns:1fr 1fr;padding:8vh 3vw 5vh}.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,54,92,.12),transparent 55%,rgba(0,63,97,.06));pointer-events:none}.hero-left,.hero-right{position:relative;z-index:1}.hero-kicker{font-size:10px;letter-spacing:.22em}.hero-title{font-size:clamp(46px,6vw,94px);line-height:.94;letter-spacing:.02em;margin:8vh 0 3vh;font-weight:700}.hero-mark{width:72px;height:72px;border:2px solid #fff;border-radius:50%;position:relative;margin-bottom:18px}.hero-mark::before,.hero-mark::after{content:"";position:absolute;left:15px;right:15px;top:34px;height:2px;background:#fff;transform:rotate(45deg)}.hero-mark::after{transform:rotate(-45deg)}.hero-name{font-weight:700;letter-spacing:.18em}.hero-meta{font-size:9px;line-height:1.6;letter-spacing:.12em;margin-top:18px}.hero-right{align-self:end;padding:0 6vw 1.2vh}.hero-copy{font-family:var(--jp);font-size:clamp(17px,1.65vw,27px);font-weight:600;line-height:2.05;letter-spacing:.08em;text-shadow:0 1px 10px rgba(0,70,100,.2)}.hero-actions{display:flex;gap:14px;margin-top:30px}.pill{display:inline-flex;align-items:center;justify-content:center;border:1px solid #111;border-radius:999px;min-height:38px;padding:0 22px;font-size:11px;background:#fff;color:#111}.pill.dark{background:#0a0a0a;color:#fff}.statement{padding:14vh 3vw 10vh}.statement-card{background:#ddd;min-height:470px;padding:7vh 6vw;border-left:28px solid #050505;display:flex;flex-direction:column;justify-content:space-between}.eyebrow{font-size:11px;letter-spacing:.14em;text-transform:uppercase}.statement-copy{font-family:var(--jp);font-size:clamp(25px,3vw,48px);font-weight:400;line-height:1.7;letter-spacing:.12em}.long-pill{border:1px solid #aaa;border-radius:999px;padding:10px 18px;background:#fff;font-size:10px}.selected{padding:12vh 5vw 14vh;text-align:center}.section-title{font-size:clamp(42px,6vw,82px);line-height:.94;margin:5vh auto 9vh;max-width:900px}.work-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:60px 9vw;max-width:1000px;margin:auto;align-items:start}.work-grid a:nth-child(4){grid-column:1/2;margin-left:50%}.work-thumb{aspect-ratio:1;object-fit:cover;background:#d7d7d7;transition:transform .35s ease}.work-card:hover .work-thumb{transform:scale(.97)}.work-label{font-size:11px;font-weight:700;letter-spacing:.05em;margin-top:16px}.philosophy{background:#ddd;padding:14vh 12vw}.philosophy-inner{border-left:1px solid #777;padding-left:55px;max-width:980px;margin:auto}.philosophy-copy{font-family:var(--jp);font-size:clamp(21px,2.4vw,38px);line-height:1.8;letter-spacing:.08em}.notes{padding:12vh 5vw}.notes h2{text-align:center;font-size:clamp(28px,4vw,54px);margin-bottom:8vh}.note-row{display:grid;grid-template-columns:120px 1fr 20px;padding:25px 0;border-top:1px solid #aaa;gap:20px;align-items:center}.note-row time{font-size:10px}.note-row strong{font-family:var(--jp);font-size:clamp(16px,1.6vw,24px)}.contact{margin:4vh 3vw 8vh;background:#050505;color:#fff;min-height:440px;padding:7vh 6vw;display:flex;flex-direction:column;justify-content:space-between}.contact p{font-family:var(--jp);font-size:clamp(24px,3vw,46px);line-height:1.75;letter-spacing:.1em}.footer{min-height:250px;padding:6vh 3vw;display:flex;justify-content:space-between;align-items:flex-start;border-top:1px solid #eee}.footer-logo img{display:block;width:clamp(210px,28vw,430px);height:auto}.footer-nav{display:flex;gap:60px;font-size:11px;line-height:1.8}
.works-hero{height:540px;background:#b9b9b7;display:grid;grid-template-columns:30% 1fr 10%;padding:8vh 3vw;border-bottom:1px solid #999}.works-index .label{font-size:38px;font-weight:300;letter-spacing:.22em}.works-index .number{font-size:clamp(90px,10vw,160px);font-weight:700;color:#fff;line-height:1}.works-index h1{font-size:34px;margin:8px 0}.works-index small{font-size:9px;line-height:1.7;letter-spacing:.12em}.works-message{align-self:center;font-family:var(--jp);font-size:clamp(25px,3vw,48px);line-height:1.9;letter-spacing:.12em}.works-rail{border-left:1px solid #aaa;display:flex;align-items:flex-end;justify-content:center}.works-rail span{writing-mode:vertical-rl;font-size:9px;letter-spacing:.3em}.filters{display:flex;gap:12px;padding:32px 3vw}.filters span{border:1px solid #222;border-radius:999px;padding:9px 16px;font-size:10px}.work-detail{max-width:1120px;margin:auto;padding:8vh 3vw 3vh}.work-heading{margin-bottom:36px}.work-heading .count{font-size:10px;letter-spacing:.2em;color:#777}.work-heading h2{font-family:var(--jp);font-size:clamp(22px,2.3vw,36px);font-weight:500;margin:10px 0}.work-heading .year{font-size:10px;color:#999}.work-layout{display:grid;grid-template-columns:minmax(340px,1fr) minmax(280px,.75fr);gap:5vw}.work-visual{display:block;aspect-ratio:1/1;object-fit:cover;width:100%;height:auto;background:#ccc}.work-info{display:flex;flex-direction:column;justify-content:space-between;padding:12px 0}.info-block{margin-bottom:45px}.info-block h3{font-size:9px;letter-spacing:.22em;color:#999;margin:0 0 20px}.info-block p{font-family:var(--jp);font-size:14px;line-height:1.9;letter-spacing:.03em}.staff{display:grid;grid-template-columns:100px 1fr;gap:12px;font-size:11px;padding:8px 0;border-bottom:1px solid #eee}.staff span:first-child{color:#aaa}.tags{display:flex;flex-wrap:wrap;gap:9px}.tags span{font-size:9px;letter-spacing:.12em;padding-right:14px;border-right:1px solid #ddd}.pagination{display:flex;align-items:center;justify-content:center;gap:28px;padding:9vh 2vw 12vh;font-size:clamp(25px,3vw,48px);font-weight:300}.pagination a{color:#8d8d8d}.pagination a.active{color:#111}.pagination .arrow{font-size:48px;font-weight:200}.pagination .disabled{opacity:.18;pointer-events:none}.work-footer{border-top:1px solid #eee;min-height:280px;padding:7vh 2vw;display:flex;justify-content:space-between;align-items:flex-end}.work-footer .footer-logo img{width:clamp(230px,34vw,520px)}
@media(max-width:760px){.site-header{height:58px;padding:0 18px}.nav{gap:14px;font-size:10px}.nav a:nth-child(2),.nav a:nth-child(3){display:none}.hero{min-height:820px;grid-template-columns:1fr;padding:40px 22px;background-position:48% center}.hero-right{padding:0;align-self:end}.hero-title{margin:42px 0 24px}.hero-copy{font-size:17px;line-height:1.9}.statement{padding:70px 15px}.statement-card{min-height:390px;border-left-width:14px;padding:45px 28px}.statement-copy{font-size:22px;line-height:1.8}.selected{padding:80px 22px}.work-grid{grid-template-columns:repeat(2,1fr);gap:45px 28px}.work-grid a:nth-child(4){grid-column:auto;margin-left:0}.section-title{font-size:42px}.philosophy{padding:80px 24px}.philosophy-inner{padding-left:25px}.note-row{grid-template-columns:70px 1fr 12px}.contact{margin:0 15px 50px;padding:45px 30px}.footer{min-height:190px}.footer-nav{display:none}.works-hero{height:auto;min-height:500px;grid-template-columns:1fr;padding:55px 24px}.works-message{margin-top:40px}.works-rail{display:none}.filters{overflow:auto;white-space:nowrap}.work-detail{padding:45px 20px 0}.work-layout{grid-template-columns:1fr}.work-info{padding-top:30px}.pagination{gap:14px;font-size:25px;padding:65px 12px}.pagination .arrow{font-size:34px}.work-footer{min-height:190px}.work-footer .footer-logo img{width:230px}}
.site-header{position:sticky;top:0;background:rgba(255,255,255,.94);backdrop-filter:blur(14px)}.header-nav{width:100%;display:flex;align-items:center}.menu{display:none;margin-left:auto;border:0;background:#000;color:#fff;border-radius:999px;padding:.55rem .9rem}.nav-links{margin-left:auto;display:flex;align-items:center;gap:28px;font-size:13px}.nav-links a[aria-current="page"]{text-decoration:underline;text-underline-offset:.25em}.skip{position:fixed;left:1rem;top:-5rem;z-index:999;background:#000;color:#fff;padding:.7rem 1rem;border-radius:999px}.skip:focus{top:1rem}@media(max-width:800px){.menu{display:block}.nav-links{display:none;position:absolute;inset:100% 0 auto;padding:18px;background:#fff;border-bottom:1px solid #eee;flex-direction:column;align-items:stretch}.nav-links.open{display:flex}.nav-links a{display:block!important;padding:8px 0}.logo img{width:96px}}
.works-message{white-space:pre-line}.category-tabs{position:sticky;top:64px;z-index:15;background:rgba(255,255,255,.96);backdrop-filter:blur(12px);border-bottom:1px solid #eee}.category-tabs a{border:1px solid #222;border-radius:999px;padding:9px 16px;font-size:10px;white-space:nowrap;transition:.2s}.category-tabs a:hover,.category-tabs a.active{background:#111;color:#fff}.project-browser{padding:5vh 3vw 4vh;border-bottom:1px solid #eee}.browser-head{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:24px}.browser-head h2{font-size:clamp(18px,2vw,28px);margin:8px 0 0}.browser-hint{font-size:10px;color:#777}.project-strip{display:flex;gap:12px;overflow-x:auto;padding:2px 2px 18px;scroll-snap-type:x proximity;scrollbar-width:thin}.project-chip{flex:0 0 112px;scroll-snap-align:start;position:relative;border:1px solid transparent;padding:6px;transition:.2s}.project-chip img{display:block;width:100%;height:auto;aspect-ratio:1/1;object-fit:cover;background:#ddd;filter:grayscale(.25)}.project-chip span{display:block;font-size:10px;margin-top:7px}.project-chip:hover,.project-chip.active{border-color:#111}.project-chip.active img{filter:none}.tool-status{display:flex;gap:10px;flex-wrap:wrap}.tool-dot{width:38px;height:38px;border:1px solid #111;border-radius:50%;display:grid;place-items:center;font-size:10px;background:#fff;color:#111}.tool-dot.used{background:#111;color:#fff}.pagination{display:grid;grid-template-columns:auto 1fr auto auto;gap:22px;max-width:1120px;margin:auto;padding:8vh 3vw 11vh;font-size:14px}.page-list{display:flex;justify-content:center;align-items:center;gap:18px}.page-list a{font-size:18px}.page-list a.active{text-decoration:underline;text-underline-offset:8px}.ellipsis{color:#999}.page-position{font-size:11px;align-self:center;color:#777;white-space:nowrap}.pager-word{font-size:12px;align-self:center;white-space:nowrap}.pagination .disabled{opacity:.2;pointer-events:none}@media(max-width:800px){.category-tabs{top:58px;overflow-x:auto;flex-wrap:nowrap;padding:16px 18px}.project-browser{padding:35px 18px 25px}.browser-hint{display:none}.project-chip{flex-basis:88px}.pagination{grid-template-columns:1fr auto 1fr;padding:55px 18px 70px}.page-list{display:none}.page-position{grid-column:2}.pager-word:last-child{text-align:right}.works-index .label{font-size:28px}.works-index h1{font-size:28px}.works-message{font-size:22px}}
.works-hero{height:560px;background:#fff;grid-template-columns:minmax(0,2.2fr) minmax(240px,.8fr) 80px;padding:5vh 4vw;gap:4vw}.works-index{border:1px solid #c8c8c8;padding:38px;display:flex;flex-direction:column;justify-content:flex-end;position:relative}.works-index .label{position:absolute;top:34px;left:38px;font-size:14px;letter-spacing:.25em}.works-index .number{position:absolute;top:22px;right:34px;font-size:clamp(80px,10vw,150px);font-weight:200;color:#e6e6e6}.works-index h1{font-size:clamp(32px,4.5vw,70px);font-weight:300;letter-spacing:.08em;margin:0 0 18px}.works-index small{font-size:12px;line-height:1.9;letter-spacing:.16em}.works-message{font-size:clamp(18px,2vw,30px);font-weight:300;line-height:1.9;letter-spacing:.08em;align-self:end;padding-bottom:16px}.works-rail{border-left:1px solid #ccc}.works-rail span{color:#666}@media(max-width:800px){.works-hero{height:auto;min-height:520px;grid-template-columns:1fr;padding:28px 18px;gap:28px}.works-index{min-height:350px;padding:25px}.works-index .label{top:24px;left:25px}.works-index .number{top:18px;right:22px}.works-index h1{font-size:34px}.works-index small{font-size:10px}.works-message{margin:0;padding:0}.works-rail{display:none}}
#project-detail{scroll-margin-top:86px}@media(max-width:800px){#project-detail{scroll-margin-top:72px}}

/* Desktop work navigation: keep the controls visible within the first viewport. */
@media (min-width:801px){
  body.single-work{padding-bottom:96px}
  body.single-work .pagination{
    position:fixed;
    right:0;
    bottom:0;
    left:0;
    z-index:80;
    grid-template-columns:1fr auto 1fr;
    width:100%;
    max-width:none;
    min-height:88px;
    box-sizing:border-box;
    padding:16px clamp(34px,5vw,88px);
    border-top:1px solid rgba(17,17,17,.12);
    background:rgba(255,255,255,.94);
    box-shadow:0 -12px 32px rgba(0,0,0,.035);
    backdrop-filter:blur(14px);
  }
  body.single-work .pager-word{
    padding:14px 18px;
    color:#3f3f3f;
    font-size:18px;
    letter-spacing:.04em;
    transition:color .2s,transform .2s;
  }
  body.single-work .pager-word:first-child{justify-self:start}
  body.single-work .pager-word:last-child{justify-self:end}
  body.single-work .pager-word:hover{color:#111;transform:translateY(-2px)}
  body.single-work .page-position{justify-self:center;font-size:16px;color:#555}
}
.hero-brand-logo{width:clamp(150px,15vw,245px);height:auto;filter:brightness(0) invert(1);margin:0 0 18px}
.hero-symbol{width:clamp(240px,20vw,340px);margin:40px 0 -38px -55px;filter:none}
.info-block [data-intent]{font-size:15px;line-height:2.05;max-width:39em}.compact-info p,.compact-info+.info-block p{font-size:10px;line-height:1.75}.staff{font-size:9px;padding:6px 0}.media-links[hidden]{display:none}.media-links [data-links]{display:grid;gap:8px}.video-link{display:inline-flex;width:max-content;border-bottom:1px solid #111;padding-bottom:4px;font-size:11px;letter-spacing:.06em}.video-link:hover{opacity:.55}
.staff-full{display:block;line-height:1.7}.info-block [data-intent]{white-space:pre-line}
.selected .work-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:60px 5vw;max-width:1000px}.selected .work-card{grid-column:span 2;width:100%;margin:0}.selected .work-card:nth-child(4){grid-column:2/span 2}.selected .work-card:nth-child(5){grid-column:4/span 2}.selected .work-thumb{width:100%;aspect-ratio:1;object-fit:cover}@media(max-width:760px){.selected .work-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:42px 24px}.selected .work-card,.selected .work-card:nth-child(4){grid-column:auto}.selected .work-card:nth-child(5){grid-column:1/-1;width:calc(50% - 12px);justify-self:center}}
.selected .work-grid{display:flex;flex-wrap:wrap;justify-content:center;align-items:flex-start;gap:60px 40px}.selected .work-card,.selected .work-card:nth-child(4),.selected .work-card:nth-child(5){flex:0 0 calc((100% - 80px)/3);width:calc((100% - 80px)/3);max-width:none;margin:0;grid-column:auto}.selected .work-thumb{display:block;width:100%;height:auto;aspect-ratio:1;object-fit:cover}@media(max-width:760px){.selected .work-grid{gap:42px 24px}.selected .work-card,.selected .work-card:nth-child(4),.selected .work-card:nth-child(5){flex-basis:calc((100% - 24px)/2);width:calc((100% - 24px)/2)}.selected .work-card:nth-child(5){margin-inline:auto}}

.footer-nav>div{display:grid;gap:6px}.footer-nav b{margin-bottom:5px}.footer-nav a{display:block}

/* --- Mosaic (non-public work) --- */
.is-mosaic{filter:blur(26px) saturate(1.05);transform:scale(1.08);pointer-events:none;user-select:none}
.mosaic-chip{position:relative;overflow:hidden}
.mosaic-chip::after{content:"NDA";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-family:var(--font-mono,monospace);font-size:.65rem;letter-spacing:.12em;color:#fff;background:rgba(0,0,0,.28);pointer-events:none}
.work-visual-wrap{position:relative}
.mosaic-notice{margin-top:1.5rem;padding:1.6rem;border:1px solid #ddd;background:#fafafa;display:flex;flex-direction:column;gap:1rem;align-items:flex-start}
.mosaic-notice p{margin:0;font-size:.92rem;line-height:1.8;color:#333}
.mosaic-cta{display:inline-flex;align-items:center;gap:.5rem;border-radius:999px;padding:.7rem 1.4rem;background:#0a0a0a;color:#fff;text-decoration:none;font-size:.8rem;letter-spacing:.04em;transition:opacity .2s}
.mosaic-cta:hover{opacity:.8}

/* --- Thought Cycle (methodology diagram) --- */
.thought-cycle{padding:10vh clamp(1.5rem,8vw,6rem) 8vh;text-align:center}
.thought-cycle-title{margin:2.5vh 0 6vh;font-size:clamp(36px,5.5vw,68px);line-height:.96;font-weight:700;letter-spacing:.01em}
.cycle-diagram{max-width:1100px;margin:0 auto 5vh;color:#111}
.cycle-diagram svg{display:block;width:100%;height:auto;overflow:visible}
.cycle-label-main{font-family:var(--sans);font-size:19px;font-weight:700;fill:#111}
.cycle-label-sub{font-family:var(--jp);font-size:11px;letter-spacing:.05em;fill:#777}
.cycle-label-flow{font-family:var(--sans);font-size:13px;font-weight:700;letter-spacing:.08em;fill:#111}
.cycle-caption{max-width:38em;margin:0 auto;font-family:var(--jp);font-size:clamp(15px,1.7vw,19px);line-height:2;letter-spacing:.06em;color:#333}
@media(max-width:760px){.thought-cycle{padding:70px 20px}.cycle-label-main{font-size:15px}.cycle-label-sub{font-size:8px}.cycle-label-flow{font-size:9px}}

/* --- Expertise: process chevron ---
   Note: these sections deliberately do NOT use the legacy `.wrap` class —
   `.wrap{margin-inline:auto}` (loaded after this file) would win the cascade
   over any margin we set here and silently cancel our side padding. Each
   block below is self-contained: max-width + margin:auto for centering. */
.process-section{max-width:1440px;margin-inline:auto;padding-inline:clamp(1.5rem,4vw,3rem)}
.lead.process-intro{max-width:52em;margin:0 0 5vh}
.process-chevron{display:flex;flex-wrap:nowrap;align-items:stretch;gap:0;overflow-x:auto;padding-bottom:1vh}
.chevron-step{flex:0 0 auto;min-width:150px;background:var(--mist);color:#111;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:1.6rem 1.2rem;font-weight:700;font-size:1rem;line-height:1.5}
.chevron-step small{display:block;margin-top:.4rem;font-weight:500;font-size:.68rem;letter-spacing:.04em}
.chevron-arrow{flex:0 0 auto;display:flex;align-items:center;justify-content:center;width:2.2rem;color:#999;font-size:1.1rem}
@media(max-width:760px){.process-section{padding-inline:1.2rem}.chevron-step{min-width:120px;padding:1.2rem .8rem;font-size:.85rem}}

/* --- Expertise: tools grid --- */
.tools-section{max-width:1440px;margin:4vh auto;padding-inline:clamp(1.5rem,4vw,3rem)}
.tools-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.75rem;margin-top:3vh}
.tool-card{background:var(--mist);padding:2.6rem 2.2rem;border-left:4px solid #2b2036;box-shadow:0 1px 3px rgba(0,0,0,.06)}
.tool-card-head{display:flex;align-items:baseline;flex-wrap:wrap;gap:.5rem;margin-bottom:1.2rem}
.tool-name{font-family:var(--sans);font-weight:800;font-size:1.8rem;letter-spacing:-.01em}
.tool-plus{font-size:1.2rem;color:#999}
.tool-sub{font-size:.8rem;line-height:1.5;color:#333}
.tool-sub small{color:#777;font-size:.72rem}
.tool-desc{font-family:var(--jp);font-size:.86rem;line-height:1.9;letter-spacing:.03em;color:#333;margin:0}
@media(max-width:760px){.tools-section{padding-inline:1.2rem}.tools-grid{grid-template-columns:1fr;gap:1rem}.tool-card{padding:2rem 1.6rem}}

/* --- Expertise: self promotion --- */
.self-promotion{max-width:1440px;margin-inline:auto;padding:4vh clamp(1.5rem,4vw,3rem) 0}
.self-promotion-rule{border:0;border-top:1px solid var(--line);margin:0 0 4vh}
.self-promotion-text{margin-top:2vh;font-family:var(--jp);font-weight:700;font-size:clamp(1.15rem,2vw,1.6rem);line-height:2;letter-spacing:.03em;max-width:62em}
@media(max-width:760px){.self-promotion{padding-inline:1.2rem}}
@media(max-width:760px){.self-promotion{padding-inline:0}}
