/* Shared tokens for the /apps section — same palette and dark-mode behaviour as the landing. */
:root{color-scheme:light;--accent:#e0563f;
  --ink:#1a1d22;--muted:#5a6068;--line:#e2e5ea;--bg:#f3f4f6;--bg2:#fbe7e2;--paper:#fff;--chip:#fff;
  --btn-bg:#1a1d22;--btn-fg:#fff;--btn-bg-h:#000;}
@media (prefers-color-scheme: dark){
  :root:not([data-theme]){color-scheme:dark;
    --ink:#eef0f3;--muted:#9aa1ab;--line:#2a2e35;--bg:#101216;--bg2:#241a18;--paper:#191c21;--chip:#202429;
    --btn-bg:#e0563f;--btn-fg:#fff;--btn-bg-h:#c8412c;}
}
:root[data-theme="light"]{color-scheme:light;
  --ink:#1a1d22;--muted:#5a6068;--line:#e2e5ea;--bg:#f3f4f6;--bg2:#fbe7e2;--paper:#fff;--chip:#fff;
  --btn-bg:#1a1d22;--btn-fg:#fff;--btn-bg-h:#000;}
:root[data-theme="dark"]{color-scheme:dark;
  --ink:#eef0f3;--muted:#9aa1ab;--line:#2a2e35;--bg:#101216;--bg2:#241a18;--paper:#191c21;--chip:#202429;
  --btn-bg:#e0563f;--btn-fg:#fff;--btn-bg-h:#c8412c;}
*{box-sizing:border-box;}
body{margin:0;min-height:100vh;min-height:100dvh;
  background:radial-gradient(1200px 600px at 50% -10%, var(--bg2) 0%, var(--bg) 55%);
  color:var(--ink);font-family:system-ui,-apple-system,'Segoe UI',Arial,sans-serif;-webkit-font-smoothing:antialiased;
  display:block;padding:0;}
.wrap{width:100%;max-width:720px;margin:0 auto;padding:28px 16px 64px;}
.card{background:var(--paper);border:1px solid var(--line);border-radius:22px;
  box-shadow:0 16px 48px rgba(20,22,26,.10);padding:30px 28px;}
.back{display:inline-flex;align-items:center;gap:7px;text-decoration:none;color:var(--muted);
  font-size:.88rem;margin-bottom:18px;}
.back:hover{color:var(--accent);}
h1{margin:0 0 6px;font-size:1.6rem;font-weight:800;letter-spacing:-.01em;}
h2{margin:28px 0 8px;font-size:1.05rem;font-weight:800;}
h3{margin:22px 0 6px;font-size:.95rem;font-weight:800;color:var(--muted);
  text-transform:uppercase;letter-spacing:.06em;}
p,li{color:var(--ink);font-size:.95rem;line-height:1.6;}
.lead{color:var(--muted);margin:0 0 4px;}
.meta{color:var(--muted);font-size:.8rem;margin-top:2px;}
ul{padding-left:20px;}
a{color:var(--accent);}
.proj{display:block;border:1px solid var(--line);background:var(--chip);border-radius:14px;
  padding:16px 18px;margin-top:14px;text-decoration:none;color:var(--ink);
  transition:transform .12s ease,border-color .12s ease;}
.proj:hover{border-color:var(--accent);transform:translateY(-1px);}
.proj-t{font-weight:800;font-size:1.02rem;display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.proj-d{color:var(--muted);font-size:.86rem;line-height:1.5;margin-top:4px;}
.proj-tag{font-size:.6rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#fff;
  background:var(--accent);border-radius:6px;padding:2px 6px;}
.links{display:flex;gap:14px;flex-wrap:wrap;margin-top:10px;font-size:.84rem;}
.foot{margin-top:26px;font-size:.74rem;color:var(--muted);text-align:center;}
.foot a{color:var(--muted);}
.theme-toggle{position:fixed;top:14px;right:14px;width:40px;height:40px;border-radius:50%;
  border:1px solid var(--line);background:var(--paper);color:var(--ink);display:flex;
  align-items:center;justify-content:center;cursor:pointer;box-shadow:0 4px 14px rgba(0,0,0,.10);}
.theme-toggle svg{width:20px;height:20px;}

