  /* self-hosted fonts (SIL OFL, fonts/LICENSE-*.txt): no request to Google, which a visitor's IP would otherwise reach */
  @font-face{font-family:'Newsreader'; font-style:normal; font-weight:200 800; font-display:swap; src:url(fonts/newsreader-latin-opsz-normal.woff2) format('woff2'); unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
  @font-face{font-family:'Newsreader'; font-style:italic; font-weight:200 800; font-display:swap; src:url(fonts/newsreader-latin-opsz-italic.woff2) format('woff2'); unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
  @font-face{font-family:'Public Sans'; font-style:normal; font-weight:100 900; font-display:swap; src:url(fonts/public-sans-latin-wght-normal.woff2) format('woff2'); unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
  @font-face{font-family:'IBM Plex Mono'; font-style:normal; font-weight:400; font-display:swap; src:url(fonts/ibm-plex-mono-latin-400-normal.woff2) format('woff2'); unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
  @font-face{font-family:'IBM Plex Mono'; font-style:normal; font-weight:500; font-display:swap; src:url(fonts/ibm-plex-mono-latin-500-normal.woff2) format('woff2'); unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
  @font-face{font-family:'IBM Plex Mono'; font-style:normal; font-weight:600; font-display:swap; src:url(fonts/ibm-plex-mono-latin-600-normal.woff2) format('woff2'); unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
  @font-face{font-family:'Newsreader'; font-style:normal; font-weight:200 800; font-display:swap; src:url(fonts/newsreader-latin-ext-opsz-normal.woff2) format('woff2'); unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}
  @font-face{font-family:'Newsreader'; font-style:italic; font-weight:200 800; font-display:swap; src:url(fonts/newsreader-latin-ext-opsz-italic.woff2) format('woff2'); unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}
  @font-face{font-family:'Public Sans'; font-style:normal; font-weight:100 900; font-display:swap; src:url(fonts/public-sans-latin-ext-wght-normal.woff2) format('woff2'); unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}
  @font-face{font-family:'IBM Plex Mono'; font-style:normal; font-weight:400; font-display:swap; src:url(fonts/ibm-plex-mono-latin-ext-400-normal.woff2) format('woff2'); unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}
  @font-face{font-family:'IBM Plex Mono'; font-style:normal; font-weight:500; font-display:swap; src:url(fonts/ibm-plex-mono-latin-ext-500-normal.woff2) format('woff2'); unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}
  @font-face{font-family:'IBM Plex Mono'; font-style:normal; font-weight:600; font-display:swap; src:url(fonts/ibm-plex-mono-latin-ext-600-normal.woff2) format('woff2'); unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}

  :root{
    --bg:#F1F0EC;
    --surface:#FFFFFF;
    --surface-soft:#E7E4DB;
    --ink:#1C1F26;
    --ink-soft:#5B6270;
    --ink-faint:#8A8F99;
    --accent:#A6742C;
    --accent-ink:#FFFFFF;
    --line:#DBD7CC;
    --focus:#1C1F26;
    --substack:#FF6719;
    --substack-ink:#FFFFFF;
    --linkedin:#0A66C2;
    --linkedin-ink:#FFFFFF;
    color-scheme:light;
  }
  @media (prefers-color-scheme: dark){
    :root:not([data-theme="light"]){
      --bg:#14161B;
      --surface:#1B1E24;
      --surface-soft:#20232A;
      --ink:#ECE9E1;
      --ink-soft:#9BA0AC;
      --ink-faint:#6E7480;
      --accent:#D6A34C;
      --accent-ink:#14161B;
      --line:#2B2E35;
      --focus:#ECE9E1;
      color-scheme:dark;
    }
  }
  :root[data-theme="dark"]{
    --bg:#14161B;
    --surface:#1B1E24;
    --surface-soft:#20232A;
    --ink:#ECE9E1;
    --ink-soft:#9BA0AC;
    --ink-faint:#6E7480;
    --accent:#D6A34C;
    --accent-ink:#14161B;
    --line:#2B2E35;
    --focus:#ECE9E1;
    color-scheme:dark;
  }

  *{box-sizing:border-box;}
  body{
    background:var(--bg);
    color:var(--ink);
    font-family:'Public Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    padding-inline:0;
  }
  .wrap{
    max-width:920px;
    margin-inline:auto;
    padding-inline:20px;
  }
  a{color:inherit;}
  h1,h2,h3{font-family:'Newsreader', Georgia, 'Times New Roman', serif; text-wrap:balance; margin:0;}
  .eyebrow{
    font-family:'IBM Plex Mono', 'Courier New', monospace;
    font-size:0.72rem;
    letter-spacing:0.14em;
    text-transform:uppercase;
    color:var(--accent);
    font-weight:600;
    display:flex;
    align-items:center;
    gap:10px;
  }
  .eyebrow::after{
    content:"";
    height:1px;
    flex:1 1 auto;
    background:var(--line);
  }
  .mono{font-family:'IBM Plex Mono', 'Courier New', monospace; font-variant-numeric:tabular-nums;}

  /* masthead */
  .masthead{
    width:100%;
    aspect-ratio:1584/396;
    max-height:280px;
    overflow:hidden;
    background:var(--surface-soft);
  }
  .masthead picture{display:block; height:100%;}
  .masthead img{
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:center;
    display:block;
  }
  @media (max-width:560px){
    .masthead{max-height:170px;}
  }

  /* top bar */
  section[id]{scroll-margin-top:24px;}
  @media (max-width:720px){ section[id]{scroll-margin-top:96px;} }
  .topbar{
    position:sticky;
    top:env(safe-area-inset-top, 0px);
    z-index:20;
    background:color-mix(in srgb, var(--bg) 88%, transparent);
    backdrop-filter:blur(8px);
    border-bottom:1px solid var(--line);
  }
  .topbar-inner{
    max-width:920px;
    margin-inline:auto;
    padding:14px 20px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
  }
  .topbar-name{
    font-family:'IBM Plex Mono', monospace;
    font-size:0.78rem;
    letter-spacing:0.06em;
    text-transform:uppercase;
    font-weight:600;
  }
  .topbar-nav{display:flex; gap:8px; flex-wrap:wrap;}
  .topbar-nav a{
    font-family:'IBM Plex Mono', monospace;
    font-size:0.72rem;
    letter-spacing:0.03em;
    text-transform:uppercase;
    text-decoration:none;
    color:var(--accent-ink);
    background:var(--accent);
    border-radius:2px;
    padding:7px 12px;
    transition:filter .15s ease;
  }
  .topbar-nav a:hover, .topbar-nav a:focus-visible{ filter:brightness(1.08); }
  .topbar-nav a[aria-current="page"]{
    background:transparent; color:var(--accent);
    box-shadow:inset 0 0 0 1px var(--accent);
  }
  .topbar-cta{
    font-family:'IBM Plex Mono', monospace;
    font-size:0.75rem;
    letter-spacing:0.04em;
    text-transform:uppercase;
    text-decoration:none;
    color:var(--accent-ink);
    background:var(--accent);
    padding:8px 14px;
    border-radius:2px;
    white-space:nowrap;
  }
  .topbar-cta:hover, .topbar-cta:focus-visible{filter:brightness(1.08);}
  .topbar-actions{display:flex; align-items:center; gap:8px;}
  .lang-switch{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:34px;
    height:34px;
    padding:0 6px;
    font-family:'IBM Plex Mono', monospace;
    font-size:0.72rem;
    font-weight:600;
    letter-spacing:0.06em;
    text-decoration:none;
    color:var(--accent);
    border:1px solid var(--accent);
    border-radius:2px;
    transition:background .15s ease, color .15s ease;
  }
  .lang-switch:hover, .lang-switch:focus-visible{background:var(--accent); color:var(--accent-ink);}
  .visually-hidden{
    position:absolute; width:1px; height:1px; padding:0; margin:-1px;
    overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0;
  }

  /* theme toggle */
  .theme-toggle{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:34px;
    height:34px;
    padding:0;
    background:transparent;
    color:var(--accent);
    border:1px solid var(--accent);
    border-radius:2px;
    cursor:pointer;
    transition:background .15s ease, color .15s ease;
  }
  .theme-toggle:hover, .theme-toggle:focus-visible{background:var(--accent); color:var(--accent-ink);}
  .theme-toggle svg{display:block; transition:transform .3s ease;}
  .theme-toggle:hover svg{transform:rotate(-20deg);}
  .theme-toggle .icon-sun{display:none;}
  @media (prefers-color-scheme: dark){
    :root:not([data-theme="light"]) .theme-toggle .icon-sun{display:block;}
    :root:not([data-theme="light"]) .theme-toggle .icon-moon{display:none;}
  }
  :root[data-theme="dark"] .theme-toggle .icon-sun{display:block;}
  :root[data-theme="dark"] .theme-toggle .icon-moon{display:none;}

  /* hero */
  .hero{
    padding-block:56px 64px;
    display:grid;
    grid-template-columns:1.3fr 0.9fr;
    gap:40px;
    align-items:center;
  }
  .hero-eyebrow{
    font-family:'IBM Plex Mono', monospace;
    font-size:0.78rem;
    letter-spacing:0.14em;
    text-transform:uppercase;
    color:var(--accent);
    font-weight:600;
    margin-bottom:18px;
  }
  .hero h1{
    font-size:clamp(2.6rem, 5.2vw + 1rem, 4.6rem);
    font-weight:560;
    line-height:1.02;
    letter-spacing:-0.01em;
    margin-bottom:18px;
  }
  .hero p.lede{
    font-size:1.15rem;
    line-height:1.55;
    color:var(--ink-soft);
    max-width:46ch;
    margin-bottom:22px;
  }
  .hero-meta{
    display:flex;
    flex-wrap:wrap;
    gap:8px 18px;
    font-size:0.82rem;
    color:var(--ink-faint);
  }
  .hero-meta span{display:flex; align-items:center; gap:8px;}
  .hero-meta span:not(:last-child)::after{
    content:"·";
    color:var(--line);
    margin-left:10px;
  }

  .portrait-frame{
    position:relative;
    width:100%;
    max-width:280px;
    margin-inline:auto;
  }
  .portrait-frame picture{display:block;}
  .portrait-frame img{
    width:100%;
    height:auto;
    aspect-ratio:5/6;
    object-fit:cover;
    display:block;
    border:1px solid var(--line);
    background:var(--surface-soft);
  }
  .stamp{
    position:absolute;
    bottom:-14px;
    left:-14px;
    background:var(--accent);
    color:var(--accent-ink);
    font-family:'IBM Plex Mono', monospace;
    font-size:0.68rem;
    line-height:1.3;
    letter-spacing:0.05em;
    text-transform:uppercase;
    font-weight:600;
    padding:10px 12px;
    transform:rotate(-6deg);
    box-shadow:0 6px 16px -6px rgba(0,0,0,0.35);
    text-align:center;
  }

  section{padding-block:52px; border-top:1px solid var(--line);}
  .section-head{margin-bottom:28px;}
  .section-head h2{
    font-size:clamp(1.6rem, 2.6vw, 2.1rem);
    font-weight:520;
    margin-top:10px;
  }

  .about-body p{
    font-size:1.02rem;
    line-height:1.7;
    color:var(--ink-soft);
    max-width:64ch;
    margin:0 0 18px;
  }
  .about-note{
    margin-top:22px;
    padding-top:18px;
    border-top:1px dashed var(--line);
    font-family:'Newsreader', serif;
    font-style:italic;
    color:var(--ink-faint);
    font-size:0.98rem;
    max-width:64ch;
  }

  /* chips */
  .chips{display:flex; flex-wrap:wrap; gap:10px;}
  .chip{
    font-family:'IBM Plex Mono', monospace;
    font-size:0.78rem;
    letter-spacing:0.02em;
    padding:9px 14px;
    border:1px solid var(--line);
    border-radius:2px;
    color:var(--ink-soft);
    background:var(--surface);
  }

  /* two col */
  .twocol{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:40px;
  }
  .twocol h3{
    font-size:1.1rem;
    font-weight:560;
    margin-bottom:16px;
  }
  .edu-item{margin-bottom:16px;}
  .edu-item .role{font-weight:600; font-size:0.95rem;}
  .edu-item .org{color:var(--ink-soft); font-size:0.88rem; margin-top:2px;}

  .club-logos{display:flex; flex-wrap:wrap; align-items:center; gap:24px;}
  .club-logo{display:flex; align-items:center; justify-content:center; width:64px; height:64px; transition:transform 0.15s ease, opacity 0.15s ease;}
  .club-logo img{width:100%; height:100%; object-fit:contain;}
  .club-logo:hover{transform:translateY(-3px); opacity:0.85;}

  /* products */
  .cards{
    display:grid;
    grid-template-columns:repeat(auto-fit, minmax(230px, 1fr));
    gap:20px;
  }
  .pcard{
    background:var(--surface);
    border:1px solid var(--line);
    padding:26px;
    display:flex;
    flex-direction:column;
    gap:12px;
  }
  .pcard-tag{
    font-family:'IBM Plex Mono', monospace;
    font-size:0.7rem;
    letter-spacing:0.08em;
    text-transform:uppercase;
    color:var(--ink-faint);
  }
  .pcard h3{font-size:1.2rem; font-weight:560;}
  .pcard p{color:var(--ink-soft); font-size:0.92rem; line-height:1.55; margin:0; flex:1;}
  .pcard-link{
    align-self:flex-start;
    font-family:'IBM Plex Mono', monospace;
    font-size:0.78rem;
    letter-spacing:0.03em;
    text-transform:uppercase;
    text-decoration:none;
    color:var(--ink);
    border-bottom:1px solid var(--accent);
    padding-bottom:2px;
  }
  .pcard-link:hover, .pcard-link:focus-visible{color:var(--accent);}

  /* contact */
  .contact-box{
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    justify-content:space-between;
    gap:24px;
    background:var(--surface);
    border:1px solid var(--line);
    padding:32px;
  }
  .contact-box h2{font-size:1.5rem; font-weight:540; margin-bottom:8px;}
  .contact-box p{color:var(--ink-soft); max-width:42ch; margin:0;}
  .btn-mail{
    font-family:'IBM Plex Mono', monospace;
    font-size:0.85rem;
    letter-spacing:0.03em;
    text-transform:uppercase;
    text-decoration:none;
    color:var(--accent-ink);
    background:var(--accent);
    padding:14px 22px;
    white-space:nowrap;
  }
  .btn-mail:hover, .btn-mail:focus-visible{filter:brightness(1.08);}
  .contact-actions{display:flex; flex-wrap:wrap; gap:12px;}
  .nowrap{white-space:nowrap;}
  .btn-outline{
    display:inline-flex;
    align-items:center;
    gap:9px;
    font-family:'IBM Plex Mono', monospace;
    font-size:0.85rem;
    letter-spacing:0.03em;
    text-transform:uppercase;
    text-decoration:none;
    color:var(--accent);
    border:1px solid var(--accent);
    padding:13px 21px;
    white-space:nowrap;
    transition:background .15s ease, color .15s ease;
  }
  .btn-outline:hover, .btn-outline:focus-visible{background:var(--accent); color:var(--accent-ink);}
  .btn-linkedin{color:var(--linkedin); border-color:var(--linkedin);}
  .btn-linkedin:hover, .btn-linkedin:focus-visible{background:var(--linkedin); color:var(--linkedin-ink);}
  .btn-substack{color:var(--substack); border-color:var(--substack);}
  .btn-substack:hover, .btn-substack:focus-visible{background:var(--substack); color:var(--substack-ink);}

  .section-aside{
    margin:24px 0 0;
    font-size:0.92rem;
    color:var(--ink-soft);
  }
  .section-aside a{color:var(--ink); text-decoration:none; border-bottom:1px solid var(--accent);}
  .section-aside a:hover, .section-aside a:focus-visible{color:var(--accent);}

  /* substack subscribe */
  .subscribe{
    margin-top:24px;
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    justify-content:space-between;
    gap:20px 32px;
    padding:26px;
    border:1px solid var(--line);
    border-left:3px solid var(--substack);
    background:var(--surface);
  }
  .subscribe h3{font-size:1.2rem; font-weight:560; margin-bottom:6px;}
  .subscribe-text p{margin:0; color:var(--ink-soft); font-size:0.92rem; line-height:1.55; max-width:44ch;}
  .subscribe-field{flex:1 1 300px; max-width:420px;}
  .subscribe-row{display:flex;}
  .subscribe input{
    flex:1 1 auto;
    min-width:0;
    font:inherit;
    font-size:0.95rem;
    padding:12px 14px;
    color:var(--ink);
    background:var(--bg);
    border:1px solid var(--line);
    border-right:none;
    border-radius:2px 0 0 2px;
  }
  .subscribe input:focus-visible{outline:2px solid var(--focus); outline-offset:-1px;}
  .subscribe button{
    font-family:'IBM Plex Mono', monospace;
    font-size:0.8rem;
    letter-spacing:0.03em;
    text-transform:uppercase;
    color:var(--substack-ink);
    background:var(--substack);
    border:none;
    border-radius:0 2px 2px 0;
    padding:0 18px;
    cursor:pointer;
    white-space:nowrap;
  }
  .subscribe button:hover, .subscribe button:focus-visible{filter:brightness(1.08);}
  .subscribe-note{margin:8px 0 0; font-size:0.78rem; color:var(--ink-faint);}

  .footer-links{display:flex; gap:18px;}
  .footer-links a{color:var(--ink-soft); text-decoration:none;}
  .footer-links a:hover, .footer-links a:focus-visible{color:var(--accent);}

  /* subpage head (sajto/, en/ reuse the hero instead) */
  .page-head{padding-block:64px 52px; max-width:680px;}
  .page-head h1{
    font-size:clamp(2.2rem, 4vw + 1rem, 3.4rem);
    font-weight:560;
    line-height:1.05;
    margin:16px 0 18px;
  }
  .page-head .lede{font-size:1.1rem; line-height:1.6; color:var(--ink-soft); max-width:52ch; margin:0;}

  /* press kit */
  .kit-bios{display:grid; grid-template-columns:1fr 1.4fr; gap:20px; align-items:start;}
  .kit-bio-head{display:flex; align-items:center; justify-content:space-between; gap:12px;}
  .kit-bio p{color:var(--ink-soft); font-size:0.95rem; line-height:1.65; margin:0 0 12px;}
  .kit-bio p:last-child{margin-bottom:0;}
  .copy-btn{
    font-family:'IBM Plex Mono', monospace;
    font-size:0.72rem;
    letter-spacing:0.03em;
    text-transform:uppercase;
    color:var(--accent);
    background:transparent;
    border:1px solid var(--accent);
    border-radius:2px;
    padding:6px 10px;
    cursor:pointer;
    white-space:nowrap;
  }
  .copy-btn:hover, .copy-btn:focus-visible, .copy-btn.copied{background:var(--accent); color:var(--accent-ink);}
  .kit-media, .kit-qr{display:grid; gap:20px;}
  .kit-media{grid-template-columns:minmax(0, 300px);}
  .kit-qr{grid-template-columns:repeat(auto-fit, minmax(230px, 1fr));}
  .kit-media figure, .kit-qr figure{
    margin:0;
    background:var(--surface);
    border:1px solid var(--line);
    padding:16px;
    display:flex;
    flex-direction:column;
    gap:14px;
  }
  .kit-media picture{display:block;}
  .kit-media img{width:100%; height:auto; display:block; background:var(--surface-soft);}
  .kit-qr img{width:160px; height:auto; display:block; background:#fff; padding:6px;}
  .kit-media figcaption, .kit-qr figcaption{
    display:flex; flex-wrap:wrap; align-items:baseline; justify-content:space-between; gap:6px 14px;
    font-size:0.85rem; color:var(--ink-soft);
  }
  .kit-qr figcaption{flex-direction:column; align-items:flex-start;}
  .kit-qr figcaption strong{font-family:'Newsreader', serif; font-size:1.15rem; font-weight:560; color:var(--ink);}
  .kit-links{display:flex; gap:16px; margin-top:4px;}

  /* 404 */
  .notfound{padding-block:96px 120px; max-width:640px;}
  .notfound h1{
    font-size:clamp(2.2rem, 4vw + 1rem, 3.6rem);
    font-weight:560;
    line-height:1.05;
    margin:18px 0 18px;
  }
  .notfound .lede{
    font-size:1.1rem;
    line-height:1.6;
    color:var(--ink-soft);
    max-width:46ch;
    margin:0 0 32px;
  }
  .notfound .btn-mail{display:inline-block;}

  footer{
    padding-block:28px 40px;
    display:flex;
    justify-content:space-between;
    flex-wrap:wrap;
    gap:10px;
    font-size:0.78rem;
    color:var(--ink-faint);
    font-family:'IBM Plex Mono', monospace;
  }

  a:focus-visible, button:focus-visible{
    outline:2px solid var(--focus);
    outline-offset:2px;
  }

  @media (max-width: 720px){
    .hero{grid-template-columns:1fr; padding-block:36px 44px;}
    .hero > div:first-child{order:2;}
    .portrait-frame{order:1; max-width:220px; margin-bottom:12px;}
    .topbar-inner{flex-wrap:wrap; padding:10px 16px; gap:10px 16px;}
    .topbar-nav{
      order:3; width:100%;
      display:grid; grid-template-columns:1fr 1fr; gap:6px;
    }
    .topbar-nav a{white-space:nowrap; text-align:center; padding:9px 6px;}
    @media (max-width:380px){ .topbar-nav a{letter-spacing:0; font-size:0.66rem; padding-inline:4px;} }
    .twocol{grid-template-columns:1fr; gap:32px;}
    .kit-bios{grid-template-columns:1fr;}
    .page-head{padding-block:40px 36px;}
    .contact-box{flex-direction:column; align-items:flex-start;}
    .btn-mail{white-space:normal; text-align:center;}
    .contact-actions{flex-direction:column; align-self:stretch;}
    .btn-outline{justify-content:center;}
  }

  @media (prefers-reduced-motion: no-preference){
    .fade-up{animation:fadeUp .6s ease both;}
    @keyframes fadeUp{from{opacity:0; transform:translateY(8px);} to{opacity:1; transform:none;}}
  }

  /* scroll reveal: .reveal-on is set by site.js only when JS runs and reduced motion is not requested */
  .reveal-on .reveal{
    opacity:0;
    transform:translateY(18px);
    transition:opacity .7s ease, transform .7s cubic-bezier(.2,.7,.2,1);
  }
  .reveal-on .reveal.is-visible{opacity:1; transform:none;}
  .reveal-on .reveal .pcard,
  .reveal-on .reveal .chip{
    opacity:0;
    transform:translateY(10px);
    transition:opacity .5s ease, transform .5s ease;
  }
  .reveal-on .reveal.is-visible .pcard,
  .reveal-on .reveal.is-visible .chip{opacity:1; transform:none;}
  .reveal-on .reveal.is-visible :is(.pcard, .chip):nth-child(2){transition-delay:.08s;}
  .reveal-on .reveal.is-visible :is(.pcard, .chip):nth-child(3){transition-delay:.16s;}
  .reveal-on .reveal.is-visible :is(.pcard, .chip):nth-child(4){transition-delay:.24s;}
  .reveal-on .reveal.is-visible :is(.pcard, .chip):nth-child(5){transition-delay:.32s;}
  .reveal-on .reveal.is-visible :is(.pcard, .chip):nth-child(n+6){transition-delay:.4s;}
  @media print{
    .reveal-on .reveal, .reveal-on .reveal .pcard, .reveal-on .reveal .chip{opacity:1; transform:none;}
  }

  /* press widget */
  .press-toggle{
    position:fixed;
    right:20px;
    bottom:20px;
    z-index:40;
    display:none;
    align-items:center;
    gap:8px;
    font-family:'IBM Plex Mono', monospace;
    font-size:0.78rem;
    letter-spacing:0.03em;
    text-transform:uppercase;
    color:var(--accent-ink);
    background:var(--accent);
    border:none;
    padding:12px 16px;
    border-radius:999px;
    box-shadow:0 8px 20px -8px rgba(0,0,0,0.4);
    cursor:pointer;
  }
  .press-overlay{
    position:fixed;
    inset:0;
    background:rgba(0,0,0,0.35);
    z-index:38;
    opacity:0;
    pointer-events:none;
    transition:opacity .25s ease;
  }
  .press-overlay.open{opacity:1; pointer-events:auto;}

  .press-widget{
    position:fixed;
    top:0;
    right:0;
    bottom:0;
    width:min(360px, 86vw);
    background:var(--surface);
    border-left:1px solid var(--line);
    z-index:39;
    display:flex;
    flex-direction:column;
    transform:translateX(100%);
    transition:transform .3s ease;
    box-shadow:-12px 0 30px -18px rgba(0,0,0,0.5);
  }
  .press-widget.open{transform:translateX(0);}

  .press-head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    padding:16px 18px;
    border-bottom:1px solid var(--line);
  }
  .press-head h2{
    font-family:'IBM Plex Mono', monospace;
    font-size:0.8rem;
    letter-spacing:0.1em;
    text-transform:uppercase;
    font-weight:600;
    color:var(--ink);
  }
  .press-updated{
    font-family:'IBM Plex Mono', monospace;
    font-size:0.68rem;
    color:var(--ink-faint);
    margin-top:4px;
  }
  .press-close, .press-refresh{
    background:none;
    border:none;
    color:var(--ink-soft);
    cursor:pointer;
    font-size:1rem;
    line-height:1;
    padding:4px;
  }
  .press-close:hover, .press-refresh:hover{color:var(--ink);}

  .press-body{
    flex:1;
    overflow-y:auto;
    padding:8px 18px 20px;
  }
  .press-source{margin-top:18px;}
  .press-source:first-child{margin-top:6px;}
  .press-source-name{
    display:flex;
    align-items:center;
    gap:8px;
    font-family:'IBM Plex Mono', monospace;
    font-size:0.72rem;
    letter-spacing:0.08em;
    text-transform:uppercase;
    color:var(--ink-faint);
    margin-bottom:8px;
  }
  .press-dot{width:8px; height:8px; border-radius:50%; flex:none;}
  .press-item{
    display:block;
    font-size:0.86rem;
    line-height:1.4;
    color:var(--ink);
    text-decoration:none;
    padding:7px 0;
    border-bottom:1px solid var(--line);
  }
  .press-source .press-item:last-child{border-bottom:none;}
  .press-item:hover, .press-item:focus-visible{color:var(--accent);}
  .press-status{
    font-size:0.82rem;
    color:var(--ink-faint);
    padding:10px 0;
  }

  @media (max-width:1359.98px){
    .press-toggle{display:flex;}
  }
  @media (min-width:1360px){
    .press-overlay{display:none;}
    .press-close{display:none;}
    .press-widget{
      top:96px;
      bottom:auto;
      right:24px;
      width:300px;
      max-height:calc(100vh - 130px);
      border:1px solid var(--line);
      border-radius:4px;
      transform:none;
      box-shadow:0 14px 30px -20px rgba(0,0,0,0.35);
    }
  }
  @media (max-width:480px){
    .press-toggle .ptxt{display:none;}
    .press-toggle{padding:12px; border-radius:50%;}
  }
