.lab-site{--lab-bg:#111418;--lab-surface:#181c20;--lab-card:#20252a;--lab-border:#343a40;--lab-text:#edeff1;--lab-muted:#a5abb2;--lab-accent:#8eafc3;min-height:100vh;color:var(--lab-text);background:var(--lab-bg)}.lab-container{width:min(100% - 48px,1120px);margin-inline:auto}.lab-site :is(h1,h2,h3,p){margin-top:0}.lab-site :is(a,button,input,select):focus-visible,.pf-mobile-sheet :is(a,button):focus-visible{outline-offset:4px;outline:2px solid #8eafc3}.lab-site :is(a,button){-webkit-tap-highlight-color:transparent}.lab-site button{cursor:pointer;font:inherit}.lab-site button:disabled{cursor:default;opacity:.55}.lab-site a{color:inherit;text-decoration:none}.lab-site a:hover{color:var(--lab-accent)}.lab-site h1{letter-spacing:-.025em;text-wrap:balance;font-size:clamp(29px,3.4vw,42px);font-weight:650;line-height:1.24}.lab-site h2{letter-spacing:-.015em;font-size:clamp(22px,2.2vw,27px);font-weight:600;line-height:1.35}.lab-site h3{letter-spacing:-.01em;font-size:20px;font-weight:600;line-height:1.4}.lab-text-link{align-items:center;gap:8px;min-height:44px;font-size:14px;display:inline-flex;color:var(--lab-accent)!important}.lab-text-link:hover{text-underline-offset:4px;text-decoration:underline}.lab-button{border:1px solid var(--lab-border);background:var(--lab-surface);min-height:44px;color:var(--lab-text);border-radius:6px;justify-content:center;align-items:center;padding:8px 16px;font-size:14px;display:inline-flex}.lab-button:hover{background:#292f35}.pf-header{z-index:40;background:#111418;border-bottom:1px solid #343a40;position:sticky;top:0}.pf-navigation{align-items:center;gap:28px;min-height:64px;display:flex}.pf-brand{letter-spacing:-.02em;color:#edeff1;font-size:16px;font-weight:650}.pf-desktop-nav{align-items:center;gap:28px;margin-left:auto;display:flex}.pf-desktop-nav a{color:#a5abb2;align-items:center;gap:4px;min-height:44px;font-size:14px;display:inline-flex}.pf-desktop-nav a[aria-current]{color:#edeff1;text-underline-offset:7px;text-decoration:underline}.pf-nav-tools{align-items:center;gap:4px;display:flex}.pf-icon-button,.pf-locale-button{color:#a5abb2;background:0 0;border:0;border-radius:6px;place-items:center;width:44px;height:44px;display:inline-grid}.pf-locale-button{font-size:12px!important}.pf-icon-button:hover,.pf-locale-button:hover{color:#edeff1;background:#20252a}.pf-mobile-menu{display:none}.pf-mobile-sheet{color:#edeff1;background:#181c20;padding:28px 22px}.pf-mobile-links{flex-direction:column;margin-top:24px;display:flex}.pf-mobile-links a{border-bottom:1px solid #343a40;justify-content:space-between;align-items:center;min-height:48px;padding:16px 0;display:flex}.pf-skip-link{z-index:100;background:#8eafc3;border-radius:4px;padding:10px 14px;position:fixed;top:8px;left:12px;transform:translateY(-160%);color:#111418!important}.pf-skip-link:focus{transform:none}.lab-intro{padding-block:60px 36px}.lab-intro h1{max-width:860px;margin-bottom:16px}.lab-intro>p{max-width:720px;color:var(--lab-muted);margin-bottom:10px;font-size:17px;line-height:1.7}.lab-section{padding-block:30px 40px;scroll-margin-top:84px}.lab-section-heading{justify-content:space-between;align-items:center;gap:20px;margin-bottom:22px;display:flex}.lab-section-heading h2{margin:0}.lab-preview-notice{color:#a5abb2;text-align:center;background:#20252a;margin:0;padding:10px 20px;font-size:12px}.lab-library-controls{flex-direction:column;gap:16px;margin-bottom:24px;display:flex}.lab-search{border:1px solid var(--lab-border);width:min(100%,390px);min-height:44px;color:var(--lab-muted);background:var(--lab-surface);border-radius:6px;align-items:center;gap:10px;padding:0 12px;display:flex}.lab-search:focus-within{outline:2px solid var(--lab-accent);outline-offset:2px}.lab-search input{width:100%;min-width:0;height:42px;color:var(--lab-text);background:0 0;border:0;font-size:14px;outline:none!important}.lab-search button{flex:none;place-items:center;width:36px;height:38px;display:grid}.lab-filters{flex-wrap:wrap;gap:8px;display:flex}.lab-filters button{min-height:40px;color:var(--lab-muted);background:0 0;border:1px solid #0000;border-radius:5px;padding:7px 12px;font-size:13px}.lab-filters button:hover{background:var(--lab-card);color:var(--lab-text)}.lab-filters button[aria-pressed=true]{border-color:var(--lab-border);background:var(--lab-card);color:var(--lab-text)}.lab-project-list{border-top:1px solid var(--lab-border)}.lab-project-row{border-bottom:1px solid var(--lab-border)}.lab-project-row>a{grid-template-columns:230px minmax(0,1fr) 20px;align-items:center;gap:26px;padding-block:24px;display:grid}.lab-project-image{aspect-ratio:1.6;background:var(--lab-surface);border-radius:6px;position:relative;overflow:hidden}.lab-project-copy{min-width:0}.lab-project-copy h3{color:var(--lab-text);margin-bottom:9px}.lab-project-row a:hover h3,.lab-featured-lead a:hover h3{color:var(--lab-accent)}.lab-project-meta{color:var(--lab-muted);flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:8px;font-size:12px;line-height:1.55;display:flex}.lab-project-meta span{border-left:1px solid var(--lab-border);padding-left:12px}.lab-project-description{color:var(--lab-muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-bottom:12px;font-size:14px;line-height:1.65;display:-webkit-box;overflow:hidden}.lab-tech-list{color:var(--lab-muted);flex-wrap:wrap;gap:7px 14px;margin:0;padding:0;font-size:12px;line-height:1.6;list-style:none;display:flex}.lab-tech-list li+li:before{content:"·";color:var(--lab-muted);margin-right:12px}.lab-row-arrow{color:var(--lab-muted)}.lab-image-fallback{text-align:center;background:var(--lab-surface,#181c20);color:#a5abb2;place-items:center;padding:20px;font-size:13px;display:grid;position:absolute;inset:0}.lab-featured-layout{gap:28px;display:grid}.lab-featured-layout:has(.lab-featured-more){grid-template-columns:minmax(0,1.3fr) minmax(0,1fr)}.lab-featured-lead{min-width:0}.lab-featured-image{aspect-ratio:1.8;background:var(--lab-surface);border-radius:6px;max-width:760px;margin-bottom:18px;position:relative;overflow:hidden}.lab-featured-more{border-top:1px solid var(--lab-border)}.lab-featured-more .lab-project-row>a{grid-template-columns:minmax(0,1fr) 20px;padding-block:18px}.lab-featured-more .lab-project-image{display:none}.lab-featured-more h3{font-size:18px}.lab-list-footer{justify-content:space-between;align-items:center;gap:16px;margin-top:18px;display:flex}.lab-list-footer p{color:var(--lab-muted);margin:0;font-size:13px}.lab-article-list{border-top:1px solid var(--lab-border)}.lab-note-row{border-bottom:1px solid var(--lab-border)}.lab-note-row>a{grid-template-columns:200px minmax(0,1fr) 20px;align-items:center;gap:26px;padding-block:24px;display:grid}.lab-note-cover{aspect-ratio:1.65;background:var(--lab-surface);border-radius:6px;position:relative;overflow:hidden}.lab-note-copy{min-width:0}.lab-note-copy :is(h2,h3){color:var(--lab-text);margin-bottom:8px;font-size:20px;line-height:1.45}.lab-note-row a:hover :is(h2,h3){color:var(--lab-accent)}.lab-note-copy>p:not(.lab-note-meta){max-width:780px;color:var(--lab-muted);margin-bottom:0;font-size:14px;line-height:1.7}.lab-note-meta{color:var(--lab-muted);flex-wrap:wrap;gap:14px;margin-bottom:8px;font-size:12px;line-height:1.5;display:flex}.lab-article-list-compact .lab-note-row>a{grid-template-columns:minmax(0,1fr) 20px;padding-block:22px}.lab-article-list-compact .lab-note-copy{grid-template-columns:170px minmax(0,1fr);gap:0 24px;display:grid}.lab-article-list-compact .lab-note-meta{flex-direction:column;grid-row:span 2;align-content:start;gap:4px}.lab-article-list-compact .lab-note-copy>p:not(.lab-note-meta){grid-column:2}.lab-notes-page{min-height:65vh;padding-block:44px 70px}.lab-library-heading{margin-bottom:30px}.lab-library-heading h1{margin-bottom:12px}.lab-library-heading p{color:var(--lab-muted);font-size:16px;line-height:1.7}.lab-search-sort{justify-content:space-between;align-items:center;gap:20px;display:flex}.lab-sort{color:var(--lab-muted);align-items:center;gap:10px;font-size:13px;display:flex}.lab-sort select{border:1px solid var(--lab-border);background:var(--lab-surface);min-height:44px;color:var(--lab-text);border-radius:6px;padding:8px}.lab-mobile-category{display:none}.lab-empty{color:var(--lab-muted);padding-block:36px;font-size:15px;line-height:1.7}.lab-empty p{margin:0}.lab-content-error{color:#e2d4b9;background:#25231e;border:1px solid #716044;border-radius:6px;gap:7px;margin-block:12px 24px;padding:18px 20px;font-size:14px;display:grid}.lab-content-error p{margin:0;font-weight:600}.lab-content-error span{font-size:13px}.lab-content-error button{text-underline-offset:4px;width:fit-content;min-height:44px;text-decoration:underline}.lab-route-error{min-height:65vh;padding-block:100px}.lab-route-error h1{margin-bottom:16px;font-size:28px}.lab-route-error p{color:#a5abb2;margin-bottom:24px;line-height:1.7}.lab-route-error>div{align-items:center;gap:24px;display:flex}.pf-footer{background:#111418;border-top:1px solid #343a40;margin-top:24px;padding-block:34px 22px;font-size:13px}.pf-footer-top{justify-content:space-between;align-items:flex-start;gap:30px;padding-bottom:28px;display:flex}.pf-footer-top p{color:#a5abb2;max-width:450px;margin-block:10px 0;line-height:1.65}.pf-footer-links{flex-wrap:wrap;gap:20px;display:flex}.pf-footer-links a{color:#a5abb2;align-items:center;min-height:44px;display:inline-flex}.pf-footer-bottom{color:#a5abb2;border-top:1px solid #343a40;justify-content:space-between;align-items:center;gap:20px;padding-top:20px;font-size:12px;display:flex}.pf-footer-bottom>div{gap:22px;display:flex}.pf-footer-bottom a{align-items:center;min-height:36px;display:inline-flex}@media (max-width:760px){.lab-container{width:calc(100% - 36px)}.lab-intro{padding-block:38px 22px}.lab-intro>p{font-size:16px}.lab-section{padding-block:24px 30px}.pf-navigation{gap:16px}.pf-desktop-nav{display:none}.pf-nav-tools{margin-left:auto}.pf-mobile-menu{display:inline-grid}.lab-project-row>a{grid-template-columns:180px minmax(0,1fr);gap:18px}.lab-row-arrow{display:none}.lab-featured-layout:has(.lab-featured-more){grid-template-columns:1fr}.lab-project-copy h3,.lab-note-copy :is(h2,h3){font-size:18px}.lab-article-list-compact .lab-note-copy{grid-template-columns:1fr}.lab-article-list-compact .lab-note-meta{flex-direction:row;grid-row:auto;gap:12px}.lab-article-list-compact .lab-note-copy>p:not(.lab-note-meta){grid-column:auto}.lab-note-row>a{grid-template-columns:160px minmax(0,1fr);gap:18px}.lab-article-list-compact .lab-note-row>a{grid-template-columns:1fr}.pf-footer-top{flex-direction:column;gap:14px}}@media (max-width:560px){.lab-container{width:calc(100% - 32px)}.lab-site h1{font-size:29px}.pf-brand{font-size:15px}.lab-section-heading{align-items:flex-start;gap:12px}.lab-section-heading .lab-text-link{white-space:nowrap;font-size:12px}.lab-project-row>a,.lab-note-row>a{grid-template-columns:1fr;gap:16px;padding-block:22px}.lab-project-image{aspect-ratio:1.7}.lab-note-cover{aspect-ratio:1.85}.lab-search{width:100%}.lab-search input{font-size:16px}.lab-filters{display:none}.lab-mobile-category{display:flex}.lab-filters button{min-height:44px;padding-inline:10px}.lab-search-sort{flex-direction:column;align-items:stretch;gap:14px}.lab-sort{justify-content:space-between}.lab-sort select{flex:1;max-width:220px}.pf-footer-bottom{flex-direction:column;align-items:flex-start;gap:8px}}
