:root { --paper:#fff; --ink:#111; --muted:#747474; --line:#dedede; --soft:#f5f5f3; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--paper); color:var(--ink); font-family:"Helvetica Neue","Hiragino Sans","Yu Gothic",sans-serif; }
a { color:inherit; text-decoration:none; }

.site-header { position:fixed; z-index:20; top:0; left:0; width:100%; display:flex; align-items:center; justify-content:space-between; padding:24px 3.2vw; background:color-mix(in srgb,white 90%,transparent); backdrop-filter:blur(14px); }
.brand-link { display:inline-flex; align-items:center; }
.logo-image { display:block; width:clamp(148px,13vw,210px); height:auto; }
.site-header nav { display:flex; gap:clamp(16px,2.4vw,40px); font-size:10px; font-weight:650; letter-spacing:.16em; }
.site-header nav a { position:relative; display:inline-flex; align-items:center; gap:7px; }
.site-header nav a::before { width:5px; height:5px; flex:0 0 5px; border-radius:50%; background:#1597dc; content:""; }
.site-header nav a:nth-child(2)::before { background:#e9004f; }.site-header nav a:nth-child(3)::before { background:#8f118f; }.site-header nav a:nth-child(4)::before { background:#00a04a; }
.site-header nav a::after { position:absolute; right:0; bottom:-7px; left:0; height:1px; background:var(--ink); content:""; transform:scaleX(0); transform-origin:right; transition:transform 260ms ease; }
.site-header nav a:hover::after { transform:scaleX(1); transform-origin:left; }

.hero { position:relative; min-height:78svh; display:grid; grid-template-columns:minmax(0,1fr) minmax(320px,42vw); align-items:center; gap:clamp(50px,7vw,120px); padding:125px max(6.4vw,30px) 80px; overflow:hidden; border-bottom:1px solid var(--ink); }
.hero-copy { position:relative; z-index:2; width:100%; }
.hero h1 { max-width:860px; margin:0; font-size:clamp(28px,3.5vw,54px); font-weight:470; letter-spacing:-.035em; line-height:1.5; }
.hero h1 > span { font-weight:650; }
.hero-japanese { margin:27px 0 0; color:#333; font-size:clamp(14px,1.2vw,17px); font-weight:500; letter-spacing:.035em; line-height:1.8; }
.hero-description { max-width:590px; margin:13px 0 0; color:#666; font-size:clamp(10px,.82vw,12px); font-weight:450; letter-spacing:.025em; line-height:2; }
.hero-spectrum { display:flex; align-items:center; justify-content:space-between; width:clamp(250px,22vw,340px); margin-top:15px; }
.scroll-cue { position:absolute; right:3.2vw; bottom:44px; display:flex; gap:28px; font-size:10px; font-weight:650; letter-spacing:.16em; }
.hero-window { width:100%; margin:0; align-self:center; }
.hero-window img,
.hero-window video { display:block; width:100%; aspect-ratio:16/9; object-fit:cover; }

.work-section { padding:clamp(90px,10vw,155px) 3.2vw; scroll-margin-top:55px; }
#client-work { --section-color:#1597dc; }
#films { --section-color:#e9004f; }
#ai-lab { --section-color:#8f118f; }
#about { --section-color:#00a04a; }
.section-heading { display:flex; align-items:flex-end; justify-content:space-between; margin-bottom:42px; }
.section-heading > div > p,.side-label { display:flex; align-items:center; gap:9px; margin:0 0 12px; color:var(--muted); font-size:10px; font-weight:650; letter-spacing:.2em; }
.section-heading > div > p::before,.side-label::before { width:6px; height:6px; flex:0 0 6px; border-radius:50%; background:var(--section-color); content:""; }
.section-heading h2 { margin:0; font-size:clamp(34px,4vw,60px); font-weight:560; letter-spacing:-.045em; line-height:.95; }
.section-note { margin:0 0 3px; color:var(--muted); font-size:10px; letter-spacing:.14em; }
.section-intro { max-width:720px; margin:0 0 clamp(45px,6vw,85px); color:#494949; font-size:12px; letter-spacing:.035em; line-height:2.05; }
.film-intro-block { display:grid; grid-template-columns:minmax(0,720px) auto; align-items:end; justify-content:space-between; gap:40px; margin-bottom:clamp(45px,6vw,85px); }
.film-intro-block .section-intro { margin:0; }
.film-intro-copy { min-width:0; }
.film-intro-photo { display:block; width:min(100%,640px); height:auto; margin-top:22px; }
.garigari-links { display:flex; align-items:flex-end; gap:18px; }
.garigari-links img { display:block; width:150px; height:auto; }
.garigari-links > div { display:grid; gap:8px; padding-bottom:2px; }
.garigari-links a { color:#555; font-size:8px; font-weight:650; letter-spacing:.14em; }
.garigari-links a::before { display:inline-block; width:4px; height:4px; margin:0 7px 1px 0; border-radius:50%; background:var(--section-color); content:""; transition:transform 220ms ease; }
.garigari-links a:hover::before { transform:scale(1.6); }
.garigari-links a:hover { color:var(--ink); }

.project-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:48px 1.5vw; max-width:1220px; }
.project-card { position:relative; min-width:0; }
.thumbnail-art { position:relative; width:100%; aspect-ratio:16/9; overflow:hidden; background:#dededb; isolation:isolate; }
.thumbnail-art::before,.thumbnail-art::after { position:absolute; content:""; transition:transform 700ms cubic-bezier(.2,.75,.2,1); }
.thumbnail-art::before { inset:-8%; z-index:-2; background:var(--art-bg); }
.thumbnail-art::after { z-index:-1; background:var(--art-shape); }
.project-card:hover .thumbnail-art::before { transform:scale(1.055); }
.thumbnail-image { position:absolute; z-index:0; inset:0; display:block; width:100%; height:100%; object-fit:cover; transition:transform 700ms cubic-bezier(.2,.75,.2,1); }
.project-card:hover .thumbnail-image { transform:scale(1.035); }
.frame-number { position:absolute; z-index:2; top:8px; right:8px; padding:3px 5px; color:white; background:rgba(0,0,0,.46); font-size:8px; font-weight:650; letter-spacing:.14em; }
.client-grid .frame-number { display:none; }
.focus-frame { position:absolute; z-index:1; inset:9%; border:1px solid color-mix(in srgb,white 45%,transparent); opacity:0; transform:scale(.97); transition:opacity 300ms ease,transform 500ms ease; }
.project-card:hover .focus-frame { opacity:1; transform:scale(1); }
.card-meta { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; padding-top:11px; }
.card-meta p { margin:0 0 4px; color:var(--muted); font-size:9px; font-weight:650; letter-spacing:.17em; }
.client-grid .client-genre::before { display:inline-block; width:4px; height:4px; margin:0 7px 2px 0; border-radius:50%; background:#1597dc; content:""; }
.client-grid .project-card:nth-child(1) .client-genre::before{background:#0b66b2}.client-grid .project-card:nth-child(2) .client-genre::before{background:#1597dc}.client-grid .project-card:nth-child(3) .client-genre::before{background:#11a3a0}.client-grid .project-card:nth-child(4) .client-genre::before{background:#00a04a}.client-grid .project-card:nth-child(5) .client-genre::before{background:#8bc70b}.client-grid .project-card:nth-child(6) .client-genre::before{background:#ffe600}.client-grid .project-card:nth-child(7) .client-genre::before{background:#f39800}.client-grid .project-card:nth-child(8) .client-genre::before{background:#ed001b}.client-grid .project-card:nth-child(9) .client-genre::before{background:#e9004f}.client-grid .project-card:nth-child(10) .client-genre::before{background:#e6008b}.client-grid .project-card:nth-child(11) .client-genre::before{background:#8f118f}.client-grid .project-card:nth-child(12) .client-genre::before{background:#27279a}
.card-meta h3 { margin:0; font-size:clamp(13px,1vw,15px); font-weight:540; letter-spacing:.015em; }
.card-meta small { display:block; margin-top:7px; color:#666; font-size:9px; letter-spacing:.06em; }
.card-meta > span { color:var(--muted); font-size:10px; letter-spacing:.1em; }
.client-meta .client-genre { margin-bottom:8px; font-size:9px; letter-spacing:.15em; }
.client-meta .client-name { margin-bottom:3px; color:#333; font-size:clamp(11px,.82vw,13px); font-weight:540; letter-spacing:.02em; line-height:1.45; }
.client-meta h3 { font-size:clamp(11px,.82vw,13px); font-weight:500; line-height:1.45; }
.client-meta small { margin-top:8px; color:#333; font-size:11px; font-weight:560; letter-spacing:.045em; }
.client-meta > span { padding-top:1px; font-size:9px; }
.link-mark { position:absolute; right:10px; bottom:44px; display:grid; width:34px; height:34px; place-items:center; background:white; border-radius:50%; font-size:11px; }

.client-more { display:grid; grid-template-columns:minmax(150px,220px) minmax(0,900px); gap:clamp(32px,5vw,80px); max-width:1220px; margin-top:clamp(75px,8vw,120px); padding-top:34px; border-top:1px solid var(--line); }
.client-more h3 { margin:0; font-size:clamp(17px,1.5vw,22px); font-weight:590; letter-spacing:.08em; }
.client-more h3::before { display:inline-block; width:7px; height:7px; margin:0 11px 3px 0; border-radius:50%; background:var(--section-color); content:""; }
.client-more-body ul { display:grid; gap:10px; margin:0; padding:0; list-style:none; }
.client-more-body li { position:relative; padding-left:15px; color:#444; font-size:11px; letter-spacing:.025em; line-height:1.75; }
.client-more-body li::before { position:absolute; top:.77em; left:0; width:3px; height:3px; border-radius:50%; background:#999; content:""; }
.client-more-closing { display:grid; gap:14px; margin-top:30px; padding-top:25px; border-top:1px solid var(--line); }
.client-more-closing p { margin:0; color:#444; font-size:12px; letter-spacing:.03em; line-height:2; }
.client-more-closing p:last-child { color:#222; font-weight:520; }

.client-a{--art-bg:linear-gradient(135deg,#e5e0d5 0 32%,#a7382d 32% 58%,#282828 58%);--art-shape:linear-gradient(90deg,transparent 42%,rgba(255,255,255,.3) 42% 44%,transparent 44%)}.client-a::after{inset:0}
.client-b{--art-bg:radial-gradient(circle at 65% 28%,#e0cdb8 0 9%,transparent 9%),linear-gradient(130deg,#1f3439,#85989a 58%,#e8e3d9 58%);--art-shape:linear-gradient(115deg,transparent 46%,rgba(255,255,255,.25) 46% 48%,transparent 48%)}.client-b::after{inset:0}
.client-c{--art-bg:linear-gradient(145deg,#d7d9d8 0 43%,#40484e 43% 72%,#c49968 72%);--art-shape:radial-gradient(circle,rgba(255,255,255,.55) 0 16%,transparent 17%)}.client-c::after{width:35%;aspect-ratio:1;left:12%;bottom:-8%;border-radius:50%}
.client-d{--art-bg:linear-gradient(22deg,#07131c,#0d3f63 46%,#1d91b3 46% 51%,#05121b 51%);--art-shape:repeating-linear-gradient(90deg,transparent 0 18px,rgba(255,255,255,.09) 18px 19px)}.client-d::after{inset:0}
.client-e{--art-bg:linear-gradient(110deg,#d6d0c5 0 28%,#efece4 28% 60%,#876c55 60%);--art-shape:radial-gradient(ellipse,rgba(255,255,255,.5),transparent 65%)}.client-e::after{width:45%;height:90%;right:6%;top:5%}
.client-f{--art-bg:linear-gradient(155deg,#f0e5d5 0 36%,#4c6672 36% 63%,#c8c1ae 63%);--art-shape:linear-gradient(90deg,rgba(255,255,255,.22) 1px,transparent 1px)}.client-f::after{inset:0;background-size:28px 100%}
.client-g{--art-bg:linear-gradient(135deg,#213137 0 47%,#c2a676 47% 52%,#d9d5cd 52%);--art-shape:radial-gradient(circle,rgba(255,255,255,.4),transparent 55%)}.client-g::after{width:50%;height:80%;right:0;top:10%}
.client-h{--art-bg:linear-gradient(45deg,#ece8df 0 34%,#646f77 34% 65%,#c46f55 65%);--art-shape:repeating-linear-gradient(135deg,transparent 0 22px,rgba(255,255,255,.12) 22px 23px)}.client-h::after{inset:0}

.film-section { background:var(--soft); }
.film-list { display:flex; flex-direction:column; border-top:1px solid var(--line); }
.film-line-catches { order:1; }
.film-help { order:2; }
.film-list > .featured-film:not(.film-line-catches):not(.film-help) { order:3; }
.film-list > .compact-films { order:4; }
.film-entry { padding:55px 0 72px; border-bottom:1px solid var(--line); }
.film-title-row { display:grid; grid-template-columns:1fr auto; align-items:start; margin-bottom:24px; }
.film-title-row > span:first-child { display:none; }
.film-title-row > span { color:var(--muted); font-size:10px; letter-spacing:.15em; }
.film-title-row h3 { margin:0; font-size:clamp(20px,2vw,30px); font-weight:530; letter-spacing:-.02em; }
.film-title-row p { margin:7px 0 0; color:var(--muted); font-size:10px; letter-spacing:.14em; }
.film-gallery { display:grid; grid-template-columns:minmax(145px,1.15fr) 5fr; gap:1.4vw; padding-left:55px; }
.film-poster { position:relative; aspect-ratio:2/3; overflow:hidden; background:var(--poster-bg); }
.film-poster::after { position:absolute; inset:8%; border:1px solid rgba(255,255,255,.25); content:""; }
.film-poster span { position:absolute; right:12px; bottom:12px; color:rgba(255,255,255,.78); font-size:7px; letter-spacing:.18em; }
.film-stills { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); grid-template-rows:repeat(2,1fr); gap:1.4vw; }
.film-still { position:relative; min-height:0; overflow:hidden; background:var(--still-bg); }
.film-still:first-child { grid-column:span 2; }
.film-still span { position:absolute; right:10px; bottom:9px; color:rgba(255,255,255,.7); font-size:7px; }
.film-link { position:relative; display:block; }
.film-link > span { position:absolute; right:18px; bottom:16px; padding:10px 12px; background:#fff; font-size:8px; letter-spacing:.12em; }
.featured-film { position:relative; padding:55px 0 90px; border-bottom:1px solid var(--ink); }
.featured-film::after { position:absolute; right:0; bottom:-4px; width:7px; height:7px; border-radius:50%; background:#1597dc; content:""; }
.featured-film:nth-child(2)::after { background:#00a04a; }
.featured-film:nth-child(3)::after { background:#f5cf00; }
.featured-title-row { margin-bottom:32px; }
.featured-film-layout { display:grid; grid-template-columns:minmax(190px,240px) minmax(0,1fr); align-items:stretch; gap:clamp(26px,3vw,42px); max-width:1220px; }
.featured-poster { min-height:0; overflow:hidden; }
.featured-poster img { display:block; width:100%; height:100%; object-fit:cover; object-position:center; }
.featured-poster.poster-contain { background:#000; }
.featured-poster.poster-contain img { object-fit:contain; }
.featured-film-content { min-width:0; display:flex; flex-direction:column; }
.film-description { display:grid; grid-template-columns:1fr auto; gap:30px; align-items:start; padding-bottom:25px; border-bottom:1px solid var(--line); }
.film-description > p { max-width:680px; margin:0; color:#333; font-size:14px; letter-spacing:.02em; line-height:2; }
.trailer-button { min-width:155px; display:flex; align-items:center; justify-content:space-between; gap:18px; padding:13px 14px; border:1px solid #aaa; font-size:10px; letter-spacing:.12em; transition:color 220ms ease,background 220ms ease,border-color 220ms ease; }
.trailer-button > span:first-child::before { display:inline-block; width:5px; height:5px; margin:0 8px 1px 0; border-radius:50%; background:var(--section-color,#e9004f); content:""; transition:transform 220ms ease; }
.trailer-button:hover > span:first-child::before { transform:scale(1.5); }
.trailer-button:hover { color:white; background:var(--ink); border-color:var(--ink); }
.film-award { display:grid; grid-template-columns:62px auto 1fr; align-items:baseline; gap:10px; margin-top:18px; padding:12px 14px; border:1px solid #b9b9b9; color:#333; }
.film-award span { color:var(--muted); font-size:10px; font-weight:650; letter-spacing:.14em; }
.film-award strong { font-size:13px; font-weight:650; letter-spacing:.08em; }
.film-award small { color:var(--muted); font-size:10px; letter-spacing:.08em; }
.featured-awards { display:grid; gap:8px; margin-top:18px; }
.featured-awards > div { display:grid; grid-template-columns:minmax(210px,auto) 1fr; align-items:baseline; gap:18px; padding:10px 14px; border:1px solid #b9b9b9; }
.featured-awards small { color:var(--muted); font-size:9px; letter-spacing:.07em; line-height:1.6; }
.featured-awards strong { font-size:11px; font-weight:650; letter-spacing:.04em; line-height:1.7; }
.film-credits { margin:0; padding:18px 0 24px; }
.film-credits > div { display:grid; grid-template-columns:62px 1fr; gap:10px; padding:5px 0; }
.film-credits dt { color:var(--muted); font-size:11px; font-weight:650; letter-spacing:.14em; }
.film-credits dd { margin:0; color:#444; font-size:12px; letter-spacing:.02em; line-height:1.9; }
.featured-stills { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1.5vw; margin-top:auto; }
.featured-stills img { display:block; width:100%; aspect-ratio:16/9; object-fit:cover; background:#111; }
.compact-films { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:clamp(36px,5vw,76px); padding:70px 0 80px; border-bottom:1px solid var(--ink); }
.compact-film-heading { display:grid; grid-template-columns:1fr; margin-bottom:22px; }
.compact-film-heading > span { display:none; }
.compact-film-heading > span { color:var(--muted); font-size:10px; letter-spacing:.15em; }
.compact-film-heading h3 { margin:0; font-size:clamp(18px,1.6vw,25px); font-weight:530; letter-spacing:-.02em; }
.compact-film-heading p { margin:6px 0 0; color:var(--muted); font-size:9px; letter-spacing:.12em; }
.compact-film-body { display:grid; grid-template-columns:minmax(180px,240px) minmax(0,1fr); align-items:start; gap:clamp(18px,2.2vw,32px); }
.compact-film-body > img { display:block; width:100%; height:auto; }
.compact-film-info { min-width:0; }
.compact-meta { margin:0; font-size:11px; font-weight:650; letter-spacing:.1em; }
.compact-event { margin:8px 0 0; color:var(--muted); font-size:9px; letter-spacing:.06em; line-height:1.7; }
.compact-award { display:flex; align-items:baseline; gap:12px; margin:16px 0; padding:9px 10px; border:1px solid #b9b9b9; }
.compact-award span { color:var(--muted); font-size:8px; font-weight:650; letter-spacing:.14em; }.compact-award strong { font-size:11px; letter-spacing:.06em; }
.compact-link { width:100%; min-width:0; margin-bottom:16px; padding:10px; font-size:9px; }
.compact-credits { margin:0; border-top:1px solid var(--line); }
.compact-credits > div { display:grid; grid-template-columns:45px 1fr; gap:8px; padding:10px 0; border-bottom:1px solid var(--line); }
.compact-credits dt { color:var(--muted); font-size:9px; font-weight:650; letter-spacing:.12em; }
.compact-credits dd { margin:0; color:#444; font-size:10px; letter-spacing:.01em; line-height:1.8; }
.poster-a{--poster-bg:linear-gradient(180deg,#91abb1 0 33%,#527477 33% 46%,#22312f 46% 50%,#978d6e 50%)}
.still-a1{--still-bg:linear-gradient(180deg,#a4b9be 0 52%,#55797d 52% 67%,#7a7057 67%)}.still-a2{--still-bg:linear-gradient(145deg,#9caeb0 0 43%,#303a37 43% 48%,#8c826a 48%)}.still-a3{--still-bg:linear-gradient(25deg,#5b736f,#c2b598 60%,#879b9d 60%)}
.poster-b{--poster-bg:radial-gradient(circle at 68% 33%,#d5a065 0 8%,transparent 8%),linear-gradient(145deg,#171414 0 45%,#634c3e 45% 68%,#aa9071 68%)}
.still-b1{--still-bg:linear-gradient(125deg,#171414 0 42%,#604b3f 42% 62%,#b59b7c 62%)}.still-b2{--still-bg:radial-gradient(circle at 64% 42%,#cf985e 0 11%,transparent 11%),linear-gradient(135deg,#332a26,#92745d)}.still-b3{--still-bg:linear-gradient(25deg,#0f0f0f 0 51%,#7f654f 51% 72%,#c0a17c 72%)}
.poster-c{--poster-bg:linear-gradient(135deg,#d2c9b8 0 30%,#443d3a 30% 54%,#a99b86 54% 75%,#e7dfd0 75%)}
.still-c1{--still-bg:linear-gradient(145deg,#ded5c5 0 38%,#4a413d 38% 61%,#a59885 61%)}.still-c2{--still-bg:radial-gradient(circle at center,transparent 0 17%,rgba(255,255,255,.3) 17% 19%,transparent 19%),linear-gradient(135deg,#504741,#b2a48e)}.still-c3{--still-bg:linear-gradient(35deg,#292523 0 38%,#8b7c69 38% 67%,#e3d9c7 67%)}

.ai-section { background:#fff; }
.ai-intro { display:grid; grid-template-columns:minmax(0,680px) minmax(210px,300px); align-items:end; justify-content:space-between; gap:50px; max-width:1220px; margin-top:48px; }
.ai-intro-copy p { margin:0; color:#333; font-size:12px; letter-spacing:.025em; line-height:2.05; }
.ai-intro-copy .ai-policy { margin-top:22px; color:#666; font-size:10px; line-height:1.95; }
.ai-video-grid { display:grid; grid-template-columns:repeat(8,minmax(0,1fr)); gap:7px; max-width:1220px; margin-top:18px; }
.ai-video { grid-column:span 3; aspect-ratio:16/9; overflow:hidden; background:#111; }
.ai-video iframe { display:block; width:100%; height:100%; border:0; }
.ai-youtube-link { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:15px 0; border-top:1px solid var(--ink); border-bottom:1px solid var(--ink); color:var(--ink); transition:padding 220ms ease; }
.ai-youtube-link:hover { padding-right:8px; padding-left:8px; }
.ai-youtube-link span:first-child { font-size:12px; font-weight:560; letter-spacing:.04em; }
.ai-youtube-link span:last-child { color:var(--muted); font-size:8px; font-weight:650; letter-spacing:.14em; white-space:nowrap; }
.ai-image-strip { display:grid; grid-template-columns:repeat(8,minmax(0,1fr)); gap:7px; max-width:1220px; margin-top:46px; overflow:hidden; }
.ai-image-strip img { display:block; width:100%; aspect-ratio:16/9; object-fit:cover; }

.about-section { display:grid; grid-template-columns:1fr 3fr; gap:3vw; padding:clamp(110px,13vw,205px) 3.2vw; border-top:1px solid var(--line); scroll-margin-top:55px; }
.company-heading { display:flex; align-items:baseline; gap:24px; padding-bottom:30px; border-bottom:1px solid var(--ink); }
.company-heading h2 { margin:0; font-size:clamp(24px,2.5vw,38px); font-weight:530; letter-spacing:-.035em; }
.company-heading p { margin:0; color:var(--muted); font-size:11px; letter-spacing:.16em; }
.company-facts { margin:0; }
.fact-row { padding:20px 0; border-bottom:1px solid var(--line); }
.fact-row > div { display:grid; grid-template-columns:105px 1fr; align-items:baseline; }
.company-facts dt { color:var(--muted); font-size:10px; font-weight:650; letter-spacing:.14em; }
.company-facts dd { margin:0; color:#363636; font-size:12px; letter-spacing:.02em; line-height:1.9; }
.company-facts dd small { margin-left:16px; color:var(--muted); font-size:10px; }
.clients-row dd small { display:block; margin:5px 0 0; }
.email-row dd > span { letter-spacing:.06em; }
.email-row dd small { margin-left:18px; }
.director-profile { display:grid; grid-template-columns:170px minmax(0,590px); gap:32px; margin-top:85px; padding-top:34px; border-top:1px solid var(--ink); }
.director-profile > img { display:block; width:170px; aspect-ratio:4/3; object-fit:cover; }
.director-copy { align-self:start; }
.director-heading { margin-bottom:20px; }
.director-heading h3 { margin:0 0 7px; font-size:15px; font-weight:560; letter-spacing:.02em; }
.director-heading h3 span { margin-left:10px; color:var(--muted); font-size:11px; font-weight:500; letter-spacing:.11em; }
.director-heading p { margin:0; color:var(--muted); font-size:10px; letter-spacing:.11em; }
.director-copy > p { margin:0; color:#555; font-size:11px; letter-spacing:.025em; line-height:2.05; }
footer { position:relative; display:grid; grid-template-columns:1fr auto 1fr; align-items:center; padding:54px 3.2vw 30px; border-top:1px solid var(--line); color:#666; background:white; font-size:10px; letter-spacing:.14em; }
footer > span { grid-column:2; }
footer > a { grid-column:3; justify-self:end; }
.footer-spectrum { position:absolute; top:20px; left:50%; display:flex; gap:8px; transform:translateX(-50%); }
.footer-spectrum span { width:6px; height:6px; border-radius:50%; background:#0b66b2; }
.hero-spectrum span { width:clamp(8px,.72vw,11px); height:clamp(8px,.72vw,11px); border-radius:50%; background:#0b66b2; }
.footer-spectrum span:nth-child(2),.hero-spectrum span:nth-child(2){background:#1597dc}.footer-spectrum span:nth-child(3),.hero-spectrum span:nth-child(3){background:#11a3a0}.footer-spectrum span:nth-child(4),.hero-spectrum span:nth-child(4){background:#00a04a}.footer-spectrum span:nth-child(5),.hero-spectrum span:nth-child(5){background:#8bc70b}.footer-spectrum span:nth-child(6),.hero-spectrum span:nth-child(6){background:#ffe600}.footer-spectrum span:nth-child(7),.hero-spectrum span:nth-child(7){background:#f39800}.footer-spectrum span:nth-child(8),.hero-spectrum span:nth-child(8){background:#ed001b}.footer-spectrum span:nth-child(9),.hero-spectrum span:nth-child(9){background:#e9004f}.footer-spectrum span:nth-child(10),.hero-spectrum span:nth-child(10){background:#e6008b}.footer-spectrum span:nth-child(11),.hero-spectrum span:nth-child(11){background:#8f118f}.footer-spectrum span:nth-child(12),.hero-spectrum span:nth-child(12){background:#27279a}

@media(max-width:900px){
  .project-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .ai-intro{grid-template-columns:minmax(0,1fr) 230px; gap:30px}
  .film-gallery{grid-template-columns:minmax(130px,1.1fr) 3.5fr}
  .featured-film-layout{grid-template-columns:minmax(180px,220px) minmax(0,1fr); gap:28px}
  .film-description{grid-template-columns:1fr}.trailer-button{width:170px}
}

@media(max-width:650px){
  .site-header{align-items:flex-start; padding:18px 20px}
  .logo-image{width:138px}
  .site-header nav{max-width:56%; flex-wrap:wrap; justify-content:flex-end; gap:8px 15px; font-size:9px}
  .hero{min-height:calc(100svh - 72px); display:flex; flex-direction:column; justify-content:center; align-items:stretch; gap:34px; padding:138px 28px 78px}
  .hero-copy{width:100%; max-width:370px; margin:0 auto}.hero h1{font-size:28px; line-height:1.55}.hero-spectrum{width:250px; margin-top:13px}.hero-spectrum span{width:8px;height:8px}.hero-japanese{max-width:340px; margin-top:22px; font-size:13px}.hero-description{max-width:370px; margin-top:11px; font-size:10px; line-height:1.9}
  .hero-window{width:100%; max-width:370px; margin:0 auto}
  .scroll-cue{right:28px; bottom:34px}
  .work-section,.about-section{padding-right:20px;padding-left:20px}
  .section-heading{align-items:flex-start; flex-direction:column; gap:20px}
  .section-intro{font-size:11px; line-height:2}
  .film-intro-block{grid-template-columns:1fr; align-items:start; gap:24px}.garigari-links{align-items:center}.garigari-links img{width:125px}
  .project-grid{grid-template-columns:repeat(2,minmax(0,1fr)); gap:36px 12px}
  .client-more{grid-template-columns:1fr; gap:24px; margin-top:70px; padding-top:27px}.client-more-body li{font-size:10px; line-height:1.8}.client-more-closing p{font-size:11px; line-height:1.9}
  .ai-intro{grid-template-columns:1fr; align-items:start; gap:28px; margin-top:34px}.ai-video-grid{grid-template-columns:1fr; margin-top:16px}.ai-video{grid-column:1}.ai-youtube-link{width:100%; max-width:330px}.ai-image-strip{grid-template-columns:repeat(8,145px); gap:6px; margin-top:36px; padding-bottom:8px; overflow-x:auto; scrollbar-width:thin}.ai-image-strip img{width:145px}
  .film-entry{padding:42px 0 55px}
  .film-title-row{grid-template-columns:1fr auto}.film-gallery{grid-template-columns:1fr; gap:12px; padding-left:0}
  .film-poster{width:48%}.film-stills{gap:8px}.film-still{aspect-ratio:16/9}
  .featured-film{padding:42px 0 60px}.featured-film-layout{grid-template-columns:1fr; gap:32px; padding-left:0}.featured-poster{width:48%; max-width:210px; height:auto}.featured-poster img{height:auto}.featured-stills{grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px}.film-description{gap:20px}.film-description > p{font-size:13px}.film-award{grid-template-columns:55px auto; gap:8px 10px}.film-award small{grid-column:2}.film-credits > div{grid-template-columns:55px 1fr}.film-credits dd{font-size:11px}
  .featured-awards > div{grid-template-columns:1fr; gap:4px}.compact-films{grid-template-columns:1fr; gap:60px; padding:52px 0 60px}.compact-film-body{grid-template-columns:minmax(120px,42%) 1fr; gap:18px}.compact-credits > div{grid-template-columns:40px 1fr}.compact-credits dd{font-size:9px}
  .about-section{grid-template-columns:1fr; gap:40px}.company-heading{align-items:flex-start; flex-direction:column; gap:8px}.fact-row > div{grid-template-columns:82px 1fr}.company-facts dd small{display:block; margin:4px 0 0}.email-row dd small{margin-left:0}.director-profile{grid-template-columns:110px 1fr; gap:20px; margin-top:60px}.director-profile > img{width:110px}.director-heading h3 span{display:block; margin:5px 0 0}.director-copy > p{font-size:10px; line-height:1.9}
  footer{grid-template-columns:1fr; justify-items:center; gap:22px; padding:54px 20px 30px}footer > span,footer > a{grid-column:1;justify-self:center}.footer-spectrum{left:50%}
}

@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition-duration:.01ms!important}}
