/**
 * Color Palette
 *
 * Structure:
 *  1. Raw color scales  – named by hue + numeric weight (100–900)
 *  2. Semantic tokens   – role-based aliases that reference the scales
 *  3. Surface tokens    – background / surface / overlay layers
 *  4. Social media      – brand colors kept in one place
 *
 * Usage: always consume semantic tokens in components, never raw scales directly.
 */

/* ============================================================
   1. RAW COLOR SCALES
   ============================================================ */

:root {

  /* BASE colors */
  --color-white: #ffffff;
  --color-black: #000000;
  --color-red: #ff0000;
  --color-green: #00ff00;
  --color-blue: #0000ff;
  --color-yellow: #ffff00;
  --color-cyan: #00ffff;
  --color-magenta: #ff00ff;
  --color-gray: #808080;
  --color-transparent: rgba(0, 0, 0, 0);

  /* --- Teal (primary brand hue) --- */
  --color-teal-50:  #fffffe;
  --color-teal-100: #d0f0f4;
  --color-teal-150: #b8e8ef;
  --color-teal-200: #a1e1ea;
  --color-teal-250: #87d6e2;
  --color-teal-300: #6dcbda;
  --color-teal-350: #56c0d0;
  --color-teal-400: #3eb5c7;
  --color-teal-450: #2daebf;
  --color-teal-500: #1ca7b7;
  --color-teal-550: #1c91a0;
  --color-teal-600: #1c7b8a;
  --color-teal-650: #186d7b;
  --color-teal-700: #155f6c;
  --color-teal-750: #12525e;
  --color-teal-800: #0e4450;
  --color-teal-850: #0a3742;
  --color-teal-900: #072a33;

  /* --- Orange / Red (accent, CTA) --- */
  --color-orange-50:  #fffeff;
  --color-orange-100: #ffe4d8;
  --color-orange-150: #ffd7c4;
  --color-orange-200: #ffcab1;
  --color-orange-250: #ffba9a;
  --color-orange-300: #ffaa83;
  --color-orange-350: #ff996e;
  --color-orange-400: #ff885a;
  --color-orange-450: #ff723b;
  --color-orange-500: #ff5d1c; 
  --color-orange-550: #f05112;
  --color-orange-600: #e04508;
  --color-orange-650: #ca3d07;
  --color-orange-700: #b33506;
  --color-orange-750: #9c2e05;
  --color-orange-800: #862604;
  --color-orange-850: #701f03;
  --color-orange-900: #591802;

  /* --- Red (danger / error) --- */
  --color-red-50:    #ffffff;
  --color-red-100:   #fde8e8;
  --color-red-150:   #fcd6d6;
  --color-red-200:   #fbc5c5;
  --color-red-250:   #f9aeae;
  --color-red-300:   #f79898;
  --color-red-350:   #f58080;
  --color-red-400:   #f36767;
  --color-red-450:   #f35050;
  --color-red-500:   #f33939; 
  --color-red-550:   #e42c2c;
  --color-red-600:   #d42020;
  --color-red-650:   #be1c1c;
  --color-red-700:   #a81818;
  --color-red-750:   #921414;
  --color-red-800:   #7d1111;
  --color-red-850:   #680e0e;
  --color-red-900:   #520b0b;

  /* --- Yellow (tags, highlights) --- */
  --color-yellow-50:  #ffffff;
  --color-yellow-100: #fef9d8;
  --color-yellow-150: #fef6c4;
  --color-yellow-200: #fdf2af;
  --color-yellow-250: #fcee98;
  --color-yellow-300: #fbe980;
  --color-yellow-350: #fae46f;
  --color-yellow-400: #fade5e;
  --color-yellow-450: #f9dc52;
  --color-yellow-500: #f8da46;
  --color-yellow-550: #e6c730;
  --color-yellow-600: #d4b41a;
  --color-yellow-650: #bda016;
  --color-yellow-700: #a68c12;
  --color-yellow-750: #90780f;
  --color-yellow-800: #79650c;
  --color-yellow-850: #62520a;
  --color-yellow-900: #4c3e07;

  /* --- Green (success, positive) --- */
  --color-green-50:  #fffff5;
  --color-green-100: #e8f5c8;
  --color-green-150: #dcefb2;
  --color-green-200: #cfe99b;
  --color-green-250: #c0e183;
  --color-green-300: #b1d96b;
  --color-green-350: #a0d054;
  --color-green-400: #90c63c;
  --color-green-450: #80b61e;
  --color-green-500: #6fa701;
  --color-green-550: #629401;
  --color-green-600: #568201;
  --color-green-650: #4b7101;
  --color-green-700: #406001;
  --color-green-750: #365000;
  --color-green-800: #2c4100;
  --color-green-850: #223200;
  --color-green-900: #182300;

  /* --- Pink (secondary accent) --- */
  --color-pink-50:   #fffeff;
  --color-pink-100:  #ffe4f1;
  --color-pink-150:  #ffd7ea;
  --color-pink-200:  #ffcae3;
  --color-pink-250:  #ffb9db;
  --color-pink-300:  #ffa8d3;
  --color-pink-350:  #ff99ca;
  --color-pink-400:  #ff8ac0;
  --color-pink-450:  #ff7cb4;
  --color-pink-500:  #ff6fa9;
  --color-pink-550:  #f05f9a;
  --color-pink-600:  #e04f8c;
  --color-pink-650:  #ca427e;
  --color-pink-700:  #b33470;
  --color-pink-750:  #9c2962;
  --color-pink-800:  #861e54;
  --color-pink-850:  #701646;
  --color-pink-900:  #590d38;

  /* --- Brown (links) --- */
  --color-brown-50:  #ffffff;
  --color-brown-100: #f5e4d2;
  --color-brown-150: #eed6bb;
  --color-brown-200: #e8c8a4;
  --color-brown-250: #deb68b;
  --color-brown-300: #d5a472;
  --color-brown-350: #cc9159;
  --color-brown-400: #c37e40;
  --color-brown-450: #bb6c26;
  --color-brown-500: #b35a0c;   
  --color-brown-550: #a0500a;
  --color-brown-600: #8e4609;
  --color-brown-650: #7c3d08;
  --color-brown-700: #6a3407;
  --color-brown-750: #582c06;
  --color-brown-800: #472304;
  --color-brown-850: #361a03;
  --color-brown-900: #241202;

  /* --- Neutral / Gray --- */
  --color-gray-0:    #ffffff;
  --color-gray-50:   #fafafa;
  --color-gray-100:  #f5f5f9;
  --color-gray-150:  #f0f0f0;
  --color-gray-200:  #e8e8e8;
  --color-gray-250:  #dcdcdc;
  --color-gray-300:  #d0d0d0;
  --color-gray-350:  #c0c0c0;
  --color-gray-400:  #b0b0b0;
  --color-gray-450:  #9d9d9d;
  --color-gray-500:  #8a8a8a;
  --color-gray-550:  #7a7a7a;
  --color-gray-600:  #6a6a6a;
  --color-gray-650:  #5e5e5e;
  --color-gray-700:  #525252;
  --color-gray-750:  #4e4e4e;
  --color-gray-800:  #4a4a4a;
  --color-gray-850:  #333333;
  --color-gray-900:  #1a1a1a;
  --color-gray-950:  #0d0d0d;
  --color-gray-1000: #000000;

  /* --- Light Blue (info background) --- */
  --color-blue-50:  #f0f6ff;
  --color-blue-100: #e7f0fe;
  --color-blue-150: #d6e4fd;
  --color-blue-200: #c5d9fc;
  --color-blue-250: #aecafb;
  --color-blue-300: #97bcfa;
  --color-blue-350: #7eaaf8;
  --color-blue-400: #6699f7;
  --color-blue-450: #5187f5;
  --color-blue-500: #3d76f4;
  --color-blue-550: #2d66e4;
  --color-blue-600: #1d57d4;
  --color-blue-650: #194cba;
  --color-blue-700: #1541a0;
  --color-blue-750: #113788;
  --color-blue-800: #0e2e70;
  --color-blue-850: #0a255a;
  --color-blue-900: #071c44;
}

/* ============================================================
   2. SEMANTIC TOKENS  (role → scale alias)
   ============================================================ */

:root {

  /* -- Primary -------------------------------------------- */
  --color-primary:          var(--color-teal-500);
  --color-primary-hover:    var(--color-teal-600);
  --color-primary-active:   var(--color-teal-700);
  --color-primary-subtle:   var(--color-teal-100);
  --color-primary-contrast: var(--color-gray-0);

  /* -- Secondary (pink) ----------------------------------- */
  --color-secondary:          var(--color-pink-500);
  --color-secondary-hover:    var(--color-pink-600);
  --color-secondary-active:   var(--color-pink-700);
  --color-secondary-subtle:   var(--color-pink-100);
  --color-secondary-contrast: var(--color-gray-0);

  /* -- Accent (orange) ------------------------------------ */
  --color-accent:          var(--color-orange-500);
  --color-accent-hover:    var(--color-orange-600);
  --color-accent-active:   var(--color-orange-700);
  --color-accent-subtle:   var(--color-orange-100);
  --color-accent-contrast: var(--color-gray-0);

  /* -- Success -------------------------------------------- */
  --color-success:          var(--color-green-500);
  --color-success-hover:    var(--color-green-600);
  --color-success-subtle:   var(--color-green-100);
  --color-success-contrast: var(--color-gray-0);

  /* -- Warning -------------------------------------------- */
  --color-warning:          var(--color-yellow-500);
  --color-warning-hover:    var(--color-yellow-600);
  --color-warning-subtle:   var(--color-yellow-100);
  --color-warning-contrast: var(--color-gray-900);

  /* -- Danger / Error ------------------------------------- */
  --color-danger:          var(--color-red-500);
  --color-danger-hover:    var(--color-red-600);
  --color-danger-subtle:   var(--color-red-100);
  --color-danger-contrast: var(--color-gray-0);

  /* -- Info ----------------------------------------------- */
  --color-info:          var(--color-blue-500);
  --color-info-hover:    var(--color-blue-600);
  --color-info-subtle:   var(--color-blue-100);
  --color-info-contrast: var(--color-gray-0);

  /* -- Text ----------------------------------------------- */
  --color-text-default:   var(--color-gray-800);
  --color-text-muted:     var(--color-gray-700);
  --color-text-subtle:    var(--color-gray-500);
  --color-text-disabled:  var(--color-gray-400);
  --color-text-inverse:   var(--color-gray-0);
  --color-text-heading:   var(--color-gray-900);
  --color-text-link:      var(--color-brown-500);
  --color-text-link-hover:var(--color-brown-700);

  /* -- Border --------------------------------------------- */
  --color-border:         var(--color-gray-300);
  --color-border-light:   var(--color-gray-150);
  --color-border-strong:  var(--color-gray-500);
  --color-border-focus:   var(--color-teal-500);

  /* -- Tag / Badge ---------------------------------------- */
  --color-tag-bg:         var(--color-yellow-500);
  --color-tag-text:       var(--color-gray-900);
  --color-tag-bg-hover:   var(--color-yellow-600);
}

/* ============================================================
   3. SURFACE TOKENS
   ============================================================ */

:root {
  --color-surface-page:     var(--color-gray-0);
  --color-surface-default:  var(--color-gray-50);
  --color-surface-subtle:   var(--color-gray-100);
  --color-surface-muted:    var(--color-gray-150);
  --color-surface-raised:   var(--color-gray-0);
  --color-surface-overlay:  rgba(0, 0, 0, 0.5);
  --color-surface-invert:   var(--color-gray-900);
}

/* ============================================================
   4. SOCIAL MEDIA BRAND COLORS
   ============================================================ */

:root {
  --color-facebook:   #3b5998;
  --color-twitter:    #00aced;
  --color-whatsapp:   #25d366;
  --color-telegram:   #29b6f6;
  --color-pinterest:  #bd081c;
  --color-reddit:     #ff5700;
  --color-linkedin:   #0077b5;
  --color-get-pocket: #ef4056;
  --color-email:      #404040;
  --color-copy-link:  #c9c8c8;
}

:root {
  --color-blue: var(--color-teal-600);
  --color-blue-light: var(--color-teal-400);
  --color-pink: var(--color-pink-500);

  --color-black: var(--color-gray-800);
  --color-red: var(--color-orange-500);

  --color-brown: var(--color-brown-500);
  --color-grey: var(--color-gray-700);
  --color-grey-light: var(--color-gray-150);
  --color-yellow: var(--color-yellow-500);
  --color-primary: var(--color-teal-500);
  --color-white: var(--color-gray-0);

  --color-orange: var(--color-orange-500);
  --color-green: var(--color-green-500);

  --color-gray-100: #f5f5f9;
  --color-gray-200: #f0f0f0;
  --color-gray-300: #d0d0d0;

  --color-light-blue: var(--color-blue-100);

  --font-sans: 'Arial', 'Tahoma', sans-serif;
  --font-serif: 'Georgia', 'Times New Roman', serif;

  --color-facebook: #3b5998;
  --color-twitter: #00aced;
  --color-email: #404040;
  --color-linkedin: #0077B5;
  --color-pinterest: #bd081c;
  --color-reddit: #FF5700;
  --color-whatsapp: #25d366;
  --color-get-pocket: #ef4056;
  --color-telegram: #29b6f6;
  --color-copy-link: #c9c8c8;

  /* Width */
  --max-width: 1180px; /* 1200px */
  --container-width: 1180px; /* 1200px */

  --header-bar-height: 50px;

  /* Borders */
  --border-color-light: var(--color-gray-150);

  --link-color: var(--color-brown-500);
  --link-color-light: var(--color-gray-700);

  --socials-column-count: 2;


  --font-size: 13px;
  --font-size-sm: 12px;
  --font-size-s: 14px;
  --font-size-m: 15px;
  --font-size-l: 18px;
  --font-size-xl: 24px;

  --margin-inner: 8px;
  --margin-bottom-basic: 1em;


  --padding-bottom-large: 1em;
  --padding-inner: 1em;

  --tag-link-color: var(--color-gray-800);
  --tag-link-color-hover: var(--color-gray-0);
  --tag-link-bg-color: var(--color-yellow-500);

  --navigation-link-color: var(--color-teal-600);

  --background-color-default: var(--color-gray-0);

  --widget-headline-color: var(--color-gray-800);

  /* content text styles */
  --normal-text-size: 20px;
  --normal-line-height: 150%;


  /* section */
  --section-max-width: var(--max-width);
  --section-padding-v: 0.25em;
  --section-padding-h: 1em;

  --grid-container-wrap: wrap;
  --grid-container-width: 100%;

  --border-color: var(--color-gray-100);


  --teaser-link-color: var(--color-gray-800);
}

@media screen and (min-width: 768px) {
  :root {
    --socials-column-count: 5;
    --padding-bottom-large: 2em;
    --font-size: 17px;
    --font-size-m: 17px;
  }
}

@media screen and (min-width: 960px) {
  :root {
    --section-padding-v: 0.5em;

    --grid-container-wrap: nowrap;
    --grid-container-width: 70%;

    --font-size-l: 24px;
    --font-size-xl: 32px;
  }
}

@media screen and (min-width: 1200px) {
  :root {
    --padding-inner: 0em;

    --font-size-l: 32px;
    --font-size-xl: 48px;
  }
}

@media screen and (min-width: 1440px) {
  :root {
    --section-padding-h: 0;
  }
}

/*! normalize.css v4.1.1 | MIT License | github.com/necolas/normalize.css */

/**
 * 1. Change the default font family in all browsers (opinionated).
 * 2. Prevent adjustments of font size after orientation changes in IE and iOS.
 */

html {
  font-family: sans-serif; /* 1 */
  -ms-text-size-adjust: 100%; /* 2 */
  -webkit-text-size-adjust: 100%; /* 2 */
}

/**
 * Remove the margin in all browsers (opinionated).
 */

body {
  margin: 0;
}

/* HTML5 display definitions
   ========================================================================== */

/**
 * Add the correct display in IE 9-.
 * 1. Add the correct display in Edge, IE, and Firefox.
 * 2. Add the correct display in IE.
 */

article,
aside,
details, /* 1 */
figcaption,
figure,
footer,
header,
main, /* 2 */
menu,
nav,
section,
summary { /* 1 */
  display: block;
}

/**
 * Add the correct display in IE 9-.
 */

audio,
canvas,
progress,
video {
  display: inline-block;
}

/**
 * Add the correct display in iOS 4-7.
 */

audio:not([controls]) {
  display: none;
  height: 0;
}

/**
 * Add the correct vertical alignment in Chrome, Firefox, and Opera.
 */

progress {
  vertical-align: baseline;
}

/**
 * Add the correct display in IE 10-.
 * 1. Add the correct display in IE.
 */

template, /* 1 */
[hidden] {
  display: none;
}

/* Links
   ========================================================================== */

/**
 * 1. Remove the gray background on active links in IE 10.
 * 2. Remove gaps in links underline in iOS 8+ and Safari 8+.
 */

a {
  background-color: transparent; /* 1 */
  -webkit-text-decoration-skip: objects; /* 2 */
}

