.meta-box span,
.related-label {
	text-transform: uppercase
}

:root {
	--bg: #0f172a;
	--card: #111827;
	--text: #e5e7eb;
	--muted: #9ca3af;
	--green: #34d399;
	--radius: 16px
}

header {
	text-align: left;
	max-width: 1100px;
	padding: 72px 16px 64px;
	position: relative;
	overflow: hidden;
}

.header-inner {
	width: min(1180px, 92%);
	text-align: left;
	position: relative;
	
}

header h1 {
	position: relative;
	max-width: 768px;
	font-size: clamp(2rem, 5vw, 2.6rem);
	line-height: 1.3;
	font-weight: 700;
	letter-spacing: 0.02em;
	background:
		linear-gradient(to bottom,
			#ffffff 0%,
			#dbeafe 45%,
			#93c5fd 100%);
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
	text-shadow:
		0 0 10px rgba(147, 197, 253, .10),
		0 2px 12px rgba(96, 165, 250, .08);
	margin-bottom: 18px;
	opacity: 0;
	transform: translateY(10px);
	animation: headerTextReveal 1.4s ease forwards;
	animation-delay: .25s;
}

header p {
	position: relative;
	color: #b4bcc6;
	font-size: 15px;
	line-height: 1.8;
	max-width: 760px;
	margin: 0 0 14px;
	opacity: 0;
	transform: translateY(8px);
	animation: headerTextReveal 1.4s ease forwards;
	animation-delay: .45s;
}

@keyframes headerGlowReveal {
	0% {
		opacity: 0;
		transform: scale(.72);
		filter: blur(60px);
	}
	
	45% {
		opacity: 1;
		transform: scale(1.06);
		filter: blur(26px);
	}
	
	100% {
		opacity: 1;
		transform: scale(1);
		filter: blur(18px);
	}
}

@keyframes headerTextReveal {
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

.spirit-layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 360px;
	gap: 28px;
	align-items: start;
	margin: 36px 0 48px
}

.featured-card,
.hero-main {
	min-width: 0
}

.hero-image {
	position: relative;
	overflow: hidden;
	border-radius: 30px;
	background: linear-gradient(180deg, rgba(15, 23, 42, .25), rgba(15, 23, 42, .9));
	border: 1px solid rgba(255, 255, 255, .06);
	box-shadow: 0 18px 50px rgba(0, 0, 0, .35), inset 0 1px 0 rgba(255, 255, 255, .04)
}

.hero-image .img-wrapper {
	position: relative;
	width: 100%;
	aspect-ratio: 16/8.8;
	overflow: hidden
}

.hero-image .img-skeleton {
	position: absolute;
	inset: 0;
	background: linear-gradient(110deg, #111827 25%, #1f2937 37%, #111827 63%);
	background-size: 200% 100%;
	animation: 1.4s infinite shimmer;
	z-index: 1
}

@keyframes shimmer {
	0% {
		background-position: 200% 0
	}
	
	100% {
		background-position: -200% 0
	}
}

.hero-image .section-img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: left center;
	display: block;
	opacity: 0;
	transform: scale(1.03);
	transition: opacity .5s, transform .8s
}

.hero-image .img-wrapper.loaded .section-img {
	opacity: 1;
	transform: scale(1);
	position: relative;
	z-index: 2
}

.hero-overlay {
	position: absolute;
	inset: 0;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	padding: 34px;
	background: linear-gradient(to top, rgba(1, 12, 24, .98) 0, rgba(3, 20, 38, .88) 32%, rgba(6, 44, 56, .42) 58%, rgba(0, 0, 0, .04) 100%);
	z-index: 3
}

.hero-badge {
	width: fit-content;
	padding: 8px 14px;
	margin-bottom: 16px;
	border-radius: 999px;
	font-size: .82rem;
	font-weight: 600;
	letter-spacing: .3px;
	color: #dff8ff;
	background: linear-gradient(180deg, rgba(45, 212, 191, .18), rgba(15, 118, 110, .12));
	border: 1px solid rgba(255, 255, 255, .08)
}

.hero-title {
	font-size: clamp(2.2rem, 4vw, 3.2rem);
	line-height: 1.05;
	color: #fff;
	margin-bottom: 14px
}

.hero-subtitle {
	max-width: 680px;
	color: rgba(255, 255, 255, .82);
	font-size: 1rem;
	line-height: 1.75;
	margin-bottom: 24px
}

.hero-meta {
	display: flex;
	flex-wrap: wrap;
	gap: 14px
}

.meta-box {
	min-width: 150px;
	padding: 14px 16px;
	border-radius: 18px;
	background: linear-gradient(180deg, rgba(255, 255, 255, .08), rgba(255, 255, 255, .04));
	border: 1px solid rgba(255, 255, 255, .06)
}

.meta-box span {
	display: block;
	font-size: .76rem;
	letter-spacing: .4px;
	color: #94a3b8;
	margin-bottom: 6px
}

.meta-box strong {
	color: #fff;
	font-size: .96rem
}

.hero-description {
	margin-top: 24px
}

.hero-description p {
	color: #cbd5e1;
	line-height: 1.9;
	margin-bottom: 18px
}

.hero-description p:last-child {
	margin-bottom: 0
}

.info-note {
	display: flex;
	gap: 14px;
	margin-top: 22px;
	padding: 18px;
	border-radius: 18px;
	background: linear-gradient(180deg, rgba(250, 204, 21, .12), rgba(250, 204, 21, .05));
	border: 1px solid rgba(250, 204, 21, .15)
}

.info-note svg {
	flex-shrink: 0;
	margin-top: 2px
}

.info-note div {
	color: #fde68a;
	line-height: 1.7
}

.hero-items {
	top: 100px
}

.sidebar-card {
	padding: 24px;
	border-radius: 28px
}

.items-header {
	margin-bottom: 20px
}

.items-header h3 {
	color: #fff;
	font-size: 1.1rem
}

.items-grid {
	display: grid;
	gap: 14px
}

.item-card {
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 14px;
	border-radius: 18px;
	background: linear-gradient(180deg, rgba(255, 255, 255, .05), rgba(255, 255, 255, .03));
	border: 1px solid rgba(255, 255, 255, .05);
	transition: transform .25s, border-color .25s, background .25s
}

.item-card:hover {
	transform: translateY(-2px);
	border-color: rgba(96, 165, 250, .25);
	background: linear-gradient(180deg, rgba(96, 165, 250, .08), rgba(255, 255, 255, .04))
}

.item-card img {
	width: 58px;
	height: 58px;
	object-fit: contain;
	border-radius: 16px;
	background: rgba(255, 255, 255, .04);
	padding: 6px
}

.item-content h4 {
	color: #f8fafc;
	font-size: .95rem;
	margin-bottom: 4px
}

.item-content p {
	font-size: .86rem
}

.total-box {
	margin-top: 24px;
	padding-top: 22px;
	border-top: 1px solid rgba(255, 255, 255, .08)
}

.total-label {
	display: block;
	color: #fff;
	font-size: .95rem;
	font-weight: 600;
	margin-bottom: 14px
}

.total-tags {
	display: flex;
	flex-wrap: wrap;
	gap: 10px
}

.total-tags .tag {
	padding: 10px 14px;
	border-radius: 999px;
	font-size: .84rem;
	font-weight: 600;
	display: inline-flex;
	align-items: center;
	gap: 6px
}

.total-tags .tag img {
	width: 18px;
	height: 18px;
	object-fit: contain;
	flex-shrink: 0;
	position: relative;
	top: -1px;
	vertical-align: middle
}

.tag.candle {
	background: rgba(251, 191, 36, .12);
	color: #fde68a
}

.tag.heart {
	background: rgba(244, 114, 182, .12);
	color: #f9a8d4
}

.tag.ascended {
	background: rgba(96, 165, 250, .12);
	color: #93c5fd
}

@media (max-width:980px) {
	.spirit-layout {
		grid-template-columns: 1fr
	}
	
	.hero-items {
		position: static
	}
}

.featured-badge,
.related-label {
	border-radius: 999px;
	font-weight: 600
}

.container {
	margin: 0 auto;
	width: 100%;
	max-width: 1100px;
	padding: 4px 16px 64px
}


.related-spirit-section {
	position: relative;
	margin-top: 96px
}

.related-header {
	text-align: center;
	margin-bottom: 38px
}

.related-label {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 8px 16px;
	font-size: .72rem;
	letter-spacing: .08em;
	color: #dbeafe;
	background: linear-gradient(180deg, rgba(255, 255, 255, .08), rgba(255, 255, 255, .03));
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, .05), 0 10px 30px rgba(0, 0, 0, .18)
}

