.canvas-background{position:absolute;top:0;left:0;width:100%;height:100%;background:radial-gradient(ellipse at center,var(--color-space-mid) 0%,var(--color-space-deep) 70%);z-index:0;cursor:pointer}.hero{min-height:100vh;padding:var(--spacing-4);color:var(--color-white);position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:space-between;border-bottom:4px solid var(--color-primary)}.hero-content{z-index:1;text-align:left;max-width:100%;flex:1;display:flex;flex-direction:column;justify-content:center;position:relative;pointer-events:none}.hero-content:before{content:"";position:absolute;top:-10%;left:-5%;width:80%;height:120%;background:linear-gradient(to right,#0000008c,#0000);z-index:-1;pointer-events:none}.hero-eyebrow{margin:0 0 var(--spacing-3);font-family:var(--font-primary);font-size:.72rem;font-weight:var(--font-weight-semibold);letter-spacing:.24em;text-transform:uppercase;color:var(--color-primary-lighter);pointer-events:none}.hero-headline{max-width:22ch;margin:0 0 var(--spacing-4);font-family:var(--font-display);font-size:clamp(2.1rem,8.4vw,2.8rem);font-weight:700;line-height:1.02;letter-spacing:-.025em;color:var(--color-paper);pointer-events:none}.hero-headline em{font-style:normal;font-weight:300;color:var(--color-copper)}.hero-description{font-family:var(--font-primary);font-size:var(--font-size-lg);font-weight:var(--font-weight-light);line-height:1.45;color:#ece8dfd1;pointer-events:none;margin:0 0 var(--spacing-6)}.hero-cta-row{display:flex;flex-wrap:wrap;gap:var(--spacing-3);pointer-events:none}.hero-button{color:var(--color-paper);text-decoration:none;font-size:.72rem;font-weight:var(--font-weight-semibold);letter-spacing:.2em;text-transform:uppercase;padding:.8rem 1.4rem;border:1px solid rgba(236,232,223,.55);background-color:transparent;border-radius:var(--radius-sm);display:inline-block;transition:all .3s ease;pointer-events:auto;align-self:flex-start}.hero-button:hover span{transform:translateY(200%)}.hero-button:hover:after{transform:translateY(0)}.hero-button:after{background-color:var(--color-paper);color:var(--color-space-deep)}.hero-button--primary{border-color:var(--color-primary);background-color:var(--color-primary);color:var(--color-space-deep)}.hero-button--primary:after{background-color:var(--color-paper);color:var(--color-space-deep)}.hero-scroll-cue{align-self:center;z-index:1;display:none;pointer-events:auto;color:#fffc;text-decoration:none;animation:hero-scroll-bob 1.8s ease-in-out infinite}.hero-scroll-cue__chevron{display:block;width:14px;height:14px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg)}@keyframes hero-scroll-bob{0%,to{transform:translateY(0)}50%{transform:translateY(8px)}}@media (min-width: 480px){.hero-scroll-cue{display:block}}@media (min-width: 768px){.hero{padding:var(--spacing-12)}.hero-content{max-width:80vw;justify-content:center}.hero-headline{font-size:clamp(2.6rem,4.2vw,3.5rem)}.hero-description{font-size:var(--font-size-lg)}}@media (min-width: 1024px){.hero-content{max-width:70vw}}.projects-section{--ivory: var(--color-paper);--muted: #9aa8a5;--rule: rgba(236, 232, 223, .14);--rule-strong: rgba(236, 232, 223, .32);position:relative;width:100%;padding:clamp(4.5rem,7vw,6rem) var(--spacing-6) var(--spacing-16);background:var(--color-archive);overflow:hidden}.archive-wave{position:absolute;top:0;left:0;width:100%;height:clamp(150px,19vw,250px);pointer-events:none}.projects-inner{position:relative;width:min(100%,1200px);margin:0 auto}.archive-header{margin-bottom:clamp(1.75rem,3vw,2.5rem)}.archive-eyebrow,.archive-type,.archive-year,.archive-count,.archive-pill,.archive-more-button{font-family:var(--font-primary);font-size:.7rem;font-weight:var(--font-weight-semibold);letter-spacing:.22em;text-transform:uppercase}.archive-eyebrow{display:flex;flex-wrap:wrap;align-items:center;gap:var(--spacing-2) var(--spacing-3);margin:0 0 var(--spacing-4);color:var(--muted)}.archive-eyebrow:after{content:"";width:4rem;height:1px;background:var(--rule-strong)}.archive-eyebrow>span{white-space:nowrap}.archive-eyebrow-sep{color:var(--color-primary)}.archive-headline{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);align-items:end;gap:var(--spacing-8)}.archive-heading{display:flex;flex-direction:column;margin:0;font-family:var(--font-display);font-size:clamp(2.8rem,6.2vw,5rem);font-weight:700;line-height:.9;letter-spacing:-.035em;color:var(--ivory)}.archive-heading em{font-style:normal;font-weight:300}.archive-heading-dot{color:var(--color-copper)}.archive-intro{max-width:24rem;margin:0 0 var(--spacing-3);font-family:var(--font-primary);font-size:clamp(1.05rem,1.4vw,1.2rem);font-weight:300;line-height:1.55;color:var(--ivory);opacity:.85}.archive-filters{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-6);margin-bottom:var(--spacing-4)}.archive-pills{display:flex;gap:var(--spacing-2)}.archive-pill{padding:.55rem 1.15rem;border:1px solid var(--rule-strong);border-radius:var(--radius-full);background:transparent;color:var(--ivory);letter-spacing:.14em;cursor:pointer;transition:background-color .25s var(--ease-standard),border-color .25s var(--ease-standard),color .25s var(--ease-standard)}.archive-pill:hover{border-color:var(--color-primary)}.archive-pill[aria-pressed=true]{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-archive)}.archive-pill:focus-visible,.archive-more-button:focus-visible{outline:2px solid var(--color-primary);outline-offset:3px}.archive-count{margin:0;color:var(--muted);white-space:nowrap}.archive-list{margin:0;padding:0;list-style:none;border-top:1px solid var(--rule-strong)}.archive-row{display:grid;grid-template-rows:1fr;transition:grid-template-rows var(--filter-ms) var(--ease-standard),opacity var(--filter-ms) var(--ease-standard)}.archive-row[data-shown=false]{grid-template-rows:0fr;opacity:0}.archive-row-clip{min-height:0;overflow:hidden}.archive-row-link{display:grid;grid-template-columns:minmax(7.5rem,auto) minmax(0,4.6fr) minmax(3.5rem,.8fr) minmax(0,2.4fr);align-items:center;gap:clamp(1rem,2.2vw,1.75rem);padding:var(--spacing-4) 0;border-bottom:1px solid var(--rule);color:var(--ivory);text-decoration:none;outline:none}.archive-row-link:focus-visible{box-shadow:inset 0 0 0 2px var(--color-primary)}.archive-index{display:flex;flex-direction:column;gap:var(--spacing-2);align-self:stretch;justify-content:center;gap:var(--spacing-1);padding-right:var(--spacing-5);border-right:1px solid var(--rule)}.archive-number{font-family:var(--font-display);font-size:1.1rem;font-weight:600;font-variant-numeric:tabular-nums;color:var(--ivory)}.archive-type{color:var(--muted);letter-spacing:.16em;white-space:nowrap}.archive-text{display:flex;flex-direction:column;gap:var(--spacing-1);min-width:0}.archive-title{font-family:var(--font-display);font-size:clamp(1.3rem,1.9vw,1.6rem);font-weight:700;line-height:1.1;letter-spacing:-.02em;color:var(--ivory);transition:color .3s var(--ease-standard),transform .3s var(--ease-standard)}.archive-summary{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;max-width:34rem;font-size:var(--font-size-sm);line-height:1.5;color:var(--muted)}.archive-year{align-self:center;padding-top:0;color:var(--muted);letter-spacing:.18em}.archive-thumb{position:relative;display:block;aspect-ratio:var(--thumb-aspect);overflow:hidden;border-radius:6px;background:var(--color-space-mid);box-shadow:0 0 0 1px var(--rule)}.archive-thumb-media{position:absolute;left:0;top:50%;width:100%;aspect-ratio:var(--miniature-aspect);transform:translateY(-50%);transition:transform .6s var(--ease-standard)}.archive-thumb-media img,.archive-thumb-media video{display:block;width:100%;height:100%;object-fit:cover}.archive-arrow{position:absolute;right:.9rem;top:50%;display:grid;place-items:center;width:2.2rem;height:2.2rem;border:1px solid rgba(236,232,223,.75);border-radius:50%;background:#07141273;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);color:var(--ivory);transform:translateY(-50%);transition:background-color .3s var(--ease-standard),border-color .3s var(--ease-standard),color .3s var(--ease-standard)}.archive-arrow svg{transition:transform .3s var(--ease-standard)}.archive-row-link:hover .archive-title,.archive-row-link:focus-visible .archive-title{color:var(--color-primary-lighter);transform:translate(6px)}.archive-row-link:hover .archive-thumb-media,.archive-row-link:focus-visible .archive-thumb-media{transform:translateY(-50%) scale(1.04)}.archive-row-link:hover .archive-arrow,.archive-row-link:focus-visible .archive-arrow{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-archive)}.archive-row-link:hover .archive-arrow svg,.archive-row-link:focus-visible .archive-arrow svg{transform:translate(3px)}.archive-more{display:flex;justify-content:center;margin-top:var(--spacing-8)}.archive-more-button{display:inline-flex;gap:var(--spacing-3);align-items:center;padding:1.1rem 2.25rem;border:1px solid var(--rule-strong);background:transparent;color:var(--ivory);cursor:pointer;transition:border-color .25s var(--ease-standard)}.archive-more-button:hover{border-color:var(--color-primary)}.projects-section[data-revealed=false] .archive-row-link{opacity:0}.projects-section[data-revealed=true] .archive-row-link{animation:archive-row-in .7s var(--ease-standard) backwards;animation-delay:calc(var(--reveal-index) * var(--row-stagger))}@keyframes archive-row-in{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion: reduce){.projects-section[data-revealed] .archive-row-link{opacity:1;animation:none}}@media (max-width: 1024px){.archive-row-link{grid-template-columns:minmax(7.5rem,auto) minmax(0,4fr) minmax(0,2.4fr)}.archive-year{display:none}}@media (max-width: 768px){.projects-section{padding:clamp(4rem,16vw,5rem) var(--spacing-4) var(--spacing-12)}.archive-headline{grid-template-columns:1fr;gap:var(--spacing-5)}.archive-filters{flex-direction:column;align-items:flex-start;gap:var(--spacing-3)}.archive-pills{max-width:100%;overflow-x:auto;scrollbar-width:none}.archive-pill{flex-shrink:0}.archive-row-link{grid-template-columns:auto 1fr auto;grid-template-areas:"thumb thumb thumb" "index index year" "text text text";gap:var(--spacing-2) var(--spacing-3);padding:var(--spacing-5) 0}.archive-thumb{grid-area:thumb;aspect-ratio:2 / 1}.archive-summary{-webkit-line-clamp:unset}.archive-eyebrow:after{display:none}.archive-index{grid-area:index;flex-direction:row;justify-content:flex-start;align-items:baseline;gap:var(--spacing-3);padding-right:0;border-right:0}.archive-year{grid-area:year;display:block;padding-top:0;align-self:baseline}.archive-text{grid-area:text}.archive-row-link:hover .archive-title{transform:none}}.contact-section{width:100%;min-height:50vh;background-color:var(--color-space-deep);padding:var(--spacing-8) var(--spacing-4);display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;border-top:1px solid rgba(236,232,223,.12)}.contact-section:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background-image:repeating-linear-gradient(60deg,var(--color-white) 0px,var(--color-white) 1px,transparent 1px,transparent 40px),repeating-linear-gradient(-60deg,var(--color-white) 0px,var(--color-white) 1px,transparent 1px,transparent 40px);background-size:40px 40px;opacity:.1;pointer-events:none;z-index:1}.contact-section:after{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background-image:repeating-linear-gradient(60deg,var(--color-white) 0px,var(--color-white) 1px,transparent 1px,transparent 40px),repeating-linear-gradient(-60deg,var(--color-white) 0px,var(--color-white) 1px,transparent 1px,transparent 40px);background-size:40px 40px;background-position:20px 20px;opacity:.1;pointer-events:none;z-index:1}.contact-content{max-width:100%;margin:0 auto;text-align:center;position:relative;z-index:2}.contact-text{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-4)}.contact-text h2{font-family:var(--font-display);font-size:clamp(2.2rem,6.4vw,3.4rem);font-weight:700;letter-spacing:-.025em;line-height:1;margin-bottom:var(--spacing-2);color:var(--color-paper)}.contact-text h2 em{font-style:normal;font-weight:300;color:var(--color-copper)}.contact-text p{font-size:var(--font-size-base);margin-bottom:var(--spacing-4);line-height:1.6;color:#ece8dfd9}.contact-image{flex:1;display:none}.contact-button{color:var(--color-paper);text-decoration:none;font-size:.75rem;font-weight:var(--font-weight-semibold);letter-spacing:.2em;text-transform:uppercase;padding:var(--spacing-4) var(--spacing-8);border:1px solid rgba(236,232,223,.6);background-color:transparent;border-radius:var(--radius-sm);display:inline-block;transition:all .3s ease;cursor:pointer;width:auto;min-width:16rem;text-align:center}.contact-button:after{background-color:var(--color-paper);color:var(--color-space-deep)}.contact-button:focus-visible{outline:2px solid var(--color-primary);outline-offset:3px}.contact-button:disabled{opacity:.7;cursor:not-allowed}.contact-button:not(:disabled):hover span{transform:translateY(200%)}.contact-button:not(:disabled):hover:after{transform:translateY(0)}@media (min-width: 768px){.contact-section{padding:var(--spacing-12) var(--spacing-4)}.contact-content{max-width:600px}.contact-text h2{margin-bottom:var(--spacing-4)}.contact-text p{font-size:var(--font-size-lg);margin-bottom:var(--spacing-6)}.contact-button{padding:var(--spacing-4) var(--spacing-10)}.contact-image{display:flex}}@media (min-width: 1024px){.contact-content{max-width:800px}}.contact-form{width:100%}.form-group{margin-bottom:1rem;position:relative}.form-group input,.form-group textarea{width:100%;padding:.85rem 1rem;background:var(--color-paper);border:1px solid transparent;color:var(--color-space-deep);font-size:1rem;transition:border-color .3s ease,box-shadow .3s ease;border-radius:var(--radius-sm)}.form-group input::placeholder,.form-group textarea::placeholder{color:#56625f}.form-group textarea{min-height:100px;resize:vertical}.form-group input:focus,.form-group textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px #52abad73}.form-group .formspree-error{color:#ff4d4f;font-size:.875rem;margin-top:.25rem;position:absolute;bottom:-1.5rem;left:0}.submit-button{width:100%;padding:.75rem;background:var(--color-primary);color:var(--color-white);border:none;border-radius:var(--radius-md);font-size:1rem;cursor:pointer;transition:background-color .3s ease}.submit-button:hover:not(:disabled){background-color:var(--color-primary-darker)}.submit-button:disabled{opacity:.7;cursor:not-allowed}@media (max-width: 768px){.contact-form{max-width:100%}}.about-section{padding:var(--spacing-8) var(--spacing-4);width:100%;position:relative}.about-section:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background-image:repeating-linear-gradient(60deg,var(--color-primary) 0px,var(--color-primary) 1px,transparent 1px,transparent 40px),repeating-linear-gradient(-60deg,var(--color-primary) 0px,var(--color-primary) 1px,transparent 1px,transparent 40px);background-size:40px 40px;opacity:.1;pointer-events:none;z-index:1}.about-section:after{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background-image:repeating-linear-gradient(60deg,var(--color-primary) 0px,var(--color-primary) 1px,transparent 1px,transparent 40px),repeating-linear-gradient(-60deg,var(--color-primary) 0px,var(--color-primary) 1px,transparent 1px,transparent 40px);background-size:40px 40px;background-position:20px 20px;opacity:.1;pointer-events:none;z-index:1}.about-container{max-width:1200px;margin:0 auto}.about-content{display:flex;flex-direction:column}.about-text{display:flex;flex-direction:column;gap:var(--spacing-4);max-width:100%;margin:0 auto}.header-container{display:flex;align-items:center;gap:var(--spacing-2);flex-wrap:nowrap;padding:var(--spacing-4) 0;justify-content:space-between;flex-direction:row-reverse;container-type:inline-size}.profile-image{width:100px;height:100px;border-radius:50%;border:3px solid var(--color-primary);object-fit:cover;flex-shrink:0}.progress-header{font-size:clamp(1.75rem,9cqi,3.75rem);font-family:var(--font-display);font-weight:700;letter-spacing:-.02em;color:var(--color-primary-darker);margin:0;text-align:left;line-height:1.1}.about-description{display:flex;flex-direction:column;gap:var(--spacing-4)}.about-description p{font-size:var(--font-size-base);line-height:1.6;color:var(--color-gray-700);margin:0}.about-description strong{color:var(--color-primary);font-weight:var(--font-weight-semibold)}.career-timeline{background:var(--color-white);padding:var(--spacing-4);margin-top:var(--spacing-2)}.timeline-scroll{padding:var(--spacing-4) 0 var(--spacing-4) var(--spacing-8);position:relative}.timeline-scroll::-webkit-scrollbar{display:none}.timeline-scroll:before{content:"";position:absolute;left:16px;top:0;bottom:0;width:1px;background:var(--color-primary-lighter);opacity:.6}.timeline-item{position:relative;padding:var(--spacing-4);padding-right:0;margin-bottom:var(--spacing-4);background:var(--color-white)}.timeline-dot{position:absolute;left:-20.5px;top:50%;transform:translateY(-50%);width:10px;height:10px;background:var(--color-primary);border-radius:50%;border:2px solid var(--color-white);box-shadow:0 0 0 1px var(--color-primary)}.timeline-content{margin-left:var(--spacing-4)}.timeline-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-2)}.timeline-company{font-size:var(--font-size-base);font-weight:var(--font-weight-bold);color:var(--color-primary-darker);margin:0}.timeline-period{font-size:.7rem;font-weight:var(--font-weight-semibold);letter-spacing:.16em;text-transform:uppercase;white-space:nowrap;color:var(--color-gray-500)}.timeline-role{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-gray-800);margin:0 0 var(--spacing-2) 0}.timeline-description{font-size:var(--font-size-sm);line-height:1.6;color:var(--color-gray-600);margin:0 0 var(--spacing-4) 0}.timeline-technologies{display:flex;flex-wrap:wrap;gap:var(--spacing-2)}.tech-pill{font-size:.72rem;padding:.2rem .7rem;background:#52abad0f;border:1px solid rgba(82,171,173,.45);color:var(--color-primary-darker);border-radius:var(--radius-full);font-weight:var(--font-weight-medium)}@media (min-width: 768px){.about-section{padding:var(--spacing-12) var(--spacing-4) var(--spacing-24);padding-top:0}.about-content{flex-direction:row;align-items:flex-start}.about-text{flex:1;position:sticky;top:var(--spacing-24);bottom:var(--spacing-24);max-width:600px;padding-bottom:var(--spacing-8);gap:var(--spacing-4)}.about-content p{font-size:var(--font-size-sm)}.about-text .about-description p{font-size:1rem;line-height:1.5}.header-container{gap:var(--spacing-3);justify-content:flex-start;flex-direction:row;padding:var(--spacing-8) 0}.profile-image{width:60px;height:60px}.progress-header{font-size:var(--font-size-2xl)}.about-description{gap:var(--spacing-4)}.career-timeline{margin-top:var(--spacing-8)}.timeline-scroll{padding:var(--spacing-4) var(--spacing-4) var(--spacing-4) var(--spacing-12)}.timeline-scroll:before{left:24px}.timeline-item{padding:var(--spacing-6);margin-bottom:var(--spacing-6)}.timeline-dot{left:-29.5px;width:12px;height:12px;border-width:3px}.timeline-company{font-size:var(--font-size-lg)}.timeline-role{font-size:var(--font-size-base)}.career-timeline{flex:1}}@media (min-width: 1024px){.header-container{gap:var(--spacing-4)}.about-content{gap:var(--spacing-8)}.about-content p{font-size:var(--font-size-base)}.profile-image{width:80px;height:80px}.progress-header{font-size:var(--font-size-3xl)}}@media (min-width: 1024px){.about-content{gap:var(--spacing-16)}}@media (max-height: 700px){.about-content p{font-size:var(--font-size-xs)}}
