@font-face{font-family:Montserrat;src:url('assets/montserrat-400.ttf') format('truetype');font-weight:400;font-display:swap}
@font-face{font-family:Montserrat;src:url('assets/montserrat-500.ttf') format('truetype');font-weight:500;font-display:swap}
@font-face{font-family:Montserrat;src:url('assets/montserrat-600.ttf') format('truetype');font-weight:600;font-display:swap}
:root{color-scheme:dark;--bg:#090c15;--surface:#111624;--text:#f1f0f5;--muted:#9a9dad;--accent:#ae9ae8;--line:#ffffff18;--font:Montserrat,Arial,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:105px}body{margin:0;background:var(--bg);color:var(--text);font:400 16px/1.65 var(--font);-webkit-font-smoothing:antialiased}body.modal-open{overflow:hidden}a{color:inherit;text-decoration:none}button{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:7px}button{color:inherit}::selection{background:#76629c;color:white}.skip{position:fixed;left:20px;top:-70px;background:var(--accent);color:var(--bg);padding:10px 20px;z-index:20}.skip:focus{top:12px}.header{height:100px;display:flex;align-items:center;justify-content:space-between;max-width:1360px;margin:auto;padding:0 64px;border-bottom:1px solid var(--line)}.wordmark{font-weight:600;letter-spacing:-.65px;font-size:20px;white-space:nowrap}.brand-dot{color:var(--accent)}nav{display:flex;align-items:center;gap:35px;font-size:14px}nav a{transition:color .2s}nav a:hover{color:var(--accent)}.contact-link{border:1px solid #ffffff28;border-radius:100px;padding:9px 20px}.contact-link span{margin-left:16px;color:var(--accent)}.hero{max-width:1360px;margin:auto;padding:0 64px;position:relative;background:var(--bg)}.hero-inner{text-align:center;padding:96px 0 82px}.eyebrow{font-size:12px;font-weight:500;letter-spacing:2px;line-height:1.6;color:var(--muted);margin:0 0 24px}.hero .eyebrow{display:flex;align-items:center;justify-content:center;gap:12px}.line{width:24px;height:1px;background:var(--accent)}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(48px,6.8vw,94px);font-weight:500;line-height:1.08;letter-spacing:-5px;margin-bottom:27px}em{font-style:normal;color:var(--accent)}.intro{font-size:16px;color:var(--muted);line-height:1.8;margin-bottom:30px}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:34px;background:#a38ad8;color:#10101a;font-size:14px;font-weight:600;border:1px solid transparent;border-radius:6px;padding:15px 23px;transition:background .2s,transform .2s}.button:hover{background:#baa4ed;transform:translateY(-2px)}.button span{font-size:20px}.hero-foot{display:flex;justify-content:space-between;padding:22px 0;border-top:1px solid var(--line);font-size:12px;color:#8e91a2;letter-spacing:.3px}.section{max-width:1360px;margin:auto;padding:96px 64px;scroll-margin-top:20px}.section-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:35px;margin-bottom:38px}.section-heading .eyebrow{margin-bottom:13px}.section-heading h2{font-weight:500;letter-spacing:-1.5px;font-size:36px;line-height:1.25;margin:0}.section-heading>p{font-size:14px;color:var(--muted);margin:0;max-width:310px}.long-grid{display:grid;grid-template-columns:1fr 1fr;gap:30px}.project{min-width:0}.project-button{display:block;text-align:left;width:100%;border:0;padding:0;background:none;cursor:pointer}.poster{position:relative;aspect-ratio:16/10;overflow:hidden;background:var(--surface);border:1px solid #ffffff13;border-radius:9px}.poster:after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,#0000 20%,#05071399 100%);pointer-events:none}.poster img{width:100%;height:100%;display:block;object-fit:cover;transition:transform .6s,filter .5s;filter:saturate(.7) brightness(.8)}.project-button:hover img{transform:scale(1.035);filter:saturate(.9) brightness(.95)}.preview-badge{position:absolute;left:18px;top:18px;font-size:11px;letter-spacing:1px;text-transform:uppercase;background:#090c15b8;border:1px solid #ffffff29;border-radius:4px;padding:5px 9px;z-index:1;color:#e0dfe8}.poster-label{position:absolute;bottom:25px;left:26px;z-index:1;font-size:clamp(20px,2.4vw,33px);line-height:1.15;letter-spacing:-1px;font-weight:500}.open-icon{position:absolute;bottom:24px;right:24px;z-index:1;border:1px solid #ffffff5c;border-radius:50%;height:42px;width:42px;display:grid;place-items:center;font-size:21px;background:#090c1533;transition:background .2s}.project-button:hover .open-icon{background:var(--accent);color:var(--bg);border-color:var(--accent)}.project-meta{display:flex;justify-content:space-between;gap:10px;margin-top:18px}.project-meta h3{font-size:16px;font-weight:500;margin:0 0 3px}.project-meta p{font-size:12px;color:var(--muted);margin:0}.project-number{font-size:12px;color:#8e91a2;padding-top:3px}.shorts{padding-top:42px}.short-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}.short-grid .poster{aspect-ratio:9/14}.short-grid .poster-label{font-size:30px;max-width:60%;bottom:28px}.short-grid .poster img{object-position:40% center}.short-grid .project:nth-child(2) img{object-position:65% center}.short-grid .project:nth-child(3) img{object-position:90% center;filter:saturate(.3) brightness(.65)}.short-grid .project:nth-child(2){margin-top:40px}.short-grid .project:nth-child(3){margin-top:80px}.contact{border-top:1px solid var(--line);padding-top:77px;padding-bottom:84px;max-width:1232px;padding-left:0;padding-right:0;margin-top:34px}.contact-row{display:flex;justify-content:space-between;gap:48px;align-items:flex-end}.contact h2{font-size:clamp(45px,5vw,68px);line-height:1.1;letter-spacing:-3px;font-weight:500;margin:0}.contact-copy{padding-bottom:6px}.contact-copy>p{color:var(--muted);font-size:15px;line-height:1.8}.contact-pending{border-top:1px solid var(--line);padding-top:18px;font-size:13px;color:var(--muted);margin:0}footer{max-width:1232px;margin:auto;display:flex;align-items:center;justify-content:space-between;gap:24px;border-top:1px solid var(--line);padding:32px 0 38px}footer>span{font-size:12px;color:var(--muted)}.back-top{font-size:12px;color:var(--muted)}.back-top span{margin-left:20px;color:var(--accent)}dialog{width:min(960px,calc(100% - 40px));padding:26px;background:#101522;color:var(--text);border:1px solid #ffffff26;border-radius:12px;max-height:90dvh;overflow:auto}dialog::backdrop{background:#03050cdb;backdrop-filter:blur(10px)}.dialog-top{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:22px}.dialog-top .eyebrow{margin:0;font-size:11px}.close-dialog{border:0;background:none;cursor:pointer;color:var(--muted);font-size:14px;padding:5px}.close-dialog span{font-size:24px;margin-left:12px}.dialog-media{aspect-ratio:16/9;position:relative;background:var(--bg);border-radius:6px;overflow:hidden}.dialog-media img{height:100%;width:100%;object-fit:cover;filter:brightness(.45) saturate(.6)}.media-notice{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:30px}.media-notice strong{font-size:23px;font-weight:500;margin-bottom:12px}.media-notice p{font-size:14px;max-width:380px;color:#c5c6d2}.dialog-media iframe,.dialog-media video{width:100%;height:100%;border:0}.dialog-info{display:flex;gap:25px;align-items:flex-start;justify-content:space-between;padding-top:25px}.dialog-info h2{font-size:25px;letter-spacing:-.5px;font-weight:500;margin-bottom:8px}.dialog-info p{font-size:14px;color:var(--muted);margin-bottom:0;max-width:540px}.pending-label{white-space:nowrap;font-size:11px;color:var(--accent);border:1px solid #a38ad842;padding:6px 10px;border-radius:4px}.reveal{animation:enter .8s both}@keyframes enter{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}
@media(min-width:1361px){.contact,footer{max-width:1232px}}
@media(max-width:1360px){.contact,footer{margin-left:64px;margin-right:64px}.contact{margin-top:34px}}
@media(max-width:800px){.header{padding:0 28px;height:84px}.hero{padding:0 28px}.hero-inner{padding:76px 0 64px}h1{letter-spacing:-2.8px;font-size:64px}nav{gap:22px}.section{padding:72px 28px}.section-heading{gap:24px}.section-heading h2{font-size:29px}.section-heading>p{font-size:12px;max-width:230px}.long-grid{gap:20px}.poster-label{left:18px;bottom:20px;font-size:24px}.open-icon{height:34px;width:34px;right:16px;bottom:18px}.preview-badge{top:12px;left:12px;font-size:9px}.short-grid{gap:18px}.short-grid .poster-label{font-size:23px;left:17px}.contact,footer{margin-left:28px;margin-right:28px}.contact{padding:65px 0}.contact h2{font-size:48px}.contact-copy>p{font-size:13px}.contact-row{gap:24px}footer>span{display:none}.shorts{padding-top:22px}}
@media(max-width:560px){.header{padding:0 22px;height:78px}.wordmark{font-size:17px}nav{gap:18px;font-size:13px}nav a:nth-child(2){display:none}.contact-link{border:0;padding:0}.contact-link span{margin-left:4px}.hero{padding:0 22px}.hero-inner{padding:68px 0 59px}.hero .eyebrow{font-size:9px;letter-spacing:1.1px;gap:8px}.line{width:15px}h1{font-size:clamp(40px,10.5vw,57px);letter-spacing:-2.5px;line-height:1.14;margin-bottom:23px}.intro{font-size:14px;max-width:320px;margin:0 auto 28px}.button{padding:12px 20px;font-size:13px}.hero-foot{font-size:10px;gap:30px}.hero-foot span:last-child{text-align:right;max-width:160px}.section{padding:58px 22px}.section-heading{display:block;margin-bottom:27px}.section-heading h2{font-size:28px;letter-spacing:-1px}.section-heading>p{font-size:13px;margin-top:14px;max-width:none}.eyebrow{font-size:10px;letter-spacing:1.7px}.long-grid{grid-template-columns:1fr;gap:35px}.poster{aspect-ratio:16/10}.poster-label{font-size:31px;left:22px;bottom:25px}.preview-badge{font-size:9px;left:16px;top:16px}.open-icon{right:20px;bottom:24px;width:38px;height:38px}.project-meta{margin-top:13px}.project-meta h3{font-size:15px}.shorts{padding-top:12px}.short-grid{grid-template-columns:1fr;gap:33px;max-width:320px;margin:auto}.short-grid .poster{aspect-ratio:9/13}.short-grid .project:nth-child(n){margin-top:0}.short-grid .poster-label{font-size:34px;left:24px}.contact{margin:12px 22px 0;padding:51px 0}.contact-row{display:block}.contact h2{font-size:49px;letter-spacing:-2.8px}.contact-copy{padding-top:28px}.contact-copy>p{font-size:14px}.contact-pending{max-width:310px}footer{margin:0 22px;padding:25px 0 30px}.back-top{font-size:11px}.back-top span{margin-left:7px}dialog{width:calc(100% - 22px);padding:18px}.dialog-info{display:block}.pending-label{display:inline-block;margin-top:20px}.dialog-media{aspect-ratio:4/3}.media-notice{padding:20px}.media-notice strong{font-size:20px}.media-notice p{font-size:12px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}

.contact-pending{font-size:14px}.preview-badge{font-size:12px;letter-spacing:.7px}.hero-foot{font-size:12px}.pending-label{font-size:12px}.dialog-top .eyebrow{font-size:12px}
@media(max-width:800px){.section-heading>p,.contact-copy>p{font-size:14px}.preview-badge{font-size:12px}}
@media(max-width:560px){.hero .eyebrow{font-size:12px;letter-spacing:.7px;max-width:300px;margin-left:auto;margin-right:auto}.hero .line{display:none}.eyebrow{font-size:12px}.hero-foot{font-size:12px}.section-heading>p{font-size:14px}.back-top{font-size:12px}.media-notice p{font-size:14px}.preview-badge{font-size:12px}}

/* Full-height chapters, with native scrolling and room for enlarged text. */
html{scroll-padding-top:0;scroll-snap-type:none}
.header{position:absolute;inset:0 0 auto;z-index:2;width:100%;border-bottom-color:transparent}
.hero{min-height:100vh;min-height:100svh;display:flex;align-items:center;justify-content:center;padding-top:120px;padding-bottom:100px;scroll-snap-align:start}
.hero-inner{width:100%;padding:0;will-change:transform,opacity}
.hero .intro{margin-bottom:36px}
.section{min-height:100vh;min-height:100svh;display:flex;flex-direction:column;justify-content:center;scroll-margin-top:0;scroll-snap-align:start;padding-top:70px;padding-bottom:70px}
.work{border-top:1px solid var(--line)}
.long-grid .poster{aspect-ratio:16/9}
.shorts{border-top:1px solid var(--line)}
.short-grid{grid-template-columns:repeat(3,minmax(0,280px));justify-content:center;width:100%;gap:36px}
.short-grid .project:nth-child(n){margin-top:0}
.short-grid .poster{aspect-ratio:9/16;max-height:56svh}
.short-grid .poster-label{font-size:clamp(23px,2.2vw,30px)}
.contact{margin-top:0;min-height:calc(100svh - 103px)}
.contact .eyebrow{margin-bottom:28px}
@media(min-width:801px) and (max-height:760px){.section{padding-top:44px;padding-bottom:44px}.section-heading{margin-bottom:25px}.short-grid{grid-template-columns:repeat(3,minmax(0,220px))}.short-grid .poster-label{font-size:24px}.hero h1{font-size:clamp(52px,6.5vw,80px)}}
@media(max-width:800px){.hero{padding-top:105px;padding-bottom:80px}.section{padding-top:62px;padding-bottom:62px}.short-grid{gap:22px}.short-grid .poster-label{font-size:23px}.contact{padding-left:0;padding-right:0}}
@media(max-width:560px){html{scroll-snap-type:none}.hero{padding-top:100px;padding-bottom:85px}.hero-inner{padding:0}.hero .eyebrow{max-width:none}.hero .intro{margin-bottom:32px}.section{min-height:100svh;padding-top:52px;padding-bottom:52px}.short-grid{grid-template-columns:1fr;max-width:300px;gap:36px}.short-grid .poster{max-height:none;aspect-ratio:9/16}.short-grid .poster-label{font-size:32px}.contact{min-height:calc(100svh - 87px);padding-left:0;padding-right:0}.contact .button{font-size:14px}}
@media(prefers-reduced-motion:reduce){html{scroll-snap-type:none}.hero-inner{will-change:auto}}

/* Uniform canvas and viewport-sized portfolio chapters. */
html,body,main,.hero,.section,.header,footer{background-color:var(--bg);background-image:none}
.hero .intro{max-width:650px;margin-left:auto;margin-right:auto;text-wrap:pretty}
.hero,.work,.shorts{min-height:100dvh;scroll-snap-align:start;scroll-snap-stop:normal}
.work,.shorts{padding-top:clamp(34px,6dvh,70px);padding-bottom:clamp(34px,6dvh,70px)}
.long-grid{width:100%;max-width:min(1232px,calc(230dvh - 520px));margin-inline:auto}
.short-grid{grid-template-columns:repeat(3,minmax(0,min(280px,32dvh)));align-items:start}
.short-grid .poster{aspect-ratio:9/16;max-height:none}
.poster img,.short-grid .project:nth-child(n) img{filter:none;object-position:center}
.project-button:hover img{filter:none}
.poster:after{background:none}
.open-icon{top:50%;left:50%;right:auto;bottom:auto;transform:translate(-50%,-50%);width:54px;height:54px;font-size:19px;background:#090c1599;backdrop-filter:blur(4px)}
.short-grid .project-meta h3{font-size:14px;line-height:1.45}
.project-meta h3{line-height:1.45}
.swipe-hint{display:none}
.youtube-link{font-size:13px;color:var(--accent);white-space:nowrap;padding-top:6px}
.dialog-media{aspect-ratio:16/9}
.dialog-media iframe{display:block}
.vertical-dialog{width:min(480px,calc(100% - 30px))}
.vertical-dialog .dialog-media{aspect-ratio:9/16;width:min(100%,34dvh);margin:auto}
.vertical-dialog .dialog-info{display:block}
.vertical-dialog .youtube-link{display:inline-block;margin-top:12px}
.vertical-dialog .dialog-info h2{font-size:20px}
@media(max-width:800px){.long-grid{max-width:none}.short-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.hero .intro{max-width:550px}}
@media(max-width:560px){
 .hero .eyebrow{font-size:12px;letter-spacing:.4px;line-height:1.8}
 .hero .intro{max-width:340px;font-size:15px}
 .work .section-heading,.shorts .section-heading{margin-bottom:24px}
 .work .section-heading>p{margin-top:10px}
 .long-grid{gap:22px;max-width:min(100%,52dvh)}
 .long-grid .project-meta{margin-top:9px}
 .long-grid .project-meta h3{font-size:14px}
 .short-grid{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:20px;max-width:none;width:100%;margin:0;padding:5px 3px 16px;scrollbar-width:thin;scrollbar-color:var(--accent) transparent}
 .short-grid .project{flex:0 0 min(76vw,30dvh);scroll-snap-align:center}
 .short-grid .poster{aspect-ratio:9/16;max-height:none}
 .short-grid .project-meta h3{font-size:14px}
 .swipe-hint{display:flex;justify-content:space-between;color:var(--muted);font-size:12px;margin:12px 0 0}
 .open-icon{width:46px;height:46px}
 .dialog-info{display:block}.youtube-link{display:inline-block;margin-top:14px}
}

.embedded-poster{background:var(--bg)}.embedded-poster:after{display:none}.embedded-poster iframe{display:block;width:100%;height:100%;border:0}.expand-video{align-self:flex-start;background:none;border:1px solid var(--line);border-radius:50%;width:34px;height:34px;flex-shrink:0;cursor:pointer;color:var(--accent);font-size:20px;line-height:1}.expand-video:hover{border-color:var(--accent)}
.embedded-poster iframe{position:absolute;inset:0}
@media(min-width:801px) and (min-height:600px) and (prefers-reduced-motion:no-preference){html{scroll-snap-type:none}}

/* Restore chapter snapping while retaining the text-only blur transitions. */
html{scroll-snap-type:y proximity}
.hero,.work,.shorts,.contact{scroll-snap-align:start;scroll-snap-stop:always}
@media(min-width:801px) and (min-height:600px) and (prefers-reduced-motion:no-preference){html{scroll-snap-type:y mandatory}}
@media(prefers-reduced-motion:reduce){html{scroll-snap-type:none}}