.related-header h2 {
	margin-top: 18px;
	font-size: clamp(2rem, 4vw, 3rem);
	line-height: 1.65;
	color: #fff;
	letter-spacing: .04em
}

.related-header p {
	max-width: 650px;
	margin: 14px auto 0;
	color: #94a3b8;
	line-height: 1.9;
	font-size: .96rem
}

.related-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 24px
}

.featured-spirit-card {
	display: flex;
	flex-direction: column;
	height: 100%;
	overflow: hidden;
	border-radius: 26px;
	text-decoration: none;
	background: linear-gradient(145deg, rgba(30, 41, 59, .88), rgba(15, 23, 42, .98));
	border: 1px solid rgba(255, 255, 255, .06);
	transition: transform .3s, border-color .3s, box-shadow .3s
}

.featured-media {
	position: relative;
	overflow: hidden
}

.featured-media img {
	width: 100%;
	height: 100%;
	display: block;
	object-fit: cover;
	transform: scale(1.02);
	filter: brightness(.9) saturate(1.02);
	transition: transform 1s cubic-bezier(.22, 1, .36, 1), filter .5s;
	will-change: transform
}

.featured-spirit-card:hover .featured-media img {
	transform: scale(1.08);
	filter: brightness(1) saturate(1.08)
}

.featured-badge {
	position: absolute;
	left: 14px;
	padding: 7px 12px;
	font-size: .68rem;
	color: #fff;
	background: rgba(15, 23, 42, .68);
	border: 1px solid rgba(255, 255, 255, .08);
	bottom: 14px
}

