:root{--font-heading: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;--font-body: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;--font-mono: "Geist Mono", "SF Mono", "Fira Code", "Fira Mono", "Roboto Mono", "Courier New", monospace}*{margin:0;padding:0;box-sizing:border-box}:focus{outline:none}:focus-visible{outline:2px solid var(--primary-purple);outline-offset:3px}.skip-link{position:absolute;left:8px;padding:10px 18px;z-index:10000;text-decoration:none;font-family:var(--font-body);font-weight:600}.skip-link:focus{top:0}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-delay:0ms!important;transition-delay:0ms!important}}body{line-height:1.7;transition:background-color var(--duration-hover) var(--ease-ui),color var(--duration-hover) var(--ease-ui);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.header{position:fixed;left:0;right:0;z-index:1000;width:100%}.header-container{display:flex;width:100%;margin:0 auto;box-sizing:border-box;transition:background-color var(--duration-base) var(--ease-ui),border-color var(--duration-base) var(--ease-ui),box-shadow var(--duration-base) var(--ease-ui),padding var(--duration-base) var(--ease-ui)}.nav-brand{display:flex;align-items:center;gap:14px;min-width:0;transition:transform var(--duration-fast) var(--ease-ui),opacity var(--duration-fast) var(--ease-ui)}.nav{display:flex;align-items:center}.nav-menu{display:flex;list-style:none;margin:0}.nav-item{margin:0}.nav-item:hover{transform:none}.nav-link{text-transform:none}.nav-link:active{box-shadow:none}.hamburger{background:none;border:none;cursor:pointer;padding:8px;flex-direction:column;gap:5px;z-index:10;border-radius:50%;transition:background-color var(--duration-fast) var(--ease-ui)}.hamburger:hover{background:#2918430f}body{padding-top:var(--header-height)}section[id]{scroll-margin-top:calc(var(--header-height) + 42px)}.hero{display:flex;justify-content:center}.hero-inner{width:100%}.hero-tagline{font-family:var(--font-body)}.hero-social-btn{text-decoration:none}@media(max-width:768px){.hero-inner{flex-direction:column;text-align:center}}.projects{position:relative}.projects h2{font-family:var(--font-heading);text-shadow:none;position:relative;z-index:1;text-align:left}.projects h2:after{content:"";position:absolute;bottom:0;left:0;transform:none;width:72px;height:3.5px;border-radius:999px}.experience{position:relative}.experience h2{font-family:var(--font-heading);text-shadow:none;position:relative;z-index:1;text-align:left}.experience h2:after{content:"";position:absolute;bottom:0;left:0;transform:none;width:72px;height:3.5px;border-radius:999px}.skills{position:relative}.skills-heading{display:flex;justify-content:space-between;position:relative;z-index:1;text-align:left}.skills h2{font-family:var(--font-heading);text-shadow:none;position:relative;z-index:1;text-align:left}.skills h2:after{content:"";position:absolute;bottom:0;left:0;transform:none;width:72px;height:3.5px;border-radius:999px}.contact{width:100%;position:relative;overflow:hidden}.contact h2{font-family:var(--font-heading);text-shadow:none;position:relative;z-index:1}.contact h2:after{content:"";position:absolute;bottom:-10px;left:50%;transform:translate(-50%);width:80px;height:4px;border-radius:2px}.footer{position:relative;z-index:1;text-align:center}.footer p{font-family:var(--font-heading);margin:0}@media(max-width:768px){.nav{transform-origin:top center}.skills-heading{flex-direction:column}}.fade-in-section h2:after{clip-path:inset(0 100% 0 0);transition:clip-path .52s var(--ease-out) .12s}.fade-in-section.is-visible h2:after{clip-path:inset(0 0 0 0)}.not-found{animation:page-enter .48s var(--ease-out) both}@keyframes page-enter{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.fade-in-section{opacity:0}.fade-in-section.is-visible{opacity:1;transform:translateY(0)}.fade-in-up{opacity:0}.is-visible .fade-in-up{opacity:1;transform:translateY(0)}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.back-to-top{position:fixed;cursor:pointer;display:flex;align-items:center;justify-content:center;visibility:hidden;opacity:0;pointer-events:none;transform:translateY(12px) scale(.92);z-index:999}.back-to-top--visible{visibility:visible;opacity:1;pointer-events:auto;transform:translateY(0) scale(1)}.hero-button{display:inline-flex;align-items:center;justify-content:center;border:1px solid transparent;text-decoration:none}.not-found{padding:90px 20px;display:flex;flex-direction:column;align-items:center;justify-content:center}.not-found-code{margin-bottom:8px}.not-found h1{color:var(--text-primary);font-family:var(--font-heading)}.not-found>p:not(.not-found-code){max-width:460px;margin-bottom:28px;color:var(--text-secondary)}.route-fallback{min-height:calc(100dvh - var(--header-height))}html{font-size:112.5%}:root{--theme-canvas: #0a0a0a;--page-backdrop: radial-gradient(ellipse at 70% 38%, #1a1714 0, #101010 44%, #090a0b 100%);--theme-soft: #1a1c20;--theme-card: #191919;--theme-mid: #363a3f;--theme-hairline: #212327;--theme-pill: rgba(255, 255, 255, .25);--theme-ink: #ffffff;--theme-radius-card: 20px;--theme-body: #dadbdf;--theme-mute: #7d8187;--theme-on-primary: #0a0a0a;--primary-purple: var(--theme-ink);--primary-violet: var(--theme-ink);--bg-canvas: var(--theme-canvas);--bg-section: var(--theme-canvas);--text-primary: var(--theme-ink);--text-secondary: var(--theme-body);--text-light: var(--theme-mute);--white: var(--theme-ink);--card-border: var(--theme-hairline);--card-border-hover: var(--theme-pill);--card-shadow: none;--card-shadow-hover: none;--shadow-sm: none;--shadow-md: none;--space-section: 120px;--space-grid: 20px;--duration-fast: .16s;--duration-base: .22s;--duration-slow: .42s;--duration-hover: .2s;--duration-nudge: .2s;--duration-menu: .64s;--duration-menu-close: .38s;--ease-standard: cubic-bezier(.2, 0, 0, 1);--ease-out: cubic-bezier(.16, 1, .3, 1);--ease-expo: cubic-bezier(.19, 1, .22, 1);--ease-ui: cubic-bezier(.4, 0, .2, 1);--ease-in-out: cubic-bezier(.45, 0, .55, 1);--ease-accelerate: cubic-bezier(.4, 0, 1, 1);--ease-decelerate: cubic-bezier(0, 0, .2, 1);--motion-axis: .3s;--motion-exit: 90ms;--motion-enter: .21s;--motion-travel: 40px;--motion-row: .18s;--header-height: 76px;--home-stage-max: 1440px;--font-hand: "Caveat", "Bradley Hand", "Segoe Print", cursive;--nav-logo-ink: #f3efe6;--nav-accent: #a98bff;--nav-tab: #1c1c1e;--nav-tab-hover: #29292c;--nav-tab-ink: #ededed;--nav-paper: #e9e2cf;--nav-paper-ink: #1d1b16;--nav-paper-grain: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .32 0 0 0 0 .27 0 0 0 0 .18 0 0 0 .2 0'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)'/%3E%3C/svg%3E")}html{overflow-x:clip;overflow-y:scroll;scrollbar-gutter:stable;color-scheme:dark;background:#090a0b;scroll-behavior:auto}::-webkit-scrollbar{width:10px}::-webkit-scrollbar-track{background:#090a0b}::-webkit-scrollbar-thumb{background:var(--theme-mid);border-radius:999px}::selection{background:#ffffff29;color:var(--theme-ink)}.project-paper ::selection,.project-polaroid ::selection,.about-statement ::selection,.about-diagram-paper ::selection,.contact-card ::selection{background:#a64ad73d;color:#111217}.project-paper .role-preview ::selection,.contact-card .letter-linkedin ::selection,.contact-card .letter-linkedin::selection{background:#ffffff38;color:#fff}body{color:var(--theme-ink);background:transparent;background-image:none;letter-spacing:0;overflow:visible}body:before{content:"";position:fixed;inset:0;z-index:-1;background:var(--page-backdrop);pointer-events:none}body,button,input,textarea,select{font-family:var(--font-body)}h1,h2,h3,h4{font-family:var(--font-heading);font-weight:400;letter-spacing:-.04em}p,a,button,span,li{letter-spacing:0}button,a{-webkit-tap-highlight-color:transparent}:where(a,button):focus-visible{outline:1px solid var(--theme-ink);outline-offset:4px}.skip-link{top:0;color:var(--theme-on-primary);background:var(--theme-ink);border-radius:0 0 999px 4px;transform:translateY(calc(-100% - 8px));transition:transform var(--duration-nudge) var(--ease-ui)}.skip-link:focus{transform:translateY(0)}.section-eyebrow,.hero-kicker,.not-found-code{color:var(--theme-mute);font-family:var(--font-mono);font-size:.75rem;font-weight:400;line-height:1.4;letter-spacing:1.4px;text-transform:uppercase}.header,.header--scrolled{top:0;padding:0;background:transparent;color:var(--theme-ink);box-shadow:none;pointer-events:none;opacity:1;visibility:visible;transition:top .36s var(--ease-expo),opacity .36s var(--ease-expo),visibility 0s linear 0s}.header--hidden{top:-8px;opacity:0;visibility:hidden;pointer-events:none;transition:top .22s var(--ease-ui),opacity .22s var(--ease-ui),visibility 0s linear .22s}.header--hidden .header-container{pointer-events:none}.header-container{position:relative;z-index:2}.menu-backdrop{display:none}body.nav-locked{overflow:hidden}.header-container,.header--scrolled .header-container{min-height:var(--header-height);padding:0 32px;max-width:none;justify-content:center;align-items:flex-end;gap:28px;background:var(--page-backdrop) fixed;border:0;border-radius:0;box-shadow:none;pointer-events:auto}.header-container:after{content:"";position:absolute;top:100%;right:0;left:0;height:18px;background:var(--page-backdrop) fixed;-webkit-mask:linear-gradient(#000,transparent);mask:linear-gradient(#000,transparent);pointer-events:none}@media(max-width:768px){.header-container,.header--scrolled .header-container,.header-container:after{background:#0e0e0e}}.nav{margin-left:0;align-self:flex-end}.nav-brand{align-self:flex-end;padding:0 4px 8px;color:var(--nav-logo-ink);text-decoration:none}.nav-brand:hover{opacity:1;transform:none}.nav-logo{display:inline-block;font-family:var(--font-hand);font-size:2.15rem;font-weight:500;line-height:1;letter-spacing:-.01em;transform:rotate(-4deg);transition:transform var(--duration-nudge) var(--ease-ui)}.nav-brand:hover .nav-logo{transform:rotate(-7deg) translateY(-1px)}.nav-logo-dot{color:var(--nav-accent);font-size:1.2em;line-height:0}.nav-menu{position:relative;align-items:flex-end;gap:0;padding:0 4px;background:transparent;border:0;border-radius:0;box-shadow:none;clip-path:inset(-80px -60px 0 -60px)}.nav-menu:after{content:"";position:absolute;right:-10px;bottom:0;left:-10px;z-index:30;height:3px;background:#050505;border-top:1px solid #2c2c2f;pointer-events:none}.nav-item:nth-child(1){--tab-i: 0}.nav-item:nth-child(2){--tab-i: 1}.nav-item:nth-child(3){--tab-i: 2}.nav-item:nth-child(4){--tab-i: 3}.nav-item:nth-child(5){--tab-i: 4}.nav-item+.nav-item{margin-left:-10px}.nav-link{--tab-bg: var(--nav-tab);--tab-texture: none;--tab-edge: rgba(255, 255, 255, .1);--tab-focus: var(--nav-accent);position:relative;z-index:calc(10 - var(--tab-i, 0));isolation:isolate;display:flex;align-items:center;justify-content:center;height:calc(46px - var(--tab-i, 0) * 3px);min-height:0;padding:3px 24px 0 20px;color:var(--nav-tab-ink);background:transparent;border:0;border-radius:0;box-shadow:none;font-family:var(--font-body);font-size:1rem;font-weight:500;line-height:1;letter-spacing:-.005em;white-space:nowrap;text-decoration:none;filter:drop-shadow(4px 0 6px rgba(0,0,0,.55));transform:translateY(0);transition:transform var(--duration-nudge) var(--ease-ui),color var(--duration-hover) var(--ease-ui)}.nav-link:before,.nav-link:after{content:"";position:absolute;background-color:var(--tab-bg);background-image:linear-gradient(var(--tab-edge) 0 1px,transparent 1px),var(--tab-texture);transition:background-color var(--duration-hover) var(--ease-ui);pointer-events:none}.nav-link:before{inset:0 0 -8px;z-index:-1;border-radius:0 12px 0 0;box-shadow:inset 1px 0 #ffffff0d,inset -1px 0 #00000059}.nav-link:after{top:auto;right:auto;bottom:calc(100% - 1px);left:0;width:min(64%,78px);height:9px;transform:none;clip-path:polygon(0 100%,0 60%,1px 35%,3px 15%,6px 4%,10px 0,calc(100% - 15px) 0,calc(100% - 12px) 10%,100% 100%)}.nav-link:hover,.nav-link:not(.nav-link--active):hover{--tab-bg: var(--nav-tab-hover);color:#fff;background:transparent;border-color:transparent;box-shadow:none;transform:translateY(-3px)}.nav-link:active{transform:translateY(-1px)}.nav-link--active,.nav-link--active:hover,.nav-link--active:active{--tab-bg: var(--nav-paper);--tab-texture: var(--nav-paper-grain);--tab-edge: rgba(255, 255, 255, .6);--tab-focus: #4a2fc2;z-index:20;color:var(--nav-paper-ink);background:transparent;border-color:transparent;box-shadow:none;font-weight:500;transform:translateY(-4px)}.nav-link:focus-visible{outline:2px solid var(--tab-focus);outline-offset:-6px}.nav-tab-label{position:relative}.nav-tab-spark{position:absolute;top:-27px;right:-12px;width:26px;height:26px;fill:none;stroke:var(--nav-accent);stroke-width:2.4;stroke-linecap:round;pointer-events:none;transform:rotate(8deg);animation:nav-spark-in .3s .22s both}@keyframes nav-spark-in{0%{opacity:0;transform:rotate(-6deg) scale(.6);animation-timing-function:cubic-bezier(.3,0,.2,1)}70%{opacity:1;transform:rotate(10deg) scale(1.08);animation-timing-function:cubic-bezier(.45,0,.55,1)}}.nav-link--rising{animation:nav-tab-dip .28s both;transition:transform .21s cubic-bezier(.45,0,.2,1) 70ms,color var(--duration-hover) var(--ease-ui)}.nav-link--settling{animation:nav-tab-settle .21s 40ms both;transition:transform .17s var(--ease-in-out) 40ms,color var(--duration-hover) var(--ease-ui)}@keyframes nav-tab-dip{0%{translate:0 0;animation-timing-function:cubic-bezier(.4,0,.6,1)}25%{translate:0 1.5px;animation-timing-function:cubic-bezier(.4,0,.2,1)}to{translate:0 0}}@keyframes nav-tab-settle{0%,62%{translate:0 0;animation-timing-function:cubic-bezier(.4,0,.6,1)}82%{translate:0 .75px;animation-timing-function:cubic-bezier(.4,0,.2,1)}to{translate:0 0}}@media(prefers-reduced-motion:reduce){.nav-link--rising,.nav-link--settling,.nav-tab-spark{animation:none;transition-delay:0s}}@media(max-width:1024px){.header-container,.header--scrolled .header-container{padding:0 20px;gap:18px}.nav-link{padding:3px 18px 0 16px;font-size:.92rem}}.hamburger,button.hamburger.nav-toggle{display:none}.hero{min-height:0;padding:0 32px 88px;background:transparent;align-items:stretch}.hero.fade-in-section{opacity:1;transform:none}.hero-inner{max-width:var(--home-stage-max);display:grid;grid-template-columns:minmax(0,1fr);align-items:stretch;gap:80px}.hero-inner>.hero-intro{min-width:0;min-height:calc(100svh - var(--header-height));display:flex;flex-direction:column;align-items:stretch;text-align:left;padding:clamp(20px,3svh,40px) 0 clamp(16px,2.6svh,28px);box-sizing:border-box}.hero-intro-inner{--hero-name-size: clamp(3.4rem, min(9.6vw, 17svh), 9rem);--hero-ease: var(--ease-ui);--hero-paper: #ece7dc;--hero-paper-noise: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .32 0 0 0 0 .27 0 0 0 0 .2 0 0 0 .13 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");--hero-hand: "Caveat", "Bradley Hand", "Segoe Print", cursive;position:relative;flex:1 0 auto;display:grid;grid-template-rows:minmax(0,1fr) auto;row-gap:20px;width:100%}.hero-main{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);align-items:center;column-gap:clamp(32px,5vw,96px);align-self:center;width:100%;min-width:0}.hero-content{min-width:0}.hero-intro .hero-kicker{margin:0 0 clamp(14px,2.4svh,28px);color:#a6aab0;font-size:clamp(.95rem,1.2vw,1.15rem);font-weight:500;letter-spacing:.06em;text-transform:none}.hero-title{display:flex;flex-direction:column;align-items:flex-start;max-width:none;margin:0;color:var(--theme-ink);font-family:var(--font-heading);font-size:var(--hero-name-size);font-weight:900;line-height:.9;letter-spacing:-.045em}.hero-title-line{display:block;white-space:nowrap}.hero-title-word{display:inline-block;animation:hero-title-reveal .64s var(--hero-ease) both;animation-delay:calc(var(--i) * 90ms + .58s)}.hero-tagline{max-width:22em;margin:clamp(20px,3.4svh,38px) 0 clamp(26px,4.4svh,46px);color:#cfcfcf;font-size:clamp(1.1rem,1.8vw,1.7rem);font-weight:400;line-height:1.38;letter-spacing:-.01em}.hero-actions{display:flex;flex-wrap:wrap;justify-content:flex-start;gap:16px;margin:0}.hero-actions .hero-button{gap:10px;min-height:clamp(44px,5.6svh,54px);padding:0 clamp(18px,1.6vw,26px);border-radius:12px;font-size:clamp(.88rem,1vw,1rem);font-weight:600}.hero-actions .hero-button--ghost{border-color:#ffffff57;font-weight:500}.hero-actions .hero-button svg{flex:none;font-size:1.15em;transition:transform var(--duration-nudge) var(--ease-ui)}.hero-actions .hero-button:hover svg{transform:translate(2px,-2px)}.hero-social-links{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-start;gap:18px;margin:clamp(22px,3.8svh,40px) 0 0}.hero-social-btn{display:inline-flex;align-items:center;gap:10px;min-height:40px;padding:6px 0;color:#b3b7bd;background:transparent;border:0;border-radius:0;box-shadow:none;font-family:var(--font-mono);font-size:clamp(.78rem,.95vw,.9rem);font-weight:400;letter-spacing:.02em;transition:color var(--duration-hover) var(--ease-ui)}.hero-social-btn svg{font-size:1.2em}.hero-social-btn:hover{color:var(--theme-ink);background:transparent;border-color:transparent;box-shadow:none;transform:none}.hero-social-divider{width:1px;height:22px;background:#fff3}.hero-footer{grid-row:2;align-self:end;display:flex;justify-content:center;width:100%}.hero-scroll-cue{color:var(--theme-mute);font-family:var(--font-mono);font-size:.74rem;letter-spacing:.06em;white-space:nowrap;animation:hero-line-rise .6s var(--hero-ease) 1.3s both}.hero-scroll-cue span{display:inline-block;margin-left:6px;animation:hero-cue-bob 2.4s var(--ease-in-out) 2.2s infinite}@keyframes hero-cue-bob{0%,to{transform:translateY(0)}50%{transform:translateY(4px)}}.hero-intro .fade-in-up{animation:hero-line-rise .64s var(--hero-ease) both}.hero-intro .hero-kicker{animation-delay:.5s}.hero-intro .hero-actions{animation-delay:1s}.hero-intro .hero-social-links{animation-delay:1.12s}@keyframes hero-line-rise{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes hero-title-reveal{0%{opacity:0;transform:translateY(.18em)}to{opacity:1;transform:translateY(0)}}.hero-visual{display:flex;align-items:center;justify-content:center;min-width:0;padding:28px clamp(48px,5vw,80px) 36px 0}.hero-polaroid-wrap{position:relative;width:min(100%,460px,56svh);container-type:inline-size;transform-origin:50% 100%;animation:hero-polaroid-appear .22s var(--ease-decelerate) both,hero-polaroid-drift .9s linear both,hero-polaroid-swing .9s linear both,hero-polaroid-fall .9s linear both}@keyframes hero-polaroid-appear{0%{opacity:.001}to{opacity:1}}@keyframes hero-polaroid-drift{0%{translate:-30px 0;animation-timing-function:cubic-bezier(.45,0,.55,1)}18%{translate:-36px 0;animation-timing-function:cubic-bezier(.25,.55,.4,1)}62%,to{translate:0 0}}@keyframes hero-polaroid-swing{0%{rotate:-3deg;animation-timing-function:cubic-bezier(.45,0,.55,1)}18%{rotate:-4.5deg;animation-timing-function:cubic-bezier(.4,0,.6,1)}62%{rotate:.6deg;animation-timing-function:cubic-bezier(.4,0,.2,1)}to{rotate:0deg}}@keyframes hero-polaroid-fall{0%{transform:translateY(-48px) scale(1);animation-timing-function:cubic-bezier(.45,0,.55,1)}18%{transform:translateY(-54px) scale(1);animation-timing-function:cubic-bezier(.5,0,.75,.5)}46%{transform:translateY(-20px) scale(.993,1.015);animation-timing-function:cubic-bezier(.4,.4,.75,1)}62%{transform:translateY(0) scale(1.02,.97);animation-timing-function:cubic-bezier(.4,0,.4,1)}80%{transform:translateY(0) scale(.996,1.006);animation-timing-function:cubic-bezier(.4,0,.2,1)}to{transform:translateY(0) scale(1)}}.hero-polaroid{position:relative;margin:0;padding:5.5% 5.5% 0;background-color:var(--hero-paper);background-image:var(--hero-paper-noise),linear-gradient(165deg,#f3efe6,#ebe5d8 55%,#e0d9c9);border-radius:2px;box-shadow:0 2px 3px #00000040,0 24px 50px -12px #000000bf,inset 0 0 0 1px #ffffff59;rotate:3.5deg;transition:rotate var(--duration-slow) var(--ease-ui),translate var(--duration-slow) var(--ease-ui)}@media(hover:hover){.hero-polaroid-wrap:hover .hero-polaroid{rotate:1.5deg;translate:0 -8px}}.hero-photo{position:relative;aspect-ratio:1;overflow:hidden;background:radial-gradient(circle at 50% 34%,#e1e1e1,#d3d3d3 58%,#c6c6c6)}.hero-photo:after{content:"";position:absolute;inset:0;box-shadow:inset 0 0 0 1px #0000001f,inset 0 0 36px #00000029;pointer-events:none}.hero-portrait-img{display:block;width:100%;height:100%;object-fit:cover;filter:saturate(.78) contrast(1.03) brightness(.98)}.hero-portrait-placeholder{display:flex;align-items:center;justify-content:center;width:100%;height:100%;color:#3a3833;background:#d6d1c6;font-family:var(--font-heading);font-size:clamp(2.5rem,6vw,5rem);font-weight:900;letter-spacing:-.05em}.hero-polaroid-caption{margin:0;padding:5% 4% 7.5% 3%;color:#3a3a3a;font-family:var(--hero-hand);font-size:6.2cqi;font-weight:500;line-height:1.1;text-align:left;rotate:-1deg}.hero-tape{position:absolute;top:-4.5%;left:50%;z-index:2;width:36%;height:9.5%;background:repeating-linear-gradient(90deg,rgba(255,255,255,.07) 0 2px,transparent 2px 6px),linear-gradient(180deg,#e8dcbecc,#d6c7a2bd);clip-path:polygon(3% 0,97% 0,100% 10%,96.5% 24%,99.5% 38%,96% 53%,99.5% 67%,96.5% 82%,99% 100%,1.5% 100%,4% 85%,.5% 71%,3.5% 56%,0 42%,3.5% 27%,.5% 13%);translate:-50% 0;rotate:2.5deg;pointer-events:none}.hero-note{position:absolute;right:-13%;bottom:-9%;z-index:3;width:34%;margin:0;filter:drop-shadow(0 10px 12px rgba(0,0,0,.45));rotate:8deg;--hero-lag: 3deg;animation:hero-follow-through 1.08s linear both}.hero-note-paper{display:flex;flex-direction:column;justify-content:center;aspect-ratio:1;padding:10% 12% 8%;box-sizing:border-box;color:#34332f;background-color:#f2ecdc;background-image:var(--hero-paper-noise),linear-gradient(170deg,#f6f1e3,#e9e2cf);clip-path:polygon(0 2%,9% 0,22% 1.5%,37% 0,52% 1.2%,68% 0,83% 1.5%,100% .5%,99% 14%,100% 30%,98.8% 47%,100% 63%,99% 80%,100% 99%,86% 98.5%,71% 100%,55% 98.6%,40% 100%,24% 98.5%,10% 100%,.5% 98%,1.4% 82%,0 66%,1.2% 49%,0 33%,1.3% 17%);font-family:var(--hero-hand);font-size:5.6cqi;font-weight:500;line-height:1.12}.hero-tape--note{top:-9%;width:52%;height:17%;rotate:-6deg}.hero-chip{position:absolute;bottom:0;left:12%;z-index:3;display:inline-flex;align-items:center;gap:8px;margin:0;padding:8px 14px 8px 12px;color:#1d1d1f;background:linear-gradient(180deg,#e4e4e1,#cfcfcb);border-radius:3px;box-shadow:0 1px #ffffff80 inset,0 6px 14px #0006;font-family:var(--font-mono);font-size:clamp(.56rem,2.9cqi,.74rem);font-weight:500;letter-spacing:.04em;white-space:nowrap;translate:0 50%;rotate:-4deg;--hero-lag: 1.5deg;animation:hero-follow-through .98s linear both}.hero-chip-dot{width:8px;height:8px;border-radius:50%;background:#8b5cf6;box-shadow:0 0 0 2px #8b5cf638}.hero-polaroid>.hero-tape{--hero-lag: 2deg;animation:hero-follow-through 1s linear both}@keyframes hero-follow-through{0%,56%{transform:rotate(calc(var(--hero-lag) * -1));animation-timing-function:cubic-bezier(.45,0,.55,1)}78%{transform:rotate(calc(var(--hero-lag) * .45));animation-timing-function:cubic-bezier(.4,0,.2,1)}to{transform:rotate(0)}}@media(max-width:1024px){.hero-main{grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);column-gap:clamp(24px,3.5vw,40px)}.hero-polaroid-wrap{width:min(100%,340px,50svh)}.hero-tagline{max-width:21em}}@media(max-width:768px){.hero-inner>.hero-intro{padding-top:48px}.hero-intro-inner{--hero-name-size: clamp(3.2rem, 18vw, 6rem);grid-template-rows:auto auto;align-content:start}.hero-main{grid-template-columns:minmax(0,1fr);row-gap:40px}.hero-intro .hero-kicker{font-size:.9rem;letter-spacing:.06em}.hero-tagline{max-width:24em}.hero-visual{padding:12px 0 44px}.hero-polaroid-wrap{width:min(68vw,300px)}.hero-note{right:-10%}.hero-chip{left:6%}.hero-footer{display:none}}.fade-in-section{transform:translateY(16px);transition:opacity .72s var(--ease-ui),transform .72s var(--ease-ui)}.fade-in-up{transform:translateY(14px);transition:opacity .72s var(--ease-ui),transform .72s var(--ease-ui)}.hero-showcase{display:block}.projects h2:after,.experience h2:after,.skills h2:after,.contact h2:after{display:none;background:none}.projects,.experience,.skills{width:100%;padding:var(--space-section) 32px;background:transparent;overflow:hidden;text-align:left}.skills-heading{max-width:1120px;margin:0 auto 48px;padding:0;align-items:flex-end;gap:24px}.section-heading-copy{display:flex;flex-direction:column;align-items:flex-start;gap:10px}.section-eyebrow{margin:0;color:var(--theme-ink)}.projects h2,.experience h2,.skills h2{margin:0;padding:0;color:var(--theme-ink);font-size:clamp(2.4rem,4.5vw,3.5rem);font-weight:400;line-height:1.02;letter-spacing:-.045em}.skills h2{font-weight:900}.hero-button{min-height:44px;padding:10px 18px;border-radius:999px;box-shadow:none;font-family:var(--font-body);font-size:.88rem;font-weight:400;letter-spacing:0;transition:background-color var(--duration-hover) var(--ease-ui),color var(--duration-hover) var(--ease-ui),border-color var(--duration-hover) var(--ease-ui)}.hero-button:hover{transform:none}.hero-button--primary{color:var(--theme-on-primary);background:var(--theme-ink);border:1px solid var(--theme-ink);box-shadow:none}.hero-button--ghost{color:var(--theme-ink);background:transparent;border:1px solid var(--theme-pill);box-shadow:none}.hero-button--ghost:hover{color:var(--theme-on-primary);background:var(--theme-ink);border-color:var(--theme-ink);box-shadow:none;transform:none}.hero-button--primary:hover{color:var(--theme-on-primary);background:#fafaf7;border-color:var(--theme-ink);box-shadow:none;transform:none}.contact{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:calc(100svh - var(--header-height));padding:var(--space-section) 32px;color:var(--theme-ink);background:transparent;border-top:1px solid var(--theme-hairline);text-align:center;box-sizing:border-box}.contact h2{display:flex;flex-direction:column;align-items:center;max-width:16ch;margin:0 auto 20px;color:var(--theme-ink);font-size:clamp(2.6rem,5.5vw,4.5rem);font-weight:400;line-height:1.02;letter-spacing:-.05em}@keyframes contact-eyebrow{0%{opacity:0;letter-spacing:.42em;transform:translateY(8px)}to{opacity:1;letter-spacing:1.4px;transform:translateY(0)}}@keyframes contact-line-rise{0%{transform:translateY(110%)}to{transform:translateY(0)}}.reveal-eyebrow{opacity:0;transform:translateY(8px);letter-spacing:.42em}.reveal-line{display:block;overflow:hidden;padding-bottom:.06em}.reveal-text{display:block;transform:translateY(110%)}.skills.is-visible .reveal-eyebrow{animation:contact-eyebrow .62s var(--ease-expo) both}.skills.is-visible .reveal-text{animation:contact-line-rise .78s var(--ease-expo) 50ms both}.footer{padding:24px 20px 32px;background:transparent;border-top:1px solid var(--theme-hairline)}.footer p{color:var(--theme-mute);font-size:.74rem;font-weight:400}.not-found{min-height:calc(100vh - var(--header-height));background:transparent;color:var(--theme-ink)}.not-found-code{color:var(--theme-mute);font-size:.78rem}.not-found{text-align:center}.not-found h1{max-width:16ch;margin:0 auto 16px;font-size:clamp(2.6rem,6vw,4.5rem);font-weight:400;letter-spacing:-.05em}.not-found-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:10px}.back-to-top{right:32px;bottom:32px;width:44px;height:44px;color:var(--theme-on-primary);background:var(--theme-ink);border:1px solid var(--theme-ink);border-radius:999px;box-shadow:none;transition:background-color var(--duration-hover) var(--ease-ui),opacity .22s var(--ease-ui),transform .22s var(--ease-ui),visibility 0s linear .22s}.back-to-top--visible{transition:background-color var(--duration-hover) var(--ease-ui),opacity .36s var(--ease-ui),transform .36s var(--ease-ui),visibility 0s linear 0s}.back-to-top--visible:hover{background:#fafaf7;color:var(--theme-on-primary);border-color:var(--theme-ink);box-shadow:none;transform:none}@media(max-height:820px){.shelf-section .skills-heading{margin-bottom:18px}}@media(max-width:768px){:root{--header-height: 60px;--space-section: 80px}.header-container,.header--scrolled .header-container{min-height:var(--header-height);padding:0 16px;border-radius:0;overflow:visible}.hamburger,button.hamburger.nav-toggle{display:inline-flex!important;align-items:center;justify-content:center;flex-shrink:0;width:auto;min-width:44px;height:36px;padding:0 14px;color:var(--theme-ink);background:transparent;border:1px solid var(--theme-pill);border-radius:999px;box-shadow:none;visibility:visible;opacity:1;transition:background-color var(--duration-hover) var(--ease-ui),color var(--duration-hover) var(--ease-ui),border-color var(--duration-hover) var(--ease-ui)}.hamburger:hover,button.hamburger.nav-toggle:hover,.header--menu-open .hamburger,.header--menu-open button.hamburger.nav-toggle{color:var(--theme-on-primary);background:var(--theme-ink);border-color:var(--theme-ink)}.nav-toggle-label{color:inherit;font-family:var(--font-body);font-size:.8rem;font-weight:400;letter-spacing:0}.header-container,.header--scrolled .header-container{justify-content:space-between;align-items:center}.nav-brand{align-self:center;padding:0 4px}.nav-logo{font-size:1.9rem}.menu-backdrop{display:block;position:fixed;inset:0;z-index:0;margin:0;padding:0;border:0;background:#0a0a0ac7;opacity:0;visibility:hidden;pointer-events:none;cursor:default;transition:opacity var(--duration-menu-close) var(--ease-ui),visibility 0s linear var(--duration-menu-close)}.menu-backdrop.is-open{opacity:1;visibility:visible;pointer-events:auto;transition:opacity var(--duration-menu) var(--ease-expo),visibility 0s linear 0s}.header-container{position:relative;z-index:2}.nav{position:fixed;top:var(--header-height);right:0;bottom:0;left:0;z-index:1;display:flex;align-items:stretch;align-self:stretch;visibility:hidden;opacity:0;pointer-events:none;transform:none;transition:opacity var(--duration-menu-close) var(--ease-ui),visibility 0s linear var(--duration-menu-close)}.nav--open{visibility:visible;opacity:1;pointer-events:auto;transform:none;transition:opacity var(--duration-menu) var(--ease-expo),visibility 0s linear 0s}.nav-menu{flex:1;display:flex;flex-direction:column;justify-content:center;align-items:stretch;gap:22px;padding:40px 24px 64px;background:var(--theme-canvas);border:0;border-radius:0;box-shadow:none;clip-path:none;overflow-y:auto}.nav-menu:after{display:none}.nav-item+.nav-item{margin-left:0}.nav-item{opacity:0;transform:translate(32px);transition:opacity var(--duration-menu-close) var(--ease-ui),transform var(--duration-menu-close) var(--ease-ui)}.nav--open .nav-item{opacity:1;transform:translate(0);transition:opacity var(--duration-menu) var(--ease-expo),transform var(--duration-menu) var(--ease-expo)}.nav--open .nav-item:nth-child(1){transition-delay:60ms}.nav--open .nav-item:nth-child(2){transition-delay:.11s}.nav--open .nav-item:nth-child(3){transition-delay:.16s}.nav--open .nav-item:nth-child(4){transition-delay:.21s}.nav--open .nav-item:nth-child(5){transition-delay:.26s}.nav-link,.nav-link:hover,.nav-link:not(.nav-link--active):hover,.nav-link:active,.nav-link--active,.nav-link--active:hover,.nav-link--active:active{width:100%;height:auto;min-height:56px;justify-content:flex-start;padding:6px 22px 2px;text-align:left;font-size:1.3rem;transform:none}.nav-link:before{inset:0;border-radius:14px}.nav-item:first-child .nav-link:before{border-top-left-radius:0}.nav-link:after{left:calc(var(--tab-i, 0) * 22px);width:96px}.nav-tab-spark{top:-20px;right:14px}.nav-link--rising,.nav-link--settling{animation:none}.hero{padding:0 20px 56px}.hero-inner{gap:40px}.projects,.experience,.skills,.contact{padding-right:20px;padding-left:20px}.skills-heading{align-items:flex-start;gap:20px;margin-bottom:32px}.back-to-top{right:20px;bottom:20px}}@media(max-width:480px){.hero{padding:0 16px 48px}.hero-actions{flex-direction:column;align-items:stretch}.hero-button{width:100%}.projects,.experience,.skills,.contact{padding-right:16px;padding-left:16px}}.home-pager{--scene: calc(100svh - var(--header-height));--section-pad: clamp(96px, 13vh, 168px);--home-stage-max: 1440px}html:has(.home-pager){overflow-x:clip;overflow-y:scroll;scroll-padding-top:var(--header-height)}html:has(.home-pager) body{overflow:visible}.home-pager .fade-in-section{opacity:1;transform:none}.home-scene{width:100%;padding:var(--section-pad) 0;scroll-margin-top:0}.home-pager section[id],.home-pager .hero-intro,.home-pager .hero-inner>.hero-intro{scroll-margin-top:0}.home-pager .hero{padding-bottom:0;overflow-x:clip}.home-pager .hero-inner{gap:0}.home-pager .hero-intro,.home-pager .hero-inner>.hero-intro{min-height:var(--scene)}.hero-about-scene{display:flex;align-items:center;justify-content:center;padding:var(--section-pad) 0;background:transparent;box-sizing:border-box}.home-pager .hero-inner,.home-pager .hero-showcase{width:100%;max-width:var(--home-stage-max);margin:0 auto}.home-scene--end{display:flex;flex-direction:column;padding-bottom:0;background:transparent;scroll-margin-top:0}.home-scene--end .contact{flex:1 1 auto;min-height:0;border-top:0;padding:32px}.skills.shelf-section{padding:var(--section-pad) 32px;overflow:visible}.shelf-stage{width:100%;max-width:var(--home-stage-max);margin:0 auto}.shelf-section .skills-heading{width:100%;max-width:none;margin:0 0 28px;align-items:flex-end}@media(max-width:768px){.skills.shelf-section{padding:56px 20px 64px}.shelf-section .skills-heading{align-items:flex-start;flex-direction:column;gap:16px;margin-bottom:16px}}@media(max-width:480px){.skills.shelf-section{padding:48px 16px 56px}}@supports (animation-timeline: view()){.home-pager .hero-intro,.home-pager .hero-about-scene{view-timeline:--scene block}.home-pager .hero-intro-inner,.home-pager .hero-showcase{animation:scene-exit linear both;animation-timeline:--scene;animation-range:exit 0% exit 80%}}@keyframes scene-exit{to{opacity:0;transform:translateY(-40px)}}.hero-button{transition:background-color var(--duration-hover) var(--ease-ui),color var(--duration-hover) var(--ease-ui),border-color var(--duration-hover) var(--ease-ui),opacity var(--duration-hover) var(--ease-ui),transform var(--duration-nudge) var(--ease-ui)}.hero-button:active,.back-to-top--visible:active{transform:scale(.96);transition-duration:80ms}@media(prefers-reduced-motion:reduce){.home-scene--end{height:auto;overflow:visible}.home-pager .hero-intro-inner,.home-pager .hero-showcase{animation:none}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}.hero-title-word{opacity:1;transform:none;clip-path:none;animation:none}.header,.header--hidden{opacity:1;visibility:visible;pointer-events:none}.header-container,.header--scrolled .header-container{pointer-events:auto}.fade-in-section,.fade-in-up,.hero-intro .fade-in-up,.not-found,.reveal-eyebrow,.reveal-text,.hero-polaroid-wrap,.hero-polaroid>.hero-tape,.hero-note,.hero-chip,.hero-scroll-cue,.hero-scroll-cue span{opacity:1;transform:none;letter-spacing:inherit;animation:none}.hero-intro .hero-kicker{letter-spacing:.06em}.hero-intro .hero-tagline{letter-spacing:-.01em}.hero-intro .hero-scroll-cue{letter-spacing:.06em}}@media(prefers-reduced-motion:reduce)and (max-width:768px){.hero-intro .hero-kicker{letter-spacing:.06em}}.hero-button--primary,.contact h2:after,.back-to-top{background-image:none}.contact{background-image:none}@media(min-width:769px){.hamburger,button.hamburger.nav-toggle{display:none!important}}@media(max-width:480px){.not-found-actions{flex-direction:column;align-items:stretch}}.hero-about-scene{padding:clamp(16px,3vh,40px) 0;background:transparent}:root{--key-languages: #8b5cf6;--key-languages-deep: #5b21b6;--key-languages-side: #3b1677;--key-languages-glow: #c4b5fd;--key-frontend: #3b82f6;--key-frontend-deep: #1d4ed8;--key-frontend-side: #122f8a;--key-frontend-glow: #93c5fd;--key-backend: #14b8a6;--key-backend-deep: #0f766e;--key-backend-side: #0a4d47;--key-backend-glow: #5eead4;--key-data: #f59e0b;--key-data-deep: #b45309;--key-data-side: #7a3a05;--key-data-glow: #fcd34d;--keys-board-top: #1d1d1f;--keys-board-bottom: #111113;--keys-board-edge: #2e2e31}.keys-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,280px);gap:36px;align-items:center}.keys-board{position:relative;padding:18px 18px 22px;background:linear-gradient(var(--keys-board-top),var(--keys-board-bottom));border-radius:26px;box-shadow:inset 0 1px 0 var(--keys-board-edge),inset 0 0 0 1px #ffffff08,0 2px #0d0d0e,0 10px #0a0a0b,0 18px #070708,0 40px 60px -18px #000000f2;transform:perspective(1100px) rotateX(24deg);transform-origin:50% 70%}.keys-board:before{content:"";position:absolute;inset:10px 10px 14px;background:#0b0b0c;border-radius:18px;box-shadow:inset 0 2px 6px #000000e6,inset 0 -1px #ffffff0a;pointer-events:none}.keys-board>.keys-row{position:relative}.keys-row{--key: var(--key-languages);--key-deep: var(--key-languages-deep);--key-side: var(--key-languages-side);--key-glow: var(--key-languages-glow);display:flex;gap:10px}.keys-row+.keys-row{margin-top:10px}.keys-row--frontend{--key: var(--key-frontend);--key-deep: var(--key-frontend-deep);--key-side: var(--key-frontend-side);--key-glow: var(--key-frontend-glow)}.keys-row--backend{--key: var(--key-backend);--key-deep: var(--key-backend-deep);--key-side: var(--key-backend-side);--key-glow: var(--key-backend-glow)}.keys-row--data{--key: var(--key-data);--key-deep: var(--key-data-deep);--key-side: var(--key-data-side);--key-glow: var(--key-data-glow)}.keycap{position:relative;flex:1 1 0;min-width:0;height:90px;padding:0;background:linear-gradient(90deg,rgba(0,0,0,.28),transparent 16%,transparent 84%,rgba(0,0,0,.36)),linear-gradient(var(--key-deep),var(--key-side) 78%);border:0;border-radius:13px;box-shadow:0 1px #ffffff14 inset,0 7px 10px -3px #000000bf,0 2px 2px #0009;cursor:pointer;transition:box-shadow .12s var(--ease-ui);-webkit-tap-highlight-color:transparent}.keycap:active{box-shadow:0 1px #ffffff14 inset,0 3px 5px -2px #000000bf,0 1px 1px #0009}.keycap-top{position:absolute;inset:4px 7px 15px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:0 6px;color:#fff;background:radial-gradient(120% 90% at 50% 30%,rgba(255,255,255,.16),transparent 60%),linear-gradient(170deg,var(--key),var(--key-deep) 70%);border-radius:10px;box-shadow:inset 0 1px #ffffff4d,inset 0 -2px 4px #00000040,0 2px 3px #0000004d;transition:box-shadow var(--duration-hover) var(--ease-ui),filter var(--duration-hover) var(--ease-ui)}.keycap:hover .keycap-top{filter:brightness(1.1)}.keycap.is-selected{box-shadow:0 0 0 2px var(--key-glow),0 0 26px 3px color-mix(in srgb,var(--key-glow) 55%,transparent),0 7px 10px -3px #000000bf}.keycap.is-selected .keycap-top{box-shadow:inset 0 1px #fff6,inset 0 0 0 1px color-mix(in srgb,var(--key-glow) 50%,transparent),0 2px 3px #0000004d}.keycap:focus-visible{outline:2px solid var(--theme-ink);outline-offset:4px}.keycap-icon{flex:none;width:24px;height:24px}.keycap-label{max-width:100%;overflow:hidden;font-size:.86rem;font-weight:500;line-height:1.1;text-overflow:ellipsis;text-shadow:0 1px 1px rgba(0,0,0,.35);white-space:nowrap}.keys-stage{position:relative;min-width:0}.keys-3d{width:100%;aspect-ratio:2 / 1}.keys-3d.is-narrow{aspect-ratio:4 / 5}.keys-board.is-offscreen{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.keys-stage:has(.keys-board.is-offscreen :focus-visible) .keys-3d{outline:2px solid var(--theme-ink);outline-offset:6px;border-radius:20px}.keys-detail{--key-glow: var(--key-languages-glow);align-self:stretch;min-height:300px;padding-left:32px;border-left:1px solid var(--theme-hairline)}.keys-detail--frontend{--key-glow: var(--key-frontend-glow)}.keys-detail--backend{--key-glow: var(--key-backend-glow)}.keys-detail--data{--key-glow: var(--key-data-glow)}.keys-detail-eyebrow,.keys-detail-label{margin:0;font-family:var(--font-mono);font-size:.72rem;letter-spacing:.16em;text-transform:uppercase}.keys-detail-eyebrow{color:var(--key-glow);transition:color var(--duration-hover) var(--ease-ui)}.keys-detail-name{margin:14px 0 0;color:var(--theme-ink);font-size:clamp(2rem,3.2vw,2.8rem);font-weight:500;line-height:1.05;letter-spacing:-.03em}.keys-detail-blurb{margin:14px 0 28px;color:var(--theme-body);font-size:1.1rem;line-height:1.55}.keys-detail-label{padding-top:18px;color:var(--theme-mute);border-top:1px solid var(--theme-hairline)}.keys-detail-uses{margin:8px 0 0;padding:0;list-style:none}.keys-detail-uses button{display:flex;align-items:center;justify-content:space-between;width:100%;padding:12px 0;color:var(--theme-ink);font:inherit;font-size:1.02rem;text-align:left;text-decoration:underline;text-decoration-color:var(--theme-hairline);text-underline-offset:5px;background:none;border:0;border-bottom:1px solid var(--theme-hairline);cursor:pointer;transition:text-decoration-color var(--duration-hover) var(--ease-ui)}.keys-detail-uses button:hover,.keys-detail-uses button:focus-visible{text-decoration-color:var(--key-glow)}.keys-detail-uses button span{color:var(--theme-mute)}.keys-detail-none{margin:12px 0 0;color:var(--theme-mute)}.keys-footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px 32px;margin-top:40px}.keys-legend{display:flex;flex-wrap:wrap;gap:10px 28px;margin:0;padding:0;list-style:none}.keys-legend li{display:flex;align-items:center;gap:10px;color:var(--theme-body);font-size:.92rem}.keys-legend li:before{content:"";width:11px;height:11px;background:var(--dot);border-radius:50%}.keys-legend--languages{--dot: var(--key-languages)}.keys-legend--frontend{--dot: var(--key-frontend)}.keys-legend--backend{--dot: var(--key-backend)}.keys-legend--data{--dot: var(--key-data)}.keys-hint{display:flex;align-items:center;gap:10px;margin:0;color:var(--theme-mute);font-size:.88rem}@media(max-width:1024px){.keys-layout{grid-template-columns:minmax(0,1fr);gap:32px}.keys-detail{min-height:0;padding:24px 0 0;border-top:1px solid var(--theme-hairline);border-left:0}}@media(max-width:640px){.keys-board{padding:12px 12px 16px;border-radius:20px;transform:perspective(900px) rotateX(10deg)}.keys-board:before{inset:6px 6px 9px;border-radius:14px}.keys-row{flex-wrap:wrap;gap:7px}.keys-row+.keys-row{margin-top:7px}.keycap{flex:1 1 calc((100% - 14px) / 3);height:68px;border-radius:10px}.keycap-top{inset:3px 5px 11px;gap:4px;border-radius:8px}.keycap-icon{width:19px;height:19px}.keycap-label{font-size:.72rem}.keys-detail-blurb{margin-bottom:20px;font-size:1rem}.keys-hint{display:none}}@media(prefers-reduced-motion:reduce){.keycap-top,.keys-detail-eyebrow,.keys-detail-uses button{transition:none}}.scrapbook-section{width:100%;padding:42px 5.5% 36px;background:transparent;overflow:hidden}.scrapbook-stage{max-width:1450px;margin:auto}.scrapbook-header{display:grid;grid-template-columns:.38fr .62fr;align-items:end;gap:28px;margin-bottom:36px}.scrapbook-heading{padding-bottom:24px}.scrapbook-heading p{font-family:var(--font-mono);font-size:13px;letter-spacing:2px;color:#eee;margin:0 0 12px}.scrapbook-section h2{font-size:clamp(56px,6.5vw,100px);line-height:1;letter-spacing:-5px;color:#fafafa;margin:0}.scrapbook-section h2:after{display:none}.project-shelf{padding:0 28px 18px;position:relative;min-width:0}.project-shelf:after{content:"";position:absolute;height:17px;left:0;right:0;bottom:0;background:repeating-linear-gradient(0deg,#30302e 0 1px,#212220 2px,#41413b 3px);border-top:2px solid #66635b;box-shadow:0 14px 15px #0009}.project-spines{display:flex;align-items:flex-end;justify-content:center;gap:7px;padding-top:10px}.project-spine{flex:1 1 0;max-width:75px;min-width:0;height:174px;display:flex;align-items:center;justify-content:space-between;flex-direction:column;position:relative;padding:14px 6px 10px;color:#f2e9f7;background:linear-gradient(90deg,#0008,#ffffff0c 9%,#ffffff12 15%,transparent 26%,#0003 89%,#0007),var(--spine-color);border:1px solid #ffffff26;border-radius:3px 3px 0 0;box-shadow:inset 4px 0 4px #0004,5px 0 4px #0009;cursor:pointer;transition:transform var(--duration-base) var(--ease-ui),filter var(--duration-base) var(--ease-ui);transform-origin:50% 100%}.project-spine:before{content:"";position:absolute;inset:3px;border-top:1px solid #ffffff35;border-bottom:1px solid #0008;pointer-events:none}.project-spine span{writing-mode:vertical-rl;font-size:14px;font-weight:650;text-align:left;line-height:1.1;max-height:132px}.project-spine svg{flex-shrink:0;width:20px;height:20px;opacity:.8}.project-spine.is-selected{transform:rotate(10deg) translateY(-3px);filter:brightness(1.18);color:#101015}.project-spine:hover{filter:brightness(1.25);transform:translateY(-9px)}.project-spine:focus-visible,.paper-links a:focus-visible{outline:3px solid #ffb27a;outline-offset:5px}.scrapbook-spread{display:grid;grid-template-columns:1.46fr 1fr;gap:36px;align-items:stretch;animation:scrapbook-enter .3s var(--ease-ui) both}.project-photos{position:relative;min-width:0;padding:5px 50px 26px 0}.project-polaroid,.project-paper{background:#eee5d5 url(/projects/paper.svg);color:#111217;box-shadow:2px 14px 25px #0008}.project-polaroid{margin:0;padding:20px 20px 0;position:relative}.polaroid-main{transform:rotate(-3.5deg);width:100%;margin-top:5px}.project-polaroid figcaption{font-family:Segoe Print,Bradley Hand,Comic Sans MS,cursive;font-style:italic;font-size:clamp(18px,2vw,30px);line-height:1.3;padding:17px 10px 22px;letter-spacing:1px}.paper-tape{position:absolute;z-index:3;top:-17px;left:40%;width:92px;height:37px;background:linear-gradient(95deg,#c4b89a99,#ede2c9b8,#c2b69899),url(/projects/paper.svg);box-shadow:0 1px 3px #0002;transform:rotate(6deg);clip-path:polygon(1% 4%,99% 0,98% 14%,100% 24%,98% 96%,4% 100%,0 89%,2% 77%)}.polaroid-inset{position:absolute;width:39%;right:-1%;bottom:-9px;transform:rotate(8deg);z-index:2;padding:13px 13px 0}.polaroid-inset .paper-tape{left:34%;width:83px}.polaroid-inset figcaption{font-size:clamp(17px,1.6vw,25px);padding:12px 4px 17px}.project-paper{position:relative;padding:37px 38px 32px;margin:8px 0 0;transform:rotate(.6deg);min-width:0;border-radius:4px 7px 6px 3px;clip-path:polygon(0 1%,3% .2%,7% .6%,13% .1%,19% .6%,27% .2%,34% .5%,43% .2%,55% .5%,63% .1%,72% .6%,80% .3%,89% .7%,97% .5%,100% 1%,99.7% 10%,100% 22%,99.5% 37%,100% 48%,99.4% 59%,100% 71%,99.6% 85%,100% 98%,98% 99.7%,91% 99.4%,83% 100%,75% 99.6%,66% 100%,57% 99.6%,44% 100%,35% 99.6%,22% 100%,14% 99.5%,5% 100%,.4% 99%,0 88%,.4% 78%,0 65%,.5% 54%,0 43%,.4% 33%,0 20%)}.project-paper .paper-tape{left:46%;top:-12px}.project-paper h3{font-size:clamp(30px,3.8vw,58px);line-height:1.05;letter-spacing:-1.8px;margin:0 0 8px;color:#111217}.paper-subtitle{font-size:clamp(16px,1.55vw,24px);line-height:1.35;color:#68686c;margin:0}.paper-features{list-style:none;display:grid;gap:22px;margin:28px 0;padding:0}.paper-features li{display:grid;grid-template-columns:48px 1fr;gap:18px}.paper-feature-icon{height:48px;width:48px;border-radius:50%;display:grid;place-items:center;background:#eacbb4;color:#ac460d}.paper-feature-icon svg{width:25px;height:25px}.paper-feature-icon.feature-1{background:#d8cedc;color:#302065}.paper-feature-icon.feature-2{background:#cad5d0;color:#1c5761}.paper-features h4{margin:2px 0 3px;color:#111217;font-size:18px;line-height:1.3}.paper-features p{margin:0;color:#666368;font-size:15px;line-height:1.4}.paper-tech{border-top:1px solid #b6b1a6;padding-top:15px}.paper-tech p{font:11px var(--font-mono);letter-spacing:2px;margin:0 0 8px}.paper-tech span{font:13px/1.7 var(--font-mono)}.paper-links{display:flex;gap:14px;margin-top:22px}.paper-links a{flex:1;display:flex;align-items:center;justify-content:center;gap:10px;min-height:46px;padding:10px 15px;border-radius:6px;text-decoration:none;font-size:15px;font-weight:550;transition:transform var(--duration-nudge) var(--ease-ui)}.paper-links a:hover{transform:translateY(-3px)}.paper-live{background:#ff8034;color:#111}.paper-source{background:#18191e;color:#fff}@keyframes scrapbook-enter{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media(min-width:1500px){.project-spine{height:190px}.project-spine span{font-size:16px}.paper-features{gap:30px;margin:34px 0}.paper-features p{font-size:17px}}@media(max-width:1024px){.scrapbook-section{padding:36px 4% 28px}.scrapbook-header{grid-template-columns:.32fr .68fr;gap:15px}.scrapbook-section h2{font-size:64px;letter-spacing:-3px}.project-shelf{padding-inline:15px}.project-spine{height:158px}.project-spine span{font-size:12px}.scrapbook-spread{gap:22px;grid-template-columns:1.15fr 1fr}.project-paper{padding:28px 24px}.project-photos{padding-right:20px;align-self:center}.project-polaroid{padding:14px 14px 0}.polaroid-inset{width:47%;right:-3%;bottom:-33px;padding:10px 10px 0}.paper-features{gap:18px;margin:22px 0}.paper-features li{grid-template-columns:38px 1fr;gap:12px}.paper-feature-icon{width:38px;height:38px}.paper-features h4{font-size:16px}.paper-features p{font-size:13px}}@media(max-width:768px){.scrapbook-header{grid-template-columns:1fr;gap:12px}.scrapbook-heading{padding:0}.project-shelf{max-width:600px;width:100%;justify-self:end}.project-spine{height:150px}.scrapbook-spread{grid-template-columns:1fr;gap:60px}.project-photos{padding:6px 13% 15px 3%}.polaroid-inset{right:4%;width:35%;bottom:-20px}.project-paper{padding:35px 30px 30px;margin:0 2%}.project-paper h3{font-size:42px}.paper-features li{grid-template-columns:48px 1fr;gap:18px}.paper-feature-icon{width:48px;height:48px}.paper-features h4{font-size:18px}.paper-features p{font-size:15px}}@media(max-width:480px){.scrapbook-section{padding:32px 20px 28px}.scrapbook-heading p{font-size:12px}.scrapbook-section h2{font-size:57px}.project-shelf{padding-inline:4px}.project-spines{gap:4px}.project-spine{height:137px;padding:10px 3px 8px}.project-spine span{font-size:10px;max-height:108px}.project-spine svg{width:15px;height:15px}.scrapbook-header{margin-bottom:30px}.project-photos{padding-right:8%}.project-polaroid{padding:10px 10px 0}.polaroid-inset{width:43%;right:0;padding:8px 8px 0;bottom:-30px}.polaroid-inset .project-polaroid figcaption{font-size:18px;padding:12px 2px 16px}.polaroid-inset figcaption{font-size:14px}.paper-tape{width:64px;height:28px;top:-12px}.project-paper{padding:30px 24px 27px;margin-inline:0}.project-paper h3{font-size:34px}.paper-subtitle{font-size:17px}.paper-links{gap:8px}.paper-links a{font-size:13px;padding:10px}}@media(prefers-reduced-motion:reduce){.scrapbook-spread{animation:none}.project-spine,.paper-links a{transition:none}}.scrapbook-section h2,.project-paper h3{font-weight:800}.paper-features h4{font-weight:700}@media(min-width:769px){.polaroid-inset{bottom:0}.project-photos{align-self:stretch}}.paper-links button{flex:1;display:flex;align-items:center;justify-content:center;gap:10px;min-height:46px;padding:10px 15px;border:0;border-radius:6px;font:inherit;font-size:15px;font-weight:550}.paper-links button:disabled{opacity:.65;cursor:not-allowed}@media(max-width:480px){.paper-links button{font-size:13px;padding:10px}}@media(min-width:769px){.polaroid-inset{top:44%;bottom:auto}}.paper-links a,.paper-links button{white-space:nowrap}@media(min-width:769px)and (max-width:1100px){.paper-links{gap:10px}.paper-links a,.paper-links button{font-size:12px;padding-inline:10px}}.experience-scrapbook .scrapbook-header{grid-template-columns:.44fr .56fr}.experience-scrapbook .project-spines{justify-content:flex-end;gap:12px}.experience-scrapbook .project-spine{max-width:76px}.experience-scrapbook h2{font-size:clamp(48px,5.8vw,86px);letter-spacing:-4px}.experience-scrapbook .project-spine.is-selected{color:#fff}.experience-paper-meta{display:flex;flex-wrap:wrap;justify-content:space-between;gap:6px 12px;font:10px/1.5 var(--font-mono);color:#71695e;margin-bottom:19px}.experience-paper-meta span:first-child{text-transform:uppercase;letter-spacing:1px}.experience-paper h3{font-size:clamp(34px,3.8vw,58px)}.experience-paper-role{font-size:18px;font-weight:650;color:#282526;margin:7px 0 3px;line-height:1.3}.experience-paper-org{font-size:12px;color:#6a625b;margin:0 0 13px;line-height:1.5}.experience-paper .paper-subtitle{font-size:17px;color:#686368}.experience-paper .paper-features{gap:23px;margin:28px 0}.experience-paper .paper-features h4{font-size:16px}.experience-paper .paper-features p{font-size:14px;line-height:1.55}.experience-spread .polaroid-inset{top:47%;width:38%}.experience-spread .polaroid-main figcaption{font-size:clamp(18px,1.8vw,28px)}.experience-spread .polaroid-inset figcaption{font-size:clamp(16px,1.35vw,22px)}.role-preview{container-type:inline-size;aspect-ratio:1.36;background:#10141c;color:#e7edf5;font-family:Arial,sans-serif;overflow:hidden;position:relative}.role-preview-chrome{background:#ffffff05;border-bottom:1px solid #ffffff0a;padding:10px 14px;display:flex;justify-content:space-between;align-items:center;gap:8px}.role-preview-chrome>span{display:flex;gap:4px}.role-preview-chrome i{width:4px;height:4px;border-radius:50%;background:#b68c86}.role-preview-chrome i:nth-child(2){background:#d8bd78}.role-preview-chrome i:nth-child(3){background:#91ad90}.role-preview-chrome small{font-size:9px;color:#b3b8c4}.role-preview-chrome>svg{width:12px;height:12px;color:#8890a1}.role-preview-wiscurds{background:#112323}.role-preview-qid{background:#f1f3f3;color:#243544}.role-preview-qid .role-preview-chrome{background:#e3e9e9;border-color:#d4dddd}.role-preview-qid .role-preview-chrome small{color:#5b6670}.role-preview-ai-club-pm{background:#0f1115}.role-preview-peer-mentor{background:#e4e9db;color:#283e35}.role-preview-peer-mentor .role-preview-chrome{background:#d5ddcb;border-color:#c4cdbb}.role-preview-peer-mentor .role-preview-chrome small{color:#657462}@media(min-width:1500px){.experience-paper .paper-features p{font-size:16px}.experience-paper .paper-features h4{font-size:18px}.experience-paper .paper-subtitle{font-size:20px}}@media(max-width:1024px){.experience-scrapbook .scrapbook-header{grid-template-columns:.48fr .52fr}.experience-scrapbook h2{font-size:57px;letter-spacing:-3px}.experience-scrapbook .project-spines{gap:8px}.experience-paper .paper-features li{grid-template-columns:34px 1fr;gap:10px}.experience-paper .paper-feature-icon{width:34px;height:34px}.experience-paper .paper-feature-icon svg{width:20px;height:20px}.experience-paper .paper-features p{font-size:13px}.experience-paper .paper-features h4{font-size:15px}.experience-paper .paper-features{gap:19px}.experience-spread .polaroid-inset{width:46%;top:41%}.role-preview-chrome{padding:8px 10px}.role-preview-chrome small{font-size:7px}}@media(max-width:768px){.experience-scrapbook .scrapbook-header{grid-template-columns:1fr}.experience-scrapbook h2{font-size:64px}.experience-scrapbook .project-shelf{max-width:440px}.experience-scrapbook .project-spines{justify-content:center}.experience-spread .polaroid-inset{top:auto;bottom:-25px;width:36%}.experience-spread{gap:68px}.experience-paper .paper-features li{grid-template-columns:42px 1fr;gap:15px}.experience-paper .paper-feature-icon{width:42px;height:42px}.experience-paper .paper-features p{font-size:15px}.experience-paper .paper-features h4{font-size:17px}.experience-paper-meta{font-size:11px}}@media(max-width:480px){.experience-scrapbook h2{font-size:clamp(41px,12vw,55px);letter-spacing:-2px}.experience-scrapbook .project-spines{gap:8px}.experience-scrapbook .project-spine{max-width:53px}.experience-scrapbook .project-spine span{font-size:13px}.experience-spread .polaroid-inset{width:43%;bottom:-30px}.experience-paper{padding-inline:22px}.experience-paper .paper-features li{grid-template-columns:34px 1fr;gap:12px}.experience-paper .paper-feature-icon{width:34px;height:34px}.experience-paper .paper-features p{font-size:14px}.experience-paper .paper-features h4{font-size:16px}.experience-paper-meta{display:grid;gap:5px;font-size:10px}.experience-paper-role{font-size:17px}.experience-paper .paper-subtitle{font-size:16px}.role-preview-chrome{padding:7px 8px}.role-preview-chrome small{font-size:6px}}.role-preview{aspect-ratio:1.18;line-height:1.3}.role-preview p{line-height:1.4}.experience-paper-role+.paper-subtitle{margin-top:12px}@media(min-width:769px){.experience-spread{grid-template-columns:1.25fr 1fr}.experience-spread .polaroid-inset{top:34%}}@media(min-width:769px)and (max-width:1100px){.experience-paper{padding:30px 25px}.experience-paper .paper-features li{grid-template-columns:36px 1fr;gap:12px}.experience-paper .paper-feature-icon{width:36px;height:36px}.experience-paper .paper-features p{font-size:14px}.experience-paper .paper-features h4{font-size:15px}}.role-preview,.role-preview.is-compact{aspect-ratio:auto}.experience-spread .polaroid-main figcaption{padding-right:31%}.experience-scrapbook{overflow-anchor:none}.home-pager .scrapbook-section[id]{scroll-margin-top:var(--header-height)}.hero-intro .hero-tagline.handwritten-text{font-family:var(--font-hand);font-size:clamp(1.45rem,2.35vw,2rem);font-weight:500;line-height:1.35;letter-spacing:0;color:#e6dfd2;max-width:23em;animation:none}.handwritten-word{display:inline-block;height:1.39em;margin-right:.12em;overflow:visible;vertical-align:-.35em}.handwritten-word text{font-family:inherit}.handwritten-letter{fill:transparent;stroke:currentColor;stroke-width:.65;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:240;stroke-dashoffset:240;opacity:0}.is-writing .handwritten-letter{animation:hero-write-ink .18s linear var(--ink-delay) both,hero-set-ink .13s var(--ease-decelerate) var(--fill-delay) both}.handwritten-pen{opacity:0;color:#c7aa7a}.handwritten-pen path{fill:currentColor}.is-writing .handwritten-pen{animation:hero-writing-pen 85ms linear var(--ink-delay) both}.handwritten-placeholder{visibility:hidden}@keyframes hero-write-ink{0%{stroke-dashoffset:240;opacity:0}5%{opacity:1}to{stroke-dashoffset:0;opacity:1}}@keyframes hero-set-ink{0%{fill:transparent}to{fill:currentColor}}@keyframes hero-writing-pen{0%{opacity:0;translate:0 3px}15%{opacity:.85}50%{translate:calc(var(--pen-travel) * .5) -4px}85%{opacity:.85}to{opacity:0;translate:var(--pen-travel) 2px}}@media(max-width:480px){.hero-intro .hero-tagline.handwritten-text{font-size:1.6rem}}@media(prefers-reduced-motion:reduce){.handwritten-letter,.is-writing .handwritten-letter{fill:currentColor;stroke-dashoffset:0;opacity:1;animation:none}.handwritten-pen,.is-writing .handwritten-pen{display:none;animation:none}}.keycap{transform-origin:50% 100%;transition:box-shadow .12s var(--ease-ui),translate .3s cubic-bezier(.3,1.45,.55,1),scale .3s cubic-bezier(.3,1.45,.55,1)}.keycap:active{translate:0 4px;scale:1.015 .95;transition-duration:80ms;transition-timing-function:cubic-bezier(0,0,.2,1)}.keycap.is-selected:focus-visible{animation:keycap-press .38s}@keyframes keycap-press{0%{translate:0 0;scale:1 1;animation-timing-function:cubic-bezier(0,0,.2,1)}21%{translate:0 4px;scale:1.015 .95;animation-timing-function:var(--ease-in-out)}60%{translate:0 -.3px;scale:.995 1.018;animation-timing-function:cubic-bezier(.2,.7,.3,1)}to{translate:0 0;scale:1 1}}.keys-detail-content{animation:key-detail-enter .16s cubic-bezier(0,0,.2,1) both}@keyframes key-detail-enter{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){.keycap:active{translate:none;scale:none}.keycap.is-selected:focus-visible{animation:none}.keys-detail-content{animation:none}}.project-scrapbook .project-polaroid,.project-scrapbook .project-paper{background:none;border-radius:0;box-shadow:none;clip-path:none;isolation:isolate;filter:drop-shadow(2px 12px 14px #0007)}.project-scrapbook .project-polaroid:before,.project-scrapbook .project-paper:before{content:"";position:absolute;inset:0;z-index:-1;background:#eee5d5 url(/projects/paper.svg);-webkit-mask:url(/contact/letter-edge.svg) 0 0 / 100% 100% no-repeat;mask:url(/contact/letter-edge.svg) 0 0 / 100% 100% no-repeat;pointer-events:none}.project-scrapbook .paper-tape,.experience-scrapbook .paper-tape{background-color:var(--preview-accent, #e8bb35);background-image:linear-gradient(95deg,#ffffff14,#ffffff4d 48%,#00000012),repeating-linear-gradient(90deg,transparent 0 3px,#ffffff14 3px 4px);opacity:.9;box-shadow:0 2px 4px #0003;clip-path:polygon(1% 4%,98% 0,100% 14%,97% 27%,100% 39%,98% 55%,100% 70%,98% 85%,99% 100%,3% 98%,1% 84%,3% 68%,0 54%,2% 38%,0 22%)}.experience-scrapbook .project-polaroid,.experience-scrapbook .project-paper{background:none;border-radius:0;box-shadow:none;clip-path:none;isolation:isolate;filter:drop-shadow(2px 12px 14px #0007)}.experience-scrapbook .project-polaroid:before,.experience-scrapbook .project-paper:before{content:"";position:absolute;inset:0;z-index:-1;background:#eee5d5 url(/projects/paper.svg);-webkit-mask:url(/projects/scalloped-edge.svg) 0 0 / 100% 100% no-repeat;mask:url(/projects/scalloped-edge.svg) 0 0 / 100% 100% no-repeat;pointer-events:none}.home-pager .hero-about-scene{padding:24px 0 65px}.about-sketchbook{width:min(1180px,92%);margin:0 auto;display:grid;grid-template-columns:1.08fr 1fr;gap:38px;align-items:center;padding:35px 0;color:#24221f}.about-statement,.about-diagram-paper{position:relative;background:#eee5d5 url(/projects/paper.svg);box-shadow:4px 16px 30px #0007}.about-statement{padding:48px 45px 38px 55px;transform:rotate(-1.5deg);border-radius:3px 8px 5px 2px}.about-binding{position:absolute;top:0;bottom:0;left:19px;width:8px;background:radial-gradient(circle at center,#161512 0 3px,#0000 3.8px) 0 8px / 8px 28px}.about-sketch-eyebrow{font-family:var(--font-mono);font-size:12px;letter-spacing:2px;margin:0 0 30px}.about-statement h2{font-family:Inter,sans-serif;font-size:clamp(38px,4.6vw,65px);font-weight:900;line-height:1.13;letter-spacing:-2.8px;color:#181818;margin:0}.about-statement h2 span{position:relative;white-space:nowrap}.about-statement h2 svg{position:absolute;left:0;bottom:-9px;width:100%;height:16px;fill:none;stroke:#ac51d1;stroke-width:3;stroke-linecap:round}.about-sketch-education{font-size:clamp(15px,1.5vw,19px);line-height:1.6;margin:36px 0 24px;color:#615b55}.about-sketch-education strong{font-weight:600;color:#36322e}.about-margin-note,.about-diagram-note,.about-diagram-paper figcaption{font-family:Caveat,cursive}.about-margin-note{font-size:25px;transform:rotate(-3deg);color:#784297;margin:24px 0 32px}.about-margin-note span{display:inline-block;font-size:34px}.about-page-number{font-family:var(--font-mono);font-size:10px;letter-spacing:2px;color:#8c8378}.about-diagram-paper{margin:0;padding:25px 20px 20px;transform:rotate(3deg);background-image:linear-gradient(#8292a126 1px,transparent 1px),linear-gradient(90deg,#8292a126 1px,transparent 1px),url(/projects/paper.svg);background-size:24px 24px,24px 24px,auto;border-radius:3px}.about-sketch-tape{position:absolute;width:120px;height:35px;top:-17px;left:36%;background:linear-gradient(95deg,#ddb443d9,#f3d778e8,#dcad3bd9);transform:rotate(-9deg);clip-path:polygon(0 5%,98% 0,100% 22%,98% 45%,100% 76%,97% 100%,2% 96%,0 70%,2% 40%);box-shadow:0 2px 4px #0002}.about-diagram-paper figcaption{font-size:26px;text-align:center;color:#534942;margin-top:10px}.about-idea-map{display:block;width:100%;overflow:visible}.about-sketch-connections{stroke:#746a60;stroke-width:1.7;stroke-linecap:round}.about-sketch-connections path{stroke-dasharray:1;stroke-dashoffset:1}.about-sketch-idea,.about-sketch-result{transform-box:fill-box;transform-origin:center}.about-sketch-idea{opacity:0}.about-sketch-idea rect{fill:#f8f1df;stroke:#b8a895;stroke-width:1}.about-sketch-idea text{font-family:Caveat,cursive;font-size:29px;fill:#3e3831}.about-sketch-result{opacity:0}.about-sketch-result>path:first-child{fill:#e1c7ea;stroke:#9861af;stroke-width:1.4}.about-sketch-result text{font-family:Caveat,cursive;font-size:29px;fill:#543163}.about-result-spark{fill:none;stroke:#ac51d1;stroke-width:3;stroke-linecap:round}.about-diagram-note{font-size:25px;color:#75418e;text-align:center;margin:-12px 0 4px}.about-sketchbook.is-visible .about-sketch-idea{animation:about-ink-appear .42s calc(.65s + var(--idea-delay)) cubic-bezier(.2,.7,.3,1) both}.about-sketchbook.is-visible .about-sketch-connections path{animation:about-connect .6s calc(.95s + var(--idea-delay)) cubic-bezier(.45,0,.25,1) both}.about-sketchbook.is-visible .about-sketch-result{animation:about-result-land .65s 2.45s cubic-bezier(.3,.6,.3,1) both}@keyframes about-connect{to{stroke-dashoffset:0}}@keyframes about-ink-appear{0%{opacity:0;scale:.9}65%{opacity:1;scale:1.02}to{opacity:1;scale:1}}@keyframes about-result-land{0%{opacity:0;scale:.88}60%{opacity:1;scale:1.04}to{opacity:1;scale:1}}@media(max-width:768px){.about-sketchbook{width:88%;grid-template-columns:1fr;max-width:550px;gap:44px;padding:15px 0}.about-statement{padding:36px 28px 30px 43px}.about-statement h2{font-size:clamp(33px,7.7vw,54px);letter-spacing:-1.8px}.about-diagram-paper{width:92%;justify-self:end}.about-diagram-paper figcaption{font-size:23px}.home-pager .hero-about-scene{padding:20px 0 45px}}@media(prefers-reduced-motion:reduce){.about-sketchbook .about-sketch-idea,.about-sketchbook .about-sketch-result{animation:none;opacity:1}.about-sketchbook .about-sketch-connections path{animation:none;stroke-dashoffset:0}}.about-sketchbook .about-statement,.about-sketchbook .about-diagram-paper{opacity:0}.about-sketchbook.is-visible .about-statement{animation:about-statement-settle 1s cubic-bezier(.3,.7,.3,1) both}.about-sketchbook.is-visible .about-diagram-paper{animation:about-diagram-settle 1.1s .18s cubic-bezier(.3,.7,.3,1) both}.about-statement h2 svg path{stroke-dasharray:500;stroke-dashoffset:500}.about-sketchbook.is-visible .about-statement h2 svg path{animation:about-connect .9s .65s var(--ease-ui) both}.about-sketchbook .handwritten-text{line-height:1.2;font-weight:500;letter-spacing:0}.about-sketchbook .handwritten-pen{fill:#75418e}.about-sketchbook.is-visible .about-result-spark{stroke-dasharray:30;stroke-dashoffset:30;animation:about-connect .45s 3.05s cubic-bezier(.4,0,.2,1) both}@keyframes about-statement-settle{0%{opacity:0;transform:translateY(35px) rotate(-5deg)}65%{opacity:1;transform:translateY(-2px) rotate(-.6deg)}to{opacity:1;transform:translateY(0) rotate(-1.5deg)}}@keyframes about-diagram-settle{0%{opacity:0;transform:translate(15px,45px) rotate(8deg)}65%{opacity:1;transform:translateY(-2px) rotate(2deg)}to{opacity:1;transform:translate(0) rotate(3deg)}}@media(prefers-reduced-motion:reduce){.about-sketchbook .about-statement,.about-sketchbook .about-diagram-paper{opacity:1;animation:none}.about-sketchbook .about-statement h2 svg path,.about-sketchbook .about-result-spark{animation:none;stroke-dashoffset:0}}.shelf-book-slot{flex:1 1 0;max-width:75px;min-width:0;perspective:650px}.shelf-book-slot .project-spine{width:100%;max-width:none;transition:transform var(--duration-base) var(--ease-ui),filter var(--duration-base) var(--ease-ui),opacity var(--duration-slow) var(--ease-ui);transform-style:preserve-3d}.scrapbook-section.is-visible .shelf-book-slot{animation:shelf-book-place .4s calc(var(--book-order) * 40ms) cubic-bezier(.3,0,.2,1) both}.project-spine.is-selected{transform:translateY(-10px) rotate(-5deg);z-index:3}.project-spine.is-selected:hover{transform:translateY(-15px) rotate(-5deg)}.scrapbook-spread{perspective:1400px;animation:none}.scrapbook-spread.is-opening>.project-paper{animation:spread-place .64s calc(var(--book-anticipate, 0ms) + var(--book-travel, .42s) * .6) cubic-bezier(.3,0,.2,1) both}.scrapbook-spread.is-closing{pointer-events:none}@keyframes shelf-book-place{0%{opacity:0;transform:translateY(-35px) rotate(-8deg)}70%{opacity:1;transform:translateY(2px) rotate(2deg)}to{opacity:1;transform:none}}.scrapbook-spread.is-closing>.project-paper{animation:spread-lift var(--book-return, .25s) cubic-bezier(.45,0,.55,1) both}@keyframes spread-place{0%{opacity:0;translate:0 26px;scale:.985}60%{opacity:1}to{opacity:1;translate:0 0;scale:1}}@keyframes spread-lift{to{opacity:0;translate:0 -10px}}@media(prefers-reduced-motion:reduce){.scrapbook-section .shelf-book-slot,.scrapbook-spread.is-opening>.project-paper,.scrapbook-spread.is-closing>.project-paper{animation:none}.shelf-book-slot .project-spine{transition:none}}.scrapbook-section:not(.is-visible) .scrapbook-spread.is-opening>.project-paper{animation-play-state:paused}@media(max-width:480px){.experience-scrapbook .shelf-book-slot{max-width:53px}}.shelf-book-slot{position:relative;z-index:1}.shelf-book-slot:has(.is-selected){z-index:4}.extracted-book{width:185px;height:160px;position:relative;margin-left:170px;transform-style:preserve-3d}.extracted-book-cover{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;gap:22px;padding:24px;background:linear-gradient(90deg,#0006,transparent 12%,#ffffff16 65%,#0002),var(--book-color);border:1px solid #ffffff35;border-radius:2px 5px 5px 2px;transform-origin:left center;backface-visibility:visible;color:#fff;box-shadow:2px 6px 12px #0005;text-align:center}.extracted-book-cover span{font-size:20px;font-weight:700;line-height:1.1}.extracted-book-cover i{font-family:var(--font-mono);font-style:normal;font-size:8px;letter-spacing:2px;opacity:.7}.extracted-book-binding{position:absolute;top:0;bottom:0;left:-4px;width:7px;background:var(--book-color);box-shadow:inset 2px 0 3px #0008}.shelf-book-slot:has(.is-selected) .project-spine{opacity:.25;transform:none}@keyframes volume-open-cover{0%{transform:rotateY(0);animation-timing-function:cubic-bezier(.45,0,.3,1)}72%{transform:rotateY(-172deg);animation-timing-function:cubic-bezier(.45,0,.55,1)}to{transform:rotateY(-165deg)}}@keyframes volume-close-cover{0%{transform:rotateY(-165deg)}to{transform:rotateY(0)}}@media(max-width:640px){.extracted-book{width:145px;height:145px;margin-left:125px}.extracted-book-cover{padding:15px}.extracted-book-cover span{font-size:17px}}@media(prefers-reduced-motion:reduce){.extracted-book-cover{transform:rotateY(-165deg)}}.extracted-book-cover:after{content:"";position:absolute;inset:3px;background:#eee5d5 url(/projects/paper.svg);border:1px solid #d2c5ad;transform:rotateY(180deg) translateZ(1px);backface-visibility:hidden}.extracted-book-cover>span,.extracted-book-cover>i{backface-visibility:hidden;transform:translateZ(2px)}.extracted-book-cover{transform-style:preserve-3d}.extracted-book-cover:after{content:"notes & ideas";display:grid;place-items:center;font-family:Caveat,cursive;font-size:25px;color:#8a7791}.shelf-book-slot:has(.is-selected) .project-spine{opacity:0}.shelf-book-slot:has(.is-selected) .project-spine:focus-visible{opacity:.25}.skills-loading{min-height:1016px}@media(max-width:768px){.skills-loading{min-height:1200px}}.scrapbook-header{grid-template-areas:"heading shelf" "book book";row-gap:0;margin-bottom:24px}.scrapbook-heading{grid-area:heading}.project-shelf{grid-area:shelf}@media(max-width:768px){.scrapbook-header{grid-template-areas:"heading" "shelf" "book";row-gap:12px}}@media(min-width:1025px)and (max-height:1500px){.scrapbook-section{padding-top:20px;overflow:clip}.scrapbook-section .scrapbook-header{position:sticky;top:var(--header-height);z-index:5;grid-template-columns:minmax(250px,1fr) 280px minmax(0,640px);grid-template-areas:"heading book shelf";column-gap:24px;margin:0 calc(50% - 50vw) 24px;padding:10px calc(50vw - 50%) 0;background:var(--page-backdrop) fixed;box-shadow:0 18px 16px -12px #0d0d0dd9;transition:top .36s var(--ease-expo)}html.nav-hidden .scrapbook-section .scrapbook-header{top:0;transition:top .22s var(--ease-ui)}.scrapbook-heading{padding-bottom:20px}.scrapbook-section.scrapbook-section h2{font-size:clamp(44px,3.7vw,72px);letter-spacing:-3px}.project-spine{height:clamp(120px,17vh,160px)}.project-spine span{max-height:calc(clamp(120px,17vh,160px) - 42px)}.extracted-book{width:140px;height:125px;margin-left:130px}.extracted-book-cover{gap:14px;padding:14px}.extracted-book-cover span{font-size:16px}}@media(min-width:1025px)and (max-height:1500px)and (prefers-reduced-motion:reduce){html.nav-hidden .scrapbook-section .scrapbook-header{top:var(--header-height)}}.experience-scrapbook .shelf-book-slot:has(.is-selected) .project-spine{opacity:1;transform:translateY(-14px);filter:brightness(1.15)}.experience-scrapbook .scrapbook-header{grid-template-areas:"heading shelf"}@media(max-width:768px){.experience-scrapbook .scrapbook-header{grid-template-areas:"heading" "shelf"}}@media(min-width:1025px)and (max-height:1500px){.scrapbook-section.experience-scrapbook .scrapbook-header{grid-template-columns:minmax(250px,1fr) minmax(0,660px);grid-template-areas:"heading shelf"}}.experience-spread.is-opening .project-photos,.experience-spread.is-opening>.project-paper,.experience-spread.is-opening .polaroid-inset{animation:spread-pin .76s cubic-bezier(.4,0,.3,1.3) both}.experience-spread.is-opening .project-photos{animation-delay:60ms}.experience-spread.is-opening>.project-paper{animation-delay:.18s}.experience-spread.is-opening .polaroid-inset{animation-delay:.32s}.experience-spread.is-opening .paper-tape{animation:tape-press .36s cubic-bezier(.3,0,.2,1) both;animation-delay:.56s}.experience-spread.is-opening>.project-paper .paper-tape{animation-delay:.64s}.experience-spread.is-opening .polaroid-inset .paper-tape{animation-delay:.82s}@keyframes tape-press{0%{opacity:0;scale:1.35}to{opacity:.9;scale:1}}.scrapbook-section:not(.is-visible) .experience-spread.is-opening .paper-tape{animation-play-state:paused}@media(prefers-reduced-motion:reduce){.experience-spread.is-opening .project-photos,.experience-spread.is-opening>.project-paper,.experience-spread.is-opening .polaroid-inset,.experience-spread.is-opening .paper-tape{animation:none}}.experience-scrapbook .project-polaroid:before,.experience-scrapbook .project-paper:before{-webkit-mask:none;mask:none;border-radius:4px;box-shadow:inset 0 0 0 1px #0000000d}.experience-paper,.experience-scrapbook .project-polaroid figcaption{font-family:Shantell Sans,Caveat,cursive}.experience-paper h3{font-weight:800;letter-spacing:-1px}.experience-paper-role{font-weight:700}.experience-scrapbook .project-polaroid figcaption{font-style:normal;font-weight:500;letter-spacing:0}.experience-paper h3,.experience-paper h4,.experience-paper p{font-family:inherit}.experience-paper .paper-features h4{font-weight:700;letter-spacing:0}.experience-scrapbook .shelf-book-slot:has(.is-selected) .project-spine{transform:translateY(-18px) rotate(-3deg);animation:spine-pull .7s both}.experience-scrapbook .project-spine.is-selected:after{content:"";position:absolute;top:-2px;right:10px;width:9px;height:34px;background:#f2e9d8;clip-path:polygon(0 0,100% 0,100% 100%,50% 78%,0 100%);transform-origin:top;animation:spine-ribbon .42s .26s cubic-bezier(.3,0,.2,1) both,ribbon-swing .6s .42s both;pointer-events:none}@keyframes spine-pull{0%{transform:translateY(0) rotate(0);animation-timing-function:cubic-bezier(.45,0,.55,1)}13%{transform:translateY(3px) rotate(0);animation-timing-function:cubic-bezier(.3,0,.2,1)}55%{transform:translateY(-24px) rotate(-5deg);animation-timing-function:cubic-bezier(.45,0,.55,1)}to{transform:translateY(-18px) rotate(-3deg)}}@keyframes spine-ribbon{0%{scale:1 0}to{scale:1 1}}@keyframes ribbon-swing{0%{rotate:0deg;animation-timing-function:cubic-bezier(.3,0,.3,1)}40%{rotate:4deg;animation-timing-function:cubic-bezier(.45,0,.55,1)}to{rotate:0deg}}@media(prefers-reduced-motion:reduce){.experience-scrapbook .shelf-book-slot:has(.is-selected) .project-spine,.experience-scrapbook .project-spine.is-selected:after{animation:none}}.scrapbook-section{--book-anticipate: 90ms}.project-scrapbook .shelf-book-slot:has(.is-selected) .project-spine{animation:spine-leave .35s both}@keyframes spine-leave{0%{opacity:1;transform:translateY(0);animation-timing-function:cubic-bezier(.45,0,.55,1)}26%{opacity:1;transform:translateY(3px);animation-timing-function:cubic-bezier(.45,0,.3,1)}to{transform:translateY(-14px)}}.project-shelf.is-dipping{animation:shelf-dip .3s cubic-bezier(.45,0,.55,1)}@keyframes shelf-dip{30%{translate:0 1.5px}}.project-spines:has(.is-selected) .project-spine:not(.is-selected){filter:brightness(.9)}.project-spines .project-spine:not(.is-selected):hover{filter:brightness(1.25)}.project-scrapbook .scrapbook-spread.is-opening .paper-tape{animation:project-tape-land .36s calc(var(--book-anticipate, 0ms) + var(--book-travel, .42s) * .6 + .48s) cubic-bezier(.3,0,.2,1) both}.project-scrapbook .scrapbook-spread.is-opening>.project-paper .paper-tape{animation-delay:calc(var(--book-anticipate, 0ms) + var(--book-travel, .42s) * .6 + .56s)}@keyframes project-tape-land{0%{opacity:0;translate:0 -6px;scale:1.12}}.scrapbook-section:not(.is-visible) .scrapbook-spread.is-opening .paper-tape,.scrapbook-section:not(.is-visible) .shelf-book-slot:has(.is-selected) .project-spine{animation-play-state:paused}@media(prefers-reduced-motion:reduce){.project-scrapbook .shelf-book-slot:has(.is-selected) .project-spine,.project-shelf.is-dipping,.project-scrapbook .scrapbook-spread.is-opening .paper-tape{animation:none}}.project-scrapbook .project-paper,.project-scrapbook .project-polaroid figcaption{font-family:Shantell Sans,Caveat,cursive}.project-scrapbook .project-paper h3,.project-scrapbook .project-paper h4,.project-scrapbook .project-paper p{font-family:inherit}.project-scrapbook .project-paper h3{letter-spacing:-1px}.project-scrapbook .paper-features h4{font-weight:700;letter-spacing:0}.project-scrapbook .project-polaroid figcaption{font-style:normal;font-weight:500;letter-spacing:0}.project-scrapbook .paper-tech p,.experience-scrapbook .paper-tech p{font-family:var(--font-mono)}.home-pager{--section-gap: clamp(48px, 5vw, 80px)}.home-pager .hero-intro,.home-pager .hero-inner>.hero-intro,.home-pager .hero-about-scene,.home-pager #experience,.home-pager #projects,.home-pager .home-scene--end{min-height:var(--scene);box-sizing:border-box;display:flex;flex-direction:column;justify-content:center;padding-top:calc(var(--section-gap) / 2);padding-bottom:max(calc(var(--section-gap) / 2),calc(var(--header-height) + 32px))}.home-pager .hero-about-scene{flex-direction:row;align-items:center}.home-pager #experience>.scrapbook-stage,.home-pager #projects>.scrapbook-stage{width:100%}.home-pager .home-scene{padding-top:0;padding-bottom:0}.home-pager .home-scene--end .contact{flex:0 0 auto}@media(min-width:769px)and (max-width:1024px){.hero-chip{bottom:-22px}}@property --stage-hold{syntax: "<time>"; inherits: true; initial-value: 0ms;}.scrapbook-section{--stage-hold: .16s;--book-anticipate: calc(90ms + var(--stage-hold))}.scrapbook-section.is-visible{--stage-hold: 0ms;transition:--stage-hold 0s 2.5s}.scrapbook-heading p{animation:stage-eyebrow-in .36s cubic-bezier(.4,0,.2,1) both}.scrapbook-heading h2{animation:stage-heading-in .52s cubic-bezier(.4,0,.2,1) .12s both}@keyframes stage-eyebrow-in{0%{opacity:0;translate:0 6px}}@keyframes stage-heading-in{0%{opacity:0;translate:0 10px}}.scrapbook-section:not(.is-visible) .scrapbook-heading p,.scrapbook-section:not(.is-visible) .scrapbook-heading h2{animation-play-state:paused}.scrapbook-section.is-visible .shelf-book-slot{animation-delay:calc(var(--stage-hold) + var(--book-order) * 40ms)}.project-scrapbook .shelf-book-slot:has(.is-selected) .project-spine{animation-delay:var(--stage-hold)}.experience-spread.is-opening .project-photos{animation-delay:calc(60ms + var(--stage-hold))}.experience-spread.is-opening>.project-paper{animation-delay:calc(.18s + var(--stage-hold))}.experience-spread.is-opening .polaroid-inset{animation-delay:calc(.32s + var(--stage-hold))}.experience-spread.is-opening .paper-tape{animation-delay:calc(.56s + var(--stage-hold))}.experience-spread.is-opening>.project-paper .paper-tape{animation-delay:calc(.64s + var(--stage-hold))}.experience-spread.is-opening .polaroid-inset .paper-tape{animation-delay:calc(.82s + var(--stage-hold))}@media(prefers-reduced-motion:reduce){.scrapbook-section,.scrapbook-section.is-visible{--stage-hold: 0ms;transition:none}.scrapbook-heading p,.scrapbook-heading h2{animation:none}}.experience-visual.is-swapped .role-preview>:not(.role-preview-chrome){animation:role-view-in var(--duration-base) var(--ease-ui) both}@keyframes role-view-in{0%{opacity:0}to{opacity:1}}.experience-paper .paper-features{gap:4px;margin:20px 0 24px}.experience-paper .paper-features li{padding:12px 14px;margin-inline:-14px;border-radius:10px;cursor:pointer;opacity:.78;transition:background-color var(--duration-hover) var(--ease-ui),opacity var(--duration-hover) var(--ease-ui),box-shadow var(--duration-hover) var(--ease-ui)}.experience-paper .paper-features li.is-active{opacity:1;background:#0000000b;box-shadow:inset 3px 0 0 var(--preview-accent)}.experience-paper .paper-features h4 button{all:unset;cursor:pointer}.experience-paper .paper-features h4 button:focus-visible{outline:2px solid var(--preview-accent);outline-offset:3px;border-radius:3px}.experience-paper .paper-features p{font-size:15px;line-height:1.45;color:#4d494e}@media(max-width:480px){.experience-paper .paper-features p{font-size:14px}.experience-paper .paper-features li{padding:10px 12px;margin-inline:-12px}}@media(prefers-reduced-motion:reduce){.experience-visual.is-swapped .role-preview>:not(.role-preview-chrome){animation:none}}.experience-spread,.project-spread{grid-template-columns:1fr}.experience-sheet{margin:8px 0 0;padding:44px 44px 38px;display:grid;grid-template-columns:1.1fr 1fr;gap:40px;align-items:center;transform:none}.experience-sheet .paper-tape{left:46%}.experience-visual{margin:0;min-width:0}.experience-visual .role-preview{aspect-ratio:1.25;border-radius:6px;box-shadow:1px 8px 20px #0005}.experience-visual figcaption{font-size:clamp(18px,1.6vw,26px);line-height:1.3;padding:16px 4px 0;min-height:2.6em;box-sizing:content-box}.experience-copy{min-width:0}.experience-stat{display:none}@media(max-width:1100px){.experience-scrapbook,.project-scrapbook{overflow:clip}.experience-sheet{grid-template-columns:1fr;gap:14px;padding:34px 22px 28px;align-items:start}.experience-visual{position:sticky;top:calc(var(--header-height) + 6px);z-index:3;background:#eee5d5;padding:8px 0 4px;box-shadow:0 10px 12px -8px #eee5d5}.experience-visual .role-preview,.experience-visual figcaption{display:none}.experience-stat{display:block;background:#10141c;border-left:4px solid var(--preview-accent);border-radius:8px;padding:14px 18px;box-shadow:1px 6px 14px #0004}.experience-stat strong{display:block;font:800 clamp(30px,9vw,44px)/1.1 Arial,sans-serif;color:#f3e9dc;letter-spacing:-1px}.experience-stat span{display:block;margin-top:4px;font:500 15px/1.3 Arial,sans-serif;color:#b8c0cf}}@media(min-width:1101px)and (max-width:1400px){.experience-visual .role-preview{aspect-ratio:1}}.experience-spread.is-opening>.project-paper{transform-origin:var(--spine-x, 50%) 0}@keyframes spread-pin{0%{opacity:0;translate:0 -34px;rotate:-2.5deg;scale:.94}35%{opacity:1}to{opacity:1;translate:0 0;rotate:0deg;scale:1}}@keyframes sheet-settle{0%{opacity:0;translate:0 14px}to{opacity:1;translate:0 0}}.experience-spread.is-opening .experience-visual,.experience-spread.is-opening .experience-copy>*{animation:sheet-settle .42s cubic-bezier(.3,0,.2,1) both}.experience-spread.is-opening .experience-visual{animation-delay:calc(.36s + var(--stage-hold))}.experience-spread.is-opening .experience-copy>:nth-child(1){animation-delay:calc(.4s + var(--stage-hold))}.experience-spread.is-opening .experience-copy>:nth-child(2){animation-delay:calc(.45s + var(--stage-hold))}.experience-spread.is-opening .experience-copy>:nth-child(3){animation-delay:calc(.5s + var(--stage-hold))}.experience-spread.is-opening .experience-copy>:nth-child(4){animation-delay:calc(.55s + var(--stage-hold))}.experience-spread.is-opening .experience-copy>:nth-child(5){animation-delay:calc(.6s + var(--stage-hold))}.experience-spread.is-opening .experience-copy>:nth-child(6){animation-delay:calc(.65s + var(--stage-hold))}.experience-spread.is-opening .experience-copy>:nth-child(n+7){animation-delay:calc(.7s + var(--stage-hold))}.scrapbook-section:not(.is-visible) .experience-spread.is-opening .experience-visual,.scrapbook-section:not(.is-visible) .experience-spread.is-opening .experience-copy>*{animation-play-state:paused}@media(prefers-reduced-motion:reduce){.experience-spread.is-opening .experience-visual,.experience-spread.is-opening .experience-copy>*{animation:none}}.project-spine{border-radius:4px 4px 1px 1px;background:repeating-linear-gradient(0deg,#ffffff07 0 1px,transparent 1px 3px),linear-gradient(90deg,#0008,#ffffff0c 9%,#ffffff12 15%,transparent 26%,#0003 89%,#0007),var(--spine-color)}.project-spine:before{inset:5px 0;border-top:3px double #f0d9a688;border-bottom:3px double #f0d9a666}.project-spine span{font-weight:700;letter-spacing:.02em;text-shadow:0 1px 0 #0007,0 -1px 0 #ffffff1f}.project-spine.is-selected span{text-shadow:0 1px 0 #ffffff55}.project-spine svg{box-sizing:content-box;padding:3px;border:1px solid #ffffff3d;border-radius:50%;opacity:.9}.shelf-book-slot:nth-child(4n+2) .project-spine:not(.is-selected){rotate:-.7deg}.shelf-book-slot:nth-child(4n+4) .project-spine:not(.is-selected){rotate:.6deg}.shelf-book-slot:after{content:"";position:absolute;left:4%;right:-10%;bottom:-3px;height:7px;background:radial-gradient(ellipse at 40% 50%,#000b,transparent 70%);z-index:-1;pointer-events:none;transition:opacity var(--duration-base) var(--ease-ui),scale var(--duration-base) var(--ease-ui)}.experience-scrapbook .shelf-book-slot:has(.is-selected):after{opacity:.55;scale:.85 1}.project-scrapbook .shelf-book-slot:has(.is-selected):after{opacity:0}@media(prefers-reduced-motion:reduce){.shelf-book-slot:after{transition:none}}.project-spine{background:linear-gradient(155deg,#ffffff22,transparent 38%),repeating-linear-gradient(0deg,#ffffff07 0 1px,transparent 1px 3px),linear-gradient(90deg,#0008,#ffffff0c 9%,#ffffff12 15%,transparent 26%,#0003 89%,#0007),var(--spine-color)}.shelf-book-slot .project-spine{transition:transform var(--duration-base) var(--ease-ui),filter var(--duration-base) var(--ease-ui),opacity var(--duration-slow) var(--ease-ui),rotate var(--duration-base) var(--ease-ui)}.shelf-book-slot .project-spine:not(.is-selected):hover{rotate:-2.5deg}.shelf-book-slot{transition:translate var(--duration-base) var(--ease-ui)}.shelf-book-slot:has(+.shelf-book-slot .project-spine:not(.is-selected):hover){translate:-3px 0}.shelf-book-slot:has(.project-spine:not(.is-selected):hover)+.shelf-book-slot{translate:3px 0}.experience-scrapbook .project-spine.is-selected:after{background:linear-gradient(90deg,#f6ecd4,#d8c59a)}@media(prefers-reduced-motion:reduce){.shelf-book-slot,.shelf-book-slot .project-spine{transition:none}}.experience-spread .role-preview,.project-spread .role-preview{display:flex;flex-direction:column}.role-preview-chrome small{font-size:max(12px,2.8cqw)}.role-terminal{--t-fg: #aab2c0;--t-mute: #9aa4b5;--t-strong: #e7edf5;--t-add: #8fd19e;--t-del: #e58a8a;flex:1;min-height:0;display:flex;flex-direction:column;justify-content:center;padding:5cqw 7cqw;font:max(14px,3.4cqw)/1.7 var(--font-mono);color:var(--t-fg)}.role-preview-qid .role-terminal,.role-preview-peer-mentor .role-terminal{--t-fg: #44525e;--t-mute: #58636d;--t-strong: #1c2a35;--t-add: #2f7d4a;--t-del: #b04a4a}.role-terminal p{margin:0;white-space:pre-wrap;overflow-wrap:anywhere;line-height:inherit}.role-term-file{font-size:max(14px,3cqw);color:var(--t-mute);margin-bottom:2cqw!important}.role-term-note{color:var(--t-mute)}.role-term-gap{height:2.6cqw}.role-term-big{font-size:11cqw;line-height:1.15!important;font-weight:700;color:var(--t-strong)}.role-term-ok i,.role-term-add i,.role-term-del i{display:inline-block;width:2ch;font-style:normal}.role-term-ok i{color:var(--t-add)}.role-term-add,.role-term-del{margin-inline:-2cqw!important;padding-inline:2cqw}.role-term-add{color:var(--t-add);background:color-mix(in srgb,var(--t-add) 10%,transparent)}.role-term-del{color:var(--t-del);background:color-mix(in srgb,var(--t-del) 10%,transparent)}.role-term-kv{display:flex;justify-content:space-between;gap:4cqw}.role-term-kv>*{min-width:0}.role-term-kv b{font-weight:600;color:var(--t-strong)}.project-preview{background:color-mix(in srgb,var(--preview-accent, #4476b7) 14%,#0f1115)}.extracted-book-cover{justify-content:flex-end;align-items:flex-start;gap:8px;padding:22px 20px;text-align:left;background:linear-gradient(155deg,#ffffff22,transparent 40%),repeating-linear-gradient(0deg,#ffffff07 0 1px,transparent 1px 3px),linear-gradient(90deg,#0006,transparent 12%,#ffffff16 65%,#0002),var(--book-color)}.extracted-book-cover:before{content:"";position:absolute;inset:10px 8px;border:3px double #f0d9a688;border-left-width:0;pointer-events:none}.extracted-book-cover em{font:normal 9px var(--font-mono);letter-spacing:2px;color:#f0d9a6}.extracted-book-cover span{text-shadow:0 1px 0 #0007,0 -1px 0 #ffffff1f}.extracted-book-cover>i{display:none}.extracted-book-cover:after{content:"";background:#eee5d5 url(/projects/paper.svg);box-shadow:inset 0 0 0 1px #d2c5ad}.extracted-book-binding{background:linear-gradient(90deg,#0008,transparent 60%),var(--book-color);border-left:1px solid #f0d9a655}@media(max-width:640px),(min-width:1025px)and (max-height:1500px){.extracted-book-cover{padding:14px 13px}}.project-scrapbook .scrapbook-stage{position:relative}.project-scrapbook .scrapbook-header{grid-template-areas:"heading shelf"}@media(max-width:768px){.project-scrapbook .scrapbook-header{grid-template-areas:"heading" "shelf"}}@media(min-width:1025px)and (max-height:1500px){.scrapbook-section.project-scrapbook .scrapbook-header{grid-template-columns:minmax(250px,1fr) minmax(0,660px);grid-template-areas:"heading shelf"}}.project-scrapbook .shelf-book-slot .project-spine{transition:transform var(--duration-base) var(--ease-ui),filter var(--duration-base) var(--ease-ui),opacity .14s var(--ease-ui),rotate var(--duration-base) var(--ease-ui)}.book-flight{position:absolute;left:var(--cx, 50%);top:var(--cy, 0);width:185px;height:160px;margin:-80px 0 0 -92px;z-index:8;pointer-events:none;perspective:1300px;scale:var(--ts, 2)}.book-flight .extracted-book{width:185px;height:160px;margin:0}.book-flight.is-opening{animation:book-fly-x var(--book-travel, .42s) var(--book-anticipate, 90ms) cubic-bezier(.45,0,.55,1) both,book-arc var(--book-travel, .42s) var(--book-anticipate, 90ms) cubic-bezier(.45,0,.55,1) both,book-grow var(--book-travel, .42s) var(--book-anticipate, 90ms) cubic-bezier(.3,0,.2,1) both,book-tilt var(--book-travel, .42s) var(--book-anticipate, 90ms) both,book-fade-out .3s calc(var(--book-anticipate, 90ms) + var(--book-travel, .42s) * .75 + .2s) cubic-bezier(.45,0,.55,1) forwards}.book-flight.is-opening .extracted-book-cover{animation:volume-open-cover .46s calc(var(--book-anticipate, 90ms) + var(--book-travel, .42s) * .75) both}.book-flight.is-closing{animation:book-fade-in calc(var(--book-return, .25s) * .3) both,book-fly-back calc(var(--book-return, .25s) * .45) calc(var(--book-return, .25s) * .55) cubic-bezier(.45,0,.55,1) both,book-shrink calc(var(--book-return, .25s) * .45) calc(var(--book-return, .25s) * .55) cubic-bezier(.45,0,.55,1) both,book-home-out calc(var(--book-return, .25s) * .15) calc(var(--book-return, .25s) * .85) cubic-bezier(.45,0,.55,1) forwards}.book-flight.is-closing .extracted-book-cover{animation:volume-close-cover calc(var(--book-return, .25s) * .25) calc(var(--book-return, .25s) * .3) cubic-bezier(.45,0,.55,1) both}@keyframes book-fly-x{0%{translate:var(--fx, 0px) var(--fy, 0px)}to{translate:0 0}}@keyframes book-arc{40%{transform:translateY(-32px)}0%,to{transform:translateY(0)}}@keyframes book-grow{0%{scale:var(--fs, .4)}to{scale:var(--ts, 2)}}@keyframes book-tilt{0%{rotate:-8deg;animation-timing-function:cubic-bezier(.45,0,.55,1)}75%{rotate:1.5deg;animation-timing-function:cubic-bezier(.45,0,.55,1)}to{rotate:0deg}}@keyframes book-fly-back{0%{translate:0 0}to{translate:var(--fx, 0px) var(--fy, 0px)}}@keyframes book-shrink{0%{scale:var(--ts, 2)}to{scale:var(--fs, .4)}}@keyframes book-fade-in{0%{opacity:0}to{opacity:1}}@keyframes book-fade-out{to{opacity:0}}@keyframes book-home-out{to{opacity:0}}.project-scrapbook .project-spread{--sheet-origin: 50% min(50%, 280px)}.project-scrapbook .project-spread.is-opening>.project-paper{transform-origin:var(--sheet-origin);animation:book-card-grow .34s calc(var(--book-anticipate, 0ms) + var(--book-travel, .42s) * .75 + .12s) cubic-bezier(.3,0,.2,1) both}.project-scrapbook .project-spread.is-opening>.project-paper .paper-tape{animation-delay:calc(var(--book-anticipate, 0ms) + var(--book-travel, .42s) * .75 + .12s + .3s)}.project-scrapbook .project-spread.is-closing>.project-paper{transform-origin:var(--sheet-origin);animation:book-card-shrink calc(var(--book-return, .25s) * .3) cubic-bezier(.45,0,.55,1) both}@keyframes book-card-grow{0%{opacity:0;scale:.97}to{opacity:1;scale:1}}@keyframes book-card-shrink{to{opacity:0;scale:.97}}.scrapbook-section:not(.is-visible) .book-flight.is-opening,.scrapbook-section:not(.is-visible) .book-flight.is-opening .extracted-book-cover,.scrapbook-section:not(.is-visible) .project-spread.is-opening>.project-paper{animation-play-state:paused}@media(prefers-reduced-motion:reduce){.book-flight{display:none}.project-scrapbook .project-spread.is-opening>.project-paper,.project-scrapbook .project-spread.is-closing>.project-paper{animation:none}}.project-scrapbook .project-paper:before,.experience-scrapbook .project-paper:before{-webkit-mask:none;mask:none;border-radius:24px}.project-scrapbook .project-paper,.experience-scrapbook .project-paper{border-radius:24px}.project-scrapbook .paper-tape,.experience-scrapbook .paper-tape{clip-path:none;border-radius:4px}@media(max-width:480px){.project-scrapbook .project-paper:before,.experience-scrapbook .project-paper:before,.project-scrapbook .project-paper,.experience-scrapbook .project-paper{border-radius:18px}}.experience-visual .role-preview{border-radius:12px}.book-flight .extracted-book-cover{backface-visibility:hidden}.book-flight .extracted-book-cover:after{display:none}.book-flight.is-opening .extracted-book-binding{animation:book-fade-out .2s calc(var(--book-anticipate, 90ms) + var(--book-travel, .42s) * .75 + 60ms) cubic-bezier(.45,0,.55,1) forwards}.book-flight.is-closing .extracted-book-binding{animation:book-fade-in calc(var(--book-return, .25s) * .25) calc(var(--book-return, .25s) * .3) cubic-bezier(.45,0,.55,1) both}@media(prefers-reduced-motion:reduce){.book-flight .extracted-book-binding{animation:none}}.project-scrapbook .paper-links a,.project-scrapbook .paper-links button,.experience-scrapbook .paper-links a{border-radius:12px}.experience-paper .paper-features li{border-radius:14px}.experience-visual .role-preview{box-shadow:0 1px #ffffff14 inset,1px 10px 24px #0005}.paper-tech{border-top-color:#cfc6b3}@keyframes term-line-in{0%{opacity:0;translate:0 6px}to{opacity:1;translate:0 0}}.experience-visual.is-swapped .role-terminal{animation:none}.experience-visual.is-swapped .role-terminal>p{animation:term-line-in .26s cubic-bezier(.3,0,.2,1) both}.project-spread.is-opening .role-terminal>p{animation:term-line-in .22s cubic-bezier(.3,0,.2,1) both}.project-spread.is-opening .experience-copy>*,.project-spread.is-opening .experience-visual{animation:sheet-settle .32s cubic-bezier(.3,0,.2,1) both}.experience-visual.is-swapped .role-terminal>p:nth-child(1){animation-delay:0ms}.experience-visual.is-swapped .role-terminal>p:nth-child(2){animation-delay:35ms}.experience-visual.is-swapped .role-terminal>p:nth-child(3){animation-delay:70ms}.experience-visual.is-swapped .role-terminal>p:nth-child(4){animation-delay:105ms}.experience-visual.is-swapped .role-terminal>p:nth-child(5){animation-delay:.14s}.experience-visual.is-swapped .role-terminal>p:nth-child(6){animation-delay:175ms}.experience-visual.is-swapped .role-terminal>p:nth-child(7){animation-delay:.21s}.experience-visual.is-swapped .role-terminal>p:nth-child(8){animation-delay:245ms}.experience-visual.is-swapped .role-terminal>p:nth-child(9){animation-delay:.28s}.experience-visual.is-swapped .role-terminal>p:nth-child(10){animation-delay:315ms}.scrapbook-section:not(.is-visible) .project-spread.is-opening .role-terminal>p,.scrapbook-section:not(.is-visible) .project-spread.is-opening .experience-copy>*,.scrapbook-section:not(.is-visible) .project-spread.is-opening .experience-visual{animation-play-state:paused}.book-flight{filter:drop-shadow(0 6px 10px #0008)}@keyframes book-cover-shade{0%{filter:brightness(1)}to{filter:brightness(.6)}}.book-flight.is-opening .extracted-book-cover{animation:volume-open-cover .46s calc(var(--book-anticipate, 90ms) + var(--book-travel, .42s) * .75) both,book-cover-shade .46s calc(var(--book-anticipate, 90ms) + var(--book-travel, .42s) * .75) cubic-bezier(.45,0,.55,1) both}@media(prefers-reduced-motion:reduce){.experience-visual.is-swapped .role-terminal>p,.project-spread.is-opening .role-terminal>p,.project-spread.is-opening .experience-copy>*,.project-spread.is-opening .experience-visual{animation:none}}.project-spread.is-opening .role-terminal>p:nth-child(1){animation-delay:calc(var(--book-anticipate, 0ms) + var(--book-travel, .42s) * .75 + .12s + .14s)}.project-spread.is-opening .role-terminal>p:nth-child(2){animation-delay:calc(var(--book-anticipate, 0ms) + var(--book-travel, .42s) * .75 + .12s + 165ms)}.project-spread.is-opening .role-terminal>p:nth-child(3){animation-delay:calc(var(--book-anticipate, 0ms) + var(--book-travel, .42s) * .75 + .12s + .19s)}.project-spread.is-opening .role-terminal>p:nth-child(4){animation-delay:calc(var(--book-anticipate, 0ms) + var(--book-travel, .42s) * .75 + .12s + 215ms)}.project-spread.is-opening .role-terminal>p:nth-child(5){animation-delay:calc(var(--book-anticipate, 0ms) + var(--book-travel, .42s) * .75 + .12s + .24s)}.project-spread.is-opening .role-terminal>p:nth-child(6){animation-delay:calc(var(--book-anticipate, 0ms) + var(--book-travel, .42s) * .75 + .12s + 265ms)}.project-spread.is-opening .role-terminal>p:nth-child(7){animation-delay:calc(var(--book-anticipate, 0ms) + var(--book-travel, .42s) * .75 + .12s + .29s)}.project-spread.is-opening .role-terminal>p:nth-child(8){animation-delay:calc(var(--book-anticipate, 0ms) + var(--book-travel, .42s) * .75 + .12s + 315ms)}.project-spread.is-opening .role-terminal>p:nth-child(9){animation-delay:calc(var(--book-anticipate, 0ms) + var(--book-travel, .42s) * .75 + .12s + .34s)}.project-spread.is-opening .role-terminal>p:nth-child(10){animation-delay:calc(var(--book-anticipate, 0ms) + var(--book-travel, .42s) * .75 + .12s + 365ms)}.project-spread.is-opening .experience-copy>:nth-child(1){animation-delay:calc(var(--book-anticipate, 0ms) + var(--book-travel, .42s) * .75 + .12s + 40ms)}.project-spread.is-opening .experience-copy>:nth-child(2){animation-delay:calc(var(--book-anticipate, 0ms) + var(--book-travel, .42s) * .75 + .12s + 75ms)}.project-spread.is-opening .experience-copy>:nth-child(3){animation-delay:calc(var(--book-anticipate, 0ms) + var(--book-travel, .42s) * .75 + .12s + .11s)}.project-spread.is-opening .experience-copy>:nth-child(4){animation-delay:calc(var(--book-anticipate, 0ms) + var(--book-travel, .42s) * .75 + .12s + 145ms)}.project-spread.is-opening .experience-copy>:nth-child(5){animation-delay:calc(var(--book-anticipate, 0ms) + var(--book-travel, .42s) * .75 + .12s + .18s)}.project-spread.is-opening .experience-copy>:nth-child(6){animation-delay:calc(var(--book-anticipate, 0ms) + var(--book-travel, .42s) * .75 + .12s + 215ms)}.project-spread.is-opening .experience-copy>:nth-child(7){animation-delay:calc(var(--book-anticipate, 0ms) + var(--book-travel, .42s) * .75 + .12s + .25s)}.project-spread.is-opening .experience-visual{animation-delay:calc(var(--book-anticipate, 0ms) + var(--book-travel, .42s) * .75 + .12s + 40ms)}@media(prefers-reduced-motion:reduce){.project-spread.is-opening .role-terminal>p,.project-spread.is-opening .experience-copy>*,.project-spread.is-opening .experience-visual{animation:none}}.home-pager .home-scene--end .contact-scene{position:relative;container-type:inline-size;flex:0 0 auto;width:min(100%,calc(var(--scene) * 2000 / 1165),1700px);margin-inline:auto;aspect-ratio:2000 / 1165;-webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);min-height:0;padding:0;overflow:hidden;border-top:0;color:#eeeae4;background:transparent}.scene-layer{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.scene-back{z-index:1}.scene-front{z-index:3}.scene-trail{fill:none;stroke:#b46de8;stroke-width:2.6;stroke-linecap:round;stroke-dasharray:9 8;opacity:0;transition:opacity .26s var(--ease-ui)}.is-open .scene-trail{opacity:1;transition:opacity .5s var(--ease-ui) 1.3s;animation:trail-march 1.1s linear infinite}@keyframes trail-march{to{stroke-dashoffset:-17}}.mountain-rim{fill:none;stroke:#f3e3c7;stroke-opacity:.2;stroke-width:1.4}.mountain-rim--peak{stroke:url(#peak-rim);stroke-opacity:1;stroke-width:2.2;filter:drop-shadow(0 0 5px #f3e3c766)}.mountain-rim--lit{stroke-width:3.2;stroke-opacity:1;filter:drop-shadow(0 0 7px #f3e3c780)}.contact-card{position:absolute;z-index:2;left:25%;top:11.85%;width:46.75%;height:74%;box-sizing:border-box;padding:5.2cqw 3cqw 0;color:#141414;text-align:center;background:#efe8dc url(/projects/paper.svg);border-radius:5px;box-shadow:0 1.2cqw 3cqw #0009,0 0 0 1px #f3ecdd24}.contact .contact-card h2{display:block;max-width:none;margin:0;color:#101010;font-size:3.8cqw;font-weight:600;line-height:1.03;letter-spacing:-.04em}.contact .contact-card h2:after{display:none}.letter-useful{position:relative;white-space:nowrap}.letter-useful svg{position:absolute;width:98%;left:0;top:92%;overflow:visible;fill:none;stroke:#a64ad7;stroke-width:2.4;stroke-linecap:round}.letter-rays{position:absolute;top:5.1cqw;right:4.75cqw;width:3.3cqw;fill:none;stroke:#a64ad7;stroke-width:3;stroke-linecap:round}.letter-intro{margin:1.7cqw 0 0;color:#1f1f1f}.letter-intro .letter-intro-copy{margin:0;font-family:var(--font-hand);font-size:max(16px,1.75cqw);font-weight:500;line-height:1.37;letter-spacing:0}.letter-rule{display:block;width:6cqw;height:1px;margin:2.3cqw auto 2cqw;background:#a29c92}.letter-actions{display:flex;align-items:center;justify-content:center;gap:2.3cqw}.letter-actions a{display:inline-flex;align-items:center;justify-content:center;gap:.5cqw;font-size:max(13px,1.3cqw);line-height:1.3;text-decoration:none}.letter-linkedin{min-width:12.8cqw;padding:1.1cqw 1.4cqw;border-radius:max(5px,.45cqw);color:#f5f3ef;background:#111}.letter-linkedin:hover{background:#2a2530}.letter-eyebrow{position:absolute;z-index:4;left:19%;top:4.2%;margin:0;color:#cf9aef;font-family:var(--font-mono);font-size:max(11px,.86cqw);text-transform:uppercase;letter-spacing:.2em;white-space:nowrap;rotate:-3deg}.letter-eyebrow:after{content:"";display:block;width:4.2cqw;height:.5cqw;margin-top:.7cqw;border-top:2px solid #c08aea;border-radius:50%;transform:rotate(-7deg)}.scene-plane{position:absolute;z-index:4;left:75%;top:1.7%;width:21%;aspect-ratio:420 / 290;pointer-events:none;overflow:visible;filter:drop-shadow(0 .5cqw 1cqw #0008) drop-shadow(0 0 1.2cqw #f3e3c733)}.plane-edge{fill:none;stroke:#fff8e8;stroke-opacity:.7;stroke-width:1.5}.plane-rays{fill:none;stroke:#a64ad7;stroke-width:4;stroke-linecap:round}.scene-note{position:absolute;z-index:4;left:83.4%;top:30%;width:7cqw;color:#a64ad7;rotate:-12deg;pointer-events:none}.scene-note .handwritten-text{margin:0;font-family:var(--font-hand);font-size:1.5cqw;font-weight:500;line-height:1.05;letter-spacing:0}.scene-note>svg{display:block;width:2cqw;margin:.6cqw 0 0 2.6cqw;fill:none;stroke:#a64ad7;stroke-width:2.4;stroke-linecap:round;rotate:12deg}.letter-socials{position:absolute;z-index:5;left:0;right:0;top:94.9%;translate:0 -50%;display:flex;justify-content:center;align-items:center;gap:2.2cqw;margin:0}.letter-socials a{display:inline-flex;align-items:center;gap:.8cqw;color:#e2ded8;font-size:max(13px,.8cqw);text-decoration:none}.letter-socials a svg:first-child{width:max(22px,1.35cqw);height:max(22px,1.35cqw)}.letter-socials a svg:last-child{width:max(14px,.85cqw);height:max(14px,.85cqw);margin-left:-.25cqw}.letter-socials>span{width:1px;height:1.4cqw;min-height:20px;background:#aaa29b}.letter-socials a:hover{color:#c590e9}.footer.letter-footer{display:flex;justify-content:space-between;align-items:center;gap:20px;width:92%;max-width:1410px;margin:0 auto;padding:20px 0 34px;border-top:1px solid #ffffff26;background:transparent;box-sizing:border-box}.footer.letter-footer p,.letter-footer a{margin:0;font-size:14px;color:#a39f9b;font-weight:400;letter-spacing:.035em;text-decoration:none}.letter-footer a{display:inline-flex;align-items:center;gap:8px}.letter-footer a:hover{color:#e3c1fa}.letter-actions a:focus-visible,.letter-socials a:focus-visible,.letter-footer a:focus-visible{outline:2px solid #a64ad7;outline-offset:5px}.mountain{opacity:0;translate:0 40px;transition:opacity .26s var(--ease-ui),translate .3s var(--ease-ui)}.is-open .mountain{opacity:1;translate:0 0;transition:opacity .48s var(--ease-ui),translate .76s var(--ease-ui)}.is-open .mountain-3{transition-delay:0ms}.is-open .mountain-1{transition-delay:80ms}.is-open .mountain-2{transition-delay:.16s}.is-open .mountain-4{transition-delay:.24s}.contact-card{opacity:0;translate:0 2.4cqw;transition:opacity .26s var(--ease-ui),translate .3s var(--ease-ui)}.is-open .contact-card{opacity:1;translate:0 0;transition:opacity .52s var(--ease-ui) .16s,translate .84s var(--ease-ui) .16s}.contact-card h2,.letter-rule,.letter-actions,.letter-socials{opacity:0;transition:opacity .27s var(--ease-ui)}.is-open .contact-card h2,.is-open .letter-rule,.is-open .letter-actions,.is-open .letter-socials{transition-duration:.45s}.is-open .contact-card h2{opacity:1;transition-delay:.7s}.is-open .letter-rule{opacity:1;transition-delay:1s}.is-open .letter-actions{opacity:1;transition-delay:1.1s}.is-open .letter-socials{opacity:1;transition-delay:1.3s}.letter-eyebrow{opacity:0;translate:0 6px;transition:opacity .22s var(--ease-ui),translate .22s var(--ease-ui)}.is-open .letter-eyebrow{opacity:1;translate:0 0;transition-duration:.36s;transition-delay:.2s}.letter-useful svg path,.letter-rays path,.scene-note>svg path{stroke-dasharray:300;stroke-dashoffset:300}.is-open .letter-useful svg path{animation:letter-doodle .45s cubic-bezier(.4,0,.2,1) 1s both}.is-open .letter-rays path{animation:letter-doodle .32s cubic-bezier(.4,0,.2,1) 1.35s both}.is-open .scene-note>svg path{animation:letter-doodle .36s cubic-bezier(.4,0,.2,1) 3.3s both}@keyframes letter-doodle{to{stroke-dashoffset:0}}.scene-plane{opacity:0;transition:opacity .2s var(--ease-ui)}.is-open .scene-plane{opacity:1;animation:plane-arrive 1.3s cubic-bezier(.22,.7,.25,1) .5s both}.is-open .plane-body{transform-box:fill-box;transform-origin:50% 50%;animation:plane-float 4.8s var(--ease-in-out) 1.8s infinite alternate}.plane-rays{opacity:0}.is-open .plane-rays{animation:plane-rays .52s var(--ease-ui) 1.7s both}@keyframes plane-arrive{0%{translate:-38cqw 24cqw;rotate:-16deg;opacity:0;animation-timing-function:cubic-bezier(.2,.6,.3,1)}15%{opacity:1}74%{translate:.8cqw -.6cqw;rotate:5deg;animation-timing-function:var(--ease-in-out)}to{translate:0 0;rotate:0deg;opacity:1}}@keyframes plane-float{0%{translate:0 0;rotate:0deg}to{translate:6px -10px;rotate:-2deg}}@keyframes plane-rays{0%{opacity:0;scale:.85}to{opacity:1;scale:1}}.scrap{opacity:0;translate:0 18px;transform-box:fill-box;transform-origin:50% 50%;transition:opacity .22s var(--ease-ui),translate .26s var(--ease-ui)}.is-open .scrap{opacity:1;translate:0 0;transition:opacity .42s var(--ease-ui),translate .7s var(--ease-ui)}.is-open .scrap-2{transition-delay:.9s;animation:scrap-drift 5.6s var(--ease-in-out) 1.7s infinite alternate}.is-open .scrap-3{transition-delay:1.05s;animation:scrap-drift 6.4s var(--ease-in-out) 1.85s infinite alternate-reverse}.is-open .scrap-4{transition-delay:1.2s;animation:scrap-drift 5s var(--ease-in-out) 2s infinite alternate}.is-open .scrap-1{transition-delay:.8s}@keyframes scrap-drift{0%{rotate:-3deg}to{rotate:4deg}}.scrap-grid{fill:none;stroke:#a79d88;stroke-width:1.4;stroke-opacity:.7;stroke-linecap:round}.scrap{filter:drop-shadow(0 4px 5px #0009)}@media(max-width:900px){.home-pager .home-scene--end .contact-scene{width:100%;aspect-ratio:auto;padding:24cqw 5cqw 36cqw;-webkit-mask-image:none;mask-image:none}.scene-back,.scene-note,.scrap,.scene-front .scene-trail{display:none}.scene-front{inset:auto 0 0;height:auto;aspect-ratio:2000 / 1165}.contact-card{position:relative;left:auto;top:auto;width:100%;height:auto;padding:10cqw 5cqw 11cqw}.contact .contact-card h2{font-size:10.5cqw}.letter-rays{top:5cqw;right:4cqw;width:8cqw}.letter-intro{margin-top:5cqw}.letter-intro .letter-intro-copy{font-size:max(16px,5.4cqw)}.letter-rule{width:16cqw;margin:6cqw auto}.letter-actions{gap:5cqw}.letter-actions a{font-size:4.2cqw}.letter-linkedin{min-width:32cqw;padding:3cqw;border-radius:8px}.letter-eyebrow{left:6cqw;top:8cqw;font-size:11px}.scene-plane{left:auto;right:4cqw;top:6cqw;width:28cqw}.letter-socials{top:auto;bottom:6cqw;translate:none;gap:6cqw}.letter-socials a{font-size:14px;gap:9px}.letter-socials a svg:first-child{width:24px;height:24px}.letter-socials a svg:last-child{width:15px;height:15px}.letter-socials>span{height:22px}.footer.letter-footer{width:calc(100% - 40px);padding:19px 0 24px}.footer.letter-footer p,.letter-footer a{font-size:11px}}@media(prefers-reduced-motion:reduce){.mountain,.contact-card,.scrap,.scene-plane,.letter-eyebrow,.contact-card h2,.letter-rule,.letter-actions,.letter-socials,.scene-trail,.plane-rays{opacity:1;translate:none;transition:none;animation:none!important}.is-open .plane-body{animation:none}.letter-useful svg path,.letter-rays path,.scene-note>svg path{stroke-dashoffset:0;animation:none!important}}
