/* GERADO por scripts/emit-blog-css.mjs. Consumido pelos templates Django do /blog. */

@font-face {
  font-family: 'Montserrat Variable';
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url('/fonts/montserrat-latin-wght-normal.woff2') format('woff2-variations');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}

@font-face {
  font-family: 'Montserrat Variable';
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url('/fonts/montserrat-latin-ext-wght-normal.woff2') format('woff2-variations');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}

@font-face {
  font-family: 'JetBrains Mono Variable';
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url('/fonts/jetbrains-mono-latin-wght-normal.woff2') format('woff2-variations');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}

@font-face {
  font-family: 'JetBrains Mono Variable';
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url('/fonts/jetbrains-mono-latin-ext-wght-normal.woff2') format('woff2-variations');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}

/* GERADO por scripts/emit-tokens.mjs a partir de src/theme.ts. Nao editar. */

:root {
  --mui-spacing: 8px;
  --mui-shape-borderRadius: 10px;
  --mui-shadows-0: none;
  --mui-shadows-1: 0px 2px 1px -1px rgba(0,0,0,0.2),0px 1px 1px 0px rgba(0,0,0,0.14),0px 1px 3px 0px rgba(0,0,0,0.12);
  --mui-shadows-2: 0px 3px 1px -2px rgba(0,0,0,0.2),0px 2px 2px 0px rgba(0,0,0,0.14),0px 1px 5px 0px rgba(0,0,0,0.12);
  --mui-shadows-3: 0px 3px 3px -2px rgba(0,0,0,0.2),0px 3px 4px 0px rgba(0,0,0,0.14),0px 1px 8px 0px rgba(0,0,0,0.12);
  --mui-shadows-4: 0px 2px 4px -1px rgba(0,0,0,0.2),0px 4px 5px 0px rgba(0,0,0,0.14),0px 1px 10px 0px rgba(0,0,0,0.12);
  --mui-shadows-5: 0px 3px 5px -1px rgba(0,0,0,0.2),0px 5px 8px 0px rgba(0,0,0,0.14),0px 1px 14px 0px rgba(0,0,0,0.12);
  --mui-shadows-6: 0px 3px 5px -1px rgba(0,0,0,0.2),0px 6px 10px 0px rgba(0,0,0,0.14),0px 1px 18px 0px rgba(0,0,0,0.12);
  --mui-shadows-7: 0px 4px 5px -2px rgba(0,0,0,0.2),0px 7px 10px 1px rgba(0,0,0,0.14),0px 2px 16px 1px rgba(0,0,0,0.12);
  --mui-shadows-8: 0px 5px 5px -3px rgba(0,0,0,0.2),0px 8px 10px 1px rgba(0,0,0,0.14),0px 3px 14px 2px rgba(0,0,0,0.12);
  --mui-shadows-9: 0px 5px 6px -3px rgba(0,0,0,0.2),0px 9px 12px 1px rgba(0,0,0,0.14),0px 3px 16px 2px rgba(0,0,0,0.12);
  --mui-shadows-10: 0px 6px 6px -3px rgba(0,0,0,0.2),0px 10px 14px 1px rgba(0,0,0,0.14),0px 4px 18px 3px rgba(0,0,0,0.12);
  --mui-shadows-11: 0px 6px 7px -4px rgba(0,0,0,0.2),0px 11px 15px 1px rgba(0,0,0,0.14),0px 4px 20px 3px rgba(0,0,0,0.12);
  --mui-shadows-12: 0px 7px 8px -4px rgba(0,0,0,0.2),0px 12px 17px 2px rgba(0,0,0,0.14),0px 5px 22px 4px rgba(0,0,0,0.12);
  --mui-shadows-13: 0px 7px 8px -4px rgba(0,0,0,0.2),0px 13px 19px 2px rgba(0,0,0,0.14),0px 5px 24px 4px rgba(0,0,0,0.12);
  --mui-shadows-14: 0px 7px 9px -4px rgba(0,0,0,0.2),0px 14px 21px 2px rgba(0,0,0,0.14),0px 5px 26px 4px rgba(0,0,0,0.12);
  --mui-shadows-15: 0px 8px 9px -5px rgba(0,0,0,0.2),0px 15px 22px 2px rgba(0,0,0,0.14),0px 6px 28px 5px rgba(0,0,0,0.12);
  --mui-shadows-16: 0px 8px 10px -5px rgba(0,0,0,0.2),0px 16px 24px 2px rgba(0,0,0,0.14),0px 6px 30px 5px rgba(0,0,0,0.12);
  --mui-shadows-17: 0px 8px 11px -5px rgba(0,0,0,0.2),0px 17px 26px 2px rgba(0,0,0,0.14),0px 6px 32px 5px rgba(0,0,0,0.12);
  --mui-shadows-18: 0px 9px 11px -5px rgba(0,0,0,0.2),0px 18px 28px 2px rgba(0,0,0,0.14),0px 7px 34px 6px rgba(0,0,0,0.12);
  --mui-shadows-19: 0px 9px 12px -6px rgba(0,0,0,0.2),0px 19px 29px 2px rgba(0,0,0,0.14),0px 7px 36px 6px rgba(0,0,0,0.12);
  --mui-shadows-20: 0px 10px 13px -6px rgba(0,0,0,0.2),0px 20px 31px 3px rgba(0,0,0,0.14),0px 8px 38px 7px rgba(0,0,0,0.12);
  --mui-shadows-21: 0px 10px 13px -6px rgba(0,0,0,0.2),0px 21px 33px 3px rgba(0,0,0,0.14),0px 8px 40px 7px rgba(0,0,0,0.12);
  --mui-shadows-22: 0px 10px 14px -6px rgba(0,0,0,0.2),0px 22px 35px 3px rgba(0,0,0,0.14),0px 8px 42px 7px rgba(0,0,0,0.12);
  --mui-shadows-23: 0px 11px 14px -7px rgba(0,0,0,0.2),0px 23px 36px 3px rgba(0,0,0,0.14),0px 9px 44px 8px rgba(0,0,0,0.12);
  --mui-shadows-24: 0px 11px 15px -7px rgba(0,0,0,0.2),0px 24px 38px 3px rgba(0,0,0,0.14),0px 9px 46px 8px rgba(0,0,0,0.12);
  --mui-zIndex-mobileStepper: 1000;
  --mui-zIndex-fab: 1050;
  --mui-zIndex-speedDial: 1050;
  --mui-zIndex-appBar: 1100;
  --mui-zIndex-drawer: 1200;
  --mui-zIndex-modal: 1300;
  --mui-zIndex-snackbar: 1400;
  --mui-zIndex-tooltip: 1500;
  --mui-font-h1: 700 clamp(1.85rem, 1.2rem + 2.2vw, 2.6rem)/1.15 "Montserrat Variable", "Montserrat", system-ui, -apple-system, "Segoe UI", sans-serif;
  --mui-font-h2: 650 clamp(1.35rem, 1.1rem + 1vw, 1.7rem)/1.2 "Montserrat Variable", "Montserrat", system-ui, -apple-system, "Segoe UI", sans-serif;
  --mui-font-h3: 650 1.15rem/1.167 "Montserrat Variable", "Montserrat", system-ui, -apple-system, "Segoe UI", sans-serif;
  --mui-font-button: 600 0.875rem/1.75 "Montserrat Variable", "Montserrat", system-ui, -apple-system, "Segoe UI", sans-serif;
  --mui-font-h4: 400 2.125rem/1.235 "Montserrat Variable", "Montserrat", system-ui, -apple-system, "Segoe UI", sans-serif;
  --mui-font-h5: 400 1.5rem/1.334 "Montserrat Variable", "Montserrat", system-ui, -apple-system, "Segoe UI", sans-serif;
  --mui-font-h6: 500 1.25rem/1.6 "Montserrat Variable", "Montserrat", system-ui, -apple-system, "Segoe UI", sans-serif;
  --mui-font-subtitle1: 400 1rem/1.75 "Montserrat Variable", "Montserrat", system-ui, -apple-system, "Segoe UI", sans-serif;
  --mui-font-subtitle2: 500 0.875rem/1.57 "Montserrat Variable", "Montserrat", system-ui, -apple-system, "Segoe UI", sans-serif;
  --mui-font-body1: 400 1rem/1.5 "Montserrat Variable", "Montserrat", system-ui, -apple-system, "Segoe UI", sans-serif;
  --mui-font-body2: 400 0.875rem/1.43 "Montserrat Variable", "Montserrat", system-ui, -apple-system, "Segoe UI", sans-serif;
  --mui-font-caption: 400 0.75rem/1.66 "Montserrat Variable", "Montserrat", system-ui, -apple-system, "Segoe UI", sans-serif;
  --mui-font-overline: 400 0.75rem/2.66 "Montserrat Variable", "Montserrat", system-ui, -apple-system, "Segoe UI", sans-serif;
  --mui-font-inherit: inherit inherit/inherit inherit;
}

