/*
 * NørdvikCon – design tokens + program/activity/registration components.
 * Visual direction «Tårnet ved havet»: night ink, lantern gold, northern-light accents,
 * battlement (crenel) motif from Terningtårnet's logo.
 */

:root {
	--nc-night: #0b1020;
	--nc-night-2: #0f1529;
	--nc-surface: #151c33;
	--nc-surface-2: #1b2340;
	--nc-surface-3: #242d52;
	--nc-line: rgb(244 234 213 / 0.1);
	--nc-line-2: rgb(244 234 213 / 0.2);
	--nc-paper: #f4ead5;
	--nc-paper-2: #d2cab9;
	--nc-muted: #a8a191;
	--nc-gold: #f2b544;
	--nc-gold-2: #ffcd6b;
	--nc-gold-ink: #1b1405;
	--nc-teal: #43c6b8;
	--nc-violet: #a68fff;
	--nc-amber: #ff9f43;
	--nc-rose: #ff85ba;
	--nc-sky: #74bdff;
	--nc-coral: #ff7466;
	--nc-lime: #a6e36b;
	--nc-ok: #7fe3a5;
	--nc-warn: #ffb54d;
	--nc-bad: #ff8577;
	--nc-font-display: "Bricolage Grotesque", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
	--nc-font-body: "Figtree", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
	--nc-font-gothic: "Grenze Gotisch", "Bricolage Grotesque", Georgia, serif;
	--nc-radius-s: 8px;
	--nc-radius: 14px;
	--nc-radius-l: 22px;
	--nc-shadow: 0 1px 0 rgb(255 255 255 / 0.05) inset, 0 22px 44px -26px rgb(0 0 0 / 0.85);
	--nc-ease: cubic-bezier(0.2, 0.8, 0.2, 1);
	--nc-wrap: 1180px;
	--nc-gutter: clamp(16px, 4vw, 40px);
	--nc-header-h: 72px;
	--nc-cat: var(--nc-gold);
	--nc-crenel: repeating-linear-gradient(90deg, currentColor 0 16px, transparent 16px 28px);
}

.nc-c--teal { --nc-cat: var(--nc-teal); }
.nc-c--violet { --nc-cat: var(--nc-violet); }
.nc-c--amber { --nc-cat: var(--nc-amber); }
.nc-c--rose { --nc-cat: var(--nc-rose); }
.nc-c--sky { --nc-cat: var(--nc-sky); }
.nc-c--coral { --nc-cat: var(--nc-coral); }
.nc-c--lime { --nc-cat: var(--nc-lime); }
.nc-c--gold { --nc-cat: var(--nc-gold); }

/* ------------------------------------------------------------------ Base helpers */

.nc-wrap {
	width: min(100% - 2 * var(--nc-gutter), var(--nc-wrap));
	margin-inline: auto;
}

.nc-icon {
	width: 1.15em;
	height: 1.15em;
	flex: none;
	vertical-align: -0.2em;
}

.nc-flip { transform: scaleX(-1); }

.nc-eyebrow {
	margin: 0 0 0.6rem;
	font: 700 0.78rem/1.3 var(--nc-font-display);
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--nc-gold);
}

.nc-h2 {
	margin: 0 0 1rem;
	font: 800 clamp(1.5rem, 3.4vw, 2.1rem)/1.1 var(--nc-font-display);
	letter-spacing: -0.015em;
	color: var(--nc-paper);
}

.nc-h3 {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	margin: 0 0 0.6rem;
	font: 700 1.1rem/1.25 var(--nc-font-display);
	color: var(--nc-paper);
}

.nc-tbd {
	display: inline-flex;
	align-items: center;
	gap: 0.35em;
	color: var(--nc-muted);
	font-style: italic;
}

.nc-empty {
	color: var(--nc-muted);
	font-style: italic;
}

.nc-flag {
	display: inline-block;
	padding: 1px 7px;
	border: 1px solid rgb(242 181 68 / 0.55);
	border-radius: 999px;
	font: 700 0.68rem/1.5 var(--nc-font-display);
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--nc-gold);
	white-space: nowrap;
}

