:root{color-scheme:light;--global-bg-color:#fff;--global-code-bg-color:rgba(181,9,172,0.05);--global-text-color:#000;--global-text-color-light:#828282;--global-theme-color:#b509ac;--global-hover-color:#b509ac;--global-hover-text-color:#fff;--global-footer-bg-color:#1c1c1d;--global-footer-text-color:#e8e8e8;--global-footer-link-color:#fff;--global-distill-app-color:#828282;--global-divider-color:rgba(0,0,0,0.1);--global-card-bg-color:#fff;--global-highlight-color:#b71c1c;--global-back-to-top-bg-color:rgba(0,0,0,0.4);--global-back-to-top-text-color:#fff;--global-newsletter-bg-color:#fff;--global-newsletter-text-color:#000;--global-tip-block:#42b983;--global-tip-block-bg:#e2f5ec;--global-tip-block-text:#215d42;--global-tip-block-title:#359469;--global-warning-block:#e7c000;--global-warning-block-bg:#fff8d8;--global-warning-block-text:#6b5900;--global-warning-block-title:#b29400;--global-danger-block:#c00;--global-danger-block-bg:#ffe0e0;--global-danger-block-text:#600;--global-danger-block-title:#c00}:root #light-toggle-system{padding:0;display:block}:root #light-toggle-dark{display:none}:root #light-toggle-light{display:none}:root #back-to-top{color:var(--global-back-to-top-text-color);background:var(--global-back-to-top-bg-color);bottom:30px;right:30px;height:40px;width:40px;z-index:10}html[data-theme=dark]{color-scheme:dark;--global-bg-color:#1c1c1d;--global-code-bg-color:#2c3237;--global-text-color:#e8e8e8;--global-text-color-light:#828282;--global-theme-color:#2698ba;--global-hover-color:#2698ba;--global-hover-text-color:#fff;--global-footer-bg-color:#e8e8e8;--global-footer-text-color:#1c1c1d;--global-footer-link-color:#000;--global-distill-app-color:#e8e8e8;--global-divider-color:#424246;--global-card-bg-color:#212529;--global-back-to-top-bg-color:rgba(255,255,255,0.5);--global-back-to-top-text-color:#000;--global-newsletter-bg-color:#e8e8e8;--global-newsletter-text-color:#1c1c1d;--global-tip-block:#42b983;--global-tip-block-bg:#215d42;--global-tip-block-text:#beffe2;--global-tip-block-title:#e2f5ec;--global-warning-block:#e7c000;--global-warning-block-bg:#6b5900;--global-warning-block-text:#fff2af;--global-warning-block-title:#fff8d8;--global-danger-block:#c00;--global-danger-block-bg:#600;--global-danger-block-text:#ffb9b9;--global-danger-block-title:#ffe0e0}html[data-theme-setting=dark] #light-toggle-system{display:none}html[data-theme-setting=dark] #light-toggle-dark{padding:0;display:block}html[data-theme-setting=dark] #light-toggle-light{display:none}html[data-theme-setting=dark] #back-to-top{color:var(--global-back-to-top-text-color);background:var(--global-back-to-top-bg-color)}html[data-theme-setting=light] #light-toggle-system{display:none}html[data-theme-setting=light] #light-toggle-dark{display:none}html[data-theme-setting=light] #light-toggle-light{padding:0;display:block}body{padding-bottom:70px;color:var(--global-text-color);background-color:var(--global-bg-color)}body h1,body h2,body h3,body h4,body h5,body h6{scroll-margin-top:66px}body.fixed-top-nav{padding-top:56px}.container{max-width:930px}.profile img{width:100%}p,h1,h2,h3,h4,h5,h6,em,div,li,span,strong{color:var(--global-text-color)}hr{border-top:1px solid var(--global-divider-color)}table td,table th{font-size:1rem;padding:1px 1rem 1px 0}table th{font-weight:bold}a,table.table a{color:var(--global-theme-color)}a:hover,table.table a:hover{color:var(--global-theme-color);text-decoration:underline}a:hover:after :not(.nav-item.dropdown),table.table a:hover:after :not(.nav-item.dropdown){width:100%}.table-dark{background-color:rgba(0,0,0,0)}blockquote{background:var(--global-bg-color);border-left:5px solid var(--global-theme-color);margin:1.5em 0;padding:1em;font-size:1.2rem}blockquote p{margin-bottom:0}.caption{font-size:.875rem;margin-top:.75rem;margin-bottom:1.5rem;text-align:center}.card{background-color:var(--global-card-bg-color)}.card .card-title{color:var(--global-text-color)}.card .card-body{padding:1.25rem 1.25rem 1.25rem 1.25rem}.citation,.citation-number{color:var(--global-theme-color)}.profile{width:100%}.profile .more-info{margin-bottom:5px;margin-top:5px;font-family:monospace}.profile .more-info p{display:inline-block;margin:0}.profile.float-right{margin-left:1rem}@media(min-width:576px){.profile{width:30%}.profile .address p{display:block}}.post-description{margin-bottom:2rem;font-size:.875rem}.post-description a{color:inherit}.post-description a:hover{color:var(--global-theme-color);text-decoration:none}.navbar{box-shadow:none;border-bottom:0;background-color:rgba(0,0,0,0);padding-top:1.25rem;padding-bottom:.5rem;z-index:1030}.navbar .container{display:flex;justify-content:center;align-items:center;position:relative}.navbar .navbar-collapse.collapse.show,.navbar .navbar-collapse.collapsing{display:block}@media(min-width:576px){.navbar .navbar-collapse{justify-content:center;flex-basis:auto}}.pill-nav-row{display:flex;align-items:center;justify-content:center;gap:.75rem;margin:0 auto}.navbar .pill-nav-wrapper{display:inline-flex;align-items:center;gap:.2rem;background-color:var(--global-bg-color);border:1.5px solid rgba(0,0,0,.13);border-radius:50px;padding:.3rem;box-shadow:0 1px 3px rgba(0,0,0,.1),0 6px 20px rgba(0,0,0,.08)}html[data-theme=dark] .navbar .pill-nav-wrapper{border-color:hsla(0,0,100%,.15);box-shadow:0 1px 2px rgba(0,0,0,.2),0 4px 16px rgba(0,0,0,.3)}.pill-nav-actions{display:flex;align-items:center;gap:.15rem}a.pill-nav-link,a.pill-nav-link:hover,a.pill-nav-link:active,a.pill-nav-link:focus{display:inline-flex;align-items:center;padding:.5rem 1rem;border-radius:50px;font-size:.875rem;font-weight:450;color:var(--global-text-color);text-decoration:none!important;white-space:nowrap;transition:background-color .2s ease,color .2s ease;letter-spacing:-0.01em;border-bottom:none!important}a.pill-nav-link:hover{background-color:rgba(0,0,0,.06);color:var(--global-text-color)}a.pill-nav-link.active,a.pill-nav-link.active:hover{background-color:rgba(0,0,0,.08);box-shadow:0 1px 3px rgba(0,0,0,.06);font-weight:600;color:var(--global-text-color)}html[data-theme=dark] a.pill-nav-link:hover{background-color:hsla(0,0,100%,.08)}html[data-theme=dark] a.pill-nav-link.active,html[data-theme=dark] a.pill-nav-link.active:hover{background-color:hsla(0,0,100%,.14)}button.pill-nav-icon{display:inline-flex;align-items:center;justify-content:center;width:2.1rem;height:2.1rem;border-radius:50%;border:0;background:rgba(0,0,0,0);color:var(--global-text-color);opacity:.55;cursor:pointer;font-size:1.05rem;transition:background-color .2s ease,color .2s ease,opacity .2s ease;padding:0}button.pill-nav-icon:hover{background-color:rgba(0,0,0,.06);color:var(--global-text-color);opacity:1}html[data-theme=dark] button.pill-nav-icon:hover{background-color:hsla(0,0,100%,.1)}@media(max-width:575.98px){.navbar{padding-top:.75rem}.navbar .container{justify-content:flex-end}.pill-nav-row{flex-direction:column;width:100%;gap:.5rem}.navbar .pill-nav-wrapper{flex-direction:column;border-radius:16px;padding:.5rem;gap:.15rem;width:100%;margin-top:.5rem}a.pill-nav-link,a.pill-nav-link:hover,a.pill-nav-link:active,a.pill-nav-link:focus{width:100%;justify-content:center;padding:.6rem 1rem;border-radius:12px;font-size:.9rem}.pill-nav-actions{justify-content:center;gap:.5rem}button.pill-nav-icon{width:2.5rem;height:2.5rem;font-size:1.1rem;opacity:.7}}@media(min-width:576px)and (max-width:768px){a.pill-nav-link,a.pill-nav-link:hover,a.pill-nav-link:active,a.pill-nav-link:focus{padding:.4rem .65rem;font-size:.8rem}}.navbar-toggler .icon-bar{display:block;width:22px;height:2px;background-color:var(--global-text-color);border-radius:1px;margin-bottom:4px;transition:all .2s}.navbar-toggler .top-bar{transform:rotate(45deg);transform-origin:10% 10%}.navbar-toggler .middle-bar{opacity:0}.navbar-toggler .bottom-bar{transform:rotate(-45deg);transform-origin:10% 90%}.navbar-toggler.collapsed .top-bar{transform:rotate(0)}.navbar-toggler.collapsed .middle-bar{opacity:1}.navbar-toggler.collapsed .bottom-bar{transform:rotate(0)}#light-toggle,#search-toggle{padding:0;border:0;background-color:inherit;color:var(--global-text-color)}#light-toggle:hover,#search-toggle:hover{color:var(--global-hover-color)}.navbar.navbar-light a:hover{text-decoration:none}.social{text-align:center}.social .contact-icons{font-size:4rem}.social .contact-icons a img{width:3.2rem;height:3.2rem;margin-bottom:1rem}.social .contact-icons a svg{width:3.5rem;height:4rem;margin-bottom:.5rem}.social .contact-icons a svg image{width:3.5rem;height:3.5rem}.social .contact-icons a i::before{color:var(--global-text-color);transition-property:all .2s ease-in-out}.social .contact-icons a:hover{text-decoration:none}.social .contact-icons a:hover i::before{color:var(--global-theme-color)}.social .contact-note{font-size:.8rem}.social .view-counter{margin-top:.75rem;font-size:.8rem;color:var(--global-text-color-light);letter-spacing:.02em}footer.fixed-bottom{background-color:var(--global-footer-bg-color);font-size:.75rem}footer.fixed-bottom .container{color:var(--global-footer-text-color);padding-top:9px;padding-bottom:8px;text-align:center}footer.fixed-bottom a{color:var(--global-footer-link-color)}footer.fixed-bottom a:hover{color:var(--global-theme-color);text-decoration:none}footer.sticky-bottom{border-top:1px solid var(--global-divider-color);padding-top:40px;padding-bottom:40px;font-size:.9rem}footer.sticky-bottom .container{text-align:center}.cv{margin-bottom:40px}.cv .card{background-color:var(--global-card-bg-color);border:1px solid var(--global-divider-color)}.cv .card .list-group-item{background-color:inherit;border-color:var(--global-divider-color)}.cv .card .list-group-item .badge{color:var(--global-card-bg-color)!important;background-color:var(--global-theme-color)!important}.table-cv-map{background-color:rgba(0,0,0,0);border:0;color:var(--global-text-color)}.date-column{width:75px;transform:translateX(-15px) translateY(-5px)}.repo{width:100%}.repo a{display:block;width:100%;text-decoration:none}.repo img{min-height:120px;background:var(--global-card-bg-color);border:1px solid var(--global-divider-color);border-radius:6px}@media(min-width:768px){.repo{max-width:50%;flex:0 0 50%}}:root{--contrib-accent-rgb:181,9,172;--contrib-card-bg:#fff;--contrib-card-border:rgba(0,0,0,0.07);--contrib-card-shadow:0 1px 3px rgba(0,0,0,0.03),0 6px 16px rgba(0,0,0,0.04);--contrib-card-shadow-hover:0 6px 20px rgba(0,0,0,0.08),0 16px 44px rgba(0,0,0,0.06);--contrib-hero-bg:linear-gradient(160deg,rgba(181,9,172,0.035) 0%,rgba(181,9,172,0.01) 40%,transparent 70%);--contrib-stat-bg:rgba(181,9,172,0.045);--contrib-stat-border:rgba(181,9,172,0.1);--contrib-highlight-bg:rgba(181,9,172,0.03);--contrib-highlight-border:rgba(181,9,172,0.1);--contrib-role-bg:rgba(181,9,172,0.07);--contrib-role-color:#a81da0;--contrib-quote-color:rgba(181,9,172,0.2);--contrib-meta-color:#6b7280;--contrib-shimmer:linear-gradient(90deg,transparent 0,rgba(181,9,172,0.04) 50%,transparent 100%)}html[data-theme=dark]{--contrib-accent-rgb:38,152,186;--contrib-card-bg:#1a1d23;--contrib-card-border:rgba(255,255,255,0.06);--contrib-card-shadow:0 1px 3px rgba(0,0,0,0.2),0 6px 16px rgba(0,0,0,0.18);--contrib-card-shadow-hover:0 6px 20px rgba(0,0,0,0.3),0 16px 44px rgba(0,0,0,0.2);--contrib-hero-bg:linear-gradient(160deg,rgba(38,152,186,0.05) 0%,rgba(38,152,186,0.015) 40%,transparent 70%);--contrib-stat-bg:rgba(38,152,186,0.06);--contrib-stat-border:rgba(38,152,186,0.12);--contrib-highlight-bg:rgba(38,152,186,0.04);--contrib-highlight-border:rgba(38,152,186,0.12);--contrib-role-bg:rgba(38,152,186,0.1);--contrib-role-color:#5cc4d8;--contrib-quote-color:rgba(38,152,186,0.25);--contrib-meta-color:#9ca3af;--contrib-shimmer:linear-gradient(90deg,transparent 0,rgba(38,152,186,0.06) 50%,transparent 100%)}@keyframes contrib-fadeInUp{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}@keyframes contrib-shimmer{0%{background-position:-200% 0}100%{background-position:200% 0}}@keyframes contrib-avatarGlow{0%,100%{box-shadow:0 0 0 4px rgba(var(--contrib-accent-rgb),0.12),0 0 20px rgba(var(--contrib-accent-rgb),0.06)}50%{box-shadow:0 0 0 6px rgba(var(--contrib-accent-rgb),0.18),0 0 30px rgba(var(--contrib-accent-rgb),0.1)}}@keyframes contrib-langBarGrow{from{transform:scaleX(0)}to{transform:scaleX(1)}}.contrib-page .post-header h1.post-title{display:none}.contrib-hero{position:relative;padding:2.5rem 0 2rem;margin:-0.5rem -1rem 0;border-radius:16px}.contrib-hero::before{content:"";position:absolute;inset:0;background:var(--contrib-hero-bg);border-radius:16px;pointer-events:none}.contrib-hero__inner{display:flex;align-items:center;gap:2rem;padding:0 1.5rem}@media(max-width:640px){.contrib-hero__inner{flex-direction:column;text-align:center;gap:1.25rem}}.contrib-avatar-wrap{flex-shrink:0}.contrib-avatar{width:120px;height:120px;border-radius:50%;object-fit:cover;animation:contrib-avatarGlow 4s ease-in-out infinite;transition:transform .4s cubic-bezier(0.34,1.56,0.64,1)}.contrib-avatar:hover{transform:scale(1.05) rotate(2deg)}.contrib-info{flex:1;min-width:0}.contrib-name{font-size:1.75rem;font-weight:700;color:var(--global-text-color);margin:0 0 .35rem;line-height:1.2;letter-spacing:-0.02em}.contrib-bio{font-size:1rem;color:var(--global-text-color-light);margin:0 0 .6rem;line-height:1.5;max-width:520px}.contrib-meta{display:flex;flex-wrap:wrap;gap:1rem;font-size:.85rem;color:var(--contrib-meta-color)}@media(max-width:640px){.contrib-meta{justify-content:center}}.contrib-meta span{display:inline-flex;align-items:center;gap:.35rem}.contrib-meta span i{font-size:.8rem;opacity:.7}.contrib-meta a{color:var(--contrib-meta-color);text-decoration:none;transition:color .2s ease}.contrib-meta a:hover{color:var(--global-theme-color)}.contrib-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:.75rem;padding:1.5rem 1.5rem 0;margin-top:1.5rem}@media(max-width:640px){.contrib-stats{grid-template-columns:repeat(2,1fr);padding:1.25rem 1rem 0}}.contrib-stat{display:flex;flex-direction:column;align-items:center;padding:1rem .75rem;background:var(--contrib-stat-bg);border:1px solid var(--contrib-stat-border);border-radius:12px;transition:transform .25s ease,box-shadow .25s ease;cursor:default}.contrib-stat:hover{transform:translateY(-2px);box-shadow:0 4px 12px rgba(var(--contrib-accent-rgb),0.1)}.contrib-stat__number{font-size:1.5rem;font-weight:700;color:var(--global-theme-color);line-height:1.2;font-variant-numeric:tabular-nums}.contrib-stat__label{font-size:.75rem;color:var(--contrib-meta-color);text-transform:uppercase;letter-spacing:.05em;margin-top:.2rem;font-weight:500}.contrib-section{margin-top:2.75rem}.contrib-section__title{font-size:1.15rem;font-weight:600;color:var(--global-text-color);margin:0 0 1.25rem;padding-bottom:.6rem;border-bottom:2px solid rgba(var(--contrib-accent-rgb),0.15);display:inline-block;letter-spacing:-0.01em}.contrib-languages{padding:1.25rem 1.5rem;background:var(--contrib-card-bg);border:1px solid var(--contrib-card-border);border-radius:12px;box-shadow:var(--contrib-card-shadow)}.contrib-lang-bar{height:10px;border-radius:99px;overflow:hidden;display:flex;background:rgba(var(--contrib-accent-rgb),0.06);transform-origin:left center;animation:contrib-langBarGrow .8s cubic-bezier(0.22,1,0.36,1) forwards}.contrib-lang-bar .lang-segment{height:100%;transition:flex-basis .6s cubic-bezier(0.22,1,0.36,1),opacity .3s ease;position:relative;cursor:pointer;min-width:3px}.contrib-lang-bar .lang-segment:hover{opacity:.8}.contrib-lang-bar .lang-segment:first-child{border-radius:99px 0 0 99px}.contrib-lang-bar .lang-segment:last-child{border-radius:0 99px 99px 0}.contrib-lang-bar .lang-segment:only-child{border-radius:99px}.contrib-lang-legend{display:flex;flex-wrap:wrap;gap:.5rem 1.25rem;margin-top:.85rem}.contrib-lang-item{display:inline-flex;align-items:center;gap:.4rem;font-size:.8rem;color:var(--global-text-color-light);cursor:default;transition:color .2s ease}.contrib-lang-item:hover{color:var(--global-text-color)}.contrib-lang-item .lang-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.contrib-lang-item .lang-pct{opacity:.65;font-size:.75rem;margin-left:.15rem}.contrib-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.25rem}@media(max-width:768px){.contrib-grid{grid-template-columns:1fr}}.contrib-card{position:relative;display:flex;flex-direction:column;padding:1.35rem 1.5rem 1.15rem;background:var(--contrib-card-bg);border:1px solid var(--contrib-card-border);border-radius:12px;box-shadow:var(--contrib-card-shadow);text-decoration:none!important;color:var(--global-text-color)!important;overflow:hidden;transition:transform .3s cubic-bezier(0.22,1,0.36,1),box-shadow .3s cubic-bezier(0.22,1,0.36,1),border-color .3s ease;opacity:0;animation:contrib-fadeInUp .5s cubic-bezier(0.22,1,0.36,1) forwards;animation-delay:calc(var( -  - card - index, 0)*.07s)}.contrib-card:hover{transform:translateY(-4px);box-shadow:var(--contrib-card-shadow-hover);border-color:rgba(var(--contrib-accent-rgb),0.2)}.contrib-card:hover .contrib-card__accent{opacity:1}.contrib-card__accent{position:absolute;top:0;left:0;right:0;height:3px;background:var(--global-theme-color);opacity:.5;transition:opacity .3s ease;border-radius:12px 12px 0 0}.contrib-card__header{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem;margin-bottom:.6rem;flex-wrap:wrap}.contrib-card__title-row{display:flex;align-items:baseline;gap:.2rem;min-width:0;flex:1}.contrib-card__owner{font-size:.85rem;color:var(--global-text-color-light);font-weight:400;white-space:nowrap}.contrib-card__name{font-size:1.05rem;font-weight:600;color:var(--global-theme-color);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.contrib-card__role{display:inline-flex;align-items:center;padding:.2rem .65rem;background:var(--contrib-role-bg);color:var(--contrib-role-color);border-radius:99px;font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;flex-shrink:0}.contrib-card__desc{font-size:.88rem;color:var(--global-text-color-light);line-height:1.5;margin:0 0 .65rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:1.5em}.contrib-card__desc.is-loading{background:var(--contrib-shimmer);background-size:200% 100%;animation:contrib-shimmer 1.5s infinite;border-radius:4px;color:rgba(0,0,0,0);user-select:none}.contrib-card__highlight{font-size:.82rem;color:var(--global-text-color);line-height:1.5;margin:0 0 .85rem;padding:.6rem .85rem;background:var(--contrib-highlight-bg);border-left:3px solid var(--contrib-highlight-border);border-radius:0 8px 8px 0;font-style:italic}.contrib-card__highlight i{color:var(--contrib-quote-color);font-size:.7rem;margin-right:.3rem}.contrib-card__footer{display:flex;align-items:center;justify-content:space-between;margin-top:auto;padding-top:.7rem;border-top:1px solid var(--contrib-card-border);font-size:.8rem}.contrib-card__lang{display:inline-flex;align-items:center;gap:.35rem;color:var(--global-text-color-light)}.contrib-card__lang .lang-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.contrib-card__stats{display:flex;gap:.85rem}.contrib-card__stat{display:inline-flex;align-items:center;gap:.3rem;color:var(--contrib-meta-color);font-variant-numeric:tabular-nums}.contrib-card__stat i{font-size:.78rem;opacity:.75}.contrib-stat__number.is-loading{background:var(--contrib-shimmer);background-size:200% 100%;animation:contrib-shimmer 1.5s infinite;border-radius:4px;color:rgba(0,0,0,0);min-width:2rem;user-select:none}.blog-hero{padding:2.5rem 0 1.5rem 0}.blog-hero h1{font-family:Georgia,"Times New Roman",Times,serif;font-size:4.5rem;font-weight:400;color:var(--global-text-color);margin:0 0 .75rem 0;line-height:1.1}.blog-hero p{font-size:1.05rem;line-height:1.7;color:var(--global-text-color-light);margin:0;max-width:600px}@media(max-width:768px){.blog-hero{padding:1.5rem 0 1rem 0}.blog-hero h1{font-size:3rem}}.blog-card-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.85rem;margin-top:1rem;margin-bottom:2.5rem}@media(max-width:768px){.blog-card-grid{grid-template-columns:1fr}}.blog-card{display:flex;min-height:300px;border:1px solid var(--global-divider-color);border-radius:6px;background-color:var(--global-card-bg-color);text-decoration:none;color:var(--global-text-color);transition:box-shadow .25s ease,border-color .25s ease}.blog-card:hover{text-decoration:none;color:var(--global-text-color);box-shadow:0 4px 20px rgba(0,0,0,.07);border-color:rgba(0,0,0,.18)}.blog-card:hover .blog-card-title{color:var(--global-theme-color)}.blog-card:hover .blog-card-arrow{opacity:1}.blog-card.blog-card-wide{grid-column:1/-1;min-height:260px}@media(max-width:768px){.blog-card.blog-card-wide{grid-column:auto}}.blog-card .blog-card-inner{padding:1.75rem;display:flex;flex-direction:column;width:100%;position:relative}.blog-card .blog-card-arrow{position:absolute;top:1.5rem;right:1.5rem;font-size:1.1rem;color:var(--global-text-color-light);opacity:.4;transition:opacity .2s ease;line-height:1}.blog-card .blog-card-title{font-family:Georgia,"Times New Roman",Times,serif;font-size:1.5rem;font-weight:400;line-height:1.3;margin:1.25rem 0 .75rem 0;padding-right:1.5rem;color:var(--global-text-color);transition:color .2s ease}.blog-card .blog-card-excerpt{font-size:.88rem;line-height:1.65;color:var(--global-text-color-light);margin:0;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden;flex-grow:1}.blog-card.blog-card-wide .blog-card-title{font-size:1.65rem}.blog-card.blog-card-wide .blog-card-excerpt{-webkit-line-clamp:3;max-width:75%}@media(max-width:768px){.blog-card.blog-card-wide .blog-card-excerpt{max-width:100%;-webkit-line-clamp:4}}html[data-theme=dark] .blog-card:hover{border-color:hsla(0,0,100%,.15);box-shadow:0 4px 20px rgba(0,0,0,.35)}.project-category-section{margin-bottom:2.5rem}.project-category-section:last-child{margin-bottom:0}.project-category-title{font-family:Georgia,"Times New Roman",Times,serif;font-size:2rem;font-weight:400;color:var(--global-text-color);margin:0 0 .25rem 0;line-height:1.2}.project-card-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-auto-rows:1fr;gap:1rem;margin-top:1rem;margin-bottom:2.5rem}@media(max-width:992px){.project-card-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:576px){.project-card-grid{grid-template-columns:1fr;grid-auto-rows:auto}}.project-card{display:flex;flex-direction:column;border:1px solid var(--global-divider-color);border-radius:6px;background-color:var(--global-card-bg-color);text-decoration:none;color:var(--global-text-color);overflow:hidden;transition:box-shadow .25s ease,border-color .25s ease}.project-card:hover{text-decoration:none;color:var(--global-text-color);box-shadow:0 4px 20px rgba(0,0,0,.07);border-color:rgba(0,0,0,.18)}.project-card:hover .project-card-title{color:var(--global-theme-color)}.project-card:hover .blog-card-arrow{opacity:1}.project-card .project-card-img{width:100%;aspect-ratio:1/1;overflow:hidden}.project-card .project-card-img img{width:100%;height:100%;object-fit:cover;display:block}.project-card .project-card-inner{padding:1.25rem;display:flex;flex-direction:column;flex-grow:1;position:relative;justify-content:flex-end}.project-card .project-card-label{font-size:.75rem;color:var(--global-text-color-light);letter-spacing:.02em;margin-bottom:.5rem}.project-card .blog-card-arrow{position:absolute;top:1.25rem;right:1.25rem;font-size:1rem;color:var(--global-text-color-light);opacity:.4;transition:opacity .2s ease;line-height:1}.project-card .project-card-title{font-family:Georgia,"Times New Roman",Times,serif;font-size:1.3rem;font-weight:400;line-height:1.3;margin:0;padding-right:1.5rem;color:var(--global-text-color);transition:color .2s ease}.project-card .project-card-description{font-size:.85rem;line-height:1.5;color:var(--global-text-color-light);margin:.5rem 0 0 0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}html[data-theme=dark] .project-card:hover{border-color:hsla(0,0,100%,.15);box-shadow:0 4px 20px rgba(0,0,0,.35)}.distill a:hover{border-bottom-color:var(--global-theme-color);text-decoration:none}.projects a{text-decoration:none}.projects a:hover .card-title{color:var(--global-theme-color)}.projects .card img{width:100%}.projects .col{padding-bottom:1rem}.projects .grid-item{width:250px;margin-bottom:10px}.projects h2.category{color:var(--global-divider-color);border-bottom:1px solid var(--global-divider-color);padding-top:.5rem;margin-top:2rem;margin-bottom:1rem;text-align:right;padding:.5rem 1rem;background-color:rgba(var(--global-theme-color-rgb),0.8);border-left:5px solid var(--global-theme-color);border-radius:0 5px 5px 0;font-weight:bold}.publications{margin-top:2rem}.publications h1{color:var(--global-theme-color);font-size:2rem;text-align:center;margin-top:1em;margin-bottom:1em}.publications h2{margin-bottom:1rem}.publications h2 span{font-size:1.5rem}.publications h2.bibliography{color:var(--global-divider-color);border-top:1px solid var(--global-divider-color);padding-top:1rem;margin-top:2rem;text-align:right}.publications ol.bibliography{list-style:none;padding:0;margin-top:0}.publications ol.bibliography li{margin-bottom:1rem}.publications ol.bibliography li .abbr{margin-bottom:.5rem}.publications ol.bibliography li .abbr abbr{display:inline-block;background-color:var(--global-theme-color);margin-bottom:.5rem;color:var(--global-card-bg-color)!important}.publications ol.bibliography li .abbr abbr a{color:#fff}.publications ol.bibliography li .abbr abbr a:hover{text-decoration:none}.publications ol.bibliography li .abbr .award{color:var(--global-theme-color)!important;border:1px solid var(--global-theme-color)}.publications ol.bibliography li .title{font-weight:bolder}.publications ol.bibliography li .author a{border-bottom:1px dashed var(--global-theme-color)}.publications ol.bibliography li .author a:hover{border-bottom-style:solid;text-decoration:none}.publications ol.bibliography li .author>em{border-bottom:1px solid;font-style:normal}.publications ol.bibliography li .links a.btn{color:var(--global-text-color);border:1px solid var(--global-text-color);padding-left:1rem;padding-right:1rem;padding-top:.25rem;padding-bottom:.25rem;margin-left:0}.publications ol.bibliography li .links a.btn:hover{color:var(--global-theme-color);border-color:var(--global-theme-color)}.publications ol.bibliography li .links a.award.btn{border-color:var(--global-highlight-color)}.publications ol.bibliography li .hidden{font-size:.875rem;max-height:0;overflow:hidden;text-align:justify;transition-property:.15s ease;-moz-transition:.15s ease;-ms-transition:.15s ease;-o-transition:.15s ease;transition:all .15s ease}.publications ol.bibliography li .hidden p{line-height:1.4em;margin:10px}.publications ol.bibliography li .hidden pre{font-size:1em;line-height:1.4em;padding:10px}.publications ol.bibliography li .hidden.open{max-height:100em;transition-property:.15s ease;-moz-transition:.15s ease;-ms-transition:.15s ease;-o-transition:.15s ease;transition:all .15s ease}.publications ol.bibliography li div.abstract.hidden{border:dashed 1px var(--global-bg-color)}.publications ol.bibliography li div.abstract.hidden.open{border-color:var(--global-text-color)}.publications ol.bibliography div.award.hidden{border:dashed 1px var(--global-bg-color)}.publications ol.bibliography div.award.hidden.open{border-color:var(--global-highlight-color)}figure.highlight{margin:0 0 1rem;overflow-x:auto;-webkit-overflow-scrolling:touch}figure.highlight pre{white-space:pre!important;word-wrap:normal;overflow-x:auto;-webkit-overflow-scrolling:touch}pre{color:var(--global-theme-color);background-color:var(--global-code-bg-color);border-radius:6px;padding:6px 12px;overflow-x:auto;-webkit-overflow-scrolling:touch;white-space:pre!important;word-wrap:normal}pre pre,pre code{background-color:rgba(0,0,0,0);border-radius:0;margin-bottom:0;padding:0;white-space:inherit;word-wrap:inherit}code{color:var(--global-theme-color);background-color:var(--global-code-bg-color);border-radius:3px;padding:3px 3px;white-space:normal;word-wrap:break-word}html.transition,html.transition *,html.transition *:before,html.transition *:after{transition:all 750ms!important;transition-delay:0!important}.post .post-meta{color:var(--global-text-color-light);font-size:.875rem;margin-bottom:0}.post .post-date{margin-bottom:1rem}.post .post-tags{color:var(--global-text-color-light);font-size:.875rem;padding-top:.25rem;padding-bottom:1rem}.post .post-tags a{color:var(--global-text-color-light);text-decoration:none}.post .post-tags a:hover{color:var(--global-theme-color)}progress{position:fixed;left:0;top:56px;z-index:10;width:100%;height:1px;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background-color:rgba(0,0,0,0);color:var(--global-theme-color)}progress::-webkit-progress-bar{background-color:rgba(0,0,0,0)}progress::-webkit-progress-value{background-color:var(--global-theme-color)}progress::-moz-progress-bar{background-color:var(--global-theme-color)}.progress-container{width:100%;background-color:rgba(0,0,0,0);position:fixed;top:56px;left:0;height:5px;display:block}.progress-bar{background-color:var(--global-theme-color);width:0;display:block;height:inherit}.code-display-wrapper{position:relative}.code-display-wrapper .copy{background:var(--global-card-bg-color);border-color:var(--global-bg-color);border-radius:.3rem;border-style:none;color:var(--global-text-color);font-size:medium;opacity:0;position:absolute;right:.2rem;top:.2rem}.code-display-wrapper:active .copy,.code-display-wrapper:focus .copy,.code-display-wrapper:hover .copy{color:var(--global-hover-color);opacity:1}nav[data-toggle=toc]{top:5rem}nav[data-toggle=toc] .nav .nav>li>a{font-size:.75rem}nav[data-toggle=toc] .nav>li>a{color:var(--global-text-color);font-size:.75rem}nav[data-toggle=toc] .nav>li>a:hover{color:var(--global-hover-color);border-left-color:var(--global-hover-color)}nav[data-toggle=toc] .nav-link.active{color:var(--global-theme-color);border-left-color:var(--global-theme-color);font-size:.75rem}nav[data-toggle=toc] .nav-link.active:hover{color:var(--global-hover-color);border-left-color:var(--global-hover-color)}@media(max-width:576px){nav[data-toggle=toc]{visibility:hidden;height:0;top:0}pre{font-size:.875rem;padding:8px 10px;margin:.5rem 0}figure.highlight{margin:.5rem 0}figure.highlight pre{font-size:.875rem;padding:8px 10px}code{font-size:.875rem;padding:2px 4px}}@media(max-width:400px){pre{font-size:.8rem;padding:6px 8px}figure.highlight pre{font-size:.8rem;padding:6px 8px}code{font-size:.8rem;padding:1px 3px}}@media(min-width:577px)and (max-width:768px){pre{font-size:.9rem;padding:8px 12px}figure.highlight pre{font-size:.9rem;padding:8px 12px}}.unloaded{display:none!important}#toc-sidebar{z-index:1}.echarts{height:400px;width:100%}.map{height:400px;width:100%}ninja-keys{--ninja-accent-color:var(--global-theme-color);--ninja-icon-size:0;--ninja-modal-background:var(--global-bg-color);--ninja-z-index:1031}ninja-keys::part(ninja-input){color:var(--ninja-selected-text-color)}ninja-keys::part(ninja-input-wrapper){background:var(--global-bg-color)}.newsletter-form-container{margin-bottom:20px}.newsletter-form{display:flex;flex-direction:row;align-items:center;width:100%}.newsletter-form-input,.bibsearch-form-input{color:var(--global-newsletter-text-color);background:var(--global-newsletter-bg-color);border:1px solid var(--global-newsletter-text-color);outline:0;margin:0 10px 0 0;width:100%;max-width:350px;min-width:100px;box-sizing:border-box;box-shadow:rgba(0,0,0,.05) 0px 1px 2px;border-radius:6px;padding:8px 12px}.newsletter-form-input:focus{border-color:var(--global-theme-color)!important}.newsletter-form-button{background:var(--global-theme-color);color:var(--global-bg-color);display:flex;width:min-content;max-width:200px;white-space:nowrap;height:38px;align-items:center;flex-direction:row;padding:9px 17px;box-shadow:rgba(0,0,0,.05) 0px 1px 2px;border-radius:6px;text-align:center;font-style:normal;font-weight:500;line-height:20px;border:0;cursor:pointer}.newsletter-loading-button{background:var(--global-theme-color);color:var(--global-bg-color);display:none;width:min-content;max-width:300px;white-space:nowrap;height:38px;align-items:center;flex-direction:row;padding:9px 17px;box-shadow:rgba(0,0,0,.05) 0px 1px 2px;border-radius:6px;text-align:center;font-style:normal;font-weight:500;line-height:20px;border:0;cursor:pointer;margin-right:20px}.newsletter-success{color:var(--global-text-color);display:none;align-items:center;width:100%}.newsletter-error{color:var(--global-theme-color);display:none;align-items:center;width:100%}.newsletter-back-button{color:var(--global-theme-color);margin:10px auto;text-align:center;display:none;background:rgba(0,0,0,0);border:0;cursor:pointer}@media(max-width:575px){.newsletter-form-input,.newsletter-form-button,.newsletter-loading-button,.newsletter-success,.newsletter-error{font-size:16px!important}.newsletter-form-container{margin-right:20px;margin-left:20px}}.popover{background-color:var(--global-bg-color);border-color:var(--global-divider-color)}.popover .popover-header{color:var(--global-text-color);border-bottom:1px solid var(--global-divider-color)}.popover .popover-body{color:var(--global-text-color)}::highlight(search){background-color:var(--global-theme-color);color:var(--global-text-color)}figure.cover{display:inline-block;text-align:center;margin:.5rem}figure.cover img{vertical-align:bottom}figure.cover figcaption.watched{font-family:monospace;color:#23212d;text-transform:uppercase;background-color:#62c462}figure.cover figcaption.interested{font-family:monospace;color:#23212d;text-transform:uppercase;background-color:#7691db}figure.cover figcaption.reading,figure.cover figcaption.watching{font-family:monospace;color:#23212d;text-transform:uppercase;background-color:#f89406}figure.cover figcaption.uncategorized{font-family:monospace;color:#23212d;text-transform:uppercase;background-color:#b0abb3}figure.cover a.cover-link:hover{color:#23212d!important}.contact-fab{position:fixed;bottom:50px;right:24px;width:56px;height:56px;border-radius:50%;background-color:var(--global-theme-color);color:var(--global-bg-color);border:0;cursor:pointer;box-shadow:0 4px 12px rgba(0,0,0,.3);z-index:1000;display:flex;align-items:center;justify-content:center;font-size:1.4rem;transition:transform .2s ease,box-shadow .2s ease}.contact-fab:hover{transform:scale(1.1);box-shadow:0 6px 16px rgba(0,0,0,.4)}.contact-fab:active{transform:scale(0.95)}.contact-modal{display:none;position:fixed;top:0;left:0;width:100%;height:100%;background-color:rgba(0,0,0,.6);z-index:1001;align-items:center;justify-content:center;opacity:0;transition:opacity .3s ease}.contact-modal.open{display:flex;opacity:1}.contact-modal-content{background-color:var(--global-bg-color);border-radius:12px;padding:24px;width:90%;max-width:400px;position:relative;box-shadow:0 8px 32px rgba(0,0,0,.3);animation:modalSlideIn .3s ease}@keyframes modalSlideIn{from{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.contact-modal-close{position:absolute;top:12px;right:16px;background:0;border:0;font-size:1.8rem;cursor:pointer;color:var(--global-text-color);line-height:1;padding:0}.contact-modal-close:hover{color:var(--global-theme-color)}.contact-modal-title{margin:0 0 8px 0;font-size:1.4rem;color:var(--global-text-color)}.contact-modal-subtitle{margin:0 0 20px 0;font-size:.9rem;color:var(--global-text-color-light);line-height:1.5;font-style:italic}.contact-form .form-group{margin-bottom:16px}.contact-form .contact-input,.contact-form .contact-textarea{width:100%;padding:12px;border:1px solid var(--global-divider-color);border-radius:8px;background-color:var(--global-bg-color);color:var(--global-text-color);font-size:1rem;box-sizing:border-box}.contact-form .contact-input:focus,.contact-form .contact-textarea:focus{outline:0;border-color:var(--global-theme-color)}.contact-form .contact-input::placeholder,.contact-form .contact-textarea::placeholder{color:var(--global-text-color-light)}.contact-form .contact-textarea{resize:vertical;min-height:100px}.contact-form .contact-submit-btn{width:100%;padding:12px;background-color:var(--global-theme-color);color:var(--global-bg-color);border:0;border-radius:8px;font-size:1rem;font-weight:500;cursor:pointer;transition:background-color .2s ease}.contact-form .contact-submit-btn:hover{opacity:.9}.contact-form .contact-error{display:block;color:#e74c3c;font-size:.85rem;margin-top:6px}.contact-form .contact-input.input-error,.contact-form .contact-textarea.input-error{border-color:#e74c3c}@media(max-width:576px){.contact-fab{bottom:50px;right:16px;width:48px;height:48px;font-size:1.2rem}.contact-modal-content{padding:25px;margin:16px}}.about-content p,.about-content li,.about-content span,.about-content em,.about-content strong{font-family:"Fraunces",Georgia,serif;color:#666}.about-content a{color:var(--global-theme-color)}html[data-theme=dark] .about-content p,html[data-theme=dark] .about-content li,html[data-theme=dark] .about-content span,html[data-theme=dark] .about-content em,html[data-theme=dark] .about-content strong{color:#aaa}.bento-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:210px;gap:12px;margin:2rem 0}@media(max-width:900px){.bento-grid{grid-template-columns:repeat(3,1fr);grid-auto-rows:190px}}@media(max-width:600px){.bento-grid{grid-template-columns:repeat(2,1fr);grid-auto-rows:170px;gap:10px}}@media(max-width:400px){.bento-grid{grid-auto-rows:150px}}.bento-tile{position:relative;border-radius:14px;overflow:hidden;display:flex;flex-direction:column;text-decoration:none;transition:transform .25s ease,box-shadow .25s ease;background:var(--global-card-bg-color);border:1px solid var(--global-divider-color)}.bento-tile:hover{transform:translateY(-3px);box-shadow:0 8px 24px rgba(0,0,0,.12);text-decoration:none}.bento-tile:hover .bento-tile-img img{transform:scale(1.04)}.bento-tile.span-wide{grid-column:span 2}.bento-tile.span-tall{grid-row:span 2}@media(max-width:400px){.bento-tile.span-wide{grid-column:span 2}}.bento-tile.image .bento-tile-img{position:absolute;inset:0}.bento-tile.image .bento-tile-img img{width:100%;height:100%;object-fit:cover;transition:transform .35s ease}.bento-tile.image .tile-img-dark{display:none}.bento-tile.image .tile-img-light{display:block}.bento-tile.image .bento-tile-overlay{position:absolute;inset:0;display:flex;flex-direction:column;padding:14px;background:linear-gradient(180deg,rgba(0,0,0,0.35) 0%,transparent 40%,transparent 60%,rgba(0,0,0,0.45) 100%)}.bento-tile.image .bento-tile-overlay .bento-tile-label{color:hsla(0,0,100%,.85)}.bento-tile.image .bento-tile-overlay .bento-tile-arrow{color:hsla(0,0,100%,.7)}.bento-tile.image .bento-tile-overlay .bento-tile-title{margin-top:auto;color:#fff;text-shadow:0 1px 4px rgba(0,0,0,.4)}html[data-theme=dark] .bento-tile.image .tile-img-dark{display:block}html[data-theme=dark] .bento-tile.image .tile-img-light{display:none}.bento-tile.card .bento-tile-img{flex:1;min-height:0;overflow:hidden}.bento-tile.card .bento-tile-img img{width:100%;height:100%;object-fit:cover;transition:transform .35s ease}.bento-tile.card .bento-tile-body{padding:12px 14px;position:relative}.bento-tile.card.span-wide{flex-direction:row}.bento-tile.card.span-wide .bento-tile-img{flex:0 0 45%;max-width:45%}.bento-tile.card.span-wide .bento-tile-body{flex:1;display:flex;flex-direction:column}.bento-tile.text .bento-tile-body{padding:14px;display:flex;flex-direction:column;height:100%;position:relative}.bento-tile.text.bg-warm{background:linear-gradient(135deg,#fef3e2,#fde8d0);border-color:rgba(200,160,100,.2)}html[data-theme=dark] .bento-tile.text.bg-warm{background:linear-gradient(135deg,#2a2318,#302620);border-color:rgba(200,160,100,.15)}.bento-tile.text.bg-pixel{background:linear-gradient(135deg,#1a1a2e,#16213e);border-color:rgba(232,166,166,.15)}.bento-tile.text.bg-pixel .bento-tile-label,.bento-tile.text.bg-pixel .bento-tile-title,.bento-tile.text.bg-pixel .bento-tile-excerpt,.bento-tile.text.bg-pixel .bento-tile-arrow{color:#fff}.bento-tile.book .bento-tile-img{flex:1;min-height:0;display:flex;align-items:center;justify-content:center;padding:14px 14px 0;background:var(--global-card-bg-color)}.bento-tile.book .bento-tile-img img{max-width:100%;max-height:100%;object-fit:contain;border-radius:4px;box-shadow:0 2px 8px rgba(0,0,0,.15);transition:transform .35s ease}.bento-tile.book .bento-tile-book-info{padding:8px 14px 12px;position:relative}.bento-tile-label{font-size:.68rem;font-weight:500;text-transform:uppercase;letter-spacing:.04em;color:var(--global-text-color-light);margin-bottom:4px}.bento-tile-arrow{position:absolute;top:14px;right:14px;font-size:.9rem;color:var(--global-text-color-light);opacity:0;transition:opacity .2s}.bento-tile:hover .bento-tile-arrow{opacity:1}.bento-tile-title{font-size:.95rem;font-weight:600;color:var(--global-text-color);margin:0;line-height:1.3}.bento-tile-excerpt{font-size:.78rem;color:var(--global-text-color-light);margin:4px 0 0;line-height:1.45;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.bento-tile-badge{display:inline-block;font-size:.6rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;padding:2px 7px;border-radius:4px;margin-bottom:4px}.bento-tile-badge.badge-read{background:#e3f2fd;color:#1565c0}html[data-theme=dark] .bento-tile-badge.badge-read{background:rgba(21,101,192,.2);color:#64b5f6}.bento-tile-book-title{display:block;font-size:.82rem;font-weight:600;color:var(--global-text-color);line-height:1.3}.bento-tile-book-author{display:block;font-size:.7rem;color:var(--global-text-color-light);margin-top:1px}d-byline{border-top-color:var(--global-divider-color)!important}d-byline h3{color:var(--global-text-color)!important}d-byline a,d-article d-byline a{color:var(--global-text-color)!important}d-byline a:hover,d-article d-byline a:hover{color:var(--global-hover-color)!important}d-article{border-top-color:var(--global-divider-color)!important}d-article p,d-article h1,d-article h2,d-article h3,d-article h4,d-article h5,d-article h6,d-article li,d-article table{color:var(--global-text-color)!important}d-article h1,d-article h2,d-article hr,d-article table,d-article table th,d-article table td{border-bottom-color:var(--global-divider-color)!important}d-article a{color:var(--global-theme-color)!important}d-article a:hover{color:var(--global-theme-color)!important}d-article b i{display:inline}d-article blockquote{border-left:2px solid var(--global-theme-color)!important}d-article details{color:var(--global-text-color);background-color:var(--global-code-bg-color);margin-top:0;padding:8px 12px;position:relative;border-radius:6px;display:block;margin-bottom:20px;grid-column:text;overflow:auto;max-width:100%}d-article details summary{color:var(--global-theme-color)}d-article details p{margin-top:.5rem;margin-bottom:.5rem}d-article d-footnote{scroll-margin-top:66px;color:var(--global-theme-color)!important}d-article d-footnote:hover{color:var(--global-hover-color)!important}d-article d-cite a,d-article a.citation{color:var(--global-theme-color)!important}d-article d-cite a:hover,d-article a.citation:hover{color:var(--global-hover-color)!important}d-appendix{border-top-color:var(--global-divider-color)!important;color:var(--global-distill-app-color)!important}d-appendix h3,d-appendix li,d-appendix span{color:var(--global-distill-app-color)!important}d-appendix a,d-appendix a.footnote-backlink{color:var(--global-distill-app-color)!important}d-appendix a:hover,d-appendix a.footnote-backlink:hover{color:var(--global-hover-color)!important}.cv-cta-row{display:flex;flex-wrap:wrap;gap:1rem;margin:1.25rem 0 1.75rem}.cv-cta-row>a.cv-pdf-cta{flex:1 1 280px;margin:0}a.cv-pdf-cta{display:flex;align-items:center;gap:1rem;width:100%;margin:1.25rem 0 1.75rem;padding:1.1rem 1.5rem;border:1px solid var(--global-divider-color);border-radius:.75rem;background-color:var(--global-card-bg-color,var(--global-bg-color));color:var(--global-text-color)!important;text-decoration:none!important;box-shadow:0 2px 8px rgba(0,0,0,.04);transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease,color .15s ease}a.cv-pdf-cta:hover,a.cv-pdf-cta:focus{transform:translateY(-1px);border-color:var(--global-theme-color);color:var(--global-theme-color)!important;box-shadow:0 6px 18px rgba(0,0,0,.08);text-decoration:none!important}.cv-pdf-cta__icon{font-size:1.85rem;color:var(--global-theme-color);flex-shrink:0;display:flex;align-items:center;justify-content:center}.cv-pdf-cta__text{display:flex;flex-direction:column;flex-grow:1;line-height:1.25}.cv-pdf-cta__title{font-size:1.15rem;font-weight:600}.cv-pdf-cta__subtitle{font-size:.85rem;opacity:.7;margin-top:.15rem}.cv-pdf-cta__arrow{font-size:.95rem;opacity:.65;flex-shrink:0}a.cv-pdf-cta:hover .cv-pdf-cta__arrow{opacity:1}table.table-cv{background-color:rgba(0,0,0,0)!important}table.table-cv td,table.table-cv th{padding:1px}p.location{font-size:.7rem;white-space:nowrap}div.list-groups{display:flex;flex-wrap:wrap;justify-content:flex-start;flex-direction:row;align-content:center}div.list-group{display:flex;flex-wrap:wrap;flex-direction:column;align-items:flex-start;margin-bottom:2rem}td.list-group-category{color:var(--global-theme-color);margin-bottom:.5rem}td.list-group-category-icon{font-size:.8rem;color:var(--global-theme-color);width:1.4rem;padding-right:.4rem}td.list-group-name{font-size:.8rem}a.anchor{display:block;position:relative;top:-50px;visibility:hidden}.tab{display:flex;flex-wrap:wrap;margin-left:-20px;padding:0;list-style:none;position:relative}.tab>*{flex:none;padding-left:20px;position:relative}.tab>*>a{display:block;text-align:center;padding:9px 20px;color:var(--global-text-color-light);border-bottom:2px solid rgba(0,0,0,0);border-bottom-color:rgba(0,0,0,0);font-size:12px;text-transform:uppercase;transition:color .1s ease-in-out;line-height:20px}.tab>.active>a{color:var(--global-text-color);border-color:var(--global-theme-color)}.tab>li>a{text-decoration:none;cursor:pointer}.tab-content{padding:0}.tab-content>li{display:none}.tab-content>li.active{display:block}.typogram .diagram{display:block}.typogram .diagram line,.typogram .diagram circle,.typogram .diagram rect{stroke:var(--global-text-color)}.typogram .diagram line{stroke-width:2}.typogram .diagram circle{r:3.5}.typogram .diagram rect{width:6px;height:6px}.typogram .diagram text,.typogram .debug text{font-family:Iosevka Fixed,monospace;font-size:3em;text-anchor:middle;alignment-baseline:central;white-space:pre;fill:var(--global-text-color)}.typogram .reserved{fill:rgba(0,0,0,0);white-space:pre}.typogram .debug[debug=true] .reserved{fill:var(--global-text-color);opacity:.5}.typogram .debug[debug=true] line.grid{stroke:var(--global-text-color);stroke-width:.2;stroke-linecap:butt;fill:var(--global-text-color);opacity:1%}.typogram polygon{stroke-width:0}.typogram .debug[debug=true] polygon.inner{fill:var(--global-text-color);stroke:var(--global-text-color);opacity:5%}.typogram polygon{stroke:var(--global-text-color);stroke-linecap:butt;fill:var(--global-text-color)}.typogram .debug[debug=true] polygon,.typogram .debug[debug=true] line.grid{opacity:10%}.typogram .debug[debug=true] polygon,.typogram .debug[debug=true] path,.typogram .debug[debug=true] circle{opacity:50%}.typogram .debug[debug=true] polygon{fill:red;stroke:red}.typogram .debug[debug=true] circle,.typogram .debug[debug=true] path{opacity:50%;fill:red}.typogram .debug[debug=true] circle{stroke:red}.typogram .debug[debug=true] .inner{stroke-width:.2}.typogram line.part{stroke-width:6;stroke-linecap:butt;stroke:var(--global-text-color)}.typogram .debug[debug=true] line.part{opacity:50%;stroke:red}.typogram .debug[debug=true] line.center{stroke-width:3;stroke-linecap:butt;opacity:10%;stroke:var(--global-text-color)}.typogram text::selection{fill:HighlightText;background-color:Highlight}/*!
 * Font Awesome Free 6.7.1 by @fontawesome - https://fontawesome.com
 * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
 * Copyright 2024 Fonticons, Inc.
 */.fa{font-family:var(--fa-style-family,"Font Awesome 6 Free");font-weight:var(--fa-style,900)}.fas,.far,.fa-solid,.fa-brands,.fa{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:var(--fa-display,inline-block);font-style:normal;font-variant:normal;line-height:1;text-rendering:auto}.fas::before,.far::before,.fa-solid::before,.fa-brands::before,.fa::before{content:var(--fa)}.fas,.fa-solid,.far{font-family:"Font Awesome 6 Free"}.fa-brands{font-family:"Font Awesome 6 Brands"}.fa-sm{font-size:.875em;line-height:.0714285718em;vertical-align:.0535714295em}@keyframes fa-beat{0%,90%{transform:scale(1)}45%{transform:scale(var(--fa-beat-scale,1.25))}}@keyframes fa-bounce{0%{transform:scale(1,1) translateY(0)}10%{transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,0.9)) translateY(0)}30%{transform:scale(var(--fa-bounce-jump-scale-x,0.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-0.5em))}50%{transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,0.95)) translateY(0)}57%{transform:scale(1,1) translateY(var(--fa-bounce-rebound,-0.125em))}64%{transform:scale(1,1) translateY(0)}100%{transform:scale(1,1) translateY(0)}}@keyframes fa-fade{50%{opacity:var(--fa-fade-opacity,0.4)}}@keyframes fa-beat-fade{0%,100%{opacity:var(--fa-beat-fade-opacity,0.4);transform:scale(1)}50%{opacity:1;transform:scale(var(--fa-beat-fade-scale,1.125))}}@keyframes fa-flip{50%{transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg))}}@keyframes fa-shake{0%{transform:rotate(-15deg)}4%{transform:rotate(15deg)}8%,24%{transform:rotate(-18deg)}12%,28%{transform:rotate(18deg)}16%{transform:rotate(-22deg)}20%{transform:rotate(22deg)}32%{transform:rotate(-12deg)}36%{transform:rotate(12deg)}40%,100%{transform:rotate(0)}}@keyframes fa-spin{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}.fa-star{--fa:"";--fa--fa:""}.fa-clipboard{--fa:"";--fa--fa:""}.fa-microphone{--fa:"";--fa--fa:""}.fa-check-circle{--fa:"";--fa--fa:""}.fa-arrow-up-right-from-square{--fa:"";--fa--fa:""}.fa-arrow-right{--fa:"";--fa--fa:""}.fa-clipboard-check{--fa:"";--fa--fa:""}.fa-code-branch{--fa:"";--fa--fa:""}.fa-file-pdf{--fa:"";--fa--fa:""}.fa-tag{--fa:"";--fa--fa:""}.fa-envelope{--fa:"";--fa--fa:""}.fa-map-marker-alt{--fa:"";--fa--fa:""}.fa-link{--fa:"";--fa--fa:""}.fa-quote-left{--fa:"";--fa--fa:""}.fa-building{--fa:"";--fa--fa:""}.fa-hashtag{--fa:"\#";--fa--fa:"\#\#"}.fa-calendar{--fa:"";--fa--fa:""}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}/*!
 * Font Awesome Free 6.7.1 by @fontawesome - https://fontawesome.com
 * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
 * Copyright 2024 Fonticons, Inc.
 */:root{--fa-style-family-brands:'Font Awesome 6 Brands';--fa-font-brands:normal 400 1em/1 'Font Awesome 6 Brands'}@font-face{font-family:"Font Awesome 6 Brands";font-style:normal;font-weight:400;font-display:block;src:url("../webfonts/fa-brands-400.woff2") format("woff2"),url("../webfonts/fa-brands-400.ttf") format("truetype")}.fa-brands{font-weight:400}.fa-x-twitter{--fa:""}.fa-linkedin{--fa:""}.fa-instagram{--fa:""}.fa-github{--fa:""}/*!
 * Font Awesome Free 6.7.1 by @fontawesome - https://fontawesome.com
 * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
 * Copyright 2024 Fonticons, Inc.
 */:root{--fa-style-family-classic:'Font Awesome 6 Free';--fa-font-solid:normal 900 1em/1 'Font Awesome 6 Free'}@font-face{font-family:"Font Awesome 6 Free";font-style:normal;font-weight:900;font-display:block;src:url("../webfonts/fa-solid-900.woff2") format("woff2"),url("../webfonts/fa-solid-900.ttf") format("truetype")}.fas,.fa-solid{font-weight:900}/*!
 * Font Awesome Free 6.7.1 by @fontawesome - https://fontawesome.com
 * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
 * Copyright 2024 Fonticons, Inc.
 */:root{--fa-style-family-classic:'Font Awesome 6 Free';--fa-font-regular:normal 400 1em/1 'Font Awesome 6 Free'}@font-face{font-family:"Font Awesome 6 Free";font-style:normal;font-weight:400;font-display:block;src:url("../webfonts/fa-regular-400.woff2") format("woff2"),url("../webfonts/fa-regular-400.ttf") format("truetype")}.far{font-weight:400}/*!
 * Tabler Icons 3.20.0 by tabler - https://tabler.io
 * License - https://github.com/tabler/tabler-icons/blob/master/LICENSE
 */@font-face{font-family:"tabler-icons";font-style:normal;font-weight:400;src:url("../fonts/tabler-icons.woff2?v3.20.0") format("woff2"),url("../fonts/tabler-icons.woff?") format("woff"),url("../fonts/tabler-icons.ttf?v3.20.0") format("truetype")}.ti{font-family:"tabler-icons"!important;speak:none;font-style:normal;font-weight:normal;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.ti-moon-filled:before{content:"\f684"}.ti-search:before{content:"\eb1c"}.ti-sun-filled:before{content:"\f6a9"}.ti-sun-moon:before{content:"\f4a3"}/*!
 * Tabler Icons 3.20.0 by tabler - https://tabler.io
 * License - https://github.com/tabler/tabler-icons/blob/master/LICENSE
 */@font-face{font-family:"tabler-icons";font-style:normal;font-weight:400;src:url("../fonts/tabler-icons-filled.woff2?v3.20.0") format("woff2"),url("../fonts/tabler-icons-filled.woff?") format("woff"),url("../fonts/tabler-icons-filled.ttf?v3.20.0") format("truetype")}.ti{font-family:"tabler-icons"!important;speak:none;font-style:normal;font-weight:normal;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}/*!
 * Tabler Icons 3.20.0 by tabler - https://tabler.io
 * License - https://github.com/tabler/tabler-icons/blob/master/LICENSE
 */@font-face{font-family:"tabler-icons";font-style:normal;font-weight:400;src:url("../fonts/tabler-icons-outline.woff2?v3.20.0") format("woff2"),url("../fonts/tabler-icons-outline.woff?") format("woff"),url("../fonts/tabler-icons-outline.ttf?v3.20.0") format("truetype")}.ti{font-family:"tabler-icons"!important;speak:none;font-style:normal;font-weight:normal;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.ti-search:before{content:"\eb1c"}.ti-sun-moon:before{content:"\f4a3"}#pixel-board-app{position:relative;overflow:hidden;padding:1rem 0 2rem}.pixel-controls{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1rem;background:rgba(0,0,0,.15);border-radius:10px;padding:.85rem 1.25rem;margin-bottom:1.5rem;backdrop-filter:blur(6px)}html[data-theme=dark] .pixel-controls{background:hsla(0,0,100%,.06)}.color-palette{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}.palette-label{font-family:monospace;font-size:.85rem;opacity:.6;margin-right:.2rem}.color-swatches{display:flex;gap:.4rem;flex-wrap:wrap}.color-swatch{width:28px;height:28px;border-radius:50%;border:2px solid rgba(0,0,0,0);cursor:pointer;transition:transform .15s ease,box-shadow .15s ease;outline:0;padding:0;position:relative}.color-swatch:hover{transform:scale(1.15)}.color-swatch.selected{box-shadow:0 0 0 2.5px var(--global-bg-color),0 0 0 4.5px var(--global-text-color);transform:scale(1.1)}.pixel-info{display:flex;flex-direction:column;align-items:flex-end;gap:.15rem;font-family:monospace;font-size:.8rem;opacity:.7;min-width:160px;text-align:right}.pixel-info span{display:block;line-height:1.4}.pixel-grid-wrapper{display:flex;justify-content:center;margin:0 auto}#pixel-canvas{border-radius:4px;cursor:crosshair;background:#1a1a2e;box-shadow:0 4px 24px rgba(0,0,0,.3),0 0 60px rgba(111,237,214,.04);image-rendering:pixelated;max-width:100%}.pixel-actions{display:flex;justify-content:center;gap:.75rem;margin-top:1.25rem}.pixel-btn{font-family:monospace;font-size:.8rem;padding:.45rem 1rem;border-radius:6px;border:1px solid var(--global-divider-color);background:rgba(0,0,0,0);color:var(--global-text-color);cursor:pointer;opacity:.6;transition:opacity .2s ease,background .2s ease}.pixel-btn:hover{opacity:1;background:rgba(111,237,214,.08)}.pixel-btn-accent{border-color:rgba(111,237,214,.45);color:#45b69c;opacity:.85}html[data-theme=dark] .pixel-btn-accent{color:#6fedd6}.pixel-btn-accent:hover{background:rgba(111,237,214,.14);box-shadow:0 0 16px rgba(111,237,214,.18)}.pixel-modal{position:fixed;inset:0;z-index:1002;display:flex;align-items:center;justify-content:center;padding:1rem;visibility:hidden;opacity:0;transition:opacity .25s ease,visibility .25s ease}.pixel-modal.open{visibility:visible;opacity:1}.pixel-modal-overlay{position:absolute;inset:0;background:rgba(10,10,24,.72);backdrop-filter:blur(5px)}.pixel-modal-card{position:relative;width:100%;max-width:420px;background:var(--global-bg-color);border:1px solid var(--global-divider-color);border-radius:12px;padding:1.6rem 1.5rem 1.5rem;box-shadow:0 12px 40px rgba(0,0,0,.45),0 0 80px rgba(111,237,214,.07);transform:translateY(10px) scale(0.98);transition:transform .25s ease}.pixel-modal.open .pixel-modal-card{transform:translateY(0) scale(1)}.pixel-modal-close{position:absolute;top:.6rem;right:.9rem;background:0;border:0;font-size:1.6rem;line-height:1;padding:0;cursor:pointer;color:var(--global-text-color);opacity:.5;transition:opacity .15s ease}.pixel-modal-close:hover{opacity:1}.pixel-modal-title{font-family:monospace;font-size:1.15rem;margin:0 0 .5rem;color:var(--global-text-color)}.pixel-modal-subtitle{font-size:.85rem;line-height:1.5;margin:0 0 1.1rem;color:var(--global-text-color-light)}.pixel-modal-preview{display:flex;flex-direction:column;align-items:center;gap:.45rem;margin-bottom:1.1rem}.pixel-modal-preview img{width:180px;height:180px;border-radius:6px;image-rendering:pixelated;background:#1a1a2e;box-shadow:0 4px 18px rgba(0,0,0,.35),0 0 30px rgba(111,237,214,.08)}.pixel-modal-preview-caption{font-family:monospace;font-size:.72rem;opacity:.55}.pixel-modal-textarea{width:100%;font-size:.85rem;font-family:inherit;line-height:1.5;padding:.65rem .8rem;border-radius:8px;border:1px solid var(--global-divider-color);background:rgba(0,0,0,.12);color:var(--global-text-color);resize:vertical;min-height:76px;outline:0;transition:border-color .15s ease,box-shadow .15s ease}html[data-theme=dark] .pixel-modal-textarea{background:hsla(0,0,100%,.05)}.pixel-modal-textarea:focus{border-color:rgba(111,237,214,.6);box-shadow:0 0 0 3px rgba(111,237,214,.12)}.pixel-modal-textarea::placeholder{color:var(--global-text-color-light);opacity:.7}.pixel-modal-error{display:none;font-family:monospace;font-size:.75rem;color:#e84855;margin-top:.4rem}.pixel-modal-error.visible{display:block}.pixel-modal-send{display:block;width:100%;margin-top:.9rem;font-family:monospace;font-size:.85rem;padding:.6rem 1rem;border-radius:8px;border:1px solid rgba(111,237,214,.5);background:rgba(111,237,214,.12);color:#45b69c;cursor:pointer;transition:background .2s ease,box-shadow .2s ease}html[data-theme=dark] .pixel-modal-send{color:#6fedd6}.pixel-modal-send:hover:not(:disabled){background:rgba(111,237,214,.22);box-shadow:0 0 18px rgba(111,237,214,.2)}.pixel-modal-send:disabled{opacity:.5;cursor:wait}.pixel-modal-success{text-align:center;padding:.5rem 0 .2rem}.pixel-modal-success .pixel-modal-success-art{width:44px;height:44px;margin:0 auto .9rem;background:conic-gradient(from 0,#6fedd6 0 25%,#f4d35e 0 50%,#e84855 0 75%,#7b6b8d 0 100%);border-radius:6px;image-rendering:pixelated;box-shadow:0 0 24px rgba(111,237,214,.3);animation:pixel-pop .45s ease}.pixel-modal-success .pixel-modal-subtitle{margin-bottom:1.1rem}.pixel-modal-success .pixel-modal-send{margin-top:0}@keyframes pixel-pop{0%{transform:scale(0.4) rotate(-12deg);opacity:0}70%{transform:scale(1.12) rotate(4deg)}100%{transform:scale(1) rotate(0);opacity:1}}.pixel-particle{position:absolute;border-radius:2px;pointer-events:none;animation:pixel-float 5s ease-in-out infinite alternate;z-index:0}@keyframes pixel-float{0%{transform:translateY(0) rotate(0)}100%{transform:translateY(-20px) rotate(45deg)}}.reading-page{max-width:1200px;margin:0 auto;padding:0 2rem 4rem}.reading-page .reading-header{margin-bottom:2.5rem}.reading-page .reading-header h1{font-family:"Times New Roman","Georgia",serif;font-size:3.5rem;font-weight:400;letter-spacing:-0.02em;margin-bottom:.5rem;color:var(--global-text-color)}.reading-page .reading-header p{font-size:.95rem;color:var(--global-text-color-light);max-width:540px;line-height:1.6}.reading-page .reading-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem}@media(max-width:992px){.reading-page .reading-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:768px){.reading-page .reading-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:480px){.reading-page .reading-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}}.reading-page .book-card{border:1px solid var(--global-divider-color);border-radius:12px;overflow:hidden;background:var(--global-card-bg-color);transition:box-shadow .15s cubic-bezier(0.4,0,0.2,1),transform .15s cubic-bezier(0.4,0,0.2,1);text-decoration:none;color:inherit;display:flex;flex-direction:column;padding:14px}.reading-page .book-card:hover{box-shadow:0 8px 24px rgba(0,0,0,.1),0 2px 8px rgba(0,0,0,.04);transform:translateY(-3px) scale(1.01);text-decoration:none;color:inherit}.reading-page .book-card .card-body{display:flex;gap:12px;align-items:flex-end;flex:1}.reading-page .book-card .card-body .book-cover{flex-shrink:0}.reading-page .book-card .card-body .book-cover img{width:100px;height:auto;max-height:155px;object-fit:cover;border-radius:3px;box-shadow:0 1px 4px rgba(0,0,0,.12)}.reading-page .book-card .card-body .book-info{display:flex;flex-direction:column;gap:4px;min-width:0;padding-bottom:2px}.reading-page .book-card .card-body .book-info .book-status{display:inline-block;align-self:flex-start;padding:2px 8px;border-radius:4px;font-size:11px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;line-height:1.5;margin-bottom:2px}.reading-page .book-card .card-body .book-info .book-status.status-read{background-color:#dcfce7;color:#166534}.reading-page .book-card .card-body .book-info .book-title{font-size:14px;font-weight:600;line-height:1.35;color:var(--global-text-color)}.reading-page .book-card .card-body .book-info .book-author{font-size:13px;color:var(--global-text-color-light);line-height:1.3}html[data-theme=dark] .reading-page .book-card .card-body .book-info .book-status.status-read{background-color:#065f46;color:#a7f3d0}.pack-page{--pk-bg:#fff;--pk-card:#f8f8fb;--pk-card-hover:#f0f0f6;--pk-border:#e8e8ef;--pk-text:#1a1a2e;--pk-text-muted:#6b7280;--pk-accent:var(--global-theme-color);--pk-green:#22c55e;--pk-green-bg:rgba(34,197,94,0.08);--pk-red:#ef4444;--pk-red-bg:rgba(239,68,68,0.08);--pk-bar-bg:#e5e7eb;--pk-bar-fill:#22c55e;--pk-bar-warn:#f59e0b;--pk-bar-danger:#ef4444;--pk-receipt-bg:#f9fafb;--pk-quip:#8b8fa3;--pk-empty-opacity:.4}html[data-theme=dark] .pack-page{--pk-bg:#0f1117;--pk-card:#1a1d2e;--pk-card-hover:#22263a;--pk-border:#2a2e42;--pk-text:#e2e8f0;--pk-text-muted:#94a3b8;--pk-green-bg:rgba(34,197,94,0.1);--pk-red-bg:rgba(239,68,68,0.1);--pk-bar-bg:#1e2235;--pk-receipt-bg:#161928;--pk-quip:#64748b}.pack-page{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;max-width:860px;margin:0 auto;padding-bottom:3rem}.pack-bar-wrap{position:sticky;top:56px;z-index:20;background:var(--pk-bg);padding:.75rem 0;margin:-0.5rem 0 1.5rem;border-bottom:1px solid var(--pk-border);transition:background .3s}.pack-bar{max-width:500px;margin:0 auto}.pack-bar-text{text-align:center;font-weight:700;font-size:1.5rem;color:var(--pk-green);margin-bottom:.4rem;font-variant-numeric:tabular-nums;transition:color .3s}.pack-bar-over .pack-bar-text{color:var(--pk-bar-danger)}.pack-bar-track{height:12px;background:var(--pk-bar-bg);border-radius:6px;position:relative;overflow:visible}.pack-bar-fill{height:100%;background:var(--pk-bar-fill);border-radius:6px 0 0 6px;transition:width .4s ease,background .3s;width:0;position:absolute;top:0;left:0}.pack-bar-over{height:100%;background:#ef4444;border-radius:0 6px 6px 0;transition:width .4s ease;width:0;position:absolute;top:0;opacity:.85}.pack-page .pack-bar-over{animation:pk-pulse 1.5s ease-in-out infinite}@keyframes pk-pulse{0%,100%{opacity:.7}50%{opacity:1}}.pack-bar-marker{position:absolute;top:-2px;bottom:-2px;width:2px;background:var(--pk-text);opacity:.5;z-index:2;transition:left .3s}.pack-bar-marker span{position:absolute;top:-18px;left:50%;transform:translateX(-50%);font-size:.6rem;font-weight:700;color:var(--pk-text-muted);white-space:nowrap;letter-spacing:.5px}.pack-status{text-align:center;font-size:.85rem;font-weight:600;padding:.5rem .75rem;margin-top:.5rem;border-radius:6px;transition:all .3s}.pack-status-over{background:rgba(239,68,68,.1);color:#ef4444}html[data-theme=dark] .pack-status-over{background:rgba(239,68,68,.15)}.pack-status-tight{background:rgba(245,158,11,.1);color:#d97706}html[data-theme=dark] .pack-status-tight{background:rgba(245,158,11,.12);color:#f59e0b}.pack-status-ok{background:rgba(34,197,94,.1);color:#16a34a}html[data-theme=dark] .pack-status-ok{background:rgba(34,197,94,.12);color:#22c55e}.pack-reaction{position:fixed;top:-80px;left:50%;transform:translateX(-50%);z-index:100;background:var(--pk-card);color:var(--pk-text);border:1px solid var(--pk-border);border-radius:10px;padding:.75rem 1.5rem;font-size:.9rem;font-style:italic;box-shadow:0 8px 30px rgba(0,0,0,.12);transition:top .4s cubic-bezier(0.34,1.56,0.64,1);max-width:90vw;text-align:center;pointer-events:none}.pack-reaction-show{top:80px}.pack-hero{text-align:center;margin-bottom:2.5rem}.pack-hero-emoji{font-size:4rem;margin-bottom:.5rem;line-height:1}.pack-hero-title{font-size:1.6rem;font-weight:700;color:var(--pk-text);margin:0 0 .5rem}.pack-hero-sub{color:var(--pk-text-muted);font-size:.95rem;max-width:480px;margin:0 auto;line-height:1.5}.pack-section{margin-bottom:2.5rem}.pack-section-title{font-size:1.15rem;font-weight:700;color:var(--pk-text);margin:0 0 .4rem}.pack-section-sub{color:var(--pk-text-muted);font-size:.85rem;margin:0 0 1.2rem}.pack-cat-title{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:2px;color:var(--pk-text-muted);margin:1.5rem 0 .75rem;padding-bottom:.4rem;border-bottom:1px solid var(--pk-border)}.pack-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.75rem}.pack-item{background:var(--pk-card);border:1px solid var(--pk-border);border-radius:10px;padding:1.1rem .9rem .9rem;text-align:center;transition:border-color .2s,opacity .3s,transform .2s}.pack-item:hover{border-color:var(--pk-accent);transform:translateY(-1px)}.pack-item-empty{opacity:var(--pk-empty-opacity)}.pack-item-empty:hover{opacity:.7}.pack-item-emoji{font-size:2.2rem;line-height:1;margin-bottom:.5rem}.pack-item-name{font-weight:600;font-size:.88rem;color:var(--pk-text);margin-bottom:.15rem}.pack-item-weight{font-size:.95rem;font-weight:700;color:var(--pk-accent);margin-bottom:.4rem}.pack-item-quip{font-size:.72rem;color:var(--pk-quip);font-style:italic;line-height:1.4;margin-bottom:.7rem;min-height:2.1em}.pack-item-controls{display:flex;align-items:center;justify-content:center;gap:.5rem}.pack-item-qty{font-weight:700;font-size:1rem;color:var(--pk-text);min-width:1.8rem;text-align:center;font-variant-numeric:tabular-nums}.pack-btn{font-size:.72rem;font-weight:600;padding:5px 14px;border-radius:6px;border:0;cursor:pointer;transition:all .15s;text-transform:uppercase;letter-spacing:.5px}.pack-btn:disabled{opacity:.25;cursor:default;transform:none!important}.pack-btn:active:not(:disabled){transform:scale(0.95)}.pack-btn-add{background:var(--pk-green);color:#fff}.pack-btn-add:hover:not(:disabled){filter:brightness(1.1)}.pack-btn-remove{background:var(--pk-red-bg);color:var(--pk-red)}.pack-btn-remove:hover:not(:disabled){background:var(--pk-red);color:#fff}.pack-receipt-table{width:100%;border-collapse:collapse;font-size:.88rem;color:var(--pk-text);background:var(--pk-receipt-bg);border-radius:8px;overflow:hidden}.pack-receipt-table td{padding:.5rem .75rem;border-bottom:1px solid var(--pk-border)}.pack-receipt-table tr:last-child td{border-bottom:0}.pack-receipt-header td{font-weight:700;font-size:.75rem;text-transform:uppercase;letter-spacing:1px;color:var(--pk-text-muted);padding-top:.75rem}.pack-receipt-total td{font-weight:700;padding-top:.75rem;border-top:2px solid var(--pk-border)}.pack-receipt-w{text-align:right;font-weight:600;font-variant-numeric:tabular-nums}.pack-receipt-plus{color:var(--pk-red)}.pack-receipt-minus{color:var(--pk-green)}.pack-stats{text-align:center;padding:2rem 1rem;color:var(--pk-text-muted);font-size:.9rem;line-height:1.8;border-top:1px solid var(--pk-border)}.pack-stats strong{color:var(--pk-text)}@media(max-width:700px){.pack-grid{grid-template-columns:repeat(2,1fr)}.pack-hero-title{font-size:1.3rem}.pack-bar-text{font-size:1.25rem}}@media(max-width:440px){.pack-grid{grid-template-columns:1fr}.pack-item{padding:.9rem .75rem .75rem}.pack-item-emoji{font-size:1.8rem}}html:has(.nightsky-page){--global-bg-color:transparent;--global-text-color:#e6e9ff;--global-text-color-light:#b6bcdb;--global-divider-color:rgba(255,255,255,0.14);--global-card-bg-color:rgba(20,24,46,0.55);--global-footer-bg-color:transparent;--global-footer-text-color:#b6bcdb;--global-footer-link-color:#e6e9ff;background-color:#04050b;overflow-x:clip;background-image:radial-gradient(ellipse at 18% 16%,rgba(120,80,200,0.28) 0%,transparent 55%),radial-gradient(ellipse at 84% 84%,rgba(40,110,200,0.26) 0%,transparent 60%),url("../img/nightsky/starfield.png"),radial-gradient(ellipse at top,#1c1f3d 0%,#0a0d1f 55%,#04050b 100%);background-repeat:no-repeat,no-repeat,repeat,no-repeat;background-size:auto,auto,200px 200px,cover;background-position:center,center,center,center;background-attachment:fixed,fixed,scroll,fixed}html:has(.nightsky-page) body{background-color:rgba(0,0,0,0)}.nightsky-page{--ns-bg-top:#1c1f3d;--ns-bg-mid:#0a0d1f;--ns-bg-bottom:#04050b;--ns-text:#e6e9ff;--ns-text-soft:#b6bcdb;--ns-text-mute:#7d85a8;--ns-card-bg:rgba(20,24,46,0.92);--ns-card-border:rgba(255,255,255,0.12);--ns-accent:var(--global-theme-color);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ns-text);max-width:980px;margin:0 auto;padding:.5rem 0 4rem}.nightsky-hero{padding:1.5rem 0 1.75rem;text-align:left}.nightsky-sub{font-size:1.05rem;line-height:1.7;color:var(--global-text-color-light);margin:0;max-width:640px}.nightsky-hint-mobile{display:none;color:var(--global-text-color-light)}@media(hover:none)and (pointer:coarse){.nightsky-hint-mobile{display:inline}}.nightsky-sub-link{margin-top:.6rem;font-size:.95rem}.nightsky-sub-link a{color:var(--ns-text);text-decoration:underline;text-decoration-color:rgba(230,233,255,.4);text-underline-offset:3px;transition:text-decoration-color .2s ease,color .2s ease}.nightsky-sub-link a:hover{color:#fff;text-decoration-color:rgba(230,233,255,.9)}.nightsky-stage{position:relative;width:100vw;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);height:clamp(480px,74vh,880px);border-radius:0;overflow:hidden;cursor:crosshair;box-shadow:0 24px 80px rgba(0,0,0,.6),inset 0 1px 0 hsla(0,0,100%,.06),inset 0 -1px 0 hsla(0,0,100%,.06);background:linear-gradient(115deg,transparent 22%,rgba(170,190,255,0.05) 38%,rgba(215,195,255,0.1) 50%,rgba(255,220,200,0.07) 60%,transparent 78%),radial-gradient(ellipse at 18% 22%,rgba(120,80,200,0.22) 0%,transparent 55%),radial-gradient(ellipse at 84% 78%,rgba(40,110,200,0.2) 0%,transparent 60%),radial-gradient(ellipse at top,var(--ns-bg-top) 0%,var(--ns-bg-mid) 55%,var(--ns-bg-bottom) 100%)}@media(max-width:600px){.nightsky-stage{height:clamp(520px,82vh,720px)}}.nightsky-stage::after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse at center,transparent 55%,rgba(0,0,0,0.35) 88%,rgba(0,0,0,0.55) 100%);z-index:2}.nightsky-svg{position:absolute;inset:0;width:100%;height:100%;display:block;z-index:1}@keyframes ns-twinkle{0%,100%{opacity:var(--ns-op,0.7)}50%{opacity:calc(var( -  - ns - op, 0.7)*.55)}}.ns-ambient{animation-name:ns-twinkle;animation-iteration-count:infinite;animation-timing-function:ease-in-out;will-change:opacity;pointer-events:none}.ns-field-halo{pointer-events:none}.ns-constellation{fill:none;stroke:hsla(0,0,100%,.07);stroke-width:.6;stroke-linecap:round;stroke-linejoin:round;pointer-events:none;stroke-dasharray:2 4;transition:stroke .4s ease}.ns-stage-hover .ns-constellation{stroke:hsla(0,0,100%,.14)}.ns-spike{pointer-events:none;opacity:.9}.ns-spike-line{stroke-linecap:round}.ns-shooting{pointer-events:none;fill:none;stroke:hsla(0,0,100%,.95);stroke-width:1.4;stroke-linecap:round}@keyframes ns-named-twinkle{0%,100%{opacity:1}50%{opacity:.55}}.ns-named{cursor:pointer;outline:0}.ns-named .ns-halo{transform-origin:center;transform-box:fill-box;transform:scale(0.17);opacity:.5;transition:opacity .4s ease,transform .45s cubic-bezier(0.22,1,0.36,1);pointer-events:none}.ns-named .ns-core{fill:#fff;pointer-events:none;transform-origin:center;transform-box:fill-box;transition:transform .4s ease;animation:ns-named-twinkle 5s ease-in-out infinite}.ns-named .ns-spike{opacity:0;transition:opacity .4s ease}.ns-named .ns-hit{fill:rgba(0,0,0,0);cursor:pointer;outline:0}.ns-named .ns-label{font-family:Georgia,"Times New Roman",Times,serif;font-size:14px;font-style:italic;fill:#fff;opacity:0;transition:opacity .3s ease;pointer-events:none;letter-spacing:.02em}.ns-named.is-active .ns-halo,.ns-named:focus-within .ns-halo{transform:scale(1.4);opacity:1}.ns-named.is-active .ns-core,.ns-named:focus-within .ns-core{transform:scale(1.25);opacity:1;animation-play-state:paused}.ns-named.is-active .ns-spike,.ns-named:focus-within .ns-spike{opacity:1}.ns-named.is-active .ns-label,.ns-named:focus-within .ns-label{opacity:1}.nightsky-tooltip{position:absolute;top:0;left:0;width:280px;max-width:calc(100% - 24px);padding:.85rem 1rem .95rem;background:var(--ns-card-bg);border:1px solid var(--ns-card-border);border-radius:12px;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);box-shadow:0 12px 36px rgba(0,0,0,.45);color:var(--ns-text);pointer-events:none;opacity:0;transform:translate(-50%,-110%);transition:opacity .18s ease,transform .18s ease;z-index:4}.nightsky-tooltip[data-visible=true]{opacity:1}.ns-tt-row{display:flex;align-items:center;gap:.7rem;margin-bottom:.4rem}.ns-tt-avatar{width:36px;height:36px;border-radius:50%;object-fit:cover;border:1px solid hsla(0,0,100%,.15);flex:0 0 auto}.ns-tt-avatar-placeholder{width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,rgba(255,255,255,0.15),rgba(255,255,255,0.04));border:1px solid hsla(0,0,100%,.12);display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:600;color:hsla(0,0,100%,.92)!important;flex:0 0 auto;font-family:Georgia,"Times New Roman",Times,serif}.ns-tt-name{font-size:1rem;font-weight:600;line-height:1.15;margin:0;color:var(--ns-text)!important}.ns-tt-meta{font-size:.72rem;color:var(--ns-text-mute);margin:.12rem 0 0;text-transform:uppercase;letter-spacing:.08em}.ns-tt-role{font-size:.9rem;color:var(--ns-text);margin:0 0 .35rem;font-weight:600}.ns-tt-story{font-size:.85rem;line-height:1.5;color:var(--ns-text-soft);margin:0;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}.ns-tt-hint{margin:.55rem 0 0;font-size:.72rem;color:var(--ns-text-mute);text-transform:uppercase;letter-spacing:.08em}.nightsky-reset{position:absolute;bottom:12px;right:12px;width:34px;height:34px;border-radius:50%;border:1px solid hsla(0,0,100%,.2);background:rgba(10,13,31,.55);color:hsla(0,0,100%,.85);font-size:1rem;cursor:pointer;display:flex;align-items:center;justify-content:center;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);z-index:3;transition:background .2s ease,transform .2s ease}.nightsky-reset:hover{background:rgba(20,25,50,.85);transform:rotate(60deg)}.nightsky-reset:focus-visible{outline:2px solid var(--ns-accent);outline-offset:2px}.nightsky-hint{position:absolute;bottom:14px;left:16px;z-index:3;pointer-events:none;font-family:Georgia,"Times New Roman",Times,serif;font-style:italic;font-size:.78rem;letter-spacing:.02em;color:rgba(230,233,255,.55)}.nightsky-hint strong{font-style:normal;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-weight:600;color:rgba(230,233,255,.85);letter-spacing:.06em;margin-right:.4rem}.nightsky-modal{position:fixed;inset:0;z-index:1000;display:none;align-items:center;justify-content:center;padding:1rem}.nightsky-modal[aria-hidden=false]{display:flex}.nightsky-modal-overlay{position:absolute;inset:0;background:rgba(5,6,13,.78);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}.nightsky-modal-card{position:relative;width:100%;max-width:580px;max-height:85vh;overflow:auto;padding:1.75rem 1.75rem 1.5rem;background:var(--ns-card-bg);border:1px solid var(--ns-card-border);border-radius:16px;color:var(--ns-text);box-shadow:0 30px 80px rgba(0,0,0,.6);animation:ns-modal-in .22s ease-out}@media(max-width:600px){.nightsky-modal-card{padding:1.25rem 1.2rem 1.1rem}}@keyframes ns-modal-in{from{opacity:0;transform:translateY(8px) scale(0.98)}to{opacity:1;transform:translateY(0) scale(1)}}.ns-modal-close{position:absolute;top:12px;right:12px;width:32px;height:32px;border-radius:50%;border:1px solid hsla(0,0,100%,.15);background:hsla(0,0,100%,.04);color:var(--ns-text);font-size:1.05rem;line-height:1;cursor:pointer}.ns-modal-close:hover{background:hsla(0,0,100%,.1)}.ns-modal-close:focus-visible{outline:2px solid var(--ns-accent);outline-offset:2px}.ns-modal-head{display:flex;gap:.9rem;align-items:center;margin:0 2rem 1rem 0}.ns-modal-avatar,.ns-modal-avatar-placeholder{width:56px;height:56px;flex:0 0 auto}.ns-modal-avatar{border-radius:50%;object-fit:cover;border:1px solid hsla(0,0,100%,.15)}.ns-modal-avatar-placeholder{border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:Georgia,"Times New Roman",Times,serif;font-size:1.4rem;font-weight:600;color:hsla(0,0,100%,.95)!important;background:linear-gradient(135deg,rgba(255,255,255,0.18),rgba(255,255,255,0.05));border:1px solid hsla(0,0,100%,.18)}.ns-modal-name{font-family:Georgia,"Times New Roman",Times,serif;font-size:1.7rem;font-style:italic;margin:0;line-height:1.15;color:var(--ns-text)!important}.ns-modal-role{margin:.15rem 0 0;font-size:1rem;color:var(--ns-text);font-weight:600}.ns-modal-meta{margin:.2rem 0 0;font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;color:var(--ns-text-mute)}.ns-modal-story p{font-size:.98rem;line-height:1.75;color:var(--ns-text);margin:0 0 .85rem}.ns-modal-story p:last-child{margin-bottom:0}.ns-modal-link{display:inline-block;margin-top:.6rem;font-size:.85rem;color:var(--ns-accent);text-decoration:none;font-weight:600}.ns-modal-link::after{content:" →"}.ns-modal-link:hover{text-decoration:underline}@media(prefers-reduced-motion:reduce){.ns-ambient,.ns-named .ns-halo,.nightsky-modal-card,.ns-shooting{animation:none!important}.nightsky-reset{transition:none}}.os{--os-bar:#2b2740;--os-bar-text:#f4f1ff;--os-win-bg:#fff;--os-win-text:#1d1b29;--os-win-muted:#6b6880;--os-win-border:rgba(0,0,0,0.18);--os-shadow:0 18px 40px rgba(20,16,40,0.35);--os-accent:var(--global-theme-color);--os-radius:9px;position:relative;width:100%;height:min(78vh,760px);min-height:480px;margin:.5rem 0 1rem;border-radius:14px;overflow:hidden;box-shadow:var(--os-shadow);border:1px solid var(--os-win-border);font-family:"Ubuntu Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;user-select:none;-webkit-user-select:none}.os-desktop{position:absolute;inset:0 0 44px 0;overflow:hidden;background:radial-gradient(120% 90% at 18% 12%,#8a6fe0 0%,rgba(138,111,224,0) 55%),radial-gradient(120% 90% at 85% 90%,#ff8fc7 0%,rgba(255,143,199,0) 50%),linear-gradient(160deg,#4b3fa6 0%,#2a2350 60%,#161235 100%)}.os-desktop::after{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,0.05) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,0.05) 1px,transparent 1px);background-size:32px 32px;pointer-events:none}.os-icons{position:absolute;top:14px;left:14px;display:flex;flex-direction:column;flex-wrap:wrap;align-content:flex-start;gap:6px 14px;max-height:calc(100% - 28px);z-index:1}.os-icon{width:86px;padding:10px 6px 8px;display:flex;flex-direction:column;align-items:center;gap:6px;background:rgba(0,0,0,0);border:1px solid rgba(0,0,0,0);border-radius:8px;color:#fff;cursor:pointer;text-align:center;transition:background .12s ease,border-color .12s ease}.os-icon:hover,.os-icon:focus-visible{background:hsla(0,0,100%,.16);border-color:hsla(0,0,100%,.32);outline:0}.os-icon-glyph{font-size:1.85rem;line-height:1;filter:drop-shadow(0 2px 3px rgba(0,0,0,0.4))}.os-icon-label{font-size:.72rem;line-height:1.1;text-shadow:0 1px 3px rgba(0,0,0,.6)}.os-window{position:absolute;top:80px;left:120px;width:520px;max-width:calc(100% - 16px);display:none;flex-direction:column;background:var(--os-win-bg);color:var(--os-win-text);border:1px solid var(--os-win-border);border-radius:var(--os-radius);box-shadow:var(--os-shadow);overflow:hidden;max-height:calc(100% - 16px)}.os-window.is-open{display:flex}.os-window.is-min{display:none!important}.os-window.is-max{top:0!important;left:0!important;width:100%!important;height:100%!important;max-width:100%;max-height:100%;border-radius:0}.os-window.is-focused{box-shadow:0 0 0 1px var(--os-accent),var(--os-shadow)}.os-window-bar{flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:7px 10px;background:var(--os-bar);color:var(--os-bar-text);cursor:grab;touch-action:none}.os-window.is-max .os-window-bar{cursor:default}.os-window-title{font-size:.82rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.os-window-ico{margin-right:2px}.os-window-controls{display:flex;gap:7px;flex:0 0 auto}.os-ctl{width:14px;height:14px;border-radius:50%;border:0;cursor:pointer;padding:0;position:relative;transition:filter .12s ease}.os-ctl:hover{filter:brightness(1.15)}.os-min{background:#f7c948}.os-max{background:#36c46a}.os-close{background:#ff5f57}.os-window-body{flex:1 1 auto;overflow:auto;padding:14px 16px 16px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:.92rem;line-height:1.55;-webkit-user-select:text;user-select:text}.os-window-body h3{margin:0 0 .5rem;font-size:1.15rem}.os-window-body p{margin:0 0 .7rem}.os-window-body a{color:var(--os-accent);text-decoration:none}.os-window-body a:hover{text-decoration:underline}.os-window-body code{background:rgba(0,0,0,.07);padding:1px 5px;border-radius:4px;font-size:.85em}.os-muted{color:var(--os-win-muted);font-size:.85rem}.os .os-window-body a.os-button{display:inline-block;margin-top:4px;padding:6px 12px;background:var(--os-accent);color:#fff!important;border-radius:6px;font-size:.85rem;text-decoration:none!important}.os .os-window-body a.os-button:hover{filter:brightness(1.08)}.os-dot{display:inline-block;width:10px;height:10px;border-radius:50%;vertical-align:middle;margin:0 1px}.os-dot-y{background:#f7c948}.os-dot-g{background:#36c46a}.os-dot-r{background:#ff5f57}.os-filelist{list-style:none;margin:0;padding:0}.os-filelist li{margin:0}.os-filelist a{display:block;padding:6px 8px;border-radius:6px}.os-filelist a:hover{background:rgba(0,0,0,.06);text-decoration:none}.os-about{display:flex;gap:14px;align-items:flex-start}.os-about-pic{width:96px;height:96px;border-radius:10px;object-fit:cover;flex:0 0 auto}.os-window--term .os-window-bar{background:#14121f}.os-term-body{background:#0c0a16;font-family:"Ubuntu Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.85rem;line-height:1.5;padding:10px 12px}.os .os-term-body,.os .os-term-out,.os .os-term-out div{color:#d6f7c4!important}.os-term-out{white-space:pre-wrap;word-break:break-word}.os .os-term-out a{color:#8fd0ff!important}.os-term-line{display:flex;gap:8px;align-items:baseline}.os .os-term-prompt{color:#8affc1!important;flex:0 0 auto}.os .os-term-input{flex:1 1 auto;background:rgba(0,0,0,0);border:0;outline:0;color:#d6f7c4!important;font:inherit;caret-color:#8affc1;-webkit-user-select:text;user-select:text}.os-files{margin-top:.4rem}.os-files-group{margin-bottom:.9rem}.os-files-head{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--os-win-muted);padding:0 4px 4px}.os-file{display:flex;align-items:center;gap:10px;width:100%;padding:7px 8px;background:rgba(0,0,0,0);border:0;border-radius:6px;font:inherit;font-size:.88rem;color:var(--os-win-text);text-align:left;cursor:pointer}.os-file:hover{background:rgba(0,0,0,.06)}.os-file-ico{flex:0 0 auto}.os-file-name{flex:1 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.os-file-date{flex:0 0 auto;font-size:.72rem;color:var(--os-win-muted)}html[data-theme=dark] .os-file:hover{background:hsla(0,0,100%,.08)}.os-window--doc{height:min(72%,560px)}.os-doc-status{color:var(--os-win-muted);font-size:.9rem}.os-doc-title{margin:0 0 .15rem;font-size:1.3rem;line-height:1.2}.os-doc-meta{color:var(--os-win-muted);font-size:.78rem;margin-bottom:1rem}.os-doc-article{max-width:64ch;margin:0 auto;font-size:.95rem;line-height:1.65}.os-doc-article h1,.os-doc-article h2,.os-doc-article h3{line-height:1.25;margin:1.4rem 0 .6rem}.os-doc-article h2{font-size:1.25rem}.os-doc-article h3{font-size:1.08rem}.os-doc-article p{margin:0 0 .9rem}.os-doc-article img{max-width:100%;height:auto;border-radius:6px}.os-doc-article picture{display:block}.os-doc-article figure{margin:1rem 0;text-align:center}.os-doc-article figcaption,.os-doc-article .caption{font-size:.78rem;color:var(--os-win-muted);margin-top:.35rem}.os-doc-article .twitter-tweet{margin:1rem auto!important}.os-doc-article blockquote{border-left:3px solid var(--os-accent);padding-left:.9rem;margin:1rem 0}.os-doc-source{margin-top:1.5rem!important;padding-top:.8rem;border-top:1px solid var(--os-win-border);font-size:.82rem}.os-window--app{height:min(74%,580px)}.os-gallery-group{margin-bottom:1.1rem}.os-gallery-head{font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--os-win-muted);margin:.3rem 0 .5rem}.os-gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:6px}.os-gallery-photo{padding:0;border:0;background:rgba(0,0,0,.06);cursor:pointer;border-radius:6px;overflow:hidden;aspect-ratio:1/1}.os-gallery-photo img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .25s ease}.os-gallery-photo:hover img{transform:scale(1.07)}.os-books{display:grid;grid-template-columns:repeat(auto-fill,minmax(116px,1fr));gap:16px;margin-top:.5rem}.os .os-window-body a.os-book{display:flex;flex-direction:column;gap:6px;color:var(--os-win-text)!important;text-decoration:none!important}.os .os-window-body a.os-book:hover .os-book-cover img{transform:translateY(-4px)}.os-book-cover{position:relative;border-radius:6px;overflow:hidden;aspect-ratio:2/3;background:rgba(0,0,0,.08);box-shadow:0 5px 14px rgba(0,0,0,.22)}.os-book-cover img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .2s ease}.os-book-badge{position:absolute;top:6px;left:6px;font-size:.58rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:2px 6px;border-radius:4px;color:#fff}.os-book-badge.is-read{background:#36c46a}.os-book-title{font-size:.8rem;font-weight:600;line-height:1.25}.os-book-author{font-size:.72rem;color:var(--os-win-muted)}.os-lightbox{position:absolute;inset:0;z-index:200;display:none;align-items:center;justify-content:center;background:rgba(8,6,18,.9);backdrop-filter:blur(3px)}.os-lightbox.is-open{display:flex}.os-lightbox-img{max-width:90%;max-height:86%;border-radius:8px;box-shadow:0 20px 60px rgba(0,0,0,.6)}.os-lightbox-close{position:absolute;top:12px;right:18px;font-size:2rem;line-height:1;background:0;border:0;color:#fff;cursor:pointer;opacity:.85}.os-lightbox-close:hover{opacity:1}.os-startmenu{position:absolute;left:6px;bottom:50px;width:220px;background:var(--os-bar);color:var(--os-bar-text);border:1px solid hsla(0,0,100%,.14);border-radius:10px;box-shadow:var(--os-shadow);padding:8px;z-index:60;display:none}.os-startmenu.is-open{display:block}.os-startmenu-head{font-weight:700;font-size:.8rem;letter-spacing:.08em;text-transform:uppercase;opacity:.7;padding:4px 8px 8px}.os-startmenu-sep{height:1px;background:hsla(0,0,100%,.14);margin:6px 4px}.os-startitem{display:flex;align-items:center;gap:10px;width:100%;padding:8px 10px;background:rgba(0,0,0,0);border:0;border-radius:6px;color:inherit;font:inherit;font-size:.86rem;text-align:left;text-decoration:none;cursor:pointer}.os-startitem:hover{background:hsla(0,0,100%,.14)}.os-startitem span{width:1.2em;text-align:center}.os-taskbar{position:absolute;left:0;right:0;bottom:0;height:44px;display:flex;align-items:center;gap:8px;padding:0 8px;background:rgba(18,15,32,.94);backdrop-filter:blur(6px);border-top:1px solid hsla(0,0,100%,.12);z-index:50}.os-start{display:flex;align-items:center;gap:7px;flex:0 0 auto;padding:7px 14px;background:var(--os-accent);color:#fff;border:0;border-radius:7px;font-family:inherit;font-size:.85rem;font-weight:700;cursor:pointer;transition:filter .12s ease}.os-start:hover{filter:brightness(1.1)}.os-start-glyph{font-size:.95rem}.os-tasks{flex:1 1 auto;display:flex;align-items:center;gap:6px;overflow:hidden}.os-task{display:flex;align-items:center;gap:6px;max-width:170px;padding:6px 10px;background:hsla(0,0,100%,.08);color:#f4f1ff;border:1px solid rgba(0,0,0,0);border-radius:6px;font-family:inherit;font-size:.78rem;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.os-task:hover{background:hsla(0,0,100%,.16)}.os-task.is-active{background:hsla(0,0,100%,.2);border-color:var(--os-accent)}.os-task span{overflow:hidden;text-overflow:ellipsis}.os-tray{flex:0 0 auto;display:flex;align-items:center;gap:12px;padding-right:6px;color:#cfc9e8;font-size:.8rem}.os-tray-net{letter-spacing:1px;opacity:.7}.os-clock{font-variant-numeric:tabular-nums}html[data-theme=dark] .os{--os-win-bg:#1f1d2b;--os-win-text:#e7e5f2;--os-win-muted:#9d9ab5;--os-win-border:rgba(255,255,255,0.14);--os-bar:#15131f}html[data-theme=dark] .os-window-body code{background:hsla(0,0,100%,.1)}html[data-theme=dark] .os-filelist a:hover{background:hsla(0,0,100%,.08)}@media(max-width:640px){.os{height:82vh}.os-icons{flex-direction:row;max-height:none;width:calc(100% - 28px)}.os-window{left:6px!important;right:6px;width:auto!important;max-width:none}.os-about{flex-direction:column}.os-task{max-width:110px}}.post:has(.lost-404) .post-header{display:none}.lost-404{position:relative;margin:0 auto;max-width:1100px;border-radius:22px;overflow:hidden;color:#f3f0ff;background:linear-gradient(180deg,#060a1d 0%,#130f31 48%,#05030f 100%);box-shadow:0 30px 80px rgba(0,0,0,.45),inset 0 0 120px rgba(58,28,92,.35);isolation:isolate}.lost-404 a{text-decoration:none}.lost-scene{position:relative;width:100%;height:clamp(320px,56vh,540px);overflow:hidden}.lost-scene::after{content:"";position:absolute;left:50%;bottom:-40%;width:120%;height:80%;transform:translateX(-50%);background:radial-gradient(ellipse at center,rgba(58,28,92,0.55) 0%,rgba(58,28,92,0) 65%);pointer-events:none;z-index:1}.lost-stars{position:absolute;inset:0;z-index:1}.lost-star{position:absolute;border-radius:50%;background:#fff;opacity:.85;animation:lost-twinkle var(--dur,4s) ease-in-out infinite;animation-delay:var(--delay,0);will-change:opacity,transform}@keyframes lost-twinkle{0%,100%{opacity:.2;transform:scale(0.8)}50%{opacity:1;transform:scale(1.15)}}.lost-moon{position:absolute;top:11%;right:13%;width:64px;height:64px;border-radius:50%;background:radial-gradient(circle at 38% 35%,#fff 0%,#e8e3ff 45%,#c9c0ee 100%);box-shadow:0 0 40px 8px rgba(220,215,255,.45),0 0 100px 30px rgba(160,140,230,.25);z-index:1}.lost-shooting{position:absolute;top:18%;left:-10%;width:140px;height:2px;border-radius:2px;background:linear-gradient(90deg,rgba(255,255,255,0) 0%,#fff 80%,#fff 100%);filter:drop-shadow(0 0 6px rgba(255,255,255,0.8));opacity:0;transform:rotate(18deg);z-index:1;animation:lost-shoot 9s ease-in 3s infinite}@keyframes lost-shoot{0%{opacity:0;transform:translate(0,0) rotate(18deg)}3%{opacity:1}12%{opacity:1}16%{opacity:0;transform:translate(70vw,22vh) rotate(18deg)}100%{opacity:0;transform:translate(70vw,22vh) rotate(18deg)}}.lost-number{position:absolute;top:50%;left:50%;transform:translate(-50%,-58%);font-size:clamp(7rem,26vw,19rem);font-weight:800;letter-spacing:.02em;line-height:1;z-index:1;background:linear-gradient(180deg,rgba(192,132,252,0.9) 0%,rgba(244,114,182,0.55) 100%);-webkit-background-clip:text;background-clip:text;color:rgba(0,0,0,0);opacity:.22;text-shadow:0 0 60px rgba(192,132,252,.25);user-select:none;pointer-events:none;animation:lost-breathe 7s ease-in-out infinite}@keyframes lost-breathe{0%,100%{opacity:.18}50%{opacity:.28}}.lost-hills{position:absolute;bottom:-1px;left:0;width:100%;height:70%;z-index:2;display:block}.lost-hill-back{fill:#251b48}.lost-hill-mid{fill:#181134}.lost-hill-front{fill:#0b0820}.lost-tree{fill:#0b0820}.lost-figure{stroke:#04020a;stroke-linecap:round;stroke-linejoin:round;fill:none}.lost-figure-fill{fill:#04020a;stroke:none}.lost-lantern-glow{animation:lost-flicker 3.5s ease-in-out infinite;transform-origin:center}.lost-lantern-core{fill:#ffcf7a}@keyframes lost-flicker{0%,100%{opacity:.95}45%{opacity:.7}70%{opacity:1}}.lost-copy{position:relative;z-index:3;text-align:center;padding:.5rem 1.5rem 2.75rem;margin-top:-2.5rem}.lost-eyebrow{font-family:var(--bs-font-monospace,monospace);font-size:.78rem;letter-spacing:.22em;text-transform:uppercase;color:rgba(192,132,252,.85);margin-bottom:.65rem}.lost-title{font-size:clamp(1.7rem,4.4vw,2.7rem);font-weight:700;margin:0 0 1.6rem;color:#fbf9ff;text-shadow:0 2px 30px rgba(0,0,0,.6)}.lost-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:.7rem}.lost-btn{display:inline-flex;align-items:center;gap:.45rem;padding:.6rem 1.2rem;border-radius:999px;font-size:.92rem;font-weight:500;color:#e9e4ff;border:1px solid rgba(192,132,252,.35);background:rgba(192,132,252,.06);transition:transform .2s ease,background .2s ease,border-color .2s ease,color .2s ease}.lost-btn:hover{transform:translateY(-2px);background:rgba(192,132,252,.16);border-color:rgba(192,132,252,.6);color:#fff}.lost-btn--home{color:#1a1030;background:linear-gradient(135deg,#ffcf7a 0%,#ff9d4d 100%);border-color:rgba(0,0,0,0);box-shadow:0 8px 26px rgba(255,157,77,.3)}.lost-btn--home:hover{color:#1a1030;background:linear-gradient(135deg,#ffd98f 0%,#ffae66 100%);box-shadow:0 12px 32px rgba(255,157,77,.42)}.lost-copy>*{animation:lost-rise .9s cubic-bezier(0.2,0.7,0.2,1) both}.lost-copy>*:nth-child(1){animation-delay:.05s}.lost-copy>*:nth-child(2){animation-delay:.15s}.lost-copy>*:nth-child(3){animation-delay:.25s}.lost-copy>*:nth-child(4){animation-delay:.35s}.lost-copy>*:nth-child(5){animation-delay:.45s}@keyframes lost-rise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@media(max-width:576px){.lost-moon{width:46px;height:46px;top:9%;right:10%}.lost-copy{padding-bottom:2rem}}@media(prefers-reduced-motion:reduce){.lost-star,.lost-shooting,.lost-number,.lost-lantern-glow,.lost-copy>*{animation:none!important}.lost-number{opacity:.24}}