:root{--bg:#080b10;--ink:#f4f5f7;--muted:#a0a6b1;--line:#232831;--panel:#0e131b;--button:#f5f5f7;--inverse:#111318;--shadow:0 12px 45px #0005}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:125px}body{margin:0;background:var(--bg);color:var(--ink);font:16px Arial,Helvetica,sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}a,button{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible{outline:2px solid var(--ink);outline-offset:5px}header{position:fixed;z-index:20;left:50%;top:24px;transform:translateX(-50%);width:calc(100% - 80px);max-width:1140px;padding:17px 26px;border:1px solid var(--line);border-radius:60px;background:color-mix(in srgb,var(--panel) 93%,transparent);backdrop-filter:blur(18px);box-shadow:var(--shadow);display:flex;align-items:center;gap:25px;justify-content:space-between}.brand{display:flex;align-items:center;gap:9px;white-space:nowrap}.brand strong{font-size:20px;letter-spacing:-.6px}.brand small{font-size:12px;color:var(--muted);border-left:1px solid var(--line);padding-left:9px}.monogram{width:36px;height:36px;display:grid;place-items:center;background:var(--ink);color:var(--bg);border-radius:10px;font-size:12px;font-weight:bold;letter-spacing:-.7px}nav{display:flex;gap:23px;font-size:14px}nav a:hover{color:var(--muted)}.tools{display:flex;gap:11px;align-items:center}.tools button{border:0;background:none;padding:6px 0;font-size:12px;font-weight:600}.tools span{color:var(--muted)}#theme{font-size:23px;line-height:1}.solid,.outline{display:inline-flex;justify-content:center;align-items:center;padding:18px 28px;font-size:15px;font-weight:600;border-radius:12px;border:1px solid var(--line);transition:transform .2s,opacity .2s}.solid{background:var(--button);color:var(--inverse);border-color:var(--button)}.outline{background:var(--panel)}.solid:hover,.outline:hover{transform:translateY(-2px);opacity:.85}.nav-cta{padding:13px 18px;font-size:13px;border-radius:9px;white-space:nowrap}.hero{min-height:900px;position:relative;overflow:hidden;display:grid;place-items:center;padding:185px 25px 55px;text-align:center}.hero-background{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 65%;filter:grayscale(1);opacity:.24}.hero:after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,var(--bg) 0%,color-mix(in srgb,var(--bg) 60%,transparent) 40%,color-mix(in srgb,var(--bg) 60%,transparent) 68%,var(--bg) 100%);pointer-events:none}.hero-content{position:relative;z-index:1;width:100%;max-width:1000px}.badge{display:inline-block;border:1px solid var(--line);border-radius:30px;padding:11px 18px;background:var(--panel);font-size:12px;letter-spacing:1.2px}h1{font-size:clamp(48px,7.4vw,100px);letter-spacing:-4.5px;line-height:1.02;margin:40px 0 25px;font-weight:750}h1 span{color:var(--muted)}.hero-content>p{font-size:23px;color:var(--muted);line-height:1.6;margin:0}.hero-actions{display:flex;gap:32px;justify-content:center;align-items:center;margin:37px 0 70px}.text-link{color:var(--muted);font-weight:600;font-size:16px}.metrics{display:grid;grid-template-columns:repeat(3,1fr);max-width:690px;margin:auto;gap:25px}.metrics strong{display:block;font-size:28px;letter-spacing:-.8px}.metrics span{display:block;font-size:11px;color:var(--muted);letter-spacing:1.5px;margin-top:12px}.scroll-hint{display:inline-block;font-size:10px;letter-spacing:2px;color:var(--muted);margin-top:65px}.section{max-width:1240px;margin:auto;padding:85px 50px;text-align:center}.eyebrow{font-size:12px;letter-spacing:2px;font-weight:600;color:var(--muted)}h2{font-size:clamp(34px,4.1vw,54px);letter-spacing:-1.8px;line-height:1.15;font-weight:700;margin:18px 0}.section-intro{max-width:660px;margin:0 auto;color:var(--muted);line-height:1.6;font-size:18px}.format-tabs{display:inline-flex;padding:5px;border:1px solid var(--line);border-radius:30px;margin:36px auto 23px;background:var(--panel)}.format-tabs button{border:0;background:none;color:var(--muted);padding:12px 25px;border-radius:30px;font-size:14px}.format-tabs button.active{background:var(--button);color:var(--inverse)}.filters{display:flex;justify-content:center;gap:12px;flex-wrap:wrap}.filters button{background:var(--panel);border:1px solid var(--line);border-radius:30px;padding:10px 17px;font-size:14px;color:var(--muted)}.filters button.active{color:var(--ink);border-color:var(--ink)}.carousel-controls{display:flex;gap:10px;justify-content:flex-end;margin:20px 0 14px}.carousel-controls button{width:38px;height:38px;border-radius:50%;border:1px solid var(--line);background:var(--panel);font-size:24px}.gallery{display:flex;gap:25px;overflow:auto;scroll-snap-type:x mandatory;scrollbar-width:thin;text-align:left;padding:0 0 10px}.gallery article{flex:0 0 calc(50% - 13px);scroll-snap-align:start}.project-shot{position:relative;width:100%;display:block;padding:0;overflow:hidden;aspect-ratio:16/10;background:var(--panel);border:1px solid var(--line);border-radius:24px;text-align:left;color:white}.project-shot:after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,#0002,transparent 30%,#000b);pointer-events:none}.project-shot>img{width:100%;height:100%;object-fit:cover;filter:none;transition:transform .5s}.project-shot:hover>img{transform:scale(1.035)}.shot-label{position:absolute;top:18px;left:18px;z-index:2;background:#141619a8;backdrop-filter:blur(8px);padding:10px 13px;border-radius:22px;font-size:10px;letter-spacing:1.3px}.play-mark{position:absolute;left:50%;top:45%;transform:translate(-50%,-50%);z-index:2;width:55px;height:55px;border:1px solid #fff6;border-radius:50%;display:grid;place-items:center;font-size:25px;background:#0002;backdrop-filter:blur(5px)}.card-info{position:absolute;z-index:2;bottom:23px;left:24px;right:24px}.card-info h3{font-size:23px;font-weight:600;letter-spacing:-.6px;margin:0 0 9px}.card-info>span{font-size:13px;color:#e3e3e3}.gallery.short-form{justify-content:center}.gallery.short-form article{flex-basis:300px}.gallery.short-form .project-shot{aspect-ratio:9/16}.sample-note{font-size:13px;color:var(--muted);margin-top:23px;line-height:1.6}.services-section{padding-top:70px;padding-bottom:85px}.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:42px}.steps article{background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:28px 22px;box-shadow:var(--shadow)}.steps article>span{display:grid;place-items:center;margin:0 auto 24px;width:43px;height:43px;border-radius:50%;background:var(--button);color:var(--inverse);font-size:18px}.steps h3{font-size:18px;margin:0 0 12px}.steps p{font-size:15px;line-height:1.6;color:var(--muted);margin:0}.about-section{display:grid;grid-template-columns:1.15fr 1fr;gap:65px;text-align:left;padding-top:95px}.about-copy h2{font-size:42px;line-height:1.2;margin:20px 0 26px}.about-copy h2 span{color:var(--muted)}.about-copy p{font-size:16px;line-height:1.8;color:var(--muted)}.about-copy .lead{color:var(--ink)}.qualities{display:grid;grid-template-columns:1fr 1fr;gap:18px;align-content:center}.qualities article{background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:27px 21px}.qualities article>span{font-size:14px;color:var(--muted)}.qualities h3{font-size:18px;line-height:1.4;margin:17px 0 10px}.qualities p{font-size:14px;line-height:1.6;color:var(--muted);margin:0}.contact-section{padding-top:105px;padding-bottom:115px}.contact-section h2{font-size:clamp(36px,4.5vw,59px)}.contact-section>p{color:var(--muted);font-size:18px;line-height:1.6}.contact-links{display:flex;gap:18px;justify-content:center;margin-top:34px}.contact-links a{min-width:165px}footer{max-width:1140px;margin:auto;border-top:1px solid var(--line);padding:35px 0;display:flex;justify-content:space-between;align-items:center;gap:20px}footer>span,footer>a:last-child{font-size:12px;color:var(--muted)}dialog{background:var(--bg);color:var(--ink);border:1px solid var(--line);border-radius:22px;width:min(850px,92vw);padding:0;max-height:90vh}dialog::backdrop{background:#000a;backdrop-filter:blur(5px)}.close{position:absolute;top:12px;right:12px;width:40px;height:40px;border:0;background:#fff;color:#111;border-radius:50%;z-index:2;font-size:26px}#modal-media img{width:100%;max-height:50vh;object-fit:cover;display:block}.modal-copy{padding:30px}.modal-copy h2{font-size:34px;margin:18px 0}.modal-copy p{line-height:1.6}.muted{color:var(--muted)}iframe{border:0;width:100%;height:100%}.video-layer{position:absolute;inset:0}.skip{position:absolute;left:10px;top:-100px;background:var(--bg);padding:15px;z-index:30}.skip:focus{top:10px}[hidden]{display:none!important}@media(max-width:1080px){header{gap:16px;padding:15px 21px;width:calc(100% - 44px)}nav{gap:16px}.nav-cta{display:none}.section{padding-left:35px;padding-right:35px}footer{margin:0 35px}.about-section{gap:35px}.about-copy h2{font-size:36px}}@media(max-width:760px){header{top:15px;padding:13px 17px;width:calc(100% - 28px)}.brand strong{font-size:18px}.brand small,nav{display:none}.hero{min-height:780px;padding:160px 22px 45px}h1{font-size:clamp(44px,9.5vw,70px);letter-spacing:-2.4px;line-height:1.08;margin-top:30px}.hero-content>p{font-size:18px;max-width:380px;margin:auto}.hero-actions{gap:20px;margin-bottom:53px;flex-wrap:wrap}.metrics{gap:10px}.metrics strong{font-size:20px}.metrics span{font-size:10px;letter-spacing:.7px;line-height:1.5}.section{padding:65px 22px}.section-intro{font-size:16px}.gallery article{flex-basis:85%}.gallery.short-form{justify-content:flex-start}.gallery.short-form article{flex-basis:72%}.steps{grid-template-columns:1fr 1fr;gap:12px}.steps article{padding:24px 15px}.about-section{display:block}.qualities{margin-top:32px;gap:12px}.qualities article{padding:22px 17px}.about-copy h2{font-size:35px}.contact-section>p{font-size:16px}.contact-links{gap:12px}.contact-links a{min-width:0;padding:16px 25px}.contact-section{padding-top:75px;padding-bottom:85px}footer{margin:0 22px;flex-wrap:wrap;gap:22px}footer>span{order:3;width:100%;font-size:11px}}@media(max-width:380px){.metrics strong{font-size:17px}.steps{grid-template-columns:1fr}.qualities{grid-template-columns:1fr}h1{font-size:40px}.solid{padding:16px 22px}}
.work-section{max-width:none;padding-left:0;padding-right:0;overflow:hidden}.work-section>.section-intro,.work-section>h2,.work-section>.eyebrow,.work-section>.sample-note{padding-left:22px;padding-right:22px}.carousel-controls{max-width:1140px;padding:0 25px;margin:24px auto 18px}.carousel-controls #previous,.carousel-controls #next{display:none}.carousel-controls #pause-carousel{width:auto;height:auto;font-size:12px;padding:10px 16px;border-radius:30px}.gallery{display:block;overflow:hidden;scroll-snap-type:none;padding:0}.marquee-track{display:flex;width:max-content;animation:none;will-change:transform}.marquee-set{display:flex;gap:25px;padding-right:25px}.marquee-set article{flex:0 0 520px;width:520px}.gallery.short-form .marquee-set article{flex:0 0 310px;width:310px}.gallery.short-form .project-shot{aspect-ratio:9/16}.gallery:hover .marquee-track,.gallery:focus-within .marquee-track,.gallery.paused .marquee-track,.gallery.tab-hidden .marquee-track{animation-play-state:paused}.project-shot{border-radius:24px}.project-shot>img{animation:preview-drift 12s ease-in-out infinite alternate}.gallery.paused .project-shot>img{animation-play-state:paused}@keyframes portfolio-marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}@keyframes preview-drift{from{transform:scale(1.01)}to{transform:scale(1.09)}}#custom-cursor{position:fixed;top:0;left:0;width:48px;height:53px;z-index:10000;pointer-events:none;opacity:0;display:none;margin-left:-7px;margin-top:-5px;will-change:transform}#custom-cursor svg{width:100%;height:100%;filter:drop-shadow(0 0 5px #9aa3b6bb);transition:filter .2s,transform .2s}.custom-pointer #custom-cursor{display:block}.custom-pointer #custom-cursor.visible{opacity:1}.custom-pointer,.custom-pointer a,.custom-pointer button,.custom-pointer dialog{cursor:none!important}#custom-cursor.hovering svg{transform:scale(1.18);filter:drop-shadow(0 0 7px #aeb9ce)}#custom-cursor.pressed svg{transform:scale(.92)}@media(max-width:760px){.marquee-set{gap:16px;padding-right:16px}.marquee-set article{width:330px;flex-basis:330px}.gallery.short-form .marquee-set article{width:240px;flex-basis:240px}.marquee-track{animation-duration:var(--marquee-duration,90s)}.carousel-controls{padding:0 22px}}
#custom-cursor{width:30px;height:33px;margin-left:-6px;margin-top:-5px}#custom-cursor svg{filter:drop-shadow(0 0 3px #92d2e388)}#custom-cursor.hovering svg{transform:scale(1.1);filter:drop-shadow(0 0 4px #a9e6f7aa)}
.click-particles{position:fixed;inset:0;z-index:10001;pointer-events:none;overflow:hidden}.click-particle{position:absolute;display:block;border-radius:50%;background:#656e7d;box-shadow:0 0 5px #8792a544;pointer-events:none}html[data-theme=dark] .click-particle{background:#c8eff9;box-shadow:0 0 6px #b5efff66}
.video-layer{z-index:1;pointer-events:none}.video-layer iframe{display:block;pointer-events:none}.project-shot .shot-label,.project-shot .card-info,.project-shot .play-mark{z-index:3}.project-shot:after{z-index:2}.project-shot:has(.video-layer) .play-mark{opacity:0}.project-shot:has(.video-layer):hover .play-mark,.project-shot:focus-visible .play-mark{opacity:1}dialog{width:min(460px,92vw)}#modal-media{width:auto;margin:0 auto;height:min(60vh,640px);max-width:100%;background:#080b10}#modal-media iframe{display:block}.modal-copy{padding:22px}.modal-copy h2{font-size:27px}.vimeo-fallback{display:inline-block;color:var(--muted);font-size:13px;text-decoration:underline;margin:0 15px 14px 0}.modal-copy #open-film{font-size:13px;padding:12px 16px}dialog #modal-media img{height:100%;width:100%;max-height:none}.project-shot>img[src^="film-"]{animation:none}

.gallery{touch-action:pan-y;user-select:none;-webkit-user-select:none;cursor:grab}.gallery .project-shot{cursor:grab}.gallery.is-dragging,.gallery.is-dragging .project-shot{cursor:grabbing}.gallery img{-webkit-user-drag:none}.gallery.is-dragging .play-mark{opacity:0}
.steps article,.qualities article{position:relative;isolation:isolate;transition:transform .3s cubic-bezier(.2,.8,.2,1),border-color .3s,box-shadow .3s,background-color .3s}.steps article>*,.qualities article>*{position:relative;z-index:1}.steps article:after,.qualities article:after{content:'';position:absolute;inset:0;border-radius:inherit;background:radial-gradient(240px circle at var(--pointer-x,50%) var(--pointer-y,50%),#abe8f818,transparent 72%);opacity:0;transition:opacity .3s;pointer-events:none}.steps article:before,.qualities article:before{content:'';position:absolute;inset:-1px;padding:1px;border-radius:inherit;background:radial-gradient(200px circle at var(--pointer-x,50%) var(--pointer-y,50%),#d7f7ffe6,#9bddee55 45%,transparent 80%);-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;opacity:0;transition:opacity .3s;pointer-events:none}.steps article>span,.qualities article>span{transition:transform .3s,box-shadow .3s,color .3s}.steps article h3,.qualities article h3{transition:color .3s}.steps article.pointer-highlight,.qualities article.pointer-highlight{transform:translateY(-6px);border-color:#71a7b5;background-color:#121d20;box-shadow:0 16px 38px #0005,0 0 20px #9ce7fa15}.steps article.pointer-highlight:before,.qualities article.pointer-highlight:before,.steps article.pointer-highlight:after,.qualities article.pointer-highlight:after{opacity:1}.steps article.pointer-highlight>span{transform:scale(1.08);box-shadow:0 0 20px #bdf1ff25}.qualities article.pointer-highlight>span{color:#daf7ff}.steps article.pointer-highlight h3,.qualities article.pointer-highlight h3{color:#fff}.solid,.outline{transition:transform .25s,border-color .25s,box-shadow .25s,background-color .25s,opacity .25s}nav a{position:relative;padding:7px 0;transition:color .2s}nav a:after{content:'';position:absolute;left:0;right:0;bottom:0;height:1px;background:#b2e6f4;transform:scaleX(0);transform-origin:left;transition:transform .25s}.format-tabs button,.tools button,.carousel-controls button{transition:box-shadow .2s,background-color .2s,color .2s,transform .2s}@media(hover:hover){nav a:hover{color:#fff}nav a:hover:after{transform:scaleX(1)}.solid:hover{opacity:1;transform:translateY(-3px);box-shadow:0 8px 25px #acedfe20;border-color:#fff}.outline:hover{opacity:1;transform:translateY(-3px);border-color:#93c7d4;box-shadow:0 8px 24px #9adff215}.format-tabs button:hover:not(.active),.carousel-controls button:hover{background:#18292d;color:#fff;box-shadow:0 0 18px #a1e4f618}.tools button:hover{color:#fff;text-shadow:0 0 12px #c9f4ff77}}.outline:focus-visible,.solid:focus-visible{box-shadow:0 0 22px #bdf1ff25}

:root{--accent:#afe1ee;--accent-soft:#93bac5;--button:#eef6f8}.badge{color:var(--accent);border-color:#7ec3d540;background:#101a1ccc}.eyebrow{color:var(--accent-soft)}.monogram{background:#e5f5f9}.format-tabs button.active{background:#dff0f4}.steps article>span{background:#e5f5f9}.qualities article>span{color:#9ccbd8}.play-mark{border-color:#beecf873}.project-shot:focus-visible,a:focus-visible,button:focus-visible{outline-color:var(--accent)}::selection{background:#87d4e940;color:#fff}
.profile-avatar{width:40px;height:40px;object-fit:cover;object-position:50% 30%;border-radius:12px;border:1px solid #99d6e766;box-shadow:0 0 12px #99d6e712;flex-shrink:0;transition:border-color .25s,box-shadow .25s}.brand:hover .profile-avatar{border-color:#b0eaf9;box-shadow:0 0 16px #97dff22a}@media(max-width:760px){.profile-avatar{width:36px;height:36px;border-radius:10px}}
#project-modal{width:min(92vw,calc(86dvh * 9 / 16));max-height:90dvh;background:#000;border-radius:18px;overflow:hidden}#modal-media{width:100%;height:auto;max-width:none;aspect-ratio:9/16}#modal-media iframe{position:absolute;inset:0;width:100%;height:100%;display:block}#modal-media{position:relative}.close{top:10px;right:10px;width:34px;height:34px;font-size:24px;background:#0f1a1dcc;border:1px solid #99d6e766;color:#fff;backdrop-filter:blur(8px)}.close:hover{background:#253d43}

html.custom-pointer .gallery,html.custom-pointer .gallery *,html.custom-pointer .gallery.is-dragging,html.custom-pointer .gallery.is-dragging *{cursor:none!important}

#custom-cursor .cursor-grip{display:none}#custom-cursor.dragging{width:34px;height:37px;margin-left:-18px;margin-top:-22px}#custom-cursor.dragging .cursor-arrow{display:none}#custom-cursor.dragging .cursor-grip{display:block;transform:none;filter:drop-shadow(0 0 4px #a9e6f7aa)}

#pointer-background,#pointer-trail{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;user-select:none}#pointer-background{z-index:1}#pointer-trail{z-index:9998}@media(hover:none),(pointer:coarse){#pointer-background,#pointer-trail{display:none}}

.metrics{grid-template-columns:repeat(2,minmax(0,1fr));max-width:460px}

.gallery:not(.short-form) .project-shot{aspect-ratio:16/9}#project-modal.landscape{width:min(94vw,1100px,calc(86dvh * 16 / 9))}

header{background:linear-gradient(115deg,rgba(65,215,255,.065),rgba(255,255,255,.025) 55%,rgba(47,167,234,.045)),rgba(12,16,24,.65);backdrop-filter:blur(14px) saturate(135%);-webkit-backdrop-filter:blur(14px) saturate(135%);border-color:rgba(130,220,255,.17);box-shadow:0 10px 35px rgba(0,0,0,.25),inset 0 1px 0 rgba(255,255,255,.09)}
.project-shot{transition:border-color .22s ease}.project-shot:before{content:'';position:absolute;inset:0;z-index:4;border:2px solid #b6ebf9;border-radius:inherit;box-shadow:inset 0 0 14px #afe1ee22;opacity:0;pointer-events:none;transition:opacity .22s ease}.project-shot:focus-visible:before{opacity:1}@media(hover:hover){.project-shot:hover{border-color:#b6ebf9}.project-shot:hover:before{opacity:1}}

.gallery,.gallery .project-shot{touch-action:pan-y pinch-zoom}.gallery{overscroll-behavior-x:contain}

/* A shallow cylinder: cards at the edges rotate and retreat without tightening the arc. */
.gallery{perspective:1600px;perspective-origin:50% 50%;padding-top:16px;padding-bottom:28px}.marquee-track,.marquee-set{position:relative;transform-style:preserve-3d}.marquee-set article{position:relative;transform-origin:center center;backface-visibility:hidden;-webkit-backface-visibility:hidden}.gallery .project-shot{box-shadow:0 12px 28px #0004}
/* Container planes do not intercept clicks on the recessed video faces. */
.marquee-track,.marquee-set{pointer-events:none}.marquee-set .project-shot{pointer-events:auto}
/* A richer lilac palette with clear text on the dark background. */
:root{--accent:#a3ecff;--accent-soft:#96e7fc;--button:#a7edff;--inverse:#0b1d22;--muted:#b2b7c5;--line:#30303f;--panel:#11131e}
body{background:radial-gradient(ellipse at 5% 0%,#43c7ea13,transparent 36%),radial-gradient(ellipse at 100% 65%,#54d9fd0a,transparent 35%),var(--bg)}
.hero-background{filter:none;opacity:.32}
h1 span,.about-copy h2 span{color:#abedff}
.badge{color:#c3f2ff;border-color:#85e5ff66;background:#13333bb3}
.eyebrow{color:#a3ecff}
.solid,.format-tabs button.active{background:linear-gradient(135deg,#c4f3ff,#88e6ff);border-color:#b0eeff;color:#0b1d22}
.solid{box-shadow:0 5px 24px #7de1fc20}
.steps article>span{background:#afeeff;color:#0c2026;box-shadow:0 0 18px #65defe18}
.qualities article>span{color:#9ceaff}
.profile-avatar{border-color:#88e6ff99}
.text-link{color:#b0dfeb}.scroll-hint{color:#a0cfdb}
.steps article.pointer-highlight,.qualities article.pointer-highlight{background-color:#132c32;border-color:#7de2fd;box-shadow:0 16px 38px #0005,0 0 25px #74e2ff27}
.project-shot:before{border-color:#9ceaff;box-shadow:inset 0 0 15px #71e1ff2a}
@media(hover:hover){.project-shot:hover{border-color:#9ceaff}.solid:hover{border-color:#dff8ff;box-shadow:0 8px 28px #82e5ff43}.outline:hover{border-color:#90e7fe;box-shadow:0 8px 24px #6ddefc29}.format-tabs button:hover:not(.active),.carousel-controls button:hover{background:#183b44;box-shadow:0 0 18px #6adffe29}}
::selection{background:#64ddfd66;color:#fff}
.carousel-controls{justify-content:center;margin:0 auto 14px;padding:0 22px}.work-section>.format-tabs{margin-bottom:16px}

.contact-links{flex-wrap:wrap}
.hero-background{object-position:center;opacity:.6;transition:opacity .35s ease}
.hero-video{position:absolute;inset:0;overflow:hidden;pointer-events:none;opacity:0;transition:opacity .35s ease}
.hero.hero-video-playing .hero-background{opacity:0}
.hero.hero-video-playing .hero-video{opacity:.6}
.hero-video iframe{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);max-width:none;pointer-events:none}
.hero:after{z-index:0}
.contact-links .outline{box-shadow:none;transition:background .2s,color .2s,border-color .2s,box-shadow .2s,transform .2s}
.contact-links .outline:focus-visible,.contact-links .outline:active{background:linear-gradient(135deg,#c4f3ff,#88e6ff);color:#0b1d22;border-color:#b0eeff;box-shadow:0 8px 28px #82e5ff43;opacity:1}
@media(hover:hover){.contact-links .outline:hover{background:linear-gradient(135deg,#c4f3ff,#88e6ff);color:#0b1d22;border-color:#b0eeff;box-shadow:0 8px 28px #82e5ff43;opacity:1}}

/* Portfolio variants: independent rows, blue cyan, readable mobile controls. */
:root{--accent:#41d7ff;--accent-soft:#8edfff;--button:#57dbff;--inverse:#03131b;--panel:#0e1620;--line:#253440}
h1 span,.about-copy h2 span{color:#82dfff}.eyebrow,.text-link,.scroll-hint{color:var(--accent-soft)}
.solid{background:linear-gradient(135deg,#9deeff,#41cfff);border-color:#80e5ff;color:#03131b}
.badge{color:#a0ebff;border-color:#41d7ff66;background:#082937b3}.steps article>span{background:#8ae7ff;color:#061d27}.qualities article>span{color:#78dfff}
.avatar-placeholder{display:grid;place-items:center;font-size:14px;font-weight:700;color:#83e5ff;background:#082333}
.carousel-controls{margin:28px auto 12px;gap:10px;flex-wrap:wrap}.carousel-controls button{width:auto;height:40px;padding:0 16px;border-radius:30px;font-size:14px}.carousel-controls [data-action="pause"]{margin-right:6px}
.marquee-set{gap:34px;padding-right:34px}.gallery{padding:28px 0 46px}.gallery article{isolation:isolate}.long-section{padding-top:35px}
.sound-toggle{position:absolute;bottom:14px;right:14px;z-index:5;border:1px solid #80e5ff70;border-radius:30px;padding:10px 14px;font-size:14px;background:#08151fe8;color:#dcf8ff;backdrop-filter:blur(10px)}
.sound-toggle[aria-pressed="true"]{background:#7ee4ff;color:#05212e}.project-shot .card-info{bottom:67px;left:20px}.sample-note{padding:0 22px!important;font-size:14px;max-width:680px;margin:0 auto;line-height:1.7}
.video-layer video{width:100%;height:100%;object-fit:cover;display:block}.project-shot .video-layer{overflow:hidden}.project-shot .video-layer iframe{width:100%;height:100%}
#modal-media video{width:100%;height:100%;display:block;object-fit:contain}body.modal-open{overflow:hidden}
#project-modal .close{z-index:6}.brand small,.tools button,.nav-cta{font-size:14px}.steps p{font-size:16px}
@media(max-width:760px){.marquee-set{gap:24px;padding-right:24px}.gallery.short-form .marquee-set article{width:min(68vw,270px);flex-basis:min(68vw,270px)}.gallery:not(.short-form) .marquee-set article{width:min(84vw,440px);flex-basis:min(84vw,440px)}.carousel-controls{gap:8px}.carousel-controls button{padding:0 13px;min-height:44px}.sound-toggle{min-height:44px}.gallery{padding-bottom:38px}.long-section{padding-top:22px}h1{letter-spacing:-.045em}.badge{font-size:12px}.metrics span{font-size:12px}.contact-links{flex-wrap:wrap}header{max-width:calc(100vw - 28px)}.section{min-width:0}.sample-note{font-size:14px}}

.video-layer{opacity:0;transition:opacity .4s}.video-layer.playing{opacity:1}.project-shot:has(.video-layer:not(.playing)) .play-mark{opacity:1}

/* Griff: cleaner film previews and quieter interactive highlights. */
.profile-avatar{object-position:50% 42%}.project-shot:before{border-width:1px;border-color:#74dfff77;box-shadow:inset 0 0 12px #41d7ff12}.project-shot:focus-visible{outline-width:1px;outline-color:#74dfff88}
@media(hover:hover){.project-shot:hover{border-color:#74dfff70}}
.expand-hint{position:absolute;top:16px;right:16px;z-index:5;display:grid;place-items:center;width:38px;height:38px;border:1px solid #ffffff30;border-radius:50%;background:#06131d38;color:#fff;opacity:.38;transform:scale(.94);backdrop-filter:blur(6px);transition:opacity .3s,transform .3s,background .3s;pointer-events:none}.expand-hint svg{width:20px;height:20px}
.project-shot:hover .expand-hint,.project-shot:focus-visible .expand-hint{opacity:.95;transform:scale(1.06);background:#0b24386b}
.scroll-hint,.text-link{position:relative;display:inline-block;transition:color .25s,transform .3s,text-shadow .3s}
.scroll-hint:after,.text-link:after{content:'';position:absolute;left:0;right:0;bottom:-7px;height:1px;background:var(--accent);opacity:.8;transform:scaleX(.25);transition:transform .3s,opacity .3s;opacity:0}
.scroll-hint:hover,.scroll-hint:focus-visible{transform:translateY(3px);color:#d0f7ff;text-shadow:0 0 18px #41d7ff66}.text-link:hover,.text-link:focus-visible{transform:translateY(-2px);color:#d0f7ff;text-shadow:0 0 18px #41d7ff55}
.scroll-hint:hover:after,.scroll-hint:focus-visible:after,.text-link:hover:after,.text-link:focus-visible:after{transform:scaleX(1);opacity:.8}
.scroll-hint{animation:scroll-invitation 3.5s ease-in-out infinite}@keyframes scroll-invitation{0%,100%{translate:0 0}50%{translate:0 4px}}
#pointer-trail{z-index:2}main,footer{position:relative;z-index:3}.contact-status{min-height:24px;margin:18px 0 0;color:var(--accent-soft);font-size:14px}button.outline{cursor:pointer;min-width:165px}
@media(hover:none){.expand-hint{opacity:.72}}@media(max-width:760px){button.outline{min-width:0;padding:16px 25px}.expand-hint{width:34px;height:34px;top:12px;right:12px}.project-shot .shot-label{top:13px;left:12px;max-width:calc(100% - 64px)}}

/* Griff: smaller photo corners, no border; prevent incidental page selection. */
html,body,body *{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}img,a{-webkit-user-drag:none}img{pointer-events:none}
.profile-avatar,.brand:hover .profile-avatar{border:0;box-shadow:none;border-radius:6px}.profile-avatar{object-position:50% 42%}
#pointer-trail{position:fixed;inset:auto;width:256px;height:256px;z-index:2;pointer-events:none;will-change:transform,opacity;transition:opacity .45s ease-out}
@media(max-width:760px){.profile-avatar{border-radius:5px}.step-visual{height:78px;margin-bottom:18px}.step-icon{width:54px;height:54px}.step-icon svg{width:27px;height:27px}}

/* Large, cropped background icons; one palette and one step number per card. */
.steps article{overflow:hidden;text-align:left;min-height:232px;padding:28px 24px}
.steps article>.step-number{display:block;position:relative;z-index:2;margin:0 0 24px;width:auto;height:auto;background:none;border:0;border-radius:0;box-shadow:none;font-size:16px;line-height:1.3;font-weight:600;letter-spacing:.08em;color:var(--accent-soft);transform:none;font-variant-numeric:tabular-nums}
.steps article>.step-visual{position:absolute;inset:0;z-index:0;margin:0;height:auto;pointer-events:none;opacity:1}
.step-icon{position:absolute;right:-30px;bottom:-34px;width:180px;height:180px;display:block;transform:rotate(-12deg);color:var(--accent);opacity:.09;transition:opacity .25s ease}
.step-icon svg{display:block;width:100%;height:100%;stroke-width:1.25}
.steps article h3,.steps article p{position:relative;z-index:2}
.steps article.pointer-highlight .step-icon{opacity:.14}
.steps article.pointer-highlight>.step-number{transform:none;box-shadow:none}
@media(max-width:760px){.steps article{padding:24px 18px;min-height:230px}.step-icon{width:160px;height:160px;right:-30px;bottom:-24px}.profile-avatar{border-radius:5px}}
/* Anchor the bounded mouse trail to the viewport, above page surfaces. */
#pointer-trail{left:0;top:0;right:auto;bottom:auto;z-index:9998;width:256px;height:256px}

/* Playback stays in the carousel at the card's original size. */
.gallery article.is-active{z-index:6}.gallery article.is-active .project-shot{border-color:#79e3ff88;box-shadow:0 14px 36px #0007}.is-active .expand-hint{display:none}.project-shot .video-layer video,.project-shot .video-layer iframe{pointer-events:none}.project-shot:after{background:linear-gradient(180deg,#0001,transparent 32%,#0003)}
.inline-controls{position:absolute;left:12px;right:12px;bottom:12px;z-index:7;display:flex;align-items:center;gap:10px;padding:10px;border:1px solid #a3eaff25;border-radius:12px;background:#06131dee;opacity:0;pointer-events:none;transition:opacity .22s;transform:translateZ(1px)}
.is-active.controls-visible .inline-controls,.is-active.is-paused .inline-controls,.inline-controls:focus-within{opacity:1;pointer-events:auto}.inline-controls button{width:30px;height:34px;display:grid;place-items:center;flex-shrink:0;border:0;background:transparent;color:#e7faff;padding:3px;cursor:pointer}.inline-controls button svg{width:20px;height:20px}.inline-progress{flex:1;min-width:0}.inline-seek{display:block;width:100%;height:18px;margin:0;accent-color:#76dfff;cursor:pointer;touch-action:none}.inline-time{display:block;font-size:12px;line-height:1.5;color:#d3e6ed;text-align:left;font-variant-numeric:tabular-nums}
.films-heading{display:flex;align-items:center;justify-content:center;gap:18px;padding:0 22px}.films-heading h2{margin:18px 0}.master-volume{position:relative;z-index:10;flex-shrink:0}.master-volume>button{width:40px;height:40px;border-radius:50%;border:1px solid #41d7ff33;background:#0e1c27;color:#a4eaff;display:grid;place-items:center;padding:9px}.master-volume>button svg{width:22px;height:22px}.master-volume .sound-off{display:none}.master-volume>button[aria-pressed="true"] .sound-waves{display:none}.master-volume>button[aria-pressed="true"] .sound-off{display:block}
.volume-popup{position:absolute;top:calc(100% + 8px);left:50%;translate:-50% 0;display:flex;flex-direction:column;align-items:center;gap:9px;padding:14px 10px;border:1px solid #41d7ff38;border-radius:14px;background:#0b1722;opacity:0;visibility:hidden;transition:opacity .2s;box-shadow:0 12px 24px #0005}.master-volume:before{content:'';position:absolute;top:100%;left:0;right:0;height:12px}.master-volume:hover .volume-popup,.master-volume:focus-within .volume-popup{opacity:1;visibility:visible}#master-volume{writing-mode:vertical-lr;direction:rtl;width:22px;height:105px;accent-color:#75dfff;margin:0;cursor:pointer;touch-action:none}#master-volume-value{font-size:12px;line-height:1.2;color:#c9eefa;min-width:35px;text-align:center}
@media(max-width:760px){.films-heading{gap:12px}.films-heading h2{font-size:clamp(28px,7vw,40px)}.master-volume>button{width:38px;height:38px}.inline-controls{left:8px;right:8px;bottom:8px;gap:6px;padding:7px}.inline-controls button{height:36px}.inline-seek{height:24px}}

#custom-cursor.dragging{width:29px;height:32px;margin-left:-14px;margin-top:-17px}

/* Playback controls below the film, with space reserved in each row. */
.gallery{padding-bottom:112px}
.inline-controls{left:0;right:0;top:calc(100% + 12px);bottom:auto;gap:8px;padding:8px 10px;border-radius:12px;background:#0b1721;border-color:#a3eaff20}
.inline-controls .master-volume>button{width:32px;height:36px;border:0;background:transparent;border-radius:8px;padding:5px}
.inline-controls .volume-popup{top:auto;bottom:calc(100% + 9px)}
.inline-controls .master-volume:before{top:auto;bottom:100%;height:12px}
.inline-controls .inline-return{width:25px;color:#9bb3be}
.project-shot .shot-label{top:12px;left:12px;max-width:calc(100% - 64px);padding:4px 8px;border-radius:8px;background:#09131b59;backdrop-filter:blur(4px);color:#e1edf0c4;font-size:12px;line-height:1.2;letter-spacing:.02em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.scroll-hint{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:12px 22px}
.scroll-hint:after{left:22px;right:22px;bottom:8px}
.scroll-hint:hover,.scroll-hint:focus-visible{transform:none;color:var(--accent-soft);text-shadow:none;animation-play-state:paused}
@media(max-width:760px){.gallery{padding-bottom:108px}.inline-controls{gap:5px;padding:7px}.inline-controls button{height:40px}.inline-controls .master-volume>button{height:40px;width:30px}.inline-controls .inline-return{width:22px}.inline-time{font-size:12px}.project-shot .shot-label{top:10px;left:10px;padding:4px 7px}}

/* Hide the poster once playback starts, preventing colored seams behind the iframe. */
.project-shot>img{transition:opacity .4s ease,transform .5s ease}
.project-shot.video-playing>img{opacity:0;animation:none}
.project-shot .video-layer{inset:-1px;background:var(--panel)}

/* Full-bleed film; transparent vertical fades reveal the same page background. */
.hero{min-height:900px;padding:140px 25px 55px}
.hero-content{max-width:1200px;z-index:2}
.hero-content h1{margin-top:32px}
.hero-actions{margin-bottom:54px}
.scroll-hint{margin-top:42px}
.hero-video{inset:0}
.hero-background{inset:0;left:0;top:0;width:100%;height:100%;transform:none;object-fit:cover;object-position:center;opacity:.38}
.hero-video,.hero-background{-webkit-mask-image:linear-gradient(180deg,transparent,black 18%,black 76%,transparent);mask-image:linear-gradient(180deg,transparent,black 18%,black 76%,transparent)}
.hero.hero-video-playing .hero-video{opacity:.38}

/* The overlay leaves the page's geometry and section observers intact. */
.site-loader{position:fixed;inset:0;z-index:9000;background:#080b10;display:flex;align-items:center;justify-content:center;flex-direction:column;touch-action:none;overscroll-behavior:none;transition:opacity .55s ease,visibility .55s}
.loader-mark{width:min(440px,76vw);position:relative;animation:loader-breathe 2.4s ease-in-out infinite}
.loader-mark img{display:block;width:100%;height:auto;filter:drop-shadow(0 0 12px #41d7ff19)}
.loader-line{width:110px;height:1px;background:#41d7ff26;position:relative;overflow:hidden;margin-top:12px}
.loader-line:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,transparent,#8edfff,transparent);animation:loader-sweep 1.6s ease-in-out infinite}
.loader-caption{font-size:10px;letter-spacing:.36em;color:#8edfff99;margin-top:22px}
.site-loader.is-leaving{opacity:0;visibility:hidden;pointer-events:none}
.site-loader.is-leaving .loader-mark{animation:none;transition:transform .55s ease;transform:scale(1.04)}
@keyframes loader-breathe{0%,100%{opacity:.7;transform:translateY(2px)}50%{opacity:1;transform:translateY(-2px)}}
@keyframes loader-sweep{from{transform:translateX(-100%)}to{transform:translateX(100%)}}
.hero:before,.hero:after{content:none}
/* Four corner marks converge without moving the link itself. */
.scroll-hint:after{content:none}
.scroll-hint:before{content:'';position:absolute;inset:0;border-radius:0;background:linear-gradient(var(--accent),var(--accent)) left top/10px 1px no-repeat,linear-gradient(var(--accent),var(--accent)) left top/1px 10px no-repeat,linear-gradient(var(--accent),var(--accent)) right top/10px 1px no-repeat,linear-gradient(var(--accent),var(--accent)) right top/1px 10px no-repeat,linear-gradient(var(--accent),var(--accent)) left bottom/10px 1px no-repeat,linear-gradient(var(--accent),var(--accent)) left bottom/1px 10px no-repeat,linear-gradient(var(--accent),var(--accent)) right bottom/10px 1px no-repeat,linear-gradient(var(--accent),var(--accent)) right bottom/1px 10px no-repeat;opacity:0;transform:scale(1.2,1.4);transition:transform .3s ease,opacity .3s ease;pointer-events:none}
.scroll-hint:hover:before,.scroll-hint:focus-visible:before{opacity:.85;transform:scale(1)}
::selection{background:transparent;color:inherit}
@media(max-width:760px){.hero{min-height:780px;padding:130px 22px 45px}.hero-actions{margin-bottom:42px}.scroll-hint{margin-top:34px}}