.nc-hp {
	position: absolute !important;
	left: -10000px !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

.nc-chip {
	display: inline-flex;
	align-items: center;
	gap: 0.4em;
	padding: 3px 10px 3px 7px;
	border: 1px solid color-mix(in oklab, var(--nc-cat) 40%, transparent);
	border-radius: 999px;
	background: color-mix(in oklab, var(--nc-cat) 14%, transparent);
	color: color-mix(in oklab, var(--nc-cat) 72%, #fff);
	font: 700 0.78rem/1.4 var(--nc-font-display);
	letter-spacing: 0.01em;
	white-space: nowrap;
}

/* ------------------------------------------------------------------ Buttons */

.nc-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.55em;
	min-height: 48px;
	padding: 0 1.3rem;
	border: 1.5px solid transparent;
	border-radius: 12px;
	background: var(--nc-gold);
	color: var(--nc-gold-ink) !important;
	font: 700 1rem/1.1 var(--nc-font-display);
	letter-spacing: 0.005em;
	text-decoration: none !important;
	text-align: center;
	cursor: pointer;
	box-shadow: 0 10px 28px -16px rgb(242 181 68 / 0.7);
	transition: transform 0.18s var(--nc-ease), background-color 0.18s, box-shadow 0.25s, border-color 0.18s, color 0.18s;
	-webkit-tap-highlight-color: transparent;
}

.nc-btn:hover {
	background: var(--nc-gold-2);
	transform: translateY(-1px);
	box-shadow: 0 14px 34px -14px rgb(242 181 68 / 0.75);
}

.nc-btn:active { transform: translateY(1px); }

.nc-btn[disabled],
.nc-btn[aria-busy="true"] {
	opacity: 0.7;
	cursor: progress;
	transform: none;
}

.nc-btn--ghost {
	background: transparent;
	border-color: var(--nc-line-2);
	color: var(--nc-paper) !important;
	box-shadow: none;
}

.nc-btn--ghost:hover {
	background: rgb(244 234 213 / 0.06);
	border-color: var(--nc-gold);
	color: var(--nc-gold-2) !important;
	box-shadow: none;
}

.nc-btn--quiet {
	min-height: 40px;
	padding: 0 0.6rem;
	background: transparent;
	color: var(--nc-paper-2) !important;
	box-shadow: none;
}

.nc-btn--quiet:hover {
	background: rgb(244 234 213 / 0.06);
	color: var(--nc-paper) !important;
	box-shadow: none;
}

.nc-btn--amber { background: var(--nc-amber); box-shadow: 0 10px 28px -16px rgb(255 159 67 / 0.7); }
.nc-btn--amber:hover { background: #ffb46b; }
.nc-btn--danger { background: var(--nc-coral); color: #1d0703 !important; box-shadow: none; }
.nc-btn--danger:hover { background: #ff9084; box-shadow: none; }
.nc-btn--danger-text { color: var(--nc-bad) !important; }
.nc-btn--block { display: flex; width: 100%; }
.nc-btn--sm { min-height: 38px; padding: 0 0.9rem; font-size: 0.9rem; border-radius: 10px; }

:where(.nc-program, .nc-activity, .nc-manage, .nc-panel) :where(a, button, input, select, textarea, summary):focus-visible,
.nc-btn:focus-visible {
	outline: 3px solid var(--nc-gold);
	outline-offset: 3px;
}

/* ------------------------------------------------------------------ Status */

.nc-status {
	display: inline-flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.2rem 0.45rem;
	margin: 0;
	font: 700 0.9rem/1.3 var(--nc-font-display);
	color: var(--nc-paper-2);
}

.nc-status .nc-icon { width: 1.1em; height: 1.1em; }
.nc-status__detail { font-weight: 500; color: var(--nc-paper-2); }
.nc-status__detail::before { content: "·"; margin-right: 0.45rem; color: var(--nc-muted); }
.nc-status--open { color: var(--nc-ok); }
.nc-status--waitlist { color: var(--nc-warn); }
.nc-status--closed { color: var(--nc-bad); }
.nc-status--dropin { color: var(--nc-teal); }
.nc-status--external { color: var(--nc-sky); }
.nc-status--pending { color: var(--nc-paper-2); }

.nc-status--lg {
	margin-top: 1.2rem;
	padding: 0.7rem 1rem;
	border: 1px solid var(--nc-line-2);
	border-radius: 12px;
	background: rgb(11 16 32 / 0.55);
	font-size: 1.02rem;
}

/* ------------------------------------------------------------------ Notices & alerts */

.nc-notice {
	display: flex;
	gap: 0.8rem;
	align-items: flex-start;
	margin: 1.2rem 0 0;
	padding: 0.9rem 1.1rem;
	border: 1px solid var(--nc-line);
	border-left: 3px solid var(--nc-gold);
	border-radius: 12px;
	background: rgb(21 28 51 / 0.8);
	color: var(--nc-paper-2);
	line-height: 1.5;
	max-width: 70ch;
}

.nc-notice .nc-icon { margin-top: 0.15em; color: var(--nc-gold); width: 1.3em; height: 1.3em; }
.nc-notice strong { color: var(--nc-paper); }
.nc-notice a { color: var(--nc-gold); }
.nc-notice--test { border-left-color: var(--nc-coral); }
.nc-notice--test .nc-icon { color: var(--nc-coral); }
.nc-notice--archive { border-left-color: var(--nc-sky); }
.nc-notice--archive .nc-icon { color: var(--nc-sky); }

.nc-alert {
	display: flex;
	gap: 0.7rem;
	align-items: flex-start;
	margin: 1rem 0;
	padding: 0.8rem 1rem;
	border: 1px solid;
	border-radius: 12px;
	line-height: 1.5;
	font-size: 0.97rem;
}

.nc-alert p { margin: 0 0 0.5rem; }
.nc-alert p:last-child { margin-bottom: 0; }
.nc-alert .nc-icon { margin-top: 0.15em; width: 1.25em; height: 1.25em; }
.nc-alert--error { border-color: rgb(255 133 119 / 0.5); background: rgb(255 116 102 / 0.1); color: #ffd3cc; }
.nc-alert--error .nc-icon { color: var(--nc-bad); }
.nc-alert--warn { border-color: rgb(255 181 77 / 0.5); background: rgb(255 181 77 / 0.1); color: #ffe6c2; }
.nc-alert--warn .nc-icon { color: var(--nc-warn); }
.nc-alert--ok { border-color: rgb(127 227 165 / 0.45); background: rgb(127 227 165 / 0.08); color: #d3f7e0; }
.nc-alert--ok .nc-icon { color: var(--nc-ok); }
.nc-alert--info { border-color: rgb(116 189 255 / 0.45); background: rgb(116 189 255 / 0.08); color: #d8ecff; }
.nc-alert--info .nc-icon { color: var(--nc-sky); }

/* ------------------------------------------------------------------ Cards */

.nc-card {
	position: relative;
	display: flex;
	flex-direction: column;
	min-width: 0;
	border: 1px solid var(--nc-line);
	border-radius: 16px;
	background: linear-gradient(180deg, var(--nc-surface) 0%, rgb(21 28 51 / 0.92) 100%);
	box-shadow: var(--nc-shadow);
	overflow: hidden;
	transition: transform 0.28s var(--nc-ease), border-color 0.25s, background-color 0.25s, box-shadow 0.28s;
}

.nc-card::before {
	content: "";
	position: absolute;
	inset: 0 auto 0 0;
	width: 4px;
	background: var(--nc-cat);
	opacity: 0.9;
}

.nc-card__body {
	display: flex;
	flex: 1;
	flex-direction: column;
	padding: 1rem 1.1rem 0.95rem 1.3rem;
}

.nc-card__meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.45rem 0.7rem;
	margin: 0;
	font-size: 0.85rem;
}

.nc-card__time {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	color: var(--nc-paper-2);
	font: 600 0.88rem/1.3 var(--nc-font-display);
	font-variant-numeric: tabular-nums;
}

.nc-card__day {
	color: var(--nc-paper);
	font-weight: 700;
	margin-right: 0.1rem;
}

.nc-card__title {
	margin: 0.6rem 0 0.35rem;
	font: 750 1.22rem/1.2 var(--nc-font-display);
	letter-spacing: -0.012em;
	color: var(--nc-paper);
	overflow-wrap: anywhere;
	hyphens: auto;
	text-wrap: balance;
}

.nc-card__link {
	color: inherit !important;
	text-decoration: none !important;
}

.nc-card__link::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
}

.nc-card__link:focus-visible { outline: none; }

.nc-card:has(.nc-card__link:focus-visible) {
	outline: 3px solid var(--nc-gold);
	outline-offset: 3px;
}

.nc-card__excerpt {
	margin: 0 0 0.8rem;
	color: var(--nc-paper-2);
	font-size: 0.95rem;
	line-height: 1.5;
}

.nc-card .nc-status {
	margin-top: auto;
	padding-top: 0.7rem;
	border-top: 1px dashed var(--nc-line-2);
	font-size: 0.86rem;
}

.nc-card__art {
	position: relative;
	aspect-ratio: 16 / 10;
	overflow: hidden;
	background: var(--nc-night);
}

.nc-card__art .nc-img,
.nc-card__art img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.6s var(--nc-ease);
}

.nc-card__art::after {
	content: "";
	position: absolute;
	inset: auto 0 0 0;
	height: 40%;
	background: linear-gradient(transparent, rgb(21 28 51 / 0.95));
}

@media (hover: hover) {
	.nc-card:hover {
		transform: translateY(-3px);
		border-color: color-mix(in oklab, var(--nc-cat) 50%, transparent);
		background: var(--nc-surface-2);
		box-shadow: 0 1px 0 rgb(255 255 255 / 0.06) inset, 0 26px 50px -28px color-mix(in oklab, var(--nc-cat) 55%, #000);
	}

	.nc-card:hover .nc-card__art img { transform: scale(1.045); }
	.nc-card:hover .nc-card__title { color: #fff; }
}

.nc-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 280px), 1fr));
	gap: 1rem;
}

/* ------------------------------------------------------------------ Program */

.nc-program { padding-bottom: 5rem; }

.nc-program__head { padding: clamp(2.2rem, 6vw, 4.5rem) 0 1.6rem; }

.nc-program__title {
	margin: 0;
	font: 800 clamp(2.8rem, 9vw, 5.6rem)/0.95 var(--nc-font-display);
	letter-spacing: -0.035em;
	color: var(--nc-paper);
}

.nc-legend {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem 1.2rem;
	margin: 1.3rem 0 0;
	padding: 0;
	list-style: none;
}

.nc-legend .nc-status { font-size: 0.82rem; }

.nc-program__bar {
	position: sticky;
	top: var(--nc-header-h);
	z-index: 30;
	border-block: 1px solid var(--nc-line);
	background: rgb(11 16 32 / 0.86);
	-webkit-backdrop-filter: blur(12px) saturate(1.2);
	backdrop-filter: blur(12px) saturate(1.2);
}

.nc-program__bar-inner {
	display: flex;
	align-items: center;
	gap: 0.6rem;
	min-height: 64px;
}

.nc-daynav {
	display: flex;
	flex: 1;
	gap: 0.3rem;
	overflow-x: auto;
	scrollbar-width: none;
}

.nc-daynav::-webkit-scrollbar { display: none; }

.nc-daynav__link {
	position: relative;
	display: flex;
	flex-direction: column;
	justify-content: center;
	min-height: 48px;
	padding: 0.35rem 0.95rem;
	border-radius: 12px;
	color: var(--nc-paper-2) !important;
	text-decoration: none !important;
	white-space: nowrap;
	transition: background-color 0.2s, color 0.2s;
}

.nc-daynav__name { font: 750 1rem/1.15 var(--nc-font-display); }
.nc-daynav__meta { font-size: 0.74rem; color: var(--nc-muted); }
.nc-daynav__link:hover { background: rgb(244 234 213 / 0.06); color: var(--nc-paper) !important; }

.nc-daynav__link[aria-current="true"] {
	background: var(--nc-surface-2);
	color: var(--nc-paper) !important;
}

.nc-daynav__link[aria-current="true"]::after {
	content: "";
	position: absolute;
	inset: auto 0.95rem 4px;
	height: 3px;
	border-radius: 3px;
	background: var(--nc-gold);
}

.nc-filter-toggle {
	display: inline-flex;
	align-items: center;
	gap: 0.45rem;
	min-height: 44px;
	padding: 0 0.95rem;
	border: 1.5px solid var(--nc-line-2);
	border-radius: 12px;
	background: transparent;
	color: var(--nc-paper);
	font: 700 0.95rem var(--nc-font-display);
	cursor: pointer;
}

.nc-filter-toggle[aria-expanded="true"],
.nc-filter-toggle:hover { border-color: var(--nc-gold); color: var(--nc-gold-2); }

.nc-filter-toggle__count[hidden] { display: none; }

.nc-filter-toggle__count {
	display: inline-grid;
	place-items: center;
	min-width: 1.4em;
	height: 1.4em;
	border-radius: 999px;
	background: var(--nc-gold);
	color: var(--nc-gold-ink);
	font-size: 0.75rem;
}

.nc-filters {
	display: flex;
	flex-wrap: wrap;
	gap: 0.4rem 2rem;
	padding: 0.3rem 0 1rem;
}

.nc-filters[hidden] { display: none; }

.nc-filters__group {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.4rem;
	margin: 0;
	padding: 0;
	border: 0;
}

.nc-filters__group legend {
	float: left;
	margin-right: 0.4rem;
	font: 700 0.72rem var(--nc-font-display);
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--nc-muted);
}

.nc-pill {
	display: inline-flex;
	align-items: center;
	gap: 0.4em;
	min-height: 40px;
	padding: 0 0.9rem;
	border: 1.5px solid var(--nc-line-2);
	border-radius: 999px;
	background: transparent;
	color: var(--nc-paper-2);
	font: 650 0.9rem var(--nc-font-display);
	cursor: pointer;
	transition: background-color 0.2s, border-color 0.2s, color 0.2s;
}

.nc-pill:hover { border-color: var(--nc-cat); color: var(--nc-paper); }

.nc-pill[aria-pressed="true"] {
	border-color: var(--nc-cat);
	background: color-mix(in oklab, var(--nc-cat) 22%, transparent);
	color: #fff;
}

.nc-filters__result {
	flex-basis: 100%;
	margin: 0.2rem 0 0;
	color: var(--nc-muted);
	font-size: 0.85rem;
}

.nc-day {
	margin-top: clamp(2.6rem, 7vw, 4.5rem);
	scroll-margin-top: calc(var(--nc-header-h) + 84px);
}

.nc-day__head {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 0.2rem 1.4rem;
	padding-bottom: 1.1rem;
	position: relative;
	color: var(--nc-line-2);
}

.nc-day__head::after {
	content: "";
	position: absolute;
	inset: auto 0 0 0;
	height: 11px;
	background:
		linear-gradient(currentColor, currentColor) bottom / 100% 2px no-repeat,
		var(--nc-crenel) top / 100% 9px no-repeat;
	opacity: 0.9;
}

.nc-day__title {
	margin: 0;
	font: 700 clamp(3rem, 10vw, 5.4rem)/0.9 var(--nc-font-gothic);
	color: var(--nc-gold);
	text-shadow: 0 0 34px rgb(242 181 68 / 0.28);
}

.nc-day__date,
.nc-day__open {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	margin: 0;
	font: 650 1rem/1.3 var(--nc-font-display);
	color: var(--nc-paper-2);
}

.nc-day__open .nc-icon { color: var(--nc-teal); }

.nc-timeline {
	position: relative;
	display: grid;
	gap: 1.3rem;
	margin: 1.6rem 0 0;
	padding: 0;
	list-style: none;
}

.nc-slot {
	position: relative;
	display: grid;
	grid-template-columns: 104px minmax(0, 1fr);
	gap: 1.4rem;
}

.nc-slot[hidden] { display: none; }

.nc-slot::before {
	content: "";
	position: absolute;
	top: 0.2rem;
	bottom: -1.3rem;
	left: 118px;
	width: 2px;
	background: linear-gradient(180deg, rgb(242 181 68 / 0.55), rgb(244 234 213 / 0.08));
}

.nc-slot:last-child::before { bottom: 0; background: linear-gradient(180deg, rgb(242 181 68 / 0.55), transparent); }

.nc-slot__time {
	position: sticky;
	top: calc(var(--nc-header-h) + 84px);
	align-self: start;
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	gap: 0.3rem;
	padding-top: 0.55rem;
	text-align: right;
}

.nc-slot__time::after {
	content: "";
	position: absolute;
	top: 1.05rem;
	right: -21px;
	width: 12px;
	height: 12px;
	border: 2px solid var(--nc-gold);
	border-radius: 3px;
	background: var(--nc-night);
	transform: rotate(45deg);
}

.nc-slot__clock {
	font: 800 1.65rem/1 var(--nc-font-display);
	font-variant-numeric: tabular-nums;
	letter-spacing: -0.02em;
	color: var(--nc-paper);
}

.nc-slot__label {
	font: 750 0.95rem/1.2 var(--nc-font-display);
	color: var(--nc-teal);
}

.nc-slot__label--tbd { color: var(--nc-muted); font-style: italic; }

.nc-slot__parallel {
	padding: 1px 8px;
	border-radius: 999px;
	background: rgb(67 198 184 / 0.14);
	color: var(--nc-teal);
	font: 700 0.72rem/1.5 var(--nc-font-display);
	white-space: nowrap;
}

.nc-slot__items {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 290px), 1fr));
	gap: 0.9rem;
	padding-left: 1.2rem;
}

