:root{--bg-pastel:#d0e8c8;--bg-pastel-light:#dff0d8;--bg-pastel-warm:#c5dfbb;--leaf-dark:#2d5a27;--leaf-mid:#3a7d32;--leaf-light:#4a9e3f;--text-primary:#1a2e1a;--text-secondary:#3d5c3d;--text-muted:#5a7a5a;--accent:#1e4d2b;--font-display:"Cormorant Garamond", Georgia, serif;--font-body:"Lora", Georgia, serif}*{box-sizing:border-box;margin:0;padding:0}html,body{width:100%;height:100%;overflow:hidden}@media (width<=768px){html,body{height:auto;overflow:auto}}body{font-family:var(--font-body);background:var(--bg-pastel);color:var(--text-primary);text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#root{width:100%;height:100%}.app{background:radial-gradient(ellipse at 20% 50%, var(--bg-pastel-light) 0%, transparent 50%), radial-gradient(ellipse at 80% 20%, var(--bg-pastel-warm) 0%, transparent 40%), radial-gradient(ellipse at 50% 80%, var(--bg-pastel-light) 0%, transparent 45%), var(--bg-pastel);width:100%;min-width:1200px;height:100vh;position:relative;overflow:hidden}.nav{z-index:20;flex-direction:column;align-items:flex-end;gap:14px;display:flex;position:fixed;top:40px;right:180px}.nav-link{font-family:var(--font-body);letter-spacing:.03em;color:var(--text-primary);cursor:pointer;opacity:0;background:0 0;border:none;padding:2px 0;font-size:1rem;font-weight:400;animation:.8s cubic-bezier(.22,1,.36,1) forwards fadeUp;position:relative;transform:translateY(12px)}.nav-link:after{content:"";background:var(--leaf-mid);transform-origin:100%;width:100%;height:1.5px;transition:transform .3s cubic-bezier(.22,1,.36,1);position:absolute;bottom:-2px;left:0;transform:scaleX(0)}.nav-link:hover:after{transform-origin:0;transform:scaleX(1)}.nav-link.active{color:var(--leaf-dark)}.nav-link.active:after{transform-origin:0;transform:scaleX(1)}.left-header{z-index:20;flex-direction:column;display:flex;position:fixed;top:40px;left:180px;right:180px}.site-name{font-family:var(--font-display);color:var(--text-primary);letter-spacing:.02em;opacity:0;font-size:1.95rem;font-weight:700;animation:.8s cubic-bezier(.22,1,.36,1) .2s forwards fadeUp;transform:translateY(12px)}.page-content{margin-top:130px}.section-label{font-family:var(--font-display);color:var(--leaf-mid);font-size:2.5rem;font-weight:900;line-height:1}.section-body{font-family:var(--font-body);color:var(--text-primary);margin-top:16px;font-size:1rem;line-height:1.6}.section-body p{margin:8px 0}.section-body a{color:var(--leaf-dark);border-bottom:1px solid #0000;text-decoration:none;transition:border-color .3s}.section-body a:hover{border-bottom-color:var(--leaf-mid)}.work-entry+.work-entry{margin-top:24px}.work-entry{opacity:0;margin-top:16px;animation:.8s cubic-bezier(.22,1,.36,1) .7s forwards fadeUp;transform:translateY(12px)}.work-date{font-family:var(--font-body);color:var(--text-muted);margin:0;font-size:.95rem;font-weight:500}.work-role{font-family:var(--font-body);color:var(--text-primary);margin:4px 0 0;font-size:1.05rem;font-weight:400}.work-bullets{font-family:var(--font-body);color:var(--text-secondary);margin:8px 0 0;padding-left:20px;font-size:.95rem;list-style-type:disc}.work-bullets li{margin-top:4px}.contact-link{color:var(--leaf-dark);cursor:pointer;border-bottom:1px solid var(--leaf-mid);font-weight:700;text-decoration:none}.contact-link:hover{border-bottom-color:var(--leaf-dark)}.social-links{z-index:20;opacity:0;gap:16px;animation:.8s cubic-bezier(.22,1,.36,1) .9s forwards fadeUp;display:flex;position:fixed;bottom:40px;left:180px;transform:translateY(12px)}.social-links a{color:var(--text-muted);transition:color .3s;display:flex}.social-links a:hover{color:var(--leaf-dark)}@keyframes fadeUp{to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{to{opacity:.6}}@media (width<=768px){.app{min-width:unset;height:auto;min-height:100vh;overflow:auto}.left-header{top:unset;left:unset;right:unset;padding:100px 24px 40px;position:relative}.page-content{margin-top:32px}.nav{top:20px;right:24px;left:unset;flex-direction:row;gap:16px;position:fixed}.nav-link{font-size:.9rem}.social-links{bottom:unset;left:unset;padding:40px 24px;position:relative}.section-label{font-size:2rem}.site-name{font-size:1.5rem}}
