@font-face {
    font-family: "Spline Sans Mono";
    font-style: normal;
    font-weight: 100 900;
    font-display: swap;
    src: url("/assets/spline-regular.woff2") format("woff2");
}

:root {
    --bg: #f0eee9;
    --bg-elevated: #f5f3ee;
    --ink: #1a1a18;
    --ink-soft: #3a3a36;
    --muted: #6b6b66;
    --muted-2: #8a8a84;
    --line: #d8d6d0;
    --line-strong: #c4c2bb;
    --terminal: #0c0c0b;
    --terminal-2: #131312;
    --accent: #4a9eff;
    --accent-soft: color-mix(in srgb, var(--accent) 10%, transparent);
    --green: #2d9f52;
    --yellow: #b8860b;
    --red: #c73e3e;
    --radius-lg: 6px;
    --radius-md: 4px;
    --radius-sm: 2px;
    --max: 1160px;
    --mono: "SF Mono", "Spline Sans Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    --body: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    --term-bg: #1a1d22;
    --term-sidebar-bg: #15181d;
    --term-active-bg: #20242c;
    --term-border: #2b3038;
    --term-text: #c8cdd4;
    --term-muted: #5a6068;
    --term-prompt: #4a9eff;
    --term-cmd: #8ecf7a;
    --term-str: #e6c060;
    --logo-filter: none;
    --logo-opacity: 0.72;
}