/**
 * Remove the outline on focused links when they are also active or hovered
 * in all browsers (opinionated).
 */

a:active,
a:hover {
  outline-width: 0;
}

/* Text-level semantics
   ========================================================================== */

/**
 * 1. Remove the bottom border in Firefox 39-.
 * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
 */

abbr[title] {
  border-bottom: none; /* 1 */
  text-decoration: underline; /* 2 */
  text-decoration: underline dotted; /* 2 */
}

/**
 * Prevent the duplicate application of `bolder` by the next rule in Safari 6.
 */

b,
strong {
  font-weight: inherit;
}

/**
 * Add the correct font weight in Chrome, Edge, and Safari.
 */

b,
strong {
  font-weight: bolder;
}

/**
 * Add the correct font style in Android 4.3-.
 */

dfn {
  font-style: italic;
}

/**
 * Correct the font size and margin on `h1` elements within `section` and
 * `article` contexts in Chrome, Firefox, and Safari.
 */

h1 {
  font-size: 2em;
  margin: 0.67em 0;
}

/**
 * Add the correct background and color in IE 9-.
 */

mark {
  background-color: #ff0;
  color: #000;
}

/**
 * Add the correct font size in all browsers.
 */

small {
  font-size: 80%;
}

/**
 * Prevent `sub` and `sup` elements from affecting the line height in
 * all browsers.
 */

sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}

sub {
  bottom: -0.25em;
}

sup {
  top: -0.5em;
}

/* Embedded content
   ========================================================================== */

/**
 * Remove the border on images inside links in IE 10-.
 */

img {
  border-style: none;
}

/**
 * Hide the overflow in IE.
 */

svg:not(:root) {
  overflow: hidden;
}

/* Grouping content
   ========================================================================== */

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */

code,
kbd,
pre,
samp {
  font-family: monospace, monospace; /* 1 */
  font-size: 1em; /* 2 */
}

/**
 * Add the correct margin in IE 8.
 */

figure {
  margin: 1em 40px;
}

/**
 * 1. Add the correct box sizing in Firefox.
 * 2. Show the overflow in Edge and IE.
 */

hr {
  box-sizing: content-box; /* 1 */
  height: 0; /* 1 */
  overflow: visible; /* 2 */
}

/* Forms
   ========================================================================== */

/**
 * 1. Change font properties to `inherit` in all browsers (opinionated).
 * 2. Remove the margin in Firefox and Safari.
 */

button,
input,
select,
textarea {
  font: inherit; /* 1 */
  margin: 0; /* 2 */
}

/**
 * Restore the font weight unset by the previous rule.
 */

optgroup {
  font-weight: bold;
}

/**
 * Show the overflow in IE.
 * 1. Show the overflow in Edge.
 */

button,
input { /* 1 */
  overflow: visible;
}

/**
 * Remove the inheritance of text transform in Edge, Firefox, and IE.
 * 1. Remove the inheritance of text transform in Firefox.
 */

button,
select { /* 1 */
  text-transform: none;
}

/**
 * 1. Prevent a WebKit bug where (2) destroys native `audio` and `video`
 *    controls in Android 4.
 * 2. Correct the inability to style clickable types in iOS and Safari.
 */

button,
html [type="button"], /* 1 */
[type="reset"],
[type="submit"] {
  -webkit-appearance: button; /* 2 */
}

/**
 * Remove the inner border and padding in Firefox.
 */

button::-moz-focus-inner,
[type="button"]::-moz-focus-inner,
[type="reset"]::-moz-focus-inner,
[type="submit"]::-moz-focus-inner {
  border-style: none;
  padding: 0;
}

/**
 * Restore the focus styles unset by the previous rule.
 */

button:-moz-focusring,
[type="button"]:-moz-focusring,
[type="reset"]:-moz-focusring,
[type="submit"]:-moz-focusring {
  outline: 1px dotted ButtonText;
}

/**
 * Change the border, margin, and padding in all browsers (opinionated).
 */

fieldset {
  border: 1px solid #c0c0c0;
  margin: 0 2px;
  padding: 0.35em 0.625em 0.75em;
}

/**
 * 1. Correct the text wrapping in Edge and IE.
 * 2. Correct the color inheritance from `fieldset` elements in IE.
 * 3. Remove the padding so developers are not caught out when they zero out
 *    `fieldset` elements in all browsers.
 */

legend {
  box-sizing: border-box; /* 1 */
  color: inherit; /* 2 */
  display: table; /* 1 */
  max-width: 100%; /* 1 */
  padding: 0; /* 3 */
  white-space: normal; /* 1 */
}

/**
 * Remove the default vertical scrollbar in IE.
 */

textarea {
  overflow: auto;
}

/**
 * 1. Add the correct box sizing in IE 10-.
 * 2. Remove the padding in IE 10-.
 */

[type="checkbox"],
[type="radio"] {
  box-sizing: border-box; /* 1 */
  padding: 0; /* 2 */
}

/**
 * Correct the cursor style of increment and decrement buttons in Chrome.
 */

[type="number"]::-webkit-inner-spin-button,
[type="number"]::-webkit-outer-spin-button {
  height: auto;
}

/**
 * 1. Correct the odd appearance in Chrome and Safari.
 * 2. Correct the outline style in Safari.
 */

[type="search"] {
  -webkit-appearance: textfield; /* 1 */
  outline-offset: -2px; /* 2 */
}

/**
 * Remove the inner padding and cancel buttons in Chrome and Safari on OS X.
 */

[type="search"]::-webkit-search-cancel-button,
[type="search"]::-webkit-search-decoration {
  -webkit-appearance: none;
}

/**
 * Correct the text style of placeholders in Chrome, Edge, and Safari.
 */

::-webkit-input-placeholder {
  color: inherit;
  opacity: 0.54;
}

/**
 * 1. Correct the inability to style clickable types in iOS and Safari.
 * 2. Change font properties to `inherit` in Safari.
 */

::-webkit-file-upload-button {
  -webkit-appearance: button; /* 1 */
  font: inherit; /* 2 */
}

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

* {
  margin: 0;
}

html {
  font-size: 100%;
}

body {
  min-height: 100vh;
  line-height: 1.5;
}

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

button,
input,
textarea,
select {
  font: inherit;
}

ol,
ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

p {
  margin: 0;
  padding: 0;
}

button {
  margin: 0;
  padding: 0;
  background: none;
  border: none;
  outline: none;
}

fieldset {
  margin: 0;
  padding: 0;
  border: 0;
}

svg {
  display: block;
}

input:-webkit-autofill {
  background-color: transparent;
}

::placeholder {
  color: #4a4a4a;
  font-size: 15px;
  font-style: italic;
}

@font-face {
  font-family: 'Rubik';
  src: url('/assets/ttf/Rubik-VariableFont_wght.ttf') format('truetype');
  font-style: normal;
  font-weight: 300 900;
  font-display: swap;
}

@font-face {
  font-family: 'Inter';
  src: url('/assets/ttf/Inter-VariableFont_opsz_wght.ttf') format('truetype');
  font-style: normal;
  font-weight: 300 900;
  font-display: swap;
}

body {
  font-family: var(--font-family-base);
  color: var(--text-color);
  background: var(--background-color);
}

h1,
h2,
h3,
h4,
h5,
h6 {
  line-height: 1.2;
}

p {
  margin-bottom: 1rem;
}

html {
  height: 100%;
  scroll-behavior: smooth;
  scroll-padding-top: 60px;
}

nav {
  font-family: 'Rubik', sans-serif;
}

body {
  font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
  margin: 0 auto;
  padding: 0;
  line-height: 1.6;
  color: #4a4a4a;
  background-color: #f8f5f1;
}

a,
a:visited {
  color: var(--color-gray-800);
  text-decoration: none;
}

a:hover {
  text-decoration: none;
}

figure {
  margin: 0;
  padding: 0;
}

img {
  width: 100%;
  height: auto;
}

h1, h2, h3, h4, h5, h6 {
  margin: 0.5rem 0 1rem 0
}

.sentences-list {
  display: flex;
  flex-direction: column;
  flex-wrap: wrap;
  gap: 10px;
  justify-content: center;
}

.sentences-list li {
  width: 100%;
  text-align: center;
  font-size: var(--font-size-m);
}

.text-center {
  margin: 0 auto;
  text-align: center;
}

.text-small {
  font-size: 12px;
  max-width: 800px;
  margin: 0 auto;
}

.text-extra-small {
  font-size: 10px;
  max-width: 800px;
  margin: 0 auto;
}

.link-arrow-right {
  display: inline-flex;
  font-weight: 600;
}

.link-arrow-right::after {
  /* content: "\2192";
  margin-left: 5px;*/
}

.link-box {
  height: 100%;
  display: block;
  background: #fff;
  border: 1px solid #ddd;
  border-radius: 8px;
  padding: 12px 18px;
  margin-bottom: 12px;
  transition: all 200ms ease-in-out;
  overflow: hidden;
  background-size: cover;
  background-position: center;
}

.link-box:hover {
  border-color: #aaa;
}

.link-box-heading {
  font-size: 100%;
  font-weight: 600;
}

.link-box-body {
  line-height: 120%;
  margin: 4px 0 8px 0;
}

.post-link {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 2px 6px;
  border-radius: 6px;
}

.post-link:hover {
  background-color: #f0f0f0;
}

.post-link-title {
  font-weight: normal;
}

.post-link-views {
  display: flex;
  align-items: center;
}

.post-link-views svg {
  display: inline-flex;
}

.portfolio-header {
  --portfolio-ink: #152846;
  --portfolio-muted: #52677d;
  --portfolio-teal: #08a989;
  --portfolio-teal-dark: #078b76;
  --portfolio-line: #dcebed;
  --portfolio-soft: #f1f9f9;
  --portfolio-shadow: 0 10px 30px rgba(25, 61, 77, 0.07);

  position: relative;
  z-index: 5;
  background: rgba(255, 255, 255, 0.96);
  box-shadow: 0 1px 0 rgba(21, 40, 70, 0.06);
  color: var(--portfolio-ink);
  font-family: 'Inter', 'Segoe UI', sans-serif;
  line-height: 1.6;
}

.portfolio-header a,
.portfolio-header a:visited {
  color: inherit;
  text-decoration: none;
}

.portfolio-header a:focus-visible,
.portfolio-header summary:focus-visible {
  outline: 3px solid rgba(8, 169, 137, 0.45);
  outline-offset: 4px;
}

.portfolio-header__inner {
  display: flex;
  width: min(100% - 32px, 1180px);
  min-height: 68px;
  margin: 0 auto;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

.portfolio-brand {
  display: flex;
  flex: 0 0 auto;
  flex-direction: column;
  color: var(--portfolio-ink);
  line-height: 1.2;
}

.portfolio-brand__name {
  font-size: 0.8rem;
  font-weight: 800;
  letter-spacing: 0.035em;
}

.portfolio-brand__tagline {
  color: var(--portfolio-muted);
  font-size: 0.63rem;
}

.portfolio-nav {
  display: none;
}

.portfolio-menu {
  position: relative;
}

.portfolio-menu summary {
  display: flex;
  width: 42px;
  height: 42px;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 5px;
  border-radius: 8px;
  cursor: pointer;
  list-style: none;
}

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

.portfolio-menu summary span {
  width: 19px;
  height: 2px;
  border-radius: 2px;
  background: var(--portfolio-ink);
}

.portfolio-menu__links {
  position: absolute;
  top: calc(100% + 10px);
  right: 0;
  display: grid;
  width: min(260px, calc(100vw - 32px));
  padding: 8px;
  border: 1px solid var(--portfolio-line);
  border-radius: 12px;
  background: #fff;
  box-shadow: var(--portfolio-shadow);
}

.portfolio-menu__links a {
  padding: 10px 12px;
  border-radius: 7px;
  color: var(--portfolio-ink);
  font-size: 0.9rem;
}

.portfolio-menu__links a:hover {
  background: var(--portfolio-soft);
  color: var(--portfolio-teal-dark);
}

.portfolio-menu__links a.is-active {
  background: var(--portfolio-soft);
  color: var(--portfolio-teal-dark);
  font-weight: 700;
}

@media (min-width: 900px) {
  .portfolio-header__inner {
    min-height: 72px;
  }

  .portfolio-nav {
    display: flex;
    height: 72px;
    align-items: center;
    justify-content: flex-end;
    gap: clamp(13px, 2.1vw, 27px);
  }

  .portfolio-nav a {
    position: relative;
    display: inline-flex;
    height: 100%;
    align-items: center;
    color: var(--portfolio-muted);
    font-size: 0.8rem;
    font-weight: 600;
    white-space: nowrap;
  }

  .portfolio-nav a:hover,
  .portfolio-nav a.is-active {
    color: var(--portfolio-teal-dark);
  }

  .portfolio-nav a:hover::after,
  .portfolio-nav a.is-active::after {
    position: absolute;
    right: 0;
    bottom: 24px;
    left: 0;
    height: 2px;
    border-radius: 2px;
    background: var(--portfolio-teal);
    content: "";
  }

  .portfolio-nav a:hover::after {
    opacity: 0.08;
  }

  .portfolio-menu {
    display: none;
  }
}

.main {
  width: min(var(--container-width), calc(100% - 32px));
  margin: 2rem auto;
  display: block;
  position: relative;
}

.main-large {
  padding: 50px;
  max-width: none;
  border: 0;
  background-color: transparent;
}

.section-spaced {
  margin-top: 40px;
}

.content-divider {
  margin: 40px 0;
  border: 0;
  border-top: 1px solid #eee;
}

.content-divider--heavy {
  margin: 50px 0;
  border-top: 1px solid #ddd;
}

.category-block {
  margin-bottom: 40px;
  padding: 20px;
  border: 1px solid #eee;
  border-radius: 6px;
  background: #fbfbfb;
}

.category-block__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 15px;
  margin-bottom: 15px;
}

.category-block__heading {
  margin: 0;
  color: #333;
  font-size: 1.4rem;
}

.category-block__link {
  color: inherit;
  font-size: 0.9rem;
  font-weight: 700;
}

.category-block__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 15px;
  padding: 0;
  margin: 0;
  list-style: none;
}

.category-block__item {
  padding: 15px;
  border: 1px solid #e2e2e2;
  border-radius: 4px;
  background: #fff;
}

.category-block__item-link {
  display: block;
  margin-bottom: 5px;
  color: inherit;
  font-size: 1.1rem;
  font-weight: 700;
  text-decoration: none;
}

.category-block__date {
  color: #888;
}

.portfolio-footer {
  padding: 25px max(16px, calc((100% - 1180px) / 2));
  background: #142234;
  color: #f5f8fb;
  font-family: 'Inter', 'Segoe UI', sans-serif;
  line-height: 1.6;
}

.portfolio-footer a {
  color: #d9e2eb;
  text-decoration: none;
}

.portfolio-footer a:focus-visible {
  outline: 3px solid rgba(8, 169, 137, 0.65);
  outline-offset: 4px;
}

.portfolio-footer__top {
  display: flex;
  flex-direction: column;
  gap: 18px;
  padding-bottom: 20px;
}

.portfolio-footer .portfolio-brand--light,
.portfolio-footer .portfolio-brand--light .portfolio-brand__name {
  color: #fff;
}

.portfolio-footer .portfolio-brand--light .portfolio-brand__tagline {
  color: #bdcad7;
}

.portfolio-footer__contact {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px 14px;
  color: #d9e2eb;
  font-size: 0.8rem;
}

.portfolio-footer__contact a:hover,
.portfolio-footer__bottom a:hover {
  color: #fff;
  text-decoration: underline;
}

.portfolio-footer__note {
  margin: 0;
  color: #d9e2eb;
  font-family: 'Segoe UI', sans-serif;
  font-size: 0.85rem;
  font-style: italic;
}

.portfolio-footer__bottom {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding-top: 14px;
  border-top: 1px solid rgba(232, 241, 246, 0.17);
  color: #bdcad7;
  font-size: 0.8rem;
}

.portfolio-footer__bottom nav {
  display: flex;
  gap: 16px;
}

@media (min-width: 900px) {
  .portfolio-footer__top {
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
  }

  .portfolio-footer__bottom {
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
  }
}

.portfolio-experimente {
  min-height: 100%;
}

.portfolio-experimente-hero {
  display: grid;
  align-items: center;
  gap: 28px;
  padding: 38px 0;
  border-bottom: 1px solid var(--portfolio-line);
}

.portfolio-experimente-hero__copy {
  max-width: 620px;
}

.portfolio-experimente-hero h1 {
  margin-bottom: 12px;
  font-size: clamp(1.8rem, 6vw, 2.5rem);
  letter-spacing: -0.045em;
  line-height: 1.12;
}

.portfolio-experimente-hero__copy > p:not(.portfolio-eyebrow) {
  margin-bottom: 18px;
  color: var(--portfolio-muted);
  font-size: 0.85rem;
}

.portfolio-experimente-stats {
  display: flex;
  max-width: 410px;
  padding: 0;
  margin: 18px 0 0;
}

.portfolio-experimente-stats div {
  min-width: 0;
  flex: 1;
  padding: 0 13px;
  border-left: 1px solid var(--portfolio-line);
}

