:root{--sans: "Inter", system-ui, sans-serif;--serif: "Newsreader", "Times New Roman", serif;--mono: "JetBrains Mono", ui-monospace, monospace;--col: 1180px;--radius-sm: 6px;--radius: 10px;--radius-lg: 14px;--t-fast: .2s;--t-base: .3s;--t-slow: .5s cubic-bezier(.16, 1, .3, 1)}html[data-theme=light]{--bg: oklch(.97 .014 70);--bg-2: oklch(.945 .018 65);--bg-3: oklch(.92 .022 65);--paper: oklch(.985 .012 70);--m-paper: #fbf9f0;--m-bg: #f6f1e1;--m-bg-2: #f1ebd9;--m-ink: #2a221b;--m-rule: #d8d0bc;--m-rule-strong: #aea592;--m-accent: #a05d2a;--m-accent-soft: #f1e2c4;--surface-deep: oklch(.2 .018 50);--on-deep: oklch(.96 .014 70);--on-deep-muted: oklch(.72 .014 60);--on-deep-faint: oklch(.55 .014 60);--ink: oklch(.2 .018 50);--ink-2: oklch(.34 .016 55);--muted: oklch(.52 .014 60);--faint: oklch(.72 .012 65);--rule: oklch(.86 .014 65);--rule-strong: oklch(.72 .016 60);--rule-deep: oklch(.4 .022 50);--accent: oklch(.5 .13 70);--accent-deep: oklch(.38 .11 65);--accent-soft: oklch(.93 .05 70);--accent-glow: oklch(.58 .13 70 / .18);--on-accent: oklch(.99 .008 70);--noise-opacity: .03}html[data-theme=dark]{--bg: oklch(.22 .005 75);--bg-2: oklch(.27 .006 75);--bg-3: oklch(.31 .008 75);--paper: oklch(.28 .008 75);--m-paper: #443d34;--m-bg: #36302a;--m-bg-2: #423b32;--m-ink: #ece5d4;--m-rule: #55504a;--m-rule-strong: #7a7269;--m-accent: #d4a368;--m-accent-soft: #5a4626;--surface-deep: oklch(.16 .005 75);--on-deep: oklch(.93 .012 75);--on-deep-muted: oklch(.74 .014 75);--on-deep-faint: oklch(.52 .014 75);--ink: oklch(.93 .012 75);--ink-2: oklch(.78 .014 75);--muted: oklch(.62 .012 75);--faint: oklch(.46 .014 75);--rule: oklch(.36 .006 75);--rule-strong: oklch(.48 .008 75);--rule-deep: oklch(.32 .008 75);--accent: oklch(.74 .1 70);--accent-deep: oklch(.6 .09 65);--accent-soft: oklch(.32 .06 70);--accent-glow: oklch(.74 .1 70 / .16);--on-accent: oklch(.18 .008 75);--noise-opacity: .022}*{box-sizing:border-box}html,body{margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:var(--sans);color:var(--ink);background:var(--bg);font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;font-feature-settings:"ss01","cv11";transition:background var(--t-base),color var(--t-base)}body:after{content:"";position:fixed;inset:0;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 160 160' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.82' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.5'/%3E%3C/svg%3E");mix-blend-mode:overlay;opacity:var(--noise-opacity);pointer-events:none;z-index:0}a{color:inherit;text-decoration:none}.wrap{position:relative;z-index:1;width:min(calc(100% - 48px),var(--col));margin:0 auto}header.top{position:sticky;top:0;z-index:30;background:color-mix(in oklch,var(--bg) 84%,transparent);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--rule);transition:background var(--t-base)}.top__inner{display:flex;align-items:center;justify-content:space-between;padding:14px 0;gap:16px}.mark{display:flex;align-items:center;gap:12px}.mark__name{font-family:var(--sans);font-weight:600;font-size:22px;letter-spacing:-.025em;color:var(--ink)}.mark__name span{color:var(--accent);font-weight:500}.top nav{font-family:var(--sans);font-size:14px;font-weight:500;display:flex;align-items:center;gap:4px}.top nav a.link{padding:8px 14px;color:var(--ink-2);border-radius:999px;transition:color var(--t-fast),background var(--t-fast)}.top nav a.link:hover,.top nav a.link[aria-current=page]{color:var(--ink);background:var(--bg-3)}.top nav a.cta{background:var(--ink);color:var(--bg);margin-left:6px;padding:9px 16px;border-radius:999px;transition:background var(--t-fast),transform var(--t-slow)}.top nav a.cta:hover{background:var(--accent-deep);color:var(--on-accent);transform:translateY(-1px)}.theme-toggle{appearance:none;background:transparent;border:1px solid var(--rule);color:var(--ink-2);width:38px;height:38px;border-radius:999px;cursor:pointer;display:grid;place-items:center;margin-left:4px;transition:color var(--t-fast),border-color var(--t-fast),background var(--t-fast)}.theme-toggle:hover{color:var(--ink);border-color:var(--rule-strong);background:var(--bg-3)}.theme-toggle svg{width:16px;height:16px}html[data-theme=light] .theme-toggle .moon{display:block}html[data-theme=light] .theme-toggle .sun,html[data-theme=dark] .theme-toggle .moon{display:none}html[data-theme=dark] .theme-toggle .sun{display:block}footer.site{padding:96px 0 56px;border-top:1px solid var(--rule);background:var(--bg)}footer.site .wrap.footer__top{display:grid;grid-template-columns:.55fr .45fr;gap:56px}footer.site .mark__name{font-family:var(--serif);font-weight:500;font-size:clamp(26px,3vw,40px);line-height:1;letter-spacing:-.035em;margin-bottom:20px}footer.site p.note{font-size:15px;color:var(--muted);max-width:48ch;margin:0;line-height:1.55}footer.site nav{display:flex;flex-direction:column;gap:10px;font-family:var(--mono);font-size:13px;text-align:right;align-self:end}footer.site nav a{color:var(--ink-2)}footer.site nav a:hover{color:var(--accent)}footer.site .colofon{margin-top:64px;padding-top:24px;border-top:1px solid var(--rule);font-family:var(--mono);font-size:11.5px;color:var(--faint);letter-spacing:.04em;display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px}html[data-theme=light] code,html[data-theme=light] code span{color:var(--shiki-light);font-style:var(--shiki-light-font-style);font-weight:var(--shiki-light-font-weight);text-decoration:var(--shiki-light-text-decoration)}html[data-theme=dark] code,html[data-theme=dark] code span{color:var(--shiki-dark);font-style:var(--shiki-dark-font-style);font-weight:var(--shiki-dark-font-weight);text-decoration:var(--shiki-dark-text-decoration)}.astro-code,pre.astro-code{background-color:var(--bg-2)!important;border:1px solid var(--rule);border-radius:var(--radius);padding:18px 20px;overflow-x:auto}.astro-code code,.astro-code code span{background-color:transparent!important}@media(max-width:680px){.top__inner{flex-wrap:wrap}.top nav{flex-wrap:wrap;gap:2px}.top nav a.link{padding:6px 10px}footer.site .wrap.footer__top{grid-template-columns:1fr;gap:32px}footer.site nav{text-align:left}}
