:root {--font-sans:"Satoshi", system-ui, -apple-system, sans-serif;--color-bg:#000;--color-text:#fff;--color-text-soft:#ddd;--color-muted:#888;--color-muted-soft:#aaa;--color-faint:#555;--color-surface:#0c0c0c;--color-card:#111;--color-line:#2a2a2a;--color-line-soft:#222;--color-active:rgba(255, 255, 255, 0.12);--color-hover:rgba(255, 255, 255, 0.07);--radius-sm:0.5rem;--radius-md:0.8rem;--radius-lg:1.5rem;--radius-pill:3rem;--krate-focus-ring:#fff;--krate-css-active:var(--color-text);--krate-css-active-fg:var(--color-text)} * {margin:0;padding:0;box-sizing:border-box} html, body {min-height:100%} body {background:var(--color-bg);color:var(--color-text);font-family:var(--font-sans);font-weight:400;line-height:1.5;-webkit-font-smoothing:antialiased} svg {stroke:none} a {color:inherit} a, button {touch-action:manipulation} img {display:block;max-width:100%;height:auto} :focus-visible {outline:2px solid #fff;outline-offset:3px} .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} .site-shell {min-height:100svh;display:flex;flex-direction:column;align-items:center;padding:0 1.5rem 7rem} .page {width:100%;max-width:900px;flex:1} .page:has(.not-found) {display:flex;flex-direction:column} ::view-transition-old(root), ::view-transition-new(root), ::view-transition-group(root) {animation:none;mix-blend-mode:normal} h1, h2, h3 {font-weight:500;letter-spacing:-0.02em} h1 {font-size:clamp(2.8rem, 8vw, 4.5rem);font-weight:700;line-height:1.1;margin-bottom:0.5rem} h2 {font-size:1.8rem;margin-bottom:1.2rem;text-transform:capitalize} p {color:var(--color-text-soft)} .hero {padding:5rem 0 2rem;text-align:center} .hero-sub {color:var(--color-muted);font-size:1.1rem;margin-top:0.5rem;max-width:40ch;margin-left:auto;margin-right:auto} .about-section {margin-top:3.5rem;text-align:center} .about-section h2 {font-size:clamp(2.2rem, 5vw, 2.8rem);font-weight:500;letter-spacing:-0.02em;text-transform:none;color:var(--color-text);margin-bottom:1.2rem} .about-section p {color:var(--color-text-soft);font-size:1.05rem;max-width:60ch;margin:0 auto;line-height:1.8} .stats-row {display:flex;gap:2rem;margin-top:2.5rem;flex-wrap:wrap;justify-content:center} .stat-item {display:flex;flex-direction:column;align-items:center;text-align:center} .stat-value {font-size:1.8rem;font-weight:700;color:var(--color-text)} .stat-label {font-size:0.85rem;color:var(--color-muted);text-transform:uppercase;letter-spacing:0.05em} .marquee-fade {position:relative;isolation:isolate;width:calc(40rem + 48px);max-width:100%;margin:3.5rem auto 1rem} .marquee-fade::before, .marquee-fade::after {content:"";position:absolute;top:0;bottom:0;width:12%;pointer-events:none;z-index:2;transform:translateZ(0)} .marquee-fade::before {left:0;background:linear-gradient( to right, var(--color-bg) 0%, rgba(0, 0, 0, 0) 100% )} .marquee-fade::after {right:0;background:linear-gradient( to left, var(--color-bg) 0%, rgba(0, 0, 0, 0) 100% )} .marquee-wrapper {width:100%;overflow:hidden;padding:16px 0;position:relative} .marquee-track {display:flex;width:max-content;align-items:center;animation:marquee-slide var(--marquee-duration, 30s) linear infinite} @keyframes marquee-slide { from {transform:translate3d(0, 0, 0)} to {transform:translate3d(-50%, 0, 0)} } .marquee-wrapper:hover .marquee-track, .marquee-wrapper:focus-within .marquee-track {animation-play-state:paused} @media (prefers-reduced-motion: reduce) { .marquee-track {animation:none} } .marquee-set {display:flex;flex:none;gap:48px;padding-right:48px;align-items:center} .marquee-item {display:flex;flex:none;flex-direction:column;align-items:center;gap:10px;color:var(--color-muted-soft);font-size:0.9rem;font-weight:500;line-height:20px;white-space:nowrap} .marquee-item svg {width:38px;height:38px;color:var(--color-text);filter:grayscale(1);opacity:0.55;transition:filter 0.2s ease, opacity 0.2s ease} .marquee-item:hover svg {filter:grayscale(0);opacity:1} .projects-header {margin-top:4rem;margin-bottom:2.2rem;text-align:center} .projects-header h1 {font-size:clamp(2.2rem, 5vw, 2.8rem);font-weight:700;margin-bottom:0.6rem} .projects-sub {color:var(--color-text-soft);font-size:1.05rem;line-height:1.8;max-width:40ch;margin:0 auto} .projects-list {display:flex;flex-direction:column} .project-row {display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1.4rem 0.5rem;border-bottom:1px solid var(--color-line);text-decoration:none;color:inherit} .project-row:last-child {border-bottom:none} .project-title {font-size:1.3rem;font-weight:500;color:var(--color-text)} .project-tech {display:flex;gap:1.2rem;align-items:center;flex-shrink:0} .project-tech > svg {width:1.4rem;height:1.4rem;color:var(--color-muted);filter:grayscale(1);opacity:0.6;transition:color 0.2s ease, filter 0.2s ease, opacity 0.2s ease} .project-row:hover .project-tech > svg, .project-row:focus-visible .project-tech > svg {filter:grayscale(0);opacity:1} .project-arrow {margin-left:0.3rem;display:flex;align-items:center} .project-arrow svg {width:1.2rem;height:1.2rem;color:var(--color-faint);transition:color 0.2s ease} .project-row:hover .project-arrow svg, .project-row:focus-visible .project-arrow svg {color:var(--color-text)} .nav {--nav-gap:0.3rem;position:fixed;bottom:1.5rem;left:50%;transform:translateX(-50%);display:flex;align-items:center;justify-content:center;gap:var(--nav-gap);background:rgba(10, 10, 10, 0.7);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid rgba(255, 255, 255, 0.08);border-radius:var(--radius-pill);padding:0.5rem 0.8rem;box-shadow:0 10px 30px rgba(0, 0, 0, 0.7);z-index:100} .nav-item {display:flex;align-items:center;justify-content:center;gap:0.4rem;padding:0.6rem 0.9rem;border-radius:2rem;color:var(--color-muted-soft);background:transparent;border:none;font-family:var(--font-sans);font-weight:500;font-size:0.95rem;cursor:pointer;transition:background 0.2s ease, color 0.2s ease;white-space:nowrap;text-decoration:none} .nav-item svg {width:1.4rem;height:1.4rem;color:#fff} .nav-item[aria-current="page"] {background:var(--color-active);color:var(--color-text)} .nav-item:hover {background:var(--color-hover);color:var(--color-text)} .nav-tabs {position:relative;display:grid;grid-auto-flow:column;grid-auto-columns:max-content;align-items:center;gap:var(--nav-gap);isolation:isolate} .nav-pill {position:absolute;top:0;bottom:0;left:0;width:var(--nav-pill-w, 0);transform:translateX(var(--nav-pill-x, 0));border-radius:1.45rem;background:var(--color-active);pointer-events:none;z-index:-1} .nav-tabs--sliding .nav-pill {transition:transform 0.26s cubic-bezier(0.4, 0, 0.2, 1), width 0.26s cubic-bezier(0.4, 0, 0.2, 1)} .nav-tabs .nav-item {justify-content:center} .nav-tabs .nav-item[aria-current="page"] {background:transparent} .nav-tabs .nav-item {position:relative;isolation:isolate} @media (prefers-reduced-motion: reduce) { .nav-tabs--sliding .nav-pill {transition:none} } .nav-logo {width:48px;height:48px;border-radius:10px;object-fit:cover;flex-shrink:0} .nav-logo-link {padding:0.25rem;transition:none;flex-shrink:0} .nav-logo-link:hover {background:transparent;color:var(--color-muted-soft)} .nav-label {display:none} .nav-separator {width:1px;height:20px;background:rgba(255, 255, 255, 0.15);margin:0 0.2rem;flex-shrink:0} @media (min-width: 700px) { .nav {padding:0.5rem 1rem;gap:0.5rem} .nav-item {height:2.9rem;padding:0 0.75rem;border-radius:1.45rem;transition:background 0.2s ease, color 0.2s ease, padding 0.26s cubic-bezier(0.4, 0, 0.2, 1)} .nav-tabs .nav-item {gap:0} .nav-logo-link {width:2.9rem;height:2.9rem;padding:0;margin-right:0.8rem} .nav-logo {width:100%;height:100%} .nav:focus-within .nav-tabs .nav-item, html[data-nav-open] .nav-tabs .nav-item {padding:0 1.1rem} .nav-tabs .nav-label {display:grid;grid-template-columns:0;margin-left:0;pointer-events:none;opacity:0;transition:grid-template-columns 0.26s cubic-bezier(0.4, 0, 0.2, 1), margin-left 0.26s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.26s cubic-bezier(0.4, 0, 0.2, 1)} .nav-tabs .nav-label-text {display:block;min-width:0;overflow:hidden;white-space:nowrap} html[data-nav-open] .nav-tabs .nav-label, .nav:focus-within .nav-tabs .nav-label {grid-template-columns:1fr;margin-left:0.45rem;opacity:1} .nav-separator {margin:0 0.5rem} } @media (min-width: 700px) and (hover: hover) { .nav:hover .nav-tabs .nav-item {padding:0 1.1rem} .nav:hover .nav-tabs .nav-label {grid-template-columns:1fr;margin-left:0.45rem;opacity:1} } html[data-nav-instant] .nav-item, html[data-nav-instant] .nav-label {transition:none !important} @media (prefers-reduced-motion: reduce) { .nav-item, .nav-tabs .nav-label {transition:none} } @media (max-width: 699px) { .nav-label {display:none !important} .nav {--nav-gap:clamp(0.45rem, 2.4vw, 0.9rem);padding:0.55rem clamp(0.75rem, 4vw, 1.05rem)} .nav-item {width:clamp(2.25rem, 11vw, 2.9rem);height:clamp(2.25rem, 11vw, 2.9rem);padding:0;border-radius:50%} .nav-logo-link {padding:0;width:clamp(2.25rem, 11vw, 2.9rem);height:clamp(2.25rem, 11vw, 2.9rem)} .nav-logo {width:100%;height:100%;border-radius:10px} .nav-pill {border-radius:50%} .nav-item svg {width:clamp(1.3rem, 6.5vw, 1.6rem);height:clamp(1.3rem, 6.5vw, 1.6rem)} .nav-separator {height:18px;margin:0} } .modal-overlay {position:fixed;inset:0;background:rgba(0, 0, 0, 0.6);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);display:flex;align-items:center;justify-content:center;z-index:200;padding:1rem} .modal-backdrop {position:absolute;inset:0;width:100%;height:100%;background:transparent;border:none;padding:0;cursor:default} .modal {position:relative;background:var(--color-surface);border:1px solid var(--color-line);border-radius:var(--radius-lg);padding:2rem 1.8rem 1.8rem;width:100%;max-width:480px;box-shadow:0 20px 40px rgba(0, 0, 0, 0.8);animation:modal-in 0.25s ease} @keyframes modal-in { from {opacity:0;transform:scale(0.95)} to {opacity:1;transform:scale(1)} } @media (prefers-reduced-motion: reduce) { .modal {animation:none} } .modal-close {position:absolute;top:1rem;right:1.2rem;display:inline-flex;align-items:center;justify-content:center;background:transparent;border:none;color:var(--color-muted);cursor:pointer;padding:0.35rem;border-radius:1rem;transition:color 0.2s} .modal-close svg {width:1.3rem;height:1.3rem} .modal-close:hover {color:var(--color-text)} .modal h2 {font-size:1.6rem;margin-bottom:0.4rem;text-transform:capitalize} .modal-sub {font-size:0.9rem;color:var(--color-muted);margin-bottom:1.5rem} .modal label {display:block;font-size:0.85rem;font-weight:500;color:#ccc;margin-bottom:0.4rem} .modal .input-row {display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1rem} .modal .input-group {display:flex;flex-direction:column} .modal input, .modal textarea {width:100%;background:var(--color-card);border:1px solid var(--color-line);border-radius:var(--radius-md);padding:0.8rem 1rem;color:var(--color-text);font-family:var(--font-sans);font-size:0.95rem;outline:none;transition:border 0.2s} .modal input:focus, .modal textarea:focus {border-color:var(--color-faint)} .modal textarea {min-height:110px;resize:vertical;margin-bottom:1.2rem} .modal .send-btn {background:#fff;color:#000;border:none;border-radius:2rem;padding:0.9rem 1.5rem;font-weight:700;font-family:var(--font-sans);font-size:1rem;width:100%;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:0.5rem;transition:background 0.2s ease} .modal .send-btn:hover {background:#ddd} .modal .send-btn svg {width:1.2rem;height:1.2rem} .modal .send-btn--loading svg {flex-shrink:0;transform-origin:center;animation:send-spin 0.8s linear infinite} @keyframes send-spin { from {transform:rotate(0deg)} to {transform:rotate(360deg)} } .modal .contact-footer {margin-top:1.8rem;padding-top:1.2rem;border-top:1px solid var(--color-line-soft);display:flex;gap:1.5rem;justify-content:center;font-size:0.9rem;color:var(--color-muted)} .modal .contact-footer a {color:var(--color-muted);text-decoration:none;display:flex;align-items:center;gap:0.4rem;transition:color 0.2s} .modal .contact-footer a:hover {color:var(--color-text)} .modal .contact-footer svg {width:1.1rem;height:1.1rem} @media (max-width: 480px) { .modal .input-row {grid-template-columns:1fr} } .btn {display:inline-flex;align-items:center;justify-content:center;gap:0.5rem;white-space:nowrap;border:1px solid transparent;border-radius:2rem;padding:0.8rem 1.4rem;font-family:var(--font-sans);font-size:0.95rem;font-weight:700;line-height:1;text-decoration:none;cursor:pointer;transition:background 0.2s ease, color 0.2s ease, border-color 0.2s ease} .btn svg {width:1.1rem;height:1.1rem;flex-shrink:0} .btn--primary {background:#fff;color:#000} .btn--primary:hover {background:#ddd} .btn--secondary {background:transparent;border-color:var(--color-line);color:var(--color-text)} .btn--secondary:hover {background:var(--color-card);border-color:var(--color-faint)} .btn--icon-right {flex-direction:row-reverse} .not-found {flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem 0;text-align:center} .not-found-code {font-size:clamp(6rem, 22vw, 11rem);font-weight:700;line-height:0.9;letter-spacing:-0.04em;color:var(--color-text)} .not-found-title {font-size:clamp(1.4rem, 4vw, 2rem);font-weight:500;margin:1rem 0 0.5rem} .not-found-text {color:var(--color-muted);margin:0 auto;max-width:42ch} .not-found-actions {display:flex;flex-wrap:nowrap;align-items:center;justify-content:center;gap:0.75rem;margin-top:2rem} .honeypot {position:absolute;left:-9999px;width:1px;height:1px;opacity:0;pointer-events:none} .toast {position:fixed;right:1.5rem;bottom:1.5rem;z-index:300;max-width:22rem;padding:0.9rem 1.2rem;border-radius:var(--radius-md);border:1px solid var(--color-line);background:var(--color-card);color:var(--color-text);font-size:0.92rem;line-height:1.4;box-shadow:0 16px 32px rgba(0, 0, 0, 0.6);transform:translateY(calc(100% + 1.5rem));opacity:0;pointer-events:none;transition:transform 0.32s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.24s ease} .toast--in {transform:translateY(0);opacity:1} .toast--error {border-color:#7a2b2b} @media (prefers-reduced-motion: reduce) { .toast {transition:none} } .modal .send-btn:disabled {background:#bbb;color:#111;cursor:not-allowed} .modal .send-btn:disabled:hover {background:#bbb} .modal .send-btn:disabled svg {color:#111;opacity:1} .github-header {margin-top:4rem;margin-bottom:2.2rem;text-align:center} .page:has(.github-header) {max-width:620px} .github-header h1 {font-size:clamp(2.2rem, 5vw, 2.8rem);font-weight:700;margin-bottom:0.6rem} .github-sub {color:var(--color-text-soft);font-size:1.05rem;line-height:1.8;max-width:40ch;margin:0 auto} .github-section {margin-bottom:0.85rem} .github-label {font-size:0.85rem;font-weight:400;color:var(--color-muted);margin-bottom:0.35rem;letter-spacing:0;text-transform:none} .gh-card {background:var(--color-surface);border:1px solid var(--color-line);border-radius:var(--radius-lg);padding:0.75rem} .gh-identity {display:flex;align-items:center;gap:0.8rem;padding:0.1rem 0.15rem 0.8rem} .gh-profile {display:block;text-decoration:none;color:inherit;transition:border-color 0.2s ease, background 0.2s ease} .gh-profile:hover, .gh-profile:focus-visible {border-color:#3a3a3a;background:var(--color-card)} .gh-arrow {margin-left:auto;display:flex;align-items:center;flex-shrink:0} .gh-arrow svg {width:1.2rem;height:1.2rem;color:var(--color-faint);transition:color 0.2s ease} .gh-profile:hover .gh-arrow svg, .gh-profile:focus-visible .gh-arrow svg {color:var(--color-text)} .gh-avatar {width:2.4rem;height:2.4rem;border-radius:50%;object-fit:cover;background:var(--color-card);flex-shrink:0} .gh-identity-text {min-width:0} .gh-handle {font-weight:700;font-size:1rem;line-height:1.25} .gh-bio {color:var(--color-text-soft);font-size:0.9rem;line-height:1.3} .gh-stats {display:grid;grid-template-columns:repeat(4, 1fr);background:var(--color-card);border:1px solid var(--color-line-soft);border-radius:var(--radius-md);overflow:hidden} .gh-stat {display:flex;flex-direction:column;align-items:center;gap:0.05rem;padding:0.5rem 0.4rem} .gh-stat + .gh-stat {border-left:1px solid var(--color-line-soft)} .gh-stat-value {font-size:1.2rem;font-weight:700;letter-spacing:-0.02em} .gh-stat-label {font-size:0.78rem;color:var(--color-muted)} .gh-grid {display:grid;grid-auto-flow:column;grid-template-rows:repeat(7, auto);grid-auto-columns:1fr;gap:clamp(2px, 0.4vw, 4px);margin-bottom:0.7rem} .gh-cell {width:100%;aspect-ratio:1;border-radius:2px;background:rgba(255, 255, 255, 0.055)} .gh-cell[data-level="1"] {background:rgba(255, 255, 255, 0.13)} .gh-cell[data-level="2"] {background:rgba(255, 255, 255, 0.26)} .gh-cell[data-level="3"] {background:rgba(255, 255, 255, 0.46)} .gh-cell[data-level="4"] {background:rgba(255, 255, 255, 0.8)} .gh-activity-foot {display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:0.5rem 1rem;font-size:0.85rem;color:var(--color-muted-soft)} .gh-activity-foot strong {color:var(--color-text);font-weight:600} .gh-legend {display:flex;align-items:center;gap:0.4rem;font-size:0.78rem;color:var(--color-muted)} .gh-legend-cells {display:flex;gap:3px} .gh-legend-cells .gh-cell {width:10px;height:10px;aspect-ratio:auto} .gh-bar {display:flex;height:8px;border-radius:999px;overflow:hidden;background:rgba(255, 255, 255, 0.07);margin-bottom:0.75rem} .gh-bar-seg {height:100%} .gh-lang-list {display:flex;flex-wrap:wrap;gap:0.3rem 1rem;list-style:none;font-size:0.85rem;color:var(--color-text-soft);min-height:2.9rem} @media (max-width: 479px) { .gh-lang-list {min-height:4.45rem} } @media (max-width: 339px) { .gh-lang-list {min-height:7.6rem} } .gh-lang-list li {display:flex;align-items:center;gap:0.35rem} .gh-dot {width:8px;height:8px;border-radius:50%;flex-shrink:0} .gh-pct {color:var(--color-muted)} .gh-error {margin-top:-1rem;margin-bottom:2rem;font-size:0.9rem;color:var(--color-muted)} html[data-low-power] .nav, html[data-low-power] .modal-overlay {backdrop-filter:none;-webkit-backdrop-filter:none} html[data-low-power] .nav {background:rgba(10, 10, 10, 0.94);box-shadow:0 6px 18px rgba(0, 0, 0, 0.55)} html[data-low-power] .modal-overlay {background:rgba(0, 0, 0, 0.82)} @media (pointer: coarse) { .nav, .modal-overlay {backdrop-filter:none;-webkit-backdrop-filter:none} .nav {background:rgba(10, 10, 10, 0.94);box-shadow:0 6px 18px rgba(0, 0, 0, 0.55)} .modal-overlay {background:rgba(0, 0, 0, 0.82)} } .post {max-width:44rem;margin:0 auto;padding-top:4rem} .post-header {margin-bottom:2.2rem;padding-bottom:1.6rem;border-bottom:1px solid var(--color-line)} .post-date {color:var(--color-muted);font-size:0.85rem;margin-bottom:0.6rem} .post-header h1 {font-size:clamp(1.9rem, 5vw, 2.6rem);letter-spacing:-0.03em;margin-bottom:0.6rem} .post-lede {color:var(--color-text-soft);font-size:1.05rem;line-height:1.7} .post-body {color:var(--color-text-soft);font-size:1rem;line-height:1.75} .post-body > * + * {margin-top:1.1rem} .post-body h2, .post-body h3, .post-body h4 {color:var(--color-text);margin-top:2rem;margin-bottom:0.6rem;text-transform:none} .post-body h2 {font-size:1.5rem} .post-body h3 {font-size:1.25rem} .post-body h4 {font-size:1.1rem} .post-body a {color:var(--color-text);text-decoration:underline;text-decoration-color:var(--color-faint);text-underline-offset:3px} .post-body a:hover {text-decoration-color:var(--color-text)} .post-body ul, .post-body ol {padding-left:1.3rem;display:flex;flex-direction:column;gap:0.4rem} .post-body li::marker {color:var(--color-faint)} .post-body code {font-family:ui-monospace, SFMono-Regular, Menlo, monospace;font-size:0.9em;background:var(--color-card);border:1px solid var(--color-line-soft);border-radius:6px;padding:0.1rem 0.35rem} .post-body pre {background:var(--color-surface);border:1px solid var(--color-line);border-radius:var(--radius-md);padding:2.4rem 1rem 1rem;overflow-x:auto} .post-body pre code {background:none;border:0;padding:0;font-size:0.88rem;line-height:1.6} .post-body blockquote {border-left:2px solid var(--color-line);padding-left:1rem;color:var(--color-muted-soft)} .post-body table {width:100%;border-collapse:collapse;font-size:0.95rem} .post-body th, .post-body td {border-bottom:1px solid var(--color-line-soft);padding:0.5rem 0.6rem;text-align:left} .post-body th {color:var(--color-text);font-weight:600} .post-body hr {border:0;border-top:1px solid var(--color-line)} .post-body img {max-width:100%;border-radius:var(--radius-md)} .post-body .code-block {position:relative} .post-body .code-block pre {margin:0} .code-toolbar {position:absolute;top:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:0.4rem 0.5rem 0.4rem 0.85rem;pointer-events:none;z-index:1} .code-lang {font-size:0.75rem;font-weight:500;color:var(--color-muted)} .code-copy {display:inline-flex;align-items:center;justify-content:center;width:1.75rem;height:1.75rem;padding:0;color:var(--color-muted-soft);background:transparent;border:1px solid transparent;border-radius:6px;cursor:pointer;pointer-events:auto;transition:color 0.15s ease, background 0.15s ease, border-color 0.15s ease} .code-copy svg {width:1rem;height:1rem} .code-copy:hover, .code-copy:focus-visible {color:var(--color-text);background:rgba(255, 255, 255, 0.08);border-color:var(--color-line)} .code-copy--done {color:#98c379} .code-copy--failed {color:#e06c75} .post-body .hljs-comment, .post-body .hljs-quote {color:#6b7280;font-style:italic} .post-body .hljs-keyword, .post-body .hljs-selector-tag, .post-body .hljs-literal, .post-body .hljs-doctag {color:#c678dd} .post-body .hljs-string, .post-body .hljs-regexp, .post-body .hljs-addition, .post-body .hljs-attribute, .post-body .hljs-meta .hljs-string {color:#98c379} .post-body .hljs-number, .post-body .hljs-symbol, .post-body .hljs-bullet, .post-body .hljs-variable, .post-body .hljs-template-variable, .post-body .hljs-selector-attr, .post-body .hljs-selector-pseudo {color:#d19a66} .post-body .hljs-title, .post-body .hljs-section, .post-body .hljs-title.function_, .post-body .hljs-title.class_ {color:#61afef} .post-body .hljs-type, .post-body .hljs-class .hljs-title, .post-body .hljs-built_in {color:#e5c07b} .post-body .hljs-meta, .post-body .hljs-selector-id, .post-body .hljs-selector-class {color:#56b6c2} .post-body .hljs-emphasis {font-style:italic} .post-body .hljs-strong {font-weight:600} .krc-h{position:absolute;width:1px;height:1px;margin:-1px;padding:0;border:0;clip:rect(0 0 0 0);overflow:hidden;white-space:nowrap} .krc0 .krc0-p-x,.krc0 .krc0-p-message{display:none} .krc0:has(.krc0-r-x:checked) .krc0-p-x,.krc0:has(.krc0-r-message:checked) .krc0-p-message{display:contents} .krc0:has(.krc0-r-x:checked) .krc0-t-x,.krc0.krc0-t-x:has(.krc0-r-x:checked){color:var(--krate-css-active-fg,inherit);font-weight:600;--krate-active:1;--krate-active-color:var(--krate-css-active,var(--krate-primary,#f97316));--krate-active-bg:color-mix(in srgb,var(--krate-css-active,var(--krate-primary,#f97316)) 15%,transparent)} .krc0:has(.krc0-r-message:checked) .krc0-t-message,.krc0.krc0-t-message:has(.krc0-r-message:checked){color:var(--krate-css-active-fg,inherit);font-weight:600;--krate-active:1;--krate-active-color:var(--krate-css-active,var(--krate-primary,#f97316));--krate-active-bg:color-mix(in srgb,var(--krate-css-active,var(--krate-primary,#f97316)) 15%,transparent)} .krc0 .krc0-ta-message{display:none} .krc0:has(.krc0-r-message:checked) .krc0-ta-message{display:inline-flex;color:var(--krate-css-active-fg,inherit);font-weight:600;--krate-active:1;--krate-active-color:var(--krate-css-active,var(--krate-primary,#f97316));--krate-active-bg:color-mix(in srgb,var(--krate-css-active,var(--krate-primary,#f97316)) 15%,transparent)} .krc0:has(.krc0-r-message:checked) .krc0-t-message:not(.krc0-ta-message){display:none} .krc0:has(.krc0-r-x:checked){--krate-current:""} .krc0:has(.krc0-r-message:checked){--krate-current:"message"} .krc0:has(.krc0-r-x:focus-visible) .krc0-t-x,.krc0.krc0-t-x:has(.krc0-r-x:focus-visible){outline:2px solid var(--krate-focus-ring,#f97316);outline-offset:2px} .krc0:has(.krc0-r-message:focus-visible) .krc0-t-message,.krc0.krc0-t-message:has(.krc0-r-message:focus-visible){outline:2px solid var(--krate-focus-ring,#f97316);outline-offset:2px} @supports not selector(:has(*)){.krc0 .krc0-n-message,.krc0 .krc0-n-x,.krc0 .krc0-p-message,.krc0 .krc0-p-x{display:contents}}