html[data-theme=lfl-dark]{--background-color: #000000;--primary-color: #ffffff;--secondary-color: #dddddd;--accent-color: #00eb5a;--on-accent-color: #000000;--overlay-color: rgba(0, 0, 0, .7);--syntax-bg: var(--background-color);--syntax-fg: var(--primary-color);--syntax-comment: #6e6e6e;--syntax-line-number: #6e6e6e;--syntax-error: #fe6f4b;--syntax-error-bg: #060100;--syntax-function: #8b80ff;--syntax-highlight-bg: #040404;--syntax-keyword: #00eb5a;--syntax-name: var(--primary-color);--syntax-number: #00d2d1;--syntax-operator: #00d2d1;--syntax-string: #b84bfe;--syntax-string-escape: #00d2d1;--syntax-type: #00aa8d;--logo-dark-display: block;--logo-light-display: none}html[data-theme=lfl-light]{--background-color: #fcfcfc;--primary-color: #000000;--secondary-color: #000000;--accent-color: #00eb5a;--on-accent-color: #000000;--overlay-color: rgba(0, 0, 0, .7);--syntax-bg: var(--background-color);--syntax-fg: var(--primary-color);--syntax-comment: #474747;--syntax-line-number: #474747;--syntax-error: #fe3e0e;--syntax-error-bg: #ffe9e4;--syntax-function: #002dce;--syntax-highlight-bg: #d5d5d5;--syntax-keyword: #00aa8d;--syntax-name: var(--primary-color);--syntax-number: #008b8b;--syntax-operator: #002dce;--syntax-string: #b84bfe;--syntax-string-escape: #002dce;--syntax-type: #006b5b;--logo-dark-display: none;--logo-light-display: block}:root{--font-sans: "Stack Sans Text", sans-serif;--font-headline: "Stack Sans Headline", sans-serif;--font-mono: "Inconsolata", monospace;--logo-dark-display: none;--logo-light-display: none;--syntax-code-bg: color-mix(in oklch, var(--primary-color) 5%, transparent);--syntax-table-header-bg: color-mix( in oklch, var(--primary-color) 8%, transparent )}*{box-sizing:border-box;margin:0;padding:0}body{display:flex;flex-direction:column;transition:background-color .3s ease,color .3s ease,border-color .3s ease;background-color:var(--background-color);padding:1rem;min-width:320px;min-height:100vh;color:var(--primary-color);line-height:1.5;font-family:var(--font-sans)}@media(max-width:768px){body{padding:.75rem}}a{color:var(--primary-color);text-decoration:none}h1,h2,h3{font-weight:400;font-family:var(--font-headline)}.site-wrapper{display:flex;position:relative;flex:1;flex-direction:column;padding-bottom:1.75rem}.site-header{display:flex;justify-content:flex-start;align-items:center;gap:2rem;view-transition-name:terminal-header;transition:background-color .3s ease,color .3s ease,border-color .3s ease;margin-bottom:1.5rem}@media(max-width:875px){.site-header{display:grid;grid-template-columns:1fr auto;grid-template-areas:"logo logo" "nav contact";gap:1rem}}@media(max-width:624px){.site-header{grid-template-areas:"logo contact" "nav nav"}}.logo-container{display:flex;align-items:center;gap:.5rem;font-size:2rem;font-family:var(--font-headline)}@media(max-width:875px){.logo-container{grid-area:logo;font-size:1.5rem}.logo-container img{width:auto;height:32px}}.logo-dark{display:var(--logo-dark-display)}.logo-light{display:var(--logo-light-display)}.nav-links{display:flex;gap:1.5rem;margin-top:.2rem;font-size:.9rem;font-family:var(--font-mono)}@media(max-width:875px){.nav-links{grid-area:nav;justify-content:flex-start;gap:.75rem;font-size:.85rem}}@media(max-width:480px){.nav-links{justify-content:flex-start;gap:.5rem}}.nav-links a{transition:background-color .3s ease,color .3s ease,border-color .3s ease;border-radius:4px;padding:.25rem .5rem;text-decoration:none}.nav-links a.active{background-color:var(--accent-color);color:var(--on-accent-color)}.keyboard-shortcut{display:inline}@media(max-width:480px){.keyboard-shortcut{display:none}}.contact-btn{display:flex;align-items:center;gap:.5rem;transition:background-color .3s ease,color .3s ease,border-color .3s ease;cursor:pointer;margin-top:.1rem;margin-left:auto;border:none;border-radius:20px;background:var(--primary-color);padding:.5rem 1.25rem;color:var(--background-color);font-weight:600;font-size:.85rem;font-family:var(--font-mono)}@media(max-width:768px){.contact-btn{grid-area:contact;margin-left:0;padding:.4rem 1rem;font-size:.8rem}}@media(max-width:480px){.contact-btn{justify-self:start;font-size:.7rem}}.circle-icon{display:inline-flex;justify-content:center;align-items:center;font-size:1.5rem;line-height:1;font-family:monospace}.site-footer-wrapper{position:fixed;right:1rem;bottom:0;left:1rem;align-items:center;z-index:999;transition:background-color .3s ease,color .3s ease,border-color .3s ease;background-color:var(--background-color);min-width:296px}@media(max-width:768px){.site-footer-wrapper{right:.75rem;left:.75rem}}.site-footer{display:flex;position:relative;justify-content:space-between;view-transition-name:terminal-footer;transition:background-color .3s ease,color .3s ease,border-color .3s ease;margin-top:.5rem;margin-bottom:1rem;padding:.3rem 1rem;min-width:296px;color:var(--primary-color);font-size:.75rem;font-family:var(--font-mono)}@media(max-width:768px){.site-footer{gap:.5rem}}@media(max-width:360px){.site-footer{padding:.3rem .5rem}}.site-footer:before,.site-footer:after{position:absolute;top:0;bottom:0;border:1px solid var(--secondary-color);width:.3rem;pointer-events:none;content:""}.site-footer:before{left:0;border-right:none}.site-footer:after{right:0;border-left:none}.footer-left{display:flex;gap:1rem}@media(max-width:768px){.footer-left{gap:.75rem}}@media(max-width:360px){.footer-left{gap:.5rem}}.footer-right{display:flex;gap:1rem}@media(max-width:768px){.footer-right{gap:.75rem}}@media(max-width:360px){.footer-right{gap:.5rem}}.console-stats{display:flex;gap:1rem}@media(max-width:768px){.console-stats{flex-wrap:wrap;gap:.75rem}}.legal{display:flex;gap:1rem}.legal:before{border-left:1px solid var(--secondary-color);pointer-events:none;content:""}@media(max-width:768px){.legal{gap:.75rem}}@media(max-width:360px){.legal{gap:.5rem}}#theme-toggle,#help-toggle{cursor:pointer;border:none;background:none;padding:0;color:inherit;font:inherit;font-family:var(--font-mono)}.hero-title{margin-bottom:1rem;font-size:clamp(2rem,6vw,6rem);line-height:1.1}.main-content{display:flex;flex:1;flex-direction:column;min-height:0}.grid-container{display:grid;grid-template-columns:2fr 1fr;flex:1;gap:1rem;margin-bottom:1rem}@media(max-width:1024px){.grid-container{grid-template-columns:1fr}}.grid-container.work-grid{flex:0 0 auto;align-start:start}.grid-3-col{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}@media(max-width:1024px){.grid-3-col{grid-template-columns:repeat(2,1fr)}}@media(max-width:480px){.grid-3-col{grid-template-columns:1fr}}@media(min-width:1295px){.routines-layout .grid-3-col{grid-template-columns:repeat(3,1fr)}}.hero-section{display:flex;flex:1;flex-direction:column;justify-content:center;transition:background-color .3s ease,color .3s ease,border-color .3s ease;margin-bottom:1rem;border:1px solid var(--primary-color);border-radius:12px;padding:3rem;height:100%;min-height:60vh}@media(max-width:1024px){.hero-section{padding:2.5rem;min-height:50vh}}@media(max-width:768px){.hero-section{padding:1.75rem;min-height:auto}}@media(max-width:480px){.hero-section{padding:1.25rem}}.hero-section p{font-size:1.5rem}@media(max-width:768px){.hero-section p{font-size:1.125rem}}@media(max-width:480px){.hero-section p{font-size:1rem}}.card{display:flex;flex-direction:column;transition:background-color .3s ease,color .3s ease,border-color .3s ease;border:1px solid var(--primary-color);border-radius:12px;padding:1.5rem 2rem;height:100%;overflow-wrap:break-word}.card.is-selected,.hero-section.is-selected{box-shadow:inset 0 0 0 2px var(--secondary-color);scroll-margin-bottom:4.5rem}.about-hero{grid-template-columns:2fr .55fr}@media(max-width:1024px){.about-hero{grid-template-columns:2fr .7fr}}@media(max-width:768px){.about-hero{grid-template-columns:2fr 1fr}}@media(max-width:624px){.about-hero{grid-template-rows:1.5fr 1fr;grid-template-columns:1fr}}@media(max-width:480px){.about-hero{grid-template-rows:.75fr 1fr}}.about-hero p{margin:1rem 0}@media(max-width:624px){.about-hero p{margin:.6rem 0}}.work-hero{grid-template-columns:1.5fr 2fr}@media(max-width:768px){.work-hero{grid-template-columns:1fr}}.work-hero .card:first-of-type{padding:4rem 2rem}.work-hero h1,.work-hero p{margin-bottom:1rem}.work-hero p:last-of-type{margin-bottom:0}.logo-garden{justify-content:center;padding:2rem}.logo-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(100px,1fr));align-items:center;gap:4rem;margin-bottom:.5rem}.logo-garden-image{justify-self:center;filter:grayscale(100%);width:auto;max-width:100%;height:auto;max-height:22px;object-fit:contain}.vertical-center{justify-content:center}@media(max-width:768px){.card{padding:1.5rem}}@media(max-width:480px){.card{padding:1.5rem 1.4rem}}.card h3{margin-top:1.5rem;margin-bottom:1rem;font-size:1.5rem}.card h3:first-of-type{margin-top:0}@media(max-width:768px){.card h3{font-size:1.25rem}}.card p{color:var(--secondary-color);font-size:.85rem;font-family:var(--font-mono)}.card-mono-label{margin-bottom:1.5rem;color:var(--secondary-color);font-size:.75rem;font-family:var(--font-mono);text-transform:uppercase}@media(max-width:1024px){.work-grid{grid-template-columns:1fr}}@media(max-width:768px){.footer-stat-hidden-mobile{display:none}}@media(min-width:624px)and (max-width:1024px){.work-grid .card{display:grid;grid-template-columns:2fr 3fr;grid-template-areas:"label label" "image body";align-items:start;gap:1rem 1.5rem;padding:1.5rem}.work-grid .card-mono-label{grid-area:label;margin-bottom:0}.work-grid .image-placeholder{grid-area:image;margin-bottom:0;height:100%;min-height:150px}.work-grid .card-body h3{margin-bottom:.25rem;font-size:1rem}.work-grid .card-body p{margin-bottom:.75rem}}@media(min-width:768px)and (max-width:1024px){.work-grid .card{grid-template-columns:1fr 2fr}}.routines-hero{padding:4rem 2rem}@media(max-width:768px){.routines-hero{padding:2rem}}.routine-intro p:first-of-type{margin-top:0;margin-bottom:1.5rem;font-size:1.1rem}.routine-intro p:last-of-type{color:var(--secondary-color)}.routine-card-header{display:flex;align-items:center;gap:1rem;margin-bottom:.5rem}.routine-card-header .card-mono-label{margin-bottom:0}.routine-icon{width:auto;height:4.1rem;object-fit:contain}.help-modal{display:flex;position:fixed;justify-content:center;align-items:center;z-index:1000;inset:0;background-color:var(--overlay-color);padding:1rem}.help-modal[hidden]{display:none}.help-modal-content{column-gap:2rem;columns:2;column-fill:balance;border:1px solid var(--primary-color);background-color:var(--background-color);padding:2rem;width:100%;max-width:44rem;max-height:90vh;overflow-y:auto;color:var(--primary-color);font-family:var(--font-mono)}@media(max-width:500px){.help-modal-content{columns:1}}.help-modal-title{column-span:all;margin-bottom:1.5rem;font-size:1.25rem;font-family:var(--font-mono);text-align:center}.help-row{display:flex;justify-content:space-between;gap:1rem;break-inside:avoid;border-bottom:1px solid var(--secondary-color);padding:.5rem 0}.help-row:last-child{border-bottom:none}.help-keys{display:flex;gap:.35rem;white-space:nowrap}.help-action{color:var(--secondary-color);text-align:right}.help-modal kbd{display:inline-block;border:1px solid var(--primary-color);border-radius:4px;padding:.1rem .4rem;font-size:.85em;font-family:var(--font-mono)}.image-placeholder{transition:background-color .3s ease,color .3s ease,border-color .3s ease;margin-bottom:2rem;border-radius:4px;background:gray;height:200px}.image-placeholder img{border-radius:4px;width:100%;height:100%;object-fit:cover}@keyframes terminal-fade-out{0%{transform:translateY(0);opacity:1}to{transform:translateY(-5px);opacity:0}}@keyframes terminal-fade-in{0%{transform:translateY(5px);opacity:0}to{transform:translateY(0);opacity:1}}::view-transition-old(terminal-content){animation:terminal-fade-out .15s cubic-bezier(.4,0,1,1) both}::view-transition-new(terminal-content){animation:terminal-fade-in .15s cubic-bezier(0,0,.2,1) both}.contact-hero{grid-template-columns:1.25fr 1fr}@media(max-width:1024px){.contact-hero{grid-template-columns:1fr}}.contact-hero>.card{min-width:0}.contact-intro{margin-top:1rem;color:var(--secondary-color);font-size:.9rem;font-family:var(--font-mono)}.contact-form-card{display:flex;flex-direction:column}@media(max-width:360px){.contact-form-card{padding:.75rem}}.contact-form{display:flex;position:relative;flex:1;flex-direction:column;gap:1rem;margin-top:1rem}.curl-command{font-size:.85rem;line-height:1.8;font-family:var(--font-mono)}@media(max-width:768px){.curl-command{font-size:.75rem;line-height:1.6}}@media(max-width:360px){.curl-command{font-size:.7rem}}.curl-line{white-space:pre-wrap;word-break:break-word}.curl-field{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:baseline;gap:.25rem .5rem;padding-left:3rem}.curl-field--wide{grid-template-columns:1fr auto}.curl-field--wide .curl-field-label,.curl-field--wide .curl-field-close{grid-column:1}.curl-field--wide .curl-field-input{grid-column:1 / -1;padding-right:1rem;padding-left:1rem}@media(max-width:768px){.curl-field--wide .curl-field-input{grid-column:auto;padding-right:0}}.curl-field-label{white-space:nowrap}@media(max-width:768px){.curl-field-label{white-space:normal}}.curl-field-input{min-width:0}@media(max-width:768px){.curl-field-input{padding-left:1rem}}.curl-field-close{white-space:nowrap}.curl-kw{color:var(--accent-color)}.curl-url{color:var(--secondary-color);text-decoration-color:var(--secondary-color)}.curl-string{color:var(--accent-color)}.curl-key{color:var(--secondary-color)}.curl-val{color:var(--primary-color)}.curl-input,.curl-textarea{display:inline-block;vertical-align:baseline;border:none;border-bottom:1px solid var(--primary-color);background:transparent;padding:.15rem .25rem;color:var(--primary-color);font-size:.85rem;font-family:var(--font-mono)}@media(max-width:768px){.curl-input,.curl-textarea{width:100%}}.curl-input::placeholder,.curl-textarea::placeholder{opacity:.6;color:var(--secondary-color)}.curl-input:focus,.curl-textarea:focus{outline:none;border-bottom-color:var(--accent-color);background-color:#00eb5a14}.curl-input{width:100%}.curl-textarea{vertical-align:top;width:100%;min-height:5rem;resize:vertical}@media(max-width:768px){.curl-textarea{min-height:4rem}}@media(max-width:768px){.curl-field,.curl-field--wide{grid-template-columns:1fr;gap:.25rem;padding-left:2.5rem}}.form-actions{display:flex;justify-content:flex-end;margin-top:auto}.form-status{min-height:1.5rem;color:var(--secondary-color);font-size:.85rem;font-family:var(--font-mono)}.form-status.is-success{color:var(--accent-color)}.form-status.is-error{color:#ff6b6b}.blog-hero{grid-template-columns:1.5fr 1fr;flex:none;margin-bottom:1rem}@media(max-width:1024px){.blog-hero{grid-template-columns:2fr}}.blog-hero h1{font-size:2.5rem}.blog-intro{color:var(--secondary-color);font-size:.9rem;font-family:var(--font-mono)}.blog-intro p{margin-bottom:.75rem}.blog-intro p:last-child{margin-bottom:0}.blog-grid{flex:0 0 auto;align-items:start}.blog-card{gap:.5rem}.blog-card .blog-list-title{font-size:1.4rem}.blog-meta{display:flex;align-items:center;gap:1rem;color:var(--secondary-color);font-size:.8rem;font-family:var(--font-mono)}.blog-meta-separator{color:var(--accent-color)}.blog-list-title{font-size:1.75rem;line-height:1.2}.blog-list-title a{color:var(--primary-color)}.blog-list-title a:hover{color:var(--accent-color)}.blog-tags{display:flex;flex-wrap:wrap;gap:.4rem}.blog-tag{border:1px solid var(--secondary-color);border-radius:4px;padding:.15rem .4rem;color:var(--secondary-color);font-size:.7rem;font-family:var(--font-mono);text-transform:uppercase}.blog-summary{margin-top:.25rem;margin-bottom:.5rem;color:var(--secondary-color);font-size:.9rem;line-height:1.6;font-family:var(--font-mono)}.blog-read-more{margin-top:auto;color:var(--accent-color);font-size:.85rem;font-family:var(--font-mono)}.blog-read-more:hover{text-decoration:underline}.blog-article{display:flex;flex:1;flex-direction:column;align-self:center;gap:2rem;margin-top:1rem;margin-bottom:3rem;width:100%;max-width:46rem}.blog-article-header{display:flex;flex-direction:column;gap:.75rem}.blog-article-title{font-size:clamp(2rem,5vw,3.5rem);line-height:1.1}.blog-article-content{font-size:.9rem;line-height:1.7}.blog-article-content h2,.blog-article-content h3,.blog-article-content h4,.blog-article-content h5,.blog-article-content h6{margin-bottom:1rem;font-weight:600;line-height:1.2}.blog-article-content h2{font-size:2rem}.blog-article-content h3{font-weight:500;font-size:1.5rem}.blog-article-content h4{font-size:1.15rem}.blog-article-content h5,.blog-article-content h6{font-size:1rem;font-family:var(--font-mono)}.blog-article-content p{margin-bottom:1.25rem}.blog-article-content p:last-child{margin-bottom:0}.blog-article-content a{color:var(--accent-color);text-decoration:underline;text-decoration-color:var(--accent-color)}.blog-article-content a:hover{text-decoration:none}.blog-article-content strong{color:var(--primary-color);font-weight:600}.blog-article-content em{font-style:italic}.blog-article-content del{opacity:.7;text-decoration:line-through}.blog-article-content code{border-radius:4px;background-color:var(--syntax-code-bg);padding:.15rem .35rem;color:var(--accent-color);font-size:.9em;font-family:var(--font-mono)}.blog-article-content pre{margin-bottom:1.5rem;border:1px solid var(--secondary-color);border-radius:8px;background-color:var(--syntax-code-bg);padding:1rem;overflow-x:auto}.blog-article-content pre code{background-color:transparent;padding:0;font-size:.85rem;line-height:1.5}.blog-article-content ul,.blog-article-content ol{margin-bottom:1.25rem;padding-left:1.5rem}.blog-article-content li{margin-bottom:.4rem}.blog-article-content li>ul,.blog-article-content li>ol{margin-top:.4rem;margin-bottom:.4rem}.blog-article-content blockquote{margin-bottom:1.25rem;border-left:3px solid var(--accent-color);padding-left:1rem;color:var(--secondary-color);font-style:italic}.blog-article-content blockquote p{margin-bottom:.75rem}.blog-article-content blockquote p:last-child{margin-bottom:0}.blog-article-content hr{margin:2rem 0;border:none;border-top:1px solid var(--secondary-color)}.blog-article-content img{display:block;border-radius:8px;max-width:100%;height:auto}.blog-article-content table{display:block;margin-bottom:1.5rem;border-collapse:collapse;width:100%;max-width:100%;overflow-x:auto}.blog-article-content th,.blog-article-content td{border:1px solid var(--secondary-color);padding:.6rem .8rem;text-align:left}.blog-article-content th{background-color:var(--syntax-table-header-bg);font-weight:600}.blog-article-content sup{margin-left:.1rem;color:var(--accent-color);font-size:.75rem}.blog-article-content .footnote-backref{margin-left:.25rem;text-decoration:none}.blog-article-content .footnotes{margin-top:2rem;border-top:1px solid var(--secondary-color);padding-top:1rem;font-size:.85rem;font-family:var(--font-mono)}.blog-article-content .footnotes ol{padding-left:1.25rem}.blog-article-content .footnotes p{margin-bottom:.5rem}.blog-article-content dl{margin-bottom:1.25rem}.blog-article-content dt{margin-top:.75rem;font-weight:600}.blog-article-content dd{margin-left:1.25rem;color:var(--secondary-color)}.bg,.chroma{background-color:var(--syntax-bg);color:var(--syntax-fg);-webkit-text-size-adjust:none}.chroma .p{color:var(--syntax-fg)}.chroma .bp,.chroma .n,.chroma .ni,.chroma .nl,.chroma .nn,.chroma .nv,.chroma .py,.chroma .vc,.chroma .vg,.chroma .vi,.chroma .vm{color:var(--syntax-name)}.chroma .c,.chroma .c1,.chroma .ch,.chroma .cm,.chroma .cp,.chroma .cpf,.chroma .cs,.chroma .gu{color:var(--syntax-comment)}.chroma .dl,.chroma .ld,.chroma .s,.chroma .s1,.chroma .s2,.chroma .sa,.chroma .sb,.chroma .sc,.chroma .sd,.chroma .sh,.chroma .si,.chroma .sr,.chroma .ss,.chroma .sx{color:var(--syntax-string)}.chroma .err{background-color:var(--syntax-error-bg);color:var(--syntax-error)}.chroma .fm,.chroma .gi,.chroma .na,.chroma .nd,.chroma .ne,.chroma .nf,.chroma .nx{color:var(--syntax-function)}.chroma .gd,.chroma .kn,.chroma .nt,.chroma .o,.chroma .ow{color:var(--syntax-operator)}.chroma .ge{font-style:italic}.chroma .gs{font-weight:700}.chroma .hl{background-color:var(--syntax-highlight-bg)}.chroma .il,.chroma .l,.chroma .m,.chroma .mb,.chroma .mf,.chroma .mh,.chroma .mi,.chroma .mo{color:var(--syntax-number)}.chroma .k,.chroma .kc,.chroma .kd,.chroma .kp,.chroma .kr,.chroma .no{color:var(--syntax-keyword)}.chroma .kt,.chroma .nc,.chroma .nb{color:var(--syntax-type)}.chroma .line{display:flex}.chroma .ln,.chroma .lnt{color:var(--syntax-line-number)}.chroma .lntable{margin:0;border:0;border-spacing:0;padding:0}.chroma .lntd{vertical-align:top;margin:0;border:0;padding:0}.chroma .se{color:var(--syntax-string-escape)}.chroma .lnlinks{outline:none;color:inherit;text-decoration:none}
