/* Svenskhet.se Pass 25 — National Public Experience */
:root {
    --experience-ink: #0a2426;
    --experience-ink-rgb: 10, 36, 38;
    --experience-paper: #f5f0e4;
    --experience-cream: #fffaf0;
    --experience-signal: #efb94f;
    --experience-red: #b54632;
    --experience-lake: #77aeb0;
    --experience-mist: #dbe9e5;
    --experience-shadow: 0 38px 110px rgba(5, 24, 26, .18);
    --experience-shadow-soft: 0 18px 60px rgba(5, 24, 26, .11);
    --experience-radius: clamp(22px, 2.4vw, 38px);
    --experience-grid: rgba(16, 43, 45, .075);
    --safe-bottom: env(safe-area-inset-bottom, 0px);
}

html {
    scroll-padding-top: calc(var(--header-height) + 34px);
}

body {
    min-width: 320px;
    overflow-x: clip;
    background:
        radial-gradient(circle at 8% 18%, rgba(109,149,153,.08), transparent 26rem),
        radial-gradient(circle at 92% 72%, rgba(214,179,94,.08), transparent 28rem),
        var(--paper);
}

body::before {
    content: "";
    position: fixed;
    z-index: -2;
    inset: 0;
    pointer-events: none;
    opacity: .3;
    background-image:
        linear-gradient(var(--experience-grid) 1px, transparent 1px),
        linear-gradient(90deg, var(--experience-grid) 1px, transparent 1px);
    background-size: 56px 56px;
    mask-image: linear-gradient(to bottom, transparent, #000 14%, #000 82%, transparent);
}

main {
    position: relative;
    isolation: isolate;
}

main > section,
main > article > section,
main > article > div {
    scroll-margin-top: calc(var(--header-height) + 28px);
}

.experience-ready body {
    --experience-enter-opacity: 0;
}

.experience-ready body.experience-entered {
    --experience-enter-opacity: 1;
}

.site-progress {
    position: fixed;
    z-index: 3000;
    inset: 0 0 auto;
    height: 3px;
    pointer-events: none;
    transform: scaleX(var(--progress, 0));
    transform-origin: left;
    background: linear-gradient(90deg, var(--falu), var(--gold), var(--lake));
    box-shadow: 0 0 18px rgba(214,179,94,.55);
}

/* Header */
.site-header {
    background: rgba(250,248,241,.86);
    transition: min-height .25s ease, box-shadow .25s ease, background .25s ease;
}

.site-header::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: -1px;
    height: 1px;
    background: linear-gradient(90deg, transparent, rgba(166,63,47,.48), rgba(214,179,94,.52), transparent);
    transform: scaleX(.72);
    opacity: .7;
}

.site-header.is-condensed {
    background: rgba(250,248,241,.95);
    box-shadow: 0 12px 38px rgba(7,29,31,.09);
}

.site-header.is-condensed .site-header__inner {
    min-height: 68px;
}

.site-header.is-condensed .brand__mark {
    width: 29px;
}

.site-header__context {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-left: 14px;
    padding-left: 14px;
    border-left: 1px solid var(--line);
    color: rgba(16,43,45,.52);
    font-size: 9px;
    font-weight: 900;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.site-header__context::before {
    content: "";
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--falu);
    box-shadow: 0 0 0 5px rgba(166,63,47,.11);
}

.header-action,
.menu-toggle {
    min-width: 44px;
    min-height: 44px;
    border-radius: 999px;
    transition: background .2s ease, transform .2s ease;
}

@media (hover: hover) {
    .header-action:hover,
    .menu-toggle:hover {
        background: rgba(16,43,45,.07);
        transform: translateY(-1px);
    }
}

.mobile-nav {
    max-height: calc(100dvh - var(--header-height));
    overflow-y: auto;
    color: var(--paper-soft);
    background:
        radial-gradient(circle at 78% 10%, rgba(214,179,94,.19), transparent 24rem),
        linear-gradient(145deg, #071d1f, #15383b 72%, #102b2d);
    box-shadow: 0 36px 90px rgba(5,20,22,.36);
}

.mobile-nav__grid {
    padding-block: 30px max(42px, calc(26px + var(--safe-bottom)));
}

.mobile-nav a {
    min-height: 58px;
    display: grid;
    grid-template-columns: 34px 1fr auto;
    align-items: center;
    border-bottom: 1px solid rgba(255,255,255,.11);
}

.mobile-nav a::after {
    content: "↗";
    color: rgba(255,255,255,.35);
}

/* Native search command palette */
.search-dialog {
    width: 100%;
    max-width: none;
    height: 100%;
    max-height: none;
    margin: 0;
    padding: 0;
    color: var(--paper-soft);
    background: transparent;
    border: 0;
}

.search-dialog::backdrop {
    background: rgba(4,18,20,.82);
    backdrop-filter: blur(15px) saturate(.7);
}

.search-dialog__panel {
    position: relative;
    width: min(980px, calc(100% - 36px));
    margin: clamp(78px, 11vh, 150px) auto 40px;
    padding: clamp(28px, 5vw, 72px);
    overflow: hidden;
    border: 1px solid rgba(255,255,255,.16);
    border-radius: var(--experience-radius);
    background:
        radial-gradient(circle at var(--pointer-x, 82%) var(--pointer-y, 15%), rgba(214,179,94,.2), transparent 26rem),
        linear-gradient(145deg, rgba(9,37,39,.98), rgba(5,22,24,.99));
    box-shadow: 0 70px 180px rgba(0,0,0,.45);
}

.search-dialog__panel::before {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    opacity: .16;
    background-image:
        linear-gradient(rgba(255,255,255,.16) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,.16) 1px, transparent 1px);
    background-size: 46px 46px;
    mask-image: radial-gradient(circle at 72% 20%, #000, transparent 72%);
}

.search-dialog__topline,
.search-dialog__form,
.search-dialog__suggestions {
    position: relative;
    z-index: 1;
}

.search-dialog__topline {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: clamp(40px, 7vw, 84px);
}

.search-dialog__topline .icon-button {
    width: 48px;
    height: 48px;
    display: grid;
    place-items: center;
    color: #fff;
    border: 1px solid rgba(255,255,255,.23);
    border-radius: 50%;
    font-size: 26px;
}

.search-dialog__form label {
    display: block;
    margin-bottom: 14px;
    color: rgba(255,255,255,.58);
    font-size: 10px;
    font-weight: 900;
    letter-spacing: .14em;
    text-transform: uppercase;
}

.search-dialog .search-field {
    display: grid;
    grid-template-columns: 1fr auto;
    border-bottom: 1px solid rgba(255,255,255,.35);
}

.search-dialog .search-field input {
    min-width: 0;
    min-height: 90px;
    padding: 0;
    color: #fff;
    background: transparent;
    border: 0;
    outline: 0;
    font-family: var(--serif);
    font-size: clamp(30px, 5vw, 64px);
}

.search-dialog .search-field input::placeholder {
    color: rgba(255,255,255,.24);
}

.search-dialog .search-field button {
    padding: 0 8px 0 34px;
    color: var(--gold);
    background: transparent;
    border: 0;
    font-size: 16px;
    font-weight: 900;
    cursor: pointer;
}

.search-dialog__suggestions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 28px;
}

