.portfolio-theme{--red:#f32735}.portfolio-theme:before{z-index:0;opacity:.45}.portfolio-theme:after{opacity:.025}.portfolio-theme .topbar{background:#080808df}.portfolio-theme main{position:relative}.filter-defs{position:absolute;width:0;height:0;overflow:hidden}.portfolio-stage{position:relative;height:180svh;min-height:1120px}.portfolio-sticky{height:100svh;min-height:620px;position:sticky;top:0;overflow:hidden;isolation:isolate}.portfolio-media{position:absolute;inset:0;z-index:-1;clip-path:inset(26% 42% 26% 42% round 100px);background:#111;will-change:clip-path}.project-layer{position:absolute;inset:0;opacity:0;overflow:hidden;transform:translate3d(0,0,0);will-change:opacity,clip-path,transform}.project-layer.is-current{opacity:1}.project-layer img{width:100%;height:100%;object-fit:cover;object-position:50% 50%;display:block;transform:scale(1.06);transition:transform 1.2s cubic-bezier(.16,1,.3,1)}.project-layer.is-current img{transform:scale(1)}.portfolio-media-shade{position:absolute;inset:0;z-index:3;background:linear-gradient(90deg,#000b,transparent 90%),linear-gradient(0deg,#000c,transparent 65%);opacity:var(--gallery-shade,0);pointer-events:none}.portfolio-scanlines{position:absolute;inset:0;background:repeating-linear-gradient(0deg,#0001 0,#0001 1px,transparent 1px,transparent 4px);opacity:.18;pointer-events:none;z-index:4}.portfolio-intro{height:100%;display:grid;grid-template-columns:1fr minmax(150px,.7fr) 1fr;gap:clamp(30px,5vw,100px);align-items:center;padding:90px max(var(--gutter),5vw) 100px;position:relative;will-change:opacity,transform}.portfolio-hello{position:relative}.portfolio-eyebrow{font-size:8px;font-weight:500;letter-spacing:.04em;line-height:1.4}.portfolio-hello .portfolio-eyebrow{color:#7f7f7f;max-width:180px;line-height:1.5;margin-bottom:25px}.portfolio-hello h1{font-size:clamp(28px,3.4vw,64px);font-weight:700;line-height:.92;letter-spacing:-.065em;white-space:nowrap}.portfolio-signature{display:block;font:400 clamp(30px,4.4vw,76px)/.9 Pixelcastle,Georgia,serif;color:var(--red);transform:rotate(-7deg);margin:20px -4px 0;position:relative;z-index:2}.portfolio-about{position:relative;max-width:300px}.portfolio-about>p{font-size:clamp(15px,1.6vw,23px);line-height:1.15;letter-spacing:-.035em;font-weight:600}.portfolio-about .intro-shortline{font-size:11px;font-weight:500;line-height:1.5;margin-top:22px;color:#8b8b8b;letter-spacing:0}.portfolio-explore{display:flex;align-items:center;justify-content:space-between;width:100%;border-bottom:1px solid #ffffff30;padding:15px 0;font-size:8px;letter-spacing:.035em;margin-top:23px;gap:15px}.portfolio-explore>span{font-size:23px;color:var(--red);transition:transform .3s}.portfolio-explore:hover>span{transform:translateY(5px)}.portfolio-doodle{color:var(--red);position:absolute;pointer-events:none;will-change:transform}.portfolio-doodle svg{display:block;width:100%;height:100%;overflow:visible}.intro-star{width:65px;left:-15px;bottom:-125px;transform:rotate(-12deg)}.intro-camera{width:100px;right:5px;top:-120px;transform:rotate(10deg)}.portfolio-intro-meta{position:absolute;bottom:23px;left:var(--gutter);right:var(--gutter);display:flex;align-items:center;justify-content:space-between;font-size:7px;color:#777;letter-spacing:.025em;transition:opacity .2s}.portfolio-intro-meta>span:nth-child(2){font-size:8px;color:#aaa}.portfolio-works{position:absolute;inset:0;z-index:4;padding:95px var(--gutter) 55px;opacity:0;visibility:hidden;pointer-events:none;will-change:opacity,transform;display:flex;flex-direction:column;align-items:start}.portfolio-works.is-ready{visibility:visible;pointer-events:auto}.works-heading{display:flex;align-items:center;gap:30px;justify-content:space-between;width:100%;margin-bottom:18px}.works-heading .portfolio-eyebrow{color:#ccc}.works-signature{font:400 clamp(30px,4vw,55px)/.9 Pixelcastle,Georgia,serif;color:var(--red);transform:rotate(-8deg);margin-right:18px}.project-list{display:flex;flex-direction:column;align-items:start;width:min(780px,80%);position:relative;padding:2px 20px 2px 0;isolation:isolate;max-height:calc(100svh - 235px);overflow-y:auto;overscroll-behavior-y:contain;scrollbar-width:thin;scrollbar-color:#ffffff30 transparent}.project-name{position:relative;display:flex;align-items:center;gap:16px;width:fit-content;max-width:100%;line-height:1.02;padding:2px 38px 4px 0;min-height:32px;text-align:left;color:#ffffff75;transition:color .3s;flex-shrink:0;outline-offset:2px!important}.project-name-text{display:inline-block;font-size:clamp(25px,3.3vw,57px);font-weight:700;letter-spacing:-.055em;line-height:1.02;position:relative;z-index:1;transform-origin:left center;transition:transform .35s cubic-bezier(.22,1,.36,1);white-space:nowrap}.project-index{font-size:8px;letter-spacing:0;font-weight:500;opacity:.55;width:17px;align-self:center;transition:color .25s}.project-name-arrow{position:absolute;right:0;font-size:20px;opacity:0;transform:translate(-10px,6px);transition:opacity .25s,transform .4s;color:var(--red)}.project-name.is-selected{color:#fff}.project-name.is-selected .project-index{color:var(--red);opacity:1}.project-name.is-selected .project-name-text{transform:translateX(8px)}.project-name.is-selected .project-name-arrow{opacity:1;transform:translate(0,0)}.project-name.is-inking .project-name-text{filter:url(#portfolio-ink)}.project-letter{display:inline-block;white-space:pre;transform:translateY(0);transition:transform .4s cubic-bezier(.16,1,.3,1);transition-delay:calc(var(--letter)*8ms)}.project-name.is-inking .project-letter{animation:name-ripple .55s cubic-bezier(.22,1,.36,1) both;animation-delay:calc(var(--letter)*8ms)}.active-sketch{position:absolute;left:14px;top:-12%;width:calc(100% - 18px);height:125%;color:var(--red);pointer-events:none;opacity:0;transform:rotate(-4deg);z-index:2;overflow:visible}.active-sketch path{stroke-dasharray:1300;stroke-dashoffset:1300;transition:stroke-dashoffset .6s cubic-bezier(.16,1,.3,1)}.project-name.is-selected .active-sketch{opacity:.85}.project-name.is-selected .active-sketch path{stroke-dashoffset:0}.project-detail{position:absolute;right:var(--gutter);bottom:70px;width:min(270px,30%);text-align:right}.project-category{font-size:9px;color:#c2c2c2;letter-spacing:.025em}.project-detail h2{font-size:15px;letter-spacing:-.025em;margin:9px 0 5px;font-weight:600;line-height:1.2}.project-year{font-size:8px;color:#929292}.project-play{display:flex;align-items:center;justify-content:center;gap:9px;width:100%;background:var(--red);font-size:9px;padding:14px 15px;margin-top:22px;transition:background .3s,transform .3s;color:white}.project-play:hover{background:#c81925;transform:translateY(-2px)}.play-triangle{display:inline-block;width:0;height:0;border-top:5px solid transparent;border-bottom:5px solid transparent;border-left:8px solid currentColor}.project-original{display:inline-block;margin-top:15px;color:#c8c8c8;font-size:8px;text-decoration:underline;text-underline-offset:4px}.project-counter{position:absolute;bottom:65px;left:var(--gutter);font-size:11px;display:flex;gap:10px;align-items:baseline}.project-counter>span:first-child{font-size:38px;letter-spacing:-.08em;font-weight:500}.project-counter>span:last-child{color:#aaa;font-size:10px}.works-hint{position:absolute;bottom:22px;left:var(--gutter);right:var(--gutter);padding-top:12px;border-top:1px solid #ffffff20;display:flex;justify-content:space-between;font-size:7px;letter-spacing:.04em;color:#aaa}.works-hint>span{font-size:14px;line-height:.8}.portfolio-outro{padding:75px var(--gutter) 62px;min-height:450px;position:relative;text-align:center;overflow:hidden;background:#080808;z-index:5;isolation:isolate}.portfolio-outro .portfolio-eyebrow{font-size:8px;color:#777}.portfolio-outro h2{font-weight:700;font-size:clamp(42px,6.8vw,105px);line-height:.9;letter-spacing:-.065em;margin-top:26px}.outro-signature{font:400 clamp(34px,5vw,77px)/1 Pixelcastle,Georgia,serif;color:var(--red);display:block;transform:rotate(-7deg);margin-top:-4px;position:relative;z-index:2}.portfolio-outro .seq-button{position:relative;z-index:2;width:220px;margin:26px auto 0}.outro-email{position:relative;z-index:2;display:inline-block;margin-top:17px;font-size:9px;color:#777}.outro-camera{width:160px;left:4%;top:55px;transform:rotate(-18deg);opacity:.6;z-index:-1}.outro-eye{width:140px;right:4%;top:75px;transform:rotate(17deg);opacity:.6;z-index:-1}.outro-star{width:90px;right:14%;bottom:45px;transform:rotate(20deg);opacity:.6;z-index:-1}.portfolio-theme footer{position:relative;z-index:5}.project-player{width:min(1000px,calc(100% - 32px));max-height:94svh;background:#080808;border:1px solid #ffffff30;padding:22px;overflow:auto}.player-topbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;gap:20px}.player-topbar .portfolio-eyebrow{color:#777;font-size:8px}.player-topbar h2{font-size:24px;letter-spacing:-.045em;margin:8px 0 0;line-height:1}.player-close{font-size:30px;width:40px;height:40px;line-height:1;flex-shrink:0}.player-frame{width:100%;aspect-ratio:16/9;background:#111;position:relative}.player-frame iframe{width:100%;height:100%;border:0;display:block}.player-bottom{display:flex;justify-content:space-between;align-items:center;gap:20px;padding-top:17px;font-size:9px;color:#777}.player-bottom a{color:#ddd;text-decoration:underline;text-underline-offset:4px}.portfolio-theme .work-preview{display:none!important}.portfolio-theme .loader-head{width:150px}
@keyframes name-ripple{0%{transform:translateY(0) rotate(0)}30%{transform:translateY(-5px) rotate(-3deg)}60%{transform:translateY(3px) rotate(2deg)}100%{transform:translateY(0) rotate(0)}}
@media(min-width:1600px){.portfolio-works{padding-top:110px;padding-bottom:70px}.works-heading{margin-bottom:25px}.project-name{padding-top:3px;padding-bottom:6px}.project-detail{bottom:90px}.project-list{max-height:calc(100svh - 260px)}}
@media(max-width:950px){.portfolio-intro{gap:30px;grid-template-columns:1fr 150px 1fr;padding-left:var(--gutter);padding-right:var(--gutter)}.portfolio-hello .portfolio-eyebrow{font-size:7px;max-width:145px}.portfolio-about>p{font-size:17px}.portfolio-about .intro-shortline{font-size:10px}.intro-camera{width:80px;top:-100px}.intro-star{width:52px;bottom:-100px;left:0}.portfolio-signature{font-size:36px}.project-name-text{font-size:31px}.project-list{width:90%;max-height:calc(100svh - 240px)}.project-name{padding-bottom:5px;min-height:36px}.project-detail{width:215px;bottom:66px}.project-detail h2{font-size:13px}.project-play{padding:12px 15px;margin-top:14px;font-size:8px}.project-category{font-size:8px}.portfolio-works{padding-top:95px}.works-heading{margin-bottom:24px}.portfolio-intro-meta{font-size:6px}.portfolio-intro-meta>span:nth-child(2){font-size:6px}.outro-camera{width:100px;left:1%;top:75px}.outro-eye{width:100px;right:1%;top:90px}.outro-star{width:60px;right:10%;bottom:55px}}
@media(max-width:650px){.portfolio-stage{height:175svh;min-height:1120px}.portfolio-sticky{min-height:620px}.portfolio-intro{display:block;padding:100px var(--gutter) 80px;text-align:center}.portfolio-hello{max-width:350px;margin:auto}.portfolio-hello .portfolio-eyebrow{font-size:7px;max-width:280px;margin:0 auto 16px}.portfolio-hello h1{font-size:37px;letter-spacing:-.06em;line-height:.91}.portfolio-signature{font-size:40px;margin:10px 0 0;line-height:1}.portfolio-window-space{height:230px;min-height:27svh}.portfolio-about{max-width:240px;margin:16px auto 0}.portfolio-about>p{font-size:14px;line-height:1.2}.portfolio-about .intro-shortline{display:none}.portfolio-explore{padding:12px 0;margin-top:12px;font-size:7px}.portfolio-explore>span{font-size:18px}.intro-star{width:40px;left:0;bottom:-180px}.intro-camera{width:60px;right:-40px;top:-165px}.portfolio-intro-meta{bottom:16px;font-size:6px}.portfolio-intro-meta>span:nth-child(2){font-size:6px;max-width:115px;text-align:center}.portfolio-works{padding:91px var(--gutter) 70px}.works-heading{margin-bottom:22px;gap:12px}.works-heading .portfolio-eyebrow{font-size:6px}.works-signature{font-size:30px;margin:0}.project-list{width:100%;padding-right:8px;max-height:calc(100svh - 300px);min-height:0}.project-name{gap:10px;min-height:33px;padding:3px 22px 5px 0}.project-name-text{font-size:clamp(21px,5.6vw,30px);line-height:1;letter-spacing:-.045em}.project-index{width:13px;font-size:6px}.project-name-arrow{font-size:16px}.project-name.is-selected .project-name-text{transform:translateX(4px)}.active-sketch{top:-8%;left:11px;height:120%;width:calc(100% - 10px)}.active-sketch path{stroke-width:1.4}.project-detail{right:var(--gutter);bottom:65px;width:62%;display:grid;grid-template-columns:1fr auto;gap:0 10px;align-items:end;text-align:right}.project-detail h2{font-size:10px;grid-column:1/-1;margin:6px 0}.project-category{font-size:7px;grid-column:1/-1}.project-year{font-size:6px;grid-column:2;grid-row:3}.project-play{grid-column:1/-1;margin-top:10px;min-height:35px;font-size:7px;padding:10px}.project-original{grid-column:1;grid-row:3;margin:0;font-size:6px;text-align:right}.project-counter{bottom:76px;font-size:9px;gap:7px}.project-counter>span:first-child{font-size:34px}.project-counter>span:last-child{font-size:8px}.works-hint{font-size:6px;bottom:18px}.portfolio-outro{min-height:390px;padding-top:65px;padding-bottom:50px}.portfolio-outro h2{font-size:40px}.portfolio-outro .portfolio-eyebrow{font-size:6px}.outro-signature{font-size:45px;margin-top:3px}.portfolio-outro .seq-button{width:200px;margin-top:22px}.outro-camera{width:75px;left:-18px;top:90px;opacity:.45}.outro-eye{width:72px;right:-15px;top:135px;opacity:.45}.outro-star{width:45px;right:20px;bottom:40px;opacity:.45}.outro-email{font-size:8px}.project-player{padding:16px;width:calc(100% - 20px)}.player-topbar h2{font-size:20px}.player-topbar .portfolio-eyebrow{font-size:6px}.player-bottom{font-size:7px;gap:15px}.player-bottom span{max-width:110px;text-align:right}.player-topbar{margin-bottom:16px}.project-player .player-frame{aspect-ratio:16/10}}
@media(max-height:740px) and (min-width:651px){.portfolio-works{padding-top:85px}.works-heading{margin-bottom:10px}.project-name-text{font-size:clamp(23px,2.8vw,39px)}.project-name{min-height:29px;padding:1px 35px 3px 0}.project-list{max-height:calc(100svh - 210px)}.project-detail{bottom:60px}.portfolio-hello h1{font-size:clamp(28px,3.4vw,56px)}}
@media(prefers-reduced-motion:reduce){.portfolio-stage{height:auto;min-height:0}.portfolio-sticky{position:relative;height:auto;min-height:100svh;padding-top:320px}.portfolio-intro{height:320px;position:absolute;inset:0 0 auto;opacity:1!important;transform:none!important;padding-top:95px;padding-bottom:20px}.portfolio-intro .portfolio-about,.portfolio-window-space,.intro-star,.intro-camera,.portfolio-intro-meta{display:none}.portfolio-intro{display:block;text-align:center}.portfolio-hello h1{font-size:40px}.portfolio-hello{margin:auto}.portfolio-signature{font-size:38px}.portfolio-media{clip-path:inset(0)!important;opacity:.3}.portfolio-works{position:relative;inset:auto;opacity:1!important;transform:none!important;visibility:visible;pointer-events:auto;min-height:700px;padding-top:0}.project-list{max-height:none!important}.project-name{color:#aaa}.project-name.is-selected{color:white}.project-name.is-inking .project-name-text{filter:none}.project-letter{animation:none!important}.portfolio-doodle{transform:none!important}.project-layer img{transition:none;transform:none}.active-sketch path{transition:none}}

/* Full-bleed playback, with local artwork retained until the first video frame. */
.portfolio-background-frame{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);border:0;pointer-events:none;opacity:0;transition:opacity .9s ease;max-width:none;display:block}
.project-layer.video-running .portfolio-background-frame{opacity:1}
.project-layer img{transform:scale(1.2)}
.project-layer.is-current img{transform:scale(1.16)}
.portfolio-edge-blur{position:absolute;inset:0;z-index:5;pointer-events:none;backdrop-filter:blur(15px);-webkit-backdrop-filter:blur(15px);mask-image:radial-gradient(ellipse 65% 65% at 50% 50%,transparent 38%,#0005 68%,#000 100%);-webkit-mask-image:radial-gradient(ellipse 65% 65% at 50% 50%,transparent 38%,#0005 68%,#000 100%)}
.portfolio-grain{position:absolute;inset:-20%;z-index:6;pointer-events:none;opacity:.2;mix-blend-mode:soft-light;background-repeat:repeat;background-size:160px 160px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160' viewBox='0 0 160 160'%3E%3Cfilter id='grain'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.88' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='white' filter='url(%23grain)' d='M0 0h160v160H0z'/%3E%3C/svg%3E");animation:film-grain .45s steps(3,end) infinite}
.project-name-text{animation:portfolio-type-drift 6.5s ease-in-out infinite;animation-delay:calc(var(--row,0)*-.55s)}
.project-name:nth-child(2n){--row:2}.project-name:nth-child(3n){--row:3}.project-name:nth-child(4n){--row:4}.project-name:nth-child(5n){--row:5}
.portfolio-signature,.works-signature,.outro-signature{animation:portfolio-signature-drift 7s ease-in-out infinite}
.works-signature{animation-delay:-2s}.outro-signature{animation-delay:-4s}
.portfolio-hello h1,.portfolio-outro h2{animation:portfolio-heading-drift 8s ease-in-out infinite}
.portfolio-outro h2{animation-delay:-3s}
.portfolio-about>p{animation:portfolio-heading-drift 9s ease-in-out infinite;animation-delay:-2s}
.portfolio-doodle svg{animation:portfolio-ink-breathe 5s ease-in-out infinite;transform-origin:center}
.portfolio-explore>span,.works-hint>span{animation:portfolio-arrow-drift 2.8s ease-in-out infinite}
.project-name.is-selected .active-sketch{animation:portfolio-sketch-drift 6s ease-in-out infinite}
@keyframes film-grain{0%,100%{transform:translate(0,0)}25%{transform:translate(2%,-2%)}50%{transform:translate(-2%,1%)}75%{transform:translate(1%,2%)}}
@keyframes portfolio-type-drift{0%,100%{translate:0 0}50%{translate:0 -1.7px}}
@keyframes portfolio-signature-drift{0%,100%{translate:0 0;rotate:-.6deg}50%{translate:0 -3.5px;rotate:.6deg}}
@keyframes portfolio-heading-drift{0%,100%{translate:0 0}50%{translate:0 -2px}}
@keyframes portfolio-ink-breathe{0%,100%{scale:1;opacity:.85}50%{scale:1.025;opacity:1}}
@keyframes portfolio-arrow-drift{0%,100%{translate:0 0}50%{translate:0 3px}}
@keyframes portfolio-sketch-drift{0%,100%{translate:0 0;rotate:-.5deg}50%{translate:1px -1px;rotate:.5deg}}
@media(max-width:650px){.portfolio-edge-blur{backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.portfolio-grain{opacity:.17}}
@media(prefers-reduced-motion:reduce){.portfolio-grain,.project-name-text,.portfolio-signature,.works-signature,.outro-signature,.portfolio-hello h1,.portfolio-outro h2,.portfolio-about>p,.portfolio-doodle svg,.portfolio-explore>span,.works-hint>span,.project-name.is-selected .active-sketch{animation:none!important;translate:none;rotate:none}.portfolio-background-frame{display:none}.project-layer.is-current img{transform:scale(1.16)}}
