/*
Theme Name: Wizarding World Direct — Nuit
Theme URI: https://wizardingworlddirect.com
Author: WW_Direct
Description: Block theme for Wizarding World Direct. A starry Great Hall night: gold lightning, floating candles, Cinzel and Garamond type.
Version: 0.4.2
Requires at least: 6.5
Tested up to: 6.8
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: wwd-nuit
*/

/* ---------- Carried over from the previous theme's Additional CSS ---------- */
:where(.wp-site-blocks) > * { margin-block-start: 0; margin-block-end: 0; }

.pointer {
	width: auto;
	height: 40px;
	position: relative;
	background: var(--wp--preset--color--accent-4);
}
.pointer:before {
	content: "";
	position: absolute;
	right: -30px;
	bottom: 0;
	width: 0;
	height: 0;
	border-left: 30px solid var(--wp--preset--color--accent-4);
	border-top: 20px solid transparent;
	border-bottom: 20px solid transparent;
}
.double-hr {
	background: var(--wp--preset--color--accent-1);
	height: 3px;
	border-top: 1px solid #ffffff33;
	border-bottom: 1px solid #ffffff33;
}

/* ---------- Base ---------- */
html { scroll-behavior: smooth; }
body { background: var(--wp--preset--color--base); overflow-x: hidden; }
.wp-site-blocks { position: relative; z-index: 1; }
img { max-width: 100%; height: auto; }
::selection { background: var(--wp--preset--color--accent-1); color: var(--wp--preset--color--base); }
:focus-visible { outline: 2px solid var(--wp--preset--color--accent-1); outline-offset: 3px; }
.screen-reader-text:focus { background: var(--wp--preset--color--base-2); color: var(--wp--preset--color--accent-1); padding: 12px 18px; z-index: 100000; }

input, textarea, select {
	background: var(--wp--preset--color--surface);
	color: var(--wp--preset--color--contrast);
	border: 1px solid rgba(255,191,26,.3);
	border-radius: 12px;
	padding: .7rem 1rem;
	font: inherit;
}
input:focus, textarea:focus, select:focus { border-color: var(--wp--preset--color--accent-1); outline: none; box-shadow: 0 0 0 3px rgba(255,191,26,.2); }
::placeholder { color: var(--wp--preset--color--accent-3); }

