/* ============================================================
   EFFECTUATE ARTIKLER — shared by /artikler/ (the archive) and
   every /artikler/<slug>/ page. All pages under /artikler/ are
   GENERATED by tools/byg-artikler.py from artikler/_kilde/*.md:
   edit the source and the generator, not the generated HTML.
   Tokens, lockup, eyebrow and .btn are the same values as
   index.html (same names, same color-mix formulas), so this is the
   same site. Orange stays an accent: links on hover, the active
   filter, the CTA. Light pages only; the footer is the one dark band.
   ============================================================ */
:root{
  --brand:        #707888;
  --brand-bright: #9AA2B0;
  --accent:       #F06020;
  --ink:          #141B24;
  --surface:      #FBFAF8;
  --surface-dark: #141B24;
  --on-accent:    var(--ink);

  --ff-display: 'Geist', system-ui, sans-serif;
  --ff-mono:    'Geist Mono', ui-monospace, monospace;
  --ff-body:    'Source Sans 3', system-ui, sans-serif;
  --ff-word:    'Nunito', system-ui, sans-serif;   /* wordmark ONLY */

  --ink-2: color-mix(in srgb, var(--ink) 76%, var(--surface));
  --ink-3: color-mix(in srgb, var(--ink) 66%, var(--surface));
  --surface-2: color-mix(in srgb, var(--ink) 4%, var(--surface));
  --surface-3: color-mix(in srgb, var(--ink) 8%, var(--surface));
  --hairline: color-mix(in srgb, var(--ink) 12%, var(--surface));
  --on-dark:   color-mix(in srgb, #fff 92%, var(--surface-dark));
  --on-dark-2: color-mix(in srgb, #fff 64%, var(--surface-dark));
  --line-dark: color-mix(in srgb, #fff 14%, var(--surface-dark));
  --accent-soft:   color-mix(in srgb, var(--accent) 16%, transparent);
  --accent-bright: color-mix(in srgb, var(--accent) 88%, #fff);

  --radius: 14px;
  --radius-sm: 10px;
  --maxw: 1180px;
  --read: 720px;
  --pad: clamp(22px, 5vw, 64px);
  --header-h: 72px;
  --shadow-md: 0 10px 30px -14px color-mix(in srgb, var(--ink) 40%, transparent), 0 2px 8px color-mix(in srgb, var(--ink) 8%, transparent);
}

*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{font-family:var(--ff-body);font-size:17px;line-height:1.6;color:var(--ink);background:var(--surface);-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto;display:block}
a{color:inherit}
button,input,select{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px}
.wrap{max-width:var(--maxw);margin-inline:auto;padding-inline:var(--pad)}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.skip{position:absolute;left:12px;top:-60px;background:#fff;padding:10px 16px;border-radius:8px;box-shadow:var(--shadow-md);z-index:100;font-weight:600;text-decoration:none}
.skip:focus{top:12px}
h1,h2,h3,h4{font-family:var(--ff-display);letter-spacing:-.02em;line-height:1.2;color:var(--ink)}
[id]{scroll-margin-top:calc(var(--header-h) + 20px)}

/* ---- header: lockup + two links + CTA ---- */
.a-header{position:sticky;top:0;z-index:50;background:color-mix(in srgb, var(--surface) 92%, transparent);backdrop-filter:saturate(1.4) blur(10px);border-bottom:1px solid var(--hairline)}
.a-header .wrap{height:var(--header-h);display:flex;align-items:center;gap:18px}
.brand{display:flex;align-items:center;gap:9px;font-family:var(--ff-word);font-weight:800;font-size:21px;letter-spacing:-.012em;color:var(--ink);line-height:1;text-decoration:none}
.brand .mark{width:auto;height:24px;flex:none}
.a-nav{display:flex;gap:4px;margin-left:auto;align-items:center}
.a-nav a{font-size:15px;font-weight:500;color:var(--ink-2);padding:8px 12px;border-radius:8px;text-decoration:none;white-space:nowrap}
.a-nav a:hover{color:var(--ink);background:var(--surface-2)}
.a-nav a[aria-current="page"]{color:var(--ink);background:var(--surface-2)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;font-family:var(--ff-display);font-weight:700;font-size:15px;letter-spacing:-.01em;padding:11px 18px;border-radius:10px;text-decoration:none;white-space:nowrap;transition:transform .18s, background .18s}
.btn-primary{background:var(--accent);color:var(--on-accent)}
.btn-primary:hover{background:var(--accent-bright);transform:translateY(-2px)}
@media (max-width:640px){.a-nav .a-home{display:none}.a-nav a{padding:8px 8px}.btn{padding:10px 14px}}
@media (max-width:420px){.brand{font-size:19px}.a-nav .a-all{display:none}}

.eyebrow{font-family:var(--ff-mono);font-size:12.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--brand);font-weight:500;display:inline-flex;align-items:center;gap:12px}
.eyebrow::before{content:"";width:22px;height:1px;background:currentColor}

/* ---- tags (chips) ---- */
.tags{display:flex;flex-wrap:wrap;gap:8px;list-style:none}
.tag{display:inline-flex;align-items:center;font-family:var(--ff-mono);font-size:12px;letter-spacing:.04em;padding:5px 11px;border-radius:999px;border:1px solid var(--hairline);background:#fff;color:var(--ink-2);text-decoration:none;line-height:1.3}
a.tag:hover{border-color:var(--ink-3);color:var(--ink)}

/* ============================================================
   ARCHIVE /artikler/
   ============================================================ */
.arc-head{padding:clamp(40px,6vw,72px) 0 clamp(24px,3vw,36px)}
.arc-head h1{font-size:clamp(2rem,4vw,3rem);letter-spacing:-.03em;margin-top:16px}
.arc-head p{font-size:1.1rem;color:var(--ink-2);margin-top:14px;max-width:640px}
.filters{display:grid;gap:16px;padding:20px;background:#fff;border:1px solid var(--hairline);border-radius:var(--radius)}
.f-row{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.f-search{flex:1 1 280px;position:relative}
.f-search input{width:100%;padding:12px 14px 12px 42px;border:1px solid var(--hairline);border-radius:var(--radius-sm);background:var(--surface);font-size:16px}
.f-search input:focus{outline:2px solid var(--accent);outline-offset:0;border-color:transparent}
.f-search svg{position:absolute;left:14px;top:50%;width:18px;height:18px;transform:translateY(-50%);color:var(--ink-3);pointer-events:none}
.f-select{display:flex;align-items:center;gap:8px;font-size:14.5px;color:var(--ink-3)}
.f-select select{padding:10px 12px;border:1px solid var(--hairline);border-radius:var(--radius-sm);background:var(--surface);color:var(--ink);font-size:15px}
.f-topics{display:flex;flex-wrap:wrap;gap:8px}
.f-topic{cursor:pointer;font-family:var(--ff-mono);font-size:12.5px;letter-spacing:.03em;padding:7px 13px;border-radius:999px;border:1px solid var(--hairline);background:var(--surface);color:var(--ink-2)}
.f-topic:hover{border-color:var(--ink-3);color:var(--ink)}
.f-topic[aria-pressed="true"]{background:var(--ink);border-color:var(--ink);color:#fff}
.f-topic .n{opacity:.6;margin-left:6px}
.f-status{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:22px 0 14px;font-size:15px;color:var(--ink-3)}
.f-reset{background:none;border:0;cursor:pointer;color:var(--ink);font-weight:600;border-bottom:1px solid var(--hairline);padding:0 0 1px}
.f-reset:hover{border-bottom-color:var(--ink)}
.f-reset[hidden]{display:none}

.list{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;padding-bottom:clamp(56px,8vw,96px)}
@media (max-width:1000px){.list{grid-template-columns:repeat(2,1fr)}}
@media (max-width:680px){.list{grid-template-columns:1fr}}
.card{background:#fff;border:1px solid var(--hairline);border-radius:var(--radius);padding:clamp(22px,2.6vw,28px);position:relative;display:flex;flex-direction:column;transition:transform .28s, box-shadow .28s, border-color .28s;overflow:hidden}
.card::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--accent);transform:scaleY(0);transform-origin:top;transition:transform .3s}
.card:hover{transform:translateY(-4px);box-shadow:var(--shadow-md);border-color:var(--surface-3)}
.card:hover::before{transform:scaleY(1)}
.card[hidden]{display:none}
.c-meta{font-family:var(--ff-mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3)}
.c-title{font-size:1.24rem;font-weight:700;margin-top:12px;line-height:1.24}
.c-title a{text-decoration:none}
.c-title a::after{content:"";position:absolute;inset:0}
.c-title a:focus-visible{outline:none}
.c-title a:focus-visible::after{outline:2px solid var(--accent);outline-offset:-2px;border-radius:var(--radius)}
.c-desc{color:var(--ink-2);font-size:15.5px;line-height:1.5;margin-top:10px}
.c-foot{margin-top:auto;padding-top:18px;display:flex;flex-direction:column;gap:12px}
.c-foot .tags{position:relative;z-index:1}
.c-by{font-size:14.5px;color:var(--ink-3);display:flex;align-items:center;gap:10px}
/* author photo: logos/partnere/<id>.webp, or initials when there is none */
.pic{width:28px;height:28px;border-radius:50%;object-fit:cover;flex:none;background:var(--surface-3)}
span.pic{display:grid;place-items:center;font-family:var(--ff-mono);font-size:11px;font-weight:600;color:var(--ink-2)}
.c-by strong{color:var(--ink);font-weight:600}
.empty{grid-column:1/-1;padding:40px;text-align:center;color:var(--ink-3);border:1px dashed var(--hairline);border-radius:var(--radius)}
@media (prefers-reduced-motion:reduce){.card,.card::before{transition:none}.card:hover{transform:none}}

/* ============================================================
   ARTICLE /artikler/<slug>/
   ============================================================ */
.crumbs{font-size:14.5px;color:var(--ink-3);padding-top:clamp(28px,4vw,44px)}
.crumbs a{color:var(--ink-2);text-decoration:none;border-bottom:1px solid var(--hairline)}
.crumbs a:hover{color:var(--ink);border-bottom-color:var(--ink)}
.art-page{max-width:var(--read);margin-inline:auto}
.a-head{padding:clamp(20px,3vw,32px) 0 clamp(24px,3vw,32px);border-bottom:1px solid var(--hairline)}
.a-head h1{font-size:clamp(1.9rem,4vw,2.8rem);letter-spacing:-.03em;line-height:1.12;margin-top:14px}
.a-lead{font-size:1.2rem;color:var(--ink-2);margin-top:18px;line-height:1.5}
.a-byline{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;margin-top:22px;font-size:15px;color:var(--ink-3)}
.a-byline a{color:var(--ink);font-weight:600;text-decoration:none;border-bottom:1px solid var(--hairline)}
.a-byline a:hover{border-bottom-color:var(--ink)}
.a-byline .dot{opacity:.5}
.a-byline .pic{width:44px;height:44px;font-size:14px;margin-right:2px}
.a-head .tags{margin-top:18px}

.toc{margin:28px 0 0;padding:18px 20px;background:var(--surface-2);border-radius:var(--radius-sm)}
.toc h2{font-family:var(--ff-mono);font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);font-weight:500}
.toc ol{margin-top:10px;padding-left:20px;display:grid;gap:4px;font-size:15.5px}
.toc a{color:var(--ink-2);text-decoration:none}
.toc a:hover{color:var(--ink);text-decoration:underline}

.prose{padding:clamp(24px,3vw,36px) 0 0;font-size:18px;line-height:1.65;color:var(--ink)}
.prose > * + *{margin-top:1.1em}
.prose h2{font-size:1.55rem;margin-top:2em;letter-spacing:-.02em}
.prose h3{font-size:1.22rem;margin-top:1.7em}
.prose h2 + *,.prose h3 + *{margin-top:.7em}
.prose a{color:var(--ink);text-decoration:underline;text-decoration-color:var(--brand-bright);text-underline-offset:3px}
.prose a:hover{text-decoration-color:var(--accent)}
.prose ul,.prose ol{padding-left:1.3em;display:grid;gap:.45em}
.prose li::marker{color:var(--brand)}
.prose strong{font-weight:600}
.prose code{font-family:var(--ff-mono);font-size:.86em;background:var(--surface-2);border:1px solid var(--hairline);border-radius:5px;padding:.08em .35em;font-feature-settings:"ss09"}
.prose blockquote{border-left:3px solid var(--accent);padding:.2em 0 .2em 1.1em;color:var(--ink-2)}
.prose hr{border:0;border-top:1px solid var(--hairline);margin:2.2em 0}
.prose figure{margin:2em 0}
.prose figure a{display:block;border:1px solid var(--hairline);border-radius:var(--radius-sm);overflow:hidden;background:#fff}
.prose figure.video video{display:block;width:100%;height:auto;border-radius:var(--radius-sm);background:var(--surface-dark)}
.prose figcaption{font-size:14.5px;color:var(--ink-3);margin-top:10px;line-height:1.45}
/* wide figures break out of the reading column on large screens */
@media (min-width:1100px){.prose figure.wide{margin-inline:-120px}}
.code{position:relative;margin:1.6em 0}
.code pre{background:var(--surface-dark);color:var(--on-dark);border-radius:var(--radius-sm);padding:20px 22px;overflow-x:auto;font-family:var(--ff-mono);font-size:14px;line-height:1.6;font-feature-settings:"ss09"}
.code pre code{background:none;border:0;padding:0;font-size:inherit;color:inherit}
.code .copy{position:absolute;top:10px;right:10px;font-family:var(--ff-mono);font-size:12px;letter-spacing:.04em;padding:6px 10px;border-radius:7px;border:1px solid var(--line-dark);background:color-mix(in srgb, #fff 6%, var(--surface-dark));color:var(--on-dark-2);cursor:pointer}
.code .copy:hover{color:#fff;border-color:var(--on-dark-2)}
.prose table{width:100%;border-collapse:collapse;font-size:15.5px}
.prose th,.prose td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--hairline);vertical-align:top}
.prose th{font-family:var(--ff-display);font-weight:600}

.a-source{margin-top:clamp(32px,4vw,44px);padding-top:18px;border-top:1px solid var(--hairline);font-size:15px;color:var(--ink-3)}
.a-source a{color:var(--ink);font-weight:600}
.author{display:grid;grid-template-columns:auto 1fr;gap:16px 18px;align-items:center;margin-top:28px;padding:22px;background:#fff;border:1px solid var(--hairline);border-radius:var(--radius)}
.author .pic{width:64px;height:64px;font-size:17px}
.author .k{font-family:var(--ff-mono);font-size:11.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3)}
.author .nm{font-family:var(--ff-display);font-weight:700;font-size:1.12rem;margin-top:2px}
.author .sk{font-size:15px;color:var(--ink-2)}
.author .links{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:10px 18px;align-items:center;font-size:15px}
.author .links a:not(.btn){color:var(--ink);font-weight:600;text-decoration:none;border-bottom:1px solid var(--hairline)}
.author .links a:not(.btn):hover{border-bottom-color:var(--ink)}
.related{margin-top:clamp(48px,6vw,72px);padding:clamp(40px,5vw,56px) 0 clamp(56px,7vw,88px);background:var(--surface-2)}
.related h2{font-size:1.5rem;margin-bottom:22px}
.related .list{padding-bottom:0}

/* ---- footer (the one dark band) ---- */
.a-footer{background:var(--surface-dark);color:var(--on-dark-2);padding:36px 0;font-size:14.5px}
.a-footer .wrap{display:flex;flex-wrap:wrap;gap:12px 24px;justify-content:space-between;align-items:center}
.a-footer .brand{color:#fff;font-size:20px}
.a-footer a{color:var(--on-dark);text-decoration:none;border-bottom:1px solid var(--line-dark)}
.a-footer a:hover{border-bottom-color:var(--on-dark)}
.a-footer a.brand{border-bottom:0}
.a-footer .legal{display:flex;flex-wrap:wrap;gap:6px 14px}