[data-palette="catppuccin"] {
  --bg: #11111b; --bg-elevated: #181825; --ink: #f5e0dc; --ink-soft: #cdd6f4;
  --muted: #9399b2; --muted-2: #6c7086; --line: #313244; --line-strong: #45475a;
  --accent: #89b4fa; --green: #a6e3a1; --yellow: #f9e2af; --red: #f38ba8;
  --term-bg: #11111b; --term-active-bg: #1e1e2e; --term-border: #313244; --term-text: #cdd6f4; --term-muted: #6c7086; --term-prompt: #89b4fa;
  --term-cmd: #a6e3a1; --term-str: #f9e2af;
}
[data-palette="catppuccin-latte"] {
  --bg: #eff1f5; --bg-elevated: #e6e9ef; --ink: #1e1e2e; --ink-soft: #4c4f69;
  --muted: #6c6f85; --muted-2: #9ca0b0; --line: #ccd0da; --line-strong: #bcc0cc;
  --accent: #1e66f5; --green: #40a02b; --yellow: #df8e1d; --red: #d20f39;
  --term-bg: #eff1f5; --term-active-bg: #dce0e8; --term-border: #ccd0da; --term-text: #4c4f69; --term-muted: #9ca0b0; --term-prompt: #1e66f5;
  --term-cmd: #40a02b; --term-str: #df8e1d;
}
[data-palette="terminal"] {
  --bg: #000000; --bg-elevated: #080808; --ink: #ffffff; --ink-soft: #d8d8d8;
  --muted: #888888; --muted-2: #555555; --line: #1a1a1a; --line-strong: #2a2a2a;
  --accent: #4a9eff; --green: #55d66b; --yellow: #e6d55a; --red: #ff6b6b;
  --term-bg: #000000; --term-active-bg: #101010; --term-border: #1a1a1a; --term-text: #d8d8d8; --term-muted: #555555; --term-prompt: #4a9eff;
  --term-cmd: #55d66b; --term-str: #e6d55a;
}
[data-palette="tokyo-night"] {
  --bg: #1a1b26; --bg-elevated: #202331; --ink: #d5dcff; --ink-soft: #c0caf5;
  --muted: #737aa2; --muted-2: #565f89; --line: #2f3549; --line-strong: #414868;
  --accent: #7aa2f7; --green: #9ece6a; --yellow: #e0af68; --red: #f7768e;
  --term-bg: #1a1b26; --term-active-bg: #24283b; --term-border: #2f3549; --term-text: #c0caf5; --term-muted: #565f89; --term-prompt: #7aa2f7;
  --term-cmd: #9ece6a; --term-str: #e0af68;
}
[data-palette="tokyo-night-day"] {
  --bg: #e1e2e7; --bg-elevated: #d8d9e0; --ink: #1f2f66; --ink-soft: #3760bf;
  --muted: #68709a; --muted-2: #8990b3; --line: #b6bbd1; --line-strong: #a8aecb;
  --accent: #2e7de9; --green: #587539; --yellow: #8c6c3e; --red: #f52a65;
  --term-bg: #e1e2e7; --term-active-bg: #c4c8da; --term-border: #b6bbd1; --term-text: #3760bf; --term-muted: #8990b3; --term-prompt: #2e7de9;
  --term-cmd: #587539; --term-str: #8c6c3e;
}
[data-palette="dracula"] {
  --bg: #282a36; --bg-elevated: #303241; --ink: #ffffff; --ink-soft: #f8f8f2;
  --muted: #8a91b4; --muted-2: #6272a4; --line: #44475a; --line-strong: #6272a4;
  --accent: #bd93f9; --green: #50fa7b; --yellow: #f1fa8c; --red: #ff5555;
  --term-bg: #282a36; --term-active-bg: #383a4a; --term-border: #44475a; --term-text: #f8f8f2; --term-muted: #6272a4; --term-prompt: #bd93f9;
  --term-cmd: #50fa7b; --term-str: #f1fa8c;
}
[data-palette="alucard"] {
  --bg: #fffbeb; --bg-elevated: #ece9df; --ink: #1f1f1f; --ink-soft: #1f1f1f;
  --muted: #6c664b; --muted-2: #9a9585; --line: #ceccc0; --line-strong: #bcbab3;
  --accent: #644ac9; --green: #14710a; --yellow: #846e15; --red: #cb3a2a;
  --term-bg: #fffbeb; --term-active-bg: #dedccf; --term-border: #ceccc0; --term-text: #1f1f1f; --term-muted: #9a9585; --term-prompt: #644ac9;
  --term-cmd: #14710a; --term-str: #846e15;
}
[data-palette="nord"] {
  --bg: #2e3440; --bg-elevated: #343b49; --ink: #ffffff; --ink-soft: #eceff4;
  --muted: #8792a8; --muted-2: #5f6a80; --line: #434c5e; --line-strong: #4c566a;
  --accent: #88c0d0; --green: #a3be8c; --yellow: #ebcb8b; --red: #bf616a;
  --term-bg: #2e3440; --term-active-bg: #3b4252; --term-border: #434c5e; --term-text: #eceff4; --term-muted: #5f6a80; --term-prompt: #88c0d0;
  --term-cmd: #a3be8c; --term-str: #ebcb8b;
}
[data-palette="gruvbox"] {
  --bg: #282828; --bg-elevated: #32302f; --ink: #fbf1c7; --ink-soft: #ebdbb2;
  --muted: #a89984; --muted-2: #928374; --line: #504945; --line-strong: #665c54;
  --accent: #d79921; --green: #b8bb26; --yellow: #fabd2f; --red: #fb4934;
  --term-bg: #282828; --term-active-bg: #3c3836; --term-border: #504945; --term-text: #ebdbb2; --term-muted: #928374; --term-prompt: #d79921;
  --term-cmd: #b8bb26; --term-str: #fabd2f;
}
[data-palette="gruvbox-light"] {
  --bg: #fbf1c7; --bg-elevated: #f2e5bc; --ink: #282828; --ink-soft: #3c3836;
  --muted: #665c54; --muted-2: #928374; --line: #d5c4a1; --line-strong: #bdae93;
  --accent: #076678; --green: #79740e; --yellow: #b57614; --red: #9d0006;
  --term-bg: #fbf1c7; --term-active-bg: #ebdbb2; --term-border: #d5c4a1; --term-text: #3c3836; --term-muted: #928374; --term-prompt: #076678;
  --term-cmd: #79740e; --term-str: #b57614;
}
[data-palette="one-dark"] {
  --bg: #282c34; --bg-elevated: #2c313a; --ink: #d7dae0; --ink-soft: #abb2bf;
  --muted: #7f848e; --muted-2: #5c6370; --line: #3e4451; --line-strong: #4b5263;
  --accent: #61afef; --green: #98c379; --yellow: #e5c07b; --red: #e06c75;
  --term-bg: #282c34; --term-active-bg: #323842; --term-border: #3e4451; --term-text: #abb2bf; --term-muted: #5c6370; --term-prompt: #61afef;
  --term-cmd: #98c379; --term-str: #e5c07b;
}
[data-palette="one-light"] {
  --bg: #fafafa; --bg-elevated: #f5f5f6; --ink: #202228; --ink-soft: #383a42;
  --muted: #686b77; --muted-2: #a0a1a7; --line: #e5e5e6; --line-strong: #d5d7de;
  --accent: #4078f2; --green: #50a14f; --yellow: #c18401; --red: #e45649;
  --term-bg: #fafafa; --term-active-bg: #f0f0f1; --term-border: #e5e5e6; --term-text: #383a42; --term-muted: #a0a1a7; --term-prompt: #4078f2;
  --term-cmd: #50a14f; --term-str: #c18401;
}
[data-palette="solarized"] {
  --bg: #002b36; --bg-elevated: #073642; --ink: #eee8d5; --ink-soft: #93a1a1;
  --muted: #839496; --muted-2: #586e75; --line: #164a57; --line-strong: #586e75;
  --accent: #268bd2; --green: #859900; --yellow: #b58900; --red: #dc322f;
  --term-bg: #002b36; --term-active-bg: #0b3d4a; --term-border: #164a57; --term-text: #93a1a1; --term-muted: #586e75; --term-prompt: #268bd2;
  --term-cmd: #859900; --term-str: #b58900;
}
[data-palette="solarized-light"] {
  --bg: #fdf6e3; --bg-elevated: #eee8d5; --ink: #073642; --ink-soft: #657b83;
  --muted: #586e75; --muted-2: #93a1a1; --line: #d6ceb8; --line-strong: #93a1a1;
  --accent: #268bd2; --green: #859900; --yellow: #b58900; --red: #dc322f;
  --term-bg: #fdf6e3; --term-active-bg: #e6dec8; --term-border: #d6ceb8; --term-text: #657b83; --term-muted: #93a1a1; --term-prompt: #268bd2;
  --term-cmd: #859900; --term-str: #b58900;
}
[data-palette="kanagawa"] {
  --bg: #1f1f28; --bg-elevated: #252532; --ink: #f3ead3; --ink-soft: #dcd7ba;
  --muted: #8f8d80; --muted-2: #727169; --line: #363646; --line-strong: #54546d;
  --accent: #7e9cd8; --green: #76946a; --yellow: #c0a36e; --red: #c34043;
  --term-bg: #1f1f28; --term-active-bg: #2a2a37; --term-border: #363646; --term-text: #dcd7ba; --term-muted: #727169; --term-prompt: #7e9cd8;
  --term-cmd: #76946a; --term-str: #c0a36e;
}
[data-palette="kanagawa-lotus"] {
  --bg: #f2ecbc; --bg-elevated: #e5ddb0; --ink: #2a2a37; --ink-soft: #545464;
  --muted: #77736a; --muted-2: #a09cac; --line: #cbcbd1; --line-strong: #b7b2a0;
  --accent: #4d699b; --green: #6f894e; --yellow: #77713f; --red: #c84053;
  --term-bg: #f2ecbc; --term-active-bg: #dcd5ac; --term-border: #cbcbd1; --term-text: #545464; --term-muted: #a09cac; --term-prompt: #4d699b;
  --term-cmd: #6f894e; --term-str: #77713f;
}
[data-palette="rose-pine"] {
  --bg: #191724; --bg-elevated: #1f1d2e; --ink: #f4f0ff; --ink-soft: #e0def4;
  --muted: #908caa; --muted-2: #6e6a86; --line: #312f45; --line-strong: #403d52;
  --accent: #c4a7e7; --green: #9ccfd8; --yellow: #f6c177; --red: #eb6f92;
  --term-bg: #191724; --term-active-bg: #26233a; --term-border: #312f45; --term-text: #e0def4; --term-muted: #6e6a86; --term-prompt: #c4a7e7;
  --term-cmd: #9ccfd8; --term-str: #f6c177;
}
[data-palette="rose-pine-dawn"] {
  --bg: #faf4ed; --bg-elevated: #f2e9e1; --ink: #191724; --ink-soft: #464261;
  --muted: #797593; --muted-2: #9893a5; --line: #e6ded7; --line-strong: #d8d0ca;
  --accent: #907aa9; --green: #56949f; --yellow: #ea9d34; --red: #b4637a;
  --term-bg: #faf4ed; --term-active-bg: #fffaf3; --term-border: #e6ded7; --term-text: #464261; --term-muted: #9893a5; --term-prompt: #907aa9;
  --term-cmd: #56949f; --term-str: #ea9d34;
}
[data-palette="vesper"] {
  --bg: #101010; --bg-elevated: #1a1a1a; --ink: #ffffff; --ink-soft: #ffffff;
  --muted: #7e7e7e; --muted-2: #5c5c5c; --line: #282828; --line-strong: #343434;
  --accent: #ffc799; --green: #99ffe4; --yellow: #ffc799; --red: #ff8080;
  --term-bg: #101010; --term-active-bg: #232323; --term-border: #282828; --term-text: #ffffff; --term-muted: #5c5c5c; --term-prompt: #ffc799;
  --term-cmd: #99ffe4; --term-str: #ffc799;
}
[data-palette="everforest"] {
  --bg: #2d353b; --bg-elevated: #343f44; --ink: #e3dac4; --ink-soft: #d3c6aa;
  --muted: #9da9a0; --muted-2: #7a8478; --line: #475258; --line-strong: #56635f;
  --accent: #a7c080; --green: #83c092; --yellow: #dbbc7f; --red: #e67e80;
  --term-bg: #2d353b; --term-active-bg: #3d484d; --term-border: #475258; --term-text: #d3c6aa; --term-muted: #7a8478; --term-prompt: #a7c080;
  --term-cmd: #83c092; --term-str: #dbbc7f;
}
[data-palette="everforest-light"] {
  --bg: #fdf6e3; --bg-elevated: #f4f0d9; --ink: #2d353b; --ink-soft: #5c6a72;
  --muted: #829181; --muted-2: #a6b0a0; --line: #e0dcc7; --line-strong: #bdc3af;
  --accent: #8da101; --green: #35a77c; --yellow: #dfa000; --red: #f85552;
  --term-bg: #fdf6e3; --term-active-bg: #efebd4; --term-border: #e0dcc7; --term-text: #5c6a72; --term-muted: #a6b0a0; --term-prompt: #8da101;
  --term-cmd: #35a77c; --term-str: #dfa000;
}
[data-palette="ayu"] {
  --bg: #10141c; --bg-elevated: #141821; --ink: #d9d7d0; --ink-soft: #bfbdb6;
  --muted: #6c7380; --muted-2: #555e73; --line: #1b1f29; --line-strong: #475266;
  --accent: #e6b450; --green: #aad94c; --yellow: #e6c08a; --red: #d95757;
  --term-bg: #10141c; --term-active-bg: #161a24; --term-border: #1b1f29; --term-text: #bfbdb6; --term-muted: #555e73; --term-prompt: #e6b450;
  --term-cmd: #aad94c; --term-str: #e6c08a;
}
[data-palette="ayu-light"] {
  --bg: #fcfcfc; --bg-elevated: #f8f9fa; --ink: #10141c; --ink-soft: #5c6166;
  --muted: #828e9f; --muted-2: #adaeb1; --line: #eaedef; --line-strong: #d1d6dc;
  /* Ayu Light's own accent (#f29718) is a UI fill, not a text color -- it
     lands under 2.5:1 on --bg, so links would be unreadable. Using syntax
     .entity from the same upstream ramp, which is Ayu Light's link color. */
  --accent: #399ee6; --green: #86b300; --yellow: #f2a300; --red: #e65050;
  --term-bg: #fcfcfc; --term-active-bg: #e8ebef; --term-border: #eaedef; --term-text: #5c6166; --term-muted: #adaeb1; --term-prompt: #399ee6;
  --term-cmd: #86b300; --term-str: #f2a300;
}
[data-palette="github-dark"] {
  --bg: #0d1117; --bg-elevated: #161b22; --ink: #f0f6fc; --ink-soft: #e6edf3;
  --muted: #8b949e; --muted-2: #6e7681; --line: #30363d; --line-strong: #484f58;
  --accent: #58a6ff; --green: #3fb950; --yellow: #d29922; --red: #f85149;
  --term-bg: #0d1117; --term-active-bg: #21262d; --term-border: #30363d; --term-text: #e6edf3; --term-muted: #6e7681; --term-prompt: #58a6ff;
  --term-cmd: #3fb950; --term-str: #d29922;
}
[data-palette="github-light"] {
  --bg: #ffffff; --bg-elevated: #f6f8fa; --ink: #010409; --ink-soft: #1f2328;
  --muted: #656d76; --muted-2: #8c959f; --line: #d0d7de; --line-strong: #afb8c1;
  --accent: #0969da; --green: #1a7f37; --yellow: #9a6700; --red: #cf222e;
  --term-bg: #ffffff; --term-active-bg: #eaeef2; --term-border: #d0d7de; --term-text: #1f2328; --term-muted: #8c959f; --term-prompt: #0969da;
  --term-cmd: #1a7f37; --term-str: #9a6700;
}
[data-palette="monokai"] {
  --bg: #272822; --bg-elevated: #2f302a; --ink: #f8f8f2; --ink-soft: #f8f8f0;
  --muted: #8f908a; --muted-2: #75715e; --line: #49483e; --line-strong: #75715e;
  --accent: #e6db74; --green: #a6e22e; --yellow: #fd971f; --red: #f92672;
  --term-bg: #272822; --term-active-bg: #3e3d32; --term-border: #49483e; --term-text: #f8f8f0; --term-muted: #75715e; --term-prompt: #e6db74;
  --term-cmd: #a6e22e; --term-str: #fd971f;
}
[data-palette="night-owl"] {
  --bg: #011627; --bg-elevated: #0b2942; --ink: #c5e4fd; --ink-soft: #d6deeb;
  --muted: #637777; --muted-2: #4b6479; --line: #1d3b53; --line-strong: #5f7e97;
  --accent: #82aaff; --green: #addb67; --yellow: #ecc48d; --red: #ef5350;
  --term-bg: #011627; --term-active-bg: #0e293f; --term-border: #1d3b53; --term-text: #d6deeb; --term-muted: #4b6479; --term-prompt: #82aaff;
  --term-cmd: #addb67; --term-str: #ecc48d;
}
[data-palette="night-owl-light"] {
  /* Light Owl's own mid-greys top out at 2.43:1 on its background, so --muted
     borrows #5f7e97 from Night Owl proper -- same extension, same family, the
     way catppuccin-latte takes its --ink from Mocha. */
  --bg: #fbfbfb; --bg-elevated: #f6f6f6; --ink: #011627; --ink-soft: #403f53;
  --muted: #5f7e97; --muted-2: #90a7b2; --line: #e0e0e0; --line-strong: #d9d9d9;
  --accent: #4876d6; --green: #08916a; --yellow: #daaa01; --red: #e64d49;
  --term-bg: #fbfbfb; --term-active-bg: #e0e7ea; --term-border: #e0e0e0; --term-text: #403f53; --term-muted: #90a7b2; --term-prompt: #4876d6;
  --term-cmd: #08916a; --term-str: #daaa01;
}
[data-palette="oxocarbon"] {
  --bg: #161616; --bg-elevated: #262626; --ink: #ffffff; --ink-soft: #f2f4f8;
  --muted: #8d8d8d; --muted-2: #6f6f6f; --line: #393939; --line-strong: #525252;
  --accent: #33b1ff; --green: #42be65; --yellow: #ff832b; --red: #ee5396;
  --term-bg: #161616; --term-active-bg: #333333; --term-border: #393939; --term-text: #f2f4f8; --term-muted: #6f6f6f; --term-prompt: #33b1ff;
  --term-cmd: #42be65; --term-str: #ff832b;
}
[data-palette="oxocarbon-light"] {
  --bg: #f2f4f8; --bg-elevated: #ffffff; --ink: #161616; --ink-soft: #393939;
  --muted: #525252; --muted-2: #8d8d8d; --line: #dde1e6; --line-strong: #c6c6c6;
  --accent: #0f62fe; --green: #42be65; --yellow: #ff6f00; --red: #ee5396;
  --term-bg: #f2f4f8; --term-active-bg: #e5e9ee; --term-border: #dde1e6; --term-text: #393939; --term-muted: #8d8d8d; --term-prompt: #0f62fe;
  --term-cmd: #42be65; --term-str: #ff6f00;
}
[data-palette="poimandres"] {
  --bg: #1b1e28; --bg-elevated: #252b37; --ink: #ffffff; --ink-soft: #e4f0fb;
  --muted: #a6accd; --muted-2: #767c9d; --line: #303340; --line-strong: #506477;
  --accent: #89ddff; --green: #5de4c7; --yellow: #fffac2; --red: #d0679d;
  --term-bg: #1b1e28; --term-active-bg: #2a2f3d; --term-border: #303340; --term-text: #e4f0fb; --term-muted: #767c9d; --term-prompt: #89ddff;
  --term-cmd: #5de4c7; --term-str: #fffac2;
}
[data-palette="palenight"] {
  --bg: #292d3e; --bg-elevated: #31364a; --ink: #ffffff; --ink-soft: #eeffff;
  --muted: #a6accd; --muted-2: #676e95; --line: #2e3245; --line-strong: #4e5579;
  --accent: #82aaff; --green: #c3e88d; --yellow: #ffcb6b; --red: #f07178;
  --term-bg: #292d3e; --term-active-bg: #313850; --term-border: #2e3245; --term-text: #eeffff; --term-muted: #676e95; --term-prompt: #82aaff;
  --term-cmd: #c3e88d; --term-str: #ffcb6b;
}

