*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}@font-face{font-family:DotMatrix;src:url(/assets/DOTMATRI-DinwS7HJ.TTF) format("truetype");font-weight:400;font-style:normal}@font-face{font-family:MorrisRoman;src:url(/assets/MorrisRomanBlack-Z92-U7NF.ttf) format("truetype");font-weight:400;font-style:normal}@font-face{font-family:Melodrame;src:url(/assets/Relationship_of_melodrame-De__IzHh.ttf) format("truetype");font-weight:400;font-style:normal}@font-face{font-family:Martin Breaks;src:url(/assets/Martin%20Breaks%20DEMO%20VERSION-BTd9DfF_.ttf) format("truetype");font-weight:400;font-style:normal}@font-face{font-family:Martin Breaks Italic;src:url(/assets/Martin%20Breaks%20Italic%20DEMO%20VERSION-Bq1z4nXU.ttf) format("truetype");font-weight:400;font-style:italic}@font-face{font-family:Alte Haas Grotesk;src:url(/assets/AlteHaasGroteskRegular-B25r_GJK.ttf) format("truetype");font-weight:400;font-style:normal}@font-face{font-family:Alte Haas Grotesk Bold;src:url(/assets/AlteHaasGroteskBold-DCuBJgsO.ttf) format("truetype");font-weight:700;font-style:normal}:root{--bg-dark: #0a0a0f;--text-primary: #e0e0e0;--text-accent: #64ffda;--text-dim: rgba(100, 255, 218, .4);--text-sand: #C9B59C;--font-display: "MorrisRoman", serif;--font-brand: "MorrisRoman", serif}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:#0d0c0b4d}::-webkit-scrollbar-thumb{background-color:var(--text-sand);border-radius:3px}html{width:100%;overflow-x:hidden;scroll-behavior:smooth}body{width:100%;min-height:100vh;font-family:var(--font-display),monospace;background-color:var(--bg-dark);color:var(--text-primary);position:relative;overflow-x:hidden}#visual-container{position:fixed;top:0;left:0;width:100%;height:100%;z-index:1}#wave-canvas{position:absolute;top:0;left:0;width:100%;height:100%;z-index:1}#scatter-overlay{position:absolute;top:0;left:0;width:100%;height:100%;z-index:2;pointer-events:none;opacity:0;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.65' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)' opacity='0.5'/%3E%3C/svg%3E")}#site-header{position:fixed;top:0;left:0;width:100%;z-index:100;padding:1rem 4rem;display:flex;justify-content:space-between;align-items:center;background:#0d0c0bb3;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-bottom:1px solid rgba(249,248,246,.1)}.logo{font-family:var(--font-brand);font-size:1.8rem;font-weight:400;text-transform:none;letter-spacing:.05em;transform:translateY(3px);color:#f9f8f6;text-shadow:0 0 5px #0d0c0b,0 0 10px #0d0c0b,0 0 15px #0d0c0b}.nav-links{display:flex;gap:3rem}.hamburger{display:none;background:none;border:none;cursor:pointer;padding:0;z-index:200}.mobile-nav{display:none}@media(max-width:768px){#site-header{padding:1rem 2rem;background:#0d0c0bb3}.logo{font-size:2.2rem}.desktop-nav{display:none}.hamburger{display:flex;flex-direction:column;justify-content:space-between;width:30px;height:21px}.hamburger span{display:block;width:100%;height:3px;background-color:var(--text-sand);border-radius:3px;transition:all .3s ease}.hamburger.active span:nth-child(1){transform:translateY(9px) rotate(45deg)}.hamburger.active span:nth-child(2){opacity:0}.hamburger.active span:nth-child(3){transform:translateY(-9px) rotate(-45deg)}.mobile-nav{display:flex;flex-direction:column;justify-content:center;align-items:center;position:fixed;top:0;left:0;width:100%;height:100vh;background:#0d0c0bf2;-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);z-index:150;transform:translateY(-100%);transition:transform .4s cubic-bezier(.16,1,.3,1)}.mobile-nav.open{transform:translateY(0)}.mobile-nav a{font-family:var(--font-brand);font-size:3rem;color:var(--text-sand);text-decoration:none;margin:2rem 0;opacity:0;transform:translateY(20px);transition:opacity .4s ease,transform .4s ease}.mobile-nav.open a{opacity:1;transform:translateY(0);transition-delay:.1s}.mobile-nav.open a:nth-child(2){transition-delay:.15s}.mobile-nav.open a:nth-child(3){transition-delay:.2s}.mobile-nav.open a:nth-child(4){transition-delay:.25s}.hero-title{font-size:clamp(3rem,12vw,5rem)}.hero-subtitle{font-size:clamp(1.2rem,4vw,1.8rem)}}.nav-links a{color:var(--text-sand);text-decoration:none;font-family:var(--font-display);font-size:2rem;font-weight:400;letter-spacing:.05em;text-transform:none;position:relative;transition:opacity .3s ease;transform:translateY(3px);text-shadow:0 0 8px #0d0c0b,0 0 16px #0d0c0b,0 0 24px #0d0c0b,0 0 32px #0d0c0b}.nav-links a:hover{opacity:.7}#content{position:relative;z-index:10;width:100%;pointer-events:none}#site-header a{pointer-events:auto}body:before{content:"";position:fixed;inset:0;background:repeating-linear-gradient(0deg,#00000008 2px 4px);pointer-events:none;z-index:50}.hero-section{height:100vh;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:0 2rem}.hero-title{font-family:var(--font-brand);font-size:clamp(3.5rem,9vw,7rem);font-weight:400;margin-bottom:1.5rem;line-height:1.1;letter-spacing:.05em;color:#f9f8f6;text-shadow:0 0 15px #0d0c0b,0 0 30px #0d0c0b,0 0 45px #0d0c0b,0 0 60px #0d0c0b,0 0 75px #0d0c0b,0 0 90px #0d0c0b}.hero-subtitle{font-family:Melodrame,serif;font-size:clamp(1.5rem,5vw,3rem);font-weight:400;color:var(--text-sand);letter-spacing:.02em;line-height:1.05;text-shadow:0 0 8px #0d0c0b,0 0 16px #0d0c0b,0 0 24px #0d0c0b,0 0 32px #0d0c0b}.content-section{min-height:100vh;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:6rem 2rem;pointer-events:auto}.section-divider{width:100%;display:flex;justify-content:center;align-items:center;padding:2rem 0;opacity:.8}.section-divider img{width:100%;max-width:600px;height:auto;filter:drop-shadow(0 0 5px #0d0c0b)}.section-title{font-family:var(--font-brand);font-size:clamp(3rem,6vw,5rem);color:var(--text-sand);margin-bottom:3rem;text-shadow:0 0 20px #0d0c0b}.content-block{max-width:800px;text-align:center;background:#0d0c0b99;padding:2rem;border-radius:8px;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);border:4px solid var(--text-sand)}#about .content-block{text-align:left;max-width:100%}.about-grid{display:grid;grid-template-columns:1fr;gap:2rem;width:100%;max-width:1000px;padding:0 1rem;align-items:stretch;margin:0 auto}@media(min-width:768px){.about-grid{grid-template-columns:1.5fr 1fr}}.bio-card{background:#0d0c0b99;padding:1rem;border-radius:8px;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);border:4px solid var(--text-sand);display:flex;justify-content:center;align-items:center;overflow:hidden;height:100%}@media(max-width:768px){#about .content-block,.bio-card{padding:1rem}}.bio-card img{width:100%;height:100%;border-radius:4px;object-fit:cover}.content-block p{font-family:Alte Haas Grotesk,sans-serif;font-size:1.2rem;line-height:1.6;margin-bottom:1.5rem}.project-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:2rem;width:100%;max-width:1200px;padding:0 1rem;align-items:start}.project-card{background:#0d0c0bb3;border:1px solid rgba(100,255,218,.1);padding:2rem;border-radius:8px;transition:transform .3s ease,border-color .3s ease;cursor:pointer;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);overflow:hidden;display:flex;flex-direction:column}.project-card:hover{transform:translateY(-5px);border-color:var(--text-sand)}.project-card:active{border-color:var(--text-sand)}.project-card h3{font-family:Melodrame,serif;color:var(--text-sand);font-size:3.5rem;margin-bottom:1rem}.project-card p{font-family:Alte Haas Grotesk,sans-serif;color:#e0e0e0cc;font-size:1rem;line-height:1.5}.card-image-container{margin-top:0;max-height:0;overflow:hidden;width:100%;opacity:0;transform:translateY(20px);transition:opacity .4s ease .1s,transform .4s ease .1s,max-height .4s ease,margin-top .4s ease}.project-card:hover .card-image-container,.project-card:active .card-image-container{max-height:500px;margin-top:2rem;opacity:1;transform:translateY(0)}.card-image-container img{width:100%;height:auto;border-radius:4px;border:1px solid rgba(201,181,156,.3)}.contact-link{display:inline-block;font-family:var(--font-brand);font-size:2rem;color:var(--text-sand);text-decoration:none;border-bottom:2px solid transparent;transition:border-color .3s ease}.contact-link:hover{border-color:var(--text-sand)}.contact-container{display:flex;flex-direction:column;justify-content:center;align-items:center;width:100%;gap:1.5rem}.copy-email-wrapper{display:flex;flex-direction:column;align-items:center;gap:.5rem}.copy-email-btn{background:none;border:none;color:var(--text-sand);cursor:pointer;padding:.5rem;transition:opacity .2s ease,transform .2s ease;display:flex;align-items:center;justify-content:center}.copy-email-btn:hover{opacity:.7;transform:scale(1.1)}.copy-feedback{opacity:0;color:var(--text-sand);font-family:Melodrame,serif;font-size:1.1rem;letter-spacing:.05em;transition:opacity .3s ease;height:20px;pointer-events:none}.copy-feedback.show{opacity:1}@media(max-width:600px){.contact-link{font-size:clamp(1.2rem,5vw,1.8rem);word-break:break-all}}.contact-card{width:100%}.resume-ext-link{display:inline-flex;align-items:center;justify-content:center;color:var(--text-sand);transition:opacity .2s ease,transform .2s ease}.resume-ext-link:hover{opacity:.7;transform:scale(1.1)}#resume{width:100%;padding:4rem 1rem;display:flex;flex-direction:column;align-items:center}.pdf-container{width:100%;max-width:1200px;height:800px;background:#0d0c0b99;border:4px solid var(--text-sand);border-radius:8px;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);overflow:hidden}@media(max-width:768px){.pdf-container{height:500px}}.project-card--active{border-color:var(--text-sand)!important}.project-card--active .card-image-container{opacity:1!important;transform:translateY(0)!important;max-height:500px!important;margin-top:2rem!important}#content.content-blurred{filter:blur(8px);transition:filter .4s ease}#content:not(.content-blurred){transition:filter .4s ease}.project-detail-overlay{position:fixed;z-index:90;background:#0d0c0bd9;border:1px solid var(--text-sand);backdrop-filter:blur(15px);-webkit-backdrop-filter:blur(15px);pointer-events:auto;transition:top .35s cubic-bezier(.16,1,.3,1),left .35s cubic-bezier(.16,1,.3,1),width .35s cubic-bezier(.16,1,.3,1),height .35s cubic-bezier(.16,1,.3,1),border-radius .35s cubic-bezier(.16,1,.3,1)}.project-detail-overlay--collapsing{transition:top .3s cubic-bezier(.4,0,.2,1),left .3s cubic-bezier(.4,0,.2,1),width .3s cubic-bezier(.4,0,.2,1),height .3s cubic-bezier(.4,0,.2,1),border-radius .3s cubic-bezier(.4,0,.2,1)}.detail-fixed-header{flex-shrink:0;padding:2rem 1.25rem .5rem;background:transparent;position:relative;z-index:2}.detail-header-inner{display:flex;align-items:baseline;max-width:1000px;margin:0 auto}.detail-back-mask{width:0;overflow:hidden;transition:width .35s cubic-bezier(.16,1,.3,1);margin-right:0}.project-detail-overlay--open .detail-back-mask{width:2rem;margin-right:1.5rem}.detail-back-btn{background:none;border:none;color:var(--text-sand);font-family:inherit;font-size:clamp(2rem,5vw,3.5rem);line-height:1;cursor:pointer;padding:0;white-space:nowrap;min-width:2rem;text-align:left;transform:translate(-100%);transition:transform .35s cubic-bezier(.16,1,.3,1)}.project-detail-overlay--open .detail-back-btn{transform:translate(0)}.detail-back-btn:hover{opacity:.7}.detail-link-mask{width:0;overflow:hidden;transition:width .35s cubic-bezier(.16,1,.3,1);margin-left:0;display:flex;justify-content:flex-end}.project-detail-overlay--open .detail-link-mask{width:2rem;margin-left:1.5rem}.detail-link-mask-empty{width:0}.detail-external-link{color:var(--text-sand);display:flex;align-items:center;transition:opacity .2s ease,transform .35s cubic-bezier(.16,1,.3,1);transform:translate(100%)}.project-detail-overlay--open .detail-external-link{transform:translate(0)}.detail-external-link:hover{opacity:.7}.detail-title-wrapper{flex-grow:1;min-width:0}.detail-title{font-family:Melodrame,serif;color:var(--text-sand);font-size:clamp(2rem,5vw,3.5rem);line-height:1.1;margin:0;text-shadow:0 0 8px #0d0c0b,0 0 16px #0d0c0b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:transform .35s cubic-bezier(.16,1,.3,1)}.detail-role{font-family:Melodrame,serif;font-size:clamp(1.4rem,4vw,2.2rem);color:var(--text-sand);margin-top:1.5rem;margin-bottom:1rem;line-height:1.2;text-shadow:0 0 8px #0d0c0b,0 0 16px #0d0c0b;transition:opacity .2s ease}.detail-meta{display:none}.project-detail-overlay--collapsing .detail-scroll-area{overflow:hidden!important}.detail-scroll-area{flex-grow:1;overflow-y:auto;overflow-x:hidden;padding:0 1.25rem 2.5rem;scrollbar-width:thin;scrollbar-color:var(--text-sand) rgba(13,12,11,.3)}.detail-scroll-area::-webkit-scrollbar{width:6px}.detail-scroll-area::-webkit-scrollbar-track{background:#0d0c0b4d}.detail-scroll-area::-webkit-scrollbar-thumb{background-color:var(--text-sand);border-radius:3px}.detail-content-wrapper{max-width:1000px;margin:0 auto}.detail-description{font-family:Alte Haas Grotesk,sans-serif;font-size:1.05rem;line-height:1.6;color:#e0e0e0d9;margin-bottom:2rem;transition:opacity .2s ease}@keyframes fadeInContent{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.project-detail-overlay--collapsing .detail-carousel-wrapper,.project-detail-overlay--collapsing .carousel-dots,.project-detail-overlay--collapsing .detail-subprojects{clip-path:inset(50% 0 50% 0);opacity:0;pointer-events:none}.project-detail-overlay--collapsing .detail-role,.project-detail-overlay--collapsing .detail-description{opacity:0;pointer-events:none;transition:opacity .15s ease-out!important}.detail-carousel-wrapper,.carousel-dots,.detail-subprojects{transition:clip-path .35s cubic-bezier(.4,0,.2,1),opacity .3s ease;clip-path:inset(0 0 0 0)}.detail-carousel-wrapper{display:flex;align-items:center;gap:1rem;margin-top:1rem}.detail-carousel{flex:1;border-radius:6px;overflow:hidden;border:1px solid rgba(201,181,156,.3);background:#0000004d;min-height:200px;display:flex;align-items:center;justify-content:center}.carousel-image{width:100%;height:auto;max-height:450px;object-fit:contain;display:block;transition:opacity .15s ease,outline .2s ease;outline:2px solid transparent;outline-offset:-2px}.carousel-image:hover{outline:2px solid var(--text-sand)}.carousel-arrow{background:transparent;border:none;color:var(--text-sand);font-size:6.5rem;font-weight:300;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:opacity .2s ease;line-height:1;padding:0 15px;transform:scaleY(1.5)}.carousel-arrow:hover{opacity:.7;background:transparent}.carousel-dots{display:flex;justify-content:center;gap:.5rem;margin-top:.75rem}.carousel-dot{width:8px;height:8px;border-radius:50%;background:#c9b59c4d;cursor:pointer;transition:background .25s ease,transform .25s ease}.carousel-dot.active{background:var(--text-sand);width:24px;border-radius:4px}.carousel-dot:hover{background:#c9b59c99}.carousel-caption-container{margin-top:1.5rem;padding:0 10rem;text-align:left}.carousel-caption{font-family:Alte Haas Grotesk,sans-serif;font-size:1rem;line-height:1.4;color:var(--text-sand);max-width:900px;margin:0;transition:opacity .15s ease}.carousel-caption a,.lightbox-caption a{color:#f9f8f6;font-weight:700;text-decoration:underline;transition:opacity .2s ease}.carousel-caption a:hover,.lightbox-caption a:hover{opacity:.7}.detail-subprojects{margin-top:2rem;border-top:1px solid rgba(201,181,156,.2);padding-top:1.5rem}.detail-subprojects-title{font-family:Melodrame,serif;color:var(--text-sand);font-size:1.6rem;margin-bottom:1rem;text-shadow:0 0 8px #0d0c0b}.detail-subproject{margin-bottom:1.25rem;padding-left:1rem;border-left:2px solid rgba(201,181,156,.2)}.detail-subproject h5{font-family:Melodrame,serif;color:var(--text-sand);font-size:1.2rem;margin-bottom:.15rem}.detail-subproject-meta{font-family:Alte Haas Grotesk,sans-serif;color:#e0e0e080;font-size:.85rem}.detail-subproject p{font-family:Alte Haas Grotesk,sans-serif;font-size:1rem;line-height:1.5;color:#e0e0e0bf;margin-top:.35rem}@media(max-width:768px){.detail-fixed-header{padding:.75rem 1.25rem .5rem}.detail-header-inner{align-items:center}.detail-scroll-area{padding:0 1.25rem 6rem}.carousel-arrow{display:none}.detail-carousel-wrapper{gap:.5rem}.carousel-image{max-height:300px}.carousel-caption-container{padding:0}.project-detail-overlay--open .detail-back-mask{width:3rem;margin-right:1rem}.detail-back-btn{font-size:3.5rem;min-width:3rem}.detail-title{font-weight:700}.detail-separator{display:none}.detail-company,.detail-year{display:block}.detail-role{line-height:1.4}.project-detail-overlay{z-index:101}.project-card h3{font-weight:700}.project-card:hover,.project-card:active{transform:none;border-color:#64ffda1a}.card-image-container{max-height:500px;margin-top:2rem;opacity:1;transform:translateY(0);transition:none}}.lightbox-overlay{position:fixed;top:0;left:0;width:100vw;height:100vh;background:#0d0c0bf2;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);z-index:200;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .3s ease;padding:2rem;touch-action:pan-y pinch-zoom}.lightbox-image-container{display:flex;flex-direction:column;align-items:center;justify-content:center;width:90vw;height:90vh;max-width:1200px;position:relative;gap:1.5rem}.lightbox-image{max-width:100%;max-height:100%;object-fit:contain;border-radius:4px;transition:opacity .15s ease;box-shadow:0 0 40px #00000080;flex:1;min-height:0}.lightbox-caption{font-family:Alte Haas Grotesk,sans-serif;font-size:1.2rem;color:var(--text-sand);text-align:left;max-width:900px;padding:0 2rem;margin:0;transition:opacity .15s ease;text-shadow:0 0 8px #0d0c0b;flex-shrink:0}.lightbox-close{position:absolute;top:2rem;right:2rem;background:transparent;border:none;color:var(--text-sand);cursor:pointer;padding:0;display:flex;align-items:center;justify-content:center;transition:opacity .2s ease,transform .2s ease;z-index:201}.lightbox-close:hover{opacity:.7;transform:scale(1.1)}.lightbox-arrow{position:absolute;top:50%;transform:translateY(-50%) scaleY(1.5)!important;z-index:201}.lightbox-arrow.carousel-arrow-left{left:2rem}.lightbox-arrow.carousel-arrow-right{right:2rem}.lightbox-dots{margin:0;padding:4px 10px;z-index:201;overflow:visible}@media(max-width:768px){.lightbox-overlay{padding:1rem}.lightbox-close{top:1rem;right:1rem}.lightbox-image-container{height:auto;max-height:90vh;justify-content:center}.lightbox-image{flex:0 1 auto;max-height:70vh}.lightbox-arrow{display:none}.lightbox-caption{font-size:.95rem;padding:0 1rem}}
