:root{--paper:#f1eee4;--ink:#24271d;--muted:#626556;--line:#d7d6c9;--olive:#dfe1d2}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:28px}body{margin:0;background:#d0d1c3;color:var(--ink);font-family:Arial,Helvetica,sans-serif;font-size:16px;-webkit-font-smoothing:antialiased;padding:22px}.page{max-width:1800px;margin:auto;background:var(--paper);border-radius:15px;overflow:hidden}a{color:inherit;text-decoration:none}button,a{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible{outline:3px solid #687354;outline-offset:6px}.skip{position:fixed;top:-70px;background:white;padding:15px;z-index:99}.skip:focus{top:10px}header{height:105px;display:flex;align-items:center;justify-content:space-between;padding:0 48px;position:relative}nav{display:flex;gap:28px}nav a,.nav-contact{font-size:14px}.wordmark{position:absolute;left:50%;transform:translateX(-50%);font-size:21px;font-weight:800;line-height:.86;letter-spacing:-1px}.wordmark span{position:absolute;top:0;right:-14px;font-size:10px}.nav-contact span{margin-left:12px}.hero{text-align:center;padding-top:65px}.eyebrow{font-size:12px;font-weight:500;letter-spacing:1.6px;margin:0 0 25px;line-height:1.6}h1,h2{font-family:Georgia,'Times New Roman',serif;font-weight:400;letter-spacing:-2.7px;margin:0}h1{font-size:clamp(42px,5.4vw,82px);line-height:1.08}em{font-weight:400}h1 em{background:var(--olive);padding:0 10px 3px}.intro{color:var(--muted);line-height:1.6;margin:24px 0}.button{display:inline-flex;gap:26px;align-items:center;background:#fffdf7;padding:17px 23px;border-radius:7px;font-size:14px;transition:transform .2s,background .2s}.button:hover{transform:translateY(-3px);background:white}.hero-gallery{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;align-items:end;height:355px;margin-top:65px;overflow:hidden}.hero-gallery img{display:block;width:100%;height:260px;object-fit:cover;border-radius:12px 12px 0 0}.hero-gallery img:first-child{height:205px}.hero-gallery img:nth-child(2){height:290px}.hero-gallery img:nth-child(3){height:355px;object-position:50% 40%}.hero-gallery img:nth-child(4){height:310px}.hero-gallery img:nth-child(5){height:245px}.experience{display:flex;justify-content:space-between;gap:20px;padding:24px 5%;border-bottom:1px solid var(--line);font-size:12px;color:var(--muted)}.experience p{margin:0}.section{padding:105px 7%}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:35px;margin-bottom:48px}h2{font-size:clamp(38px,4.4vw,64px);line-height:1.07;letter-spacing:-2px}.section-heading>p{font-size:15px;line-height:1.7;color:var(--muted);max-width:350px;margin:0}.work-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:38px 24px}.project{width:100%;display:block;text-align:left;cursor:pointer;background:none;border:0;color:inherit;padding:0;font:inherit}.poster{display:block;position:relative;height:390px;border-radius:8px;overflow:hidden;background:var(--olive)}.poster img{width:100%;height:100%;object-fit:cover;transition:transform .6s}.project:hover img{transform:scale(1.035)}.play{position:absolute;bottom:18px;right:18px;width:46px;height:46px;border-radius:50%;background:#fdfcf2ed;display:grid;place-items:center;font-size:17px;padding-left:3px}.project-info{display:flex;justify-content:space-between;gap:12px;padding-top:17px;align-items:start}.project-title{font-family:Georgia,serif;font-size:24px}.project-type{font-size:12px;color:var(--muted);line-height:1.6;text-align:right;padding-top:4px}.work-note{font-size:12px;color:var(--muted);margin:35px 0 0}.about{display:grid;grid-template-columns:.85fr 1fr;gap:10%;border-top:1px solid var(--line);align-items:center}.about-photo{position:relative}.about-photo img{display:block;width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:8px}.about-photo span{font-size:11px;letter-spacing:1.5px;display:block;margin-top:15px}.about-copy h2{margin-bottom:30px}.about-copy>p:not(.eyebrow){font-size:16px;line-height:1.8;color:var(--muted)}.expertise{display:flex;flex-wrap:wrap;gap:10px;margin-top:28px}.expertise span{border:1px solid #c9cbbb;padding:10px 12px;border-radius:30px;font-size:12px}.contact{text-align:center;background:#e3e5d8}.contact h2{font-size:clamp(42px,5.5vw,78px)}.contact>p:not(.eyebrow){line-height:1.7;color:var(--muted);margin:27px 0}.dark{background:#303b2e;color:#fff}.dark:hover{background:#44503d}.email{display:block;font-size:14px;margin-top:23px;text-decoration:underline;text-underline-offset:5px}footer{display:flex;align-items:center;justify-content:space-between;padding:32px 7%;font-size:12px}footer p{color:var(--muted)}.footer-name{font-family:Georgia,serif;font-size:20px}dialog{width:min(1100px,94vw);max-height:94dvh;border:0;border-radius:10px;background:#151813;color:white;padding:18px}dialog::backdrop{background:#111d;backdrop-filter:blur(7px)}.player-header{display:flex;justify-content:space-between;gap:15px;align-items:center;padding-bottom:15px}.player-header h2{font-family:Arial,sans-serif;font-size:17px;letter-spacing:0}.player-header button{cursor:pointer;border:1px solid #666;background:transparent;color:white;border-radius:5px;padding:10px 14px;font-size:14px}dialog video{display:block;width:100%;height:min(75dvh,760px);background:black}body.modal-open{overflow:hidden}@media(min-width:1500px){.hero-gallery{height:425px}.hero-gallery img:nth-child(3){height:425px}.hero-gallery img:nth-child(2){height:350px}.hero-gallery img:nth-child(4){height:375px}}@media(max-width:800px){body{padding:10px}header{padding:0 22px;height:90px}nav{gap:16px}nav a,.nav-contact{font-size:12px}.hero{padding-top:42px}.eyebrow{font-size:11px;letter-spacing:1px}h1{font-size:clamp(35px,6.6vw,53px);letter-spacing:-1.7px}.hero-gallery{height:270px;margin-top:50px;gap:7px}.hero-gallery img:first-child{height:165px}.hero-gallery img:nth-child(2){height:220px}.hero-gallery img:nth-child(3){height:270px}.hero-gallery img:nth-child(4){height:235px}.hero-gallery img:nth-child(5){height:180px}.experience{flex-wrap:wrap;justify-content:center;text-align:center;font-size:11px;gap:12px 20px}.section{padding:70px 6%}.section-heading{align-items:start;flex-direction:column;gap:25px}.work-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 16px}.poster{height:350px}.about{gap:7%}.about h2{font-size:40px}.project-info{display:block}.project-type{display:block;text-align:left}.about-copy>p:not(.eyebrow){font-size:15px}footer{gap:15px;flex-wrap:wrap}}@media(max-width:520px){header{height:87px;padding:0 18px}.wordmark{left:18px;transform:none;font-size:20px}nav{margin-left:auto}nav a:nth-child(2){display:none}.nav-contact{margin-left:22px}.hero{padding:40px 12px 0}.hero>.eyebrow{font-size:10px;max-width:260px;margin:0 auto 23px}.hero h1{font-size:39px;line-height:1.13}.hero h1 em{padding:0 4px}.intro{font-size:15px}.hero-gallery{grid-template-columns:repeat(3,1fr);margin-left:-12px;margin-right:-12px;height:240px}.hero-gallery img:first-child,.hero-gallery img:last-child{display:none}.hero-gallery img:nth-child(2){height:195px}.hero-gallery img:nth-child(3){height:240px}.hero-gallery img:nth-child(4){height:210px}.experience p:last-child{width:100%}.section{padding:60px 20px}h2{font-size:42px}.work-grid{gap:28px 12px}.poster{height:260px}.project-title{font-size:21px}.project-type{font-size:11px}.about{grid-template-columns:1fr;gap:36px}.about-photo{max-width:320px}.contact h2{font-size:43px}.email{font-size:13px}footer p{display:none}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important}}
/* Interactive portfolio dock */
.header-actions{display:flex;align-items:center;gap:28px}.language{display:flex;align-items:center;gap:5px;font-size:12px}.language button{border:0;background:none;padding:10px 4px;color:var(--muted);font:inherit;cursor:pointer}.language button[aria-pressed=true]{color:var(--ink);font-weight:700;text-decoration:underline;text-underline-offset:5px}.hero{padding-top:48px}.dock-scroll{padding:70px 35px 20px;margin-top:10px;scroll-margin-top:15px}.dock{display:flex;align-items:flex-end;gap:12px;max-width:1250px;margin:auto;min-height:290px}.dock-card{min-width:0;flex:1;border:0;padding:0;background:transparent;color:var(--ink);font:inherit;cursor:pointer;transition:flex .4s cubic-bezier(.22,1,.36,1),transform .4s;transform-origin:center bottom}.dock-image{display:block;position:relative;height:235px;overflow:hidden;border-radius:12px;box-shadow:0 8px 18px #24271d14;transition:height .4s cubic-bezier(.22,1,.36,1),box-shadow .4s;background:var(--olive)}.dock-card:nth-child(2) .dock-image,.dock-card:nth-child(5) .dock-image{height:255px}.dock-card:nth-child(3) .dock-image,.dock-card:nth-child(4) .dock-image{height:275px}.dock-image img,.dock-image video{width:100%;height:100%;object-fit:cover;display:block}.dock-image video{position:absolute;inset:0;opacity:0;transition:opacity .25s}.dock-image.previewing video{opacity:1}.dock-play{position:absolute;bottom:12px;right:12px;border-radius:50%;width:34px;height:34px;display:grid;place-items:center;padding-left:2px;font-size:12px;background:#fdfcf2e8}.dock-title{display:block;font-size:12px;line-height:1.4;margin-top:14px;min-height:34px}.dock-hint{font-size:12px;color:var(--muted);margin:0 0 27px}.dock-card:focus-visible{flex:1.55;outline-offset:5px}.dock-card:focus-visible .dock-image{height:325px;box-shadow:0 18px 30px #24271d24}@media(hover:hover) and (pointer:fine){.dock-card:hover{flex:1.65}.dock-card:hover .dock-image{height:325px;box-shadow:0 18px 30px #24271d24}.dock-card:has(+.dock-card:hover),.dock-card:hover+.dock-card{flex:1.18}.dock-card:has(+.dock-card:hover) .dock-image,.dock-card:hover+.dock-card .dock-image{height:285px}}
@media(max-width:800px){.header-actions{gap:16px}.dock-scroll{padding:55px 20px 16px;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:thin;scrollbar-color:#a5ad96 transparent}.dock{min-width:900px;min-height:290px;gap:12px}.dock-card{flex:1}.dock-title{font-size:13px}.dock-card:focus-visible{flex:1}.dock-card:focus-visible .dock-image{height:275px}}
@media(max-width:520px){header{padding:0 16px}.wordmark{left:16px;font-size:18px}nav{display:none}.header-actions{margin-left:auto;gap:15px}.nav-contact{margin-left:0;font-size:12px}.nav-contact span{margin-left:4px}.language{font-size:12px}.hero{padding-top:32px}.hero h1{font-size:36px}.dock-scroll{margin-left:-12px;margin-right:-12px;padding:30px 20px 10px}.dock{min-width:1020px;min-height:260px}.dock-image,.dock-card:nth-child(n) .dock-image{height:245px}.dock-title{font-size:13px}.dock-hint{font-size:12px;margin-bottom:24px}.hero .intro{margin:20px 0}.hero>.button{padding:14px 18px}}
@media(prefers-reduced-motion:reduce){.dock-card,.dock-image,.dock-image video{transition:none!important}}
/* Full portfolio: horizontally scrollable at every screen size. */
:root{--paper:#e3ebe9;--ink:#202827;--muted:#56625f;--line:#c8d4d0;--olive:#d1ddda}body{background:#cbd6d3}.contact{background:#d6e1de}.button{background:#f6f9f8}.dark{background:#303e39}.dark:hover{background:#42534c}.expertise span{border-color:#b6c6c0}.dock-scroll{overflow-x:auto;overflow-y:hidden;padding:65px 35px 18px;scrollbar-width:auto;scrollbar-color:#8c9f98 #d5e0dc;overscroll-behavior-x:contain}.dock{width:max-content;max-width:none;min-width:0;min-height:335px;gap:24px;align-items:flex-end;padding:0 14px}.dock .dock-card{width:190px;flex:0 0 190px;position:relative;transition:transform .28s cubic-bezier(.22,1,.36,1);scroll-margin-inline:40px}.dock .dock-card:nth-child(n) .dock-image{height:275px;transition:box-shadow .28s;border-radius:12px}.dock .dock-title{font-size:14px;min-height:40px;margin-top:14px}.dock .dock-card:focus-visible{flex:0 0 190px;transform:translateY(-8px) scale(1.1);z-index:2}.dock-navigation{display:flex;align-items:center;justify-content:center;gap:24px;margin:20px 20px 28px}.dock-navigation .dock-hint{margin:0;line-height:1.6}.dock-navigation button{width:42px;height:42px;flex-shrink:0;border:1px solid #a7bab3;border-radius:50%;background:#f1f6f3;color:var(--ink);font-size:22px;cursor:pointer}.dock-navigation button:disabled{opacity:.35;cursor:default}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(hover:hover) and (pointer:fine){.dock .dock-card:hover{flex:0 0 190px;transform:translateY(-8px) scale(1.1);z-index:2}.dock .dock-card:hover .dock-image{height:275px}.dock .dock-card:has(+.dock-card:hover),.dock .dock-card:hover+.dock-card{flex:0 0 190px;transform:translateY(-3px) scale(1.025)}.dock .dock-card:has(+.dock-card:hover) .dock-image,.dock .dock-card:hover+.dock-card .dock-image{height:275px}}
@media(max-width:520px){.dock-scroll{padding:40px 20px 16px}.dock{min-height:285px;gap:22px;padding:0 8px}.dock .dock-card{width:165px;flex-basis:165px}.dock .dock-card:nth-child(n) .dock-image{height:245px}.dock .dock-title{font-size:13px}.dock-navigation{gap:12px;margin:18px 2px 25px}.dock-navigation .dock-hint{font-size:12px}.dock-navigation button{width:36px;height:36px}.dock .dock-card:focus-visible{flex-basis:165px;transform:none}}
/* Staggered film strip, echoing the supplied reference. */
.dock-scroll{padding:60px 0 12px}.dock{gap:10px;padding:0 12px;min-height:340px}.dock .dock-card{width:210px;flex-basis:210px}.dock .dock-card:nth-child(5n+1) .dock-image{height:215px}.dock .dock-card:nth-child(5n+2) .dock-image{height:280px}.dock .dock-card:nth-child(5n+3) .dock-image{height:325px}.dock .dock-card:nth-child(5n+4) .dock-image{height:295px}.dock .dock-card:nth-child(5n+5) .dock-image{height:250px}.dock .dock-image{border-radius:12px 12px 5px 5px}.dock .dock-card:focus-visible{flex-basis:210px}.dock-play{background:#f6faf8c9;backdrop-filter:blur(10px)}
@media(hover:hover) and (pointer:fine){.dock .dock-card:hover,.dock .dock-card:has(+.dock-card:hover),.dock .dock-card:hover+.dock-card{flex-basis:210px}.dock .dock-card:hover{transform:translateY(-5px) scale(1.09)}}
#player-dialog{--video-ratio:.5625;background:transparent;color:var(--ink);border:0;box-shadow:none;overflow:visible;padding:0;width:min(90vw,calc(72dvh * var(--video-ratio)));max-width:1100px;max-height:none;border-radius:0}#player-dialog::backdrop{background:#d5e1ddbd;backdrop-filter:blur(22px);animation:backdrop-in .35s ease both}#player-dialog.closing::backdrop{animation:backdrop-out .22s ease both}.player-shell{position:relative}.player-header{height:48px;align-items:center;padding:0 0 12px;gap:15px}.player-brand{font-weight:700;font-size:13px;letter-spacing:-.3px}.player-header #close-player{border:0;border-radius:30px;padding:9px 16px;background:#f7faf6d9;color:#26352f;backdrop-filter:blur(12px);font-size:13px}.player-frame{position:relative;width:100%;aspect-ratio:var(--video-ratio);border-radius:18px;overflow:hidden;background:#d7e2de;box-shadow:0 24px 90px #243f3b30;transform-origin:center}.player-frame #player,.player-frame #player-poster{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;display:block;background:transparent}.player-frame #player{opacity:0;transition:opacity .3s;cursor:pointer}#player-dialog.has-frame #player{opacity:1}#player-dialog.has-frame #player-poster{opacity:0;transition:opacity .3s}.player-loading{position:absolute;inset:50% auto auto 50%;width:32px;height:32px;margin:-16px;border:2px solid #ffffff50;border-top-color:white;border-radius:50%;opacity:0;pointer-events:none}.loading .player-loading{opacity:1;animation:loading-spin .8s linear infinite}#center-play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);border:1px solid #ffffff80;background:#eff6f1d9;color:#26352f;backdrop-filter:blur(15px);width:68px;height:68px;border-radius:50%;font-size:24px;cursor:pointer}#center-play[hidden],.loading #center-play,.failed #center-play{display:none}.player-controls{display:flex;align-items:center;gap:12px;background:#f4f9f5e8;backdrop-filter:blur(20px);box-shadow:0 8px 25px #243f3b0c;border:1px solid #ffffff90;border-radius:40px;padding:9px 12px;margin-top:16px;min-width:280px;position:relative;left:50%;transform:translateX(-50%);width:100%}.player-controls button{background:none;border:0;color:#26352f;cursor:pointer;font-size:20px;min-width:30px;min-height:30px;padding:2px}.player-controls #player-time{font-size:11px;white-space:nowrap;font-variant-numeric:tabular-nums}.player-controls input{min-width:30px;flex:1;width:100%;accent-color:#506e60;cursor:pointer;height:18px}.player-controls #toggle-sound{font-size:23px}#player-error{font-size:14px;background:#f6faf7;padding:12px;border-radius:12px;line-height:1.5}.player-shell:fullscreen{display:flex;flex-direction:column;align-items:center;justify-content:center;background:#dce7e2;padding:24px}.player-shell:fullscreen .player-frame{width:min(90vw,calc(78dvh * var(--video-ratio)))}.player-shell:fullscreen .player-header,.player-shell:fullscreen .player-controls{width:min(90vw,900px);left:auto;transform:none}@keyframes backdrop-in{from{background:#d5e1dd00;backdrop-filter:blur(0)}to{background:#d5e1ddbd;backdrop-filter:blur(22px)}}@keyframes backdrop-out{to{background:#d5e1dd00;backdrop-filter:blur(0)}}@keyframes loading-spin{to{transform:rotate(360deg)}}@media(max-width:520px){.dock-scroll{padding-top:45px}.dock{min-height:295px;gap:8px}.dock .dock-card,.dock .dock-card:focus-visible{width:170px;flex-basis:170px}.dock .dock-card:nth-child(5n+1) .dock-image{height:185px}.dock .dock-card:nth-child(5n+2) .dock-image{height:240px}.dock .dock-card:nth-child(5n+3) .dock-image{height:285px}.dock .dock-card:nth-child(5n+4) .dock-image{height:255px}.dock .dock-card:nth-child(5n+5) .dock-image{height:215px}#player-dialog{width:min(92vw,calc(70dvh * var(--video-ratio)))}.player-controls{gap:7px;padding:8px;min-width:280px}.player-controls #player-time{font-size:10px}.player-brand{font-size:12px}}@media(prefers-reduced-motion:reduce){#player-dialog::backdrop,#player-dialog.closing::backdrop{animation:none}.player-loading{animation:none!important}}
/* Edge navigation and personal footer. */
.gallery-stage{position:relative;margin-bottom:26px}.gallery-stage .dock-scroll{scrollbar-width:none}.gallery-stage .dock-scroll::-webkit-scrollbar{display:none}.gallery-stage .dock-navigation{position:absolute;inset:60px 0 12px;pointer-events:none;margin:0;display:block}.gallery-stage .dock-navigation button{pointer-events:auto;position:absolute;top:0;bottom:0;height:100%;width:48px;border:0;border-radius:0;background:linear-gradient(90deg,#1e302b80,#1e302b15);color:#fff;backdrop-filter:blur(3px);font-family:Arial,sans-serif;font-size:55px;line-height:1;transition:background .2s,opacity .2s}.gallery-stage #dock-previous{left:0}.gallery-stage #dock-next{right:0;background:linear-gradient(270deg,#1e302b80,#1e302b15)}.gallery-stage .dock-navigation button:hover{background:#20362da8}.gallery-stage .dock-navigation button:disabled{opacity:0;pointer-events:none}.gallery-stage .dock-navigation button:focus-visible{outline-offset:-5px;outline-color:white}.footer-name{font-family:Arial,Helvetica,sans-serif;font-size:21px;font-weight:800;line-height:.86;letter-spacing:-1px}.instagram-link{display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;transition:background .2s}.instagram-link:hover{background:var(--olive)}@media(max-width:520px){.gallery-stage .dock-navigation{top:45px}.gallery-stage .dock-navigation button{width:34px;font-size:42px}.footer-name{font-size:18px}}
/* Stable card geometry: hover never changes the scrollable layout. */
.gallery-stage .dock{padding-inline:30px;--card-width:210px}.gallery-stage .dock .dock-card{flex:0 0 var(--card-width)!important;width:var(--card-width)!important;--card-height:250px}.gallery-stage .dock .dock-card:nth-child(5n+1){--card-height:215px}.gallery-stage .dock .dock-card:nth-child(5n+2){--card-height:280px}.gallery-stage .dock .dock-card:nth-child(5n+3){--card-height:325px}.gallery-stage .dock .dock-card:nth-child(5n+4){--card-height:295px}.gallery-stage .dock .dock-card .dock-image{height:var(--card-height)!important}.gallery-stage .dock-scroll{overflow-anchor:none;scroll-behavior:auto;touch-action:pan-x pan-y}.gallery-stage .dock-navigation{z-index:5}.gallery-stage .dock-navigation button{backdrop-filter:none;background:linear-gradient(90deg,#20362d26,transparent);text-shadow:0 1px 5px #14282090;font-size:46px}.gallery-stage #dock-next{background:linear-gradient(270deg,#20362d26,transparent)}.gallery-stage #dock-previous:hover{background:linear-gradient(90deg,#20362d45,transparent)}.gallery-stage #dock-next:hover{background:linear-gradient(270deg,#20362d45,transparent)}@media(max-width:520px){.gallery-stage .dock{--card-width:170px;padding-inline:22px}.gallery-stage .dock .dock-card:nth-child(5n+1){--card-height:185px}.gallery-stage .dock .dock-card:nth-child(5n+2){--card-height:240px}.gallery-stage .dock .dock-card:nth-child(5n+3){--card-height:285px}.gallery-stage .dock .dock-card:nth-child(5n+4){--card-height:255px}.gallery-stage .dock .dock-card:nth-child(5n+5){--card-height:215px}.gallery-stage .dock-navigation button{font-size:38px}}
/* Unified player identity and precision-drawn controls. */
.player-header{height:58px;padding-bottom:14px}.player-brand{font-family:Arial,Helvetica,sans-serif;font-size:21px;font-weight:800;line-height:.86;letter-spacing:-1px}.player-controls button{display:grid;place-items:center;border-radius:50%;transition:background .2s,transform .2s}.player-controls button:hover{background:#dfe9e3;transform:scale(1.06)}.player-controls button svg{width:20px;height:20px;display:block}.player-controls #toggle-sound svg{width:21px;height:21px}#center-play{display:grid;place-items:center}#center-play[hidden],.loading #center-play,.failed #center-play{display:none}#center-play svg{width:27px;height:27px;display:block}.player-loading{width:46px;height:46px;margin:-23px;border:1px solid #ffffff80;background:#eef5f1cf;backdrop-filter:blur(12px);color:#425e50;padding:10px;box-shadow:0 4px 20px #263c3014}.loading .player-loading{animation:none}.player-loading svg{width:24px;height:24px;display:block}.loading .player-loading svg{animation:loading-spin .9s linear infinite}@media(max-width:520px){.player-brand{font-size:18px}.player-header{height:54px}}@media(prefers-reduced-motion:reduce){.loading .player-loading svg{animation:none}}

/* Instant focus follows the pointer, including during horizontal scrolling. */
.gallery-stage .dock{position:relative}.gallery-stage .dock .dock-card{transform:none!important;transition:none!important}.gallery-stage .dock .dock-card.dock-active,.gallery-stage .dock .dock-card:focus-visible{transform:translateY(-5px) scale(1.09)!important;z-index:3}.gallery-stage .dock .dock-card.dock-neighbor{transform:translateY(-2px) scale(1.025)!important;z-index:2}.hero .intro{max-width:620px;margin:24px auto}.gallery-stage{margin-bottom:0}.about{border-top:0}.hero h1{line-height:1.08}@media(prefers-reduced-motion:reduce){.gallery-stage .dock .dock-card.dock-active,.gallery-stage .dock .dock-card.dock-neighbor{transform:none!important}}
/* Compact portrait with a fixed upper bound, even on wide displays. */
.about.section{grid-template-columns:260px minmax(0,620px);justify-content:center;gap:80px}.about-photo{width:100%;max-width:260px;justify-self:center}.about-photo img{aspect-ratio:1;object-fit:cover}.about-photo span{font-size:10px;letter-spacing:1px;line-height:1.6}@media(max-width:900px){.about.section{grid-template-columns:210px minmax(0,1fr);gap:38px}.about-photo{max-width:210px}}@media(max-width:600px){.about.section{grid-template-columns:1fr;gap:32px}.about-photo{max-width:180px;justify-self:start}}

/* Continuous distance-based magnification, animated on the display frame clock. */
.gallery-stage .dock .dock-card,.gallery-stage .dock .dock-card:hover,.gallery-stage .dock .dock-card.dock-active,.gallery-stage .dock .dock-card.dock-neighbor{transform:var(--dock-transform,translate3d(0,0,0))!important;transition:none!important;backface-visibility:hidden}.gallery-stage .dock .dock-card:focus-visible{transform:var(--dock-transform,translate3d(0,-4px,0) scale(1.05))!important}.gallery-stage .dock .dock-image{box-shadow:0 8px 18px #24271d14!important;transition:none!important}@media(prefers-reduced-motion:reduce){.gallery-stage .dock .dock-card{transform:none!important}}
/* An editorial interpretation of an editing timeline. */
.timeline-stage{margin:52px 0 0;background:linear-gradient(180deg,#d5dfdb66,transparent 80%);border-top:1px solid #c3d0ca}.timeline-toolbar{height:56px;display:flex;align-items:center;justify-content:space-between;padding:0 32px;color:#52665b}.timeline-label{font-size:11px;font-weight:600;letter-spacing:1.7px}.timeline-transport{display:flex;align-items:center;gap:18px}.timeline-transport>span{font-family:monospace;font-size:12px;font-variant-numeric:tabular-nums;color:#52665b}.timeline-transport button{width:32px;height:32px;display:grid;place-items:center;border-radius:50%;border:1px solid #b7c9be;background:#ecf3ee;color:#365647;cursor:pointer;transition:background .2s}.timeline-transport button:hover{background:#c9dccf}.timeline-transport svg{width:18px;height:18px}.timeline-ruler{position:absolute;left:0;right:0;top:56px;height:38px;overflow:hidden;pointer-events:none;border-top:1px solid #c3d0ca;border-bottom:1px solid #c3d0ca;background:#e1e9e5}.timeline-ruler-track{display:flex;width:max-content;height:100%;will-change:transform}.timeline-tick{flex:0 0 var(--tick-width);width:var(--tick-width);text-align:left;font-family:monospace;font-size:10px;padding:5px 0 0 4px;color:#788b80;background:repeating-linear-gradient(90deg,#9fb2a780 0 1px,transparent 1px calc(var(--tick-width)/10));background-size:100% 7px;background-repeat:no-repeat;background-position:bottom left;border-left:1px solid #9fb2a760}.timeline-playhead{position:absolute;left:50%;top:53px;height:58px;width:1px;background:#49765c;z-index:110;pointer-events:none}.timeline-playhead span{position:absolute;top:0;left:-4px;width:9px;height:9px;background:#49765c;clip-path:polygon(0 0,100% 0,100% 60%,50% 100%,0 60%)}.timeline-stage .dock-scroll{margin-top:0;padding-top:62px;padding-bottom:17px}.timeline-stage .dock .dock-image{border:1px solid #b3c5b9;border-bottom:3px solid #8ea995;border-radius:9px 9px 4px 4px;box-shadow:0 6px 12px #203c2c0b!important}.timeline-stage .dock-navigation{top:116px;bottom:81px}.timeline-overview{display:flex;align-items:center;gap:16px;height:64px;margin:0 30px;padding:12px 0;border-top:1px solid #c4d1c9}.track-label{font-family:monospace;font-size:11px;color:#647a6d}.timeline-loop{font-size:21px;color:#647a6d}.timeline-scrub{position:relative;flex:1;min-width:0;height:30px;--scrub-position:0%;border-radius:4px;isolation:isolate}.timeline-minis{display:flex;height:100%;gap:3px;border-radius:4px;overflow:hidden;opacity:.65}.timeline-minis img{width:0;flex:1;min-width:0;object-fit:cover;filter:saturate(.55)}.timeline-scrub::after{content:'';position:absolute;left:clamp(0px,var(--scrub-position),calc(100% - 3px));top:-3px;bottom:-3px;width:3px;background:#49765c;box-shadow:0 0 0 2px #e6eee6;border-radius:2px;pointer-events:none;z-index:2}.timeline-scrub input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:ew-resize;z-index:3;touch-action:none}.timeline-scrub:focus-within{outline:2px solid #49765c;outline-offset:5px}.timeline-stage .dock .dock-card{scroll-margin-top:100px}@media(max-width:520px){.timeline-stage{margin-top:38px;margin-inline:-12px}.timeline-toolbar{height:48px;padding:0 18px}.timeline-label{font-size:10px;letter-spacing:1.2px}.timeline-transport{gap:12px}.timeline-ruler{top:48px;height:34px}.timeline-playhead{top:45px;height:52px}.timeline-stage .dock-scroll{margin-inline:0;padding-top:54px}.timeline-stage .dock-navigation{top:102px;bottom:69px}.timeline-overview{height:56px;margin-inline:18px;gap:10px}.timeline-scrub{height:26px}}@media(prefers-reduced-motion:reduce){.timeline-ruler-track{will-change:auto}}

/* Three offset video tracks: horizontal clips instead of upright cards. */
.timeline-stage .dock{--card-width:300px;--lane:108px;gap:0;align-items:flex-start;height:330px;min-height:330px;padding:8px 30px 0;background:repeating-linear-gradient(to bottom,transparent 0 106px,#baccc14d 107px 108px)}
.timeline-stage .dock .dock-card:nth-child(n){--card-height:92px;flex:0 0 var(--card-width)!important;margin-right:-180px;top:0;transform-origin:center center}
.timeline-stage .dock .dock-card:nth-child(3n+2){top:var(--lane)}
.timeline-stage .dock .dock-card:nth-child(3n+3){top:calc(var(--lane)*2)}
.timeline-stage .dock .dock-card:last-child{margin-right:0}
.timeline-stage .dock .dock-image{border-radius:5px;border:1px solid #a5bbb0;border-left:4px solid #769886;border-bottom:1px solid #a5bbb0;background:#cbdad2;box-shadow:none!important}
.timeline-stage .dock .dock-card:nth-child(3n+2) .dock-image{border-left-color:#789ba7}
.timeline-stage .dock .dock-card:nth-child(3n+3) .dock-image{border-left-color:#aaa080}
.timeline-stage .dock-image img{object-fit:cover;object-position:center 38%;opacity:.88}
.timeline-stage .dock-play{width:28px;height:28px;bottom:8px;right:8px;font-size:10px}
.timeline-stage .dock-scroll{padding-top:54px;padding-bottom:12px}
.timeline-stage .timeline-playhead{height:calc(100% - 117px);background:#49765c99}
.timeline-stage .dock-navigation{top:110px;bottom:76px}
@media(max-width:520px){.timeline-stage .dock{--card-width:240px;--lane:92px;height:282px;min-height:282px;padding-inline:22px;background-size:auto;background:repeating-linear-gradient(to bottom,transparent 0 90px,#baccc14d 91px 92px)}.timeline-stage .dock .dock-card:nth-child(n){--card-height:78px;margin-right:-140px}.timeline-stage .dock .dock-card:last-child{margin-right:0}.timeline-stage .dock-scroll{padding-top:46px}.timeline-stage .timeline-playhead{height:calc(100% - 101px)}.timeline-stage .dock-navigation{top:94px;bottom:68px}}

/* Film contact sheets preserve the composition of each video frame. */
.timeline-stage .dock-image{background-image:var(--filmstrip)!important;background-size:100% 100%!important;background-repeat:no-repeat!important}
.timeline-stage .dock-image>img{opacity:0!important}
.timeline-stage .dock-image>video{object-fit:contain;background:#26332e}
.timeline-stage .dock .dock-image{border-radius:4px!important}
.timeline-stage .dock-play{background:#eef5f0e6;box-shadow:0 1px 8px #183d2830}

/* Cinematic single-row carousel, with a thumbnail navigator. */
.carousel-stage{margin:50px 0 0;border:0;background:none}
.carousel-stage .dock-scroll{padding:12px 0 16px;margin-inline:0}
.carousel-stage .dock{--card-width:clamp(340px,55vw,600px);gap:16px;min-height:0;height:auto;align-items:center;padding:0 26px;background:none}
.carousel-stage .dock .dock-card:nth-child(n){--card-height:auto;top:0;margin:0;transform-origin:center;aspect-ratio:16/9}
.carousel-stage .dock .dock-image{height:100%!important;aspect-ratio:16/9;border:0;border-radius:4px!important;isolation:isolate;background:#b7c7c0!important;box-shadow:none!important}
.carousel-stage .dock-image::before{content:'';position:absolute;inset:-15px;background-image:var(--filmstrip);background-position:center;background-size:cover;filter:blur(20px) brightness(.68);z-index:-1}
.carousel-stage .dock-image>img{opacity:1!important;object-fit:contain;object-position:center;position:relative}
.carousel-stage .dock-image>video{object-fit:contain;background:transparent}
.carousel-stage .dock-play{width:auto;height:auto;padding:11px 17px;right:18px;bottom:18px;border-radius:30px;font:13px Arial,sans-serif;background:#f6f9f5ed;box-shadow:none;backdrop-filter:blur(8px)}
.carousel-stage .dock-navigation{top:12px;bottom:92px}
.carousel-stage .timeline-overview{height:76px;max-width:760px;margin:0 auto;padding:12px 28px;border:0;gap:22px}
.carousel-stage .timeline-scrub{height:38px}
.carousel-stage .timeline-scrub::after{display:none}
.carousel-stage .timeline-minis{opacity:1;gap:5px;overflow:visible}
.carousel-stage .timeline-minis img{border-radius:3px;filter:none;opacity:.42;transition:opacity .25s,transform .25s;object-fit:cover}
.carousel-stage .timeline-minis img.current{opacity:1;transform:scale(1.12);outline:1px solid #526b60;outline-offset:2px}
#carousel-motion{width:34px;height:34px;flex-shrink:0;border:0;border-radius:50%;background:#cbd7d1;color:#43594d;display:grid;place-items:center;cursor:pointer}
#carousel-motion svg{width:18px;height:18px}
@media(max-width:520px){.carousel-stage{margin-top:34px;margin-inline:-12px}.carousel-stage .dock{--card-width:82vw;gap:12px;padding-inline:18px}.carousel-stage .dock-play{padding:9px 13px;right:12px;bottom:12px;font-size:12px}.carousel-stage .timeline-overview{padding-inline:20px;gap:16px;height:68px}.carousel-stage .timeline-scrub{height:28px}.carousel-stage .timeline-minis{gap:3px}.carousel-stage .dock-navigation{bottom:84px}}
@media(prefers-reduced-motion:reduce){.carousel-stage .timeline-minis img{transition:none}}

/* Full-bleed covers and quiet pagination, matching the supplied reference. */
.carousel-stage .dock-image::before{display:none}
.carousel-stage .dock-image>img,.carousel-stage .dock-image>video{object-fit:cover;object-position:center 32%}
.carousel-stage [data-file="work-4"] .dock-image>img{object-position:center 66%}
.carousel-stage [data-file="work-10"] .dock-image>img{object-position:center 60%}
.carousel-stage [data-file="work-14"] .dock-image>img,.carousel-stage [data-file="work-0"] .dock-image>img{object-position:center}
.carousel-controls{position:relative;height:58px;display:flex;align-items:center;justify-content:center;padding:0 64px}
.carousel-dots{display:flex;align-items:center;justify-content:center;gap:0}
.carousel-dot{width:24px;height:36px;border:0;background:none;padding:0;display:grid;place-items:center;cursor:pointer;transition:width .25s}
.carousel-dot::after{content:'';display:block;width:7px;height:7px;border-radius:10px;background:#8c9792;transition:width .25s,background .25s}
.carousel-dot.current{width:38px}.carousel-dot.current::after{width:26px;background:#37463e}
.carousel-dot:hover::after{background:#52645a}
.carousel-dot:focus-visible{outline:2px solid #52645a;outline-offset:0;border-radius:16px}
.carousel-controls #carousel-motion{position:absolute;right:20px;width:30px;height:30px}
.carousel-stage .dock-navigation{bottom:74px}
@media(max-width:520px){.carousel-controls{height:54px;padding:0 48px 0 12px}.carousel-dot{width:17px}.carousel-dot.current{width:28px}.carousel-dot::after{width:5px;height:5px}.carousel-dot.current::after{width:20px}.carousel-controls #carousel-motion{right:12px;width:28px;height:28px}.carousel-stage .dock-navigation{bottom:70px}}
@media(prefers-reduced-motion:reduce){.carousel-dot,.carousel-dot::after{transition:none}}

/* Original staggered portfolio silhouette with timed pagination. */
.carousel-stage .dock{--card-width:210px;gap:10px;align-items:flex-end;min-height:350px;padding-inline:30px}
.carousel-stage .dock-scroll{padding-top:35px}
.carousel-stage .dock .dock-card:nth-child(n){aspect-ratio:auto;--card-height:250px;transform-origin:center bottom}
.carousel-stage .dock .dock-card:nth-child(5n+1){--card-height:215px}
.carousel-stage .dock .dock-card:nth-child(5n+2){--card-height:280px}
.carousel-stage .dock .dock-card:nth-child(5n+3){--card-height:325px}
.carousel-stage .dock .dock-card:nth-child(5n+4){--card-height:295px}
.carousel-stage .dock .dock-card .dock-image{height:var(--card-height)!important;aspect-ratio:auto;border-radius:12px 12px 5px 5px!important}
.carousel-stage .dock-image>img,.carousel-stage .dock-image>video{object-position:center!important}
.carousel-stage .dock-play{padding:9px 13px;right:12px;bottom:12px;font-size:12px}
.carousel-stage .dock-navigation{top:55px}
.carousel-dot{position:relative}
.carousel-dot.current::after{background:#9da9a2}
.carousel-dot.current::before{content:'';position:absolute;left:6px;top:calc(50% - 3.5px);height:7px;width:26px;border-radius:10px;background:#293c31;transform:scaleX(var(--autoplay-progress,0));transform-origin:left;z-index:1}
@media(max-width:520px){.carousel-stage .dock{--card-width:170px;gap:8px;min-height:305px;padding-inline:22px}.carousel-stage .dock .dock-card:nth-child(5n+1){--card-height:185px}.carousel-stage .dock .dock-card:nth-child(5n+2){--card-height:240px}.carousel-stage .dock .dock-card:nth-child(5n+3){--card-height:285px}.carousel-stage .dock .dock-card:nth-child(5n+4){--card-height:255px}.carousel-stage .dock .dock-card:nth-child(5n+5){--card-height:215px}.carousel-dot.current::before{left:4px;top:calc(50% - 2.5px);height:5px;width:20px}}

/* Consistent clipping and stable pagination geometry. */
.carousel-stage .dock .dock-card .dock-image{border-radius:12px!important;overflow:hidden;clip-path:inset(0 round 12px)}
.carousel-stage .dock-image>img,.carousel-stage .dock-image>video{border-radius:inherit}
.carousel-stage .dock-play{width:34px;height:34px;padding:0;display:grid;place-items:center;border-radius:50%;background:#f4f8f2df}
.carousel-stage .dock-play svg{width:21px;height:21px;display:block}
.carousel-dot,.carousel-dot.current{width:24px;flex:0 0 24px;transition:none}
.carousel-dot::before,.carousel-dot::after{display:none!important}
.dot-track{display:block;width:7px;height:7px;border-radius:999px;background:#8c9792;overflow:hidden;position:relative}
.carousel-dot.current .dot-track{width:22px;background:#a2ada6}
.dot-fill{display:none;position:absolute;inset:0;background:#293c31;transform:scaleX(var(--autoplay-progress,0));transform-origin:left;border-radius:inherit}
.carousel-dot.current .dot-fill{display:block}
@media(max-width:520px){.carousel-dot,.carousel-dot.current{width:18px;flex-basis:18px}.dot-track{width:5px;height:5px}.carousel-dot.current .dot-track{width:16px}}

/* About board: charcoal with restrained proposal-orange accents. */
.about.section{background:#202727;color:#f2f5f3;border:1px solid #343d3b;border-radius:28px;margin:74px 5% 80px;padding:68px 6%;grid-template-columns:240px minmax(0,620px);gap:64px;overflow:hidden}
.about-copy h2{color:#f2f5f3}
.about-copy>.eyebrow{color:#ff792c;display:flex;align-items:center;gap:12px}
.about-copy>.eyebrow::before{content:'';width:26px;height:2px;background:#ff650a;border-radius:2px;flex-shrink:0}
.about-copy>p:not(.eyebrow){color:#bdc7c2}
.about .about-photo{max-width:240px}
.about .about-photo img{border-radius:18px}
.about .about-photo span{color:#9aa9a1}
.about .expertise{gap:8px}
.about .expertise span{color:#d7dfda;background:#283130;border:1px solid #43504a;border-radius:30px}
.about .expertise span{border-color:#95613e}
@media(max-width:900px){.about.section{grid-template-columns:180px minmax(0,1fr);gap:34px;padding:48px 5%;margin-inline:4%;border-radius:24px}.about .about-photo{max-width:180px}}
@media(max-width:600px){.about.section{grid-template-columns:1fr;gap:34px;margin:42px 14px 48px;padding:32px 24px;border-radius:22px}.about .about-photo{max-width:160px}.about-copy h2{font-size:38px}.about-copy>.eyebrow{font-size:11px;letter-spacing:1px}.about-copy>p:not(.eyebrow){font-size:16px}.about .about-photo img{border-radius:14px}}