.featured-badge.date {
	bottom: 52px
}

.featured-content {
	display: flex;
	flex-direction: column;
	flex: 1;
	padding: 22px
}

.featured-meta {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-bottom: 18px
}

.featured-content h3 {
	font-size: 1.45rem;
	line-height: 1.2;
	margin-bottom: 12px;
	color: #fff
}

.featured-content p {
	color: #b8c3d1;
	font-size: .92rem;
	line-height: 1.8
}

.featured-footer {
	margin-top: auto;
	padding-top: 20px
}

.explore-btn {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	width: fit-content;
	padding: 13px 18px;
	border-radius: 999px;
	color: #dbeafe;
	font-size: .92rem;
	font-weight: 600;
	background: rgba(255, 255, 255, .04);
	border: 1px solid rgba(255, 255, 255, .07);
	backdrop-filter: blur(10px);
	transition: gap .28s, transform .28s, background .28s, border-color .28s, color .28s
}

.featured-spirit-card:hover .explore-btn {
	gap: 14px;
	color: #fff;
	background: rgba(96, 165, 250, .1);
	border-color: rgba(96, 165, 250, .18)
}

.article {
	border-top: 1px solid rgba(255, 255, 255, .06)
}

.explore-btn svg {
	transition: transform .28s
}

.text-link {
	transition: .2s;
	text-decoration: none
}

.featured-spirit-card:hover .explore-btn svg {
	transform: translateX(3px)
}