.nc-card[hidden] { display: none; }

.nc-program__foot {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	margin-top: 4rem;
	padding-top: 1.5rem;
	border-top: 1px solid var(--nc-line);
}

.nc-program__share { display: flex; flex-wrap: wrap; gap: 0.6rem; }
.nc-program__years { margin: 0; color: var(--nc-muted); }
.nc-program__years a { color: var(--nc-paper-2); margin-left: 0.4rem; }

@media (max-width: 720px) {
	.nc-slot { grid-template-columns: minmax(0, 1fr); gap: 0.6rem; }
	.nc-slot::before { display: none; }

	.nc-slot__time {
		position: static;
		flex-direction: row;
		align-items: center;
		justify-content: flex-start;
		gap: 0.6rem;
		padding-top: 0;
		text-align: left;
	}

	.nc-slot__time::after {
		position: static;
		order: 2;
		flex: 1;
		width: auto;
		height: 2px;
		border: 0;
		border-radius: 0;
		background: linear-gradient(90deg, rgb(242 181 68 / 0.5), transparent);
		transform: none;
	}

	.nc-slot__parallel { order: 3; }
	.nc-slot__items { padding-left: 0; }
	.nc-slot__clock { font-size: 1.4rem; }
	.nc-daynav__link { padding-inline: 0.75rem; }
	.nc-filters { gap: 0.6rem; }
	.nc-filters__group legend { float: none; width: 100%; margin: 0.3rem 0 0.1rem; }
}

