*{box-sizing:border-box}
html,body{margin:0;width:100%;height:100%;overflow:hidden}
body{--paper:#080808;--ink:#ededed;--muted:#969696;--rule:#272727;font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;background:var(--paper);color:var(--ink);-webkit-font-smoothing:antialiased;transition:background .6s ease,color .6s ease}
body.light-mode{--paper:#fff;--ink:#161616;--muted:#777;--rule:#eee;background:var(--paper);color:var(--ink)}
a{color:inherit;text-decoration:none}button{border:0;border-radius:0;padding:0;background:none;color:inherit;font:inherit;text-align:inherit}h1,h2,h3,p{margin:0}a,button{touch-action:manipulation;cursor:pointer}
:focus-visible{outline:1px solid #777;outline-offset:6px}
.skip-link{position:fixed;left:36px;top:-100px;z-index:60000;padding:12px;background:var(--paper);color:var(--ink);font-size:12px}.skip-link:focus{top:14px}
.visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.page,.info-overlay{height:100dvh}
.corner,.work-back,.work-nav span.nav-link,.info-close{font-size:11px!important;font-weight:400!important;letter-spacing:.08em;color:var(--ink)!important;display:inline-block;transition:transform .95s cubic-bezier(.22,.61,.36,1),opacity .7s ease!important;will-change:transform}
.corner{position:fixed;z-index:10001}.top-left{top:32px;left:36px;transform-origin:left center}.top-right{top:32px;right:36px;transform-origin:right center}.bottom-right{bottom:32px;right:36px;transform-origin:right center}
.corner:hover,.work-back:hover,.work-nav a:hover span.nav-link,.info-close:hover{transform:scale(1.13)}
#landing .corner,.work-nav span.nav-link,.work-back{transition:transform 1.15s cubic-bezier(.22,.61,.36,1),opacity .7s ease!important}
#landing .corner:hover,.work-nav a:hover span.nav-link{transform:scale(1.75)}
.work-back:hover{transform:scale(1.45)}
#landing{cursor:pointer}
.opening{position:relative;width:min(560px,calc(100vw - 80px),calc((100dvh - 190px)*1.331));transform:translateY(-6px)}
.opening-image{display:block;transition:transform 1.05s cubic-bezier(.22,.61,.36,1);transform-origin:center}.opening-image img{display:block;width:100%;height:auto}.opening-image:hover{transform:scale(1.025)}
.opening h1{position:absolute;top:calc(100% + 26px);left:0;width:100%;text-align:center;font-size:13px;font-weight:400;letter-spacing:.01em}
/* MIRA's visual vocabulary, with a film stage centered on the viewport itself. */
#work{display:none;background:var(--paper)}#work.active{display:block}
.work-main{position:absolute;inset:0;padding:0;display:block;overflow:visible;transform:none;min-width:0;width:100%;height:100dvh;pointer-events:none}
.work-video-container{position:absolute;inset:0;width:100%;height:100%;max-width:none;margin:0;padding:0;pointer-events:none}
.work-slide{--frame-width:min(900px,calc(100vw - 500px),calc((100dvh - 230px)*var(--ratio,1.7778)));--frame-height:calc(var(--frame-width)/var(--ratio,1.7778));position:absolute;top:50%;left:50%;width:var(--frame-width);height:var(--frame-height);transform:translate(-50%,-50%);opacity:0;pointer-events:none;visibility:hidden}
.work-slide.active{opacity:1;visibility:visible;pointer-events:auto}.slide-content{width:100%;height:100%}
.work-player{width:100%;height:100%;aspect-ratio:auto;background:transparent!important;position:relative;overflow:hidden;cursor:inherit}
.work-player img,.work-player video{display:block;position:absolute;inset:0;width:100%;height:100%;object-fit:contain}
.work-player video{opacity:0;transition:opacity .75s cubic-bezier(.22,.61,.36,1)}.work-player video.playing{opacity:1}
.work-player video.full-film{opacity:1;transform:none!important;cursor:auto;background:#000}
.work-player img{transition:transform 1.1s cubic-bezier(.22,.61,.36,1)}
.work-player video{transition:opacity .75s cubic-bezier(.22,.61,.36,1),transform 1.1s cubic-bezier(.22,.61,.36,1)}
@media(hover:hover) and (prefers-reduced-motion:no-preference){.work-player:hover img,.work-player:hover video{transform:scale(1.018)}}
.work-player iframe{width:100%;height:100%;display:block;border:0}
.work-play-overlay{position:absolute;inset:0;width:100%;height:100%;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .55s ease;cursor:pointer}
.work-player:hover .work-play-overlay,.work-play-overlay:focus-visible{opacity:1}.work-play-overlay:focus-visible{outline-offset:-6px}
.work-play-icon{transition:transform .8s cubic-bezier(.22,.61,.36,1),background .8s!important}.work-player:hover .work-play-icon{transform:scale(1.04)}
.work-credit-bar{position:absolute;top:100%;left:0;width:100%;display:flex;justify-content:space-between;gap:24px;align-items:flex-start;margin-top:22px}
.project-accolades{font-size:11px;line-height:1.65;letter-spacing:.025em;color:var(--muted)}.project-format{font-size:10px;line-height:1.6;margin-top:4px;color:var(--muted);opacity:.7}
.credits-toggle{font-family:inherit;color:var(--ink)!important;font-size:11px;font-weight:400!important;letter-spacing:.06em;line-height:1.7;flex-shrink:0;display:inline-block;transform-origin:right center;transition:transform .95s cubic-bezier(.22,.61,.36,1)!important;cursor:pointer;min-height:32px}
.credits-toggle:hover{transform:scale(1.08)}
.work-sidebar{position:fixed;left:0;top:0;z-index:20;width:230px;height:100dvh;padding:80px 24px 80px 36px;overflow-x:hidden;overflow-y:auto;display:block;scrollbar-width:none}.work-sidebar::-webkit-scrollbar{display:none}
.work-titles-track{position:relative;transition:transform .8s cubic-bezier(.22,.61,.36,1)}
.work-title-item{display:block;white-space:normal;line-height:1.5;margin:0;padding:7px 0;font-size:13px!important;font-weight:400!important;transform-origin:left center;color:#777;transition:transform 1s cubic-bezier(.22,.61,.36,1),color .6s ease!important;cursor:pointer}
body.light-mode .work-title-item{color:#aaa}.work-title-item.active,body.light-mode .work-title-item.active{color:var(--ink);font-weight:500!important}.work-title-item:hover{transform:scale(1.055)}
.more-toggle{margin-top:13px;padding:8px 0;font-size:11px;color:var(--muted);transform-origin:left center;transition:transform 1s cubic-bezier(.22,.61,.36,1)}.more-toggle:hover{transform:scale(1.08)}
.more-list-wrap{display:grid;grid-template-rows:0fr;opacity:0;transition:grid-template-rows .8s cubic-bezier(.22,.61,.36,1),opacity .7s ease}.more-list-wrap.open{grid-template-rows:1fr;opacity:1}.more-list{overflow:hidden}
.more-list .work-title-item{font-size:12px!important;line-height:1.55;padding:7px 0}
.work-nav{padding:32px 36px}.work-nav span.nav-link{transform-origin:right center}.work-back{top:32px;left:36px;transform-origin:left center}
.mobile-work-nav{display:none}
.mobile-name,.mobile-theme-toggle{display:none}
/* Full biography and recognition keep the Information page's row structure. */
.info-overlay{background:var(--paper)!important;overflow-y:auto;padding:64px 36px 82px;scrollbar-width:thin}
.info-content{width:100%;max-width:960px;height:auto;min-height:100%;padding:0;margin:0;overflow:visible;justify-content:center}
.info-row{gap:32px;margin-bottom:24px;padding-bottom:24px;border-color:var(--rule)!important}.info-label{width:112px;flex-shrink:0;padding-top:3px;font-size:11px;line-height:1.8;color:var(--muted)!important}
.info-value{font-size:13px;line-height:1.85;max-width:720px;color:var(--ink)!important;min-width:0}.biography p+p{margin-top:15px}
.info-value a,.info-link-grow{font-size:inherit!important;letter-spacing:inherit!important;font-weight:400!important;color:var(--ink)!important;display:inline-block;text-decoration:none;transform-origin:left center;transition:transform .95s cubic-bezier(.22,.61,.36,1),opacity .8s ease!important;cursor:pointer}
.info-value a:hover{transform:scale(1.045);font-weight:400!important}.biography a{border-bottom:1px solid var(--rule);line-height:1.5}
.recognition{display:grid;grid-template-columns:1fr 1fr;column-gap:34px;row-gap:16px;width:100%}.recognition p{min-width:0;line-height:1.55;font-size:11px}.recognition a,.recognition-title{font-size:12px!important;display:inline-block;margin-bottom:3px}.recognition p>span:last-child{display:block;color:var(--muted);font-size:10px;line-height:1.65}
.info-value .contact-email{font-size:15px!important;transform-origin:left center;transition:transform 1.1s cubic-bezier(.22,.61,.36,1)!important}.info-value .contact-email:hover{transform:scale(1.065)}
.info-close{position:fixed;right:36px;top:32px;transform-origin:right center;z-index:20010;cursor:pointer}
body[data-page="information"] #theme-toggle{display:none}
/* MIRA-style full-credits drawer. The film itself stays in place. */
.credits-panel{box-sizing:border-box;position:fixed;inset:0 0 0 auto;margin:0;width:min(420px,100vw);height:100dvh;max-height:none;max-width:none;border:0;border-left:1px solid var(--rule);background:var(--paper);color:var(--ink);padding:82px 34px 48px;overflow-y:auto;font-family:inherit}
.credits-panel::backdrop{background:rgba(0,0,0,.12)}.credits-panel-close{position:absolute;top:32px;right:34px;font-size:11px;letter-spacing:.08em;transform-origin:right center;transition:transform .9s cubic-bezier(.22,.61,.36,1)}.credits-panel-close:hover{transform:scale(1.1)}
.credits-panel h2{font-size:15px;font-weight:500;line-height:1.5;margin:0 40px 26px 0}.credits-recognition{font-size:11px;line-height:1.7;color:var(--muted);margin-bottom:30px;padding-bottom:24px;border-bottom:1px solid var(--rule)}.credits-recognition:empty{display:none}
.credits-description{font-size:12px;line-height:1.8;color:var(--muted);margin-bottom:24px}
.credit-line{margin-bottom:20px}.credit-role{font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:4px}.credit-name{font-size:12px;line-height:1.75}
.text-cursor{width:0;height:0;font-family:inherit;font-size:14px;font-weight:400;letter-spacing:.01em;transform:none!important;transition:opacity .4s ease!important}
.cursor-name{position:absolute;left:0;top:0;transform:translate(-50%,-50%);transition:opacity .45s ease;white-space:nowrap}.cursor-dot{position:absolute;left:0;top:0;width:7px;height:7px;border-radius:50%;background:#686868;transform:translate(-50%,-50%);opacity:0;transition:opacity .45s ease,transform .7s ease}
body:not([data-page="home"]) .cursor-name{opacity:0}body:not([data-page="home"]) .cursor-dot{opacity:1}.text-cursor.active.hovering{opacity:1}.text-cursor.hovering .cursor-dot{transform:translate(-50%,-50%) scale(1.35)}body[data-page="home"] .text-cursor.hovering .cursor-name{opacity:.35}
@media(min-width:901px) and (hover:hover) and (prefers-reduced-motion:no-preference){body.pointer-present,body.pointer-present a,body.pointer-present button,body.pointer-present #landing,body.pointer-present #landing *{cursor:none}body[data-page="home"].pointer-present .opening h1{opacity:0}}
@media(min-width:901px) and (max-width:1199px){.work-sidebar{width:180px;padding-left:28px;padding-right:12px}.work-title-item{font-size:12px!important}.more-list .work-title-item{font-size:11px!important}}
@media(max-width:900px){
 .corner{font-size:12px!important;min-height:44px;display:flex;align-items:center}.top-left{left:24px;top:16px}.top-right{right:24px;top:16px}.bottom-right{right:24px;bottom:14px}
 .opening{width:min(560px,85vw);transform:none;flex-shrink:0}.opening h1{display:none}
 .opening-image{border-radius:8px;overflow:hidden;animation:mobile-opening-settle 1.6s cubic-bezier(.16,1,.3,1) both}
 .mobile-name{display:block;position:fixed;z-index:20005;top:max(14px,env(safe-area-inset-top));left:50%;transform:translateX(-50%);font-size:22px;line-height:1.2;letter-spacing:.015em;white-space:nowrap;padding:14px 18px;min-height:54px;background:var(--paper)}
 #landing.active{display:flex;flex-direction:column;justify-content:flex-start;align-items:center;padding:clamp(92px,11svh,130px) 28px 40px;overflow-y:auto;overflow-x:hidden;scrollbar-width:none}
 #landing .opening{order:1}
 #landing>nav{order:2;display:flex;flex-direction:column;align-items:stretch;gap:0;width:100%;max-width:560px;margin-top:40px}
 #landing .corner{position:static;display:flex;justify-content:center;text-align:center;width:100%;padding:22px 18px;min-height:64px;font-size:15px!important;letter-spacing:.1em;border-bottom:1px solid var(--rule);transform:none!important;transition:background .25s ease,color .25s ease!important;-webkit-tap-highlight-color:transparent}
 #landing .corner:first-child{border-top:1px solid var(--rule)}
 #landing .corner:active{background:rgba(127,127,127,.16)}
 .mobile-theme-toggle{order:3;display:flex;align-items:center;justify-content:center;min-height:48px;margin-top:24px;padding:14px 26px;border:1px solid #3b3b3b;border-radius:28px;color:#aaa;font-size:11px;letter-spacing:.12em;text-transform:uppercase;flex-shrink:0}
 body.light-mode .mobile-theme-toggle{color:#666;border-color:#ddd}
 .mobile-theme-toggle:active{background:rgba(127,127,127,.16)}
 #theme-toggle{display:none}
 .work-nav{position:fixed;top:auto;bottom:0;left:0;right:0;display:flex;justify-content:center;padding:20px 24px;z-index:500}.work-nav span.nav-link{font-size:12px!important;border:0;padding:12px 16px;min-height:44px;display:inline-flex;align-items:center;border-radius:0;transform-origin:center}
 .work-back{display:none}
 #work{overflow:hidden;touch-action:pan-y pinch-zoom}.work-play-overlay{touch-action:pan-y pinch-zoom}
 .work-slide.drag-neighbor{visibility:visible;opacity:1;pointer-events:none}
 .work-slide{--frame-width:min(900px,calc(100vw - 32px),calc((100dvh - 280px)*var(--ratio,1.7778)))}
 .work-slide.is-dragging .slide-content{will-change:transform}
 .work-slide.is-dragging .work-player img,.work-slide.is-dragging .work-player video{transform:none}
 .mobile-work-nav{position:absolute;bottom:calc(50% + var(--active-frame-height)/2 + 20px);top:auto;left:0;width:100%;margin:0;padding:0 16px;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2.35fr) minmax(0,1fr);align-items:center;gap:12px;pointer-events:auto}
 .mobile-work-prev,.mobile-work-next{display:block;width:auto;min-width:0;font-size:10px;line-height:1.5;min-height:44px;max-width:none;white-space:normal;color:var(--muted)!important;padding:6px 0;transition:transform .8s ease}
 .mobile-work-next{text-align:right}.mobile-work-prev[disabled],.mobile-work-next[disabled]{visibility:hidden}
 .mobile-work-current{max-width:none;width:auto;min-width:0;font-size:13px;line-height:1.45;font-weight:500;color:var(--ink)!important;white-space:normal;min-height:44px;text-align:center;overflow:visible}
 .work-sidebar{display:none}.work-sidebar.mobile-list-open{display:block;position:fixed;inset:75px 24px auto;width:calc(100% - 48px);height:auto;max-height:calc(100dvh - 165px);padding:24px;background:var(--paper);border:1px solid var(--rule);z-index:11000;overflow:auto}
 .work-titles-track{transform:none!important}.work-title-item{font-size:13px!important;line-height:1.6;padding:7px 0}
 .work-credit-bar{display:flex!important;margin-top:16px;gap:14px}.project-accolades{font-size:10px;line-height:1.65}.project-format{font-size:9px}.credits-toggle{font-size:10px;min-height:40px;line-height:1.65}
 .work-play-overlay{opacity:1}.work-main{transform:none!important}
 .info-overlay{padding:74px 24px 100px}.info-content{min-height:auto;max-width:none;text-align:left}.info-row{flex-direction:column;gap:9px;margin-bottom:24px;padding-bottom:24px}.info-label{width:auto;padding:0}.info-value{font-size:13px;line-height:1.85}.recognition{grid-template-columns:1fr;gap:16px}.recognition p>span:last-child{font-size:11px}.info-close{top:20px;bottom:auto;right:24px;min-height:36px;padding:10px 0;background:var(--paper);border:0;border-radius:0}
 .info-value a{padding:0}.info-value .contact-email{font-size:15px!important}
 body[data-page="work"] #theme-toggle{display:none}.text-cursor{display:none!important}
}
@keyframes mobile-opening-settle{from{transform:scale(1.07);opacity:.65}to{transform:scale(1);opacity:1}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.text-cursor{display:none!important}#landing .corner:hover,.opening-image:hover,.corner:hover,.work-back:hover,.work-nav a:hover span.nav-link,.info-value a:hover,.work-title-item:hover{transform:none!important}}
.work-slide{transition:none!important}
.credits-panel{z-index:30001}.credits-backdrop{display:none;position:fixed;inset:0;background:rgba(0,0,0,.08);z-index:30000}.credits-backdrop.open{display:block}