.portfolio-experimente-stats div:first-child {
  padding-left: 0;
  border-left: 0;
}

.portfolio-experimente-stats dt {
  color: var(--portfolio-teal);
  font-size: 1.25rem;
  font-weight: 800;
  line-height: 1.2;
}

.portfolio-experimente-stats dd {
  margin: 3px 0 0;
  color: var(--portfolio-muted);
  font-size: 0.68rem;
}

.portfolio-experimente-hero__visual {
  position: relative;
  min-width: 0;
  padding: 0 10px 18px 0;
}

.portfolio-experimente-hero__visual > img {
  display: block;
  width: 100%;
  max-height: 300px;
  aspect-ratio: 1.58;
  object-fit: cover;
  object-position: top center;
  border: 1px solid var(--portfolio-line);
  border-radius: 7px;
  background: #fff;
  box-shadow: var(--portfolio-shadow);
}

.portfolio-experimente-note {
  position: absolute;
  right: 0;
  bottom: 0;
  width: 120px;
  min-height: 105px;
  padding: 12px;
  transform: rotate(3deg);
  border: 1px solid #cde7df;
  border-radius: 5px;
  background: #e9f7f3;
  box-shadow: 0 2px 8px rgba(25, 61, 77, 0.12);
  color: var(--portfolio-teal-dark);
  font-family: 'Segoe UI', sans-serif;
  font-size: 0.68rem;
  font-style: italic;
  font-weight: 600;
  line-height: 1.4;
}

.portfolio-experimente-note span {
  display: block;
  margin-top: 7px;
  text-align: right;
}

.portfolio-experimente-projects {
  padding: 25px 0 45px;
}

.portfolio-project-filters {
  display: flex;
  gap: 8px;
  padding: 0 0 20px;
  overflow-x: auto;
  scrollbar-width: thin;
}

.portfolio-project-filters button {
  display: inline-flex;
  min-height: 34px;
  flex: 0 0 auto;
  padding: 0 12px;
  align-items: center;
  gap: 7px;
  border: 1px solid var(--portfolio-line);
  border-radius: 999px;
  background: #fff;
  color: var(--portfolio-muted);
  cursor: pointer;
  font: inherit;
  font-size: 0.68rem;
  font-weight: 600;
  transition: border-color 150ms ease, background-color 150ms ease, color 150ms ease;
}

.portfolio-project-filters button:hover,
.portfolio-project-filters button[aria-pressed="true"] {
  border-color: var(--portfolio-teal);
  background: var(--portfolio-teal);
  color: #fff;
}

.portfolio-project-filters button:focus-visible {
  outline: 3px solid rgba(8, 169, 137, 0.35);
  outline-offset: 3px;
}

.portfolio-experimente-grid {
  grid-template-columns: minmax(0, 1fr);
  align-items: stretch;
  gap: 16px;
}

.portfolio-experimente-projects > h1 {
  margin: 0 0 22px;
  font-size: clamp(1.6rem, 5vw, 2.2rem);
  letter-spacing: -0.04em;
  line-height: 1.15;
}

.portfolio-experimente-grid .portfolio-project-card[hidden] {
  display: none;
}

.portfolio-experimente-grid .portfolio-project-card {
  display: flex;
  flex-direction: column;
}

.portfolio-experimente-grid .portfolio-project-preview {
  min-height: 155px;
}

.portfolio-experimente-grid .portfolio-project-card__body {
  display: flex;
  flex: 1;
  flex-direction: column;
  align-items: flex-start;
}

.portfolio-experimente-grid .portfolio-project-card h2 {
  margin: 5px 0 8px;
  color: var(--portfolio-ink);
  font-size: 0.9rem;
  line-height: 1.35;
}

.portfolio-experimente-grid .portfolio-project-card__body > p {
  flex: 1;
}

.portfolio-project-label {
  display: inline-flex;
  padding: 3px 7px;
  border-radius: 4px;
  background: #e8f7f3;
  color: var(--portfolio-teal-dark);
  font-size: 0.61rem;
  font-weight: 700;
}

.portfolio-experimente-preview {
  padding: 22px 10px 0;
  background: linear-gradient(135deg, #fff1dd, #e8f6ee);
}

.portfolio-experimente-preview img {
  display: block;
  width: min(100%, 390px);
  height: 100%;
  min-height: 120px;
  object-fit: cover;
  object-position: top center;
  aspect-ratio: 16 / 9;
  border: 1px solid rgba(21, 40, 70, 0.14);
  border-radius: 5px 5px 0 0;
  box-shadow: 0 3px 12px rgba(21, 40, 70, 0.12);
  border-bottom: 0
  ;
}

.portfolio-experimente-preview--portal {
  padding: 30px 17px 15px;
  background: linear-gradient(135deg, #f3f5f5, #e8eef2);
}

.portfolio-experimente-preview__window {
  display: grid;
  width: min(100%, 310px);
  height: 100%;
  min-height: 90px;
  grid-template-columns: 24% 1fr;
  overflow: hidden;
  border: 1px solid #d7e0e4;
  border-radius: 4px;
  background: #fff;
  box-shadow: 0 4px 12px rgba(21, 40, 70, 0.08);
}

.portfolio-experimente-preview__sidebar {
  background: linear-gradient(#183b50 0 13%, #e9eff1 13%);
}

.portfolio-experimente-preview__content {
  display: grid;
  padding: 15px 12px;
  align-content: start;
  gap: 8px;
}

.portfolio-experimente-preview__content i {
  height: 7px;
  border-radius: 3px;
  background: #e9eff1;
}

.portfolio-experimente-preview__content i:first-child {
  width: 65%;
  background: #bce9dc;
}

.portfolio-experimente-preview__content i:nth-child(2) {
  width: 85%;
}

.portfolio-experimente-preview__content i:nth-child(3) {
  width: 72%;
}

.portfolio-experimente-preview__content i:last-child {
  width: 54%;
}

.portfolio-experimente-preview--cloud {
  position: relative;
  background: radial-gradient(ellipse at 50% 110%, #f78c19 0, #272d32 40%, #101a24 100%);
}

.portfolio-experimente-cloud {
  color: #fff;
  font-size: 2rem;
  font-weight: 800;
  letter-spacing: -0.06em;
}

.portfolio-experimente-cloud__nodes {
  position: absolute;
  right: 20%;
  bottom: 19px;
  left: 20%;
  display: flex;
  justify-content: space-between;
}

.portfolio-experimente-cloud__nodes i {
  width: 9px;
  height: 9px;
  border: 2px solid #f7a447;
  border-radius: 50%;
  background: #172533;
}

.portfolio-experimente-preview--code {
  display: grid;
  min-height: 155px;
  padding: 38px 20px 18px;
  align-content: center;
  gap: 10px;
  background: #152335;
}

.portfolio-experimente-preview--code .portfolio-code-window__bar {
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  display: flex;
  height: 25px;
  align-items: center;
  gap: 5px;
  padding: 0 10px;
  background: #20334a;
}

.portfolio-experimente-preview--code .portfolio-code-window__bar i {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #e48e7d;
}

.portfolio-experimente-preview--code .portfolio-code-window__bar i:nth-child(2) {
  background: #e5c16d;
}

.portfolio-experimente-preview--code .portfolio-code-window__bar i:nth-child(3) {
  background: #76c9ae;
}

.portfolio-project-empty {
  padding: 30px 0;
  color: var(--portfolio-muted);
  text-align: center;
}

.portfolio-experimente-featured {
  position: relative;
  display: grid;
  min-height: 220px;
  align-items: center;
  gap: 20px;
  padding: 24px;
  margin-bottom: 2rem;
  overflow: hidden;
  border: 1px solid #d9eeea;
  border-radius: 10px;
  background: linear-gradient(110deg, #e8f7f3, #f6fbfa);
}

.portfolio-experimente-featured__copy {
  position: relative;
  z-index: 1;
}

.portfolio-experimente-featured h2 {
  margin-bottom: 9px;
  font-size: 1.3rem;
  letter-spacing: -0.03em;
}

.portfolio-experimente-featured__copy > p:not(.portfolio-eyebrow) {
  max-width: 500px;
  color: var(--portfolio-muted);
  font-size: 0.78rem;
}

.portfolio-experimente-featured__image {
  display: block;
  max-width: 430px;
  overflow: hidden;
  border: 2px solid #243b53;
  border-radius: 4px;
  background: #fff;
  box-shadow: 0 8px 20px rgba(21, 40, 70, 0.18);
}

.portfolio-experimente-featured__image img {
  display: block;
  width: 100%;
  aspect-ratio: 1.65;
  object-fit: cover;
  object-position: top;
}

.portfolio-experimente-note {
  position: absolute;
  right: 12px;
  bottom: 10px;
  width: 110px;
  color: var(--portfolio-teal-dark);
  font-family: 'Segoe UI', sans-serif;
  font-size: 0.66rem;
  font-style: italic;
  font-weight: 600;
  line-height: 1.4;
  transform: rotate(-5deg);
}

@media (min-width: 600px) {
  .portfolio-experimente-hero {
    grid-template-columns: minmax(0, 1.05fr) minmax(260px, 0.95fr);
    gap: 24px;
    padding: 50px 0;
  }

  .portfolio-experimente-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .portfolio-experimente-featured {
    grid-template-columns: minmax(0, 1fr) minmax(220px, 1fr);
    padding: 28px;
  }

  .portfolio-experimente-featured__image {
    margin-right: 30px;
  }
}

@media (min-width: 900px) {
  .portfolio-experimente-hero {
    grid-template-columns: minmax(0, 1fr) minmax(340px, 1fr);
    gap: 48px;
    min-height: 330px;
    padding: 34px 0;
  }

  .portfolio-experimente-hero h1 {
    font-size: clamp(2rem, 3vw, 2.6rem);
  }

  .portfolio-experimente-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
  }

  .portfolio-experimente-grid .portfolio-project-preview {
    min-height: 170px;
  }

  .portfolio-experimente-featured {
    grid-template-columns: minmax(0, 1fr) minmax(300px, 1fr);
    padding: 28px 32px;
  }
}

@media (min-width: 700px) {
  .portfolio-blog-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (prefers-reduced-motion: reduce) {
  .portfolio-project-filters button {
    transition: none;
  }
}

.career-experience {
  display: grid;
  gap: 20px;
  padding: 22px 0;
  border-top: 1px solid var(--portfolio-line);
  border-bottom: 1px solid var(--portfolio-line);
}

.career-experience__intro .portfolio-eyebrow {
  margin-bottom: 4px;
}

.career-experience__intro h2 {
  margin-bottom: 12px;
  font-size: 1rem;
  line-height: 1.3;
}

.career-experience__role {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin-bottom: 10px;
  color: var(--portfolio-ink);
  text-decoration: none;
}

.career-experience__role:hover strong {
  color: var(--portfolio-teal-dark);
}

.career-experience__role strong,
.career-experience__role small {
  display: block;
}

.career-experience__role strong {
  margin-bottom: 2px;
  font-size: 0.8rem;
}

.career-experience__role small {
  color: var(--portfolio-muted);
  font-size: 0.65rem;
  line-height: 1.5;
}

.career-experience__icon {
  display: inline-grid;
  width: 23px;
  height: 23px;
  flex: 0 0 23px;
  place-items: center;
  border: 1px solid #bce9dc;
  border-radius: 5px;
  color: var(--portfolio-teal-dark);
  font-size: 0.8rem;
  font-weight: 800;
}

.career-experience__description {
  margin-bottom: 12px;
  color: var(--portfolio-muted);
  font-size: 0.72rem;
  line-height: 1.6;
}

.career-experience .portfolio-button {
  min-height: 32px;
  font-size: 0.68rem;
}

.career-experience__tags {
  gap: 5px;
  margin: 12px 0 0;
}

.career-experience__tags li {
  padding: 0.2rem 0.45rem;
  font-size: 0.62rem;
}

.career-experience__domains {
  display: grid;
  gap: 12px;
  align-content: center;
  padding: 15px;
  border: 1px solid var(--portfolio-line);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.7);
}

.career-experience__domains article {
  display: flex;
  align-items: flex-start;
  gap: 8px;
}

.career-experience__domains .career-experience__icon {
  width: 20px;
  height: 20px;
  flex-basis: 20px;
  border: 0;
  font-size: 0.75rem;
}

.career-experience__domains h3 {
  margin: 0 0 1px;
  font-size: 0.7rem;
  line-height: 1.3;
}

.career-experience__domains p {
  margin: 0;
  color: var(--portfolio-muted);
  font-size: 0.61rem;
  line-height: 1.45;
}

.career-post {
  display: grid;
  gap: 20px;
}

.career-post__lead {
  margin: 0;
  color: var(--post-muted);
  font-size: 0.9rem;
}

.career-post__overview,
.career-post__responsibilities {
  display: grid;
  gap: 16px;
}

.career-post__panel {
  min-width: 0;
  padding: 16px;
  border: 1px solid var(--post-line);
  border-radius: 8px;
  background: #fff;
}

.post-layout .entry-content .career-post__panel h2,
.post-layout .entry-content .career-post__section h2 {
  margin: 0 0 9px;
  font-size: 0.95rem;
}

.career-post__panel p {
  margin: 0 0 10px;
  color: var(--post-muted);
  font-size: 0.75rem;
  line-height: 1.65;
}

.career-post__highlights {
  display: grid;
  gap: 8px;
  padding: 12px;
  margin: 12px 0 0;
  border-radius: 6px;
  background: var(--post-soft);
  list-style: none;
}

.career-post__highlights li {
  color: var(--post-muted);
  font-size: 0.68rem;
  line-height: 1.5;
}

.career-post__highlights strong {
  display: block;
  color: var(--post-ink);
}

.career-post__architecture {
  display: grid;
  gap: 8px;
  align-content: start;
  text-align: center;
}

.career-post__architecture h2 {
  text-align: left;
}

.career-post__layer {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(0, 1fr));
  gap: 7px;
}

.career-post__layer > div {
  padding: 9px 7px;
  border: 1px solid #d5eee7;
  border-radius: 6px;
  background: linear-gradient(135deg, #f3fbf9, #e6f7f3);
  color: var(--post-ink);
  font-size: 0.68rem;
  font-weight: 700;
}

.career-post__layer small {
  display: block;
  margin-top: 2px;
  color: var(--post-muted);
  font-size: 0.58rem;
  font-weight: 400;
}

.career-post__connector {
  color: var(--post-teal-dark);
  font-size: 1rem;
  font-weight: 800;
  line-height: 1;
}

.career-post__section {
  min-width: 0;
}

.career-post__responsibility-list {
  display: grid;
  gap: 12px;
}

.career-post__responsibility-list article {
  display: flex;
  gap: 9px;
  align-items: flex-start;
}

.career-post__responsibility-list h3 {
  margin: 0 0 2px;
  font-size: 0.73rem;
}

.career-post__responsibility-list p {
  margin: 0;
  color: var(--post-muted);
  font-size: 0.66rem;
  line-height: 1.55;
}

.career-post__icon {
  display: inline-grid;
  width: 23px;
  height: 23px;
  flex: 0 0 23px;
  place-items: center;
  border-radius: 5px;
  background: #e2f5ef;
  color: var(--post-teal-dark);
  font-size: 0.7rem;
  font-weight: 800;
}

.career-post__technologies {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  padding: 0;
  margin: 0;
  list-style: none;
}

.career-post__technologies li {
  padding: 4px 8px;
  border: 1px solid var(--post-line);
  border-radius: 999px;
  background: #f7fbfb;
  color: var(--post-muted);
  font-size: 0.65rem;
}

.career-post__takeaways {
  padding: 16px;
  border: 1px solid #d5eee7;
  border-radius: 8px;
  background: #eaf8f4;
}

.post-layout .entry-content .career-post__takeaways h2 {
  margin: 0 0 10px;
  font-size: 0.95rem;
}

.career-post__takeaways ul {
  display: grid;
  gap: 7px;
  padding: 0;
  margin: 0;
  list-style: none;
}

.career-post__takeaways li {
  color: var(--post-muted);
  font-size: 0.7rem;
}

.career-post__takeaways li::before {
  margin-right: 7px;
  color: var(--post-teal-dark);
  content: "✓";
  font-weight: 800;
}

@media (min-width: 700px) {
  .career-experience {
    grid-template-columns: minmax(0, 1.15fr) minmax(250px, 0.85fr);
    align-items: center;
    gap: 26px;
    padding: 25px 0;
  }

  .career-experience__intro h2 {
    font-size: 1.1rem;
  }

  .career-experience__domains {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .career-post__overview {
    grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr);
    align-items: stretch;
  }

  .career-post__responsibilities {
    grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr);
  }
}

.skills-page {
  --skills-ink: #152846;
  --skills-muted: #52677d;
  --skills-teal: #08a989;
  --skills-teal-dark: #078b76;
  --skills-line: #dcebed;
  --skills-shadow: 0 10px 30px rgba(25, 61, 77, 0.07);

  min-height: 100%;
  color: var(--skills-ink);
  background: #f4f9fa;
  font-family: 'Inter', 'Segoe UI', sans-serif;
  line-height: 1.6;
}

.skills-page h1,
.skills-page h2,
.skills-page h3,
.skills-page p {
  margin-top: 0;
}

.skills-page h1,
.skills-page h2,
.skills-page h3 {
  color: var(--skills-ink);
  font-weight: 700;
}

.skills-page a {
  color: inherit;
}

.skills-page a:focus-visible {
  outline: 3px solid rgba(8, 169, 137, 0.45);
  outline-offset: 4px;
}

.skills-main {
  width: min(100% - 32px, 1180px);
  margin: 0 auto;
}

.skills-eyebrow {
  margin-bottom: 8px;
  color: var(--skills-teal-dark);
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.11em;
  line-height: 1.4;
  text-transform: uppercase;
}

.skills-button {
  display: inline-flex;
  min-height: 42px;
  padding: 0 15px;
  align-items: center;
  justify-content: center;
  gap: 9px;
  border: 1px solid var(--skills-teal);
  border-radius: 6px;
  font-size: 0.8rem;
  font-weight: 700;
  text-decoration: none;
  transition: all 160ms ease-in-out;
}

.skills-button:hover {
  transform: translateY(-1px);
}

.skills-button--primary {
  background: var(--skills-teal);
  color: #fff !important;
}

.skills-button--outline {
  background: transparent;
  color: var(--skills-teal-dark) !important;
}

.skills-button--outline:hover {
  background: #e9f8f5;
}

.skill-card {
  border: 1px solid var(--skills-line);
  border-radius: 9px;
  box-shadow: 0 4px 16px rgba(25, 61, 77, 0.035);
}

.skill-icon {
  display: inline-grid;
  min-width: 31px;
  min-height: 31px;
  place-items: center;
  color: var(--skills-teal);
  font-size: 1.35rem;
  font-weight: 700;
}

.skill-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  padding: 0;
  margin: 0 0 10px;
  list-style: none;
}

.skill-tags li {
  padding: 3px 7px;
  border-radius: 4px;
  background: #f0f5f7;
  color: #43596d;
  font-size: 0.63rem;
  line-height: 1.4;
}

.skills-note {
  position: absolute;
  display: flex;
  min-height: 92px;
  flex-direction: column;
  justify-content: space-between;
  padding: 12px;
  border: 1px solid #cde7df;
  border-radius: 5px;
  background: #e9f7f3;
  box-shadow: 0 2px 8px rgba(25, 61, 77, 0.12);
  color: var(--skills-teal-dark);
  font-family: 'Segoe UI', sans-serif;
  font-size: 0.68rem;
  font-style: italic;
  font-weight: 600;
  line-height: 1.4;
}

.skills-hero {
  display: grid;
  align-items: center;
  gap: 28px;
  padding: 36px 0 28px;
  border-bottom: 1px solid var(--skills-line);
}

.skills-hero__copy {
  max-width: 620px;
}

.skills-hero h1 {
  margin-bottom: 12px;
  font-size: clamp(1.8rem, 6vw, 2.5rem);
  letter-spacing: -0.045em;
  line-height: 1.12;
}

.skills-hero__copy > p:not(.skills-eyebrow) {
  margin-bottom: 18px;
  color: var(--skills-muted);
  font-size: 0.84rem;
}

.skills-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 9px 15px;
  padding: 0;
  margin: 18px 0 0;
  list-style: none;
}

.skills-legend li {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: var(--skills-muted);
  font-size: 0.64rem;
}

.skills-legend__dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--skills-teal);
}