/* ------------------------------------------------------------------ Activity page */

.nc-activity__hero {
	position: relative;
	padding: clamp(1.4rem, 4vw, 2.6rem) 0 clamp(2rem, 6vw, 3.6rem);
	border-bottom: 1px solid var(--nc-line);
	background:
		radial-gradient(60% 70% at 85% 10%, color-mix(in oklab, var(--nc-cat) 20%, transparent), transparent 70%),
		radial-gradient(40% 50% at 10% 100%, rgb(166 143 255 / 0.12), transparent 70%),
		linear-gradient(180deg, var(--nc-night-2), var(--nc-night));
	overflow: hidden;
}

.nc-activity__hero-grid {
	display: grid;
	grid-template-columns: minmax(0, 1.2fr) minmax(0, 0.8fr);
	gap: clamp(1.5rem, 5vw, 4rem);
	align-items: center;
}

.nc-crumbs { margin-bottom: 1.2rem; }

.nc-crumbs a {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	min-height: 44px;
	color: var(--nc-paper-2) !important;
	font: 650 0.95rem var(--nc-font-display);
	text-decoration: none !important;
}

.nc-crumbs a:hover { color: var(--nc-gold) !important; }

.nc-activity__cats { display: flex; flex-wrap: wrap; gap: 0.4rem; margin: 0 0 0.9rem; }

.nc-activity__title {
	margin: 0;
	font: 800 clamp(2.3rem, 6.4vw, 4.4rem)/1 var(--nc-font-display);
	letter-spacing: -0.03em;
	color: var(--nc-paper);
	overflow-wrap: anywhere;
	hyphens: auto;
	text-wrap: balance;
}

.nc-activity__lede {
	max-width: 42ch;
	margin: 1rem 0 0;
	font-size: clamp(1.05rem, 2.2vw, 1.25rem);
	line-height: 1.5;
	color: var(--nc-paper-2);
}

.nc-facts {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 210px), 1fr));
	gap: 0.7rem 1.2rem;
	margin: 1.6rem 0 0;
	padding: 0;
	list-style: none;
}

.nc-facts li {
	display: flex;
	align-items: center;
	gap: 0.7rem;
	color: var(--nc-paper-2);
	line-height: 1.35;
}

.nc-facts li > .nc-icon {
	box-sizing: content-box;
	padding: 9px;
	border: 1px solid var(--nc-line);
	border-radius: 10px;
	background: rgb(11 16 32 / 0.6);
	color: var(--nc-cat);
}

.nc-facts strong { color: var(--nc-paper); margin-right: 0.3rem; }
.nc-facts .nc-flag,
.nc-facts .nc-tbd { margin-left: 0.2rem; }

.nc-activity__art { margin: 0; justify-self: end; width: min(100%, 440px); }

.nc-activity__art img,
.nc-activity__art .nc-img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 1;
	object-fit: cover;
	border: 1px solid var(--nc-line-2);
	border-radius: var(--nc-radius-l);
	box-shadow: 0 40px 80px -40px rgb(0 0 0 / 0.9), 0 0 0 8px rgb(244 234 213 / 0.03);
	transform: rotate(1.8deg);
	transition: transform 0.6s var(--nc-ease);
}

.nc-activity__art:hover img { transform: rotate(0) scale(1.01); }

.nc-activity__main {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(300px, 400px);
	gap: clamp(1.5rem, 5vw, 4rem);
	align-items: start;
	padding: clamp(2rem, 5vw, 3.5rem) 0;
}

.nc-activity__content { min-width: 0; }

.nc-prose {
	max-width: 68ch;
	color: var(--nc-paper-2);
	font-size: 1.06rem;
	line-height: 1.7;
}

.nc-prose a { color: var(--nc-gold); }
.nc-prose > :first-child { margin-top: 0; }
.nc-prose p,
.nc-prose ul { margin: 0 0 1rem; }
.nc-prose h3 {
	margin: 1.9rem 0 0.5rem;
	font-size: 1.2rem;
	line-height: 1.25;
	letter-spacing: -0.01em;
}
.nc-prose ul { padding-left: 1.2rem; }
.nc-prose li { margin: 0.2rem 0; }
.nc-prose li::marker { color: var(--nc-cat, var(--nc-gold)); }
.nc-prose em { font-style: italic; color: var(--nc-paper); }
.nc-prose .nc-term {
	margin: 1.6rem 0;
	padding: 0.9rem 1.1rem;
	border-left: 3px solid var(--nc-cat, var(--nc-gold));
	border-radius: 0 12px 12px 0;
	background: rgb(244 234 213 / 0.05);
	font-size: 0.98rem;
	line-height: 1.6;
}
.nc-prose .nc-term strong { color: var(--nc-paper); }

.nc-details {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr));
	gap: 0.8rem;
	margin: 1.6rem 0;
}

.nc-details > div {
	padding: 0.8rem 1rem;
	border: 1px solid var(--nc-line);
	border-radius: 12px;
	background: var(--nc-surface);
}

.nc-details dt {
	display: flex;
	align-items: center;
	gap: 0.4rem;
	font: 700 0.75rem var(--nc-font-display);
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--nc-muted);
}

.nc-details dd { margin: 0.25rem 0 0; color: var(--nc-paper); }

.nc-notes {
	margin: 1.6rem 0;
	padding: 1rem 1.2rem;
	border: 1px dashed rgb(242 181 68 / 0.4);
	border-radius: 14px;
	background: rgb(242 181 68 / 0.05);
}

.nc-notes .nc-icon { color: var(--nc-gold); }
.nc-notes ul { margin: 0; padding-left: 1.2rem; color: var(--nc-paper-2); line-height: 1.6; }

.nc-activity__share { margin-top: 1.4rem; }

.nc-activity__panel {
	position: sticky;
	top: calc(var(--nc-header-h) + 20px);
	scroll-margin-top: calc(var(--nc-header-h) + 20px);
}

.nc-more { padding: 0 0 clamp(3rem, 8vw, 5rem); }

@media (max-width: 900px) {
	.nc-activity__hero-grid { grid-template-columns: minmax(0, 1fr); }

	.nc-activity__art {
		order: -1;
		justify-self: stretch;
		width: 100%;
	}

	.nc-activity__art img,
	.nc-activity__art .nc-img {
		aspect-ratio: 16 / 9;
		max-height: 260px;
		transform: none;
		border-radius: 18px;
	}

	.nc-activity__main { grid-template-columns: minmax(0, 1fr); }
	.nc-activity__panel { position: static; order: -1; }
}

