.has-cursor,.has-cursor a,.has-cursor button{cursor:none}.cursor{display:none}.has-cursor .cursor{display:block}.cursor-dot,.cursor-ring{z-index:9999;pointer-events:none;border-radius:50%;position:fixed;top:0;left:0}.cursor-dot{background:var(--gold);width:7px;height:7px;transition:opacity .2s}.cursor-dot.is-hidden{opacity:0}.cursor-ring{border:1px solid color-mix(in srgb, var(--gold) 55%, transparent);width:34px;height:34px;transition:width .4s var(--ease-out), height .4s var(--ease-out), background .3s, border-color .3s, opacity .3s;place-items:center;display:grid}.cursor-ring span{font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--on-gold);opacity:0;font-size:.62rem;transition:opacity .2s}.cursor-ring.is-hover{border-color:var(--gold);width:56px;height:56px}.cursor-ring.is-label{background:var(--gold);border-color:var(--gold);width:88px;height:88px}.cursor-ring.is-label span{opacity:1}.cursor-hidden .cursor-dot,.cursor-hidden .cursor-ring{opacity:0}.preloader{z-index:9500;background:var(--green);color:var(--cream);padding:var(--gutter);align-items:flex-end;display:flex;position:fixed;inset:0}.preloader-inner{width:100%}.preloader-word{font-family:var(--display);letter-spacing:-.01em;font-size:clamp(6rem,26vw,26rem);line-height:.82;display:flex;overflow:hidden}.preloader-word span{display:block}.preloader-foot{font-family:var(--mono);letter-spacing:.2em;text-transform:uppercase;justify-content:space-between;align-items:flex-end;margin:1.5rem 0 1rem;font-size:.7rem;display:flex}.preloader-count{font-family:var(--display);letter-spacing:.02em;color:var(--gold);font-size:clamp(2.5rem,6vw,5rem);line-height:1}.preloader-bar{background:color-mix(in srgb, var(--cream) 20%, transparent);height:1px}.preloader-bar i{background:var(--gold);transform-origin:0;height:100%;display:block;transform:scaleX(0)}.hero{min-height:100svh;padding-top:calc(var(--nav-h) + 1.5rem);isolation:isolate;flex-direction:column;padding-bottom:0;display:flex;overflow:hidden}.hero-glow{z-index:-1;background:radial-gradient(circle, color-mix(in srgb, var(--green-2) 45%, transparent) 0%, transparent 60%);filter:blur(40px);opacity:.7;pointer-events:none;border-radius:50%;width:70vmax;height:70vmax;margin:-35vmax 0 0 -35vmax;position:absolute;top:50%;left:50%}:root.light .hero-glow{opacity:.35}.hero-top,.hero-bottom{font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);flex-wrap:wrap;justify-content:space-between;gap:1rem;font-size:.7rem;display:flex}.hero-name{font-family:var(--display);letter-spacing:-.01em;will-change:transform;margin-top:auto;font-size:clamp(4.6rem,21vw,24rem);font-weight:400;line-height:.8}.hero-row{display:flex}.hero-line{padding-top:.06em}.is-outline{color:#0000;-webkit-text-stroke:max(1px, .012em) var(--fg)}.hero-body{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:2rem;margin:clamp(1.5rem,3vw,2.5rem) 0 clamp(2rem,4vw,3rem);display:flex}.hero-desc{max-width:31rem;color:var(--muted);font-size:clamp(1rem,1.3vw,1.15rem);line-height:1.7}.hero-desc em,.about-copy em,.skills-intro em{font-family:var(--serif);color:var(--fg);font-size:1.12em;font-style:italic}.hero-cta{flex-wrap:wrap;gap:.75rem;display:flex}.hero-rule{background:var(--line-2);height:1px}.hero-bottom{align-items:center;padding:1.25rem 0}.hero-status,.hero-scroll{align-items:center;gap:.6rem;display:inline-flex}.hero-scroll i{background:var(--line-2);width:1px;height:22px;position:relative;overflow:hidden}.hero-scroll i:after{content:"";background:var(--gold);animation:drip 1.8s var(--ease-out) infinite;position:absolute;inset:0}@keyframes drip{0%{transform:translateY(-100%)}to{transform:translateY(100%)}}.marquee{border-block:1px solid var(--line);background:var(--green);color:var(--cream);padding:clamp(1.5rem,3vw,2.5rem) 0}.marquee-text{font-family:var(--display);letter-spacing:.01em;text-transform:uppercase;font-size:clamp(3rem,9vw,8rem);line-height:1}.marquee .is-outline{-webkit-text-stroke-color:var(--gold)}.marquee .velocity-track.is-outline{color:var(--gold)}.stack{flex-direction:column;gap:4vh;display:flex}.stack-card{top:calc(var(--nav-h) + .5rem + var(--i) * 14px);height:calc(100svh - var(--nav-h) - 2.5rem);min-height:560px;position:sticky}.stack-card-inner{background:radial-gradient(120% 90% at 85% 70%, color-mix(in srgb, var(--tint) 55%, transparent) 0%, transparent 60%), color-mix(in srgb, var(--tint) 16%, var(--bg-2));border:1px solid color-mix(in srgb, var(--tint) 30%, var(--line));transform-origin:50% 0;height:100%;color:var(--fg);border-radius:28px;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:2rem;padding:clamp(1.5rem,3.5vw,3.25rem);display:grid;position:relative;overflow:hidden}.stack-dim{opacity:0;pointer-events:none;background:#000;position:absolute;inset:0}.card-copy{z-index:1;flex-direction:column;min-width:0;display:flex;position:relative}.card-meta{font-family:var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--muted);border-bottom:1px solid color-mix(in srgb, var(--fg) 12%, transparent);justify-content:space-between;gap:1rem;padding-bottom:1rem;font-size:.68rem;display:flex}.card-meta span:first-child{white-space:nowrap}.card-title{font-family:var(--display);letter-spacing:-.005em;text-transform:uppercase;margin:auto 0 1.25rem;font-size:clamp(3.25rem,7.5vw,8.5rem);font-weight:400;line-height:.85}.card-desc{max-width:32rem;color:var(--muted);margin-bottom:1.5rem;font-size:.98rem;line-height:1.75}.card-copy .tags{margin-bottom:1.75rem}.card-link{font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;background:linear-gradient(var(--gold), var(--gold)) left bottom / 100% 1px no-repeat;transition:background-size .5s var(--ease-out), color .3s;align-self:flex-start;gap:.5rem;padding-bottom:.3rem;font-size:.74rem;text-decoration:none;display:inline-flex}.card-link:hover{color:var(--gold);background-position:100% 100%;background-size:0% 1px}.card-shots{justify-content:center;align-items:flex-end;min-height:0;margin-bottom:calc(-1*clamp(1.5rem,3.5vw,3.25rem));display:flex;position:relative}.phone{aspect-ratio:900/1950;height:84%;transition:transform .8s var(--ease-out);background:#0b0b0b;border:5px solid #0b0b0b;border-radius:clamp(18px,2.4vw,36px);flex-shrink:0;position:relative;overflow:hidden;box-shadow:0 30px 60px -20px #0009}.phone img{object-fit:cover;object-position:top;width:100%;height:100%}.phone-0,.phone-2{height:74%;margin-bottom:-4%}.phone-0{margin-right:-9%;transform:rotate(-8deg)}.phone-1{z-index:2}.phone-2{margin-left:-9%;transform:rotate(8deg)}.stack-card:hover .phone-0{transform:rotate(-12deg)translate(-10%)}.stack-card:hover .phone-1{transform:translateY(-4%)}.stack-card:hover .phone-2{transform:rotate(12deg)translate(10%)}.card-shots.is-browser{justify-content:flex-start;align-items:center;margin-bottom:0}.browser{width:100%;transition:transform .8s var(--ease-out);background:#0b0b0b;border:1px solid #222;border-radius:14px;flex-shrink:0;overflow:hidden;box-shadow:0 40px 80px -24px #000000b3}.stack-card:hover .browser{transform:translateY(-2%)}.browser-bar{background:#141414;border-bottom:1px solid #222;gap:6px;padding:10px 12px;display:flex}.browser-bar i{background:#333;border-radius:50%;width:9px;height:9px}.browser img{width:100%;height:auto}.index{margin-top:clamp(5rem,10vw,9rem)}.index-head{font-family:var(--mono);letter-spacing:.2em;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--line-2);justify-content:space-between;padding-bottom:1rem;font-size:.7rem;display:flex}.index-row{isolation:isolate;border-bottom:1px solid var(--line-2);grid-template-columns:3.5rem minmax(0,1.4fr) minmax(0,1fr) minmax(0,1fr) 2rem;align-items:center;gap:1rem;padding:clamp(1.25rem,2.4vw,2rem) 0;text-decoration:none;display:grid;position:relative}.index-row:before{content:"";inset:0 calc(var(--gutter) * -1);z-index:-1;background:var(--gold);transform-origin:bottom;transition:transform .5s var(--ease-out);position:absolute;transform:scaleY(0)}.index-row:hover:before,.index-row:focus-visible:before{transform:scaleY(1)}.index-row:hover,.index-row:focus-visible{color:var(--on-gold)}.index-num,.index-kind,.index-tags{font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;font-size:.7rem}.index-num{color:var(--gold)}.index-row:hover .index-num,.index-row:hover .index-kind,.index-row:hover .index-tags{color:var(--on-gold)}.index-kind,.index-tags{color:var(--muted);transition:color .3s}.index-title{font-family:var(--display);text-transform:uppercase;transition:transform .5s var(--ease-out);font-size:clamp(2rem,4.2vw,4rem);line-height:1}.index-row:hover .index-title{transform:translate(.75rem)}.index-arrow{transition:transform .5s var(--ease-out);justify-self:end;font-size:1.4rem}.index-row:hover .index-arrow{transform:rotate(45deg)}.index-thumb{display:none}.index-preview{z-index:120;pointer-events:none;aspect-ratio:16/10;visibility:hidden;border-radius:16px;width:clamp(280px,26vw,420px);position:fixed;top:0;left:0;overflow:hidden;box-shadow:0 30px 80px -20px #000000b3}.index-strip{height:100%}.index-frame{background:var(--bg-2);height:100%}.index-frame img{object-fit:cover;object-position:top;width:100%;height:100%}.index-fallback{background:radial-gradient(circle at 30% 20%, var(--green-2), var(--green) 70%);height:100%;color:var(--cream);flex-direction:column;justify-content:flex-end;gap:.5rem;padding:1.5rem;display:flex}.index-fallback span{font-family:var(--display);text-transform:uppercase;font-size:2.4rem;line-height:.9}.index-fallback small{font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--gold);font-size:.65rem}.about{background:var(--green);color:var(--cream)}.about .section-label{color:var(--gold)}.about-statement{max-width:1150px;margin:0 0 clamp(4rem,8vw,7rem)}.about-statement-text.scroll-reveal-text{font-family:var(--serif);letter-spacing:-.01em;font-size:clamp(2.4rem,7vw,7rem);font-style:italic;font-weight:400;line-height:1.02}.about-grid{grid-template-columns:1fr 1fr;align-items:start;gap:clamp(3rem,8vw,8rem);display:grid}.about-copy p{color:color-mix(in srgb, var(--cream) 72%, transparent);margin-bottom:1.25rem;font-size:1.05rem;line-height:1.85}.about-copy em{color:var(--cream)}.about-copy strong{font-family:var(--display);letter-spacing:.04em;color:var(--gold);font-size:1.25em;font-weight:400}.process-step{padding:1.5rem 0 2rem;position:relative}.process-line{background:color-mix(in srgb, var(--cream) 30%, transparent);height:1px;position:absolute;top:0;left:0;right:0}.process-text{grid-template-columns:3rem 1fr;column-gap:1rem;display:grid}.process-num{font-family:var(--mono);color:var(--gold);grid-row:span 2;padding-top:.6rem;font-size:.7rem}.process-text h3{font-family:var(--display);text-transform:uppercase;font-size:clamp(2rem,3.5vw,3rem);font-weight:400;line-height:1}.process-text p{color:color-mix(in srgb, var(--cream) 65%, transparent);margin-top:.4rem;font-size:.95rem}.skills-head{grid-template-columns:1.4fr 1fr;align-items:end;gap:3rem;margin-bottom:clamp(3rem,6vw,5rem);display:grid}.skills-head .section-head{margin-bottom:0}.skills-intro{color:var(--muted);max-width:30rem;font-size:1.05rem;line-height:1.8}.skills-grid{grid-template-columns:repeat(4,1fr);gap:2.5rem;display:grid}.skill-group{padding-top:1.5rem;position:relative}.skill-rule{background:var(--gold);height:1px;position:absolute;top:0;left:0;right:0}.skill-group h3{font-family:var(--display);text-transform:uppercase;margin-bottom:1.25rem;font-size:clamp(1.8rem,2.6vw,2.4rem);font-weight:400;line-height:1}.skill-group sup{font-family:var(--mono);color:var(--gold);vertical-align:top;letter-spacing:.05em;font-size:.6rem}.skill-group li{border-bottom:1px solid var(--line);color:var(--muted);transition:color .3s, padding-left .4s var(--ease-out);padding:.55rem 0;font-size:.95rem}.skill-group li:hover{color:var(--fg);padding-left:.5rem}.contact{border-top:1px solid var(--line)}.contact-top{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:2rem;margin-bottom:clamp(3rem,7vw,6rem);display:flex}.contact-title{font-family:var(--display);text-transform:uppercase;font-size:clamp(4rem,13vw,13rem);font-weight:400;line-height:.86}.contact-title .is-serif{font-family:var(--serif);text-transform:none;color:var(--gold);letter-spacing:-.02em;font-style:italic}.contact-orb{aspect-ratio:1;background:var(--gold);width:clamp(150px,16vw,220px);color:var(--on-gold);font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;border-radius:50%;flex-direction:column;justify-content:center;align-items:center;gap:.25rem;font-size:.78rem;font-weight:500;text-decoration:none;transition:background .4s,color .4s;display:flex}.contact-orb:hover{background:var(--fg);color:var(--bg)}.contact-orb span:last-child{font-size:1.4rem}.contact-body{grid-template-columns:1.2fr 1fr;align-items:start;gap:clamp(3rem,6vw,6rem);display:grid}.contact-left p{color:var(--muted);max-width:32rem;margin-bottom:1.75rem;font-size:1.05rem;line-height:1.8}.contact-email{font-family:var(--display);letter-spacing:.02em;overflow-wrap:anywhere;background:linear-gradient(var(--gold), var(--gold)) left bottom / 0% 2px no-repeat;transition:background-size .6s var(--ease-out), color .3s;margin-bottom:2rem;font-size:clamp(1.8rem,3.6vw,3.4rem);line-height:1.1;text-decoration:none;display:inline-block}.contact-email:hover{color:var(--gold);background-size:100% 2px}.socials{flex-wrap:wrap;gap:.6rem;display:flex}.socials a{border:1px solid var(--line-2);font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;border-radius:999px;padding:.65rem 1.1rem;font-size:.7rem;text-decoration:none;transition:background .3s,color .3s,border-color .3s;display:inline-block}.socials a:hover{background:var(--fg);color:var(--bg);border-color:var(--fg)}.contact-info{border-top:1px solid var(--line-2)}.contact-info>div{border-bottom:1px solid var(--line-2);grid-template-columns:8rem 1fr;align-items:center;gap:1rem;padding:1.2rem 0;display:grid}.contact-info dt{font-family:var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--gold);font-size:.68rem}.contact-info dd{align-items:center;gap:.6rem;font-size:.98rem;display:flex}@media (width<=1100px){.skills-grid{grid-template-columns:repeat(2,1fr)}.index-row{grid-template-columns:3rem minmax(0,1.5fr) minmax(0,1fr) 2rem}.index-tags{display:none}}@media (width<=900px){.stack{gap:1.25rem}.stack-card{height:auto;min-height:0;position:relative;top:auto}.stack-card-inner{border-radius:20px;grid-template-columns:minmax(0,1fr)}.card-title{margin-top:2.5rem}.card-shots{height:380px;margin-top:1rem}.phone{border-width:4px}.card-shots.is-browser{height:auto;margin-top:1.5rem}.browser{width:100%}.index-row{grid-template-columns:2.5rem minmax(0,1fr) 1.5rem;row-gap:.25rem}.index-kind{grid-area:2/2}.index-arrow{grid-area:1/3}.index-thumb{aspect-ratio:16/9;object-fit:cover;object-position:top;border-radius:12px;grid-area:3/2/auto/-1;width:100%;height:auto;margin-top:.75rem;display:block}.index-preview{display:none}.about-grid,.contact-body,.skills-head{grid-template-columns:1fr}.hero-bottom .hero-scroll{display:none}.hero-name{margin-bottom:.5rem;font-size:27vw}}@media (width<=560px){.skills-grid{grid-template-columns:1fr}.hero-top span:last-child{display:none}.contact-info>div{grid-template-columns:6.5rem 1fr}.contact-orb-wrap{display:none!important}}.noise{pointer-events:none;position:absolute;inset:0;overflow:hidden}.noise--fixed{position:fixed}.noise__grain{image-rendering:pixelated;background-repeat:repeat;position:absolute;inset:0}.noise__dust{width:100%;height:100%;position:absolute;inset:0}.noise__lines{background-image:repeating-linear-gradient(#0000008c 0 1px,#0000 1px 3px);position:absolute;inset:0}.scroll-velocity{width:100%;overflow:hidden}.velocity-row{position:relative;overflow:hidden}.velocity-track{white-space:nowrap;will-change:transform;width:max-content;display:flex}.velocity-track span{flex-shrink:0;padding-right:.35em}.velocity-track.is-outline{-webkit-text-fill-color:transparent;-webkit-text-stroke:max(1px, .02em) currentColor}.scroll-reveal{margin:20px 0}.scroll-reveal-text{font-size:clamp(1.6rem,4vw,3rem);font-weight:600;line-height:1.5;display:block}.scroll-reveal-word,.scroll-reveal-piece{display:inline-block}
