:root{
  --paper:#f2f0ea;
  --paper-2:#e7e4dc;
  --ink:#161512;
  --muted:#74716a;
  --line:rgba(22,21,18,.22);
  --dark:#10100f;
  --light:#f5f2eb;
  --max:1240px;
  --display:"Iowan Old Style","Palatino Linotype","Book Antiqua","Hiragino Mincho ProN","Yu Mincho",serif;
  --body:"Gill Sans","Gill Sans MT","Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--body);font-size:16px;line-height:1.72;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
a{color:inherit;text-decoration:none}button{font:inherit}img{display:block;width:100%}.nowrap,.phrase{white-space:nowrap}.ja-prose{line-break:strict;text-wrap:pretty}
[data-lang="en"]{display:none}body.lang-en [data-lang="ja"]{display:none!important}body.lang-en [data-lang="en"]{display:initial}body.lang-en div[data-lang="en"],body.lang-en p[data-lang="en"]{display:block}
body:not(.lang-en) [data-lang="en"].details-grid{display:none!important}
body.lang-en [data-lang="en"].details-grid{display:grid!important}
.site-header{position:sticky;top:0;z-index:50;height:72px;padding:0 clamp(18px,3vw,44px);display:grid;grid-template-columns:1fr auto 1fr;align-items:center;border-bottom:1px solid var(--line);background:rgba(242,240,234,.93);backdrop-filter:blur(12px)}
.brand{display:flex;align-items:center;gap:11px;font-size:11px;letter-spacing:.13em;font-weight:600}.brand img{width:40px;height:40px;object-fit:contain}.nav{display:flex;gap:28px;font-size:10px;letter-spacing:.13em}.nav a{position:relative}.nav a:after{content:"";position:absolute;left:0;right:100%;bottom:-6px;border-bottom:1px solid;transition:.25s}.nav a:hover:after{right:0}.language-switch{justify-self:end;display:flex;align-items:center;gap:7px;font-size:10px;letter-spacing:.1em}.language-switch button{border:0;background:none;padding:5px 2px;color:var(--muted);cursor:pointer}.language-switch button.active{color:var(--ink);font-weight:700}
.hero{min-height:calc(100vh - 72px);max-width:var(--max);margin:auto;padding:clamp(42px,6.5vw,88px) clamp(22px,5vw,68px);display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(34px,6vw,82px);align-items:center}.hero-copy{max-width:630px}.hero-mark-wrap{width:92px;margin-bottom:20px}.hero-mark{mix-blend-mode:multiply}.eyebrow,.kicker{font-family:var(--body);font-size:9px;letter-spacing:.16em;font-weight:600;margin:0 0 18px}.hero h1{font-family:var(--display);font-size:clamp(67px,8.3vw,118px);font-weight:400;line-height:.9;letter-spacing:-.045em;margin:0 0 34px}.lead{font-size:clamp(17px,1.5vw,21px);line-height:1.7;max-width:650px;margin:0 0 7px}.text-link{display:inline-block;margin-top:28px;font-size:10px;letter-spacing:.13em;border-bottom:1px solid;padding-bottom:2px}.hero-photo{margin:0;position:relative;align-self:stretch;min-height:600px;background:#161616;overflow:hidden}.hero-photo img{height:100%;object-fit:cover;object-position:50% 45%}.hero-photo figcaption{position:absolute;right:13px;bottom:10px;color:#fff;font-size:8px;letter-spacing:.17em;writing-mode:vertical-rl}
.dark-section{background:var(--dark);color:var(--light)}.section-pad,.dark-section{padding:clamp(68px,7.5vw,104px) clamp(22px,5vw,68px)}.section-heading{max-width:var(--max);margin:0 auto 42px;display:block;border-top:1px solid var(--line);padding-top:16px}.section-heading.invert{border-color:rgba(255,255,255,.21)}.section-index{font-family:var(--body);font-size:10px;letter-spacing:.12em;margin:0;color:var(--muted)}.invert .section-index{color:#9c9a94}.section-heading h2{font-family:var(--display);font-size:clamp(32px,3.35vw,48px);font-weight:400;line-height:1.18;letter-spacing:-.025em;margin:0;max-width:860px}.invert .kicker{color:#aaa8a2}
/* compact selected projects */
.selected-projects{padding-top:58px;padding-bottom:62px}.selected-projects .section-heading{margin-bottom:28px}.selected-projects .section-heading h2{font-size:clamp(29px,2.8vw,40px);max-width:760px}.video-carousel{max-width:var(--max);margin:auto;display:grid;grid-template-columns:38px 1fr 38px;align-items:center;gap:10px}.video-track{display:flex;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;padding:2px 0 10px}.video-track::-webkit-scrollbar{display:none}.video-card{flex:0 0 min(49vw,565px);scroll-snap-align:start}.video-poster{position:relative;aspect-ratio:16/9;background:linear-gradient(135deg,#292927,#151514 70%);overflow:hidden}.video-poster:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 28% 28%,rgba(255,255,255,.10),transparent 29%),repeating-linear-gradient(115deg,rgba(255,255,255,.024) 0 1px,transparent 1px 9px)}.video-poster img{height:100%;object-fit:cover;opacity:.92;position:relative}.play-button{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:58px;height:58px;border:1px solid rgba(255,255,255,.72);border-radius:50%;background:rgba(0,0,0,.32);color:#fff;cursor:pointer;font-size:15px;padding-left:4px;transition:.2s}.play-button:hover{transform:translate(-50%,-50%) scale(1.06);background:rgba(255,255,255,.12)}.video-meta{display:flex;justify-content:flex-end;margin-top:9px;font-size:8px;letter-spacing:.16em;color:#aaa8a2}.carousel-arrow{border:0;background:none;color:#fff;font-size:19px;cursor:pointer;opacity:.65}.carousel-arrow:hover{opacity:1}
.about{background:var(--paper)}.about-layout{max-width:var(--max);margin:auto;display:grid;grid-template-columns:1fr .76fr;gap:clamp(44px,7vw,105px);align-items:start}.about-left{min-width:0}.about .section-heading{max-width:none;margin:0 0 34px}.about-copy{font-size:17px;line-height:1.82;max-width:690px}.about-copy p{margin:0 0 1.22em}.about-photo{margin:0;background:#111;overflow:hidden;aspect-ratio:4/5;max-height:570px;align-self:start}.about-photo img{height:100%;object-fit:cover;object-position:center 25%}
/* services: full-width rows, no photography inside */
.services{background:#e9e6df}.services-list{max-width:var(--max);margin:auto;border-bottom:1px solid var(--line)}.service-row{border-top:1px solid var(--line);padding:0}.service-main{display:grid;grid-template-columns:64px minmax(220px,1fr) auto;gap:18px;align-items:baseline;padding:24px 0 17px}.service-no{font-size:9px;letter-spacing:.14em;color:var(--muted);margin:0}.service-main h3{font-family:var(--display);font-size:clamp(28px,2.7vw,39px);font-weight:400;line-height:1;margin:0;letter-spacing:-.02em}.price{font-size:13px;letter-spacing:.015em;margin:0;white-space:nowrap}.service-details{border-top:1px solid rgba(22,21,18,.1);padding:0 0 13px}.service-details summary{cursor:pointer;list-style:none;width:max-content;margin-left:auto;padding:10px 0 0;font-size:10px;letter-spacing:.06em;color:#484640}.service-details summary::-webkit-details-marker{display:none}.service-details summary:after{content:" ＋"}.service-details[open] summary:after{content:" −"}.details-copy{font-size:12px;line-height:1.82;margin:0 0 5px 82px;padding:17px 0 7px}.details-copy p{margin:0 0 12px}.details-copy h4{font-family:var(--body);font-size:11px;letter-spacing:.03em;margin:19px 0 6px}
/* works */
.works{padding-top:78px}.works>.section-heading{margin-bottom:28px}.works>.section-heading h2{font-size:clamp(30px,3vw,42px)}
.work-history{max-width:var(--max);margin:auto;border-top:1px solid rgba(255,255,255,.2);padding-top:18px}.history-columns{display:grid;grid-template-columns:1fr 1fr;gap:72px}.history-columns h3{font-size:10px;letter-spacing:.15em;border-bottom:1px solid rgba(255,255,255,.2);padding-bottom:10px;margin:0 0 7px}.history-columns ul{list-style:none;margin:0;padding:0}.history-columns li{border-bottom:1px solid rgba(255,255,255,.1);padding:8px 0;font-size:12px;display:flex;justify-content:space-between;gap:20px}.history-columns small{color:#8d8b85;text-align:right;font-size:9px}.artist-cluster{font-size:11px!important}.more-artists{margin:19px 0 0;font-family:var(--display);font-size:16px;font-style:italic;color:#aaa8a2;text-align:right}
.spotify-featured{max-width:var(--max);margin:58px auto 0;border-top:1px solid rgba(255,255,255,.2);padding-top:22px}.spotify-section-heading{display:flex;align-items:baseline;justify-content:space-between;gap:30px;margin-bottom:17px}.spotify-section-heading .kicker{margin:0;color:#aaa8a2}.spotify-section-heading h2{font-family:var(--display);font-size:clamp(22px,2.3vw,32px);font-weight:400;letter-spacing:-.02em;margin:0}.spotify-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.18)}.spotify-card{min-height:166px;padding:16px;display:grid;grid-template-columns:104px minmax(0,1fr);gap:16px;background:#141413}.spotify-artwork-wrap{position:relative;align-self:start;aspect-ratio:1;background:#262522;overflow:hidden;display:grid;place-items:center}.spotify-artwork{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:2}.art-fallback{font-family:var(--display);font-size:14px;line-height:1.1;text-align:center;padding:10px;color:#bdbab2}.spotify-info{display:flex;min-width:0;flex-direction:column}.spotify-label{font-size:7px;letter-spacing:.16em;color:#989791;margin:0 0 10px}.spotify-card h3{font-family:var(--display);font-size:clamp(18px,1.65vw,24px);line-height:1.05;font-weight:400;margin:0 0 8px;letter-spacing:-.02em}.spotify-card h3 em{font-weight:400}.credit{font-size:9px;line-height:1.45;color:#aaa8a2;margin:0 0 10px}.spotify-load{margin-top:auto;align-self:flex-start;border:1px solid rgba(255,255,255,.3);background:none;color:#fff;padding:6px 8px;font-size:8px;letter-spacing:.05em;cursor:pointer}.spotify-load:hover{background:#fff;color:#111}
/* compact contact */
.contact{background:var(--paper);padding-top:58px!important;padding-bottom:42px!important}.contact-inner{max-width:var(--max);margin:auto;border-top:1px solid var(--line);padding-top:16px}.contact-inner .kicker{margin-top:14px;margin-bottom:14px}.contact-inner h2{font-family:var(--display);font-size:clamp(29px,3.3vw,46px);line-height:1.18;letter-spacing:-.025em;font-weight:400;max-width:770px;margin:24px 0 32px}.contact-links{display:flex;flex-direction:row;flex-wrap:wrap;align-items:center;gap:12px 28px;font-size:14px}.contact-links a{border-bottom:1px solid}.utmost-placeholder{margin-top:36px;border-top:1px solid var(--line);padding-top:14px;font-size:10px;color:var(--muted)}.placeholder-link{color:var(--ink);border-bottom:1px dotted}.contact-inner>.section-index{float:right}footer{min-height:64px;padding:0 clamp(22px,5vw,68px);display:flex;align-items:center;justify-content:space-between;background:var(--paper);border-top:1px solid var(--line);font-size:8px;letter-spacing:.13em}
.media-modal{position:fixed;inset:0;background:rgba(0,0,0,.89);z-index:100;display:none;align-items:center;justify-content:center;padding:6vw}.media-modal.open{display:flex}.modal-frame{width:min(1120px,92vw);aspect-ratio:16/9;background:#000}.modal-frame iframe{width:100%;height:100%;border:0}.modal-close{position:absolute;right:24px;top:18px;border:0;background:none;color:#fff;font-size:40px;font-weight:200;cursor:pointer}.reveal{opacity:0;transform:translateY(14px);transition:opacity .65s ease,transform .65s ease}.reveal.is-visible{opacity:1;transform:none}
@media(max-width:900px){.site-header{grid-template-columns:1fr auto}.nav{display:none}.hero{min-height:auto;grid-template-columns:1fr;padding-top:52px}.hero-copy{order:1}.hero-photo{order:2;min-height:550px}.hero h1{font-size:clamp(68px,17vw,104px)}.about-layout{grid-template-columns:1fr}.about-photo{aspect-ratio:4/3;max-height:none}.about .section-heading{margin-bottom:28px}.spotify-grid{grid-template-columns:1fr}.spotify-card{min-height:170px}.history-columns{gap:36px}.video-card{flex-basis:70vw}.service-main{grid-template-columns:52px minmax(180px,1fr) auto}.details-copy{margin-left:70px}.details-grid{grid-template-columns:1fr;gap:22px;padding-right:0}}
@media(max-width:620px){.site-header{height:64px;padding:0 16px}.brand img{width:35px;height:35px}.brand span{display:none}.language-switch{font-size:9px}.hero{padding:36px 18px 58px;gap:32px}.hero-mark-wrap{width:68px}.eyebrow{font-size:7px}.hero h1{font-size:20vw;margin-bottom:25px}.lead{font-size:15px}.hero-photo{min-height:440px}.section-pad,.dark-section{padding:62px 18px}.section-heading{margin-bottom:32px}.section-heading h2{font-size:29px}.selected-projects{padding:48px 18px 52px}.selected-projects .section-heading{margin-bottom:22px}.selected-projects .section-heading h2{font-size:27px;line-height:1.28}.video-carousel{grid-template-columns:1fr}.carousel-arrow{display:none}.video-track{margin-right:-18px}.video-card{flex-basis:76vw}.play-button{width:50px;height:50px}.about-copy{font-size:15px;line-height:1.85}.about-photo{aspect-ratio:4/3;max-height:none}.service-main{grid-template-columns:34px 1fr;gap:8px 12px;padding:20px 0 14px}.service-main h3{font-size:28px}.service-main .price{grid-column:2;font-size:12px}.service-details summary{font-size:9px}.details-copy{font-size:11px;margin-left:46px;padding-top:14px}.details-grid{grid-template-columns:1fr;gap:18px;padding-right:0}.spotify-card{grid-template-columns:95px minmax(0,1fr);gap:15px;padding:16px}.spotify-grid{margin-bottom:60px}.spotify-card h3{font-size:21px}.history-columns{grid-template-columns:1fr}.history-columns li{font-size:11px}.contact{padding-top:48px!important;padding-bottom:34px!important}.contact-inner h2{font-size:28px;margin:20px 0 26px}.contact-links{font-size:13px;gap:8px 22px}.utmost-placeholder{margin-top:28px}footer{padding:18px;gap:18px;flex-wrap:wrap}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transform:none;transition:none}}

.details-grid{display:grid!important;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:clamp(36px,7vw,96px);max-width:none;padding-right:clamp(0px,4vw,52px)}
.details-column{min-width:0}.details-column h4:first-child{margin-top:0}.details-notes{padding-top:2px}.details-notes p{padding-bottom:10px;border-bottom:1px solid rgba(22,21,18,.09)}
.brand img{background:transparent!important}

@media(max-width:900px){.spotify-grid{grid-template-columns:1fr}.spotify-card{min-height:150px}.details-grid{grid-template-columns:1fr;gap:22px;padding-right:0}}
@media(max-width:620px){.spotify-section-heading{display:block}.spotify-section-heading .kicker{margin-bottom:8px}.spotify-card{grid-template-columns:88px minmax(0,1fr);gap:13px;padding:14px}.spotify-featured{margin-top:46px}.more-artists{text-align:left}.artist-cluster{font-size:10.5px!important}.details-notes{padding-top:0}}

/* v5 refinements */
.eyebrow{font-size:10px}
.about{padding-bottom:clamp(46px,5vw,68px)}
.services{padding-top:clamp(52px,5.6vw,76px)}
.vimeo-poster{display:grid;place-items:center;background:linear-gradient(145deg,#272725,#111 72%)}
.vimeo-fallback{position:absolute;inset:0;display:grid;place-items:center;color:#85827c;text-align:center}
.vimeo-fallback span{font-size:8px;letter-spacing:.22em}
.vimeo-preview-frame{position:absolute;inset:0;width:100%;height:100%;border:0;pointer-events:none;background:#111}
.vimeo-poster .play-button{z-index:2}

/* Professional service-detail hierarchy */
.details-copy{font-size:12.5px;line-height:1.72;margin-left:82px;padding-top:22px;padding-bottom:13px}
.details-grid{display:grid!important;max-width:none;padding-right:0;gap:0}
.details-grid.three-col{grid-template-columns:minmax(0,1.05fr) minmax(0,1fr) minmax(0,.95fr)}
.details-grid.two-col{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.details-column{min-width:0;padding:0 clamp(22px,2.6vw,36px)}
.details-column:first-child{padding-left:0}
.details-column:last-child{padding-right:clamp(0px,2vw,24px)}
.details-column + .details-column{border-left:1px solid rgba(22,21,18,.14)}
.details-column h4,.details-notes h4{font-family:var(--display);font-size:15px;font-weight:400;line-height:1.25;letter-spacing:-.012em;margin:0 0 13px;padding-bottom:9px;border-bottom:1px solid rgba(22,21,18,.18)}
.details-column p{margin:0 0 13px;color:#34322e}
.details-notes{padding-top:0}
.details-notes p{padding-bottom:11px;border-bottom:1px solid rgba(22,21,18,.09)}
.detail-list{margin:7px 0 0;padding:0;list-style:none;color:#34322e}
.detail-list li{position:relative;padding-left:14px;margin:0 0 7px}
.detail-list li:before{content:"•";position:absolute;left:0;top:0;color:#77736b}
.detail-list.compact li{margin-bottom:4px}
.details-copy strong{font-weight:600}

/* Four compact Spotify cards */
.spotify-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
.spotify-card{grid-template-columns:86px minmax(0,1fr);gap:13px;min-height:154px;padding:14px}
.spotify-card h3{font-size:clamp(17px,1.45vw,21px)}
.spotify-label{margin-bottom:8px}
.spotify-load{font-size:7.5px}

@media(max-width:1000px){
  .spotify-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:900px){
  .details-grid.three-col,.details-grid.two-col{grid-template-columns:1fr}
  .details-column{padding:0 0 18px}
  .details-column + .details-column{border-left:0;border-top:1px solid rgba(22,21,18,.14);padding-top:19px}
  .details-copy{margin-left:70px}
}
@media(max-width:620px){
  .eyebrow{font-size:8px}
  .about{padding-bottom:44px}
  .services{padding-top:48px}
  .details-copy{font-size:11.5px;margin-left:46px;padding-top:16px}
  .details-column h4,.details-notes h4{font-size:14px;margin-bottom:10px;padding-bottom:7px}
  .spotify-grid{grid-template-columns:1fr}
  .spotify-card{grid-template-columns:88px minmax(0,1fr);min-height:0}
}
