/* ════════════════════════════════════════════════════════════════
   Illustrasjonene fra dagens m51.no, portert til «Ekte lys».
   Basert på V3/.tools/port-illustrasjoner.mjs, med nettstedets tema- og bevegelsestilpasninger.
   Stilen følger filmen på m51.ai: matt papir med korn, tynn blyantstrek,
   kort kontaktskygge og papirhjørner. Ingen glass og ingen glød.
   ════════════════════════════════════════════════════════════════ */
[data-ill] { display: flex; justify-content: center; width: 100%;
  --ill-paper: #fbf9f4; --ill-card: #fffefb; --ill-card-soft: rgba(255, 254, 251, .72); --ill-sunk: #f0ede5; --ill-pencil: rgba(56, 48, 40, .19);
  --ill-shadow: 0 1px 1px rgba(60, 50, 40, .10), 0 16px 28px -20px rgba(60, 50, 40, .45); --ill-sheen: linear-gradient(109deg, rgba(255, 255, 255, .55), transparent 46%, rgba(60, 50, 40, .035));
  --ill-grain: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0.24 0 0 0 0 0.2 0 0 0 0 0.16 0 0 0 .9 -.18'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"); --ill-grain-op: .11; --ill-r: 4px;
  /* tokenene illustrasjonene bruker, pekt om til papir */
  --bg-elev: var(--ill-card); --bg: var(--ill-sunk); --bg-sunk: var(--ill-sunk); --glass-border: var(--ill-pencil); --fill-1: var(--ill-card-soft);
  --radius-conc: var(--ill-r); --radius-shell: var(--ill-r);
  /* arket er litt mørkere enn hvitt: dempet tekst må være litt kraftigere for å holde 4,5:1 */
  --text-3: rgba(26, 26, 26, .66); }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) [data-ill] { --ill-paper: #201f1d; --ill-card: #2b2a27; --ill-card-soft: rgba(245, 244, 240, .07); --ill-sunk: #171615; --ill-pencil: rgba(235, 230, 220, .17);
    --ill-shadow: 0 1px 1px rgba(0, 0, 0, .5), 0 18px 30px -20px rgba(0, 0, 0, .9); --ill-sheen: linear-gradient(109deg, rgba(255, 255, 255, .035), transparent 46%, rgba(0, 0, 0, .12));
    --ill-grain: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0.96 0 0 0 0 0.94 0 0 0 0 0.9 0 0 0 .9 -.18'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"); --ill-grain-op: .2; --text-3: rgba(245, 244, 240, .64); } }
:root[data-theme="dark"] [data-ill] { --ill-paper: #201f1d; --ill-card: #2b2a27; --ill-card-soft: rgba(245, 244, 240, .07); --ill-sunk: #171615; --ill-pencil: rgba(235, 230, 220, .17);
    --ill-shadow: 0 1px 1px rgba(0, 0, 0, .5), 0 18px 30px -20px rgba(0, 0, 0, .9); --ill-sheen: linear-gradient(109deg, rgba(255, 255, 255, .035), transparent 46%, rgba(0, 0, 0, .12));
    --ill-grain: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0.96 0 0 0 0 0.94 0 0 0 0 0.9 0 0 0 .9 -.18'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"); --ill-grain-op: .2; --text-3: rgba(245, 244, 240, .64); }
.ill-frame { position: relative; isolation: isolate; overflow: hidden; border-radius: var(--ill-r); }
.ill-frame.ill-paper { background: var(--ill-sheen), var(--ill-paper); box-shadow: 0 0 0 1px var(--ill-pencil), var(--ill-shadow); }
.ill-frame .ill-content { position: relative; z-index: 1; }
.ill-grain { position: absolute; inset: 0; z-index: 0; pointer-events: none; background-image: var(--ill-grain); background-size: 180px 180px; opacity: var(--ill-grain-op); }
.ill-panel { background: var(--ill-card); border: 1px solid var(--ill-pencil); border-radius: var(--ill-r); }
@media (prefers-reduced-motion: reduce) { [data-ill] *, [data-ill] *::before, [data-ill] *::after { animation-delay: -30s !important; animation-play-state: paused !important; animation-fill-mode: both !important; transition-duration: .01ms !important; } }
html.still [data-ill] *, html.still [data-ill] *::before, html.still [data-ill] *::after { transition: none !important; }

/* ════════════════════════════════════════════════════════════════
   «Lys på flate» — felles kit for de nye illustrasjonene (V3/.tools/ill-ny).
   Les RETNING.md før du tegner. Kittet limes inn i ill.css av
   V3/.tools/port-illustrasjoner.mjs og er IKKE avgrenset per illustrasjon:
   alt her heter .il eller .il-*.
   Lerretet er alltid 480 × 360 (viewBox), og alt skalerer med bredden.
   ════════════════════════════════════════════════════════════════ */

/* ── scenen ─────────────────────────────────────────────────────── */
.il {
  position: relative; isolation: isolate; overflow: hidden; flex: 0 1 auto;
  width: 100%; max-width: var(--il-max, 480px); aspect-ratio: 4 / 3;
  border-radius: 5% / 6.6667%;                       /* 24 px på 480 × 360: flytende skall */
  /* Krem: rolig papir bak motivet. Himmelen og lysstrålen hører til Kull.
     Glass trenger lys (manualen 05): på Krem er lyset himmelens farger som mykt lys, varmest ved horisonten nederst,
     med familiens pastell høyt oppe. Ingen himmel, bare gløden (samme grep som .glow bak kortrader). */
  --il-s1: var(--ill-paper); --il-s2: var(--ill-paper); --il-s3: var(--ill-paper); --il-s4: var(--ill-paper);
  --il-scene:
    radial-gradient(95% 62% at 34% 116%, rgba(255, 176, 136, .34), transparent 72%),
    radial-gradient(70% 58% at 92% 2%, color-mix(in oklab, var(--Acc) 18%, transparent), transparent 70%),
    radial-gradient(60% 50% at 78% 108%, rgba(184, 169, 232, .20), transparent 70%),
    var(--ill-paper);
  --il-beam-display: none;
  --il-rim-1: rgba(255, 255, 255, 1); --il-rim-2: rgba(56, 48, 40, .16); --il-rim-3: rgba(56, 48, 40, .20); --il-rim-4: rgba(168, 81, 42, .45);
  --il-plate: #ffffff; --il-plate-2: #f4f1ea; --il-plate-line: rgba(56, 48, 40, .10);
  --il-ink: #1a1a1a; --il-ink-2: #5c5a56; --il-ink-3: rgba(26, 26, 26, .34); --il-hair: rgba(26, 26, 26, .16);
  --il-on-sky: rgba(26, 26, 26, .78);
  --il-glass: rgba(255, 255, 255, .46); --il-glass-rim: rgba(255, 255, 255, .95); --il-glass-rim-2: rgba(255, 255, 255, .25);
  --il-shade: rgba(54, 44, 78, .13);                 /* flat 19°-skygge */
  --il-shadow-c: #3a3050; --il-shadow-o: .22;
  --il-beam: rgba(255, 255, 255, .42); --il-beam-2: rgba(255, 255, 255, .10);
  --il-edge: rgba(56, 48, 40, .10);
  --il-grain-op: .16;
  --il-acc: var(--Acc); --il-acc-2: var(--Acc2); --il-acc-t: var(--AccT);
  background: var(--il-scene);
  box-shadow: 0 0 0 1px var(--il-edge), 0 1px 2px rgba(60, 50, 40, .08), 0 22px 44px -26px rgba(60, 50, 40, .38);
}
/* ett lysgrep: strålen i 19° (109° = 90° + 19°), fra øvre høyre mot nedre venstre */
.il::before {
  content: ''; display: var(--il-beam-display); position: absolute; inset: -12% -30%; z-index: 0; pointer-events: none;
  background: linear-gradient(109deg, transparent 36%, var(--il-beam-2) 41%, var(--il-beam) 49%, var(--il-beam-2) 58%, transparent 64%);
  animation: il-skinn 16s ease-in-out infinite alternate;
}
/* fint korn over alt, som i filmen */
.il::after {
  content: ''; position: absolute; inset: 0; z-index: 3; pointer-events: none; border-radius: inherit;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .5 0 0 0 0 .47 0 0 0 0 .45 0 0 0 1.1 -.3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  background-size: 160px 160px; opacity: var(--il-grain-op); mix-blend-mode: soft-light;
}
.il > .il-art { position: absolute; inset: 0; z-index: 1; display: block; width: 100%; height: 100%; overflow: hidden; }

/* ── Kull ───────────────────────────────────────────────────────── */
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .il {
  --il-s1: var(--D1); --il-s2: var(--D2); --il-s3: var(--D3); --il-s4: var(--D4);
  --il-scene: linear-gradient(180deg, var(--il-s1) 0%, var(--il-s2) 46%, var(--il-s3) 80%, var(--il-s4) 100%); --il-beam-display: block;
  --il-plate: #1d1d20; --il-plate-2: #27272b; --il-plate-line: rgba(245, 244, 240, .10);
  --il-ink: #f5f4f0; --il-ink-2: #b4b1ab; --il-ink-3: rgba(245, 244, 240, .36); --il-hair: rgba(245, 244, 240, .18);
  --il-on-sky: rgba(245, 244, 240, .86);
  --il-glass: rgba(22, 22, 34, .42); --il-glass-rim: rgba(255, 255, 255, .55); --il-glass-rim-2: rgba(255, 255, 255, .08);
  --il-rim-1: rgba(255, 255, 255, .6); --il-rim-2: rgba(235, 230, 220, .12); --il-rim-3: rgba(245, 244, 240, .10); --il-rim-4: rgba(255, 176, 136, .4);
  --il-shade: rgba(6, 6, 16, .34); --il-shadow-c: #04040c; --il-shadow-o: .6;
  --il-beam: rgba(255, 226, 200, .13); --il-beam-2: rgba(255, 226, 200, .035);
  --il-edge: rgba(245, 244, 240, .10); --il-grain-op: .22;
  --il-acc: var(--Acc); --il-acc-2: var(--Acc2); --il-acc-t: var(--Acc);
  box-shadow: 0 0 0 1px var(--il-edge), 0 24px 48px -26px rgba(0, 0, 0, .8);
} }
:root[data-theme="dark"] .il {
  --il-s1: var(--D1); --il-s2: var(--D2); --il-s3: var(--D3); --il-s4: var(--D4);
  --il-scene: linear-gradient(180deg, var(--il-s1) 0%, var(--il-s2) 46%, var(--il-s3) 80%, var(--il-s4) 100%); --il-beam-display: block;
  --il-plate: #1d1d20; --il-plate-2: #27272b; --il-plate-line: rgba(245, 244, 240, .10);
  --il-ink: #f5f4f0; --il-ink-2: #b4b1ab; --il-ink-3: rgba(245, 244, 240, .36); --il-hair: rgba(245, 244, 240, .18);
  --il-on-sky: rgba(245, 244, 240, .86);
  --il-glass: rgba(22, 22, 34, .42); --il-glass-rim: rgba(255, 255, 255, .55); --il-glass-rim-2: rgba(255, 255, 255, .08);
  --il-rim-1: rgba(255, 255, 255, .6); --il-rim-2: rgba(235, 230, 220, .12); --il-rim-3: rgba(245, 244, 240, .10); --il-rim-4: rgba(255, 176, 136, .4);
  --il-shade: rgba(6, 6, 16, .34); --il-shadow-c: #04040c; --il-shadow-o: .6;
  --il-beam: rgba(255, 226, 200, .13); --il-beam-2: rgba(255, 226, 200, .035);
  --il-edge: rgba(245, 244, 240, .10); --il-grain-op: .22;
  --il-acc: var(--Acc); --il-acc-2: var(--Acc2); --il-acc-t: var(--Acc);
  box-shadow: 0 0 0 1px var(--il-edge), 0 24px 48px -26px rgba(0, 0, 0, .8);
}

/* ── familiene: aksenter i begge temaer, himmel bare i Kull ─────────
   D1–D4 = Kull (topp → horisont). Acc = pastellfyll, AccT = blekk på lys flate. */
.il            { --D1: #15171f; --D2: #262b3d; --D3: #55546f; --D4: #b98f84; --Acc: #FFB088; --Acc2: #B8A9E8; --AccT: #a8512a; }
.il--synlighet { --D1: #111a2e; --D2: #23406b; --D3: #5d79a8; --D4: #d7a892; --Acc: #7BA0C4; --Acc2: #FFB088; --AccT: #447093; }
.il--vekst     { --D1: #151a2c; --D2: #2c3760; --D3: #7d6f9f; --D4: #e3a087; --Acc: #FFB088; --Acc2: #FF7B7B; --AccT: #a8512a; }
.il--produksjon{ --D1: #1a1830; --D2: #3c3670; --D3: #8d78b4; --D4: #e6a088; --Acc: #B8A9E8; --Acc2: #FFB088; --AccT: #6d56a8; }
.il--teknologi { --D1: #131a30; --D2: #2a3a6c; --D3: #6f74ae; --D4: #d9a596; --Acc: #7BA0C4; --Acc2: #B8A9E8; --AccT: #447093; }
.il--strategi  { --D1: #16192a; --D2: #333c5e; --D3: #8d7f8f; --D4: #e8bd7c; --Acc: #FFDC96; --Acc2: #FFB088; --AccT: #96660a; }
.il--innhold   { --D1: #17182b; --D2: #38345f; --D3: #9a6f93; --D4: #ee8f7c; --Acc: #FF7B7B; --Acc2: #FFDC96; --AccT: #b5473b; }
.il--ai        { --D1: #171532; --D2: #3b3a78; --D3: #9a7fba; --D4: #f0a584; --Acc: #B8A9E8; --Acc2: #FFB088; --AccT: #6d56a8; }

/* kantlyset på glasset: ring på 1,25 px der glinten hviler på 109° (manualen 05.2). Gradienten (#rim) ligger i hver SVG. */
.il .il-stop-r1 { stop-color: var(--il-rim-1); } .il .il-stop-r2 { stop-color: var(--il-rim-2); } .il .il-stop-r3 { stop-color: var(--il-rim-3); } .il .il-stop-r4 { stop-color: var(--il-rim-4); }

/* ── flater (SVG) ───────────────────────────────────────────────── */
.il .il-plate   { fill: var(--il-plate); stroke: var(--il-plate-line); stroke-width: 1; }          /* matt innholdsflate: skarpe hjørner (rx 0–2) */
.il .il-plate-2 { fill: var(--il-plate-2); }                                                       /* senket felt inne på en plate */
.il .il-glass   { fill: var(--il-glass); stroke: var(--il-glass-rim); stroke-width: 1.25; }         /* glass: kapsel eller rx 16. Maks ett per illustrasjon */
.il .il-shade   { fill: var(--il-shade); }                                                         /* flat skygge, tegnet som polygon i 19° */
.il .il-acc     { fill: var(--il-acc); }
.il .il-acc-2   { fill: var(--il-acc-2); }
.il [data-acc]     { fill: var(--il-acc); }   /* sekundær flate: familiens pastell. Soloppgangen (#sol) brukes én gang per illustrasjon */
.il [data-acc="2"] { fill: var(--il-acc-2); }
.il .il-fill-ink   { fill: var(--il-ink); }
.il .il-fill-ink-2 { fill: var(--il-ink-2); }
.il .il-fill-ink-3 { fill: var(--il-ink-3); }                                                      /* tekstlinjer som ikke skal leses: «plassholder» */
.il .il-fill-hair  { fill: var(--il-hair); }
.il .il-fill-sky   { fill: var(--il-on-sky); }
.il .il-none { fill: none; }
/* strek: 2 px på lerretet (ca. 1,4 px på mobil), runde ender, aldri fyll */
.il .il-line     { fill: none; stroke: var(--il-ink); stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.il .il-line-2   { fill: none; stroke: var(--il-ink-2); stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.il .il-line-hair{ fill: none; stroke: var(--il-hair); stroke-width: 1.5; stroke-linecap: round; }
.il .il-line-acc { fill: none; stroke: var(--il-acc-t); stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.il .il-line-sky { fill: none; stroke: var(--il-on-sky); stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.il .il-dash { stroke-dasharray: 2 7; }
/* stoppfarger i de innebygde gradientene (#sol, #sol-v, #horisont, #glans) */
.il .il-stop-1 { stop-color: #FFB088; } .il .il-stop-2 { stop-color: #B8A9E8; }
.il .il-stop-a { stop-color: var(--il-acc); } .il .il-stop-b { stop-color: var(--il-acc-2); }
.il .il-stop-s2 { stop-color: var(--il-s2); } .il .il-stop-s3 { stop-color: var(--il-s3); } .il .il-stop-s4 { stop-color: var(--il-s4); }
.il .il-stop-g1 { stop-color: #fff; stop-opacity: .55; } .il .il-stop-g2 { stop-color: #fff; stop-opacity: 0; }
.il .il-flood   { flood-color: var(--il-shadow-c); flood-opacity: var(--il-shadow-o); }

/* ── skrift (SVG <text>) ────────────────────────────────────────────
   Minste størrelse er 14 på lerretet (ca. 9,5 px på 320 px bredde). Maks fire tekstbiter per illustrasjon. */
.il text { font-family: var(--font-body, 'Hanken Grotesk', system-ui, sans-serif); font-size: 15px; fill: var(--il-ink); }
.il .il-mono { font-family: var(--font-mono, 'Fragment Mono', ui-monospace, Menlo, monospace); font-size: 14px; letter-spacing: .09em; text-transform: uppercase; fill: var(--il-ink-2); }
.il .il-tag  { font-family: var(--font-mono, 'Fragment Mono', ui-monospace, Menlo, monospace); font-size: 14px; letter-spacing: .09em; text-transform: uppercase; fill: var(--il-on-sky); }  /* etiketten øverst til venstre, rett på himmelen */
.il .il-txt  { font-size: 16px; font-weight: 550; fill: var(--il-ink); }
.il .il-txt-2{ font-size: 15px; fill: var(--il-ink-2); }
.il .il-num  { font-family: var(--font-display, -apple-system, 'SF Pro Display', 'Hanken Grotesk', system-ui, sans-serif); font-weight: 600; font-size: 40px; letter-spacing: -.02em; font-variant-numeric: tabular-nums; fill: var(--il-ink); }
.il .il-t-acc { fill: var(--il-acc-t); }
.il .il-t-sky { fill: var(--il-on-sky); }
.il .il-t-ink { fill: var(--il-ink); }                /* etikett på glass: fullt blekk i stedet for dempet */
.il .il-t-on-sol { fill: #1a1a1a; }                    /* tekst oppå soloppgangsgradienten: alltid mørk */
.il .il-mid { text-anchor: middle; } .il .il-end { text-anchor: end; }

/* ── bevegelse ──────────────────────────────────────────────────────
   Regel: grunnstilen ER det ferdige stillbildet. Nøklene under har bare «from» (eller går tilbake til start),
   så redusert bevegelse (animation: none) alltid gir et komplett bilde.
   Forsinkelse settes med style="--d: .3" (sekunder). */
.il .il-a-inn  { animation: il-inn 1.1s var(--ease-19, cubic-bezier(.19, 1, .22, 1)) both; animation-delay: calc(var(--d, 0) * 1s); }
.il .il-a-opp  { animation: il-opp 1.4s var(--ease-19, cubic-bezier(.19, 1, .22, 1)) both; animation-delay: calc(var(--d, 0) * 1s); }
.il .il-a-tone { animation: il-tone 1.2s ease-out both; animation-delay: calc(var(--d, 0) * 1s); }
.il .il-a-tegn { stroke-dasharray: 1; animation: il-tegn 1.6s var(--ease-19, cubic-bezier(.19, 1, .22, 1)) both; animation-delay: calc(var(--d, 0) * 1s); }   /* krever pathLength="1" */
.il .il-a-pust { transform-box: fill-box; transform-origin: center; animation: il-pust 7s ease-in-out infinite; animation-delay: calc(var(--d, 0) * 1s); }
.il .il-a-sveve{ animation: il-sveve 9s ease-in-out infinite; animation-delay: calc(var(--d, 0) * 1s); }
@keyframes il-inn  { from { opacity: 0; transform: translateY(14px); } }
@keyframes il-opp  { from { transform: translateY(var(--fra, 40px)); } }
@keyframes il-tone { from { opacity: 0; } }
@keyframes il-tegn { from { stroke-dashoffset: 1; } }
@keyframes il-pust { 50% { transform: scale(1.035); } }
@keyframes il-sveve{ 50% { transform: translateY(-5px); } }
@keyframes il-skinn{ from { transform: translateX(-3%); } to { transform: translateX(3%); } }

/* venter til illustrasjonen er synlig (ill.js setter og fjerner data-il-vent) */
.il[data-il-vent]::before, .il[data-il-vent] * { animation-play-state: paused !important; }
/* stillbilde: redusert bevegelse og ?still viser grunnstilen, altså det ferdige bildet */
@media (prefers-reduced-motion: reduce) { .il::before, .il *, .il *::before, .il *::after { animation: none !important; transition: none !important; } }
html.still .il::before, html.still .il *, html.still .il *::before, html.still .il *::after { animation: none !important; transition: none !important; }

/* ── ab-testing (ill-ny/ab-testing.html) ── */
[data-ill="ab-testing"] .il-mono.paa-glass { fill: var(--il-ink); }
[data-ill="ab-testing"] .maaler { transform-box: fill-box; transform-origin: left center; animation: ill-ab-testing-fyll 1.6s var(--ease-19, cubic-bezier(.19, 1, .22, 1)) .6s both; }
@keyframes ill-ab-testing-fyll { from { transform: scaleX(.45); } }
[data-ill="ab-testing"] .il-num.bokstav { font-size: 34px; }

/* ── aeo (ill-ny/aeo.html) ── */
[data-ill="aeo"] .sitat { transform-box: fill-box; transform-origin: left center; animation: ill-aeo-marker 1.4s cubic-bezier(.19, 1, .22, 1) .5s both; }
@keyframes ill-aeo-marker { from { transform: scaleX(0); } }
[data-ill="aeo"] .merke { fill: none; stroke: #1a1a1a; stroke-width: 1.5; }
[data-ill="aeo"] .il-mono.kilde { fill: var(--il-ink); }

/* ── ai (ill-ny/ai.html) ── */


/* ── ai-automasjon (ill-ny/ai-automasjon.html) ── */
[data-ill="ai-automasjon"] .il-mono.g { fill: var(--il-ink); }
[data-ill="ai-automasjon"] .hake { fill: none; stroke: var(--il-plate); stroke-width: 2.5; stroke-linecap: round; stroke-linejoin: round; }
[data-ill="ai-automasjon"] .ai { animation: ill-ai-automasjon-ko 12s cubic-bezier(.65, 0, .35, 1) infinite; }
@keyframes ill-ai-automasjon-ko { 0%, 20% { transform: translateY(-66px); } 32%, 54% { transform: translateY(0); } 66%, 88% { transform: translateY(66px); } 100% { transform: translateY(-66px); } }

/* ── ai-markedsforing (ill-ny/ai-markedsforing.html) ── */
[data-ill="ai-markedsforing"] .il-mono.g { fill: var(--il-ink); }
[data-ill="ai-markedsforing"] .vifte { animation: 1.5s var(--ease-19, cubic-bezier(.19, 1, .22, 1)) both; }
[data-ill="ai-markedsforing"] .vifte-m { animation-name: ill-ai-markedsforing-vifte-m; animation-delay: .4s; }
[data-ill="ai-markedsforing"] .vifte-b { animation-name: ill-ai-markedsforing-vifte-b; animation-delay: .6s; }
@keyframes ill-ai-markedsforing-vifte-m { from { transform: translate(-66px, 38px); } }
@keyframes ill-ai-markedsforing-vifte-b { from { transform: translate(-132px, 76px); } }

/* ── ai-strategi (ill-ny/ai-strategi.html) ── */
[data-ill="ai-strategi"] .naal { transform-box: view-box; transform-origin: 150px 210px; animation: ill-ai-strategi-pek 2.6s var(--ease-19, cubic-bezier(.19, 1, .22, 1)) .3s both; }
@keyframes ill-ai-strategi-pek { from { transform: rotate(-128deg); } }

/* ── byra-pa-tur (ill-ny/byra-pa-tur.html) ── */
[data-ill="byra-pa-tur"] .il-mono.paa-glass { fill: var(--il-ink); }
[data-ill="byra-pa-tur"] .bak { stroke: var(--il-hair); stroke-width: 1; }
[data-ill="byra-pa-tur"] .speil { opacity: .55; }
[data-ill="byra-pa-tur"] .sola { animation: ill-byra-pa-tur-stig 1.6s var(--ease-19, cubic-bezier(.19, 1, .22, 1)) .3s both; }
@keyframes ill-byra-pa-tur-stig { from { transform: translateY(48px); } }

/* ── crm-implementasjon (ill-ny/crm-implementasjon.html) ── */
[data-ill="crm-implementasjon"] .il-mono.prosess { fill: var(--il-ink); }
[data-ill="crm-implementasjon"] .pa-sol { fill: #1a1a1a; }
[data-ill="crm-implementasjon"] .avtale { animation: ill-crm-implementasjon-flytt 1.6s cubic-bezier(.19, 1, .22, 1) .7s both; }
@keyframes ill-crm-implementasjon-flytt { from { transform: translate(-134px, 52px); } }

/* ── cro (ill-ny/cro.html) ── */
[data-ill="cro"] .il-mono.mer { fill: var(--il-ink); }

/* ── digital-analyse (ill-ny/digital-analyse.html) ── */
[data-ill="digital-analyse"] .il-mono.g { fill: var(--il-ink); }
[data-ill="digital-analyse"] .skaft { stroke-width: 4; }
[data-ill="digital-analyse"] .lupe { animation: ill-digital-analyse-sok 14s ease-in-out infinite; }
@keyframes ill-digital-analyse-sok { 0%, 22%, 100% { transform: translateX(0); } 45% { transform: translateX(-198px); } 68% { transform: translateX(-66px); } 88% { transform: translateX(0); } }

/* ── employer-branding (ill-ny/employer-branding.html) ── */
[data-ill="employer-branding"] .il-mono.g { fill: var(--il-ink); }
[data-ill="employer-branding"] .kort { transform-box: view-box; transform-origin: 340px 0; animation: ill-employer-branding-svai 11s ease-in-out infinite; }
@keyframes ill-employer-branding-svai { 0%, 100% { transform: rotate(0deg); } 25% { transform: rotate(1.4deg); } 75% { transform: rotate(-1.4deg); } }

/* ── foto (ill-ny/foto.html) ── */
[data-ill="foto"] .bakke { opacity: .45; }
[data-ill="foto"] .stig { animation: ill-foto-stig 1.6s var(--ease-19, cubic-bezier(.19, 1, .22, 1)) .3s both; }
@keyframes ill-foto-stig { from { transform: translateY(28px); } }

/* ── fotostudio-oslo (ill-ny/fotostudio-oslo.html) ── */
[data-ill="fotostudio-oslo"] .sokkel { stroke: var(--il-hair); stroke-width: 1; }
[data-ill="fotostudio-oslo"] .lyset { fill: #fff; opacity: .13; animation: ill-fotostudio-oslo-lys 9s ease-in-out infinite; }
@keyframes ill-fotostudio-oslo-lys { 50% { opacity: .24; } }

/* ── geo (ill-ny/geo.html) ── */
[data-ill="geo"] .il-mono.svar { fill: var(--il-ink); }

/* ── google-ads (ill-ny/google-ads.html) ── */


/* ── helsesjekk (ill-ny/helsesjekk.html) ── */
[data-ill="helsesjekk"] .il-mono.g { fill: var(--il-ink); }

/* ── hubspot (ill-ny/hubspot.html) ── */
[data-ill="hubspot"] .il-mono.hub { fill: var(--il-ink); }

/* ── hubspot-integrasjoner (ill-ny/hubspot-integrasjoner.html) ── */
[data-ill="hubspot-integrasjoner"] .il-mono.g { fill: var(--il-ink); }
[data-ill="hubspot-integrasjoner"] .flyt { animation: ill-hubspot-integrasjoner-flyt 9s linear infinite; }
@keyframes ill-hubspot-integrasjoner-flyt { to { stroke-dashoffset: -72; } }

/* ── inbound-marketing (ill-ny/inbound-marketing.html) ── */
[data-ill="inbound-marketing"] .il-mono.sterk { fill: var(--il-ink); }

/* ── influencer-marketing (ill-ny/influencer-marketing.html) ── */
[data-ill="influencer-marketing"] .il-mono.paa-glass { fill: var(--il-ink); }

/* ── innholdsmarkedsforing (ill-ny/innholdsmarkedsforing.html) ── */
[data-ill="innholdsmarkedsforing"] .il-mono.spm { fill: var(--il-ink); }

/* ── innholdsproduksjon (ill-ny/innholdsproduksjon.html) ── */
[data-ill="innholdsproduksjon"] .il-mono.ut { fill: var(--il-ink); }
[data-ill="innholdsproduksjon"] .spill { fill: #1a1a1a; }

/* ── innholdsstrategi-seo (ill-ny/innholdsstrategi-seo.html) ── */
[data-ill="innholdsstrategi-seo"] .il-mono.g { fill: var(--il-ink); }

/* ── kampanje-strategi (ill-ny/kampanje-strategi.html) ── */
[data-ill="kampanje-strategi"] .il-mono.g { fill: var(--il-ink); }
[data-ill="kampanje-strategi"] .fase { transform-box: fill-box; transform-origin: left center; animation: ill-kampanje-strategi-fase 1.4s var(--ease-19, cubic-bezier(.19, 1, .22, 1)) both; animation-delay: calc(var(--d, 0) * 1s); }
@keyframes ill-kampanje-strategi-fase { from { transform: scaleX(0); } }

/* ── kanaloptimalisering (ill-ny/kanaloptimalisering.html) ── */
[data-ill="kanaloptimalisering"] .il-mono.sterk { fill: var(--il-ink); }
[data-ill="kanaloptimalisering"] .spak-a { animation: ill-kanaloptimalisering-spak-a 12s ease-in-out infinite; }
[data-ill="kanaloptimalisering"] .spak-b { animation: ill-kanaloptimalisering-spak-b 12s ease-in-out infinite; }
[data-ill="kanaloptimalisering"] .spak-c { animation: ill-kanaloptimalisering-spak-c 12s ease-in-out infinite; }
@keyframes ill-kanaloptimalisering-spak-a { 0%, 15%, 100% { transform: translateY(0); } 45%, 70% { transform: translateY(-34px); } }
@keyframes ill-kanaloptimalisering-spak-b { 0%, 15%, 100% { transform: translateY(0); } 45%, 70% { transform: translateY(42px); } }
@keyframes ill-kanaloptimalisering-spak-c { 0%, 15%, 100% { transform: translateY(0); } 45%, 70% { transform: translateY(-18px); } }

/* ── klaviyo (ill-ny/klaviyo.html) ── */
[data-ill="klaviyo"] .il-mono.paa-glass { fill: var(--il-ink); }

/* ── konkurrentanalyse (ill-ny/konkurrentanalyse.html) ── */
[data-ill="konkurrentanalyse"] .il-mono.pos { fill: var(--il-ink); }
[data-ill="konkurrentanalyse"] .du { animation: ill-konkurrentanalyse-finn 1.8s cubic-bezier(.19, 1, .22, 1) .6s both; }
@keyframes ill-konkurrentanalyse-finn { from { transform: translate(-64px, 96px); } }

/* ── konverteringsanalyse (ill-ny/konverteringsanalyse.html) ── */
[data-ill="konverteringsanalyse"] .il-mono.fra { fill: var(--il-ink); }
[data-ill="konverteringsanalyse"] .lupe { animation: ill-konverteringsanalyse-let 13s ease-in-out infinite; }
@keyframes ill-konverteringsanalyse-let { 0%, 22%, 100% { transform: translate(0, 0); } 50%, 72% { transform: translate(-84px, 82px); } }

/* ── landingpages (ill-ny/landingpages.html) ── */
[data-ill="landingpages"] .il-mono.g { fill: var(--il-ink); }

/* ── lei-en-markedsforer (ill-ny/lei-en-markedsforer.html) ── */
[data-ill="lei-en-markedsforer"] .dag { transform-box: fill-box; transform-origin: center bottom; animation: ill-lei-en-markedsforer-dag 1.4s var(--ease-19, cubic-bezier(.19, 1, .22, 1)) both; animation-delay: calc(var(--d, 0) * 1s); }
@keyframes ill-lei-en-markedsforer-dag { from { transform: scaleY(0); } }

/* ── linkedin-ads (ill-ny/linkedin-ads.html) ── */
[data-ill="linkedin-ads"] .il-mono.sterk { fill: var(--il-ink); }

/* ── livestream (ill-ny/livestream.html) ── */
[data-ill="livestream"] .rec { fill: #FF7B7B; }
[data-ill="livestream"] .il-mono.paa-glass { fill: var(--il-ink); }
[data-ill="livestream"] .valgt { fill: none; stroke-width: 3; animation: ill-livestream-miks 12s var(--ease-19, cubic-bezier(.19, 1, .22, 1)) infinite; }
@keyframes ill-livestream-miks {
  0%, 26% { transform: translateX(0); }
  34%, 60% { transform: translateX(134px); }
  68%, 92% { transform: translateX(268px); }
  100% { transform: translateX(0); }
}

/* ── lokalaviser (ill-ny/lokalaviser.html) ── */
[data-ill="lokalaviser"] .il-mono.fmt { fill: var(--il-ink); }
[data-ill="lokalaviser"] .pa-sol { fill: #1a1a1a; opacity: .8; }

/* ── markedsanalyse (ill-ny/markedsanalyse.html) ── */
[data-ill="markedsanalyse"] .il-mono.mg { fill: var(--il-ink); }
[data-ill="markedsanalyse"] .finn { animation: ill-markedsanalyse-finn 1.6s var(--ease-19, cubic-bezier(.19, 1, .22, 1)) both; }
@keyframes ill-markedsanalyse-finn { from { transform: translate(-190px, 14px); } }

/* ── marketing-automation (ill-ny/marketing-automation.html) ── */
[data-ill="marketing-automation"] .il-mono.g { fill: var(--il-ink); }
[data-ill="marketing-automation"] .lead { animation: ill-marketing-automation-trinn 12s cubic-bezier(.65, 0, .35, 1) infinite; }
@keyframes ill-marketing-automation-trinn {
  0% { transform: translate(-336px, 155px); opacity: 0; }
  6%, 16% { transform: translate(-336px, 155px); opacity: 1; }
  30%, 40% { transform: translate(-204px, 95px); }
  54%, 64% { transform: translate(-72px, 35px); }
  80%, 94% { transform: translate(0, 0); opacity: 1; }
  100% { transform: translate(0, 0); opacity: 0; }
}

/* ── mediekjop (ill-ny/mediekjop.html) ── */
[data-ill="mediekjop"] .lys { opacity: .4; }
[data-ill="mediekjop"] .lys-b { opacity: 1; }
[data-ill="mediekjop"] .lys-a { animation: ill-mediekjop-lys-a 10s ease-in-out infinite; }
[data-ill="mediekjop"] .lys-b { animation: ill-mediekjop-lys-b 10s ease-in-out infinite; }
[data-ill="mediekjop"] .lys-c { animation: ill-mediekjop-lys-c 10s ease-in-out infinite; }
@keyframes ill-mediekjop-lys-b { 0%, 18%, 100% { opacity: 1; } 33%, 85% { opacity: .4; } }
@keyframes ill-mediekjop-lys-c { 0%, 18%, 66%, 100% { opacity: .4; } 33%, 51% { opacity: 1; } }
@keyframes ill-mediekjop-lys-a { 0%, 51%, 100% { opacity: .4; } 66%, 85% { opacity: 1; } }
[data-ill="mediekjop"] .spill { fill: var(--il-plate); }
[data-ill="mediekjop"] .il-mono.budsjett { fill: var(--il-ink); }

/* ── meta-ads (ill-ny/meta-ads.html) ── */
[data-ill="meta-ads"] .il-mono.g { fill: var(--il-ink); }
[data-ill="meta-ads"] .motiv { fill: var(--il-plate); opacity: .9; }
[data-ill="meta-ads"] .spor { fill: #1a1a1a; opacity: .22; }
[data-ill="meta-ads"] .spor.fyll { opacity: .8; transform-box: fill-box; transform-origin: left center; animation: ill-meta-ads-fyll 9s linear infinite; }
@keyframes ill-meta-ads-fyll { from { transform: scaleX(0); } }

/* ── nettbutikk (ill-ny/nettbutikk.html) ── */
[data-ill="nettbutikk"] .il-mono.sterk { fill: var(--il-ink); }

/* ── nettside (ill-ny/nettside.html) ── */
[data-ill="nettside"] .il-mono.paa-glass { fill: var(--il-ink); }
[data-ill="nettside"] .paa-sol { fill: #1a1a1a; opacity: .78; }
[data-ill="nettside"] .paa-sol.svak { opacity: .4; }

/* ── programmatisk-annonsering (ill-ny/programmatisk-annonsering.html) ── */
[data-ill="programmatisk-annonsering"] .il-mono.bud { fill: var(--il-ink); }
[data-ill="programmatisk-annonsering"] .stolpe { transform-box: fill-box; transform-origin: center bottom; animation: ill-programmatisk-annonsering-by-a 9s ease-in-out infinite; }
[data-ill="programmatisk-annonsering"] .s2 { animation-name: ill-programmatisk-annonsering-by-b; animation-duration: 11s; }
[data-ill="programmatisk-annonsering"] .s3 { animation-name: ill-programmatisk-annonsering-by-b; }
[data-ill="programmatisk-annonsering"] .s5 { animation-duration: 12s; }
[data-ill="programmatisk-annonsering"] .s4 { animation: none; }
@keyframes ill-programmatisk-annonsering-by-a { 0%, 100% { transform: scaleY(1); } 40% { transform: scaleY(1.25); } 70% { transform: scaleY(.75); } }
@keyframes ill-programmatisk-annonsering-by-b { 0%, 100% { transform: scaleY(1); } 35% { transform: scaleY(.7); } 65% { transform: scaleY(1.12); } }

/* ── reddit-ads (ill-ny/reddit-ads.html) ── */
[data-ill="reddit-ads"] .il-mono.navn { fill: var(--il-ink); }

/* ── reklamefilm (ill-ny/reklamefilm.html) ── */
[data-ill="reklamefilm"] .il-mono.g { fill: var(--il-ink); }
[data-ill="reklamefilm"] .arm { transform-box: view-box; transform-origin: 48px 166px; transform: rotate(-19deg); animation: ill-reklamefilm-klapp 9s cubic-bezier(.65, 0, .35, 1) infinite; }
@keyframes ill-reklamefilm-klapp { 0%, 72%, 100% { transform: rotate(-19deg); } 80%, 86% { transform: rotate(0deg); } }

/* ── retargeting (ill-ny/retargeting.html) ── */
[data-ill="retargeting"] .il-mono.g { fill: var(--il-ink); }

/* ── seo (ill-ny/seo.html) ── */


/* ── seo-analyse (ill-ny/seo-analyse.html) ── */
[data-ill="seo-analyse"] .il-mono.sterk { fill: var(--il-ink); }
[data-ill="seo-analyse"] .il-line.skaft { stroke-width: 7; }

/* ── sanity (ill-ny/sanity.html) ── */
[data-ill="sanity"] .il-mono.paa-glass { fill: var(--il-ink); }

/* ── sosiale-medier-organisk (ill-ny/sosiale-medier-organisk.html) ── */
[data-ill="sosiale-medier-organisk"] .il-mono.drift { fill: var(--il-ink); }
[data-ill="sosiale-medier-organisk"] .prikk { fill: #FF7B7B; }

/* ── sporing-og-maling (ill-ny/sporing-og-maling.html) ── */
[data-ill="sporing-og-maling"] .il-mono.merke { fill: var(--il-ink); }

/* ── strategi (ill-ny/strategi.html) ── */
[data-ill="strategi"] .il-mono.g { fill: var(--il-ink); }
[data-ill="strategi"] .pkt { fill: var(--il-plate); stroke: var(--il-ink); stroke-width: 2; }

/* ── teknisk-seo (ill-ny/teknisk-seo.html) ── */
[data-ill="teknisk-seo"] .il-mono.g { fill: var(--il-ink); }

/* ── tiktok-ads (ill-ny/tiktok-ads.html) ── */
[data-ill="tiktok-ads"] .il-mono.sterk { fill: var(--il-ink); }
[data-ill="tiktok-ads"] .spill { fill: var(--il-plate); }
[data-ill="tiktok-ads"] .paa { fill: #1a1a1a; }
[data-ill="tiktok-ads"] .gang { transform-box: fill-box; transform-origin: left center; animation: ill-tiktok-ads-gang 9s linear infinite; }
@keyframes ill-tiktok-ads-gang { 0% { transform: scaleX(0); } 88%, 100% { transform: scaleX(1); } }

/* ── twitch-ads (ill-ny/twitch-ads.html) ── */
[data-ill="twitch-ads"] .rec { fill: #FF7B7B; }
[data-ill="twitch-ads"] .il-mono.paa-glass { fill: var(--il-ink); }

/* ── ugc (ill-ny/ugc.html) ── */
[data-ill="ugc"] .skaper { fill: var(--il-plate); }
[data-ill="ugc"] .rec { fill: #FF7B7B; }
[data-ill="ugc"] .il-mono.fmt { fill: var(--il-ink); }

/* ── utendorsreklame (ill-ny/utendorsreklame.html) ── */
[data-ill="utendorsreklame"] .strek { fill: rgba(26, 26, 26, .45); }
[data-ill="utendorsreklame"] .bytte { animation: ill-utendorsreklame-bytt 12s ease-in-out infinite; }
@keyframes ill-utendorsreklame-bytt { 0%, 38%, 100% { opacity: 1; } 50%, 88% { opacity: 0; } }
[data-ill="utendorsreklame"] .il-num.bud { font-size: 26px; }

/* ── videoproduksjon (ill-ny/videoproduksjon.html) ── */
[data-ill="videoproduksjon"] .rec { fill: #FF7B7B; }
[data-ill="videoproduksjon"] .il-mono.tc { fill: var(--il-ink); }
[data-ill="videoproduksjon"] .hode { animation: ill-videoproduksjon-spol 12s linear infinite alternate; }
@keyframes ill-videoproduksjon-spol { from { transform: translateX(-156px); } to { transform: translateX(168px); } }

/* ── visuell-identitet (ill-ny/visuell-identitet.html) ── */
[data-ill="visuell-identitet"] .il-mono.g { fill: var(--il-ink); }

/* ── webdesign (ill-ny/webdesign.html) ── */
[data-ill="webdesign"] .il-mono.g { fill: var(--il-ink); }

/* ── webflow (ill-ny/webflow.html) ── */
[data-ill="webflow"] .il-mono.sterk { fill: var(--il-ink); }

/* ── webinar-produksjon (ill-ny/webinar-produksjon.html) ── */
[data-ill="webinar-produksjon"] .il-mono.paa-glass { fill: var(--il-ink); }

/* ── wordpress (ill-ny/wordpress.html) ── */
[data-ill="wordpress"] .pa-sol { fill: #1a1a1a; }
[data-ill="wordpress"] .blokk { animation: ill-wordpress-dra 1.6s cubic-bezier(.19, 1, .22, 1) .6s both; }
@keyframes ill-wordpress-dra { from { transform: translate(-96px, 14px); opacity: 0; } }

/* ── x-ads (ill-ny/x-ads.html) ── */
[data-ill="x-ads"] .il-mono.ord { fill: var(--il-ink); }
[data-ill="x-ads"] .rull { animation: ill-x-ads-rull 11s ease-in-out infinite; }
@keyframes ill-x-ads-rull { 50% { transform: translateY(-14px); } }

/* ── youtube-ads (ill-ny/youtube-ads.html) ── */
[data-ill="youtube-ads"] .il-mono.g { fill: var(--il-ink); }
[data-ill="youtube-ads"] .spill { fill: var(--il-plate); }
[data-ill="youtube-ads"] .spilt { transform-box: view-box; transform-origin: 68px 240px; animation: ill-youtube-ads-spilt 10s linear infinite; }
[data-ill="youtube-ads"] .hode { animation: ill-youtube-ads-hode 10s linear infinite; }
@keyframes ill-youtube-ads-spilt { 0% { transform: scaleX(0); } 60%, 100% { transform: scaleX(1); } }
@keyframes ill-youtube-ads-hode { 0% { transform: translateX(-118px); } 60%, 100% { transform: translateX(0); } }

/* ── seksjon-comparison (ill-ny/seksjon-comparison.html) ── */
[data-ill="seksjon-comparison"] .il-mono.g { fill: var(--il-ink); }

/* ── seksjon-dashboard (ill-ny/seksjon-dashboard.html) ── */
[data-ill="seksjon-dashboard"] .il-mono.sterk { fill: var(--il-ink); }
[data-ill="seksjon-dashboard"] .ring { stroke-width: 6; }

/* ── seksjon-editor (ill-ny/seksjon-editor.html) ── */
[data-ill="seksjon-editor"] .il-txt.fet { font-size: 19px; font-weight: 700; }
[data-ill="seksjon-editor"] .il-txt.kursiv { font-size: 19px; font-style: italic; font-weight: 500; }
[data-ill="seksjon-editor"] .skriv { transform-box: fill-box; transform-origin: left center; animation: ill-seksjon-editor-skriv 1.6s var(--ease-19, cubic-bezier(.19, 1, .22, 1)) .5s both; }
[data-ill="seksjon-editor"] .markor { animation: ill-seksjon-editor-flytt 1.6s var(--ease-19, cubic-bezier(.19, 1, .22, 1)) .5s both; }
@keyframes ill-seksjon-editor-skriv { from { transform: scaleX(.06); } }
@keyframes ill-seksjon-editor-flytt { from { transform: translateX(-124px); } }

/* ── seksjon-funnel (ill-ny/seksjon-funnel.html) ── */
[data-ill="seksjon-funnel"] .il-mono.kunde { fill: var(--il-ink); }

/* ── seksjon-network (ill-ny/seksjon-network.html) ── */


/* ── seksjon-stack (ill-ny/seksjon-stack.html) ── */
[data-ill="seksjon-stack"] .il-mono.g { fill: var(--il-ink); }
[data-ill="seksjon-stack"] .kant { stroke: var(--il-hair); stroke-width: 1; }

/* ── seksjon-stats (ill-ny/seksjon-stats.html) ── */
[data-ill="seksjon-stats"] .il-mono.g { fill: var(--il-ink); }
[data-ill="seksjon-stats"] .soyle { transform-box: fill-box; transform-origin: center bottom; animation: ill-seksjon-stats-soyle 1.5s var(--ease-19, cubic-bezier(.19, 1, .22, 1)) both; animation-delay: calc(var(--d, 0) * 1s); }
@keyframes ill-seksjon-stats-soyle { from { transform: scaleY(0); } }

/* ── seksjon-timeline (ill-ny/seksjon-timeline.html) ── */
[data-ill="seksjon-timeline"] .il-mono.sterk { fill: var(--il-ink); }
[data-ill="seksjon-timeline"] .naa { animation: ill-seksjon-timeline-naa 1.6s var(--ease-19, cubic-bezier(.19, 1, .22, 1)) .6s both; }
@keyframes ill-seksjon-timeline-naa { from { transform: translateX(-222px); } }

/* ── seksjon-workflow (ill-ny/seksjon-workflow.html) ── */
[data-ill="seksjon-workflow"] .il-mono.paa-glass { fill: var(--il-ink); }
[data-ill="seksjon-workflow"] .il-num.steg { font-size: 20px; }

/* ── rettelser ── */
/* statuslinjen under tegningen lå helt i venstre kant og ble klippet av arket */
.ill-frame > .ill-content > [class$="-status"] { padding: 0 18px 14px; text-align: center; }
[data-ill="retargeting"] .retg-rate { padding: 0 20px 14px; }
/* CSS-animasjonen overstyrte transform-attributtet, så «Helsescore» havnet oppe i hjørnet */
[data-ill="helsesjekk"] .helse-score { translate: 190px 355px; }
/* trakten krympet rundt innholdet, så tall og etikett gikk oppå hverandre */
[data-ill="seksjon-funnel"] > .ill-frame { width: min(100%, 320px); }
[data-ill="seksjon-funnel"] .sf__row { gap: 10px; white-space: nowrap; min-width: max-content; }
/* arbeidsflyten har ingen ramme i originalen: samme ark som resten */
[data-ill="seksjon-workflow"] .sw { background: var(--ill-sheen), var(--ill-paper); border: 0; border-radius: var(--ill-r); box-shadow: 0 0 0 1px var(--ill-pencil), var(--ill-shadow); }
[data-ill="seksjon-workflow"] .sw__step { border-radius: var(--ill-r); }
/* kontrast: småtekst som lå under 4,5:1 (ble synlig for kontrollen da glasset ble til ensfarget papir) */
[data-ill="aeo"] .aeo-answer-source > span, [data-ill="twitch-ads"] .twi-chat-user--green { color: var(--ok-t); }
[data-ill="meta-ads"] .meta-cta-button { color: var(--text-1); }
[data-ill="sanity"] #sanSlugText, [data-ill="sanity"] #sanContentLabel { color: var(--text-1); }
[data-ill="twitch-ads"] .twi-live-badge { color: #1a1a1a; }
[data-ill="twitch-ads"] .twi-ad-banner-cta { color: #5a4496; }
[data-ill="webflow"] .wf-layer-label { color: #b3b0aa; }
[data-ill="webinar-produksjon"] .webi-slide-num > span { color: #b3b3b3; }
/* verktøylinjen spretter opp over arket */
[data-ill="wordpress"] .wp-card { overflow: visible; }