.skills-legend__dot--practice {
  background: #51c5a8;
}

.skills-legend__dot--growth {
  background: #45a9ed;
}

.skills-hero__visual {
  position: relative;
  min-width: 0;
  padding: 0 10px 16px 0;
}

.skills-hero__visual > img {
  display: block;
  width: 100%;
  max-height: 270px;
  aspect-ratio: 1.58;
  object-fit: cover;
  object-position: top center;
  border: 1px solid var(--skills-line);
  border-radius: 7px;
  background: #fff;
  box-shadow: var(--skills-shadow);
}

.skills-hero__visual .skills-note {
  right: 0;
  bottom: 0;
  width: 116px;
  min-height: 92px;
  transform: rotate(-4deg);
}

.skills-detail-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 13px;
  padding: 22px 0 38px;
}

.skill-card {
  min-width: 0;
  padding: 16px;
  border-color: #e2edf0;
  background: rgba(255, 255, 255, 0.9);
}

.skill-card__heading {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 10px;
  margin-bottom: 9px;
}

.skill-card__heading .skill-icon {
  min-width: 29px;
  min-height: 29px;
  margin: 0;
  font-size: 1.45rem;
}

.skill-card__heading h2 {
  flex: 1 1 130px;
  margin: 0;
  font-size: 0.82rem;
  line-height: 1.3;
}

.skill-level {
  flex: 0 0 auto;
  padding: 3px 6px;
  border-radius: 4px;
  background: #e8f7f3;
  color: var(--skills-teal-dark);
  font-size: 0.58rem;
  font-weight: 700;
}

.skill-level--practice {
  background: #eaf8f4;
  color: #168c76;
}

.skill-level--growth {
  background: #eaf5fc;
  color: #2687c5;
}

.skill-card > p {
  min-height: 2.8em;
  margin-bottom: 10px;
  color: var(--skills-muted);
  font-size: 0.72rem;
  line-height: 1.5;
}

.skill-card .skill-tags {
  min-height: 40px;
  margin-bottom: 12px;
  gap: 5px;
}

.skill-card .skill-tags li {
  font-size: 0.59rem;
}

.skill-progress {
  display: grid;
  gap: 4px;
  margin-top: 8px;
}

.skill-progress > span {
  color: var(--skills-muted);
  font-size: 0.58rem;
}

.skill-progress > div {
  height: 4px;
  overflow: hidden;
  border-radius: 99px;
  background: #e4edf1;
}

.skill-progress i {
  display: block;
  width: var(--skill-level, 50%);
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, #0cae8e, #4dd1ae);
}

