:root{--warm-brown: #7A6141;--muted-green: #5A6F5D;--soft-gray: #5A5A5A;--light-gray: #E8E6E1;--cream: #F9F7F4;--dark-text: #2C2C2C;--topo-line: rgba(90, 111, 93, .25)}*{margin:0;padding:0;box-sizing:border-box}body{font-family:IBM Plex Sans,-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif;background:var(--cream);color:var(--dark-text);line-height:1.6}.topo-background{position:fixed;top:0;left:0;width:100%;height:100%;z-index:0;opacity:.4;pointer-events:none}.topo-background.interactive{pointer-events:auto;cursor:crosshair}#topoCanvas{display:block;width:100%;height:100%}.container{position:relative;z-index:1;max-width:800px;margin:0 auto;padding:60px 40px}nav{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;row-gap:8px;margin-bottom:80px;padding:20px 0}nav .logo{font-size:18px;font-weight:600;color:var(--soft-gray);letter-spacing:-.5px;text-decoration:none}nav .logo:hover{color:var(--muted-green)}nav ul{display:flex;gap:32px;list-style:none}nav a{display:inline-flex;align-items:center;min-height:44px;color:var(--soft-gray);text-decoration:none;font-size:15px;font-weight:500;transition:all .3s ease;padding:8px 16px;border-radius:6px}nav a:hover{color:var(--muted-green);background:color-mix(in oklch,var(--muted-green) 8%,transparent)}nav a.active{color:var(--muted-green);background:color-mix(in oklch,var(--muted-green) 15%,transparent);font-weight:600}.hero{margin-bottom:48px}.hero h1{font-size:clamp(2.5rem,2rem + 2.5vw,3.5rem);font-weight:700;color:var(--dark-text);margin-bottom:24px;line-height:1.1;letter-spacing:-1px}.hero .subtitle{font-size:clamp(1.25rem,1rem + 1vw,1.5rem);color:var(--warm-brown);margin-bottom:32px;font-weight:500}.hero .description{font-size:18px;color:var(--soft-gray);line-height:1.8;max-width:640px}.hero-header{display:flex;align-items:flex-end;flex-wrap:wrap;gap:16px 20px;margin-bottom:24px}.hero-header h1{margin-bottom:0}.download-link{padding:5px 12px;color:var(--muted-green);border:1px solid var(--muted-green);border-radius:4px;text-decoration:none;font-size:13px;font-weight:500;white-space:nowrap;transition:all .3s ease}.download-link:hover{background:color-mix(in oklch,var(--muted-green) 12%,transparent)}section{margin-bottom:100px}section h2{font-size:clamp(1.75rem,1.25rem + 2vw,2.25rem);color:var(--dark-text);margin-bottom:32px;font-weight:700;letter-spacing:-.5px}section h3{font-size:22px;color:var(--muted-green);margin-bottom:12px;font-weight:600}section p{font-size:17px;color:var(--soft-gray);line-height:1.8;margin-bottom:20px}.experience-item,.project-item{margin-bottom:48px;padding-bottom:48px;border-bottom:1px solid color-mix(in oklch,var(--muted-green) 15%,transparent)}.experience-item:last-child,.project-item:last-child{border-bottom:none;padding-bottom:0;margin-bottom:0}.experience-item .meta,.project-item .meta{font-size:14px;color:var(--warm-brown);margin-bottom:8px;font-family:IBM Plex Mono,ui-monospace,SF Mono,Menlo,monospace}.experience-item ul{margin-left:24px;margin-top:16px}.experience-item li{color:var(--soft-gray);margin-bottom:8px;font-size:16px}.project-item{margin-bottom:32px;padding-bottom:32px}.project-item h3 a{color:var(--muted-green);text-decoration:none;transition:color .3s ease}.project-item h3 a:after{content:" →";display:inline-block;font-size:.85em;opacity:.4;transition:transform .3s ease,opacity .3s ease}.project-item h3 a:hover{color:var(--warm-brown)}.project-item h3 a:hover:after{transform:translate(4px);opacity:.7}.project-item .excerpt{color:var(--soft-gray);font-size:16px;line-height:1.7}.year-group{margin-bottom:48px}.year-group h2{font-size:28px;color:var(--warm-brown);margin-bottom:24px;font-weight:600}.contact-links{display:flex;gap:24px;margin-top:32px}.contact-links a{color:var(--muted-green);text-decoration:none;font-size:16px;font-weight:500;transition:color .3s ease}.contact-links a:hover{color:var(--warm-brown)}footer{text-align:center;padding:40px 0;color:var(--soft-gray);font-size:14px}.interaction-hint{position:fixed;bottom:24px;right:24px;background:color-mix(in oklch,var(--cream) 95%,transparent);backdrop-filter:blur(10px);padding:16px 20px;border-radius:8px;font-size:13px;color:var(--soft-gray);box-shadow:0 4px 12px color-mix(in oklch,var(--dark-text) 12%,transparent);transition:opacity .3s ease;z-index:100}.interaction-hint.hidden{opacity:0;pointer-events:none}.interaction-hint strong{color:var(--muted-green)}.interaction-hint .hint-mobile{display:none}.skip-link{position:fixed;top:16px;left:16px;background:var(--cream);color:var(--dark-text);padding:10px 16px;border:2px solid var(--muted-green);border-radius:6px;text-decoration:none;font-weight:600;font-size:14px;z-index:9999;transform:translateY(-150%);transition:transform .2s ease}.skip-link:focus-visible{transform:translateY(0);outline:none;box-shadow:0 0 0 3px color-mix(in oklch,var(--muted-green) 25%,transparent)}a:focus-visible,button:focus-visible{outline:2px solid var(--muted-green);outline-offset:3px;border-radius:4px}@media(max-width:768px){.container{padding:40px 24px}nav ul{gap:8px}nav a{font-size:14px;padding:8px 12px}.interaction-hint{left:16px;right:16px;bottom:16px;padding:12px 16px;font-size:12px;text-align:center}.interaction-hint .hint-desktop{display:none}.interaction-hint .hint-mobile{display:inline}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