:root {
  color-scheme: dark;
  --mui-palette-primary-main: #2dd4bf;
  --mui-palette-primary-light: rgb(87, 220, 203);
  --mui-palette-primary-dark: rgb(31, 148, 133);
  --mui-palette-primary-contrastText: rgba(0, 0, 0, 0.87);
  --mui-palette-primary-mainChannel: 45 212 191;
  --mui-palette-primary-lightChannel: 87 220 203;
  --mui-palette-primary-darkChannel: 31 148 133;
  --mui-palette-primary-contrastTextChannel: 0 0 0;
  --mui-palette-secondary-main: #fbbf24;
  --mui-palette-secondary-light: rgb(251, 203, 79);
  --mui-palette-secondary-dark: rgb(175, 133, 25);
  --mui-palette-secondary-contrastText: rgba(0, 0, 0, 0.87);
  --mui-palette-secondary-mainChannel: 251 191 36;
  --mui-palette-secondary-lightChannel: 251 203 79;
  --mui-palette-secondary-darkChannel: 175 133 25;
  --mui-palette-secondary-contrastTextChannel: 0 0 0;
  --mui-palette-background-default: #0b1120;
  --mui-palette-background-paper: #111a2e;
  --mui-palette-background-defaultChannel: 11 17 32;
  --mui-palette-background-paperChannel: 17 26 46;
  --mui-palette-divider: rgba(148, 163, 184, 0.18);
  --mui-palette-text-primary: #e8eef7;
  --mui-palette-text-secondary: #94a3b8;
  --mui-palette-text-disabled: rgba(255, 255, 255, 0.5);
  --mui-palette-text-icon: rgba(255, 255, 255, 0.5);
  --mui-palette-text-primaryChannel: 232 238 247;
  --mui-palette-text-secondaryChannel: 148 163 184;
  --mui-palette-common-black: #000;
  --mui-palette-common-white: #fff;
  --mui-palette-common-background: #000;
  --mui-palette-common-onBackground: #fff;
  --mui-palette-common-backgroundChannel: 0 0 0;
  --mui-palette-common-onBackgroundChannel: 255 255 255;
  --mui-palette-error-main: #f44336;
  --mui-palette-error-light: #e57373;
  --mui-palette-error-dark: #d32f2f;
  --mui-palette-error-contrastText: #fff;
  --mui-palette-error-mainChannel: 244 67 54;
  --mui-palette-error-lightChannel: 229 115 115;
  --mui-palette-error-darkChannel: 211 47 47;
  --mui-palette-error-contrastTextChannel: 255 255 255;
  --mui-palette-warning-main: #ffa726;
  --mui-palette-warning-light: #ffb74d;
  --mui-palette-warning-dark: #f57c00;
  --mui-palette-warning-contrastText: rgba(0, 0, 0, 0.87);
  --mui-palette-warning-mainChannel: 255 167 38;
  --mui-palette-warning-lightChannel: 255 183 77;
  --mui-palette-warning-darkChannel: 245 124 0;
  --mui-palette-warning-contrastTextChannel: 0 0 0;
  --mui-palette-info-main: #29b6f6;
  --mui-palette-info-light: #4fc3f7;
  --mui-palette-info-dark: #0288d1;
  --mui-palette-info-contrastText: rgba(0, 0, 0, 0.87);
  --mui-palette-info-mainChannel: 41 182 246;
  --mui-palette-info-lightChannel: 79 195 247;
  --mui-palette-info-darkChannel: 2 136 209;
  --mui-palette-info-contrastTextChannel: 0 0 0;
  --mui-palette-success-main: #66bb6a;
  --mui-palette-success-light: #81c784;
  --mui-palette-success-dark: #388e3c;
  --mui-palette-success-contrastText: rgba(0, 0, 0, 0.87);
  --mui-palette-success-mainChannel: 102 187 106;
  --mui-palette-success-lightChannel: 129 199 132;
  --mui-palette-success-darkChannel: 56 142 60;
  --mui-palette-success-contrastTextChannel: 0 0 0;
  --mui-palette-grey-50: #fafafa;
  --mui-palette-grey-100: #f5f5f5;
  --mui-palette-grey-200: #eeeeee;
  --mui-palette-grey-300: #e0e0e0;
  --mui-palette-grey-400: #bdbdbd;
  --mui-palette-grey-500: #9e9e9e;
  --mui-palette-grey-600: #757575;
  --mui-palette-grey-700: #616161;
  --mui-palette-grey-800: #424242;
  --mui-palette-grey-900: #212121;
  --mui-palette-grey-A100: #f5f5f5;
  --mui-palette-grey-A200: #eeeeee;
  --mui-palette-grey-A400: #bdbdbd;
  --mui-palette-grey-A700: #616161;
  --mui-palette-action-active: #fff;
  --mui-palette-action-hover: rgba(255, 255, 255, 0.08);
  --mui-palette-action-hoverOpacity: 0.08;
  --mui-palette-action-selected: rgba(255, 255, 255, 0.16);
  --mui-palette-action-selectedOpacity: 0.16;
  --mui-palette-action-disabled: rgba(255, 255, 255, 0.3);
  --mui-palette-action-disabledBackground: rgba(255, 255, 255, 0.12);
  --mui-palette-action-disabledOpacity: 0.38;
  --mui-palette-action-focus: rgba(255, 255, 255, 0.12);
  --mui-palette-action-focusOpacity: 0.12;
  --mui-palette-action-activatedOpacity: 0.24;
  --mui-palette-action-activeChannel: 255 255 255;
  --mui-palette-action-selectedChannel: 255 255 255;
  --mui-palette-Alert-errorColor: rgb(244, 199, 199);
  --mui-palette-Alert-infoColor: rgb(184, 231, 251);
  --mui-palette-Alert-successColor: rgb(204, 232, 205);
  --mui-palette-Alert-warningColor: rgb(255, 226, 183);
  --mui-palette-Alert-errorFilledBg: var(--mui-palette-error-dark, #d32f2f);
  --mui-palette-Alert-infoFilledBg: var(--mui-palette-info-dark, #0288d1);
  --mui-palette-Alert-successFilledBg: var(--mui-palette-success-dark, #388e3c);
  --mui-palette-Alert-warningFilledBg: var(--mui-palette-warning-dark, #f57c00);
  --mui-palette-Alert-errorFilledColor: #fff;
  --mui-palette-Alert-infoFilledColor: #fff;
  --mui-palette-Alert-successFilledColor: #fff;
  --mui-palette-Alert-warningFilledColor: rgba(0, 0, 0, 0.87);
  --mui-palette-Alert-errorStandardBg: rgb(22, 11, 11);
  --mui-palette-Alert-infoStandardBg: rgb(7, 19, 24);
  --mui-palette-Alert-successStandardBg: rgb(12, 19, 13);
  --mui-palette-Alert-warningStandardBg: rgb(25, 18, 7);
  --mui-palette-Alert-errorIconColor: var(--mui-palette-error-main, #f44336);
  --mui-palette-Alert-infoIconColor: var(--mui-palette-info-main, #29b6f6);
  --mui-palette-Alert-successIconColor: var(--mui-palette-success-main, #66bb6a);
  --mui-palette-Alert-warningIconColor: var(--mui-palette-warning-main, #ffa726);
  --mui-palette-AppBar-defaultBg: var(--mui-palette-grey-900, #212121);
  --mui-palette-Avatar-defaultBg: var(--mui-palette-grey-600, #757575);
  --mui-palette-Button-inheritContainedBg: var(--mui-palette-grey-800, #424242);
  --mui-palette-Button-inheritContainedHoverBg: var(--mui-palette-grey-700, #616161);
  --mui-palette-Chip-defaultBorder: var(--mui-palette-grey-700, #616161);
  --mui-palette-Chip-defaultAvatarColor: var(--mui-palette-grey-300, #e0e0e0);
  --mui-palette-Chip-defaultIconColor: var(--mui-palette-grey-300, #e0e0e0);
  --mui-palette-FilledInput-bg: rgba(255, 255, 255, 0.09);
  --mui-palette-FilledInput-hoverBg: rgba(255, 255, 255, 0.13);
  --mui-palette-FilledInput-disabledBg: rgba(255, 255, 255, 0.12);
  --mui-palette-LinearProgress-primaryBg: rgb(22, 106, 95);
  --mui-palette-LinearProgress-secondaryBg: rgb(125, 95, 18);
  --mui-palette-LinearProgress-errorBg: rgb(122, 33, 27);
  --mui-palette-LinearProgress-infoBg: rgb(20, 91, 123);
  --mui-palette-LinearProgress-successBg: rgb(51, 93, 53);
  --mui-palette-LinearProgress-warningBg: rgb(127, 83, 19);
  --mui-palette-Skeleton-bg: rgba(var(--mui-palette-text-primaryChannel, undefined) / 0.13);
  --mui-palette-Slider-primaryTrack: rgb(22, 106, 95);
  --mui-palette-Slider-secondaryTrack: rgb(125, 95, 18);
  --mui-palette-Slider-errorTrack: rgb(122, 33, 27);
  --mui-palette-Slider-infoTrack: rgb(20, 91, 123);
  --mui-palette-Slider-successTrack: rgb(51, 93, 53);
  --mui-palette-Slider-warningTrack: rgb(127, 83, 19);
  --mui-palette-SnackbarContent-bg: rgb(250, 250, 250);
  --mui-palette-SnackbarContent-color: rgba(0, 0, 0, 0.87);
  --mui-palette-SpeedDialAction-fabHoverBg: rgb(52, 60, 77);
  --mui-palette-StepConnector-border: var(--mui-palette-grey-600, #757575);
  --mui-palette-StepContent-border: var(--mui-palette-grey-600, #757575);
  --mui-palette-Switch-defaultColor: var(--mui-palette-grey-300, #e0e0e0);
  --mui-palette-Switch-defaultDisabledColor: var(--mui-palette-grey-600, #757575);
  --mui-palette-Switch-primaryDisabledColor: rgb(20, 95, 85);
  --mui-palette-Switch-secondaryDisabledColor: rgb(112, 85, 16);
  --mui-palette-Switch-errorDisabledColor: rgb(109, 30, 24);
  --mui-palette-Switch-infoDisabledColor: rgb(18, 81, 110);
  --mui-palette-Switch-successDisabledColor: rgb(45, 84, 47);
  --mui-palette-Switch-warningDisabledColor: rgb(114, 75, 17);
  --mui-palette-TableCell-border: rgba(47, 52, 58, 1);
  --mui-palette-Tooltip-bg: rgba(97, 97, 97, 0.92);
  --mui-palette-dividerChannel: 148 163 184;
  --mui-opacity-inputPlaceholder: 0.5;
  --mui-opacity-inputUnderline: 0.7;
  --mui-opacity-switchTrackDisabled: 0.2;
  --mui-opacity-switchTrack: 0.3;
  --mui-overlays-0: none;
  --mui-overlays-1: linear-gradient(rgba(255 255 255 / 0.051), rgba(255 255 255 / 0.051));
  --mui-overlays-2: linear-gradient(rgba(255 255 255 / 0.069), rgba(255 255 255 / 0.069));
  --mui-overlays-3: linear-gradient(rgba(255 255 255 / 0.082), rgba(255 255 255 / 0.082));
  --mui-overlays-4: linear-gradient(rgba(255 255 255 / 0.092), rgba(255 255 255 / 0.092));
  --mui-overlays-5: linear-gradient(rgba(255 255 255 / 0.101), rgba(255 255 255 / 0.101));
  --mui-overlays-6: linear-gradient(rgba(255 255 255 / 0.108), rgba(255 255 255 / 0.108));
  --mui-overlays-7: linear-gradient(rgba(255 255 255 / 0.114), rgba(255 255 255 / 0.114));
  --mui-overlays-8: linear-gradient(rgba(255 255 255 / 0.119), rgba(255 255 255 / 0.119));
  --mui-overlays-9: linear-gradient(rgba(255 255 255 / 0.124), rgba(255 255 255 / 0.124));
  --mui-overlays-10: linear-gradient(rgba(255 255 255 / 0.128), rgba(255 255 255 / 0.128));
  --mui-overlays-11: linear-gradient(rgba(255 255 255 / 0.132), rgba(255 255 255 / 0.132));
  --mui-overlays-12: linear-gradient(rgba(255 255 255 / 0.135), rgba(255 255 255 / 0.135));
  --mui-overlays-13: linear-gradient(rgba(255 255 255 / 0.139), rgba(255 255 255 / 0.139));
  --mui-overlays-14: linear-gradient(rgba(255 255 255 / 0.142), rgba(255 255 255 / 0.142));
  --mui-overlays-15: linear-gradient(rgba(255 255 255 / 0.145), rgba(255 255 255 / 0.145));
  --mui-overlays-16: linear-gradient(rgba(255 255 255 / 0.147), rgba(255 255 255 / 0.147));
  --mui-overlays-17: linear-gradient(rgba(255 255 255 / 0.15), rgba(255 255 255 / 0.15));
  --mui-overlays-18: linear-gradient(rgba(255 255 255 / 0.152), rgba(255 255 255 / 0.152));
  --mui-overlays-19: linear-gradient(rgba(255 255 255 / 0.155), rgba(255 255 255 / 0.155));
  --mui-overlays-20: linear-gradient(rgba(255 255 255 / 0.157), rgba(255 255 255 / 0.157));
  --mui-overlays-21: linear-gradient(rgba(255 255 255 / 0.159), rgba(255 255 255 / 0.159));
  --mui-overlays-22: linear-gradient(rgba(255 255 255 / 0.161), rgba(255 255 255 / 0.161));
  --mui-overlays-23: linear-gradient(rgba(255 255 255 / 0.163), rgba(255 255 255 / 0.163));
  --mui-overlays-24: linear-gradient(rgba(255 255 255 / 0.165), rgba(255 255 255 / 0.165));
  --mui-palette-AppBar-darkBg: var(--mui-palette-background-paper, #111a2e);
  --mui-palette-AppBar-darkColor: var(--mui-palette-text-primary, #e8eef7);
}

:root {
  --font-sans: "Montserrat Variable", "Montserrat", system-ui, -apple-system, "Segoe UI", sans-serif;
  --font-mono: "JetBrains Mono Variable", "JetBrains Mono", ui-monospace, "SF Mono", Menlo, monospace;
}



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

html {
  -webkit-text-size-adjust: 100%;
  scroll-behavior: smooth;
}

body {
  margin: 0;
  font-family: var(--font-sans);
  font-size: 1rem;
  line-height: 1.6;
  color: var(--mui-palette-text-primary);
  background: var(--mui-palette-background-default);
  -webkit-font-smoothing: antialiased;
}

a {
  color: var(--mui-palette-primary-main);
  text-decoration-thickness: 1px;
  text-underline-offset: 2px;
}

a:hover {
  text-decoration-color: currentColor;
}

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

:where(h1, h2, h3, h4) {
  line-height: 1.2;
  letter-spacing: -0.015em;
  margin: 0 0 0.5em;
}

h1 {
  font-size: clamp(1.85rem, 1.2rem + 2.2vw, 2.6rem);
  font-weight: 700;
}

h2 {
  font-size: clamp(1.35rem, 1.1rem + 1vw, 1.7rem);
  font-weight: 650;
  margin-top: 2em;
}

h3 {
  font-size: 1.15rem;
  font-weight: 650;
  margin-top: 1.5em;
}

/* ---------- layout ---------- */

.container {
  width: 100%;
  max-width: 1120px;
  margin-inline: auto;
  padding-inline: clamp(1rem, 4vw, 2rem);
}

.site-header {
  position: sticky;
  top: 0;
  z-index: 10;
  background: color-mix(in srgb, var(--mui-palette-background-default) 88%, transparent);
  backdrop-filter: blur(8px);
  border-bottom: 1px solid var(--mui-palette-divider);
}

.site-header__inner {
  display: flex;
  align-items: center;
  gap: 1.25rem;
  min-height: 60px;
}

.brand {
  display: inline-flex;
  align-items: baseline;
  gap: 0.35rem;
  font-family: var(--font-mono);
  font-weight: 700;
  font-size: 1.05rem;
  color: var(--mui-palette-text-primary);
  text-decoration: none;
  white-space: nowrap;
}

.brand__accent {
  color: var(--mui-palette-primary-main);
}

.nav {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin-left: auto;
  flex-wrap: wrap;
}

.nav a {
  color: var(--mui-palette-text-secondary);
  text-decoration: none;
  font-size: 0.925rem;
  font-weight: 500;
  padding: 0.35rem 0;
  border-bottom: 2px solid transparent;
}

.nav a:hover,
.nav a[aria-current='page'] {
  color: var(--mui-palette-text-primary);
  border-bottom-color: var(--mui-palette-primary-main);
}

.nav__sep {
  width: 1px;
  height: 18px;
  background: var(--mui-palette-divider);
}



main {
  display: block;
  padding-block: clamp(1.5rem, 4vw, 3rem);
  min-height: 60vh;
}

.site-footer {
  border-top: 1px solid var(--mui-palette-divider);
  margin-top: 4rem;
  padding-block: 2rem;
  color: var(--mui-palette-text-secondary);
  font-size: 0.875rem;
}

.site-footer__inner {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem 2rem;
  align-items: center;
  justify-content: space-between;
}

.site-footer a {
  color: var(--mui-palette-text-secondary);
}

/* ---------- prosa (SEO, blog, currículo) ---------- */

.prose {
  max-width: 68ch;
}

.prose p,
.prose ul,
.prose ol {
  margin-block: 0 1em;
}

.prose ul,
.prose ol {
  padding-left: 1.25rem;
}

.prose li + li {
  margin-top: 0.35em;
}

.prose :where(code):not(pre code) {
  background: var(--mui-palette-action-hover);
  padding: 0.15em 0.4em;
  border-radius: 5px;
}

.prose pre {
  background: var(--mui-palette-action-hover);
  border: 1px solid var(--mui-palette-divider);
  border-radius: var(--mui-shape-borderRadius);
  padding: 1rem;
  overflow-x: auto;
}

.hero-comment {
  font-family: var(--font-mono);
  font-size: 0.82rem;
  color: #64748b;
  margin: 0 0 0.6rem;
}

.lede {
  font-size: 1.075rem;
  color: var(--mui-palette-text-secondary);
  max-width: 68ch;
}

/* ---------- listagem de ferramentas ---------- */

.finder {
  margin-block: 1.75rem;
  font-family: var(--font-mono);
}

.prompt {
  display: flex;
  align-items: center;
  font-size: 0.95rem;
  margin-bottom: 1.25rem;
}

.prompt__user {
  color: var(--mui-palette-primary-main);
}

.prompt__punct {
  color: #64748b;
}

.prompt__path {
  color: var(--mui-palette-text-secondary);
}

.prompt__input {
  min-width: 0;
  width: 20rem;
  max-width: 100%;
  margin-left: 0.55rem;
  border: 0;
  border-bottom: 1px solid var(--mui-palette-divider);
  padding: 0.2rem 0.4rem;
  background: var(--mui-palette-action-hover);
  color: var(--mui-palette-text-primary);
  font-family: inherit;
  font-size: inherit;
  caret-color: var(--mui-palette-secondary-main);
}

.prompt__input:hover {
  border-bottom-color: var(--mui-palette-text-secondary);
}

.prompt__input:focus {
  outline: none;
  border-bottom-color: var(--mui-palette-primary-main);
  background: color-mix(in srgb, var(--mui-palette-primary-main) 8%, transparent);
}

.prompt__input::placeholder {
  color: var(--mui-palette-text-secondary);
  opacity: 1;
}

/* A dica fica ao lado do campo, não enterrada no rodapé da tabela. */
.prompt__kbd {
  margin-left: 0.7rem;
  font-size: 0.75rem;
  color: #475569;
  white-space: nowrap;
}




.rows__head,
.row__link {
  display: grid;
  grid-template-columns: 9rem minmax(9rem, 15rem) 1fr 4.5rem;
  gap: 0 1.5rem;
  align-items: baseline;
}

.rows__head {
  padding: 0 0.5rem 0.4rem;
  font-size: 0.7rem;
  letter-spacing: 0.08em;
  color: #64748b;
  border-bottom: 1px solid var(--mui-palette-divider);
}

.group {
  margin: 0;
}

.group__label {
  margin: 0;
  padding: 0.9rem 0.5rem 0.25rem;
  font-family: var(--font-mono);
  font-size: 0.78rem;
  font-weight: 400;
  color: #475569;
  letter-spacing: 0;
}

.group__rows {
  list-style: none;
  margin: 0;
  padding: 0;
}

.row__link {
  padding: 0.3rem 0.5rem;
  font-size: 0.86rem;
  text-decoration: none;
  color: inherit;
  border-left: 2px solid transparent;
}

.row__link:hover,
.row__link:focus-visible {
  background: var(--mui-palette-action-hover);
  border-left-color: var(--mui-palette-primary-main);
  outline: none;
}

.row__key {
  color: var(--mui-palette-primary-main);
  overflow-wrap: anywhere;
}

.row__name {
  color: var(--mui-palette-text-primary);
}

.row__desc {
  color: var(--mui-palette-text-secondary);
}

.row__mode {
  color: var(--mui-palette-primary-main);
}

.row__mode--proxy {
  color: var(--mui-palette-secondary-main);
}

.finder__foot {
  margin: 1.4rem 0 0;
  padding-top: 0.9rem;
  border-top: 1px solid var(--mui-palette-divider);
  font-size: 0.8rem;
  color: #64748b;
}

.finder__sep {
  margin-inline: 0.5rem;
}

.finder__hint {
  color: var(--mui-palette-text-secondary);
}

.finder__empty {
  margin-top: 0.9rem;
  font-size: 0.85rem;
  color: var(--mui-palette-text-secondary);
}

@media (max-width: 720px) {
  .rows__head {
    display: none;
  }

  .row__link {
    grid-template-columns: 1fr 4.5rem;
    gap: 0.15rem 1rem;
  }

  .row__desc {
    grid-column: 1 / -1;
  }
}

/* ---------- ilha ---------- */

/* Altura reservada: sem isso a ilha empurra o conteúdo ao montar. */
.island {
  min-height: 420px;
  margin-block: 1.5rem 2.5rem;
}

.island__fallback {
  display: grid;
  place-items: center;
  min-height: 420px;
  border: 1px dashed var(--mui-palette-divider);
  border-radius: var(--mui-shape-borderRadius);
  color: var(--mui-palette-text-secondary);
  font-size: 0.9rem;
}

/* ---------- anúncios ---------- */

.ad-slot {
  display: grid;
  place-items: center;
  margin-block: 2rem;
  border: 1px dashed var(--mui-palette-divider);
  border-radius: var(--mui-shape-borderRadius);
  color: var(--mui-palette-text-secondary);
  font-size: 0.75rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  overflow: hidden;
}

.ad-slot--leaderboard {
  min-height: 100px;
}

.ad-slot--inline {
  min-height: 250px;
}

/* Linha de comentário, não card com barra de acento. */
.note {
  font-family: var(--font-mono);
  font-size: 0.82rem;
  color: #64748b;
  margin-block: 1.5rem;
}

.note--proxy {
  color: var(--mui-palette-secondary-main);
}

/* ---------- FAQ ---------- */

.faq details {
  border-bottom: 1px solid var(--mui-palette-divider);
  padding-block: 0.85rem;
}

.faq summary {
  cursor: pointer;
  font-weight: 600;
  list-style: none;
}

.faq summary::-webkit-details-marker {
  display: none;
}

.faq summary::before {
  content: '+';
  display: inline-block;
  width: 1.2em;
  color: var(--mui-palette-primary-main);
  font-family: var(--font-mono);
}

.faq details[open] summary::before {
  content: '−';
}

.faq details > *:not(summary) {
  margin-top: 0.6rem;
  color: var(--mui-palette-text-secondary);
  max-width: 68ch;
}

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

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

/* ---------- currículo ---------- */

.skills {
  display: grid;
  grid-template-columns: minmax(140px, auto) 1fr;
  gap: 0.5rem 1.5rem;
  margin: 0;
  font-size: 0.925rem;
}

.skills dt {
  font-weight: 650;
  color: var(--mui-palette-text-primary);
}

.skills dd {
  margin: 0;
  color: var(--mui-palette-text-secondary);
}

.job {
  padding-block: 0.9rem;
  border-bottom: 1px solid var(--mui-palette-divider);
}

.job:last-child {
  border-bottom: 0;
}

.job__head {
  display: flex;
  flex-wrap: wrap;
  gap: 0.25rem 1rem;
  align-items: baseline;
  justify-content: space-between;
}

.job__title {
  margin: 0;
  font-size: 1.02rem;
}

.job__role {
  font-weight: 400;
  color: var(--mui-palette-text-secondary);
}

.job__role::before {
  content: '· ';
}

.job__period {
  font-family: var(--font-mono);
  font-size: 0.8rem;
  color: var(--mui-palette-text-secondary);
  white-space: nowrap;
}

.job__bullets {
  margin: 0.5rem 0 0;
  padding-left: 1.15rem;
  max-width: 74ch;
}

.job__bullets li {
  margin-bottom: 0.3rem;
  color: var(--mui-palette-text-secondary);
  font-size: 0.94rem;
  line-height: 1.55;
}

@media print {
  .site-header,
  .site-footer,
  .ad-slot {
    display: none;
  }

  body {
    background: #fff;
    color: #000;
  }
}


/* Só o /blog usa: não entra no bundle do Astro, vai em public/blog.css. */

.post-list {
  list-style: none;
  padding: 0;
  margin: 2rem 0 0;
  max-width: 72ch;
}

.post-item {
  padding-block: 1.35rem;
  border-bottom: 1px solid var(--mui-palette-divider);
}

.post-item:last-child {
  border-bottom: 0;
}

.post-item__title {
  margin: 0 0 0.35rem;
  font-size: 1.3rem;
}

.post-item__title a {
  color: var(--mui-palette-text-primary);
  text-decoration: none;
}

.post-item__title a:hover {
  color: var(--mui-palette-primary-main);
}

.post-item__meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem;
  margin: 0 0 0.5rem;
  font-family: var(--font-mono);
  font-size: 0.78rem;
  color: var(--mui-palette-text-secondary);
}

.post-item__excerpt {
  margin: 0;
  color: var(--mui-palette-text-secondary);
  max-width: 68ch;
}

.post-tag {
  padding: 0.1rem 0.45rem;
  border: 1px solid var(--mui-palette-divider);
  border-radius: 999px;
  font-size: 0.72rem;
}

.post-body {
  margin-top: 2rem;
}

.post-body h2,
.post-body h3 {
  scroll-margin-top: 80px;
}

.post-body img {
  max-width: 100%;
  height: auto;
  border-radius: var(--mui-shape-borderRadius);
}

.post-body blockquote {
  margin: 1.5rem 0;
  padding-left: 1rem;
  border-left: 3px solid var(--mui-palette-primary-main);
  color: var(--mui-palette-text-secondary);
}

.post-body table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.925rem;
  display: block;
  overflow-x: auto;
}

.post-body th,
.post-body td {
  border: 1px solid var(--mui-palette-divider);
  padding: 0.45rem 0.65rem;
  text-align: left;
}

/* ---------- realce de código (Pygments) ---------- */

.highlight {
  background: var(--mui-palette-action-hover);
  border: 1px solid var(--mui-palette-divider);
  border-radius: var(--mui-shape-borderRadius);
  overflow-x: auto;
}

.highlight pre {
  margin: 0;
  padding: 1rem;
  background: transparent;
  border: 0;
}

.highlight .c, .highlight .c1, .highlight .cm, .highlight .cs, .highlight .ch {
  color: var(--mui-palette-text-secondary);
  font-style: italic;
}

.highlight .k, .highlight .kd, .highlight .kn, .highlight .kp, .highlight .kr, .highlight .kt, .highlight .kc {
  color: var(--mui-palette-secondary-main);
  font-weight: 600;
}

.highlight .s, .highlight .s1, .highlight .s2, .highlight .sb, .highlight .sc, .highlight .sd,
.highlight .se, .highlight .sh, .highlight .si, .highlight .sx, .highlight .sr, .highlight .ss {
  color: var(--mui-palette-success-main);
}

.highlight .m, .highlight .mi, .highlight .mf, .highlight .mh, .highlight .mo, .highlight .il {
  color: var(--mui-palette-info-main);
}

.highlight .nf, .highlight .nc, .highlight .nn, .highlight .nd {
  color: var(--mui-palette-primary-main);
}

.highlight .nb, .highlight .bp {
  color: var(--mui-palette-info-main);
}

.highlight .o, .highlight .ow, .highlight .p {
  color: var(--mui-palette-text-primary);
}

.highlight .err {
  color: var(--mui-palette-error-main);
}

.highlight .gd {
  color: var(--mui-palette-error-main);
}

.highlight .gi {
  color: var(--mui-palette-success-main);
}
