@font-face{font-family:F\.;src:url(/fonts/781bc78d102a85d51a4e41734c2fe072.ttf)format("truetype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Architekt;src:url(/fonts/781bc78d102a85d51a4e41734c2fe072.ttf)format("truetype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Neco;src:url(/fonts/Neco-Variable.ttf)format("truetype");font-weight:100 900;font-style:normal;font-display:swap}:root{--color-bg:#f3eee8;--color-text:#372e28;--color-text-muted:#6a6056;--color-accent:#a35b3c;--navbar-height:52px;--color-border:#c9beb2;--color-focus:#c98a34;--font-body:"Architekt","F.",Georgia,serif;--font-title:"Neco",Georgia,serif;--size-title:28px;--size-body:17px;--line-height-body:1.7;--line-height-title:1.2;--max-width:1120px;--drawer-width:calc(var(--max-width)/2);--ease-out-expo:cubic-bezier(.16,1,.3,1);--ease-spring:cubic-bezier(.34,1.56,.64,1)}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overscroll-behavior:none;scroll-padding-top:80px}body{font-family:var(--font-body);font-size:var(--size-body);line-height:var(--line-height-body);color:var(--color-text);background-color:var(--color-bg);overscroll-behavior:none;background-image:linear-gradient(45deg,#1a1a1a05 25%,#0000 25% 75%,#1a1a1a05 75%),linear-gradient(45deg,#1a1a1a05 25%,#0000 25% 75%,#1a1a1a05 75%);background-position:0 0,2px 2px;background-size:4px 4px;width:100%;max-width:100vw;height:100%;overflow-x:clip}a{color:var(--color-text);text-underline-offset:3px;text-decoration-thickness:1px;transition:opacity .2s}a:hover{opacity:.6}::selection{background:var(--color-accent);color:var(--color-bg)}.skip-link{z-index:9999;background:var(--color-text);color:var(--color-bg);font-family:var(--font-body);opacity:1;padding:.75rem 1.25rem;font-size:13px;text-decoration:none;transition:top .2s;position:fixed;top:-100%;left:1rem}.skip-link:focus{opacity:1;outline:2px solid var(--color-focus);outline-offset:2px;top:.75rem}:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}:focus:not(:focus-visible){outline:none}.navbar{z-index:500;backface-visibility:hidden;width:100%;transition:transform .35s var(--ease-out-expo);will-change:transform;flex-direction:column;display:flex;position:fixed;top:0;left:0;transform:translate(0,0)}.navbar.navbar-hidden{transform:translateY(-100%)}.navbar-bar{z-index:2;-webkit-backdrop-filter:blur(40px)saturate(180%)brightness(1.04);backface-visibility:hidden;background:#f5f0e8b8;border-bottom:1px solid #c4c0b98c;position:relative;transform:translate(0,0);box-shadow:inset 0 1px #ffffffa6,0 4px 16px #0000000d}.navbar-bar:after{content:"";pointer-events:none;mix-blend-mode:multiply;opacity:.32;z-index:0;background-image:radial-gradient(circle at 1px 1px,#3f34281f .95px,#0000 1px);background-size:4px 4px;position:absolute;inset:0}.navbar-feather{z-index:1;height:0;position:relative;overflow:visible;transform:translate(0,0)}.navbar-feather-inner{-webkit-backdrop-filter:blur(3px);pointer-events:none;height:28px;transform:translate(0,0);-webkit-mask-image:linear-gradient(#000 0%,#0000 100%);mask-image:linear-gradient(#000 0%,#0000 100%)}.scroll-progress{background:#372e2814;width:100%;height:2px;position:absolute;bottom:-1px;left:0;overflow:hidden}.scroll-progress-fill{transform-origin:0;will-change:transform;background:linear-gradient(90deg,#b86f42 0%,#ce944e 100%);width:100%;height:100%;transition:transform .15s;display:block;transform:scaleX(0)}@supports not ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){.navbar-bar{background:#f5f0e8f7}}.navbar-inner{max-width:var(--max-width);z-index:2;justify-content:space-between;align-items:center;margin:0 auto;padding:.75rem 1.5rem;display:flex;position:relative}.navbar-name{font-family:var(--font-title);color:var(--color-text);letter-spacing:-.02em;font-size:18px;font-weight:500;text-decoration:none}.navbar-name:hover{opacity:.6}.navbar-links{align-items:center;gap:.35rem;display:flex}.navbar-link{font-family:var(--font-body);color:var(--color-text);border:1.5px dashed var(--color-border);cursor:pointer;text-align:center;background:#a35b3c0d;justify-content:center;align-items:center;min-width:90px;height:32px;padding:0 16px;font-size:12px;line-height:1;text-decoration:none;transition:all .2s;display:inline-flex;position:relative}.navbar-link:hover,.navbar-link:focus-visible{border-style:solid;border-color:var(--color-accent);opacity:1;background:#c98a3429}.navbar-link.active{border-style:solid;border-color:var(--color-accent);background:#c98a341f}.hamburger{cursor:pointer;background:0 0;border:none;flex-direction:column;justify-content:space-between;width:28px;height:20px;display:none;position:relative}.hamburger-line{background:var(--color-text);width:100%;height:2px;transition:all .3s;display:block}.hamburger.open .hamburger-line:first-child{transform:rotate(45deg)translate(6px,6px)}.hamburger.open .hamburger-line:nth-child(2){opacity:0}.hamburger.open .hamburger-line:nth-child(3){transform:rotate(-45deg)translate(6px,-6px)}.mobile-menu{-webkit-backdrop-filter:blur(40px)saturate(180%);z-index:499;background:#f3eee8bd;border-bottom:1px solid #c4c0b980;width:100%;padding:1rem 1.5rem;animation:.2s fadeIn;display:none;position:fixed;top:52px;left:0;transform:translateZ(0);box-shadow:0 4px 30px #0000000d}.mobile-menu.open{display:block}@supports not ((-webkit-backdrop-filter:blur(20px)) or (backdrop-filter:blur(20px))){.mobile-menu{background:#f7f5f2f2}}.mobile-menu-grid{grid-template-columns:1fr 1fr;gap:.45rem;display:grid}.mobile-menu-link{font-family:var(--font-body);color:var(--color-text);cursor:pointer;text-align:center;border:1.5px dashed var(--color-border);outline-offset:-1.5px;background:0 0;justify-content:center;align-items:center;min-height:32px;padding:14px 0;font-size:13px;text-decoration:none;transition:all .2s;display:flex}.mobile-menu-link:hover{border-color:var(--color-text);opacity:1;border-style:solid}.section-divider{border:none;border-top:1.5px dashed var(--color-border);margin:3rem 0}.section-title{font-family:var(--font-title);letter-spacing:-.03em;color:var(--color-text);margin-bottom:1.5rem;font-weight:600;line-height:1.1}html{scroll-behavior:smooth;-webkit-overflow-scrolling:touch}.scroll-runway{background:0 0;width:100%;padding:7.1rem 0;position:relative;overflow:clip}.scroll-runway.runway-footer{margin-bottom:0;padding:11rem 0 0}.sticky-panel{width:100%}.section-inner{max-width:var(--max-width);width:100%;margin:0 auto;padding:0 1.5rem}.section-content{opacity:0;pointer-events:none;transition:opacity .9s,transform .9s;transform:translateY(28px)}.section-content.revealed{opacity:1;pointer-events:auto;transform:translateY(0)}.about-container,.experience-grid,.project-grid-wrap,.project-grid,.human-grid,.footer-inner{width:100%;max-width:100%}.section-about .section-content{opacity:1;transition:none;transform:none}.section-about .section-content:not(.revealed){pointer-events:none}.section-hero{align-items:center;min-height:100dvh;padding:0;display:flex;position:relative;overflow:clip}.section-hero .sticky-panel{color:var(--color-text);animation:.45s both pageLoadFade;position:relative}.section-hero .section-inner{max-width:var(--max-width);padding-top:42vh;position:relative}.section-about .sticky-panel,.section-experience .sticky-panel,.section-projects .sticky-panel,.section-human .sticky-panel,.section-footer,.section-about .section-title,.section-experience .section-title,.section-projects .section-title,.section-human .section-title{color:var(--color-text)}.section-about .body-text,.section-experience .experience-date,.section-experience .experience-org,.section-projects .project-tech,.section-projects .project-tag,.section-footer .footer-text,.section-footer .footer-spotify,.section-footer .footer-link{color:var(--color-text-muted)}.section-about .about-keyword{color:var(--color-text);-webkit-text-decoration-color:var(--color-border);text-decoration-color:var(--color-border)}.section-about .about-keyword:hover,.section-about .about-keyword-active{-webkit-text-decoration-color:var(--color-text);text-decoration-color:var(--color-text)}.section-experience{margin-top:4.2rem}.experience-section-wrap{position:relative}.experience-lily{opacity:0;pointer-events:none;z-index:0;width:clamp(172px,22vw,308px);position:absolute;top:-3.1rem;right:0;transform:translateY(14px)rotate(-2deg)scale(.94)}.experience-lily-canvas{width:100%;height:auto;image-rendering:pixelated;mix-blend-mode:multiply;display:block}.experience-lily.revealed{animation:lilyReveal .85s var(--ease-out-expo).28s forwards}@keyframes lilyReveal{0%{opacity:0;transform:translateY(14px)rotate(-2deg)scale(.94)}to{opacity:.38;transform:translateY(0)rotate(0)scale(1)}}.experience-section-wrap .section-title,.experience-section-wrap .section-content{z-index:1;position:relative}.section-footer .section-inner{max-width:100%}.section-footer .spotify-track{color:var(--color-text)}.section-divider{display:none}@keyframes pageLoad{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes pageLoadFade{0%{opacity:0}to{opacity:1}}.fade-section{opacity:0;transition:opacity .5s,transform .5s;transform:translateY(20px)}.fade-section.visible{opacity:1;transform:translateY(0)}.cursor-label{pointer-events:none;z-index:9999;font-family:var(--font-body);color:var(--color-bg);background:var(--color-text);opacity:0;white-space:nowrap;will-change:transform,opacity;padding:4px 10px;font-size:11px;transition:opacity .15s;position:fixed;top:0;left:0;transform:translate(-240px,-240px)}.cursor-label.visible{opacity:1}.back-to-top{z-index:520;font-family:var(--font-body);color:var(--color-text);border:1.5px dashed var(--color-border);opacity:0;pointer-events:none;background:#f3eee8eb;height:32px;padding:0 16px;font-size:12px;transition:opacity .2s,transform .2s,border-color .2s,background .2s;position:fixed;bottom:1.5rem;right:1.5rem;transform:translateY(12px)}.back-to-top.visible{opacity:1;pointer-events:auto;transform:translateY(0)}.back-to-top:hover,.back-to-top:focus-visible{border-style:solid;border-color:var(--color-accent);background:#c98a3424}.symbol-banner{pointer-events:none;z-index:0;width:100%;max-width:none;height:calc(100% + .8rem);margin-bottom:0;position:absolute;top:-.4rem;left:0;overflow:visible}.hero{z-index:1;margin-bottom:0;padding-top:0;padding-bottom:.75rem;position:relative}.hero-layout{z-index:1;position:relative}.hero-copy{z-index:1;width:100%;min-width:0;max-width:min(100%,1120px);padding-right:clamp(1.5rem,7vw,8rem);position:relative}.hero-seagull{opacity:.42;pointer-events:none;z-index:0;width:clamp(116px,13vw,186px);min-width:116px;position:absolute;top:0;right:0;transform:translate(20px,-112px)}.hero-seagull-canvas{width:100%;height:auto;image-rendering:pixelated;mix-blend-mode:multiply;display:block}.hero-line{overflow:hidden}.hero-copy .hero-line{z-index:1;position:relative}.hero-line>*{animation:heroLineUp 1.1s var(--ease-out-expo)both}.hero-line-1>*{animation-delay:.3s}.hero-line-2>*{animation-delay:1.65s}.hero-line-1>.greeting{animation:none}@keyframes heroLineUp{0%{opacity:0;transform:translateY(105%)}to{opacity:1;transform:translateY(0)}}.scroll-hint{pointer-events:none;opacity:.72;animation:.8s 1.4s both scrollHintFade;display:inline-flex;position:absolute;bottom:-5rem;left:50%;transform:translate(-50%)}.scroll-hint-arrow{border-right:1.5px dashed var(--color-text-muted);border-bottom:1.5px dashed var(--color-text-muted);opacity:.7;width:14px;height:14px;animation:1.8s ease-in-out 1.8s infinite scrollArrowDrift;transform:rotate(45deg)}@keyframes scrollHintFade{0%{opacity:0;transform:translate(-50%)translateY(10px)}to{opacity:1;transform:translate(-50%)translateY(0)}}@keyframes scrollHintPulse{0%,to{opacity:.4}50%{opacity:.8}}@keyframes scrollArrowDrift{0%,to{opacity:.55;transform:rotate(45deg)translate(0)}50%{opacity:.95;transform:rotate(45deg)translate(2px,2px)}}.about-text-reveal{opacity:0;transition:opacity .8s,transform .8s;transform:translateY(20px)}.section-content.revealed .about-text-reveal{opacity:1;transform:translateY(0)}.polaroid-drop-reveal{opacity:0;transition:opacity .5s ease .6s,transform .5s var(--ease-spring).6s;transform:translateY(-60px)rotate(-3deg)scale(.9)}.section-content.revealed .polaroid-drop-reveal{opacity:1;transform:translateY(0)rotate(0)scale(1)}.greeting{font-family:var(--font-title);color:var(--color-text);letter-spacing:-.03em;font-size:56px;font-weight:500;line-height:1.1}.hero-name{font-family:var(--font-title);letter-spacing:-.03em;color:var(--color-text);margin-top:.2rem;font-size:56px;font-weight:500;line-height:1.1}.gradient-name{background:linear-gradient(135deg,#a95b3d,#c57a48,#d9a052,#dfb66b,#c47a4a,#a95b3d) 0 0/300% 300%;-webkit-text-fill-color:transparent;cursor:default;-webkit-background-clip:text;background-clip:text;transition:background-position .15s}.body-text{font-family:var(--font-body);font-size:var(--size-body);line-height:var(--line-height-body);color:var(--color-text-muted)}.about-container{align-items:flex-start;gap:2.5rem;display:flex}.about-text{flex:1}.about-keyword{color:var(--color-text);text-underline-offset:3px;-webkit-text-decoration:underline dashed;text-decoration:underline dashed;text-decoration-thickness:1px;-webkit-text-decoration-color:var(--color-border);text-decoration-color:var(--color-border);cursor:pointer;transition:text-decoration-color .2s}.about-keyword:hover,.about-keyword:focus-visible,.about-keyword-active{text-decoration-style:solid;-webkit-text-decoration-color:var(--color-accent);text-decoration-color:var(--color-accent)}.about-monthly-quote{font-family:var(--font-body);color:var(--color-text-muted);margin-top:.95rem;font-size:13px}.about-monthly-quote-label{letter-spacing:.01em}.about-monthly-quote-link{color:var(--color-text);text-underline-offset:3px;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;text-decoration-thickness:1px;-webkit-text-decoration-color:var(--color-border);text-decoration-color:var(--color-border);cursor:pointer;transition:text-decoration-color .2s}.about-monthly-quote-link:hover,.about-monthly-quote-link:focus-visible,.about-monthly-quote-link-active{text-decoration-style:solid;-webkit-text-decoration-color:var(--color-text);text-decoration-color:var(--color-text)}.polaroid-stack{flex-shrink:0;width:230px;height:280px;position:relative}.polaroid-stacked{transition:transform .3s;position:absolute;top:0;left:0}.polaroid-develop{pointer-events:none;background:#fff;width:100%;height:100%;animation:1s cubic-bezier(.4,0,.2,1) .24s both overlayFade;position:absolute;top:0;left:0}.polaroid-develop.polaroid-develop-initial{animation:2.2s cubic-bezier(.4,0,.2,1) 4.7s both overlayFade}@keyframes polaroidDrop{0%{opacity:0;transform:scale(.8)rotate(0)translateY(-30px)}to{opacity:1}}.polaroid-entering{animation:polaroidDrop .4s var(--ease-spring)both}.polaroid-wrapper{flex-shrink:0;margin-top:-2.5rem}.polaroid{background:#fff;width:230px;padding:10px 10px 36px;transition:transform .3s;transform:rotate(2.5deg);box-shadow:0 4px 20px #0000001a,0 1px 4px #0000000f}.polaroid:hover{transform:rotate(0)}.polaroid-image-wrapper{position:relative;overflow:hidden}.polaroid-image{aspect-ratio:1;object-fit:cover;width:100%;display:block}.polaroid-caption{font-family:var(--font-body);color:var(--color-text-muted);text-align:center;margin-top:10px;font-size:11px}@keyframes overlayFade{0%{opacity:1}to{opacity:0}}@keyframes captionFadeIn{to{opacity:1}}.experience-grid{border:1.5px dashed var(--color-border);flex-direction:column;display:flex}.experience-card{cursor:pointer;border-bottom:1.5px dashed var(--color-border);contain:paint;background:#fff6;align-items:center;gap:1.25rem;min-height:90px;padding:1.25rem 1.5rem;transition:background .25s,border-color .25s;display:flex;position:relative;overflow:hidden}.experience-card:hover,.experience-card:focus-visible{background:#ffffffa6;border-bottom-style:solid}.experience-card:last-child{border-bottom:none}.experience-card-bg{object-fit:cover;opacity:0;pointer-events:none;will-change:opacity;backface-visibility:hidden;width:100%;height:100%;transition:opacity .22s;position:absolute;top:0;left:0;transform:translateZ(0)}.experience-card:hover .experience-card-bg,.experience-card:focus-visible .experience-card-bg{opacity:.18}.experience-card-content{z-index:1;flex-wrap:wrap;flex:1;justify-content:space-between;align-items:baseline;gap:.5rem;display:flex;position:relative}.experience-left{flex-direction:column;gap:.1rem;display:flex}.experience-role{font-family:var(--font-body);color:var(--color-text);font-size:14px;font-weight:600;display:block}.experience-prev{color:var(--color-text-muted);font-size:12px;font-weight:400}.experience-org{font-family:var(--font-body);color:var(--color-text-muted);font-size:13px;display:block}.experience-date{font-family:var(--font-body);color:var(--color-text-muted);white-space:nowrap;font-size:12px}.section-content.revealed .experience-card{animation:cardReveal .55s var(--ease-out-expo)both}.project-grid-wrap{position:relative}.projects-dino{opacity:0;pointer-events:none;z-index:0;width:clamp(360px,42vw,650px);position:absolute;bottom:-12.2rem;left:-.65rem;transform:translateY(12px)rotate(2deg)scale(.95)}.projects-dino-canvas{image-rendering:auto;mix-blend-mode:multiply;filter:contrast(1.16)brightness(.82);width:100%;height:auto;display:block}.projects-dino.revealed{animation:dinoReveal .85s var(--ease-out-expo).18s forwards}@keyframes dinoReveal{0%{opacity:0;transform:translateY(12px)rotate(2deg)scale(.95)}to{opacity:.36;transform:translateY(0)rotate(0)scale(1)}}.project-route-lines{pointer-events:none;z-index:0;opacity:0;transition:opacity .7s;position:absolute;inset:0}.project-route-lines.revealed{opacity:.45}.project-route{border-top:1px dashed #a35b3c57;height:1px;position:absolute}.project-route:after{content:"";background:#a35b3c73;border-radius:50%;width:4px;height:4px;position:absolute;top:-2px;right:-1px}.route-a{width:32%;top:46%;left:8%;transform:rotate(-12deg)}.route-b{width:28%;top:58%;right:9%;transform:rotate(14deg)}.project-grid{border:1.5px dashed var(--color-border);grid-template-columns:repeat(4,1fr);display:grid}.project-card{aspect-ratio:1;cursor:pointer;border-right:1.5px dashed var(--color-border);border-bottom:1.5px dashed var(--color-border);contain:paint;background:#fff6;flex-direction:column;justify-content:flex-end;padding:1rem;transition:background .25s,border-color .25s;display:flex;position:relative;overflow:hidden}.project-card:hover,.project-card:focus-visible{background:#ffffffa6}.project-card:nth-child(4n){border-right:none}.project-card:nth-child(n+5){border-bottom:none}.project-card-bg{object-fit:cover;opacity:0;pointer-events:none;will-change:opacity;backface-visibility:hidden;width:100%;height:100%;transition:opacity .22s;position:absolute;top:0;left:0;transform:translateZ(0)}.project-card:hover .project-card-bg,.project-card:focus-visible .project-card-bg{opacity:.2}.project-card-content{z-index:1;position:relative}.project-name{font-family:var(--font-title);color:var(--color-text);margin-bottom:.15rem;font-size:18px;font-weight:500}.project-tag{font-family:var(--font-body);color:var(--color-text-muted);background:#0000000a;width:fit-content;margin-bottom:.4rem;padding:2px 6px;font-size:10px;display:inline-block}.project-tech{font-family:var(--font-body);color:var(--color-text-muted);font-size:11px}.section-content.revealed .project-card{animation:cardReveal .55s var(--ease-out-expo)both}@keyframes cardReveal{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.greeting-phrase{flex-wrap:wrap;gap:.06em .22em;display:inline-flex}.greeting-word{opacity:0;filter:blur(8px);animation:1.35s cubic-bezier(.19,1,.22,1) forwards greetingWordIn;animation-delay:calc(var(--word-index)*80ms + 70ms);will-change:transform,filter,opacity;transform:translate(-14px)}@keyframes greetingWordIn{0%{opacity:0;filter:blur(8px);transform:translate(-14px)}to{opacity:1;filter:blur();transform:translate(0)}}.human-grid{border:1.5px dashed var(--color-border);grid-template-columns:repeat(4,1fr);display:grid}.human-card{aspect-ratio:1;border-right:1.5px dashed var(--color-border);cursor:pointer;contain:paint;background:#fff6;flex-direction:column;justify-content:flex-end;padding:1rem;transition:background .25s;display:flex;position:relative;overflow:hidden}.human-card:hover,.human-card:focus-visible{background:#ffffffa6}.human-card:last-child{border-right:none}.human-card-bg{object-fit:cover;opacity:0;pointer-events:none;will-change:opacity;backface-visibility:hidden;width:100%;height:100%;transition:opacity .22s;position:absolute;top:0;left:0;transform:translateZ(0)}.human-card:hover .human-card-bg,.human-card:focus-visible .human-card-bg{opacity:.18}.human-card-content{z-index:1;position:relative}.human-note{font-family:var(--font-body);letter-spacing:.08em;text-transform:lowercase;color:var(--color-text-muted);border-bottom:1px dashed var(--color-border);margin-bottom:.35rem;font-size:9px;display:inline-block}.human-emoji{margin-bottom:.5rem;font-size:24px;display:block}.human-label{font-family:var(--font-title);color:var(--color-text);margin-bottom:.25rem;font-size:16px;font-weight:500}.human-card .body-text{font-size:12px;line-height:1.5}.section-content.revealed .human-card{animation:cardReveal .55s var(--ease-out-expo)both}.drawer-backdrop{z-index:1000;cursor:pointer;opacity:0;pointer-events:none;will-change:opacity;backface-visibility:hidden;contain:paint;background:#000;width:100%;height:100%;transition:opacity .28s cubic-bezier(.22,1,.36,1);position:fixed;top:0;left:0;transform:translateZ(0)}.drawer-backdrop.drawer-open{opacity:.3;pointer-events:auto}.drawer{background:var(--color-bg);border-left:1.5px dashed var(--color-border);z-index:1001;cursor:default;overscroll-behavior-x:none;background-image:linear-gradient(45deg,#1a1a1a05 25%,#0000 25% 75%,#1a1a1a05 75%),linear-gradient(45deg,#1a1a1a05 25%,#0000 25% 75%,#1a1a1a05 75%);background-position:0 0,2px 2px;background-size:4px 4px;flex-direction:column;width:min(480px,92vw);height:100%;transition:transform .42s cubic-bezier(.32,.72,0,1);display:flex;position:fixed;top:0;right:0;overflow:hidden;transform:translate(100%);box-shadow:-16px 0 60px #00000014}.drawer.drawer-open{transform:translate(0)}.drawer-frame{border-top:1px dotted var(--color-border);border-left:1px dotted var(--color-border);pointer-events:none;z-index:0;opacity:.45;position:absolute;inset:8px 0 8px 8px}.drawer-header{z-index:2;height:var(--navbar-height);border-bottom:1px solid #c4c0b98c;flex-shrink:0;justify-content:space-between;align-items:center;padding:0 1.5rem;display:flex;position:relative}.drawer-tab{font-family:var(--font-body);letter-spacing:.12em;text-transform:uppercase;color:var(--color-text-muted);opacity:.55;-webkit-user-select:none;user-select:none;font-size:10px}.modal-close{border:1px dashed var(--color-border);cursor:pointer;width:32px;height:32px;color:var(--color-text-muted);font-size:13px;font-family:var(--font-body);z-index:2;background:0 0;flex-shrink:0;justify-content:center;align-items:center;line-height:1;transition:all .2s;display:flex}.modal-close:hover,.modal-close:focus-visible{color:var(--color-text);border-style:solid;border-color:var(--color-text)}.drawer-body{z-index:1;scrollbar-width:thin;scrollbar-color:var(--color-border)transparent;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;flex:1;padding:0 1.5rem 3rem;position:relative;overflow:hidden auto}.drawer-body::-webkit-scrollbar{width:3px}.drawer-body::-webkit-scrollbar-track{background:0 0}.drawer-body::-webkit-scrollbar-thumb{background:var(--color-border)}.modal-image{aspect-ratio:16/6;object-fit:cover;border-bottom:1px dashed var(--color-border);width:calc(100% + 3rem);margin-bottom:1.25rem;margin-left:-1.5rem;display:block}.modal-image.modal-image-cooking{aspect-ratio:16/9}.modal-image.pending{opacity:0}.modal-image.ready{opacity:1}.modal-image{will-change:opacity;transition:opacity .24s}.modal-title{font-family:var(--font-title);color:var(--color-text);margin-bottom:.25rem;font-size:26px;font-weight:500;line-height:1.15}.modal-subtitle{font-family:var(--font-body);color:var(--color-text-muted);letter-spacing:.03em;border-bottom:1px dashed var(--color-border);margin-bottom:1.25rem;padding-bottom:1.25rem;font-size:11px}.modal-body{font-family:var(--font-body);font-size:14.5px;line-height:var(--line-height-body);color:var(--color-text-muted);margin-bottom:1.25rem}.modal-split{flex-direction:column;gap:1rem;margin-bottom:1.25rem;display:flex}.modal-split-text{flex:1}.modal-split-image{object-fit:cover;border-bottom:1px dashed var(--color-border);width:100%;max-height:200px}.modal-split.reverse{flex-direction:column}.modal-section-title{font-family:var(--font-title);color:var(--color-text);margin-bottom:.4rem;font-size:18px;font-weight:500}.modal-inline-link{color:var(--color-text);text-underline-offset:3px;font-weight:600;text-decoration:underline;text-decoration-thickness:1px}.modal-inline-link:hover{opacity:.6}.modal-links{border-top:1px dashed var(--color-border);flex-wrap:wrap;gap:.5rem;margin-bottom:1.5rem;padding-top:1rem;display:flex}.modal-link{font-family:var(--font-body);border:1px dashed var(--color-border);color:var(--color-text);align-items:center;gap:.3rem;min-height:32px;padding:7px 16px;font-size:11px;text-decoration:none;transition:all .2s;display:inline-flex}.drawer-body>:not(.modal-image){max-width:100%}.modal-body,.modal-subtitle,.modal-title{overflow-wrap:anywhere;word-break:break-word}.modal-link:hover,.modal-link:focus-visible{background:var(--color-accent);color:var(--color-bg);border-style:solid;border-color:var(--color-accent);opacity:1}.drawer-body-placeholder{border:1px dashed var(--color-border);background:#ffffff5c;min-height:180px;margin-bottom:1rem}.film-list{flex-direction:column;gap:1.25rem;display:flex}.film-item{align-items:flex-start;gap:.9rem;display:flex}.film-rank{font-family:var(--font-title);color:var(--color-border);text-align:center;flex-shrink:0;width:22px;font-size:24px;font-weight:500;line-height:1}.film-poster{object-fit:cover;border:1px solid var(--color-border);flex-shrink:0;width:72px;height:104px}.film-info{flex:1}.film-title-text{font-family:var(--font-title);color:var(--color-text);margin-bottom:.1rem;font-size:16px;font-weight:500}.film-year{font-family:var(--font-body);color:var(--color-text-muted);margin-bottom:.4rem;font-size:11px}.film-desc{font-family:var(--font-body);color:var(--color-text-muted);font-size:13px;line-height:1.6}.dotted-arrow{color:currentColor;flex-shrink:0;width:1em;height:1em;line-height:1;display:inline-block;position:relative}.dotted-arrow:before,.dotted-arrow:after{content:"";box-sizing:border-box;position:absolute}.dotted-arrow-right:before{content:"→";font-size:.95em;font-family:var(--font-body);inset:0}.dotted-arrow-left:before{content:"←";font-size:.95em;font-family:var(--font-body);inset:0}.dotted-arrow-up-right:before{content:"↗";font-size:.92em;font-family:var(--font-body);inset:0}.dotted-arrow:after{display:none}.footer{width:100%;margin-top:0;padding:0;overflow:visible}.footer-inner{max-width:var(--max-width);flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;margin:0 auto;padding:0 1.5rem;display:flex}.footer-left{flex-direction:column;gap:.75rem;display:flex}.footer-text{font-family:var(--font-body);color:var(--color-text-muted);font-size:13px}.footer-spotify{font-family:var(--font-body);color:var(--color-text-muted);align-items:center;gap:.5rem;font-size:13px;display:flex}.spotify-dot{background:#c98a34;width:8px;height:8px;animation:2s infinite pulse;display:inline-block}.spotify-dot.offline{background:var(--color-border);animation:none}.spotify-track{color:var(--color-text);font-weight:600;text-decoration:none;transition:opacity .2s}.spotify-track:hover{opacity:.6}.footer-right{flex-direction:column;align-items:flex-end;gap:.75rem;display:flex}.footer-links{align-items:center;gap:1.25rem;display:flex}.footer-link{font-family:var(--font-body);color:var(--color-text-muted);font-size:13px;text-decoration:none;transition:color .2s}.footer-link:hover{color:var(--color-accent);opacity:1}.footer-link-button{appearance:none;cursor:pointer;background:0 0;border:0;padding:0}.footer-link-button.active{color:var(--color-accent);text-underline-offset:3px;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.build-note-modal-backdrop{opacity:0;pointer-events:none;z-index:1020;background:#000;transition:opacity .24s cubic-bezier(.22,1,.36,1);position:fixed;inset:0}.build-note-modal-backdrop.open{opacity:.34;pointer-events:auto}.build-note-modal{z-index:1021;opacity:0;pointer-events:none;justify-content:center;align-items:center;padding:1rem;transition:opacity .24s cubic-bezier(.22,1,.36,1);display:flex;position:fixed;inset:0}.build-note-modal.open{opacity:1;pointer-events:auto}.build-note{border:1.5px dashed var(--color-border);text-align:left;width:min(360px,100vw - 3rem);color:var(--color-text);background:#f2dca2;padding:.8rem .9rem .88rem;position:relative;box-shadow:4px 4px #a35b3c26}.build-note-modal-card{aspect-ratio:1;width:min(420px,100vw - 2rem);max-height:min(420px,100svh - 2rem);padding:.95rem 1rem;transition:transform .24s cubic-bezier(.22,1,.36,1);overflow-y:auto;transform:scale(.96)}.build-note-modal.open .build-note-modal-card{transform:scale(1)}.build-note-close{border:1px dashed var(--color-border);width:28px;height:28px;color:var(--color-text-muted);font-family:"Architekt",var(--font-body);cursor:pointer;background:0 0;font-size:12px;line-height:1;position:absolute;top:.52rem;right:.52rem}.build-note-close:hover,.build-note-close:focus-visible{color:var(--color-text);border-style:solid;border-color:var(--color-text)}.build-note:before{content:"";background:#ffffff70;border:1px dashed #a35b3c52;width:76px;height:14px;position:absolute;top:-10px;left:50%;transform:translate(-50%)}.build-note-title{font-family:"Neco",var(--font-title);letter-spacing:.01em;color:var(--color-text);margin-bottom:.45rem;padding-right:2rem;font-size:14px}.build-note-line{font-family:"Architekt",var(--font-body);color:#443a33;font-size:12px;line-height:1.48}.build-note-line+.build-note-line{margin-top:.22rem}.footer-webring{align-items:center;gap:.35rem;display:flex}.webring-arrow-link{font-family:var(--font-body);color:var(--color-text-muted);border:1.5px dashed var(--color-border);justify-content:center;align-items:center;width:32px;height:32px;font-size:12px;text-decoration:none;transition:all .2s;display:inline-flex}.webring-arrow-link:hover,.webring-arrow-link:focus-visible{border-style:solid;border-color:var(--color-text);color:var(--color-text);opacity:1}.webring-logo-link{border:1.5px dashed var(--color-border);justify-content:center;align-items:center;width:32px;height:32px;transition:all .2s;display:inline-flex}.webring-logo-link:hover,.webring-logo-link:focus-visible{border-style:solid;border-color:var(--color-text);opacity:1}.webring-logo{opacity:.5;width:16px;height:auto;display:block}.skyline-full-bleed{pointer-events:none;-webkit-user-select:none;user-select:none;width:100%;margin-top:2rem;margin-bottom:0;padding-bottom:0;font-size:0;line-height:0;overflow:hidden}.city-skyline-wrapper{width:100%;overflow:hidden}.city-skyline{filter:grayscale()contrast(1.8)brightness(1.1);opacity:.4;mix-blend-mode:multiply;width:100%;height:auto;image-rendering:pixelated;margin:0;padding:0;display:block}.night-mode-canvas{z-index:0;pointer-events:none;width:100%;height:100%;position:fixed;top:0;left:0}body.night-mode{color:#f7f5f2;background-color:#1a1a1a;background-image:linear-gradient(45deg,#f7f5f205 25%,#0000 25% 75%,#f7f5f205 75%),linear-gradient(45deg,#f7f5f205 25%,#0000 25% 75%,#f7f5f205 75%);background-position:0 0,2px 2px;background-size:4px 4px;transition:background-color .6s,color .6s}body.night-mode .navbar-bar{-webkit-backdrop-filter:blur(40px)saturate(180%);background:#1a1a1ab8;border-bottom:1px solid #ffffff1a;box-shadow:inset 0 1px #ffffff0f,0 4px 16px #0003}body.night-mode .navbar-bar:after{mix-blend-mode:screen;opacity:.28;background-image:radial-gradient(circle at 1px 1px,#f7f5f22e .95px,#0000 1px)}body.night-mode .scroll-progress{background:#f7f5f21f}body.night-mode .scroll-progress-fill{background:linear-gradient(90deg,#c98a34 0%,#e0a14b 100%)}@supports not ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){body.night-mode .navbar-bar{background:#1a1a1af7}}body.night-mode .navbar-name,body.night-mode .navbar-link,body.night-mode .mobile-menu-link{color:#f7f5f2}body.night-mode .navbar-link{background:#ffffff14;border-color:#c8c8c84d}body.night-mode .navbar-link:hover,body.night-mode .navbar-link.active{background:#ffffff29;border-color:#f7f5f2}body.night-mode .mobile-menu{-webkit-backdrop-filter:blur(20px)saturate(200%);background:#1a1a1a73;transform:translateZ(0);box-shadow:0 4px 30px #0003}@supports not ((-webkit-backdrop-filter:blur(20px)) or (backdrop-filter:blur(20px))){body.night-mode .mobile-menu{background:#1a1a1af2}}body.night-mode .mobile-menu-grid,body.night-mode .mobile-menu-link{border-color:#c8c8c84d}body.night-mode .section-divider{border-top-color:#c8c8c833}body.night-mode .section-title,body.night-mode .experience-role,body.night-mode .project-name,body.night-mode .human-label{color:#f7f5f2}body.night-mode .body-text,body.night-mode .experience-org,body.night-mode .experience-date,body.night-mode .experience-prev,body.night-mode .project-tag,body.night-mode .project-tech,body.night-mode .polaroid-caption,body.night-mode .footer-text,body.night-mode .footer-spotify,body.night-mode .footer-link,body.night-mode .footer-webring a{color:#f7f5f299}body.night-mode .webring-arrow-link:hover,body.night-mode .webring-logo-link:hover{color:#f7f5f2;border-color:#f7f5f2}body.night-mode .webring-logo{filter:invert()}body.night-mode .greeting,body.night-mode .hero-name{color:#f7f5f2}body.night-mode .experience-grid,body.night-mode .project-grid,body.night-mode .human-grid{border-color:#c8c8c833}body.night-mode .experience-card,body.night-mode .project-card,body.night-mode .human-card{background:#ffffff0a;border-color:#c8c8c833}body.night-mode .experience-card:hover,body.night-mode .experience-card:focus-visible,body.night-mode .project-card:hover,body.night-mode .project-card:focus-visible,body.night-mode .human-card:hover,body.night-mode .human-card:focus-visible{background:#ffffff14}body.night-mode .polaroid{background:#2a2a2a;box-shadow:0 4px 20px #0006}body.night-mode .drawer-backdrop.drawer-open{background:#00000080}body.night-mode .drawer{background-color:#1e1c1a;background-image:linear-gradient(45deg,#f7f5f205 25%,#0000 25% 75%,#f7f5f205 75%),linear-gradient(45deg,#f7f5f205 25%,#0000 25% 75%,#f7f5f205 75%);border-left-color:#c8c8c833;box-shadow:-16px 0 60px #0006}body.night-mode .drawer-frame{border-color:#c8c8c833}body.night-mode .drawer-header{border-bottom-color:#ffffff1a}body.night-mode .modal-overlay{background:#000000b3}body.night-mode .modal-content{background:#222;border-color:#c8c8c833}body.night-mode .modal-frame{border-color:#c8c8c833}body.night-mode .modal-title{color:#f7f5f2}body.night-mode .modal-subtitle,body.night-mode .modal-body{color:#f7f5f299}body.night-mode .modal-close{color:#f7f5f299;border-color:#c8c8c84d}body.night-mode .modal-close:hover,body.night-mode .modal-close:focus-visible{color:#f7f5f2;border-color:#f7f5f2}body.night-mode .modal-link{color:#f7f5f2;border-color:#c8c8c84d}body.night-mode .modal-link:hover{color:#1a1a1a;background:#f7f5f2;border-color:#f7f5f2}body.night-mode .modal-section-title{color:#f7f5f2}body.night-mode .modal-subtitle,body.night-mode .drawer-header,body.night-mode .modal-links,body.night-mode .modal-image{border-color:#c8c8c833}body.night-mode .drawer-tab{color:#f7f5f266}body.night-mode .cursor-label{color:#1a1a1a;background:#f7f5f2}body.night-mode .spotify-track{color:#f7f5f2}body.night-mode .about-keyword{color:#f7f5f2;text-decoration-color:#c8c8c84d}body.night-mode .about-keyword:hover{text-decoration-color:#f7f5f2}body.night-mode .hamburger-line{background:#f7f5f2}body.night-mode .back-to-top{color:#f7f5f2;background:#1a1a1ae0;border-color:#c8c8c84d}body.night-mode .back-to-top:hover,body.night-mode .back-to-top:focus-visible{background:#ffffff1f;border-color:#f7f5f2}body.night-mode .footer-link-button.active{color:#f0a860}body.night-mode .build-note-modal-backdrop.open{opacity:.54}body.night-mode .build-note{color:#f7f5f2;background:#332a20;border-color:#c8c8c852;box-shadow:4px 4px #00000040}body.night-mode .build-note-close{color:#f7f5f2b8;border-color:#c8c8c859}body.night-mode .build-note-close:hover,body.night-mode .build-note-close:focus-visible{color:#f7f5f2;border-color:#f7f5f2}body.night-mode .build-note:before{background:#f7f5f233;border-color:#f7f5f24d}body.night-mode .build-note-title,body.night-mode .build-note-line,body.night-mode .section-hero .sticky-panel,body.night-mode .section-about .sticky-panel,body.night-mode .section-experience .sticky-panel,body.night-mode .section-projects .sticky-panel,body.night-mode .section-human .sticky-panel,body.night-mode .section-footer .sticky-panel,body.night-mode .section-about .section-title,body.night-mode .section-experience .section-title,body.night-mode .section-projects .section-title,body.night-mode .section-human .section-title,body.night-mode .section-about .body-text,body.night-mode .section-about .about-keyword{color:#f7f5f2}body.night-mode .project-route{border-top-color:#f0a8605c}body.night-mode .project-route:after{background:#f0a86080}body.night-mode .projects-dino.revealed{opacity:.32}body.night-mode .human-note{color:#f7f5f2b3;border-bottom-color:#c8c8c859}body.night-mode .experience-lily.revealed{opacity:.3}body.night-mode .section-footer .footer-text,body.night-mode .section-footer .footer-spotify,body.night-mode .section-footer .footer-link{color:#f7f5f2}body.night-mode .city-skyline{filter:none;opacity:.5;mix-blend-mode:normal}body.night-mode .skip-link{color:#1a1a1a;background:#f7f5f2}body.night-mode :focus-visible{outline-color:#f0a860}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}html{scroll-behavior:auto}.section-content{transition:none}.section-content,.section-content.revealed{opacity:1;transform:none}.about-text-reveal,.polaroid-drop-reveal{opacity:1;transition:none;transform:none}.navbar,.scroll-progress-fill,.back-to-top{transition:none}}@media (max-width:940px){.hero-copy{padding-right:clamp(1rem,5vw,4.5rem)}.hero-seagull{width:clamp(102px,17vw,148px);min-width:102px;transform:translate(14px,-86px)}.project-grid{grid-template-columns:repeat(3,1fr)}.project-card:nth-child(4n){border-right:1.5px dashed var(--color-border)}.project-card:nth-child(3n){border-right:none}.project-card:nth-child(n+5){border-bottom:1.5px dashed var(--color-border)}.project-card:nth-last-child(-n+2){border-bottom:none}.human-grid{grid-template-columns:repeat(2,1fr)}.human-card{border-bottom:1.5px dashed var(--color-border)}.human-card:nth-child(2n){border-right:none}.human-card:nth-child(n+3){border-bottom:none}.modal-split,.modal-split.reverse{flex-direction:column}.modal-split-image{flex:unset;width:100%;max-height:260px}}@media (max-width:700px){.navbar-links{display:none}.hamburger{display:flex}.greeting,.hero-name{font-size:38px}.hero-copy{padding-right:0}.hero-seagull{display:none}.symbol-banner{height:52svh}.scroll-runway{padding:4.9rem 0}.section-inner{padding:0 1.25rem}.section-hero{min-height:100svh;padding:0}.section-hero .section-inner{padding-top:48vh}.scroll-hint{bottom:-5.4rem}.runway-footer{padding:8rem 0 0}.section-title{max-width:100%}.about-container{flex-direction:column-reverse;align-items:center;gap:1.5rem}.polaroid-wrapper{margin-top:0}.polaroid-stack{width:260px;height:310px}.polaroid{width:260px}.experience-card{flex-direction:column;align-items:flex-start;gap:.5rem}.experience-card-content{flex-direction:column;gap:.15rem}.section-experience{margin-top:2.8rem}.experience-lily{width:clamp(140px,36vw,220px);top:-2.1rem;right:.15rem}.project-grid{grid-template-columns:repeat(2,1fr)}.projects-dino{width:clamp(300px,68vw,500px);bottom:-8.1rem;left:-.1rem}.project-route-lines{opacity:.32}.route-a{width:40%;top:38%;left:6%;transform:rotate(-10deg)}.route-b{width:34%;top:64%;right:8%;transform:rotate(11deg)}.project-card:nth-child(3n){border-right:1.5px dashed var(--color-border)}.project-card:nth-child(2n){border-right:none}.project-card:nth-last-child(-n+3){border-bottom:1.5px dashed var(--color-border)}.project-card:nth-last-child(-n+2){border-bottom:none}.human-grid{grid-template-columns:repeat(2,1fr)}.cursor-label{display:none}.back-to-top{bottom:1rem;right:1rem}.footer-inner{text-align:center;flex-direction:column;align-items:center;padding:0 1.25rem}.footer-left,.footer-right{align-items:center}.footer-spotify{text-align:center;flex-wrap:wrap;justify-content:center}.footer-links{justify-content:center}.build-note{text-align:left}.footer-webring{justify-content:center}}
