#article-content{letter-spacing:.03em;word-spacing:.05em;color:var(--color-base-content);overflow-wrap:break-word;word-break:break-word;text-align:justify;max-width:100%;text-justify:inter-ideograph;hanging-punctuation:allow-end;--art-radius:1rem;--art-radius-sm:.5rem;--art-radius-lg:1.25rem;--art-shadow-sm:0 2px 8px -2px color-mix(in srgb, var(--color-base-content) 6%, transparent);--art-shadow:0 4px 20px -4px color-mix(in srgb, var(--color-base-content) 10%, transparent);--art-shadow-lg:0 8px 30px -6px color-mix(in srgb, var(--color-base-content) 12%, transparent);--art-shadow-hover:0 12px 40px -8px color-mix(in srgb, var(--color-base-content) 15%, transparent);--art-border:1px solid color-mix(in srgb, var(--color-base-content) 6%, transparent);--art-transition:all .25s cubic-bezier(.4, 0, .2, 1);--art-accent-subtle:color-mix(in srgb, var(--color-primary) 8%, transparent);--art-accent-light:color-mix(in srgb, var(--color-primary) 20%, transparent);--art-accent-medium:color-mix(in srgb, var(--color-primary) 40%, transparent);--art-gap-xs:.5em;--art-gap-sm:.75em;--art-gap-md:1.25em;--art-gap-lg:1.75em;--art-gap-xl:2.5em;min-width:0;font-size:1.0625rem;line-height:1.85}#article-content *{max-width:100%}#article-content h1,#article-content h2,#article-content h3,#article-content h4,#article-content h5,#article-content h6{width:fit-content;max-width:100%;margin-top:var(--art-gap-xl);margin-bottom:var(--art-gap-md);letter-spacing:.01em;color:var(--color-base-content);text-align:left;font-weight:700;line-height:1.4;transition:all .3s;display:block;position:relative}#article-content h1+h2,#article-content h2+h3,#article-content h3+h4,#article-content h4+h5,#article-content h5+h6{margin-top:var(--art-gap-lg)}#article-content h1+p,#article-content h2+p,#article-content h3+p{margin-top:0}#article-content h1{background:linear-gradient(180deg, transparent 40%, color-mix(in srgb, var(--color-primary) 25%, transparent) 45%, color-mix(in srgb, var(--color-primary) 40%, transparent) 55%, color-mix(in srgb, var(--color-primary) 35%, transparent) 85%, transparent 95%);border-radius:4px 12px 4px 8px;margin-top:0;margin-bottom:1.5em;padding:.15em .4em .15em .35em;font-size:1.875rem;font-weight:800}#article-content h2{background:linear-gradient(180deg, transparent 45%, color-mix(in srgb, var(--color-secondary) 22%, transparent) 50%, color-mix(in srgb, var(--color-secondary) 38%, transparent) 60%, color-mix(in srgb, var(--color-secondary) 30%, transparent) 88%, transparent 96%);border-radius:3px 10px 3px 6px;padding:.12em .35em .12em .3em;font-size:1.5rem;font-weight:700}#article-content h3{background:linear-gradient(180deg, transparent 50%, color-mix(in srgb, var(--color-accent) 18%, transparent) 55%, color-mix(in srgb, var(--color-accent) 35%, transparent) 65%, color-mix(in srgb, var(--color-accent) 25%, transparent) 90%, transparent 97%);border-radius:2px 8px 2px 5px;padding:.1em .3em .1em .25em;font-size:1.25rem;font-weight:700}#article-content h4{background:linear-gradient(180deg, transparent 55%, color-mix(in srgb, var(--color-info) 15%, transparent) 60%, color-mix(in srgb, var(--color-info) 30%, transparent) 70%, color-mix(in srgb, var(--color-info) 22%, transparent) 92%, transparent 98%);border-radius:2px 6px 2px 4px;padding:.08em .25em .08em .2em;font-size:1.125rem;font-weight:600}#article-content h5{background:linear-gradient(180deg, transparent 58%, color-mix(in srgb, var(--color-success) 12%, transparent) 62%, color-mix(in srgb, var(--color-success) 25%, transparent) 72%, color-mix(in srgb, var(--color-success) 18%, transparent) 94%, transparent 99%);border-radius:2px 5px 2px 3px;padding:.06em .2em .06em .15em;font-size:1rem;font-weight:600}#article-content h6{background:linear-gradient(180deg, transparent 60%, color-mix(in srgb, var(--color-neutral) 10%, transparent) 65%, color-mix(in srgb, var(--color-neutral) 22%, transparent) 75%, color-mix(in srgb, var(--color-neutral) 15%, transparent) 95%, transparent 100%);border-radius:1px 4px 1px 2px;padding:.05em .18em .05em .12em;font-size:.9375rem;font-weight:600}#article-content h1:hover,#article-content h2:hover,#article-content h3:hover{filter:brightness(.98);transform:translate(2px)}[data-color-scheme=dark] #article-content h1{background:linear-gradient(180deg, transparent 40%, color-mix(in srgb, var(--color-primary) 35%, transparent) 45%, color-mix(in srgb, var(--color-primary) 55%, transparent) 55%, color-mix(in srgb, var(--color-primary) 45%, transparent) 85%, transparent 95%)}[data-color-scheme=dark] #article-content h2{background:linear-gradient(180deg, transparent 45%, color-mix(in srgb, var(--color-secondary) 32%, transparent) 50%, color-mix(in srgb, var(--color-secondary) 52%, transparent) 60%, color-mix(in srgb, var(--color-secondary) 42%, transparent) 88%, transparent 96%)}[data-color-scheme=dark] #article-content h3{background:linear-gradient(180deg, transparent 50%, color-mix(in srgb, var(--color-accent) 28%, transparent) 55%, color-mix(in srgb, var(--color-accent) 48%, transparent) 65%, color-mix(in srgb, var(--color-accent) 38%, transparent) 90%, transparent 97%)}[data-color-scheme=dark] #article-content h4{background:linear-gradient(180deg, transparent 55%, color-mix(in srgb, var(--color-info) 25%, transparent) 60%, color-mix(in srgb, var(--color-info) 42%, transparent) 70%, color-mix(in srgb, var(--color-info) 32%, transparent) 92%, transparent 98%)}[data-color-scheme=dark] #article-content h5{background:linear-gradient(180deg, transparent 58%, color-mix(in srgb, var(--color-success) 22%, transparent) 62%, color-mix(in srgb, var(--color-success) 38%, transparent) 72%, color-mix(in srgb, var(--color-success) 28%, transparent) 94%, transparent 99%)}[data-color-scheme=dark] #article-content h6{background:linear-gradient(180deg, transparent 60%, color-mix(in srgb, var(--color-neutral) 18%, transparent) 65%, color-mix(in srgb, var(--color-neutral) 32%, transparent) 75%, color-mix(in srgb, var(--color-neutral) 24%, transparent) 95%, transparent 100%)}#article-content p{margin-top:0;margin-bottom:var(--art-gap-md)}#article-content p+p{margin-top:var(--art-gap-sm)}#article-content a{color:var(--color-primary);text-decoration:underline;-webkit-text-decoration-color:color-mix(in srgb, var(--color-primary) 40%, transparent);text-decoration-color:color-mix(in srgb, var(--color-primary) 40%, transparent);text-underline-offset:2px;transition:var(--art-transition);text-decoration-thickness:1px}#article-content a:hover{-webkit-text-decoration-color:var(--color-primary);text-decoration-color:var(--color-primary)}#article-content strong{color:var(--color-base-content);font-weight:700}#article-content em{font-style:italic}#article-content u{text-decoration:underline;-webkit-text-decoration-color:var(--color-primary);text-decoration-color:var(--color-primary);text-underline-offset:3px}#article-content del,#article-content s{opacity:.65;text-decoration:line-through}#article-content mark{background:linear-gradient(transparent 55%, color-mix(in srgb, var(--color-primary) 25%, transparent) 55%);color:inherit;border-radius:3px;padding:.05em .15em}#article-content sub,#article-content sup{vertical-align:baseline;font-size:.75em;line-height:0;position:relative}#article-content sub{bottom:-.25em}#article-content sup{top:-.5em}#article-content blockquote{margin:var(--art-gap-xl) 0;background:color-mix(in srgb, var(--color-primary) 5%, var(--color-base-100));border-radius:var(--art-radius);color:color-mix(in srgb, var(--color-base-content) 85%, transparent);transition:var(--art-transition);border:none;padding:1.5rem 2.5rem 1.5rem 3rem;font-size:1em;line-height:1.85;position:relative}#article-content blockquote:hover{background:color-mix(in srgb, var(--color-primary) 8%, var(--color-base-100))}#article-content blockquote:before{content:"\"";color:var(--color-primary);opacity:.35;pointer-events:none;-webkit-user-select:none;user-select:none;font-family:Georgia,Noto Serif SC,serif;font-size:3.5rem;font-style:normal;font-weight:400;line-height:1;position:absolute;top:.25rem;left:.75rem}#article-content blockquote:after{content:"\"";color:var(--color-primary);opacity:.35;pointer-events:none;-webkit-user-select:none;user-select:none;font-family:Georgia,Noto Serif SC,serif;font-size:3.5rem;font-style:normal;font-weight:400;line-height:1;position:absolute;bottom:-.5rem;right:.75rem}#article-content blockquote p{z-index:1;margin:.5em 0;position:relative}#article-content blockquote p:first-child{margin-top:0}#article-content blockquote p:last-child{margin-bottom:0}#article-content blockquote blockquote{background:color-mix(in srgb, var(--color-secondary) 8%, var(--color-base-100));border-left:3px solid color-mix(in srgb, var(--color-secondary) 50%, transparent);border-radius:var(--art-radius-sm);margin:1.25em 0;padding:1rem 1.5rem}#article-content blockquote blockquote:before,#article-content blockquote blockquote:after{display:none}#article-content blockquote blockquote p:first-child{margin-top:0}#article-content code{background:color-mix(in srgb, var(--color-primary) 10%, var(--color-base-100));border:1px solid color-mix(in srgb, var(--color-primary) 15%, transparent);color:var(--color-primary);white-space:nowrap;border-radius:.5em;padding:.15em .5em;font-family:JetBrains Mono,ui-monospace,SF Mono,Menlo,Monaco,monospace;font-size:.85em;font-weight:500}#article-content pre code{font-size:inherit;color:inherit;background:0 0;border:none;padding:0;font-weight:400}#article-content ul,#article-content ol{margin:var(--art-gap-md) 0;padding-left:1.75em;line-height:1.85}#article-content li{margin:var(--art-gap-sm) 0;padding-left:.35em}#article-content li:has(>p:only-child){margin:var(--art-gap-xs) 0}#article-content li>p{margin:0;display:inline}#article-content li>ul,#article-content li>ol{margin:var(--art-gap-xs) 0;padding-left:1.5em}#article-content ul>li::marker{color:var(--color-primary);font-size:.9em}#article-content ul ul>li::marker{color:var(--color-primary);font-size:.9em}#article-content ul ul ul>li::marker{color:var(--color-primary);font-size:.9em}#article-content ul ul ul ul>li::marker{color:var(--color-primary);font-size:.9em}#article-content ul ul ul ul ul>li::marker{color:var(--color-primary);font-size:.9em}#article-content ul ul ul ul ul ul>li::marker{color:var(--color-primary);font-size:.9em}#article-content ol>li::marker{color:var(--color-primary);font-weight:600}#article-content ol ol>li::marker{color:var(--color-primary);font-weight:600}#article-content ol ol ol>li::marker{color:var(--color-primary);font-weight:600}#article-content ol ol ol ol>li::marker{color:var(--color-primary);font-weight:600}#article-content ol ol ol ol ol>li::marker{color:var(--color-primary);font-weight:600}#article-content ol ol ol ol ol ol>li::marker{color:var(--color-primary);font-weight:600}#article-content ul{list-style-type:disc}#article-content ul ul{list-style-type:circle}#article-content ul ul ul{list-style-type:square}#article-content ul ul ul ul{list-style-type:"◆ "}#article-content ul ul ul ul ul{list-style-type:"▸ "}#article-content ul ul ul ul ul ul{list-style-type:"– "}#article-content ol{list-style-type:decimal}#article-content ol ol{list-style-type:lower-alpha}#article-content ol ol ol{list-style-type:lower-roman}#article-content ol ol ol ol{list-style-type:upper-alpha}#article-content ol ol ol ol ol{list-style-type:upper-roman}#article-content ol ol ol ol ol ol{list-style-type:decimal}#article-content ul[data-type=taskList]{margin:var(--art-gap-lg) 0;padding-left:0;list-style:none}#article-content li[data-type=taskItem]{transition:var(--art-transition);background:0 0;border:none;border-radius:0;align-items:flex-start;gap:0;margin:0;padding:.4em 0;display:flex}#article-content li[data-type=taskItem]>label{flex-shrink:0;justify-content:center;align-items:center;width:1.5em;height:1.5em;margin-top:.1em;margin-right:.75em;display:inline-flex}#article-content li[data-type=taskItem]>label>span{display:none}#article-content ul[data-type=taskList] input[type=checkbox]{appearance:none;border:2px solid var(--color-primary);cursor:pointer;width:1.25em;min-width:1.25em;height:1.25em;min-height:1.25em;transition:var(--art-transition);background:0 0;border-radius:6px;flex-shrink:0;margin:0;position:relative}#article-content ul[data-type=taskList] input[type=checkbox]:hover{border-color:var(--color-primary);background:var(--art-accent-subtle)}#article-content ul[data-type=taskList] input[type=checkbox]:checked{background:var(--color-primary);border-color:var(--color-primary)}#article-content ul[data-type=taskList] input[type=checkbox]:checked:after{content:"";border:solid var(--color-primary-content);border-width:0 2.5px 2.5px 0;width:5px;height:9px;position:absolute;top:1px;left:4px;transform:rotate(45deg)}#article-content li[data-type=taskItem]>div{flex:1;padding-top:.05em;line-height:1.7}#article-content li[data-type=taskItem]>div>p{margin:0;display:inline}#article-content li[data-type=taskItem][data-checked=true]>div{opacity:.55;color:color-mix(in srgb, var(--color-base-content) 60%, transparent);text-decoration:line-through}#article-content img{border-radius:var(--art-radius);max-width:100%;height:auto;margin:var(--art-gap-lg) auto;box-shadow:var(--art-shadow);transition:var(--art-transition);display:block}#article-content img:hover{box-shadow:var(--art-shadow-hover);transform:translateY(-2px)}#article-content figure{margin:var(--art-gap-xl) 0;box-shadow:none;background:0 0;border:none;padding:0}#article-content figure img{border-radius:var(--art-radius);margin:0 auto}#article-content figcaption{color:color-mix(in srgb, var(--color-base-content) 60%, transparent);text-align:center;margin-top:.75em;font-size:.875em;font-style:italic}#article-content table{width:100%;max-width:100%;margin:var(--art-gap-xl) 0;border-collapse:separate;border-spacing:0;background:var(--color-base-100);border:var(--art-border);border-radius:var(--art-radius);box-shadow:var(--art-shadow);font-size:.9375em;overflow:hidden}#article-content table th,#article-content table td{text-align:left;border-bottom:1px solid color-mix(in srgb, var(--color-base-content) 8%, transparent);vertical-align:middle;padding:.75rem 1rem}#article-content table thead{background:var(--art-accent-subtle)}#article-content table th{color:var(--color-base-content);white-space:nowrap;font-weight:600}#article-content table thead tr:first-child th:first-child{border-top-left-radius:var(--art-radius)}#article-content table thead tr:first-child th:last-child{border-top-right-radius:var(--art-radius)}#article-content table tbody tr{transition:background-color .2s}#article-content table tbody tr:hover{background:var(--art-accent-subtle)}#article-content table tbody tr:last-child td{border-bottom:none}#article-content table tbody tr:last-child td:first-child{border-bottom-left-radius:var(--art-radius)}#article-content table tbody tr:last-child td:last-child{border-bottom-right-radius:var(--art-radius)}#article-content table p{margin:0}@media (width<=768px){#article-content table{-webkit-overflow-scrolling:touch;display:block;overflow-x:auto}#article-content table th,#article-content table td{white-space:nowrap}}#article-content hr{margin:calc(var(--art-gap-xl) * 1.2) 0;background:linear-gradient(90deg, transparent, var(--art-accent-medium) 20%, var(--art-accent-medium) 80%, transparent);border:none;height:1px;position:relative}#article-content hr:after{content:"✦";background:var(--color-base-100);color:var(--art-accent-medium);padding:0 .75em;font-size:.875rem;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}#article-content kbd{color:var(--color-base-content);background:var(--color-base-200);border:1px solid var(--color-base-300);box-shadow:0 2px 0 var(--color-base-300);border-radius:4px;padding:.15em .5em;font-family:inherit;font-size:.85em}#article-content video{width:100%;max-width:100%;height:auto;margin:var(--art-gap-xl) auto;border-radius:var(--art-radius-lg);box-shadow:var(--art-shadow);display:block}#article-content audio{width:100%;margin:var(--art-gap-lg) auto;border-radius:var(--art-radius);background:var(--color-base-100);border:var(--art-border);padding:.5rem;display:block}#article-content iframe{width:100%;max-width:100%;margin:var(--art-gap-lg) auto;border-radius:var(--art-radius-lg);border:var(--art-border);background:var(--color-base-100);display:block}#article-content details{margin:var(--art-gap-lg) 0;background:var(--color-base-100);border:var(--art-border);border-radius:var(--art-radius);box-shadow:var(--art-shadow);overflow:hidden}#article-content summary{cursor:pointer;-webkit-user-select:none;user-select:none;background:0 0;padding:.875rem 1.25rem .875rem 2.5rem;font-weight:600;list-style:none;transition:background .2s;position:relative}#article-content summary::-webkit-details-marker{display:none}#article-content summary:before{content:"";border-left:6px solid var(--color-base-content);opacity:.5;border-top:4px solid #0000;border-bottom:4px solid #0000;width:0;height:0;transition:transform .2s;position:absolute;top:50%;left:1rem;transform:translateY(-50%)}#article-content details[open] summary:before{transform:translateY(-50%)rotate(90deg)}#article-content summary:hover{background:var(--art-accent-subtle)}#article-content details[open] summary{border-bottom:var(--art-border)}#article-content details>:not(summary){padding:1rem 1.25rem}#article-content .columns{margin:var(--art-gap-lg) 0;align-items:flex-start;gap:1.5rem;display:flex}#article-content .column{flex:1;min-width:0}#article-content .column>:first-child{margin-top:0}#article-content .column>:last-child{margin-bottom:0}#article-content dl{background:var(--color-base-100);border:var(--art-border);border-radius:var(--art-radius);box-shadow:var(--art-shadow);margin:1.5em 0;padding:1.25rem 1.5rem}#article-content dt{color:var(--color-base-content);margin-top:1em;font-weight:600}#article-content dt:first-child{margin-top:0}#article-content dd{color:color-mix(in srgb, var(--color-base-content) 75%, transparent);margin-top:.5em;margin-left:1.5em}#article-content small{color:color-mix(in srgb, var(--color-base-content) 75%, transparent);font-size:.875em}#article-content cite{color:color-mix(in srgb, var(--color-base-content) 80%, transparent);font-style:italic}#article-content abbr{cursor:help;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}#article-content var{color:var(--color-secondary);font-family:ui-monospace,monospace;font-style:normal;font-weight:600}#article-content samp{background:var(--art-accent-subtle);color:var(--color-secondary);border-radius:4px;padding:.2em .5em;font-family:ui-monospace,monospace;font-size:.875em}#article-content dfn{color:var(--color-primary);font-style:italic;font-weight:600}#article-content q{font-style:italic}#article-content q:before,#article-content q:after{content:"\""}#article-content address{margin:1em 0;font-style:normal;line-height:1.6}#article-content time{color:color-mix(in srgb, var(--color-base-content) 75%, transparent)}#article-content ruby{font-size:inherit}#article-content rt{color:color-mix(in srgb, var(--color-base-content) 65%, transparent);font-size:.6em}#article-content fieldset{background:var(--color-base-100);border:var(--art-border);border-radius:var(--art-radius);box-shadow:var(--art-shadow);margin:1.5em 0;padding:1.5rem}#article-content legend{color:var(--color-primary);background:var(--color-base-100);border-radius:4px;padding:.25rem .75rem;font-weight:600}#article-content progress{background:var(--color-base-300);border:none;border-radius:9999px;width:100%;height:.5rem;margin:1em 0;overflow:hidden}#article-content progress::-webkit-progress-bar{background:0 0}#article-content progress::-webkit-progress-value{background:var(--color-primary);border-radius:inherit}#article-content progress::-moz-progress-bar{background:var(--color-primary);border-radius:inherit}#article-content output{background:var(--art-accent-subtle);color:var(--color-primary);border-radius:4px;padding:.25rem .75rem;font-family:ui-monospace,monospace;font-weight:600;display:inline-block}#article-content .callout-note,#article-content .callout-tip,#article-content .callout-warning,#article-content .callout-danger,#article-content .callout-info{border-radius:var(--art-radius);box-shadow:var(--art-shadow);margin:1.5em 0;padding:1rem 1.25rem}#article-content .callout-note{background:color-mix(in srgb, var(--color-info) 8%, var(--color-base-100));border-left:4px solid var(--color-info)}#article-content .callout-tip{background:color-mix(in srgb, var(--color-success) 8%, var(--color-base-100));border-left:4px solid var(--color-success)}#article-content .callout-warning{background:color-mix(in srgb, var(--color-warning) 8%, var(--color-base-100));border-left:4px solid var(--color-warning)}#article-content .callout-danger{background:color-mix(in srgb, var(--color-error) 8%, var(--color-base-100));border-left:4px solid var(--color-error)}#article-content .callout-info{background:color-mix(in srgb, var(--color-accent) 8%, var(--color-base-100));border-left:4px solid var(--color-accent)}#article-content .footnote-ref,#article-content a[href^=\#fn],#article-content sup a{color:var(--color-primary);padding:0 .15em;font-weight:600;text-decoration:none}#article-content .footnotes,#article-content .footnote-list{background:var(--color-base-200);border-radius:var(--art-radius);color:color-mix(in srgb, var(--color-base-content) 80%, transparent);margin-top:3em;padding:1.25rem;font-size:.9em}#article-content .footnotes ol,#article-content .footnote-list ol{margin:.5em 0;padding-left:1.5em}#article-content .footnotes li,#article-content .footnote-list li{margin-top:.5em}halo-contact-form{--halo-contact-form-color-primary:var(--color-primary);--halo-contact-form-color-label:var(--color-base-content);--halo-contact-form-color-input:var(--color-base-content);--halo-contact-form-color-placeholder:color-mix(in srgb, var(--color-base-content) 50%, transparent);--halo-contact-form-color-help:color-mix(in srgb, var(--color-base-content) 60%, transparent);--halo-contact-form-color-border:var(--color-base-300);--halo-contact-form-color-danger:var(--color-error);--halo-contact-form-color-button:var(--color-primary-content);--halo-contact-form-bg-input:var(--color-base-100);--halo-contact-form-border-radius:.5rem;margin:1.5em 0;display:block}.post-like-button .heart-icon{transition:all .3s cubic-bezier(.4,0,.2,1)}.post-like-button.liked .heart-icon{animation:.6s heart-beat}@keyframes heart-beat{0%,to{transform:scale(1)}25%{transform:scale(1.3)}50%{transform:scale(1.1)}75%{transform:scale(1.2)}}.toc-container{scrollbar-width:thin;scrollbar-color:var(--color-base-300) transparent;max-height:min(70vh,600px);overflow:hidden auto}.toc-container::-webkit-scrollbar{width:4px}.toc-container::-webkit-scrollbar-track{background:0 0}.toc-container::-webkit-scrollbar-thumb{background:var(--color-base-300);border-radius:2px}.toc-list{margin:0;padding:0;list-style:none}.toc-item-wrapper{padding:0;padding-left:calc(var(--toc-indent-multiplier,0) * var(--toc-indent-unit));margin:0}.toc-link{padding:6px var(--toc-base-padding);min-height:var(--toc-link-height);color:color-mix(in srgb, var(--color-base-content) 60%, transparent);text-overflow:ellipsis;white-space:nowrap;border-radius:4px;align-items:center;margin:2px 0;font-size:.875rem;font-weight:400;line-height:1.4;text-decoration:none;transition:all .2s cubic-bezier(.4,0,.2,1);display:flex;overflow:hidden}.toc-link:hover{background:var(--toc-hover-bg);color:var(--color-base-content)}.toc-link.active{background:var(--toc-active-bg);color:var(--color-primary);font-weight:600}.toc-link[data-relative-level="0"]{font-size:.9rem;font-weight:500}.toc-item-wrapper .toc-list{border-left:1px solid color-mix(in srgb, var(--color-base-content) 10%, transparent);margin-left:8px;padding-left:0}.post-toc-overlay{z-index:60;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);opacity:0;visibility:hidden;background:#0006;transition:opacity .3s,visibility .3s;position:fixed;inset:0}.post-toc-overlay.open{opacity:1;visibility:visible}.post-toc-drawer{z-index:61;background:var(--color-base-100);flex-direction:column;width:85vw;max-width:360px;height:100%;transition:transform .3s;display:flex;position:fixed;top:0;right:0;transform:translate(100%);box-shadow:-4px 0 20px #00000026}.post-toc-drawer.open{transform:translate(0)}halo-comment{--halo-comment-bg:transparent!important;--halo-comment-card-bg:color-mix(in srgb, var(--color-base-100) 50%, transparent)!important;--halo-comment-border-color:color-mix(in srgb, var(--color-base-content) 10%, transparent)!important;--halo-comment-font-family:inherit!important;--halo-comment-text-color:var(--color-base-content)!important;--halo-comment-secondary-text-color:color-mix(in srgb, var(--color-base-content) 60%, transparent)!important;--halo-comment-input-bg:color-mix(in srgb, var(--color-base-200) 80%, transparent)!important;--halo-comment-input-border:1px solid color-mix(in srgb, var(--color-base-content) 10%, transparent)!important;--halo-comment-btn-primary-bg:var(--color-primary)!important;--halo-comment-btn-primary-color:#fff!important}halo-comment::part(container),halo-comment::part(comment-list),.halo-comment-widget{background:0 0!important}@media (width<=1023px){article.flex-1{width:100%}#article-content img,#article-content pre,#article-content table{max-width:100%;overflow-x:auto}}@media (width<=640px){#article-content{font-size:1rem;line-height:1.85}#article-content h1{font-size:1.625rem}#article-content h2{padding-left:.875em;font-size:1.375rem}#article-content h3{padding-left:.75em;font-size:1.125rem}#article-content blockquote{margin:1.25em 0;padding:1.25rem 2rem}#article-content blockquote:before{font-size:2.5rem;top:.15rem;left:.5rem}#article-content blockquote:after{font-size:2.5rem;bottom:-.25rem;right:.5rem}#article-content ul,#article-content ol{padding-left:1.25em}#article-content table th,#article-content table td{padding:.5rem .75rem}#article-content .columns{flex-direction:column;gap:1rem}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media print{#article-content{color:#000;font-size:12pt;line-height:1.6}#article-content a{color:#000;text-decoration:underline}#article-content img{box-shadow:none;page-break-inside:avoid}#article-content blockquote{background:0 0;border:1px solid #ccc}#article-content blockquote:before,#article-content blockquote:after{color:#999}}:root{--vote-text-title-color:var(--color-base-content);--vote-text-description-color:color-mix(in srgb, var(--color-base-content) 60%, transparent);--vote-text-selected-color:var(--color-primary);--vote-text-voted-color:var(--color-primary);--vote-text-error-color:var(--color-error);--vote-text-button-color:var(--color-primary-content);--vote-icon-color:color-mix(in srgb, var(--color-base-content) 50%, transparent);--vote-background-primary-color:var(--color-base-200);--vote-background-secondary-color:var(--color-base-100);--vote-background-tertiary-color:color-mix(in srgb, var(--color-primary) 10%, var(--color-base-100));--vote-background-selected-color:color-mix(in srgb, var(--color-primary) 18%, var(--color-base-100));--vote-background-voted-color:color-mix(in srgb, var(--color-primary) 18%, var(--color-base-100));--vote-background-progress-color:var(--color-base-300);--vote-background-progress-voted-color:color-mix(in srgb, var(--color-primary) 18%, var(--color-base-100));--vote-background-button-color:var(--color-primary);--vote-background-button-hover-color:color-mix(in srgb, var(--color-primary) 85%, var(--color-base-content));--vote-background-tag-color:color-mix(in srgb, var(--color-base-content) 10%, transparent);--vote-background-voted-tag-color:color-mix(in srgb, var(--color-primary) 15%, transparent);--vote-border-color:color-mix(in srgb, var(--color-base-content) 15%, transparent);--vote-border-selected-color:color-mix(in srgb, var(--color-primary) 18%, var(--color-base-100));--vote-border-voted-color:color-mix(in srgb, var(--color-primary) 18%, var(--color-base-100));--vote-shadow:0 2px 8px -2px color-mix(in srgb, var(--color-base-content) 12%, transparent), 0 0 0 1px color-mix(in srgb, var(--color-base-content) 6%, transparent);--vote-pk-option1-bg:var(--color-primary);--vote-pk-option2-bg:var(--color-secondary);--vote-pk-progress-text-color:var(--color-primary-content)}[data-color-scheme=dark]{--vote-border-color:color-mix(in srgb, var(--color-base-content) 20%, transparent);--vote-shadow:0 2px 12px -2px #0006, 0 0 0 1px color-mix(in srgb, var(--color-base-content) 10%, transparent)}.about-squareform{background:var(--color-base-100);color:var(--color-base-content);min-height:100vh;margin-top:-1.5rem;padding-top:1.5rem;overflow-x:hidden}@media (width>=768px){.about-squareform{margin-top:-2rem;padding-top:2rem}}.sf-container{max-width:1200px;margin:0 auto;padding:0 2rem}@media (width>=768px){.sf-container{padding:0 3rem}}.sf-hero{text-align:center;background-image:linear-gradient(to right, color-mix(in oklch, var(--color-base-content) 3%, transparent) 1px, transparent 1px), linear-gradient(to bottom, color-mix(in oklch, var(--color-base-content) 3%, transparent) 1px, transparent 1px);background-size:40px 40px;justify-content:center;align-items:center;min-height:90vh;padding:8rem 0;display:flex;position:relative}.sf-hero-content{max-width:900px;margin:0 auto}.sf-role-badge{border:1px solid color-mix(in oklch, var(--color-base-content) 20%, transparent);text-transform:uppercase;letter-spacing:.1em;color:var(--color-base-content);background:0 0;border-radius:2rem;align-items:center;gap:.5rem;margin-bottom:2rem;padding:.375rem 1rem;font-size:.75rem;font-weight:500;display:inline-flex}.sf-badge-dot{background:var(--color-success);border-radius:50%;width:6px;height:6px;animation:2s ease-in-out infinite pulse-dot}@keyframes pulse-dot{0%,to{opacity:1}50%{opacity:.4}}.sf-hero-title{letter-spacing:.15em;text-transform:uppercase;margin:0 0 2rem;font-family:ui-monospace,SF Mono,Menlo,Monaco,Courier New,monospace;font-size:clamp(3rem,12vw,8rem);font-weight:900;line-height:1}.sf-title-line{color:var(--color-base-content);display:block}.sf-hero-desc{color:color-mix(in oklch, var(--color-base-content) 70%, transparent);max-width:650px;margin:0 auto 2.5rem;font-size:1.125rem;line-height:1.8}.sf-hero-actions{justify-content:center;gap:1rem;margin-bottom:3rem;display:flex}.sf-hero-actions .btn{isolation:isolate;border:none;transition:all .4s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden}.sf-hero-actions .btn-neutral{background:var(--color-base-content);color:var(--color-base-100);box-shadow:0 4px 15px color-mix(in oklch, var(--color-base-content) 30%, transparent), inset 0 1px 0 oklch(100% 5.96046e-8 none/.15)}.sf-hero-actions .btn-neutral:before{content:"";opacity:0;background:linear-gradient(135deg,#0000 0%,oklch(100% 5.96046e-8 none/.1) 50%,#0000 100%);transition:opacity .4s;position:absolute;inset:0}.sf-hero-actions .btn-neutral:after{content:"";background:linear-gradient(90deg,#0000,oklch(100% 5.96046e-8 none/.25),#0000);width:100%;height:100%;transition:left .6s;position:absolute;top:0;left:-100%}.sf-hero-actions .btn-neutral:hover{box-shadow:0 8px 25px color-mix(in oklch, var(--color-base-content) 40%, transparent), 0 0 40px color-mix(in oklch, var(--color-primary) 20%, transparent), inset 0 1px 0 oklch(100% 5.96046e-8 none/.2);transform:translateY(-4px)scale(1.02)}.sf-hero-actions .btn-neutral:hover:before{opacity:1}.sf-hero-actions .btn-neutral:hover:after{left:100%}.sf-hero-actions .btn-outline{color:var(--color-base-content);border:2px solid color-mix(in oklch, var(--color-base-content) 30%, transparent);box-shadow:0 2px 10px color-mix(in oklch, var(--color-base-content) 10%, transparent);background:0 0}.sf-hero-actions .btn-outline:before{content:"";background:conic-gradient(from 0deg, var(--color-primary), var(--color-secondary), var(--color-accent), var(--color-primary));border-radius:inherit;opacity:0;z-index:-2;transition:opacity .4s;animation:3s linear infinite paused border-spin;position:absolute;inset:-2px}.sf-hero-actions .btn-outline:after{content:"";background:var(--color-base-100);border-radius:calc(var(--radius-field) * 2 - 2px);z-index:-1;transition:background .3s;position:absolute;inset:2px}@keyframes border-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.sf-hero-actions .btn-outline:hover{color:var(--color-base-content);box-shadow:0 8px 30px color-mix(in oklch, var(--color-primary) 30%, transparent), 0 0 20px color-mix(in oklch, var(--color-primary) 15%, transparent);border-color:#0000;transform:translateY(-4px)scale(1.02)}.sf-hero-actions .btn-outline:hover:before{opacity:1;animation-play-state:running}.sf-hero-actions .btn-outline:hover:after{background:color-mix(in oklch, var(--color-primary) 5%, var(--color-base-100))}.sf-hero-actions .btn span,.sf-hero-actions .btn{z-index:1}.sf-hero-actions .btn:active{transition-duration:.1s;transform:translateY(-2px)scale(.98)}.sf-hero-actions .btn:focus-visible{outline:2px solid var(--color-primary);outline-offset:4px}.sf-social-icons{justify-content:center;gap:.75rem;display:flex}.sf-social-icon{background:var(--color-base-content);width:36px;height:36px;color:var(--color-base-100);border-radius:0;justify-content:center;align-items:center;text-decoration:none;transition:all .3s;display:flex}.sf-social-icon:hover{background:var(--color-primary);transform:translateY(-3px)}.sf-social-icon svg{width:18px;height:18px}.sf-clients-section{background:var(--color-base-200);border-top:1px solid color-mix(in oklch, var(--color-base-content) 10%, transparent);border-bottom:1px solid color-mix(in oklch, var(--color-base-content) 10%, transparent);padding:3rem 0}.sf-clients-label{letter-spacing:.15em;text-transform:uppercase;color:color-mix(in oklch, var(--color-base-content) 60%, transparent);text-align:center;margin-bottom:2rem;font-size:.6875rem;font-weight:700}.sf-tech-marquee{overflow:hidden}.sf-marquee-track{will-change:transform;gap:4rem;width:max-content;animation:50s linear infinite marquee-scroll;display:flex}.sf-tech-marquee:hover .sf-marquee-track{animation-play-state:paused}@keyframes marquee-scroll{0%{transform:translate(0)}to{transform:translate(-33.333%)}}.sf-tech-tag{color:color-mix(in oklch, var(--color-base-content) 40%, transparent);white-space:nowrap;align-items:center;gap:.75rem;font-size:1.25rem;font-weight:600;transition:color .3s;display:inline-flex}.sf-tech-tag:hover{color:var(--color-base-content)}.sf-tech-icon{opacity:.7;justify-content:center;align-items:center;width:24px;height:24px;display:flex}.sf-tech-icon svg,.sf-tech-icon img{width:100%;height:100%}.sf-section{padding:6rem 0;position:relative}.sf-section-header{text-align:center;margin-bottom:4rem}.sf-section-tag{letter-spacing:.15em;text-transform:uppercase;color:color-mix(in oklch, var(--color-base-content) 60%, transparent);margin-bottom:1.25rem;font-size:.6875rem;font-weight:700;display:inline-block}.sf-section-title{color:var(--color-base-content);text-transform:uppercase;letter-spacing:.05em;max-width:850px;margin:0 auto;font-size:clamp(1.75rem,4vw,2.75rem);font-weight:800;line-height:1.3}.sf-stats-grid{grid-template-columns:repeat(2,1fr);gap:2rem;max-width:900px;margin:0 auto;display:grid}@media (width>=768px){.sf-stats-grid{grid-template-columns:repeat(4,1fr);gap:3rem}}.sf-stat-item{text-align:center;background:var(--color-base-100);border:1px solid color-mix(in oklch, var(--color-base-content) 12%, transparent);clip-path:polygon(12px 0,100% 0,100% calc(100% - 12px),calc(100% - 12px) 100%,0 100%,0 12px);box-shadow:0 2px 8px color-mix(in oklch, var(--color-base-content) 5%, transparent);padding:2.5rem 1.5rem;transition:all .4s cubic-bezier(.4,0,.2,1)}.sf-stat-item:hover{border-color:color-mix(in oklch, var(--color-primary) 30%, transparent);box-shadow:0 12px 30px color-mix(in oklch, var(--color-primary) 25%, transparent), 0 0 20px color-mix(in oklch, var(--color-primary) 15%, transparent);transform:translateY(-6px)}.sf-stat-number{color:var(--color-base-content);font-variant-numeric:tabular-nums;min-width:2ch;font-size:3.5rem;font-weight:900;line-height:1;display:inline-block}.sf-stat-plus{color:var(--color-base-content);font-size:2rem;font-weight:700}.sf-stat-label{color:color-mix(in oklch, var(--color-base-content) 60%, transparent);margin-top:.75rem;font-size:.875rem;display:block}.sf-stat-item>div:first-child{justify-content:center;align-items:baseline;min-height:4rem;display:flex}.sf-projects-grid{grid-template-columns:1fr;gap:2.5rem;display:grid}@media (width>=768px){.sf-projects-grid{grid-template-columns:repeat(2,1fr)}}.sf-project-card{background:var(--color-base-100);border:1px solid color-mix(in oklch, var(--color-base-content) 12%, transparent);clip-path:polygon(20px 0,100% 0,100% calc(100% - 20px),calc(100% - 20px) 100%,0 100%,0 20px);box-shadow:0 2px 8px color-mix(in oklch, var(--color-base-content) 5%, transparent);padding:2rem;transition:all .4s cubic-bezier(.4,0,.2,1);overflow:hidden}.sf-project-card:hover{border-color:color-mix(in oklch, var(--color-primary) 30%, transparent);box-shadow:0 16px 40px color-mix(in oklch, var(--color-primary) 25%, transparent), 0 0 20px color-mix(in oklch, var(--color-primary) 15%, transparent);transform:translateY(-8px)scale(1.02)}.sf-card-wide{grid-column:span 1}@media (width>=768px){.sf-card-wide{grid-column:span 2}}.sf-card-header{align-items:center;gap:.875rem;margin-bottom:1.5rem;display:flex}.sf-card-icon{font-size:1.25rem}.sf-card-title{color:var(--color-base-content);text-transform:uppercase;letter-spacing:.05em;flex:1;margin:0;font-size:1rem;font-weight:700}.sf-card-badge{color:color-mix(in oklch, var(--color-base-content) 70%, transparent);background:color-mix(in oklch, var(--color-base-content) 8%, transparent);border-radius:1rem;padding:.25rem .75rem;font-size:.75rem;font-weight:600}.sf-card-link{color:color-mix(in oklch, var(--color-base-content) 60%, transparent);align-items:center;gap:.375rem;font-size:.8125rem;text-decoration:none;transition:color .3s;display:flex}.sf-card-link:hover{color:var(--color-base-content)}.sf-heatmap-wrapper{scrollbar-width:thin;scrollbar-color:color-mix(in oklch, var(--color-base-content) 20%, transparent) transparent;-webkit-overflow-scrolling:touch;margin-bottom:1rem;padding-bottom:.5rem;overflow-x:auto}@media (width<=640px){.sf-heatmap-wrapper{margin-left:-.5rem;margin-right:-.5rem;padding-left:.5rem;padding-right:.5rem}.sf-heatmap-wrapper:after{content:"";background:linear-gradient(to right, transparent, var(--color-base-100));pointer-events:none;opacity:.8;width:40px;position:absolute;top:0;bottom:0;right:0}}.heatmap-canvas{min-width:700px;min-height:100px}@media (width>=768px){.heatmap-canvas{min-width:auto;min-height:120px}}.article-heatmap-svg{width:100%;min-width:680px;height:auto}@media (width>=768px){.article-heatmap-svg{min-width:auto}}.heatmap-label,.heatmap-month-label{fill:color-mix(in oklch, var(--color-base-content) 50%, transparent);font-size:9px}@media (width>=768px){.heatmap-label,.heatmap-month-label{font-size:10px}}.article-heatmap-cell{cursor:pointer;transition:all .2s}.article-heatmap-cell:hover{stroke:var(--color-base-content);stroke-width:2px;filter:brightness(.85)}@keyframes cell-pop{0%{opacity:0;transform:scale(0)}60%{transform:scale(1.15)}to{opacity:1;transform:scale(1)}}.heatmap-cell-animated{animation:.4s cubic-bezier(.4,0,.2,1) backwards cell-pop}.sf-heatmap-legend{color:color-mix(in oklch, var(--color-base-content) 50%, transparent);justify-content:flex-end;align-items:center;gap:.375rem;margin-top:.5rem;font-size:.625rem;display:flex}@media (width>=768px){.sf-heatmap-legend{gap:.5rem;font-size:.6875rem}}.sf-legend-dot{border-radius:2px;width:10px;height:10px}@media (width>=768px){.sf-legend-dot{width:11px;height:11px}}.sf-l0{background:color-mix(in oklch, var(--color-base-content) 10%, transparent)}.sf-l1{background:color-mix(in oklch, var(--color-primary) 30%, transparent)}.sf-l2{background:color-mix(in oklch, var(--color-primary) 60%, transparent)}.sf-l3{background:var(--color-primary)}.heatmap-tooltip{z-index:9999;background:var(--color-base-content);color:var(--color-base-100);pointer-events:none;box-shadow:0 8px 24px color-mix(in oklch, var(--color-base-content) 30%, transparent);border-radius:.5rem;max-width:260px;padding:.875rem 1.125rem;font-size:.8125rem;display:none;position:fixed}.heatmap-tooltip-date{margin-bottom:.5rem;font-weight:600}.heatmap-tooltip-count{opacity:.9;font-weight:600}.heatmap-tooltip-posts{border-top:1px solid color-mix(in oklch, var(--color-base-100) 20%, transparent);margin-top:.75rem;padding-top:.75rem}.heatmap-tooltip-post{opacity:.8;white-space:nowrap;text-overflow:ellipsis;margin-top:.375rem;font-size:.75rem;display:block;overflow:hidden}.sf-github-wrapper{min-height:100px}.sf-loading{min-height:100px;color:color-mix(in oklch, var(--color-base-content) 50%, transparent);justify-content:center;align-items:center;display:flex}.github-heatmap-img,.sf-github-stats img{border-radius:.5rem;width:100%}.sf-projects-grid>.sf-project-card:has(.sf-github-stats){flex-direction:column;min-height:220px;display:flex}.sf-projects-grid>.sf-project-card:has(.sf-github-stats) .sf-github-stats{flex:1;justify-content:center;align-items:center;min-height:150px;display:flex}.sf-projects-grid>.sf-project-card:has(.sf-github-stats) .sf-github-stats img{-o-object-fit:contain;object-fit:contain;width:auto;max-width:100%;max-height:160px}@media (width>=768px){.sf-projects-grid>.sf-project-card:has(.sf-github-stats){min-height:260px}.sf-projects-grid>.sf-project-card:has(.sf-github-stats) .sf-github-stats{min-height:180px}.sf-projects-grid>.sf-project-card:has(.sf-github-stats) .sf-github-stats img{max-height:180px}}.sf-toolkit-grid{grid-template-columns:repeat(2,1fr);gap:2rem;display:grid}@media (width>=768px){.sf-toolkit-grid{grid-template-columns:repeat(3,1fr)}}.sf-tool-card{background:var(--color-base-100);border:1px solid color-mix(in oklch, var(--color-base-content) 12%, transparent);clip-path:polygon(16px 0,100% 0,100% calc(100% - 16px),calc(100% - 16px) 100%,0 100%,0 16px);text-align:center;box-shadow:0 2px 8px color-mix(in oklch, var(--color-base-content) 5%, transparent);padding:2rem 1.5rem;transition:all .4s cubic-bezier(.4,0,.2,1)}.sf-tool-card:hover{border-color:color-mix(in oklch, var(--color-primary) 30%, transparent);box-shadow:0 12px 30px color-mix(in oklch, var(--color-primary) 25%, transparent), 0 0 20px color-mix(in oklch, var(--color-primary) 15%, transparent);transform:translateY(-6px)}.sf-tool-icon{width:48px;height:48px;color:var(--color-base-content);justify-content:center;align-items:center;margin:0 auto 1.25rem;display:flex}.sf-tool-icon svg{width:100%;height:100%}.sf-tool-name{color:var(--color-base-content);text-transform:uppercase;letter-spacing:.05em;margin:0 0 1.25rem;font-size:.9375rem;font-weight:700}.sf-tool-card .progress{background:var(--color-base-300);border-radius:.25rem;height:.375rem;margin-bottom:.75rem}.sf-tool-card .progress::-webkit-progress-value{background:var(--color-primary);border-radius:.25rem}.sf-tool-card .progress::-moz-progress-bar{background:var(--color-primary);border-radius:.25rem}.sf-tool-card .progress::-webkit-progress-bar{background:var(--color-base-300);border-radius:.25rem}.sf-tool-percent{color:color-mix(in oklch, var(--color-base-content) 70%, transparent);font-size:.8125rem;font-weight:600}.sf-location-card{background:var(--color-base-100);border:1px solid color-mix(in oklch, var(--color-base-content) 12%, transparent);clip-path:polygon(20px 0,100% 0,100% calc(100% - 20px),calc(100% - 20px) 100%,0 100%,0 20px);box-shadow:0 2px 8px color-mix(in oklch, var(--color-base-content) 5%, transparent);grid-template-columns:1fr;gap:1.5rem;padding:1.5rem;transition:all .4s cubic-bezier(.4,0,.2,1);display:grid;overflow:hidden}.sf-location-card:hover{border-color:color-mix(in oklch, var(--color-primary) 30%, transparent);box-shadow:0 12px 30px color-mix(in oklch, var(--color-primary) 25%, transparent), 0 0 20px color-mix(in oklch, var(--color-primary) 15%, transparent);transform:translateY(-6px)}@media (width>=768px){.sf-location-card{grid-template-columns:1fr 1.2fr;align-items:center;gap:3rem;padding:3rem}}.sf-location-info{text-align:center;order:2}@media (width>=768px){.sf-location-info{text-align:left;order:1}}.sf-location-name{color:var(--color-base-content);text-transform:uppercase;letter-spacing:.05em;margin:0 0 .75rem;font-size:1.5rem;font-weight:800}@media (width>=768px){.sf-location-name{margin:0 0 1rem;font-size:2rem}}.sf-location-desc{color:color-mix(in oklch, var(--color-base-content) 65%, transparent);margin:0 0 1rem;font-size:.9375rem;line-height:1.7}@media (width>=768px){.sf-location-desc{margin:0 0 1.5rem;font-size:1.0625rem}}.sf-location-coords{color:color-mix(in oklch, var(--color-base-content) 60%, transparent);flex-wrap:wrap;justify-content:center;align-items:center;gap:.5rem;margin-bottom:1rem;font-size:.8125rem;display:flex}@media (width>=768px){.sf-location-coords{justify-content:flex-start;margin-bottom:1.5rem;font-size:.875rem}}.sf-location-coords svg{color:var(--color-primary);flex-shrink:0}.sf-location-map{aspect-ratio:16/10;background:var(--color-base-200);border:1px solid color-mix(in oklch, var(--color-base-content) 8%, transparent);background-image:linear-gradient(to right, color-mix(in oklch, var(--color-base-content) 4%, transparent) 1px, transparent 1px), linear-gradient(to bottom, color-mix(in oklch, var(--color-base-content) 4%, transparent) 1px, transparent 1px), var(--color-base-200);background-size:30px 30px,30px 30px,100% 100%;border-radius:.75rem;order:1;min-height:200px;overflow:hidden}@media (width>=768px){.sf-location-map{aspect-ratio:auto;order:2;min-height:320px}}.sf-location-map img{-o-object-fit:cover;object-fit:cover;width:100%;height:100%}.sf-location-map a{width:100%;height:100%;display:block}.sf-content-card{background:var(--color-base-100);border:1px solid color-mix(in oklch, var(--color-base-content) 12%, transparent);clip-path:polygon(20px 0,100% 0,100% calc(100% - 20px),calc(100% - 20px) 100%,0 100%,0 20px);box-shadow:0 2px 8px color-mix(in oklch, var(--color-base-content) 5%, transparent);padding:1.5rem;transition:all .4s cubic-bezier(.4,0,.2,1)}.sf-content-card:hover{border-color:color-mix(in oklch, var(--color-primary) 30%, transparent);box-shadow:0 12px 30px color-mix(in oklch, var(--color-primary) 20%, transparent), 0 0 20px color-mix(in oklch, var(--color-primary) 10%, transparent);transform:translateY(-6px)}@media (width>=768px){.sf-content-card{padding:2.5rem}}.sf-content-visible{opacity:1!important;transition:none!important;transform:none!important}.sf-prose{overflow-wrap:break-word;word-wrap:break-word}.sf-content-card #article-content{margin:0;padding:0}.sf-empty{text-align:center;color:color-mix(in oklch, var(--color-base-content) 50%, transparent);padding:4rem 2rem}.sf-cta-card{text-align:center;background:var(--color-base-200);border:1px solid color-mix(in oklch, var(--color-primary) 20%, transparent);background-image:linear-gradient(to right, color-mix(in oklch, var(--color-base-content) 3%, transparent) 1px, transparent 1px), linear-gradient(to bottom, color-mix(in oklch, var(--color-base-content) 3%, transparent) 1px, transparent 1px), var(--color-base-200);background-size:40px 40px,40px 40px,100% 100%;border-radius:1rem;padding:3rem 1.5rem;transition:all .4s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden}@media (width>=768px){.sf-cta-card{padding:5rem 3rem}}.sf-cta-card:hover{border-color:color-mix(in oklch, var(--color-primary) 40%, transparent);box-shadow:0 8px 30px color-mix(in oklch, var(--color-primary) 15%, transparent), inset 0 0 60px color-mix(in oklch, var(--color-primary) 3%, transparent)}.sf-cta-card:before{content:"";background:radial-gradient(circle at 50% 50%, color-mix(in oklch, var(--color-primary) 8%, transparent) 0%, transparent 50%);opacity:0;pointer-events:none;width:200%;height:200%;transition:opacity .4s;position:absolute;top:-50%;left:-50%}.sf-cta-card:hover:before{opacity:1}.sf-cta-title{color:var(--color-base-content);letter-spacing:.03em;z-index:1;margin:0 0 2rem;font-size:clamp(1.25rem,4vw,2.25rem);font-weight:800;line-height:1.35;position:relative}@media (width>=768px){.sf-cta-title{letter-spacing:.05em;margin:0 0 2.5rem}}.sf-cta-btn{z-index:1;transition:all .3s cubic-bezier(.4,0,.2,1);position:relative}.sf-cta-btn:hover{box-shadow:0 8px 20px color-mix(in oklch, var(--color-neutral) 30%, transparent);transform:translateY(-3px)}.sf-comment-card{background:var(--color-base-100);border:1px solid color-mix(in oklch, var(--color-base-content) 12%, transparent);clip-path:polygon(20px 0,100% 0,100% calc(100% - 20px),calc(100% - 20px) 100%,0 100%,0 20px);box-shadow:0 2px 8px color-mix(in oklch, var(--color-base-content) 5%, transparent);padding:2.5rem;transition:all .4s cubic-bezier(.4,0,.2,1)}.sf-comment-card:hover{border-color:color-mix(in oklch, var(--color-primary) 30%, transparent);box-shadow:0 12px 30px color-mix(in oklch, var(--color-primary) 20%, transparent), 0 0 20px color-mix(in oklch, var(--color-primary) 10%, transparent);transform:translateY(-6px)}[data-reveal]{opacity:0;transition:all .8s cubic-bezier(.4,0,.2,1)}[data-reveal].revealed{opacity:1}[data-reveal=fade-up]{transform:translateY(30px)}[data-reveal=fade-up].revealed{transform:translateY(0)}[data-reveal-delay="100"].revealed{transition-delay:.1s}[data-reveal-delay="200"].revealed{transition-delay:.2s}[data-reveal-delay="300"].revealed{transition-delay:.3s}[data-reveal-delay="400"].revealed{transition-delay:.4s}@media (prefers-reduced-motion:reduce){.sf-badge-dot,.sf-marquee-track,.heatmap-cell-animated{animation:none}[data-reveal]{opacity:1;transform:none}}@media (width<=640px){.sf-container{padding:0 1rem}.sf-hero{min-height:auto;padding:3rem 0}.sf-hero-title{letter-spacing:.08em;font-size:2.5rem}.sf-hero-desc{font-size:1rem}.sf-hero-actions{flex-direction:column;gap:1rem;padding:0 1rem}.sf-hero-actions .btn{width:100%;padding:1rem 2rem}.sf-hero-actions .btn-outline:before{background:linear-gradient(135deg, var(--color-primary), var(--color-secondary));animation:none}.sf-section{padding:3rem 0}.sf-section-header{margin-bottom:2rem}.sf-stats-grid{gap:1rem}.sf-stat-item{padding:1.5rem 1rem}.sf-stat-number{font-size:2rem}.sf-stat-plus{font-size:1.25rem}.sf-stat-label{font-size:.75rem}.sf-stat-item>div:first-child{min-height:2.75rem}.sf-project-card{padding:1.25rem}.sf-card-header{flex-wrap:wrap;gap:.5rem}.sf-card-title{font-size:.875rem}.sf-comment-card{padding:1.25rem}.sf-toolkit-grid{grid-template-columns:repeat(2,1fr);gap:1rem}.sf-tool-card{padding:1.25rem 1rem}.sf-tool-icon{width:36px;height:36px;margin-bottom:1rem}.sf-tool-name{font-size:.8125rem}.sf-tool-percent{font-size:.75rem}.sf-github-stats img{border-radius:.375rem}}