.search-dialog__suggestions a {
    padding: 9px 13px;
    color: rgba(255,255,255,.72);
    border: 1px solid rgba(255,255,255,.17);
    border-radius: 999px;
    font-size: 11px;
    font-weight: 800;
}

/* Global experience dock */
.experience-dock {
    position: fixed;
    z-index: 1200;
    right: 18px;
    top: 50%;
    display: grid;
    gap: 5px;
    padding: 8px;
    color: var(--paper-soft);
    border: 1px solid rgba(255,255,255,.15);
    border-radius: 24px;
    background: rgba(7,29,31,.92);
    box-shadow: 0 22px 70px rgba(4,20,22,.28);
    backdrop-filter: blur(18px);
    transform: translateY(-50%);
    transition: opacity .25s ease, transform .25s ease;
}

.experience-dock__status {
    width: 48px;
    height: 48px;
    display: grid;
    place-items: center;
    border-bottom: 1px solid rgba(255,255,255,.12);
}

.experience-dock__status i {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--gold);
    box-shadow: 0 0 0 6px rgba(214,179,94,.12), 0 0 24px rgba(214,179,94,.75);
}

.experience-dock__status span {
    position: absolute;
    right: 62px;
    width: max-content;
    padding: 8px 10px;
    color: var(--paper-soft);
    border-radius: 8px;
    background: var(--ink-deep);
    opacity: 0;
    transform: translateX(8px);
    pointer-events: none;
    font-size: 9px;
    font-weight: 900;
    letter-spacing: .1em;
    text-transform: uppercase;
    transition: .2s;
}

.experience-dock a,
.experience-dock button {
    position: relative;
    width: 48px;
    height: 48px;
    display: grid;
    place-items: center;
    color: inherit;
    background: transparent;
    border: 0;
    border-radius: 16px;
    cursor: pointer;
}

.experience-dock a > span,
.experience-dock button > span {
    font-size: 20px;
}

.experience-dock a > b,
.experience-dock button > b {
    position: absolute;
    right: 62px;
    width: max-content;
    padding: 8px 10px;
    color: var(--paper-soft);
    border-radius: 8px;
    background: var(--ink-deep);
    opacity: 0;
    transform: translateX(8px);
    pointer-events: none;
    font-size: 9px;
    letter-spacing: .08em;
    text-transform: uppercase;
    transition: .2s;
}

.experience-dock a[aria-current],
.experience-dock button.is-confirmed {
    color: var(--ink-deep);
    background: var(--gold);
}

@media (hover: hover) {
    .experience-dock a:hover,
    .experience-dock button:hover {
        color: var(--ink-deep);
        background: var(--paper-soft);
    }
    .experience-dock a:hover > b,
    .experience-dock button:hover > b,
    .experience-dock__status:hover span {
        opacity: 1;
        transform: none;
    }
}

.experience-dock.is-near-footer {
    opacity: .36;
}

/* Universal controls */
.button,
.content-actions > a,
.save-item-form button,
.search-form-actions button,
.explorer-filters button {
    border-radius: 999px;
}

.button {
    position: relative;
    overflow: hidden;
}

.button::before {
    content: "";
    position: absolute;
    inset: 0;
    opacity: 0;
    background: linear-gradient(110deg, transparent 20%, rgba(255,255,255,.25) 48%, transparent 74%);
    transform: translateX(-100%);
    transition: transform .55s ease, opacity .2s ease;
}

@media (hover: hover) {
    .button:hover::before {
        opacity: 1;
        transform: translateX(100%);
    }
}

:where(a, button, input, textarea, select, summary, [tabindex]):focus-visible {
    outline: 3px solid var(--experience-signal);
    outline-offset: 4px;
    box-shadow: 0 0 0 7px rgba(239,185,79,.18);
}

