﻿.mx-auto{margin-right:auto;margin-left:auto}.pt2{padding-top:1rem}.pb4{padding-bottom:4rem}.px3{padding-right:2rem;padding-left:2rem}h1,.h1{display:block;margin-top:3rem;margin-bottom:1rem;color:#2bbc8a;letter-spacing:.01em;font-weight:700;font-style:normal;font-size:1.5em;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased}h2,.h2{position:relative;display:block;margin-top:2rem;margin-bottom:.5rem;color:#eee;text-transform:none;letter-spacing:normal;font-weight:bold;font-size:1rem}h3{color:#eee;text-decoration:underline;font-weight:bold;font-size:.9rem}h4,h5,h6{display:inline;text-decoration:none;color:#ccc;font-weight:bold;font-size:.9rem}h3,h4,h5,h6{margin-top:.9rem;margin-bottom:.5rem}hr{border:0.5px dashed #ccc;opacity:.5;margin:0;margin-top:20px;margin-bottom:20px}strong{font-weight:bold}em,cite{font-style:italic}sup,sub{position:relative;vertical-align:baseline;font-size:.75em;line-height:0}sup{top:-.5em}sub{bottom:-.2em}small{font-size:.85em}acronym,abbr{border-bottom:1px dotted}ul,ol,dl{line-height:1.65}ul ul,ol ul,ul ol,ol ol{margin-top:0;margin-bottom:0}ol{list-style:decimal}dt{font-weight:bold}table{width:100%;border-collapse:collapse;text-align:left;font-size:13px;overflow:auto;display:block}th{padding:8px;border-bottom:1px dashed #666;color:#eee;font-weight:bold;font-size:14px}td{padding:0 8px;border-bottom:none}@font-face{font-weight:400;font-style:normal;font-family:"JetBrains Mono";font-display:swap;src:local("JetBrains Mono"),local("JetBrains-Mono"),url("../lib/JetBrainsMono/web/woff2/JetBrainsMono-Regular.woff2") format("woff2")}@font-face{font-weight:900;font-style:normal;font-family:"Font Awesome 6 Free";font-display:block;src:url("../lib/font-awesome-free-6.5.2-web/webfonts/fa-solid-900.woff2") format("woff2")}@font-face{font-weight:400;font-style:normal;font-family:"Font Awesome 6 Free";font-display:block;src:url("../lib/font-awesome-free-6.5.2-web/webfonts/fa-regular-400.woff2") format("woff2")}@font-face{font-weight:400;font-style:normal;font-family:"Font Awesome 6 Brands";font-display:block;src:url("../lib/font-awesome-free-6.5.2-web/webfonts/fa-brands-400.woff2") format("woff2")}.fa,.fas,.far,.fab{display:inline-block;font-style:normal;font-variant:normal;line-height:1;text-rendering:auto;-webkit-font-smoothing:antialiased}.fa,.fas{font-weight:900;font-family:"Font Awesome 6 Free"}.far{font-weight:400;font-family:"Font Awesome 6 Free"}.fab{font-weight:400;font-family:"Font Awesome 6 Brands"}.fa-fw{width:1.25em;text-align:center}.fa-lg{vertical-align:-0.075em;font-size:1.25em;line-height:0.05em}.fa-arrow-up::before{content:"\f062"}.fa-bolt::before{content:"\f0e7"}.fa-book::before{content:"\f02d"}.fa-chevron-down::before{content:"\f078"}.fa-chevron-up::before{content:"\f077"}.fa-code::before{content:"\f121"}.fa-compress::before{content:"\f066"}.fa-cube::before{content:"\f1b2"}.fa-dumbbell::before{content:"\f44b"}.fa-envelope::before{content:"\f0e0"}.fa-expand::before{content:"\f065"}.fa-flag::before{content:"\f024"}.fa-gamepad::before{content:"\f11b"}.fa-globe::before{content:"\f0ac"}.fa-lightbulb::before{content:"\f0eb"}.fa-link::before{content:"\f0c1"}.fa-magnet::before{content:"\f076"}.fa-memory::before{content:"\f538"}.fa-microchip::before{content:"\f2db"}.fa-rotate-left::before{content:"\f2ea"}.fa-scroll::before{content:"\f70e"}.fa-terminal::before{content:"\f120"}.fa-tv::before{content:"\f26c"}.fa-wrench::before{content:"\f0ad"}.fa-xmark::before{content:"\f00d"}.fa-github::before{content:"\f09b"}.fa-itch-io::before{content:"\f83a"}.fa-kaggle::before{content:"\f5fa"}.fa-linkedin::before{content:"\f08c"}*,*:before,*:after{box-sizing:border-box}html{margin:0;padding:0;height:100%;-webkit-text-size-adjust:100%}body{margin:0;height:100%;background-color:#1d1f21;color:#c9cacc;font-display:swap;font-weight:400;font-size:15px;font-family:"JetBrains Mono",monospace;line-height:1.65;text-rendering:geometricPrecision;flex:1;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased}.content{position:relative;display:flex;flex-direction:column;min-height:100%;overflow-wrap:break-word}.content p{hyphens:auto}.content code{hyphens:manual}.content a{color:#c9cacc;text-decoration:none;background-image:linear-gradient(transparent, transparent 5px, #c9cacc 5px, #c9cacc);background-position:bottom;background-size:100% 6px;background-repeat:repeat-x}.content a:hover{background-image:linear-gradient(transparent, transparent 4px, #d480aa 4px, #d480aa)}.content a.icon{background:none}.content a.icon:hover{color:#d480aa}.content h1 a,.content .h1 a,.content h2 a,.content h3 a,.content h4 a,.content h5 a,.content h6 a{background:none;color:inherit;text-decoration:none}.content h1 a:hover,.content .h1 a:hover,.content h2 a:hover,.content h3 a:hover,.content h4 a:hover,.content h5 a:hover,.content h6 a:hover{background-image:linear-gradient(transparent, transparent 6px, #d480aa 6px, #d480aa);background-position:bottom;background-size:100% 6px;background-repeat:repeat-x}.content h6 a{background:none;color:inherit;text-decoration:none}.content h6 a:hover{background-image:linear-gradient(transparent, transparent 6px, #d480aa 6px, #d480aa);background-position:bottom;background-size:100% 6px;background-repeat:repeat-x}@media (min-width: 540px){.image-wrap{flex-direction:row;margin-bottom:2rem}.image-wrap .image-block{flex:1 0 35%;margin-right:2rem}.image-wrap p{flex:1 0 65%}}.max-width{max-width:58rem}@media (max-width: 480px){.px3{padding-right:1rem;padding-left:1rem}.my4{margin-top:2rem;margin-bottom:2rem}}.post-list{padding:0}.post-list .post-item{margin-bottom:1rem;margin-left:0;list-style-type:none}.post-list .post-item .meta{display:block;margin-right:16px;min-width:100px;color:#999;font-size:14px}@media (min-width: 480px){.post-list .post-item{display:flex;margin-bottom:5px}.post-list .post-item .meta{text-align:left}}.project-list{padding:0;list-style:none}.project-list .project-item{margin-bottom:5px}.project-list .project-item p{display:inline}article header .posttitle{margin-top:0;margin-bottom:0;text-transform:none;font-size:1.5em;line-height:1.25}article header .meta{margin-top:0;margin-bottom:1rem}article header .meta *{color:#ccc;font-size:.85rem}article header .author{text-transform:uppercase;letter-spacing:.01em;font-weight:700}article header .postdate{display:inline}article .content h2:before{position:absolute;top:-4px;left:-1rem;color:#2bbc8a;content:"#";font-weight:bold;font-size:1.2rem}article .content img,article .content video{display:block;margin:auto;max-width:100%;height:auto}article .content .video-container{position:relative;overflow:hidden;aspect-ratio:16 / 9}article .content .video-container iframe,article .content .video-container object,article .content .video-container embed{position:absolute;top:0;left:0;margin-top:0;width:100%;height:100%}article .content .video-container iframe{border:0}article .content blockquote{margin:1rem 10px;padding:.5em 10px;background:inherit;color:#ccffb6;quotes:"\201C" "\201D" "\2018" "\2019";font-weight:bold}article .content blockquote p{margin:0}article .content blockquote:before{margin-right:.25em;color:#ccffb6;content:"\201C";vertical-align:-.4em;font-size:2em;line-height:.1em}article .content blockquote footer{margin:line-height 0;color:#999;font-size:11px}article .content blockquote footer a{background-image:linear-gradient(transparent, transparent 5px, #999 5px, #999);color:#999}article .content blockquote footer a:hover{background-image:linear-gradient(transparent, transparent 4px, #ccc 4px, #ccc);color:#ccc}article .content blockquote footer cite:before{padding:0 .5em;content:"—"}article .content .pullquote{margin:0;width:45%;text-align:left}article .content .pullquote.left{margin-right:1em;margin-left:.5em}article .content .pullquote.right{margin-right:.5em;margin-left:1em}article .content .caption{position:relative;display:block;margin-top:.5em;color:#999;text-align:center;font-size:.9em}.posttitle{text-transform:none;font-size:1.5em;line-height:1.25}.article-tag .tag-link:before{content:"#";background-image:linear-gradient(transparent, transparent 10px, #d480aa 10px, #d480aa);background-position:bottom;background-size:100% 6px;background-repeat:repeat-x}.article-category .category-link{background-image:linear-gradient(transparent, transparent 10px, #d480aa 10px, #d480aa);background-position:bottom;background-size:100% 6px;background-repeat:repeat-x}@media (min-width: 480px){.article-read-time,.article-tag,.article-category{display:inline}.article-read-time:before,.article-tag:before,.article-category:before{content:"|"}}#archive .post-list{padding:0}#archive .post-list .post-item{margin-bottom:1rem;margin-left:0;list-style-type:none}#archive .post-list .post-item .meta{display:block;margin-right:16px;min-width:100px;color:#999;font-size:14px}@media (min-width: 480px){#archive .post-list .post-item{display:flex;margin-bottom:5px;margin-left:1rem}#archive .post-list .post-item .meta{text-align:left}}@media screen and (max-width: 480px){#posts>ul>li,#projects>ul>li,#archive>ul>li{margin-left:0}#posts>ul>li>time,#projects>ul>li>time,#archive>ul>li time{margin-right:5px;font-size:0.75rem}#archive .post-list .post-item{margin-left:10px}.post>.content>ul{padding-left:0.75rem}.post-list>h2{padding-bottom:10px}}.pagination{display:inline-block;margin-top:2rem;width:100%;text-align:center}.pagination .page-number{color:#c9cacc;font-size:.8rem}.pagination a{padding:4px 6px;border-radius:5px;background-image:none;color:#c9cacc;text-decoration:none}.pagination a:hover{background-image:none}.pagination a:hover:not(.active){color:#eee}pre{overflow-x:auto;padding:15px 15px 10px 15px;border:1px dotted #666;border-radius:2px;font-size:13px;font-family:"JetBrains Mono",monospace;line-height:22px;position:relative}pre .code-copy-btn{position:absolute;top:0;right:0;border:0;border-radius:0 2px;padding:0;font-family:"JetBrains Mono", monospace;font-weight:800;font-size:0.9em;line-height:1.7;color:#fff;background-color:var(--color-code-control);min-width:60px;text-align:center;cursor:pointer;letter-spacing:0em}pre .code-copy-btn:hover{background-color:var(--color-code-control-hover);color:var(--color-accent-1)}pre code{display:block;padding:0;border:none}code{font-family:"JetBrains Mono",monospace;padding:0 5px;border:1px dotted #666;border-radius:2px}.highlight>div{border-radius:2px}.highlight pre{border:none;background:none}.highlight table pre{margin-top:0}.highlight table td:first-child pre{padding-right:0}.highlight table td:last-child pre{padding-left:0}:root{--color-accent-1: #2bbc8a;--color-background: #1d1f21;--color-surface: #26282a;--color-surface-raised: #2c2e30;--color-border: #666;--color-text: #c9cacc;--color-text-muted: #999;--color-danger: #a40000;--color-code-control: #8c8c8c;--color-code-control-hover: #666;--focus-ring: 2px solid var(--color-accent-1);--radius-sm: 3px;--radius-md: 5px;--space-1: 0.25rem;--space-2: 0.5rem;--space-3: 0.75rem;--space-4: 1rem;--space-5: 1.5rem;--space-6: 2rem}.skip-link{position:absolute;top:-9999px;left:-9999px;z-index:999}.skip-link:focus{position:fixed;top:0;left:0;background:var(--color-accent-1);color:var(--color-background);padding:10px 20px;text-decoration:none;font-size:1rem;z-index:9999}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border:0}html,body{color:var(--color-text)}html{scroll-behavior:smooth}@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:0.01ms !important;animation-iteration-count:1 !important;transition-duration:0.01ms !important}}h1,.h1{margin-top:var(--space-1);font-size:1.6rem;line-height:1.25}h2,.h2{font-size:1.15rem;line-height:1.35}h3,.h3{font-size:1rem;line-height:1.4}li{display:list-item;list-style:square;margin-bottom:5px}table{width:100%;border-collapse:separate;border-spacing:0 20px}td{vertical-align:top}article .content h2,.h2{margin-top:var(--space-5);color:var(--color-accent-1)}article .content h2::before{content:""}article .content h3,.h3{color:var(--color-accent-1);text-decoration:none}article.post header div.meta{margin-top:1rem}.article-tag{margin-left:0.50rem}.article-tag::before{content:none}.author>span{text-transform:none}.content a{text-decoration:underline;text-underline-offset:0.2rem;background-image:none}.content a:hover{color:var(--color-accent-1);background-image:none}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible{outline:var(--focus-ring);outline-offset:2px}::selection{background:var(--color-accent-1);color:var(--color-background)}.post-list>.post-item{color:var(--color-text-muted)}.icon:hover,.post-list>h2{color:var(--color-accent-1)}#archive,article{margin-bottom:var(--space-6)}#archive .post-list .post-item{display:flex}.color-accent-1{color:var(--color-accent-1)}#section-links{margin-top:25px;margin-bottom:25px}#section-links>a{text-decoration:none}#section-links>a:hover{color:var(--color-accent-1);text-decoration:underline;text-underline-offset:0.2em}.horizontal-list{display:grid;grid-template-columns:repeat(10, 1fr);gap:5px;list-style:none;padding:0;margin-left:15px}.horizontal-list li{box-sizing:border-box;list-style:none}.horizontal-list li:nth-child(4n){margin-right:0}#scroll-to-top{display:flex;justify-content:flex-end;margin-top:var(--space-6);margin-bottom:2rem}#scroll-to-top a{display:inline-flex;gap:var(--space-2);align-items:center;background:none;color:var(--color-text-muted);font-size:0.8rem}#scroll-to-top a span{text-decoration:underline;text-underline-offset:0.15em}#scroll-to-top a:hover,#scroll-to-top a:focus-visible{background:none;color:var(--color-accent-1)}#scroll-to-top a:focus-visible{outline:2px solid var(--color-accent-1);outline-offset:2px}.post-item>time{color:var(--color-text-muted);margin-right:15px}@media screen and (max-width: 480px){html,body{overflow-x:hidden}.content{width:100%;margin-right:0.5rem}li{word-wrap:break-word}.horizontal-list{grid-template-columns:repeat(5, 1fr);margin-left:5px}}@media screen and (min-width: 481px) and (max-width: 768px){.horizontal-list{grid-template-columns:repeat(7, 1fr)}}#header{width:100%;margin:0 auto var(--space-4);border-bottom:1px solid var(--color-border)}#header h1,#header .h1{display:inline;margin-top:0;margin-bottom:0;color:#c9cacc;font-weight:700;font-style:normal;font-size:1.5rem;line-height:2rem;letter-spacing:0.01em;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased}#header a{background:none;color:inherit;text-decoration:none}#title{display:block;margin-bottom:5px;padding-bottom:5px}#nav{display:flex;flex-direction:row;width:100%;margin:0 0 10px;padding:10px 0 0;border-top:1px solid var(--color-border);color:#2bbc8a;font-weight:200;font-style:normal;font-size:0.8rem;letter-spacing:0.01em}#nav .active{text-decoration:underline}#nav a{padding-right:20px}#nav a:hover,#nav a:focus-visible{color:var(--color-text)}#nav a:focus-visible{outline:var(--focus-ring);outline-offset:2px}.nav-group-desktop{display:contents}.nav-misc{position:relative;display:none;order:10}.nav-misc summary{cursor:pointer;list-style:none}.nav-misc summary::-webkit-details-marker{display:none}.nav-misc summary::after{margin-left:var(--space-1);content:"▾";font-size:0.7em}.nav-misc summary:hover,.nav-misc summary:focus-visible{color:var(--color-text)}.nav-misc summary:focus-visible{outline:var(--focus-ring);outline-offset:2px}.nav-misc[open] summary::after{content:"▴"}.nav-dropdown{position:absolute;z-index:10;top:calc(100% + var(--space-2));right:0;display:grid;min-width:10rem;padding:var(--space-2);border:1px solid var(--color-border);background:var(--color-background)}.nav-dropdown a{padding:var(--space-1) var(--space-2) !important;white-space:nowrap}#nav a:hover,#header h1:hover,#subtitle>.subtitle-item a:hover{color:var(--color-accent-1);text-decoration:underline;text-underline-offset:0.2em}#nav a:hover,#nav a:focus-visible{color:var(--color-text)}#subtitle{display:inline;float:right;margin:15px 0 0;color:var(--color-text-muted);font-size:0.75em}#subtitle>.subtitle-item{display:inline}#subtitle>.subtitle-item:not(:first-child)::before{padding-right:5px;padding-left:5px;content:"•"}@media screen and (max-width: 850px){#header #nav .nav-group-desktop{display:none}#header #nav .nav-misc{display:block}}@media screen and (max-width: 768px){#header #nav{flex-wrap:wrap;justify-content:center;gap:2px 0}#header #nav .nav-item a{padding-right:12px;font-size:0.8rem}}@media screen and (max-width: 480px){#header #title{display:block;text-align:center}#header #title h1{display:block;font-size:1.3rem}#header #nav{display:flex;justify-content:center}#header #nav .nav-item a{padding-right:10px;font-size:0.75rem}#title>h1>a{display:inline-block;width:100%}#header #title{margin-right:0}#header #title h1{display:flex;width:100%;text-align:center}#subtitle{display:block;float:none;width:100%;margin:0;padding:0 0 10px;text-align:center}}.about-list{padding-left:1.5rem}.about-list li{margin-bottom:6px;list-style:none}.about-interest-list{columns:2}.about-icon{width:1.2em;margin-right:6px;color:var(--color-accent-1);text-align:center}.about-workspace{margin:var(--space-5) 0 var(--space-6)}.about-workspace img{display:block;width:100%;height:auto;border:1px solid var(--color-border)}.about-workspace figcaption{margin-top:var(--space-2);color:var(--color-text-muted);font-size:0.72rem}@media screen and (max-width: 480px){.about-interest-list{columns:1;padding-left:0}}#footer{position:absolute;bottom:0;width:100%;margin-bottom:10px;border-top:1px solid var(--color-border);color:#999;font-size:11px;text-align:center;vertical-align:top}#footer ul{margin:0;padding:0;list-style:none}#footer li{display:inline-block;margin-right:5px;border:none;vertical-align:middle}#footer li a{margin-right:0}#footer li:last-child{margin-right:0}#footer li:last-child a{margin-right:0}#footer a{background-image:none;color:#999;text-decoration:none}#footer a:hover,#footer a:focus-visible{color:var(--color-accent-1)}#footer a:focus-visible{outline:var(--focus-ring);outline-offset:2px}#footer .footer-left{height:20px;line-height:20px;vertical-align:middle}.footer-left,.footer-right{margin-top:10px}@media (min-width: 39rem){#footer{display:flex;flex-flow:row wrap;align-content:center;align-items:center;justify-content:space-between}#footer .footer-left{align-self:flex-start;margin-right:20px}#footer .footer-right{align-self:flex-end}}@media screen and (max-width: 480px){#footer{position:relative;height:auto;padding:10px 0;text-align:center}#footer .footer-left,#footer .footer-right{display:block;width:100%}}.home-intro{padding:var(--space-5) 0 var(--space-6);border-bottom:1px solid var(--color-border)}.home-intro h1{max-width:46rem;margin:0 0 var(--space-4);color:var(--color-text);font-size:clamp(1.7rem, 4vw, 2.35rem);line-height:1.2;letter-spacing:-0.025em}.home-lede{max-width:44rem;margin:0 0 var(--space-5);color:var(--color-text-muted);font-size:1rem}.home-stats{margin:0;color:var(--color-text-muted);font-size:0.76rem}.home-stats a{color:inherit;text-decoration-color:var(--color-border)}.home-stats a:hover{color:var(--color-accent-1);text-decoration-color:currentColor}.home-section{padding-top:var(--space-6)}.home-section-heading{display:flex;align-items:end;justify-content:space-between;gap:var(--space-5);margin-bottom:var(--space-4)}.home-section-heading h2{margin:0;color:var(--color-accent-1);font-size:1.35rem}.home-section-heading>p,.home-section-heading>a{margin:0;color:var(--color-text-muted);font-size:0.78rem}.home-section-heading>a{text-decoration:none}.home-section-heading>a:hover{color:var(--color-accent-1)}.featured-grid{display:grid;grid-template-columns:repeat(3, minmax(0, 1fr));gap:var(--space-5)}.featured-item{overflow:hidden;margin:0;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface)}.featured-item:focus-within,.featured-item:hover{border-color:var(--color-accent-1)}.featured-image{display:block;overflow:hidden;aspect-ratio:16 / 9;border-bottom:1px solid var(--color-border);background:var(--color-background)}.featured-image img{display:block;width:100%;height:100%;object-fit:cover;transition:transform 180ms ease}.featured-image:hover img{transform:scale(1.015)}.featured-body{padding:var(--space-3) var(--space-4) var(--space-4)}.featured-body h3{margin:0 0 var(--space-1);color:var(--color-text);font-size:0.95rem;text-decoration:none}.featured-body h3 a{color:inherit;text-decoration:none}.featured-body h3 a:hover,.featured-body h3 a:focus-visible{color:var(--color-accent-1)}.featured-body p{margin:0;color:var(--color-text-muted);font-size:0.78rem;line-height:1.55}.featured-meta{margin-bottom:var(--space-2);color:var(--color-text-muted);font-size:0.68rem;text-transform:uppercase}#journey{margin-top:var(--space-4)}@media screen and (max-width: 800px){.featured-grid{grid-template-columns:repeat(2, minmax(0, 1fr))}}@media screen and (max-width: 620px){.home-intro{padding-top:var(--space-4)}.home-section-heading{display:block}.home-section-heading>p,.home-section-heading>a{display:inline-block;margin-top:var(--space-2)}.featured-grid{grid-template-columns:1fr}}.page-header{margin-bottom:var(--space-5)}.page-title{margin-bottom:0}.page-desc{max-width:46rem;margin:var(--space-2) 0 0;color:var(--color-text-muted);font-size:0.85rem}.page-desc>:first-child{margin-top:0}.page-desc>:last-child{margin-bottom:0}.section-header{margin-top:var(--space-5);margin-bottom:var(--space-2)}.section-header a{text-decoration:none}.section-header a:hover{text-decoration:underline;text-underline-offset:0.2em}.section-count{color:var(--color-text-muted);font-weight:normal;font-size:0.85em;text-decoration:none}a.section-count:hover{color:var(--color-accent-1)}.data-list{padding:0;list-style:none}.data-list>li{display:flex;align-items:baseline;margin-bottom:0.35rem;padding:2px 0;list-style:none}.data-list>li time{flex-shrink:0;margin-right:10px;color:var(--color-text-muted);font-size:0.85em}.data-list>li>span{overflow:hidden;min-width:0;text-overflow:ellipsis;white-space:nowrap}.data-list>li:hover>span{overflow:visible;white-space:normal}.data-list>li .item-icon{display:inline-block;width:1.25em;margin-right:4px;color:var(--color-text);text-align:center}.data-list>li i{color:var(--color-text)}.data-list>li .item-desc{color:var(--color-text-muted);font-size:0.9em}.data-list>li .item-desc::before{color:var(--color-text);content:": "}.data-list .project-summary{display:flex;flex:1 1 auto;align-items:baseline;overflow:visible;min-width:0;white-space:normal}.data-list .project-title{flex:0 0 auto}.data-list .project-description{display:flex;flex:1 1 auto;align-items:baseline;min-width:0}.data-list .project-item.project-descriptions-ready .project-description .item-desc{flex:0 1 auto;overflow:hidden;min-width:0;text-overflow:ellipsis;white-space:nowrap}.data-list .project-item.is-desc-expanded .project-summary{flex-wrap:wrap}.data-list .project-item.is-desc-expanded .project-description{display:block;flex:1 1 100%}.data-list .project-item.is-desc-expanded .item-desc{display:inline;overflow:visible;white-space:normal}.data-list .project-item.is-desc-expanded .item-desc::before{content:none}.data-list .project-desc-toggle{flex:0 0 auto;width:1.5rem;height:1.5rem;padding:0;border:0;background:transparent;color:var(--color-text-muted);cursor:pointer;opacity:0.65;vertical-align:middle}.data-list .project-desc-toggle i{color:inherit}.data-list .project-desc-toggle:hover,.data-list .project-desc-toggle:focus-visible{color:var(--color-accent-1);opacity:1}.data-list .project-desc-toggle:focus-visible{outline:2px solid var(--color-accent-1);outline-offset:1px}.data-list .project-launch{display:inline-block;margin-left:var(--space-2);padding:0 1px;background-image:none;color:var(--color-text-muted);font-size:0.82rem;line-height:1;text-decoration:none;vertical-align:0.05em}.data-list .project-launch i{color:inherit}.data-list .project-launch:hover,.data-list .project-launch:focus-visible{background:none;color:var(--color-accent-1)}.data-list .project-launch:focus-visible{outline:2px solid var(--color-accent-1);outline-offset:2px}.data-list .byte-model-link{display:inline-flex;align-items:center;justify-content:center;height:1.2rem;margin-left:var(--space-2);padding:0 0.3rem;border:1px solid var(--color-border);color:var(--color-text-muted);font-size:0.68rem;line-height:1;text-decoration:none;vertical-align:middle}.data-list .byte-model-link>span{transform:translateY(1px)}.data-list .byte-model-link:hover,.data-list .byte-model-link:focus-visible{border-color:var(--color-accent-1);color:var(--color-accent-1)}.data-list .byte-model-link:focus-visible{outline:2px solid var(--color-accent-1);outline-offset:2px}#byte-list-default>.section-header:first-child{margin-top:var(--space-4)}@media screen and (min-width: 50rem){#byte-list-default .section-header,#project-list-default .section-header{position:sticky;z-index:1;top:0;padding:var(--space-1) 0;background:var(--color-background)}}@media screen and (max-width: 480px){.data-list>li time{margin-right:6px;font-size:0.8em}.project-item.project-descriptions-ready .project-description .item-desc{display:-webkit-box;white-space:normal;-webkit-box-orient:vertical;-webkit-line-clamp:2}.project-item.is-desc-expanded .item-desc{display:inline;-webkit-line-clamp:unset}}.museum-section{margin-top:var(--space-6)}.museum-section>h2{color:var(--color-accent-1)}.museum-timeline{display:grid;grid-template-columns:repeat(2, minmax(0, 1fr));gap:var(--space-2) var(--space-5);margin:0;padding:0 0 0 var(--space-4);border-left:1px solid var(--color-border);list-style:none}.museum-timeline li{position:relative;display:grid;grid-template-columns:7.5rem minmax(0, 1fr);gap:var(--space-3);align-items:baseline}.museum-timeline li::before{position:absolute;top:0.65em;left:calc(-1 * var(--space-4) - 3px);width:5px;height:5px;border-radius:50%;background:var(--color-accent-1);content:""}.museum-timeline-year{color:var(--color-text-muted);font-size:0.78rem}.museum-secondary-lists{display:grid;gap:var(--space-4);margin-top:var(--space-5)}.museum-secondary-lists h3{margin:0 0 var(--space-2);color:var(--color-text-muted);font-size:0.8rem;text-decoration:none;text-transform:uppercase}.museum-secondary-lists h3 span{font-weight:normal}.museum-secondary-lists ul{display:grid;grid-template-columns:repeat(2, minmax(0, 1fr));gap:var(--space-1) var(--space-5);margin:0;padding:0;list-style:none}.museum-secondary-lists li{margin-bottom:var(--space-1);list-style:none}.museum-year{margin:var(--space-5) 0 var(--space-3);color:var(--color-accent-1);font-size:1rem}.museum-item{display:grid;grid-template-columns:minmax(12rem, 16rem) minmax(0, 1fr);overflow:hidden;margin-bottom:var(--space-4);border:1px solid var(--color-border);background:var(--color-surface);scroll-margin-top:var(--space-4)}.museum-item:target{border-color:var(--color-accent-1)}.museum-item-image{display:block;min-height:11rem;background:var(--color-background)}.museum-item-image img{display:block;width:100%;height:100%;min-height:11rem;object-fit:cover}.museum-item-body{padding:var(--space-4)}.museum-item-body h4{margin:0 0 var(--space-2);font-size:1rem}.museum-item-body>p:last-child{margin:0;color:var(--color-text-muted);font-size:0.86rem}.museum-item-meta{margin:0 0 var(--space-2);color:var(--color-accent-1);font-size:0.72rem;text-transform:uppercase}@media screen and (max-width: 760px){.museum-timeline,.museum-secondary-lists ul{grid-template-columns:1fr}}@media screen and (max-width: 520px){.museum-timeline li{grid-template-columns:6.75rem minmax(0, 1fr)}.museum-item{grid-template-columns:1fr}.museum-item-image,.museum-item-image img{min-height:12rem;max-height:16rem}}.model-index{margin-bottom:calc(var(--space-6) + var(--space-2));color:var(--color-text-muted);font-size:0.75rem}.model-index>span{color:var(--color-accent-1);text-transform:uppercase}.model-index ul{display:grid;grid-template-columns:repeat(2, minmax(0, 1fr));gap:var(--space-1) var(--space-4);margin:var(--space-2) 0 0;padding:0;list-style:none}.model-index li{margin:0;padding:0;list-style:none}.model-index li::before{content:none}@media (max-width: 36rem){.model-index ul{grid-template-columns:1fr}}.model-grid{display:grid;gap:var(--space-5)}@media (min-width: 50rem){.model-grid{grid-template-columns:repeat(2, minmax(0, 1fr));gap:var(--space-4)}}.model-card{overflow:hidden;border:1px solid var(--color-border);background:var(--color-surface);scroll-margin-top:var(--space-4)}.model-card:target{border-color:var(--color-accent-1)}.model-card.is-viewing{grid-column:1 / -1}.model-media{position:relative;width:100%;aspect-ratio:16 / 9;background:var(--color-background)}.model-media>img,.model-media>canvas{display:block;width:100%;height:100%}.model-media>img{object-fit:contain}.model-media:fullscreen{background:var(--color-background)}.model-placeholder{display:grid;width:100%;height:100%;place-content:center;gap:var(--space-2);border:0;background-color:var(--color-background);background-image:linear-gradient(rgba(81,86,91,0.18) 1px, transparent 1px),linear-gradient(90deg, rgba(81,86,91,0.18) 1px, transparent 1px);background-size:2rem 2rem;color:var(--color-text-muted);cursor:pointer;font:inherit;text-align:center}.model-placeholder i{color:var(--color-accent-1);font-size:2rem}.model-placeholder span{font-size:0.75rem}.model-placeholder:hover,.model-placeholder:focus-visible{color:var(--color-text)}.model-placeholder:hover i,.model-placeholder:focus-visible i{transform:translateY(-0.1rem)}.model-placeholder:focus-visible{outline:2px solid var(--color-accent-1);outline-offset:-2px}.model-load{padding:0;border:0;background:transparent;color:var(--color-text);cursor:pointer;font:inherit;text-decoration:underline}.model-load:hover,.model-load:focus-visible{color:var(--color-accent-1)}.model-load:disabled{color:var(--color-text-muted);cursor:not-allowed}.model-view-controls{position:absolute;z-index:2;top:var(--space-3);right:var(--space-3);display:flex;align-items:flex-end;flex-wrap:wrap;justify-content:flex-end;max-width:calc(100% - 2 * var(--space-3));gap:var(--space-2)}.model-view-controls[hidden]{display:none}.model-view-controls button{display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;padding:0;border:1px solid var(--color-border);background:rgba(29,31,33,0.82);color:var(--color-text-muted)}.model-view-controls button:hover,.model-view-controls button:focus-visible{border-color:var(--color-accent-1);color:var(--color-accent-1)}.model-view-controls button:focus-visible{outline:2px solid var(--color-accent-1);outline-offset:2px}.model-view-controls select{height:2rem;padding:0 var(--space-2);border:1px solid var(--color-border);background:rgba(29,31,33,0.9);color:var(--color-text-muted);font:inherit;font-size:0.72rem}.model-view-controls select:hover,.model-view-controls select:focus-visible{border-color:var(--color-accent-1);color:var(--color-accent-1)}.model-view-controls select:focus-visible{outline:2px solid var(--color-accent-1);outline-offset:2px}.model-control-select{display:grid;gap:0.1rem;color:var(--color-text-muted);font-size:0.58rem;line-height:1;text-transform:uppercase}.model-control-select select{min-width:6.5rem}.model-download-progress{position:absolute;z-index:2;top:50%;left:50%;display:grid;width:calc(100% - 2 * var(--space-4));max-width:18rem;gap:var(--space-2);padding:var(--space-3);border:1px solid var(--color-border);background:rgba(29,31,33,0.9);color:var(--color-text-muted);font-size:0.75rem;text-align:center;transform:translate(-50%, -50%)}.model-download-progress progress{width:100%;accent-color:var(--color-accent-1)}.model-body{padding:var(--space-4)}.model-body h2{margin:0 0 var(--space-2);font-size:1.1rem}.model-body>p:not(.model-meta,.model-status){margin:0 0 var(--space-4);color:var(--color-text-muted);font-size:0.88rem}.model-meta{margin:0 0 var(--space-2);color:var(--color-accent-1);font-size:0.72rem;text-transform:uppercase}.model-actions{display:flex;flex-wrap:wrap;gap:var(--space-2) var(--space-4);align-items:center}.model-status{min-height:1.4em;margin:var(--space-2) 0 0;color:var(--color-text-muted);font-size:0.75rem}.library-category-index{margin:var(--space-5) 0 var(--space-6);color:var(--color-text-muted);font-size:0.75rem}.library-category-index>span{color:var(--color-accent-1);text-transform:uppercase}.library-category-index ul{display:grid;grid-template-columns:repeat(2, minmax(0, 1fr));gap:var(--space-1) var(--space-5);margin:var(--space-2) 0 0;padding:0;list-style:none}.library-category-index li{margin:0;padding:0;list-style:none}.library-list{margin:0;padding:0;list-style:none}.library-item{display:grid;grid-template-columns:minmax(0, 1.8fr) minmax(10rem, 0.9fr) 4rem;gap:var(--space-3);align-items:start;margin:0;padding:0.2rem 0;list-style:none;font-size:0.84rem}.library-book-author{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.library-book-title{display:-webkit-box;overflow:hidden;white-space:normal;-webkit-box-orient:vertical;-webkit-line-clamp:2}.library-book-author,.library-book-year{color:var(--color-text-muted)}.library-book-year{grid-column:3;text-align:right}.library-title-unlinked{border-bottom:1px dotted var(--color-text-muted);color:var(--color-text)}@media screen and (min-width: 50rem){#library-list-default .section-header{position:sticky;z-index:1;top:0;padding:var(--space-1) 0;background:var(--color-background)}}@media screen and (max-width: 600px){.library-category-index ul{grid-template-columns:1fr}.library-item{grid-template-columns:minmax(0, 1fr) auto;gap:0 var(--space-2)}.library-book-author{grid-column:1 / -1;font-size:0.9em}.library-book-title{display:block;overflow:visible;-webkit-line-clamp:unset}.library-book-year{grid-column:2;grid-row:1}}#not-found{max-width:38rem;padding:3rem 0 5rem}.not-found-code{margin:0 0 0.35rem;color:var(--color-accent-1);font-size:0.8rem;letter-spacing:0.14em}.not-found-actions{display:flex;flex-wrap:wrap;gap:0.75rem 1.5rem;margin-top:2rem}#project-controls,#byte-controls,#library-controls{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3)}#project-controls,#byte-controls{margin-top:var(--space-4)}.filter-bar{display:flex;flex-wrap:wrap;gap:var(--space-2);width:100%}.filter-select,.filter-search,.filter-toggle{min-height:34px;padding:5px 9px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-background);color:var(--color-text);font-family:inherit;font-size:0.85em}.filter-select,.filter-toggle{cursor:pointer}.filter-select{appearance:none;padding-right:32px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='m1 1 5 5 5-5' fill='none' stroke='%23888' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;background-size:10px 7px}.filter-search{flex:1 1 220px;min-width:180px}.filter-search::placeholder{color:var(--color-text-muted);opacity:1}.filter-toggle{display:inline-flex;align-items:center;gap:6px;color:var(--color-text-muted)}.filter-toggle[aria-pressed="true"]{border-color:var(--color-accent-1);color:var(--color-accent-1)}.filter-toggle:hover,.filter-toggle:focus-visible{color:var(--color-text)}.filter-select:hover,.filter-select:focus-visible,.filter-search:hover,.filter-search:focus-visible,.filter-toggle:hover,.filter-toggle:focus-visible{border-color:var(--color-accent-1);outline:var(--focus-ring);outline-offset:2px}#active-filters{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);width:100%}.active-filter-chip{display:inline-flex;align-items:center;height:24px;padding:0 8px;border:0;border-radius:12px;background:var(--color-accent-1);color:var(--color-background);font-family:inherit;font-size:0.8em;line-height:1;cursor:pointer}.active-filter-chip:hover,.active-filter-chip:focus-visible{filter:brightness(1.12)}.active-filter-chip:focus-visible{outline:var(--focus-ring);outline-offset:2px}.clear-filters{padding:2px 4px;border:none;background:none;color:var(--color-text-muted);font-size:0.8em;text-decoration:underline;cursor:pointer}.clear-filters:hover,.clear-filters:focus-visible{color:var(--color-accent-1)}.clear-filters:focus-visible{outline:var(--focus-ring);outline-offset:2px}.filter-status{width:100%;color:var(--color-text-muted);font-size:0.8em}@media screen and (max-width: 480px){.filter-bar{gap:6px}.filter-search{flex-basis:100%;width:100%}.active-filter-chip{overflow:hidden;max-width:100%;text-overflow:ellipsis;white-space:nowrap}}.timeline{position:relative;margin-top:1.5rem;margin-bottom:2rem;padding-left:30px}.timeline::before{position:absolute;top:0;bottom:0;left:8px;width:2px;background:var(--color-border);content:""}.timeline-year{position:relative;margin-bottom:1rem}.timeline-year::before{position:absolute;top:1.3rem;left:-26px;z-index:1;width:10px;height:10px;border:2px solid var(--color-border);border-radius:50%;background:var(--color-background);content:"";transform:translateY(-50%)}.timeline-heading{display:flex;align-items:baseline;gap:10px;padding:4px 0}.timeline-label{color:var(--color-text);font-weight:bold;font-size:1.3em}.timeline-theme{color:var(--color-text-muted);font-size:0.85em}.timeline-counts{margin-left:auto;font-size:0.8em;white-space:nowrap}.timeline-count-link{color:var(--color-text-muted);text-decoration:none}.timeline-count-link:hover{color:var(--color-accent-1);text-decoration:underline;text-underline-offset:0.2em}.timeline-count-sep{margin:0 4px;color:var(--color-text-muted)}@media screen and (max-width: 480px){.timeline{padding-left:20px}.timeline::before{left:4px}.timeline-year::before{left:-19px;width:8px;height:8px}.timeline-heading{flex-wrap:wrap}.timeline-counts{width:100%;margin-left:0;font-size:0.75em}}