.skill-progress:last-child i {
  background: linear-gradient(90deg, #35a9ee, #79c9fa);
}

.skills-tools {
  display: grid;
  gap: 22px;
  padding: 27px 0;
  border-top: 1px solid var(--skills-line);
}

.skills-tools__intro h2 {
  margin-bottom: 8px;
  font-size: 1.15rem;
  letter-spacing: -0.025em;
  line-height: 1.3;
}

.skills-tools__intro > p:not(.skills-eyebrow) {
  color: var(--skills-muted);
  font-size: 0.74rem;
}

.skills-tools__intro .skills-button {
  min-height: 36px;
  font-size: 0.68rem;
}

.skill-tool-groups {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.skill-tool-groups > div {
  min-width: 0;
  padding: 12px;
  border: 1px solid #e5eef0;
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.65);
}

.skill-tool-groups h3 {
  margin-bottom: 8px;
  font-size: 0.68rem;
  line-height: 1.35;
}

.skill-tool-groups .skill-tags {
  gap: 4px;
  margin-bottom: 0;
}

.skill-tool-groups .skill-tags li {
  padding: 3px 6px;
  font-size: 0.57rem;
}

.skills-approach {
  display: grid;
  gap: 18px;
  padding: 19px;
  margin: 0 0 35px;
  border: 1px solid #d9eeea;
  border-radius: 9px;
  background: linear-gradient(110deg, #e8f7f3, #f5fbfa);
}

.skills-approach__intro {
  display: flex;
  align-items: flex-start;
  gap: 12px;
}

.skills-approach__intro .skill-icon {
  display: grid;
  width: 34px;
  height: 34px;
  min-width: 34px;
  min-height: 34px;
  margin: 0;
  border-radius: 50%;
  background: #d7f0e8;
  font-size: 1.3rem;
}

.skills-approach h2 {
  margin-bottom: 7px;
  font-size: 0.95rem;
}

.skills-approach__intro p:last-child {
  margin-bottom: 0;
  color: var(--skills-muted);
  font-size: 0.7rem;
}

.skills-principles {
  display: grid;
  gap: 8px;
  padding: 0;
  margin: 0;
  list-style: none;
}

.skills-principles li {
  position: relative;
  padding-left: 20px;
  color: var(--skills-muted);
  font-size: 0.68rem;
}

.skills-principles li::before {
  position: absolute;
  top: 0.1em;
  left: 0;
  color: var(--skills-teal);
  content: "✓";
  font-weight: 800;
}

@media (min-width: 600px) {
  .skills-hero {
    grid-template-columns: minmax(0, 1fr) minmax(260px, 0.85fr);
    gap: 24px;
    padding: 45px 0 28px;
  }

  .skills-detail-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
  }

  .skills-approach {
    grid-template-columns: minmax(0, 1fr) minmax(220px, 0.8fr);
    align-items: center;
  }

  .skills-principles {
    padding-left: 18px;
    border-left: 1px solid #cfe8e2;
  }
}

@media (min-width: 900px) {
  .skills-hero {
    grid-template-columns: minmax(0, 1.1fr) minmax(340px, 0.9fr);
    gap: 45px;
    min-height: 285px;
    padding: 28px 0;
  }

  .skills-hero h1 {
    font-size: clamp(2rem, 3vw, 2.55rem);
  }

  .skills-detail-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
    padding: 22px 0 34px;
  }

  .skill-card {
    padding: 17px;
  }

  .skills-tools {
    grid-template-columns: minmax(220px, 0.8fr) minmax(0, 1.7fr);
    align-items: center;
    gap: 28px;
    padding: 30px 0;
  }

  .skill-tool-groups {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

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

.category-list {
  width: 100%;
  max-width: 480px;
  margin: 20px auto;
  display: block;
}

.category-list-item {
  width: 100%;
  margin-bottom: 8px;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
}

.category-list-item a {
  width: 100%;
  display: flex;
}

.category-list-item a:hover .category-name {
  text-decoration: underline;
}

.category-list-item .category-name {
  flex: 4;
  text-align: left;
  font-weight: 600;
}

.category-list-item:first-child .category-post-count {
  flex: 1;
  color: red;
}

.category-list-item .category-post-count {
  flex: 1;
  color: black;
  text-align: right;
}

.homepage-layout {
  /*
  --ink: #071329;
  --muted: #62677a;
  --pink: #ec2f86;
  --yellow: #ffd43b;
  --green: #72b33a;
  --blue: #2488d8;
  --purple: #8f58ce;
  --surface: #ffffff;
  --border: #e6e7ef;
  --shadow: 0 18px 48px rgba(22, 28, 45, 0.12);
  --radius: 8px;

  min-height: 100%;
  margin: 0;
  color: var(--ink);
  background: #fbfcff;
  font-family: Arial, Helvetica, sans-serif;
  */
}

.homepage-main {
  width: min(var(--container-width), calc(100% - 32px));
  margin: 0 auto;
  padding: 0;
}

@media (max-width: 720px) {
  .homepage-main {
    width: min(100% - 24px, 1120px);
    padding-top: 18px;
  }
}

burger-menu {
  display: block;

  --background-color: #f9f9f9;
}

burger-menu .menu-toggle {
  display: flex;
  background: none;
  border: none;
  cursor: pointer;
  font-size: 2rem;
  line-height: 1;
}

burger-menu .burger-menu-wrapper {
  display: none;
}

burger-menu .burger-menu-wrapper.open {
  display: flex;
  width: 100%;
  padding: 1em;
  position: fixed;
  left: 0;
  top: 72px;
  z-index: 100;
  background: #f9f9f9;
  text-align: center;
  justify-content: center;
  flex-direction: column;
  gap: 1em;
}

.menu-list {
  list-style: none;
  padding: 0;
  display: none;
  gap: 1.5rem;
  transition: max-height 0.3s ease;
  overflow: hidden;
  width: 100%;
  max-width: 100vw;
}

.menu-list a {
  text-decoration: none;
  font-weight: 500;
}

.menu-list a:hover,
.menu-list a.active {
  text-decoration: underline;
}

.expanded .menu-list {
  width: 100%;
  display: block;
  z-index: 10;
  position: fixed;
  left: 0;
  top: 50px;
  text-align: center;
  background-color: var(--background-color);
}

.menu-icon-wrapper {
  width: 50px;
  height: 50px;
  min-width: 50px;
  display: flex;
  justify-content: center;
  align-content: center;
  cursor: pointer;
  float: right;

  padding: 0;
  appearance: none;
  border: 0;
  background-color: #fff;
}

.menu-toggle.active,
.menu-toggle:hover {
  background-color: #f9f9f9;
}

.menu-icon {
  width: 20px;
  height: 1px;
  display: block;
  margin-top: 24px;
  cursor: pointer;
  position: absolute;
  background-color: black;
  transition: 150ms ease-in-out;
}

.menu-icon:hover {
  background-color: black;
}

.menu-icon:hover::before,
.menu-icon:hover::after {
  background-color: black;
}

.menu-icon::before,
.menu-icon::after {
  content: '';
  width: 20px;
  height: 1px;
  position: absolute;
  left: 0;
  top: -7px;
  background-color: black;
  transition: 150ms ease-in-out;
}

.menu-icon::after {
  top: 7px;
}

.active .menu-icon {
  background-color: transparent;
}

.active .menu-icon::before {
  transform: translate(0, 7px) rotate(45deg);
}

.active .menu-icon::after {
  transform: translate(0, -7px) rotate(-45deg);
}

/* Responsive */

@media (min-width: 640px) {
  .menu-list {
    display: flex;
    flex-direction: row;
  }

  .menu-list.active {
    display: flex;
  }

  .menu-icon-wrapper {
    display: none;
  }
}

.category-overview {
  display: grid;
  gap: 28px;
}

.category-overview-section {
  display: grid;
  gap: 18px;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: transparent;
}

.category-overview-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.category-overview-title {
  margin: 0;
  font-size: clamp(1.4rem, 2vw, 2rem);
  font-weight: 900;
  line-height: 1.2;
}

.category-overview-title a {
  color: var(--ink);
  text-decoration: none;
}

.category-overview-link {
  color: var(--pink);
  font-weight: 800;
  text-decoration: none;
}

.category-overview-empty {
  margin: 0;
  color: #4c5266;
}

@media (max-width: 620px) {
  .category-overview-header {
    align-items: flex-start;
    flex-direction: column;
  }
}

.category-layout {
  font-family: sans-serif;
  margin: 0 auto;
  padding: 0;
  line-height: 1.6;
}

.category-posts,
.tag-posts {
  padding: 0;
  margin: 0;
  list-style: none;
}

.category-post-item,
.tag-post-item {
  margin-bottom: 20px;
  list-style: none;
}

.category-post-link,
.tag-post-link {
  font-size: 1.25rem;
  font-weight: 700;
  text-decoration: none;
}

.category-post-meta,
.tag-post-meta {
  font-size: 0.85rem;
}

/* ========================================
   1. Grundeinstellungen
   Mobile First: zunächst eine Spalte
======================================== */

.featured-sections {
    --color-blue: #1769ff;
    --color-green: #159447;
    --color-orange: #ed7900;

    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 1rem;

    width: 100%;
    margin-block: 1.5rem;
}

.featured-column {
    --accent: var(--color-blue);
    --surface: #edf5ff;
    --border: #dceaff;

    display: flex;
    flex-direction: column;
    min-width: 0;

    padding: 1rem;
    border: 1px solid var(--border);
    border-radius: 0.75rem;
    background: var(--surface);
}

.featured-column--blue {
    --accent: var(--color-blue);
    --surface: #edf5ff;
    --border: #dceaff;
}

.featured-column--green {
    --accent: var(--color-green);
    --surface: #effaf1;
    --border: #d9f0df;
}

.featured-column--purple {
    --accent: var(--color-purple);
    --surface: #effaf1;
    --border: #d9f0df;
}

.featured-column--orange {
    --accent: var(--color-orange);
    --surface: #fff6e9;
    --border: #f8e5cc;
}

/* ========================================
   2. Kategorie-Header
======================================== */

.featured-header {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin-bottom: 0.75rem;
}

.featured-icon {
    display: grid;
    place-items: center;
    flex: 0 0 2rem;
    width: 2rem;
    aspect-ratio: 1;
    border-radius: 0.6rem;
    background: var(--accent);
    color: #fff;
    font-size: 1rem;
    font-weight: 500;
}

.featured-header h2 {
    margin: 0;
    color: #101828;
    font-size: 1rem;
    line-height: 1.25;
}

/* ========================================
   3. Beschreibung und Kategorie-Link
======================================== */

.featured-description {
    margin: 0 0 0.85rem;
    color: #344054;
    font-size: 0.95rem;
    line-height: 1.6;
}

.featured-all {
    display: inline-flex;
    align-items: center;
    align-self: flex-start;
    gap: 0.4rem;

    margin-bottom: 1rem;

    color: var(--accent);
    font-weight: 700;
    text-decoration: none;
}

.featured-all:hover {
    text-decoration: underline;
}

.featured-all span {
    transition: transform 180ms ease;
}

.featured-all:hover span {
    transform: translateX(3px);
}

/* ========================================
   4. Featured Posts
======================================== */

.featured-posts {
    display: grid;
    gap: 0.75rem;
}

.featured-post {
    display: grid;
    grid-template-columns: 88px minmax(0, 1fr);
    align-items: start;
    gap: 0.75rem;

    min-width: 0;
    padding: 0.625rem;

    border: 1px solid rgb(16 24 40 / 5%);
    border-radius: 0.625rem;
    background: #fff;

    transition: box-shadow 180ms ease;
}

.featured-post:hover {
    box-shadow: 0 4px 14px rgb(16 24 40 / 8%);
}

.featured-post-kantine {
    background: var(--color-brown-100);
}

/* Bilder */

.featured-post__image {
    display: block;
    overflow: hidden;
    aspect-ratio: 1;
    border-radius: 0.375rem;
    background: #e9edf2;
}

.featured-post__image img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 200ms ease;
}

.featured-post:hover .featured-post__image img {
    transform: scale(1.04);
}

/* Teaser-Inhalt */

.featured-post__content {
    min-width: 0;
}

.featured-post__content h3 {
    margin: 0.1rem 0 0.4rem;
    font-size: 0.95rem;
    line-height: 1.4;
    overflow-wrap: anywhere;
}

.featured-post__content h3 a {
    color: #101828;
    text-decoration: none;
}

.featured-post__content h3 a:hover {
    color: var(--accent);
}

.featured-post__content p {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;

    margin: 0 0 0.6rem;
    color: #475467;
    font-size: 0.825rem;
    line-height: 1.5;
}

/* Kategorie-Badge */

.featured-tag {
    display: inline-block;
    max-width: 100%;
    padding: 0.2rem 0.4rem;

    border-radius: 0.25rem;
    background: var(--surface);
    color: var(--accent);

    font-size: 0.75rem;
    overflow-wrap: anywhere;
}

/* ========================================
   5. Tablet: zwei Spalten
======================================== */

@media (min-width: 600px) {
    .featured-sections {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 1.25rem;
    }

    .featured-column {
        padding: 1.25rem;
    }

    .featured-post {
        grid-template-columns: 100px minmax(0, 1fr);
    }
}

/* ========================================
   6. Desktop: drei Spalten
======================================== */

@media (min-width: 1000px) {
    .featured-sections {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 1.5rem;
    }

    .featured-column {
        padding: 1.25rem;
    }

    .featured-header h2 {
        font-size: 1.25rem;
    }

    .featured-post {
        grid-template-columns: minmax(80px, 34%) minmax(0, 1fr);
        gap: 0.75rem;
        padding: 0.625rem;
    }
}

/* ========================================
   7. Große Desktop-Bildschirme
======================================== */

@media (min-width: 1400px) {
    .featured-sections {
        gap: 1.75rem;
    }

    .featured-column {
        padding: 1.5rem;
    }

    .featured-post {
        grid-template-columns: minmax(100px, 36%) minmax(0, 1fr);
        gap: 1rem;
        padding: 0.75rem;
    }
}

/* Barrierefreiheit: Animationen reduzieren */

@media (prefers-reduced-motion: reduce) {
    .featured-post,
    .featured-post__image img,
    .featured-all span {
        transition: none;
    }
}

.grid {
  display: grid;
  gap: 1rem;
  grid-template-columns: 1fr;
}

.grid.gap-20 {
  gap: 20px;
}

.margin {
  margin: 1rem 0;
}

@media (min-width: 768px) {
  .grid {
    grid-template-columns: repeat(12, 1fr);
  }

  .col-12 { grid-column: span 12; }
  .col-10 { grid-column: span 10; }
  .col-9  { grid-column: span 9; }
  .col-8  { grid-column: span 8; }
  .col-7  { grid-column: span 7; }
  .col-6  { grid-column: span 6; }
  .col-5  { grid-column: span 5; }
  .col-4  { grid-column: span 4; }
  .col-3  { grid-column: span 3; }
  .col-2  { grid-column: span 2; }
}

like-button {
  cursor: pointer;
  color: white;
  background-color: #ce1010 !important;
}

like-button.like-button-large {
  padding: 8px 16px;
  border-radius: 4px;
}

.logo {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
  text-decoration: none;
  flex: 1;
}

.logo-mark {
  display: block;
  width: 58px;
  height: 46px;
  flex: 0 0 auto;
  object-fit: contain;
}

.logo-text {
  display: grid;
  gap: 0;
}

.logo-name {
  margin-bottom: 6px;
  font-size: 18px;
  font-weight: 700;
  line-height: 0.95;
  transform: scaleY(1.32);
}

.logo-name-lach {
  color: #4a4a4a;
  text-transform: uppercase;
}

.logo-name-vegas {
  color: var(--color-orange-500);
  text-transform: uppercase;
}

.logo-name-domain {
  color: #4a4a4a;
  font-size: 0.65em;
  font-weight: 500;
}

.logo-tagline {
  color: var(--black-600);
  font-size: 12px;
  transition: opacity 300ms ease;
}

.logo-tagline.is-changing {
  opacity: 0;
}

@media (min-width: 720px) {
  .logo-mark {
    width: 58px;
    height: 46px;
  }

  .logo-name {
    font-size: 24px;
  }
}

.glatter-text {
  display: inline-block;
  
  /* Der Haupteffekt: Verzerrung auf der X-Achse */
  transform: skewX(-15deg);
  
  /* Die Geheimwaffen gegen Artefakte (aktiviert die GPU-Beschleunigung) */
  will-change: transform;
  backface-visibility: hidden;
  -webkit-font-smoothing: antialiased;
}

.site-header {
  position: sticky;
  top: 0;
  z-index: 20;
  background: #fff;
  /*border-bottom: 1px solid #e0e0e0;
  box-shadow: 0 10px 30px rgba(16, 24, 40, 0.07);*/
  backdrop-filter: blur(10px);
}

.site-header-inner {
  display: flex;
  width: min(var(--container-width), calc(100% - 32px));
  min-height: 92px;
  margin: 0 auto;
  align-items: center;
  justify-content: space-between;
  gap: 28px;
}

.site-header-nav {
  display: none;
  flex: 1;
  align-items: center;
  justify-content: center;
  gap: 1.5em;
}

.site-header-link {
  position: relative;
  display: inline-flex;
  align-items: center;
  padding: 36px 0 33px;
  color: var(--navigation-link-color);
  font-size: 15px;
  font-weight: normal;
  white-space: nowrap;
  flex-shrink: 0;
  text-decoration: none;
  text-transform: uppercase;
  transition: all 150ms ease-in-out;
  letter-spacing: -0.2px;
}

.site-header-link:hover,
.site-header-link.is-active {
  color: var(--link-color-hover);
  text-decoration: none;
  letter-spacing: 0.6px;
  /*text-decoration: underline;
  text-decoration-color: var(--link-underline-color);
  text-decoration-skip-ink: auto;
  text-underline-offset: 4px;
  text-decoration-thickness: 1px;*/
}

/*
.site-header-link.is-active::after {
  position: absolute;
  right: 0;
  bottom: 8px;
  left: 0;
  height: 2px;
  border-radius: 999px;
  background: var(--link-color-hover);
  content: "";
}
*/

.site-header-actions {
  display: flex;
  align-items: center;
}

.site-header-icon-link {
  display: grid;
  width: 50px;
  height: 50px;
  place-items: center;
  color: var(--ink);
  font-size: 25px;
  font-weight: 800;
}

.site-header-search-icon {
  display: block;
  width: 24px;
  height: 24px;
  filter: brightness(0);
}

.breadcrumb-nav {
  margin-bottom: 20px;
  font-size: 0.9rem;
}

.breadcrumb-list {
  display: flex;
  gap: 10px;
  padding: 0;
  margin: 0;
  list-style: none;
  color: #666;
}

.breadcrumb-item {
  display: flex;
  gap: 10px;
  align-items: center;
}

.breadcrumb-link {
  color: #0066cc;
  text-decoration: none;
}

.breadcrumb-separator {
  color: #ccc;
  pointer-events: none;
}

.breadcrumb-current {
  color: #333;
  font-weight: 500;
}

.search-page {
  margin: 30px 0;
}

.search-page__input {
  width: 100%;
  max-width: 500px;
  padding: 12px;
  border: 1px solid #ccc;
  border-radius: 4px;
  font-size: 1.1rem;
}

.search-page__hint,
.search-results__empty {
  color: #666;
}

.search-results__list {
  margin-top: 20px;
}

.search-results__excerpt {
  margin: 10px 0;
  color: #555;
  font-size: 0.9rem;
}

.tag-cloud {
  display: flex;
  flex-wrap: wrap;
  gap: 15px;
  padding: 0;
  list-style: none;
}

.tag-cloud__link {
  display: inline-block;
  padding: 8px 15px;
  border-radius: 20px;
  background: #f0f0f0;
  color: inherit;
  font-weight: 700;
  text-decoration: none;
}

.tag-cloud__count {
  color: #666;
  font-weight: 400;
}

.page-404 {
  padding: 40px 20px;
  text-align: center;
}

.page-404__title {
  color: #d9534f;
  font-size: 3rem;
}

@media (max-width: 940px) {
  .site-header-inner {
    flex-wrap: wrap;
    gap: 12px 20px;
    padding: 12px 0;
  }

  .site-header-nav {
    order: 3;
    width: 100%;
    flex: 0 0 100%;
    justify-content: flex-start;
    gap: 20px;
    overflow-x: auto;
  }

  .site-header-link {
    padding: 8px 0 12px;
    white-space: nowrap;
  }

  .site-header-link.is-active::after {
    bottom: 4px;
  }
}

@media (min-width: 1000px) {
  .site-header-nav {
    display: flex;
  }
}

.main-navigation {
  position: relative;
  margin-bottom: 20px;
}

.main-navigation__toggle {
  display: flex;
  width: 100%;
  gap: 10px;
  align-items: center;
  justify-content: center;
  padding: 12px 16px;
  border: 1px solid #ccc;
  border-radius: 4px;
  background: #fff;
  color: inherit;
  cursor: pointer;
  font: inherit;
  font-weight: 600;
}

.main-navigation__toggle-icon {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.main-navigation__toggle-icon span {
  display: block;
  width: 20px;
  height: 2px;
  background: currentColor;
}

.main-navigation__menu {
  display: none;
  padding: 16px 0;
}

.main-navigation.is-open .main-navigation__menu {
  display: block;
}

.main-navigation__links {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.main-navigation__links a {
  color: inherit;
  text-decoration: none;
}

.main-navigation__links a:hover,
.main-navigation__links a:focus-visible {
  text-decoration: underline;
}

.main-navigation__search {
  display: flex;
  gap: 5px;
  margin-top: 16px;
}

.main-navigation__search-input {
  padding: 5px 10px;
  border: 1px solid #ccc;
  border-radius: 4px;
  font-size: 0.9rem;
}

.main-navigation__search-button {
  padding: 5px 10px;
  border: none;
  border-radius: 4px;
  background: #0066cc;
  color: #fff;
  cursor: pointer;
}

@media (min-width: 960px) {
  .main-navigation__toggle {
    display: none;
  }

  .main-navigation__menu {
    display: flex;
    gap: 20px;
    align-items: center;
    margin-bottom: 20px;
  }

  .main-navigation__links {
    flex-direction: row;
    gap: 20px;
    align-items: center;
  }

  .main-navigation__search {
    margin-top: 0;
    margin-left: auto;
  }
}

.home-hero {
  display: grid;
  aspect-ratio: 16 / 8;
  grid-template-columns: 1fr;
  align-items: center;
  gap: 18px;
  padding: 30px 24px;
  overflow: hidden;
  border-radius: var(--radius);
  background: url('/assets/img/aufmacher.png') center / cover no-repeat;
  box-shadow: var(--shadow);
}

.home-hero-visual {
  position: relative;
  display: grid;
  min-height: 245px;
  place-items: center;
}

.home-hero-face {
  display: grid;
  width: 205px;
  height: 205px;
  place-items: center;
  border-radius: 50%;
  background: #ffd121;
  box-shadow: inset -16px -20px 0 rgba(231, 143, 0, 0.18), 0 18px 0 rgba(211, 143, 26, 0.18);
  font-size: 118px;
  line-height: 1;
}

.home-hero-bubble {
  position: absolute;
  top: 6px;
  right: 6px;
  display: grid;
  width: 116px;
  height: 116px;
  place-items: center;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.92);
  color: #111111;
  font-size: 32px;
  font-weight: 900;
  line-height: 0.95;
  text-align: center;
}

.home-hero-eyebrow {
  display: flex;
  margin: 0 0 24px;
  align-items: center;
  gap: 14px;
  color: var(--pink);
  font-size: 35px;
  font-weight: 900;
  line-height: 1.1;
  text-transform: uppercase;
}

.home-hero-joke {
  max-width: 540px;
  margin: 0 0 28px;
  color: var(--ink);
  font-size: 30px;
  font-weight: 900;
  line-height: 1.45;
}

.home-hero-button {
  display: inline-flex;
  min-height: 52px;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 0 28px;
  border-radius: 7px;
  background: var(--pink);
  color: #ffffff;
  font-size: 17px;
  font-weight: 800;
  box-shadow: 0 10px 24px rgba(236, 47, 134, 0.28);
}

@media (min-width: 801px) {
  .home-hero {
    grid-template-columns: minmax(220px, 37%) 1fr;
    gap: 42px;
    padding: 34px 64px;
  }

  .home-hero-visual {
    min-height: 245px;
  }

  .home-hero-face {
    width: 205px;
    height: 205px;
    font-size: 118px;
  }

  .home-hero-bubble {
    top: 6px;
    right: 6px;
    width: 116px;
    height: 116px;
    font-size: 32px;
  }

  .home-hero-eyebrow {
    font-size: 35px;
  }

  .home-hero-joke {
    font-size: 30px;
  }
}

.home-search {
  display: grid;
  width: min(730px, 100%);
  min-height: 54px;
  grid-template-columns: 1fr 58px;
  margin: 26px auto 24px;
  overflow: hidden;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: #ffffff;
  box-shadow: 0 10px 28px rgba(16, 24, 40, 0.1);
}

.home-search-label {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
}

.home-search-input {
  min-width: 0;
  border: 0;
  padding: 0 22px;
  color: var(--ink);
  font: inherit;
  font-size: 16px;
  outline: 0;
}

.home-search-input::placeholder {
  color: #70758a;
}

.home-search-button {
  display: grid;
  border: 0;
  place-items: center;
  background: var(--color-pink-600);
  color: #ffffff;
  cursor: pointer;
  font-size: 31px;
  line-height: 1;
}

.home-search-button-icon {
  display: block;
  width: 22px;
  height: 22px;
  filter: brightness(0) invert(1);
}

.category-shortcuts {
  display: grid;
  grid-template-columns: 1fr;
  margin: 1em auto 2em auto;
  padding: 24px 22px;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: #ffffff;
  box-shadow: 0 12px 34px rgba(16, 24, 40, 0.1);
  align-items: start;
}

.category-shortcuts-item {
  display: flex;
  place-items: center;
  align-content: center;
  gap: 1em;
  margin-bottom: 1em;
  text-align: left;
}

.category-shortcuts-icon {
  display: grid;
  width: 72px;
  height: 72px;
  place-items: center;
  border-radius: 50%;
  color: #ffffff;
  font-size: 37px;
  transition: all 1250ms ease-in-out;
}

.category-shortcuts-icon span {
  position: relative;
  z-index: 2;
}

.category-shortcuts-icon::before {
  content: "";
  z-index: 1;
  position: absolute;
  width: 72px;
  height: 72px;
  border-radius: 50%;
  background: transparent;
  opacity: 0.9;
  transition: all 150ms ease-in-out;
}

.category-shortcuts-item--orange .category-shortcuts-icon::before {
  background: var(--color-orange-250);
  color: var(--ink);
}

.category-shortcuts-item--green .category-shortcuts-icon::before {
  background: var(--color-green-500);
}

.category-shortcuts-item--blue .category-shortcuts-icon::before {
  background: var(--color-blue-250);
}

.category-shortcuts-item--red .category-shortcuts-icon::before {
  background: var(--color-red-700);
}

.category-shortcuts-item--pink .category-shortcuts-icon::before {
  background: #ff8fb2;
}

.category-shortcuts-item:hover .category-shortcuts-icon::before {
  transform: scaleX(1.18);
  opacity: 0.8;
}

.category-shortcuts-title {
  margin: 0;
  display: block;
  color: var(--ink);
  font-size: 18px;
  font-weight: 600;
  font-family: 'Rubik', sans-serif;
}

.category-shortcuts-description {
  color: var(--ink);
  font-size: 14px;
}

@media (min-width: 800px) {
  .category-shortcuts {
    margin-left: 5%;
    margin-top: -2em;
    width: 90%;
    grid-template-columns: repeat(5, 1fr);
  }

  
  .category-shortcuts-item {
    padding: 0 18px;
    flex-direction: column;
    text-align: center;
  }

  .category-shortcuts-item + .category-shortcuts-item {
    border-left: 1px solid #d9dce6;
  }
}

.post-layout {
  --post-ink: #152846;
  --post-muted: #52677d;
  --post-teal: #08a989;
  --post-teal-dark: #078b76;
  --post-line: #dcebed;
  --post-soft: #f1f9f9;

  min-height: 100%;
  background: #f4f9fa;
  color: var(--post-ink);
  font-family: 'Inter', 'Segoe UI', sans-serif;
  line-height: 1.6;
}

.post-layout .main {
  width: min(100% - 32px, 1180px);
  margin: 0 auto;
}

.post-layout .post-page {
  padding-top: 24px;
  padding-bottom: 48px;
}

.post-layout-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  align-items: start;
  gap: 20px;
}

.post-article {
  min-width: 0;
}

.post-heading {
  padding: 0 0 17px;
}

.post-back-link,
.post-back-link:visited {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 20px;
  color: var(--post-teal-dark);
  font-size: 0.75rem;
  font-weight: 700;
  text-decoration: none;
}

.post-back-link:hover,
.post-sidebar-link:hover {
  color: #056d5e;
}

.post-back-link:focus-visible,
.post-sidebar a:focus-visible,
.post-article-navigation a:focus-visible {
  outline: 3px solid rgba(8, 169, 137, 0.4);
  outline-offset: 3px;
}

.post-category-badge {
  display: table;
  padding: 2px 7px;
  margin-bottom: 7px;
  border-radius: 4px;
  background: #e2f5ef;
  color: var(--post-teal-dark);
  font-size: 0.64rem;
  font-weight: 700;
  line-height: 1.5;
}

.post-layout .article-title {
  max-width: 780px;
  margin: 0 0 12px;
  color: var(--post-ink);
  font-size: clamp(1.7rem, 5vw, 2.45rem);
  font-weight: 750;
  letter-spacing: -0.045em;
  line-height: 1.13;
}

.post-byline {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 7px 15px;
  color: var(--post-muted);
  font-size: 0.72rem;
}

.post-byline__item {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  white-space: nowrap;
}

.post-byline__item img {
  display: block;
  width: 14px;
  height: 14px;
  opacity: 0.76;
}

.post-byline__topic {
  font-weight: 600;
}

.post-byline__topic > span {
  color: var(--post-teal-dark);
  font-size: 1rem;
}

.post-featured-image {
  width: 100%;
  aspect-ratio: 1.78;
  overflow: hidden;
  margin: 0 0 20px;
  border: 1px solid var(--post-line);
  border-radius: 7px;
  background: #e7eff0;
  box-shadow: 0 8px 22px rgba(25, 61, 77, 0.08);
}

.post-featured-image img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: top center;
}

