:root{--timeline-accent: var(--interactive-color, #799C49);--timeline-accent-light: color-mix(in srgb, var(--timeline-accent) 60%, white);--timeline-accent-glow: color-mix(in srgb, var(--timeline-accent) 20%, transparent);--timeline-sidebar-width: 200px;--timeline-mobile-header-height: 4px;--timeline-sticky-offset: 60px}.desktop-only{display:none}.mobile-only{display:block}@media (min-width: 1024px){.desktop-only{display:block}.mobile-only{display:none}}.new-timeline-wrapper{position:relative;background:var(--bg-color);padding:var(--space-2xl) 0 0 0}.timeline-container{position:relative;width:100%;max-width:var(--container-max-width);margin:0 auto;padding:0;display:flex;flex-direction:column}@media (min-width: 1024px){.timeline-container{display:flex;flex-direction:column}}.timeline-chapter{position:relative;margin-bottom:var(--space-2xl);padding:0 var(--space-sm);contain:layout style}@media (min-width: 768px){.timeline-chapter{padding:0 var(--space-md)}}.timeline-chapter:last-child{margin-bottom:0}.chapter-header{position:sticky;top:0;background:var(--bg-color);padding:var(--space-md) 0;margin-bottom:var(--space-md);border-bottom:1px solid var(--border-color);z-index:15;backdrop-filter:blur(10px);background:color-mix(in srgb,var(--bg-color) 95%,transparent)}.chapter-title{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:var(--weight-bold);color:var(--text-color);line-height:1.2;margin:0 0 var(--space-xs) 0}@media (min-width: 1024px){.chapter-title{font-size:var(--text-3xl)}}.chapter-meta{display:flex;align-items:center;gap:var(--space-sm)}.chapter-years{font-size:var(--text-sm);color:var(--text-light);font-weight:var(--weight-medium)}.chapter-description{margin-bottom:var(--space-lg)}.chapter-description p{font-size:var(--text-sm);line-height:1.65;color:var(--text-color);opacity:.5;margin:0}.projects-container{display:flex;flex-direction:column;gap:var(--space-md);width:100%;margin:0}@media (min-width: 768px){.projects-container{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-lg) var(--space-md)}}.project-card{position:relative;background:transparent;border:none;border-radius:0;overflow:hidden;transition:none;contain:layout style paint;padding:0;width:100%}.project-image-container{position:relative;width:100%;padding-top:56.25%;background:#fafafa;overflow:hidden;border-radius:var(--border-radius);border:1px solid rgba(0,0,0,.04)}.project-image{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;background-color:#fafafa;filter:contrast(.92) brightness(1.01)}.project-content{padding:var(--space-sm) 0;position:relative}.project-title{font-family:var(--font-body);font-size:var(--text-base);font-weight:600;margin-bottom:var(--space-xs);color:var(--text-color);line-height:1.4;letter-spacing:-.01em;text-align:center}.project-metadata{text-align:center;margin-bottom:var(--space-sm);font-family:var(--font-mono);font-size:var(--text-xs);font-weight:400;color:var(--text-color);opacity:.6;letter-spacing:.02em}.project-company{font-weight:var(--weight-medium);color:var(--text-color)}.project-year{font-weight:var(--weight-medium)}.metadata-divider{margin:0 var(--space-xs);color:var(--text-color);opacity:.4;font-weight:300}.project-type{font-size:var(--text-xs);font-weight:var(--weight-medium);text-transform:capitalize;letter-spacing:.01em}.project-description{margin:0}.project-description p{font-family:var(--font-body);font-size:var(--text-sm);color:var(--text-color);line-height:1.65;font-weight:400;opacity:.9;letter-spacing:.01em;margin:0}.project-description a{color:var(--timeline-accent);text-decoration:underline;text-decoration-color:var(--timeline-accent-light);text-underline-offset:2px;transition:all var(--transition-fast)}.project-description a:hover{text-decoration-color:var(--timeline-accent);color:color-mix(in srgb,var(--timeline-accent) 80%,black)}.scroll-to-top{position:fixed;bottom:var(--space-lg);right:var(--space-lg);width:48px;height:48px;background:var(--timeline-accent);border:none;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 20px color-mix(in srgb,var(--timeline-accent) 25%,transparent);transition:all var(--transition);z-index:50;opacity:0;visibility:hidden;transform:translateY(20px)}.scroll-to-top.visible{opacity:1;visibility:visible;transform:translateY(0)}.scroll-to-top:hover{transform:translateY(-2px);box-shadow:0 6px 25px color-mix(in srgb,var(--timeline-accent) 35%,transparent)}.scroll-to-top svg{width:20px;height:20px;color:#fff}@media (prefers-reduced-motion: reduce){*{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.scroll-to-top,.project-card:hover,.project-image,.project-card:hover .project-image{transform:none!important}}@media (prefers-reduced-motion: no-preference){.scroll-to-top:focus{outline:2px solid var(--timeline-accent);outline-offset:2px}}.project-card,.scroll-to-top{will-change:transform}.project-card:not(:hover),.scroll-to-top:not(.visible){will-change:auto}.project-card{contain:layout style paint}.timeline-chapter{contain:layout style}:root{--secondary-color: #799C49;--interactive-color: #799C49;--text-color: #1f2937;--text-light: #6b7280;--bg-color: #ffffff;--border-color: #e9ecef;--font-display: "Syne", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;--font-body: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;--font-mono: "SF Mono", Monaco, "Cascadia Code", "Courier New", monospace;--weight-light: 300;--weight-normal: 400;--weight-medium: 500;--weight-bold: 700;--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-lg: 1.125rem;--text-xl: 1.25rem;--text-2xl: 1.5rem;--text-3xl: 1.875rem;--text-4xl: 2.25rem;--text-5xl: 3rem;--text-6xl: 3.75rem;--text-7xl: 4.25rem;--text-hero-responsive: clamp(var(--text-5xl), 6vw, var(--text-7xl));--text-display-responsive: clamp(var(--text-3xl), 4vw, var(--text-4xl));--text-heading-responsive: clamp(var(--text-2xl), 3vw, var(--text-3xl));--space-xs: .5rem;--space-sm: 1rem;--space-md: 2rem;--space-lg: 3rem;--space-xl: 4rem;--space-2xl: 6rem;--space-3xl: 8rem;--space-4xl: 12rem;--container-max-width: 1200px;--border-radius: 8px;--transition: all .3s cubic-bezier(.4, 0, .2, 1);--transition-fast: all .15s ease-out}*,*:before,*:after{box-sizing:border-box}*{margin:0;padding:0}html{scroll-behavior:smooth;scroll-padding-top:2rem}body{font-family:var(--font-body);font-size:var(--text-base);line-height:1.6;color:var(--text-color);background-color:var(--bg-color);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-feature-settings:"liga" 1,"kern" 1}img,picture,video,canvas,svg{display:block;max-width:100%;height:auto}input,button,textarea,select{font:inherit}p,h1,h2,h3,h4,h5,h6{overflow-wrap:break-word}.portfolio-container{max-width:var(--container-max-width);margin:0 auto;padding:0 var(--space-sm)}@media (min-width: 768px){.portfolio-container{padding:0 var(--space-md)}}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.color-placeholder{position:fixed;inset:0;background:#fff;z-index:-1;transition:var(--transition)}.hero{position:relative;min-height:100vh;display:flex;align-items:center;justify-content:center;text-align:center;overflow:hidden}#canvas-container{top:0;position:relative;width:100vw;height:100vh}.hero-animation{position:absolute;inset:0;z-index:1}#main-text{position:absolute;top:50%;left:50%;width:90%;transform:translate(-50%,-50%);text-align:center;pointer-events:none;z-index:10}#main-text h1{font-family:var(--font-display);font-size:var(--text-hero-responsive);line-height:1;margin:0;font-weight:500;transition:color 3s ease;color:var(--hero-text-color, var(--text-color));font-optical-sizing:auto;letter-spacing:-.02em}#main-text h2{font-family:var(--font-body);font-size:var(--text-xl);margin:10px 0;font-weight:400;opacity:.8;transition:color 3s ease;padding:0 20px;color:var(--hero-text-color, var(--text-color));letter-spacing:.01em}@media (max-width: 480px){#main-text h1 span{display:block}}.click-hint{position:absolute;bottom:20px;left:50%;transform:translate(-50%);font-family:var(--font-body);font-size:var(--text-sm);font-weight:400;cursor:pointer;z-index:10;transition:color .3s ease;white-space:nowrap;padding:0 10px;color:var(--hero-text-color-dim, rgba(55, 64, 42, .6));letter-spacing:.01em}.click-hint:hover{color:var(--hero-text-color, rgba(255, 255, 255, .9))}@media (max-width: 480px){.click-hint{top:20px;bottom:auto;left:50%;transform:translate(-50%);text-align:center}#canvas-container{height:calc(100vh - 40px)}.hero{min-height:calc(100vh - 40px)}}.about-section{background:var(--bg-color);padding:var(--space-4xl) 0 var(--space-xl) 0}.tldr-note{padding-top:var(--space-md);padding-right:var(--space-md)}.intro-large{font-family:var(--font-display);font-size:var(--text-display-responsive);font-weight:400;font-optical-sizing:auto;line-height:1.3;margin:0;color:var(--text-color);max-width:85%;letter-spacing:-.01em}.highlight{color:var(--secondary-color);font-weight:600}.description-flow{font-size:var(--text-lg);line-height:1.6;color:var(--text-light);margin:0;max-width:100%;font-weight:300}@media (min-width: 768px){.description-flow{margin-left:20%;max-width:70%}}.skills-editorial{text-align:center;font-family:var(--font-display);font-size:var(--text-base);font-optical-sizing:auto;line-height:1.8;margin:0;max-width:100%;color:var(--text-color);letter-spacing:-.01em}.skill-major{font-weight:400;color:var(--text-color);display:inline-block}.skill-standard{font-weight:400;color:var(--text-light);display:inline-block}.skill-minor{font-weight:200;color:var(--text-light);opacity:.8;display:inline-block}.skill-bullet{margin:0 .75rem;color:var(--text-light);opacity:.4;font-weight:300;font-size:.9em;display:inline-block}.contact-minimal{margin:0 var(--space-lg) var(--space-lg) var(--space-lg);display:flex;justify-content:space-between;gap:var(--space-sm)}.contact-minimal a{font-family:var(--font-display);color:var(--interactive-color);text-decoration:none;font-size:var(--text-2xl);font-weight:500;font-optical-sizing:auto;position:relative;transition:all .2s ease-out;letter-spacing:-.01em}@media (max-width: 767px){.contact-minimal{flex-direction:column;align-items:center}}.journey-question-section{background:var(--bg-color);padding:var(--space-2xl) 0}.journey-question{font-family:var(--font-display);font-size:var(--text-3xl);font-weight:400;font-optical-sizing:auto;line-height:1.3;margin:0;color:var(--text-color);max-width:85%;letter-spacing:-.01em}@media (min-width: 768px){.journey-question{font-size:var(--text-4xl)}}.bottom-info-section{background:var(--bg-color);padding:0 0 var(--space-2xl) 0}.bottom-info-section .skills-editorial{margin:0}.bottom-info-section .contact-minimal{margin-top:var(--space-lg)}a{color:var(--interactive-color);text-decoration:none;position:relative;transition:all .2s ease-out;font-weight:500}a:after{content:"";position:absolute;width:0;height:1px;bottom:-1px;left:0;background-color:var(--interactive-color);transition:width .3s ease-out}a:hover:after{width:100%}a:hover{color:var(--interactive-color);transform:translateY(-1px)}a:focus{outline:none}a:active{transform:translateY(0)}a[target=_blank]:before{content:"";display:inline-block;width:.8em;height:.8em;margin-right:.2em;background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHZpZXdCb3g9IjAgMCAxMiAxMiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0ibTMgOSA3LTdtMCAwLTMuNS0uNW0zLjUuNVY1LjUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjEuNSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+Cjwvc3ZnPgo=);background-size:contain;background-repeat:no-repeat;opacity:.6;vertical-align:baseline}.slide-out-left{transform:translate(-100%);opacity:0}.slide-out-right{transform:translate(100%);opacity:0}.slide-in-left,.slide-in-right{transform:translate(0);opacity:1}.content-transitioning-out{pointer-events:none}.content-transitioning-in{pointer-events:auto}.container{width:100%;max-width:var(--container-max-width);margin:0 auto;padding:0 var(--space-sm)}@media (min-width: 768px){.container{padding:0 var(--space-md)}}::-webkit-scrollbar{width:10px;height:0px}::-webkit-scrollbar-track-piece{background:#dcdcdc}::-webkit-scrollbar-thumb:vertical{height:6px;background-color:#666;-webkit-border-radius:6px;border-radius:6px}
