.portfolio-curve-section{--screen-w:min(52vw, 900px);--screen-aspect:1024 / 589;color:#0f172a;background:radial-gradient(70% 45% at 50% -5%,#2563eb09,#0000 55%),radial-gradient(40% 30% at 78% 40%,#2563eb06,#0000 50%),linear-gradient(#fff 0%,#f8fbff 100%);padding:clamp(3.75rem,7vw,5.75rem) 1.25rem clamp(3.25rem,6vw,5rem);position:relative;overflow:clip visible}.portfolio-bg-orb{pointer-events:none;filter:blur(48px);opacity:.22;border-radius:999px;position:absolute}.portfolio-bg-orb-one{background:#2563eb14;width:420px;height:420px;top:80px;left:6%}.portfolio-bg-orb-two{background:#7c3aed0f;width:300px;height:300px;bottom:180px;right:10%}.portfolio-header{z-index:2;max-width:42rem;margin:0 auto 2.5rem;position:relative}.curve-shell{max-width:1380px;margin:0 auto;padding:0 4.5rem;position:relative;overflow:visible}.curve-stage{min-height:calc(var(--screen-w) / (1024 / 589) + 120px);perspective:1400px;transform-style:preserve-3d;place-items:center;display:grid;position:relative;overflow:visible}.portfolio-screen{width:var(--screen-w);aspect-ratio:var(--screen-aspect);transform-origin:50%;transform-style:preserve-3d;backface-visibility:hidden;cursor:pointer;will-change:transform, opacity;background:0 0;border:none;transition:transform .46s cubic-bezier(.22,1,.36,1),opacity .46s;position:absolute}.portfolio-screen.is-active{cursor:default}.portfolio-screen:not(.is-active) .portfolio-image-wrap{box-shadow:0 12px 28px #0f172a14}.portfolio-image-wrap{width:100%;height:100%;aspect-ratio:var(--screen-aspect);background:#f8fafc;border:1px solid #0f172ae6;border-radius:32px;transition:box-shadow .46s;position:relative;overflow:hidden;box-shadow:0 20px 48px #0f172a1f}.portfolio-screen.is-active .portfolio-image-wrap{box-shadow:0 24px 56px #0f172a24}.portfolio-image{object-fit:contain;object-position:center}.mockup-ui{position:absolute;inset:0}.mockup--catering{background:linear-gradient(#2a1810 0%,#1a100c 100%)}.mockup--catering .mockup-ui:before{content:"";background:linear-gradient(135deg,#dc8c3c59,#b4502833),radial-gradient(circle at 70% 30%,#ffc87840,#0000 50%);height:48%;position:absolute;top:0;left:0;right:0}.mockup--catering .mockup-ui:after{content:"";opacity:.08;background:linear-gradient(#fff 0 0) 0 0/32% 28% no-repeat,linear-gradient(#fff 0 0) 36% 0/32% 28% no-repeat,linear-gradient(#fff 0 0) 72% 0/28% 28% no-repeat,linear-gradient(#fff 0 0) 0 38%/48% 24% no-repeat,linear-gradient(#fff 0 0) 52% 38%/48% 24% no-repeat;border-radius:4px;height:38%;position:absolute;bottom:12%;left:10%;right:10%}.mockup--glass{background:linear-gradient(#141c28 0%,#0c121c 100%)}.mockup--glass .mockup-ui:before{content:"";background:linear-gradient(135deg,#78a0c833,#5078a014);border:1px solid #a0c8f01f;border-radius:6px;height:36%;position:absolute;top:8%;left:8%;right:8%}.mockup--glass .mockup-ui:after{content:"";background:linear-gradient(#a0c8f01f 0 0) 0 0/100% 1px no-repeat,linear-gradient(#ffffff0f 0 0) 0 18%/55% 22% no-repeat,linear-gradient(#ffffff0a 0 0) 0 48%/40% 14% no-repeat,linear-gradient(#ffffff0a 0 0) 0 68%/70% 10% no-repeat,linear-gradient(#a0c8f014 0 0) 62% 18%/36% 55% no-repeat;height:42%;position:absolute;bottom:10%;left:8%;right:8%}.mockup--landing{background:linear-gradient(#0e1624 0%,#0a1018 100%)}.mockup--landing .mockup-ui:before{content:"";width:52%;height:14%;box-shadow:0 22% 0 0 #ffffff0d, 0 44% 0 0 #ffffff0a;background:#ffffff1a;border-radius:3px;position:absolute;top:10%;right:8%}.mockup--landing .mockup-ui:after{content:"";background:linear-gradient(#64b4ff26 0 0) 0 0/100% 28% no-repeat,linear-gradient(#ffffff0f 0 0) 0 38%/100% 12% no-repeat,linear-gradient(#ffffff0f 0 0) 0 56%/100% 12% no-repeat,linear-gradient(#ffffff0a 0 0) 0 74%/60% 18% no-repeat;border:1px solid #64b4ff1f;border-radius:6px;width:38%;height:55%;position:absolute;bottom:12%;left:8%}.mockup--ecommerce{background:#faf8f6}.mockup--ecommerce .mockup-ui:before{content:"";background:#fff;border-bottom:1px solid #0000000f;height:14%;position:absolute;top:0;left:0;right:0}.mockup--ecommerce .mockup-ui:after{content:"";opacity:.9;background:linear-gradient(#e8e4e0 0 0) 0 0/48% 46% no-repeat,linear-gradient(#e8e4e0 0 0) 52% 0/48% 46% no-repeat,linear-gradient(#e8e4e0 0 0) 0 52%/48% 46% no-repeat,linear-gradient(#e8e4e0 0 0) 52% 52%/48% 46% no-repeat;border-radius:4px;position:absolute;inset:20% 6% 8%}.mockup--dashboard{background:linear-gradient(#0c1018 0%,#080c14 100%)}.mockup--dashboard .mockup-ui:before{content:"";background:#ffffff08;border-left:1px solid #ffffff0d;width:22%;position:absolute;top:0;bottom:0;right:0}.mockup--dashboard .mockup-ui:after{content:"";background:linear-gradient(#50a0ff1f 0 0) 0 0/100% 18% no-repeat,linear-gradient(#ffffff0d 0 0) 0 26%/48% 22% no-repeat,linear-gradient(#ffffff0d 0 0) 52% 26%/48% 22% no-repeat,linear-gradient(#10b98126 0 0) 0 56%/30% 8% no-repeat,linear-gradient(#ffffff0a 0 0) 0 70%/100% 28% no-repeat;border-radius:4px;position:absolute;inset:10% 28% 10% 6%}.curve-nav{z-index:130;color:#334155;cursor:pointer;background:#fffffff5;border:1px solid #e8edf3;border-radius:1rem;justify-content:center;align-items:center;width:2.75rem;height:2.75rem;font-size:1.35rem;line-height:1;transition:background .22s,border-color .22s,color .22s,transform .22s,box-shadow .22s;display:inline-flex;position:absolute;top:50%;transform:translateY(-50%);box-shadow:0 1px 2px #0f172a08,0 8px 22px #0f172a0f}.curve-nav:hover{color:#0f172a;background:#fff;border-color:#dbe3ec;transform:translateY(calc(-50% - 1px));box-shadow:0 1px 2px #0f172a0a,0 12px 28px #0f172a14}.curve-nav:focus-visible{outline-offset:2px;outline:2px solid #78aae6a6}.curve-nav-prev{right:0}.curve-nav-next{left:0}.curve-dots{justify-content:center;align-items:center;gap:8px;max-width:1240px;margin:1.25rem auto 0;display:flex}.curve-dot{cursor:pointer;background:#cbd5e1;border:none;border-radius:999px;width:6px;height:6px;padding:0;transition:width .28s,background .28s,transform .28s}.curve-dot.is-active{background:linear-gradient(90deg,#2563eb,#7c3aed);width:22px}.curve-dot:focus-visible{outline-offset:2px;outline:2px solid #78aae6a6}.curve-info{text-align:center;max-width:640px;margin:2rem auto 0;padding:0 1rem;animation:.48s cubic-bezier(.16,1,.3,1) curve-info-in}@keyframes curve-info-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.curve-info__label{letter-spacing:.12em;text-transform:uppercase;color:#2563eb;margin-bottom:8px;font-size:11px;font-weight:700;display:block}.curve-info__title{letter-spacing:-.025em;color:#0f172a;margin:0;font-size:clamp(1.35rem,3vw,1.75rem);font-weight:800}.curve-info__type{color:#64748b;margin:6px 0 0;font-size:.8125rem;font-weight:600}.curve-info__desc{color:#64748b;max-width:520px;margin:10px auto 0;font-size:.9375rem;line-height:1.7}.curve-info__tags{flex-wrap:wrap;justify-content:center;gap:6px;margin-top:16px;display:flex}.curve-info__tags span{color:#475569;background:#f8fafc;border:1px solid #e2e8f0;border-radius:999px;padding:5px 11px;font-size:11px;font-weight:600}.curve-info__cta{color:#fff;background:linear-gradient(135deg,#2563eb 0%,#1d4ed8 100%);border-radius:999px;align-items:center;gap:8px;margin-top:20px;padding:11px 20px;font-size:.875rem;font-weight:700;text-decoration:none;transition:transform .22s,box-shadow .22s;display:inline-flex}.curve-info__cta:hover{transform:translateY(-1px);box-shadow:0 8px 28px #2563eb38}.portfolio-curve-fallback{gap:2.5rem;max-width:min(52vw,900px);margin:0 auto;padding-inline:1rem;display:grid}.portfolio-curve-fallback__item{border-bottom:1px solid #e2e8f0;gap:1.5rem;padding-bottom:2rem;display:grid}@media (max-width:980px){.curve-shell{padding:0 3.5rem}.portfolio-curve-section{--screen-w:min(58vw, 820px)}}@media (max-width:760px){.portfolio-curve-section{--screen-w:92vw;padding:4rem .75rem 3.5rem}.portfolio-header{margin-bottom:1.5rem;padding-inline:.5rem}.portfolio-header p{font-size:.9375rem}.curve-shell{padding:0 2.75rem}.portfolio-image-wrap{border-radius:24px}.curve-nav{border-radius:.875rem;width:2.5rem;height:2.5rem;font-size:1.2rem}.curve-nav-prev{right:0}.curve-nav-next{left:0}.curve-info{text-align:right;margin-top:1.75rem}.curve-info__tags{justify-content:flex-start}.curve-info__desc{margin-inline:0}}@media (prefers-reduced-motion:reduce){.portfolio-screen,.curve-nav,.curve-dot,.curve-info__cta,.curve-info{transition:none;animation:none}}