.post-layout .entry-content {
  max-width: none;
  color: var(--post-ink);
}

.post-layout .entry-content > p {
  margin: 0 0 14px;
  color: #40576c;
  line-height: 1.75;
}

.post-layout .entry-content > p:first-child {
  color: #344b61;
}

.post-layout .entry-content h2 {
  padding: 0;
  margin: 25px 0 12px;
  border: 0;
  color: var(--post-ink);
  letter-spacing: -0.02em;
  line-height: 1.35;
}

.post-layout .entry-content p a {
  color: var(--post-teal-dark);
  background-image: linear-gradient(transparent, calc(100% - 1px), rgba(8, 169, 137, 0.55) 1px);
}

.post-toc {
  padding: 16px 18px;
  margin: 20px 0 24px;
  border: 1px solid var(--post-line);
  border-radius: 7px;
  background: #fff;
  box-shadow: 0 4px 14px rgba(25, 61, 77, 0.035);
}

.post-toc h2 {
  margin: 0 0 9px;
  color: var(--post-ink);
  font-size: 0.92rem;
}

.post-toc ol {
  padding-left: 1.65rem;
  margin: 0;
  counter-reset: post-toc;
  list-style: none;
}

.post-toc li {
  position: relative;
  counter-increment: post-toc;
  font-size: 0.76rem;
  line-height: 1.55;
}

.post-toc li::before {
  position: absolute;
  right: calc(100% + 0.5rem);
  color: var(--post-teal-dark);
  content: counters(post-toc, ".") ".";
  font-size: 0.68rem;
  font-weight: 800;
}

.post-toc li ol {
  padding-left: 1.1rem;
}

.post-toc a {
  color: #40576c;
  text-decoration: none;
}

.post-toc a:hover {
  color: var(--post-teal-dark);
  text-decoration: underline;
  text-underline-offset: 3px;
}

.post-toc a:focus-visible {
  outline: 3px solid rgba(8, 169, 137, 0.4);
  outline-offset: 2px;
}

.post-layout .entry-content pre {
  max-width: 100%;
  overflow: auto;
  padding: 16px 18px;
  margin: 16px 0 22px;
  border: 1px solid #253d55;
  border-radius: 8px;
  background: #142234;
  box-shadow: 0 8px 20px rgba(21, 40, 70, 0.12);
  color: #e7eef5;
  font-family: 'Cascadia Code', 'SFMono-Regular', Consolas, monospace;
  font-size: 0.78rem;
  line-height: 1.65;
  tab-size: 4;
  -webkit-overflow-scrolling: touch;
}

.post-layout .entry-content pre code {
  display: block;
  min-width: max-content;
  padding: 0;
  background: transparent;
  color: inherit;
  font: inherit;
  white-space: pre;
}

.post-layout .entry-content p code,
.post-layout .entry-content li code {
  padding: 0.12em 0.35em;
  border: 1px solid #e1eaee;
  border-radius: 4px;
  background: #eef4f6;
  color: #174e67;
  font-family: 'Cascadia Code', 'SFMono-Regular', Consolas, monospace;
  font-size: 0.88em;
}

.post-benefit-list {
  display: grid;
  gap: 13px;
  padding: 0 !important;
  margin: 14px 0 20px !important;
  counter-reset: post-benefit;
  list-style: none !important;
}

.post-layout .entry-content .post-benefit-list > li {
  position: relative;
  min-height: 30px;
  padding: 0 0 0 40px;
  margin: 0;
  color: var(--post-muted);
  line-height: 1.55;
}

.post-layout .entry-content .post-benefit-list > li::before {
  position: absolute;
  top: 3px;
  left: 0;
  display: grid;
  width: 26px;
  height: 26px;
  place-items: center;
  border-radius: 50%;
  background: var(--post-teal);
  box-shadow: 0 3px 8px rgba(8, 169, 137, 0.2);
  color: #fff;
  content: counter(post-benefit) !important;
  counter-increment: post-benefit;
  font-size: 0.8rem;
  font-weight: 800;
  line-height: 1;
}

.post-layout .entry-content .post-benefit-list > li::after {
  content: '';
  position: absolute;
  top: 0;
  left: -3px;
  display: block;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  color: #fff;
  border: 1px solid green;
  opacity: 0.2;
}

.post-benefit-list strong,
.post-benefit-list span {
  display: block;
}

.post-benefit-list strong {
  margin-bottom: 2px;
  color: var(--post-ink);
}

.post-takeaway {
  display: flex;
  align-items: flex-start;
  gap: 13px;
  padding: 16px;
  margin: 22px 0;
  border: 1px solid #d5eee7;
  border-radius: 7px;
  background: #eaf8f4;
}

.post-takeaway__icon {
  display: grid;
  width: 27px;
  height: 27px;
  flex: 0 0 27px;
  place-items: center;
  color: var(--post-teal-dark);
  font-size: 1.35rem;
  line-height: 1;
}

.post-layout .entry-content .post-takeaway h2 {
  margin: 0 0 5px;
  color: var(--post-ink);
  font-size: 0.9rem;
}

.post-layout .entry-content .post-takeaway p {
  margin: 0;
  color: #526b7a;
  line-height: 1.55;
}

.post-layout .post-tags {
  padding-top: 15px;
  margin-top: 22px;
  border-top: 1px solid var(--post-line);
}

.post-layout .post-tags__list {
  gap: 6px;
}

.post-layout .post-tags__item a {
  padding: 4px 8px;
  border: 1px solid var(--post-line);
  border-radius: 20px;
  background: #fff;
  color: #38536a;
  font-size: 0.65rem;
}

.post-layout .post-tags__item a:hover,
.post-layout .post-tags__item a:focus-visible {
  background: var(--post-soft);
  color: var(--post-teal-dark);
}

.post-sidebar {
  display: grid;
  gap: 14px;
}

.post-sidebar-card {
  padding: 17px;
  border: 1px solid #e3edf0;
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.94);
  box-shadow: 0 5px 17px rgba(25, 61, 77, 0.045);
}

.post-author-card__identity {
  display: flex;
  align-items: center;
  gap: 11px;
  margin-bottom: 14px;
}

.post-author-card__identity img {
  display: block;
  width: 50px;
  height: 50px;
  flex: 0 0 50px;
  border: 2px solid #e5f4f0;
  border-radius: 50%;
  object-fit: cover;
}

.post-author-card h2,
.post-related-card h2,
.post-contact-card h2 {
  margin: 0;
  color: var(--post-ink);
  font-size: 0.86rem;
  line-height: 1.35;
}

.post-author-card__identity p {
  margin: 2px 0 0;
  color: var(--post-muted);
  font-size: 0.65rem;
}

.post-author-card > p,
.post-contact-card > p {
  margin: 0 0 10px;
  color: var(--post-muted);
  font-size: 0.72rem;
  line-height: 1.6;
}

.post-sidebar-link {
  display: inline-flex;
  gap: 6px;
  color: var(--post-teal-dark);
  font-size: 0.71rem;
  font-weight: 700;
  text-decoration: none;
}

.post-related-card h2 {
  margin-bottom: 10px;
}

.post-related-card ul {
  padding: 0;
  margin: 0;
  list-style: none;
}

.post-related-card li + li {
  border-top: 1px solid #e8eff1;
}

.post-related-card li a {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  padding: 10px 0;
  color: #344b61;
  font-size: 0.7rem;
  line-height: 1.4;
  text-decoration: none;
}

.post-related-card li a:hover {
  color: var(--post-teal-dark);
}

.post-contact-card {
  background: linear-gradient(145deg, #fff, #f1faf8);
}

.post-contact-card__icon {
  display: block;
  margin-bottom: 7px;
  color: var(--post-teal);
  font-size: 1.2rem;
}

.post-contact-card h2 {
  margin-bottom: 7px;
}

.post-sidebar-button {
  display: inline-flex;
  min-height: 36px;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 0 12px;
  border-radius: 5px;
  background: var(--post-teal);
  color: #fff !important;
  font-size: 0.68rem;
  font-weight: 700;
  text-decoration: none;
}

.post-sidebar-button:hover {
  background: var(--post-teal-dark);
}

.post-article-navigation {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 12px;
  padding: 16px 0 0;
  margin-top: 22px;
  border-top: 1px solid var(--post-line);
}

.post-article-navigation a {
  display: flex;
  max-width: 48%;
  align-items: center;
  gap: 9px;
  color: var(--post-teal-dark);
  text-decoration: none;
}

.post-article-navigation__next {
  margin-left: auto;
  text-align: right;
}

.post-article-navigation a small,
.post-article-navigation a strong {
  display: block;
}

.post-article-navigation a small {
  margin-bottom: 3px;
  color: var(--post-muted);
  font-size: 0.61rem;
}

.post-article-navigation a strong {
  overflow: hidden;
  max-width: 230px;
  color: var(--post-ink);
  font-size: 0.68rem;
  font-weight: 600;
  text-overflow: ellipsis;
  white-space: nowrap;
}

@media (min-width: 900px) {
  .post-layout .post-page {
    padding-top: 30px;
    padding-bottom: 54px;
  }

  .post-layout-grid {
    grid-template-columns: minmax(0, 1fr) 300px;
    gap: 28px;
  }

  .post-sidebar {
    position: sticky;
    top: 20px;
  }

  .post-sidebar-card {
    padding: 19px;
  }
}

@media (max-width: 480px) {
  .post-layout .main {
    width: min(100% - 28px, 1180px);
  }

  .post-layout .post-page {
    padding-top: 17px;
  }

  .post-layout .article-title {
    font-size: clamp(1.55rem, 8vw, 2rem);
  }

  .post-featured-image {
    aspect-ratio: 1.48;
    margin-bottom: 17px;
  }

  .post-sidebar {
    gap: 11px;
  }
}

.post-card {
  display: flex;
  flex-direction: column;
  overflow: hidden;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: var(--card-background, var(--color-gray-0));
  box-shadow: 0 6px 12px rgba(16, 24, 40, 0.12);
}

.post-card-media {
  --post-card-gradient: radial-gradient(circle, var(--color-yellow-300), var(--color-orange-450));
  display: grid;
  min-height: 168px;
  aspect-ratio: 16 / 9;
  place-items: center;
  overflow: hidden;
  position: relative;
  background-position: center;
  background-size: cover;
  background-image: var(--post-card-image, none), var(--post-card-gradient);
}

.post-card-media--green {
  --post-card-gradient: linear-gradient(135deg, var(--color-green-700), var(--color-green-200));
}

.post-card-media--blue {
  --post-card-gradient: linear-gradient(135deg, var(--color-teal-800), var(--color-orange-300));
}

.post-card-media--purple {
  --post-card-gradient: linear-gradient(135deg, var(--color-blue-700), var(--color-yellow-300));
}

.post-card-logo {
  display: block;
  width: min(55%, 80px);
  height: auto;
  filter: drop-shadow(0 8px 14px rgba(0, 0, 0, 0.18));
}

.post-card-badge {
  position: absolute;
  top: 14px;
  left: 14px;
  z-index: 1;
  display: inline-flex;
  min-height: 25px;
  align-items: center;
  padding: 0 12px;
  border-radius: 4px;
  color: #ffffff;
  font-size: 12px;
  font-weight: 600;
  text-transform: uppercase;
  background-color: var(--color-blue-700);
}

.post-card-badge.lustige-maerchen {
  background-color: var(--color-green-600);
}

.post-card-body {
  display: flex;
  flex: 1;
  flex-direction: column;
  padding: 18px 22px 20px;
}

.post-card-title {
  margin: 0 0 9px;
  font-size: 20px;
  font-weight: 600;
  line-height: 1.25;
}

.post-card-excerpt {
  display: -webkit-box;
  min-height: 78px;
  margin: 0 0 18px;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  color: var(--ink);
  font-size: 16px;
  line-height: 1.20;
}

.post-card-excerpt--compact {
  margin: 10px 0;
  color: var(--ink-muted, var(--color-gray-700));
  font-size: 0.9rem;
  line-height: 1.5;
}

.post-card-meta {
  display: flex;
  align-items: center;
  gap: 9px;
  margin-top: auto;
  color: var(--card-meta-color, var(--color-gray-600));
  font-size: 13px;
}

.post-card-meta-item {
  display: inline-flex;
  align-items: center;
  gap: 4px;
}

.post-card-meta-item .post-meta-icon {
  width: 16px;
  height: 16px;
}

.post-card-read-more {
  margin-left: auto;
  color: var(--card-link-color);
  font-weight: 900;
  white-space: nowrap;
}

@media (max-width: 420px) {
  .post-card-meta {
    flex-wrap: wrap;
  }

  .post-card-read-more {
    width: 100%;
    margin-left: 0;
  }
}

.post-hero {
  position: relative;
  color: #fff;
  background: var(--color-gray-900, #0f172a);
}

.post-hero-media {
  position: relative;
  height: clamp(240px, 58vw, 420px);
  overflow: hidden;
}

.post-hero-image {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  filter: saturate(1.05);
}

.post-hero-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(15, 23, 42, 0.05) 15%, rgba(15, 23, 42, 0.82) 100%);
}

.post-hero-torn-paper {
  position: absolute;
  bottom: 0;
  left: 0;
  z-index: 2;
  width: 100%;
  height: clamp(32px, 7vw, 72px);
  background: url("/assets/img/torn-paper-beige.png") center top / 100% 100% no-repeat;
  pointer-events: none;
}

.torn-edge-top {
  position: absolute;
  top: 90px;
  left: 0;
  z-index: 2;
  width: 100%;
  height: 28px;
  transform: scale(-1.0);
  background: url("/assets/img/torn-paper.png") center top / 100% 100% no-repeat;
  /*mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 30' preserveAspectRatio='none'%3E%3Cpath d='M0 0h1200v12c-50 10-100-7-150 6-50 10-100-8-150 4-50 6-100-14-150-2-50 4-100-16-150-4-50 7-100-9-150 5-50 4-100-16-150-4-50 6-100-8-150 0V0z'/%3E%3C/svg%3E");
  mask-size: 100% 100%;*/
}

