:root{--mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--spacing-xs: .5rem;--spacing-sm: .75rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem;--spacing-2xl: 3rem;--radius-sm: .5rem;--radius-md: .75rem;--radius-lg: 1rem;--radius-xl: 1.5rem;--transition-fast: .15s cubic-bezier(.4, 0, .2, 1);--transition-base: .2s cubic-bezier(.4, 0, .2, 1);--transition-smooth: .3s cubic-bezier(.4, 0, .2, 1)}[data-theme=light]{--bg-primary: #ffffff;--bg-secondary: #f4f4f5;--bg-tertiary: #e4e4e7;--content-primary: #18181b;--content-secondary: #52525b;--content-tertiary: #71717a;--content-quaternary: #a1a1aa;--primary: #0070f3;--primary-hover: #0761d1;--primary-light: #3291ff;--primary-bg: rgba(0, 112, 243, .1);--success: #17c964;--success-bg: rgba(23, 201, 100, .1);--warning: #f5a524;--warning-bg: rgba(245, 165, 36, .1);--danger: #f31260;--danger-bg: rgba(243, 18, 96, .1);--border: #e4e4e7;--divider: #e4e4e7;--shadow-sm: 0 0 0 1px rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -1px rgba(0, 0, 0, .06);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -2px rgba(0, 0, 0, .05);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .1), 0 10px 10px -5px rgba(0, 0, 0, .04);--gradient-primary: linear-gradient(135deg, #0070f3 0%, #00dfd8 100%);--gradient-secondary: linear-gradient(135deg, #f31260 0%, #f5a524 100%);--gradient-bg: radial-gradient(at 100% 0%, #e0f2fe 0%, transparent 50%), radial-gradient(at 0% 100%, #ddd6fe 0%, transparent 50%)}[data-theme=dark]{--bg-primary: #000000;--bg-secondary: #18181b;--bg-tertiary: #27272a;--content-primary: #ecedee;--content-secondary: #a1a1aa;--content-tertiary: #71717a;--content-quaternary: #52525b;--primary: #0070f3;--primary-hover: #3291ff;--primary-light: #006FEE;--primary-bg: rgba(0, 112, 243, .15);--success: #17c964;--success-bg: rgba(23, 201, 100, .15);--warning: #f5a524;--warning-bg: rgba(245, 165, 36, .15);--danger: #f31260;--danger-bg: rgba(243, 18, 96, .15);--border: #27272a;--divider: #27272a;--shadow-sm: 0 0 0 1px rgba(255, 255, 255, .05);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .5), 0 2px 4px -1px rgba(0, 0, 0, .3);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .5), 0 4px 6px -2px rgba(0, 0, 0, .3);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .5), 0 10px 10px -5px rgba(0, 0, 0, .3);--gradient-primary: linear-gradient(135deg, #006FEE 0%, #00dfd8 100%);--gradient-secondary: linear-gradient(135deg, #f31260 0%, #f5a524 100%);--gradient-bg: radial-gradient(at 100% 0%, rgba(0, 112, 243, .1) 0%, transparent 50%), radial-gradient(at 0% 100%, rgba(139, 92, 246, .1) 0%, transparent 50%)}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}html,body{height:100%}body{margin:0;color:var(--content-primary);background:var(--bg-primary);font-family:var(--sans);font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transition:background-color var(--transition-smooth),color var(--transition-smooth);overflow-x:hidden}body:before{content:"";position:fixed;top:0;left:0;right:0;bottom:0;background:var(--gradient-bg);z-index:-1;opacity:.5;pointer-events:none}.wrap{max-width:1200px;margin:0 auto;padding:var(--spacing-xl);min-height:100vh;position:relative}@media (max-width: 768px){.wrap{padding:var(--spacing-lg)}}header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-lg) var(--spacing-xl);margin:calc(var(--spacing-xl) * -1) calc(var(--spacing-xl) * -1) var(--spacing-2xl);background:var(--bg-primary);border-bottom:1px solid var(--border);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);position:sticky;top:0;z-index:100;transition:all var(--transition-base)}@media (max-width: 768px){header{padding:var(--spacing-md) var(--spacing-lg);margin:calc(var(--spacing-lg) * -1) calc(var(--spacing-lg) * -1) var(--spacing-xl)}}.brand{display:flex;align-items:center;gap:var(--spacing-md);font-weight:600;font-size:1.125rem;color:var(--content-primary)}.logo{width:40px;height:40px;border-radius:var(--radius-md);display:grid;place-items:center;font:700 16px var(--mono);color:#fff;background:var(--gradient-primary);box-shadow:var(--shadow-md);transition:transform var(--transition-fast)}.logo:hover{transform:scale(1.05)}.theme-toggle{width:44px;height:44px;border-radius:var(--radius-md);background:var(--bg-secondary);border:1px solid var(--border);color:var(--content-primary);display:grid;place-items:center;cursor:pointer;transition:all var(--transition-base);box-shadow:var(--shadow-sm)}.theme-toggle:hover{background:var(--bg-tertiary);transform:scale(1.05);box-shadow:var(--shadow-md)}.theme-toggle:active{transform:scale(.95)}.theme-toggle svg{transition:transform var(--transition-smooth)}.theme-toggle:hover svg{transform:rotate(20deg)}.hero{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--spacing-2xl);align-items:stretch;margin-bottom:var(--spacing-2xl)}@media (max-width: 968px){.hero{grid-template-columns:1fr;gap:var(--spacing-xl)}}.terminal{border-radius:var(--radius-xl);background:var(--bg-secondary);border:1px solid var(--border);box-shadow:var(--shadow-lg);overflow:hidden;transition:all var(--transition-smooth);position:relative}.terminal:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,var(--primary),transparent);opacity:0;transition:opacity var(--transition-base)}.terminal:hover{box-shadow:var(--shadow-xl);border-color:var(--primary)}.terminal:hover:before{opacity:1}.term-top{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-md) var(--spacing-lg);border-bottom:1px solid var(--border);background:var(--bg-tertiary);font:500 13px var(--mono);color:var(--content-tertiary)}.dot{width:12px;height:12px;border-radius:50%;display:inline-block;transition:transform var(--transition-fast)}.dot:hover{transform:scale(1.2)}.dot.red{background:var(--danger)}.dot.amber{background:var(--warning)}.dot.green{background:var(--success)}pre{margin:0;padding:var(--spacing-xl);font:500 14px var(--mono);line-height:1.8;white-space:pre-wrap;word-break:break-word;color:var(--content-primary)}.term-line{display:block;margin-bottom:.25rem}.term-command{color:var(--primary);font-weight:600}.term-command .term-prompt{color:var(--success);margin-right:var(--spacing-sm);font-weight:700}.term-output{color:var(--content-secondary)}.profile{border-radius:var(--radius-xl);background:var(--bg-secondary);border:1px solid var(--border);box-shadow:var(--shadow-lg);padding:var(--spacing-2xl);display:flex;flex-direction:column;gap:var(--spacing-lg);position:relative;overflow:hidden;transition:all var(--transition-smooth)}.profile:before{content:"";position:absolute;top:0;right:0;width:200px;height:200px;background:var(--gradient-primary);opacity:.05;border-radius:50%;transform:translate(50%,-50%);transition:transform var(--transition-smooth)}.profile:hover:before{transform:translate(50%,-50%) scale(1.2)}.profile:hover{box-shadow:var(--shadow-xl);border-color:var(--primary)}.profile h1{margin:0;font-size:2rem;font-weight:700;line-height:1.2;color:var(--content-primary)}.profile p{margin:0;color:var(--content-secondary);line-height:1.7;font-size:1rem}.tag{display:inline-flex;align-items:center;gap:var(--spacing-xs);padding:0;background:transparent;border:none;color:var(--content-secondary);font:500 .9375rem var(--sans);width:fit-content;transition:all var(--transition-base)}.tag:before{content:"";width:4px;height:16px;background:var(--primary);border-radius:2px;display:inline-block}.tag:hover{color:var(--content-primary)}.location-info{display:flex;flex-direction:column;gap:var(--spacing-xs);padding:var(--spacing-md) 0;border-left:2px solid var(--border);padding-left:var(--spacing-md)}.links{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--spacing-md);margin-top:var(--spacing-lg)}@media (max-width: 600px){.links{grid-template-columns:1fr}}.btn{text-decoration:none;border:2px solid var(--border);padding:var(--spacing-md) var(--spacing-lg);border-radius:var(--radius-md);background:var(--bg-tertiary);color:var(--content-primary);font-weight:600;font-size:.9375rem;text-align:center;transition:all var(--transition-base);position:relative;overflow:hidden;display:inline-flex;align-items:center;justify-content:center;isolation:isolate}.btn:before{content:"";position:absolute;top:50%;left:50%;width:0;height:0;border-radius:50%;background:var(--primary);transform:translate(-50%,-50%);transition:width var(--transition-smooth),height var(--transition-smooth);z-index:-1}.btn:hover{border-color:var(--primary);color:#fff;transform:translateY(-2px);box-shadow:var(--shadow-lg)}.btn:hover:before{width:300px;height:300px}.btn:active{transform:translateY(0)}section{margin-top:var(--spacing-2xl);margin-bottom:var(--spacing-2xl)}h2{font-size:1.75rem;font-weight:700;color:var(--content-primary);margin:0 0 var(--spacing-xl) 0;position:relative;display:inline-block}h2:after{content:"";position:absolute;bottom:-8px;left:0;width:60%;height:3px;background:var(--gradient-primary);border-radius:2px}.projects{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--spacing-2xl)}@media (max-width: 968px){.projects{grid-template-columns:1fr;gap:var(--spacing-xl)}}.card{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-xl);padding:var(--spacing-xl);box-shadow:var(--shadow-md);display:flex;flex-direction:column;gap:var(--spacing-lg);transition:all var(--transition-smooth);position:relative;overflow:hidden}.card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--gradient-primary);transform:scaleX(0);transform-origin:left;transition:transform var(--transition-smooth)}.card:hover{transform:translateY(-4px);box-shadow:var(--shadow-xl);border-color:var(--primary)}.card:hover:before{transform:scaleX(1)}.card-head{display:flex;gap:var(--spacing-md);align-items:center}.card-logo{width:56px;height:56px;border-radius:var(--radius-md);object-fit:cover;background:var(--bg-tertiary);border:1px solid var(--border);flex:0 0 56px;transition:transform var(--transition-base)}.card:hover .card-logo{transform:scale(1.1) rotate(5deg)}.card-title-group{display:flex;flex-direction:column;gap:var(--spacing-xs);flex:1}.card-title-group h3{color:var(--content-primary);font-weight:600;font-size:1.125rem;margin:0}.card-title-group p{color:var(--content-tertiary);font-size:.875rem;margin:0}.card-link{width:40px;height:40px;border-radius:var(--radius-md);background:var(--bg-tertiary);border:1px solid var(--border);color:var(--content-secondary);display:grid;place-items:center;transition:all var(--transition-base);text-decoration:none;flex-shrink:0}.card-link:hover{background:var(--primary);border-color:var(--primary);color:#fff;transform:translateY(-2px);box-shadow:var(--shadow-md)}.card-link:active{transform:translateY(0)}.meta-section{display:flex;flex-direction:column;gap:var(--spacing-xs)}.meta-title{font-size:.875rem;font-weight:600;color:var(--content-secondary);margin:0;text-transform:uppercase;letter-spacing:.05em}.meta{display:flex;flex-wrap:wrap;gap:var(--spacing-sm)}.pill{font:600 .75rem var(--mono);padding:var(--spacing-xs) var(--spacing-sm);border-radius:9999px;border:1px solid var(--border);background:var(--bg-tertiary);color:var(--content-secondary);transition:all var(--transition-base);white-space:nowrap}.pill-tech:hover{background:var(--primary-bg);border-color:var(--primary);color:var(--primary);transform:translateY(-2px)}.pill-feature{font:600 .75rem var(--mono);padding:var(--spacing-xs) var(--spacing-sm);border-radius:9999px;border:1px solid var(--border);background:var(--bg-tertiary);color:var(--content-secondary);transition:all var(--transition-base);white-space:nowrap}.pill-feature:hover{background:var(--primary-bg);border-color:var(--primary);color:var(--primary);transform:translateY(-2px)}footer{margin-top:var(--spacing-2xl);padding:var(--spacing-xl) 0;border-top:1px solid var(--border);color:var(--content-tertiary);font-size:.875rem;text-align:center}:root{line-height:1.6;font-weight:400;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{transition:background-color .3s cubic-bezier(.4,0,.2,1),color .3s cubic-bezier(.4,0,.2,1),border-color .3s cubic-bezier(.4,0,.2,1)}*:focus,*:active,button,input,select,textarea{transition-property:background-color,color,border-color,box-shadow,transform}
