:root{--paper:#f5f4ef;--ink:#30332e;--muted:#77796f}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{margin:0;background:var(--paper);color:var(--ink);font:14px Arial,'Hiragino Kaku Gothic ProN',sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer;border:0;background:none}a:focus-visible,button:focus-visible{outline:2px solid #a0ad94;outline-offset:5px}header{position:absolute;z-index:3;top:0;left:0;right:0;padding:30px 38px;display:flex;justify-content:space-between;color:#fff;text-shadow:0 1px 8px #0006}.logo{font:32px Georgia,serif;letter-spacing:-1.4px}nav{display:flex;gap:36px;font-size:12px;padding-top:10px}.hero{height:100svh;min-height:700px;position:relative;color:white;background:#676e60}#hero-stage,.shade{position:absolute;inset:0;overflow:hidden}#hero-stage img,#hero-stage video{position:absolute;width:100%;height:100%;object-fit:cover;object-position:center;inset:0}#hero-stage video{opacity:0;transition:opacity .65s}#hero-stage video.active{opacity:1}.shade{background:linear-gradient(90deg,#0006,transparent 78%),linear-gradient(0deg,#0005,transparent 60%);pointer-events:none}.hero-heading{position:absolute;top:130px;left:38px}.hero-heading h1{font-size:11px;font-weight:400;letter-spacing:.1em;margin:0 0 10px}.hero-heading p{font-size:10px;opacity:.8}.hero-index{position:absolute;bottom:42px;left:38px}.eyebrow{font-size:10px;letter-spacing:.12em;text-transform:uppercase;margin:0 0 25px}.hero-index .eyebrow{opacity:.7;margin-bottom:17px}#project-list{display:grid;gap:2px}.project-button{display:flex;gap:16px;align-items:center;text-align:left;padding:6px 0;line-height:1.6;font-size:13px;color:#fff;text-shadow:0 1px 8px #0007}.project-button .number{width:16px;font-size:9px;opacity:.5}.project-button[aria-pressed=true] .number{font-size:0;opacity:1}.project-button[aria-pressed=true] .number:after{content:'—';font-size:14px}.all-link{display:inline-block;margin:24px 0 0 32px;font-size:10px;border-bottom:1px solid #fff7;padding-bottom:5px}.hero-detail{position:absolute;right:38px;bottom:105px;text-align:right;font-size:11px}.hero-detail p{font-size:10px;opacity:.8}#hero-open{padding:8px 0;border-bottom:1px solid #fff8}.hero-tools{position:absolute;right:38px;bottom:42px;display:flex;align-items:center;gap:25px;font-size:10px}.hero-tools button{font-size:10px;min-height:32px}.works{padding:110px 6vw}.section-heading{display:flex;align-items:end;justify-content:space-between;margin-bottom:55px}.section-heading h2{font:46px Georgia,serif;letter-spacing:-1px;margin:0}.section-heading h2 span{font:11px Arial;vertical-align:top;margin-left:8px}.filters{display:flex;gap:25px}.filters button{font-size:11px;color:var(--muted);padding:10px 0;border-bottom:1px solid transparent}.filters button[aria-pressed=true]{color:var(--ink);border-color:var(--ink)}.grid{display:grid;grid-template-columns:1fr 1fr;gap:65px 4vw}.card{padding:0;text-align:left;width:100%}.card-image{position:relative;overflow:hidden;background:#e5e4dc;aspect-ratio:4/3}.card img{width:100%;height:100%;object-fit:cover;transition:transform .6s}.card:hover img{transform:scale(1.025)}.card.products .card-image{aspect-ratio:1}.card:nth-child(even){margin-top:80px}.card-meta{display:flex;justify-content:space-between;gap:16px;margin-top:18px;line-height:1.6;font-size:12px}.card-meta small{font-size:10px;color:var(--muted);white-space:nowrap}.card-arrow{position:absolute;bottom:20px;right:20px;font-size:20px;color:#fff;text-shadow:0 1px 5px #0008}.about{padding:110px 9vw;display:grid;grid-template-columns:1fr 1fr;gap:12vw;border-top:1px solid #dcdcd2;align-items:center}.about>img{width:100%}.about h2{font:28px/1.8 'Hiragino Mincho ProN',serif;letter-spacing:.05em;font-weight:400}.about p:not(.eyebrow){font-size:12px;line-height:2.5}.services{margin:40px 0;font-size:11px}.services div{border-top:1px solid #dcdcd2;padding:16px 0;display:grid;grid-template-columns:100px 1fr;gap:15px}.services dd{margin:0;line-height:1.7}.text-link{font-size:11px;border-bottom:1px solid;padding-bottom:5px}.contact{padding:100px 25px;text-align:center;background:#e9ebe3}.contact h2{font-size:26px;font-weight:400;letter-spacing:.05em}.contact p{font-size:12px;line-height:2.4}.contact-link{display:inline-block;margin-top:25px;padding-bottom:12px;border-bottom:1px solid;font-size:16px}footer{display:flex;align-items:center;justify-content:space-between;padding:40px 6vw;font-size:10px}footer .logo{font-size:26px}footer small{color:var(--muted)}.skip{position:absolute;top:-80px;left:20px;z-index:10;background:white;padding:12px}.skip:focus{top:10px}dialog{position:fixed;inset:0;margin:0;width:100%;max-width:none;height:100dvh;max-height:none;border:0;background:var(--paper);color:var(--ink);padding:0;overflow:auto}dialog::backdrop{background:var(--paper)}.case-nav{position:sticky;top:0;z-index:3;background:#f5f4eff2;display:flex;justify-content:space-between;align-items:center;padding:22px 38px;border-bottom:1px solid #deded5}.case-nav .logo{font-size:26px}#close{padding:12px;font-size:12px}#case-content{max-width:1320px;margin:auto;padding:75px 6vw 60px}.case-intro{max-width:850px;margin-bottom:55px}.case-intro h2{font:36px/1.5 Georgia,'Hiragino Mincho ProN',serif;font-weight:400;margin:0 0 25px}.case-intro>p:not(.eyebrow){font-size:13px;line-height:2.2;max-width:650px}#case-facts{display:flex;gap:45px;margin-top:35px;font-size:11px}#case-facts dt{color:var(--muted);margin-bottom:9px}#case-facts dd{margin:0}#viewer-media{margin-bottom:50px}.film-cover{position:relative;width:100%;padding:0;background:#deded5;display:block}.film-cover img{display:block;width:100%;max-height:660px;object-fit:contain}.film-cover span{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);padding:20px 24px;border-radius:40px;background:#f5f4eff2;font-size:12px;white-space:nowrap}.youtube-frame{display:block;width:100%;aspect-ratio:16/9;border:0;background:#222}.film-links{display:flex;justify-content:space-between;gap:20px;padding-top:15px;font-size:11px}.film-links a{text-decoration:underline;text-underline-offset:4px}#case-gallery{display:grid;grid-template-columns:1fr 1fr;gap:35px}#case-gallery img{display:block;width:100%;height:auto}#case-gallery img:first-child:last-child{grid-column:1/-1;max-height:850px;object-fit:contain}.case-bottom{margin-top:70px;padding-top:25px;border-top:1px solid #dcdcd2;display:flex;justify-content:space-between;align-items:center;font-size:12px}.case-bottom>div{display:flex;align-items:center;gap:24px}.case-bottom button{font-size:22px;padding:12px}button[hidden]{display:none!important}
@media(max-width:700px){header{padding:24px 22px}.logo{font-size:28px}nav{gap:18px;font-size:10px}.hero{min-height:740px}.hero-heading{top:110px;left:22px}.hero-index{left:22px;right:22px;bottom:130px}.project-button{font-size:11px;min-height:35px;gap:10px}.hero-index .eyebrow{font-size:9px}.hero-detail{left:22px;right:auto;bottom:40px;text-align:left}.hero-tools{right:22px;bottom:40px;flex-direction:column;gap:8px;align-items:end}.all-link{margin-left:26px;margin-top:20px}.shade{background:linear-gradient(0deg,#0008,transparent 85%),linear-gradient(90deg,#0004,transparent)}.works{padding:65px 22px}.section-heading{display:block;margin-bottom:30px}.section-heading h2{font-size:36px}.filters{gap:20px;overflow:auto;margin-top:25px}.grid{gap:35px 18px}.card:nth-child(even){margin-top:45px}.card-image{aspect-ratio:4/5}.card-meta{display:block;font-size:11px;margin-top:12px}.card-meta small{display:block;margin-top:4px;font-size:9px}.about{padding:65px 22px;display:block}.about>img{width:80%;margin-bottom:45px}.about h2{font-size:25px}.contact h2{font-size:23px}footer{padding:32px 22px;display:grid;grid-template-columns:1fr 1fr;gap:25px}.case-nav{padding:14px 22px}#case-content{padding:40px 22px}.case-intro h2{font-size:26px;text-wrap:balance}.case-intro>p:not(.eyebrow){font-size:12px}#case-facts{flex-wrap:wrap;gap:25px}#case-gallery{gap:18px}.case-bottom{align-items:start;gap:20px;flex-direction:column}.film-links{line-height:1.8;flex-wrap:wrap}.card-arrow{right:12px;bottom:12px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

#hero-title{font:22px/1.5 Georgia,'Hiragino Mincho ProN',serif;opacity:1;margin:12px 0}#reel-status{font-size:8px;letter-spacing:.12em;opacity:.7}#hero-stage.portrait #hero-poster{filter:blur(28px) brightness(.6);transform:scale(1.12)}#hero-stage video.portrait-video{object-fit:contain;width:50%;left:40%;background:transparent}.creations{padding:100px 9vw;border-top:1px solid #dcdcd2}.creation-heading{margin-bottom:55px;display:grid;grid-template-columns:1fr 1fr;column-gap:12vw}.creation-heading>.eyebrow{grid-column:1/-1}.creation-heading h2{font:28px/1.8 'Hiragino Mincho ProN',serif;font-weight:400;margin:0}.creation-heading>p:last-child{font-size:12px;line-height:2.4;align-self:end}.creation-grid{display:grid;grid-template-columns:1fr 1fr;gap:7vw}.creation-image{display:block;aspect-ratio:1;background:#e9e7df;overflow:hidden;margin-bottom:28px}.creation-image img{width:100%;height:100%;object-fit:cover}.creation-image.book{padding:12%}.creation-image.book img{object-fit:contain}.creation-grid .eyebrow{font-size:9px;margin-bottom:15px}.creation-grid h3{font:22px/1.7 'Hiragino Mincho ProN',serif}.creation-grid article>p:not(.eyebrow){font-size:12px;line-height:2.2}.creation-grid .text-link{display:inline-block;margin-top:16px;border-bottom:1px solid;padding-bottom:8px;font-size:11px}
@media(max-width:700px){nav{gap:13px;font-size:9px}.hero-index{bottom:200px}#hero-title{font-size:17px;max-width:240px}.hero-detail{bottom:42px}.hero-tools{bottom:42px;gap:10px}#hero-stage video.portrait-video{width:100%;left:0;object-fit:cover}#hero-stage.portrait #hero-poster{filter:none;transform:none}.creations{padding:65px 22px}.creation-heading{display:block}.creation-heading h2{font-size:25px}.creation-heading>p:last-child{margin-top:25px}.creation-grid{grid-template-columns:1fr;gap:55px}.creation-image{aspect-ratio:4/3}.creation-image.book{padding:9%}.creation-grid h3{font-size:21px}}

.more-works{display:block;margin:65px auto 0;padding:14px 0;border-bottom:1px solid;font-size:12px}

.card.products.film .card-image{aspect-ratio:16/9}.card.products.film img{object-fit:contain;background:var(--paper)}

#hero-stage.triptych #hero-poster{filter:none;transform:none;opacity:0}#hero-stage video.panel-video{width:33.3334%;height:100%;object-fit:cover;background:#646c60;border-right:3px solid #f5f4ef}#hero-stage video.panel-0{left:0}#hero-stage video.panel-1{left:33.3333%}#hero-stage video.panel-2{left:66.6666%;border:0}
@media(max-width:700px){#hero-stage video.panel-0,#hero-stage video.panel-2{display:none}#hero-stage video.panel-1{left:0;width:100%;border:0}#hero-stage.triptych #hero-poster{opacity:1}}

#hero-stage.photo-triptych #hero-poster{opacity:0}#hero-stage .photo-panel{position:absolute;top:0;width:33.3334%;height:100%;object-fit:cover;border-right:3px solid var(--paper)}#hero-stage .photo-0{left:0}#hero-stage .photo-1{left:33.3333%}#hero-stage .photo-2{left:66.6666%;border:0}
@media(max-width:700px){#hero-stage .photo-0,#hero-stage .photo-2{display:none}#hero-stage .photo-1{left:0;width:100%;border:0}}

.collection-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:40px 24px}.collection-card{text-align:left;padding:0}.collection-card img{width:100%;aspect-ratio:16/10;object-fit:cover;display:block;margin-bottom:14px}.collection-card span{font-size:13px;line-height:1.8}.collection-back{display:block;margin:0 0 28px;padding:10px 0;border-bottom:1px solid;font-size:12px}.hero-index{bottom:105px}.project-button{min-height:32px}
@media(max-width:700px){.hero-index{bottom:195px}.project-button{min-height:30px}.hero-heading{top:95px}.collection-grid{grid-template-columns:1fr;gap:28px}}

/* Mobile: give the films and the work index their own space. */
@media(max-width:700px){
 html{scroll-padding-top:20px}
 header{position:relative;color:var(--ink);text-shadow:none;padding:22px 22px 16px;flex-wrap:wrap;gap:14px}
 header .logo{font-size:31px}
 nav{padding:0;gap:20px;width:100%;justify-content:space-between;font-size:11px}
 nav a{display:flex;align-items:center;min-height:36px}
 .hero{height:auto;min-height:0;background:var(--paper);color:var(--ink);display:flex;flex-direction:column}
 #hero-stage{position:relative;inset:auto;width:100%;aspect-ratio:3/2;background:#e5e4dc;order:0}
 #hero-stage video.portrait-video,#hero-stage video.panel-1,#hero-stage .photo-1{object-fit:contain;background:#e5e4dc}
 .shade,.hero-heading{display:none}
 .hero-detail{position:relative;inset:auto;order:1;padding:25px 22px 0;text-align:left}
 #hero-category{font-size:9px;letter-spacing:.06em;color:var(--muted);margin:0 0 8px;line-height:1.8}
 #hero-title{font-size:23px;max-width:none;margin:0 0 8px;line-height:1.5}
 #hero-open{min-height:44px;font-size:12px;border-color:#b9bcb1}
 .hero-tools{position:relative;inset:auto;order:2;flex-direction:row;align-items:center;justify-content:flex-end;gap:18px;padding:4px 22px 14px;font-size:10px}
 .hero-tools button{min-height:44px;min-width:60px;font-size:11px}
 #reel-status{margin-right:auto;font-size:9px}
 .hero-index{position:relative;inset:auto;order:3;padding:24px 22px 30px;border-top:1px solid #dcdcd2;border-bottom:1px solid #dcdcd2}
 .hero-index .eyebrow{color:var(--muted);opacity:1;font-size:9px;margin-bottom:12px}
 #project-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 18px}
 .project-button{color:var(--ink);text-shadow:none;min-height:48px;font-size:11px;gap:8px;padding:9px 0;align-items:baseline;border-bottom:1px solid #e4e4db}
 .project-button .number{flex:0 0 16px}
 .project-button[aria-pressed=true]{color:#333d2c;font-weight:600}
 .all-link{margin:24px 0 0;font-size:11px;border-color:#b9bcb1;min-height:32px}
 .works{padding:65px 22px 70px}
 .grid{grid-template-columns:1fr;gap:38px}
 .card:nth-child(even){margin-top:0}
 .card-image,.card.products .card-image{aspect-ratio:4/3}
 .card.film .card-image,.card.products.film .card-image{aspect-ratio:16/9}
 .card-meta{display:flex;align-items:baseline;gap:12px;font-size:13px;line-height:1.8}
 .card-meta small{font-size:9px;margin:0;white-space:normal;text-align:right;flex-shrink:0;max-width:40%}
 .filters{gap:0;justify-content:space-between;margin-top:20px}
 .filters button{min-height:44px;font-size:12px;padding:10px 7px}
 .more-works{margin-top:40px;min-height:48px}
 .creations,.about{padding:64px 22px}
 .creation-heading{margin-bottom:32px}
 .creation-heading h2,.about h2{font-size:25px;line-height:1.8}
 .creation-heading>p:last-child,.creation-grid article>p:not(.eyebrow),.about p:not(.eyebrow),.contact p{font-size:13px;line-height:2.1}
 .about>img{width:100%;margin-bottom:36px}
 .creation-image{margin-bottom:22px}
 .creation-grid h3{font-size:21px;margin:12px 0}
 .services div{grid-template-columns:88px 1fr;font-size:12px}
 .text-link{display:inline-block;padding:12px 0;min-height:44px}
 .contact{padding:65px 22px}
 .contact p br{display:none}
 .contact-link{font-size:16px;min-height:48px}
 footer{padding:30px 22px;gap:18px}
 footer a:not(.logo){min-height:44px;display:flex;align-items:center}
 .case-nav{padding:10px 20px;padding-top:max(10px,env(safe-area-inset-top));backdrop-filter:blur(12px)}
 #close{min-height:44px}
 #case-content{padding:32px 20px 40px}
 .case-intro{margin-bottom:32px}
 .case-intro h2{font-size:27px;line-height:1.6;margin-bottom:20px}
 .case-intro>p:not(.eyebrow){font-size:13px;line-height:2}
 #case-facts{display:grid;grid-template-columns:1fr 1fr;gap:22px 14px;line-height:1.8}
 #viewer-media{margin-bottom:28px}
 #case-gallery{grid-template-columns:1fr;gap:20px}
 .case-bottom{margin-top:36px;width:100%}
 .case-bottom>div{justify-content:space-between;width:100%}
 .case-bottom button{min-width:48px;min-height:48px}
}
@media(max-width:360px){header,.hero-detail,.hero-index,.works,.creations,.about{padding-left:18px;padding-right:18px}nav{gap:12px;font-size:10px}.project-button{font-size:10px}#hero-title{font-size:21px}}

/* Immersive mobile hero; keep the improved layouts below it. */
@media(max-width:700px){
 header{position:absolute;top:0;left:0;right:0;color:#fff;text-shadow:0 1px 12px #0005;padding-top:max(22px,env(safe-area-inset-top));z-index:3}
 header .logo{font-size:29px}
 nav{font-size:10px;opacity:.9}
 .hero{height:100svh;min-height:560px;display:block;background:#5c6258;color:white}
 #hero-stage{position:absolute;inset:0;height:100%;aspect-ratio:auto;background:#5c6258}
 #hero-stage video.portrait-video,#hero-stage video.panel-1,#hero-stage .photo-1{object-fit:cover;background:transparent}
 .shade{display:block;background:linear-gradient(180deg,#0005 0%,transparent 23%,transparent 51%,#0008 100%)}
 .hero-detail{position:absolute;left:22px;right:22px;bottom:calc(139px + env(safe-area-inset-bottom));padding:0;inset-block-start:auto;text-align:left}
 #hero-category{display:none}
 #hero-title{font:15px/1.6 Arial,'Hiragino Kaku Gothic ProN',sans-serif;letter-spacing:.02em;margin:0;max-width:100%;text-shadow:0 1px 8px #0005}
 #hero-open{font-size:10px;min-height:40px;padding:8px 0;border-color:#fff6}
 .hero-index{position:absolute;inset:auto 0 calc(70px + env(safe-area-inset-bottom));padding:0;border:0}
 .hero-index .eyebrow{display:none}
 #project-list{display:flex;gap:20px;overflow-x:auto;padding:0 22px;scrollbar-width:none;-webkit-overflow-scrolling:touch;scroll-snap-type:x proximity}
 #project-list::-webkit-scrollbar{display:none}
 .project-button{flex:0 0 auto;min-height:44px;padding:10px 0;gap:7px;color:#fffb;font-size:10px;border:0;white-space:nowrap;scroll-snap-align:start;font-weight:400;text-shadow:0 1px 6px #0004}
 .project-button .number{flex:none;width:12px;font-size:8px}
 .project-button[aria-pressed=true]{color:#fff;font-weight:400;border-bottom:1px solid #fffa}
 .project-button[aria-pressed=true] .number:after{font-size:10px}
 .all-link{position:absolute;top:58px;left:22px;margin:0;padding:8px 0;min-height:32px;border:0;color:#fffc;font-size:9px}
 .hero-tools{position:absolute;inset:auto 22px calc(12px + env(safe-area-inset-bottom)) auto;padding:0;gap:15px;display:flex;flex-direction:row;font-size:9px}
 #reel-status{display:none}
 .hero-tools button{min-width:44px;min-height:44px;font-size:10px}
}

/* Preserve the original portrait composition on phones. */
@media(max-width:700px){
 #hero-stage.native-portrait{background:#191c19}
 #hero-stage.native-portrait #hero-poster,
 #hero-stage.native-portrait video.panel-1{object-fit:contain;object-position:center!important;background:#191c19}
 #hero-stage.native-portrait #hero-poster{opacity:1}
}

@media(max-width:700px){
 #hero-stage.native-portrait video.panel-video{display:block;left:0;width:100%;height:100%;border:0;object-fit:contain;object-position:center!important;background:#191c19}
}

@media(max-width:700px){#hero-stage.native-portrait video.portrait-video:not(.panel-video){object-fit:contain;object-position:center!important;background:#191c19}}

@media(min-width:701px){#hero-stage.byglow-close video.portrait-video{width:100%;left:0;object-fit:cover}#hero-stage.byglow-close #hero-poster{filter:none;transform:none}}

/* Avoid showing another clip beneath a partially transparent mobile video. */
@media(max-width:700px){#hero-stage video{transition:none}#project-list{scroll-snap-type:none}}

/* A cut must not reveal an unrelated poster during an opacity fade. */
#hero-stage video{transition:none}
