:root{--bg-color:#fff;--text-primary:#111;--text-secondary:#666;--border-color:#eaeaea;--hover-bg:#f5f5f5;--accent-color:#000}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--bg-color);color:var(--text-primary);-webkit-font-smoothing:antialiased;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;line-height:1.5}a{color:inherit;text-decoration:none}ul{list-style:none}.container{max-width:680px;margin:0 auto;padding:80px 24px}.section{margin-bottom:64px}.header-title{color:var(--text-primary);margin-bottom:8px;font-size:16px;font-weight:600}.header-text{flex:1;min-width:0;padding-right:24px}.header-bio{color:var(--text-secondary);text-align:justify;text-justify:inter-word;-webkit-hyphens:auto;hyphens:auto;font-size:14px;line-height:1.6}.header-container{justify-content:space-between;align-items:flex-start;display:flex}.profile-photo{object-fit:cover;border:1px solid var(--border-color);border-radius:50%;width:80px;height:80px}.section-label{text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary);margin-bottom:24px;font-size:12px;font-weight:500}.link-list{flex-direction:column;gap:12px;display:flex}.link-item{color:var(--text-primary);align-items:center;gap:12px;width:fit-content;font-size:14px;transition:opacity .2s;display:flex}.link-item:hover{opacity:.7}.project-grid{grid-template-columns:1fr;gap:24px;display:grid}.project-card{border:1px solid var(--border-color);border-radius:8px;padding:24px;transition:border-color .2s}.project-card:hover{border-color:var(--accent-color)}.project-header{justify-content:space-between;align-items:flex-start;margin-bottom:12px;display:flex}.project-name{font-size:15px;font-weight:500}.project-desc{color:var(--text-secondary);margin-bottom:16px;font-size:14px;line-height:1.6}.project-meta{color:var(--text-secondary);align-items:center;gap:16px;font-size:12px;display:flex}.lang-dot{border-radius:50%;width:8px;height:8px;margin-right:6px;display:inline-block}.columns-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;display:grid}.columns-grid>section:first-child{border-right:1px solid var(--border-color);padding-right:32px}.columns-grid>section:last-child{padding-left:32px}@media (max-width:768px){.header-container{flex-direction:column-reverse;align-items:flex-start;gap:24px}.profile-photo{width:64px;height:64px;margin-bottom:16px;margin-left:0}.header-text{width:100%;padding-right:0}.header-title{font-size:18px}.header-bio{text-align:left;-webkit-hyphens:manual;hyphens:manual}.columns-grid{grid-template-columns:minmax(0,1fr);gap:48px}.columns-grid>section:first-child{border-right:none;border-bottom:1px solid var(--border-color);padding-bottom:32px;padding-right:0}.columns-grid>section:last-child{padding-left:0}}.os-link{color:var(--text-secondary);text-underline-offset:2px;cursor:pointer;margin-left:4px;font-size:14px;font-weight:400;text-decoration:underline;display:inline}.os-link:hover{opacity:.8}.os-description-compact{color:var(--text-secondary);text-align:justify;text-justify:inter-word;-webkit-hyphens:auto;hyphens:auto;width:100%;font-size:14px;line-height:1.5}.back-link{color:var(--text-secondary);align-items:center;gap:8px;margin-bottom:24px;font-size:14px;transition:color .2s;display:inline-flex}.back-link:hover{color:var(--text-primary)}.nav-header{margin-bottom:32px}.featured-banner{border:1px solid var(--border-color);border-radius:8px;width:100%;height:auto;display:block}.footer{color:var(--text-secondary);border-top:1px solid var(--border-color);margin-top:48px;padding-top:24px;font-size:13px}.dino-container{border-bottom:1px solid var(--border-color);align-items:flex-end;width:100%;height:60px;margin-top:32px;display:flex;position:relative;overflow:hidden}.dino{z-index:2;animation:2s ease-out infinite dinoJump;position:absolute;bottom:0;left:20px}.cactus-group{animation:2s linear infinite cactusMove;position:absolute;bottom:0;right:-30px}@keyframes cactusMove{0%{left:100%;transform:translate(100%)}to{left:-50px;transform:translate(-100%)}}@keyframes dinoJump{0%,to{transform:translateY(0)}20%{transform:translateY(0)}35%{transform:translateY(-35px)}50%{transform:translateY(0)}}