.post-hero-content {
  padding: 24px 16px 28px;
  color: var(--text-color, #1f2937);
  background: var(--background-color, #fff);
}

.post-hero-content .breadcrumb-nav {
  margin-bottom: 18px;
}

.post-hero-category {
  display: inline-flex;
  display: none;
  align-items: center;
  min-height: 38px;
  padding: 0 20px;
  border-radius: 10px;
  background: var(--color-orange-500, #ff4d4d);
  color: #fff;
  font-weight: 800;
  letter-spacing: 0.04em;
}

.post-hero .article-title {
  margin: 18px 0 16px;
  color: inherit;
  font-size: clamp(2rem, 8vw, 3.5rem);
  line-height: 1.08;
}

.post-hero .post-meta {
  margin: 0;
  color: inherit;
}

.post-hero .post-meta-item {
  margin-bottom: 8px;
}

.post-hero .post-meta-item::after {
  color: currentColor;
}

.post-hero .post-meta-icon {
  filter: brightness(0) saturate(100%) invert(66%) sepia(90%) saturate(1000%) hue-rotate(355deg);
}

.post-hero .post-meta-item-label {
  color: var(--color-orange-500, #ffad00);
}

@media (min-width: 960px) {
  .post-hero-media {
    height: min(56vw, 560px);
  }

  .post-hero-overlay {
    background: linear-gradient(90deg, rgba(15, 23, 42, 0.9) 0%, rgba(15, 23, 42, 0.58) 58%, rgba(15, 23, 42, 0.18) 100%);
  }

  .post-hero-content {
    position: absolute;
    inset: 0;
    z-index: 1;
    display: flex;
    width: min(var(--container-width), calc(100% - 48px));
    flex-direction: column;
    justify-content: center;
    padding: 48px 24px;
    margin: 0 auto;
    color: #fff;
    background: transparent;
  }

  .post-hero-content .breadcrumb-nav {
    margin-bottom: 22px;
  }

  .post-hero-content .breadcrumb-link,
  .post-hero-content .breadcrumb-current,
  .post-hero-content .breadcrumb-separator {
    color: #dbeafe;
  }

  .post-hero .article-title {
    max-width: 900px;
    margin: 24px 0;
  }

  .post-hero .post-meta {
    max-width: 100%;
  }
}

.post-meta {
  display: flex;
  gap: 10px 16px;
  flex-wrap: wrap;
  margin: 12px 0;
  padding: 0;
  align-items: center;
  color: #e5e7eb;
  font-size: var(--font-size-sm);
}

.post-meta-item {
  display: inline-flex;
  min-height: 38px;
  box-sizing: border-box;
  gap: 8px;
  align-items: center;
  padding: 0 14px;
  border: 1px solid rgba(148, 163, 184, 0.24);
  border-radius: 10px;
  background: rgba(15, 23, 42, 0.48);
  white-space: nowrap;
}

.post-meta-item-label {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  margin: 0;
  color: #ffb800;
  font-size: 16px;
  line-height: 1;
}

.post-meta-item-val {
  color: inherit;
  font-weight: 600;
  line-height: 1;
}

.post-meta-icon {
  display: block;
  width: 16px;
  height: 16px;
}

.post-meta-item::after {
  display: none;
}

.post-large .post-meta {
  justify-content: center;
}

.post-metas {
  margin: 1em 0;
  padding: 0;
  display: flex;
  justify-content: flex-start;
  align-items: center;
  flex-wrap: wrap;
}

.post-metas-item {
  margin-right: 2em;
  /*font-size: var(--font-size-m);*/
  display: flex;
  justify-content: flex-start;
  align-items: center;
}

.post-metas-item-key {
  margin-right: 0.25em;
  color: silver;
}

.post-metas-item-val {
  color: var(--color-gray-800);
}

@media (max-width: 959px) {
  .post-meta {
    gap: 8px;
  }

  .post-meta-item {
    padding: 0 12px;
  }
}

.post-categories {
  margin-top: 2rem;
  padding-top: 1.5rem;
  border-top: 1px solid var(--border, #e5e7eb);
}

.post-categories h2 {
  margin: 0 0 0.75rem;
  color: var(--ink, #111827);
  font-size: 1.1rem;
}

.post-categories__list {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.post-categories__item a {
  display: inline-block;
  padding: 0.35rem 0.7rem;
  border-radius: 4px;
  background: var(--color-gray-800);
  color: white;
  font-size: 0.9rem;
  text-decoration: none;
}

.post-categories__item a:hover,
.post-categories__item a:focus-visible {
  background: var(--color-gray-600);
}

.tag-overview {
  padding: 1rem 0 4rem;
}

.tag-overview h1 {
  margin: 0 0 0.5rem;
}

.tag-overview__intro {
  margin: 0 0 1.5rem;
  color: var(--ink-muted, #6b7280);
}

.tag-overview__list,
.post-tags__list {
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.tag-overview__item a,
.post-tags__item a {
  display: inline-block;
  padding: 0.35rem 0.7rem;
  border-radius: 4px;
  background: var(--color-gray-800);
  color: white;
  font-size: 0.9rem;
  text-decoration: none;
}

.tag-overview__item a:hover,
.tag-overview__item a:focus-visible,
.post-tags__item a:hover,
.post-tags__item a:focus-visible {
  background: var(--color-gray-600);
}

.tag-overview__count {
  font-size: 0.85em;
}

.post-tags {
  margin-top: 1.5rem;
  padding-top: 1.5rem;
  border-top: 1px solid var(--border, #e5e7eb);
}

.post-tags h2 {
  margin: 0 0 0.75rem;
  color: var(--ink, #111827);
  font-size: 1.1rem;
}

.sort-nav {
  margin-bottom: 1.5rem;
}

.glossary-nav {
  display: flex;
  flex-wrap: wrap;
  gap: .35rem;
  margin: 1rem 0;
}

.glossary-nav-item {
  min-width: 2rem;
  padding: .3rem .5rem;
  border-radius: .25rem;
  background: #f2f7ff;
  text-align: center;
  text-decoration: none;
}

.glossary-nav-item.inactive {
  opacity: .45;
}

.glossary-list {
  margin: 1rem 0;
}

.glossary-headline {
  display: block;
  margin: 1.25rem 0 .5rem;
  padding-bottom: .25rem;
  border-bottom: 1px solid #d9e3f0;
  font-size: 1.25rem;
  font-weight: 700;
  scroll-margin-top: 1rem;
}

.glossary-headline.no-entries {
  opacity: .4;
}

.glossary-entries {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
  padding: 0;
  list-style: none;
}

.glossary-button,
.bar-chart-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .75rem;
}

.glossary-button {
  padding: .5rem .75rem;
  border: 1px solid #e3e8ef;
  border-radius: .4rem;
  background: #fff;
  color: inherit;
  cursor: pointer;
}

.glossary-button-voting {
  display: inline-flex;
  align-items: center;
  gap: .25rem;
  white-space: nowrap;
}

.glossary-button-voting-heart svg {
  width: 1rem;
  height: 1rem;
}

.bar-chart-item {
  position: relative;
  min-height: 2.25rem;
  margin: .35rem 0;
  padding: .25rem .5rem;
  overflow: hidden;
}

.bar-chart-bar {
  position: absolute;
  inset: 0 auto 0 0;
  width: var(--width, 0%);
  background: #eaf2ff;
}

.bar-chart-text,
.bar-chart-item .vote-btn {
  position: relative;
}

.bar-chart-text {
  overflow-wrap: anywhere;
}

.bar-chart-item .vote-btn {
  flex: 0 0 auto;
}

.entry-content p a {
  color: #4a4a4a;
  transition: all 0.2s;
  background-repeat: no-repeat;
  background-position: 100%;
  background-size: 100% 100%;
  background-image: linear-gradient(transparent, calc(100% - 1px), #ff5d1c 1px);
}

.entry-content p a:hover {
  background-size: 0 100%;
  text-decoration: none;
}

.entry-content {
  max-width: 800px;
  padding: 0;
}

@media screen and (min-width: 640px) {
  .entry-content {
    padding: 0;
  }
}

.entry-content p {
  margin: 0 0 10px 0;
}

.entry-content p:not([class]) a {
  color: var(--color-gray-800);
}

.entry-content > img {
  width: auto;
}

.entry-content h1 {
  margin: 20px 0;
  font-size: 24px;
  font-weight: 700;
}

.entry-content h2 {
  margin: 2em 0 1em 0;
  font-size: 22px;
  font-weight: 700;
  border-bottom: 1px solid #e5e7eb;
}

.entry-content h3 {
  margin: 2em 0 1em 0;
  clear: both;
}

.entry-content p {
  margin: 0 0 15px 0;
  color: #4a4a4a;
  font-size: 16px;
  line-height: 150%;
}

@media screen and (min-width: 640px) {
  .entry-content p {
    font-size: 16px;
    line-height: 165%;
  }
}

.entry-content .dialog {
  margin-left: 15px;
  margin-bottom: 10px;
  font-style: italic;
}

.entry-content > ol {
  margin-bottom: 20px;
  padding-left: 36px;
  list-style: none;
}

.entry-content > ol li {
  position: relative;
  line-height: 165%;
}

.entry-content > ol li:before {
  width: 20px;
  height: 20px;
  color: #6a6a6a;
  font-size: 14px;
  line-height: 20px;
  text-align: center;
  position: absolute;
  top: 0px;
  left: -36px;
}

.entry-content > ol li > strong {
  line-height: 32px;
}

@media screen and (min-width: 640px) {
  .entry-content > ol {
    padding-left: 40px;
  }
  .entry-content > ol li:before {
    width: 24px;
    height: 24px;
    font-size: 15px;
    line-height: 24px;
    top: 0px;
    left: -40px;
  }
}

.entry-content > ul {
  padding-left: 20px;
  list-style: disc;
}

.entry-content > ol,
.entry-content > ul {
  margin-bottom: 20px;
}

.entry-content > ol li,
.entry-content > ul li {
  margin: 0 0 0 0;
  line-height: 150%;
}

.entry-content {
  counter-reset: section;
}

.entry-content > ol li:before {
  counter-increment: section;
  content: "" counter(section) ") " !important;
}

.entry-content > p em {
  font-family: var(--font-serif);
}

.drop-cap::first-letter {
  float: left;
  font-size: 4.25rem;
  line-height: 0.8;
  margin-right: 0.1em;
  margin-top: 0.15em;
  font-weight: normal;
}

.post-layout.story p {
  font-family: var(--font-serif);
}

.contact-form {
  display: grid;
  gap: 1.25rem;
  max-width: 42rem;
  margin: 2rem 0;
}

.contact-form__field {
  display: grid;
  gap: 0.5rem;
}

.contact-form__honeypot {
  position: absolute;
  left: -10000px;
  width: 1px;
  height: 1px;
  overflow: hidden;
}

.contact-form__field label {
  font-weight: 700;
}

.contact-form__field input,
.contact-form__field textarea {
  width: 100%;
  padding: 0.75rem;
  border: 1px solid #bbb;
  border-radius: 4px;
  font: inherit;
}

.contact-form__field textarea {
  resize: vertical;
}

.contact-form button {
  justify-self: start;
  padding: 0.75rem 1.25rem;
  border: 0;
  border-radius: 4px;
  background: #333;
  color: #fff;
  font: inherit;
  cursor: pointer;
}

.contact-form button:disabled {
  cursor: wait;
  opacity: 0.65;
}

.contact-form__status {
  min-height: 1.5em;
  margin: 0;
}

.portfolio-homepage {
  --portfolio-ink: #152846;
  --portfolio-muted: #52677d;
  --portfolio-teal: #08a989;
  --portfolio-teal-dark: #078b76;
  --portfolio-line: #dcebed;
  --portfolio-soft: #f1f9f9;
  --portfolio-shadow: 0 10px 30px rgba(25, 61, 77, 0.07);

  color: var(--portfolio-ink);
  background: #f4f9fa;
  font-family: 'Inter', 'Segoe UI', sans-serif;
  line-height: 1.6;
}

.portfolio-homepage h1,
.portfolio-homepage h2,
.portfolio-homepage h3,
.portfolio-homepage p {
  margin-top: 0;
}

.portfolio-homepage h1,
.portfolio-homepage h2,
.portfolio-homepage h3 {
  color: var(--portfolio-ink);
  font-weight: 700;
}

.portfolio-homepage a {
  color: inherit;
}

.portfolio-homepage a:focus-visible,
.portfolio-homepage summary:focus-visible {
  outline: 3px solid rgba(8, 169, 137, 0.45);
  outline-offset: 4px;
}

.portfolio-main {
  width: min(100% - 32px, 1180px);
  margin: 0 auto;
}

.portfolio-section {
  padding: 44px 0;
  scroll-margin-top: 24px;
}

.portfolio-hero {
  display: grid;
  align-items: center;
  gap: 30px;
}

.portfolio-hero__copy {
  max-width: 610px;
}

.portfolio-eyebrow {
  margin-bottom: 8px;
  color: var(--portfolio-teal-dark);
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.11em;
  line-height: 1.4;
  text-transform: uppercase;
}

.portfolio-hero h1 {
  margin-bottom: 14px;
  font-size: clamp(1.8rem, 7vw, 2.5rem);
  letter-spacing: -0.045em;
  line-height: 1.12;
}

.portfolio-lead,
.portfolio-section__heading > p:last-child {
  color: var(--portfolio-muted);
  font-size: 0.92rem;
}

.portfolio-lead {
  max-width: 600px;
  margin-bottom: 20px;
}

.portfolio-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.portfolio-button {
  display: inline-flex;
  min-height: 42px;
  padding: 0 15px;
  align-items: center;
  justify-content: center;
  gap: 9px;
  border: 1px solid var(--portfolio-teal);
  border-radius: 6px;
  font-size: 0.8rem;
  font-weight: 700;
  text-decoration: none;
  transition: all 160ms ease-in-out;
}

.portfolio-button:hover {
  transform: translateY(-1px);
}

.portfolio-button--primary {
  background: var(--portfolio-teal);
  color: #fff !important;
}

.portfolio-button--primary:hover {
  background: var(--portfolio-teal-dark);
}

.portfolio-button--outline {
  background: transparent;
  color: var(--portfolio-teal-dark) !important;
}

.portfolio-button--outline:hover {
  background: #e9f8f5;
}

.portfolio-socials {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 17px;
  padding: 0;
  margin: 20px 0 0;
  color: var(--portfolio-muted);
  font-size: 1rem;
  font-weight: 600;
  list-style: none;
}

.portfolio-socials li,
.portfolio-socials a {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.portfolio-socials a {
  padding: 0 0.5em 0 0;
  text-decoration: none;
  border-radius: 4px;
}

.portfolio-socials a:hover {
  color: var(--portfolio-teal-dark);
  background-color: #e2f5f1;
}

.portfolio-socials li > span,
.portfolio-socials a > span {
  display: inline-grid;
  width: 24px;
  height: 24px;
  place-items: center;
  border-radius: 4px;
  background: #e2f5f1;
  color: var(--portfolio-teal-dark);
  font-size: 0.8rem;
  font-weight: 800;
  white-space: nowrap;
}

.portfolio-hero__visual {
  position: relative;
  display: grid;
  min-height: 280px;
  place-items: center;
}

.portfolio-portrait {
  position: relative;
  display: grid;
  width: min(100%, 290px);
  aspect-ratio: 1 / 0.96;
  overflow: hidden;
  place-items: center;
  border: 1px solid rgba(8, 169, 137, 0.16);
  border-radius: 14px;
  background:
    radial-gradient(ellipse at 50% 20%, rgba(255, 255, 255, 0.95), transparent 48%),
    linear-gradient(145deg, #e2f2ef, #c9e4e3 60%, #e8f2ee);
  box-shadow: var(--portfolio-shadow);
}

.portfolio-portrait::before,
.portfolio-portrait::after {
  position: absolute;
  width: 180px;
  height: 180px;
  border: 1px solid rgba(8, 169, 137, 0.18);
  background-color: rgba(8, 169, 137, 0.18);
  border-radius: 50%;
  content: "";
}

.portfolio-portrait::before {
  top: -75px;
  right: -56px;
}

.portfolio-portrait::after {
  bottom: -115px;
  left: -55px;
  width: 230px;
  height: 230px;
}

.portfolio-portrait__initials {
  z-index: 1;
  color: rgba(21, 40, 70, 0.04);
  font-size: clamp(5rem, 23vw, 8.5rem);
  font-weight: 800;
  line-height: 1;
  position: absolute;
}

.portfolio-portrait__caption {
  position: absolute;
  right: 14px;
  bottom: 14px;
  left: 14px;
  z-index: 1;
  color: var(--portfolio-teal);
  font-size: 0.8rem;
  font-weight: 600;
  text-align: center;
  text-shadow: black 0 1px 0;
}

.portfolio-note {
  position: absolute;
  right: max(0px, calc((100% - 360px) / 2));
  bottom: 5px;
  display: flex;
  min-width: 86px;
  min-height: 106px;
  padding: 12px 10px;
  flex-direction: column;
  justify-content: space-between;
  transform: rotate(4deg);
  border: 1px solid #cde7df;
  border-radius: 5px;
  box-shadow: 0 0 1px 1px rgba(0,0,0,0.2);
  background: #e9f7f3;
  color: var(--portfolio-teal-dark);
  font-family: 'Segoe UI', sans-serif;
  font-size: 0.72rem;
  font-style: italic;
  font-weight: 600;
  line-height: 1.35;
}

.portfolio-note__smile {
  align-self: flex-end;
  font-size: 1rem;
}

.portfolio-hero__spark {
  position: absolute;
  z-index: -1;
  width: 85px;
  height: 85px;
  border-radius: 50%;
  background: #e6f6f2;
}

.portfolio-hero__spark--one {
  top: 15px;
  left: 7%;
}

.portfolio-hero__spark--two {
  right: 8%;
  bottom: 20px;
  width: 45px;
  height: 45px;
  background: #eaf3fa;
}

.portfolio-skills,
.portfolio-projects {
  border-top: 1px solid var(--portfolio-line);
}

.portfolio-section__heading {
  max-width: 650px;
  margin-bottom: 20px;
}

.portfolio-section__heading h2,
.portfolio-about__copy h2 {
  margin-bottom: 9px;
  font-size: clamp(1.45rem, 5vw, 1.9rem);
  letter-spacing: -0.035em;
  line-height: 1.2;
}

.portfolio-section__heading > p:last-child {
  margin-bottom: 0;
}

.portfolio-skill-grid,
.portfolio-project-grid {
  display: grid;
  gap: 13px;
}

.portfolio-skill-card {
  min-width: 0;
  padding: 17px;
  border: 1px solid var(--portfolio-line);
  border-radius: 9px;
  background: rgba(255, 255, 255, 0.88);
  box-shadow: 0 4px 16px rgba(25, 61, 77, 0.035);
}

.portfolio-skill-card__icon {
  display: inline-grid;
  margin-top: -8px;
  margin-bottom: 4px;
  place-items: center;
  color: var(--portfolio-teal);
  font-size: 1.75rem;
  font-weight: normal;
}

.portfolio-skill-card h3,
.portfolio-project-card h3,
.portfolio-experiment h3 {
  margin-bottom: 9px;
  font-size: 0.88rem;
  line-height: 1.35;
}

.portfolio-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  padding: 0;
  margin: 0 0 10px;
  list-style: none;
}

.portfolio-tags li {
  padding: 0.25rem 0.5rem;
  border-radius: 6px;
  background: #f0f5f7;
  color: #43596d;
  font-size: 0.7rem;
  line-height: 1.4;
}

.portfolio-skill-card > p,
.portfolio-project-card__body > p,
.portfolio-experiment > p {
  color: var(--portfolio-muted);
  font-size: 0.8rem;
  line-height: 1.6;
}

.portfolio-skill-card > p {
  min-height: 2.5em;
  margin-bottom: 11px;
}

.portfolio-role {
  color: #96a3ae;
  font-size: 0.6rem;
}

.portfolio-card-note {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  color: var(--portfolio-teal-dark);
  font-size: 0.7rem;
  font-weight: 700;
}

.portfolio-card-note::before {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--portfolio-teal);
  content: "";
}

.portfolio-text-link {
  display: inline-flex;
  align-items: center;
  color: var(--portfolio-teal-dark) !important;
  font-size: 0.8rem;
  font-weight: 700;
  text-decoration: none;
  transition: all 100ms ease-in-out;
}

.portfolio-text-link:hover {
  text-decoration: underline;
  text-underline-offset: 3px;
  text-decoration-thickness: 1px;
}

.portfolio-text-link > span {
  margin-left: 2px;
  transition: all 100ms ease-in-out;
}

.portfolio-text-link:hover > span {
  margin-left: 5px;
}

.portfolio-skills > .portfolio-text-link,
.portfolio-projects > .portfolio-text-link {
  margin-top: 16px;
}

.portfolio-project-card {
  min-width: 0;
  overflow: hidden;
  border: 1px solid var(--portfolio-line);
  border-radius: 9px;
  background: #fff;
  box-shadow: 0 4px 16px rgba(25, 61, 77, 0.035);
}

.portfolio-project-preview {
  aspect-ratio: 16 / 9;
  position: relative;
  display: flex;
  overflow: hidden;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  border-bottom: 1px solid var(--portfolio-line);
}

.portfolio-project-preview--birthday {
  background: linear-gradient(135deg, #fff1dd, #e8f6ee);
}

.portfolio-project-preview--dashboard {
  background: linear-gradient(135deg, #f2f2ef, #e8edf1);
}

.portfolio-project-preview--lachvegas {
  background: linear-gradient(140deg, #fff2c7, #ffe9e1);
}

.portfolio-project-preview__browser {
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  display: flex;
  height: 22px;
  align-items: center;
  gap: 4px;
  padding: 0 9px;
  background: rgba(255, 255, 255, 0.8);
}

.portfolio-project-preview__browser i {
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: #bac9cf;
}

.portfolio-project-preview__title {
  color: #263d50;
  font-size: 0.8rem;
  font-weight: normal;
  margin-top: -22px;
  position: relative;
  opacity: 0.32;
  margin-bottom: 10px;
}

.portfolio-project-preview__banner {
  padding: 6px 11px;
  border-radius: 5px;
  background: rgba(255, 255, 255, 0.8);
  color: #74834b;
  font-size: 0.64rem;
  font-weight: 700;
}

.portfolio-project-preview__dashboard-mark {
  display: grid;
  width: 67px;
  height: 67px;
  padding: 9px;
  place-content: center;
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 6px 16px rgba(21, 40, 70, 0.1);
  color: #d6584e;
  font-size: 0.66rem;
  font-weight: 800;
  line-height: 1.1;
  text-align: center;
}

.portfolio-project-preview__dashboard-lines {
  position: absolute;
  right: 12%;
  bottom: 24px;
  display: grid;
  width: 29%;
  gap: 6px;
}

.portfolio-project-preview__dashboard-lines i {
  height: 5px;
  border-radius: 4px;
  background: #becbd2;
}

.portfolio-project-preview__dashboard-lines i:first-child {
  width: 70%;
  background: #e7a29b;
}

.portfolio-project-preview__site-logo {
  color: #17324a;
  font-size: 1.1rem;
  font-weight: 900;
  letter-spacing: -0.06em;
}

.portfolio-project-preview__site-logo span {
  color: #e55631;
}

.portfolio-project-preview__site-nav {
  padding: 5px 8px;
  border-radius: 4px;
  background: rgba(255, 255, 255, 0.75);
  color: #605942;
  font-size: 0.57rem;
}

.portfolio-project-card__body {
  padding: 1rem;
}

.portfolio-project-card h3 {
  display: flex;
  justify-content: space-between;
  gap: 8px;
}

.portfolio-project-card h3 span {
  color: var(--portfolio-teal);
}

.portfolio-project-card__body > p {
  margin-bottom: 9px;
}

.portfolio-project-card__body > p:last-of-type {
  min-height: 4.8em;
  margin-bottom: 12px;
}

.portfolio-about {
  display: grid;
  align-items: center;
  gap: 24px;
  border-top: 1px solid var(--portfolio-line);
}

.portfolio-about__visual {
  display: grid;
  min-height: 190px;
  padding: 17px;
  place-items: center;
  overflow: hidden;
  border-radius: 10px;
  background: linear-gradient(140deg, #dcebed, #f2f8f8);
}

.portfolio-code-window {
  display: grid;
  width: min(100%, 370px);
  min-height: 175px;
  padding: 33px 17px 17px;
  align-content: center;
  gap: 10px;
  position: relative;
  overflow: hidden;
  border: 1px solid #263a50;
  border-radius: 8px;
  background: #152335;
  box-shadow: 0 12px 25px rgba(21, 40, 70, 0.2);
}

.portfolio-code-window__bar {
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  display: flex;
  height: 25px;
  align-items: center;
  gap: 5px;
  padding: 0 10px;
  background: #20334a;
}

.portfolio-code-window__bar i {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #e48e7d;
}

.portfolio-code-window__bar i:nth-child(2) {
  background: #e5c16d;
}

.portfolio-code-window__bar i:nth-child(3) {
  background: #76c9ae;
}

.portfolio-code-line {
  display: block;
  height: 5px;
  border-radius: 4px;
  background: #78c8ae;
  opacity: 0.85;
}

.portfolio-code-line--long {
  width: 77%;
}

.portfolio-code-line--medium {
  width: 55%;
  background: #86a9df;
}

.portfolio-code-line--short {
  width: 35%;
  background: #e2bc75;
}

.portfolio-code-line--indent {
  width: 62%;
  margin-left: 8%;
  background: #b1a0d8;
}

.portfolio-about__copy p:not(.portfolio-eyebrow) {
  color: var(--portfolio-muted);
  font-size: 0.83rem;
}

.portfolio-about__copy .portfolio-button {
  margin-top: 3px;
}

.portfolio-experiment {
  padding: 19px;
  border: 1px solid #d9eeea;
  border-radius: 9px;
  background: linear-gradient(145deg, #e7f6f2, #f3faf8);
}

.portfolio-experiment__icon {
  display: inline-grid;
  width: 32px;
  height: 32px;
  margin-bottom: 9px;
  place-items: center;
  border-radius: 50%;
  background: #d7f0e8;
  color: var(--portfolio-teal-dark);
  font-size: 1.2rem;
}

.portfolio-experiment > p {
  margin-bottom: 12px;
}

@media (min-width: 600px) {
  .portfolio-section {
    padding-top: 58px;
    padding-bottom: 58px;
  }

  .portfolio-hero {
    grid-template-columns: minmax(0, 1.1fr) minmax(250px, 0.9fr);
    gap: 22px;
  }

  .portfolio-hero__visual {
    min-height: 320px;
  }

  .portfolio-portrait {
    width: min(100%, 330px);
  }

  .portfolio-skill-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .portfolio-project-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .portfolio-project-card:last-child {
    grid-column: span 2;
  }

  .portfolio-about {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  }

  .portfolio-experiment {
    grid-column: span 2;
  }
}

@media (min-width: 900px) {
  .portfolio-section {
    padding-top: 68px;
    padding-bottom: 68px;
  }

  .portfolio-hero {
    min-height: 430px;
    grid-template-columns: minmax(0, 1.1fr) minmax(320px, 0.9fr);
    gap: 50px;
  }

  .portfolio-hero h1 {
    font-size: clamp(2.45rem, 4vw, 3.45rem);
  }

  .portfolio-lead,
  .portfolio-section__heading > p:last-child {
    font-size: 0.88rem;
  }

  .portfolio-hero__visual {
    min-height: 360px;
  }

  .portfolio-portrait {
    width: min(100%, 365px);
  }

  .portfolio-note {
    right: max(0px, calc((100% - 430px) / 2));
    bottom: -6px;
  }

  .portfolio-project-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .portfolio-project-card:last-child {
    grid-column: auto;
  }

  .portfolio-project-preview {
    min-height: 165px;
  }

  .portfolio-about {
    grid-template-columns: minmax(220px, 1fr) minmax(250px, 1.15fr) minmax(250px, 1fr);
    gap: 25px;
  }

  .portfolio-experiment {
    grid-column: auto;
  }

}

@media (min-width: 1100px) {
  .portfolio-hero {
    min-height: 460px;
  }

  .portfolio-skill-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

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

.about-page {
  --about-ink: #152846;
  --about-muted: #52677d;
  --about-teal: #08a989;
  --about-teal-dark: #078b76;
  --about-line: #dcebed;
  --about-soft: #f1f9f9;

  width: min(100% - 32px, 1180px);
  margin: 0 auto;
  padding: 18px 0 52px;
  color: var(--about-ink);
  font-family: 'Inter', 'Segoe UI', sans-serif;
  line-height: 1.65;
}

.about-page h1,
.about-page h2,
.about-page h3,
.about-page p {
  margin-top: 0;
}

.about-page h1,
.about-page h2,
.about-page h3 {
  color: var(--about-ink);
  font-weight: 700;
}

.about-page a {
  color: inherit;
}

.about-page a:focus-visible {
  outline: 3px solid rgba(8, 169, 137, 0.45);
  outline-offset: 4px;
}

.about-hero {
  display: grid;
  align-items: center;
  gap: 34px;
  padding: 24px 0 48px;
}

.about-hero__copy {
  max-width: 650px;
}

.about-eyebrow {
  display: flex;
  align-items: center;
  gap: 9px;
  margin-bottom: 12px;
  color: var(--about-teal-dark);
  font-size: 0.7rem;
  font-weight: 800;
  letter-spacing: 0.1em;
  line-height: 1.4;
  text-transform: uppercase;
}

.about-hero__copy > .about-eyebrow > span {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--about-teal);
  box-shadow: 0 0 0 4px rgba(8, 169, 137, 0.12);
}

.about-hero h1 {
  margin-bottom: 17px;
  font-size: clamp(2.1rem, 7vw, 3.55rem);
  letter-spacing: -0.055em;
  line-height: 1.08;
}

.about-hero h1 span {
  color: var(--about-teal-dark);
}

.about-hero__lead {
  max-width: 590px;
  margin-bottom: 23px;
  color: var(--about-muted);
  font-size: clamp(0.94rem, 2vw, 1.08rem);
}

.about-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px 20px;
}

.about-button {
  display: inline-flex;
  min-height: 46px;
  align-items: center;
  justify-content: center;
  gap: 10px;
  border-radius: 6px;
  font-size: 0.84rem;
  font-weight: 700;
  text-decoration: none;
  transition: background-color 160ms ease, color 160ms ease, transform 160ms ease;
}

.about-button:hover {
  transform: translateY(-2px);
}

.about-button--primary {
  padding: 0 18px;
  background: var(--about-teal);
  color: #fff !important;
}

.about-button--primary:hover {
  background: var(--about-teal-dark);
}

.about-button--text {
  min-height: 42px;
  color: var(--about-ink) !important;
}

.about-button--text:hover {
  color: var(--about-teal-dark) !important;
}

.about-hero__visual {
  position: relative;
  display: grid;
  min-height: 300px;
  place-items: center;
  isolation: isolate;
}

.about-portrait {
  position: relative;
  z-index: 1;
  width: min(78%, 330px);
  aspect-ratio: 0.95;
  overflow: hidden;
  border: 8px solid #fff;
  border-radius: 50%;
  background: #e2f2ef;
  box-shadow: 0 18px 42px rgba(25, 61, 77, 0.14);
}

.about-portrait img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 35%;
}

.about-note {
  position: absolute;
  z-index: 2;
  right: 0;
  bottom: 12px;
  display: flex;
  width: min(250px, 72%);
  align-items: center;
  gap: 12px;
  padding: 14px;
  border: 1px solid var(--about-line);
  border-radius: 9px;
  background: #fff;
  box-shadow: 0 12px 30px rgba(25, 61, 77, 0.12);
}

.about-note__icon {
  display: grid;
  width: 38px;
  height: 38px;
  flex: 0 0 38px;
  place-items: center;
  border-radius: 8px;
  background: #e7f7f3;
  color: var(--about-teal-dark);
  font-size: 1.35rem;
}

.about-note strong,
.about-note div > span {
  display: block;
}

.about-note strong {
  margin-bottom: 2px;
  font-size: 0.77rem;
}

.about-note div > span {
  color: var(--about-muted);
  font-size: 0.68rem;
  line-height: 1.45;
}

.about-orbit {
  position: absolute;
  z-index: -1;
  display: block;
  border: 1px solid rgba(8, 169, 137, 0.17);
  border-radius: 50%;
}

.about-orbit--one {
  width: min(290px, 100%);
  aspect-ratio: 1;
}

.about-orbit--two {
  width: min(350px, 100%);
  aspect-ratio: 1;
}

.about-approach {
  padding: 34px 0 48px;
  border-top: 1px solid var(--about-line);
}

.about-section-heading {
  max-width: 700px;
  margin-bottom: 24px;
}

.about-section-heading h2,
.about-contact h2 {
  margin-bottom: 10px;
  font-size: clamp(1.55rem, 4vw, 2.15rem);
  letter-spacing: -0.04em;
  line-height: 1.2;
}

.about-section-heading > p:last-child,
.about-contact p:last-child {
  margin-bottom: 0;
  color: var(--about-muted);
  font-size: 0.92rem;
}

.about-values {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 12px;
}

.about-value {
  min-height: 150px;
  padding: 19px;
  border: 1px solid var(--about-line);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.78);
}

.about-value__number {
  display: inline-block;
  margin-bottom: 12px;
  color: var(--about-teal-dark);
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.08em;
}

.about-value h3 {
  margin-bottom: 6px;
  font-size: 1rem;
}

.about-value p {
  margin-bottom: 0;
  color: var(--about-muted);
  font-size: 0.83rem;
}

.about-contact {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 20px;
  padding: 27px;
  border-radius: 10px;
  background:
    radial-gradient(circle at 90% 15%, rgba(255, 255, 255, 0.15), transparent 30%),
    #152846;
  color: #fff;
}

.about-contact .about-eyebrow {
  color: #72d9c2;
}

.about-contact h2 {
  margin-bottom: 5px;
  color: #fff;
}

.about-contact p:last-child {
  color: #d5e0e8;
}

.about-button--light {
  flex: 0 0 auto;
  padding: 0 16px;
  background: #fff;
  color: var(--about-ink) !important;
}

.about-button--light:hover {
  background: #e7f7f3;
}

@media (min-width: 760px) {
  .about-page {
    padding-top: 22px;
  }

  .about-hero {
    grid-template-columns: minmax(0, 1.2fr) minmax(300px, 0.8fr);
    gap: 30px;
    padding: 34px 0 58px;
  }

  .about-hero__visual {
    min-height: 370px;
  }

  .about-values {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
  }

  .about-contact {
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    padding: 30px 34px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .about-button {
    transition: none;
  }
}