[data-palette="catppuccin"],
[data-palette="terminal"],
[data-palette="tokyo-night"],
[data-palette="dracula"],
[data-palette="nord"],
[data-palette="gruvbox"],
[data-palette="one-dark"],
[data-palette="solarized"],
[data-palette="kanagawa"],
[data-palette="rose-pine"],
[data-palette="vesper"],
[data-palette="everforest"],
[data-palette="ayu"],
[data-palette="github-dark"],
[data-palette="monokai"],
[data-palette="night-owl"],
[data-palette="oxocarbon"],
[data-palette="poimandres"],
[data-palette="palenight"] {
  --logo-filter: invert(1) hue-rotate(180deg) brightness(1.08) contrast(0.9) saturate(1.05);
  --logo-opacity: 0.72;
}

*,
*::before,
*::after {
    box-sizing: border-box;
}

html {
    background: var(--bg);
    color: var(--ink);
    font-family: var(--mono);
    font-size: 16px;
    line-height: 1.65;
    -webkit-font-smoothing: antialiased;
    scroll-behavior: smooth;
}

body {
    margin: 0;
    min-width: 320px;
    background: var(--bg);
}

img, video {
    max-width: 100%;
    display: block;
}

button, a {
    font: inherit;
}

a {
    color: inherit;
    text-decoration: none;
}

