:root{--color-background:#fafafa;--color-text:#2d2d2d;--color-accent:#1a1a1a;--color-subtle:#e5e5e5;--color-link:#4a5568;--font-body:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--font-heading:"Inter",var(--font-body);--width-content:720px;--spacing-small:16px;--spacing-medium:32px;--spacing-large:64px}[data-theme=dark]{--color-background:#1a1a1a;--color-text:#e8e8e8;--color-accent:#f0f0f0;--color-subtle:#2e2e2e;--color-link:#90a4ae}.theme-toggle{border:1px solid var(--color-subtle);cursor:pointer;width:36px;height:36px;color:var(--color-text);background:0 0;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;margin-left:auto;font-size:1.1rem;display:flex}.theme-toggle:hover{border-color:var(--color-link)}.theme-transition,.theme-transition *,.theme-transition :before,.theme-transition :after{transition:background-color .3s,color .3s,border-color .3s!important}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;font-size:18px}body{font-family:var(--font-body);color:var(--color-text);background-color:var(--color-background);line-height:1.7}h1{font-family:var(--font-heading);color:var(--color-accent);margin-bottom:var(--spacing-small);letter-spacing:-.02em;font-size:2.5rem;font-weight:600}h2{font-family:var(--font-heading);color:var(--color-accent);margin-bottom:var(--spacing-small);font-size:1.5rem;font-weight:600}p{max-width:65ch;margin-bottom:1rem}a{color:var(--color-link);border-bottom:1px solid #0000;text-decoration:none;transition:border-color .2s}a:hover{border-bottom-color:var(--color-link)}nav,main,footer{max-width:var(--width-content);padding:0 var(--spacing-medium);margin:0 auto}main{min-height:70vh;padding-top:var(--spacing-large);padding-bottom:220px}nav{padding-top:var(--spacing-medium);padding-bottom:var(--spacing-medium);align-items:center;gap:var(--spacing-medium);display:flex}nav a{color:var(--color-text);text-transform:lowercase;font-size:.9rem}nav a:hover{color:var(--color-accent)}article{margin-bottom:var(--spacing-large);padding-bottom:var(--spacing-medium);border-bottom:1px solid var(--color-subtle)}article:last-child{border-bottom:none}article h2{margin-bottom:.5rem}article time{color:var(--color-link);margin-bottom:.75rem;font-size:.85rem;display:block}section{margin-bottom:var(--spacing-large)}figure{margin-bottom:var(--spacing-medium)}figure img,figure video{border-radius:4px;max-width:100%;height:auto;display:block}figcaption{color:var(--color-link);margin-top:.5rem;font-size:.85rem}footer{padding-top:var(--spacing-medium);padding-bottom:var(--spacing-medium);border-top:1px solid var(--color-subtle)}footer p{color:var(--color-link);font-size:.85rem}.social-links{gap:var(--spacing-small);margin-top:var(--spacing-medium);display:flex}.social-links a{color:var(--color-text);opacity:.7;border-bottom:none;transition:opacity .2s}.social-links a:hover{opacity:1;border-bottom:none}.social-links svg{display:block}.coming-soon{text-align:center;margin-bottom:var(--spacing-medium);font-size:3rem}.pepe{border-radius:8px;max-width:300px;margin:0 auto;display:block}.bottom-bar{width:100%;max-width:var(--width-content);padding:8px var(--spacing-medium);background-color:var(--color-background);justify-content:space-between;align-items:center;display:flex;position:fixed;bottom:0;left:50%;transform:translate(-50%)}.bottom-bar .social-links{gap:10px;margin:0;display:flex}.bottom-bar .social-links a{opacity:.6}.bottom-bar .social-links a:hover{opacity:1}.bottom-bar .social-links svg{width:20px;height:20px}.strava-embed{border:0;border-radius:8px;width:min(300px,40vw);min-width:120px;height:160px}.profile-photo{object-fit:cover;border:2px solid var(--color-subtle);opacity:.9;border-radius:50%;width:40px;height:40px;transition:opacity .2s}.profile-photo:hover{opacity:1}@media (max-width:480px){.strava-embed{width:min(180px,36vw)}}.dropdown{align-items:center;display:flex;position:relative}.dropdown-content{background-color:var(--color-background);border:1px solid var(--color-subtle);z-index:100;border-radius:4px;min-width:150px;padding:8px 0;display:none;position:absolute;top:100%;left:0}.dropdown:hover .dropdown-content{display:block}.dropdown-content a{color:var(--color-text);padding:8px 16px;font-size:.85rem;display:block}.dropdown-content a:hover{background-color:var(--color-subtle);border-bottom:none}details.book-review{margin-bottom:var(--spacing-small);border-bottom:1px solid var(--color-subtle);padding-bottom:var(--spacing-small)}details.book-review summary{cursor:pointer;padding:var(--spacing-small)0;list-style:none}details.book-review summary::-webkit-details-marker{display:none}details.book-review summary:before{content:"+ ";color:var(--color-link);font-weight:700}details.book-review[open] summary:before{content:"- "}.book-title{color:var(--color-accent);font-size:1.3rem;font-weight:600}.book-author{color:var(--color-link);margin-left:.5rem;font-size:.95rem;font-style:italic}.review-content{padding:var(--spacing-small)0;padding-left:var(--spacing-small);border-left:2px solid var(--color-subtle);margin-top:var(--spacing-small)}.review-content p{margin-bottom:1rem}.reading-list{padding-left:var(--spacing-medium)}.reading-list li{margin-bottom:.75rem;line-height:1.5}.reading-list .book-author{margin-left:0}.typewriter{white-space:nowrap;min-height:1.2em}.project-subtabs{margin:var(--spacing-small)0 var(--spacing-medium);flex-wrap:wrap;gap:10px;display:flex}.project-subtab{border:1px solid var(--color-subtle);border-radius:999px;padding:6px 12px;font-size:.9rem}.project-subtab:hover{border-color:var(--color-link)}.project-subtab.active{background:var(--color-text);color:var(--color-background);border-color:var(--color-text)}.earnings-form{margin-top:var(--spacing-medium);gap:var(--spacing-small);max-width:520px;display:grid}.earnings-settings{margin-top:var(--spacing-large)}.earnings-section-title{margin-bottom:var(--spacing-small);font-size:1.1rem}.earnings-label{text-transform:uppercase;letter-spacing:.08em;color:var(--color-link);font-size:.9rem}.earnings-input{border:1px solid var(--color-subtle);color:var(--color-text);background:0 0;border-radius:8px;padding:12px 14px;font-size:1rem}.earnings-input::placeholder{color:var(--color-link)}.earnings-button{border:1px solid var(--color-text);background:var(--color-text);color:var(--color-background);cursor:pointer;border-radius:999px;justify-self:start;padding:10px 18px;font-size:.95rem;transition:transform .15s,opacity .15s}.earnings-button:hover{opacity:.92;transform:translateY(-1px)}.earnings-hint{color:var(--color-link);font-size:.85rem}.earnings-results{margin-top:var(--spacing-large);gap:var(--spacing-medium);display:grid}.earnings-card{border:1px solid var(--color-subtle);padding:var(--spacing-medium);background:var(--color-background);border-radius:12px;box-shadow:0 8px 24px #0000000a}.earnings-card-title{margin-bottom:.25rem}.earnings-meta{color:var(--color-link);font-size:.9rem}.earnings-previous{color:var(--color-link);margin-top:.25rem;font-size:.9rem}.earnings-links{gap:var(--spacing-small);margin:var(--spacing-small)0;flex-wrap:wrap;display:flex}.earnings-links span{color:var(--color-link);font-size:.9rem}.earnings-warnings{margin-top:var(--spacing-small);color:var(--color-link);padding-left:1.2rem;font-size:.9rem}.request-shell{border:1px solid var(--color-subtle);background:linear-gradient(#00000005,#0000);border-radius:16px;max-width:560px;padding:28px;box-shadow:0 10px 24px #0000000a}.request-form{margin-top:var(--spacing-medium);gap:var(--spacing-small);display:grid}.request-status{margin-top:var(--spacing-small);border:1px solid var(--color-subtle);border-radius:8px;padding:10px 12px;font-size:.9rem}.photo-gallery{margin-top:var(--spacing-medium);grid-template-columns:repeat(3,1fr);gap:16px;display:grid}.photo-gallery img{object-fit:cover;cursor:pointer;width:100%;height:250px;transition:transform .2s,opacity .2s}.photo-gallery img:hover{opacity:.9;transform:scale(1.02)}@media (max-width:768px){.photo-gallery{grid-template-columns:repeat(2,1fr)}.photo-gallery img{height:200px}}@media (max-width:480px){.photo-gallery{grid-template-columns:1fr}.photo-gallery img{height:280px}}.lightbox{-webkit-backdrop-filter:blur(10px);opacity:0;visibility:hidden;z-index:1000;cursor:pointer;background-color:#000000e6;justify-content:center;align-items:center;width:100%;height:100%;transition:opacity .3s,visibility .3s;display:flex;position:fixed;top:0;left:0}.lightbox.active{opacity:1;visibility:visible}.lightbox img{object-fit:contain;cursor:default;border-radius:4px;max-width:90%;max-height:90vh;transition:transform .3s;transform:scale(.9)}.lightbox.active img{transform:scale(1)}
