.projects-section{--project-enter:1;--rail-padding:max(44px,calc((100vw - 1440px)/2));position:relative;padding:108px 0 94px;background:#151517;border-top:1px solid #ffffff0d;overflow:clip}
.projects-container{width:calc(100% - 88px);max-width:1440px;margin:0 auto}
.projects-heading{display:grid;grid-template-columns:1.3fr .8fr;gap:80px;align-items:end;margin-bottom:42px}
.projects-heading h2{font:500 clamp(34px,3.1vw,58px)/1.13 var(--heading);letter-spacing:-.045em;margin:0}
.projects-heading h2>span{color:#928e88}
.projects-heading>p{font-size:17px;line-height:1.65;color:#aaa69f;margin:0;padding-bottom:4px;max-width:470px}
.projects-heading>p>span{color:var(--paper)}
.projects-toolbar{display:flex;justify-content:flex-end;align-items:center;gap:30px;margin-bottom:29px}
.projects-filters{display:flex;gap:7px;flex-wrap:wrap}
.projects-filters button{background:none;border:1px solid transparent;padding:10px 14px;border-radius:7px;font-size:13px;color:#aaa69f;white-space:nowrap;transition:color .2s,background .2s,border-color .2s}
.projects-filters button:hover{color:var(--paper);background:#ffffff04}
.projects-filters button.is-active{color:var(--paper);border-color:#ffffff27;background:#ffffff06}
.projects-controls{display:flex;align-items:center;gap:17px;flex-shrink:0}
.projects-controls button{background:none;border:0;padding:10px 0;color:var(--paper);font-size:13px;transition:color .2s,opacity .2s}
.projects-controls button:hover:not(:disabled){color:var(--orange)}
.projects-controls button:disabled{opacity:.28;cursor:default}
.projects-controls>span{width:1px;height:15px;background:var(--line)}
.project-track{display:flex;gap:24px;overflow-x:auto;overflow-y:hidden;padding:0 var(--rail-padding) 24px;scroll-padding-inline:var(--rail-padding);scroll-snap-type:x mandatory;scrollbar-width:none;cursor:grab;overscroll-behavior-x:contain;touch-action:pan-x pan-y pinch-zoom}
.project-track::-webkit-scrollbar{display:none}.project-track:focus-visible{outline:1px solid var(--orange);outline-offset:-3px}.project-track.is-dragging,.project-track.is-settling{scroll-snap-type:none}.project-track.is-dragging{cursor:grabbing;user-select:none}.project-track.is-dragging *{cursor:grabbing}
.project-card{flex:0 0 clamp(330px,34vw,520px);min-width:0;scroll-snap-align:start;position:relative;border:1px solid #ffffff1a;border-radius:12px;overflow:hidden;background:#19191c;transition:border-color .3s,box-shadow .3s}
.project-card[hidden]{display:none}.project-card:hover{border-color:#ffffff38}.project-card.is-current{border-color:#ffffff30}
.project-media{position:relative;width:100%;display:block;aspect-ratio:16/10;border:0;border-bottom:1px solid #ffffff13;padding:0;background:#1e1e21;overflow:hidden;text-align:left;cursor:zoom-in}
.project-media img{display:block;width:100%;height:100%;object-fit:cover;pointer-events:none;user-select:none}
.project-placeholder{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:radial-gradient(ellipse at 70% 30%,#ffffff05,transparent 70%),#1d1d20;pointer-events:none}
.project-placeholder:before,.project-placeholder:after{content:'';position:absolute;inset:18% 11%;border:1px solid #ffffff05;border-radius:6px;transform:rotate(-7deg)}
.project-placeholder:after{inset:23% 16%;transform:rotate(4deg);border-style:dashed}
.placeholder-mark{font:500 clamp(65px,6vw,110px)/1 var(--heading);letter-spacing:-.065em;color:transparent;-webkit-text-stroke:1px #ffffff28;position:relative;z-index:1;transform:translateY(6px);transition:transform .45s,color .45s}
.project-card:hover .placeholder-mark{transform:translateY(0);color:#ffffff05}
.placeholder-caption{position:absolute;bottom:18px;left:21px;font:10px var(--mono);color:#827e79;letter-spacing:.3px}
.project-media-tag{position:absolute;top:19px;left:21px;z-index:2;font:10px var(--mono);letter-spacing:.3px;color:#a4a099;max-width:calc(100% - 85px)}
.project-zoom{position:absolute;top:14px;right:15px;width:33px;height:33px;display:grid;place-items:center;border:1px solid #ffffff22;border-radius:50%;color:#c4bfb6;transition:background .2s,color .2s}
.project-zoom svg{width:18px;height:18px}.project-media:hover .project-zoom{background:var(--orange);color:var(--bg);border-color:var(--orange)}
.project-card-copy{padding:25px 25px 28px;min-height:177px}
.project-card h3{font:500 clamp(20px,1.45vw,25px)/1.3 var(--heading);letter-spacing:-.025em;color:var(--paper);margin:0 0 14px}
.project-card p{font-size:16px;line-height:1.6;color:#aaa69f;margin:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.projects-progress{height:1px;background:#ffffff16;margin:4px 0 37px;position:relative;overflow:hidden}
.projects-progress>span{position:absolute;top:0;bottom:0;left:0;width:var(--thumb-width,25%);transform:translateX(var(--thumb-offset,0px));background:var(--orange);transition:width .2s}
.projects-closing{display:grid;grid-template-columns:1fr .55fr;gap:100px;align-items:start}
.projects-closing>p:first-child{font-size:clamp(20px,1.6vw,26px);line-height:1.5;letter-spacing:-.02em;color:#aaa69f;margin:0;max-width:860px}
.projects-closing strong{font-weight:400;color:var(--paper)}
.projects-closing>p:last-child{font-size:15px;line-height:1.7;color:#928e88;margin:4px 0 0;max-width:350px}
.projects-section.has-motion .projects-heading h2{opacity:clamp(.15,calc(var(--project-enter)*1.7),1);transform:translateY(calc((1 - var(--project-enter))*40px))}
.projects-section.has-motion .projects-heading>p{opacity:clamp(.15,calc(var(--project-enter)*1.5),1);transform:translateY(calc((1 - var(--project-enter))*55px))}
.projects-section.has-motion .project-card{--card-entry:clamp(0,calc(var(--project-enter)*1.7 - var(--entry-order)*.1),1);opacity:calc(.15 + var(--card-entry)*.85);transform:perspective(1100px) translateY(calc((1 - var(--card-entry))*55px + var(--card-depth,0)*5px)) rotateY(calc(var(--card-depth,0)*-3deg));transform-origin:50% 50%;will-change:transform}
.projects-section.has-motion .projects-closing{opacity:calc(.25 + var(--closing-enter,1)*.75);transform:translateY(calc((1 - var(--closing-enter,1))*26px))}
.project-lightbox{width:min(1180px,calc(100% - 40px));max-height:94svh;padding:18px;border-radius:14px;background:#151517;border:1px solid #ffffff32}
.project-lightbox::backdrop{background:#050507df;backdrop-filter:blur(15px)}
.project-lightbox-header{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:0 2px 15px;color:#aaa69f;font:11px var(--mono)}
.project-lightbox-close{display:grid;place-items:center;width:36px;height:36px;background:#ffffff07;border:1px solid #ffffff26;border-radius:50%;font:400 26px/1 var(--body)}.project-lightbox-close:hover{background:#ffffff15}
.project-lightbox [id^="project-lightbox-media"]{position:relative;min-height:0;min-width:0;overflow:hidden;border:1px solid #ffffff12;border-radius:8px;background:#101014}
.project-lightbox [id^="project-lightbox-media"]>img{display:block;width:100%;height:100%;max-width:100%;max-height:100%;object-fit:contain;cursor:default}
.lightbox-placeholder{position:relative;aspect-ratio:16/9;max-height:60svh;min-height:240px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:22px;background:radial-gradient(ellipse at center,#ffffff05,transparent 70%)}
.lightbox-placeholder .placeholder-mark{font-size:clamp(70px,12vw,170px)}
.lightbox-placeholder>p{font:12px var(--mono);letter-spacing:.4px;color:#aaa69f;text-align:center;padding:0 20px;margin:0}
.project-lightbox-copy{padding:22px 10px 8px}.project-lightbox-copy h2{font:500 clamp(22px,2.1vw,32px)/1.25 var(--heading);letter-spacing:-.025em;margin:0 0 11px}.project-lightbox-copy p{font-size:16px;line-height:1.6;color:#aaa69f;margin:0;max-width:850px}
@media(max-width:1100px){.projects-section{--rail-padding:28px;padding:80px 0 70px}.projects-container{width:calc(100% - 56px)}.projects-heading{grid-template-columns:1.1fr 1fr;gap:40px}.projects-heading h2{font-size:37px}.projects-heading>p{font-size:15px}.project-card{flex-basis:410px}.project-card h3{font-size:22px}.project-card-copy{padding:23px;min-height:180px}.projects-toolbar{gap:16px}.projects-filters{gap:0}.projects-filters button{font-size:12px;padding:9px 10px}.projects-closing{gap:50px;grid-template-columns:1fr .65fr}}
@media(max-width:700px){.projects-section{--rail-padding:22px;padding:66px 0 60px}.projects-container{width:calc(100% - 44px)}.projects-heading{display:block;margin-bottom:27px}.projects-heading h2{font-size:clamp(31px,8.4vw,43px);line-height:1.14;margin-bottom:24px}.projects-heading>p{font-size:16px;line-height:1.65;max-width:none}.projects-toolbar{display:block;margin-bottom:21px}.projects-filters{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;padding-bottom:8px;margin-right:-22px;gap:4px}.projects-filters button{font-size:12px;padding:9px 11px}.projects-controls{justify-content:flex-end;gap:16px;margin-top:10px}.projects-controls button{font-size:12px;padding:6px 0}.project-track{gap:16px;padding-bottom:21px}.project-card{flex-basis:86vw;max-width:390px}.project-card-copy{padding:21px;min-height:190px}.project-card h3{font-size:21px;line-height:1.3}.project-card p{font-size:15px;line-height:1.6}.project-media-tag{left:17px;top:17px;font-size:9px}.placeholder-caption{left:17px;bottom:16px;font-size:9px}.placeholder-mark{font-size:75px}.projects-progress{margin:4px 0 29px}.projects-closing{display:block}.projects-closing>p:first-child{font-size:21px}.projects-closing>p:last-child{font-size:14px;margin-top:21px;max-width:none}.project-lightbox{width:calc(100% - 20px);max-height:94svh;padding:12px}.project-lightbox-copy{padding:20px 4px 7px}.project-lightbox-copy h2{font-size:24px}.project-lightbox-copy p{font-size:15px}.lightbox-placeholder{min-height:220px}.lightbox-placeholder>p{font-size:10px}}
@media(prefers-reduced-motion:reduce){.projects-section.has-motion .projects-heading h2,.projects-section.has-motion .projects-heading>p,.projects-section.has-motion .project-card,.projects-section.has-motion .projects-closing{opacity:1;transform:none;will-change:auto}.project-card,.placeholder-mark{transition:none}}
.projects-section{isolation:isolate;background:#101012}
.projects-field{position:absolute;inset:0;width:100%;height:100%;z-index:-1;pointer-events:none;opacity:.85}
.projects-section:before{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(ellipse at 17% 40%,#ff5a1f0b,transparent 55%),linear-gradient(180deg,#101012,transparent 19%,transparent 80%,#101012)}
.projects-heading{align-items:center;margin-bottom:40px}.projects-heading-main{min-width:0}
.projects-heading-main .projects-controls{justify-content:flex-start;margin-top:28px;gap:14px}
.projects-controls button{padding:11px 20px;border:1px solid #ffffff26;border-radius:30px;font-size:14px;background:#14141680;backdrop-filter:blur(12px);transition:background .25s,border-color .25s,color .25s,opacity .25s}
.projects-controls button:hover:not(:disabled){background:#ff5a1f18;border-color:#ff5a1f88;color:var(--paper)}.projects-controls>span{display:none}
.project-card{background:#17171ade;box-shadow:0 18px 50px #00000026;backdrop-filter:blur(14px)}.project-media{background:#1b1b1ed9}
.project-placeholder{background:radial-gradient(ellipse at 80% 10%,#ff5a1f0a,transparent 65%),linear-gradient(140deg,#222225aa,#17171ae8)}
.project-card.is-current{border-color:#ff8a543f;box-shadow:0 18px 50px #00000030,0 0 50px #ff5a1f05}
.project-card:hover .project-placeholder:before{transform:rotate(-3deg) scale(1.06);border-color:#ff5a1f24}.project-card:hover .project-placeholder:after{transform:rotate(7deg) scale(1.06)}.project-placeholder:before,.project-placeholder:after{transition:transform .8s,border-color .8s}
.projects-section.has-motion .projects-heading-main{opacity:clamp(.15,calc(var(--project-enter)*1.7),1);transform:translateY(calc((1 - var(--project-enter))*40px))}.projects-section.has-motion .projects-heading-main h2{opacity:1;transform:none}
@media(max-width:700px){.projects-heading-main .projects-controls{margin-top:23px;margin-bottom:27px}.projects-heading{margin-bottom:28px}.projects-controls button{font-size:13px;padding:10px 19px}.projects-heading h2{margin-bottom:0}.projects-field{opacity:.65}}
@media(prefers-reduced-motion:reduce){.projects-section.has-motion .projects-heading-main{opacity:1;transform:none}.project-placeholder:before,.project-placeholder:after{transition:none}}

/* Alternative: open project covers, without a surrounding card box. */
.projects-alternative{background:#111113;padding-top:85px;border-top:1px solid #ff5a1f55}
.projects-alternative:before{background:radial-gradient(ellipse at 85% 35%,#ff5a1f08,transparent 60%)}
.alternative-label{font:11px var(--mono);letter-spacing:.08em;color:var(--orange);margin-bottom:35px}
.projects-alternative .projects-heading h2>span{color:var(--paper)}
.projects-alternative .project-track{gap:42px;padding-top:20px;padding-bottom:48px}
.projects-alternative .project-card{--cover:#ff6b32;--ink:#32140b;flex-basis:clamp(360px,43vw,650px);background:none;border:0;border-radius:0;box-shadow:none;backdrop-filter:none;overflow:visible}
.projects-alternative .project-card:nth-child(3n+2){--cover:#a7bdb5;--ink:#192e2a}
.projects-alternative .project-card:nth-child(3n){--cover:#b3a4c5;--ink:#292033}
.projects-alternative .project-media{aspect-ratio:1.5;border:0;border-radius:3px;background:var(--cover);isolation:isolate;transition:transform .7s cubic-bezier(.2,.7,.2,1),border-radius .7s}
.projects-alternative .project-card:hover .project-media{transform:translateY(-8px);border-radius:3px 40px 3px 3px}
.projects-alternative .project-placeholder{background:radial-gradient(ellipse at 30% 0%,#ffffff30,transparent 65%),var(--cover);overflow:hidden}
.projects-alternative .project-placeholder:before{inset:-45% -10% 0 20%;border:1px solid currentColor;color:var(--ink);border-radius:50%;opacity:.17;transform:rotate(-25deg)}
.projects-alternative .project-placeholder:after{inset:-30% -30% 15% 5%;border:1px solid currentColor;color:var(--ink);border-radius:50%;opacity:.15;transform:rotate(-25deg)}
.projects-alternative .placeholder-mark{color:var(--ink);-webkit-text-stroke:0;font-size:clamp(85px,10vw,155px);letter-spacing:-.08em;transform:rotate(-8deg) translateY(5px);opacity:.9;transition:transform .9s cubic-bezier(.2,.7,.2,1)}
.projects-alternative .project-card:hover .placeholder-mark{color:var(--ink);transform:rotate(0deg) translateY(-3px)}
.projects-alternative .project-media-tag{color:var(--ink);left:28px;top:26px;font-size:11px}
.projects-alternative .placeholder-caption{color:var(--ink);opacity:.65;left:28px;bottom:24px;font-size:10px}
.projects-alternative .project-zoom{right:23px;top:20px;color:var(--ink);border-color:color-mix(in srgb,var(--ink) 30%,transparent);width:37px;height:37px}
.projects-alternative .project-media:hover .project-zoom{background:var(--ink);border-color:var(--ink);color:var(--cover)}
.projects-alternative .project-card-copy{padding:25px 0 0;min-height:153px;display:grid;grid-template-columns:1fr 1fr;gap:26px;align-items:start}
.projects-alternative .project-card h3{font-size:clamp(22px,1.8vw,29px);line-height:1.17;margin:0;letter-spacing:-.035em}
.projects-alternative .project-card p{font-size:15px;line-height:1.6;-webkit-line-clamp:3}
.projects-alternative .projects-progress{background:#ffffff1a;margin-top:0}
.projects-alternative.has-motion .project-card{transform:perspective(1400px) translateY(calc((1 - var(--card-entry))*75px + var(--card-depth,0)*10px)) rotateY(calc(var(--card-depth,0)*-5deg));}
@media(max-width:700px){.projects-alternative{padding-top:60px}.alternative-label{font-size:10px;margin-bottom:27px}.projects-alternative .project-track{gap:25px;padding-top:12px;padding-bottom:30px}.projects-alternative .project-card{flex-basis:85vw}.projects-alternative .project-card-copy{display:block;min-height:180px;padding-top:22px}.projects-alternative .project-card h3{font-size:25px;margin-bottom:13px}.projects-alternative .project-card p{font-size:15px}.projects-alternative .placeholder-mark{font-size:85px}.projects-alternative .project-media-tag{top:21px;left:22px;font-size:10px}.projects-alternative .placeholder-caption{left:22px;bottom:20px;font-size:9px}}
@media(prefers-reduced-motion:reduce){.projects-alternative.has-motion .project-card{transform:none}.projects-alternative .project-media,.projects-alternative .placeholder-mark{transition:none}.projects-alternative .project-card:hover .project-media{transform:none}}

/* More compact covers in the comparison variant. */
.projects-alternative .project-card{flex-basis:clamp(300px,31vw,450px)}
.projects-alternative .project-track{gap:30px}
.projects-alternative .project-media{aspect-ratio:1.6}
.projects-alternative .placeholder-mark{font-size:clamp(75px,7.5vw,115px)}
.projects-alternative .project-card-copy{display:block;padding-top:22px;min-height:170px}
.projects-alternative .project-card h3{font-size:clamp(22px,1.55vw,26px);margin-bottom:12px;line-height:1.23}
.projects-alternative .project-card p{-webkit-line-clamp:3}
@media(max-width:700px){.projects-alternative .project-card{flex-basis:76vw;max-width:340px}.projects-alternative .project-track{gap:22px}.projects-alternative .placeholder-mark{font-size:80px}.projects-alternative .project-card h3{font-size:22px}.projects-alternative .project-media-tag{left:20px;top:20px}.projects-alternative .placeholder-caption{left:20px;font-size:8px}}

.project-media.has-screenshot{background:#0c1420}
.project-media.has-screenshot img{object-fit:contain}
.project-media.has-screenshot .project-media-tag{display:none}
.project-media.has-screenshot .project-zoom{background:#101012df;color:var(--paper);border-color:#ffffff40;box-shadow:0 2px 14px #00000060}

/* Cinematic comparison: full bleed imagery, anchored overlay copy. */
.projects-cinematic{background:#131315;border-top:1px solid #ffffff1c;padding-top:82px}
.projects-cinematic:before{background:radial-gradient(ellipse at 50% 60%,#ff5a1f09,transparent 65%)}
.projects-cinematic .projects-heading h2>span{color:var(--paper)}
.projects-cinematic .project-track{gap:18px;padding-top:32px;padding-bottom:52px;align-items:center}
.projects-cinematic .project-card{--cover:#572918;--lift:0px;--scale:1;flex-basis:clamp(300px,24vw,370px);height:460px;border-radius:18px;border:1px solid #ffffff1b;background:#17171a;box-shadow:0 12px 30px #00000024;overflow:hidden;transition:transform .65s cubic-bezier(.2,.7,.2,1),box-shadow .65s,border-color .5s;isolation:isolate}
.projects-cinematic .project-card:nth-child(3n+2){--cover:#273d38}.projects-cinematic .project-card:nth-child(3n){--cover:#442d42}
.projects-cinematic .project-card.is-current{--lift:-15px;--scale:1.035;border-color:#ffffff4a;box-shadow:0 24px 42px #00000055}
.projects-cinematic .project-card:hover{--lift:-19px;--scale:1.035;border-color:#ff8a5470;box-shadow:0 24px 42px #00000060}
.projects-cinematic.has-motion .project-card{transform:translateY(calc((1 - var(--card-entry))*55px + var(--lift))) scale(var(--scale));opacity:calc(.2 + var(--card-entry)*.8);will-change:auto}
.projects-cinematic .project-media{position:absolute;inset:0;width:100%;height:100%;aspect-ratio:auto;border:0;background:#0d141e;text-align:left}
.projects-cinematic .project-media:after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,#05050820 0%,#07070900 30%,#08080c6b 51%,#09090ce8 73%,#09090c 100%);z-index:1}
.projects-cinematic .project-media img{object-fit:cover;object-position:18% top;transition:transform 1.2s cubic-bezier(.2,.7,.2,1);filter:saturate(.85)}
.projects-cinematic .project-card:hover .project-media img{transform:scale(1.045)}
.projects-cinematic .project-placeholder{background:radial-gradient(ellipse at 70% 15%,#ffffff14,transparent 55%),linear-gradient(155deg,var(--cover),#101012 95%)}
.projects-cinematic .placeholder-mark{position:absolute;top:30%;left:50%;transform:translate(-50%,-50%) rotate(-10deg);font-size:90px;letter-spacing:-.06em;-webkit-text-stroke:1px #ffffff52;color:#ffffff05}
.projects-cinematic .project-card:hover .placeholder-mark{transform:translate(-50%,-56%) rotate(-3deg);color:#ffffff09}
.projects-cinematic .project-placeholder:before{inset:-10% -65% 28% 18%;border-radius:50%;border-color:#ffffff17;transform:rotate(-25deg)}
.projects-cinematic .project-placeholder:after{inset:3% -45% 40% 0;border-radius:50%;border-color:#ffffff0f;transform:rotate(-25deg)}
.projects-cinematic .placeholder-caption{z-index:2;top:22px;bottom:auto;left:23px;font-size:9px;color:#fff8;letter-spacing:.02em}
.projects-cinematic .project-media-tag,.projects-cinematic .project-media.has-screenshot .project-media-tag{display:block;top:auto;bottom:161px;left:23px;z-index:3;max-width:calc(100% - 46px);font:9px var(--mono);letter-spacing:.02em;color:#eee9e2bb;border:1px solid #ffffff38;background:#15151533;backdrop-filter:blur(12px);border-radius:30px;padding:6px 10px}
.projects-cinematic .project-zoom{top:18px;right:18px;z-index:3;background:#11111470;color:var(--paper);border-color:#ffffff38}
.projects-cinematic .project-card-copy{position:absolute;bottom:0;left:0;right:0;z-index:2;padding:0 23px 24px;min-height:143px;pointer-events:none;display:flex;flex-direction:column;justify-content:flex-start}
.projects-cinematic .project-card h3{font:400 27px/1.08 var(--heading);letter-spacing:-.045em;margin:0 0 12px;color:#f4f0e9;max-width:100%}
.projects-cinematic .project-card p{font-size:13px;line-height:1.5;color:#c5c0b8;-webkit-line-clamp:3;max-width:100%}
.projects-cinematic .projects-progress{margin-top:5px}
@media(min-width:1800px){.projects-cinematic .project-card{height:490px}}
@media(max-width:700px){.projects-cinematic{padding-top:60px}.projects-cinematic .project-card{flex-basis:79vw;max-width:340px;height:440px}.projects-cinematic .project-track{gap:16px;padding-top:26px;padding-bottom:43px}.projects-cinematic .project-card h3{font-size:26px}.projects-cinematic .project-card-copy{padding:0 22px 23px}.projects-cinematic .project-card.is-current{--scale:1.015;--lift:-10px}.projects-cinematic .project-media-tag{left:22px}.projects-cinematic .alternative-label{line-height:1.6}}
@media(prefers-reduced-motion:reduce){.projects-cinematic.has-motion .project-card{transform:none;opacity:1}.projects-cinematic .project-card,.projects-cinematic .project-media img{transition:none}.projects-cinematic .project-card:hover .project-media img{transform:none}}
.projects-cinematic .project-media-tag,.projects-cinematic .project-media.has-screenshot .project-media-tag{top:22px;bottom:auto;max-width:calc(100% - 88px)}
.projects-cinematic .placeholder-caption{top:64px}

/* Equal resting cards; emphasis belongs only to hover. */
.projects-cinematic .project-card,
.projects-cinematic .project-card.is-current{--lift:0px;--scale:1;border:0;box-shadow:none}
.projects-cinematic.has-motion .project-card{transform:translateY(calc((1 - var(--card-entry))*55px + var(--lift))) scale(var(--scale))}
@media(hover:hover) and (pointer:fine){
 .projects-cinematic .project-card:hover{--lift:-16px;--scale:1.035;border:0;box-shadow:0 24px 42px #00000050;z-index:3}
}
@media(prefers-reduced-motion:reduce){.projects-cinematic.has-motion .project-card{transform:none}}
@media(hover:none),(pointer:coarse){.projects-cinematic .project-card:hover{--lift:0px;--scale:1;box-shadow:none;border:0}}

/* CRM cover treatment only; the full-size screenshot stays untouched. */
.projects-cinematic .project-card[data-project="voice-crm"] .project-media img{transform:rotate(-7deg) scale(1.2);transform-origin:50% 42%}
.projects-cinematic .project-card[data-project="voice-crm"]:hover .project-media img{transform:rotate(-7deg) scale(1.25)}
@media(prefers-reduced-motion:reduce){.projects-cinematic .project-card[data-project="voice-crm"]:hover .project-media img{transform:rotate(-7deg) scale(1.2)}}

/* Shared viewport fitting for all three gallery dialogs. */
.project-lightbox[open]{display:grid;grid-template-rows:auto minmax(0,1fr) auto;box-sizing:border-box;height:min(850px,92svh);max-height:92svh;overflow:hidden}
.project-lightbox-header{min-width:0;flex-shrink:0}
.project-lightbox-close{flex-shrink:0}
.project-lightbox .lightbox-placeholder{height:100%;max-height:none;min-height:0;aspect-ratio:auto}
.project-lightbox-copy{min-width:0}
@media(max-height:600px){.project-lightbox[open]{height:96svh;max-height:96svh;padding:10px}.project-lightbox-header{padding-bottom:8px}.project-lightbox-copy{padding:12px 4px 2px}.project-lightbox-copy h2{font-size:20px;margin-bottom:6px}.project-lightbox-copy p{font-size:13px;line-height:1.4}}

/* Selected gallery: cinematic covers over the original animated contour field. */
.projects-cinematic{background:#101012;border-top:1px solid #ffffff0d;padding-top:108px}
.projects-cinematic:before{background:radial-gradient(ellipse at 17% 40%,#ff5a1f0b,transparent 55%),linear-gradient(180deg,#101012,transparent 19%,transparent 80%,#101012)}
.projects-cinematic .placeholder-caption{top:24px}
@media(max-width:1100px){.projects-cinematic{padding-top:80px}}
@media(max-width:700px){.projects-cinematic{padding-top:66px}}

/* Text navigation, with no pill or surrounding stroke. */
.projects-controls button{padding:6px 0;border:0;border-radius:0;background:none;backdrop-filter:none;box-shadow:none;color:var(--paper);font-size:15px;text-decoration:underline;text-decoration-color:#ffffff40;text-underline-offset:7px;text-decoration-thickness:1px}
.projects-controls button:hover:not(:disabled){background:none;border:0;color:var(--orange);text-decoration-color:var(--orange)}
.projects-heading-main .projects-controls{gap:27px}
.projects-controls button:disabled{text-decoration-color:transparent}
/* Each cover reveals as it reaches the screen; hover remains independent. */
.projects-cinematic.reveal-enabled.has-motion .projects-heading-main,
.projects-cinematic.reveal-enabled.has-motion .projects-heading>p{opacity:0;transform:translateY(35px);filter:blur(5px);transition:opacity .85s,transform 1s cubic-bezier(.16,1,.3,1),filter .85s}
.projects-cinematic.reveal-enabled.has-motion .projects-heading>p{transition-delay:.13s}
.projects-cinematic.reveal-enabled.has-motion .projects-heading-main.has-arrived,
.projects-cinematic.reveal-enabled.has-motion .projects-heading>p.has-arrived{opacity:1;transform:translateY(0);filter:blur(0)}
.projects-cinematic.reveal-enabled.has-motion .project-card{opacity:0;translate:0 65px;filter:blur(5px);transform:translateY(var(--lift)) scale(var(--scale));transition:translate 1.05s cubic-bezier(.16,1,.3,1),opacity .8s,filter .9s,transform .65s cubic-bezier(.2,.7,.2,1),box-shadow .65s;transition-delay:var(--arrival-delay,0ms),var(--arrival-delay,0ms),var(--arrival-delay,0ms),0s,0s}
.projects-cinematic.reveal-enabled.has-motion .project-card.has-arrived{opacity:1;translate:0 0;filter:blur(0)}
@media(prefers-reduced-motion:reduce){.projects-cinematic.reveal-enabled.has-motion .project-card,.projects-cinematic.reveal-enabled.has-motion .projects-heading-main,.projects-cinematic.reveal-enabled.has-motion .projects-heading>p{opacity:1;translate:none;transform:none;filter:none;transition:none}}

/* Brief cover copy; the complete project story opens with the screenshot. */
.projects-cinematic .project-card-copy{min-height:200px}
.projects-cinematic .project-card p{display:block;overflow:visible;-webkit-line-clamp:unset;font-size:13px;line-height:1.5;text-wrap:pretty}
.project-read-more{align-self:flex-start;pointer-events:auto;border:0;background:none;padding:0;margin-top:14px;font:400 12px/1.5 var(--body);color:var(--paper);text-decoration:underline;text-decoration-color:#ffffff50;text-underline-offset:5px;cursor:pointer}
.project-read-more:hover{color:var(--orange);text-decoration-color:currentColor}
.project-read-more:focus-visible{outline:1px solid var(--orange);outline-offset:5px}
.projects-cinematic .project-media:after{background:linear-gradient(180deg,#05050815 0%,#07070900 24%,#08080c90 43%,#09090cf2 68%,#09090c 100%)}
.project-lightbox-copy p{max-width:100%;text-wrap:pretty}

/* Covers crop around the image centre; dialog images remain uncropped. */
.projects-cinematic .project-media img{object-position:center center}

/* The gallery ends with one full-width thought. */
.projects-closing{display:block}
.projects-closing>p:first-child{max-width:1100px}
.projects-closing>p:only-child{font-size:clamp(20px,1.6vw,26px);line-height:1.5;letter-spacing:-.02em;color:#aaa69f;margin:0;max-width:1100px}
