@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Noto+Sans+JP:wght@400;500;600&display=swap');
:root{--paper:#f5f3ed;--ink:#20221e;--muted:#77796f;--line:#d8d7ce;--accent:#d36c43;--serif:Georgia,'Times New Roman',serif;--sans:'DM Sans','Noto Sans JP',sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased}.shell{width:min(1440px,100% - 96px);margin:0 auto}.site-header{height:100px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{display:inline-flex;align-items:center}.brand img{width:150px;height:auto}.site-header nav{display:flex;gap:34px}.site-header nav a,.back,footer a{color:var(--ink);font-size:12px;text-decoration:none;letter-spacing:.08em}.site-header nav a:hover,.back:hover,footer a:hover{color:var(--accent)}.hero{padding:126px 0 120px;max-width:920px}.eyebrow{font-size:10px;letter-spacing:.18em;font-weight:600;color:var(--muted);margin:0 0 18px}.hero h1{font-size:clamp(58px,9vw,126px);line-height:.94;letter-spacing:-.075em;margin:0;font-weight:500}.hero h1 em{font-family:var(--serif);font-weight:400;letter-spacing:-.07em;color:var(--accent)}.hero-note{max-width:500px;font-size:14px;line-height:2;color:#62645c;margin:35px 0 0 8px}.section{padding:66px 0 116px;border-top:1px solid var(--line)}.section-heading{display:flex;align-items:end;justify-content:space-between;margin-bottom:38px}.section-heading h2,.about h2{font-size:38px;letter-spacing:-.06em;font-weight:500;margin:0}.section-heading h2 span{font-size:11px;vertical-align:top;color:var(--muted);letter-spacing:0;margin-left:8px}.work-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:52px 22px}.work-card a{display:block;color:inherit;text-decoration:none}.cover{aspect-ratio:1.15/1;background:#e9e7df;overflow:hidden}.cover img{width:100%;height:100%;display:block;object-fit:cover;transition:transform .6s cubic-bezier(.2,.7,.2,1)}.work-card a:hover .cover img{transform:scale(1.035)}.card-copy{position:relative;padding:17px 34px 0 0}.card-copy .eyebrow{margin-bottom:7px;font-size:9px}.card-copy h3{font-size:16px;letter-spacing:-.025em;font-weight:500;margin:0}.arrow{position:absolute;right:2px;bottom:0;font-size:20px;color:var(--accent)}.about{display:grid;grid-template-columns:1fr 1fr;gap:12%;padding-top:78px;padding-bottom:105px}.about h2{font-size:56px;line-height:.95}.about>div:last-child{max-width:470px;padding-top:28px;font-size:14px;line-height:2;color:#5e6058}.contact{padding:78px 0 100px;border-top:1px solid var(--line)}.contact h2{font-family:var(--serif);font-weight:400;font-size:clamp(55px,8vw,100px);line-height:1;margin:0 0 28px;letter-spacing:-.06em}.contact-link{display:flex;justify-content:space-between;max-width:480px;padding:17px 0;border-bottom:1px solid var(--ink);color:var(--ink);text-decoration:none;font-size:13px}.contact-link span{color:var(--accent)}footer{border-top:1px solid var(--line);padding:25px 0 32px;display:flex;justify-content:space-between;color:var(--muted);font-size:10px;letter-spacing:.08em}.project{padding:48px 0 100px}.back{display:inline-block;margin-bottom:64px}.project-heading{max-width:900px}.project-heading h1{font-size:clamp(48px,8vw,104px);line-height:.98;letter-spacing:-.07em;font-weight:500;margin:0}.credit{margin:20px 0 0;font-size:10px;letter-spacing:.12em;color:var(--muted)}.project-description{max-width:680px;margin:45px 0 62px;font-size:15px;line-height:2;color:#55574f}.gallery{display:grid;gap:22px}.gallery figure{margin:0;background:#ebe9e2}.gallery img{display:block;width:100%;height:auto}.next-project{display:flex;justify-content:space-between;margin-top:75px;padding:18px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);color:var(--ink);text-decoration:none;font-size:12px}.next-project span{color:var(--accent)}
@media(max-width:800px){.shell{width:calc(100% - 40px)}.site-header{height:76px}.brand img{width:126px}.site-header nav{gap:16px}.site-header nav a{font-size:10px}.hero{padding:90px 0 86px}.hero-note{margin-left:2px}.section{padding:50px 0 82px}.work-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:36px 14px}.cover{aspect-ratio:1/1}.card-copy h3{font-size:14px}.about{gap:6%;padding:58px 0 76px}.about h2{font-size:46px}.about>div:last-child{padding-top:26px;font-size:13px}.contact{padding:60px 0 75px}.project{padding-top:34px}.back{margin-bottom:48px}.project-description{margin:34px 0 45px}.gallery{gap:12px}}
@media(max-width:520px){.shell{width:calc(100% - 32px)}.site-header nav{gap:12px}.hero{padding:76px 0 72px}.hero h1{font-size:clamp(52px,14vw,72px)}.hero-note{font-size:13px}.work-grid{grid-template-columns:1fr;gap:30px}.cover{aspect-ratio:1.16/1}.card-copy{padding-top:13px}.about{grid-template-columns:1fr;gap:22px}.about>div:last-child{padding-top:0}.section-heading h2{font-size:32px}.project-heading h1{font-size:52px}.project-description{font-size:14px}.contact h2{font-size:64px}}
.project-meta{margin:18px 0 0;font-size:11px;letter-spacing:.08em;color:#55574f}.project-meta+.credit{margin-top:10px}.project-description{margin-top:38px}
/* Portfolio hover cards and focused image viewer */
#work-search{width:min(340px,42vw);padding:11px 13px;border:1px solid var(--line);background:transparent;color:var(--ink);font:inherit;font-size:12px}
.work-grid{display:block;columns:3;column-gap:22px;padding-top:38px}.work-card{display:inline-block;width:100%;break-inside:avoid;margin:0 0 32px}.work-card[hidden]{display:none}.tile{position:relative;display:block;width:100%;overflow:hidden;padding:0;border:0;border-radius:3px;background:#d8d7ce;color:#fff;text-align:center;cursor:pointer}.tile-image{display:block;width:100%;height:auto;transition:transform .5s ease}.tile-image-missing{height:120px;background:linear-gradient(135deg,#d8d7ce,#aaa99f)}.tile-overlay{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px;padding:22px;background:rgba(25,27,25,.68);color:#fff;opacity:0;transition:opacity .45s ease}.tile:hover .tile-image,.tile:focus-visible .tile-image{transform:scale(1.08)}.tile:hover .tile-overlay,.tile:focus-visible .tile-overlay{opacity:1}.tile:focus-visible{outline:3px solid var(--accent);outline-offset:3px}.tile-meta{font-size:10px;line-height:1.5;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.8)}.tile-title{font-size:clamp(16px,1.65vw,23px);line-height:1.35;font-weight:500;letter-spacing:-.035em}.tile-category{font-size:10px;letter-spacing:.12em;text-transform:uppercase;border-top:1px solid rgba(255,255,255,.55);padding-top:8px;min-width:80px}.no-results{padding:30px 0;color:var(--muted)}
.lightbox[hidden]{display:none}.lightbox{position:fixed;inset:0;z-index:1000;display:block;background:rgba(8,9,8,.94);color:#fff}.lightbox-backdrop{position:absolute;inset:0;width:100%;height:100%;padding:0;border:0;background:transparent}.lightbox-panel{position:relative;z-index:1;width:min(1480px,100%);height:100dvh;margin:0 auto;display:grid;grid-template-rows:auto minmax(0,1fr);pointer-events:none}.lightbox-header,.lightbox-viewer{pointer-events:auto}.lightbox-header{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;padding:25px 32px 16px;overflow:auto;max-height:34vh}.lightbox-header>div{max-width:900px}.lightbox-header p{margin:0 0 7px;color:rgba(255,255,255,.65);font-size:10px;letter-spacing:.13em}.lightbox-header h2{margin:0;color:#fff;font-size:clamp(18px,3vw,30px);font-weight:500;line-height:1.3}.lightbox-header span{display:block;margin-top:6px;color:rgba(255,255,255,.72);font-size:10px;letter-spacing:.12em;text-transform:uppercase}.lightbox-header #work-lightbox-description{max-width:760px;margin:10px 0 5px;color:rgba(255,255,255,.82);font-size:12px;line-height:1.8;letter-spacing:0}.lightbox-header small{color:rgba(255,255,255,.55);font-size:9px;letter-spacing:.1em}.lightbox-close{width:44px;height:44px;flex:0 0 44px;border:1px solid rgba(255,255,255,.4);border-radius:50%;background:transparent;color:#fff;font:300 32px/1 var(--sans);cursor:pointer}.lightbox-close:hover,.lightbox-arrow:hover{background:rgba(255,255,255,.16)}.lightbox-viewer{min-height:0;display:grid;grid-template-columns:64px minmax(0,1fr) 64px;align-items:center;gap:12px;padding:0 20px 22px}.lightbox-viewer figure{height:100%;min-height:0;margin:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px}.lightbox-viewer img{display:block;width:100%;height:min(66vh,calc(100dvh - 200px));object-fit:contain}.lightbox-viewer figcaption{height:16px;color:rgba(255,255,255,.65);font-size:10px;letter-spacing:.1em}.lightbox-arrow{width:48px;height:58px;border:0;border-radius:3px;background:transparent;color:#fff;font:300 48px/1 var(--serif);cursor:pointer}.lightbox-arrow[hidden]{visibility:hidden}.modal-open{overflow:hidden}
@media(max-width:900px){.work-grid{columns:2}.lightbox-header{padding:20px 24px 12px;max-height:36vh}.lightbox-viewer img{height:min(60vh,calc(100dvh - 190px))}}
@media(max-width:760px){#work-search{width:min(300px,48vw)}.tile-overlay{align-items:flex-start;justify-content:flex-end;text-align:left;gap:5px;padding:14px;background:linear-gradient(transparent 25%,rgba(8,9,8,.82));opacity:1}.tile-meta{font-size:8px}.tile-title{font-size:15px}.tile-category{font-size:8px;min-width:0;padding-top:5px}.lightbox-header{padding:18px 16px 12px;max-height:38vh}.lightbox-viewer{grid-template-columns:40px minmax(0,1fr) 40px;gap:4px;padding:0 8px 12px}.lightbox-arrow{width:36px;height:48px;font-size:38px}.lightbox-viewer img{height:min(54vh,calc(100dvh - 220px))}.lightbox-close{width:38px;height:38px;flex-basis:38px;font-size:28px}}
@media(max-width:560px){.work-grid{columns:1}.section-heading{align-items:flex-start;gap:20px;flex-direction:column}#work-search{width:100%}}
@media(prefers-reduced-motion:reduce){.tile-image,.tile-overlay{transition:none}.tile:hover .tile-image,.tile:focus-visible .tile-image{transform:none}}
