.consent{position:fixed;bottom:var(--space-4);left:var(--space-4);right:var(--space-4);z-index:var(--z-consent);max-width:34rem;padding:var(--space-5);background-color:var(--ink-raised);color:var(--on-ink);border:1px solid var(--ink-line-strong);border-radius:var(--radius-lg);box-shadow:var(--shadow-ink)}.consent-title{font-family:var(--font-display);font-size:var(--text-md);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-heading)}.consent-body{margin-top:var(--space-2);font-size:var(--text-sm);color:var(--on-ink-dim)}.consent-body a{color:var(--signal)}.consent-actions{margin-top:var(--space-5);display:flex;flex-wrap:wrap;gap:var(--space-3)}@media(max-width:30rem){.consent-actions .btn{width:100%}}.site-footer{padding-block:var(--space-16) var(--space-8)}.footer-top{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,2.4fr);gap:var(--space-12)}@media(max-width:62rem){.footer-top{grid-template-columns:minmax(0,1fr);gap:var(--space-10)}}.footer-close{margin-top:var(--space-5);max-width:18ch;font-family:var(--font-display);font-size:var(--text-xl);font-weight:var(--weight-semibold);line-height:var(--leading-snug);letter-spacing:var(--tracking-heading);color:var(--on-ink)}.footer-brand-line{margin-top:var(--space-3);max-width:32ch;font-size:var(--text-sm);color:var(--on-ink-dim)}.footer-proof{margin-top:var(--space-6);display:flex;flex-wrap:wrap;gap:var(--space-3)}.footer-columns{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-8)}@media(max-width:62rem){.footer-columns{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:30rem){.footer-columns{grid-template-columns:minmax(0,1fr)}}.footer-col-title{font-family:var(--font-mono);font-size:var(--text-2xs);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--signal)}.footer-links{list-style:none;padding:0;margin-top:var(--space-4);display:grid;gap:var(--space-3)}.footer-links li+li{margin-top:0}.footer-links a{font-size:var(--text-sm);color:var(--on-ink-dim);text-decoration:none}.footer-links a:hover{color:var(--on-ink);text-decoration:underline;text-underline-offset:.2em}.footer-bottom{margin-top:var(--space-16);padding-top:var(--space-6);border-top:1px solid var(--ink-line);display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-3) var(--space-6);font-size:var(--text-xs);color:var(--on-ink-faint)}.footer-copy{display:flex;flex-wrap:wrap;align-items:center;gap:.45em .7em;margin:0}.footer-copy-dot{color:var(--ink-line-strong)}.footer-legal{display:flex;flex-wrap:wrap;gap:var(--space-5)}.footer-legal a{color:var(--on-ink-faint);text-decoration:none}.footer-legal a:hover{color:var(--on-ink-dim)}.site-header{position:sticky;top:0;z-index:var(--z-header);background-color:color-mix(in srgb,var(--ink) 92%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--ink-line);color:var(--on-ink)}.header-inner{display:flex;align-items:center;gap:var(--space-6);height:var(--header-height)}.header-nav{display:flex;align-items:center;gap:var(--space-1);margin-left:auto}.header-actions{display:flex;align-items:center;gap:var(--space-3)}.nav-item{position:relative}.nav-item.is-open:after{content:"";position:absolute;top:100%;left:0;right:0;height:.5rem}.nav-link{display:inline-flex;align-items:center;gap:.3rem;padding:.5rem .6875rem;font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--on-ink-dim);text-decoration:none;border-radius:var(--radius-sm);transition:color var(--duration-fast) var(--ease-out)}.nav-link:hover,.nav-link[aria-expanded=true],.nav-link.is-active{color:var(--on-ink)}.nav-link.is-active{box-shadow:inset 0 -2px 0 var(--signal)}.nav-chevron{transition:transform var(--duration-fast) var(--ease-out)}.nav-link[aria-expanded=true] .nav-chevron{transform:rotate(180deg)}.nav-panel{position:absolute;top:calc(100% + .5rem);left:0;min-width:21rem;padding:var(--space-3);background-color:var(--ink-raised);border:1px solid var(--ink-line-strong);border-radius:var(--radius-lg);box-shadow:var(--shadow-ink);display:grid;gap:.125rem}.nav-panel-link{display:block;padding:var(--space-3);border-radius:var(--radius-sm);text-decoration:none;transition:background-color var(--duration-fast) var(--ease-out)}.nav-panel-link:hover{background-color:#f7f8fa0f}.nav-panel-label{display:block;font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--on-ink)}.nav-panel-note{display:block;margin-top:.125rem;font-size:var(--text-xs);color:var(--on-ink-faint)}.header-toggle{display:none;margin-left:auto;padding:var(--space-2);color:var(--on-ink);border:1px solid var(--ink-line-strong);border-radius:var(--radius-sm)}.mobile-panel{display:none}@media(max-width:68rem){.header-nav{display:none}.header-actions{margin-left:auto}.header-toggle{display:inline-flex;margin-left:0}.mobile-panel.is-open{display:block;max-height:calc(100dvh - var(--header-height));overflow-y:auto;padding-block:var(--space-5) var(--space-8);background-color:var(--ink);border-top:1px solid var(--ink-line)}.mobile-group+.mobile-group{margin-top:var(--space-6);padding-top:var(--space-6);border-top:1px solid var(--ink-line)}.mobile-group-title{font-family:var(--font-mono);font-size:var(--text-2xs);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--signal)}.mobile-links{display:grid;gap:var(--space-1);margin-top:var(--space-3)}.mobile-link{display:block;padding:var(--space-3) 0;font-size:var(--text-md);font-weight:var(--weight-medium);color:var(--on-ink);text-decoration:none}.mobile-link-note{display:block;font-size:var(--text-xs);font-weight:var(--weight-regular);color:var(--on-ink-faint)}}.lang-switch,.lang-menu{position:relative}.lang-trigger{display:inline-flex;align-items:center;gap:.5rem;padding:.375rem .625rem .375rem .5rem;color:var(--on-ink);list-style:none;cursor:pointer;-webkit-user-select:none;user-select:none;border:1px solid var(--ink-line-strong);border-radius:var(--radius-pill);transition:border-color var(--duration-fast) var(--ease-out),box-shadow var(--duration-base) var(--ease-out)}.lang-trigger::-webkit-details-marker{display:none}.lang-trigger:hover,.lang-menu[open] .lang-trigger{border-color:var(--signal);box-shadow:0 0 0 3px var(--signal-wash)}.lang-trigger:focus-visible{outline:2px solid var(--signal);outline-offset:2px}.lang-orbit{position:relative;flex:none;width:.875rem;height:.875rem;border:1.5px solid var(--on-ink-dim);border-radius:50%}.lang-orbit:before{content:"";position:absolute;top:22%;right:-30%;bottom:22%;left:-30%;border:1px solid var(--on-ink-faint);border-radius:50%;transform:rotate(-24deg)}.lang-orbit:after{content:"";position:absolute;top:50%;left:50%;width:4px;height:4px;margin:-2px 0 0 -2px;background-color:var(--signal);border-radius:50%;box-shadow:0 0 6px var(--signal);animation:lang-orbit 4.2s linear infinite}@keyframes lang-orbit{0%{transform:rotate(0) translate(.6rem) rotate(0)}to{transform:rotate(360deg) translate(.6rem) rotate(-360deg)}}.lang-ticker{display:grid;overflow:hidden;font-size:var(--text-sm);font-weight:var(--weight-semibold);line-height:1.25;text-align:center}.lang-ticker-word{grid-area:1 / 1;transition:transform var(--duration-slow) var(--ease-out),opacity var(--duration-slow) var(--ease-out)}.lang-ticker-word.is-shown{transform:translateY(0);opacity:1}.lang-ticker-word.is-leaving{transform:translateY(-110%);opacity:0}.lang-ticker-word.is-waiting{transform:translateY(110%);opacity:0;transition:none}.lang-trigger-code{padding:.0625rem .3125rem;font-family:var(--font-mono);font-size:var(--text-2xs);font-weight:var(--weight-medium);letter-spacing:var(--tracking-label);color:var(--ink);background-color:var(--signal);border-radius:var(--radius-xs)}.lang-chevron{color:var(--on-ink-dim);transition:transform var(--duration-fast) var(--ease-out)}.lang-menu[open] .lang-chevron{transform:rotate(180deg)}.lang-panel{position:absolute;top:calc(100% + .625rem);right:0;width:min(23rem,calc(100vw - 2rem));padding:var(--space-4);background:radial-gradient(120% 80% at 100% 0%,var(--signal-wash) 0%,transparent 60%),var(--ink-raised);border:1px solid var(--ink-line-strong);border-radius:var(--radius-lg);box-shadow:var(--shadow-ink);transform-origin:top right;animation:lang-panel-in var(--duration-base) var(--ease-out)}@keyframes lang-panel-in{0%{opacity:0;transform:translateY(-6px) scale(.97)}}.lang-panel-title{display:flex;align-items:center;gap:.5rem;margin:0 0 var(--space-3);font-family:var(--font-mono);font-size:var(--text-2xs);letter-spacing:var(--tracking-eyebrow);text-transform:uppercase;color:var(--signal)}.lang-panel-blink{width:.375rem;height:.75rem;background-color:var(--signal);animation:lang-blink 1.1s steps(1) infinite}@keyframes lang-blink{50%{opacity:0}}.lang-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(6rem,1fr));gap:var(--space-2);margin:0;padding:0;list-style:none}.lang-cards li+li{margin-top:0}.lang-card{position:relative;display:flex;flex-direction:column;gap:.25rem;height:100%;padding:var(--space-3);color:var(--on-ink);text-decoration:none;background-color:#f7f8fa08;border:1px solid var(--ink-line);border-radius:var(--radius-md);transition:transform var(--duration-base) var(--ease-out),border-color var(--duration-fast) var(--ease-out),background-color var(--duration-fast) var(--ease-out),box-shadow var(--duration-base) var(--ease-out);animation:lang-card-in var(--duration-slow) var(--ease-out) backwards}.lang-cards li:nth-child(2) .lang-card{animation-delay:50ms}.lang-cards li:nth-child(3) .lang-card{animation-delay:.1s}.lang-cards li:nth-child(n+4) .lang-card{animation-delay:.15s}@keyframes lang-card-in{0%{opacity:0;transform:translateY(8px)}}.lang-card:hover,.lang-card:focus-visible{transform:translateY(-2px);border-color:var(--ink-line-strong);background-color:#f7f8fa0f;outline:none}.lang-card.is-active{border-color:var(--signal);background-color:var(--signal-wash);box-shadow:var(--signal-glow)}.lang-card-corners,.lang-card-corners:before,.lang-card-corners:after{position:absolute;pointer-events:none}.lang-card-corners{top:-5px;right:-5px;bottom:-5px;left:-5px;opacity:0;transform:scale(1.08);transition:opacity var(--duration-fast) var(--ease-out),transform var(--duration-base) var(--ease-out);background:linear-gradient(var(--signal),var(--signal)) top left / 10px 2px,linear-gradient(var(--signal),var(--signal)) top left / 2px 10px,linear-gradient(var(--signal),var(--signal)) top right / 10px 2px,linear-gradient(var(--signal),var(--signal)) top right / 2px 10px,linear-gradient(var(--signal),var(--signal)) bottom left / 10px 2px,linear-gradient(var(--signal),var(--signal)) bottom left / 2px 10px,linear-gradient(var(--signal),var(--signal)) bottom right / 10px 2px,linear-gradient(var(--signal),var(--signal)) bottom right / 2px 10px;background-repeat:no-repeat}.lang-card:hover .lang-card-corners,.lang-card:focus-visible .lang-card-corners,.lang-card.is-active .lang-card-corners{opacity:1;transform:scale(1)}.lang-card-top{display:flex;align-items:center;justify-content:space-between}.lang-card-key{display:inline-grid;place-items:center;min-width:1.25rem;height:1.25rem;font-family:var(--font-mono);font-size:var(--text-2xs);color:var(--on-ink-dim);border:1px solid var(--ink-line-strong);border-bottom-width:2px;border-radius:var(--radius-xs)}.lang-card-code{font-family:var(--font-mono);font-size:var(--text-2xs);letter-spacing:var(--tracking-label);color:var(--on-ink-faint)}.lang-card.is-active .lang-card-code{color:var(--signal)}.lang-card-greeting{margin-top:var(--space-2);font-family:var(--font-display);font-size:var(--text-lg);font-weight:var(--weight-bold);letter-spacing:var(--tracking-heading);line-height:1.1}.lang-card-label{font-size:var(--text-xs);color:var(--on-ink-dim)}.lang-card-status{display:inline-flex;align-items:center;gap:.375rem;margin-top:auto;padding-top:var(--space-2);font-family:var(--font-mono);font-size:var(--text-2xs);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--signal)}.lang-card-status:before{content:"";width:.375rem;height:.375rem;background-color:var(--signal);border-radius:50%;box-shadow:0 0 6px var(--signal)}.lang-switch-inline .lang-card-key{visibility:hidden}.mobile-lang{margin-top:var(--space-6);padding-top:var(--space-6);border-top:1px solid var(--ink-line)}@media(min-width:68.01rem){.mobile-lang{display:none}}@media(max-width:40rem){.header-actions .lang-switch{display:none}}
