@import"https://fonts.googleapis.com/css2?family=EB+Garamond:ital,wght@0,400..800;1,400..800&family=Lora:ital,wght@0,400..700;1,400..700&family=Newsreader:ital,opsz,wght@0,6..72,400..700;1,6..72,400..700&family=Plus+Jakarta+Sans:wght@400;500;600;700&display=swap";:root{--primary-font: "Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--heading-font: "EB Garamond", "Newsreader", "Lora", Georgia, serif;--serif-font: "EB Garamond", "Newsreader", "Lora", Georgia, serif;--hand-font: "EB Garamond", "Newsreader", "Lora", Georgia, serif;--parchment: #ffffff;--space-indigo: #121212;--dusty-grape: #222222;--lilac-ash: #444444;--almond-silk: #e8e8e8;--bg-color: #ffffff;--text-color: #121212;--accent-color: #121212;--accent-hover: #444444;--light-gray: #f0f0f0;--border-color: #121212;--border-radius: 4px;--border-radius-lg: 8px;--sketch-border: 2px solid #121212;--sketch-shadow: none;--sketch-shadow-lg: none;--sketch-radius: 8px;--sketch-radius-alt: 8px;--sketch-radius-sm: 4px;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{margin:0;padding:0;box-sizing:border-box}body{margin:0;font-family:var(--primary-font);font-size:1.05rem;line-height:1.6;color:var(--text-color);background-color:#fff;min-width:320px;overflow-x:hidden}html{scroll-behavior:smooth}h1,h2,h3,h4,h5,h6{font-family:var(--heading-font);font-weight:600;line-height:1.2;color:var(--space-indigo);letter-spacing:-.015em}h1{font-size:3.5rem}h2{font-size:2.5rem}h3{font-size:1.85rem}a{color:var(--accent-color);text-decoration:underline;text-decoration-style:solid;text-decoration-thickness:1px;text-underline-offset:3px;transition:all .2s ease}a:hover{color:var(--accent-hover)}.app{width:100%;overflow-x:clip}.main-content{margin-left:0;width:100%}.hero{height:100vh;min-height:100vh;padding:0 4rem;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;background-color:transparent}.hero-content{display:flex;flex-direction:row;align-items:center;justify-content:center;z-index:10;color:var(--text-color);gap:4.5rem;max-width:1100px;width:100%;margin:0 auto;padding:0;background:transparent;border:none;box-shadow:none}.hero-avatar-container{position:relative;display:block;flex-shrink:0}.hero-avatar-wrapper{position:relative;display:block;width:380px;height:480px;border-radius:var(--sketch-radius-alt);border:none;overflow:hidden;background-color:#fff;cursor:pointer}.hero-click-label{position:absolute;z-index:10;padding:.65rem .95rem;border:2px solid #121212;border-radius:var(--sketch-radius, 8px);box-shadow:3px 3px #121212;background-color:#f0f4ff;text-decoration:none;color:inherit;display:block;min-width:100px;text-align:center;opacity:0;pointer-events:none;transform:scale(.9) translateY(6px) rotate(-3deg);transition:opacity .25s cubic-bezier(.4,0,.2,1),transform .25s cubic-bezier(.4,0,.2,1),box-shadow .2s ease;top:-14px;left:-12px}.hero-avatar-container:hover .hero-click-label{opacity:1;transform:scale(1) translateY(0) rotate(-3deg)}.hero-click-label .callout-tape{font-family:var(--heading-font);font-size:1.15rem;font-weight:600;color:var(--space-indigo);line-height:1.15}.hero-title-wrapper{display:flex;flex-direction:column;align-items:flex-start;text-align:left;gap:1rem;flex-grow:1}.hero-name{font-size:4.8rem;margin-bottom:0rem;line-height:1;font-family:var(--heading-font);font-weight:700;color:var(--space-indigo);padding-bottom:.3rem}.hero-tagline{font-size:1.85rem;margin:0;color:var(--dusty-grape);font-family:var(--heading-font);font-style:italic;font-weight:500;letter-spacing:.01em}@media(max-width:900px){.hero{padding:2rem 1.5rem;height:auto;min-height:100vh}.hero-content{flex-direction:column;text-align:center;gap:2rem}.hero-avatar-wrapper{width:280px;height:350px}.hero-title-wrapper{align-items:center;text-align:center}.hero-name{font-size:3.5rem}.hero-tagline{font-size:1.4rem}}.poly-image-container{position:relative;display:inline-block;width:100%;height:100%;overflow:hidden;border-radius:inherit;transform:translateZ(0);contain:layout paint;cursor:pointer}.poly-real-img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;opacity:0;z-index:1;pointer-events:none;transition:opacity .6s cubic-bezier(.4,0,.2,1);transform:translateZ(0)}.poly-real-img.visible{opacity:1}.poly-image-svg{position:relative;width:100%;height:100%;display:block;z-index:2;shape-rendering:crispEdges;transition:opacity .6s cubic-bezier(.4,0,.2,1);transform:translateZ(0);will-change:opacity}.poly-image-svg.hidden{opacity:0;pointer-events:none}.poly-image-triangle,.poly-image-svg path,.poly-image-svg polygon{stroke-width:.5;stroke-linejoin:round;stroke-linecap:round;opacity:1;pointer-events:auto;cursor:pointer;transition:opacity .35s cubic-bezier(.4,0,.2,1),filter .2s cubic-bezier(.4,0,.2,1)}.poly-image-triangle.is-hovered{filter:brightness(1.35)!important}.poly-image-triangle.is-neighbor{filter:brightness(1.15)!important}.poly-image-triangle.is-neighbor-tier2{filter:brightness(1.05)!important}.poly-image-triangle.is-dissolved{opacity:0!important;transform:none!important;pointer-events:none;transition:opacity .35s cubic-bezier(.4,0,.2,1)!important}.poly-image-container.scale-hover{transition:transform .3s cubic-bezier(.4,0,.2,1)}.poly-image-container.scale-hover:hover{transform:scale(1.02)}.content-container{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;max-width:900px;margin:0 auto;padding:3rem 2rem;position:relative}.content-sections{width:100%;margin:0 auto}.content-section{margin-bottom:4.5rem}.content-section:last-child{margin-bottom:0}.content-section h2{font-size:2.5rem;margin-bottom:1.25rem;color:#121212;font-family:var(--heading-font);padding-left:0;border-bottom:2.5px solid #121212;display:inline-block;padding-bottom:.2rem}.tldr-section{margin-bottom:3.5rem}.tldr-body-text{font-family:Plus Jakarta Sans,sans-serif;font-size:1.18rem;line-height:1.7;color:#1a1a1a;max-width:780px;margin-bottom:1.5rem}.tldr-body-text p{margin:0}.tldr-body-text strong{color:#121212;font-weight:700}.tldr-actions{display:flex;flex-direction:row;align-items:center;gap:1rem}.tldr-resume-btn{font-family:var(--primary-font);font-size:.95rem;font-weight:600;color:#121212;background:#fff;border:1.5px solid #121212;border-radius:6px;padding:.45rem 1.1rem;text-decoration:none;display:inline-flex;align-items:center;gap:.4rem;transition:transform .2s cubic-bezier(.4,0,.2,1),background-color .2s ease;transform:rotate(-1deg)}.tldr-resume-btn:hover{transform:translate(-3px,-3px) rotate(0);background-color:#f0f4ff}.work-timeline-container{width:100%;position:relative;padding:.5rem 0}.work-timeline{position:relative;display:flex;flex-direction:column;gap:3rem}.timeline-spine{position:absolute;top:0;bottom:0;left:28px;width:3px;border-left:2px dashed #121212;z-index:1}.timeline-item{position:relative;display:flex;flex-direction:row;align-items:flex-start;z-index:2;width:100%}.timeline-node{position:absolute;left:28px;top:1.1rem;transform:translate(-50%);z-index:4}.timeline-node-pin{position:relative;width:56px;height:56px;background-color:#fff;border:2px solid #121212;border-radius:50%;display:flex;align-items:center;justify-content:center;overflow:hidden;transition:transform .25s cubic-bezier(.4,0,.2,1)}.timeline-logo-img{width:100%;height:100%;object-fit:contain;background-color:#fff}.timeline-item:hover .timeline-node-pin{transform:scale(1.1) rotate(-4deg)}.timeline-card-wrapper{position:relative;margin-left:72px;width:calc(100% - 72px)}.work-card{display:flex;flex-direction:column;padding:1.35rem 1.5rem;background-color:#fff;border:var(--sketch-border);border-radius:var(--sketch-radius);transition:transform .2s cubic-bezier(.4,0,.2,1)}.work-card.alt-radius{border-radius:var(--sketch-radius-alt)}.work-card:hover{transform:translate(-3px,-3px)}.work-card-header{display:flex;flex-direction:column;gap:.15rem}.work-header-top{display:flex;flex-direction:row;align-items:baseline;justify-content:space-between;gap:1rem;flex-wrap:wrap}.work-header-top h3{font-size:1.65rem;margin:0;color:var(--space-indigo);font-family:var(--heading-font);font-weight:600;line-height:1.15}.work-date{font-family:var(--primary-font);font-size:.95rem;font-weight:500;color:var(--dusty-grape);white-space:nowrap}.work-card-header h4{font-size:1.25rem;margin:0;color:var(--dusty-grape);font-family:var(--heading-font);font-style:italic;font-weight:500}.work-details{margin:.75rem 0 0;padding-left:1.15rem;color:var(--text-color);line-height:1.55;font-size:.95rem;font-family:var(--primary-font)}.work-details li{margin-bottom:.4rem}.work-details strong{color:#121212;font-weight:700}.work-card-footer{display:flex;flex-direction:row;justify-content:space-between;align-items:center;margin-top:.75rem;padding-top:.6rem;border-top:1.5px dashed #121212;gap:.4rem;flex-wrap:wrap}.timeline-tech-tags{display:flex;flex-wrap:wrap;gap:.35rem}.tech-tag{font-family:var(--primary-font);font-size:.8rem;font-weight:600;padding:.15rem .55rem;background:#fff;border:1.5px solid #121212;border-radius:12px;color:var(--space-indigo)}@media(max-width:640px){.timeline-spine,.timeline-node{left:20px}.timeline-node-pin{width:46px;height:46px}.timeline-card-wrapper{margin-left:56px;width:calc(100% - 56px)}.work-card{padding:1.25rem}}.interests-container{width:100%;position:relative;padding:1.5rem .5rem 2rem}.interests-photo-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:2.75rem 2rem;width:100%;align-items:stretch}.photo-grid-item{position:relative;width:100%;display:flex;flex-direction:column;cursor:pointer;transition:transform .25s cubic-bezier(.4,0,.2,1)}.photo-grid-item:hover{transform:translateY(-4px)}.interest-photo-frame{width:100%;aspect-ratio:4 / 3;border-radius:var(--sketch-radius-alt, 8px);overflow:hidden;background:#fff;position:relative;box-shadow:0 4px 12px #0000000a;transition:box-shadow .25s cubic-bezier(.4,0,.2,1)}.photo-grid-item:hover .interest-photo-frame{box-shadow:0 8px 24px #00000014}.photo-callout-label{position:absolute;z-index:10;padding:.65rem .95rem;border:2px solid #121212;border-radius:var(--sketch-radius, 8px);box-shadow:3px 3px #121212;text-decoration:none;color:inherit;display:block;max-width:250px;min-width:170px;opacity:0;pointer-events:none;transform:scale(.9) translateY(6px) rotate(0);transition:opacity .25s cubic-bezier(.4,0,.2,1),transform .25s cubic-bezier(.4,0,.2,1),box-shadow .2s ease}.photo-callout-label.visible{opacity:1;pointer-events:auto;transform:scale(1) translateY(0) rotate(var(--callout-rot, -2deg))}.photo-callout-label:hover{box-shadow:4px 4px #121212;transform:scale(1.03) translateY(-2px) rotate(var(--callout-rot, -2deg))}.photo-callout-label.corner-top-right{top:-14px;right:-12px}.photo-callout-label.corner-top-left{top:-14px;left:-12px}.photo-callout-label.corner-bottom-right{bottom:-14px;right:-12px}.photo-callout-label.corner-bottom-left{bottom:-14px;left:-12px}.callout-tape{font-family:var(--heading-font);font-size:1.25rem;font-weight:600;color:var(--space-indigo);line-height:1.15}.callout-text{font-family:var(--primary-font);font-size:.88rem;font-weight:500;color:var(--dusty-grape);margin:.2rem 0 0;line-height:1.3}@media(max-width:640px){.interests-container{padding:1.25rem .25rem 2rem}.interests-photo-grid{grid-template-columns:1fr;gap:2.5rem}.photo-callout-label{max-width:220px;min-width:150px;padding:.55rem .8rem}.photo-callout-label.corner-top-right,.photo-callout-label.corner-bottom-right{right:0}.photo-callout-label.corner-top-left,.photo-callout-label.corner-bottom-left{left:0}.callout-tape{font-size:1.15rem}.callout-text{font-size:.82rem}}.color-reveal-container{display:block;background-color:#fff;border-radius:var(--sketch-radius);filter:grayscale(100%) contrast(calc(var(--base-contrast, 1.2) * 100%));transition:filter var(--reveal-duration, .4s) cubic-bezier(.4,0,.2,1),background-color var(--reveal-duration, .4s) cubic-bezier(.4,0,.2,1),transform .2s cubic-bezier(.4,0,.2,1);will-change:filter,background-color,transform}.color-reveal-container:hover,.color-reveal-container.is-revealed{filter:grayscale(0%) contrast(100%)}.color-reveal-container.subtle-mode.is-revealed{border-color:#121212}.color-reveal-container.scale-on-hover:hover{transform:scale(1.02)}.contact-links-retro{display:flex;justify-content:center;width:100%;gap:2rem;margin-top:1.5rem;opacity:0;transform:translateY(20px);transition:all .8s cubic-bezier(.4,0,.2,1)}.contact-links-retro.visible{opacity:1;transform:translateY(0)}.contact-link-retro{display:flex;flex-direction:column;align-items:center;gap:.75rem;background:#fff;border:var(--sketch-border);border-radius:var(--sketch-radius-alt);padding:1.5rem 2.25rem;text-decoration:none;transition:all .2s ease;color:#121212;min-width:150px}.contact-link-retro:hover{transform:translate(-3px,-3px)}.contact-link-retro svg{font-size:2.2rem}.contact-link-retro span{font-family:var(--heading-font);font-size:1.2rem}@media(max-width:768px){.contact-links-retro{flex-direction:column;align-items:stretch;width:100%;gap:1rem}.contact-links-retro .color-reveal-container{width:100%}.contact-link-retro{width:100%;max-width:100%;flex-direction:row;justify-content:center;gap:1rem;padding:1.1rem 1.5rem}.contact-link-retro svg{font-size:1.6rem}.contact-link-retro span{font-size:1.15rem}}.side-navigation{position:fixed;top:50%;left:40px;transform:translateY(-50%);display:flex;flex-direction:column;align-items:flex-start;gap:1.5rem;z-index:100}.nav-chevron{background:transparent;border:none;color:#121212;font-size:1.3rem;cursor:pointer;padding:.5rem;display:flex;align-items:center;justify-content:center;transition:transform .2s cubic-bezier(.4,0,.2,1),opacity .2s ease;opacity:.4}.nav-chevron:not(:disabled):hover{transform:scale(1.2);opacity:1}.nav-chevron:disabled{opacity:.1;cursor:default}@media(max-width:1100px){.side-navigation{display:none}}.background-effect{position:fixed;top:0;right:0;bottom:0;left:0;width:100vw;height:100vh;pointer-events:none;z-index:-1;overflow:hidden;background-color:#fff}.background-grid-base{position:absolute;top:0;right:0;bottom:0;left:0;background-image:radial-gradient(circle,rgba(18,18,18,.075) 1px,transparent 1px);background-size:28px 28px;background-position:0 var(--scroll-y, 0px);opacity:.6;will-change:background-position}.background-grid-spotlight{position:absolute;top:0;right:0;bottom:0;left:0;background-image:radial-gradient(circle,rgba(18,18,18,.22) 1.2px,transparent 1.2px);background-size:28px 28px;background-position:0 var(--scroll-y, 0px);will-change:background-position;mask-image:radial-gradient(320px circle at var(--mouse-x, -500px) var(--mouse-y, -500px),black 0%,rgba(0,0,0,.4) 45%,transparent 80%);-webkit-mask-image:radial-gradient(320px circle at var(--mouse-x, -500px) var(--mouse-y, -500px),black 0%,rgba(0,0,0,.4) 45%,transparent 80%);transition:opacity .3s ease;opacity:1}
