
:root{--gap:24px;--content-gap:20px;--nav-width:1024px;--main-width:720px;--header-height:60px;--footer-height:60px;--radius:8px;--theme:rgb(255, 255, 255);--entry:rgb(255, 255, 255);--primary:rgb(30, 30, 30);--secondary:rgb(108, 108, 108);--tertiary:rgb(214, 214, 214);--content:rgb(31, 31, 31);--code-block-bg:rgb(28, 29, 33);--code-bg:rgb(245, 245, 245);--border:rgb(238, 238, 238);color-scheme:light}:root[data-theme=dark]{--theme:rgb(29, 30, 32);--entry:rgb(46, 46, 51);--primary:rgb(218, 218, 219);--secondary:rgb(155, 156, 157);--tertiary:rgb(65, 66, 68);--content:rgb(196, 196, 197);--code-block-bg:rgb(46, 46, 51);--code-bg:rgb(55, 56, 62);--border:rgb(51, 51, 51);color-scheme:dark}.list{background:var(--code-bg)}[data-theme=dark] .list{background:var(--theme)}*,::after,::before{box-sizing:border-box}html{-webkit-tap-highlight-color:transparent;overflow-y:scroll;-webkit-text-size-adjust:100%;text-size-adjust:100%}a,button,body,h1,h2,h3,h4,h5,h6{color:var(--primary)}body{font-family:-apple-system,BlinkMacSystemFont,segoe ui,Roboto,Oxygen,Ubuntu,Cantarell,open sans,helvetica neue,sans-serif;font-size:18px;line-height:1.6;word-break:break-word;background:var(--theme)}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section,table{display:block}h1,h2,h3,h4,h5,h6{line-height:1.2}h1,h2,h3,h4,h5,h6,p{margin-top:0;margin-bottom:0}ul{padding:0}a{text-decoration:none}body,figure,ul{margin:0}table{width:100%;border-collapse:collapse;border-spacing:0;overflow-x:auto;word-break:keep-all}button,input,textarea{padding:0;font:inherit;background:0 0;border:0}input,textarea{outline:0}button,input[type=button],input[type=submit]{cursor:pointer}input:-webkit-autofill,textarea:-webkit-autofill{box-shadow:0 0 0 50px var(--theme)inset}img{display:block;max-width:100%}.not-found{position:absolute;left:0;right:0;display:flex;align-items:center;justify-content:center;height:80%;font-size:160px;font-weight:700}.archive-posts{width:100%;font-size:16px}.archive-year{margin-top:40px}.archive-year:not(:last-of-type){border-bottom:2px solid var(--border)}.archive-month{display:flex;align-items:flex-start;padding:10px 0}.archive-month-header{margin:25px 0;width:200px}.archive-month:not(:last-of-type){border-bottom:1px solid var(--border)}.archive-entry{position:relative;padding:5px;margin:10px 0}.archive-entry-title{margin:5px 0;font-weight:400}.archive-count,.archive-meta{color:var(--secondary);font-size:14px}.footer,.top-link{font-size:12px;color:var(--secondary)}.footer{max-width:calc(var(--main-width) + var(--gap) * 2);margin:auto;padding:calc((var(--footer-height) - var(--gap))/2)var(--gap);text-align:center;line-height:24px}.footer span{margin-inline-start:1px;margin-inline-end:1px}.footer span:last-child{white-space:nowrap}.footer a{color:inherit;text-underline-offset:.25rem;text-decoration:underline}.top-link{position:fixed;bottom:4rem;right:2rem;z-index:99;background:var(--tertiary);width:2.5rem;height:2.5rem;padding:10px;border-radius:64px;transition:visibility .3s,opacity .3s cubic-bezier(.4,0,1,1)}.hidden{visibility:hidden;opacity:0}.top-link,.top-link svg{filter:drop-shadow(0 0 0 var(--theme))}.footer a:hover,.top-link:hover{color:var(--primary)}.header-nav{display:flex;flex-wrap:wrap;justify-content:space-between;max-width:calc(var(--nav-width) + var(--gap) * 2);margin:auto;line-height:var(--header-height);padding:0 var(--gap);column-gap:var(--gap)}.header-nav a{display:block}.logo,.menu{display:flex}.logo{align-items:center;column-gap:.55rem;flex-wrap:wrap}.logo a{font-size:24px;font-weight:700;display:flex;align-items:center;column-gap:.55rem}.logo a img,.logo a svg{pointer-events:none;border-radius:6px}.theme-toggle{padding:0 .4rem}[data-theme=dark] .moon{display:none}[data-theme=light] .sun{display:none}.logo-switches{display:inline-flex;gap:.4rem;align-items:inherit;min-height:stretch;flex-wrap:inherit}.logo-switches>*{min-height:inherit;align-items:center;display:inline-flex}.nav-sep{color:var(--secondary)}.lang-menu *{display:inherit;min-height:inherit;align-items:inherit}.lang-menu a{font-size:1rem;font-weight:500;padding:0 .4rem;display:inline-flex}.menu{list-style:none;word-break:keep-all;overflow-x:auto;white-space:nowrap;column-gap:var(--gap)}.menu a{font-size:16px}.menu .active{font-weight:500;text-decoration:underline;text-underline-offset:.3rem;text-decoration-thickness:2px}.main{position:relative;min-height:calc(100vh - var(--header-height) - var(--footer-height));max-width:calc(var(--main-width) + var(--gap) * 2);margin:auto;padding:var(--gap)}.page-header h1{font-size:40px}.pagination{display:flex}.pagination a{color:var(--theme);font-size:13px;line-height:36px;background:var(--primary);border-radius:calc(36px/2);padding:0 16px}.pagination .next{margin-inline-start:auto}.social-icons a{display:inline-flex;padding:10px}.social-icons a svg{height:26px;width:26px}code{direction:ltr}div.highlight,pre{position:relative}.copy-code{display:none;position:absolute;top:4px;right:4px;color:rgba(255,255,255,.8);background:rgba(78,78,78,.8);border-radius:var(--radius);padding:0 5px;font-size:14px;user-select:none}div.highlight:hover .copy-code,pre:hover .copy-code{display:block}.md-content h3,.md-content h4,.md-content h5,.md-content h6{margin:24px 0 16px}.md-content h1{margin:40px auto 32px;font-size:40px}.md-content h2{margin:32px auto 24px;font-size:32px}.md-content h3{font-size:24px}.md-content h4{font-size:16px}.md-content h5{font-size:14px}.md-content h6{font-size:12px}.md-content a:not(.anchor){text-underline-offset:.3rem;text-decoration:underline}.md-content del{text-decoration:line-through}.md-content dl:not(:last-child),.md-content ol:not(:last-child),.md-content p:not(:last-child),.md-content figure:not(:last-child),.md-content ul:not(:last-child){margin-bottom:var(--content-gap)}.md-content ol,.md-content ul{padding-inline-start:1.25rem}.md-content li{margin-top:.3rem}.md-content li p{margin-bottom:0}.md-content dl{display:flex;flex-wrap:wrap;margin:0}.md-content dt{width:25%;font-weight:700}.md-content dd{width:75%;margin-inline-start:0;padding-inline-start:10px}.md-content dd~dd,.md-content dt~dt{margin-top:10px}.md-content table{margin-bottom:var(--content-gap)}.md-content table th,.md-content table:not(.highlighttable,.highlight table,.gist .highlight) td{min-width:80px;padding:6px 13px;line-height:1.5;border:1px solid var(--border)}.md-content table th{text-align:start}.md-content table:not(.highlighttable) td code:only-child{margin:auto 0}.md-content .highlight table{border-radius:var(--radius)}.md-content .highlight:not(table){margin-bottom:var(--content-gap);background:var(--code-block-bg)!important;border-radius:var(--radius);direction:ltr}.md-content li>.highlight{margin-inline-end:0}.md-content ul pre{margin-inline-start:calc(var(--gap) * -2)}.md-content .highlight pre{margin:0}.md-content .highlighttable{table-layout:fixed}.md-content .highlighttable td:first-child{width:40px}.md-content .highlighttable td .linenodiv{padding-inline-end:0!important}.md-content .highlighttable td .highlight,.md-content .highlighttable td .linenodiv pre{margin-bottom:0}.post-content code{padding:.2rem .3rem;font-size:.78em;line-height:1.5;background:var(--code-bg);border-radius:.2rem}.md-content pre code{display:grid;margin:auto 0;padding:10px;color:#d5d5d6;background:var(--code-block-bg)!important;border-radius:var(--radius);overflow-x:auto;word-break:break-all}.md-content blockquote{margin:1rem 0;padding-inline-start:1rem;border-inline-start:.3rem solid var(--content)}.md-content hr{margin:30px 0;height:2px;background:var(--tertiary);border:0}.md-content iframe{max-width:100%}.md-content img{border-radius:var(--radius);margin:1rem 0}.md-content img[src*="#center"]{margin:1rem auto}.md-content figure.align-center{text-align:center}.md-content figure>figcaption{color:var(--primary);font-size:16px;font-weight:700;margin:8px 0 16px}.md-content figure>figcaption>p{color:var(--secondary);font-size:14px;font-weight:400}.md-content h1:hover .anchor,.md-content h2:hover .anchor,.md-content h3:hover .anchor,.md-content h4:hover .anchor,.md-content h5:hover .anchor,.md-content h6:hover .anchor{display:inline-flex;color:var(--secondary);margin-inline-start:.5em;font-weight:500;user-select:none}.anchor:hover{color:var(--content)!important}.md-content img.in-text{display:inline;margin:auto}mark{border-radius:2px;padding:0 2px}audio{display:block;width:100%;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;height:2.5rem;margin-bottom:var(--content-gap)}audio::-webkit-media-controls-enclosure{border-radius:0}video{border:1px solid var(--code-bg);border-radius:var(--radius);max-width:100%}.first-entry{position:relative;display:flex;flex-direction:column;justify-content:center;min-height:320px;margin:var(--gap)0 calc(var(--gap) * 2)}.first-entry .entry-header{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3}.first-entry .entry-header h1{font-size:34px;line-height:1.3}.first-entry .entry-header h2{font-size:40px}.first-entry .entry-content{margin:14px 0;font-size:16px;-webkit-line-clamp:3}.first-entry .entry-footer{font-size:14px}.home-info .entry-content{--content-gap:0.5rem;-webkit-line-clamp:unset;margin:0}.home-info .social-icons a:first-of-type{padding-inline-start:0}.post-entry{position:relative;margin-bottom:var(--gap);padding:var(--gap);background:var(--entry);border-radius:var(--radius);transition:transform .25s ease;border:1px solid var(--border)}.post-entry:hover,.post-entry:focus-within{transform:translateY(-2px);border-color:var(--tertiary)}.tag-entry .entry-cover{display:none}.entry-header h2{font-size:24px;line-height:1.3}.entry-content{margin:8px 0;color:var(--secondary);font-size:14px;line-height:1.6;overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}.home-info .entry-content p{margin-block-start:1em;margin-block-end:1em}.entry-footer{color:var(--secondary);font-size:13px}.entry-link{position:absolute;left:0;right:0;top:0;bottom:0;border-radius:var(--radius)}.entry-hint{color:var(--secondary)}.entry-hint-parent{display:flex;justify-content:space-between}.entry-cover{font-size:14px;margin-bottom:var(--gap);text-align:center;display:flex;flex-direction:column;gap:.5rem}.entry-cover img{border-radius:var(--radius);width:100%;height:auto}.entry-cover a{text-underline-offset:.3rem;text-decoration:underline}.page-header,.post-header{margin:24px auto var(--content-gap)}.post-title{font-size:40px}.post-description{margin-top:10px}.post-meta{margin-top:5px}.post-meta,.breadcrumbs{color:var(--secondary);font-size:14px}.breadcrumbs{display:flex;flex-wrap:wrap;align-items:center;gap:.2rem}.breadcrumbs a{font-size:16px}.breadcrumbs svg{height:1em}.i18n_list{display:inline-flex}.post-meta .i18n_list li{list-style:none;margin:auto 3px}.post-meta a,.toc a:hover{text-underline-offset:.3rem;text-decoration:underline}.post-meta a{color:var(--secondary);text-decoration-style:dotted}details.toc{margin-bottom:var(--content-gap);background:var(--code-bg);border-radius:var(--radius);border:1px solid var(--border)}[data-theme=dark] details.toc{background:var(--entry)}details.toc summary{padding:.3rem 1.2rem;border-radius:var(--radius)}details summary{cursor:pointer;display:list-item;width:100%;margin-inline-start:0;user-select:none}details .title{display:inline;font-weight:500;margin-inline-start:.2rem}details{interpolate-size:allow-keywords}details::details-content{height:0;opacity:0;overflow:clip;transition:height 150ms ease,opacity 150ms ease,content-visibility 150ms allow-discrete}details[open]::details-content{height:auto;opacity:1}details .inner{margin:0 2.4rem;padding-bottom:.6rem}details li ul{margin-inline-start:var(--gap)}.post-content{color:var(--content);margin:30px 0}.post-footer{margin-top:var(--content-gap)}.post-footer>*{margin-bottom:10px}.post-tags{display:flex;flex-wrap:wrap;gap:10px}.post-tags li{display:inline-block}.post-tags a,.share-buttons,.paginav{border-radius:var(--radius);background:var(--code-bg);border:1px solid var(--border)}.post-tags a{display:block;padding:0 14px;color:var(--secondary);font-size:14px;line-height:34px;background:var(--code-bg)}.post-tags a:hover,.paginav a:hover{background:var(--border)}.share-buttons{padding:10px;display:flex;justify-content:center;overflow-x:auto;gap:10px}.share-buttons li,.share-buttons a{display:inline-flex}.share-buttons a:not(:last-of-type){margin-inline-end:12px}.paginav{display:flex;line-height:1.2}.paginav .title{letter-spacing:1px;text-transform:uppercase;font-size:.8rem;color:var(--secondary)}.paginav a{width:50%;display:flex;flex-direction:column;gap:.5rem;padding:.8rem;border-radius:var(--radius)}.paginav span:hover:not(.title){text-underline-offset:.2rem;text-decoration:underline}.paginav .next{margin-inline-start:auto;text-align:right}[dir=rtl] .paginav .next{text-align:left}h1>a>svg{display:inline}.buttons,.main .profile{display:flex;justify-content:center}.main .profile{align-items:center;min-height:calc(100vh - var(--header-height) - var(--footer-height) - (var(--gap) * 2));text-align:center}.profile .profile_inner{display:flex;flex-direction:column;align-items:center;gap:1rem}.profile img{border-radius:50%}.buttons{flex-wrap:wrap;max-width:400px;gap:1rem}.button{background:var(--tertiary);border-radius:var(--radius);padding:.4rem .8rem}.searchbox input{padding:4px 10px;width:100%;color:var(--primary);font-weight:700;border:2px solid var(--tertiary);border-radius:var(--radius)}.searchResults li{list-style:none;border-radius:var(--radius);padding:10px 15px;position:relative;font-weight:500;display:flex;align-items:center;justify-content:space-between;background:var(--entry);transition:transform .25s ease;border:1px solid var(--border)}.searchResults{margin:var(--content-gap)0;width:100%;display:flex;flex-direction:column;gap:10px}.searchResults li:hover,.searchResults li:focus-within{transform:translateY(-2px);border-color:var(--tertiary)}.searchResults li .entry-link:focus{outline:2px solid var(--secondary);outline-offset:-2px}.terms-tags{display:flex;flex-wrap:wrap;gap:1em;margin-top:var(--content-gap)}.terms-tags li{display:inline-block;font-weight:500}.terms-tags a{display:block;padding:4px 10px;background:var(--tertiary);border-radius:var(--radius);transition:transform .1s}.bg{color:#cad3f5;background-color:#24273a}.chroma{color:#cad3f5;background-color:#24273a}.chroma .x{}.chroma .err{color:#ed8796}.chroma .cl{}.chroma .lnlinks{outline:none;text-decoration:none;color:inherit}.chroma .lntd{vertical-align:top;padding:0;margin:0;border:0}.chroma .lntable{border-spacing:0;padding:0;margin:0;border:0}.chroma .hl{background-color:#474733}.chroma .lnt{white-space:pre;-webkit-user-select:none;user-select:none;margin-right:.4em;padding:0 .4em;color:#8087a2}.chroma .ln{white-space:pre;-webkit-user-select:none;user-select:none;margin-right:.4em;padding:0 .4em;color:#8087a2}.chroma .line{display:flex}.chroma .k{color:#c6a0f6}.chroma .kc{color:#f5a97f}.chroma .kd{color:#ed8796}.chroma .kn{color:#8bd5ca}.chroma .kp{color:#c6a0f6}.chroma .kr{color:#c6a0f6}.chroma .kt{color:#ed8796}.chroma .n{}.chroma .na{color:#8aadf4}.chroma .nb{color:#91d7e3}.chroma .bp{color:#91d7e3}.chroma .nc{color:#eed49f}.chroma .no{color:#eed49f}.chroma .nd{color:#8aadf4;font-weight:700}.chroma .ni{color:#8bd5ca}.chroma .ne{color:#f5a97f}.chroma .nf{color:#8aadf4}.chroma .fm{color:#8aadf4}.chroma .nl{color:#91d7e3}.chroma .nn{color:#f5a97f}.chroma .nx{}.chroma .py{color:#f5a97f}.chroma .nt{color:#c6a0f6}.chroma .nv{color:#f4dbd6}.chroma .vc{color:#f4dbd6}.chroma .vg{color:#f4dbd6}.chroma .vi{color:#f4dbd6}.chroma .vm{color:#f4dbd6}.chroma .l{}.chroma .ld{}.chroma .s{color:#a6da95}.chroma .sa{color:#ed8796}.chroma .sb{color:#a6da95}.chroma .sc{color:#a6da95}.chroma .dl{color:#8aadf4}.chroma .sd{color:#6e738d}.chroma .s2{color:#a6da95}.chroma .se{color:#8aadf4}.chroma .sh{color:#6e738d}.chroma .si{color:#a6da95}.chroma .sx{color:#a6da95}.chroma .sr{color:#8bd5ca}.chroma .s1{color:#a6da95}.chroma .ss{color:#a6da95}.chroma .m{color:#f5a97f}.chroma .mb{color:#f5a97f}.chroma .mf{color:#f5a97f}.chroma .mh{color:#f5a97f}.chroma .mi{color:#f5a97f}.chroma .il{color:#f5a97f}.chroma .mo{color:#f5a97f}.chroma .o{color:#91d7e3;font-weight:700}.chroma .ow{color:#91d7e3;font-weight:700}.chroma .p{}.chroma .c{color:#6e738d;font-style:italic}.chroma .ch{color:#6e738d;font-style:italic}.chroma .cm{color:#6e738d;font-style:italic}.chroma .c1{color:#6e738d;font-style:italic}.chroma .cs{color:#6e738d;font-style:italic}.chroma .cp{color:#6e738d;font-style:italic}.chroma .cpf{color:#6e738d;font-weight:700;font-style:italic}.chroma .g{}.chroma .gd{color:#ed8796;background-color:#363a4f}.chroma .ge{font-style:italic}.chroma .gr{color:#ed8796}.chroma .gh{color:#f5a97f;font-weight:700}.chroma .gi{color:#a6da95;background-color:#363a4f}.chroma .go{}.chroma .gp{}.chroma .gs{font-weight:700}.chroma .gu{color:#f5a97f;font-weight:700}.chroma .gt{color:#ed8796}.chroma .gl{text-decoration:underline}.chroma .w{}.chroma{background-color:unset!important}.chroma .hl{display:flex}.chroma .lnt{padding:0 0 0 12px}.highlight pre.chroma code{padding:8px 0}.highlight pre.chroma .line .cl,.chroma .ln{padding:0 10px}.chroma .lntd:last-of-type{width:100%}@media screen and (max-width:768px){:root{--gap:14px}.profile img{transform:scale(.85)}.first-entry{min-height:260px}.archive-month{flex-direction:column}.archive-year{margin-top:20px}.footer{padding:calc((var(--footer-height) - var(--gap) - 10px)/2)var(--gap)}}@media screen and (max-width:900px){.list .top-link{transform:translateY(-5rem)}}@media screen and (max-width:340px){.share-buttons{justify-content:unset}}@media(prefers-reduced-motion){.terms-tags a:active,.button:active,.post-entry:active,.top-link,.searchResults .focus,.searchResults li:active{transform:none}}:root{--accent:#4f8cff;--accent-soft:rgba(79, 140, 255, 0.1);--accent-border:rgba(79, 140, 255, 0.3);--card-shadow:0 1px 3px rgba(0, 0, 0, 0.08);--card-shadow-hover:0 6px 20px rgba(0, 0, 0, 0.1);--font-sans:"Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif}body{font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.header .logo a{font-weight:700;letter-spacing:-.03em}[data-theme=dark]{--card-shadow:0 2px 8px rgba(0, 0, 0, 0.2);--card-shadow-hover:0 8px 28px rgba(0, 0, 0, 0.35)}.post-logo{display:flex;justify-content:center;align-items:center;gap:1.5rem;margin:1.5rem 0 2rem;flex-wrap:wrap}.post-logo img{height:72px;width:auto;opacity:.88;transition:opacity .2s ease,transform .2s ease}.post-logo img[src$=".svg"],.post-logo img[src$=".png"]{filter:brightness(0)invert(1)}.post-logo img:hover{opacity:1;transform:scale(1.05)}.post-logo.single img{height:96px}.entry-cover{border-radius:var(--radius);overflow:hidden;margin-bottom:1.5rem;box-shadow:var(--card-shadow)}.entry-cover img{width:100%;object-fit:cover;max-height:320px}.home-info{background:linear-gradient(135deg,var(--entry) 0%,var(--code-bg) 100%);border:1px solid var(--border);border-radius:calc(var(--radius) + 4px);box-shadow:var(--card-shadow);padding:calc(var(--gap) * 1.25)!important;min-height:auto!important;margin-bottom:calc(var(--gap) * 1.5)!important}.home-info .entry-header h1{font-size:clamp(1.6rem,3.5vw,2rem);font-weight:700;letter-spacing:-.03em;color:var(--primary);line-height:1.25}.home-info .entry-content{font-size:1.05rem;line-height:1.7;max-width:52ch}.home-info .entry-content a{color:var(--accent);text-decoration:none;border-bottom:1px solid var(--accent-border);transition:border-color .2s ease}.home-info .entry-content a:hover{border-bottom-color:var(--accent)}.home-info .social-icons a{color:var(--secondary);transition:color .2s ease,transform .2s ease}.home-info .social-icons a:hover{color:var(--accent);transform:translateY(-1px)}.home-sections{margin-top:.5rem}.home-hero{position:relative;margin:0 0 2.5rem;border-radius:calc(var(--radius) + 4px);overflow:hidden;box-shadow:var(--card-shadow)}.home-hero::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.45) 0%,transparent 55%);pointer-events:none}.home-hero img{width:100%;display:block;max-height:280px;object-fit:cover}.home-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-bottom:2.5rem;padding:1.25rem 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}.home-stat{display:flex;flex-direction:column;align-items:center;text-align:center;gap:.25rem}.home-stat-value{font-size:1.5rem;font-weight:700;color:var(--accent);letter-spacing:-.02em}.home-stat-label{font-size:.75rem;font-weight:500;color:var(--secondary);text-transform:uppercase;letter-spacing:.06em}.section-header{margin:2.5rem 0 1.25rem}.section-header:first-child{margin-top:0}.section-label{display:inline-block;font-size:.72rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--accent);margin-bottom:.35rem}.section-header h2{margin:0!important;padding:0!important;border:none!important;font-size:1.35rem;font-weight:600;letter-spacing:-.01em}.section-subtitle{margin:.4rem 0 0;font-size:.92rem;color:var(--secondary);line-height:1.5}.home-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1rem;margin-bottom:.5rem}.home-card{position:relative;display:flex;flex-direction:column;gap:.5rem;padding:1.35rem 1.35rem 1.35rem 1.5rem;border:1px solid var(--border);border-radius:calc(var(--radius) + 2px);background:var(--entry);text-decoration:none;color:inherit;box-shadow:var(--card-shadow);transition:border-color .25s ease,transform .25s ease,box-shadow .25s ease;overflow:hidden}.home-card::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--accent);opacity:0;transition:opacity .25s ease}.home-card::after{content:"→";position:absolute;right:1.1rem;top:1.35rem;font-size:.9rem;color:var(--accent);opacity:0;transform:translateX(-4px);transition:opacity .25s ease,transform .25s ease}.home-card:hover{border-color:var(--accent-border);transform:translateY(-3px);box-shadow:var(--card-shadow-hover)}.home-card:hover::before,.home-card:hover::after{opacity:1}.home-card:hover::after{transform:translateX(0)}.home-card-icon{display:flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;border-radius:8px;background:var(--accent-soft);color:var(--accent)}.home-card-icon svg{width:1.2rem;height:1.2rem}.home-card-icon img{filter:brightness(0)invert(1);height:1.6rem;width:auto}.home-card-title{font-size:1rem;font-weight:600;color:var(--primary);letter-spacing:-.01em}.home-card-desc{font-size:.84rem;color:var(--secondary);line-height:1.5}.home-cards.guides .home-card{padding-top:1.5rem}.topic-pills{display:flex;flex-wrap:wrap;gap:.6rem;margin:1.25rem 0 2rem;list-style:none;padding:0}.topic-pill{display:inline-flex;align-items:center;gap:.4rem;padding:.45rem .9rem;font-size:.82rem;font-weight:500;color:var(--content);background:var(--entry);border:1px solid var(--border);border-radius:999px;transition:border-color .2s ease,background .2s ease}.topic-pill strong{color:var(--accent);font-weight:600}.home-cta{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1rem;margin-top:2.5rem;padding:1.5rem 1.75rem;border-radius:calc(var(--radius) + 4px);background:var(--accent-soft);border:1px solid var(--accent-border)}.home-cta-text{margin:0;font-size:.95rem;color:var(--content);line-height:1.6}.home-cta-actions{display:flex;gap:.75rem;flex-wrap:wrap}.btn{display:inline-flex;align-items:center;gap:.4rem;padding:.55rem 1.1rem;font-size:.88rem;font-weight:500;text-decoration:none;border-radius:8px;transition:background .2s ease,color .2s ease,transform .2s ease}.btn-primary{color:#fff;background:var(--accent)}.btn-primary:hover{filter:brightness(1.1);transform:translateY(-1px)}.btn-ghost{color:var(--primary);background:var(--entry);border:1px solid var(--border)}.btn-ghost:hover{border-color:var(--accent-border);color:var(--accent)}.about-profile{margin-bottom:2rem;padding:1.75rem 2rem;border-radius:calc(var(--radius) + 4px);background:linear-gradient(135deg,var(--entry) 0%,var(--accent-soft) 100%);border:1px solid var(--accent-border);box-shadow:var(--card-shadow)}.about-profile h2{margin:0 0 .35rem!important;font-size:1.75rem;font-weight:700;letter-spacing:-.03em;color:var(--primary);border:none!important;padding:0!important}.about-profile-text p{margin:.5rem 0 0;font-size:.95rem;line-height:1.75;color:var(--content)}.about-profile-text strong{display:block;font-size:.82rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--accent);margin-bottom:.75rem}.page-intro{margin-bottom:2rem;padding:1.25rem 1.5rem;border-radius:calc(var(--radius) + 2px);background:var(--entry);border:1px solid var(--border);border-left:3px solid var(--accent);font-size:.95rem;line-height:1.7;color:var(--secondary)}.page-intro p:last-child{margin-bottom:0}.page-intro a{color:var(--accent);text-decoration:none}.page-intro a:hover{text-decoration:underline}.page-header h1{letter-spacing:-.02em}.page-header .post-description{font-size:1rem;line-height:1.6;max-width:60ch}.terms-tags li a,.terms-categories li a{transition:color .2s ease,border-color .2s ease}.terms-tags li a:hover,.terms-categories li a:hover{color:var(--accent)}.contact-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1rem;margin:2rem 0}.contact-card{display:flex;flex-direction:column;gap:.5rem;padding:1.5rem;border:1px solid var(--border);border-radius:calc(var(--radius) + 2px);background:var(--entry);box-shadow:var(--card-shadow)}.contact-card-primary{border-color:var(--accent-border);background:linear-gradient(135deg,var(--entry) 0%,var(--accent-soft) 100%)}.contact-card-label{font-size:.7rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--accent)}.contact-card-title{font-size:1.1rem;font-weight:600;color:var(--primary);letter-spacing:-.01em}.contact-card-desc{margin:0;font-size:.86rem;color:var(--secondary);line-height:1.55;flex-grow:1}.contact-card-link{font-size:.9rem;font-weight:500;color:var(--accent);text-decoration:none;margin-top:.25rem;word-break:break-all}.contact-card-link:hover{text-decoration:underline}.post-content table{width:100%;border-collapse:collapse;margin:1.25rem 0;font-size:.9rem}.post-content table th,.post-content table td{padding:.65rem .85rem;border:1px solid var(--border);text-align:left}.post-content table th{background:var(--entry);font-weight:600;color:var(--primary)}.footer a{color:var(--secondary);transition:color .2s ease}.footer a:hover{color:var(--accent)}@media(max-width:600px){.home-cards,.contact-grid{grid-template-columns:1fr}.home-stats{grid-template-columns:1fr;gap:1.25rem}.home-cta{flex-direction:column;align-items:flex-start}.home-info{padding:var(--gap)!important}}
500&family=DM+Sans:opsz,wght@9..40,400;9..40,500;9..40,600;9..40,700&family=Playfair+Display:ital,wght@0,600;0,700;1,600&display=swap');

:root, html[data-theme=dark], html[data-theme=light] { --theme:#f7f5ef; --entry:#fffefb; --primary:#18291e; --secondary:#59695f; --content:#34463b; --border:#d5ddd0; --code-bg:#18261d; --brand:#90b84a; --brand-2:#c4d96f; }
html, body { background:var(--theme); }
body { color:var(--content); font-family:'DM Sans',sans-serif; background:linear-gradient(120deg,rgba(215,255,79,.16),transparent 30%),linear-gradient(305deg,rgba(216,94,54,.08),transparent 28%),var(--theme); }
body::after { content:''; position:fixed; inset:0; z-index:-1; pointer-events:none; opacity:.32; background-image:radial-gradient(#7c8a7f .6px,transparent .7px); background-size:9px 9px; }
.header { position:sticky; top:0; z-index:100; border-bottom:1px solid var(--border); background:rgba(244,241,232,.88); backdrop-filter:blur(18px); }
.header-nav { max-width:1240px; padding:1rem 1.5rem; }
.logo a { display:flex; align-items:center; gap:.68rem; color:var(--primary); font-size:1.12rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.logo a::before { content:''; display:block; width:34px; height:34px; flex:0 0 34px; background:url('/favicon.svg') center/contain no-repeat; }
.logo a:has(img)::before { display:none; }
.logo a img { width:34px; height:34px; border-radius:10px; box-shadow:0 6px 18px rgba(46,68,38,.16); }
.logo a { font-size:0; }
.logo a::after { content:'AYRIX'; display:block; color:var(--primary); font-size:1.12rem; font-weight:700; letter-spacing:.08em; }
.menu a::after { display:none; }
.logo-switches { display:none; }
.menu { gap:.18rem; }
.menu a { padding:.48rem .72rem; border-radius:999px; color:var(--secondary); font-size:.75rem; font-weight:700; letter-spacing:.04em; }
.menu a:hover,.menu .active { color:var(--primary); background:#dff49c; }
.main { max-width:1240px; padding:3.4rem 1.5rem 5.5rem; }
.home-info { position:relative; display:block; min-height:500px!important; margin:0 0 2.6rem; padding:clamp(2.2rem,6vw,5.6rem); overflow:hidden; border:1px solid #cfd8b2; border-radius:4px 48px 4px 24px; background:linear-gradient(125deg,#f0f7df,#e8f1d7); box-shadow:8px 8px 0 rgba(24,38,29,.08); }
.home-info::before { content:'AYRIX'; position:absolute; top:1.7rem; right:clamp(1.4rem,4vw,4rem); color:#4c6f24; font-family:'DM Mono',monospace; font-size:.7rem; letter-spacing:.18em; }
.home-info::after { content:'A'; position:absolute; z-index:0; right:-.04em; bottom:-.24em; color:rgba(255,253,248,.65); font-family:'Playfair Display',serif; font-size:clamp(18rem,45vw,43rem); font-weight:700; line-height:1; }
.home-info .entry-header,.home-info .entry-content,.home-info .entry-footer { position:relative; z-index:1; }
.home-info .entry-header h1 { max-width:11ch; margin:0; color:#18291e; font-family:'Playfair Display',Georgia,serif; font-size:clamp(3.1rem,7.4vw,6.8rem); font-weight:700; line-height:.91; letter-spacing:-.02em; }
.home-info .entry-header h1::before { content:'FIELD NOTES FOR CURIOUS BUILDERS'; display:block; margin-bottom:1.65rem; color:#597c25; font-family:'DM Mono',monospace; font-size:.67rem; font-weight:700; letter-spacing:.16em; text-transform:uppercase; }
.home-info .entry-content { max-width:31rem; margin:2.2rem 0 0; color:#34463b; font-size:1rem; line-height:1.8; }
.home-info .entry-content strong { color:var(--primary); }.home-info .entry-content a,.post-content a { color:#496d1d; text-decoration-color:#9fbd52; }
.social-icons { margin-top:1.45rem; }.social-icons a { width:38px;height:38px;border:1px solid rgba(24,38,29,.22);border-radius:50%;color:var(--primary); }.social-icons a:hover { border-color:var(--brand);background:var(--brand-2); }
.home-hero { display:none; }.home-sections{max-width:none;}.home-stats { gap:1rem; margin:0 0 5rem; padding:0; border:0; background:none; }.home-stat { align-items:flex-start; padding:1.25rem 1.4rem; border:1px solid var(--border); border-radius:3px 16px 3px 16px; background:var(--entry); }.home-stat-label { color:var(--secondary); font-size:.75rem; font-weight:700; letter-spacing:.04em; text-transform:uppercase; }.home-stat-value { color:var(--brand); font-size:clamp(1.8rem,4vw,2.8rem); font-weight:700; line-height:1.2; }
.section-header { display:grid; grid-template-columns:180px 1fr; gap:.2rem 2rem; margin:5rem 0 1.8rem; }.section-label { grid-row:span 2; color:var(--brand-2); font-family:'DM Mono',monospace; font-size:.65rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; writing-mode:vertical-rl; text-orientation:mixed; transform:rotate(180deg); }.section-header h2 { margin:0; color:var(--primary); font-family:'Playfair Display',Georgia,serif; font-size:clamp(2.2rem,5vw,3.8rem); font-weight:700; line-height:1.1; }
.home-cards { grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.1rem; }.home-card { min-height:230px; padding:1.65rem; border:1px solid var(--border); border-radius:3px 24px 3px 24px; background:var(--entry); transition:transform .3s ease, box-shadow .3s ease; }.home-card:hover { transform:translateY(-4px); box-shadow:0 10px 28px rgba(24,38,29,.12); border-color:var(--brand-2); }.home-card-icon { width:48px; height:48px; margin-bottom:1rem; display:flex; align-items:center; justify-content:center; border-radius:8px; background:rgba(185,223,85,.1); font-size:1.6rem; }
.home-card-title { display:block; margin-bottom:.5rem; color:var(--primary); font-weight:600; font-size:1.1rem; }
.home-card-desc { display:block; color:var(--secondary); font-size:.9rem; line-height:1.6; }
.topic-pill { border-color:var(--border); background:var(--entry); color:var(--secondary); }.topic-pill strong{color:var(--brand-2);}.topic-pill:hover{border-color:var(--brand);color:var(--primary);background:rgba(185,223,85,.08)}
.post-entry,.terms-tags li,.terms-categories li,.contact-card { border:1px solid var(--border);border-radius:3px 20px 3px 20px;background:rgba(255,253,248,.78);box-shadow:none; }.post-entry:hover{border-color:var(--brand-2);background:var(--entry);}
@media(max-width:800px){.header-nav{align-items:flex-start;flex-direction:column;gap:.75rem;}.menu{max-width:100%;overflow-x:auto}.main{padding:2rem 1rem 4rem}.home-info{min-height:430px!important;}.section-header{grid-template-columns:1fr;}.section-label{grid-row:auto;writing-mode:initial;transform:none;margin-bottom:.8rem;}.home-cards{grid-template-columns:1fr}}

/* Midnight colour system */
:root, html[data-theme=dark], html[data-theme=light] { --theme:#0c1210; --entry:#15211b; --primary:#f3f7e9; --secondary:#aebba9; --content:#d7e0d2; --border:#2b3b31; --code-bg:#08100c; --brand:#7fa042; --brand-2:#9fb873; }
body { background:radial-gradient(circle at 12% -10%,rgba(127,160,66,.13),transparent 30rem),radial-gradient(circle at 98% 20%,rgba(255,131,84,.08),transparent 26rem),var(--theme); }
body::after { opacity:.14; }
.header { border-color:var(--border); background:rgba(12,18,16,.88); }.logo a::after { color:var(--primary); }.menu a { color:var(--secondary); }.menu a:hover,.menu .active { color:#10180f; background:#9fb873; }
.home-info { border-color:#38513d; background:linear-gradient(125deg,#1c3025,#112019); box-shadow:14px 14px 0 #070b09; }.home-info::before { color:var(--brand); }.home-info::after { color:rgba(127,160,66,.2); }
.home-stat { border-color:var(--border); background:#111b16; }.home-stat-value { color:var(--brand); }.section-header h2,.home-card-title,.entry-header h2,.entry-header h2 a,.post-title,.page-heading { color:var(--primary); }
.home-card,.post-entry,.terms-tags li,.terms-categories li,.contact-card { border-color:var(--border); background:var(--entry); }.home-card::before { background:linear-gradient(90deg,var(--brand),transparent); }
.home-cta { background:linear-gradient(120deg,#24381f,#17271f); }.home-cta-text { color:#edf5df; }.btn-primary { background:var(--brand); color:#0d160e; }.btn-ghost { border-color:#66806a; background:transparent; color:var(--primary); }.btn-ghost:hover { background:var(--brand-2); color:#0d160e; border-color:var(--brand); }

/* AYRIX interaction layer — framework-free, static-site friendly */
:root {
  --motion-accent: #72a4ff;
  --motion-glow: rgba(85, 142, 255, .28);
  --motion-ease: cubic-bezier(.2, .75, .25, 1);
}

html { scroll-behavior: smooth; }
body { overflow-x: hidden; }

/* Subtle background depth */
body::before {
  content: "";
  position: fixed;
  z-index: -1;
  width: 42rem;
  height: 42rem;
  top: -18rem;
  right: -20rem;
  border-radius: 50%;
  background: radial-gradient(circle, var(--motion-glow), transparent 66%);
  filter: blur(8px);
  pointer-events: none;
}

/* Header */
.header {
  position: sticky;
  top: 0;
  z-index: 10;
  transition: background .35s ease, box-shadow .35s ease, border-color .35s ease;
}
.logo a { position: relative; }
.logo a::after, .menu a::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: -5px;
  height: 2px;
  border-radius: 99px;
  background: var(--motion-accent);
  transform: scaleX(0);
  transform-origin: right;
  transition: transform .3s var(--motion-ease);
}
.logo a:hover::after, .menu a:hover::after, .menu .active::after { transform: scaleX(1); transform-origin: left; }
.menu a { position: relative; transition: color .25s ease, transform .25s ease; }
.menu a:hover { color: var(--motion-accent); transform: translateY(-1px); }
.theme-toggle { transition: transform .35s var(--motion-ease), background .25s ease; }
.theme-toggle:hover { transform: rotate(18deg) scale(1.08); }
#theme-toggle { display: none; }

/* CSS-only page entrance. */
.home-info, .home-hero, .section-header, .home-card, .topic-pill, .home-cta,
.post-entry, .post-header, .about-profile, .page-intro {
  animation: ayrix-enter .65s var(--motion-ease) both;
}
.home-card:nth-child(2), .topic-pill:nth-child(2) { animation-delay: .08s; }
.home-card:nth-child(3), .topic-pill:nth-child(3) { animation-delay: .16s; }
.home-card:nth-child(4), .topic-pill:nth-child(4) { animation-delay: .24s; }
.home-card:nth-child(5), .topic-pill:nth-child(5) { animation-delay: .32s; }
.home-card:nth-child(6), .topic-pill:nth-child(6) { animation-delay: .40s; }
@keyframes ayrix-enter { from { opacity: 0; transform: translateY(22px); } to { opacity: 1; transform: translateY(0); } }

/* Hero, cards, and controls */
.home-info, .home-hero, .about-profile, .page-intro { position: relative; overflow: hidden; }
.home-info::before, .home-hero::before, .about-profile::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(115deg, transparent 28%, rgba(255,255,255,.11) 48%, transparent 68%);
  transform: translateX(-120%);
  transition: transform .9s var(--motion-ease);
  pointer-events: none;
}
.home-info:hover::before, .home-hero:hover::before, .about-profile:hover::before { transform: translateX(120%); }
.home-hero img { transition: transform .8s var(--motion-ease), filter .8s ease; }
.home-hero:hover img { transform: scale(1.045); filter: saturate(1.15) contrast(1.04); }
.home-card, .contact-card, .post-entry {
  transition: transform .35s var(--motion-ease), box-shadow .35s ease, border-color .35s ease, background .35s ease;
  will-change: transform;
}
.home-card:hover, .contact-card:hover, .post-entry:hover {
  transform: translateY(-6px);
  border-color: var(--motion-accent);
  box-shadow: 0 18px 38px rgba(0, 0, 0, .16);
}
.home-card-icon { transition: transform .4s var(--motion-ease), background .35s ease; }
.home-card:hover .home-card-icon { transform: rotate(-7deg) scale(1.09); background: var(--motion-glow); }
.btn { position: relative; overflow: hidden; isolation: isolate; transition: transform .25s var(--motion-ease), box-shadow .25s ease, filter .25s ease; }
.btn:hover { transform: translateY(-3px); box-shadow: 0 10px 24px var(--motion-glow); }
.btn:active { transform: translateY(-1px) scale(.98); }

/* Content polish */
.post-title, .entry-header h1 { animation: ayrix-title .7s var(--motion-ease) both; }
@keyframes ayrix-title { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: translateY(0); } }
.post-content a:not(.btn), .entry-content a { text-underline-offset: .2em; transition: color .2s ease, text-decoration-color .2s ease; }
.post-content a:not(.btn):hover, .entry-content a:hover { color: var(--motion-accent); text-decoration-color: var(--motion-accent); }
pre { transition: transform .3s var(--motion-ease), box-shadow .3s ease; }
pre:hover { transform: translateY(-2px); box-shadow: 0 12px 30px rgba(0,0,0,.18); }
.post-content img { transition: transform .45s var(--motion-ease), box-shadow .45s ease; }
.post-content img:hover { transform: scale(1.015); box-shadow: 0 14px 36px rgba(0,0,0,.24); }
.home-stat-value { display: inline-block; }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; transition-duration: .01ms !important; }
}

@media (max-width: 600px) {
  .home-card:hover, .contact-card:hover, .post-entry:hover { transform: translateY(-3px); }
}



/* Signal redesign: a crisp, high-contrast technical publication. */
500&family=Manrope:wght@400;500;600;700;800&family=Space+Grotesk:wght@400;500;600;700&display=swap');
:root,html[data-theme=dark],html[data-theme=light]{--theme:#070b13;--entry:#0d1421;--primary:#f4f7ff;--secondary:#98a5bd;--content:#c7d1e3;--border:#26334a;--code-bg:#080d16;--brand:#55e6c1;--brand-2:#81a8ff}*{box-sizing:border-box}html,body{background:var(--theme);color:var(--content)}body{font-family:Manrope,system-ui,sans-serif;background:radial-gradient(circle at 4% 5%,rgba(85,230,193,.12),transparent 25rem),radial-gradient(circle at 92% 14%,rgba(129,168,255,.14),transparent 31rem),#070b13}.header{border-bottom:1px solid rgba(152,165,189,.18);background:rgba(7,11,19,.8);backdrop-filter:blur(20px)}.header-nav,.main{max-width:1240px}.header-nav{padding:1rem 1.5rem}.main{padding:3.7rem 1.5rem 6.5rem}.logo a{font-size:0!important}.logo a:before{border:1px solid rgba(85,230,193,.5);border-radius:9px;background:#0e1823 url('/favicon.svg') center/20px no-repeat;box-shadow:0 0 25px rgba(85,230,193,.18)}.logo a:after{content:'AYRIX // SIGNAL';color:var(--primary);font-family:'Space Grotesk';font-size:.86rem;font-weight:700;letter-spacing:.13em}.menu a{border-radius:7px;color:var(--secondary);font-family:'DM Mono';font-size:.68rem}.menu a:hover,.menu .active{background:rgba(85,230,193,.12);color:var(--brand)}.menu a:after{display:none}.home-info{min-height:560px!important;padding:clamp(2.2rem,6vw,6rem);border:1px solid rgba(129,168,255,.33);border-radius:20px;background:linear-gradient(130deg,rgba(16,31,46,.96),rgba(8,13,23,.9));box-shadow:0 30px 90px rgba(0,0,0,.3)}.home-info:before{content:'SYSTEM ONLINE';color:var(--brand);font-family:'DM Mono';font-size:.65rem;letter-spacing:.13em}.home-info:after{content:'//';color:rgba(129,168,255,.08);font-family:'Space Grotesk'}.home-info .entry-header h1{color:var(--primary);font-family:'Space Grotesk';font-size:clamp(3.35rem,8vw,7.6rem);letter-spacing:-.07em}.home-info .entry-header h1:before{content:'TECHNICAL FIELD NOTES / 2026';color:var(--brand);font-family:'DM Mono';font-size:.67rem;letter-spacing:.12em}.home-info .entry-content,.section-subtitle{color:var(--secondary)}.home-info .entry-content a,.post-content a{color:var(--brand)}.home-stat{border:1px solid var(--border);border-radius:12px;background:rgba(13,20,33,.78)}.home-stat-value{color:var(--brand);font-family:'Space Grotesk'}.home-stat-label,.entry-footer,.post-meta{font-family:'DM Mono';font-size:.68rem}.section-header{grid-template-columns:90px 1fr}.section-label{color:var(--brand);font-family:'DM Mono';font-size:.63rem;letter-spacing:.14em}.section-header h2,.page-header h1,.page-heading{color:var(--primary);font-family:'Space Grotesk';letter-spacing:-.07em}.home-card,.post-entry{border:1px solid var(--border);border-radius:14px;background:linear-gradient(145deg,rgba(19,29,47,.95),rgba(11,17,29,.95))}.home-card:hover,.post-entry:hover{border-color:rgba(85,230,193,.65);background:linear-gradient(145deg,#172740,#0c1727);box-shadow:0 18px 45px rgba(0,0,0,.3)}.home-card-icon{border:1px solid rgba(85,230,193,.25);border-radius:11px;background:rgba(85,230,193,.07);color:var(--brand)}.home-card-title,.entry-header h2,.entry-header h2 a{color:var(--primary);font-family:'Space Grotesk'}.home-card-desc,.entry-content{color:var(--secondary)}.topic-pill{border:1px solid var(--border);border-radius:999px;background:rgba(13,20,33,.7)}.topic-pill strong{color:var(--brand)}.home-cta{border:1px solid rgba(129,168,255,.34);border-radius:16px;background:linear-gradient(120deg,#12243a,#101a2b)}.btn-primary{background:var(--brand);color:#06110f}.post-entry{overflow:hidden;padding:1rem}.post-entry .entry-cover{height:190px;margin:-1rem -1rem 1.35rem;overflow:hidden;background:#0b1220}.post-entry .entry-cover img{width:100%;height:100%;object-fit:cover}.post-single{max-width:900px}.post-single .post-header{padding:clamp(1.6rem,4vw,3.3rem);border:1px solid rgba(129,168,255,.34);border-radius:18px;background:linear-gradient(135deg,rgba(22,39,64,.9),rgba(11,17,29,.95))}.post-single .post-title{color:var(--primary);font-family:'Space Grotesk';font-size:clamp(2.65rem,6.5vw,5.4rem);line-height:.94;letter-spacing:-.075em}.post-single .post-description{color:var(--secondary);font-size:1.05rem}.breadcrumbs{color:var(--brand);font-family:'DM Mono';font-size:.68rem}.post-single .entry-cover{overflow:hidden;border:1px solid var(--border);border-radius:15px;background:#0a101b}.post-single .entry-cover img{width:100%;aspect-ratio:16/7;object-fit:cover}.post-content{font-size:1.04rem;line-height:1.88}.post-content h2{border-top:1px solid var(--border);color:var(--primary);font-family:'Space Grotesk';letter-spacing:-.045em}.post-content h3{color:var(--brand)}.post-content pre{border:1px solid #243b4d;border-radius:12px;background:#070c14;box-shadow:inset 3px 0 var(--brand)}.post-content code{color:#d4fff5}.post-content blockquote{border-left-color:var(--brand);background:rgba(85,230,193,.07);color:#cde7e0}.post-content table{border:1px solid var(--border);border-radius:12px}.post-content thead{background:#14243a}.post-tags li a{border:1px solid rgba(85,230,193,.3);border-radius:999px;background:rgba(85,230,193,.06);color:var(--brand);font-family:'DM Mono'}.about-profile,.contact-card,.page-intro{border:1px solid var(--border);border-radius:14px;background:linear-gradient(135deg,#13233a,#0d1421)}.footer{border-top:1px solid var(--border);background:#060a11;color:#7f8da4;font-family:'DM Mono';font-size:.68rem}@media(max-width:800px){.header-nav{align-items:flex-start;flex-direction:column;gap:.8rem}.menu{width:100%;overflow:auto}.main{padding:2.2rem 1rem 4rem}.home-info{min-height:470px!important;padding:2rem 1.5rem}.section-header{grid-template-columns:1fr}.section-label{writing-mode:initial;transform:none}.home-cards{grid-template-columns:1fr}.post-single .entry-cover img{aspect-ratio:16/9}}

/* Editorial finish for guides, cards, and code-heavy articles. */
.post-single { max-width: 860px; }
.post-single .post-header { padding: clamp(1.7rem, 4vw, 3.4rem); border: 1px solid var(--border); border-radius: 4px 30px 4px 30px; background: linear-gradient(135deg, rgba(127,160,66,.14), transparent 56%), var(--entry); }
.post-single .post-title { font-family: 'Playfair Display', Georgia, serif; font-size: clamp(2.4rem, 6vw, 4.6rem); line-height: 1; letter-spacing: -.035em; }
.post-single .post-description { max-width: 60ch; color: var(--secondary); font-size: 1.05rem; line-height: 1.65; }
.post-single .post-meta { color: var(--secondary); font-family: 'DM Mono', monospace; font-size: .73rem; }
.post-single .entry-cover { margin: 1.2rem 0 2.8rem; overflow: hidden; border: 1px solid var(--border); border-radius: 3px 22px 3px 22px; background: var(--code-bg); }
.post-single .entry-cover img { width: 100%; aspect-ratio: 16 / 7; object-fit: cover; }
.post-single .post-content { font-size: 1.04rem; line-height: 1.85; }
.post-single .post-content h2 { margin-top: 3.1rem; padding-top: .65rem; color: var(--primary); font-family: 'Playfair Display', Georgia, serif; font-size: clamp(1.65rem, 3vw, 2.25rem); border-top: 1px solid var(--border); }
.post-single .post-content pre { padding: 1.15rem 1.3rem; overflow-x: auto; border: 1px solid #31483a; border-radius: 3px 14px 3px 14px; background: #09110d; box-shadow: inset 3px 0 var(--brand); }
.post-single .post-content code { color: #dceec4; }
.post-single .post-content blockquote { margin: 1.8rem 0; padding: 1rem 1.25rem; border-left: 3px solid var(--brand); border-radius: 0 12px 12px 0; background: rgba(127,160,66,.1); }
.post-single .post-content table { display: table; width: 100%; overflow: hidden; border: 1px solid var(--border); border-radius: 12px; }
.post-entry { overflow: hidden; transition: transform .25s ease, border-color .25s ease, box-shadow .25s ease; }
.post-entry:hover { transform: translateY(-4px); box-shadow: 0 16px 34px rgba(0,0,0,.22); }
.post-entry .entry-cover { margin: -1rem -1rem 1.2rem; height: 180px; overflow: hidden; background: #101b15; }
.post-entry .entry-cover img { width: 100%; height: 100%; object-fit: cover; transition: transform .45s ease; }
.post-entry:hover .entry-cover img { transform: scale(1.04); }
@media (max-width: 700px) { .post-single .post-header { padding: 1.4rem; } .post-single .entry-cover img { aspect-ratio: 16 / 9; } .post-single .post-content { font-size: 1rem; } }

/* Keep the article layer aligned with the Signal system above. */
.post-single{max-width:900px}.post-single .post-header{border-color:rgba(129,168,255,.34);border-radius:18px;background:linear-gradient(135deg,rgba(22,39,64,.9),rgba(11,17,29,.95))}.post-single .post-title,.post-single .post-content h2{font-family:'Space Grotesk',sans-serif;color:var(--primary)}.post-single .post-title{font-size:clamp(2.65rem,6.5vw,5.4rem);line-height:.94;letter-spacing:-.075em}.post-single .post-content h2{font-size:clamp(1.7rem,3vw,2.45rem);letter-spacing:-.045em}.post-single .post-content pre{border-color:#243b4d;border-radius:12px;background:#070c14}.post-single .post-content code{color:#d4fff5}.post-single .post-content blockquote{border-left-color:var(--brand);background:rgba(85,230,193,.07)}.post-entry .entry-cover{background:#0b1220}.post-entry:hover{border-color:rgba(85,230,193,.65);background:linear-gradient(145deg,#172740,#0c1727);box-shadow:0 18px 45px rgba(0,0,0,.3)}

.signal-loader{position:fixed;inset:0;z-index:9999;display:grid;place-items:center;overflow:hidden;background:#050811;color:#f4f7ff;transition:opacity .48s ease,visibility .48s ease}.signal-loader:before,.signal-loader:after{content:'';position:absolute;top:50%;left:50%;width:40vmax;height:40vmax;border:1px solid rgba(85,230,193,.24);border-radius:50%;transform:translate(-50%,-50%);animation:signal-radiate 1.9s ease-out infinite}.signal-loader:after{width:22vmax;height:22vmax;border-color:rgba(129,168,255,.35);animation-delay:.5s}.signal-loader__grid{position:absolute;inset:0;opacity:.32;background:linear-gradient(rgba(129,168,255,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(129,168,255,.08) 1px,transparent 1px);background-size:56px 56px;mask-image:radial-gradient(circle at center,#000,transparent 72%)}.signal-loader__core{position:relative;z-index:1;display:flex;align-items:center;flex-direction:column;text-align:center}.signal-loader__eyebrow,.signal-loader__status,.signal-loader__count{font-family:'DM Mono',monospace;font-size:.68rem;font-weight:500;letter-spacing:.17em}.signal-loader__eyebrow{margin-bottom:1rem;color:var(--brand)}.signal-loader__mark{display:grid;place-items:center;width:116px;height:116px;margin-bottom:1.25rem;border:1px solid rgba(85,230,193,.65);border-radius:50%;color:var(--primary);font-family:'Space Grotesk',sans-serif;font-size:4.6rem;line-height:1;box-shadow:0 0 0 12px rgba(85,230,193,.045),0 0 46px rgba(85,230,193,.2);animation:signal-pulse 1.15s ease-in-out infinite alternate}.signal-loader__status{color:var(--secondary)}.signal-loader__line{width:min(260px,62vw);height:2px;margin:1rem 0 .7rem;background:#1f2c40;overflow:hidden}.signal-loader__line i{display:block;width:100%;height:100%;background:linear-gradient(90deg,var(--brand),var(--brand-2));transform:scaleX(0);transform-origin:left}.signal-loader__count{color:var(--brand-2)}.signal-loader--exit{opacity:0;visibility:hidden}@keyframes signal-radiate{0%{transform:translate(-50%,-50%) scale(.58);opacity:.72}100%{transform:translate(-50%,-50%) scale(1.18);opacity:0}}@keyframes signal-pulse{to{transform:scale(1.05);box-shadow:0 0 0 18px rgba(85,230,193,.025),0 0 70px rgba(85,230,193,.32)}}@media(prefers-reduced-motion:reduce){.signal-loader:before,.signal-loader:after,.signal-loader__mark{animation:none}.signal-loader{transition:none}}

/* Forest Signal palette. */
:root,html[data-theme=dark],html[data-theme=light]{--theme:#09110c;--entry:#101c14;--primary:#f3faeb;--secondary:#a8b9a7;--content:#d2dfd0;--border:#2d4434;--code-bg:#070d09;--brand:#8dcc50;--brand-2:#c1e77e}body{background:radial-gradient(circle at 4% 5%,rgba(110,190,77,.15),transparent 25rem),radial-gradient(circle at 92% 14%,rgba(193,231,126,.1),transparent 31rem),#09110c}.header{background:rgba(9,17,12,.82)}.home-info{border-color:rgba(141,204,80,.34);background:linear-gradient(130deg,rgba(20,43,27,.96),rgba(9,17,12,.92))}.home-card,.post-entry{background:linear-gradient(145deg,rgba(20,36,25,.97),rgba(11,20,14,.97))}.home-card:hover,.post-entry:hover{border-color:rgba(141,204,80,.72);background:linear-gradient(145deg,#1b3522,#0d1c12)}.post-single .post-header{border-color:rgba(141,204,80,.34);background:linear-gradient(135deg,rgba(24,46,30,.92),rgba(10,19,13,.96))}.post-content pre{border-color:#35513b!important;background:#070d09!important}.post-content thead{background:#1c3422}.home-cta{border-color:rgba(141,204,80,.34);background:linear-gradient(120deg,#1c3923,#112519)}.signal-loader{background:#061009}.signal-loader:before{border-color:rgba(141,204,80,.28)}.signal-loader:after{border-color:rgba(193,231,126,.33)}.signal-loader__grid{background:linear-gradient(rgba(141,204,80,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(141,204,80,.08) 1px,transparent 1px)}.signal-loader__mark{border-color:rgba(141,204,80,.72);box-shadow:0 0 0 12px rgba(141,204,80,.045),0 0 46px rgba(141,204,80,.22)}@keyframes signal-pulse{to{transform:scale(1.05);box-shadow:0 0 0 18px rgba(141,204,80,.025),0 0 70px rgba(141,204,80,.32)}}

/* Keep the supplied portrait banners fully visible instead of cropping them. */
img[src*="codex-ubuntu-cli-banner"],img[src*="claude-ubuntu-cli-banner"]{object-fit:contain!important;background:#061009}.post-entry:has(img[src*="codex-ubuntu-cli-banner"]) .entry-cover,.post-entry:has(img[src*="claude-ubuntu-cli-banner"]) .entry-cover{display:grid;place-items:center;background:#061009}.post-single .entry-cover:has(img[src*="codex-ubuntu-cli-banner"]),.post-single .entry-cover:has(img[src*="claude-ubuntu-cli-banner"]){display:grid;place-items:center;background:#061009}.post-single .entry-cover:has(img[src*="codex-ubuntu-cli-banner"]) img,.post-single .entry-cover:has(img[src*="claude-ubuntu-cli-banner"]) img{max-height:460px}

/* Make long form articles easier to scan and read. */
.post-single .post-content {
  max-width: 72ch;
  margin-inline: auto;
  font-size: clamp(1rem, 1.1vw, 1.08rem);
  line-height: 1.85;
  text-wrap: pretty;
}

.post-single .post-content p,
.post-single .post-content ul,
.post-single .post-content ol {
  margin-block: 1.25em;
}

.post-single .post-content li + li {
  margin-top: 0.45em;
}

.post-single .post-content h2 {
  margin-block: 2.8em 0.8em;
  padding-top: 0.8em;
  line-height: 1.2;
  text-wrap: balance;
}

.post-single .post-content h3,
.post-single .post-content h4 {
  margin-block: 2em 0.65em;
  line-height: 1.3;
  text-wrap: balance;
}

.post-single .post-content :is(ul, ol) {
  padding-inline-start: 1.5em;
}

.post-single .post-content :not(pre) > code {
  padding: 0.12em 0.38em;
  border: 1px solid var(--border);
  border-radius: 5px;
  background: var(--entry);
  font-size: 0.88em;
  white-space: break-spaces;
}

.post-single .post-content pre {
  margin-block: 1.75em;
  line-height: 1.65;
  tab-size: 2;
}

.post-single .post-content figure {
  margin: 2em 0;
}

.post-single .post-content figcaption {
  margin-top: 0.7em;
  color: var(--secondary);
  font-size: 0.88em;
  text-align: center;
}

.post-single .post-content hr {
  width: 5rem;
  margin: 3em auto;
  border: 0;
  border-top: 2px solid var(--border);
}

@media (max-width: 700px) {
  .post-single .post-content {
    line-height: 1.78;
  }

  .post-single .post-content h2 {
    margin-top: 2.3em;
  }

  .post-single .post-content pre {
    margin-inline: -0.25rem;
    padding-inline: 1rem;
  }
}

* { box-sizing:border-box; }
:root,html[data-theme="dark"] { color-scheme:dark; --bg:#07111f; --surface:#0c1a2c; --text:#e7eef6; --muted:#93a7bd; --accent:#34d399; --border:#1e3249; --focus:#34d399; --theme:var(--bg); --entry:var(--surface); --primary:var(--text); --secondary:var(--muted); --content:var(--text); --brand:var(--accent); }
html[data-theme="light"] { color-scheme:light; --bg:#f7fafc; --surface:#fff; --text:#0b1626; --muted:#506478; --accent:#047857; --border:#d8e2ec; --focus:#047857; --theme:var(--bg); --entry:var(--surface); --primary:var(--text); --secondary:var(--muted); --content:var(--text); --brand:var(--accent); }
html { background:var(--bg); scroll-behavior:smooth; }
body { color:var(--text); background:var(--bg); }
a { color:var(--accent); }
:focus-visible { outline:2px solid var(--focus)!important; outline-offset:3px; }
.skip-link { position:absolute; z-index:1000; top:0; left:1rem; padding:.75rem 1rem; transform:translateY(-150%); background:var(--surface); color:var(--text); }
.skip-link:focus { transform:none; }
@media(prefers-reduced-motion:reduce) { *,*::before,*::after { scroll-behavior:auto!important; animation-duration:.01ms!important; animation-iteration-count:1!important; transition-duration:.01ms!important; } }
@media(prefers-reduced-motion:reduce) { @view-transition { navigation:none; } }
@view-transition { navigation:auto; }
::view-transition-old(root),::view-transition-new(root) { animation-duration:260ms; animation-timing-function:cubic-bezier(.2,.8,.2,1); }
::view-transition-old(root) { animation-name:page-out; }
::view-transition-new(root) { animation-name:page-in; }
@keyframes page-out { to { opacity:0; } }
@keyframes page-in { from { opacity:0; transform:translateY(8px); } }
.header { background:color-mix(in srgb,var(--bg) 94%,transparent); }
.footer { color:var(--muted); }
.home-card,.contact-card,.entry-cover img { border-color:var(--border); }
.home-card:hover { transform:translateY(-3px); transition:transform 160ms ease,border-color 160ms ease; }
.contact-card-link { min-height:44px; }
.post-content { overflow-wrap:anywhere; }
.post-content pre { max-width:100%; overflow:auto; position:relative; padding-top:3rem; }
 .copy-code-button { position:absolute; top:.65rem; right:.65rem; min-width:4rem; min-height:2.5rem; border:1px solid var(--border); border-radius:8px; background:var(--surface); color:var(--text); cursor:pointer; }
.reading-progress { position:fixed; z-index:1100; inset:0 0 auto; height:3px; background:var(--accent); transform:scaleX(var(--progress,0)); transform-origin:left center; }
  @supports (animation-timeline:scroll()) {
  .reading-progress { animation:reading-progress linear both; animation-timeline:scroll(root); }
  @keyframes reading-progress { to { transform:scaleX(1); } }
}
.image-lightbox { width:min(94vw,1200px); max-width:none; max-height:94vh; padding:1rem; border:1px solid var(--border); border-radius:16px; background:var(--bg); color:var(--text); }
.image-lightbox::backdrop { background:rgb(0 0 0 / .82); }
.image-lightbox img { display:block; max-width:100%; max-height:82vh; margin:auto; object-fit:contain; }
.lightbox-close { display:block; min-width:44px; min-height:44px; margin-left:auto; border:1px solid var(--border); border-radius:8px; background:var(--surface); color:var(--text); }
.visually-hidden { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.not-found-panel { max-width:46rem; margin:4rem auto; padding:clamp(1.5rem,5vw,3rem); border:1px solid var(--border); border-radius:16px; background:var(--surface); }
.not-found-code { color:var(--accent); font:700 clamp(3rem,10vw,6rem)/1 monospace; margin:0; }
.not-found-panel li { margin-block:.65rem; }
.post-content figure img[role=button] { cursor:zoom-in; }
.post-content table { display:block; max-width:100%; overflow-x:auto; }
.site-search-link { display:inline-flex; align-items:center; gap:.5rem; min-height:44px; margin-inline-start:1rem; padding:.4rem .7rem; border:1px solid var(--border); border-radius:8px; color:var(--text); text-decoration:none; }
.site-search-link kbd { padding:.1rem .3rem; border:1px solid var(--border); border-radius:4px; color:var(--muted); font-size:.72em; }
.search-palette { width:min(92vw,40rem); max-width:none; max-height:min(80vh,42rem); padding:1.25rem; border:1px solid var(--border); border-radius:16px; background:var(--surface); color:var(--text); }
.search-palette::backdrop { background:rgb(0 0 0 / .65); }
.search-palette__form { display:grid; grid-template-columns:1fr auto; gap:.5rem; }
.search-palette__form label { grid-column:1/-1; font-weight:700; }
.search-palette__form input { min-width:0; min-height:44px; padding:.6rem .8rem; border:1px solid var(--border); border-radius:8px; background:var(--bg); color:var(--text); font:inherit; }
.search-close { min-height:44px; padding-inline:.8rem; border:1px solid var(--border); border-radius:8px; background:var(--surface); color:var(--text); }
.search-results { display:grid; gap:.5rem; padding:0; list-style:none; }
.search-results a { display:block; padding:.8rem; border:1px solid var(--border); border-radius:8px; color:var(--text); text-decoration:none; }
.search-results a:hover,.search-results a:focus-visible { background:var(--bg); }
.search-results strong,.search-results span { display:block; }
.search-results span { margin-top:.3rem; color:var(--muted); font-size:.9em; }
img { max-width:100%; height:auto; }
@media(max-width:640px) { .main { padding-inline:1rem; } .header-nav { padding-inline:1rem; } }

/* Ayrix's one-time welcome intro. */
.intro {
  position: fixed;
  z-index: 9999;
  inset: 0;
  display: none;
  overflow: hidden;
  color: #e7eef6;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
}

html.intro-on .intro { display: block; }
html.intro-on { overflow: hidden; }
html.intro-on:not(.intro-reveal) body > :not(.intro) {
  opacity: 0;
  transform: translateY(14px);
}

body > :not(.intro) {
  transition: opacity 600ms cubic-bezier(.2, .8, .2, 1), transform 600ms cubic-bezier(.2, .8, .2, 1);
}

.intro-panel {
  position: absolute;
  right: 0;
  left: 0;
  background: #07111f;
  will-change: transform;
  transition: transform 650ms cubic-bezier(.76, 0, .24, 1);
}

.intro-panel--top { top: 0; bottom: 50%; }
.intro-panel--bottom { top: 50%; bottom: 0; }
.intro.leave .intro-panel--top { transform: translateY(-101%); }
.intro.leave .intro-panel--bottom { transform: translateY(101%); }

.intro-stage {
  position: absolute;
  display: grid;
  pointer-events: none;
  place-items: center;
  inset: 0;
  transition: opacity 220ms ease-out;
}

.intro.leave .intro-stage { opacity: 0; }

.intro-grid {
  position: absolute;
  opacity: 0;
  inset: 0;
  background-image:
    linear-gradient(rgba(231, 238, 246, .045) 1px, transparent 1px),
    linear-gradient(90deg, rgba(231, 238, 246, .045) 1px, transparent 1px);
  background-size: 48px 48px;
  -webkit-mask-image: radial-gradient(circle at center, #000 0, transparent 68%);
  mask-image: radial-gradient(circle at center, #000 0, transparent 68%);
  animation: ayrix-intro-fade 700ms ease-out forwards;
}

.intro-glow {
  position: absolute;
  width: min(70vmin, 520px);
  aspect-ratio: 1;
  border-radius: 50%;
  opacity: 0;
  background: radial-gradient(circle, rgba(52, 211, 153, .32), transparent 62%);
  transform: scale(.6);
  animation: ayrix-intro-pulse 1100ms 750ms ease-out forwards;
}

.intro-group {
  position: relative;
  display: grid;
  justify-items: center;
  gap: 1.1rem;
  padding: 1rem;
}

.intro-mark { width: clamp(76px, 16vmin, 112px); height: auto; overflow: visible; }
.intro-mark .draw { stroke-dasharray: 1; stroke-dashoffset: 1; opacity: 0; animation: ayrix-intro-draw 680ms cubic-bezier(.65, 0, .35, 1) both; }
.intro-mark .ring { animation-delay: 150ms; }
.intro-mark .leg-l { animation-delay: 380ms; }
.intro-mark .leg-r { animation-delay: 540ms; }
.intro-mark .bar { animation-delay: 800ms; animation-duration: 320ms; }

.intro-word {
  display: flex;
  align-items: baseline;
  overflow: hidden;
  padding: 0 .06em .22em;
  color: #e7eef6;
  font: 800 clamp(2.4rem, 9vmin, 4.2rem)/1.1 Inter, ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
  letter-spacing: -.03em;
}

.intro-word .ch {
  display: inline-block;
  transform: translateY(115%);
  animation: ayrix-intro-rise 560ms cubic-bezier(.2, .8, .2, 1) forwards;
  animation-delay: calc(900ms + var(--i) * 60ms);
}

.intro-word .caret {
  display: inline-block;
  width: .5em;
  height: .11em;
  margin-left: .08em;
  border-radius: 2px;
  opacity: 0;
  background: #34d399;
  animation: ayrix-intro-blink 800ms steps(1, end) 1350ms infinite;
}

.intro-tag {
  margin: 0;
  color: #93a7bd;
  opacity: 0;
  transform: translateY(6px);
  font: 500 .95rem/1.4 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  letter-spacing: .08em;
  animation: ayrix-intro-fadeup 500ms 1250ms ease-out forwards;
}

.intro-boot {
  min-width: 15rem;
  margin: .4rem 0 0;
  padding: 0;
  color: #93a7bd;
  list-style: none;
  font: 400 .82rem/1.7 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
}

.intro-boot li { opacity: 0; animation: ayrix-intro-fade 200ms ease-out forwards; animation-delay: calc(1100ms + var(--i) * 170ms); }
.intro-boot .ok { color: #34d399; }

.intro-bar {
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  height: 2px;
  background: #34d399;
  transform: scaleX(0);
  transform-origin: left center;
  animation: ayrix-intro-fill 1800ms cubic-bezier(.3, .1, .2, 1) forwards;
}

.intro-seam {
  position: absolute;
  top: 50%;
  right: 0;
  left: 0;
  height: 2px;
  margin-top: -1px;
  opacity: 0;
  background: linear-gradient(90deg, transparent, #34d399, transparent);
  transform: scaleX(0);
}

.intro.leave .intro-seam { animation: ayrix-intro-seam 650ms ease-out forwards; }

.intro-skip {
  position: absolute;
  z-index: 2;
  right: max(1rem, env(safe-area-inset-right));
  bottom: max(1.25rem, env(safe-area-inset-bottom));
  padding: .65rem 1rem;
  border: 1px solid #1e3249;
  border-radius: 999px;
  color: #93a7bd;
  background: rgba(12, 26, 44, .9);
  font: 500 .8rem/1 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  cursor: pointer;
  transition: color 160ms, border-color 160ms, opacity 150ms;
}

.intro-skip:hover, .intro-skip:focus-visible { border-color: #34d399; color: #e7eef6; }
.intro-skip:focus-visible { outline: 2px solid #34d399; outline-offset: 3px; }
.intro.leave .intro-skip { opacity: 0; pointer-events: none; }

@keyframes ayrix-intro-draw { 0% { stroke-dashoffset: 1; opacity: 0; } 1% { opacity: 1; } 100% { stroke-dashoffset: 0; opacity: 1; } }
@keyframes ayrix-intro-rise { to { transform: none; } }
@keyframes ayrix-intro-fade { to { opacity: 1; } }
@keyframes ayrix-intro-fadeup { to { opacity: 1; transform: none; } }
@keyframes ayrix-intro-fill { to { transform: scaleX(1); } }
@keyframes ayrix-intro-pulse { 0% { opacity: 0; transform: scale(.6); } 40% { opacity: 1; } 100% { opacity: .55; transform: scale(1); } }
@keyframes ayrix-intro-blink { 0% { opacity: 1; } 50% { opacity: 0; } }
@keyframes ayrix-intro-seam { 0% { opacity: 1; transform: scaleX(0); } 35% { opacity: 1; transform: scaleX(1); } 100% { opacity: 0; transform: scaleX(1); } }

@media (prefers-reduced-motion: reduce) {
  .intro { display: none !important; }
  html.intro-on { overflow: auto; }
  html.intro-on:not(.intro-reveal) body > :not(.intro) { opacity: 1; transform: none; }
  body > :not(.intro) { transition: none; }
}
