:root{--font-primary: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-mono: "SF Mono", Menlo, Monaco, "Courier New", monospace;--text-sm: .875rem;--text-base: 1rem;--text-lg: 1.125rem;--text-xl: 1.25rem;--text-2xl: 1.5rem;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-6: 1.5rem;--space-8: 2rem;--space-12: 3rem;--space-16: 4rem;--container-max: 680px;--container-padding: 1.5rem;--nav-height: 48px;--transition-fast: .15s ease;--transition-base: .2s ease}[data-theme=light]{--bg-primary: #ffffff;--bg-hover: #f6f6f6;--text-primary: #1a1a1a;--text-secondary: #666666;--text-muted: #999999;--accent: #0066cc;--border: #e5e5e5}[data-theme=dark]{--bg-primary: #111111;--bg-hover: #1a1a1a;--text-primary: #e5e5e5;--text-secondary: #999999;--text-muted: #666666;--accent: #4da3ff;--border: #333333}.rainbow-effect{--rainbow-x: 50%;--rainbow-y: 50%;--rainbow-intensity: 0;position:relative}.rainbow-effect:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(135deg,#ffb3ba,#ffdfba,#ffffba,#baffc9,#bae1ff,#d4baff);background-size:200% 200%;background-position:var(--rainbow-x) var(--rainbow-y);opacity:var(--rainbow-intensity);transition:opacity .5s ease-out;pointer-events:none;border-radius:inherit;mix-blend-mode:overlay}.rainbow-text{--rainbow-x: 50%;--rainbow-y: 50%;--rainbow-intensity: 0;position:relative;display:inline-block}.rainbow-text:before{content:attr(data-text);position:absolute;top:0;right:0;bottom:0;left:0;color:transparent;background:linear-gradient(135deg,#ffb3ba,#ffdfba,#ffffba,#baffc9,#bae1ff,#d4baff);background-size:200% 200%;background-position:var(--rainbow-x) var(--rainbow-y);-webkit-background-clip:text;background-clip:text;-webkit-text-stroke:3px transparent;filter:blur(1px);opacity:var(--rainbow-intensity);transition:opacity .5s ease-out;pointer-events:none;z-index:-1}.rainbow-icon{--rainbow-x: 50%;--rainbow-y: 50%;--rainbow-intensity: 0;position:relative;display:inline-flex;align-items:center;justify-content:center}.rainbow-icon svg{position:relative;z-index:1}.rainbow-icon:after{content:"";position:absolute;top:-4px;right:-4px;bottom:-4px;left:-4px;background:linear-gradient(135deg,#ffb3ba,#ffdfba,#ffffba,#baffc9,#bae1ff,#d4baff);background-size:200% 200%;background-position:var(--rainbow-x) var(--rainbow-y);opacity:var(--rainbow-intensity);transition:opacity .5s ease-out;pointer-events:none;border-radius:50%;filter:blur(8px);z-index:0}[data-theme=light] .rainbow-effect:before,[data-theme=light] .rainbow-text:before,[data-theme=light] .rainbow-icon:after{filter:blur(6px) saturate(1.3)}[data-theme=dark] .rainbow-effect:before,[data-theme=dark] .rainbow-text:before,[data-theme=dark] .rainbow-icon:after{opacity:calc(var(--rainbow-intensity) * .7);filter:blur(8px)}*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth}body{font-family:var(--font-primary);font-size:var(--text-base);line-height:1.6;color:var(--text-primary);background-color:var(--bg-primary);-webkit-font-smoothing:antialiased;transition:background-color var(--transition-base),color var(--transition-base)}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3{font-weight:600;line-height:1.3;color:var(--text-primary)}h2{font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin-bottom:var(--space-6)}.section{margin-bottom:var(--space-16)}p{color:var(--text-secondary)}::selection{background:var(--accent);color:#fff}@media (max-width: 600px){:root{--container-padding: 1rem}}.theme-toggle{color:var(--text-muted);background:none;border:none;cursor:pointer;padding:var(--space-2);transition:color .15s ease;display:flex;align-items:center;justify-content:center}.theme-toggle:hover{color:var(--text-primary)}.theme-toggle svg{width:1.25rem;height:1.25rem}.nav{display:flex;justify-content:flex-end;align-items:center;padding:var(--space-6) 0}.footer{display:flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-16) 0 var(--space-8);font-size:var(--text-sm);color:var(--text-muted)}.hero{padding:var(--space-6) 0 var(--space-16)}.hero-name{font-size:var(--text-2xl);font-weight:600;margin-bottom:var(--space-1)}.hero-title{color:var(--text-secondary);margin-bottom:var(--space-4)}.hero-description{color:var(--text-secondary);margin-bottom:var(--space-4);max-width:540px;line-height:1.6}.hero-links{display:flex;gap:var(--space-4);align-items:center}.hero-links a{color:var(--text-muted);transition:color .15s ease;display:flex}.hero-links a:hover{color:var(--text-primary)}.hero-icon{width:1.25rem;height:1.25rem}.hero-note{color:var(--text-muted);display:flex}.section-header{display:flex;align-items:center;justify-content:space-between}.section-header h2{margin:0}.section-toggle{background:none;border:none;padding:var(--space-1);cursor:pointer;display:flex;align-items:center;justify-content:center}.section-toggle .exp-chevron{stroke-width:2.5}.section-toggle:hover .exp-toggle{color:var(--text-primary)}.exp-list{display:flex;flex-direction:column;gap:var(--space-3)}.exp-item{padding:var(--space-3);margin:0 calc(-1 * var(--space-3));border-radius:var(--space-2);transition:background-color .15s ease}.exp-item:hover{background-color:var(--bg-hover)}.exp-row{display:grid;grid-template-columns:100px 1fr auto auto;gap:var(--space-4);align-items:center;width:100%;padding:var(--space-2) 0;background:none;border:none;text-align:left;font-size:var(--text-sm);color:var(--text-primary);cursor:default}.exp-row.clickable{cursor:pointer}.exp-company{font-weight:500;min-width:100px}.exp-title{color:var(--text-secondary)}.exp-date{color:var(--text-muted);font-size:var(--text-sm)}.exp-toggle{width:20px;text-align:center;color:var(--text-muted);transition:transform .2s ease,color .15s ease}.exp-chevron{width:1rem;height:1rem}.exp-toggle.open{transform:rotate(180deg)}.exp-row.clickable:hover .exp-toggle{color:var(--text-primary)}.exp-tech{color:var(--text-muted);font-size:var(--text-sm);margin:0 0 var(--space-3) 0;padding-left:0}.exp-bullets{padding:var(--space-2) 0 var(--space-4) var(--space-4);margin:0;list-style:disc;list-style-position:outside}.exp-bullets li{font-size:var(--text-sm);color:var(--text-secondary);margin-bottom:var(--space-2);line-height:1.5}@media (max-width: 600px){.exp-row{grid-template-columns:1fr auto;gap:var(--space-1)}.exp-title{grid-column:1;grid-row:2}.exp-date{grid-column:1;grid-row:3}.exp-toggle{grid-row:1 / 4;align-self:center}}.edu-list{display:flex;flex-direction:column;gap:var(--space-4)}.edu-item{padding:var(--space-3);margin:0 calc(-1 * var(--space-3));border-radius:var(--space-2);transition:background-color .15s ease}.edu-item:hover{background-color:var(--bg-hover)}.edu-degree{font-weight:500;margin-bottom:var(--space-1)}.edu-meta{font-size:var(--text-sm);color:var(--text-secondary)}.page{max-width:var(--container-max);margin:0 auto;padding:0 var(--container-padding);min-height:100vh}.articles-list{display:flex;flex-direction:column;gap:var(--space-6)}.article-item{padding-bottom:var(--space-6);border-bottom:1px solid var(--border)}.article-item:last-child{border-bottom:none}.article-title{font-weight:500;color:var(--accent);display:block;margin-bottom:var(--space-1)}.article-title:hover{text-decoration:underline}.article-date{font-size:var(--text-sm);color:var(--text-muted);display:block;margin-bottom:var(--space-2)}.article-desc{font-size:var(--text-sm);color:var(--text-secondary);margin:0}.back-link{display:inline-block;font-size:var(--text-sm);color:var(--text-secondary);margin:var(--space-8) 0 var(--space-6)}.back-link:hover{color:var(--accent);text-decoration:none}.article-content{margin-bottom:var(--space-12)}.article-header{margin-bottom:var(--space-8)}.article-header .article-date{font-size:var(--text-sm);color:var(--text-muted);display:block;margin-bottom:var(--space-2)}.article-header .article-title{font-size:var(--text-2xl);font-weight:600;line-height:1.3}.article-body{color:var(--text-secondary);line-height:1.7}.article-body p{margin-bottom:var(--space-4)}.article-body h2{font-size:var(--text-lg);margin-top:var(--space-8);margin-bottom:var(--space-3)}.article-body a{color:var(--accent)}.article-body ul,.article-body ol{margin-bottom:var(--space-4);padding-left:var(--space-6)}.article-body li{margin-bottom:var(--space-2)}.article-body code{font-family:var(--font-mono);font-size:.9em;padding:2px 4px;background-color:var(--bg-hover)}.article-body pre{background-color:var(--bg-hover);padding:var(--space-4);overflow-x:auto;margin-bottom:var(--space-4)}.article-body pre code{padding:0;background:none}.article-body blockquote{margin:var(--space-4) 0;padding-left:var(--space-4);border-left:2px solid var(--border);color:var(--text-muted)}.article-body img{max-width:100%;height:auto;margin:var(--space-4) 0}.notfound{padding:var(--space-16) 0}.notfound h1{font-size:var(--text-2xl);margin-bottom:var(--space-2)}.notfound p{color:var(--text-secondary);margin-bottom:var(--space-4)}.notfound a{font-size:var(--text-sm);color:var(--accent)}