@media (max-width:860px) {
	.related-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr))
	}
	
	.featured-spirit-card {
		grid-template-columns: 1fr
	}
	
	.featured-media {
		min-height: 320px
	}
	
	.featured-overlay {
		background: linear-gradient(to top, rgba(2, 6, 23, .96) 0, rgba(2, 6, 23, .52) 44%, rgba(2, 6, 23, .1) 100%)
	}
	
	.featured-content {
		padding: 34px 28px
	}
}

@media (max-width:640px) {
	.hero-image .img-wrapper {
		aspect-ratio: 4/5.2;
		min-height: 520px
	}
	
	.hero-overlay {
		justify-content: flex-end;
		padding: 24px 18px 20px
	}
	
	.hero-badge {
		margin-bottom: 12px;
		padding: 7px 12px;
		font-size: .72rem
	}
	
	.hero-title {
		font-size: 2rem;
		line-height: 1.08;
		margin-bottom: 10px
	}
	
	.hero-subtitle {
		font-size: .94rem;
		line-height: 1.65;
		margin-bottom: 18px;
		color: rgba(255, 255, 255, .88)
	}
	
	.hero-meta {
		display: grid;
		grid-template-columns: 1fr;
		gap: 10px
	}
	
	.meta-box {
		width: 100%;
		padding: 12px 14px;
		border-radius: 16px;
		background: linear-gradient(180deg, rgba(255, 255, 255, .08), rgba(255, 255, 255, .04))
	}
	
	.meta-box span {
		font-size: .7rem;
		margin-bottom: 4px
	}
	
	.meta-box strong {
		font-size: .9rem
	}
	
	.related-grid {
		grid-template-columns: 1fr
	}
	
	.related-spirit-section {
		margin-top: 74px
	}
	
	.related-header {
		margin-bottom: 26px
	}
	
	.related-header h2 {
		font-size: 1.9rem
	}
	
	.related-header p {
		font-size: .92rem
	}
	
	.featured-spirit-card {
		border-radius: 28px
	}
	
	.featured-media {
		min-height: 240px
	}
	
	.featured-content {
		padding: 28px 20px 24px
	}
	
	.featured-content h3 {
		font-size: 2rem
	}
	
	.featured-content p {
		font-size: .92rem;
		line-height: 1.82
	}
	
	.meta-pill {
		font-size: .7rem
	}
	
	.explore-btn {
		padding: 12px 16px
	}
}

.section-divider.labeled {
	display: flex;
	align-items: center;
	gap: 16px;
	margin: 100px 0 32px;
	text-align: center
}

.section-divider.labeled::after,
.section-divider.labeled::before {
	content: "";
	flex: 1;
	height: 2px;
	background: rgba(255, 255, 255, .2)
}

.section-divider.labeled span {
	font-size: 14.5px;
	font-weight: 500;
	letter-spacing: .04em;
	text-transform: uppercase;
	white-space: nowrap
}

.article-img,
.faq-answer,
.faq-item {
	overflow: hidden
}


.article {
	width: 100%;
	max-width: 900px;
	margin: 50px auto 0;
	padding-top: 20px
}

.article-block {
	margin-top: 60px;
	padding-bottom: 30px;
	border-bottom: 1px solid rgba(255, 255, 255, .06)
}

.article-img {
	float: right;
	width: 480px;
	max-width: 45%;
	margin: 10px 18px 18px 22px;
	border-radius: 18px;
	position: relative;
	transform: translateZ(0)
}

.article-img img {
	width: 100%;
	height: auto;
	display: block;
	transition: transform .6s
}

.article-img:hover img {
	transform: scale(1.05)
}

.article-img::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(to top, rgba(2, 6, 23, .45), transparent 60%)
}

.article h2:before,
.info-note-art::before {
	border-radius: 999px;
	background: #67e8f9;
	content: "";
	position: absolute
}

