html{scroll-behavior:smooth}.scroll-reveal{opacity:0;transform:translateY(24px);transition:opacity .6s ease-out,transform .6s ease-out}.scroll-reveal.revealed{opacity:1;transform:translateY(0)}.project-card.svelte-1uha8ag,.work-card.svelte-1uha8ag{background-clip:padding-box}.project-card.svelte-1uha8ag:before,.work-card.svelte-1uha8ag:before{content:"";position:absolute;inset:0;border-radius:8px;padding:1px;background:linear-gradient(135deg,#3b82f6,#8b5cf6,#ec4899,#f59e0b,#3b82f6,#8b5cf6);background-size:300% 300%;animation:svelte-1uha8ag-gradient-shift 8s ease infinite;-webkit-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 ease;pointer-events:none}.project-card.svelte-1uha8ag:hover:before,.work-card.svelte-1uha8ag:hover:before{opacity:1}.loader-bg.svelte-1uha8ag{background-color:hsl(var(--background));background-image:radial-gradient(ellipse at 50% 40%,rgba(139,92,246,.06) 0%,rgba(59,130,246,.03) 30%,transparent 70%);animation:svelte-1uha8ag-loader-bg-shift 4s ease-in-out infinite alternate}@keyframes svelte-1uha8ag-loader-bg-shift{0%{background-position:50% 40%}to{background-position:50% 60%}}.loader-grid.svelte-1uha8ag{background-image:linear-gradient(rgba(139,92,246,.03) 1px,transparent 1px),linear-gradient(90deg,rgba(139,92,246,.03) 1px,transparent 1px);background-size:60px 60px;animation:svelte-1uha8ag-loader-grid-fade 2s ease-out forwards}@keyframes svelte-1uha8ag-loader-grid-fade{0%{opacity:0}to{opacity:1}}.loader-initials.svelte-1uha8ag{font-size:clamp(7rem,22vw,14rem);font-weight:800;line-height:1;letter-spacing:-.04em;background:linear-gradient(135deg,#3b82f6,#8b5cf6,#ec4899,#f59e0b,#3b82f6);background-size:300% 300%;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;animation:svelte-1uha8ag-gradient-shift 6s ease infinite,svelte-1uha8ag-initials-breathe 3s ease-in-out infinite;filter:drop-shadow(0 0 40px rgba(139,92,246,.15))}@keyframes svelte-1uha8ag-initials-breathe{0%,to{opacity:.85}50%{opacity:1}}.loader-line.svelte-1uha8ag{background:linear-gradient(90deg,transparent,rgba(139,92,246,.4),transparent);animation:svelte-1uha8ag-line-expand 1.5s ease-out forwards}@keyframes svelte-1uha8ag-line-expand{0%{width:0;opacity:0}to{width:4rem;opacity:1}}.loader-dot.svelte-1uha8ag{width:5px;height:5px;border-radius:50%;background:#8b5cf666;animation:svelte-1uha8ag-dot-pulse 1.4s ease-in-out infinite}@keyframes svelte-1uha8ag-dot-pulse{0%,80%,to{opacity:.15;transform:scale(.8)}40%{opacity:1;transform:scale(1.2)}}.animated-gradient-border.svelte-1uha8ag{background:linear-gradient(135deg,#3b82f6,#8b5cf6,#ec4899,#f59e0b,#3b82f6,#8b5cf6);background-size:300% 300%;animation:svelte-1uha8ag-gradient-shift 8s ease infinite;border-radius:12px}.animated-gradient-patrick.svelte-1uha8ag,.animated-gradient-sydney.svelte-1uha8ag{background:linear-gradient(90deg,#3b82f6,#8b5cf6,#ec4899,#f59e0b,#3b82f6);background-size:300% 300%;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;animation:svelte-1uha8ag-gradient-shift 8s ease infinite,svelte-1uha8ag-pulse 4s ease-in-out infinite;filter:drop-shadow(0 0 4px rgba(59,130,246,.15))}@keyframes svelte-1uha8ag-gradient-shift{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes svelte-1uha8ag-gradient-shift-subtle{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes svelte-1uha8ag-pulse{0%,to{opacity:1}50%{opacity:.8}}@keyframes svelte-1uha8ag-pulse-subtle{0%,to{opacity:1}50%{opacity:.9}}@keyframes svelte-1uha8ag-stagger-in{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.link-icon.svelte-1uha8ag{transition:opacity .2s ease,transform .2s ease}.link-icon.svelte-1uha8ag svg:where(.svelte-1uha8ag){animation:svelte-1uha8ag-link-pulse 2s ease-in-out infinite}@keyframes svelte-1uha8ag-link-pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.1);opacity:.8}}.group.svelte-1uha8ag:hover .link-icon:where(.svelte-1uha8ag) svg:where(.svelte-1uha8ag){animation:svelte-1uha8ag-link-rotate .6s ease-in-out}@keyframes svelte-1uha8ag-link-rotate{0%{transform:rotate(0) scale(1)}50%{transform:rotate(-15deg) scale(1.1)}to{transform:rotate(0) scale(1)}}.group.svelte-1uha8ag:hover .project-title:where(.svelte-1uha8ag){background:linear-gradient(135deg,#c084fc,#a855f7,#9333ea,#7c3aed,#6366f1,#8b5cf6,#06b6d4);background-size:300% 300%;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;animation:svelte-1uha8ag-purple-gradient-shift 4s ease infinite;filter:drop-shadow(0 0 2px rgba(168,85,247,.3))}.contact-link.svelte-1uha8ag:hover{background:linear-gradient(135deg,#c084fc,#a855f7,#9333ea,#7c3aed,#6366f1,#8b5cf6,#06b6d4);background-size:300% 300%;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;animation:svelte-1uha8ag-purple-gradient-shift 4s ease infinite;filter:drop-shadow(0 0 2px rgba(168,85,247,.3))}.emphasized-text.svelte-1uha8ag{background:linear-gradient(135deg,#c084fc,#a855f7,#9333ea,#7c3aed,#6366f1,#8b5cf6,#06b6d4);background-size:300% 300%;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;animation:svelte-1uha8ag-purple-gradient-shift 4s ease infinite;filter:drop-shadow(0 0 3px rgba(168,85,247,.4));font-weight:600;position:relative;display:inline-block;transition:transform .2s ease}.emphasized-text.svelte-1uha8ag:hover{transform:scale(1.05);filter:drop-shadow(0 0 5px rgba(168,85,247,.6))}.purple-gradient-icon.svelte-1uha8ag{color:#a855f7;transition:color .3s ease;filter:drop-shadow(0 0 2px rgba(168,85,247,.4))}.dark .purple-gradient-icon.svelte-1uha8ag{color:#c084fc;filter:drop-shadow(0 0 3px rgba(192,132,252,.5))}@keyframes svelte-1uha8ag-purple-gradient-shift{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}.hero-scene-layer.svelte-1uha8ag{opacity:1;filter:blur(0px);transform:scale(1);transition:opacity .6s ease,filter .6s ease,transform .6s ease}.hero-scene-layer.is-hidden.svelte-1uha8ag{opacity:0;filter:blur(8px);transform:scale(.97);pointer-events:none}.project-image-reveal.svelte-1uha8ag{animation:svelte-1uha8ag-image-fade-in .5s ease-out forwards}.project-image-enter.svelte-1uha8ag{animation:svelte-1uha8ag-image-settle 1.8s ease-out forwards}@keyframes svelte-1uha8ag-image-fade-in{0%{opacity:0}to{opacity:1}}@keyframes svelte-1uha8ag-image-settle{0%{transform:scale(var(--initial-scale, 1.12)) translate(var(--offset-x, 0px),var(--offset-y, 0px))}to{transform:scale(1.02) translate(0)}}