/* ------------------------------------------------------------------ Registration panel + forms */

.nc-panel {
	position: relative;
	padding: 1.5rem 1.4rem 1.3rem;
	border: 1px solid var(--nc-line-2);
	border-radius: 20px;
	background:
		radial-gradient(120% 60% at 50% 0%, color-mix(in oklab, var(--nc-cat) 12%, transparent), transparent 70%),
		var(--nc-surface);
	box-shadow: var(--nc-shadow);
	color: var(--nc-paper-2);
	line-height: 1.55;
}

.nc-panel::before {
	content: "";
	position: absolute;
	inset: -1px 22px auto;
	height: 7px;
	color: var(--nc-cat);
	background: var(--nc-crenel);
	border-radius: 0 0 2px 2px;
	opacity: 0.85;
}

.nc-panel p { margin: 0 0 0.8rem; }
.nc-panel strong { color: var(--nc-paper); }

.nc-panel__title {
	display: flex;
	align-items: center;
	gap: 0.55rem;
	margin: 0.2rem 0 0.8rem;
	font: 800 1.45rem/1.15 var(--nc-font-display);
	letter-spacing: -0.01em;
	color: var(--nc-paper);
}

.nc-panel__title .nc-icon { color: var(--nc-cat); width: 1.2em; height: 1.2em; }
.nc-panel--open .nc-panel__title .nc-icon { color: var(--nc-ok); }
.nc-panel--waitlist .nc-panel__title .nc-icon { color: var(--nc-warn); }
.nc-panel--closed .nc-panel__title .nc-icon,
.nc-panel--full .nc-panel__title .nc-icon { color: var(--nc-bad); }
.nc-panel--dropin .nc-panel__title .nc-icon { color: var(--nc-teal); }

.nc-panel__count { font-size: 1rem; }
.nc-panel__explain { padding: 0.6rem 0.8rem; border-radius: 10px; background: rgb(255 181 77 / 0.08); color: #ffe6c2; font-size: 0.93rem; }
.nc-panel__small { display: flex; gap: 0.45rem; align-items: flex-start; font-size: 0.86rem; color: var(--nc-muted); }
.nc-panel__small .nc-icon { margin-top: 0.15em; }
.nc-panel .nc-btn + .nc-btn,
.nc-panel .nc-btn + .nc-panel__small { margin-top: 0.7rem; }

.nc-panel__ticket {
	display: flex;
	gap: 0.55rem;
	align-items: flex-start;
	margin: 1.1rem 0 0 !important;
	padding-top: 0.9rem;
	border-top: 1px dashed var(--nc-line-2);
	font-size: 0.85rem;
	color: var(--nc-muted);
}

.nc-panel__ticket .nc-icon { margin-top: 0.1em; color: var(--nc-gold); }

.nc-seats {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin: 0 0 0.6rem;
}

.nc-seat {
	width: 26px;
	height: 26px;
	background: var(--nc-ok);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2c2.486 0 3.713 1.766 3.955 4.1l.01 .124l.129 .036c3.17 .928 5.754 2.487 5.9 4.556l.006 .184c0 1.427 -1.297 2.322 -2.871 2.733l-.201 .049l.026 .03c.244 .276 .532 .603 .7 .797l.057 .066c.49 .573 .884 1.073 1.216 1.56c.69 1.01 1.073 1.904 1.073 2.765a2 2 0 0 1 -2 2h-5c-1.043 0 -1.344 -.453 -2.394 -2.553c-.29 -.58 -.448 -.882 -.593 -1.118l-.013 -.022l-.013 .022c-.129 .21 -.268 .472 -.5 .935l-.093 .183c-1.05 2.1 -1.351 2.553 -2.394 2.553h-5a2 2 0 0 1 -2 -2c0 -.86 .384 -1.755 1.073 -2.765a18 18 0 0 1 1.216 -1.56c.152 -.178 .482 -.553 .757 -.863l.025 -.03l-.2 -.049c-1.506 -.393 -2.758 -1.23 -2.864 -2.55l-.007 -.183c0 -2.16 2.643 -3.785 5.906 -4.74l.128 -.036l.011 -.124c.235 -2.26 1.394 -3.99 3.726 -4.095z'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2c2.486 0 3.713 1.766 3.955 4.1l.01 .124l.129 .036c3.17 .928 5.754 2.487 5.9 4.556l.006 .184c0 1.427 -1.297 2.322 -2.871 2.733l-.201 .049l.026 .03c.244 .276 .532 .603 .7 .797l.057 .066c.49 .573 .884 1.073 1.216 1.56c.69 1.01 1.073 1.904 1.073 2.765a2 2 0 0 1 -2 2h-5c-1.043 0 -1.344 -.453 -2.394 -2.553c-.29 -.58 -.448 -.882 -.593 -1.118l-.013 -.022l-.013 .022c-.129 .21 -.268 .472 -.5 .935l-.093 .183c-1.05 2.1 -1.351 2.553 -2.394 2.553h-5a2 2 0 0 1 -2 -2c0 -.86 .384 -1.755 1.073 -2.765a18 18 0 0 1 1.216 -1.56c.152 -.178 .482 -.553 .757 -.863l.025 -.03l-.2 -.049c-1.506 -.393 -2.758 -1.23 -2.864 -2.55l-.007 -.183c0 -2.16 2.643 -3.785 5.906 -4.74l.128 -.036l.011 -.124c.235 -2.26 1.394 -3.99 3.726 -4.095z'/%3E%3C/svg%3E") center / contain no-repeat;
	filter: drop-shadow(0 0 6px rgb(127 227 165 / 0.45));
}

.nc-seat.is-taken { background: rgb(244 234 213 / 0.22); filter: none; }
.nc-panel--waitlist .nc-seat.is-taken { background: rgb(255 181 77 / 0.4); }

.nc-form { margin-top: 0.4rem; }

.nc-field { margin: 0 0 0.95rem; }

.nc-field label {
	display: block;
	margin-bottom: 0.35rem;
	font: 700 0.95rem var(--nc-font-display);
	color: var(--nc-paper);
}

.nc-field input {
	box-sizing: border-box;
	width: 100%;
	min-height: 50px;
	padding: 0 0.95rem;
	border: 1.5px solid var(--nc-line-2);
	border-radius: 12px;
	background: var(--nc-night);
	color: var(--nc-paper);
	font: 400 1rem var(--nc-font-body);
	transition: border-color 0.2s, box-shadow 0.2s;
}

.nc-field input::placeholder { color: var(--nc-muted); }

.nc-field input:focus {
	outline: none;
	border-color: var(--nc-gold);
	box-shadow: 0 0 0 4px rgb(242 181 68 / 0.22);
}

.nc-field input:user-invalid { border-color: var(--nc-bad); }

.nc-field__help { margin: 0.35rem 0 0 !important; font-size: 0.84rem; color: var(--nc-muted); line-height: 1.45; }

.nc-privacy { margin-top: 0.8rem !important; }

.nc-form--row {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 0.7rem;
	align-items: end;
	margin: 1.2rem 0;
}

.nc-form--row .nc-field { margin: 0; }

@media (max-width: 560px) {
	.nc-form--row { grid-template-columns: minmax(0, 1fr); }
}

.nc-inline-form { margin-top: 0.4rem; }

/* ------------------------------------------------------------------ Receipt / manage */

.nc-manage {
	width: min(100% - 2 * var(--nc-gutter), 740px);
	margin: clamp(2rem, 6vw, 4rem) auto clamp(3rem, 8vw, 5rem);
}

.nc-receipt {
	position: relative;
	padding: clamp(1.4rem, 5vw, 2.6rem);
	border: 1px solid var(--nc-line-2);
	border-radius: 24px;
	background:
		radial-gradient(80% 50% at 50% -10%, color-mix(in oklab, var(--nc-cat) 18%, transparent), transparent 70%),
		var(--nc-surface);
	box-shadow: var(--nc-shadow);
	color: var(--nc-paper-2);
	line-height: 1.6;
	overflow: hidden;
}

.nc-receipt::before {
	content: "";
	position: absolute;
	inset: 0 28px auto;
	height: 8px;
	color: var(--nc-gold);
	background: var(--nc-crenel);
	opacity: 0.8;
}

.nc-receipt__badge {
	display: grid;
	place-items: center;
	width: 64px;
	height: 64px;
	margin-bottom: 1rem;
	border-radius: 18px;
	background: rgb(242 181 68 / 0.14);
	color: var(--nc-gold);
	animation: nc-pop 0.55s var(--nc-ease) both;
}

.nc-receipt__badge .nc-icon { width: 34px; height: 34px; }
.nc-receipt__badge--ok { background: rgb(127 227 165 / 0.15); color: var(--nc-ok); }
.nc-receipt__badge--wait { background: rgb(255 181 77 / 0.15); color: var(--nc-warn); }
.nc-receipt__badge--off { background: rgb(244 234 213 / 0.08); color: var(--nc-paper-2); }
.nc-receipt__badge--warn { background: rgb(255 133 119 / 0.15); color: var(--nc-bad); }

.nc-receipt__title {
	margin: 0 0 0.6rem;
	font: 800 clamp(1.9rem, 5.5vw, 2.9rem)/1.05 var(--nc-font-display);
	letter-spacing: -0.025em;
	color: var(--nc-paper);
	text-wrap: balance;
}

.nc-receipt__lede { font: 650 1.1rem var(--nc-font-display); color: var(--nc-paper); }

.nc-receipt__list {
	display: grid;
	margin: 1.4rem 0;
	border-top: 1px solid var(--nc-line);
}

.nc-receipt__list > div {
	display: grid;
	grid-template-columns: 120px minmax(0, 1fr);
	gap: 1rem;
	padding: 0.7rem 0;
	border-bottom: 1px solid var(--nc-line);
}

.nc-receipt__list dt {
	font: 700 0.76rem/1.9 var(--nc-font-display);
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--nc-muted);
}

