@import "https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,300;0,400;0,600;1,300;1,400;1,600&family=Syne:wght@400;600;700;800&family=DM+Mono:ital,wght@0,300;0,400;1,300&family=Inter:wght@300;400;500&display=swap";:root{--ink:#06060a;--ink-deep:#030305;--surface:#0d0d14;--surface-2:#12121c;--border:#ffffff0f;--border-bright:#ffffff26;--text-1:#f5f0ea;--text-2:#9a9592;--text-3:#5e5c5a;--ember:#e8824a;--ember-dim:#e8824a1f;--ember-glow:#e8824a59;--gold:#c9a96e;--gold-dim:#c9a96e1a;--font-display:"Cormorant Garamond", Georgia, serif;--font-ui:"Syne", sans-serif;--font-body:"Inter", sans-serif;--font-mono:"DM Mono", "Courier New", monospace;--space-xs:.5rem;--space-sm:1rem;--space-md:2rem;--space-lg:4rem;--space-xl:8rem;--space-2xl:12rem;--ease-out-expo:cubic-bezier(.16, 1, .3, 1);--ease-in-out:cubic-bezier(.87, 0, .13, 1);--duration-fast:.2s;--duration-base:.4s;--duration-slow:.7s;--radius-sm:4px;--radius-md:10px;--radius-lg:20px;--radius-pill:100px}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:auto;-webkit-text-size-adjust:100%}body{font-family:var(--font-body);background-color:var(--ink);color:var(--text-1);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:1rem;font-weight:300;line-height:1.6;overflow-x:hidden}body:before{content:"";z-index:9999;pointer-events:none;opacity:.035;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 512 512' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");background-size:256px 256px;position:fixed;inset:0}body:after{content:"";z-index:-1;pointer-events:none;background:radial-gradient(60% 50% at 15% 0,#e8824a12 0%,#0000 70%),radial-gradient(50% 40% at 85% 100%,#c9a96e0f 0%,#0000 70%);position:fixed;inset:0}a{color:inherit;text-decoration:none}ul{list-style:none}button{cursor:pointer;background:0 0;border:none;font-family:inherit}img,video{max-width:100%;display:block}.t-display{font-family:var(--font-display);letter-spacing:-.02em;font-weight:300;line-height:.95}.t-display-xl{font-size:clamp(4.5rem,11vw,10rem);font-family:var(--font-display);letter-spacing:-.03em;font-weight:300;line-height:.9}.t-display-lg{font-size:clamp(3rem,7vw,6.5rem);font-family:var(--font-display);letter-spacing:-.02em;font-weight:300;line-height:.95}.t-heading{font-family:var(--font-ui);letter-spacing:-.03em;font-weight:700;line-height:1}.t-body{font-family:var(--font-body);font-weight:300;line-height:1.7}.t-label{font-family:var(--font-mono);letter-spacing:.15em;text-transform:uppercase;color:var(--text-2);font-size:.72rem}.t-ember{background:linear-gradient(135deg, var(--ember), var(--gold));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.t-italic{font-style:italic}.container{width:100%;max-width:1320px;margin:0 auto;padding:0 clamp(1.5rem,5vw,4rem)}.container-fluid{width:100%;padding:0 clamp(1.5rem,5vw,4rem)}.section{padding:var(--space-xl) 0}.glass{-webkit-backdrop-filter:blur(24px);border:1px solid var(--border);background:#ffffff06}.btn{font-family:var(--font-ui);letter-spacing:.06em;text-transform:uppercase;border-radius:var(--radius-pill);transition:all var(--duration-base) var(--ease-out-expo);white-space:nowrap;align-items:center;gap:.6rem;padding:.9rem 2rem;font-size:.88rem;font-weight:600;display:inline-flex}.btn-ember{background:linear-gradient(135deg, var(--ember) 0%, #d4703a 100%);color:#fff;box-shadow:0 0 0 0 var(--ember-glow), inset 0 1px 0 #fff3}.btn-ember:hover{box-shadow:0 8px 32px var(--ember-glow), inset 0 1px 0 #fff3;transform:translateY(-3px)}.btn-ghost{color:var(--text-1);border:1px solid var(--border-bright);background:0 0}.btn-ghost:hover{background:#ffffff0a;border-color:#ffffff4d;transform:translateY(-3px)}.label-indexed{align-items:center;gap:.75rem;display:flex}.label-indexed:before{content:attr(data-index);font-family:var(--font-mono);color:var(--ember);letter-spacing:.1em;font-size:.65rem}.eyebrow{font-family:var(--font-mono);letter-spacing:.2em;text-transform:uppercase;color:var(--ember);align-items:center;gap:.75rem;margin-bottom:1.5rem;font-size:.72rem;display:inline-flex}.eyebrow:before{content:"";background:var(--ember);width:28px;height:1px;display:block}.divider{background:var(--border);width:100%;height:1px}.tag{font-family:var(--font-mono);letter-spacing:.08em;border-radius:var(--radius-pill);border:1px solid var(--border);color:var(--text-2);transition:all var(--duration-fast) ease;background:0 0;padding:.35rem .85rem;font-size:.72rem}.tag:hover{border-color:var(--ember);color:var(--ember)}@keyframes fadeUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes shimmer{0%{background-position:-200%}to{background-position:200%}}@keyframes drift{0%{transform:translateY(0)rotate(0)}33%{transform:translateY(-12px)rotate(.5deg)}66%{transform:translateY(-6px)rotate(-.3deg)}to{transform:translateY(0)rotate(0)}}@keyframes pulse-ember{0%{box-shadow:0 0 0 0 var(--ember-glow)}70%{box-shadow:0 0 0 18px #e8824a00}to{box-shadow:0 0 #e8824a00}}@keyframes lineGrow{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes scroll-ticker{0%{transform:translate(0)}to{transform:translate(-50%)}}.navbar{z-index:1000;transition:padding var(--duration-base) var(--ease-out-expo), background var(--duration-base) ease;padding:2rem 0;position:fixed;top:0;left:0;right:0}.navbar.scrolled{-webkit-backdrop-filter:blur(20px);border-bottom:1px solid var(--border);background:#06060ad1;padding:1.1rem 0}.nav-container{justify-content:space-between;align-items:center;display:flex}.logo{font-family:var(--font-display);letter-spacing:.02em;color:var(--text-1);align-items:center;gap:.4rem;font-size:1.45rem;font-style:italic;font-weight:600;display:flex;position:relative}.logo-dot{background:var(--ember);border-radius:50%;flex-shrink:0;width:6px;height:6px;animation:2.5s infinite pulse-ember;display:inline-block}.desktop-nav{align-items:center;gap:.25rem;display:flex}.nav-link{font-family:var(--font-ui);letter-spacing:.08em;text-transform:uppercase;color:var(--text-2);border-radius:var(--radius-pill);transition:color var(--duration-fast) ease, background var(--duration-fast) ease;padding:.5rem 1rem;font-size:.82rem;font-weight:600;position:relative}.nav-link:after{content:"";background:var(--ember);width:16px;height:1px;transition:transform var(--duration-base) var(--ease-out-expo);transform-origin:50%;position:absolute;bottom:0;left:50%;transform:translate(-50%)scaleX(0)}.nav-link:hover{color:var(--text-1)}.nav-link:hover:after{transform:translate(-50%)scaleX(1)}.nav-cta{margin-left:1rem}.mobile-toggle{color:var(--text-1);border-radius:var(--radius-sm);width:40px;height:40px;transition:background var(--duration-fast) ease;justify-content:center;align-items:center;display:none}.mobile-toggle:hover{background:#ffffff0f}.mobile-nav{display:none}@media (width<=768px){.desktop-nav{display:none}.mobile-toggle{display:flex}.mobile-nav{-webkit-backdrop-filter:blur(24px);border-bottom:1px solid var(--border);background:#06060af7;flex-direction:column;gap:.25rem;padding:2rem clamp(1.5rem,5vw,4rem);display:flex;position:absolute;top:100%;left:0;right:0}.mobile-nav-link{font-family:var(--font-ui);letter-spacing:.06em;text-transform:uppercase;color:var(--text-2);border-bottom:1px solid var(--border);transition:color var(--duration-fast) ease;padding:1rem 0;font-size:1rem;font-weight:600}.mobile-nav-link:hover{color:var(--text-1)}.mobile-nav-link:last-child{border-bottom:none}}.hero-section{flex-direction:column;justify-content:flex-end;min-height:100vh;padding-bottom:0;display:flex;position:relative;overflow:hidden}.hero-orb{filter:blur(60px);pointer-events:none;background:radial-gradient(circle at 40% 40%,#e8824a24 0%,#c9a96e0f 40%,#0000 70%);border-radius:50%;width:clamp(400px,55vw,900px);height:clamp(400px,55vw,900px);animation:12s ease-in-out infinite drift;position:absolute;top:-10%;right:-5%}.hero-grid{pointer-events:none;background-image:linear-gradient(#ffffff05 1px,#0000 1px),linear-gradient(90deg,#ffffff05 1px,#0000 1px);background-size:80px 80px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(80% 80%,#000 20%,#0000 100%);mask-image:radial-gradient(80% 80%,#000 20%,#0000 100%)}.hero-inner{z-index:2;padding-top:clamp(7rem,15vh,12rem);padding-bottom:clamp(5rem,10vh,8rem);position:relative}.hero-badge{font-family:var(--font-mono);letter-spacing:.18em;text-transform:uppercase;color:var(--ember);align-items:center;gap:.6rem;margin-bottom:2.5rem;font-size:.72rem;display:inline-flex}.hero-badge-dot{background:var(--ember);border-radius:50%;width:5px;height:5px}.hero-title{font-family:var(--font-display);letter-spacing:-.03em;color:var(--text-1);margin-bottom:clamp(2rem,4vw,3.5rem);font-size:clamp(4rem,10.5vw,10.5rem);font-weight:300;line-height:.92}.hero-title-greeting{color:var(--text-2);font-size:clamp(2rem,9vw,6.5rem);font-style:italic}.hero-title-em{color:var(--text-2);font-style:italic}.hero-title-name{background:linear-gradient(135deg, var(--text-1) 40%, var(--gold) 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin-top:-.15em;margin-bottom:-.15em;margin-left:-.4em;padding:.15em .4em;font-style:italic;display:inline-block}.hero-bottom{border-top:1px solid var(--border);grid-template-columns:1fr 1fr;align-items:flex-end;gap:4rem;padding-top:3rem;display:grid}.hero-desc{font-family:var(--font-body);color:var(--text-2);max-width:480px;font-size:clamp(1rem,1.5vw,1.15rem);font-weight:300;line-height:1.75}.hero-desc em{color:var(--text-1);font-style:italic;font-family:var(--font-display);font-size:1.1em}.hero-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:1rem;display:flex}.hero-scroll{z-index:2;opacity:.5;transition:opacity var(--duration-fast) ease;flex-direction:column;align-items:center;gap:.5rem;display:flex;position:absolute;bottom:3rem;left:50%;transform:translate(-50%)}.hero-scroll:hover{opacity:1}.hero-scroll-line{background:linear-gradient(to bottom, var(--ember), transparent);width:1px;height:48px;animation:lineGrow 2s var(--ease-out-expo) infinite;transform-origin:top}.hero-scroll-label{font-family:var(--font-mono);letter-spacing:.18em;text-transform:uppercase;color:var(--text-2);writing-mode:vertical-lr;margin-top:.5rem;font-size:.6rem}@media (width<=900px){.hero-bottom{grid-template-columns:1fr;gap:2.5rem}.hero-actions{justify-content:flex-start}}@media (width<=640px){.hero-title{letter-spacing:-.02em}.hero-scroll{display:none}}.about-section{background:var(--surface);position:relative;overflow:hidden}.about-inner{z-index:1;grid-template-columns:1fr 1.1fr;align-items:start;gap:clamp(4rem,8vw,8rem);display:grid;position:relative}.about-intro-label{font-family:var(--font-mono);letter-spacing:.2em;text-transform:uppercase;color:var(--ember);align-items:center;gap:.75rem;margin-bottom:2rem;font-size:.72rem;display:inline-flex}.about-intro-label:before{content:"";background:var(--ember);width:28px;height:1px;display:block}.about-heading{font-family:var(--font-display);letter-spacing:-.025em;color:var(--text-1);margin-bottom:2.5rem;font-size:clamp(3rem,5.5vw,5.5rem);font-weight:300;line-height:.95}.about-heading em{color:var(--text-2);font-style:italic}.about-body{font-family:var(--font-body);color:var(--text-2);max-width:520px;margin-bottom:1.5rem;font-size:1.05rem;font-weight:300;line-height:1.85}.about-body+.about-body{margin-top:-.5rem}.about-stats{border-top:1px solid var(--border);gap:3rem;margin-top:3.5rem;padding-top:2.5rem;display:flex}.stat{flex-direction:column;gap:.4rem;display:flex}.stat-num{font-family:var(--font-display);background:linear-gradient(135deg, var(--ember), var(--gold));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:3.5rem;font-weight:300;line-height:1}.stat-lbl{font-family:var(--font-mono);letter-spacing:.15em;text-transform:uppercase;color:var(--text-3);font-size:.7rem}.skills-list{flex-direction:column;display:flex}.skill-item{border-bottom:1px solid var(--border);cursor:default;transition:border-color var(--duration-fast) ease;border-radius:var(--radius-md);grid-template-columns:3rem 1fr auto;align-items:center;gap:1.5rem;margin:0 -1.5rem;padding:1.75rem 1.5rem;display:grid;position:relative}.skill-item:first-child{border-top:1px solid var(--border)}.skill-highlight-bg{border-radius:var(--radius-md);z-index:0;pointer-events:none;background:linear-gradient(90deg,#e8824a14 0%,#c9a96e05 100%);border:1px solid #e8824a26;position:absolute;inset:4px 0;box-shadow:inset 0 1px #ffffff08,0 10px 30px -10px #0000004d}.skill-highlight-bg:before{content:"";background:linear-gradient(to bottom, var(--ember), var(--gold));width:3px;height:70%;box-shadow:0 0 10px var(--ember-glow);border-radius:0 4px 4px 0;position:absolute;top:15%;left:0}.skill-index{font-family:var(--font-mono);color:var(--text-3);letter-spacing:.05em;z-index:1;transition:color var(--duration-fast) ease;font-size:.68rem;position:relative}.skill-item:hover .skill-index{color:var(--ember)}.skill-content{z-index:1;transition:transform var(--duration-base) var(--ease-out-expo);position:relative}.skill-item:hover .skill-content{transform:translate(8px)}.skill-name{font-family:var(--font-ui);color:var(--text-1);letter-spacing:-.01em;margin-bottom:.3rem;font-size:1rem;font-weight:700}.skill-desc{font-family:var(--font-body);color:var(--text-2);transition:color var(--duration-fast) ease;font-size:.85rem;font-weight:300;line-height:1.5}.skill-item:hover .skill-desc{color:var(--text-1)}.skill-icon{border-radius:var(--radius-md);border:1px solid var(--border);width:40px;height:40px;color:var(--text-3);transition:border-color var(--duration-fast) ease, color var(--duration-fast) ease, background-color var(--duration-fast) ease, transform var(--duration-fast) ease, box-shadow var(--duration-fast) ease;z-index:1;justify-content:center;align-items:center;display:flex;position:relative}.skill-item:hover .skill-icon{border-color:var(--ember);color:#fff;background-color:var(--ember-dim);box-shadow:0 4px 12px var(--ember-glow);transform:translateY(-2px)}@media (width<=1024px){.about-inner{grid-template-columns:1fr;gap:4rem}.about-heading{font-size:clamp(2.5rem,8vw,4rem)}}@media (width<=600px){.about-stats{flex-wrap:wrap;gap:2rem}.skill-item{grid-template-columns:2.5rem 1fr;margin:0 -1rem;padding:1.5rem 1rem}.skill-icon{display:none}}.logoloop{--logoloop-gap:32px;--logoloop-logoHeight:28px;--logoloop-fadeColorAuto:#fff;position:relative}.logoloop--vertical{height:100%;display:inline-block}.logoloop--scale-hover{padding-top:calc(var(--logoloop-logoHeight) * .1);padding-bottom:calc(var(--logoloop-logoHeight) * .1)}@media (prefers-color-scheme:dark){.logoloop{--logoloop-fadeColorAuto:#0b0b0b}}.logoloop__track{will-change:transform;-webkit-user-select:none;user-select:none;z-index:0;width:max-content;display:flex;position:relative}.logoloop--vertical .logoloop__track{flex-direction:column;width:100%;height:max-content}.logoloop__list{align-items:center;display:flex}.logoloop--vertical .logoloop__list{flex-direction:column}.logoloop__item{margin-right:var(--logoloop-gap);font-size:var(--logoloop-logoHeight);flex:none;line-height:1}.logoloop--vertical .logoloop__item{margin-right:0;margin-bottom:var(--logoloop-gap)}.logoloop__item:last-child{margin-right:var(--logoloop-gap)}.logoloop--vertical .logoloop__item:last-child{margin-right:0;margin-bottom:var(--logoloop-gap)}.logoloop__node{color:var(--text-2);align-items:center;transition:color .2s,transform .3s cubic-bezier(.4,0,.2,1);display:inline-flex}.logoloop__item:hover .logoloop__node{color:var(--ember)}.logoloop__item img{height:var(--logoloop-logoHeight);object-fit:contain;width:auto;image-rendering:-webkit-optimize-contrast;-webkit-user-drag:none;pointer-events:none;transition:transform .3s cubic-bezier(.4,0,.2,1);display:block}.logoloop--scale-hover .logoloop__item{overflow:visible}.logoloop--scale-hover .logoloop__item:hover img,.logoloop--scale-hover .logoloop__item:hover .logoloop__node{transform-origin:50%;transform:scale(1.2)}.logoloop__link{border-radius:4px;align-items:center;text-decoration:none;transition:opacity .2s;display:inline-flex}.logoloop__link:hover{opacity:.8}.logoloop__link:focus-visible{outline-offset:2px;outline:2px solid}.logoloop--fade:before,.logoloop--fade:after{content:"";pointer-events:none;z-index:10;width:clamp(24px,8%,120px);position:absolute;top:0;bottom:0}.logoloop--fade:before{background:linear-gradient(to right, var(--logoloop-fadeColor,var(--logoloop-fadeColorAuto)) 0%, #0000 100%);left:0}.logoloop--fade:after{background:linear-gradient(to left, var(--logoloop-fadeColor,var(--logoloop-fadeColorAuto)) 0%, #0000 100%);right:0}.logoloop--vertical.logoloop--fade:before,.logoloop--vertical.logoloop--fade:after{width:100%;height:clamp(24px,8%,120px);left:0;right:0}.logoloop--vertical.logoloop--fade:before{background:linear-gradient(to bottom, var(--logoloop-fadeColor,var(--logoloop-fadeColorAuto)) 0%, #0000 100%);top:0;bottom:auto}.logoloop--vertical.logoloop--fade:after{background:linear-gradient(to top, var(--logoloop-fadeColor,var(--logoloop-fadeColorAuto)) 0%, #0000 100%);top:auto;bottom:0}@media (prefers-reduced-motion:reduce){.logoloop__track{transform:translate(0,0)!important}.logoloop__item img,.logoloop__node{transition:none!important}}.projects-section{background:var(--ink);position:relative;overflow:hidden}.projects-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:2rem;margin-bottom:clamp(3rem,6vw,5rem);display:flex}.projects-heading{font-family:var(--font-display);letter-spacing:-.025em;font-size:clamp(3rem,6vw,5.5rem);font-weight:300;line-height:.95}.projects-heading em{color:var(--text-2);font-style:italic}.projects-count{font-family:var(--font-mono);letter-spacing:.15em;text-transform:uppercase;color:var(--text-3);align-self:flex-end;padding-bottom:.4rem;font-size:.72rem}.projects-list{flex-direction:column;gap:0;display:flex}.project-card{border-top:1px solid var(--border);cursor:pointer;transition:background var(--duration-base) ease;grid-template-columns:5fr 4fr;gap:0;display:grid;position:relative;overflow:hidden}.project-card:last-child{border-bottom:1px solid var(--border)}.project-highlight-bg{z-index:0;pointer-events:none;background:linear-gradient(90deg,#e8824a0f 0%,#c9a96e03 100%);position:absolute;inset:0}.project-highlight-bg:before{content:"";background:linear-gradient(to bottom, var(--ember), var(--gold));width:3px;box-shadow:0 0 10px var(--ember-glow);position:absolute;top:0;bottom:0;left:0}.project-text{z-index:1;flex-direction:column;justify-content:space-between;gap:2rem;padding:clamp(2rem,4vw,3.5rem) clamp(1.5rem,4vw,3.5rem) clamp(2rem,4vw,3.5rem) 1.5rem;display:flex;position:relative}.project-text>div:first-child{transition:transform var(--duration-base) var(--ease-out-expo)}.project-card:hover .project-text>div:first-child{transform:translate(8px)}.project-num{font-family:var(--font-mono);letter-spacing:.15em;color:var(--text-3);transition:color var(--duration-fast) ease;font-size:.68rem}.project-card:hover .project-num{color:var(--ember)}.project-title{font-family:var(--font-display);letter-spacing:-.02em;color:var(--text-1);transition:color var(--duration-fast) ease;font-size:clamp(2rem,3.5vw,3rem);font-weight:300;line-height:1}.project-card:hover .project-title{color:var(--ember)}.project-desc{font-family:var(--font-body);color:var(--text-2);max-width:440px;transition:color var(--duration-base) ease, transform var(--duration-base) var(--ease-out-expo);font-size:.95rem;font-weight:300;line-height:1.7}.project-card:hover .project-desc{color:var(--text-1);transform:translate(8px)}.project-meta{transition:transform var(--duration-base) var(--ease-out-expo);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.project-card:hover .project-meta{transform:translate(8px)}.project-tags{flex-wrap:wrap;gap:.5rem;display:flex}.project-tag{font-family:var(--font-mono);letter-spacing:.08em;border-radius:var(--radius-pill);border:1px solid var(--border);color:var(--text-3);transition:border-color var(--duration-fast) ease, color var(--duration-fast) ease, background-color var(--duration-fast) ease;background:0 0;padding:.3rem .75rem;font-size:.68rem}.project-card:hover .project-tag{color:var(--ember);background-color:#e8824a08;border-color:#e8824a4d}.project-links{flex-shrink:0;gap:.75rem;display:flex}.project-link{border:1px solid var(--border);width:38px;height:38px;color:var(--text-3);transition:all var(--duration-fast) ease;border-radius:50%;justify-content:center;align-items:center;display:flex}.project-card:hover .project-link{color:var(--text-2);border-color:var(--border-bright)}.project-link:hover{transform:scale(1.1);border-color:var(--ember)!important;color:#fff!important;background:var(--ember-dim)!important}.project-visual{aspect-ratio:4/3;background:var(--surface);position:relative;overflow:hidden}.project-img{object-fit:cover;filter:grayscale(30%)brightness(.7);width:100%;height:100%;transition:transform var(--duration-slow) var(--ease-out-expo), filter var(--duration-slow) ease;display:block}.project-card:hover .project-img{filter:grayscale(0%)brightness(.85);transform:scale(1.06)}.project-visual-overlay{pointer-events:none;background:linear-gradient(135deg,#06060a4d,#0000);position:absolute;inset:0}@media (width<=900px){.project-card{grid-template-columns:1fr}.project-text{padding:2.5rem 1.25rem}.project-visual{aspect-ratio:16/7}}@media (width<=600px){.projects-header{flex-direction:column;align-items:flex-start}.project-visual{aspect-ratio:16/9}}.contact-section{background:var(--surface);position:relative;overflow:hidden}.contact-orb{filter:blur(80px);pointer-events:none;background:radial-gradient(circle,#e8824a1a 0%,#c9a96e0a 50%,#0000 70%);border-radius:50%;width:70vw;height:40vw;position:absolute;bottom:-20%;left:50%;transform:translate(-50%)}.contact-inner{z-index:1;position:relative}.contact-layout{grid-template-columns:1fr 1.15fr;align-items:start;gap:clamp(4rem,8vw,8rem);display:grid}.contact-heading{font-family:var(--font-display);letter-spacing:-.025em;color:var(--text-1);margin-bottom:2rem;font-size:clamp(3rem,6vw,5.5rem);font-weight:300;line-height:.95}.contact-heading em{color:var(--text-2);font-style:italic}.contact-body{font-family:var(--font-body);color:var(--text-2);max-width:440px;margin-bottom:3rem;font-size:1.05rem;font-weight:300;line-height:1.8}.contact-details{flex-direction:column;gap:1.5rem;display:flex}.contact-item{flex-direction:column;gap:.25rem;display:flex}.contact-item-label{font-family:var(--font-mono);letter-spacing:.18em;text-transform:uppercase;color:var(--text-3);font-size:.68rem}.contact-item-value{font-family:var(--font-display);color:var(--text-1);transition:color var(--duration-fast) ease;font-size:1.3rem;font-weight:400}a.contact-item-value:hover{color:var(--ember)}.contact-form{border:1px solid var(--border);border-radius:var(--radius-lg);background:#ffffff06;flex-direction:column;gap:1.75rem;padding:clamp(2rem,4vw,3.5rem);display:flex}.form-field{flex-direction:column;gap:.6rem;display:flex}.form-field label{font-family:var(--font-mono);letter-spacing:.15em;text-transform:uppercase;color:var(--text-3);transition:color var(--duration-fast) ease;font-size:.7rem}.form-field:focus-within label{color:var(--ember)}.form-field input,.form-field textarea{border:1px solid var(--border);border-radius:var(--radius-md);width:100%;color:var(--text-1);font-family:var(--font-body);transition:border-color var(--duration-fast) ease, background var(--duration-fast) ease;resize:none;background:#00000040;outline:none;padding:1rem 1.25rem;font-size:.98rem;font-weight:300}.form-field input::placeholder,.form-field textarea::placeholder{color:var(--text-3)}.form-field input:focus,.form-field textarea:focus{border-color:var(--ember);background:#e8824a0a}.form-submit{justify-content:center;width:100%;margin-top:.5rem}.form-submit.success{background:linear-gradient(135deg,#34d399,#10b981);box-shadow:0 4px 24px #10b98159}.form-error{font-family:var(--font-mono);color:#fc8181;letter-spacing:.05em;margin-top:.25rem;font-size:.72rem}@media (width<=1024px){.contact-layout{grid-template-columns:1fr;gap:4rem}}@media (width<=600px){.contact-form{padding:1.75rem}}.footer{background:var(--ink-deep);border-top:1px solid var(--border);position:relative}.footer-ticker{border-bottom:1px solid var(--border);padding:1.25rem 0;overflow:hidden}.ticker-track{gap:0;width:max-content;animation:28s linear infinite scroll-ticker;display:flex}.ticker-item{white-space:nowrap;align-items:center;gap:1.5rem;padding:0 2.5rem;display:flex}.ticker-text{font-family:var(--font-display);color:var(--text-3);letter-spacing:.02em;font-size:1.1rem;font-style:italic;font-weight:300}.ticker-sep{color:var(--ember);flex-shrink:0;font-size:.5rem}.footer-body{padding:clamp(3rem,6vw,5rem) 0}.footer-inner{grid-template-columns:1.2fr 1fr;align-items:start;gap:clamp(3rem,8vw,6rem);display:grid}.footer-logo{font-family:var(--font-display);letter-spacing:-.02em;color:var(--text-1);margin-bottom:1.25rem;font-size:2.2rem;font-style:italic;font-weight:300;display:block}.footer-tagline{font-family:var(--font-body);color:var(--text-2);max-width:380px;margin-bottom:2rem;font-size:.95rem;font-weight:300;line-height:1.7}.footer-socials{gap:.75rem;display:flex}.social-btn{border:1px solid var(--border);width:42px;height:42px;color:var(--text-2);transition:all var(--duration-fast) ease;border-radius:50%;justify-content:center;align-items:center;display:flex}.social-btn:hover{border-color:var(--ember);color:var(--ember);background:var(--ember-dim);transform:translateY(-3px)}.spotify-label{font-family:var(--font-mono);letter-spacing:.18em;text-transform:uppercase;color:var(--text-3);align-items:center;gap:.6rem;margin-bottom:1rem;font-size:.68rem;display:flex}.spotify-label:before{content:"♪";color:var(--ember);font-style:normal}.footer-bar{border-top:1px solid var(--border);padding:1.5rem 0}.footer-bar-inner{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.footer-copy{font-family:var(--font-mono);color:var(--text-3);letter-spacing:.08em;font-size:.7rem}.footer-copy em{color:var(--ember);font-style:normal}.footer-made{font-family:var(--font-mono);color:var(--text-3);letter-spacing:.06em;font-size:.7rem}@media (width<=768px){.footer-inner{grid-template-columns:1fr;gap:3rem}}@media (width<=480px){.footer-bar-inner{flex-direction:column;align-items:flex-start;gap:.5rem}}.app-container{width:100%;overflow-x:hidden}