/* Home */
.hero--home {
    min-height: min(940px, calc(100svh - 22px));
    background:
        radial-gradient(circle at var(--pointer-x, 77%) var(--pointer-y, 18%), rgba(214,179,94,.2), transparent 30rem),
        radial-gradient(circle at 15% 72%, rgba(109,149,153,.13), transparent 30rem),
        linear-gradient(145deg, #f7f3e9 0%, #ede6d6 58%, #d8e4df 100%);
}

.hero--home .hero__contours {
    opacity: .72;
    background-size: 66px 66px;
    mask-image: linear-gradient(90deg, rgba(0,0,0,.3), #000 50%, rgba(0,0,0,.2));
}

.hero--home .hero__grid {
    min-height: min(920px, calc(100svh - 30px));
    grid-template-columns: minmax(0, .95fr) minmax(420px, 1.05fr);
    gap: clamp(30px, 5vw, 90px);
}

.hero--home .hero__copy {
    max-width: 760px;
}

.hero--home .hero__copy h1 {
    max-width: 820px;
    margin: 14px 0 25px;
    font-size: clamp(76px, 10.8vw, 170px);
    line-height: .76;
    letter-spacing: -.072em;
}

.hero--home .hero__copy h1 em {
    display: inline-block;
    color: var(--falu);
    text-shadow: 0 18px 50px rgba(166,63,47,.14);
}

.hero__lede {
    max-width: 680px;
    font-size: clamp(21px, 2.2vw, 31px);
    line-height: 1.35;
}

.hero__actions {
    align-items: center;
}

.hero__stats {
    display: grid;
    grid-template-columns: repeat(3, minmax(0,1fr));
    margin-top: clamp(42px, 7vw, 78px);
    border-block: 1px solid var(--line);
}

.hero__stats div {
    min-height: 105px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 18px 22px;
    border-right: 1px solid var(--line);
}

.hero__stats div:last-child {
    border-right: 0;
}

.hero__stats strong {
    font-family: var(--serif);
    font-size: clamp(32px, 3vw, 48px);
    font-weight: 400;
    line-height: 1;
}

.hero__stats span {
    margin-top: 8px;
    color: rgba(16,43,45,.52);
    font-size: 9px;
    font-weight: 900;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.atlas-stage {
    min-height: 720px;
    border-radius: 50% 50% 45% 55% / 45% 53% 47% 55%;
    background:
        radial-gradient(circle at 50% 50%, rgba(255,255,255,.62), rgba(255,255,255,.12) 55%, transparent 72%);
    transform: perspective(1100px) rotateX(calc(var(--tilt-x, 0) * 2.2deg)) rotateY(calc(var(--tilt-y, 0) * 2.2deg));
    transition: transform .18s ease-out;
}

.atlas-stage::before,
.atlas-stage::after {
    border-color: rgba(16,43,45,.16);
    box-shadow: inset 0 0 0 1px rgba(255,255,255,.3);
}

.atlas-stage__gridlines {
    position: absolute;
    inset: 7%;
    border-radius: 50%;
    opacity: .28;
    background-image:
        linear-gradient(rgba(16,43,45,.18) 1px, transparent 1px),
        linear-gradient(90deg, rgba(16,43,45,.18) 1px, transparent 1px);
    background-size: 34px 34px;
    mask-image: radial-gradient(circle, #000, transparent 72%);
}

.atlas-stage__pulse {
    position: absolute;
    left: 50%;
    top: 50%;
    width: 70%;
    aspect-ratio: 1;
    border: 1px solid rgba(166,63,47,.24);
    border-radius: 50%;
    transform: translate(-50%,-50%);
    animation: experience-pulse 4.8s ease-out infinite;
}

.atlas-stage__status {
    position: absolute;
    left: 7%;
    bottom: 10%;
    z-index: 4;
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 11px 14px;
    border: 1px solid rgba(16,43,45,.14);
    border-radius: 999px;
    background: rgba(250,248,241,.76);
    box-shadow: var(--experience-shadow-soft);
    backdrop-filter: blur(12px);
    font-size: 9px;
    font-weight: 900;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.atlas-stage__status i {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #4f8068;
    box-shadow: 0 0 0 5px rgba(79,128,104,.13);
}

.experience-rails {
    display: grid;
    grid-template-columns: repeat(4, minmax(0,1fr));
    margin-top: 26px;
    border: 1px solid var(--line);
    background: rgba(255,255,255,.28);
}

.experience-rails a {
    min-height: 76px;
    display: grid;
    align-content: center;
    gap: 3px;
    padding: 14px 16px;
    border-right: 1px solid var(--line);
}

.experience-rails a:last-child {
    border-right: 0;
}

.experience-rails span {
    color: var(--falu);
    font-size: 9px;
    font-weight: 900;
    letter-spacing: .1em;
}

.experience-rails strong {
    font-family: var(--serif);
    font-size: 19px;
    font-weight: 400;
}

.experience-gateway {
    position: relative;
    z-index: 2;
    padding: clamp(60px, 8vw, 120px) 0;
    color: var(--paper-soft);
    background:
        radial-gradient(circle at 90% 10%, rgba(214,179,94,.16), transparent 28rem),
        linear-gradient(145deg, #061a1c, #102f31 66%, #173f42);
}

.experience-gateway__head {
    display: grid;
    grid-template-columns: 1fr minmax(250px, .55fr);
    gap: 50px;
    align-items: end;
    margin-bottom: 42px;
}

.experience-gateway__head h2 {
    margin: 0;
    font-family: var(--serif);
    font-size: clamp(50px, 7vw, 105px);
    font-weight: 400;
    line-height: .88;
    letter-spacing: -.05em;
}

.experience-gateway__head p:last-child {
    color: rgba(255,255,255,.62);
}

.experience-gateway__grid {
    display: grid;
    grid-template-columns: repeat(3,minmax(0,1fr));
    border-top: 1px solid rgba(255,255,255,.17);
    border-left: 1px solid rgba(255,255,255,.17);
}

.experience-gateway__card {
    position: relative;
    min-height: 360px;
    display: flex;
    flex-direction: column;
    padding: clamp(24px,3vw,42px);
    overflow: hidden;
    border-right: 1px solid rgba(255,255,255,.17);
    border-bottom: 1px solid rgba(255,255,255,.17);
    transition: background .3s ease, transform .3s ease;
}

.experience-gateway__card::before {
    content: "";
    position: absolute;
    inset: 0;
    opacity: .18;
    background:
        radial-gradient(circle at 72% 18%, var(--card-glow, var(--gold)), transparent 22rem),
        linear-gradient(135deg, transparent, rgba(255,255,255,.05));
}

.experience-gateway__card > * {
    position: relative;
    z-index: 1;
}

.experience-gateway__card > span {
    color: var(--gold);
    font-size: 10px;
    font-weight: 900;
    letter-spacing: .12em;
}

.experience-gateway__card h3 {
    margin: auto 0 16px;
    font-family: var(--serif);
    font-size: clamp(40px,4vw,62px);
    font-weight: 400;
    line-height: .9;
}

.experience-gateway__card p {
    max-width: 420px;
    color: rgba(255,255,255,.64);
}

.experience-gateway__card b {
    margin-top: 28px;
    font-size: 12px;
}

.experience-gateway__card--map { --card-glow: #7bb7bc; }
.experience-gateway__card--search { --card-glow: #d6b35e; }
.experience-gateway__card--portal { --card-glow: #b64a37; }

@media (hover: hover) {
    .experience-gateway__card:hover {
        z-index: 2;
        background: rgba(255,255,255,.06);
        transform: translateY(-8px);
    }
}

/* Section rhythm and cards */
.section {
    position: relative;
}

@supports (content-visibility: auto) {
    main > section:not(:first-child),
    main > article > section:not(:first-child) {
        content-visibility: auto;
        contain-intrinsic-size: 900px;
    }
}

.section-heading h2 {
    text-wrap: balance;
}

.portal-card,
.feature-card,
.journey-card,
.latest-card,
.entry-card,
.relation-card,
.entity-nearby__grid > a,
.story-module-card {
    border-radius: 24px;
}

.portal-card,
.entry-card,
.journey-card,
.latest-card,
.relation-card,
.entity-nearby__grid > a {
    overflow: hidden;
}

@media (hover: hover) {
    .portal-card:hover,
    .entry-card:hover,
    .journey-card:hover,
    .latest-card:hover,
    .relation-card:hover,
    .entity-nearby__grid > a:hover {
        box-shadow: var(--experience-shadow-soft);
    }
}

/* Portal */
.portal-hero {
    min-height: min(900px, calc(100svh - 20px));
    background:
        radial-gradient(circle at var(--pointer-x, 78%) var(--pointer-y, 17%), rgba(214,179,94,.18), transparent 30rem),
        linear-gradient(145deg, #071d1f, #14393b 68%, #1f4d4e);
}

.portal-hero__grid {
    min-height: 770px;
}

.portal-hero__copy h1 {
    max-width: 980px;
    font-size: clamp(70px, 9.6vw, 148px);
    line-height: .78;
    letter-spacing: -.065em;
    text-wrap: balance;
}

.portal-hero__object {
    transform: perspective(1000px) rotateX(calc(var(--tilt-x, 0) * 1.7deg)) rotateY(calc(var(--tilt-y, 0) * 1.7deg));
    transition: transform .18s ease-out;
}

.portal-hero__media {
    border-radius: 42% 58% 52% 48% / 48% 43% 57% 52%;
    box-shadow: 0 45px 110px rgba(0,0,0,.34);
}

.portal-hero__media picture,
.portal-hero__picture,
.portal-hero__picture .media-presentation__visual {
    border-radius: inherit;
}

.portal-subnav {
    position: sticky;
    z-index: 30;
    bottom: 14px;
    width: min(1100px, calc(100% - 34px));
    margin: -66px auto 20px;
    padding: 8px;
    border: 1px solid rgba(255,255,255,.16);
    border-radius: 999px;
    background: rgba(6,25,27,.86);
    box-shadow: 0 24px 70px rgba(0,0,0,.26);
    backdrop-filter: blur(16px);
}

.portal-subnav a {
    min-height: 42px;
    display: inline-grid;
    place-items: center;
    padding: 0 16px;
    border-radius: 999px;
}

.portal-subnav a.is-active,
.portal-subnav a[aria-current="location"] {
    color: var(--ink-deep);
    background: var(--gold);
}

.portal-experience-rail {
    position: relative;
    overflow: hidden;
    padding-block: clamp(70px,9vw,130px);
    color: var(--paper-soft);
    background:
        radial-gradient(circle at 12% 20%, rgba(214,179,94,.14), transparent 28rem),
        linear-gradient(145deg, #071d1f, #14383a);
}

.portal-experience-rail::before {
    content: "";
    position: absolute;
    inset: 0;
    opacity: .13;
    background-image:
        linear-gradient(rgba(255,255,255,.15) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,.15) 1px, transparent 1px);
    background-size: 48px 48px;
    pointer-events: none;
}

.portal-experience-rail__inner {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: minmax(260px,.72fr) minmax(0,1.28fr);
    gap: clamp(35px,7vw,100px);
    align-items: end;
}

.portal-experience-rail h2 {
    max-width: 750px;
    margin: 0;
    font-family: var(--serif);
    font-size: clamp(48px,6vw,92px);
    font-weight: 400;
    line-height: .84;
    letter-spacing: -.05em;
}

.portal-experience-rail__links {
    display: grid;
    grid-template-columns: repeat(3,minmax(0,1fr));
    border-top: 1px solid rgba(255,255,255,.18);
    border-left: 1px solid rgba(255,255,255,.18);
}

.portal-experience-rail__links a,
.portal-experience-rail__links button {
    min-height: 220px;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    padding: 26px;
    color: #fff;
    border: 0;
    border-right: 1px solid rgba(255,255,255,.18);
    border-bottom: 1px solid rgba(255,255,255,.18);
    background: rgba(255,255,255,.04);
    cursor: pointer;
    font: inherit;
    text-align: left;
    transition: background .2s ease, transform .2s ease;
}

.portal-experience-rail__links span {
    color: var(--gold);
    font-size: 9px;
    font-weight: 900;
    letter-spacing: .12em;
}

.portal-experience-rail__links strong {
    margin: auto 0 10px;
    font-family: var(--serif);
    font-size: clamp(25px,2.5vw,38px);
    font-weight: 400;
    line-height: .95;
}

.portal-experience-rail__links small {
    color: rgba(255,255,255,.6);
    font-size: 12px;
    line-height: 1.45;
}

@media (hover: hover) {
    .portal-experience-rail__links a:hover,
    .portal-experience-rail__links button:hover {
        background: rgba(214,179,94,.12);
        transform: translateY(-3px);
    }
}

/* Entity */
.entity-hero {
    min-height: 650px;
    background:
        radial-gradient(circle at var(--pointer-x, 82%) var(--pointer-y, 14%), rgba(214,179,94,.19), transparent 28rem),
        linear-gradient(145deg, #082123, #153b3d 68%, #1d4a4b);
}

.entity-hero__grid {
    min-height: 650px;
    align-items: center;
}

.entity-hero__copy h1 {
    max-width: 1000px;
    font-size: clamp(64px, 9vw, 138px);
    line-height: .8;
    letter-spacing: -.06em;
    text-wrap: balance;
}

.entity-hero__copy > p:not(.eyebrow) {
    max-width: 790px;
    font-size: clamp(19px, 2vw, 27px);
}

.entity-facts {
    overflow: hidden;
    border: 1px solid rgba(255,255,255,.19);
    border-radius: 28px;
    background: rgba(7,29,31,.48);
    box-shadow: 0 28px 80px rgba(0,0,0,.2);
    backdrop-filter: blur(14px);
}

.entity-facts div {
    padding: 21px 24px;
}

.entity-media-lead {
    position: relative;
    padding-top: 26px;
}

.entity-media-lead__figure {
    border-radius: 38px;
}

.entity-integrity-bar {
    position: relative;
    overflow: hidden;
}

.entity-integrity-bar::before {
    content: "";
    position: absolute;
    inset: 0;
    opacity: .2;
    background-image: linear-gradient(90deg, transparent, rgba(214,179,94,.3), transparent);
}

.entity-layout {
    grid-template-columns: minmax(190px,.32fr) minmax(0,1fr);
    gap: clamp(38px,6vw,105px);
}

.entity-toc {
    top: calc(var(--header-height) + 30px);
    padding: 22px;
    border: 1px solid var(--line);
    border-radius: 20px;
    background: rgba(250,248,241,.76);
    box-shadow: 0 16px 50px rgba(7,29,31,.07);
    backdrop-filter: blur(12px);
}

.entity-toc a {
    position: relative;
    padding: 10px 10px 10px 18px;
    border-radius: 10px;
}

.entity-toc a::before {
    content: "";
    position: absolute;
    left: 3px;
    top: 50%;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--line);
    transform: translateY(-50%);
}

.entity-toc a.is-active,
.entity-toc a[aria-current="location"] {
    color: var(--paper-soft);
    background: var(--ink);
}

.entity-toc a.is-active::before,
.entity-toc a[aria-current="location"]::before {
    background: var(--gold);
    box-shadow: 0 0 0 4px rgba(214,179,94,.15);
}

.entity-main > section {
    border-radius: 28px;
}

.entity-main > .prose {
    padding: clamp(28px,4.5vw,65px);
    border: 1px solid var(--line);
    background: rgba(255,255,255,.36);
    box-shadow: 0 24px 80px rgba(7,29,31,.06);
}

.entity-main .prose p {
    max-width: 78ch;
    font-family: var(--serif);
    font-size: clamp(19px,1.7vw,24px);
    line-height: 1.72;
}

.entity-journey-rail {
    display: grid;
    grid-template-columns: minmax(0,1.2fr) minmax(260px,.8fr);
    gap: 1px;
    overflow: hidden;
    color: var(--paper-soft);
    background: rgba(255,255,255,.14);
    border-radius: 28px;
}

.entity-journey-rail > div,
.entity-journey-rail > nav {
    padding: clamp(26px,4vw,46px);
    background: var(--ink-deep);
}

.entity-journey-rail h2 {
    margin: 0;
    font-family: var(--serif);
    font-size: clamp(40px,5vw,70px);
    font-weight: 400;
    line-height: .9;
}

.entity-journey-rail p {
    color: rgba(255,255,255,.62);
}

.entity-journey-rail nav {
    display: grid;
    align-content: center;
    gap: 9px;
    background: #14383a;
}

.entity-journey-rail a,
.entity-journey-rail button {
    min-height: 50px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 15px;
    color: #fff;
    border: 1px solid rgba(255,255,255,.17);
    border-radius: 999px;
    background: transparent;
    cursor: pointer;
    font: inherit;
    font-size: 11px;
    font-weight: 800;
}

/* Search */
.search-page--national {
    background:
        radial-gradient(circle at 88% 4%, rgba(109,149,153,.15), transparent 30rem),
        var(--paper);
}

.search-hero-grid {
    position: relative;
    min-height: 420px;
}

.search-page--national h1 {
    letter-spacing: -.065em;
}

.search-page__form--national {
    position: relative;
    overflow: hidden;
    border-radius: 32px;
    box-shadow: var(--experience-shadow);
}

.search-page__form--national::before {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    opacity: .15;
    background-image:
        linear-gradient(rgba(255,255,255,.14) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,.14) 1px, transparent 1px);
    background-size: 42px 42px;
    mask-image: linear-gradient(90deg, transparent, #000);
}

.search-page__form--national > * {
    position: relative;
    z-index: 1;
}

[data-mobile-filter] {
    position: relative;
}

.mobile-filter-toggle {
    display: none;
}

.search-experience-summary {
    display: grid;
    grid-template-columns: auto minmax(0,1fr) auto;
    gap: 18px;
    align-items: center;
    margin: 18px 0 34px;
    padding: 18px 22px;
    color: var(--paper-soft);
    border-radius: 22px;
    background: linear-gradient(135deg, #0b292b, #173f41);
    box-shadow: 0 18px 55px rgba(7,29,31,.12);
}

.search-experience-summary > span {
    min-width: 70px;
    font-family: var(--serif);
    font-size: clamp(36px,4vw,60px);
    line-height: .8;
}

.search-experience-summary p {
    display: grid;
    gap: 4px;
    margin: 0;
}

.search-experience-summary strong {
    font-size: 13px;
}

.search-experience-summary small {
    color: rgba(255,255,255,.58);
}

.search-experience-summary a {
    min-height: 42px;
    display: inline-grid;
    place-items: center;
    padding: 0 14px;
    color: #fff;
    border: 1px solid rgba(255,255,255,.18);
    border-radius: 999px;
    font-size: 10px;
    font-weight: 900;
    text-transform: uppercase;
}

.search-result {
    transition: padding .25s ease, background .25s ease, transform .25s ease;
}

.search-result--with-media {
    grid-template-columns: 160px 48px minmax(0,1fr) 100px 28px;
}

.search-result__media {
    width: 160px;
    aspect-ratio: 1.45;
    overflow: hidden;
    border-radius: 16px;
}

.search-result__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

@media (hover: hover) {
    .search-result:hover {
        padding-inline: 18px;
        background: rgba(255,255,255,.46);
        transform: translateX(3px);
    }
}

/* Map */
.explorer-head {
    position: relative;
    overflow: hidden;
    color: var(--paper-soft);
    background:
        radial-gradient(circle at 76% 18%, rgba(214,179,94,.17), transparent 27rem),
        linear-gradient(145deg, #071d1f, #173f41);
}

.explorer-head::after {
    content: "";
    position: absolute;
    inset: 0;
    opacity: .18;
    background-image:
        linear-gradient(rgba(255,255,255,.14) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,.14) 1px, transparent 1px);
    background-size: 54px 54px;
    pointer-events: none;
}

.explorer-head .shell {
    position: relative;
    z-index: 1;
    padding-block: clamp(90px,10vw,150px);
}

.explorer-head h1 {
    max-width: 1050px;
    font-size: clamp(58px,8.5vw,130px);
    line-height: .82;
    letter-spacing: -.06em;
}

.map-experience-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 18px;
    padding: 14px 18px;
    border: 1px solid var(--line);
    border-radius: 18px;
    background: rgba(255,255,255,.45);
}

.map-experience-toolbar > div {
    display: flex;
    align-items: baseline;
    gap: 8px;
}

.map-experience-toolbar > div span {
    font-family: var(--serif);
    font-size: 34px;
    line-height: 1;
}

.map-experience-toolbar > div small {
    color: rgba(16,43,45,.55);
    font-size: 9px;
    font-weight: 900;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.map-experience-toolbar p {
    margin: 0;
    color: rgba(16,43,45,.62);
    font-size: 12px;
}

.map-experience-toolbar nav {
    display: flex;
    gap: 8px;
}

.map-experience-toolbar a {
    min-height: 38px;
    display: inline-grid;
    place-items: center;
    padding: 0 13px;
    border: 1px solid var(--line);
    border-radius: 999px;
    font-size: 10px;
    font-weight: 900;
    text-transform: uppercase;
}

.map-layout {
    align-items: start;
}

.map-stage {
    overflow: hidden;
    border: 1px solid rgba(255,255,255,.15);
    border-radius: 34px;
    background:
        radial-gradient(circle at 50% 42%, rgba(109,149,153,.2), transparent 22rem),
        linear-gradient(150deg, #102e30, #071c1e);
    box-shadow: var(--experience-shadow);
}

.map-stage::before {
    content: "";
    position: absolute;
    inset: 0;
    opacity: .14;
    background-image:
        linear-gradient(rgba(255,255,255,.17) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,.17) 1px, transparent 1px);
    background-size: 36px 36px;
    pointer-events: none;
}

.map-stage__land {
    filter: drop-shadow(0 30px 35px rgba(0,0,0,.28));
}

.map-marker > span:first-child {
    box-shadow: 0 0 0 5px rgba(255,255,255,.12), 0 0 26px rgba(214,179,94,.5);
}

.map-marker__popup {
    border-radius: 18px;
    box-shadow: 0 24px 70px rgba(0,0,0,.32);
}

.map-list {
    border-radius: 28px;
    background: rgba(255,255,255,.42);
    box-shadow: 0 22px 70px rgba(7,29,31,.08);
}

.map-list article {
    transition: background .2s ease, transform .2s ease;
}

.map-list article.is-active {
    background: var(--winter);
    transform: translateX(-4px);
}

/* Explore */
.page-explore .discovery-hero {
    min-height: min(850px, calc(100svh - 20px));
    background:
        radial-gradient(circle at var(--pointer-x, 72%) var(--pointer-y, 22%), rgba(214,179,94,.18), transparent 28rem),
        linear-gradient(145deg, #071d1f, #163d3f 66%, #244f4d);
}

.page-explore .discovery-hero h1 {
    font-size: clamp(70px,10vw,150px);
    line-height: .78;
    letter-spacing: -.065em;
}

.experience-paths {
    display: grid;
    grid-template-columns: repeat(4,minmax(0,1fr));
    margin-top: 34px;
    border-top: 1px solid rgba(255,255,255,.17);
    border-left: 1px solid rgba(255,255,255,.17);
}

.experience-paths a {
    min-height: 150px;
    display: flex;
    flex-direction: column;
    padding: 20px;
    border-right: 1px solid rgba(255,255,255,.17);
    border-bottom: 1px solid rgba(255,255,255,.17);
}

.experience-paths span {
    color: var(--gold);
    font-size: 9px;
    font-weight: 900;
    letter-spacing: .1em;
}

.experience-paths strong {
    margin-top: auto;
    font-family: var(--serif);
    font-size: 28px;
    font-weight: 400;
}

/* Story */
.story-page[data-reading-progress] {
    position: relative;
}

.story-reading-indicator {
    position: sticky;
    z-index: 40;
    top: calc(var(--header-height) + 12px);
    width: max-content;
    margin: 0 18px 0 auto;
    padding: 8px 12px;
    color: var(--paper-soft);
    border-radius: 999px;
    background: rgba(7,29,31,.82);
    backdrop-filter: blur(12px);
    font-size: 9px;
    font-weight: 900;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.story-hero {
    background:
        radial-gradient(circle at 82% 13%, rgba(214,179,94,.16), transparent 28rem),
        linear-gradient(145deg, #071d1f, #183b3d);
}

.story-hero h1 {
    letter-spacing: -.06em;
    text-wrap: balance;
}

.story-reading-width {
    max-width: 860px;
}

.story-chapter .prose {
    font-family: var(--serif);
    font-size: clamp(19px,1.65vw,24px);
    line-height: 1.75;
}

.story-experience-endcap {
    color: var(--paper-soft);
    background:
        radial-gradient(circle at 15% 25%, rgba(214,179,94,.13), transparent 24rem),
        linear-gradient(145deg, #071d1f, #163a3c);
}

.story-experience-endcap__grid {
    display: grid;
    grid-template-columns: minmax(0,1.2fr) minmax(260px,.8fr);
    gap: 50px;
    align-items: end;
}

.story-experience-endcap h2 {
    margin: 0;
    font-family: var(--serif);
    font-size: clamp(50px,7vw,100px);
    font-weight: 400;
    line-height: .85;
}

.story-experience-endcap nav {
    display: grid;
    gap: 9px;
}

.story-experience-endcap a,
.story-experience-endcap button {
    min-height: 52px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0 16px;
    color: #fff;
    border: 1px solid rgba(255,255,255,.18);
    border-radius: 999px;
    background: transparent;
    cursor: pointer;
    font: inherit;
    font-size: 11px;
    font-weight: 800;
}

/* Media */
.media-presentation__visual {
    position: relative;
    overflow: hidden;
    background: linear-gradient(135deg, var(--winter), var(--linen));
}

.media-presentation__visual::after {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    box-shadow: inset 0 0 0 1px rgba(255,255,255,.18);
}

.media-presentation__visual img {
    transition: transform .65s var(--ease), filter .3s ease;
}

@media (hover: hover) {
    a:hover .media-presentation__visual img,
    figure:hover .media-presentation__visual img {
        transform: scale(1.025);
    }
}

.media-presentation__mode {
    border-radius: 999px;
    box-shadow: 0 12px 30px rgba(0,0,0,.18);
    backdrop-filter: blur(10px);
}

.media-presentation__broken {
    min-height: 220px;
    background:
        linear-gradient(rgba(16,43,45,.08) 1px, transparent 1px),
        linear-gradient(90deg, rgba(16,43,45,.08) 1px, transparent 1px),
        var(--winter);
    background-size: 32px 32px;
}

/* Footer */
.site-footer {
    position: relative;
    overflow: hidden;
    padding-bottom: calc(26px + var(--safe-bottom));
}

.site-footer::before {
    content: "";
    position: absolute;
    left: -10%;
    right: -10%;
    top: -180px;
    height: 260px;
    border-radius: 50%;
    background: var(--paper);
}

.site-footer > * {
    position: relative;
    z-index: 1;
}

.site-footer__top {
    padding-top: 120px;
}

.site-footer__top h2 {
    text-wrap: balance;
}

.footer-discovery .search-field {
    border-radius: 999px;
    overflow: hidden;
}

.site-network-card {
    border-radius: 18px;
}

/* Accessible live region */
.experience-live {
    position: fixed;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    white-space: nowrap;
}

@keyframes experience-pulse {
    0% { opacity: .65; transform: translate(-50%,-50%) scale(.72); }
    70%,100% { opacity: 0; transform: translate(-50%,-50%) scale(1.14); }
}

@media (max-width: 1260px) {
    .experience-dock {
        right: 10px;
    }
    .site-header__context {
        display: none;
    }
    .hero--home .hero__grid {
        grid-template-columns: 1fr 1fr;
    }
    .portal-subnav {
        overflow-x: auto;
        justify-content: flex-start;
        scrollbar-width: none;
    }
}

@media (max-width: 1000px) {
    .hero--home .hero__grid,
    .experience-gateway__head,
    .entity-journey-rail,
    .story-experience-endcap__grid {
        grid-template-columns: 1fr;
    }
    .hero--home .hero__grid {
        padding-bottom: 90px;
    }
    .atlas-stage {
        width: min(720px,100%);
        margin-inline: auto;
    }
    .experience-gateway__grid,
    .portal-experience-rail {
        grid-template-columns: 1fr 1fr;
    }
    .experience-gateway__card:last-child,
    .portal-experience-rail a:last-child {
        grid-column: 1 / -1;
    }
    .entity-layout {
        grid-template-columns: 1fr;
    }
    .entity-toc {
        position: sticky;
        z-index: 25;
        top: calc(var(--header-height) + 8px);
        display: flex;
        flex-wrap: nowrap;
        gap: 5px;
        overflow-x: auto;
        padding: 8px;
        border-radius: 999px;
        scrollbar-width: none;
    }
    .entity-toc > span {
        display: none;
    }
    .entity-toc a {
        flex: 0 0 auto;
        min-height: 40px;
        display: inline-grid;
        place-items: center;
        padding: 0 14px;
    }
    .entity-toc a::before {
        display: none;
    }
    .search-result--with-media {
        grid-template-columns: 130px 42px minmax(0,1fr) 72px 24px;
    }
    .search-result__media {
        width: 130px;
    }
}

@media (max-width: 760px) {
    :root {
        --experience-radius: 24px;
    }
    html {
        scroll-padding-top: calc(var(--header-height) + 16px);
    }
    body {
        padding-bottom: calc(70px + var(--safe-bottom));
    }
    body::before {
        background-size: 42px 42px;
    }
    .site-header__actions .header-action--contact,
    .site-header__actions .header-action--link:not(.header-action--contact) {
        display: none;
    }
    .experience-dock {
        left: 10px;
        right: 10px;
        top: auto;
        bottom: max(8px, var(--safe-bottom));
        grid-template-columns: repeat(5,1fr);
        gap: 2px;
        padding: 6px;
        border-radius: 22px;
        transform: none;
    }
    .experience-dock__status {
        display: none;
    }
    .experience-dock a,
    .experience-dock button {
        width: auto;
        height: 54px;
        gap: 2px;
        display: flex;
        flex-direction: column;
        justify-content: center;
    }
    .experience-dock a > span,
    .experience-dock button > span {
        font-size: 18px;
        line-height: 1;
    }
    .experience-dock a > b,
    .experience-dock button > b {
        position: static;
        display: block;
        padding: 0;
        color: inherit;
        background: transparent;
        opacity: 1;
        transform: none;
        font-size: 7px;
        line-height: 1;
    }
    .experience-dock.is-near-footer {
        opacity: 1;
    }
    .search-dialog__panel {
        width: calc(100% - 20px);
        margin: 10px auto;
        padding: 24px;
        min-height: calc(100dvh - 20px);
        display: flex;
        flex-direction: column;
        justify-content: center;
    }
    .search-dialog__topline {
        position: absolute;
        inset: 22px 22px auto;
    }
    .search-dialog .search-field {
        grid-template-columns: 1fr;
    }
    .search-dialog .search-field input {
        min-height: 74px;
        font-size: 31px;
    }
    .search-dialog .search-field button {
        min-height: 52px;
        padding: 0;
        text-align: left;
    }
    .hero--home {
        min-height: auto;
    }
    .hero--home .hero__grid {
        min-height: auto;
        padding-top: 76px;
    }
    .hero--home .hero__copy h1 {
        font-size: clamp(68px,22vw,105px);
        line-height: .78;
    }
    .hero__lede {
        font-size: 20px;
    }
    .hero__actions {
        display: grid;
        grid-template-columns: 1fr;
    }
    .hero__actions .button {
        width: 100%;
        justify-content: space-between;
    }
    .hero__stats {
        grid-template-columns: 1fr;
    }
    .hero__stats div {
        min-height: 78px;
        border-right: 0;
        border-bottom: 1px solid var(--line);
    }
    .hero__stats div:last-child {
        border-bottom: 0;
    }
    .experience-rails {
        grid-template-columns: 1fr 1fr;
    }
    .experience-rails a:nth-child(2n) {
        border-right: 0;
    }
    .experience-rails a:nth-child(-n+2) {
        border-bottom: 1px solid var(--line);
    }
    .atlas-stage {
        min-height: 490px;
        margin-inline: -11px;
    }
    .atlas-stage__gridlines,
    .atlas-stage__pulse {
        display: none;
    }
    .atlas-stage__status {
        left: 18px;
        bottom: 18px;
    }
    .experience-gateway__head,
    .experience-gateway__grid,
    .portal-experience-rail,
    .experience-paths {
        grid-template-columns: 1fr;
    }
    .experience-gateway__card,
    .portal-experience-rail a {
        grid-column: auto !important;
    }
    .experience-gateway__card {
        min-height: 280px;
    }
    .portal-hero,
    .entity-hero,
    .page-explore .discovery-hero {
        min-height: auto;
    }
    .portal-hero__grid,
    .entity-hero__grid {
        min-height: auto;
        padding-block: 70px 110px;
    }
    .portal-hero__copy h1,
    .entity-hero__copy h1,
    .page-explore .discovery-hero h1,
    .explorer-head h1 {
        font-size: clamp(54px,18vw,86px);
        line-height: .82;
    }
    .portal-subnav {
        bottom: calc(72px + var(--safe-bottom));
        width: calc(100% - 20px);
        margin-top: -54px;
    }
    .portal-subnav a {
        min-width: max-content;
        min-height: 38px;
        padding-inline: 13px;
    }
    .entity-media-lead__figure,
    .entity-main > section,
    .entity-facts {
        border-radius: 20px;
    }
    .entity-media-lead__figure img {
        height: min(66vh,500px);
    }
    .entity-media-lead__figure figcaption {
        display: grid;
    }
    .entity-media-lead__figure small {
        text-align: left;
    }
    .entity-toc {
        top: calc(var(--header-height) + 5px);
        margin-inline: -4px;
    }
    .entity-main > .prose {
        padding: 25px;
    }
    .entity-main .prose p,
    .story-chapter .prose {
        font-size: 19px;
    }
    .mobile-filter-toggle {
        min-height: 50px;
        display: flex;
        justify-content: space-between;
        align-items: center;
        width: 100%;
        margin-top: 18px;
        padding: 0 15px;
        color: #fff;
        border: 1px solid rgba(255,255,255,.21);
        border-radius: 999px;
        background: rgba(255,255,255,.06);
        font: inherit;
        font-size: 10px;
        font-weight: 900;
        letter-spacing: .08em;
        text-transform: uppercase;
    }
    .mobile-filter-toggle::after {
        content: "+";
        font-size: 18px;
    }
    [data-mobile-filter].is-open .mobile-filter-toggle::after {
        content: "−";
    }
    [data-filter-panel][hidden] {
        display: none !important;
    }
    .search-experience-summary {
        grid-template-columns: auto 1fr;
    }
    .search-experience-summary a {
        grid-column: 1 / -1;
    }
    .search-filter-grid {
        grid-template-columns: 1fr;
    }
    .search-result,
    .search-result--with-media {
        grid-template-columns: 1fr 30px;
        gap: 12px;
        padding: 24px 0;
    }
    .search-result__media {
        width: 100%;
        aspect-ratio: 1.8;
        grid-column: 1 / -1;
    }
    .search-result__index,
    .search-result__quality {
        display: none;
    }
    .search-result__main {
        grid-column: 1;
    }
    .search-result__arrow {
        grid-column: 2;
        grid-row: 2;
    }
    .map-experience-toolbar {
        align-items: flex-start;
        flex-direction: column;
    }
    .map-experience-toolbar nav {
        width: 100%;
    }
    .map-experience-toolbar a {
        flex: 1;
    }
    .map-stage {
        min-height: 500px;
        border-radius: 22px;
    }
    .map-list {
        border-radius: 20px;
    }
    .story-reading-indicator {
        top: calc(var(--header-height) + 6px);
        margin-right: 10px;
    }
    .site-footer::before {
        top: -125px;
        height: 190px;
    }
    .site-footer__top {
        padding-top: 90px;
    }
}

@media (pointer: coarse) {
    :where(a, button, input, select, textarea, summary) {
        min-height: 44px;
    }
    .portal-card,
    .entry-card,
    .relation-card,
    .search-result {
        touch-action: manipulation;
    }
}

@media (prefers-reduced-motion: reduce) {
    .atlas-stage,
    .portal-hero__object,
    .experience-gateway__card,
    .search-result,
    .media-presentation__visual img {
        transform: none !important;
    }
    .atlas-stage__pulse,
    .site-progress {
        display: none;
    }
}

@media (prefers-contrast: more) {
    :root {
        --line: rgba(16,43,45,.42);
    }
    .eyebrow,
    small,
    .search-result__context span {
        color: currentColor;
    }
    .experience-dock,
    .search-dialog__panel {
        border-width: 2px;
    }
}

@media print {
    .site-header,
    .site-footer,
    .experience-dock,
    .site-progress,
    .content-actions,
    .portal-subnav,
    .entity-toc {
        display: none !important;
    }
    body {
        padding: 0;
        color: #000;
        background: #fff;
    }
    main,
    main > * {
        content-visibility: visible !important;
    }
    a[href]::after {
        content: " (" attr(href) ")";
        font-size: 9pt;
    }
}


/* Svenskhet.se Pass 25.1 — Legendary Sweden identity and modal architecture */
:root {
    --experience-ink: #08283a;
    --experience-ink-rgb: 8, 40, 58;
    --experience-paper: #f7f2e8;
    --experience-cream: #fffaf1;
    --experience-signal: #f5c443;
    --experience-red: #c84732;
    --experience-lake: #2582a8;
    --experience-aurora: #1aa2a0;
    --experience-blue: #155b8f;
    --experience-night: #061b2a;
    --experience-mist: #dceaf0;
    --experience-grid: rgba(21, 91, 143, .075);
    --experience-shadow: 0 42px 130px rgba(4, 26, 44, .22);
    --experience-shadow-soft: 0 18px 64px rgba(4, 26, 44, .13);
}

body {
    background:
        radial-gradient(circle at 10% 14%, rgba(37,130,168,.14), transparent 28rem),
        radial-gradient(circle at 88% 16%, rgba(245,196,67,.13), transparent 24rem),
        radial-gradient(circle at 76% 76%, rgba(200,71,50,.09), transparent 28rem),
        linear-gradient(180deg, #fbf7ee 0%, #f3eee3 48%, #f8f4eb 100%);
}

body::before {
    opacity: .42;
    background-image:
        linear-gradient(rgba(21,91,143,.07) 1px, transparent 1px),
        linear-gradient(90deg, rgba(21,91,143,.07) 1px, transparent 1px),
        radial-gradient(circle at 50% 30%, rgba(245,196,67,.14) 0 1px, transparent 2px);
    background-size: 64px 64px,64px 64px,128px 128px;
}

.site-header {
    border-bottom-color: rgba(21,91,143,.16);
    background: rgba(251,247,238,.9);
    box-shadow: 0 10px 40px rgba(8,40,58,.06);
}

.brand__mark {
    border-color: rgba(21,91,143,.28);
    background: linear-gradient(160deg, rgba(255,255,255,.86), rgba(220,234,240,.78));
    box-shadow: inset 0 0 0 1px rgba(255,255,255,.55), 0 8px 22px rgba(8,40,58,.10);
}
.brand__mark svg { overflow: visible; }
.brand__sweden {
    fill: var(--experience-blue);
    stroke: #08283a;
    stroke-width: 1.1;
    stroke-linejoin: round;
    filter: drop-shadow(0 2px 2px rgba(8,40,58,.15));
}
.brand__point { fill: var(--experience-signal); stroke: #fffaf1; stroke-width: .8; }
.brand__word { color: #08283a; }
.brand__domain { color: var(--experience-red); }

/* Native dialog must be absent when closed. Pass 25's :not([hidden]) rule made it a non-modal overlay. */
.search-dialog { display: none; position: fixed; z-index: 5000; inset: 0; width: 100vw; height: 100dvh; max-width: none; max-height: none; margin: 0; padding: 0; border: 0; background: transparent; overflow: auto; }
.search-dialog[open] { display: grid; place-items: start center; }
.search-dialog::backdrop { background: rgba(2,17,28,.78); backdrop-filter: blur(18px) saturate(.82); }
body.search-is-open { overflow: hidden !important; overscroll-behavior: none; }

.search-dialog__panel {
    pointer-events: auto;
    width: min(1040px, calc(100vw - 48px));
    min-height: min(560px, calc(100dvh - 96px));
    margin: clamp(36px, 8vh, 96px) auto;
    padding: clamp(34px, 5vw, 78px);
    border: 1px solid rgba(255,255,255,.18);
    border-radius: clamp(26px,3vw,48px);
    background:
        radial-gradient(circle at 82% 12%, rgba(245,196,67,.23), transparent 24rem),
        radial-gradient(circle at 10% 88%, rgba(37,130,168,.26), transparent 30rem),
        linear-gradient(145deg, rgba(8,40,58,.985), rgba(5,27,43,.995));
    box-shadow: 0 70px 190px rgba(0,0,0,.52), inset 0 1px rgba(255,255,255,.09);
}
.search-dialog__panel::after {
    content: "";
    position: absolute;
    inset: 18px;
    border: 1px solid rgba(245,196,67,.12);
    border-radius: calc(clamp(26px,3vw,48px) - 12px);
    pointer-events: none;
}
.search-dialog__close {
    position: relative;
    width: 54px !important;
    height: 54px !important;
    border-color: rgba(255,255,255,.3) !important;
    background: rgba(255,255,255,.055);
    transition: transform .2s ease, background .2s ease, border-color .2s ease;
}
.search-dialog__close span,
.search-dialog__close span::after {
    content: "";
    position: absolute;
    width: 20px;
    height: 2px;
    border-radius: 999px;
    background: #fff;
    transform: rotate(45deg);
}
.search-dialog__close span::after { transform: rotate(90deg); }
.search-dialog__close:hover { transform: rotate(4deg) scale(1.04); background: rgba(200,71,50,.22); border-color: rgba(245,196,67,.6) !important; }
.search-dialog .search-field { border-bottom-color: rgba(245,196,67,.52); }
.search-dialog .search-field input { color: #fffdf7; text-shadow: 0 4px 30px rgba(0,0,0,.24); }
.search-dialog .search-field input::placeholder { color: rgba(220,234,240,.32); }
.search-dialog .search-field button { color: var(--experience-signal); }
.search-dialog__suggestions a { color: rgba(255,255,255,.84); border-color: rgba(255,255,255,.2); background: rgba(255,255,255,.035); }
.search-dialog__suggestions a:hover { color: #071b2a; background: var(--experience-signal); border-color: var(--experience-signal); }

/* Deeper, more vibrant public surfaces */
.hero--home {
    background:
        radial-gradient(circle at 78% 24%, rgba(245,196,67,.24), transparent 28%),
        radial-gradient(circle at 20% 78%, rgba(37,130,168,.28), transparent 34%),
        linear-gradient(135deg, #061b2a 0%, #082f47 48%, #0b5163 100%);
}
.hero--home::after,
.portal-hero::after,
.entity-hero::after {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background:
        linear-gradient(115deg, transparent 35%, rgba(255,255,255,.07) 49%, transparent 62%),
        radial-gradient(circle at var(--pointer-x,75%) var(--pointer-y,30%), rgba(245,196,67,.15), transparent 24rem);
    mix-blend-mode: screen;
}
.portal-hero {
    background:
        radial-gradient(circle at 84% 14%, rgba(245,196,67,.18), transparent 28rem),
        radial-gradient(circle at 8% 88%, rgba(37,130,168,.28), transparent 32rem),
        linear-gradient(145deg, #061b2a, #0a3345 58%, #0b5260);
    box-shadow: inset 0 -1px rgba(255,255,255,.08);
}
.portal-hero__media {
    border: 1px solid rgba(245,196,67,.25);
    box-shadow: 0 45px 120px rgba(0,0,0,.32), 0 0 0 12px rgba(255,255,255,.025);
}
.portal-hero__copy h1,
.entity-hero__copy h1 { text-shadow: 0 14px 50px rgba(0,0,0,.28); }
.portal-hero__object,
.entity-hero__facts,
.card,
.panel {
    border-color: rgba(21,91,143,.16);
    box-shadow: var(--experience-shadow-soft);
}
.button--primary,
.button:not(.button--ghost) {
    background: linear-gradient(135deg, #f6cd57, #efad2f);
    color: #08283a;
    box-shadow: 0 14px 34px rgba(239,173,47,.24);
}
.eyebrow { color: var(--experience-red); }
.experience-dock {
    background: linear-gradient(180deg, rgba(6,27,42,.96), rgba(8,50,66,.96));
    border-color: rgba(245,196,67,.22);
    box-shadow: 0 28px 90px rgba(4,22,35,.38), inset 0 1px rgba(255,255,255,.08);
}
.experience-dock a[aria-current="page"], .experience-dock button:hover, .experience-dock a:hover { color: #08283a; background: var(--experience-signal); }

@media (max-width:760px) {
    .search-dialog__panel { width: calc(100vw - 16px); min-height: calc(100dvh - 16px); margin: 8px; padding: 26px 22px; border-radius: 28px; }
    .search-dialog__panel::after { inset: 10px; border-radius: 20px; }
    .search-dialog__topline { inset: 24px 24px auto; }
    .search-dialog__close { width: 48px !important; height: 48px !important; }
}