a:hover {
    color: var(--accent);
}

code, pre, kbd, samp {
    font-family: var(--mono);
}

::selection {
    background: var(--accent-soft);
}

/* ===== Overlay (shared by theme switcher and search) ===== */

.theme-overlay {
    position: fixed;
    inset: 0;
    z-index: 100;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(0, 0, 0, 0.15);
    backdrop-filter: blur(1px);
}

.theme-overlay[hidden] { display: none; }

.theme-overlay-panel {
    width: min(480px, calc(100vw - 2rem));
    max-height: calc(100vh - 4rem);
    display: flex;
    flex-direction: column;
    overflow: hidden;
    border: 2px solid var(--accent);
    border-radius: 2px;
    background: var(--term-bg);
    font-family: var(--mono);
    color: var(--term-text);
    box-shadow: 0 24px 80px rgba(0, 0, 0, 0.4);
}

.theme-overlay-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.55rem 1rem;
    border-top: 1px solid var(--term-border);
    color: var(--term-muted);
    font-size: 0.72rem;
    font-weight: 400;
}

.theme-overlay-actions {
    display: inline-flex;
    align-items: center;
    gap: 1rem;
    margin-left: auto;
}

.theme-overlay-footer .key {
    color: var(--term-muted);
    font-weight: 700;
}