/* ---------- Sky, glow, candles (injected by functions.php) ---------- */
.nuit-sky, .nuit-candles { position: fixed; inset: 0; z-index: 0; pointer-events: none; overflow: hidden; }
.nuit-stars {
	position: absolute; inset: 0;
	background-image:
		radial-gradient(1.5px 1.5px at 8% 12%, #fff, transparent), radial-gradient(1px 1px at 22% 40%, #efe6d2, transparent),
		radial-gradient(2px 2px at 36% 18%, #ffbf1a, transparent), radial-gradient(1px 1px at 51% 62%, #fff, transparent),
		radial-gradient(1.5px 1.5px at 64% 14%, #fff, transparent), radial-gradient(1px 1px at 77% 48%, #ffbf1a, transparent),
		radial-gradient(2px 2px at 90% 24%, #fff, transparent), radial-gradient(1px 1px at 14% 78%, #fff, transparent),
		radial-gradient(1.5px 1.5px at 70% 82%, #efe6d2, transparent), radial-gradient(1px 1px at 95% 70%, #fff, transparent),
		radial-gradient(1px 1px at 42% 90%, #fff, transparent), radial-gradient(1.5px 1.5px at 30% 66%, #efe6d2, transparent);
	animation: nuit-twinkle 5s ease-in-out infinite alternate;
}
.nuit-glow {
	position: absolute; left: 50%; top: -260px; width: 1100px; height: 900px; margin-left: -550px; opacity: .85;
	background: radial-gradient(closest-side, rgba(255,191,26,.22), rgba(255,191,26,0));
	transition: opacity .6s, filter .6s;
}
html.lumos .nuit-glow { opacity: 1; filter: brightness(1.9); }
@keyframes nuit-twinkle { 0% { opacity: .35; } 100% { opacity: 1; } }

.nuit-candle { position: absolute; left: var(--x); top: var(--y); width: 10px; scale: var(--s); opacity: .9; animation: nuit-drift var(--t) ease-in-out infinite alternate; animation-delay: var(--d); }
.nuit-candle i { display: block; }
.nuit-candle .wx { width: 8px; height: 26px; margin: 0 auto; border-radius: 2px 2px 1px 1px; background: linear-gradient(90deg, #b9ae92, #f4ecd6 45%, #a99e84); }
.nuit-candle .fl {
	width: 8px; height: 15px; margin: 0 auto -1px; border-radius: 50% 50% 50% 50% / 62% 62% 38% 38%;
	background: radial-gradient(ellipse at 50% 70%, #fff6c8, #ffbf1a 55%, rgba(255,150,20,0) 80%);
	box-shadow: 0 0 16px 8px rgba(255,191,26,.35); transform-origin: 50% 100%;
	animation: nuit-flicker 1.6s ease-in-out infinite alternate; animation-delay: var(--d);
}
html.lumos .nuit-candle .fl { box-shadow: 0 0 24px 12px rgba(255,191,26,.55); }
@keyframes nuit-drift { 0% { transform: translate(0,0); } 50% { transform: translate(7px,-14px); } 100% { transform: translate(-6px,-26px); } }
@keyframes nuit-flicker { 0% { transform: scale(1,.9); } 100% { transform: scale(.88,1.12); } }

/* ---------- Layout helpers ---------- */
.nuit-main { padding: 1.5rem 2rem 5rem; }
.nuit-main > .alignwide { max-width: 1280px; }
.nuit-section { margin-top: 3.5rem; }
.nuit-card__body { padding: 1.25rem 1.5rem 1.5rem; }
.nuit-hero { padding: 1.5rem 0 1rem; gap: 3rem; }
.nuit-footer__inner { padding: 4rem 2rem 2rem; }
.nuit-header__bar > * { margin-block: 0 !important; }
.nuit-share { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 2.5rem; padding-top: 1.75rem; border-top: 1px solid rgba(255,191,26,.25); }
@media (max-width: 781px) { .nuit-main { padding: 1rem 1.25rem 3rem; } }

/* ---------- Header ---------- */
.nuit-header { position: relative; z-index: 5; }
.nuit-header__bar { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 1rem; max-width: 1280px; margin: 0 auto; padding: 1.25rem 2rem; }
.nuit-header__logo img { display: block; height: 64px; width: auto; }
.nuit-header__tools { display: flex; justify-content: flex-end; align-items: center; gap: 1.25rem; align-self: stretch; }
.nuit-header__tools > .nuit-lumos { align-self: center; }

/* Hanging shop sign (HBO Harry Potter) */
.nuit-sign { position: relative; display: block; align-self: flex-start; flex: none; width: 112px; margin-top: -1.25rem; padding-top: 16px; transform-origin: 50% 0; animation: nuit-sway 7s ease-in-out infinite alternate; text-decoration: none; }
.nuit-sign img { display: block; width: 100%; height: auto; border-radius: 4px; transform-origin: 50% 0; animation: nuit-wiggle 3.1s ease-in-out infinite alternate; filter: drop-shadow(0 6px 10px rgba(0,0,0,.55)); transition: filter .3s; }
.nuit-sign__chains { position: absolute; top: 0; left: 0; right: 0; height: 18px; pointer-events: none; }
.nuit-sign__chains i { position: absolute; top: 0; bottom: 0; width: 3px; background: repeating-linear-gradient(180deg, #ffbf1a 0 3px, #7a5a10 3px 5px); border-radius: 2px; }
.nuit-sign__chains i:first-child { left: 16%; }
.nuit-sign__chains i:last-child { right: 16%; }
.nuit-sign:hover { animation-duration: 2.6s; }
.nuit-sign:hover img, .nuit-sign:focus-visible img { filter: drop-shadow(0 0 12px rgba(255,191,26,.65)) drop-shadow(0 6px 10px rgba(0,0,0,.55)); }
.nuit-sign:focus-visible { outline: 2px solid var(--wp--preset--color--accent-1); outline-offset: 4px; }
@keyframes nuit-sway { 0% { transform: rotate(-2.4deg); } 22% { transform: rotate(1.6deg); } 47% { transform: rotate(-3deg); } 71% { transform: rotate(2.2deg); } 100% { transform: rotate(-1.2deg); } }
@keyframes nuit-wiggle { 0% { transform: rotate(-1.1deg); } 100% { transform: rotate(1.2deg); } }
body.home .nuit-header__logo { visibility: hidden; }
.nuit-lumos {
	display: inline-flex; align-items: center; min-height: 44px; padding: 0 18px; border: 1px solid var(--wp--preset--color--accent-1); border-radius: 999px;
	background: transparent; color: var(--wp--preset--color--accent-1); font: 500 13px/1 var(--wp--preset--font-family--inter); letter-spacing: .12em; text-transform: uppercase; cursor: pointer; transition: all .3s;
}
.nuit-lumos:hover, .nuit-lumos[aria-pressed="true"] { background: var(--wp--preset--color--accent-1); color: var(--wp--preset--color--base); }
.nuit-header .wp-block-navigation { justify-content: center; }
.wp-block-navigation .wp-block-navigation-item__content { padding: .5rem .25rem; }
.wp-block-navigation__responsive-container.is-menu-open { background: var(--wp--preset--color--base-2); color: var(--wp--preset--color--contrast); padding: 2rem; }
.wp-block-navigation .wp-block-navigation__submenu-container,
.wp-block-navigation .has-child .wp-block-navigation__submenu-container {
	background: var(--wp--preset--color--base-2) !important;
	color: var(--wp--preset--color--contrast) !important;
	border: 1px solid rgba(255,191,26,.3) !important;
	border-radius: 12px;
	padding: .4rem;
	min-width: 220px;
	z-index: 20;
}
.wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item__content,
.wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item__label,
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
	color: var(--wp--preset--color--contrast) !important;
}
.wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item__content { padding: .6rem .9rem; border-radius: 8px; }
.wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover,
.wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover .wp-block-navigation-item__label,
.wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item__content:focus-visible,
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content:hover { color: var(--wp--preset--color--accent-1) !important; }
@media (max-width: 781px) {
	.nuit-header__bar { grid-template-columns: auto 1fr; padding: 1rem; }
	.nuit-header__bar .wp-block-navigation { order: 3; grid-column: 1 / -1; justify-content: flex-end; }
	.nuit-header__tools { order: 2; gap: .75rem; }
	.nuit-sign { width: 88px; margin-top: -1rem; padding-top: 14px; }
	body.home .nuit-header__logo { display: none; }
	.nuit-header__logo img { height: 52px; }
}

/* ---------- Hero ---------- */
.nuit-hero-logo { position: relative; max-width: 600px; margin: 0 0 .5rem; }
.nuit-hero-logo img { display: block; width: 100%; height: auto; }
.nuit-hero-logo::after {
	content: ""; position: absolute; left: 43%; top: 30.1%; width: 24%; height: 90%; transform: translate(-50%,-50%); pointer-events: none;
	background: radial-gradient(closest-side, rgba(255,224,27,.85), rgba(255,191,26,.35) 55%, rgba(255,191,26,0)); filter: blur(5px); mix-blend-mode: screen; animation: nuit-zap 10s infinite;
}
.nuit-hero-logo:hover::after { animation: none; opacity: .75; transform: translate(-50%,-50%) scale(1.3); }
html.lumos .nuit-hero-logo::after { opacity: .9; animation: none; }
@keyframes nuit-zap {
	0%,90%,100% { opacity: .12; transform: translate(-50%,-50%) scale(.9); } 93% { opacity: .55; transform: translate(-50%,-50%) scale(1.2); }
	95% { opacity: .2; } 97% { opacity: .4; transform: translate(-50%,-50%) scale(1.1); }
}
.nuit-eyebrow, .nuit-tag, .wp-block-post-terms { color: var(--wp--preset--color--accent-1); font-size: .6875rem; letter-spacing: .16em; text-transform: uppercase; }
.wp-block-post-terms a { text-decoration: none; }
.nuit-tagline { font-family: var(--wp--preset--font-family--cinzel); }

/* ---------- Search bar ---------- */
.nuit-search-wrap { margin-top: 1rem; }
.wp-block-search .wp-block-search__inside-wrapper {
	border: 1px solid rgba(255,191,26,.35); border-radius: 999px; background: var(--wp--preset--color--surface); padding: 6px; transition: border-color .3s, box-shadow .3s;
}
.wp-block-search .wp-block-search__inside-wrapper:focus-within { border-color: var(--wp--preset--color--accent-1); box-shadow: 0 0 0 3px rgba(255,191,26,.2), 0 0 28px rgba(255,191,26,.15); }
.wp-block-search .wp-block-search__input { border: 0; border-radius: 999px; background: transparent; box-shadow: none; padding: .7rem 1.25rem; font-size: 1.0625rem; min-width: 0; }
.wp-block-search .wp-block-search__input:focus { box-shadow: none; outline: none; }
.wp-block-search .wp-block-search__button {
	margin: 0; border: 0; border-radius: 999px; background: var(--wp--preset--color--accent-1); color: var(--wp--preset--color--base);
	font: 600 .8125rem var(--wp--preset--font-family--inter); letter-spacing: .12em; text-transform: uppercase; padding: 0 1.6rem; cursor: pointer;
}
.wp-block-search .wp-block-search__button:hover { background: var(--wp--preset--color--accent-2); }

/* ---------- Cards ---------- */
.nuit-card {
	position: relative; overflow: hidden; border: 1px solid rgba(255,191,26,.25); border-radius: 18px;
	background: linear-gradient(160deg, var(--wp--preset--color--surface), #0d1022); transition: transform .35s, border-color .35s, box-shadow .35s; height: 100%;
}
.nuit-card:hover, .nuit-card:focus-within { transform: translateY(-6px); border-color: var(--wp--preset--color--accent-1); box-shadow: 0 18px 50px rgba(255,191,26,.18); }
.nuit-card .wp-block-post-featured-image { margin: 0; border-radius: 0; }
.nuit-card .wp-block-post-featured-image img { border-radius: 0; transition: transform .6s; }
.nuit-card:hover .wp-block-post-featured-image img { transform: scale(1.04); }
.nuit-card .wp-block-post-title { font-size: 1.0625rem; line-height: 1.4; margin: .5rem 0; }
.nuit-card .wp-block-post-title a { color: var(--wp--preset--color--contrast); text-decoration: none; }
.nuit-card .wp-block-post-title a::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.nuit-card .wp-block-post-terms { position: relative; z-index: 2; }
.nuit-card--big .wp-block-post-title { font-size: clamp(1.25rem, 1rem + 1vw, 1.6rem); }
.nuit-panel { padding: 2.5rem; }
.nuit-panel p { font-family: var(--wp--preset--font-family--garamond); font-size: 1.25rem; color: var(--wp--preset--color--accent-3); }
.nuit-panel a { text-decoration: none; }
.nuit-panel h2 a { color: var(--wp--preset--color--contrast); }
.nuit-panel h2 a::after { content: ""; position: absolute; inset: 0; }

.nuit-section-title { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; }
.nuit-quote p { font-family: var(--wp--preset--font-family--garamond); font-style: italic; }
/* Flying parchment quote */
.nuit-quote { position: relative; max-width: 360px; margin: 1.5rem auto !important; padding: 2rem 1.5rem !important;
	background: radial-gradient(ellipse at 50% 45%, #f3e3b8 0%, #e6cf98 62%, #c9a867 100%); border-radius: 2% 1.2% 2.5% 1.4% / 1.6% 3% 1.4% 2.4%;
	box-shadow: inset 0 0 38px rgba(120,76,20,.55), inset 0 0 6px rgba(90,52,10,.6), 0 22px 40px rgba(0,0,0,.55), 0 0 60px rgba(255,191,26,.12);
	transform-origin: 50% 40%; animation: nuit-fly 9s ease-in-out infinite; }
.nuit-quote::before, .nuit-quote::after { content: ""; position: absolute; left: -9px; right: -9px; height: 20px; border-radius: 10px;
	background: linear-gradient(180deg, #a9803f 0%, #e9d29a 38%, #f6e8c0 52%, #cfae68 78%, #8a6428 100%); box-shadow: 0 6px 12px rgba(0,0,0,.45); }
.nuit-quote::before { top: -10px; }
.nuit-quote::after { bottom: -10px; }
.nuit-quote p { color: #3a2410 !important; font-size: 1.05rem; line-height: 1.45; margin: 0 0 .6rem; }
.nuit-quote .nuit-tag { font-size: .62rem !important; margin: 0; }
.nuit-trio { align-items: stretch !important; gap: 1.25rem; }
.nuit-trio > .wp-block-column:not(.nuit-trio__quote) { align-self: stretch !important; display: flex; }
.nuit-trio > .wp-block-column:not(.nuit-trio__quote) > .nuit-panel { flex: 1; height: auto; min-height: 100%; box-sizing: border-box; }
.nuit-trio > .nuit-trio__quote { align-self: center !important; }
.nuit-trio .nuit-panel { padding: 1.5rem 1.5rem; }
.nuit-trio .nuit-panel h2 { font-size: 1.35rem; }
.nuit-trio .nuit-panel p { font-size: 1.05rem; }
@media (max-width: 781px) { .nuit-quote { max-width: 420px; margin: 2rem auto !important; } }
.nuit-quote .nuit-tag { color: #7a4a14 !important; opacity: .9; }
@keyframes nuit-fly {
	0% { transform: translateY(0) rotate(-1.1deg); }
	30% { transform: translateY(-14px) rotate(.9deg); }
	55% { transform: translateY(-5px) rotate(-.6deg); }
	80% { transform: translateY(-16px) rotate(1.2deg); }
	100% { transform: translateY(0) rotate(-1.1deg); }
}


.wp-block-query-pagination { gap: 1rem; justify-content: center; }
.wp-block-query-pagination a, .wp-block-query-pagination .page-numbers { text-decoration: none; color: var(--wp--preset--color--accent-1); padding: .5rem .9rem; border: 1px solid rgba(255,191,26,.3); border-radius: 999px; }
.wp-block-query-pagination .current { background: var(--wp--preset--color--accent-1); color: var(--wp--preset--color--base); }

/* ---------- Article ---------- */
.nuit-article .wp-block-post-title { margin-top: .75rem; }
.nuit-meta { color: var(--wp--preset--color--accent-3); font-size: .875rem; }
.nuit-meta a { color: inherit; text-decoration: none; }
.nuit-article .wp-block-post-featured-image img { border: 1px solid rgba(255,191,26,.25); }
.nuit-article .wp-block-post-content > p:first-of-type::first-letter {
	font-family: var(--wp--preset--font-family--cinzel); font-size: 4.25rem; float: left; line-height: .85; padding: .5rem .75rem 0 0; color: var(--wp--preset--color--accent-1);
}
.wp-block-post-content h2, .wp-block-post-content h3 { margin-top: 1.8em; margin-bottom: .7em; }
.wp-block-post-content ul, .wp-block-post-content ol { padding-left: 1.2em; }
.wp-block-post-content li::marker { color: var(--wp--preset--color--accent-1); }
.wp-block-post-content li { margin-bottom: .35em; }
.wp-block-post-content a { text-decoration: underline; text-underline-offset: 3px; }
.wp-block-post-content figcaption, .wp-block-image figcaption { color: var(--wp--preset--color--accent-3); font-family: var(--wp--preset--font-family--inter); font-size: .8125rem; }
.wp-block-table { overflow-x: auto; }
.wp-block-table table { border-collapse: collapse; width: 100%; font-family: var(--wp--preset--font-family--inter); }
.wp-block-table th { text-align: left; font-size: .75rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--wp--preset--color--accent-1); padding: .75rem 1rem; border: 0; border-bottom: 1px solid rgba(255,191,26,.5); }
.wp-block-table td { padding: .85rem 1rem; border: 0; border-bottom: 1px solid rgba(239,230,210,.12); }
.wp-block-table thead { border-bottom: 0; }
.wp-block-table.is-style-stripes { border: 0; }
.nuit-share { gap: .75rem; padding-top: 1.75rem; border-top: 1px solid rgba(255,191,26,.25); }
.nuit-btn {
	display: inline-flex; align-items: center; min-height: 44px; padding: 0 18px; border: 1px solid rgba(255,191,26,.5); border-radius: 999px; background: transparent;
	color: var(--wp--preset--color--contrast); font: 500 13px var(--wp--preset--font-family--inter); text-decoration: none; cursor: pointer;
}
.nuit-btn:hover { border-color: var(--wp--preset--color--accent-1); color: var(--wp--preset--color--accent-1); }

/* ---------- Comments ---------- */
.wp-block-comments { border-top: 1px solid rgba(255,191,26,.25); padding-top: 2rem; }
.wp-block-comment-template { padding-left: 0; list-style: none; }
.wp-block-comment-author-name a { text-decoration: none; }
.wp-block-post-comments-form .comment-reply-title { font-family: var(--wp--preset--font-family--cinzel); }

/* ---------- Footer ---------- */
.nuit-footer { border-top: 1px solid rgba(255,191,26,.25); background: var(--wp--preset--color--base-2); position: relative; z-index: 2; }
.nuit-footer img { display: block; height: 96px; width: auto; }
.nuit-footer h2 { font-size: .8125rem; letter-spacing: .16em; text-transform: uppercase; color: var(--wp--preset--color--accent-1); font-family: var(--wp--preset--font-family--inter); font-weight: 600; }
.nuit-footer .wp-block-categories { list-style: none; padding: 0; margin: 0; columns: 2; font-size: .875rem; }
.nuit-footer .wp-block-categories a { color: var(--wp--preset--color--accent-3); text-decoration: none; }
.nuit-footer .wp-block-categories a:hover { color: var(--wp--preset--color--accent-1); }
.nuit-footer .muted, .nuit-footer .muted a { color: var(--wp--preset--color--accent-3); }

/* ---------- Plugin neutralisation (Jetpack, Crowdsignal, Yet Another Stars Rating, Layout Grid) ---------- */
.cs-embed, .pd-embed, .PDS_Poll { max-width: 100%; }
.yasr-star-rating, .yasr-rater-stars { color: var(--wp--preset--color--accent-1); }
.yasr-star-rating img { filter: none; }
.sharedaddy, .jp-relatedposts { margin-top: 2rem; }
.jp-relatedposts-post-title a, .sd-title { color: var(--wp--preset--color--contrast) !important; }
.wp-block-jetpack-layout-grid { margin-bottom: 1.5em; }
.wp-block-jetpack-layout-grid img { border-radius: 12px; }


/* Reading panel: translucent dark veil behind article/page text so the animated sky stays visible but text stays crisp */
.nuit-main .wp-block-post-content, .nuit-main .nuit-comments {
	box-sizing: border-box; max-width: calc(760px + 5rem); margin-inline: auto; padding: 1.5rem 2.5rem;
	background: rgba(6, 7, 19, .72); border: 1px solid rgba(255,191,26,.12); border-radius: 18px;
	-webkit-backdrop-filter: blur(3px); backdrop-filter: blur(3px);
}
.nuit-main--wide .wp-block-post-content { max-width: calc(1100px + 5rem); }
.nuit-main .nuit-comments { margin-top: 2.5rem; }
.nuit-comments, .nuit-comments p, .nuit-comments li, .nuit-comments label, .nuit-comments input, .nuit-comments textarea, .nuit-comments .wp-block-comment-content { font-size: .875rem !important; line-height: 1.55; }
.nuit-comments .wp-block-comments-title, .nuit-comments h2, .nuit-comments h3 { font-size: 1.2rem !important; }
.nuit-comments .wp-block-comment-author-name, .nuit-comments .wp-block-comment-date, .nuit-comments .wp-block-comment-reply-link, .nuit-comments .comment-notes, .nuit-comments .logged-in-as, .nuit-comments .form-submit input, .nuit-comments .wp-block-button__link { font-size: .78rem !important; }
@media (max-width: 781px) { .nuit-main .wp-block-post-content, .nuit-main .nuit-comments { padding: 1rem 1.1rem; border-radius: 14px; } }


/* =========================================================
   Easter eggs
   ========================================================= */
/* Spell toast */
.nuit-spell { position: fixed; left: 50%; bottom: 32px; z-index: 1000; transform: translateX(-50%); display: flex; flex-direction: column; align-items: center; gap: .15rem; padding: .9rem 1.6rem; border-radius: 18px; background: rgba(6,7,19,.92); border: 1px solid rgba(255,191,26,.55); box-shadow: 0 0 40px rgba(255,191,26,.25); text-align: center; animation: nuit-toast-in .5s cubic-bezier(.2,1.4,.4,1) both; pointer-events: none; }
.nuit-spell strong { font-family: var(--wp--preset--font-family--cinzel); font-size: 1.35rem; color: var(--wp--preset--color--accent-1); letter-spacing: .04em; }
.nuit-spell span { font-family: var(--wp--preset--font-family--garamond); font-style: italic; color: var(--wp--preset--color--contrast); font-size: 1rem; }
.nuit-spell i { position: absolute; left: 50%; top: 50%; width: 5px; height: 5px; border-radius: 50%; background: #ffe11b; box-shadow: 0 0 8px #ffbf1a; opacity: 0; animation: nuit-spark .9s ease-out forwards; }
.nuit-spell.is-out { animation: nuit-toast-out .5s ease-in forwards; }
@keyframes nuit-toast-in { from { opacity: 0; transform: translate(-50%, 30px) scale(.8); } to { opacity: 1; transform: translate(-50%, 0) scale(1); } }
@keyframes nuit-toast-out { to { opacity: 0; transform: translate(-50%, 20px) scale(.95); } }
@keyframes nuit-spark { 0% { opacity: 1; transform: rotate(var(--a)) translateX(0); } 100% { opacity: 0; transform: rotate(var(--a)) translateX(var(--d)); } }
.nuit-flash { position: fixed; inset: 0; z-index: 999; pointer-events: none; background: radial-gradient(circle at 50% 40%, rgba(255,248,214,.85), rgba(255,191,26,.35) 45%, transparent 75%); animation: nuit-flash .9s ease-out forwards; }
@keyframes nuit-flash { from { opacity: 1; } to { opacity: 0; } }

/* Wingardium Leviosa */
html.leviosa :is(.nuit-card, .wp-block-post-featured-image, .nuit-panel, .nuit-quote, .wp-block-heading, .nuit-hero-logo, .nuit-search-wrap, .wp-block-post-content img) { animation: nuit-levitate 2.4s ease-in-out var(--lv-d, 0s) infinite alternate !important; }
@keyframes nuit-levitate { from { transform: translateY(0) rotate(0); } to { transform: translateY(-26px) rotate(var(--lv-r, 1deg)); } }

/* Expecto Patronum */
.nuit-patronus { position: fixed; top: max(8vh, calc(50vh - 260px)); left: -360px; z-index: 998; width: min(320px, 60vw); pointer-events: none; filter: drop-shadow(0 0 22px rgba(150,200,255,.75)); animation: nuit-gallop 4.6s cubic-bezier(.3,.1,.6,1) forwards; }
.nuit-patronus img { width: 100%; height: auto; display: block; animation: nuit-bound .5s ease-in-out infinite alternate; }
.nuit-patronus__wisp { position: absolute; left: 20%; width: var(--s); height: var(--s); border-radius: 50%; background: #e6f3ff; box-shadow: 0 0 12px #bfe0ff; opacity: 0; animation: nuit-wisp 1.6s ease-out infinite; }
@keyframes nuit-gallop { 0% { transform: translateX(0); opacity: 0; } 10% { opacity: 1; } 85% { opacity: 1; } 100% { transform: translateX(calc(100vw + 420px)); opacity: 0; } }
@keyframes nuit-bound { from { transform: translateY(0) rotate(-2deg); } to { transform: translateY(-18px) rotate(2deg); } }
@keyframes nuit-wisp { 0% { opacity: .9; transform: translateX(0); } 100% { opacity: 0; transform: translateX(-160px) translateY(-20px) scale(.3); } }

/* Accio */
html.accio .wp-site-blocks { transition: transform 1s ease-in, opacity 1s ease-in, filter 1s; transform: scale(.94); opacity: .25; filter: blur(4px); }

/* The Marauder's Map */
.nuit-map { position: fixed; inset: 0; z-index: 1001; background: rgba(0,0,0,.55); opacity: 0; transition: opacity .6s; }
.nuit-map.is-open { opacity: 1; }
.nuit-map__paper { position: absolute; inset: 6vh 5vw; border-radius: 6px; overflow: hidden; background: radial-gradient(ellipse at 50% 40%, #f3e3b8, #e2c98f 65%, #b98f52); box-shadow: inset 0 0 70px rgba(110,70,20,.6), 0 30px 80px rgba(0,0,0,.6); clip-path: inset(0 50% 0 50%); transition: clip-path 1s cubic-bezier(.6,0,.2,1) .1s; }
.nuit-map.is-open .nuit-map__paper { clip-path: inset(0 0 0 0); }
.nuit-map__plan { position: absolute; inset: 0; width: 100%; height: 100%; fill: none; stroke: rgba(74,44,16,.45); stroke-width: 2; }
.nuit-map__plan .corr { stroke-dasharray: 6 8; stroke: rgba(74,44,16,.3); }
.nuit-map__title { position: absolute; left: 0; right: 0; top: 2%; margin: 0; text-align: center; font-family: var(--wp--preset--font-family--garamond); font-style: italic; font-size: clamp(1.6rem, 4vw, 2.8rem); color: #4a2c10; }
.nuit-map__walker { position: absolute; width: 0; height: 0; transition: left .5s linear, top .5s linear; }
.nuit-map__walker span { position: absolute; left: 10px; top: -28px; white-space: nowrap; padding: 2px 8px; border: 1px solid rgba(74,44,16,.6); border-radius: 3px; background: rgba(243,227,184,.85); font-family: var(--wp--preset--font-family--garamond); font-style: italic; font-size: .9rem; color: #3a2410; }
.nuit-map__step { position: absolute; width: 7px; height: 12px; margin: -6px 0 0 -3px; border-radius: 50% 50% 45% 45%; background: #3a2410; opacity: .8; animation: nuit-step 2.4s ease-in forwards; }
@keyframes nuit-step { to { opacity: 0; } }
.nuit-map__close { position: absolute; right: 1rem; bottom: 1rem; padding: .5rem 1rem; border: 1px solid #4a2c10; border-radius: 999px; background: transparent; color: #4a2c10; font-family: var(--wp--preset--font-family--garamond); font-style: italic; font-size: 1rem; cursor: pointer; }
.nuit-map__close:hover { background: rgba(74,44,16,.12); }

/* Wand (phones) */
.nuit-wand { position: fixed; left: 50%; bottom: 110px; z-index: 1002; transform: translateX(-50%); display: flex; gap: .5rem; padding: .5rem; border-radius: 999px; background: rgba(6,7,19,.95); border: 1px solid rgba(255,191,26,.55); box-shadow: 0 0 40px rgba(255,191,26,.25); animation: nuit-toast-in .4s both; }
.nuit-wand input { width: min(62vw, 280px); padding: .6rem 1rem; border: 0; border-radius: 999px; background: var(--wp--preset--color--surface); color: var(--wp--preset--color--contrast); font: 1rem var(--wp--preset--font-family--garamond); }
.nuit-wand button { padding: 0 1rem; border: 0; border-radius: 999px; background: var(--wp--preset--color--accent-1); color: var(--wp--preset--color--base); font: 600 .75rem var(--wp--preset--font-family--inter); letter-spacing: .12em; text-transform: uppercase; cursor: pointer; }
.nuit-wand-trigger { cursor: default; -webkit-tap-highlight-color: transparent; }

/* HBO sign: jolts, falls, comes back */
.nuit-sign.is-jolt img { animation: nuit-jolt .6s cubic-bezier(.3,1.6,.5,1); }
@keyframes nuit-jolt { 0% { transform: rotate(0); } 25% { transform: rotate(calc(var(--jolt, 1) * 3deg)); } 55% { transform: rotate(calc(var(--jolt, 1) * -2.4deg)); } 80% { transform: rotate(calc(var(--jolt, 1) * 1.2deg)); } 100% { transform: rotate(0); } }
.nuit-sign.is-falling { pointer-events: none; animation: nuit-fall 1.6s cubic-bezier(.55,0,.85,.4) forwards !important; z-index: 50; }
.nuit-sign.is-falling .nuit-sign__chains i:first-child { animation: nuit-snap .3s forwards; }
.nuit-sign.is-falling .nuit-sign__chains i:last-child { animation: nuit-snap .3s .35s forwards; }
@keyframes nuit-snap { to { opacity: 0; transform: translateY(-6px); } }
@keyframes nuit-fall { 0% { transform: rotate(0); } 18% { transform: rotate(22deg); } 30% { transform: rotate(15deg) translateY(4px); } 100% { transform: translateY(115vh) rotate(75deg); } }
.nuit-sign.is-back { animation: nuit-drop 1.3s cubic-bezier(.3,1.5,.5,1) both !important; }
@keyframes nuit-drop { from { transform: translateY(-180px) rotate(-8deg); opacity: 0; } 30% { opacity: 1; } to { transform: translateY(0) rotate(0); opacity: 1; } }

/* The Sorting Hat */
.nuit-hat { position: fixed; z-index: 1000; width: 280px; display: flex; flex-direction: column; align-items: center; pointer-events: none; animation: nuit-hat-in .7s cubic-bezier(.3,1.5,.5,1) both; }
.nuit-hat svg { width: 120px; height: auto; filter: drop-shadow(0 10px 18px rgba(0,0,0,.6)); transform-origin: 50% 100%; }
.nuit-hat.is-talking svg { animation: nuit-hat-talk .35s ease-in-out infinite alternate; }
.nuit-hat.is-talking .mouth { animation: nuit-mouth .18s ease-in-out infinite alternate; transform-origin: 100px 138px; }
.nuit-hat__bubble { min-height: 2.6em; margin: .4rem 0 0; padding: .7rem 1rem; border-radius: 14px; background: #f3e3b8; color: #3a2410; text-align: center; font-family: var(--wp--preset--font-family--garamond); font-style: italic; font-size: 1.1rem; line-height: 1.3; box-shadow: 0 10px 30px rgba(0,0,0,.5); }
.nuit-hat.is-sorted .nuit-hat__bubble { background: linear-gradient(135deg, var(--h1), var(--h1) 60%, var(--h2)); color: #fff; font-family: var(--wp--preset--font-family--cinzel); font-style: normal; font-weight: 700; font-size: 1.3rem; letter-spacing: .04em; box-shadow: 0 0 40px var(--h2); }
.nuit-hat.is-out { animation: nuit-hat-out .6s ease-in forwards; }
@keyframes nuit-hat-in { from { opacity: 0; transform: translateY(-60px) scale(.7); } to { opacity: 1; transform: translateY(0) scale(1); } }
@keyframes nuit-hat-out { to { opacity: 0; transform: translateY(-40px) scale(.9); } }
@keyframes nuit-hat-talk { from { transform: rotate(-3deg); } to { transform: rotate(3deg) scaleY(1.04); } }
@keyframes nuit-mouth { from { transform: scaleY(1); } to { transform: scaleY(1.8); } }

/* Platform 9¾ brick wall (footer) */
.nuit-bricks { display: flex; flex-direction: column; gap: 3px; padding: 3px 0; overflow: hidden; opacity: .6; }
.nuit-bricks__row { display: flex; gap: 3px; }
.nuit-bricks__row:nth-child(2) { margin-left: -40px; }
.nuit-brick { flex: 0 0 76px; height: 22px; border-radius: 2px; background: linear-gradient(180deg, #5b2b21, #3b1a14); box-shadow: inset 0 1px 0 rgba(255,255,255,.06), inset 0 -2px 0 rgba(0,0,0,.35); transition: transform 1s cubic-bezier(.5,0,.3,1), opacity 1s, filter .3s; }
.nuit-brick:hover { filter: brightness(1.15); }
.nuit-brick.is-knock { animation: nuit-knock .35s; }
@keyframes nuit-knock { 25% { transform: translateX(-2px); } 75% { transform: translateX(2px); } }
.nuit-brick.is-hint { animation: nuit-hint 1s ease-in-out 4; }
@keyframes nuit-hint { 50% { filter: brightness(1.8); box-shadow: 0 0 18px 4px rgba(255,191,26,.8); } }
.nuit-bricks.is-open { opacity: 1; }
.nuit-bricks.is-open .nuit-brick { transform: translate(var(--tx, 0), var(--ty, 0)) rotate(8deg); opacity: 0; }
.nuit-bricks.is-open .nuit-brick[data-platform] { background: radial-gradient(ellipse, #fff8d6, #ffbf1a 55%, rgba(255,191,26,0) 72%); box-shadow: none; transform: scale(9, 14); opacity: 0; transition: transform 1.2s ease-in, opacity 1.2s ease-in .2s; }

/* Platform 9¾ page */
.nuit-p934 { position: relative; max-width: 760px; margin: 0 auto; padding: 3rem 0 6rem; text-align: center; overflow: hidden; }
.nuit-p934 h1 { font-size: clamp(2rem, 5vw, 3.4rem); margin: .5rem 0 1rem; }
.nuit-p934__lead { font-family: var(--wp--preset--font-family--garamond); font-size: 1.3rem; line-height: 1.6; color: #e6dfcc; }
.nuit-p934__sign { display: inline-flex; flex-direction: column; align-items: center; margin: 1rem 0 2rem; padding: 1.2rem 3rem; border: 3px solid var(--wp--preset--color--accent-1); border-radius: 10px; background: linear-gradient(180deg, #7d1527, #4c0b17); box-shadow: 0 0 0 6px #2a0710, 0 0 60px rgba(255,191,26,.35); color: #fff3d6; font-family: var(--wp--preset--font-family--cinzel); animation: nuit-sway 7s ease-in-out infinite alternate; transform-origin: 50% 0; }
.nuit-p934__sign span { font-size: 1.1rem; letter-spacing: .35em; text-transform: uppercase; }
.nuit-p934__sign strong { font-size: clamp(4rem, 12vw, 6.5rem); line-height: 1; color: var(--wp--preset--color--accent-1); }
.nuit-p934__card, .nuit-p934__hints { margin: 2rem auto 0; padding: 1.5rem 1.75rem; border: 1px solid rgba(255,191,26,.3); border-radius: 18px; background: rgba(6,7,19,.72); text-align: left; }
.nuit-p934__card p, .nuit-p934__hints p { margin: .3rem 0; font-family: var(--wp--preset--font-family--garamond); font-size: 1.1rem; color: #e6dfcc; }
.nuit-p934__card .nuit-tag, .nuit-p934__hints .nuit-tag { font-family: var(--wp--preset--font-family--inter); font-size: .75rem; letter-spacing: .14em; text-transform: uppercase; color: var(--wp--preset--color--accent-1); }
.nuit-p934 .nuit-btn { margin-top: 2rem; }
.nuit-p934__steam { position: absolute; inset: 0; pointer-events: none; }
.nuit-p934__steam i { position: absolute; bottom: 60px; width: 160px; height: 160px; border-radius: 50%; background: radial-gradient(circle, rgba(230,230,240,.22), transparent 65%); animation: nuit-steam 7s ease-out infinite; }
.nuit-p934__steam i:nth-child(1) { left: 2%; animation-delay: 0s; } .nuit-p934__steam i:nth-child(2) { left: 18%; animation-delay: 1.2s; } .nuit-p934__steam i:nth-child(3) { left: 36%; animation-delay: 2.6s; } .nuit-p934__steam i:nth-child(4) { left: 52%; animation-delay: .6s; } .nuit-p934__steam i:nth-child(5) { left: 68%; animation-delay: 3.4s; } .nuit-p934__steam i:nth-child(6) { left: 82%; animation-delay: 1.9s; } .nuit-p934__steam i:nth-child(7) { left: 92%; animation-delay: 4.4s; }
@keyframes nuit-steam { 0% { transform: translateY(0) scale(.6); opacity: 0; } 20% { opacity: 1; } 100% { transform: translateY(-520px) scale(2.2); opacity: 0; } }

.nuit-legal__links { margin-left: .75rem; white-space: nowrap; }
.nuit-legal__links a { color: var(--wp--preset--color--accent-3); text-decoration: underline; text-underline-offset: 3px; }
.nuit-legal__links a:hover { color: var(--wp--preset--color--accent-1); }
@media (max-width: 600px) { .nuit-legal__links { display: block; margin: .5rem 0 0; } }

/* Countdown to the HBO series (home) */
.nuit-countdown { position: relative; max-width: 980px; margin: 1rem auto 2.5rem; padding: 2.2rem 2rem 1.8rem; text-align: center; border: 1px solid rgba(255,191,26,.4); border-radius: 26px; background: radial-gradient(ellipse at 50% 0%, rgba(84,44,120,.45), rgba(6,7,19,.85) 70%); box-shadow: 0 20px 60px rgba(0,0,0,.45), inset 0 0 60px rgba(255,191,26,.06); overflow: hidden; }
.nuit-countdown::before { content: ""; position: absolute; inset: -40% -10% auto; height: 140%; background: radial-gradient(ellipse at 50% 30%, rgba(255,191,26,.16), transparent 60%); pointer-events: none; animation: nuit-cd-glow 5s ease-in-out infinite alternate; }
@keyframes nuit-cd-glow { from { opacity: .55; } to { opacity: 1; } }
.nuit-countdown__eyebrow { position: relative; margin: 0; font: 600 .75rem/1.2 var(--wp--preset--font-family--inter); letter-spacing: .24em; text-transform: uppercase; color: var(--wp--preset--color--accent-1); }
.nuit-countdown__title { position: relative; margin: .6rem 0 1.6rem; font-size: clamp(1.5rem, 3.4vw, 2.3rem); color: var(--wp--preset--color--contrast); }
.nuit-countdown__clock { position: relative; display: flex; justify-content: center; gap: clamp(.6rem, 2.4vw, 1.4rem); }
.nuit-countdown__unit { display: flex; flex-direction: column; align-items: center; min-width: clamp(68px, 15vw, 140px); padding: 1rem .5rem .8rem; border-radius: 18px; background: rgba(11,13,26,.8); border: 1px solid rgba(255,191,26,.28); box-shadow: inset 0 1px 0 rgba(255,255,255,.05); }
.nuit-countdown__num { font-family: var(--wp--preset--font-family--cinzel); font-weight: 700; font-size: clamp(2rem, 6.4vw, 4.2rem); line-height: 1; color: var(--wp--preset--color--accent-1); text-shadow: 0 0 22px rgba(255,191,26,.45); font-variant-numeric: tabular-nums; }
.nuit-countdown__num.is-tick { animation: nuit-cd-tick .6s cubic-bezier(.2,1.4,.4,1); }
@keyframes nuit-cd-tick { 0% { transform: translateY(-8px) scale(1.12); opacity: .4; filter: brightness(1.8); } 100% { transform: none; opacity: 1; filter: none; } }
.nuit-countdown__label { margin-top: .5rem; font: 600 .6875rem/1 var(--wp--preset--font-family--inter); letter-spacing: .18em; text-transform: uppercase; color: var(--wp--preset--color--accent-3); }
.nuit-countdown__live { position: relative; margin: 1.2rem 0 0; font-family: var(--wp--preset--font-family--cinzel); font-size: 1.6rem; color: var(--wp--preset--color--accent-1); }
.nuit-countdown.is-live .nuit-countdown__clock, .nuit-countdown.is-live .nuit-countdown__title { display: none; }
.nuit-countdown__meta { position: relative; margin: 1.4rem 0 0; font-family: var(--wp--preset--font-family--garamond); font-size: 1.1rem; color: #d6cdb6; }
.nuit-countdown__meta a { color: var(--wp--preset--color--accent-1); }
@media (max-width: 600px) { .nuit-countdown { padding: 1.6rem 1rem 1.4rem; border-radius: 20px; } .nuit-countdown__unit { padding: .7rem .3rem .6rem; border-radius: 14px; } .nuit-countdown__label { font-size: .5625rem; letter-spacing: .12em; } }

/* Compact home top (v0.2.8) */
.nuit-hero { padding: .5rem 0 .5rem; gap: clamp(1.5rem, 4vw, 3.5rem); max-width: 1180px; margin-inline: auto !important; }
.nuit-hero > .wp-block-column:first-child { flex-basis: 54% !important; }
.nuit-hero > .wp-block-column:last-child { flex-basis: 46% !important; }
.nuit-hero .nuit-eyebrow { margin: 0 0 .6rem; font-size: .6875rem; }
.nuit-hero .nuit-hero-logo { max-width: 430px; margin-bottom: .3rem; }
.nuit-hero .nuit-tagline { font-size: clamp(1.3rem, 1rem + 1vw, 1.65rem) !important; margin: .4rem 0 .5rem; }
.nuit-hero .has-large-font-size { font-size: clamp(1.05rem, .95rem + .4vw, 1.2rem) !important; line-height: 1.55; max-width: 34ch; margin: 0 0 1.2rem; color: #d6cdb6; }
.nuit-hero .nuit-hero-search { max-width: 460px; margin: 0; }
.nuit-hero .nuit-hero-search .wp-block-search__input { font-size: .95rem; padding: .55rem 1.1rem; }
.nuit-hero .nuit-hero-search .wp-block-search__button { font-size: .7rem; padding: .55rem 1.1rem; }
.nuit-hero .nuit-card--big { max-width: 500px; margin-left: auto; }
.nuit-hero .nuit-card--big .nuit-card__body { padding: 1rem 1.25rem 1.1rem; }
.nuit-hero .nuit-card--big .wp-block-post-title { font-size: clamp(1.05rem, .9rem + .5vw, 1.3rem); line-height: 1.3; margin: .35rem 0 .5rem; }
.nuit-countdown { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem 2rem; max-width: 1180px; margin: 1.6rem auto 2rem; padding: 1.25rem 1.75rem; text-align: left; border-radius: 22px; }
.nuit-countdown__text { position: relative; flex: 1 1 320px; min-width: 0; }
.nuit-countdown__eyebrow { font-size: .65rem; }
.nuit-countdown__title { margin: .35rem 0 .35rem; font-size: clamp(1.15rem, .95rem + .8vw, 1.5rem); }
.nuit-countdown__meta { margin: 0; font-size: 1rem; }
.nuit-countdown__live { margin: .4rem 0 0; font-size: 1.3rem; }
.nuit-countdown__clock { flex: 0 0 auto; gap: .6rem; }
.nuit-countdown__unit { min-width: 78px; padding: .65rem .4rem .55rem; border-radius: 14px; }
.nuit-countdown__num { font-size: clamp(1.6rem, 1.2rem + 1.4vw, 2.3rem); }
.nuit-countdown__label { margin-top: .35rem; font-size: .6rem; }
.nuit-countdown.is-live .nuit-countdown__title { display: block; }
@media (max-width: 781px) {
	.nuit-hero .nuit-card--big { max-width: none; margin: 0; }
	.nuit-hero .has-large-font-size { max-width: none; }
	.nuit-countdown { flex-direction: column; align-items: stretch; text-align: center; padding: 1.2rem 1rem; }
	.nuit-countdown__text { flex: none; }
	.nuit-countdown__clock { justify-content: center; }
	.nuit-countdown__unit { min-width: 0; flex: 1 1 0; }
}

/* v0.2.9: same width for hero and countdown, no gap between hero columns */
.nuit-main > .nuit-hero, .nuit-main > .nuit-countdown { max-width: 1280px !important; width: 100%; margin-left: auto !important; margin-right: auto !important; box-sizing: border-box; }
.nuit-hero .nuit-card--big { max-width: none; margin-left: 0; }
.nuit-hero > .wp-block-column:first-child { flex-basis: 56% !important; }
.nuit-hero > .wp-block-column:last-child { flex-basis: 44% !important; }
.nuit-hero .has-large-font-size { max-width: 40ch; }

/* v0.3.3: hero text block centred under the logo */
.nuit-hero > .wp-block-column:first-child { display: flex; flex-direction: column; align-items: center; text-align: center; }
.nuit-hero > .wp-block-column:first-child > * { margin-left: auto !important; margin-right: auto !important; }
.nuit-hero .nuit-hero-logo { width: 100%; }
.nuit-hero .nuit-hero-search { width: 100%; }

/* v0.3.4: mobile burger menu overlay, dark background */
.wp-block-navigation .wp-block-navigation__responsive-container.is-menu-open,
.wp-block-navigation:not(.has-background) .wp-block-navigation__responsive-container.is-menu-open {
	background-color: var(--wp--preset--color--base-2) !important;
	background-image: radial-gradient(ellipse at 50% 0%, rgba(255,191,26,.12), transparent 60%) !important;
	color: var(--wp--preset--color--contrast) !important;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content { padding-top: 3.5rem; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content,
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__label { color: var(--wp--preset--color--contrast) !important; font-size: 1.15rem; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container { background: transparent !important; border: 0 !important; padding: .25rem 0 .5rem 1rem !important; min-width: 0; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content { font-size: 1rem; color: var(--wp--preset--color--accent-3) !important; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content:hover,
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content:focus-visible { color: var(--wp--preset--color--accent-1) !important; }
.wp-block-navigation__responsive-container-close, .wp-block-navigation__responsive-container-open { color: var(--wp--preset--color--accent-1) !important; }
.wp-block-navigation__responsive-container-close svg, .wp-block-navigation__responsive-container-open svg { fill: currentColor; }

/* v0.3.5: small "out now" book promo under the hero search */
.nuit-book { display: inline-flex; align-items: center; gap: .9rem; margin-top: 1.4rem !important; padding: .55rem 1.1rem .55rem .65rem; border: 1px solid rgba(255,191,26,.28); border-radius: 16px; background: rgba(6,7,19,.55); text-decoration: none; text-align: left; transition: border-color .3s, background .3s; }
.nuit-book img { width: 44px; height: auto; flex: none; filter: drop-shadow(0 6px 10px rgba(0,0,0,.55)); transform: rotate(-6deg); transition: transform .4s cubic-bezier(.3,1.5,.5,1); animation: nuit-book-float 4.5s ease-in-out infinite alternate; }
.nuit-book__text { display: flex; flex-direction: column; gap: .1rem; }
.nuit-book__tag { font: 600 .6rem/1.2 var(--wp--preset--font-family--inter); letter-spacing: .18em; text-transform: uppercase; color: var(--wp--preset--color--accent-1); }
.nuit-book__title { font-family: var(--wp--preset--font-family--cinzel); font-size: .9rem; line-height: 1.25; color: var(--wp--preset--color--contrast); }
.nuit-book__cta { font-family: var(--wp--preset--font-family--garamond); font-style: italic; font-size: .85rem; color: var(--wp--preset--color--accent-3); }
.nuit-book:hover, .nuit-book:focus-visible { border-color: var(--wp--preset--color--accent-1); background: rgba(20,24,51,.8); }
.nuit-book:hover img { transform: rotate(0) translateY(-4px) scale(1.08); }
.nuit-book:hover .nuit-book__cta { color: var(--wp--preset--color--accent-1); }
@keyframes nuit-book-float { from { translate: 0 0; } to { translate: 0 -4px; } }
@media (prefers-reduced-motion: reduce) { .nuit-book img { animation: none; } }

/* v0.3.7: Owl post, a wax-sealed newsletter letter */
.nuit-owl { position: fixed; inset: 0; z-index: 1005; display: flex; align-items: center; justify-content: center; padding: 1rem; }
.nuit-owl[hidden] { display: none; }
.nuit-owl__backdrop { position: absolute; inset: 0; background: rgba(4,5,14,.72); -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px); opacity: 0; transition: opacity .5s; }
.nuit-owl.is-in .nuit-owl__backdrop { opacity: 1; }
.nuit-owl__stage { position: relative; width: 480px; height: 300px; margin-top: 260px; transform: scale(var(--owl-s, 1)); transform-origin: 50% 100%; }
@media (max-width: 540px) { .nuit-owl__stage { --owl-s: .74; margin-top: 200px; } }
@media (max-height: 700px) { .nuit-owl__stage { --owl-s: .8; margin-top: 220px; } }
.nuit-owl__envelope { position: absolute; inset: 0; perspective: 1200px; opacity: 0; transform: translateY(80px) rotate(-8deg) scale(.85); transition: transform .8s cubic-bezier(.2,1.3,.4,1), opacity .5s; }
.nuit-owl.is-in .nuit-owl__envelope { opacity: 1; transform: none; }
.nuit-owl.is-out .nuit-owl__envelope { opacity: 0; transform: translateY(40px) scale(.95); transition-duration: .45s; }
.nuit-owl.is-out .nuit-owl__backdrop { opacity: 0; }
.nuit-owl__back { position: absolute; inset: 0; border-radius: 10px; background: linear-gradient(160deg, #d9bd84, #c4a161); box-shadow: 0 30px 70px rgba(0,0,0,.6), 0 0 80px rgba(255,191,26,.15); }
.nuit-owl__front { position: absolute; left: 0; right: 0; bottom: 0; height: 55%; z-index: 3; border-radius: 0 0 10px 10px; background: linear-gradient(170deg, #ecd6a4 0%, #dcc08a 100%); box-shadow: inset 0 3px 0 rgba(255,255,255,.25), 0 -2px 10px rgba(80,50,15,.25); }
.nuit-owl__front::before, .nuit-owl__front::after { content: ""; position: absolute; top: 0; width: 50%; height: 100%; background: linear-gradient(var(--a), transparent 49.5%, rgba(110,75,30,.22) 50%, transparent 51.5%); }
.nuit-owl__front::before { left: 0; --a: 33deg; }
.nuit-owl__front::after { right: 0; --a: -33deg; }
.nuit-owl__flap { position: absolute; left: 0; right: 0; top: 0; height: 62%; z-index: 4; background: linear-gradient(180deg, #e6cd97, #d3b576); clip-path: polygon(0 0, 100% 0, 50% 100%); transform-origin: 50% 0; transition: transform .7s cubic-bezier(.6,0,.3,1), z-index 0s .35s; filter: drop-shadow(0 4px 6px rgba(80,50,15,.3)); }
.nuit-owl.is-open .nuit-owl__flap { transform: rotateX(180deg); z-index: 0; }
.nuit-owl__seal { position: absolute; left: 50%; top: 62%; z-index: 5; width: 78px; height: 78px; margin: -39px 0 0 -39px; padding: 0; border: 0; border-radius: 47% 53% 50% 50% / 52% 48% 54% 46%; cursor: pointer; background: radial-gradient(circle at 38% 32%, #c43a45 0%, #8a1c2b 48%, #5c0f1a 100%); box-shadow: 0 6px 14px rgba(0,0,0,.45), inset 0 -4px 8px rgba(0,0,0,.35), inset 0 3px 6px rgba(255,255,255,.18); transition: transform .5s cubic-bezier(.3,1.4,.5,1), opacity .4s .25s; animation: nuit-seal-pulse 1.4s ease-in-out infinite alternate; }
.nuit-owl__seal::before { content: ""; position: absolute; inset: 9px; border-radius: 50%; border: 2px solid rgba(255,200,170,.25); box-shadow: inset 0 2px 4px rgba(0,0,0,.35); }
.nuit-owl__seal span { position: relative; font: 700 30px/78px var(--wp--preset--font-family--cinzel); color: #f2b8a8; text-shadow: 0 -1px 0 rgba(0,0,0,.45), 0 1px 0 rgba(255,255,255,.2); }
@keyframes nuit-seal-pulse { from { box-shadow: 0 6px 14px rgba(0,0,0,.45), 0 0 0 rgba(255,191,26,0), inset 0 -4px 8px rgba(0,0,0,.35); } to { box-shadow: 0 6px 14px rgba(0,0,0,.45), 0 0 26px rgba(255,191,26,.55), inset 0 -4px 8px rgba(0,0,0,.35); } }
.nuit-owl.is-open .nuit-owl__seal { transform: scale(1.35) rotate(-18deg); opacity: 0; pointer-events: none; animation: none; }
.nuit-owl__letter { position: absolute; left: 22px; right: 22px; top: 16px; height: 440px; z-index: 2; box-sizing: border-box; padding: 1.6rem 1.7rem 1.4rem; border-radius: 6px; text-align: center; color: #3a2410; background: radial-gradient(ellipse at 50% 30%, #fbf1d9, #efdcb0 85%); box-shadow: 0 0 0 1px rgba(110,75,30,.25), 0 10px 30px rgba(0,0,0,.35); transform: translateY(0); transition: transform .9s cubic-bezier(.3,1.25,.4,1) .45s; }
.nuit-owl.is-open .nuit-owl__letter { transform: translateY(-300px); }
.nuit-owl__letter { clip-path: inset(0 0 160px 0 round 6px); transition: transform .9s cubic-bezier(.3,1.25,.4,1) .45s, clip-path .5s ease .45s; }
.nuit-owl.is-open .nuit-owl__letter { clip-path: inset(0 0 0 0 round 6px); }
.nuit-owl__letter > * { opacity: 0; transition: opacity .5s ease .9s; }
.nuit-owl.is-open .nuit-owl__letter > * { opacity: 1; }
.nuit-owl__close { position: absolute; top: .4rem; right: .55rem; width: 34px; height: 34px; padding: 0; border: 0; border-radius: 50%; background: transparent; color: #6b4a2b; font-size: 1.6rem; line-height: 1; cursor: pointer; }
.nuit-owl__close:hover { background: rgba(107,74,43,.12); }
.nuit-owl__eyebrow { margin: 0; font: 600 .65rem/1.2 var(--wp--preset--font-family--inter); letter-spacing: .24em; text-transform: uppercase; color: #8a1c2b; }
.nuit-owl__title { margin: .35rem 0 .5rem; font-family: var(--wp--preset--font-family--cinzel); font-size: 1.7rem; line-height: 1.15; color: #3a2410; }
.nuit-owl__text { margin: 0 auto 1rem; max-width: 32ch; font-family: var(--wp--preset--font-family--garamond); font-size: 1.08rem; line-height: 1.45; color: #4a311b; }
.nuit-owl__form form { display: flex !important; flex-direction: column; gap: .55rem; margin: 0 !important; }
.nuit-owl__form .wp-block-jetpack-subscriptions__form-elements, .nuit-owl__form .wp-block-jetpack-subscriptions__container { display: flex !important; flex-direction: column; gap: .55rem; margin: 0 !important; }
.nuit-owl__form p { margin: 0 !important; }
.nuit-owl__form .wp-block-jetpack-subscriptions__container > *, .nuit-owl__form form > *, .nuit-owl__form .wp-block-jetpack-subscriptions__form-elements > * { width: 100% !important; max-width: none !important; flex: none !important; align-self: stretch !important; }
.nuit-owl__form input[type="email"] { box-sizing: border-box; width: 100% !important; margin: 0 !important; padding: .75rem 1rem !important; border: 1px solid rgba(110,75,30,.45) !important; border-radius: 10px !important; background: rgba(255,255,255,.65) !important; color: #3a2410 !important; font: 1rem var(--wp--preset--font-family--garamond) !important; }
.nuit-owl__form input[type="email"]:focus { outline: 2px solid #8a1c2b; outline-offset: 1px; }
.nuit-owl__form button, .nuit-owl__form [type="submit"] { width: 100% !important; margin: 0 !important; padding: .8rem 1rem !important; border: 0 !important; border-radius: 10px !important; background: linear-gradient(180deg, #a52734, #7a1623) !important; color: #ffe3a3 !important; font: 600 .78rem/1 var(--wp--preset--font-family--inter) !important; letter-spacing: .14em; text-transform: uppercase; cursor: pointer; box-shadow: 0 4px 10px rgba(122,22,35,.35); }
.nuit-owl__form button:hover, .nuit-owl__form [type="submit"]:hover { filter: brightness(1.12); }
.nuit-owl__form .wp-block-jetpack-subscriptions__subscount, .nuit-owl__form #subscribe-text, .nuit-owl__form .wp-block-jetpack-subscriptions__login { display: none !important; }
.nuit-owl__form label { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.nuit-owl__later { margin-top: .7rem; padding: .2rem .5rem; border: 0; background: none; color: #6b4a2b; font: italic .95rem var(--wp--preset--font-family--garamond); text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
@media (prefers-reduced-motion: reduce) { .nuit-owl__envelope, .nuit-owl__flap, .nuit-owl__letter, .nuit-owl__seal, .nuit-owl__backdrop { transition: none !important; animation: none !important; } }

/* v0.3.9: "Watch" streaming hub (Netflix-style rows) */
.wp-block-post-content:has(.ws) { background: none !important; border: 0 !important; padding: 0 !important; -webkit-backdrop-filter: none !important; backdrop-filter: none !important; max-width: 1280px !important; }
.nuit-main:has(.ws) > .wp-block-post-title { display: none; }
.ws { color: var(--wp--preset--color--contrast); }
.ws-hero { position: relative; display: flex; align-items: flex-end; min-height: clamp(340px, 46vw, 560px); margin: 0 0 2.5rem; border-radius: 24px; overflow: hidden; background: #060713 var(--ws-hero) center / cover no-repeat; box-shadow: 0 30px 70px rgba(0,0,0,.5); border: 1px solid rgba(255,191,26,.18); }
.ws-hero::before { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(6,7,19,.95) 0%, rgba(6,7,19,.75) 38%, rgba(6,7,19,.1) 75%), linear-gradient(0deg, rgba(6,7,19,.9) 0%, transparent 45%); }
.ws-hero__inner { position: relative; max-width: 560px; padding: clamp(1.5rem, 4vw, 3rem); }
.ws-hero__eyebrow { margin: 0 0 .5rem; font: 600 .7rem/1.2 var(--wp--preset--font-family--inter); letter-spacing: .22em; text-transform: uppercase; color: var(--wp--preset--color--accent-1); }
.ws-hero__title { margin: 0; font-family: var(--wp--preset--font-family--cinzel); font-size: clamp(2.4rem, 6vw, 4.4rem); line-height: 1; color: #fff; text-shadow: 0 4px 30px rgba(0,0,0,.6); }
.ws-hero__sub { margin: .3rem 0 .9rem; font-family: var(--wp--preset--font-family--cinzel); font-size: clamp(1.05rem, 2vw, 1.5rem); color: var(--wp--preset--color--accent-1); }
.ws-hero__desc { margin: 0 0 1rem; font-family: var(--wp--preset--font-family--garamond); font-size: 1.15rem; line-height: 1.5; color: #e6dfcc; }
.ws-hero__badge { display: inline-block; margin: 0 0 1.3rem; padding: .35rem .8rem; border: 1px solid rgba(255,191,26,.5); border-radius: 999px; font: 600 .72rem/1.2 var(--wp--preset--font-family--inter); letter-spacing: .1em; text-transform: uppercase; color: var(--wp--preset--color--accent-1); background: rgba(6,7,19,.5); }
.ws-hero__actions { display: flex; flex-wrap: wrap; gap: .7rem; margin: 0; }
.ws-btn { display: inline-flex; align-items: center; gap: .4rem; padding: .75rem 1.3rem; border-radius: 10px; background: rgba(239,230,210,.16); color: #fff !important; font: 600 .8rem/1 var(--wp--preset--font-family--inter); letter-spacing: .08em; text-transform: uppercase; text-decoration: none !important; backdrop-filter: blur(6px); transition: background .25s, transform .25s; }
.ws-btn:hover { background: rgba(239,230,210,.28); transform: translateY(-1px); }
.ws-btn--play { background: var(--wp--preset--color--accent-1); color: var(--wp--preset--color--base) !important; }
.ws-btn--play:hover { background: var(--wp--preset--color--accent-2); }
.ws-row { margin: 0 0 2.4rem; }
.ws-row__head { display: flex; align-items: baseline; flex-wrap: wrap; gap: .4rem 1rem; margin: 0 0 .8rem; }
.ws-row__title { margin: 0; font-family: var(--wp--preset--font-family--cinzel); font-size: clamp(1.15rem, 2.2vw, 1.55rem); }
.ws-row__sub { font: .8rem var(--wp--preset--font-family--inter); color: var(--wp--preset--color--accent-3); }
.ws-row__nav { margin-left: auto; display: flex; gap: .4rem; }
.ws-row__btn { width: 36px; height: 36px; padding: 0; border: 1px solid rgba(255,191,26,.35); border-radius: 50%; background: rgba(6,7,19,.6); color: var(--wp--preset--color--accent-1); font-size: 1.4rem; line-height: 1; cursor: pointer; transition: background .25s; }
.ws-row__btn:hover { background: rgba(255,191,26,.15); }
.ws-row__track { display: grid; grid-auto-flow: column; grid-auto-columns: clamp(220px, 23%, 300px); gap: 14px; overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; scroll-behavior: smooth; padding: 10px 4px 18px; margin: -10px -4px 0; scrollbar-width: thin; scrollbar-color: rgba(255,191,26,.35) transparent; }
.ws-row__track::-webkit-scrollbar { height: 6px; }
.ws-row__track::-webkit-scrollbar-thumb { background: rgba(255,191,26,.35); border-radius: 3px; }
.ws-tile { position: relative; display: block; aspect-ratio: 16 / 9; border-radius: 12px; overflow: hidden; scroll-snap-align: start; background: #141833; border: 1px solid rgba(239,230,210,.08); box-shadow: 0 10px 24px rgba(0,0,0,.4); text-decoration: none !important; transition: transform .35s cubic-bezier(.2,1,.3,1), box-shadow .35s, border-color .35s; }
.ws-tile img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .5s; }
.ws-tile__info { position: absolute; inset: auto 0 0 0; display: flex; flex-direction: column; gap: .15rem; padding: 2.2rem .8rem .7rem; background: linear-gradient(0deg, rgba(6,7,19,.95), rgba(6,7,19,.6) 60%, transparent); opacity: 0; transform: translateY(8px); transition: opacity .3s, transform .3s; }
.ws-tile__title { font-family: var(--wp--preset--font-family--cinzel); font-size: .92rem; line-height: 1.2; color: #fff; }
.ws-tile__meta { font: .7rem var(--wp--preset--font-family--inter); color: var(--wp--preset--color--accent-3); }
.ws-tile__cta { margin-top: .2rem; font: 600 .66rem var(--wp--preset--font-family--inter); letter-spacing: .1em; text-transform: uppercase; color: var(--wp--preset--color--accent-1); }
.ws-tile:hover, .ws-tile:focus-visible { transform: scale(1.06); z-index: 2; border-color: rgba(255,191,26,.6); box-shadow: 0 18px 40px rgba(0,0,0,.6), 0 0 30px rgba(255,191,26,.18); }
.ws-tile:hover img { transform: scale(1.04); }
.ws-tile:hover .ws-tile__info, .ws-tile:focus-visible .ws-tile__info { opacity: 1; transform: none; }
@media (hover: none) { .ws-tile__info { opacity: 1; transform: none; } }
.ws-ep { background: radial-gradient(ellipse at 30% 20%, rgba(84,44,120,.55), rgba(11,13,26,.95) 70%), #0b0d1a; }
.ws-ep::before { content: ""; position: absolute; inset: 0; background: url('/wp-content/uploads/2026/10/Harry-Potter-HBO-Max-Poster.png') center / cover; opacity: .16; filter: blur(2px) grayscale(.3); }
.ws-ep__num { position: absolute; left: .7rem; top: .1rem; font: 700 clamp(4rem, 7vw, 6rem)/1 var(--wp--preset--font-family--cinzel); color: transparent; -webkit-text-stroke: 2px rgba(255,191,26,.55); text-shadow: 0 0 30px rgba(255,191,26,.15); }
.ws-ep .ws-tile__info { opacity: 1; transform: none; }
.ws-ep.is-locked { cursor: default; }
.ws-ep.is-locked:hover { transform: none; border-color: rgba(255,191,26,.3); }
.ws-note { margin: 1rem 0 0; font: .8rem/1.5 var(--wp--preset--font-family--inter); color: var(--wp--preset--color--accent-3); }
@media (max-width: 600px) { .ws-row__track { grid-auto-columns: 72%; } .ws-row__nav { display: none; } .ws-hero { border-radius: 16px; } }

/* ---------- Motion preferences ---------- */
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	.nuit-stars, .nuit-candle, .nuit-candle .fl, .nuit-hero-logo::after, .nuit-sign, .nuit-sign img, .nuit-quote, .nuit-p934__steam i, .nuit-p934__sign, .nuit-countdown::before, .nuit-countdown__num.is-tick { animation: none !important; }
	html.leviosa :is(.nuit-card, .wp-block-post-featured-image, .nuit-panel, .nuit-quote, .wp-block-heading, .nuit-hero-logo, .nuit-search-wrap, .wp-block-post-content img) { animation-duration: 6s !important; }
	.nuit-hero-logo::after { opacity: .6; }
	.nuit-card, .nuit-card .wp-block-post-featured-image img { transition: none; }
}
html.nuit-no-fx .nuit-candles, html.nuit-no-fx .nuit-stars { display: none; }
