.page{min-height:100vh;position:relative}.section{content-visibility:auto;contain-intrinsic-size:auto 600px;max-width:1200px;margin:0 auto;padding:4rem 2rem}.section-label{text-transform:uppercase;letter-spacing:.15em;color:var(--text-muted);border-bottom:2px solid var(--border);margin-bottom:2.5rem;padding-bottom:.5rem;font-size:.75rem;font-weight:600;display:inline-block}.role-above-stats{letter-spacing:.1em;border-bottom:none;margin-bottom:.5rem;font-family:Archivo,sans-serif;font-size:1rem}.hero{isolation:isolate;align-items:stretch;min-height:125vh;display:flex;position:relative;overflow:clip visible}@media (width>=601px){.hero{min-height:100dvh;overflow:clip visible}}@media (width<=600px){.hero{min-height:var(--app-vh,100vh);height:var(--app-vh,100vh);overflow:clip visible}}.hero:after{content:"";background:linear-gradient(to bottom, transparent 0%, var(--bg) 100%);z-index:1;pointer-events:none;width:100%;height:250px;position:absolute;bottom:0;left:0}.hero-immersive-btn{z-index:101;color:#ffffffb3;cursor:pointer;opacity:0;visibility:hidden;pointer-events:none;background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;width:48px;height:48px;padding:0;transition:color .2s,background .2s,opacity .8s ease-out;display:flex;position:fixed;top:1.5rem;right:2rem}body.intro-complete .hero-immersive-btn{opacity:1;visibility:visible;pointer-events:auto}.header.scrolled+.hero-immersive-btn{opacity:0;pointer-events:none}.hero-immersive-btn:hover{color:#fff;background:#ffffff1a}.hero-content{z-index:10;width:100%;min-height:100%;padding:max(var(--hero-header-clearance), calc(env(safe-area-inset-top,0px) + 5.25rem)) 5% calc(25vh + 5rem);background:0 0;flex-direction:column;transition:opacity .4s;display:flex;position:relative;transform:translateZ(0)}.hero-content:before{content:"";z-index:0;pointer-events:none;background:#0d0d0d80;position:absolute;inset:0}@supports ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){.hero-content:before{-webkit-backdrop-filter:blur(var(--hero-glass-blur));backdrop-filter:blur(var(--hero-glass-blur));background:#0d0d0d61}}@supports ((-webkit-backdrop-filter:blur(1px))){.hero-content:before{-webkit-backdrop-filter:blur(var(--hero-glass-blur));background:#0d0d0d61}}@media (width>=601px){.hero-content{padding-bottom:max(1rem,1.25vh + .65rem)}}body.hero-immersive .hero-welcome-container,body.hero-immersive .hero-bottom,body.hero-immersive .hero-role{pointer-events:none;transition:opacity .4s;opacity:0!important}body.hero-immersive .hero-content:before{background:#0d0d0d80!important}@supports ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){body.hero-immersive .hero-content:before{-webkit-backdrop-filter:blur(var(--hero-glass-blur))!important;backdrop-filter:blur(var(--hero-glass-blur))!important;background:#0d0d0d61!important}}@supports ((-webkit-backdrop-filter:blur(1px))){body.hero-immersive .hero-content:before{-webkit-backdrop-filter:blur(var(--hero-glass-blur))!important;background:#0d0d0d61!important}}.hero-center-group{z-index:1;position:relative}.hero-welcome-container{flex:1;justify-content:center;align-items:center;display:flex}.hero-bottom{opacity:0;visibility:hidden;flex-direction:column;align-self:flex-end;align-items:flex-end;width:100%;transition:opacity .8s ease-out,transform .8s ease-out;display:flex;transform:translateY(12px)}body.intro-complete .hero-bottom{opacity:1;visibility:visible;transform:translateY(0)}.hero-titles{flex-direction:column;align-items:flex-end;gap:.5rem;display:flex}.hero-name{letter-spacing:-.02em;margin:0;font-family:Work Sans,sans-serif;font-size:clamp(2rem,5vw,3.5rem);font-weight:700;line-height:1.1}.hero-links{align-items:center;gap:1rem;margin-bottom:.75rem;display:flex}.hero-link{color:var(--text);opacity:.85;transition:opacity .2s,color .2s}.hero-link:hover{opacity:1;color:var(--link-hover)}.hero-link svg{display:block}.hero-link-resume{cursor:pointer;font:inherit;background:0 0;border:none;padding:0}.hero-link-resume:hover{opacity:1;color:var(--link-hover)}.hero-role{color:#fff;cursor:default;opacity:0;visibility:hidden;margin:0;font-family:Work Sans,sans-serif;font-size:clamp(1.25rem,3.5vw,2.5rem);font-weight:600;transition:opacity .8s ease-out,transform .8s ease-out;display:inline-block;position:relative;transform:translateY(12px)}body.intro-complete .hero-role{opacity:1;visibility:visible;transform:translateY(0)}.role-text{display:inline-block}@media (width>=601px){.hero-content{grid-template:"welcome welcome"1fr"bottom bottom"/1fr 1fr;min-height:100%;display:grid}.hero-center-group{display:contents}.hero-welcome-container{z-index:1;pointer-events:none;grid-area:1/1/auto/-1;justify-content:center;align-self:stretch;align-items:center;min-height:0;display:flex}.hero-welcome-container .hero-welcome{pointer-events:auto}.hero-welcome{text-align:center}.hero-bottom{z-index:2;width:100%;padding-bottom:max(.75rem, env(safe-area-inset-bottom,0px));flex-direction:row-reverse;grid-area:bottom;justify-content:space-between;align-self:end;align-items:flex-end;display:flex;position:relative}.hero-role{z-index:2;position:relative}}.hero-welcome{min-height:clamp(3rem,7vw,5rem);margin:0;font-family:Work Sans,sans-serif;font-size:clamp(2.5rem,7vw,4.5rem);font-weight:600}.hero-gooey-filter-svg{width:0;height:0;position:absolute}#gooey-blob-container{pointer-events:none;z-index:0;contain:layout;backface-visibility:hidden;height:calc(100% + 8rem);position:absolute;top:0;left:0;right:0;transform:translateZ(0)}.gooey-blob-filter-layer{filter:url(#gooey);pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.gooey-blob{opacity:1;border-radius:50%;transition:transform .6s cubic-bezier(.34,1.56,.64,1);position:absolute;top:0;left:0;transform:translate(0,0)translate(-50%,-50%)scale(0)}.gooey-blob.is-fading{opacity:0;transition:transform .65s ease-out,opacity .5s ease-out}.rotate-char{white-space:pre;transition:transform .45s cubic-bezier(.34,1.56,.64,1),opacity .45s ease-out;display:inline-block}.intro-cursor{background-color:var(--text);vertical-align:middle;width:4px;height:clamp(2.5rem,7vw,4.5rem);margin-left:6px;animation:1s step-end infinite intro-blink;display:none}.canvas-word{font-family:Pacifico,cursive;font-size:1.12em;font-weight:400;line-height:inherit;vertical-align:baseline}@keyframes intro-blink{0%,to{opacity:1}50%{opacity:0}}.resume-modal{z-index:1000;opacity:0;visibility:hidden;justify-content:center;align-items:center;padding:2rem;transition:opacity .25s,visibility .25s;display:flex;position:fixed;inset:0}.resume-modal.resume-modal-open{opacity:1;visibility:visible}.resume-modal-overlay{background:#000000bf;position:absolute;inset:0}.resume-modal-inner{z-index:1;background:var(--surface);border:2px solid var(--border);border-radius:8px;flex-direction:column;width:100%;max-width:900px;max-height:90vh;display:flex;position:relative;box-shadow:0 24px 48px #0006}.resume-modal-header{border-bottom:2px solid var(--border);justify-content:space-between;align-items:center;padding:1rem 1.25rem;display:flex}.resume-modal-title{color:var(--text);margin:0;font-size:1rem;font-weight:700}.resume-modal-close{width:2.5rem;height:2.5rem;color:var(--text);cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;font-size:1.5rem;line-height:1;transition:background .2s;display:flex}.resume-modal-close:hover{background:var(--bg-grid)}.resume-modal-close:focus-visible,.resume-modal-download:focus-visible{outline-offset:2px}.resume-modal-pdf{border:none;flex:1;width:100%;min-height:60vh}.resume-modal-footer{border-top:2px solid var(--border);padding:1rem 1.25rem}.resume-modal-download{color:var(--link);font-size:.875rem;font-weight:600;text-decoration:none}.resume-modal-download:hover{color:var(--link-hover);text-decoration:underline}.stats-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;display:grid}.stat-card{border:2px solid var(--border);background:var(--surface);flex-direction:column;align-items:flex-start;padding:2rem 1.5rem;transition:transform .2s,box-shadow .2s;display:flex;position:relative;overflow:hidden}.stat-card:before{content:"";background:var(--text);opacity:.1;transform-origin:0;height:4px;transition:transform .4s;position:absolute;top:0;left:0;right:0;transform:scaleX(0)}.stat-card:hover{transform:translateY(-2px);box-shadow:0 8px 24px #0000001f}.stat-card:hover:before{transform:scaleX(1)}.stat-value{color:var(--text);font-family:Space Mono,monospace;font-size:2.5rem;font-weight:700;line-height:1.1;display:inline-block}.stat-suffix{color:var(--text-muted);margin-left:.15rem;font-family:Space Mono,monospace;font-size:1.25rem;font-weight:700}.stat-label{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin-top:.5rem;font-size:.8125rem;font-weight:600}.pill{text-transform:uppercase;letter-spacing:.05em;background:var(--pill-bg);color:var(--pill-text);border:2px solid var(--border);border-radius:0;padding:.35rem .75rem;font-size:.6875rem;font-weight:600;display:inline-block}.section.projects{z-index:12;background:0 0;margin-top:0;position:relative}@media (width>=601px){.section.projects{padding:clamp(6rem,11vh,9rem) 2rem 4rem}}@media (width<=600px){.section.projects{padding-top:2.5rem}}.projects-section-heading{font:inherit;border:none;margin:0 0 3.25rem;padding:0 0 .85rem;line-height:1}.projects-section-heading__text,.projects-section-heading:after{background-image:radial-gradient(125% 115% at 12% 40%,#e74c3ce0 0%,#0000 55%),radial-gradient(100% 100% at 92% 22%,#f1c40fbf 0%,#0000 50%),radial-gradient(110% 95% at 78% 88%,#b9770ed1 0%,#0000 52%),radial-gradient(120% 110% at 22% 85%,#1a5276e6 0%,#0000 56%),radial-gradient(95% 100% at 55% 8%,#9b59b6d9 0%,#0000 48%),radial-gradient(85% 100% at 48% 100%,#1abc9c8c 0%,#0000 46%),linear-gradient(122deg,#b9770e 0%,#f1c40f 14%,#e74c3c 32%,#9b59b6 50%,#76448a 64%,#1a5276 82%,#117a65 100%);background-position:0%,100% 0,85% 90%,20% 80%,60% 10%,50% 100%,0%;background-repeat:no-repeat;background-size:240% 220%,200% 200%,210% 200%,230% 210%,200% 190%,220% 220%,400% 140%;animation:6.5s ease-in-out infinite projects-heading-blob}.projects-section-heading:after{content:"";border-radius:2px;width:100%;max-width:100%;height:3px;margin-top:.95rem;display:block;-webkit-mask-image:linear-gradient(90deg,#000 0% 38%,#0000 94%);mask-image:linear-gradient(90deg,#000 0% 38%,#0000 94%)}.projects-section-heading__text{letter-spacing:-.035em;color:#0000;-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-family:Archivo,sans-serif;font-size:clamp(2.35rem,6.5vw,3.75rem);font-weight:700;line-height:1.05;display:inline-block}@supports not ((-webkit-background-clip:text) or (background-clip:text)){.projects-section-heading__text{color:var(--text);-webkit-text-fill-color:var(--text);background:0 0;animation:none}}@keyframes projects-heading-blob{0%,to{background-position:0%,100% 0,85% 90%,20% 80%,60% 10%,50% 100%,0%}25%{background-position:95% 25%,5% 75%,20% 40%,80% 20%,30% 85%,75% 60%,55% 45%}50%{background-position:40% 95%,70% 30%,95% 75%,10% 35%,90%,25% 15%,100% 55%}75%{background-position:65% 10%,35% 90%,50% 25%,55% 95%,15% 30%,90% 40%,30% 100%}}.projects-grid{grid-template-columns:1fr;gap:1.25rem;display:grid}.project-card{background:linear-gradient(180deg, #ffffff1f 0%, #ffffff0a 100%), var(--project-color,var(--surface));color:#fff;isolation:isolate;border:2px solid #ffffff29;border-radius:2rem;flex-direction:column;min-height:430px;padding:1.5rem;transition:transform .25s,box-shadow .25s;display:flex;position:relative;overflow:hidden;box-shadow:0 12px 28px #0003}.project-card:hover,.project-card:focus-within{z-index:2;transform:scale(1.01)}.project-card-layout{--center-scale:1;--center-lift:0px;z-index:1;height:100%;transform:translateY(var(--center-lift)) scale(var(--center-scale));transform-origin:50%;grid-template-columns:minmax(220px,32%) minmax(0,68%);gap:1.25rem;transition:transform .18s;display:grid;position:relative}.project-card-details{flex-direction:column;min-width:0;display:flex}.project-card-media-column{flex-direction:column;gap:.9rem;display:flex}.project-card-title{margin-bottom:.75rem;font-family:Work Sans,sans-serif;font-size:clamp(1.45rem,3.2vw,1.85rem);font-weight:700;line-height:1.2}.project-card-title-link{color:inherit;border-bottom:1px solid #0000;text-decoration:none;transition:border-color .2s}.project-card-title-link:hover,.project-card-title-link:focus-visible{border-bottom-color:#ffffff8c}.project-card-title-link:focus-visible{border-radius:2px;outline:none;box-shadow:0 0 0 2px #ffffff59}.project-card-title--with-live{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.project-card-live-icon{color:#ffffff80;border-radius:4px;justify-content:center;align-items:center;margin:0;padding:.2rem;text-decoration:none;transition:color .2s,background-color .2s;display:inline-flex}.project-card-live-icon:hover,.project-card-live-icon:focus-visible{color:#fffffff2;background-color:#ffffff14}.project-card-live-icon:focus-visible{outline:none;box-shadow:0 0 0 2px #ffffff59}.project-card-live-icon svg{width:1.05em;height:1.05em;display:block}.project-card-type{letter-spacing:.08em;text-transform:uppercase;color:#ffffffd1;margin-bottom:.75rem;font-size:.8rem;font-weight:700}.project-card-desc{color:#fffffff0;margin-bottom:1.25rem;font-size:.95rem;line-height:1.6}.project-card-link{color:#fff;border-bottom:1px solid #ffffff73;align-self:flex-start;margin-bottom:1rem;padding-bottom:.1rem;font-weight:600;text-decoration:none;transition:border-color .2s,opacity .2s}.project-card-link:hover,.project-card-link:focus-visible{opacity:.95;border-color:#ffffffe0}.project-card-link-secondary{border-bottom-color:#ffffff61;margin-top:0;margin-bottom:1rem;font-size:.9rem;font-weight:500}.project-card-details>.project-card-link:not(.project-card-link-secondary){margin-bottom:1rem}.project-card-skills-wrap{flex-direction:column;gap:.75rem;margin-top:auto;padding-top:.75rem;display:flex}.project-card-skills-heading{margin-bottom:.15rem}.project-card-skills-wrap .project-card-skills{margin-top:0}.project-card-skills{flex-direction:column;gap:.5rem;margin-top:auto;display:flex}.project-card-skills-label{letter-spacing:.12em;text-transform:uppercase;color:#ffffffd1;margin:0;font-size:.6875rem;font-weight:700}.project-card-meta{flex-wrap:wrap;gap:.45rem;display:flex}.project-card .project-card-meta .pill{letter-spacing:.06em;text-transform:uppercase;color:#fffffff0;-webkit-backdrop-filter:blur(14px);background:#ffffff1a;border:1px solid #ffffff47;border-radius:999px;padding:.38rem .82rem;font-size:.625rem;font-weight:600;transition:background-color .25s,border-color .25s,box-shadow .25s;box-shadow:inset 0 1px #ffffff38,0 2px 10px #00000026}.project-card:hover .project-card-meta .pill,.project-card:focus-within .project-card-meta .pill{background:#ffffff2e;border-color:#ffffff6b;box-shadow:inset 0 1px #ffffff47,0 4px 14px #0000002e}.project-card-preview{aspect-ratio:16/9;background:linear-gradient(#ffffff1f,#ffffff08);border:1px solid #ffffff3d;border-radius:1.15rem;place-self:center stretch;height:auto;min-height:0;position:relative;overflow:hidden;box-shadow:0 10px 30px #00000038}.project-card--direckt .project-card-preview{align-self:start}.project-card--direckt .project-card-skills-wrap{grid-column:1/-1;margin-top:.2rem;padding-top:0}.project-card-skills-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem;display:grid}@media (width<=900px){.project-card--direckt .project-card-skills-grid{grid-template-columns:1fr}}.project-card-preview>img:only-child{object-fit:cover;object-position:top center;width:100%;height:100%;display:block}.project-card-preview--contain{background:#08080af2}.project-card-preview--contain .project-card-preview-bg{z-index:0;object-fit:cover;object-position:center;filter:blur(22px)saturate(1.08);pointer-events:none;width:100%;height:100%;position:absolute;inset:0;transform:scale(1.18)}.project-card-preview--contain .project-card-preview-fg{z-index:1;object-fit:contain;object-position:center;filter:drop-shadow(0 6px 20px #00000073);width:100%;height:100%;display:block;position:relative}@media (prefers-reduced-motion:reduce){.project-card-preview--contain .project-card-preview-bg{filter:blur(10px)saturate(1.05);transform:scale(1.08)}}.project-card-preview iframe{pointer-events:none;width:1366px;height:768px;transform:scale(var(--iframe-scale,1));transform-origin:0 0;background:#0c0e16a6;border:0;margin-top:0;display:block;overflow:hidden}.project-card-preview-placeholder{color:#ffffffdb;letter-spacing:.08em;text-transform:uppercase;place-items:center;padding-top:0;font-size:.82rem;font-weight:700;display:grid}@media (prefers-reduced-motion:reduce){.projects-section-heading__text,.projects-section-heading:after{background-position:0%,100% 0,85% 90%,20% 80%,60% 10%,50% 100%,0%;animation:none!important}.project-card,.project-card-layout,.project-card-meta .pill{transition:none!important;animation:none!important;transform:none!important}}@media (width<=900px){.project-card{min-height:380px}.project-card-layout{grid-template-columns:1fr;gap:1rem}.project-card-preview{max-width:100%}}@media (width<=600px){.header{flex-wrap:wrap;gap:1rem}.brand-logo-animated{height:52px}.hero{padding:0}.hero-content{height:100%;min-height:0;padding:6rem 1.25rem 1rem;padding-top:max(5.75rem, env(safe-area-inset-top,0px));padding-bottom:max(4.5rem, calc(env(safe-area-inset-bottom,0px) + .75rem));contain:layout style;display:block;position:relative}.hero-center-group{display:contents}.hero-welcome-container{top:max(5.75rem, calc(env(safe-area-inset-top,0px) + 4.25rem));left:0;right:0;bottom:max(10.5rem, calc(env(safe-area-inset-bottom,0px) + 9.5rem));z-index:1;pointer-events:none;grid-column:unset;grid-row:unset;justify-content:center;align-items:center;place-self:unset;padding-left:1.25rem;padding-right:1.25rem;display:flex;position:absolute}.hero-welcome-container .hero-welcome{pointer-events:auto}.hero-welcome{text-align:center;width:100%;max-width:22rem}.hero-bottom{right:1rem;bottom:max(.75rem, calc(env(safe-area-inset-bottom,0px) + .35rem));z-index:2;flex-direction:column;align-items:flex-start;gap:.4rem;width:max-content;max-width:min(100% - 2rem,20rem);position:absolute;top:auto;left:auto}.hero-titles{flex-direction:column;align-items:flex-start;gap:.4rem;width:100%;display:flex}.hero-links{justify-content:flex-start;align-self:flex-start;gap:.75rem;width:auto;margin-bottom:0}.hero-name{text-align:left;align-self:flex-start;width:100%;max-width:100%;font-size:clamp(1.5rem,5vw,2rem);line-height:1.1}.hero-role{text-align:right;flex-shrink:0;align-self:flex-end;width:100%;max-width:100%;font-size:clamp(1rem,3.5vw,1.2rem);font-weight:600;line-height:1.2;position:relative;bottom:auto;left:auto}.section{padding:3rem 1.5rem}.project-card{border-radius:1.5rem;min-height:auto;padding:1.25rem}.project-card-title{font-size:1.15rem}.project-card-desc{font-size:.92rem}}
