:root{--color-bg: #0f0d09;--color-bg-invert: #fff;--color-surface: rgb(30 29 21 / .82);--color-surface-invert: oklch(from var(--color-surface) calc(1 - l) c h);--color-surface-strong: #1a231f;--color-surface-strong-invert: oklch(from var(--color-surface-strong) calc(1 - l) c h);--color-border: rgba(195, 225, 205, .12);--color-border-strong: rgba(195, 225, 205, .24);--color-text-primary: oklch(.9 0 85);--color-text-primary-invert: oklch(from var(--color-text-primary) calc(1 - l) c h);--color-text-muted: #a8b7af;--color-text-muted-invert: #444;--color-link-primary: #8fbcbb;--color-link-primary-invert: oklch(from var(--color-link-primary) calc(1 - l) c h);--color-link-hover: #a9d1d0;--color-link-hover-invert: #444;--color-shadow: rgba(0, 0, 0, .35);--color-heading-1: var(--color-text-primary);--color-heading-1-invert: var(--color-text-primary-invert);--color-heading-2: #f4e2be;--color-heading-2-invert: oklch(from var(--color-heading-2) calc(1 - l) c h);--color-heading-3: #a3be8c;--color-heading-3-invert: oklch(from var(--color-heading-3) calc(1 - l) c h);--font-sans: "IBM Plex Sans", "Segoe UI", sans-serif;--font-mono: "IBM Plex Mono", Consolas, monospace;--text-sm: .875rem;--text-base: 1rem;--text-xl: 1.25rem;--text-2xl: 1.5rem;--text-3xl: 1.875rem;--text-5xl: clamp(3rem, 8vw, 5rem);--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-6: 1.5rem;--space-8: 2rem;--space-12: 3rem;--line-height-tight: 1.1;--line-height-snug: 1.3;--line-height-base: 1.65;--letter-spacing-tighter: -.02em;--letter-spacing-tightest: -.03em;--prose-max-width: 65ch;--container-inner: 66rem;--nav-list-margin-start: var(--space-2);--nav-list-gap: var(--space-1);--title-margins: var(--space-2) 0 0}.invert{--color-bg: var(--color-bg-invert);--color-text-primary: var(--color-text-primary-invert);--color-text-muted: var(--color-text-muted-invert);--color-heading-1: var(--color-heading-1-invert);--color-heading-2: var(--color-heading-2-invert);--color-heading-3: var(--color-heading-3-invert);--color-link-primary: var(--color-link-primary-invert);--color-link-hover: var(--color-link-hover-invert);--color-surface: var(--color-surface-invert);--color-surface-strong: var(--color-surface-strong-invert)}h1,h2,h3{line-height:var(--line-height-tight);letter-spacing:var(--letter-spacing-tighter);font-weight:700}h1{font-size:var(--text-3xl);color:var(--color-heading-1)}h2{font-size:var(--text-2xl);color:var(--color-heading-2)}h3{font-size:var(--text-xl);color:var(--color-heading-3)}body{font-family:var(--font-sans);font-size:var(--text-base);color:var(--color-text-primary);background:var(--color-bg);line-height:var(--line-height-base)}a{color:var(--color-link-primary);text-decoration:grammar-error;&:hover{color:var(--color-link-hover)}}.prose{max-width:min(var(--prose-max-width),100%);& h2{margin-top:var(--space-8);margin-bottom:var(--space-3)}& h3{margin-top:var(--space-6);margin-bottom:var(--space-2)}& p,ul,ol{margin-block:var(--space-4)}& ul,ol{padding-left:var(--space-6)}& img{margin:var(--space-6) auto;border-radius:var(--space-4);box-shadow:0 12px 30px #0000004d}}.article-layout__title{margin:var(--title-margins)}code{font-family:var(--font-mono)}html{background-color:var(--color-bg);scroll-behavior:smooth;box-sizing:border-box;view-transition-name:none}*{box-sizing:inherit}body{margin:0;min-height:100vh;min-width:320px}img{display:block;max-width:100%}@view-transition{navigation:auto}main{padding-bottom:var(--space-6);view-transition-name:main-content}::view-transition-old(main-content){animation:fade-out .2s ease-out both,slide-out .2s ease-out both;mix-blend-mode:normal}::view-transition-new(main-content){animation:fade-in .2s ease-in both,slide-in .2s ease-in both;mix-blend-mode:normal}@keyframes fade-out{to{opacity:0}}@keyframes fade-in{0%{opacity:0}}@keyframes slide-out{to{transform:translate(-30px)}}@keyframes slide-in{0%{transform:translate(30px)}}.container{max-width:var(--container-inner);margin-inline:auto;padding-inline:var(--space-6)}.glass-panel{background:var(--color-surface);border:1px solid var(--color-border);box-shadow:0 16px 50px var(--color-shadow);backdrop-filter:blur(18px)}.site-header{padding:var(--space-6) var(--space-6) 0;margin-bottom:var(--space-6);container-type:inline-size;container-name:site-header;display:flex;justify-content:space-between}.site-avatar{height:6rem;margin-block:-2rem;translate:0 25%;overflow:hidden;& img{width:100%;height:100%;object-fit:cover;overflow:visible}}.site-logo{height:4rem;display:flex;align-items:center;filter:invert(1);padding:var(--space-1);& img{height:100%;width:auto;object-fit:contain}}.site-nav{padding:.5rem;border-radius:999px;display:flex;align-items:center;& ul{display:flex;flex-grow:1;justify-content:end;gap:var(--nav-list-gap, .25rem);list-style:none;padding:0;margin-inline-start:var(--nav-list-margin-start, 0);&[popover]{display:flex;position:static;border:0;background:transparent;overflow:visible;color:inherit}}& a{display:inline-flex;align-items:center;justify-content:center;min-height:2.5rem;padding:.4rem .9rem;border-radius:999px;font-weight:600;font-size:var(--text-sm);color:var(--color-text-primary);transition:background-color .16s ease,color .16s ease,transform .16s ease;text-decoration:none;&:hover,&[aria-current=page]{background:var(--color-border);color:var(--color-link-primary)}}}.nav-toggle{display:none;align-items:center;justify-content:center;anchor-name:--primary-menu-toggle;width:2.5rem;height:2.5rem;padding:0;border:0;border-radius:999px;background:transparent;color:var(--color-text-primary);cursor:pointer;transition:background-color .16s ease,color .16s ease;&:hover,&:focus-visible{background:var(--color-border);color:var(--color-link-primary)}}@container site-header (max-width: 45ch){.site-nav{justify-content:space-between;.nav-toggle{display:inline-flex}& ul[popover]{display:none;&:popover-open{display:flex;flex-direction:column;align-items:flex-end;position:fixed;position-anchor:--primary-menu-toggle;inset:auto;top:calc(anchor(bottom) + 1rem);right:calc(anchor(right) - .5rem);width:min(18rem,calc(100vw - 2rem));padding:.6rem;border-radius:1.25rem;background:var(--color-surface);border:1px solid var(--color-border);box-shadow:0 16px 50px var(--color-shadow);backdrop-filter:blur(18px);gap:.25rem}}}}.site-footer{border-top:1px solid var(--color-border);padding:var(--space-8) var(--space-6) var(--space-12)}.footer-inner{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1rem;.footer-nav{display:flex;gap:var(--space-4);flex-wrap:wrap;font-size:var(--text-sm);font-weight:600}.footer-copy{color:var(--color-text-muted);font-size:var(--text-sm)}}.home-hero__body{margin-top:var(--space-6);max-width:38rem;font-size:var(--text-base)}.page-title-block{padding-block:var(--space-2);:last-child{margin-bottom:0}}.photo-strip{margin-top:2rem;display:flex;justify-content:center;gap:1.25rem;padding:.5rem 0 1rem;scrollbar-width:thin;overflow:hidden}.photo-card{position:relative;flex:0 0 11rem;aspect-ratio:9 / 10;overflow:hidden;border-radius:1rem;border:2px solid rgba(219,237,226,.35)}.photo-card img{width:100%;height:100%;object-fit:cover}.card-list{display:grid;gap:2rem}.card{background-color:var(--color-surface);padding:var(--space-6);color:var(--color-text-primary);border-radius:var(--space-6);>:first-child{margin-top:0}}.card-grid{--grid-card-max-w: 35ch;container-type:inline-size;container-name:article-list;display:grid;grid-template-columns:repeat(auto-fit,minmax(var(--grid-card-max-w),1fr));column-gap:var(--space-4);row-gap:var(--space-4)}.grid-card-3{display:grid;grid-template-rows:subgrid;grid-row:span 3;row-gap:0}.indent-left{border-left:1px solid rgba(195,225,205,.14);padding-left:1.5rem}.link-line{display:inline-flex;align-items:center;gap:var(--space-1);margin-top:var(--space-4);color:var(--color-link-primary);font-size:var(--text-sm);font-weight:600}.divider{height:1px;border:0;background:linear-gradient(90deg,#c3e1cd0d,#c3e1cd38,#c3e1cd0d);margin-block:var(--space-3)}.article-layout{margin-top:var(--space-6);& article{max-width:42rem}&__header{display:flex;flex-direction:column}}.caption{margin-top:var(--space-2);text-align:center;font-size:var(--text-sm);color:var(--color-text-muted)}.project-grid{display:grid;gap:2rem}.project-list{display:grid;grid-template-columns:repeat(1,minmax(0,1fr));gap:2rem;list-style:none;margin:0;padding:0}.iframe-panel{width:min(100%,48rem);height:24rem;border:1px solid var(--color-border-strong);border-radius:1rem;box-shadow:0 16px 34px #0000003d;background:#0f1512}@media(min-width:768px){.article-index-list{padding-left:1.5rem}.project-list{grid-template-columns:repeat(2,minmax(0,1fr))}}
