@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/fonts/inter-cyrillic.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/fonts/inter-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--surface-bg:#222;--surface-border:#959595;--text-main:#fff;--text-body:#d2d2d2;--text-muted:#b5b5b5;--text-subtle:#9f9f9f;--accent:#bf9aef;--accent-strong:#e9c74d;--radius-sm:12px;--radius-md:18px;--radius-lg:26px;--container:min(1180px, calc(100% - 3rem));--brand-logo-width:130px}*{box-sizing:border-box}html,body{overscroll-behavior-y:none;overscroll-behavior-x:none;margin:0;padding:0}html{background:#333}body{min-height:100vh;color:var(--text-body);background:#333;flex-direction:column;font-family:Inter,Segoe UI,sans-serif;font-weight:400;line-height:1.62;display:flex;position:relative}body:before{content:"";z-index:0;pointer-events:none;opacity:.25;background-image:var(--noise-pattern-image,url(/images/noise-pattern.svg));background-repeat:repeat;background-size:32px 32px;position:fixed;inset:0}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}main{z-index:1;flex:1 0 auto;position:relative}.container{width:var(--container);margin:0 auto}.site-header{z-index:20;background:var(--surface-bg);border-bottom:.5px solid var(--surface-border);border-bottom-right-radius:16px;border-bottom-left-radius:16px;position:sticky;top:0}.site-header .container,.site-footer .container{width:100%;max-width:none;padding-left:32px;padding-right:32px}.header-inner{grid-template-columns:1fr auto;align-items:center;gap:1.2rem;min-height:66px;display:grid}.brand{flex:none;justify-content:flex-start;justify-self:start;align-items:center;width:fit-content;max-width:100%;min-height:100%;line-height:0;display:inline-flex}.brand-logo{width:var(--brand-logo-width);max-width:100%;height:auto;display:block}.header-controls{align-items:center;gap:1.05rem;display:inline-flex;position:relative}.menu-toggle{border:.5px solid var(--surface-border);width:2.16rem;height:2.16rem;color:var(--text-main);cursor:pointer;background:0 0;border-radius:999px;flex-direction:column;justify-content:center;align-items:center;transition:border-color .2s,color .2s;display:none;position:relative}.menu-toggle:hover{border-color:var(--accent);color:var(--accent)}.menu-toggle-bar{transform-origin:50%;background:currentColor;border-radius:2px;width:.9rem;height:2px;transition:transform .22s,opacity .22s;display:block;position:absolute;top:50%;left:50%}.menu-toggle-bar:first-child{transform:translate(-50%,calc(-50% - 4px))}.menu-toggle-bar:nth-child(2){transform:translate(-50%,-50%)}.menu-toggle-bar:nth-child(3){transform:translate(-50%,calc(4px - 50%))}.site-header.menu-open .menu-toggle-bar:first-child{transform:translate(-50%,-50%)rotate(45deg)}.site-header.menu-open .menu-toggle-bar:nth-child(2){opacity:0}.site-header.menu-open .menu-toggle-bar:nth-child(3){transform:translate(-50%,-50%)rotate(-45deg)}.sr-only{clip:rect(0, 0, 0, 0);border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.site-nav{align-items:center;gap:1.05rem;display:flex}.site-nav a{color:var(--text-main);padding:.22rem .05rem;font-weight:400;transition:color .2s;display:inline-block;position:relative}.site-nav a:after{content:"";background:var(--accent);transform-origin:0;width:100%;height:1px;transition:transform .2s;position:absolute;bottom:-.2rem;left:0;transform:scaleX(0)}.site-nav a.active,.site-nav a:hover{color:var(--accent)}.site-nav a.active:after,.site-nav a:hover:after{transform:scaleX(1)}.header-tools{align-items:center;gap:.55rem;display:inline-flex}.github-link{border:.5px solid var(--surface-border);width:2.16rem;height:2.16rem;color:var(--text-main);border-radius:999px;justify-content:center;align-items:center;transition:color .2s,transform .2s,border-color .2s;display:inline-flex}.github-link svg{fill:currentColor;width:1.12rem;height:1.12rem}.github-link:hover{color:var(--accent);border-color:var(--accent);transform:translateY(-1px)}.lang-toggle{width:2.16rem;height:2.16rem;color:var(--text-main);letter-spacing:.01em;border:.5px solid var(--surface-border);border-radius:50%;justify-content:center;align-items:center;padding:0;font-family:Inter,Segoe UI,sans-serif;font-size:.68rem;font-weight:400;line-height:1;transition:border-color .22s,color .22s;display:inline-flex}.lang-toggle:hover{border-color:var(--accent);color:var(--accent)}.hero{width:var(--container);border-radius:var(--radius-lg);border:.5px solid var(--surface-border);background:var(--surface-bg);margin:2.4rem auto 2.2rem;padding:clamp(1.2rem,1.8vw,2rem)}.hero-shell{grid-template-columns:1.1fr .9fr;align-items:stretch;gap:clamp(1.2rem,3vw,2.7rem);display:grid}.hero h1{letter-spacing:-.03em;color:var(--text-main);margin:0;font-size:clamp(1.7rem,3.8vw,3.15rem);line-height:1.15}.hero .hero-kicker{color:var(--text-muted);margin:0 0 .55rem;font-family:Inter,Segoe UI,sans-serif;font-size:.75rem}.hero p{color:var(--text-muted);max-width:62ch;margin:1.1rem 0 0;font-weight:400}.hero-actions{align-items:center;gap:.8rem;margin-top:1.45rem;display:flex}.button-main{background:var(--accent);color:#333;border:0;border-radius:999px;justify-content:center;align-items:center;padding:13px 23px;font-weight:600;transition:transform .18s,box-shadow .18s,background-color .18s,color .18s;display:inline-flex}.button-main:hover{background:var(--accent-strong);color:#222;transform:translateY(-2px);box-shadow:0 0 18px #e9c74d42}.inline-meta{color:var(--text-muted);font-family:Inter,Segoe UI,sans-serif;font-size:.84rem}.hero-terminal{border-radius:var(--radius-md);border:.5px solid var(--surface-border);background:var(--surface-bg);padding:.95rem;overflow:hidden}.terminal-header{align-items:center;gap:.42rem;margin-bottom:.7rem;display:flex}.terminal-dot{aspect-ratio:1;background:#8d9ead59;border-radius:50%;width:.58rem}.terminal-dot:first-child{background:#ff7979b8}.terminal-dot:nth-child(2){background:#ffd956c7}.terminal-dot:nth-child(3){background:#5df0a2bf}.code-lines{color:var(--text-body);margin:0;font-family:Inter,Segoe UI,sans-serif;font-size:.78rem;line-height:1.9}.code-lines span{opacity:0;animation:.5s forwards code-reveal;display:block;transform:translateY(4px)}.code-lines span:nth-child(2){animation-delay:.18s}.code-lines span:nth-child(3){animation-delay:.34s}.code-lines span:nth-child(4){animation-delay:.48s}.section-block{width:var(--container);box-shadow:none;background:0 0;border:0;margin:0 auto 2.2rem;padding:0}.section-head{justify-content:space-between;align-items:flex-end;gap:1rem;margin-bottom:1.1rem;padding:0 1rem;display:flex}.section-head-title-link{color:inherit;text-decoration:none}.section-head-title-link:hover h2,.section-head-title-link:hover h1{color:var(--accent)}.section-head h2,.section-head h1{color:var(--text-main);margin:0;font-size:clamp(1.3rem,2.2vw,1.95rem)}.section-head p{color:var(--text-muted);margin:.5rem 0 0}.section-link{color:var(--accent-strong);white-space:nowrap;font-size:.95rem;font-weight:400}.section-link:hover,.text-link:hover,.markdown a:hover,.back-link:hover,.breadcrumbs a:hover,.cookie-banner p a:hover{color:var(--accent)}.project-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;display:grid}.project-card,.note-card{color:inherit;cursor:pointer;border-radius:var(--radius-md);border:.5px solid var(--surface-border);background:var(--surface-bg);text-decoration:none;transition:transform .22s;display:block;overflow:hidden}.project-card:hover,.note-card:hover{transform:translateY(-2px)}.project-card:focus-visible,.note-card:focus-visible{outline:1px solid var(--accent);outline-offset:1px}.project-image-wrap,.note-image-wrap{aspect-ratio:4/3;border-bottom:.5px solid var(--surface-border);background:var(--surface-bg);display:block;position:relative;overflow:hidden}.project-image-wrap img,.note-image-wrap img{object-fit:cover;width:100%;height:100%;transition:transform .3s}.project-card:hover img,.note-card:hover img{transform:scale(1.02)}.project-meta,.note-card-body{padding:1rem}.project-image-wrap:after,.note-image-wrap:after{content:"";pointer-events:none;background:0 0;height:44%;position:absolute;bottom:0;left:0;right:0}.project-image-wrap .tag-list,.note-image-wrap .tag-list{z-index:1;position:absolute;bottom:.58rem;left:.58rem;right:.58rem}.tag-list{flex-wrap:wrap;gap:.35rem;margin:0;padding:0;list-style:none;display:flex}.tag-list li{border:.5px solid var(--surface-border);background:var(--surface-bg);color:var(--text-body);border-radius:999px;padding:.16rem .47rem;font-family:Inter,Segoe UI,sans-serif;font-size:.69rem;font-weight:400}.project-card h3,.note-card h3{color:var(--text-main);margin:0 0 .52rem;font-size:1.03rem;font-weight:700}.project-card p,.note-card p{color:var(--text-muted);margin:0;font-size:.93rem;font-weight:400}.note-date{color:var(--text-subtle);margin:0 0 .48rem;font-family:Inter,Segoe UI,sans-serif;font-size:.67rem;font-weight:400}.text-link{color:var(--accent-strong);margin-top:.85rem;font-size:.9rem;font-weight:400;display:inline-flex}.notes-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;display:grid}.page-content{width:var(--container);border:.5px solid var(--surface-border);border-radius:var(--radius-md);background:var(--surface-bg);margin:0 auto 2.2rem;padding:clamp(1rem,1.8vw,1.55rem)}.page-content h1{letter-spacing:-.015em;color:var(--text-main);margin:0 0 .9rem;font-size:clamp(1.34rem,2.2vw,1.95rem);line-height:1.2}.page-cover{aspect-ratio:4/3;object-fit:cover;border:.5px solid var(--surface-border);background:var(--surface-bg);border-radius:12px;width:100%;margin-bottom:1rem}.not-found-page{text-align:center;padding-top:clamp(2rem,5vw,3rem);padding-bottom:clamp(2rem,5vw,3rem)}.not-found-code{color:var(--text-main);margin:0 0 .55rem;font-family:Inter,Segoe UI,sans-serif;font-size:clamp(2rem,6vw,3.2rem);line-height:1}.not-found-page>p{max-width:56ch;margin-left:auto;margin-right:auto}.not-found-actions{flex-wrap:wrap;justify-content:center;align-items:center;gap:.85rem;margin-top:1rem;display:inline-flex}.markdown{color:var(--text-body)}.markdown>:first-child{margin-top:0}.markdown h2,.markdown h3{margin:1.6rem 0 .6rem;line-height:1.25}.markdown h2{color:var(--text-main);font-size:clamp(1.14rem,1.75vw,1.5rem)}.markdown h3{color:var(--text-main);font-size:clamp(1.02rem,1.5vw,1.24rem)}.markdown h4{color:var(--text-main);margin:1.35rem 0 .5rem;font-size:clamp(.95rem,1.2vw,1.08rem);line-height:1.3}.markdown p,.markdown li{color:var(--text-muted)}.markdown ul,.markdown ol{margin:.7rem 0 .95rem;padding-inline-start:1.4rem}.markdown a{color:var(--accent-strong);text-underline-offset:3px;text-decoration:underline}.markdown img{border:.5px solid var(--surface-border);border-radius:10px;margin-top:.9rem}.markdown blockquote{border-left:3px solid var(--accent);background:#bf9aef14;border-radius:0 10px 10px 0;margin:1rem 0;padding:.8rem 1rem}.markdown blockquote p{margin:0}.markdown code{overflow-wrap:anywhere}.markdown :not(pre)>code{border:.5px solid var(--surface-border);color:var(--text-body);background:#ffffff0d;border-radius:6px;padding:.08rem .32rem;font-size:.9em}.markdown pre{border:.5px solid var(--surface-border);max-width:100%;color:var(--text-body);background:#0003;border-radius:10px;margin:.9rem 0 1rem;padding:.9rem 1rem;line-height:1.5;overflow-x:auto}.markdown pre code{overflow-wrap:normal}.markdown table{border-collapse:collapse;width:100%;max-width:100%;margin:.9rem 0 1rem;display:block;overflow-x:auto}.markdown th,.markdown td{border:.5px solid var(--surface-border);text-align:left;vertical-align:top;min-width:9rem;padding:.55rem .7rem}.markdown th{color:var(--text-main);background:#ffffff0d}.screenshot-link{border-radius:10px;min-width:0;display:block}.screenshot-link:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.markdown .screenshot-link img{width:100%;height:auto;margin:0}.screenshot-link--overview{max-width:900px;margin:.9rem auto 0}.screenshot-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:1rem;margin:1rem 0;display:grid}.screenshot-item{min-width:0;margin:0}.screenshot-item figcaption{color:var(--text-muted);text-align:center;margin-top:.42rem;font-size:.86rem}.project-card img[src*=credentio-local-checker],.page-cover[src*=credentio-local-checker]{object-position:top center}.detail-date-row{color:var(--text-muted);flex-wrap:wrap;gap:1rem;margin-bottom:.9rem;font-size:.86rem;font-weight:400;display:flex}.detail-meta-row{grid-template-columns:auto 1fr;align-items:center;gap:.7rem .9rem;margin-bottom:.9rem;display:grid}.detail-meta-label{color:var(--text-main);margin:0;font-size:.86rem;font-weight:600}.detail-meta-values{flex-wrap:wrap;gap:.6rem;display:flex}.meta-chip{border:.5px solid var(--surface-border);background:var(--surface-bg);color:var(--text-muted);border-radius:999px;align-items:center;padding:.22rem .62rem;font-size:.78rem;font-weight:400;display:inline-flex}.breadcrumbs{width:100%;margin-top:1rem;margin-bottom:.8rem}.breadcrumbs ol{flex-wrap:wrap;align-items:center;gap:.43rem;margin:0;padding:0;list-style:none;display:flex}.breadcrumbs li{color:var(--text-muted);align-items:center;gap:.43rem;font-size:.86rem;font-weight:400;display:inline-flex}.breadcrumbs li:not(:last-child):after{content:"/";color:var(--text-subtle)}.breadcrumbs a{color:var(--accent-strong)}.site-footer{z-index:1;border-top:.5px solid var(--surface-border);background:var(--surface-bg);border-top-left-radius:16px;border-top-right-radius:16px;margin-top:auto;padding-top:0;position:relative}.footer-inner{justify-content:space-between;align-items:center;gap:1rem;min-height:64px;display:flex}.footer-inner p{color:var(--text-muted);margin:0;font-size:.9rem;font-weight:400}.footer-actions{align-items:center;gap:.85rem;display:flex}.footer-actions a,.footer-actions button{color:var(--text-main);cursor:pointer;font:inherit;background:0 0;border:0;border-radius:0;padding:.08rem 0;font-size:.9rem;font-weight:400;transition:color .2s;position:relative}.footer-actions a:after,.footer-actions button:after{content:"";background:var(--accent);transform-origin:0;width:100%;height:1px;transition:transform .2s;position:absolute;bottom:-.15rem;left:0;transform:scaleX(0)}.footer-actions a:hover,.footer-actions button:hover{color:var(--accent)}.footer-actions a:hover:after,.footer-actions button:hover:after{transform:scaleX(1)}.cookie-banner{z-index:50;border-radius:var(--radius-md);border:.5px solid var(--surface-border);background:var(--surface-bg);justify-content:space-between;align-items:center;gap:1rem;padding:.95rem;display:none;position:fixed;bottom:1rem;left:1rem;right:1rem}.cookie-banner.visible{display:flex}.cookie-banner p{color:var(--text-muted);margin:.4rem 0 0;font-size:.92rem}.cookie-banner p a{color:var(--accent-strong);margin-left:.35rem}.cookie-actions{gap:.5rem;display:inline-flex}.cookie-actions button{border:.5px solid var(--surface-border);font:inherit;cursor:pointer;border-radius:999px;padding:.55rem .78rem}.cookie-actions button:first-child{color:var(--text-main);background:0 0}.cookie-actions button:last-child{background:var(--accent-strong);color:#222;border-color:var(--accent-strong)}.back-link{color:var(--accent-strong);margin-top:1.2rem;display:inline-flex}.reveal{animation:.5s both reveal}@keyframes reveal{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes code-reveal{to{opacity:1;transform:translateY(0)}}@media (width<=1100px){.hero-shell{grid-template-columns:1fr}.project-grid,.notes-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=780px){:root{--container:min(1180px, calc(100% - 1.3rem));--brand-logo-width:130px}.site-header .container,.site-footer .container{padding-left:16px;padding-right:16px}.header-inner{grid-template-columns:1fr auto;row-gap:0;min-height:58px;padding:.42rem 0}.header-controls{gap:.42rem;width:auto}.menu-toggle{width:1.88rem;height:1.88rem;display:inline-flex}.header-tools{gap:.4rem}.github-link{width:1.88rem;height:1.88rem}.github-link svg{width:.96rem;height:.96rem}.lang-toggle{width:1.88rem;height:1.88rem;font-size:.63rem}.site-nav{border:.5px solid var(--surface-border);background:var(--surface-bg);z-index:25;border-radius:12px;flex-direction:column;align-items:flex-start;gap:.45rem;min-width:152px;padding:.58rem .74rem;display:none;position:absolute;top:calc(100% + .45rem);right:0}.site-header.menu-open .site-nav{display:flex}.site-nav a{padding:.24rem 0}.site-nav a:after{bottom:-.06rem}.hero{margin-top:1.2rem}.project-grid,.notes-grid,.screenshot-grid{grid-template-columns:1fr}.project-image-wrap .tag-list,.note-image-wrap .tag-list{bottom:.45rem;left:.45rem;right:.45rem}.tag-list{gap:.28rem}.tag-list li{padding:.11rem .37rem;font-size:.61rem}.detail-date-row{gap:.6rem;font-size:.79rem}.detail-meta-row{grid-template-columns:1fr;gap:.38rem}.detail-meta-label{font-size:.79rem}.page-content h1{font-size:1.28rem}.markdown h2{font-size:1.08rem}.markdown h3{font-size:.98rem}.markdown h4{font-size:.92rem}.note-date{font-size:.62rem}.section-head{flex-direction:column;align-items:flex-start}.footer-inner{flex-direction:column;justify-content:center;align-items:flex-start;padding:.7rem 0}.cookie-banner{flex-direction:column;align-items:stretch}.cookie-actions{width:100%}.cookie-actions button{flex:1}}
