:root{--bg: #f6ead7;--bg-grid: #e5d0b0;--panel: #fff6ea;--text: #2a1f16;--muted: #6f5946;--line: #2a1f16;--line-soft: #8d735d;--hover-shadow: #000;--orange: #f16d2c;--orange-dark: #d35414;--orange-soft: #ffb27a}[data-theme=dark]{--bg: #1f1915;--bg-grid: #3b2f27;--panel: #2a211c;--text: #f8e8d2;--muted: #c8af94;--line: #f8e8d2;--line-soft: #7f6854;--hover-shadow: #f8e8d2;--orange: #ff8b4a;--orange-dark: #e36a2b;--orange-soft: #6a3a1f}*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth}html.is-dragging-site-scrollbar{scroll-behavior:auto!important}html,body{scrollbar-width:none!important;-ms-overflow-style:none!important}html::-webkit-scrollbar,body::-webkit-scrollbar{width:0!important;height:0!important}:where(a,button):focus-visible{outline:2px solid var(--orange);outline-offset:3px;box-shadow:-3px 3px 0 var(--hover-shadow)}body{background-color:var(--bg);background-image:linear-gradient(var(--bg-grid) 1px,transparent 1px),linear-gradient(90deg,var(--bg-grid) 1px,transparent 1px);background-size:32px 32px;background-attachment:fixed;color:var(--text);font-family:Inter,Arial,sans-serif;line-height:1.55;min-height:100vh}.site-scrollbar{position:fixed;top:.6rem;right:0;bottom:.6rem;width:.9rem;border:2px solid var(--line-soft);background:color-mix(in oklab,var(--panel) 82%,var(--bg));z-index:1100;opacity:1;transition:opacity .2s ease}.site-scrollbar.is-hidden{opacity:0;pointer-events:none}.site-scrollbar-thumb{position:absolute;top:0;left:0;width:100%;height:3rem;background:linear-gradient(180deg,var(--orange) 0%,var(--orange-dark) 100%);border:2px solid color-mix(in oklab,var(--panel) 82%,var(--bg));cursor:grab;touch-action:none;user-select:none;will-change:transform}.site-scrollbar-thumb:hover{background:linear-gradient(180deg,var(--orange-dark) 0%,var(--orange) 100%)}.site-scrollbar-thumb.is-dragging{cursor:grabbing}body.is-dragging-site-scrollbar{user-select:none}a:not([class]){color:var(--orange-dark);text-decoration-thickness:2px;text-underline-offset:2px;transition:color .15s ease}a:not([class]):hover{color:var(--orange)}.page-shell{width:min(1120px,94vw);margin:0 auto;padding:1.1rem 0 2rem;display:grid;gap:1rem}.page-shell-post{min-height:100vh;grid-template-rows:auto 1fr auto}.site-header{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:1rem;border:2px solid var(--line);background:var(--panel);padding:.9rem 1rem}.brand{font-family:JetBrains Mono,monospace;font-weight:800;text-decoration:none;color:var(--text);letter-spacing:.03em;text-transform:uppercase}.main-nav{display:flex;justify-content:center;flex-wrap:wrap;gap:.45rem}.main-nav a{border:2px solid var(--line);background:transparent;color:var(--text);text-decoration:none;height:40px;padding:.4rem .7rem;display:inline-flex;align-items:center;justify-content:center;font-family:JetBrains Mono,monospace;font-size:.85rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em}.main-nav a:hover{background:var(--orange-soft);box-shadow:-3px 3px 0 var(--hover-shadow)}.theme-toggle{width:40px;height:40px;border:2px solid var(--line);background:var(--orange);color:#fff;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.theme-toggle:hover{background:var(--orange-dark);box-shadow:-3px 3px 0 var(--hover-shadow)}.theme-toggle svg{width:20px;height:20px;display:block;stroke:currentColor}main{display:grid;gap:1rem}.section-lined{border:2px solid var(--line);background:var(--panel);padding:1.2rem}.hero{display:grid;gap:.65rem}.eyebrow{font-family:JetBrains Mono,monospace;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;font-size:.82rem}.hero h1{font-family:JetBrains Mono,monospace;font-size:clamp(1.8rem,4vw,3rem);line-height:1.1;text-transform:uppercase}.hero-subtitle{max-width:68ch;color:var(--muted)}.highlighted{color:var(--text)!important;font-weight:700!important}.hero-actions{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:.4rem}.btn{display:inline-flex;align-items:center;justify-content:center;border:2px solid var(--line);text-decoration:none;height:42px;font-family:JetBrains Mono,monospace;font-size:.86rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:0 .85rem}.btn-primary{background:var(--orange);color:#fff}.btn-primary:hover{background:var(--orange-dark);box-shadow:-3px 3px 0 var(--hover-shadow)}.btn-outline{background:transparent;color:var(--text)}.btn-outline:hover{background:var(--orange-soft);box-shadow:-3px 3px 0 var(--hover-shadow)}.resume-btn{gap:.45rem}.resume-btn svg{width:16px;height:16px;display:block;stroke:currentColor}.resume-btn i{font-size:16px;line-height:1}.resume-btn .material-symbols-outlined{font-size:18px;line-height:1;font-variation-settings:"FILL" 0,"wght" 400,"GRAD" 0,"opsz" 24}.about-grid{display:grid;grid-template-columns:2fr 1fr;gap:1rem}.about-grid h2,#projects h2,#blog h2,#timeline h2,#connect h2{font-family:JetBrains Mono,monospace;text-transform:uppercase;margin-bottom:.5rem}.about-grid p{color:var(--muted)}.about-content p{margin-bottom:auto}.about-content{display:flex;flex-direction:column}.skills-tags{display:flex;flex-wrap:wrap;gap:.38rem;margin-top:.6rem;margin-bottom:.35rem}.skill-tag{display:inline-flex;align-items:center;justify-content:center;border:2px solid var(--line-soft);background:color-mix(in oklab,var(--panel) 88%,var(--orange-soft));color:var(--text);font-family:JetBrains Mono,monospace;font-size:.74rem;font-weight:700;letter-spacing:.03em;text-transform:uppercase;line-height:1;padding:.26rem .4rem}.filter-tag{cursor:pointer;appearance:none;-webkit-appearance:none}.filter-tag:hover{background:var(--orange-soft);box-shadow:-2px 2px 0 var(--hover-shadow)}.filter-tag.is-active{border-color:var(--line);background:var(--orange);color:#fff}.stats-grid{list-style:none;display:grid;gap:.55rem}.stats-grid li{border:2px solid var(--line-soft);padding:.65rem;background:color-mix(in oklab,var(--panel) 78%,var(--orange-soft));display:grid;gap:.2rem}.stats-grid strong{font-family:JetBrains Mono,monospace;font-size:1.05rem}.stats-grid span{color:var(--muted);font-size:.9rem}.section-head{display:flex;justify-content:space-between;align-items:center;gap:.8rem;margin-bottom:.8rem}.project-grid{column-count:2;column-gap:.9rem}.project-card{border:2px solid var(--line);background:color-mix(in oklab,var(--panel) 88%,var(--orange-soft));display:grid;grid-template-rows:auto 1fr;width:100%;margin-bottom:.9rem;break-inside:avoid;-webkit-column-break-inside:avoid}.project-card img{width:100%;height:auto;object-fit:contain;display:block;border-bottom:2px solid var(--line)}.project-content{padding:.9rem;display:flex;flex-direction:column;gap:.5rem}.project-content .btn{margin-top:0}.project-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem}.project-actions .btn{width:100%}.project-content h3{font-family:JetBrains Mono,monospace;text-transform:uppercase;font-size:1rem}.project-content p{color:var(--muted);font-size:.95rem;margin-bottom:auto}.project-tags{display:flex;flex-wrap:wrap;gap:.38rem;margin-top:.6rem;margin-bottom:.4rem}.project-card.is-hidden{display:none}.blog-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.9rem}.blog-card{border:2px solid var(--line);background:color-mix(in oklab,var(--panel) 88%,var(--orange-soft));padding:.9rem;display:flex;flex-direction:column;gap:.55rem}.blog-card.is-hidden{display:none}.blog-index-section,.blog-card,.blog-post,.blog-content{font-family:Inter,Arial,sans-serif}.blog-date{font-family:JetBrains Mono,monospace;color:var(--muted);font-size:.78rem;text-transform:uppercase;letter-spacing:.04em}.blog-card h2,.blog-card h3{font-family:JetBrains Mono,monospace;font-size:1rem;text-transform:uppercase;line-height:1.25}.blog-card p{color:var(--muted)}.blog-tags{display:flex;flex-wrap:wrap;gap:.38rem;margin-top:auto;margin-bottom:.25rem}.blog-index-section h1,.blog-post h1{font-family:JetBrains Mono,monospace;text-transform:uppercase;margin-bottom:.55rem}.blog-index-subtitle{color:var(--muted);margin-bottom:1rem}.blog-post{width:100%}.blog-content{margin-top:.95rem;display:grid;gap:.85rem}.blog-content h2,.blog-content h3{font-family:JetBrains Mono,monospace;text-transform:uppercase;line-height:1.25}.blog-content ul,.blog-content ol{padding-left:1.2rem}.blog-content code{font-family:JetBrains Mono,monospace}.timeline-scroll-shell{display:grid;grid-template-columns:minmax(0,1fr) .9rem;gap:.35rem;align-items:stretch}.timeline-list{list-style:none;display:grid;gap:.6rem;height:26rem;overflow-y:auto;padding-right:.05rem;overscroll-behavior:auto;scrollbar-gutter:stable both-edges;scrollbar-width:none;-ms-overflow-style:none}.timeline-list::-webkit-scrollbar{width:0;height:0}.timeline-scrollbar{position:relative;border:2px solid var(--line-soft);background:color-mix(in oklab,var(--panel) 82%,var(--bg));min-height:0}.timeline-scrollbar.is-hidden{opacity:0}.timeline-scrollbar-thumb{position:absolute;top:0;left:0;width:100%;height:3rem;background:linear-gradient(180deg,var(--orange) 0%,var(--orange-dark) 100%);border:2px solid color-mix(in oklab,var(--panel) 82%,var(--bg));cursor:grab;touch-action:none;user-select:none}.timeline-scrollbar-thumb:hover{background:linear-gradient(180deg,var(--orange-dark) 0%,var(--orange) 100%)}.timeline-scrollbar-thumb.is-dragging{cursor:grabbing}.timeline-list>li{border:2px solid var(--line-soft);padding:.75rem;display:grid;grid-template-columns:85px 1fr;gap:.7rem;align-items:start}.year{font-family:JetBrains Mono,monospace;font-weight:800;color:var(--orange)}.timeline-year-box{min-width:0}.timeline-month-list{list-style:none;display:grid;gap:.6rem}.timeline-month{display:inline-block;font-family:JetBrains Mono,monospace;font-size:1rem;text-transform:uppercase;margin-bottom:.2rem}.timeline-achievements{margin:.15rem 0 0;padding-left:1.2rem}.timeline-achievements li{color:var(--muted);font-size:.95rem}.social-links{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.55rem}.social-links a{border:2px solid var(--line);color:var(--text);text-decoration:none;text-align:center;height:42px;display:inline-flex;align-items:center;justify-content:center;padding:0 .6rem;font-family:JetBrains Mono,monospace;text-transform:uppercase;font-size:.84rem;background:transparent}.social-links a:hover{background:var(--orange);color:#fff;box-shadow:-3px 3px 0 var(--hover-shadow)}.site-footer{text-align:center;font-family:JetBrains Mono,monospace;text-transform:uppercase;letter-spacing:.04em;font-size:.8rem;color:var(--muted);margin-bottom:1rem}.scroll-aid{position:fixed;right:1.2rem;width:44px;height:44px;border:2px solid var(--line);background:var(--orange);color:#fff;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .18s ease,visibility .18s ease;z-index:20}.scroll-bottom-aid{bottom:1.2rem}.scroll-top-aid{top:1.2rem}.scroll-aid:hover{background:var(--orange-dark);box-shadow:-3px 3px 0 var(--hover-shadow)}.scroll-aid svg{width:20px;height:20px;display:block;stroke:currentColor}.scroll-aid.is-visible{opacity:1;visibility:visible;pointer-events:auto}@media (max-width: 980px){.about-grid{grid-template-columns:1fr}.project-grid{column-count:1}.blog-grid{grid-template-columns:1fr}.social-links{grid-template-columns:repeat(3,minmax(0,1fr))}.site-header{grid-template-columns:1fr auto;grid-template-areas:"brand toggle" "nav nav";align-items:center;justify-items:stretch;gap:.75rem}.brand{grid-area:brand}.theme-toggle{grid-area:toggle;justify-self:end}.main-nav{grid-area:nav;justify-content:flex-start}}@media (max-width: 640px){body{background-size:24px 24px}.page-shell{width:min(1120px,96vw)}.section-lined,.site-header{padding:.9rem}.site-header{grid-template-columns:1fr auto;grid-template-areas:"brand toggle" "nav nav";align-items:center;justify-items:stretch}.brand{grid-area:brand}.theme-toggle{grid-area:toggle;justify-self:end}.main-nav{grid-area:nav;justify-content:space-between;width:100%}.main-nav a{flex:1 1 calc(50% - .45rem);text-align:center}.social-links{grid-template-columns:1fr}.timeline-list>li{grid-template-columns:1fr;gap:.3rem}.timeline-list{height:20rem}.scroll-aid{right:.9rem}.scroll-bottom-aid{bottom:.9rem}.scroll-top-aid{top:.9rem}.site-scrollbar{top:.5rem;right:0;bottom:.5rem;width:.8rem}}