.nc-receipt__list dd { margin: 0; color: var(--nc-paper); overflow-wrap: anywhere; }
.nc-receipt__list a { color: var(--nc-gold); }
.nc-receipt__explain { color: var(--nc-paper-2); }

.nc-receipt__keep {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.4rem 0.6rem;
	font-size: 0.9rem;
	color: var(--nc-muted);
}

.nc-receipt__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.6rem;
	margin-top: 1.4rem;
}

@media (max-width: 520px) {
	.nc-receipt__list > div { grid-template-columns: minmax(0, 1fr); gap: 0.1rem; }
	.nc-receipt__actions .nc-btn { flex: 1 1 100%; }
}

/* ------------------------------------------------------------------ Highlights & facts */

.nc-grid--highlights { grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)); gap: 1.1rem; }

.nc-factgrid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 200px), 1fr));
	gap: 1rem;
	margin: 0;
}

.nc-fact {
	padding: 1.2rem 1.25rem;
	border: 1px solid var(--nc-line);
	border-radius: 16px;
	background: var(--nc-surface);
}

.nc-fact dt {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	margin-bottom: 0.5rem;
	font: 750 0.8rem var(--nc-font-display);
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--nc-gold);
}

.nc-fact dd { margin: 0; color: var(--nc-paper); line-height: 1.5; }
.nc-fact dd small { display: block; margin-top: 0.5rem; color: var(--nc-muted); font-size: 0.85rem; }
.nc-fact dd a { color: var(--nc-gold); }
.nc-fact__days { margin: 0.5rem 0 0; padding: 0; list-style: none; color: var(--nc-paper-2); font-size: 0.93rem; }
.nc-fact__days strong { color: var(--nc-paper); }

/* ------------------------------------------------------------------ Motion */

@keyframes nc-pop {
	from { transform: scale(0.6) rotate(-8deg); opacity: 0; }
	to { transform: none; opacity: 1; }
}

.nc-js .nc-reveal { opacity: 0; transform: translateY(14px); }
.nc-js .nc-reveal.is-in { opacity: 1; transform: none; transition: opacity 0.6s var(--nc-ease), transform 0.6s var(--nc-ease); }

@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
		scroll-behavior: auto !important;
	}

	.nc-js .nc-reveal { opacity: 1; transform: none; }
	.nc-activity__art img { transform: none; }
}

.nc-toast {
	position: fixed;
	left: 50%;
	bottom: max(20px, env(safe-area-inset-bottom));
	z-index: 1000;
	padding: 0.7rem 1.1rem;
	border: 1px solid var(--nc-line-2);
	border-radius: 12px;
	background: var(--nc-surface-3);
	color: var(--nc-paper);
	font: 650 0.95rem var(--nc-font-display);
	box-shadow: var(--nc-shadow);
	transform: translate(-50%, 20px);
	opacity: 0;
	pointer-events: none;
	transition: opacity 0.25s, transform 0.25s var(--nc-ease);
}

.nc-toast.is-visible { opacity: 1; transform: translate(-50%, 0); }

@media print {
	.nc-program__bar, .nc-program__foot, .nc-legend { display: none !important; }
	.nc-card { break-inside: avoid; box-shadow: none; }
}

/* ------------------------------------------------------------------ Day overview on activity page */

.nc-dayline { margin: 0.4rem 0 1.6rem; }
.nc-activity__content > .nc-dayline:not(:first-child) { margin-top: 2.2rem; }

.nc-dayline__list {
	margin: 0.8rem 0 0;
	padding: 0;
	list-style: none;
	border: 1px solid var(--nc-line);
	border-radius: 16px;
	background: rgb(21 28 51 / 0.55);
	overflow: hidden;
}

.nc-dayline__item {
	position: relative;
	display: grid;
	grid-template-columns: 7.4rem minmax(0, 1fr);
	gap: 0.9rem;
	padding: 0.75rem 1rem 0.75rem 1.2rem;
	border-bottom: 1px solid var(--nc-line);
}

.nc-dayline__item:last-child { border-bottom: 0; }

.nc-dayline__item::before {
	content: "";
	position: absolute;
	inset: 0.7rem auto 0.7rem 0;
	width: 3px;
	border-radius: 0 3px 3px 0;
	background: var(--nc-cat);
	opacity: 0.7;
}

.nc-dayline__item.is-current { background: color-mix(in oklab, var(--nc-cat) 12%, transparent); }
.nc-dayline__item.is-current::before { opacity: 1; width: 4px; }

.nc-dayline__time {
	font: 700 0.92rem/1.5 var(--nc-font-display);
	color: var(--nc-paper);
	font-variant-numeric: tabular-nums;
}

