:root{--bg: #ffffff;--surface: #ffffff;--surface-muted: #f9fafb;--text: #111827;--text-muted: #6b7280;--text-subtle: #9ca3af;--border: #e5e7eb;--border-strong: #d1d5db;--accent: #2563eb;--accent-soft: rgba(37, 99, 235, .08);--accent-2: #059669;--warning: #d97706}.dark{--bg: #1e1e2e;--surface: #181825;--surface-muted: #11111b;--text: #cdd6f4;--text-muted: #a6adc8;--text-subtle: #6c7086;--border: #313244;--border-strong: #45475a;--accent: #89b4fa;--accent-soft: rgba(137, 180, 250, .1);--accent-2: #a6e3a1;--warning: #f9e2af}*{margin:0;padding:0;box-sizing:border-box}*,*:before,*:after{max-width:100%}html{overflow-x:hidden;width:100%}body{line-height:1.6;overflow-x:hidden;width:100%;min-height:100vh}@keyframes blink{0%,50%{opacity:1}51%,to{opacity:0}}.terminal-cursor:after{content:"|";animation:blink 1s infinite;color:#89b4fa;font-weight:300}.container{max-width:1200px;margin:0 auto;padding:0 2rem;width:100%}.section{padding:4rem 0;width:100%;overflow-x:hidden}.tooltip{position:relative;display:inline-block}.tooltip .tooltip-text{visibility:hidden;width:120px;background-color:var(--surface);color:var(--text);text-align:center;border-radius:6px;padding:8px 12px;position:absolute;z-index:1000;top:125%;left:50%;transform:translate(-50%);opacity:0;transition:opacity .2s ease-in-out;font-size:.85rem;font-weight:500;border:1px solid var(--accent);box-shadow:0 4px 8px #0000002e;pointer-events:none;white-space:nowrap;overflow:visible}.tooltip .tooltip-text:after{content:"";position:absolute;bottom:100%;left:50%;margin-left:-5px;border-width:5px;border-style:solid;border-color:transparent transparent var(--accent) transparent}.tooltip:hover .tooltip-text{visibility:visible;opacity:1}.tooltip.tooltip-top .tooltip-text{bottom:auto;top:125%}.tooltip.tooltip-top .tooltip-text:after{top:auto;bottom:100%;border-color:transparent transparent var(--accent) transparent}@media (max-width: 768px){.container{padding:0 1rem;width:100%;max-width:100%}.section{padding:3rem 0}.tooltip .tooltip-text{width:auto;min-width:80px;max-width:160px;transform:translate(-50%);font-size:.8rem}}@media (max-width: 480px){.container{padding:0 .75rem;width:100%;max-width:100%}.section{padding:2.5rem 0}.tooltip .tooltip-text{width:auto;min-width:70px;max-width:140px;transform:translate(-50%);font-size:.75rem;padding:6px 10px}}.header{background:#1e1e2ef2;border-bottom:2px solid #89b4fa;box-shadow:0 2px 20px #89b4fa33;position:fixed;top:0;left:0;right:0;z-index:1000;backdrop-filter:blur(10px);width:100%;overflow-x:hidden}.nav{display:flex;justify-content:space-between;align-items:center;padding:1rem 0}.logo{font-size:1.5rem;font-weight:700;color:#89b4fa;text-decoration:none}.logo:before{content:"> ";color:#f38ba8}.nav-links{display:flex;list-style:none;gap:2rem}.nav-links a{position:relative;text-decoration:none;color:#bcc3dd;font-weight:500;padding:.2rem 0;transition:color .25s ease}.nav-links a:after{content:"";position:absolute;left:0;right:0;bottom:-.25rem;height:2px;border-radius:2px;background:linear-gradient(90deg,#89b4fa,#a6e3a1);transform:scaleX(.2);opacity:0;transition:transform .25s ease,opacity .25s ease}.nav-links a:hover{color:#89b4fa}.nav-links a:hover:after,.nav-links a:focus-visible:after{transform:scaleX(1);opacity:1}.nav-links a:focus-visible,.mobile-menu-content a:focus-visible,.mobile-menu-btn:focus-visible,.logo:focus-visible{outline:2px solid #a6e3a1;outline-offset:3px}.mobile-menu-btn{display:none;background:none;border:1px solid rgba(137,180,250,.3);border-radius:4px;padding:.5rem;font-size:1.5rem;color:#89b4fa;cursor:pointer;transition:all .3s ease;position:relative;z-index:10000;touch-action:manipulation}.mobile-menu-btn:hover{border-color:#89b4fa;background:#89b4fa1a}.mobile-menu-overlay{display:none;position:fixed;inset:0;width:100vw;height:100vh;background:#00000080;z-index:9999}.mobile-menu{position:absolute;top:80px;left:0;right:0;width:100%;background:#1e1e2efa;border:1px solid rgba(137,180,250,.3);border-top:none;box-shadow:0 4px 20px #0000004d;touch-action:pan-y;-webkit-overflow-scrolling:touch;max-height:calc(100vh - 80px);overflow-y:auto;backdrop-filter:blur(10px)}.mobile-menu-content{padding:1rem 0}.mobile-menu-overlay.active{display:block;animation:fadeIn .2s ease-in-out}@keyframes fadeIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.mobile-menu-content a{display:block;padding:.75rem 2rem;color:#c3cae3;text-decoration:none;font-weight:500;transition:background .25s ease,color .25s ease;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.mobile-menu-content a:hover{background:#89b4fa1a;color:#89b4fa}@media (max-width: 768px){.nav{padding:.75rem 0}.logo{font-size:1.3rem}.nav-links{display:none}.mobile-menu-btn{display:block}.mobile-menu{border-radius:0 0 8px 8px;max-width:100%;left:0;right:0;margin:0;top:70px}.mobile-menu-content a{padding:1rem 2rem;font-size:1rem}}@media (max-width: 480px){.nav{padding:.5rem 0}.logo{font-size:1.2rem}.mobile-menu-btn{padding:.4rem;font-size:1.3rem;min-width:44px;min-height:44px;display:flex;align-items:center;justify-content:center}.mobile-menu-content a{padding:.875rem 1.5rem;font-size:.95rem;min-height:44px;display:flex;align-items:center}.mobile-menu{top:60px}}.archive-page{padding-top:7rem;padding-bottom:5rem;min-height:100vh}.archive-page .container{max-width:1100px;margin:0 auto;padding:0 1.5rem}.archive-page .page-header{margin-bottom:3rem}.archive-page .back-link{display:inline-block;font-family:JetBrains Mono,Fira Code,monospace;font-size:.85rem;color:var(--accent);text-decoration:none;margin-bottom:1.5rem;transition:color .2s ease}.archive-page .back-link:hover{color:var(--accent-2)}.archive-page .page-title{font-family:JetBrains Mono,Fira Code,monospace;font-size:1.6rem;color:var(--accent-2);font-weight:500;margin-bottom:.6rem}.archive-page .page-subtitle{font-size:.88rem;color:var(--text-muted)}.archive-page .table-wrapper{overflow-x:auto}.archive-page .projects-table{width:100%;border-collapse:collapse}.archive-page .projects-table thead tr{border-bottom:1px solid var(--border-strong)}.archive-page .projects-table th{font-family:JetBrains Mono,Fira Code,monospace;font-size:.7rem;text-transform:uppercase;letter-spacing:.1em;color:var(--accent-2);font-weight:500;padding:0 1.5rem .75rem 0;text-align:left;white-space:nowrap}.archive-page .col-year{width:3.5rem}.archive-page .col-madeat{width:12rem}.archive-page .col-tech{width:16rem}.archive-page .projects-table tbody tr{border-bottom:1px solid var(--border);transition:background .15s ease}.archive-page .projects-table tbody tr:last-child{border-bottom:none}.archive-page .projects-table tbody tr:hover{background:var(--accent-soft)}.archive-page .projects-table tbody tr:hover .project-desc{color:var(--text)}.archive-page .projects-table tbody tr:target{background:var(--accent-soft);outline:1px solid var(--accent)}.archive-page .projects-table td{padding:1rem 1.5rem 1rem 0;vertical-align:top}.archive-page .year{font-family:JetBrains Mono,Fira Code,monospace;font-size:.82rem;color:var(--text-muted);white-space:nowrap;padding-top:1.1rem}.archive-page .project-cell{display:flex;flex-direction:column;gap:.3rem}.archive-page .project-name{font-size:.92rem;color:var(--text);font-weight:500;line-height:1.3}.archive-page .project-desc{font-size:.8rem;color:var(--text-muted);line-height:1.55;transition:color .15s ease}.archive-page .made-at{font-size:.82rem;color:var(--accent);font-family:JetBrains Mono,Fira Code,monospace;white-space:nowrap;padding-top:1.1rem}.archive-page .tech-list{color:var(--text-muted);font-family:JetBrains Mono,Fira Code,monospace;font-size:.75rem;line-height:1.6;padding-top:1.05rem}.archive-page .tech-sep{color:var(--border-strong)}@media (max-width: 900px){.archive-page .col-tech,.archive-page .made-at,.archive-page .tech-list{display:none}}@media (max-width: 600px){.archive-page{padding-top:6rem}.archive-page .page-title{font-size:1.2rem}.archive-page .col-year,.archive-page .year{display:none}}
