:root{--color-canvas-white:#fff;--color-ink-black:#292929;--color-deep-black:#000;--color-geo-cyan:#96f5fa;--color-strike-orange:#fb6012;--font-nh:"NH", "Helvetica Neue", sans-serif;--font-s-condensed:"S-Condensed", "Impact", sans-serif;--font-ev:"EV", "Roboto Thin", sans-serif;--font-s-works:"S-Works", "Bebas Neue Pro", sans-serif;--text-caption:12px;--text-body:16px;--text-subheading:18px;--text-heading:25px;--text-heading-lg:32px;--text-display-sm:40px;--text-display:43px;--spacing-4:4px;--spacing-8:8px;--spacing-12:12px;--spacing-20:20px;--spacing-43:43px;--spacing-50:50px;--section-gap:32px;--card-padding:20px;--element-gap:8px;--radius-none:0px}*{box-sizing:border-box;margin:0;padding:0}html,body{width:100%;height:100%}body{background:var(--color-canvas-white);color:var(--color-ink-black);font-family:var(--font-nh);font-size:var(--text-body);letter-spacing:-.32px;cursor:none;line-height:1.5}.custom-cursor{background:var(--color-strike-orange);pointer-events:none;mix-blend-mode:normal;z-index:99999;border-radius:999px;width:28px;height:28px;transition:transform 20ms linear;position:fixed;top:0;left:0;transform:translate(-100px,-100px)translate(-50%,-50%)}.custom-cursor:after{content:"";border:2px solid var(--color-strike-orange);opacity:0;border-radius:999px;transition:opacity .12s;position:absolute;inset:0;transform:scale(.6)}.custom-cursor--loop:after{opacity:1;animation:.55s cubic-bezier(.2,.9,.2,1) infinite cursor-ripple}@keyframes cursor-ripple{0%{opacity:.7;transform:scale(.55)}20%{opacity:.5;transform:scale(1.15)}to{opacity:0;transform:scale(1.6)}}@media (pointer:coarse){body{cursor:auto}.custom-cursor{display:none}}::selection{background:var(--color-geo-cyan);color:var(--color-strike-orange)}a{color:var(--color-ink-black);cursor:none;text-decoration:none}img,svg{max-width:100%;display:block}hr{border:none;border-top:1px solid var(--color-ink-black);width:100%}.text-caption{font-size:var(--text-caption);letter-spacing:1.2px;line-height:1.18}.text-body{font-size:var(--text-body);letter-spacing:-.32px;line-height:1.5}.text-subheading{font-size:var(--text-subheading);letter-spacing:-.36px;line-height:1.25}.text-heading{font-size:var(--text-heading);letter-spacing:-.5px;font-weight:300;line-height:1.27}.text-heading-lg{font-size:var(--text-heading-lg);letter-spacing:-.64px;font-weight:300;line-height:1.2}.text-display-sm{font-size:var(--text-display-sm);letter-spacing:-.8px;font-weight:300;line-height:1.34}.text-display{font-size:var(--text-display);letter-spacing:-.86px;font-weight:300;line-height:1.34}.page{gap:var(--section-gap);flex-direction:column;padding-top:72px;display:flex}.hero{min-height:100vh;padding:72px var(--spacing-20) var(--spacing-43);background:var(--color-canvas-white);align-items:center;display:flex}.hero-inner{gap:var(--spacing-12);flex-direction:column;width:100%;max-width:1040px;margin:0 auto;display:flex;position:relative}.hero-name{flex-direction:column;display:inline-flex;position:relative}.focus-dot{background:var(--color-strike-orange);opacity:.9;pointer-events:none;z-index:0;border-radius:999px;width:320px;height:320px;transition:opacity .2s;position:fixed;top:0;left:0;transform:translate(-200px,-200px)translate(-50%,-50%)}.focus-dot.is-hidden{opacity:0}.hero-title{font-family:var(--font-s-works);letter-spacing:.04em;text-transform:uppercase;z-index:1;font-size:clamp(40px,7vw,88px);line-height:.95;position:relative}.hero-location{letter-spacing:.08em;text-transform:uppercase;z-index:1;position:relative}.section{width:100%;padding:var(--spacing-43) var(--spacing-20);border-top:1px solid var(--color-ink-black);scroll-margin-top:56px}.section:first-of-type{border-top:none}.section-heading{font-family:var(--font-nh);font-size:var(--text-display);letter-spacing:-.86px;font-weight:300}.heading-initial{display:inline-block}.heading-initial.is-highlighted{color:var(--color-strike-orange)}.heading-initial.is-pulsing{animation:.26s cubic-bezier(.2,.9,.2,1) heading-initial-pulse}@keyframes heading-initial-pulse{0%{transform:scale(1)}35%{transform:scale(2.4)}65%{transform:scale(.96)}to{transform:scale(1)}}.section-heading+hr,hr+.section-heading{margin-top:var(--spacing-12)}.section-content{gap:var(--spacing-12);flex-direction:column;max-width:1040px;margin:0 auto;display:flex}.section-title{gap:var(--spacing-8);margin-bottom:var(--spacing-20);flex-direction:column;display:flex}#skills .section-title{margin-bottom:var(--spacing-4)}#skills .section-content{gap:var(--spacing-4)}#skills .skills-stack{margin-top:0;margin-bottom:var(--spacing-43)}.about-layout{gap:var(--spacing-20);grid-template-columns:minmax(0,1.2fr) minmax(220px,.8fr);align-items:start;display:grid}.about-copy{grid-column:1/-1;grid-template-columns:minmax(0,620px) minmax(220px,320px);justify-content:space-between;align-items:start;gap:clamp(28px,5vw,72px);display:grid}.about-art{display:none}.about-greeting{font-family:var(--font-s-works);letter-spacing:0;text-transform:uppercase;text-align:left;flex-direction:column;font-size:clamp(40px,6vw,76px);line-height:.95;display:flex}.about-paragraphs{gap:var(--spacing-12);text-align:justify;text-align-last:left;flex-direction:column;max-width:620px;display:flex}.greeting-swap{color:var(--color-strike-orange);animation:.26s greeting-swap-down;display:inline-block}.about-highlight{color:var(--color-strike-orange);opacity:0;white-space:nowrap;font-weight:600;transition:opacity .52s,transform .76s cubic-bezier(.16,1,.3,1);display:inline-block;transform:translateY(-28px)}.about-has-revealed .about-highlight{opacity:1;transform:translateY(0)}.about-has-revealed .about-highlight:first-of-type{transition-delay:.12s}.about-has-revealed .about-highlight:nth-of-type(2){transition-delay:.26s}.about-has-revealed .about-highlight:nth-of-type(3){transition-delay:.4s}.about-has-revealed .about-highlight:nth-of-type(4){transition-delay:.54s}.about-has-revealed .about-highlight:nth-of-type(5){transition-delay:.68s}.about-has-revealed .about-highlight:nth-of-type(6){transition-delay:.82s}@keyframes greeting-swap-down{0%{opacity:0;transform:translateY(-10px)}60%{opacity:1;transform:translateY(2px)}to{opacity:1;transform:translateY(0)}}.section-rule{border-top:1px solid var(--color-ink-black);width:100%;margin-bottom:var(--spacing-20)}.navbar{background:var(--color-canvas-white);border-bottom:2px solid var(--color-ink-black);z-index:10;position:fixed;top:0;left:0;right:0}.nav-inner{max-width:1200px;padding:var(--spacing-12) var(--spacing-20);justify-content:space-between;align-items:center;margin:0 auto;display:flex}.nav-brand{font-family:var(--font-s-works);font-size:var(--text-subheading);letter-spacing:.08em;text-transform:uppercase}.nav-links{gap:var(--spacing-8);display:flex}.nav-overlay{display:none}.nav-toggle{appearance:none;border:1px solid var(--color-ink-black);cursor:none;background:0 0;flex-direction:column;justify-content:center;align-items:center;gap:6px;width:44px;height:36px;padding:0;display:none}.nav-toggle-bar{background:var(--color-ink-black);width:22px;height:2px;transition:transform .16s,opacity .16s}.nav-toggle.is-open .nav-toggle-bar:first-child{transform:translateY(8px)rotate(45deg)}.nav-toggle.is-open .nav-toggle-bar:nth-child(2){opacity:0}.nav-toggle.is-open .nav-toggle-bar:nth-child(3){transform:translateY(-8px)rotate(-45deg)}.nav-link{font-family:var(--font-s-condensed);letter-spacing:.1em;text-transform:uppercase;color:var(--color-ink-black);padding:var(--spacing-8) var(--spacing-12);z-index:0;border:none;font-size:14px;display:inline-block;position:relative;overflow:visible}.nav-link:hover{color:var(--color-strike-orange)}.nav-link:before{content:"";background:var(--color-geo-cyan);clip-path:polygon(0 100%,10% 5%,90% 85%);z-index:-1;transform-origin:0 100%;width:140%;height:140%;transition:none;position:absolute;bottom:0;left:0;transform:scale(0)}.nav-link:hover:before{animation:.22s steps(6,end) infinite nav-triangle-tilt;transform:scale(1)}@keyframes nav-triangle-tilt{0%{transform:scale(1)rotate(0)}33%{transform:scale(1.1)rotate(-2deg)}66%{transform:scale(1.1)rotate(2deg)}to{transform:scale(1)rotate(0)}}.btn{color:var(--color-ink-black);border:1px solid var(--color-ink-black);border-radius:var(--radius-none);z-index:0;background:0 0;padding:10px 20px;position:relative;overflow:hidden}.input-minimal{background:var(--color-canvas-white);color:var(--color-deep-black);border:1px solid var(--color-deep-black);border-radius:var(--radius-none);padding:var(--spacing-8) 0;width:100%}.input-minimal::placeholder{color:var(--color-ink-black);opacity:1}.project-list{gap:var(--spacing-12);flex-direction:column;list-style:none;display:flex}.project-item{border-top:1px solid var(--color-ink-black);padding-top:var(--spacing-12);gap:var(--spacing-8);flex-direction:column;display:flex}.projects-header{justify-content:space-between;align-items:flex-start;gap:var(--spacing-20);flex-wrap:wrap;display:flex}.projects-filters{align-items:flex-start;gap:var(--spacing-8);margin-top:var(--spacing-8);flex-direction:column;display:flex}.projects-search-row,.projects-filter-row{align-items:center;gap:var(--spacing-8);display:inline-flex}.projects-filter-label{letter-spacing:.12em;text-transform:uppercase}.projects-search{border:1px solid var(--color-ink-black);padding:6px var(--spacing-12);letter-spacing:.08em;min-width:220px}.projects-search:focus-visible{outline:none}.projects-search:focus{box-shadow:none;outline:none}.projects-search-button{appearance:none;border:1px solid var(--color-ink-black);color:var(--color-ink-black);font-family:var(--font-s-condensed);letter-spacing:.1em;text-transform:uppercase;padding:6px var(--spacing-12);cursor:none;background:0 0}.projects-search-button:hover,.projects-search-button:focus-visible{color:var(--color-canvas-white);background:var(--color-ink-black)}.projects-filter-button{appearance:none;border:1px solid var(--color-ink-black);color:var(--color-ink-black);font-family:var(--font-s-condensed);letter-spacing:.1em;text-transform:uppercase;padding:var(--spacing-8) var(--spacing-12);z-index:0;cursor:none;background:0 0;position:relative}.projects-filter-button:hover,.projects-filter-button:focus-visible,.projects-filter-button.is-active{color:var(--color-canvas-white);background:var(--color-ink-black)}.projects-carousel{justify-content:center;align-items:center;gap:var(--spacing-20);grid-template-columns:44px minmax(0,1fr) 44px;display:grid}.projects-carousel.is-empty{grid-template-columns:minmax(0,1fr)}.projects-empty{text-align:center;border:1px solid var(--color-ink-black);padding:var(--spacing-12);text-transform:uppercase;letter-spacing:.12em}.projects-carousel-arrow{aspect-ratio:1;width:44px;color:var(--color-ink-black);font-family:var(--font-s-condensed);cursor:none;z-index:0;background:0 0;border:none;place-items:center;font-size:28px;line-height:1;display:grid;position:relative;overflow:visible}.projects-carousel-arrow:before{content:"";background:var(--color-geo-cyan);clip-path:polygon(0 100%,10% 5%,90% 85%);z-index:-1;transform-origin:0 100%;width:140%;height:140%;transition:none;position:absolute;bottom:0;left:0;transform:scale(0)}.projects-carousel-arrow:hover,.projects-carousel-arrow:focus-visible{color:var(--color-strike-orange)}.projects-carousel-arrow:hover:before,.projects-carousel-arrow:focus-visible:before{animation:.22s steps(6,end) infinite nav-triangle-tilt;transform:scale(1)}.projects-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(20px,2.5vw,36px);display:grid}.projects-grid.is-sliding-next{animation:.46s cubic-bezier(.16,1,.3,1) projects-carousel-slide-next}.projects-grid.is-sliding-prev{animation:.46s cubic-bezier(.16,1,.3,1) projects-carousel-slide-prev}@keyframes projects-carousel-slide-next{0%{opacity:0;transform:translate(18%)}55%{opacity:1}to{opacity:1;transform:translate(0)}}@keyframes projects-carousel-slide-prev{0%{opacity:0;transform:translate(-18%)}55%{opacity:1}to{opacity:1;transform:translate(0)}}.project-card{appearance:none;text-align:left;cursor:none;gap:var(--spacing-8);--project-reveal-y:42px;opacity:1;transform-origin:50%;background:0 0;border:none;flex-direction:column;justify-self:center;width:min(100%,600px);transition:opacity .52s,transform .72s cubic-bezier(.16,1,.3,1);display:flex;transform:translateY(0)scale(1)}.projects-is-waiting .project-card{opacity:0;transform:translateY(var(--project-reveal-y)) scale(1)}.projects-has-revealed .project-card{--project-reveal-y:0px;opacity:1;transform:translateY(0)scale(1)}.projects-has-revealed .project-card[data-carousel-offset="-1"]{transition-delay:.18s}.projects-has-revealed .project-card[data-carousel-offset="0"]{transition-delay:.3s}.projects-has-revealed .project-card[data-carousel-offset="1"]{transition-delay:.42s}.project-card:focus-visible{transform:translateY(var(--project-reveal-y)) scale(1.035)}.project-figure{border:1px solid var(--color-ink-black);background:var(--color-canvas-white);width:100%;height:300px;position:relative;overflow:hidden}.project-image{object-fit:cover;width:100%;height:100%}.project-overlay{background:var(--color-deep-black);opacity:0;width:100%;height:50%;padding:var(--spacing-12);align-items:flex-end;transition:none;display:flex;position:absolute;bottom:0;left:0}.project-tags{gap:var(--spacing-8);flex-wrap:wrap;display:flex}.project-card:focus-visible .project-figure{border-color:var(--color-ink-black)}.project-card:focus-visible{outline:2px solid var(--color-ink-black);outline-offset:4px}.project-modal-backdrop{z-index:1000;padding:var(--spacing-20);background:#000000d1;justify-content:center;align-items:center;display:flex;position:fixed;inset:0;overflow-y:auto}.project-modal{background:var(--color-canvas-white);border:1px solid var(--color-ink-black);width:min(1100px,100%);padding:var(--spacing-20);padding-bottom:var(--spacing-12);flex-direction:column;height:96vh;max-height:96vh;display:flex;position:relative;overflow:hidden;box-shadow:0 18px 40px #00000038}.project-modal-topbar{align-items:stretch;gap:var(--spacing-12);margin-bottom:var(--spacing-8);flex-direction:column;flex:none;display:flex}.project-modal-close-row{justify-content:space-between;align-items:center;min-height:36px;display:flex}.project-modal-navbar{align-items:center;gap:var(--spacing-12);width:100%;padding-inline:var(--spacing-12);flex:auto;justify-content:space-between;display:flex}.project-modal-nav-btn{align-items:center;gap:var(--spacing-8);color:var(--color-ink-black);cursor:none;background:0 0;border:none;padding:4px 0;font-size:16px;display:inline-flex}.project-modal-nav-left,.project-modal-nav-right{align-items:center;gap:var(--spacing-8);display:inline-flex}.project-modal-nav-thumb-btn{appearance:none;cursor:none;background:0 0;border:none;padding:0;display:inline-flex}.project-modal-nav-label{z-index:0;padding:var(--spacing-4) var(--spacing-8);display:inline-block;position:relative;overflow:visible}.project-modal-nav-label:before{content:"";background:var(--color-geo-cyan);clip-path:polygon(0 100%,10% 5%,90% 85%);z-index:-1;transform-origin:0 100%;width:140%;height:140%;transition:none;position:absolute;bottom:0;left:0;transform:scale(0)}.project-modal-nav-label:hover,.project-modal-nav-label:focus-visible,.project-modal-nav-btn:focus-visible .project-modal-nav-label,.project-modal-nav-thumb-btn:focus-visible+.project-modal-nav-btn .project-modal-nav-label,.project-modal-nav-group:hover .project-modal-nav-label{color:var(--color-strike-orange)}.project-modal-nav-label:hover:before,.project-modal-nav-label:focus-visible:before,.project-modal-nav-btn:focus-visible .project-modal-nav-label:before,.project-modal-nav-thumb-btn:focus-visible+.project-modal-nav-btn .project-modal-nav-label:before,.project-modal-nav-group:hover .project-modal-nav-label:before{animation:.22s steps(6,end) infinite nav-triangle-tilt;transform:scale(1)}.project-modal-nav-thumb{object-fit:cover;border:1px solid var(--color-ink-black);width:72px;height:54px}.project-modal-nav-center{flex-direction:column;align-items:center;gap:4px;display:flex}.project-modal-nav-title{font-weight:500}.project-modal-accordion{border:1px solid var(--color-ink-black);background:var(--color-canvas-white);margin-bottom:var(--spacing-12)}.project-modal-accordion-summary{justify-content:space-between;align-items:center;gap:var(--spacing-12);padding:var(--spacing-8) var(--spacing-12);cursor:none;text-transform:uppercase;letter-spacing:.08em;border-bottom:1px solid var(--color-ink-black);list-style:none;display:flex}.project-modal-accordion-summary::-webkit-details-marker{display:none}.project-modal-accordion-body{padding:var(--spacing-8) var(--spacing-12) var(--spacing-12);grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;display:grid}.project-modal-accordion-button{border:1px solid var(--color-ink-black);cursor:none;text-align:left;background:0 0;flex-direction:column;align-items:flex-start;gap:2px;min-height:48px;padding:6px 8px;display:flex}.project-modal-accordion-button:hover{background:#0000000a}.project-modal-accordion-button .text-body{font-size:14px;line-height:1.2}.project-modal-close{width:36px;height:36px;color:var(--color-ink-black);cursor:none;z-index:0;background:0 0;border:none;flex:none;font-size:20px;line-height:1;position:relative;overflow:visible}.project-modal-close:before{content:"";background:var(--color-geo-cyan);clip-path:polygon(0 100%,10% 5%,90% 85%);z-index:-1;transform-origin:0 100%;width:140%;height:140%;transition:none;position:absolute;bottom:-3px;left:-3px;transform:scale(0)}.project-modal-close:hover,.project-modal-close:focus-visible{color:var(--color-strike-orange)}.project-modal-close:hover:before,.project-modal-close:focus-visible:before{animation:.22s steps(6,end) infinite nav-triangle-tilt;transform:scale(1)}.project-modal-layout{gap:var(--spacing-20);padding-top:var(--spacing-12);padding-inline:var(--spacing-12);flex:auto;grid-template-columns:minmax(0,1.2fr) minmax(360px,1.1fr);align-items:stretch;min-height:0;display:grid}.project-modal-media,.project-modal-content{gap:var(--spacing-12);flex-direction:column;min-height:0;display:flex}.project-modal-content{min-height:0;overflow:hidden}.project-modal-stage{appearance:none;border:1px solid var(--color-ink-black);background:var(--color-canvas-white);aspect-ratio:4/3;cursor:none;text-align:left;z-index:0;width:100%;padding:0;display:block;position:relative;overflow:hidden}.project-modal-stage:before{content:"";z-index:1;opacity:0;pointer-events:none;background:#0000002e;transition:opacity .16s;position:absolute;inset:0}.project-modal-stage:hover:before,.project-modal-stage:focus-visible:before{opacity:1}.project-modal-stage:hover .project-modal-image,.project-modal-stage:focus-visible .project-modal-image{transform:scale(1.02)}.project-modal-image{transition:transform .18s}.project-modal-stage.is-sliding-next .project-modal-image{animation:.52s cubic-bezier(.16,1,.3,1) project-media-slide-next}.project-modal-stage.is-sliding-prev .project-modal-image{animation:.52s cubic-bezier(.16,1,.3,1) project-media-slide-prev}@keyframes project-media-slide-next{0%{opacity:0;transform:translate(42%)}55%{opacity:1}to{opacity:1;transform:translate(0)}}@keyframes project-media-slide-prev{0%{opacity:0;transform:translate(-42%)}55%{opacity:1}to{opacity:1;transform:translate(0)}}.project-modal-hint{text-transform:uppercase;letter-spacing:.08em;padding-left:2px}.project-modal-thumbs{gap:6px;margin-top:4px;padding-bottom:0;display:flex;overflow:auto hidden}.project-modal-thumb{border:1px solid var(--color-ink-black);background:var(--color-canvas-white);opacity:.7;cursor:none;flex:0 0 112px;height:80px;padding:0;overflow:hidden}.project-modal-thumb.is-active{opacity:1;border-color:var(--color-ink-black)}.project-modal-thumb-image{object-fit:cover;width:100%;height:100%}.project-modal-thumb-label{background:var(--color-ink-black);width:100%;height:100%;color:var(--color-canvas-white);letter-spacing:.14em;font-family:var(--font-s-condensed);justify-content:center;align-items:center;display:flex}.project-modal-image{object-fit:cover;background:var(--color-canvas-white);width:100%;height:100%}.project-image-lightbox{z-index:1100;padding:var(--spacing-20);cursor:none;background:#000000eb;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.project-image-lightbox-stage{cursor:none;background:0 0;border:none;max-width:100%;max-height:100%;padding:0}.project-image-lightbox-image{object-fit:contain;border:1px solid #fff3;width:auto;max-width:min(92vw,1200px);height:auto;max-height:92vh;box-shadow:0 18px 48px #00000080}.project-image-lightbox-close{width:40px;height:40px;color:var(--color-canvas-white);cursor:none;z-index:0;background:0 0;border:none;font-size:22px;line-height:1;position:absolute;top:18px;right:18px;overflow:visible}.project-image-lightbox-close:before{content:"";background:var(--color-geo-cyan);clip-path:polygon(0 100%,10% 5%,90% 85%);z-index:-1;transform-origin:0 100%;width:140%;height:140%;transition:none;position:absolute;bottom:-3px;left:-3px;transform:scale(0)}.project-image-lightbox-close:hover,.project-image-lightbox-close:focus-visible{color:var(--color-strike-orange)}.project-image-lightbox-close:hover:before,.project-image-lightbox-close:focus-visible:before{animation:.22s steps(6,end) infinite nav-triangle-tilt;transform:scale(1)}.project-image-lightbox-nav{padding:var(--spacing-20);pointer-events:none;justify-content:space-between;align-items:center;display:flex;position:absolute;inset:0}.project-image-lightbox-arrow{width:44px;height:44px;color:var(--color-canvas-white);font-family:var(--font-s-condensed);cursor:none;pointer-events:auto;background:#0000004d;border:1px solid #ffffff80;font-size:24px;line-height:1}.project-image-lightbox-arrow:hover,.project-image-lightbox-arrow:focus-visible{background:var(--color-canvas-white);color:var(--color-ink-black)}.project-modal-nav{justify-content:space-between;align-items:center;gap:var(--spacing-8);display:flex}.project-modal-arrow{width:40px;height:40px;color:var(--color-ink-black);cursor:none;z-index:0;background:0 0;border:none;font-size:18px;line-height:1;position:relative;overflow:visible}.project-modal-arrow:before{content:"";background:var(--color-geo-cyan);clip-path:polygon(0 100%,10% 5%,90% 85%);z-index:-1;transform-origin:0 100%;width:140%;height:140%;transition:none;position:absolute;bottom:-3px;left:-3px;transform:scale(0)}.project-modal-arrow:hover,.project-modal-arrow:focus-visible{color:var(--color-strike-orange)}.project-modal-arrow:hover:before,.project-modal-arrow:focus-visible:before{animation:.22s steps(6,end) infinite nav-triangle-tilt;transform:scale(1)}.project-modal-header{gap:var(--spacing-8);border-bottom:none;flex-direction:column;padding-bottom:0;display:flex}.project-modal-card{border:1px solid var(--color-ink-black);background:var(--color-canvas-white);padding:var(--spacing-12)}.project-modal-title{font-size:clamp(18px,1.8vw,24px);line-height:1.05}.project-features{gap:var(--spacing-12);margin-top:var(--spacing-20);flex-direction:column;flex:auto;min-height:0;display:flex;overflow:hidden auto}.project-feature{border-top:1px solid var(--color-ink-black);padding:var(--spacing-12) 0}.project-features .project-feature:first-child{padding-top:var(--spacing-8);border-top:none}.project-feature-summary{cursor:none;justify-content:space-between;align-items:center;gap:var(--spacing-8);z-index:0;padding-inline:var(--spacing-8);list-style:none;display:flex;position:relative;overflow:visible}.project-feature-summary::-webkit-details-marker{display:none}.project-feature-summary:before{content:"";bottom:-12px;left:var(--spacing-8);background:var(--color-geo-cyan);clip-path:polygon(0 100%,16% 0,100% 88%);z-index:-1;transform-origin:0 100%;width:72%;height:160%;transition:none;position:absolute;transform:scale(0)}.project-feature-summary:after{content:">";transform-origin:50%;color:var(--color-ink-black);will-change:transform, opacity;margin-left:12px;font-size:22px;line-height:1;transition:transform .18s cubic-bezier(.2,.9,.2,1),opacity .16s;display:inline-block;transform:rotate(0)scale(1)}.project-feature-summary:hover,.project-feature-summary:focus-visible{color:var(--color-strike-orange)}.project-feature-summary:hover:before,.project-feature-summary:focus-visible:before{animation:.22s steps(6,end) infinite nav-triangle-tilt;transform:scale(1)}.project-feature[open]>.project-feature-summary:after{animation:.22s cubic-bezier(.2,.9,.2,1) arrow-pop;transform:rotate(90deg)scale(1)}@keyframes arrow-pop{0%{opacity:.7;transform:rotate(0)scale(.88)}60%{opacity:1;transform:rotate(100deg)scale(1.14)}to{opacity:1;transform:rotate(90deg)scale(1)}}.project-feature-summary:hover:after,.project-feature-summary:focus-visible:after{color:var(--color-strike-orange)}.project-feature-body{padding-top:var(--spacing-12);color:#000000e0}@media (width<=840px){.project-modal-backdrop{align-items:flex-start}.project-modal{height:auto;max-height:none;overflow:visible}.project-modal-content{overflow:visible}.project-modal-layout{gap:var(--spacing-12);flex-direction:column;display:flex}.project-modal-media{order:0}.project-modal-content{order:1;padding-top:0;padding-left:0}}.project-modal-tags{border-top:none;padding-top:0;padding-bottom:0}.project-modal-tags .project-tag{color:var(--color-ink-black);border-color:var(--color-ink-black)}.project-modal-actions{align-items:center;gap:var(--spacing-8);display:inline-flex}.project-github-button,.project-demo-button{color:var(--color-ink-black);align-items:center;gap:var(--spacing-8);font-family:var(--font-s-condensed);letter-spacing:.1em;padding:var(--spacing-8) var(--spacing-12);text-transform:uppercase;z-index:0;font-size:14px;line-height:1.2;display:inline-flex;position:relative}.project-github-button svg{flex:none;width:18px;height:18px}.project-github-button:before,.project-demo-button:before{content:"";background:var(--color-geo-cyan);clip-path:polygon(0 100%,10% 5%,90% 85%);z-index:-1;transform-origin:0 100%;width:140%;height:140%;transition:none;position:absolute;bottom:0;left:0;transform:scale(0)}.project-github-button:hover,.project-github-button:focus-visible,.project-demo-button:hover,.project-demo-button:focus-visible{color:var(--color-strike-orange)}.project-github-button:hover:before,.project-github-button:focus-visible:before,.project-demo-button:hover:before,.project-demo-button:focus-visible:before{animation:.22s steps(6,end) infinite nav-triangle-tilt;transform:scale(1)}.project-tag{color:var(--color-canvas-white);border:1px solid var(--color-canvas-white);letter-spacing:.08em;text-transform:uppercase;font-size:12px;font-family:var(--font-s-condensed);padding:2px 8px}.project-meta{border-bottom:1px solid var(--color-ink-black);padding-bottom:var(--spacing-8);text-transform:uppercase;justify-content:space-between;align-items:center;display:flex}.project-summary{-webkit-line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.project-label,.project-type{font-family:var(--font-s-condensed);letter-spacing:.1em}.project-card:hover .project-type,.project-card:focus-visible .project-type{color:var(--color-strike-orange)}.skills-grid{gap:var(--spacing-20);grid-template-columns:repeat(auto-fit,minmax(180px,1fr));display:grid}.skills-stack{cursor:default;perspective:900px;grid-template-columns:minmax(0,1fr);place-items:center;min-height:360px;display:grid;position:relative}.skills-stack:focus-visible{outline:2px solid var(--color-ink-black);outline-offset:4px}.skills-card{background:var(--color-canvas-white);border:1px solid var(--color-ink-black);gap:var(--spacing-12);width:280px;min-height:300px;box-shadow:none;opacity:1;--reveal-offset:0px;--tilt-x:0deg;--tilt-y:0deg;transform:translate(calc((var(--stack-index) - 1.5) * 260px), calc((var(--stack-index) - 1.5) * (var(--stack-index) - 1.5) * 34px)) rotate(calc((var(--stack-index) - 1.5) * 6deg)) translateY(var(--reveal-offset)) perspective(900px) rotateX(var(--tilt-x)) rotateY(var(--tilt-y));transform-origin:50%;z-index:calc(10 - var(--stack-index));will-change:transform, opacity;backface-visibility:hidden;transform-style:preserve-3d;flex-direction:column;grid-area:1/1;padding:14px 24px 20px;transition:transform .14s;display:flex;position:absolute}.skills-card[role=button]{cursor:none;text-align:left}.skills-card:hover{transform:translate(calc((var(--stack-index) - 1.5) * 260px + 6px), calc((var(--stack-index) - 1.5) * (var(--stack-index) - 1.5) * 52px - 18px)) rotate(calc((var(--stack-index) - 1.5) * 6deg)) scale(1.06) translateZ(32px) translateY(var(--reveal-offset)) perspective(900px) rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg));z-index:20;transition:transform 40ms}.skills-card--reveal{opacity:0;--reveal-offset:18px;transition:transform .42s cubic-bezier(.22,.61,.36,1),opacity .42s cubic-bezier(.22,.61,.36,1)}#skills .skills-stack .skills-card--reveal{transition-delay:0s}#skills .skills-stack .skills-card--reveal.is-visible{opacity:1;--reveal-offset:0px}#skills .skills-stack .skills-card--reveal{--is-visible:0}#skills .skills-stack .skills-card--reveal[data-index="0"],#skills .skills-stack .skills-card--reveal[data-index="1"],#skills .skills-stack .skills-card--reveal[data-index="2"],#skills .skills-stack .skills-card--reveal[data-index="3"]{opacity:0}#skills .skills-stack[data-visible-count="1"] .skills-card--reveal[data-index="0"],#skills .skills-stack[data-visible-count="2"] .skills-card--reveal[data-index="0"],#skills .skills-stack[data-visible-count="2"] .skills-card--reveal[data-index="1"],#skills .skills-stack[data-visible-count="3"] .skills-card--reveal[data-index="0"],#skills .skills-stack[data-visible-count="3"] .skills-card--reveal[data-index="1"],#skills .skills-stack[data-visible-count="3"] .skills-card--reveal[data-index="2"],#skills .skills-stack[data-visible-count="4"] .skills-card--reveal[data-index="0"],#skills .skills-stack[data-visible-count="4"] .skills-card--reveal[data-index="1"],#skills .skills-stack[data-visible-count="4"] .skills-card--reveal[data-index="2"],#skills .skills-stack[data-visible-count="4"] .skills-card--reveal[data-index="3"]{opacity:1;--reveal-offset:0px}.skills-card .project-list{gap:10px}.skills-card .project-item{padding-top:8px}.skills-stack.is-scattered .skills-card{transform:translate(calc((var(--stack-index) - 1.5) * 20px + var(--scatter-x)), calc(var(--stack-index) * 10px + var(--scatter-y))) rotate(calc((var(--stack-index) - 1.5) * 3deg + var(--scatter-rot)))}.skills-stack:hover .skills-card:first-child,.skills-card:hover{border-color:var(--color-ink-black)}.form-stack{gap:var(--spacing-12);flex-direction:column;display:flex}.form-field{gap:var(--spacing-8);flex-direction:column;display:flex}.cert-title{justify-content:space-between;align-items:baseline;gap:var(--spacing-8);display:flex}.cert-item{align-items:center;gap:var(--spacing-12);flex-direction:row}.cert-badge{border:1px solid var(--color-ink-black);background:var(--color-canvas-white);flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;display:flex}.cert-badge img{object-fit:contain;width:70%;height:70%}.cert-content{gap:var(--spacing-8);flex-direction:column;flex:1;display:flex}.cert-name:after{content:attr(data-href);margin-left:var(--spacing-8);letter-spacing:.04em;white-space:nowrap;background:var(--color-ink-black);color:var(--color-canvas-white);opacity:0;padding:4px 8px;font-size:12px;transition:opacity .12s}.cert-name:hover:after{opacity:1}.cert-name{align-items:center;gap:var(--spacing-8);display:inline-flex;position:relative}.footer{border-top:2px solid var(--color-ink-black);padding:var(--spacing-20)}.footer-inner{justify-content:space-between;align-items:center;max-width:1040px;margin:0 auto;display:flex}.footer-meta{flex-direction:column;gap:6px;display:flex}.footer-location{letter-spacing:.08em;font-weight:500}.footer-quicklinks{align-items:center;gap:12px;display:flex}.footer-quicklink{color:var(--color-ink-black);z-index:0;padding:var(--spacing-4) var(--spacing-8);display:inline-block;position:relative;overflow:visible}.footer-quicklink:before{content:"";background:var(--color-geo-cyan);clip-path:polygon(0 100%,10% 5%,90% 85%);z-index:-1;transform-origin:0 100%;width:140%;height:140%;transition:none;position:absolute;bottom:0;left:0;transform:scale(0)}.footer-quicklink:hover,.footer-quicklink:focus-visible{color:var(--color-strike-orange)}.footer-quicklink:hover:before,.footer-quicklink:focus-visible:before{animation:.22s steps(6,end) infinite nav-triangle-tilt;transform:scale(1)}.footer-links{align-items:center;gap:var(--spacing-12);display:flex}.footer-icon{width:36px;height:36px;color:var(--color-ink-black);z-index:0;border:none;justify-content:center;align-items:center;display:inline-flex;position:relative;overflow:visible}.footer-icon svg{width:18px;height:18px}.footer-icon:before{content:"";background:var(--color-geo-cyan);clip-path:polygon(0 100%,10% 5%,90% 85%);z-index:-1;transform-origin:0 100%;width:140%;height:140%;transition:none;position:absolute;bottom:-3px;left:-3px;transform:scale(0)}.footer-icon:hover,.footer-icon:focus-visible{color:var(--color-strike-orange)}.footer-icon:hover:before,.footer-icon:focus-visible:before{animation:.22s steps(6,end) infinite nav-triangle-tilt;transform:scale(1)}.skills-modal-backdrop{z-index:1000;padding:var(--spacing-20);background:#000000d1;justify-content:center;align-items:center;display:flex;position:fixed;inset:0;overflow-y:auto}.skills-modal{background:var(--color-canvas-white);border:1px solid var(--color-ink-black);width:min(920px,100%);padding:var(--spacing-12);position:relative;box-shadow:0 18px 40px #00000038}.skills-modal-topbar{margin-bottom:var(--spacing-8);justify-content:flex-end;align-items:center;display:flex}.skills-modal-close{border:1px solid var(--color-ink-black);background:var(--color-canvas-white);cursor:none;width:36px;height:36px;font-size:20px;line-height:1}.skills-modal-layout{gap:var(--spacing-12);grid-template-columns:minmax(0,1fr) minmax(280px,.8fr);align-items:start;display:grid}.skills-modal-media,.skills-modal-content{gap:var(--spacing-8);flex-direction:column;display:flex}.skills-modal-stage{aspect-ratio:1;border:1px solid var(--color-ink-black);background:var(--color-canvas-white);cursor:none;width:100%;padding:0;overflow:hidden}.skills-modal-hint{text-transform:uppercase;letter-spacing:.08em;padding-left:2px}.skills-modal-image{object-fit:cover;width:100%;height:100%;display:block}.skills-modal-thumbs{gap:6px;margin-top:4px;padding-bottom:0;display:flex;overflow-x:auto}.skills-modal-thumb{border:1px solid var(--color-ink-black);background:var(--color-canvas-white);opacity:.7;cursor:none;flex:0 0 72px;height:52px;padding:0;overflow:hidden}.skills-modal-thumb.is-active{opacity:1;border-color:var(--color-ink-black)}.skills-modal-thumb-image{object-fit:cover;width:100%;height:100%;display:block}.skills-modal-title{font-size:clamp(18px,1.8vw,24px);line-height:1.05}.skills-modal-lightbox{z-index:1100;padding:var(--spacing-20);cursor:none;background:#000000eb;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.skills-modal-lightbox-stage{cursor:none;background:0 0;border:none;max-width:100%;max-height:100%;padding:0}.skills-modal-lightbox-image{object-fit:contain;border:1px solid #fff3;width:auto;max-width:min(92vw,1200px);height:auto;max-height:92vh;box-shadow:0 18px 48px #00000080}.skills-modal-lightbox-close{border:1px solid var(--color-canvas-white);width:40px;height:40px;color:var(--color-canvas-white);cursor:none;background:0 0;font-size:22px;line-height:1;position:absolute;top:18px;right:18px}@media (width<=1024px){.projects-carousel{grid-template-columns:40px minmax(0,1fr) 40px}.projects-carousel-arrow{width:40px;font-size:26px}.projects-grid{gap:var(--spacing-20);grid-template-columns:repeat(3,minmax(0,1fr))}.project-card{width:min(100%,420px)}.project-figure{height:240px}}@media (width<=768px){.page,.hero{padding-top:64px}.nav-inner{align-items:flex-start;gap:var(--spacing-8);flex-direction:column}.nav-links{flex-wrap:wrap}.section{padding:var(--spacing-43) var(--spacing-20)}.section-content{max-width:100%}.section-heading{font-size:var(--text-display-sm)}.about-layout{grid-template-columns:1fr}.about-copy{gap:var(--spacing-12);grid-template-columns:1fr}.about-greeting{text-align:left}.projects-header{flex-direction:column;align-items:flex-start}.nav-inner{position:relative}.nav-toggle{display:inline-flex}.nav-overlay{opacity:0;pointer-events:none;z-index:18;background:#0009;transition:opacity .2s;display:block;position:fixed;inset:0}.nav-overlay.is-open{opacity:1;pointer-events:auto}.nav-links{background:var(--color-canvas-white);border:1px solid var(--color-ink-black);width:85vw;max-width:420px;padding:var(--spacing-20);gap:var(--spacing-12);z-index:19;flex-direction:column;transition:transform .22s cubic-bezier(.16,1,.3,1);display:flex;position:fixed;top:0;bottom:0;left:0;transform:translate(-100%)}.nav-links.is-open{transform:translate(0)}.nav-link{font-size:18px}.projects-grid{grid-template-columns:1fr}.project-card:not([data-carousel-offset="0"]){display:none}.project-modal-layout{grid-template-columns:1fr}.skills-stack{gap:var(--spacing-12);min-height:0}.skills-modal-layout{grid-template-columns:1fr}.skills-modal-backdrop{padding:var(--spacing-12)}.skills-modal{padding:var(--spacing-8)}.skills-card{width:240px;min-height:260px;transform:translate(calc((var(--stack-index) - 1.5) * 150px), calc((var(--stack-index) - 1.5) * (var(--stack-index) - 1.5) * 34px)) rotate(calc((var(--stack-index) - 1.5) * 5deg));position:relative}.project-meta{align-items:flex-start;gap:var(--spacing-4);flex-direction:column}.footer-inner{flex-direction:column;align-items:flex-start}}@media (width<=480px){.section{padding:var(--spacing-43) var(--spacing-12)}.projects-grid{grid-template-columns:1fr}.projects-carousel{gap:var(--spacing-8);grid-template-columns:36px minmax(0,1fr) 36px}.projects-carousel-arrow{width:36px;font-size:24px}.project-modal-backdrop,.skills-modal-lightbox{padding:var(--spacing-12)}}.divider{border-top:1px solid var(--color-ink-black);width:100%}
