@font-face{font-family:StackSansNotch;src:url(/fonts/StackSansNotch-ExtraLight.ttf)format("truetype");font-weight:200;font-style:normal;font-display:swap}@font-face{font-family:StackSansNotch;src:url(/fonts/StackSansNotch-Light.ttf)format("truetype");font-weight:300;font-style:normal;font-display:swap}@font-face{font-family:StackSansNotch;src:url(/fonts/StackSansNotch-Regular.ttf)format("truetype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:StackSansNotch;src:url(/fonts/StackSansNotch-Medium.ttf)format("truetype");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:StackSansNotch;src:url(/fonts/StackSansNotch-SemiBold.ttf)format("truetype");font-weight:600;font-style:normal;font-display:swap}@font-face{font-family:StackSansNotch;src:url(/fonts/StackSansNotch-Bold.ttf)format("truetype");font-weight:700;font-style:normal;font-display:swap}*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--red:#fa3715;--red-pale:#fa371512;--red-dim:#fa37151f;--black:#0a0a0a;--black2:#111;--black3:#1c1c1c;--white:#fff;--paper:#f8f7f5;--ink:#111;--ink-mid:#444;--ink-dim:#888;--border-l:#00000014;--border-d:#ffffff14;--forma:"StackSansNotch", "Barlow", system-ui, sans-serif;--forma-cd:"StackSansNotch", "P22 Mackinac Pro", Georgia, serif;--swear:"StackSansNotch", "Playfair Display", Georgia, serif;--mono:"StackSansNotch", "Space Mono", monospace;--notch:"StackSansNotch", "Barlow", system-ui, sans-serif}html{scroll-behavior:smooth}body{font-family:var(--forma);background:var(--white);color:var(--ink);cursor:none;overflow-x:hidden}#cur{background:var(--red);pointer-events:none;z-index:9999;border-radius:50%;width:10px;height:10px;transition:width .15s,height .15s;position:fixed;top:0;left:0;transform:translate(-50%,-50%)}#cur-ring{pointer-events:none;z-index:9998;border:1.5px solid #fa371566;border-radius:50%;width:36px;height:36px;transition:width .4s cubic-bezier(.23,1,.32,1),height .4s,border-color .3s;position:fixed;top:0;left:0;transform:translate(-50%,-50%)}body:has(a:hover) #cur{width:14px;height:14px}body:has(a:hover) #cur-ring{border-color:#fa37158c;width:52px;height:52px}nav{z-index:500;border-bottom:1px solid #0000;justify-content:space-between;align-items:center;padding:1.6rem 3.5rem;transition:background .35s,border-color .35s,box-shadow .35s;display:flex;position:fixed;top:0;left:0;right:0}nav.scrolled{-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-color:var(--border-l);box-shadow:0 1px 0 var(--border-l);background:#fffffff5}nav.scrolled .nav-links a{color:var(--ink-dim)}nav.scrolled .nav-links a:hover{color:var(--ink)}nav.scrolled .nav-cta{color:var(--white);background:var(--red)}nav.scrolled .nav-cta:hover{background:var(--black)}.nav-logo{align-items:center;text-decoration:none;display:flex}.nav-logo-img{filter:brightness(0)invert();width:auto;height:28px;transition:filter .35s}nav.scrolled .nav-logo-img{filter:none}.nav-links{gap:2.8rem;list-style:none;display:flex}.nav-links a{font-family:var(--forma);letter-spacing:.12em;text-transform:uppercase;color:#fff9;font-size:.72rem;font-weight:500;text-decoration:none;transition:color .2s}.nav-links a:hover{color:var(--white)}.nav-cta{font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--white);background:var(--red);padding:.6rem 1.4rem;font-size:.65rem;font-weight:700;text-decoration:none;transition:background .2s,color .2s}.nav-cta:hover{background:var(--white);color:var(--red)}#hero{background:var(--white);min-height:100vh;padding:1rem}.hero-island{border-radius:2.5rem;width:100%;height:calc(100vh - 2rem);position:relative;overflow:hidden}.hero-portrait{object-fit:cover;object-position:center 20%;width:100%;height:100%;position:absolute;inset:0}.hero-island-overlay{pointer-events:none;background:linear-gradient(#0000001a 0%,#00000059 60%,#000000d9 100%);position:absolute;inset:0}.hero-text-left{z-index:2;max-width:30%;position:absolute;top:50%;left:3rem;transform:translateY(-50%)}.hero-name{font-family:var(--notch);color:var(--white);letter-spacing:.01em;font-size:clamp(2.2rem,3.85vw,4.18rem);font-weight:400;line-height:1.05}.hero-subtitle{font-family:var(--notch);color:#ffffff8c;letter-spacing:.06em;text-transform:uppercase;margin-top:.6rem;font-size:clamp(.77rem,.99vw,.97rem);font-weight:400}.hero-text-right{z-index:2;width:clamp(260px,24vw,380px);position:absolute;top:50%;right:7rem;transform:translateY(-50%)}.hero-text-right p{font-family:var(--notch);color:#ffffff80;text-align:justify;text-align-last:left;font-size:clamp(.86rem,1.1vw,1.01rem);font-weight:400;line-height:1.8}.hero-island-nav{z-index:3;-webkit-backdrop-filter:blur(24px);background:#ffffff1a;border:1px solid #ffffff2e;border-radius:9999px;justify-content:space-between;align-items:center;width:38%;min-width:440px;padding:.5rem .8rem .5rem .5rem;display:flex;position:absolute;bottom:1.5rem;left:50%;transform:translate(-50%)}.hero-nav-logo-img{flex-shrink:0;width:auto;height:28px;margin-left:.4rem;margin-right:.6rem}.hero-nav-links{gap:1.4rem;list-style:none;display:flex}.hero-nav-links a{font-family:var(--forma);letter-spacing:.08em;text-transform:uppercase;color:#ffffffb3;font-size:.65rem;font-weight:500;text-decoration:none;transition:color .2s}.hero-nav-links a:hover{color:var(--white)}.hero-nav-cta{font-family:var(--forma);letter-spacing:.06em;text-transform:uppercase;color:var(--ink);background:var(--white);border-radius:9999px;padding:.7rem 1.6rem;font-size:.72rem;font-weight:700;text-decoration:none;transition:background .2s,color .2s}.hero-nav-cta:hover{color:var(--white);background:#eb5e28}@keyframes fade-up{0%{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}section{z-index:1;position:relative}.s-eyebrow{font-family:var(--mono);letter-spacing:.26em;text-transform:uppercase;color:var(--red);align-items:center;gap:.75rem;margin-bottom:1rem;font-size:.62rem;display:flex}.s-eyebrow:before{content:"";background:var(--red);width:1.5rem;height:1px}.s-title{font-family:var(--forma-cd);letter-spacing:-.02em;text-transform:uppercase;color:var(--ink);font-size:clamp(2.5rem,5vw,5.5rem);font-weight:900;line-height:.95}.s-title em{font-family:var(--swear);text-transform:none;letter-spacing:0;color:var(--ink-mid);font-size:.85em;font-style:italic;font-weight:500}.s-title-dark{font-family:var(--forma-cd);letter-spacing:-.02em;text-transform:uppercase;color:var(--white);font-size:clamp(2.5rem,5vw,5.5rem);font-weight:900;line-height:.95}.s-title-dark em{font-family:var(--swear);text-transform:none;letter-spacing:0;color:#ffffff73;font-size:.85em;font-style:italic;font-weight:500}.s-eyebrow-dark{font-family:var(--mono);letter-spacing:.26em;text-transform:uppercase;color:var(--red);align-items:center;gap:.75rem;margin-bottom:1rem;font-size:.62rem;display:flex}.s-eyebrow-dark:before{content:"";background:var(--red);width:1.5rem;height:1px}.link-sm{font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-dim);font-size:.62rem;text-decoration:none;transition:color .2s}.link-sm:hover{color:var(--red)}.link-sm-dark{font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:#ffffff59;font-size:.62rem;text-decoration:none;transition:color .2s}.link-sm-dark:hover{color:var(--red)}#about{background:var(--white);border-top:1px solid var(--border-l);padding:9rem 3.5rem}.about-grid{grid-template-columns:1fr 1.4fr;align-items:center;gap:7rem;display:grid}.about-portrait-wrap{position:relative}.about-portrait{aspect-ratio:3/4;border:1px solid var(--border-l);border-radius:16px;position:relative;overflow:hidden}.portrait-photo{object-fit:cover;object-position:top center;width:100%;height:100%;display:block}.about-pitch{font-family:var(--forma);color:var(--ink-mid);border-left:2px solid var(--red);margin:2rem 0 2.5rem;padding-left:1.5rem;font-size:clamp(.95rem,1.4vw,1.18rem);font-weight:400;line-height:1.78}.about-pitch strong{color:var(--ink);font-weight:700}.service-pills{border-top:1px solid var(--border-l);flex-direction:column;gap:1rem;width:fit-content;margin-top:2.5rem;padding-top:2.5rem;display:flex}.service-pill{font-family:var(--forma-cd);letter-spacing:-.02em;color:var(--ink);background:var(--paper);border:1px solid var(--border-l);white-space:nowrap;border-radius:100px;padding:.85rem 2rem;font-size:clamp(1.4rem,2.2vw,2rem);font-weight:900;transition:box-shadow .2s}.service-pill:hover{box-shadow:0 6px 20px #0000001a}#projects{background:var(--black);color:var(--white);padding:9rem 3.5rem}.projects-header{justify-content:space-between;align-items:flex-end;margin-bottom:4.5rem;display:flex}.projects-grid{grid-template-columns:1fr 1fr;gap:3px;display:grid}.proj-card{background:var(--black2);cursor:pointer;flex-direction:column;transition:background .3s;display:flex;position:relative;overflow:hidden}.proj-card:hover{background:#1e1e1e}.proj-thumb{aspect-ratio:4/3;width:100%;position:relative;overflow:hidden}.proj-thumb-bg{filter:brightness(.5)saturate(.7);background-position:50%;background-size:cover;transition:transform .9s cubic-bezier(.23,1,.32,1),filter .5s;position:absolute;inset:0;transform:scale(1.06)}.proj-card:hover .proj-thumb-bg{filter:brightness(.72)saturate();transform:scale(1)}.bg1{background:linear-gradient(135deg,#2a0800 0%,#1a0500 40%,#0d0000 100%)}.bg2{background:linear-gradient(135deg,#080808 0%,#1a0a06 40%,#0d0000 100%)}.bg3g{background:linear-gradient(135deg,#140400 0%,#0e0202 40%,#080808 100%)}.bg4{background:linear-gradient(135deg,#200600 0%,#160300 40%,#0a0000 100%)}.bg5{background:linear-gradient(135deg,#0c0000 0%,#1c0500 40%,#0e0000 100%)}.bg6{background:linear-gradient(135deg,#180200 0%,#100100 40%,#080808 100%)}.proj-thumb-label{font-family:var(--forma-cd);letter-spacing:-.04em;text-transform:uppercase;color:#fa371512;pointer-events:none;justify-content:center;align-items:center;font-size:clamp(4rem,7vw,8rem);font-weight:900;transition:color .5s;display:flex;position:absolute;inset:0}.proj-card:hover .proj-thumb-label{color:#fa371524}.proj-system{text-align:center;opacity:0;background:#080808e0;flex-direction:column;justify-content:center;align-items:center;gap:.75rem;padding:2rem;transition:opacity .35s,transform .35s;display:flex;position:absolute;inset:0;transform:translateY(10px)}.proj-card:hover .proj-system{opacity:1;transform:none}.proj-system-label{font-family:var(--mono);letter-spacing:.2em;text-transform:uppercase;color:var(--red);font-size:.55rem}.proj-system-stack{font-family:var(--forma);color:var(--white);font-size:.9rem;font-weight:600;line-height:1.5}.proj-info{flex:1;padding:2rem 2.2rem 2.4rem;position:relative}.proj-cat{font-family:var(--mono);letter-spacing:.2em;text-transform:uppercase;color:var(--red);margin-bottom:.6rem;font-size:.56rem}.proj-name{font-family:var(--forma-cd);letter-spacing:-.02em;text-transform:uppercase;color:var(--white);margin-bottom:.4rem;font-size:2rem;font-weight:900;line-height:1}.proj-tagline{font-family:var(--swear);color:#ffffff73;margin-top:.3rem;font-size:1rem;font-style:italic;line-height:1.5}.proj-tagline strong{font-style:normal;font-family:var(--forma);font-weight:600}.proj-link{font-family:var(--forma);letter-spacing:.1em;text-transform:uppercase;color:#ffffff80;border-bottom:1px solid #ffffff26;align-items:center;gap:.5rem;width:fit-content;margin-top:1.2rem;padding-bottom:2px;font-size:.7rem;font-weight:600;text-decoration:none;transition:color .2s,border-color .2s;display:inline-flex}.proj-card:hover .proj-link{color:var(--red);border-color:var(--red)}.proj-num{font-family:var(--forma-cd);letter-spacing:-.05em;color:#ffffff0a;pointer-events:none;font-size:5rem;font-weight:900;line-height:1;position:absolute;top:1.8rem;right:2rem}#skills{background:var(--white);border-top:1px solid var(--border-l);padding:9rem 3.5rem}.skills-grid{grid-template-columns:repeat(4,1fr);gap:3px;margin-top:4rem;display:grid}.skill-col{background:var(--paper);border-top:2px solid #0000;padding:2.5rem 2rem;transition:border-color .25s}.skill-col:hover{border-color:var(--red)}.skill-col-title{font-family:var(--forma-cd);letter-spacing:.12em;text-transform:uppercase;color:var(--ink);border-bottom:1px solid var(--border-l);margin-bottom:1.8rem;padding-bottom:.8rem;font-size:.85rem;font-weight:800}.skill-item{font-family:var(--forma);color:var(--ink-mid);cursor:default;border-bottom:1px solid #0000000d;align-items:center;gap:.75rem;padding:.55rem 0;font-size:.88rem;transition:color .2s,padding-left .2s;display:flex}.skill-item:hover{color:var(--ink);padding-left:.4rem}.skill-item:before{content:"—";font-family:var(--mono);color:var(--red);flex-shrink:0;font-size:.65rem}#experience{background:var(--paper);border-top:1px solid var(--border-l);padding:9rem 3.5rem}.exp-list{flex-direction:column;margin-top:4rem;display:flex}.exp-item{border-top:1px solid var(--border-l);cursor:default;grid-template-columns:220px 1fr 80px;align-items:start;gap:3rem;padding:3rem 0;transition:padding-left .3s;display:grid;position:relative}.exp-item:before{content:"";background:#fa37150d;width:0;transition:width .5s cubic-bezier(.23,1,.32,1);position:absolute;top:0;bottom:0;left:0}.exp-item:hover:before{width:100%}.exp-item:after{content:"";background:var(--red);width:0;transition:width .2s;position:absolute;top:0;bottom:0;left:0}.exp-item:hover:after{width:3px}.exp-period{font-family:var(--mono);letter-spacing:.08em;color:var(--red);margin-top:.2rem;font-size:.7rem}.exp-role{font-family:var(--forma-cd);letter-spacing:-.01em;text-transform:uppercase;color:var(--ink);margin-bottom:.3rem;font-size:1.5rem;font-weight:800}.exp-company{font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-dim);margin-bottom:.75rem;font-size:.58rem}.exp-desc{font-family:var(--forma);color:var(--ink-mid);max-width:55ch;font-size:.9rem;line-height:1.65}.exp-tags{flex-wrap:wrap;gap:.5rem;margin-top:1rem;display:flex}.exp-tag{font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-dim);border:1px solid var(--border-l);background:var(--white);padding:.18rem .55rem;font-size:.52rem}.exp-num{font-family:var(--forma-cd);letter-spacing:-.05em;color:#fa371514;text-align:right;font-size:4.5rem;font-weight:900;line-height:1}#blog{background:var(--white);border-top:1px solid var(--border-l);padding:9rem 3.5rem}.blog-header{justify-content:space-between;align-items:flex-end;margin-bottom:4rem;display:flex}.blog-grid{grid-template-columns:repeat(3,1fr);gap:1.5px;display:grid}.blog-card{background:var(--paper);color:inherit;border-top:1.5px solid #0000;flex-direction:column;gap:1.2rem;padding:2.5rem;text-decoration:none;transition:background .3s,border-color .3s;display:flex}.blog-card:hover{background:var(--white);border-color:var(--red)}.blog-tag{font-family:var(--mono);letter-spacing:.2em;text-transform:uppercase;color:var(--red);font-size:.56rem}.blog-title{font-family:var(--forma-cd);letter-spacing:-.01em;text-transform:uppercase;color:var(--ink);font-size:1.3rem;font-weight:800;line-height:1.25}.blog-title em{font-family:var(--swear);text-transform:none;color:var(--ink-mid);letter-spacing:0;margin-top:.3rem;font-size:1rem;font-style:italic;font-weight:400;display:block}.blog-excerpt{font-family:var(--forma);color:var(--ink-mid);font-size:.87rem;line-height:1.65}.blog-foot{border-top:1px solid var(--border-l);justify-content:space-between;align-items:center;margin-top:auto;padding-top:1.2rem;display:flex}.blog-date{font-family:var(--mono);letter-spacing:.1em;color:var(--ink-dim);font-size:.56rem}.blog-arrow{color:var(--red);font-size:.9rem;transition:transform .2s}.blog-card:hover .blog-arrow{transform:translate(3px,-3px)}#contact{background:var(--black);text-align:center;color:var(--white);border-top:none;padding:11rem 3.5rem;position:relative;overflow:hidden}.contact-glow{pointer-events:none;background:radial-gradient(circle,#fa37151a 0%,#0000 70%);border-radius:50%;width:55vw;height:55vw;animation:12s ease-in-out infinite orb-drift;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.contact-eyebrow{justify-content:center;margin-bottom:2rem}.contact-hook{font-family:var(--forma-cd);letter-spacing:-.03em;text-transform:uppercase;color:var(--white);z-index:1;margin-bottom:2rem;font-size:clamp(3rem,7vw,8.5rem);font-weight:900;line-height:.88;position:relative}.contact-hook .accent-line{color:var(--red);display:block}.contact-sub{font-family:var(--forma);color:#ffffff80;z-index:1;max-width:52ch;margin:0 auto 4.5rem;font-size:1rem;line-height:1.75;position:relative}.contact-email-wrap{z-index:1;flex-direction:column;align-items:center;gap:.5rem;margin-bottom:4rem;display:inline-flex;position:relative}.contact-email-label{font-family:var(--mono);letter-spacing:.22em;text-transform:uppercase;color:#ffffff40;font-size:.56rem}.contact-email{font-family:var(--forma-cd);letter-spacing:-.02em;text-transform:uppercase;color:var(--white);font-size:clamp(1.8rem,4vw,4.5rem);font-weight:900;text-decoration:none;transition:color .2s;position:relative}.contact-email:after{content:"";background:var(--red);transform-origin:0;height:3px;transition:transform .4s cubic-bezier(.76,0,.24,1);position:absolute;bottom:-4px;left:0;right:0;transform:scaleX(0)}.contact-email:hover{color:var(--red)}.contact-email:hover:after{transform:scaleX(1)}.copy-hint{font-family:var(--mono);letter-spacing:.16em;text-transform:uppercase;color:#ffffff40;font-size:.54rem}.contact-socials{z-index:1;justify-content:center;gap:3rem;margin-bottom:5rem;list-style:none;display:flex;position:relative}.contact-socials a{font-family:var(--mono);letter-spacing:.2em;text-transform:uppercase;color:#ffffff4d;font-size:.68rem;text-decoration:none;transition:color .2s}.contact-socials a:hover{color:var(--red)}.contact-status{z-index:1;font-family:var(--mono);letter-spacing:.15em;text-transform:uppercase;color:var(--red);border:1px solid #fa371540;align-items:center;gap:.7rem;padding:.6rem 1.5rem;font-size:.6rem;display:inline-flex;position:relative}.status-dot{background:var(--red);border-radius:50%;width:6px;height:6px;animation:2s infinite dot-pulse}footer{background:var(--black2);border-top:1px solid #ffffff0f;justify-content:space-between;align-items:center;padding:2.5rem 3.5rem;display:flex}.footer-copy{font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;color:#ffffff40;font-size:.58rem}.footer-copy span{color:var(--red)}.footer-right{font-family:var(--swear);color:#ffffff40;font-size:.9rem;font-style:italic}.milestones-strip{background:var(--black3);grid-template-columns:repeat(4,1fr);display:grid}.ms-item{z-index:1;border-right:1px solid #ffffff0f;padding:3.5rem 3rem;position:relative}.ms-item:last-child{border-right:none}.ms-num{font-family:var(--forma-cd);letter-spacing:-.04em;color:var(--white);font-size:clamp(3.5rem,5vw,5rem);font-weight:900;line-height:1}.ms-num span{color:var(--red)}.ms-label{font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;color:#ffffff59;margin-top:.6rem;font-size:.62rem;line-height:1.5}.reveal{opacity:0;transition:opacity .9s cubic-bezier(.23,1,.32,1),transform .9s cubic-bezier(.23,1,.32,1);transform:translateY(28px)}.reveal.visible{opacity:1;transform:none}.reveal-d1{transition-delay:.1s}.reveal-d2{transition-delay:.2s}.reveal-d3{transition-delay:.3s}@media (max-width:1024px){.about-grid{grid-template-columns:1fr;gap:4rem}.skills-grid{grid-template-columns:1fr 1fr}.exp-item{grid-template-columns:180px 1fr}.exp-num{display:none}.milestones-strip{grid-template-columns:1fr 1fr}}@media (max-width:768px){nav{padding:1.2rem 1.5rem}.nav-links,.nav-cta{display:none}#about,#skills,#experience,#blog,#contact,#projects{padding:5rem 1.5rem}#hero{padding:9rem 1.5rem 0}.projects-grid,.skills-grid,.blog-grid{grid-template-columns:1fr}.exp-item{grid-template-columns:1fr;gap:.75rem}footer{text-align:center;flex-direction:column;gap:.75rem}.contact-socials{flex-wrap:wrap;gap:1.5rem}.milestones-strip{grid-template-columns:1fr 1fr}}