.nc-dayline__main { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.2rem 0.6rem; min-width: 0; }
.nc-dayline__main a { color: var(--nc-paper) !important; font-weight: 650; text-decoration-color: rgb(244 234 213 / 0.35); }
.nc-dayline__main a:hover { color: var(--nc-gold) !important; }
.nc-dayline__main strong { color: var(--nc-paper); }
.nc-dayline__main .nc-status { flex-basis: 100%; font-size: 0.8rem; }

.nc-dayline__you,
.nc-dayline__overlap {
	padding: 0 7px;
	border-radius: 999px;
	font: 700 0.68rem/1.6 var(--nc-font-display);
	letter-spacing: 0.06em;
	text-transform: uppercase;
	white-space: nowrap;
}

.nc-dayline__you { background: var(--nc-gold); color: var(--nc-gold-ink); }
.nc-dayline__overlap { border: 1px solid rgb(67 198 184 / 0.5); color: var(--nc-teal); }

.nc-activity__share { display: flex; flex-wrap: wrap; gap: 0.5rem; }

@media (max-width: 520px) {
	.nc-dayline__item { grid-template-columns: minmax(0, 1fr); gap: 0.1rem; }
}
.nc-dayline__time .nc-flag { display: block; width: max-content; margin-top: 0.15rem; }

.nc-card__duration { display: inline-flex; align-items: center; gap: 0.3rem; color: var(--nc-muted); font: 600 0.82rem/1.3 var(--nc-font-display); white-space: nowrap; }
.nc-card__duration .nc-icon { width: 1em; height: 1em; }
.nc-fact__sub { display: block; font-size: 0.88rem; color: var(--nc-muted); }

.nc-opening { display: flex; align-items: center; gap: 0.5rem; margin: 0 0 1rem; padding: 0.7rem 0.9rem; border-radius: 12px; background: rgb(242 181 68 / 0.1); color: var(--nc-paper); font: 650 1rem var(--nc-font-display); }
.nc-opening[hidden] { display: none; }
.nc-manage__close { margin: 0.8rem 0 0; text-align: right; }
.nc-manage .nc-h3 { margin-top: 1.4rem; }

/* Link to another registration while one is open: ask first */
.nc-switch { margin: 0 0 1.2rem; }
.nc-switch[hidden] { display: none; }
.nc-switch p { margin: 0 0 0.7rem; }
.nc-switch__actions { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.nc-receipt__link { display: grid; gap: 0.35rem; margin: 0 0 1rem; }
.nc-receipt__link label { font-weight: 650; color: var(--nc-paper); font-size: 0.92rem; }
.nc-receipt__link input { width: 100%; min-width: 0; padding: 0.6rem 0.7rem; border: 1px solid var(--nc-line); border-radius: 10px; background: rgb(0 0 0 / 0.25); color: var(--nc-paper); font: 500 0.9rem/1.4 ui-monospace, SFMono-Regular, Menlo, monospace; }

/* ------------------------------------------------------------------ Activity content components (post content) */

/* «Kort fortalt»: type of experience at a glance */
.nc-prose .nc-glance {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr)); /* four short facts: 2 × 2 on phone and desktop */
	gap: 0.6rem;
	margin: 1.4rem 0 1.8rem;
	padding: 0;
	list-style: none;
}
.nc-prose .nc-glance li {
	margin: 0;
	padding: 0.75rem 0.9rem;
	border: 1px solid var(--nc-line);
	border-top: 3px solid var(--nc-cat, var(--nc-gold));
	border-radius: 12px;
	background: rgb(244 234 213 / 0.035);
	font-size: 0.95rem;
	line-height: 1.45;
}
.nc-prose .nc-glance li::marker { content: none; }
.nc-prose .nc-glance strong {
	display: block;
	margin-bottom: 0.15rem;
	color: var(--nc-muted);
	font: 700 0.72rem/1.3 var(--nc-font-display);
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

/* Numbered steps (e.g. how a booster draft works) */
.nc-prose .nc-steps {
	counter-reset: nc-step;
	display: grid;
	gap: 0.7rem;
	margin: 1rem 0 1.6rem;
	padding: 0;
	list-style: none;
}
.nc-prose .nc-steps > li {
	counter-increment: nc-step;
	position: relative;
	margin: 0;
	padding: 0.8rem 1rem 0.8rem 3.4rem;
	border: 1px solid var(--nc-line);
	border-radius: 14px;
	background: var(--nc-surface);
}
.nc-prose .nc-steps > li::marker { content: none; }
.nc-prose .nc-steps > li::before {
	content: counter(nc-step);
	position: absolute;
	top: 0.8rem;
	left: 0.9rem;
	display: grid;
	place-items: center;
	width: 1.8rem;
	height: 1.8rem;
	border-radius: 50%;
	background: var(--nc-cat, var(--nc-gold));
	color: var(--nc-night);
	font: 800 0.95rem/1 var(--nc-font-display);
}
.nc-prose .nc-steps strong { color: var(--nc-paper); }

/* Two-column comparison */
.nc-prose .nc-compare {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr));
	gap: 0.8rem;
	margin: 1rem 0 1.6rem;
}
.nc-prose .nc-compare > div {
	padding: 0.9rem 1rem;
	border: 1px solid var(--nc-line);
	border-radius: 14px;
	background: rgb(244 234 213 / 0.03);
}
.nc-prose .nc-compare > div:first-child { border-color: rgb(242 181 68 / 0.45); }
.nc-prose .nc-compare h4 { margin: 0 0 0.4rem; font-size: 1.02rem; color: var(--nc-paper); }
.nc-prose .nc-compare p { margin: 0; font-size: 0.97rem; }

/* Local, confirmed arrangements – visually separate from general game information */
.nc-prose .nc-local {
	margin: 2rem 0 1.6rem;
	padding: 1rem 1.15rem;
	border: 1px solid rgb(67 198 184 / 0.4);
	border-radius: 16px;
	background: rgb(67 198 184 / 0.06);
}
.nc-prose .nc-local h3 { margin-top: 0; }
.nc-prose .nc-local ul { margin-bottom: 0; }

/* Figures with credit (official images are always credited) */
.nc-prose .nc-figures {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr)); /* cards come in pairs */
	gap: 0.8rem;
	margin: 1.2rem 0 1.4rem;
}
.nc-prose figure { margin: 1.2rem 0; }
.nc-prose .nc-figures figure { margin: 0; }
.nc-prose figure img {
	display: block;
	width: 100%;
	height: auto;
	border-radius: 12px;
	background: var(--nc-surface);
}
.nc-prose figcaption {
	margin-top: 0.4rem;
	font-family: var(--nc-font-body);
	color: var(--nc-muted);
	font-size: 0.82rem;
	line-height: 1.4;
}
.nc-prose .nc-figure--wide img { aspect-ratio: 16 / 9; object-fit: cover; }
.nc-prose .nc-source {
	color: var(--nc-muted);
	font-size: 0.86rem;
}
.nc-prose .nc-links { display: flex; flex-wrap: wrap; gap: 0.5rem 1rem; padding: 0; list-style: none; }
.nc-prose .nc-links li::marker { content: none; }

/* ------------------------------------------------------------------ Sponsors («Årets sponsorer») */

