:root{--color-bg: #0f1419;--color-surface: #161d27;--color-card: #1a2332;--color-border: #253347;--color-border-faint: #1a2532;--color-text: #e8eef4;--color-text-sub: #b0bec8;--color-text-muted: #7a8fa0;--color-text-faint: #3d5060;--color-accent: #4ae8a0;--color-gold: #e8a735;--color-red: #f2685f;--color-nav-bg: rgba(15, 20, 25, .92);--font-body: "IBM Plex Sans", "Segoe UI", system-ui, -apple-system, sans-serif;--font-display: "IBM Plex Sans Condensed", "IBM Plex Sans", "Segoe UI", system-ui, sans-serif;--font-mono: "JetBrains Mono", "Cascadia Mono", "Consolas", ui-monospace, monospace;--text-xs: 10px;--text-sm: 11px;--text-base: 13px;--text-md: 14px;--text-lg: 16px;--text-xl: 20px;--leading-tight: 1.15;--leading-snug: 1.3;--leading-normal: 1.6;--leading-loose: 1.75;--tracking-label: 2px;--space-xs: 4px;--space-sm: 8px;--space-md: 16px;--space-lg: 24px;--space-xl: 32px;--page-gutter: 32px;--page-top: 96px;--page-bottom: 80px;--section-gap: 80px;--heading-gap: 24px;--intro-gap: 40px;--content-gap: 18px;--card-gap: 16px;--type-hero: clamp(44px, 11vw, 84px);--type-h1: clamp(27px, 6.4vw, 40px);--type-h2: clamp(20px, 4.2vw, 26px);--type-h3: clamp(17px, 3.4vw, 21px);--type-lead: clamp(15px, 3.2vw, 17px);--nav-height: 64px;--article-width: 760px;--radius-sm: 2px;--radius-md: 4px;--radius-lg: 6px;--transition-fast: .2s;--transition-base: .3s}@media(max-width:900px){:root{--page-gutter: 26px;--page-top: 72px;--page-bottom: 64px;--section-gap: 64px;--intro-gap: 32px}}@media(max-width:560px){:root{--page-gutter: 20px;--page-top: 52px;--page-bottom: 52px;--section-gap: 48px;--heading-gap: 18px;--intro-gap: 26px;--card-gap: 14px}}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:calc(var(--nav-height) + var(--space-md))}body{background:var(--color-bg);color:var(--color-text);transition:background var(--transition-base),color var(--transition-base);-webkit-font-smoothing:antialiased}img,svg,video{max-width:100%}::selection{background:color-mix(in srgb,var(--color-gold) 27%,transparent);color:var(--color-text)}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:var(--color-bg)}::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:3px}@keyframes fadeUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes slideIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}:where(a,button,[role=link],[tabindex]):focus-visible{outline:2px solid var(--color-gold);outline-offset:2px;border-radius:var(--radius-sm)}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}body,.u-body{font-family:var(--font-body);font-size:var(--text-lg);line-height:var(--leading-normal)}.u-display,h1,h2,h3,h4{font-family:var(--font-display);font-weight:700;line-height:var(--leading-tight)}.u-mono,code,kbd,samp,pre{font-family:var(--font-mono)}.u-label{font-family:var(--font-mono);font-size:var(--text-sm);letter-spacing:var(--tracking-label);text-transform:uppercase}button,input,select,textarea{font:inherit;color:inherit}.page-shell{padding-left:var(--page-gutter);padding-right:var(--page-gutter);margin-left:auto;margin-right:auto}.section{padding:80px var(--page-gutter);max-width:calc(900px + 2 * var(--page-gutter));margin:0 auto;transition:opacity .8s,transform .8s}.article-shell{max-width:calc(var(--article-width) + 2 * var(--page-gutter));margin:0 auto;padding:calc(var(--nav-height) + var(--page-top)) var(--page-gutter) var(--page-bottom)}.page-main{max-width:calc(860px + 2 * var(--page-gutter));margin:0 auto;padding:calc(var(--nav-height) + var(--page-top)) var(--page-gutter) var(--page-bottom);position:relative;z-index:2}.page-title,.section-title{font-family:var(--font-display);font-weight:700;color:var(--color-text);line-height:1.12;letter-spacing:-.2px;text-wrap:balance}.page-title{font-size:var(--type-h1)}.section-title{font-size:var(--type-h2)}@media(min-width:901px){.section-title{font-size:36px}}.lead{font-size:var(--type-lead);line-height:1.7;color:var(--color-text-muted)}.page-intro{margin-bottom:var(--intro-gap)}.page-intro__eyebrow{font-family:var(--font-mono);font-size:var(--text-sm);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--color-text-faint);margin-bottom:var(--space-sm);display:flex;align-items:center;gap:10px}.page-intro__title{font-family:var(--font-display);font-size:var(--type-h1);font-weight:700;line-height:1.12;letter-spacing:-.2px;color:var(--color-text);margin:0 0 var(--space-md);text-wrap:balance}.page-intro__desc{font-size:var(--type-lead);line-height:1.7;color:var(--color-text-muted);max-width:52ch;margin:0}.site-header{position:fixed;top:0;left:0;right:0;z-index:100;height:var(--nav-height);padding:0 var(--page-gutter);background:var(--color-nav-bg);border-bottom:1px solid var(--color-border);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.site-header__inner{max-width:960px;height:var(--nav-height);margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:var(--space-md)}.site-header__brand{flex-shrink:1;min-width:0}.site-header__controls{display:flex;align-items:center;gap:var(--space-lg);flex-shrink:0}.site-nav{display:flex;align-items:center;gap:var(--space-lg)}.site-nav__link{background:none;border:none;padding:var(--space-sm) 0;cursor:pointer;font-family:var(--font-mono);font-size:12px;letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--color-text-muted);border-bottom:1px solid transparent;transition:color var(--transition-base),border-color var(--transition-base);white-space:nowrap}.site-nav__link:hover{color:var(--color-gold);border-bottom-color:var(--color-gold)}.site-nav__link--active{color:var(--section-accent, var(--color-gold));border-bottom-color:transparent}.site-nav__link--active:hover{color:var(--section-accent, var(--color-gold));border-bottom-color:transparent;opacity:.75}.site-header__burger{display:none;background:none;border:none;cursor:pointer;padding:var(--space-xs);color:var(--color-text-muted);font-size:22px;line-height:1}.site-header__mobile{display:none;padding:var(--space-md) 0;border-top:1px solid var(--color-border);background:var(--color-surface);flex-direction:column;align-items:center;gap:var(--space-md);animation:slideIn var(--transition-base)}.site-header__mobile[data-open=true]{display:flex}@media(max-width:860px){.site-header__controls,.site-nav{gap:var(--space-md)}}@media(max-width:700px){.site-nav,.site-header__extras{display:none}.site-header__burger{display:block}.site-header{height:auto}.site-header__inner{height:var(--nav-height)}}.site-header__mobile-extras{display:none}@media(max-width:700px){.site-header__mobile-extras{display:block}}@media(max-width:420px){.site-brand__section{display:none}}@media(pointer:coarse){.site-nav__link,.site-header__burger{min-height:40px;display:inline-flex;align-items:center}}.site-brand__text{transition:opacity var(--transition-base)}.site-brand__text--hidden{opacity:0;pointer-events:none}.hero{min-height:100vh;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:120px var(--page-gutter) 80px;text-align:center}.hero__greeting{font-family:var(--font-mono);font-size:12px;color:var(--color-gold);letter-spacing:4px;text-transform:uppercase;margin-bottom:var(--space-md)}.hero__name{font-family:var(--font-display);font-size:clamp(48px,10vw,84px);font-weight:700;color:var(--color-text);line-height:1;letter-spacing:-1px;margin-bottom:var(--space-sm);text-shadow:0 0 60px rgba(232,167,53,.15)}.hero__tagline{margin-bottom:var(--space-xl);font-family:var(--font-mono);font-size:14px;letter-spacing:3px;text-transform:uppercase;color:var(--color-text-muted)}.hero__desc{font-size:var(--text-lg);line-height:1.7;color:var(--color-text-muted);max-width:520px;margin:0 auto 40px}.hero__corner{position:absolute;width:40px;height:40px;opacity:.5}.hero__corner--tl{top:100px;left:32px;border-top:1px solid var(--color-border);border-left:1px solid var(--color-border)}.hero__corner--br{bottom:40px;right:32px;border-bottom:1px solid var(--color-border);border-right:1px solid var(--color-border)}.hero__scrollhint{position:absolute;bottom:30px;left:50%;transform:translate(-50%)}.hero__scrollhint span{display:block;width:1px;height:40px;background:linear-gradient(to bottom,var(--color-gold),transparent)}.rivet-row{display:flex;gap:40px;justify-content:center;padding:var(--space-sm) 0;opacity:.5}.rivet{display:inline-block;width:8px;height:8px;border-radius:50%;background:radial-gradient(circle at 35% 35%,#6b7b8d,#2a3a4a);box-shadow:inset 0 1px 2px #00000080,0 1px 1px #ffffff0d}.hero{padding-left:var(--page-gutter);padding-right:var(--page-gutter)}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);position:relative;overflow:hidden;transition:border-color .4s,transform .4s}.card:before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,var(--color-gold),transparent);opacity:0;transition:opacity .4s}.card:hover{border-color:color-mix(in srgb,var(--color-gold) 33%,transparent);transform:translateY(-2px)}.card:hover:before{opacity:1}.card-green{background:var(--color-surface);border:1px solid var(--color-border);border-left:2px solid var(--color-accent);border-radius:var(--radius-md);position:relative;overflow:hidden;transition:border-color .4s,transform .4s}.card-green:before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,var(--color-accent),transparent);opacity:0;transition:opacity .4s}.card-green:hover{border-color:color-mix(in srgb,var(--color-accent) 20%,transparent);transform:translateY(-2px)}.card-green:hover:before{opacity:1}.skill-chip{display:inline-block;padding:var(--space-xs) 12px;margin:3px;font-family:var(--font-mono);font-size:var(--text-sm);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-muted);transition:border-color var(--transition-base),color var(--transition-base)}.skill-chip:hover{border-color:var(--color-gold);color:var(--color-gold)}.social-link{display:flex;align-items:center;gap:10px;color:var(--color-text-muted);text-decoration:none;padding:12px var(--space-md);border:1px solid var(--color-border);border-radius:3px;font-family:var(--font-mono);font-size:var(--text-base);transition:border-color var(--transition-base),color var(--transition-base),background var(--transition-base);cursor:pointer}.social-link:hover{border-color:var(--color-gold);color:var(--color-gold);background:color-mix(in srgb,var(--color-gold) 3%,transparent)}.blog-card{cursor:pointer}.blog-card:hover .blog-title{color:var(--color-gold)!important}.blog-card:hover .blog-title-green{color:var(--color-accent)!important}.back-btn:hover{border-color:var(--color-gold)!important;color:var(--color-gold)!important}.footer-grid{display:grid;grid-template-columns:1.45fr .9fr 1fr;gap:40px}.footer-pages{justify-self:end;min-width:120px}.footer-links{justify-self:end;min-width:160px}.footer-social-list{display:flex;flex-direction:column;gap:10px}@media(max-width:640px){.footer-grid{grid-template-columns:minmax(0,1fr) auto;gap:24px 18px}.footer-pages{justify-self:end;text-align:right;min-width:0;display:flex;flex-direction:column;align-items:flex-end}.footer-pages>div{align-items:flex-end}.footer-pages .footer-page-link{text-align:right}.footer-links{grid-column:1 / -1;justify-self:stretch;min-width:0;display:flex;flex-direction:column;align-items:center}.footer-links__label{display:none}.footer-social-list{flex-direction:row;flex-wrap:wrap;justify-content:center;align-items:center;gap:20px}.footer-social-label{display:none}}.project-card__body{display:flex;flex-direction:column;height:100%}.project-card__desc{overflow:hidden;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical}.project-card__tags{margin-top:auto}.project-card__cover{align-self:stretch;aspect-ratio:1 / 1;flex-shrink:0;display:block;height:100%;width:auto;object-fit:cover}.project-card__cover--empty{display:grid;place-items:center;border-right:1px solid transparent}@media(max-width:640px){.project-card{flex-direction:column}.project-card__cover{align-self:auto;width:100%;height:auto;aspect-ratio:21 / 9}.project-card__cover--empty{aspect-ratio:auto;height:44px;border-right:none;border-bottom:1px solid var(--color-border)}}.site-footer__inner{max-width:calc(900px + 2 * var(--page-gutter));margin:0 auto;padding:56px var(--page-gutter) 28px}.article-content{font-family:var(--font-body);line-height:var(--leading-loose)}.article-content h1,.article-content h2,.article-content h3{font-family:var(--font-display);line-height:var(--leading-snug)}.article-content{--md-scale: 1.05}.article-content--compact{--md-scale: 1}.article-content h1{font-size:calc(34px * var(--md-scale));line-height:1.2;margin:0 0 16px}.article-content h2{font-size:calc(26px * var(--md-scale));line-height:1.3;margin:28px 0 14px}.article-content h3{font-size:calc(21px * var(--md-scale));line-height:1.35;margin:22px 0 10px}.article-content--compact h1{font-size:26px}.article-content--compact h2{font-size:21px;margin:18px 0 10px}.article-content--compact h3{font-size:18px;margin:14px 0 8px}.article-content p{font-size:calc(16px * var(--md-scale));line-height:1.85;margin:0 0 18px}.article-content--compact p{font-size:15px;line-height:1.8}.article-content ul,.article-content ol{font-size:calc(16px * var(--md-scale));line-height:1.8;padding-left:22px;margin:0 0 18px}.article-content--compact ul,.article-content--compact ol{font-size:15px}@media(max-width:560px){.article-content{--md-scale: 1}.article-content h1{font-size:27px;margin-bottom:12px}.article-content h2{font-size:21px;margin:22px 0 10px}.article-content h3{font-size:18px;margin:18px 0 8px}.article-content p{line-height:1.62;margin-bottom:15px}.article-content ul,.article-content ol{line-height:1.62;padding-left:20px}}.article-content a{color:var(--color-gold);text-decoration:underline;text-underline-offset:2px;text-decoration-thickness:1px}.article-content a:hover{text-decoration-thickness:2px}.article-content code,.article-content pre{font-family:var(--font-mono)}.article-content blockquote{font-style:italic}.article-content pre,.article-content .table-scroll{overflow-x:auto;max-width:100%}.article-content table{border-collapse:collapse;width:100%}.article-content figure{margin:0 0 1.4em}.article-content figcaption{font-family:var(--font-mono);font-size:var(--text-sm);line-height:var(--leading-normal)}.article-content ul,.article-content ol{padding-left:1.3em;margin:0 0 1.1em}.article-content li{margin-bottom:.35em}