.article p {
	margin-top: 14px;
	line-height: 1.95;
	font-size: .98rem;
	letter-spacing: .2px;
	max-width: 72ch;
	color: rgba(226, 232, 240, .86);
	text-shadow: 0 0 8px rgba(147, 197, 253, .035), 0 0 18px rgba(103, 232, 249, .02);
	transition: color .3s, text-shadow .3s
}

.article-block::after {
	content: "";
	display: block;
	clear: both
}

@media (max-width:768px) {
	.article-img {
		float: none;
		width: 100%;
		max-width: 100%;
		margin: 16px 0
	}
}

.article h2 {
	position: relative;
	font-size: 1.4rem;
	color: #dbeafe;
	letter-spacing: .4px;
	margin-bottom: 10px;
	font-weight: 600;
	text-shadow: 0 0 6px rgba(147, 197, 253, .08)
}

.article h2:before {
	left: -14px;
	top: 50%;
	transform: translateY(-50%);
	width: 3px;
	height: 22px;
	opacity: .75;
	box-shadow: 0 0 8px rgba(103, 232, 249, .25)
}

.article-content strong {
	color: #93c5fd;
	font-weight: 600
}

.article-content ul {
	margin: 22px 0;
	padding-left: 0;
	display: flex;
	flex-direction: column;
	gap: 12px;
	list-style: none
}

.article-content li {
	position: relative;
	padding-left: 24px;
	color: #d6dee8;
	line-height: 1.8
}

.article-content li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 12px;
	width: 7px;
	height: 7px;
	border-radius: 999px;
	background: #d8c39a;
	box-shadow: 0 0 10px rgba(216, 195, 154, .14)
}

.info-note-art {
	position: relative;
	margin: 28px 0;
	padding-left: 18px;
	border-left: 2px solid rgba(103, 232, 249, .28)
}

.info-note-art::before {
	left: -5px;
	top: 8px;
	width: 8px;
	height: 8px;
	box-shadow: 0 0 12px rgba(103, 232, 249, .35)
}

.info-note-art div {
	color: rgba(226, 232, 240, .82);
	line-height: 1.9;
	font-size: .97rem;
	text-shadow: 0 0 8px rgba(147, 197, 253, .02)
}

.info-note-art strong {
	color: #dbeafe;
	font-weight: 600
}

.text-link {
	color: #93c5fd;
	border-bottom: 1px dashed rgba(147, 197, 253, .5)
}

.text-link:hover {
	color: #60a5fa;
	border-bottom: 1px solid #60a5fa
}

.text-link:active {
	opacity: .7
}



.faq {
	margin-top: 20px;
	display: flex;
	flex-direction: column;
	gap: 12px
}

.faq-item {
	background: linear-gradient(180deg, rgba(255, 245, 220, .06), rgba(255, 210, 140, .03));
	border: 1px solid rgba(255, 255, 255, .06);
	border-radius: 14px;
	transition: .3s
}

.faq-item:hover {
	border-color: rgba(216, 195, 154, .25);
	transform: translateY(-1px)
}

.faq-question {
	width: 100%;
	padding: 16px 18px;
	background: 0 0;
	border: none;
	color: #e8e0d0;
	font-size: 15px;
	font-weight: 600;
	text-align: left;
	cursor: pointer;
	display: flex;
	justify-content: space-between;
	align-items: center
}

.faq-question::after {
	content: "+";
	font-size: 18px;
	color: #d8c39a;
	transition: transform .3s
}

.faq-item.active .faq-question::after {
	content: "−"
}

.faq-answer {
	max-height: 0;
	padding: 0 18px;
	color: rgba(214, 222, 232, .85);
	font-size: 14px;
	line-height: 1.7;
	transition: max-height .35s, padding .35s
}

.faq-item.active .faq-answer {
	max-height: 200px;
	padding: 0 18px 16px
}

.faq-item.active {
	box-shadow: 0 0 18px rgba(216, 195, 154, .08)
}