.nc-sponsors {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 230px), 1fr));
	gap: 1rem;
	margin: 0;
	padding: 0;
	list-style: none;
}
.nc-sponsor { margin: 0; }
.nc-sponsor__card {
	display: flex;
	flex-direction: column;
	gap: 0.55rem;
	height: 100%;
	padding: 0.8rem 0.8rem 1rem;
	border: 1px solid var(--nc-line);
	border-radius: var(--nc-radius);
	background: var(--nc-surface);
	color: var(--nc-paper);
	text-decoration: none;
	transition: border-color 160ms var(--nc-ease), transform 160ms var(--nc-ease);
}
.nc-site a.nc-sponsor__card { color: var(--nc-paper); text-decoration: none; }
.nc-sponsor__card--link:hover { border-color: rgb(242 181 68 / 0.55); transform: translateY(-2px); }
.nc-sponsor__card--link:focus-visible { outline: 3px solid var(--nc-gold); outline-offset: 3px; }
@media (prefers-reduced-motion: reduce) { .nc-sponsor__card--link:hover { transform: none; } }

/* Logo tile: fixed height, logo drawn at a width that equalises visual weight (set per logo), never cropped. */
.nc-sponsor__logo {
	display: grid;
	place-items: center;
	min-height: 128px;
	padding: 18px;
	border-radius: calc(var(--nc-radius) - 4px);
}
.nc-sponsor__logo--light { background: #fbf8f1; }
.nc-sponsor__logo--dark { background: #0e1220; box-shadow: inset 0 0 0 1px rgb(244 234 213 / 0.12); }
.nc-sponsor__logo img {
	display: block;
	width: var(--nc-logo-w, 140px);
	max-width: 100%;
	height: auto;
	max-height: 92px;
	object-fit: contain;
}
.nc-sponsor__logo--text {
	background: linear-gradient(135deg, rgb(242 181 68 / 0.12), rgb(166 143 255 / 0.1));
	box-shadow: inset 0 0 0 1px rgb(242 181 68 / 0.25);
}
.nc-sponsor__wordmark {
	max-width: 100%;
	font: 800 clamp(1.1rem, 2.4vw, 1.35rem)/1.15 var(--nc-font-display);
	letter-spacing: -0.01em;
	text-align: center;
	overflow-wrap: anywhere;
	hyphens: auto;
	color: var(--nc-paper);
}
.nc-sponsor__name {
	padding: 0 0.2rem;
	font: 700 1rem/1.3 var(--nc-font-display);
	overflow-wrap: anywhere;
}
.nc-sponsor__text {
	padding: 0 0.2rem;
	color: var(--nc-muted);
	font-size: 0.92rem;
	line-height: 1.45;
}
@media (max-width: 520px) {
	.nc-sponsors { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.7rem; }
	.nc-sponsor__logo { min-height: 104px; padding: 12px; }
	.nc-sponsor__logo img { width: calc(var(--nc-logo-w, 140px) * 0.72); max-height: 72px; }
	.nc-sponsor__name { font-size: 0.95rem; }
	.nc-sponsor__text { font-size: 0.86rem; }
}

/* ------------------------------------------------------------------ Praktisk info («Før du kommer») */

.nc-practical {
	display: grid;
	grid-template-columns: repeat(6, minmax(0, 1fr));
	gap: 1rem;
	margin: 0;
}
.nc-pcard {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 0.9rem;
	min-width: 0;
	padding: 1.35rem 1.4rem 1.45rem;
	border: 1px solid var(--nc-line);
	border-radius: var(--nc-radius-l);
	background:
		radial-gradient(120% 90% at 100% 0%, rgb(242 181 68 / 0.07), transparent 55%),
		linear-gradient(180deg, rgb(255 255 255 / 0.025), transparent 60%),
		var(--nc-surface);
	box-shadow: var(--nc-shadow);
}
.nc-pcard--when,
.nc-pcard--where { grid-column: span 3; }
.nc-pcard--rule { grid-column: span 2; }

.nc-pcard__label {
	display: flex;
	align-items: center;
	gap: 0.7rem;
	margin: 0;
	font: 750 0.78rem/1 var(--nc-font-display);
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--nc-gold);
}
.nc-pcard__icon {
	display: grid;
	flex: none;
	place-items: center;
	width: 2.5rem;
	height: 2.5rem;
	border: 1px solid rgb(242 181 68 / 0.35);
	border-radius: 50%;
	background: rgb(242 181 68 / 0.1);
	color: var(--nc-gold);
}
.nc-pcard__icon .nc-icon { width: 1.25rem; height: 1.25rem; }
.nc-pcard--age .nc-pcard__icon { border-color: rgb(67 198 184 / 0.4); background: rgb(67 198 184 / 0.1); color: var(--nc-teal); }
.nc-pcard--substance .nc-pcard__icon { border-color: rgb(166 143 255 / 0.4); background: rgb(166 143 255 / 0.1); color: var(--nc-violet); }
.nc-pcard--age .nc-pcard__label { color: var(--nc-teal); }
.nc-pcard--substance .nc-pcard__label { color: var(--nc-violet); }

.nc-pcard__body { display: flex; flex-direction: column; gap: 0.45rem; margin: 0; color: var(--nc-paper-2); }
.nc-pcard__body p { margin: 0; }
.nc-pcard__title {
	font: 750 clamp(1.25rem, 2.2vw, 1.5rem)/1.2 var(--nc-font-display);
	letter-spacing: -0.015em;
	color: var(--nc-paper);
}
.nc-pcard__statement {
	font: 700 clamp(1.08rem, 1.7vw, 1.2rem)/1.35 var(--nc-font-display);
	letter-spacing: -0.01em;
	color: var(--nc-paper);
	text-wrap: pretty;
}
.nc-pcard__text { font-size: 1.02rem; }
.nc-pcard__note { color: var(--nc-muted); font-size: 0.95rem; line-height: 1.5; }
.nc-pcard--age .nc-pcard__statement { font-weight: 500; line-height: 1.5; } /* long sentence: easier to read */

.nc-pcard__days {
	display: grid;
	gap: 0;
	margin: 0.2rem 0 0;
	padding: 0;
	list-style: none;
}
.nc-pcard__days li {
	display: grid;
	grid-template-columns: 5.2rem minmax(0, 1fr);
	gap: 0.8rem;
	padding: 0.5rem 0;
	border-top: 1px solid var(--nc-line);
	font-size: 0.98rem;
	line-height: 1.45;
}
.nc-pcard__days li:first-child { border-top: 0; padding-top: 0.15rem; }
.nc-pcard__day { font-weight: 700; color: var(--nc-paper); }

.nc-pcard__link {
	display: inline-flex;
	align-self: flex-start;
	align-items: center;
	gap: 0.45rem;
	margin-top: 0.35rem;
	padding: 0.5rem 0.9rem;
	border: 1px solid rgb(242 181 68 / 0.45);
	border-radius: 999px;
	font: 650 0.95rem/1 var(--nc-font-display);
	text-decoration: none;
	color: var(--nc-gold);
	transition: background 160ms var(--nc-ease), border-color 160ms var(--nc-ease);
}
.nc-site a.nc-pcard__link { text-decoration: none; }
.nc-pcard__link:hover { background: rgb(242 181 68 / 0.1); border-color: var(--nc-gold); }
.nc-pcard__link .nc-icon { width: 1.05rem; height: 1.05rem; }

@media (max-width: 619px) {
	.nc-practical { gap: 0.8rem; }
	.nc-pcard--when,
	.nc-pcard--where,
	.nc-pcard--rule { grid-column: span 6; }
	.nc-pcard { gap: 0.7rem; padding: 1.1rem 1.15rem 1.2rem; }
	.nc-pcard__icon { width: 2.2rem; height: 2.2rem; }
	.nc-pcard__days li { grid-template-columns: 4.6rem minmax(0, 1fr); gap: 0.6rem; }
}