.theme-close-btn {
    border: 0;
    border-radius: 1px;
    background: var(--term-active-bg);
    color: var(--term-muted);
    padding: 0.15rem 0.5rem;
    font-family: inherit;
    font-size: inherit;
    font-weight: 700;
    cursor: pointer;
}

.theme-close-btn:hover,
.theme-close-btn:focus-visible {
    outline: none;
    color: var(--term-text);
    background: var(--term-border);
}

/* ===== Layout ===== */

.section {
    max-width: var(--max);
    margin: 0 auto;
    padding-inline: 1.25rem;
}

.section {
    padding-top: 5rem;
    padding-bottom: 5rem;
    border-top: 1px solid var(--line);
}

/* ===== Status dots ===== */

.eyebrow {
    margin: 0 0 1rem;
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    color: var(--muted);
    font-family: var(--mono);
    font-size: 0.78rem;
    font-weight: 600;
    letter-spacing: 0.06em;
}

.status-dot {
    display: inline-block;
    width: 0.5rem;
    height: 0.5rem;
    border-radius: 50%;
    flex: 0 0 auto;
}

.dot-blue { background: var(--accent); }

/* ===== Hero ===== */

.hero-lede {
    max-width: 600px;
    margin: 1.25rem 0 0;
    color: var(--ink-soft);
    font-size: clamp(1rem, 1.8vw, 1.18rem);
    line-height: 1.6;
}

