/* Tidsbild – almanackan. Paper and ink; red is reserved for red days; the accent follows the season. */
@font-face{font-family:"Fraunces";src:url(fonts/fraunces.woff2) format("woff2");font-weight:400 700;font-style:normal;font-display:swap}
@font-face{font-family:"Figtree";src:url(fonts/figtree.woff2) format("woff2");font-weight:400 700;font-style:normal;font-display:swap}
@font-face{font-family:"Figtree";src:url(fonts/figtree-italic.woff2) format("woff2");font-weight:400 700;font-style:italic;font-display:swap}

:root{
  --paper:#fbf8f1;--paper-2:#f3ede1;--card:#fffdf8;--ink:#1e1b16;--ink-2:#433d34;--muted:#5e554c;--rule:#e1d7c3;--rule-2:#c9bca1;
  --red:#b3261e;--red-soft:#f7e0dc;--eve:#b07a12;--eve-soft:#f6ebd2;--flag:#1f4e8c;--flag-soft:#dfe8f4;--tema:#6b5a8e;--trad:#5b6b3a;--astro:#4a5560;
  --acc:#9a6510;--acc-soft:#f3e6cc;--acc-ink:#6e470a;
  --serif:"Fraunces",Georgia,"Times New Roman",serif;--sans:"Figtree",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --r:6px;--sh:0 1px 0 rgba(30,27,22,.05),0 10px 26px -16px rgba(30,27,22,.28);
  --w:1200px;--gut:16px;--measure:680px;color-scheme:light;
}
body.season-vinter{--acc:#2f5e8c;--acc-soft:#dfe8f2;--acc-ink:#1f4369}
body.season-var{--acc:#4c7a34;--acc-soft:#e4eed9;--acc-ink:#35571f}
body.season-sommar{--acc:#1f7468;--acc-soft:#d9ece8;--acc-ink:#14544b}
body.season-host{--acc:#9a6510;--acc-soft:#f3e6cc;--acc-ink:#6e470a}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){--paper:#15130f;--paper-2:#1d1a15;--card:#1f1c17;--ink:#f1ebdf;--ink-2:#d8cfbf;--muted:#b0a593;--rule:#352f26;--rule-2:#4d4537;
    --red:#ff7f6b;--red-soft:#3d1d18;--eve:#e2b85a;--eve-soft:#3a3018;--flag:#8fb3e8;--flag-soft:#1b2738;--tema:#b7a6dc;--trad:#b6c98f;--astro:#a8b4bf;
    --sh:0 1px 0 rgba(0,0,0,.25),0 10px 30px -14px rgba(0,0,0,.7);color-scheme:dark}
  :root:not([data-theme="light"]) body.season-vinter{--acc:#8db7e2;--acc-soft:#1c2a38;--acc-ink:#bcd6f2}
  :root:not([data-theme="light"]) body.season-var{--acc:#a2cb85;--acc-soft:#1f2a18;--acc-ink:#c6e2b0}
  :root:not([data-theme="light"]) body.season-sommar{--acc:#6fcbbb;--acc-soft:#14302b;--acc-ink:#a6e3d8}
  :root:not([data-theme="light"]) body.season-host{--acc:#e2b25b;--acc-soft:#33280f;--acc-ink:#f2cf8e}
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:16px}
body{margin:0;background:var(--paper);color:var(--ink);font:400 clamp(1.0625rem,1rem + .25vw,1.1875rem)/1.62 var(--sans);overflow-x:hidden}
img,svg{max-width:100%;height:auto}
a{color:inherit;text-decoration-color:color-mix(in srgb,var(--acc) 70%,transparent);text-underline-offset:.18em;text-decoration-thickness:.075em}
a:hover{color:var(--acc-ink);text-decoration-color:var(--acc)}
:focus-visible{outline:3px solid var(--acc);outline-offset:2px;border-radius:3px}
.tb-wrap{max-width:var(--w);margin:0 auto;padding:0 var(--gut)}
.tb-vh{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.tb-skip{position:absolute;left:-999px;top:8px;background:var(--ink);color:var(--paper);padding:8px 14px;border-radius:4px;z-index:10}
.tb-skip:focus{left:8px}
.tb-ico{width:1.15em;height:1.15em;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;vertical-align:-.2em;flex:none}
h1,h2,h3,h4{font-family:var(--serif);font-weight:600;line-height:1.14;letter-spacing:-.012em;font-variation-settings:"opsz" 60;font-variant-ligatures:no-common-ligatures;margin:0 0 .5em;text-wrap:balance}
.tb-h2{font-size:clamp(1.5rem,1.15rem + 1.3vw,2.05rem)}
.tb-h2 a{text-decoration:none}
.tb-h3{font-size:1.25rem}
.tb-links{display:flex;flex-wrap:wrap;gap:6px 18px;font-weight:600;font-size:.95rem;margin:1rem 0 0}
.tb-links a{color:var(--acc-ink)}
.tb-btn{display:inline-flex;align-items:center;gap:.4em;background:var(--ink);color:var(--paper)!important;text-decoration:none;padding:10px 16px;border-radius:999px;font-weight:650;font-size:.95rem}
.tb-btn:hover{background:var(--acc-ink)}

/* ---------- date strip (sub pages) ---------- */
.tb-strip{background:#1e1b16;color:#fbf8f1;font-size:.84rem}
.tb-strip__in{display:flex;gap:4px 18px;align-items:center;min-height:36px;overflow-x:auto;scrollbar-width:none;white-space:nowrap}
.tb-strip__in::-webkit-scrollbar{display:none}
.tb-strip a{color:inherit;text-decoration:none;opacity:.9;display:inline-flex;gap:.35em;align-items:center}
.tb-strip a:hover{opacity:1;color:inherit}
.tb-strip__date{font-weight:650}
.tb-strip__date.is-red time{color:#ff9b88}
.tb-strip__date .sm{display:none}
.tb-strip__item{padding-left:18px;border-left:1px solid rgba(255,255,255,.2)}
.tb-strip__flag .tb-ico{color:#8fb3e8}
@media (max-width:640px){.tb-strip__date .lg{display:none}.tb-strip__date .sm{display:inline}.tb-strip__sun{display:none!important}.tb-strip__item{padding-left:12px}.tb-strip__in{gap:4px 12px}}

/* ---------- masthead ---------- */
.tb-head{background:var(--paper);border-bottom:1px solid var(--rule)}
.tb-head__in{display:flex;align-items:center;gap:20px;justify-content:space-between;padding-top:14px;padding-bottom:10px}
.tb-logo{display:grid;grid-template-columns:auto 1fr;column-gap:11px;align-items:center;text-decoration:none;color:var(--ink)}
.tb-logo__mark{grid-row:1/3;width:40px;height:40px}
.tb-logo__mark .r{fill:none;stroke:var(--ink);stroke-width:3}
.tb-logo__mark .seg{fill:var(--red)}
.tb-logo__mark .c{fill:var(--ink)}
.tb-logo__w{font:650 1.7rem/1 var(--serif);letter-spacing:-.02em;font-variation-settings:"opsz" 144}
.tb-logo__tag{font-size:.82rem;color:var(--muted);line-height:1.2;margin-top:3px}
.tb-search{display:flex;align-items:center;background:var(--card);border:1px solid var(--rule-2);border-radius:999px;padding:3px 4px 3px 14px;min-width:0;flex:0 1 330px}
.tb-search input{border:0;background:transparent;font:inherit;font-size:.95rem;color:var(--ink);min-width:0;flex:1;padding:8px 0;outline:none}
.tb-search button{border:0;background:var(--ink);color:var(--paper);width:38px;height:38px;border-radius:50%;display:grid;place-items:center;cursor:pointer}
.tb-search:focus-within{border-color:var(--acc);box-shadow:0 0 0 3px var(--acc-soft)}
.tb-nav{border-top:1px solid var(--rule)}
.tb-nav__list{list-style:none;margin:0;padding:0;display:flex;gap:2px;justify-content:space-between}
.tb-nav__list a{display:flex;align-items:center;gap:.45em;padding:11px 10px;text-decoration:none;font-weight:600;font-size:.96rem;color:var(--ink-2);white-space:nowrap;border-bottom:3px solid transparent}
.tb-nav__list a:hover{color:var(--ink);border-bottom-color:var(--rule-2)}
.tb-nav__list a[aria-current]{color:var(--ink);border-bottom-color:var(--acc)}
.tb-nav__list .tb-ico{color:var(--acc-ink)}
@media (max-width:860px){
  .tb-head__in{flex-wrap:wrap;gap:10px;padding-top:12px}
  .tb-logo__tag{display:none}.tb-logo__w{font-size:1.5rem}.tb-logo__mark{width:34px;height:34px}
  .tb-search{flex:1 1 100%;order:3}
  .tb-nav__list{display:grid;grid-template-columns:repeat(4,1fr);gap:0;padding:4px 0}
  .tb-nav__list a{flex-direction:column;gap:3px;padding:8px 2px;font-size:.76rem;border-bottom:0;text-align:center;white-space:normal;line-height:1.15;min-height:56px;justify-content:center}
  .tb-nav__list a[aria-current]{background:var(--acc-soft);border-radius:var(--r)}
  .tb-nav__list .tb-ico{width:22px;height:22px}
}

/* ---------- homepage: today leaf ---------- */
.tb-today{padding:clamp(18px,4vw,40px) 0 clamp(24px,4vw,40px);background:linear-gradient(180deg,var(--acc-soft),var(--paper) 85%)}
.tb-today__grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(20px,4vw,52px);align-items:start}
.tb-leaf{position:relative;background:var(--card);border:1px solid var(--rule);border-radius:2px 2px var(--r) var(--r);padding:26px clamp(18px,3vw,30px) 18px;
  box-shadow:3px 3px 0 -1px var(--card),3px 3px 0 0 var(--rule),6px 6px 0 -1px var(--card),6px 6px 0 0 var(--rule),var(--sh)}
.tb-leaf::before{content:"";position:absolute;left:-1px;right:-1px;top:-1px;height:9px;background:var(--ink);border-radius:2px 2px 0 0}
.tb-leaf::after{content:"";position:absolute;left:12px;right:12px;top:15px;border-top:2px dashed var(--rule-2)}
.tb-leaf__h{margin:12px 0 4px;display:grid;gap:2px}
.tb-leaf__wd{font:700 .95rem/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--ink-2)}
.tb-leaf__row{display:flex;align-items:center;gap:18px}
.tb-leaf__d{font:600 clamp(6rem,15vw,8.6rem)/.86 var(--serif);font-variation-settings:"opsz" 36;font-variant-numeric:lining-nums;letter-spacing:-.04em}
.tb-leaf__side{display:grid;gap:8px}
.tb-leaf__m{font:500 clamp(1.25rem,1rem + 1vw,1.6rem)/1.1 var(--serif)}
.tb-leaf__wk{display:inline-flex;align-items:baseline;gap:.3em;text-decoration:none;font:600 1.05rem var(--sans);color:var(--ink-2);border:1.5px solid var(--ink);border-radius:999px;padding:3px 12px;width:max-content}
.tb-leaf__wk b{font:650 1.55rem/1 var(--serif)}
.tb-leaf.is-red .tb-leaf__d,.tb-leaf.is-red .tb-leaf__wd{color:var(--red)}
.tb-leaf__ev{font-weight:650;margin:.5rem 0 .2rem}
.tb-leaf__ev a{color:var(--acc-ink)}
.tb-leaf__facts{display:grid;grid-template-columns:repeat(2,1fr);margin:14px 0 12px;border-top:1px solid var(--rule)}
.tb-leaf__facts>div{padding:9px 0 8px;border-bottom:1px solid var(--rule)}
.tb-leaf__facts>div:not(.is-wide):nth-of-type(odd){padding-right:10px}
.tb-leaf__facts>.is-wide{grid-column:1/-1;display:flex;gap:12px;align-items:baseline;justify-content:space-between}
.tb-leaf__facts dt{font-size:.78rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-weight:600}
.tb-leaf__facts dd{margin:1px 0 0;font-weight:650;line-height:1.3}
.tb-leaf__facts .is-wide dd{text-align:right}
.tb-leaf__facts dd a{text-decoration:none}
.tb-leaf__facts dd a:hover{text-decoration:underline}
.tb-leaf__facts small{display:block;font-weight:400;color:var(--muted);font-size:.84rem}
.tb-leaf__bar{height:5px;border-radius:3px;background:var(--paper-2);overflow:hidden}
.tb-leaf__bar span{display:block;height:100%;background:var(--acc)}
@media (max-width:900px){.tb-today__grid{grid-template-columns:1fr}}
@media (max-width:520px){.tb-leaf__d{font-size:5.4rem}.tb-leaf__row{gap:14px}.tb-leaf{padding-top:22px}}

/* ---------- event lists (lined, almanac style) ---------- */
.tb-events{list-style:none;margin:0;padding:0}
.tb-events li{display:grid;grid-template-columns:4.6em minmax(0,1fr) auto;gap:10px;align-items:baseline;padding:8px 0;border-bottom:1px dotted var(--rule-2);font-variant-numeric:tabular-nums}
.tb-events time{display:flex;gap:6px;align-items:baseline;color:var(--muted);font-size:.84rem;white-space:nowrap}
.tb-events time b{font:600 1.2rem/1 var(--serif);color:var(--ink);min-width:1.4em;text-align:right;font-variant-numeric:tabular-nums lining-nums}
.tb-events li.t-helgdag time b{color:var(--red)}
.tb-events__name{font-weight:600;line-height:1.3;display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 8px}
.tb-events__name a{text-decoration:none}
.tb-events__name a:hover{text-decoration:underline}
.tb-events__name small{font-weight:400;color:var(--muted);font-size:.86rem}
.tb-events__b{display:flex;gap:4px}
.tb-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--muted);flex:none;align-self:center;margin-right:2px}
.t-helgdag .tb-dot,.tb-dot.t-helgdag{background:var(--red)}
.t-afton .tb-dot,.tb-dot.t-afton{background:var(--eve)}
.t-flaggdag .tb-dot,.tb-dot.t-flaggdag{background:var(--flag)}
.t-temadag .tb-dot,.tb-dot.t-temadag{background:var(--tema)}
.t-tradition .tb-dot,.t-kyrklig .tb-dot,.tb-dot.t-tradition{background:var(--trad)}
.t-astro .tb-dot,.t-tid .tb-dot,.tb-dot.t-astro{background:var(--astro);border-radius:2px}
.tb-badge-s{display:inline-flex;align-items:center;gap:4px;font:700 .68rem/1 var(--sans);letter-spacing:.05em;text-transform:uppercase;padding:4px 7px;border-radius:3px;white-space:nowrap}
.tb-badge-s.is-red{background:var(--red);color:#fff}
.tb-badge-s.is-flag{background:var(--flag-soft);color:var(--flag)}
.tb-badge-s svg{width:11px;height:11px;fill:none;stroke:currentColor;stroke-width:2.2}
.tb-evlegend{display:flex;flex-wrap:wrap;gap:4px 14px;font-size:.8rem;color:var(--muted);margin:10px 0 0}
.tb-evlegend span{display:inline-flex;align-items:center;gap:5px}
.tb-events--next li{padding:9px 0}
@media (max-width:520px){.tb-events li{grid-template-columns:4.2em minmax(0,1fr)}.tb-events__b{grid-column:2}}

/* month now */
.tb-month-now{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,370px);gap:clamp(20px,4vw,56px);align-items:start;margin-top:clamp(28px,5vw,52px);margin-bottom:clamp(28px,5vw,52px)}
.tb-month-now .tb-events{columns:2 300px;column-gap:28px}
.tb-month-now .tb-events li{break-inside:avoid}
@media (max-width:860px){.tb-month-now{grid-template-columns:1fr}}

/* month grid */
.tb-month{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums lining-nums;background:var(--card);border:1px solid var(--rule);border-radius:var(--r)}
.tb-month th,.tb-month td{text-align:center;padding:7px 2px;font-size:.95rem}
.tb-month thead th{font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-weight:700;border-bottom:1px solid var(--rule)}
.tb-month .wk{color:var(--muted);font-size:.72rem;font-weight:600;background:var(--paper-2);width:2.3em}
.tb-month td.red{color:var(--red);font-weight:700}
.tb-month td.eve{background:var(--eve-soft)}
.tb-month td.today{outline:2px solid var(--ink);outline-offset:-3px;border-radius:4px;font-weight:800}
.tb-month td{position:relative}
.tb-month td i{position:absolute;left:50%;bottom:2px;width:4px;height:4px;border-radius:50%;background:var(--acc);transform:translateX(-50%)}
.tb-year{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:18px;margin:1.2rem 0}
.tb-year__m h3{font-size:1.1rem;margin:0 0 .4rem}
.tb-legend{font-size:.85rem;color:var(--muted);display:flex;flex-wrap:wrap;gap:6px 14px;align-items:center}
.tb-legend .sw{display:inline-block;width:14px;height:14px;border-radius:3px;vertical-align:-2px;margin-right:4px}
.tb-legend .sw.red{background:var(--red)}.tb-legend .sw.eve{background:var(--eve-soft);border:1px solid var(--eve)}.tb-legend .sw.today{border:2px solid var(--ink)}
.tb-monthnav{display:flex;justify-content:space-between;gap:12px;margin:1em 0;font-weight:650}
.tb-monthnav a{color:var(--acc-ink)}

/* bands */
.tb-band{background:var(--paper-2);border-block:1px solid var(--rule);padding:clamp(28px,5vw,52px) 0;margin:clamp(28px,5vw,52px) 0}
.tb-lightsec{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(20px,4vw,48px);align-items:center}
.tb-lightsec__big{font:500 clamp(1.25rem,1rem + .9vw,1.6rem)/1.3 var(--serif);margin:0 0 .6rem}
@media (max-width:860px){.tb-lightsec{grid-template-columns:1fr}}
.tb-daylight{width:100%;display:block}
.tb-daylight .a{fill:var(--acc-soft)}
.tb-daylight .l{fill:none;stroke:var(--acc);stroke-width:2.2}
.tb-daylight .g{stroke:var(--rule-2);stroke-dasharray:2 4}
.tb-daylight .t,.tb-daylight .m{font:600 11px var(--sans);fill:var(--muted)}
.tb-daylight line.now{stroke:var(--ink);stroke-width:1.5;stroke-dasharray:3 3}
.tb-daylight circle.now{fill:var(--ink);stroke:var(--paper);stroke-width:2}
.tb-dlwrap{margin:1.2em 0}
.tb-dlwrap figcaption{font-weight:600;margin-top:4px}

/* wheel */
.tb-wheelsec{display:grid;grid-template-columns:minmax(0,400px) minmax(0,1fr);gap:clamp(20px,5vw,64px);align-items:center;margin-top:clamp(28px,5vw,52px);margin-bottom:clamp(28px,5vw,52px)}
@media (max-width:860px){.tb-wheelsec{grid-template-columns:1fr}.tb-wheelsec__fig{display:none}}
.tb-wheel{display:block;width:100%;height:auto}
.tb-wheel__m path{stroke:var(--paper);stroke-width:2;transition:filter .15s}
.tb-wheel__m.s-vinter path{fill:#d4e0ec}.tb-wheel__m.s-var path{fill:#d9e6cb}.tb-wheel__m.s-sommar path{fill:#cfe5e0}.tb-wheel__m.s-host path{fill:#efdfc0}
.tb-wheel__m.is-cur path{fill:var(--ink)}
.tb-wheel__m.is-cur text{fill:var(--paper)}
.tb-wheel__m:hover path,.tb-wheel__m:focus path{filter:brightness(.9)}
.tb-wheel__m text{font:700 11px var(--sans);letter-spacing:.08em;fill:#3a342b;text-anchor:middle;pointer-events:none}
.tb-wheel__dl line{stroke:var(--acc);stroke-width:2;opacity:.55}
.tb-wheel__red{stroke:var(--red);stroke-width:2.6;stroke-linecap:round}
.tb-wheel__now{stroke:var(--ink);stroke-width:1.6;stroke-dasharray:3 3}
.tb-wheel__dot{fill:var(--ink)}
.tb-wheel__y{font:600 24px var(--serif);fill:var(--ink)}
.tb-wheel__s{font:600 10px var(--sans);fill:var(--muted);letter-spacing:.1em;text-transform:uppercase}
.tb-wheel__legend{display:flex;justify-content:center;gap:16px;font-size:.82rem;color:var(--muted);margin:6px 0 0}
.tb-wheel__legend i{display:inline-block;width:12px;height:3px;background:var(--red);vertical-align:3px;margin-right:4px}
.tb-wheel__legend i.n{background:none;border-top:2px dashed var(--ink);height:0}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .tb-wheel__m.s-vinter path{fill:#253545}:root:not([data-theme="light"]) .tb-wheel__m.s-var path{fill:#28361f}:root:not([data-theme="light"]) .tb-wheel__m.s-sommar path{fill:#1d3732}:root:not([data-theme="light"]) .tb-wheel__m.s-host path{fill:#3d3018}:root:not([data-theme="light"]) .tb-wheel__m text{fill:#efe6d6}}
.tb-monthlist{list-style:none;margin:1rem 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));border-top:1px solid var(--rule)}
.tb-monthlist a{display:flex;justify-content:space-between;align-items:baseline;gap:8px;padding:10px 4px;border-bottom:1px solid var(--rule);text-decoration:none;font-weight:600}
.tb-monthlist a small{font-weight:500;color:var(--red);font-size:.8rem}
.tb-monthlist a.is-cur span{border-bottom:2px solid var(--acc)}
.tb-monthlist a:hover{background:var(--paper-2)}

/* directory */
.tb-dir{margin:clamp(28px,5vw,52px) auto}
.tb-dir__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:8px 32px}
.tb-dir h3{font-size:1.15rem;margin:0;padding:10px 0 8px;border-bottom:2px solid var(--ink)}
.tb-dir h3 a{text-decoration:none;display:flex;gap:8px;align-items:center}
.tb-dir h3 .tb-ico{color:var(--acc-ink)}
.tb-dir ul{list-style:none;margin:0 0 18px;padding:0}
.tb-dir li a{display:block;padding:7px 0;border-bottom:1px dotted var(--rule-2);text-decoration:none;font-size:.97rem}
.tb-dir li a:hover{color:var(--acc-ink)}

/* cards */
.tb-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;align-items:start}
.tb-cards--compact{grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}
.tb-card{background:var(--card);border:1px solid var(--rule);border-radius:var(--r);overflow:hidden;position:relative;transition:border-color .15s,box-shadow .15s}
.tb-card:hover{border-color:var(--rule-2);box-shadow:var(--sh)}
.tb-card__img{display:block;width:100%;aspect-ratio:2/1;object-fit:cover;background:var(--paper-2)}
.tb-card__row{display:grid;grid-template-columns:auto 1fr;gap:14px;padding:14px 16px 16px}
.tb-card__t{font-size:1.1rem;line-height:1.25;margin:0}
.tb-card__t a{text-decoration:none}
.tb-card__t a::after{content:"";position:absolute;inset:0}
.tb-card__d{margin:.35rem 0 0;color:var(--ink-2);font-size:.93rem;line-height:1.45}
.tb-kicker{display:inline-flex;gap:.35em;align-items:center;font:700 .7rem/1 var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--acc-ink);text-decoration:none;margin-bottom:.4rem}
.tb-badge{display:grid;justify-items:center;align-content:center;width:50px;height:54px;border-radius:3px;background:var(--paper-2);border:1px solid var(--rule);border-top:5px solid var(--ink);line-height:1}
.tb-badge b{font:600 1.4rem/1 var(--serif);font-variant-numeric:lining-nums}
.tb-badge span{font-size:.64rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-top:3px}
.tb-badge.is-red{border-top-color:var(--red)}.tb-badge.is-red b{color:var(--red)}
.tb-badge.is-icon{color:var(--acc-ink)}.tb-badge.is-icon .tb-ico{width:24px;height:24px}
.tb-feat{margin:clamp(28px,5vw,52px) auto}
.tb-byline-band{display:grid;grid-template-columns:auto 1fr;gap:24px;align-items:center;margin:clamp(28px,5vw,52px) auto;border-top:1px solid var(--rule);padding-top:28px}
.tb-byline-band img{border-radius:50%;width:120px;height:120px;object-fit:cover;border:4px solid var(--card);box-shadow:var(--sh)}
.tb-byline-band p{max-width:68ch;color:var(--ink-2)}
@media (max-width:560px){.tb-byline-band{grid-template-columns:1fr}.tb-byline-band img{width:96px;height:96px}}

/* ---------- article ---------- */
.tb-crumbs ol{list-style:none;margin:0 0 12px;padding:0;display:flex;flex-wrap:wrap;gap:4px 0;font-size:.88rem;color:var(--muted)}
.tb-crumbs li+li::before{content:"›";margin:0 .5em;color:var(--rule-2)}
.tb-crumbs a{text-decoration:none}
.tb-agrid{display:grid;grid-template-columns:minmax(0,var(--measure));justify-content:center;gap:0 44px;padding-top:clamp(18px,3vw,36px)}
.tb-agrid.has-toc{grid-template-columns:200px minmax(0,var(--measure)) 200px}
.tb-agrid.has-toc .tb-ahead,.tb-agrid.has-toc .tb-prose{grid-column:2}
.tb-agrid.has-toc .tb-aside{grid-column:1;grid-row:2}
@media (max-width:1180px){.tb-agrid.has-toc{grid-template-columns:200px minmax(0,var(--measure))}}
@media (max-width:900px){.tb-agrid.has-toc{grid-template-columns:minmax(0,1fr)}.tb-agrid.has-toc .tb-ahead,.tb-agrid.has-toc .tb-prose,.tb-agrid.has-toc .tb-aside{grid-column:1;grid-row:auto}}
.tb-article__t{font-size:clamp(2rem,1.35rem + 2.8vw,3rem);font-variation-settings:"opsz" 144;margin-bottom:.3em}
.tb-article__dek{font-size:clamp(1.1rem,1rem + .4vw,1.3rem);color:var(--ink-2);margin:0 0 .9rem;line-height:1.5}
.tb-meta{display:flex;flex-wrap:wrap;gap:4px 16px;align-items:center;color:var(--muted);font-size:.9rem;margin:0 0 1.3rem}
.tb-meta__by{display:inline-flex;gap:8px;align-items:center;font-weight:650;color:var(--ink);text-decoration:none}
.tb-meta__by img{width:36px;height:36px;border-radius:50%;object-fit:cover}
.tb-meta__auto::before{content:"↻ ";color:var(--acc)}
.tb-answer{background:var(--card);border:1px solid var(--rule);border-top:4px solid var(--acc);border-radius:var(--r);padding:16px 20px 14px;margin:0 0 1.6rem;box-shadow:var(--sh)}
.tb-answer__date{margin:0 0 .6rem;display:grid;gap:2px}
.tb-answer__lab{font:700 .74rem/1.2 var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.tb-answer__date b{font:600 clamp(1.5rem,1.2rem + 1.2vw,2rem)/1.15 var(--serif);font-variant-numeric:lining-nums}
.tb-answer__date.is-red b{color:var(--red)}
.tb-answer__sub{font-size:.92rem;color:var(--ink-2)}
.tb-answer__txt p{margin:0 0 .4rem;line-height:1.5}
.tb-answer__txt p:last-child{margin-bottom:0}
.tb-answer__date+.tb-answer__txt{border-top:1px dotted var(--rule-2);padding-top:.6rem}
.tb-aside{position:relative}
.tb-toc-wrap{position:sticky;top:18px;font-size:.92rem}
.tb-toc-wrap summary{font:700 .74rem/1 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);cursor:pointer;padding:6px 0;list-style:none}
.tb-toc-wrap summary::-webkit-details-marker{display:none}
.tb-toc__h{display:none}
.tb-toc ol{list-style:none;margin:6px 0 0;padding:0;border-left:2px solid var(--rule)}
.tb-toc a{display:block;padding:5px 0 5px 12px;margin-left:-2px;border-left:2px solid transparent;text-decoration:none;color:var(--ink-2);line-height:1.3}
.tb-toc a:hover,.tb-toc a.is-on{color:var(--ink);border-left-color:var(--acc)}
@media (max-width:900px){.tb-toc-wrap{position:static;background:var(--card);border:1px solid var(--rule);border-radius:var(--r);padding:4px 14px;margin:0 0 1.2rem}.tb-toc-wrap summary{padding:10px 0;font-size:.8rem}.tb-toc-wrap summary::after{content:" ▾"}}
.tb-prose{min-width:0}
.tb-prose>*{margin-top:0;margin-bottom:1em}
.tb-prose h2{font-size:clamp(1.5rem,1.25rem + 1vw,1.9rem);margin-top:1.8em;scroll-margin-top:16px}
.tb-prose h3{font-size:1.25rem;margin-top:1.4em}
.tb-prose a{color:var(--ink);text-decoration-color:var(--acc);text-decoration-thickness:.1em}
.tb-prose a:hover{color:var(--acc-ink)}
.tb-prose ul,.tb-prose ol{padding-left:1.2em}
.tb-prose li{margin:.3em 0}
.tb-prose li::marker{color:var(--acc)}
.tb-prose .tb-events li::marker{content:none}
.tb-prose blockquote{margin:1.4em 0;padding:.2em 0 .2em 1.1em;border-left:3px solid var(--acc);font-family:var(--serif);font-size:1.15rem;color:var(--ink-2)}
.tb-prose strong{font-weight:700}
.tb-article__fig{margin:0 0 1.4em}
.tb-article__fig img{width:100%;border-radius:var(--r);aspect-ratio:2/1;object-fit:cover;display:block}
.tb-table{overflow-x:auto;margin:1.2em 0 1.5em;border:1px solid var(--rule);border-radius:var(--r);background:var(--card);-webkit-overflow-scrolling:touch;position:relative}
.tb-table table{width:100%;border-collapse:collapse;font-size:.95rem;font-variant-numeric:tabular-nums lining-nums}
.tb-table caption{caption-side:top;text-align:left;font:700 .74rem/1.3 var(--sans);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);padding:12px 14px 6px}
.tb-table th,.tb-table td{padding:9px 14px;text-align:left;border-bottom:1px solid var(--rule);vertical-align:top}
.tb-table thead th{font-size:.76rem;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);background:var(--paper-2);white-space:nowrap}
.tb-table tbody th{font-weight:650}
.tb-table tr:last-child>*{border-bottom:0}
.tb-table tr.is-next>*{background:var(--acc-soft)}
.tb-table tr.is-next th::after{content:"nästa";margin-left:8px;font:700 .62rem var(--sans);text-transform:uppercase;letter-spacing:.08em;background:var(--ink);color:var(--paper);padding:2px 6px;border-radius:3px;vertical-align:2px}
.tb-table tr.is-today>*{background:var(--eve-soft)}
.tb-table tr.is-red th,.tb-table tr.is-red th a{color:var(--red)}
.tb-table tr.is-mine>*{background:var(--acc-soft)!important;font-weight:650}
.tb-table a{color:inherit}
@media (max-width:640px){
  .tb-table table{font-size:.9rem}
  .tb-table th,.tb-table td{padding:8px 10px}
  .tb-table tbody th,.tb-table thead th:first-child{position:sticky;left:0;z-index:1;background:var(--card);box-shadow:6px 0 8px -8px rgba(0,0,0,.35)}
  .tb-table thead th:first-child{background:var(--paper-2)}
  .tb-table tr.is-next th{background:var(--acc-soft)}
}
.tb-muted{color:var(--muted)}
.tb-note,.tb-tip{background:var(--acc-soft);border-radius:var(--r);padding:14px 18px;border:0;border-left:3px solid var(--acc);margin:1.4em 0}
.tb-note p:last-child,.tb-tip p:last-child{margin-bottom:0}
.tb-note>strong:first-child,.tb-tip>strong:first-child{display:block;font:700 .74rem/1.2 var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--acc-ink);margin-bottom:.35em}
.tb-faq{margin-top:2.2em}
.tb-faq details{border-top:1px solid var(--rule)}
.tb-faq details:last-of-type{border-bottom:1px solid var(--rule)}
.tb-faq summary{cursor:pointer;font-weight:650;padding:14px 0 14px 34px;position:relative;list-style:none;line-height:1.4}
.tb-faq summary::-webkit-details-marker{display:none}
.tb-faq summary::before{content:"+";position:absolute;left:0;top:11px;width:24px;height:24px;border:1.5px solid var(--ink);border-radius:50%;display:grid;place-items:center;font:500 1.05rem/1 var(--sans)}
.tb-faq details[open] summary::before{content:"–"}
.tb-faq summary:hover{color:var(--acc-ink)}
.tb-faq details>*:not(summary){margin:0 0 16px 34px}
.tb-sources{margin-top:2.2em;font-size:.9rem;color:var(--ink-2);border-top:2px solid var(--ink);padding-top:12px}
.tb-sources h2{font:700 .78rem/1.2 var(--sans)!important;letter-spacing:.12em;text-transform:uppercase;margin:0 0 .6em!important;color:var(--ink)}
.tb-sources ul{padding-left:1.1em}
.tb-aroundsec{margin-top:2.4em}
.tb-legacy-note{display:flex;gap:10px;align-items:flex-start;font-size:.92rem;color:var(--muted);background:var(--paper-2);border-radius:var(--r);padding:10px 14px}
.tb-authorbox{display:grid;grid-template-columns:auto 1fr;gap:16px;align-items:start;border-top:2px solid var(--ink);padding:18px 0 0;margin-top:2.6em}
.tb-authorbox img{width:72px;height:72px;border-radius:50%;object-fit:cover}
.tb-authorbox p{margin:0 0 .3em;font-size:.94rem;color:var(--ink-2)}
.tb-authorbox__n{font:600 1.15rem var(--serif)!important;color:var(--ink)!important}
.tb-authorbox__n a{text-decoration:none}
.tb-related{margin-bottom:0}
.tb-rulerwrap{margin:0 0 1.6em;background:var(--card);border:1px solid var(--rule);border-radius:var(--r);padding:12px 14px 6px}
.tb-rulerwrap figcaption{font-size:.92rem;color:var(--ink-2);margin-bottom:4px}
.tb-ruler{width:100%;display:block}
.tb-ruler .g{stroke:var(--rule);stroke-width:1}
.tb-ruler .t{font:600 11px var(--sans);fill:var(--muted);text-anchor:middle}
.tb-ruler .y{font:600 10px var(--sans);fill:var(--muted)}
.tb-ruler circle.p{fill:var(--rule-2)}
.tb-ruler circle.f{fill:var(--acc)}
.tb-ruler circle.n{fill:var(--ink);stroke:var(--acc);stroke-width:3}
.tb-ics{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center;margin:1.2em 0}
.tb-ics small{flex-basis:100%;color:var(--muted);font-size:.85rem}

/* tools */
.tb-tool{background:var(--card);border:1px solid var(--rule);border-radius:var(--r);padding:18px 20px;margin:1.2em 0 1.6em;box-shadow:var(--sh)}
.tb-big{text-align:center;padding:24px 20px}
.tb-big__label{font:700 .76rem/1 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin:0 0 .4rem}
.tb-big__num{font:600 clamp(2.2rem,1.6rem + 3vw,3.6rem)/1.05 var(--serif);margin:0 0 .3rem;letter-spacing:-.02em;font-variant-numeric:lining-nums}
.tb-big__num b{color:var(--acc-ink);font-weight:650}
.tb-big__sub{color:var(--ink-2);margin:0}
.tb-tool__row{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:center;margin-top:1rem;padding-top:1rem;border-top:1px dotted var(--rule-2)}
.tb-tool label{font-weight:600;font-size:.95rem}
.tb-tool input[type=date],.tb-tool input[type=search],.tb-lovtool input{font:inherit;padding:9px 12px;border:1px solid var(--rule-2);border-radius:var(--r);background:var(--paper);color:var(--ink);min-height:44px}
.tb-tool output{display:block;font-weight:650;min-height:1.4em}
.tb-tool__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;align-items:end}
.tb-tool__grid label{display:grid;gap:4px}
.tb-check{display:flex!important;align-items:center;gap:8px}
.tb-tool__out{font-size:1.12rem;margin-top:12px}
.tb-namnsok .tb-tool__row{justify-content:flex-start;border:0;padding:0;margin-top:6px}
.tb-namnsok input{width:100%;max-width:340px}
.tb-moon{display:flex;gap:22px;align-items:center;text-align:left}
.tb-moon__svg{flex:none}.tb-moon__svg .dark{fill:#2a2620}.tb-moon__svg .lit{fill:#f4ead1}
.tb-lovtool{display:flex;flex-wrap:wrap;gap:10px 16px;align-items:end;margin:1em 0 .4em}
.tb-lovtool label{display:grid;gap:4px;font-weight:650;font-size:.92rem}
.tb-lovtool__weeks{display:flex;flex-wrap:wrap;gap:6px}
.tb-lovtool__weeks button{font:600 .9rem var(--sans);border:1px solid var(--rule-2);background:var(--card);color:var(--ink);border-radius:999px;padding:8px 14px;cursor:pointer;min-height:40px}
.tb-lovtool__weeks button[aria-pressed="true"]{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.tb-lovtool__mine{flex-basis:100%;margin:0;font-weight:650;background:var(--acc-soft);padding:10px 14px;border-radius:var(--r)}
.tb-hub-tool{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px;margin-top:20px}
.tb-hub-tool .tb-tool{margin:0}
.tb-hub-sun{display:flex;gap:8px;align-items:center;color:var(--ink-2)}
.tb-namn-today{background:var(--ink);color:var(--paper);border-radius:var(--r);padding:22px;text-align:center}
.tb-namn-today .tb-big__label,.tb-namn-today .tb-big__sub{color:rgba(255,255,255,.78)}
.tb-empty{color:var(--muted)}
.tb-monthpage__grid{display:grid;grid-template-columns:minmax(0,360px) minmax(0,1fr);gap:24px;align-items:start;margin:1em 0 1.5em}
@media (max-width:700px){.tb-monthpage__grid{grid-template-columns:1fr}}
.tb-monthfacts{margin:0;display:grid;grid-template-columns:1fr 1fr;gap:10px}
.tb-monthfacts>div{background:var(--card);border:1px solid var(--rule);border-radius:var(--r);padding:10px 12px}
.tb-monthfacts dt{font-size:.74rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.tb-monthfacts dd{margin:2px 0 0;font-weight:650}
.tb-hit{display:inline-block;margin:2px 0}

/* hub head */
.tb-hubhead{background:linear-gradient(180deg,var(--acc-soft),var(--paper));border-bottom:1px solid var(--rule);padding:clamp(18px,4vw,36px) 0 clamp(20px,3vw,32px)}
.tb-hubhead__in{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,420px);gap:32px;align-items:center}
@media (max-width:860px){.tb-hubhead__in{grid-template-columns:1fr}.tb-hubhead__fig{order:-1;max-height:220px;overflow:hidden;border-radius:var(--r)}}
.tb-hubhead__t{font-size:clamp(2.2rem,1.4rem + 3.4vw,3.5rem);font-variation-settings:"opsz" 144}
.tb-hubhead__intro{font-size:1.1rem;color:var(--ink-2);max-width:62ch}
.tb-hubhead__fig{margin:0}
.tb-hubhead__fig img{border-radius:var(--r);width:100%;aspect-ratio:4/3;object-fit:cover;display:block}
.tb-hub-next{margin-top:22px}
.tb-hub-next .tb-events{columns:2 320px;column-gap:28px}
.tb-hub-next .tb-events li{break-inside:avoid}
.tb-hubbody{margin:clamp(24px,4vw,44px) auto}
.tb-group{margin-bottom:clamp(24px,4vw,40px)}
.tb-hublong{margin:2.5rem auto 0;max-width:var(--measure)}
.tb-author{display:grid;grid-template-columns:auto 1fr;gap:32px;align-items:start}
.tb-author__img{width:200px;height:200px;border-radius:50%;object-fit:cover;border:6px solid var(--card);box-shadow:var(--sh)}
.tb-author__links{display:flex;flex-wrap:wrap;gap:10px 22px;font-weight:600}
.tb-author__links a{display:inline-flex;gap:6px;align-items:center;color:var(--acc-ink)}
@media (max-width:700px){.tb-author{grid-template-columns:1fr}.tb-author__img{width:140px;height:140px}}
.tb-404{display:grid;grid-template-columns:auto 1fr;gap:36px;align-items:center;padding:48px var(--gut)}
.tb-404__leaf span{display:grid;place-items:center;width:150px;height:170px;border-radius:2px 2px var(--r) var(--r);background:var(--card);border:1px solid var(--rule);border-top:10px solid var(--ink);font:600 3.4rem var(--serif);color:var(--red);box-shadow:var(--sh)}
@media (max-width:600px){.tb-404{grid-template-columns:1fr}}
.tb-search--big{max-width:460px;margin:1rem 0}
.tb-months{list-style:none;padding:0;margin:1rem 0;display:flex;flex-wrap:wrap;gap:6px}
.tb-months a{display:block;padding:8px 14px;border:1px solid var(--rule-2);border-radius:999px;text-decoration:none;font-weight:600;font-size:.92rem;background:var(--card)}
.nav-links{display:flex;gap:8px;margin-top:24px}.nav-links .page-numbers{padding:8px 12px;border:1px solid var(--rule);border-radius:var(--r);text-decoration:none}

/* ---------- footer ---------- */
.tb-foot{background:#1e1b16;color:#e9e2d4;margin-top:clamp(40px,6vw,72px);font-size:.95rem}
.tb-foot a{color:#fff;text-decoration-color:rgba(255,255,255,.3)}
.tb-foot__grid{display:grid;grid-template-columns:minmax(0,1.6fr) repeat(3,minmax(0,1fr));gap:32px;padding-top:48px;padding-bottom:32px}
@media (max-width:900px){.tb-foot__grid{grid-template-columns:1fr 1fr}.tb-foot__about{grid-column:1/-1}}
@media (max-width:480px){.tb-foot__grid{grid-template-columns:1fr}}
.tb-foot__logo{font:650 1.6rem/1 var(--serif);color:#fff;margin:0 0 12px}
.tb-foot__about p{max-width:46ch;color:#d8d0c0}
.tb-foot__mail{display:inline-flex;gap:8px;align-items:center;font-weight:600}
.tb-foot h2{font:700 .74rem/1 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:#b3a993;margin:4px 0 12px}
.tb-foot ul{list-style:none;margin:0;padding:0}
.tb-foot li a{display:block;padding:5px 0;text-decoration:none}
.tb-foot li a:hover{text-decoration:underline}
.tb-foot__months ul{display:grid;grid-template-columns:1fr 1fr;column-gap:12px}
.tb-foot__bottom{border-top:1px solid rgba(255,255,255,.12);padding-top:16px;padding-bottom:22px;font-size:.84rem;color:#b3a993}
.tb-foot__bottom p{margin:0}

@media (prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
@media print{.tb-strip,.tb-head,.tb-nav,.tb-foot,.tb-related,.tb-aroundsec,.tb-aside,.tb-authorbox{display:none!important}body{background:#fff;color:#000}.tb-year{grid-template-columns:repeat(3,1fr)}}

/* ---------- round 2 ---------- */
.t-lov .tb-dot,.tb-dot.t-lov{background:var(--acc)}
.tb-events li.is-newmonth time span{font-weight:700;color:var(--ink);text-transform:lowercase}
.tb-events li.is-newmonth{border-top:1px solid var(--rule-2)}
.tb-events li{grid-template-columns:4.6em minmax(0,1fr)}
.tb-events__name .tb-events__b{display:inline-flex;gap:4px}
.tb-events__name small{flex-basis:100%}
.tb-cards{grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}
@media (min-width:1000px){.tb-feat .tb-cards,.tb-related .tb-cards{grid-template-columns:repeat(3,1fr)}}
.tb-hublong{margin:2.5rem 0 0}
.tb-hublong>h2{font-size:clamp(1.5rem,1.15rem + 1.3vw,2.05rem)}
.tb-az{display:flex;flex-wrap:wrap;gap:4px;position:sticky;top:0;background:var(--paper);padding:8px 0;z-index:2;border-bottom:1px solid var(--rule)}
.tb-az a{display:grid;place-items:center;min-width:34px;height:34px;border:1px solid var(--rule-2);border-radius:var(--r);text-decoration:none;font-weight:650;background:var(--card)}
.tb-register{columns:3 200px;column-gap:28px}
.tb-register section{break-inside:avoid-column}
.tb-register h2{font-size:1.4rem!important;margin:1em 0 .3em!important;break-after:avoid}
.tb-register ul{list-style:none;padding:0;margin:0}
.tb-register li{display:flex;justify-content:space-between;gap:8px;padding:3px 0;border-bottom:1px dotted var(--rule);font-size:.95rem}
.tb-register li:target{background:var(--acc-soft)}
.tb-register li a{white-space:nowrap}
@media (max-width:860px){
  .tb-nav__list{display:flex;overflow-x:auto;scrollbar-width:none;padding:0;gap:0;-webkit-mask-image:linear-gradient(to right,#000 85%,transparent);mask-image:linear-gradient(to right,#000 85%,transparent)}
  .tb-nav__list::-webkit-scrollbar{display:none}
  .tb-nav__list a{flex-direction:row;gap:6px;padding:10px 12px;font-size:.9rem;min-height:44px;white-space:nowrap}
  .tb-nav__list .tb-ico{width:18px;height:18px}
  .tb-head__in{flex-wrap:nowrap}
  .tb-search{order:0;flex:0 0 auto;padding:0;border:0;background:transparent}
  .tb-search input{position:absolute;left:var(--gut);right:var(--gut);top:100%;margin-top:4px;display:none;background:var(--card);border:1px solid var(--rule-2);border-radius:999px;padding:10px 14px;z-index:5}
  .tb-search.is-open input{display:block}
  .tb-head{position:relative}
  .tb-leaf__facts>div:nth-of-type(n+5){display:none}
}
.tb-events__name{display:block}
.tb-events__name .tb-dot{vertical-align:1px;margin-right:6px}
.tb-events__name .tb-events__b{margin-left:6px;vertical-align:1px}
.tb-events__name small{display:block}
.tb-monthlist{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));column-gap:20px}