/* ===== Page hero (commits, init) ===== */

.content-shell {
    padding-bottom: 5rem;
}

.page-hero {
    max-width: var(--max);
    margin: 0 auto;
    padding: 5rem 1.25rem 2.25rem;
}

.page-hero h1 {
    max-width: 14ch;
    margin: 0;
    color: var(--accent);
    font-family: var(--mono);
    font-weight: 400;
    font-size: clamp(2.8rem, 7vw, 6rem);
    line-height: 0.92;
    letter-spacing: -0.07em;
}

.page-hero .hero-lede {
    max-width: 680px;
    color: var(--muted);
}

/* ===== Blog post list ===== */

.post-list {
    display: grid;
}

.tag {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.14rem 0.6rem;
    border: 1px solid var(--line-strong);
    border-radius: 999px;
    color: var(--muted);
    font-family: var(--mono);
    font-size: 0.7rem;
    font-weight: 600;
    line-height: 1.4;
    text-decoration: none;
    transition: color 120ms ease, border-color 120ms ease, background 120ms ease;
}

.tag:hover {
    color: var(--accent);
    border-color: color-mix(in srgb, var(--accent) 45%, var(--line-strong));
    background: var(--accent-soft);
}

.inline-links a:hover {
    border-color: var(--accent);
    color: var(--accent);
    background: var(--accent-soft);
}

/* ===== Animations ===== */

@keyframes type-cursor-blink {
    50% { opacity: 0; }
}

.visually-hidden {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    overflow: hidden;
    clip-path: inset(50%);
    white-space: nowrap;
    border: 0;
}

.section > .hero-actions {
    margin-top: 2.25rem;
}

/* Phones: tighten the big desktop whitespace so pages start (and sections
   meet) closer to the viewport. */
@media (max-width: 640px) {
    .page-hero {
        padding-top: 2.75rem;
        padding-bottom: 1.75rem;
    }

    .section {
        padding-top: 3rem;
        padding-bottom: 3rem;
    }

    .content-shell {
        padding-bottom: 3rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        scroll-behavior: auto !important;
        animation-duration: 0.001ms !important;
        animation-iteration-count: 1 !important;
    }
}
