/*
Theme Name: Physics Fun Factory
Author: Physics Fun Factory
Description: A bilingual nonprofit physics education platform for students aged 10–14.
Version: 1.0.0-alpha.17
Requires at least: 6.8
Tested up to: 7.0
License: GPL-2.0-or-later
Text Domain: physicsfunfactory
Tags: full-site-editing, education, two-columns
*/

:root {
	--pff-navy: #071d33;
	--pff-navy-soft: #123554;
	--pff-blue: #1d5fe8;
	--pff-blue-dark: #1546ad;
	--pff-bg: #f6fbff;
	--pff-sky: #e8f4ff;
	--pff-sky-2: #d7ebff;
	--pff-yellow: #fff1bf;
	--pff-green-blue: #eaf8f5;
	--pff-card: #ffffff;
	--pff-border: #c9dbef;
	--pff-text: #17324d;
	--pff-muted: #60758a;
	--pff-shadow: 0 24px 70px rgba(7, 29, 51, 0.12);
	--pff-radius: 28px;
}

body { background: var(--pff-bg); color: var(--pff-text); }
.wp-site-blocks { min-height: 100vh; background: var(--pff-bg); }
.pff-container { max-width: 1180px; margin-left: auto; margin-right: auto; padding-left: 24px; padding-right: 24px; }

.pff-site-header { position: sticky; top: 0; z-index: 50; min-height: 72px; background: rgba(255,255,255,.97); border-bottom: 1px solid rgba(201,219,239,.9); box-shadow: 0 8px 24px rgba(7,29,51,.05); backdrop-filter: blur(14px); }
.pff-header-shell { max-width: 1180px; min-height: 72px; margin: 0 auto; padding: 0 24px; display: flex; align-items: center; justify-content: space-between; gap: 28px; }
.pff-brand { display: flex; align-items: center; gap: 12px; }
.pff-atom-mark { display: grid; place-items: center; width: 38px; height: 38px; margin: 0; border: 1px solid var(--pff-border); border-radius: 50%; background: linear-gradient(145deg,#fff,var(--pff-sky)); color: var(--pff-blue); font-size: 1.1rem; font-weight: 900; box-shadow: 0 8px 20px rgba(29,95,232,.12); }
.pff-brand-name, .pff-brand-name a { color: var(--pff-navy); font-size: 1.15rem; font-weight: 850; line-height: 1; text-decoration: none; white-space: nowrap; }
.pff-main-nav { display: flex; align-items: center; justify-content: flex-end; gap: 18px; flex-wrap: wrap; }
.pff-main-nav p { margin: 0; }
.pff-main-nav a { display: grid; gap: 1px; color: var(--pff-navy-soft); font-size: .92rem; font-weight: 760; line-height: 1.1; text-align: center; text-decoration: none; }
.pff-main-nav a span { color: var(--pff-blue-dark); font-size: .82rem; font-weight: 850; }
.pff-main-nav a:hover, .pff-main-nav a:focus-visible { color: var(--pff-blue); }
.pff-shop-link a { border: 1px solid var(--pff-blue); border-radius: 999px; color: var(--pff-blue); padding: 8px 15px; }
.pff-shop-link a:hover, .pff-shop-link a:focus-visible { background: var(--pff-blue); color: #fff; }
.pff-shop-link a:hover span, .pff-shop-link a:focus-visible span { color: #fff; }

.pff-homepage { background: var(--pff-bg); }
.pff-hero-wrap { padding-top: 56px; padding-bottom: 52px; }
.pff-hero-card { min-height: 610px; margin: 0; padding: clamp(40px, 6vw, 72px); border: 1px solid var(--pff-border); border-radius: 36px; background: linear-gradient(135deg,#fff 0%,#eef7ff 58%,#d8ecff 100%); box-shadow: var(--pff-shadow); gap: clamp(32px,5vw,68px); overflow: hidden; }
.pff-hero-title { max-width: 760px; margin: 0 0 18px; color: var(--pff-navy); font-size: clamp(3.35rem, 7vw, 6.35rem); font-weight: 900; letter-spacing: 0; line-height: .94; }
.pff-eyebrow { margin: 0 0 16px; color: var(--pff-blue); font-size: .82rem; font-weight: 900; letter-spacing: .11em; text-transform: uppercase; }
.pff-hero-cn { margin: 0 0 20px; color: var(--pff-blue-dark); font-size: clamp(1.45rem, 3vw, 2.2rem); font-weight: 800; line-height: 1.22; }
.pff-hero-text, .pff-section-copy, .pff-mission-text { color: var(--pff-muted); font-size: clamp(1.05rem, 1.7vw, 1.2rem); line-height: 1.75; }
.pff-audience-badges { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 30px; }
.pff-audience-badges p { margin: 0; border: 1px solid rgba(29,95,232,.18); border-radius: 999px; background: rgba(255,255,255,.82); color: var(--pff-navy-soft); font-size: .92rem; font-weight: 760; padding: 9px 13px; }
.pff-video-visual { position: relative; min-height: 430px; border: 1px solid rgba(255,255,255,.8); border-radius: 32px; background: radial-gradient(circle at 28% 22%, #fff 0%, #d7ebff 38%, #6aa8ff 100%); box-shadow: 0 26px 60px rgba(7,29,51,.18); overflow: hidden; }
.pff-video-visual:before { content: ""; position: absolute; inset: 34px; border: 1px solid rgba(255,255,255,.46); border-radius: 26px; }
.pff-play-button { position: absolute; left: 50%; top: 45%; transform: translate(-50%,-50%); display: grid; place-items: center; width: 86px; height: 86px; margin: 0; border-radius: 50%; background: #fff; color: var(--pff-blue); font-size: 2rem; box-shadow: 0 18px 36px rgba(7,29,51,.2); }
.pff-video-caption { position: absolute; left: 0; right: 0; bottom: 0; margin: 0; padding: 22px 26px; background: rgba(7,29,51,.86); color: #fff; font-size: 1.25rem; font-weight: 850; }

.pff-section { padding-top: 64px; padding-bottom: 64px; }
.pff-section-title { margin: 0 0 18px; color: var(--pff-navy); font-size: clamp(2rem, 4vw, 3.25rem); font-weight: 880; line-height: 1.08; }
.pff-section-title span, .pff-card-title span { color: var(--pff-blue-dark); font-size: .72em; }
.pff-section-copy.pff-cn-copy { font-weight: 700; color: var(--pff-navy-soft); }
.pff-mission-card, .pff-latest-card, .pff-course-card, .pff-bottom-card { border: 1px solid var(--pff-border); border-radius: var(--pff-radius); box-shadow: var(--pff-shadow); }
.pff-mission-card { margin: 0; padding: clamp(26px,4vw,48px); background: var(--pff-green-blue); gap: clamp(24px,4vw,44px); }
.pff-atom-visual { min-height: 220px; border-radius: 24px; background: radial-gradient(circle,#fff 0%,#dff5f1 60%,#cdebe6 100%); color: var(--pff-blue); font-size: 4rem; }
.pff-atom-visual p { margin: 0; }

.pff-latest-card { padding: clamp(26px,4vw,50px); background: #fff; }
.pff-latest-heading { margin-bottom: 28px; }
.pff-latest-grid { gap: clamp(24px,4vw,46px); }
.pff-coin-visual { position: relative; min-height: 260px; border: 1px dashed #8dbdf3; border-radius: 24px; background: linear-gradient(145deg,#f3f9ff 0%,#fff 52%,#d8ecff 100%); display: grid; place-items: center; text-align: center; color: var(--pff-navy-soft); font-weight: 850; }
.pff-small-play { position: absolute; top: 18px; right: 18px; display: grid; place-items: center; width: 46px; height: 46px; margin: 0; border-radius: 50%; background: #fff; color: var(--pff-blue); box-shadow: 0 10px 22px rgba(7,29,51,.14); }
.pff-card-title { margin: 0 0 16px; color: var(--pff-navy); font-size: clamp(1.65rem,3vw,2.35rem); line-height: 1.12; }
.pff-latest-action-col .wp-block-buttons { justify-content: flex-end; }
.wp-block-button__link { border-radius: 999px; font-weight: 850; padding: 14px 22px; }
.pff-primary-button .wp-block-button__link { background: var(--pff-blue); box-shadow: 0 14px 28px rgba(29,95,232,.22); color: #fff; }
.pff-secondary-button .wp-block-button__link, .wp-block-button.is-style-outline .wp-block-button__link { background: transparent; border-color: var(--pff-blue); color: var(--pff-blue); box-shadow: none; }

.pff-physics-band { margin-top: 34px; padding: 84px 0; background: var(--pff-sky); }
.pff-physics-grid { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: 16px; margin-top: 28px; }
.pff-topic-card { position: relative; min-height: 194px; padding: 22px; border: 1px solid var(--pff-border); border-radius: 22px; background: #fff; box-shadow: 0 14px 36px rgba(7,29,51,.06); }
.pff-topic-icon { display: grid; place-items: center; width: 48px; height: 48px; margin: 0 0 22px; border-radius: 16px; background: var(--pff-sky-2); color: var(--pff-blue); font-size: 1.3rem; font-weight: 900; }
.pff-topic-card h3 { margin: 0 0 6px; color: var(--pff-navy); font-size: 1.24rem; }
.pff-topic-card p:not(.pff-topic-icon) { margin: 0; color: var(--pff-muted); font-weight: 750; }
.pff-topic-card span { position: absolute; right: 18px; bottom: 18px; display: grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; background: var(--pff-sky); color: var(--pff-blue); font-weight: 900; }

.pff-course-card { margin: 0; padding: clamp(26px,4vw,50px); background: var(--pff-yellow); gap: clamp(24px,4vw,44px); }
.pff-class-visual { min-height: 280px; border: 1px dashed #d5aa35; border-radius: 24px; background: linear-gradient(145deg,#fff 0%,#fff7dc 100%); display: grid; place-items: center; text-align: center; color: var(--pff-navy-soft); font-size: 1.16rem; font-weight: 850; }
.pff-bottom-grid { gap: 24px; }
.pff-bottom-card { min-height: 300px; padding: clamp(24px,4vw,42px); background: #fff; }
.pff-bottom-card p { color: var(--pff-muted); font-size: 1.08rem; line-height: 1.7; }

.pff-footer { margin-top: 76px; padding: 64px 0 24px; background: var(--pff-navy); color: #c8d7e8; }
.pff-footer-grid { max-width: 1180px; margin: 0 auto; padding: 0 24px; gap: 36px; }
.pff-footer h2, .pff-footer h3 { color: #fff; margin-top: 0; }
.pff-footer a { color: #e8f4ff; text-decoration: none; }
.pff-footer a:hover, .pff-footer a:focus-visible { text-decoration: underline; text-underline-offset: 3px; }
.pff-footer-bottom { max-width: 1180px; margin: 40px auto 0; padding: 22px 24px 0; border-top: 1px solid rgba(255,255,255,.14); color: #94abc2; }

@media (max-width: 1050px) { .pff-physics-grid { grid-template-columns: repeat(3,minmax(0,1fr)); } }
@media (max-width: 760px) {
	.pff-container { padding-left: 18px; padding-right: 18px; }
	.pff-header-shell { align-items: flex-start; flex-direction: column; gap: 14px; min-height: auto; padding: 14px 18px; }
	.pff-main-nav { justify-content: flex-start; gap: 8px 10px; }
	.pff-main-nav a { border-radius: 14px; background: #f1f7ff; padding: 8px 10px; }
	.pff-shop-link a { background: #fff; }
	.pff-hero-wrap { padding-top: 26px; padding-bottom: 34px; }
	.pff-hero-card { min-height: auto; padding: 28px 20px; border-radius: 24px; }
	.pff-hero-title { font-size: clamp(2.65rem, 14vw, 4rem); max-width: none; }
	.pff-video-visual { min-height: 280px; border-radius: 22px; }
	.pff-play-button { width: 68px; height: 68px; }
	.pff-section { padding-top: 42px; padding-bottom: 42px; }
	.pff-mission-card, .pff-latest-card, .pff-course-card, .pff-bottom-card { border-radius: 22px; }
	.pff-atom-visual, .pff-coin-visual, .pff-class-visual { min-height: 210px; }
	.pff-latest-action-col .wp-block-buttons { justify-content: flex-start; }
	.pff-physics-band { padding: 52px 0; }
	.pff-physics-grid { grid-template-columns: 1fr; }
	.pff-topic-card { min-height: 150px; }
	.pff-footer { margin-top: 48px; }
}

body {
	padding: 0 !important;
}

.wp-site-blocks > * {
	margin-block-start: 0 !important;
}

.pff-homepage .wp-block-columns,
.pff-homepage .wp-block-group,
.pff-site-header .wp-block-group,
.pff-footer .wp-block-columns {
	margin-block-start: 0;
}

@media (min-width: 782px) {
	.pff-container,
	.pff-header-shell,
	.pff-footer-grid,
	.pff-footer-bottom {
		max-width: 1200px;
		width: calc(100% - 64px);
		padding-left: 0;
		padding-right: 0;
	}

	.pff-hero-wrap {
		padding-top: 40px;
		padding-bottom: 44px;
	}

	.pff-hero-card {
		display: grid !important;
		grid-template-columns: minmax(0, 48fr) minmax(360px, 44fr);
		align-items: center;
		min-height: 500px;
		padding: clamp(36px, 4.2vw, 56px);
		gap: clamp(36px, 5vw, 72px);
	}

	.pff-hero-card > .wp-block-column {
		flex-basis: auto !important;
		width: auto !important;
	}

	.pff-hero-title {
		max-width: 720px;
		font-size: clamp(3.4rem, 5.2vw, 5rem);
		line-height: 0.98;
	}

	.pff-video-visual {
		min-height: 360px;
	}

	.pff-mission-card,
	.pff-latest-grid,
	.pff-course-card,
	.pff-bottom-grid {
		display: grid !important;
		align-items: center;
	}

	.pff-mission-card {
		grid-template-columns: 0.85fr 1.2fr 1.2fr;
	}

	.pff-latest-grid {
		grid-template-columns: 1fr 1.35fr 0.82fr;
	}

	.pff-course-card {
		grid-template-columns: 0.86fr 1.35fr;
	}

	.pff-bottom-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.pff-mission-card > .wp-block-column,
	.pff-latest-grid > .wp-block-column,
	.pff-course-card > .wp-block-column,
	.pff-bottom-grid > .wp-block-column {
		flex-basis: auto !important;
		width: auto !important;
	}

	.pff-physics-grid {
		grid-template-columns: repeat(5, minmax(0, 1fr));
	}

	.pff-section {
		padding-top: 54px;
		padding-bottom: 54px;
	}
}

@media (min-width: 1200px) {
	.pff-hero-title {
		font-size: 4.85rem;
	}
}

/* Sprint 1.1 header finalization */
.pff-site-header {
	position: sticky;
	top: 0;
	z-index: 100;
	min-height: 72px;
	background: rgba(255, 255, 255, 0.98);
	border-bottom: 1px solid rgba(201, 219, 239, 0.95);
	box-shadow: 0 8px 24px rgba(7, 29, 51, 0.06);
	backdrop-filter: blur(12px);
}

.pff-header-shell {
	max-width: 1180px;
	width: calc(100% - 48px);
	min-height: 72px;
	margin: 0 auto;
	padding: 0;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 2rem;
}

.pff-brand {
	display: inline-flex;
	align-items: center;
	gap: 0.75rem;
	min-width: max-content;
}

.pff-atom-mark {
	display: grid;
	place-items: center;
	width: 42px;
	height: 42px;
	margin: 0;
	border: 1px solid var(--pff-border);
	border-radius: 999px;
	background: linear-gradient(145deg, #ffffff 0%, var(--pff-sky) 100%);
	box-shadow: 0 10px 22px rgba(29, 95, 232, 0.14);
	color: var(--pff-blue);
	font-size: 1.12rem;
	font-weight: 900;
}

.pff-brand-name,
.pff-brand-name a {
	color: var(--pff-navy);
	font-size: 1.18rem;
	font-weight: 880;
	line-height: 1.1;
	text-decoration: none;
	white-space: nowrap;
}

.pff-main-nav {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: 0.65rem;
	flex-wrap: wrap;
}

.pff-main-nav p {
	margin: 0;
}

.pff-main-nav a {
	display: grid;
	place-items: center;
	gap: 0.12rem;
	min-width: 4.7rem;
	min-height: 3rem;
	border-radius: 16px;
	color: var(--pff-navy-soft);
	font-size: 0.9rem;
	font-weight: 760;
	line-height: 1.08;
	padding: 0.42rem 0.62rem;
	text-align: center;
	text-decoration: none;
}

.pff-main-nav a span {
	color: var(--pff-blue-dark);
	font-size: 0.82rem;
	font-weight: 850;
}

.pff-main-nav a strong {
	font-size: 0.92rem;
	font-weight: 780;
}

.pff-main-nav a:hover,
.pff-main-nav a:focus-visible {
	background: var(--pff-sky);
	color: var(--pff-blue);
}

.pff-shop-link a {
	min-width: 4.9rem;
	border: 1px solid var(--pff-blue);
	border-radius: 999px;
	background: #ffffff;
	color: var(--pff-blue);
	padding-right: 0.85rem;
	padding-left: 0.85rem;
}

.pff-shop-link a:hover,
.pff-shop-link a:focus-visible {
	background: var(--pff-blue);
	color: #ffffff;
}

.pff-shop-link a:hover span,
.pff-shop-link a:focus-visible span {
	color: #ffffff;
}

@media (max-width: 760px) {
	.pff-header-shell {
		width: calc(100% - 36px);
		min-height: auto;
		padding: 0.9rem 0;
		align-items: flex-start;
		flex-direction: column;
		gap: 0.9rem;
	}

	.pff-main-nav {
		justify-content: flex-start;
		gap: 0.5rem;
		width: 100%;
	}

	.pff-main-nav a {
		min-width: auto;
		min-height: 2.75rem;
		border-radius: 14px;
		background: #f1f7ff;
		padding: 0.46rem 0.62rem;
	}

	.pff-shop-link a {
		background: #ffffff;
	}
}

/* Sprint 1.2 hero typography refinement */
.pff-hero-wrap {
	padding-top: clamp(1.75rem, 3.2vw, 2.75rem);
	padding-bottom: clamp(2rem, 3.4vw, 3rem);
}

.pff-hero-card {
	min-height: 460px;
	padding: clamp(2rem, 3.8vw, 3.25rem);
}

.pff-hero-title {
	max-width: 780px;
	font-size: clamp(2.7rem, 4.2vw, 3.75rem);
	line-height: 1.03;
	margin-bottom: 0.8rem;
}

.pff-hero-cn {
	font-size: clamp(2.15rem, 3.5vw, 3.2rem);
	line-height: 1.12;
	margin-bottom: 1.1rem;
}

.pff-hero-text {
	font-size: clamp(1.16rem, 1.55vw, 1.38rem);
	line-height: 1.62;
}

.pff-audience-badges {
	margin-top: 1.35rem;
}

.pff-audience-badges p {
	font-size: 1rem;
}

.pff-video-visual {
	min-height: 340px;
}

@media (min-width: 782px) {
	.pff-hero-wrap {
		padding-top: 2.25rem;
		padding-bottom: 2.5rem;
	}

	.pff-hero-card {
		min-height: 460px;
		padding: clamp(2.25rem, 3.6vw, 3.4rem);
	}

	.pff-hero-title {
		font-size: clamp(3.15rem, 4.2vw, 3.75rem);
	}

	.pff-hero-cn {
		font-size: clamp(2.6rem, 3.55vw, 3.25rem);
	}

	.pff-video-visual {
		min-height: 330px;
	}
}

@media (min-width: 1200px) {
	.pff-hero-title {
		font-size: 3.75rem;
	}

	.pff-hero-cn {
		font-size: 3.1rem;
	}
}

@media (max-width: 760px) {
	.pff-hero-title {
		font-size: clamp(2.35rem, 11vw, 3.2rem);
	}

	.pff-hero-cn {
		font-size: clamp(1.8rem, 8vw, 2.55rem);
	}

	.pff-hero-text {
		font-size: 1.08rem;
	}
}

/* Sprint 1 final polish: desktop density */
@media (min-width: 782px) {
	.pff-hero-wrap {
		padding-top: 1.35rem;
		padding-bottom: 1.8rem;
	}

	.pff-hero-card {
		min-height: 380px;
		padding: clamp(1.75rem, 2.8vw, 2.55rem);
		gap: clamp(1.75rem, 3.4vw, 3.75rem);
	}

	.pff-hero-title {
		font-size: clamp(2.55rem, 3.35vw, 3rem);
		line-height: 1.04;
		margin-bottom: 0.55rem;
	}

	.pff-hero-cn {
		font-size: clamp(2.25rem, 2.95vw, 2.65rem);
		line-height: 1.08;
		margin-bottom: 0.75rem;
	}

	.pff-hero-text,
	.pff-section-copy,
	.pff-mission-text {
		font-size: clamp(1rem, 1.2vw, 1.12rem);
		line-height: 1.55;
	}

	.pff-audience-badges {
		margin-top: 1rem;
		gap: 0.5rem;
	}

	.pff-audience-badges p {
		font-size: 0.88rem;
		padding: 0.42rem 0.65rem;
	}

	.pff-video-visual {
		min-height: 280px;
	}

	.pff-play-button {
		width: 68px;
		height: 68px;
		font-size: 1.6rem;
	}

	.pff-video-caption {
		padding: 1rem 1.25rem;
		font-size: 1.05rem;
	}

	.pff-section {
		padding-top: 2.25rem;
		padding-bottom: 2.25rem;
	}

	.pff-section-title {
		font-size: clamp(1.55rem, 2.6vw, 2.35rem);
		line-height: 1.1;
		margin-bottom: 0.75rem;
	}

	.pff-card-title {
		font-size: clamp(1.35rem, 2.15vw, 1.85rem);
		margin-bottom: 0.65rem;
	}

	.pff-mission-card,
	.pff-latest-card,
	.pff-course-card,
	.pff-bottom-card {
		padding: clamp(1.35rem, 2.5vw, 2.25rem);
	}

	.pff-mission-card,
	.pff-latest-grid,
	.pff-course-card,
	.pff-bottom-grid {
		gap: clamp(1.25rem, 2.6vw, 2.4rem);
	}

	.pff-atom-visual {
		min-height: 150px;
		font-size: 3rem;
	}

	.pff-coin-visual,
	.pff-class-visual {
		min-height: 200px;
	}

	.pff-latest-heading {
		margin-bottom: 1.15rem;
	}

	.pff-physics-band {
		margin-top: 1.25rem;
		padding: 3rem 0;
	}

	.pff-physics-grid {
		gap: 0.85rem;
		margin-top: 1.2rem;
	}

	.pff-topic-card {
		min-height: 145px;
		padding: 1rem;
	}

	.pff-topic-icon {
		width: 40px;
		height: 40px;
		margin-bottom: 1rem;
		border-radius: 13px;
	}

	.pff-topic-card h3 {
		font-size: 1.08rem;
	}

	.pff-bottom-card {
		min-height: 210px;
	}

	.pff-bottom-card p {
		font-size: 1rem;
		line-height: 1.55;
	}

	.pff-footer {
		margin-top: 3rem;
		padding-top: 3rem;
	}

	.pff-footer h2 {
		font-size: 1.55rem;
	}

	.pff-footer h3 {
		font-size: 1.05rem;
	}

	.wp-block-button__link {
		padding: 0.72rem 1.1rem;
	}
}

@media (min-width: 1200px) {
	.pff-hero-title {
		font-size: 3rem;
	}

	.pff-hero-cn {
		font-size: 2.55rem;
	}
}

@media (max-width: 760px) {
	.pff-hero-title {
		font-size: clamp(2.25rem, 10vw, 3rem);
	}

	.pff-hero-cn {
		font-size: clamp(1.8rem, 7.6vw, 2.45rem);
	}
}

/* Hero title scale adjustment */
@media (min-width: 782px) {
	.pff-hero-title {
		font-size: clamp(1.275rem, 1.675vw, 1.5rem);
	}

	.pff-hero-cn {
		font-size: clamp(1.125rem, 1.475vw, 1.325rem);
	}
}

@media (min-width: 1200px) {
	.pff-hero-title {
		font-size: 1.5rem;
	}

	.pff-hero-cn {
		font-size: 1.275rem;
	}
}

@media (max-width: 760px) {
	.pff-hero-title {
		font-size: clamp(1.125rem, 5vw, 1.5rem);
	}

	.pff-hero-cn {
		font-size: clamp(0.9rem, 3.8vw, 1.225rem);
	}
}

/* Hero title proportional increase */
@media (min-width: 782px) {
	.pff-hero-title {
		font-size: clamp(1.9125rem, 2.5125vw, 2.25rem);
	}

	.pff-hero-cn {
		font-size: clamp(1.6875rem, 2.2125vw, 1.9875rem);
	}
}

@media (min-width: 1200px) {
	.pff-hero-title {
		font-size: 2.25rem;
	}

	.pff-hero-cn {
		font-size: 1.9125rem;
	}
}

@media (max-width: 760px) {
	.pff-hero-title {
		font-size: clamp(1.6875rem, 7.5vw, 2.25rem);
	}

	.pff-hero-cn {
		font-size: clamp(1.35rem, 5.7vw, 1.8375rem);
	}
}

/* Hero video card interaction */
a.pff-video-visual {
	display: block;
	color: inherit;
	cursor: pointer;
	text-decoration: none;
	transition: box-shadow 160ms ease, transform 160ms ease;
}

a.pff-video-visual:hover,
a.pff-video-visual:focus-visible {
	box-shadow: 0 30px 70px rgba(7, 29, 51, 0.24);
	transform: translateY(-2px);
}

a.pff-video-visual .pff-play-button {
	transition: transform 160ms ease;
}

a.pff-video-visual:hover .pff-play-button,
a.pff-video-visual:focus-visible .pff-play-button {
	transform: translate(-50%, -50%) scale(1.06);
}

/* Sprint 2.1 experiments page framework */
.pff-experiments-page {
	background: var(--pff-bg);
}

.pff-exp-hero {
	margin-top: 2rem;
	padding: clamp(2rem, 4vw, 3.25rem);
	border: 1px solid var(--pff-border);
	border-radius: var(--pff-radius);
	background: linear-gradient(135deg, #ffffff 0%, var(--pff-sky) 100%);
	box-shadow: var(--pff-shadow);
}

.pff-exp-title {
	margin: 0 0 0.8rem;
	color: var(--pff-navy);
	font-size: clamp(2.25rem, 4vw, 3.4rem);
	line-height: 1.05;
}

.pff-exp-title span,
.pff-exp-subtitle {
	color: var(--pff-blue-dark);
}

.pff-exp-subtitle {
	font-size: clamp(1.25rem, 2vw, 1.7rem);
	font-weight: 780;
	line-height: 1.35;
}

.pff-exp-intro {
	max-width: 760px;
	color: var(--pff-muted);
	font-size: 1.1rem;
	line-height: 1.65;
}

.pff-exp-section {
	padding-top: 2.75rem;
	padding-bottom: 2.75rem;
}

.pff-exp-latest-card,
.pff-exp-library-card,
.pff-exp-teacher-note {
	border: 1px solid var(--pff-border);
	border-radius: var(--pff-radius);
	background: #ffffff;
	box-shadow: var(--pff-shadow);
}

.pff-exp-latest-card {
	padding: clamp(1.5rem, 3vw, 2.5rem);
}

.pff-exp-latest-grid {
	gap: clamp(1.5rem, 4vw, 3rem);
}

.pff-exp-coin-visual {
	min-height: 230px;
	border: 1px dashed #8dbdf3;
	border-radius: 24px;
	background: linear-gradient(145deg, #f3f9ff 0%, #ffffff 52%, #d8ecff 100%);
	color: var(--pff-navy-soft);
	font-weight: 850;
	text-align: center;
}

.pff-exp-topic-band {
	padding: 3rem 0;
	background: var(--pff-sky);
}

.pff-exp-topic-grid {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: 1rem;
	margin-top: 1.25rem;
}

.pff-exp-topic-card {
	min-height: 165px;
	padding: 1.15rem;
	border: 1px solid var(--pff-border);
	border-radius: 22px;
	background: #ffffff;
	box-shadow: 0 14px 36px rgba(7, 29, 51, 0.06);
}

.pff-exp-topic-card h3,
.pff-exp-library-card h3 {
	margin: 0 0 0.55rem;
	color: var(--pff-navy);
	font-size: 1.15rem;
	line-height: 1.25;
}

.pff-exp-topic-card p:not(.pff-topic-icon),
.pff-exp-library-card p {
	color: var(--pff-muted);
	font-size: 0.95rem;
	line-height: 1.5;
}

.pff-exp-library-grid {
	display: grid;
	grid-template-columns: minmax(0, 1.35fr) repeat(3, minmax(0, 1fr));
	gap: 1rem;
	margin-top: 1.25rem;
}

.pff-exp-library-card {
	padding: 1.25rem;
}

.pff-exp-library-card h3 span {
	color: var(--pff-blue-dark);
}

.pff-exp-tags {
	display: flex;
	flex-wrap: wrap;
	gap: 0.45rem;
}

.pff-exp-tags span {
	border: 1px solid rgba(29, 95, 232, 0.18);
	border-radius: 999px;
	background: var(--pff-sky);
	color: var(--pff-navy-soft);
	font-size: 0.86rem;
	font-weight: 750;
	padding: 0.3rem 0.55rem;
}

.pff-exp-coming-soon {
	background: linear-gradient(180deg, #ffffff 0%, #f8fbff 100%);
}

.pff-exp-teacher-note {
	padding: clamp(1.35rem, 3vw, 2rem);
	background: var(--pff-green-blue);
}

@media (max-width: 1050px) {
	.pff-exp-topic-grid,
	.pff-exp-library-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 760px) {
	.pff-exp-hero {
		margin-top: 1.2rem;
		padding: 1.35rem;
		border-radius: 22px;
	}

	.pff-exp-section {
		padding-top: 2rem;
		padding-bottom: 2rem;
	}

	.pff-exp-topic-grid,
	.pff-exp-library-grid {
		grid-template-columns: 1fr;
	}

	.pff-exp-topic-band {
		padding: 2.25rem 0;
	}
}

/* Sprint 2.2 experiments page refinement */
.pff-exp-hero-compact {
	padding-top: clamp(1.35rem, 3vw, 2.25rem);
	padding-bottom: clamp(1.35rem, 3vw, 2.25rem);
}

.pff-exp-hero-compact .pff-exp-subtitle {
	margin-bottom: 0;
}

.pff-exp-video-card {
	position: relative;
	display: block;
	min-height: 300px;
	border: 1px solid rgba(255, 255, 255, 0.8);
	border-radius: 24px;
	background: radial-gradient(circle at 28% 22%, #ffffff 0%, #d7ebff 38%, #6aa8ff 100%);
	box-shadow: 0 22px 55px rgba(7, 29, 51, 0.16);
	overflow: hidden;
	color: inherit;
	cursor: pointer;
	text-decoration: none;
	transition: box-shadow 160ms ease;
}

.pff-exp-video-card:hover,
.pff-exp-video-card:focus-visible {
	box-shadow: 0 28px 70px rgba(7, 29, 51, 0.22);
}

.pff-exp-video-card .pff-small-play {
	position: absolute;
	left: 50%;
	top: 45%;
	transform: translate(-50%, -50%);
	width: 64px;
	height: 64px;
	font-size: 1.5rem;
}

.pff-exp-info-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0.9rem;
	margin-top: 1.25rem;
}

.pff-exp-info-block {
	border: 1px solid var(--pff-border);
	border-radius: 18px;
	background: #ffffff;
	padding: 1rem;
}

.pff-exp-info-block h3 {
	margin: 0 0 0.5rem;
	color: var(--pff-navy);
	font-size: 1rem;
}

.pff-exp-info-block p,
.pff-exp-info-block ul {
	margin: 0;
	color: var(--pff-muted);
	font-size: 0.95rem;
	line-height: 1.5;
}

.pff-exp-info-block ul {
	padding-left: 1.1rem;
}

.pff-exp-topic-grid {
	align-items: stretch;
}

.pff-exp-topic-card {
	display: grid;
	grid-template-rows: auto auto auto 1fr;
	min-height: 190px;
	padding: 1.15rem;
	transition: box-shadow 160ms ease;
}

.pff-exp-topic-card:hover,
.pff-exp-topic-card:focus-within {
	box-shadow: 0 18px 42px rgba(7, 29, 51, 0.1);
}

.pff-exp-topic-card .pff-topic-icon {
	width: 58px;
	height: 58px;
	margin-bottom: 1rem;
	border-radius: 18px;
	font-size: 1.75rem;
}

.pff-exp-topic-card h3 {
	font-size: 1.12rem;
}

.pff-exp-topic-card small {
	align-self: end;
	color: var(--pff-muted);
	font-size: 0.82rem;
	line-height: 1.35;
}

.pff-exp-library-intro {
	max-width: 680px;
	color: var(--pff-muted);
	font-size: 1.02rem;
	line-height: 1.55;
}

.pff-exp-library-section .pff-exp-library-grid {
	grid-template-columns: repeat(4, minmax(0, 1fr));
}

.pff-exp-library-section .pff-exp-library-card {
	box-shadow: 0 12px 28px rgba(7, 29, 51, 0.06);
}

@media (max-width: 1050px) {
	.pff-exp-library-section .pff-exp-library-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 760px) {
	.pff-exp-video-card {
		min-height: 230px;
		border-radius: 20px;
	}

	.pff-exp-info-grid,
	.pff-exp-library-section .pff-exp-library-grid {
		grid-template-columns: 1fr;
	}

	.pff-exp-topic-card {
		min-height: 165px;
	}
}

/* Sprint 2.3 experiments density and detail link */
@media (min-width: 782px) {
	.pff-exp-topic-grid {
		grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
		gap: 0.75rem;
	}

	.pff-exp-topic-card {
		min-height: 132px;
		padding: 0.85rem;
		box-shadow: 0 10px 24px rgba(7, 29, 51, 0.055);
	}

	.pff-exp-topic-card:hover,
	.pff-exp-topic-card:focus-within {
		box-shadow: 0 14px 30px rgba(7, 29, 51, 0.09);
	}

	.pff-exp-topic-card .pff-topic-icon {
		width: 46px;
		height: 46px;
		margin-bottom: 0.65rem;
		border-radius: 14px;
		font-size: 1.45rem;
	}

	.pff-exp-topic-card h3 {
		font-size: 1rem;
		margin-bottom: 0.2rem;
	}

	.pff-exp-topic-card p:not(.pff-topic-icon) {
		font-size: 0.9rem;
	}

	.pff-exp-topic-card small {
		font-size: 0.76rem;
	}

	.pff-exp-library-section .pff-exp-library-grid {
		grid-template-columns: repeat(4, minmax(0, 1fr));
		gap: 0.85rem;
	}

	.pff-exp-library-section .pff-exp-library-card {
		min-height: 168px;
		padding: 1rem;
	}

	.pff-exp-library-card h3 {
		font-size: 1rem;
		line-height: 1.25;
	}

	.pff-exp-tags {
		gap: 0.35rem;
	}

	.pff-exp-tags span {
		font-size: 0.78rem;
		padding: 0.24rem 0.45rem;
	}
}

@media (max-width: 760px) {
	.pff-exp-topic-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.pff-exp-topic-card {
		min-height: 132px;
		padding: 0.85rem;
	}
}

@media (max-width: 520px) {
	.pff-exp-topic-grid {
		grid-template-columns: 1fr;
	}
}

/* Sprint 2.4 experiment detail page */
.pff-experiment-detail {
	background: var(--pff-bg);
}

.pff-detail-hero,
.pff-detail-card,
.pff-step-card,
.pff-result-card,
.pff-why-card,
.pff-challenge-card,
.pff-real-science-card,
.pff-resource-card {
	border: 1px solid var(--pff-border);
	border-radius: var(--pff-radius);
	background: #ffffff;
	box-shadow: 0 14px 36px rgba(7, 29, 51, 0.07);
}

.pff-detail-hero {
	margin-top: 2rem;
	padding: clamp(1.5rem, 4vw, 3rem);
	background: linear-gradient(135deg, #ffffff 0%, var(--pff-sky) 100%);
}

.pff-detail-title {
	margin: 0 0 1rem;
	color: var(--pff-navy);
	font-size: clamp(2rem, 4.2vw, 3.6rem);
	line-height: 1.05;
}

.pff-detail-title span,
.pff-detail-card p,
.pff-step-card p,
.pff-why-card p {
	color: var(--pff-blue-dark);
}

.pff-detail-badges {
	display: flex;
	flex-wrap: wrap;
	gap: 0.55rem;
	margin-bottom: 1.25rem;
}

.pff-detail-badges p {
	margin: 0;
	border: 1px solid rgba(29, 95, 232, 0.18);
	border-radius: 999px;
	background: #ffffff;
	color: var(--pff-navy-soft);
	font-weight: 750;
	padding: 0.38rem 0.7rem;
}

.pff-detail-video {
	position: relative;
	aspect-ratio: 16 / 9;
	border-radius: 24px;
	background: radial-gradient(circle at 28% 22%, #ffffff 0%, #d7ebff 38%, #6aa8ff 100%);
	overflow: hidden;
}

.pff-detail-video video {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.pff-detail-section {
	padding-top: 2.4rem;
	padding-bottom: 2.4rem;
}

.pff-predict-grid,
.pff-think-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1rem;
}

.pff-material-grid,
.pff-resource-grid {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: 1rem;
}

.pff-step-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 1rem;
}

.pff-detail-card,
.pff-step-card,
.pff-resource-card {
	padding: 1.1rem;
}

.pff-detail-card h3,
.pff-step-card span,
.pff-why-card h3,
.pff-resource-card h3 {
	margin: 0 0 0.5rem;
	color: var(--pff-navy);
	font-size: 1.05rem;
}

.pff-step-card span {
	display: inline-block;
	color: var(--pff-blue);
	font-weight: 900;
}

.pff-result-card,
.pff-challenge-card,
.pff-real-science-card {
	padding: clamp(1.35rem, 3vw, 2.25rem);
	background: var(--pff-sky);
}

.pff-why-chain {
	display: grid;
	grid-template-columns: 1fr auto 1fr auto 1fr auto 1.2fr;
	gap: 0.75rem;
	align-items: center;
}

.pff-why-card {
	padding: 1rem;
	text-align: center;
}

.pff-chain-arrow {
	color: var(--pff-blue);
	font-size: 1.5rem;
	font-weight: 900;
	text-align: center;
}

.pff-challenge-card {
	background: var(--pff-yellow);
}

.pff-real-science-card {
	background: var(--pff-green-blue);
}

.pff-resource-card a {
	display: inline-flex;
	margin-top: 0.5rem;
	border: 1px solid var(--pff-blue);
	border-radius: 999px;
	color: var(--pff-blue);
	font-weight: 800;
	padding: 0.45rem 0.75rem;
	text-decoration: none;
}

@media (max-width: 1050px) {
	.pff-material-grid,
	.pff-resource-grid,
	.pff-step-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.pff-why-chain {
		grid-template-columns: 1fr;
	}

	.pff-chain-arrow {
		transform: rotate(0deg);
	}
}

@media (max-width: 760px) {
	.pff-detail-hero {
		margin-top: 1.2rem;
		padding: 1.25rem;
		border-radius: 22px;
	}

	.pff-detail-section {
		padding-top: 1.8rem;
		padding-bottom: 1.8rem;
	}

	.pff-predict-grid,
	.pff-think-grid,
	.pff-material-grid,
	.pff-resource-grid,
	.pff-step-grid {
		grid-template-columns: 1fr;
	}
}

/* Sprint 2.5 lightweight experiment detail */
.pff-experiment-detail-lite .pff-detail-section {
	padding-top: 1.6rem;
	padding-bottom: 1.6rem;
}

.pff-try-card {
	border: 1px solid var(--pff-border);
	border-radius: var(--pff-radius);
	background: #ffffff;
	box-shadow: 0 14px 36px rgba(7, 29, 51, 0.07);
	padding: clamp(1.25rem, 2.6vw, 2rem);
}

.pff-try-grid {
	display: grid;
	grid-template-columns: 0.9fr 0.75fr 1.25fr;
	gap: 1rem;
}

.pff-try-block {
	border: 1px solid var(--pff-border);
	border-radius: 18px;
	background: #f8fbff;
	padding: 1rem;
}

.pff-try-block h3 {
	margin: 0 0 0.55rem;
	color: var(--pff-navy);
	font-size: 1rem;
}

.pff-try-block ul,
.pff-try-block ol,
.pff-try-block p {
	margin: 0;
	color: var(--pff-muted);
	font-size: 0.95rem;
	line-height: 1.48;
}

.pff-try-block ul,
.pff-try-block ol {
	padding-left: 1.1rem;
}

.pff-why-chain-lite {
	margin-top: 1rem;
}

.pff-why-chain-lite .pff-why-card {
	padding: 0.85rem;
}

.pff-why-chain-lite .pff-why-card h3 {
	font-size: 0.98rem;
}

.pff-why-chain-lite .pff-why-card p {
	font-size: 0.9rem;
}

.pff-challenge-lite {
	padding: clamp(1.25rem, 2.6vw, 2rem);
}

.pff-challenge-lite .pff-section-copy {
	max-width: 720px;
}

@media (max-width: 900px) {
	.pff-try-grid {
		grid-template-columns: 1fr;
	}
}


/* Sprint 2.6 experiment detail simplification */
.pff-experiment-detail-simple .pff-detail-hero {
	padding-top: clamp(1.15rem, 2.2vw, 1.8rem);
	padding-bottom: clamp(1.15rem, 2.2vw, 1.8rem);
}

.pff-experiment-detail-simple .pff-detail-title {
	font-size: clamp(1.35rem, 2.25vw, 1.95rem);
	line-height: 1.12;
	margin-bottom: 0.75rem;
}

.pff-experiment-detail-simple .pff-detail-title span {
	font-size: 0.98em;
}

.pff-experiment-detail-simple .pff-detail-badges {
	gap: 0.45rem;
	margin-bottom: 0.9rem;
}

.pff-experiment-detail-simple .pff-detail-badges p {
	font-size: 0.78rem;
	line-height: 1.25;
	padding: 0.42rem 0.65rem;
}

.pff-experiment-detail-simple .pff-detail-section {
	padding-top: 1rem;
	padding-bottom: 1rem;
}

.pff-try-card-simple {
	padding: clamp(1rem, 1.8vw, 1.45rem);
}

.pff-try-card-simple .pff-section-title,
.pff-challenge-simple .pff-section-title,
.pff-experiment-detail-simple .pff-detail-section > .pff-section-title {
	margin-bottom: 0.85rem;
}

.pff-try-compact {
	display: grid;
	gap: 0.85rem;
}

.pff-try-compact h3 {
	margin: 0 0 0.35rem;
	color: var(--pff-navy);
	font-size: 0.92rem;
	line-height: 1.2;
}

.pff-try-compact h3 span {
	color: var(--pff-blue);
	font-size: 0.9em;
}

.pff-material-line p,
.pff-question-line p {
	margin: 0;
	color: var(--pff-muted);
	font-size: 0.95rem;
	line-height: 1.45;
}

.pff-step-inline-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 0.6rem;
}

.pff-step-pill {
	border: 1px solid var(--pff-border);
	border-radius: 14px;
	background: #f8fbff;
	padding: 0.62rem 0.7rem;
}

.pff-step-pill strong,
.pff-step-pill span {
	display: block;
	line-height: 1.25;
}

.pff-step-pill strong {
	color: var(--pff-navy);
	font-size: 0.88rem;
}

.pff-step-pill span {
	color: var(--pff-muted);
	font-size: 0.82rem;
	margin-top: 0.18rem;
}

.pff-why-cycle {
	align-items: center;
	background: #ffffff;
	border: 1px solid var(--pff-border);
	border-radius: 22px;
	box-shadow: 0 14px 34px rgba(7, 29, 51, 0.07);
	display: grid;
	gap: 0.55rem;
	grid-template-columns: repeat(7, auto) 2rem;
	justify-content: center;
	margin: 0 auto;
	max-width: 880px;
	padding: clamp(0.9rem, 1.8vw, 1.35rem);
}

.pff-cycle-node {
	align-items: center;
	background: var(--pff-sky);
	border: 1px solid rgba(37, 99, 235, 0.14);
	border-radius: 999px;
	display: grid;
	grid-template-columns: auto 1fr;
	column-gap: 0.45rem;
	min-width: 132px;
	padding: 0.52rem 0.72rem;
}

.pff-cycle-icon {
	font-size: 1.15rem;
	grid-row: span 2;
}

.pff-cycle-node strong,
.pff-cycle-node em {
	line-height: 1.15;
}

.pff-cycle-node strong {
	color: var(--pff-navy);
	font-size: 0.82rem;
	font-style: normal;
}

.pff-cycle-node em {
	color: var(--pff-blue);
	font-size: 0.78rem;
	font-style: normal;
}

.pff-cycle-arrow,
.pff-cycle-loop {
	color: var(--pff-blue);
	font-weight: 900;
	text-align: center;
}

.pff-cycle-loop {
	font-size: 1.2rem;
}

.pff-challenge-simple {
	padding: clamp(1rem, 1.8vw, 1.45rem);
}

.pff-challenge-simple .pff-section-copy {
	font-size: 0.98rem;
	line-height: 1.48;
	margin-bottom: 0;
	max-width: 640px;
}

@media (max-width: 900px) {
	.pff-step-inline-grid {
		grid-template-columns: 1fr;
	}

	.pff-why-cycle {
		grid-template-columns: 1fr;
		max-width: 360px;
	}

	.pff-cycle-arrow {
		font-size: 1rem;
	}

	.pff-cycle-loop {
		margin-top: -0.2rem;
	}

	.pff-cycle-node {
		border-radius: 18px;
		width: 100%;
	}
}

/* Premium science brand refresh */
:root {
	--pff-navy: #111111;
	--pff-navy-soft: #2a2a27;
	--pff-blue: #f26a21;
	--pff-blue-dark: #a33a09;
	--pff-bg: #f7f6f2;
	--pff-sky: #efeee9;
	--pff-sky-2: #e5e1d8;
	--pff-yellow: #fff5e8;
	--pff-green-blue: #f1eee7;
	--pff-card: #ffffff;
	--pff-border: rgba(17, 17, 17, 0.1);
	--pff-text: #161614;
	--pff-muted: #6b6a65;
	--pff-shadow: 0 28px 80px rgba(17, 17, 17, 0.08);
	--pff-radius: 18px;
	--pff-accent: #f26a21;
	--pff-accent-dark: #a33a09;
	--pff-black: #111111;
	--pff-paper: #ffffff;
}

html {
	scroll-behavior: smooth;
}

body {
	background:
		radial-gradient(circle at 18% 0%, rgba(242, 106, 33, 0.08), transparent 28rem),
		linear-gradient(180deg, #fbfaf7 0%, var(--pff-bg) 42%, #ffffff 100%);
	color: var(--pff-text);
	font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	letter-spacing: 0;
}

.wp-site-blocks {
	background: transparent;
}

::selection {
	background: rgba(242, 106, 33, 0.22);
	color: var(--pff-black);
}

.pff-container,
.pff-header-shell,
.pff-footer-grid,
.pff-footer-bottom {
	max-width: 1240px;
}

.pff-site-header {
	background: rgba(251, 250, 247, 0.84);
	border-bottom: 1px solid rgba(17, 17, 17, 0.08);
	box-shadow: none;
	backdrop-filter: blur(22px);
}

.pff-header-shell {
	min-height: 78px;
}

.pff-atom-mark {
	width: 36px;
	height: 36px;
	border-color: rgba(17, 17, 17, 0.12);
	background: #111111;
	box-shadow: none;
	color: var(--pff-accent);
	font-size: 0.95rem;
}

.pff-brand-name,
.pff-brand-name a {
	color: var(--pff-black);
	font-size: 1rem;
	font-weight: 760;
	letter-spacing: -0.01em;
}

.pff-main-nav {
	gap: 0.2rem;
}

.pff-main-nav a {
	min-width: 0;
	min-height: 0;
	border-radius: 999px;
	color: rgba(17, 17, 17, 0.72);
	font-size: 0.78rem;
	font-weight: 720;
	padding: 0.62rem 0.78rem;
	transition: background 180ms ease, color 180ms ease, transform 180ms ease;
}

.pff-main-nav a span {
	color: rgba(17, 17, 17, 0.5);
	font-size: 0.72rem;
}

.pff-main-nav a strong {
	font-size: 0.82rem;
	font-weight: 760;
}

.pff-main-nav a:hover,
.pff-main-nav a:focus-visible {
	background: rgba(17, 17, 17, 0.06);
	color: var(--pff-black);
	transform: translateY(-1px);
}

.pff-shop-link a {
	border-color: rgba(242, 106, 33, 0.55);
	background: var(--pff-black);
	color: #ffffff;
}

.pff-shop-link a span {
	color: rgba(255, 255, 255, 0.7);
}

.pff-shop-link a:hover,
.pff-shop-link a:focus-visible {
	background: var(--pff-accent);
	border-color: var(--pff-accent);
	color: #ffffff;
}

.pff-hero-wrap {
	padding-top: clamp(3.5rem, 6vw, 6rem);
	padding-bottom: clamp(3.5rem, 6vw, 6rem);
}

.pff-hero-card,
.pff-exp-hero,
.pff-detail-hero,
.pff-courses-hero {
	border: 0;
	border-radius: 0;
	background: transparent;
	box-shadow: none;
}

.pff-hero-card {
	min-height: 520px;
	padding: 0;
}

.pff-eyebrow {
	color: var(--pff-accent);
	font-size: 0.74rem;
	font-weight: 860;
	letter-spacing: 0.16em;
	text-transform: uppercase;
}

.pff-hero-title,
.pff-section-title,
.pff-detail-title,
.pff-exp-title {
	color: var(--pff-black);
	font-family: ui-serif, Georgia, "Times New Roman", serif;
	font-weight: 520;
	letter-spacing: 0;
}

.pff-hero-title {
	max-width: 780px;
	font-size: clamp(4rem, 8vw, 7.8rem) !important;
	line-height: 0.9;
	margin-bottom: 1.25rem;
}

.pff-hero-cn,
.pff-section-title span,
.pff-card-title span,
.pff-detail-title span,
.pff-exp-title span {
	color: var(--pff-accent-dark);
}

.pff-hero-cn {
	font-family: ui-serif, Georgia, "Times New Roman", serif;
	font-size: clamp(1.45rem, 2.2vw, 2.1rem) !important;
	font-weight: 500;
	line-height: 1.2;
}

.pff-hero-text,
.pff-section-copy,
.pff-mission-text,
.pff-exp-intro,
.pff-exp-library-intro {
	color: var(--pff-muted);
	font-size: clamp(1.04rem, 1.4vw, 1.2rem);
	line-height: 1.75;
}

.pff-audience-badges {
	gap: 0.7rem;
}

.pff-audience-badges p,
.pff-detail-badges p,
.pff-exp-tags span {
	border: 1px solid rgba(17, 17, 17, 0.1);
	background: rgba(255, 255, 255, 0.62);
	color: rgba(17, 17, 17, 0.78);
	font-size: 0.78rem;
	font-weight: 760;
}

.pff-video-visual,
.pff-coin-visual,
.pff-exp-video-card,
.pff-detail-video,
.pff-live-media,
.pff-stream-card,
.pff-community-card {
	background: #111111;
	border: 0;
	border-radius: 18px;
	box-shadow: 0 34px 90px rgba(17, 17, 17, 0.16);
	overflow: hidden;
}

.pff-real-video-card img,
.pff-video-visual img,
.pff-coin-visual img,
.pff-exp-video-card img,
.pff-live-media img,
.pff-stream-card img,
.pff-community-card img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 420ms ease, filter 420ms ease;
}

.pff-real-video-card:hover img,
.pff-real-video-card:focus-visible img,
.pff-stream-card:hover img,
.pff-stream-card:focus-visible img,
.pff-community-card:hover img,
.pff-community-card:focus-within img {
	filter: saturate(1.05) contrast(1.04);
	transform: scale(1.035);
}

.pff-video-visual:before {
	content: none;
}

.pff-play-button,
.pff-small-play {
	background: rgba(255, 255, 255, 0.92);
	box-shadow: 0 14px 32px rgba(17, 17, 17, 0.22);
	color: var(--pff-accent);
}

.pff-video-caption {
	background: linear-gradient(180deg, transparent, rgba(0, 0, 0, 0.76));
	color: #ffffff;
	font-size: 0.98rem;
	font-weight: 760;
}

.pff-section {
	padding-top: clamp(4rem, 8vw, 7rem);
	padding-bottom: clamp(4rem, 8vw, 7rem);
}

.pff-section-title {
	font-size: clamp(2.6rem, 5.2vw, 5.3rem);
	line-height: 0.96;
	margin-bottom: 1.1rem;
}

.pff-card-title,
.pff-exp-library-card h3,
.pff-exp-topic-card h3,
.pff-detail-card h3,
.pff-step-card span,
.pff-why-card h3,
.pff-resource-card h3,
.pff-try-block h3 {
	color: var(--pff-black);
	font-family: ui-serif, Georgia, "Times New Roman", serif;
	font-weight: 560;
	letter-spacing: 0;
}

.pff-mission-card,
.pff-latest-card,
.pff-course-card,
.pff-bottom-card,
.pff-exp-latest-card,
.pff-exp-library-card,
.pff-exp-teacher-note,
.pff-detail-card,
.pff-step-card,
.pff-result-card,
.pff-why-card,
.pff-challenge-card,
.pff-real-science-card,
.pff-resource-card,
.pff-try-card,
.pff-try-block,
.pff-why-cycle {
	border: 1px solid var(--pff-border);
	border-radius: 18px;
	background: rgba(255, 255, 255, 0.78);
	box-shadow: none;
	backdrop-filter: blur(16px);
}

.pff-mission-card,
.pff-latest-card,
.pff-course-card,
.pff-bottom-card,
.pff-exp-latest-card,
.pff-exp-teacher-note,
.pff-detail-hero,
.pff-try-card {
	padding: clamp(1.6rem, 4vw, 3.25rem);
}

.pff-atom-visual,
.pff-class-visual {
	border: 1px solid rgba(17, 17, 17, 0.08);
	border-radius: 18px;
	background:
		linear-gradient(135deg, rgba(255, 255, 255, 0.78), rgba(242, 106, 33, 0.08)),
		#f2f0ea;
	color: var(--pff-accent);
}

.pff-physics-band,
.pff-exp-topic-band {
	background: #111111;
	color: #ffffff;
}

.pff-physics-band .pff-section-title,
.pff-exp-topic-band .pff-section-title {
	color: #ffffff;
}

.pff-physics-band .pff-section-title span,
.pff-exp-topic-band .pff-section-title span {
	color: #f7b17b;
}

.pff-topic-card,
.pff-exp-topic-card {
	border: 1px solid rgba(255, 255, 255, 0.12);
	background: rgba(255, 255, 255, 0.06);
	box-shadow: none;
	color: #ffffff;
	text-decoration: none;
	transition: background 180ms ease, transform 180ms ease, border-color 180ms ease;
}

.pff-topic-card:hover,
.pff-topic-card:focus-visible,
.pff-exp-topic-card:hover,
.pff-exp-topic-card:focus-visible {
	background: rgba(255, 255, 255, 0.1);
	border-color: rgba(242, 106, 33, 0.55);
	transform: translateY(-3px);
}

.pff-topic-card h3,
.pff-exp-topic-card h3,
.pff-topic-card p:not(.pff-topic-icon),
.pff-exp-topic-card p:not(.pff-topic-icon),
.pff-exp-topic-card small {
	color: rgba(255, 255, 255, 0.82);
}

.pff-topic-icon,
.pff-exp-topic-card .pff-topic-icon {
	background: rgba(242, 106, 33, 0.16);
	color: #f7b17b;
}

.pff-topic-card span {
	background: rgba(255, 255, 255, 0.08);
	color: #f7b17b;
}

.wp-block-button__link,
.pff-resource-card a {
	border-radius: 999px;
	font-size: 0.84rem;
	font-weight: 820;
	letter-spacing: 0;
	padding: 0.86rem 1.18rem;
	text-decoration: none;
	transition: background 180ms ease, border-color 180ms ease, box-shadow 180ms ease, color 180ms ease, transform 180ms ease;
}

.pff-primary-button .wp-block-button__link {
	background: var(--pff-black);
	box-shadow: none;
	color: #ffffff;
}

.pff-primary-button .wp-block-button__link:hover,
.pff-primary-button .wp-block-button__link:focus-visible {
	background: var(--pff-accent);
	transform: translateY(-2px);
}

.pff-secondary-button .wp-block-button__link,
.wp-block-button.is-style-outline .wp-block-button__link,
.pff-resource-card a {
	background: transparent;
	border-color: rgba(17, 17, 17, 0.22);
	color: var(--pff-black);
}

.pff-secondary-button .wp-block-button__link:hover,
.wp-block-button.is-style-outline .wp-block-button__link:hover,
.pff-resource-card a:hover {
	border-color: var(--pff-accent);
	color: var(--pff-accent-dark);
	transform: translateY(-2px);
}

.pff-exp-library-grid,
.pff-exp-library-section .pff-exp-library-grid {
	gap: 1rem;
}

.pff-exp-library-card {
	transition: border-color 180ms ease, transform 180ms ease, box-shadow 180ms ease;
}

.pff-exp-library-card:hover {
	border-color: rgba(242, 106, 33, 0.42);
	box-shadow: 0 24px 60px rgba(17, 17, 17, 0.08);
	transform: translateY(-3px);
}

.pff-exp-library-card p,
.pff-exp-info-block p,
.pff-exp-info-block ul,
.pff-detail-card p,
.pff-step-card p,
.pff-why-card p,
.pff-try-block ul,
.pff-try-block ol,
.pff-try-block p,
.pff-material-line p,
.pff-question-line p,
.pff-step-pill span {
	color: var(--pff-muted);
}

.pff-exp-info-block,
.pff-step-pill,
.pff-cycle-node {
	border-color: rgba(17, 17, 17, 0.1);
	background: rgba(255, 255, 255, 0.7);
}

.pff-chain-arrow,
.pff-cycle-arrow,
.pff-cycle-loop,
.pff-step-card span,
.pff-cycle-node em {
	color: var(--pff-accent);
}

.pff-challenge-card,
.pff-challenge-lite,
.pff-challenge-simple {
	background: #fff4e8;
}

.pff-real-science-card,
.pff-result-card {
	background: #f1eee7;
}

.pff-footer {
	margin-top: clamp(4rem, 8vw, 7rem);
	padding: clamp(4rem, 7vw, 6rem) 0 2rem;
	background: #111111;
	color: rgba(255, 255, 255, 0.68);
}

.pff-footer h2,
.pff-footer h3 {
	color: #ffffff;
	font-family: ui-serif, Georgia, "Times New Roman", serif;
	font-weight: 520;
}

.pff-footer a {
	color: rgba(255, 255, 255, 0.78);
	transition: color 180ms ease;
}

.pff-footer a:hover,
.pff-footer a:focus-visible {
	color: #f7b17b;
	text-decoration: none;
}

.pff-footer-bottom {
	border-top-color: rgba(255, 255, 255, 0.12);
	color: rgba(255, 255, 255, 0.46);
}

/* Courses page streaming layout */
.pff-courses-page {
	background: transparent;
}

.pff-courses-hero {
	padding-top: clamp(4rem, 8vw, 7rem);
	padding-bottom: clamp(2rem, 4vw, 3rem);
}

.pff-live-feature {
	display: grid;
	grid-template-columns: minmax(0, 1.15fr) minmax(320px, 0.85fr);
	gap: clamp(1.5rem, 4vw, 3rem);
	align-items: stretch;
	border-radius: 24px;
	background: #111111;
	color: #ffffff;
	overflow: hidden;
	box-shadow: 0 34px 90px rgba(17, 17, 17, 0.16);
}

.pff-live-media {
	min-height: 430px;
	border-radius: 0;
	box-shadow: none;
}

.pff-live-content {
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding: clamp(1.5rem, 4vw, 3rem);
}

.pff-live-kicker {
	color: #f7b17b;
	font-size: 0.78rem;
	font-weight: 840;
	letter-spacing: 0.14em;
	margin: 0 0 1rem;
	text-transform: uppercase;
}

.pff-live-content h2 {
	color: #ffffff;
	font-family: ui-serif, Georgia, "Times New Roman", serif;
	font-size: clamp(2rem, 4vw, 4rem);
	font-weight: 520;
	line-height: 0.98;
	margin: 0 0 1rem;
}

.pff-live-content h2 span {
	color: #f7b17b;
	font-size: 0.72em;
}

.pff-live-content p {
	color: rgba(255, 255, 255, 0.72);
	line-height: 1.65;
}

.pff-live-meta {
	display: flex;
	flex-wrap: wrap;
	gap: 0.55rem;
	margin: 1rem 0 1.5rem;
}

.pff-live-meta span {
	border: 1px solid rgba(255, 255, 255, 0.14);
	border-radius: 999px;
	color: rgba(255, 255, 255, 0.82);
	font-size: 0.82rem;
	font-weight: 760;
	padding: 0.5rem 0.72rem;
}

.pff-live-schedule {
	display: grid;
	gap: 0.65rem;
}

.pff-live-schedule article {
	border-top: 1px solid rgba(255, 255, 255, 0.12);
	display: grid;
	gap: 0.15rem;
	padding-top: 0.75rem;
}

.pff-live-schedule strong {
	color: #ffffff;
	font-size: 0.95rem;
}

.pff-live-schedule span {
	color: rgba(255, 255, 255, 0.6);
	font-size: 0.88rem;
}

.pff-stream-row {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1rem;
	margin-top: 1.4rem;
}

.pff-stream-card {
	display: grid;
	grid-template-rows: auto auto auto;
	background: #ffffff;
	border: 1px solid rgba(17, 17, 17, 0.08);
	box-shadow: none;
	color: var(--pff-black);
	text-decoration: none;
	transition: border-color 180ms ease, transform 180ms ease, box-shadow 180ms ease;
}

.pff-stream-card:hover,
.pff-stream-card:focus-visible {
	border-color: rgba(242, 106, 33, 0.42);
	box-shadow: 0 22px 58px rgba(17, 17, 17, 0.1);
	transform: translateY(-4px);
}

.pff-stream-card img {
	aspect-ratio: 16 / 9;
	height: auto;
}

.pff-stream-card strong,
.pff-stream-card span {
	display: block;
	padding: 0 1rem;
}

.pff-stream-card strong {
	font-family: ui-serif, Georgia, "Times New Roman", serif;
	font-size: 1.05rem;
	font-weight: 560;
	line-height: 1.22;
	margin-top: 1rem;
}

.pff-stream-card span {
	color: var(--pff-muted);
	font-size: 0.88rem;
	line-height: 1.4;
	margin: 0.4rem 0 1rem;
}

.pff-community-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1rem;
	margin-top: 1.4rem;
}

.pff-community-card {
	display: grid;
	grid-template-columns: minmax(180px, 0.85fr) 1fr;
	background: #ffffff;
	border: 1px solid rgba(17, 17, 17, 0.08);
	box-shadow: none;
	color: var(--pff-black);
}

.pff-community-card img {
	aspect-ratio: 4 / 5;
}

.pff-community-card div {
	align-self: center;
	padding: clamp(1.1rem, 3vw, 2rem);
}

.pff-community-card h3 {
	font-family: ui-serif, Georgia, "Times New Roman", serif;
	font-size: clamp(1.35rem, 2.5vw, 2rem);
	font-weight: 540;
	line-height: 1.05;
	margin: 0 0 0.8rem;
}

.pff-community-card h3 span {
	color: var(--pff-accent-dark);
	font-size: 0.72em;
}

.pff-community-card p {
	color: var(--pff-muted);
	line-height: 1.62;
	margin: 0;
}

@media (min-width: 782px) {
	.pff-hero-card {
		grid-template-columns: minmax(0, 0.92fr) minmax(420px, 1.08fr);
		min-height: 560px;
		padding: 0;
	}

	.pff-video-visual {
		min-height: 520px;
	}

	.pff-mission-card {
		grid-template-columns: 0.7fr 1.2fr 1fr;
	}

	.pff-latest-grid {
		grid-template-columns: 1.15fr 1.25fr 0.55fr;
	}

	.pff-section {
		padding-top: clamp(4rem, 7vw, 6rem);
		padding-bottom: clamp(4rem, 7vw, 6rem);
	}
}

@media (max-width: 1050px) {
	.pff-live-feature,
	.pff-community-card {
		grid-template-columns: 1fr;
	}

	.pff-stream-row,
	.pff-community-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 760px) {
	.pff-header-shell {
		width: calc(100% - 32px);
		gap: 0.85rem;
	}

	.pff-main-nav a {
		background: rgba(17, 17, 17, 0.05);
	}

	.pff-hero-wrap,
	.pff-courses-hero {
		padding-top: 2.5rem;
	}

	.pff-hero-title {
		font-size: clamp(3rem, 16vw, 4.6rem) !important;
	}

	.pff-section-title {
		font-size: clamp(2.25rem, 11vw, 3.8rem);
	}

	.pff-video-visual,
	.pff-live-media {
		min-height: 310px;
	}

	.pff-section {
		padding-top: 3.25rem;
		padding-bottom: 3.25rem;
	}

	.pff-live-feature,
	.pff-stream-card,
	.pff-community-card {
		border-radius: 16px;
	}

	.pff-stream-row,
	.pff-community-grid {
		grid-template-columns: 1fr;
	}
}


/* Sprint 2.8 real experiment video assets */
.pff-real-video-card {
	background: #071d33;
	isolation: isolate;
}

.pff-real-video-card img {
	display: block;
	height: 100%;
	inset: 0;
	object-fit: cover;
	position: absolute;
	width: 100%;
	z-index: 0;
}

.pff-real-video-card::after {
	background: linear-gradient(180deg, rgba(7, 29, 51, 0.05) 0%, rgba(7, 29, 51, 0.62) 100%);
	content: "";
	inset: 0;
	position: absolute;
	z-index: 1;
}

.pff-real-video-card .pff-play-button,
.pff-real-video-card .pff-small-play,
.pff-real-video-card .pff-video-caption {
	position: relative;
	z-index: 2;
}

.pff-detail-video video {
	background: #071d33;
}


/* Video control hit-area fix */
.pff-experiment-video {
	aspect-ratio: auto;
}

.pff-experiment-video video {
	width: 100%;
	height: auto;
	display: block;
	pointer-events: auto;
}


/* Sprint 2.9 download card */
.pff-download-section {
	padding-top: 0.9rem;
	padding-bottom: 1.2rem;
}

.pff-download-card {
	align-items: center;
	background: #ffffff;
	border: 1px solid var(--pff-border);
	border-radius: 18px;
	box-shadow: 0 12px 28px rgba(7, 29, 51, 0.06);
	display: flex;
	gap: 1rem;
	justify-content: space-between;
	padding: clamp(1rem, 1.8vw, 1.35rem);
}

.pff-download-card .pff-section-title,
.pff-download-card .pff-section-copy {
	margin: 0;
}

.pff-download-card .wp-block-buttons {
	margin: 0;
}

@media (max-width: 760px) {
	.pff-download-card {
		align-items: flex-start;
		flex-direction: column;
	}
}

/* Final visual cascade lock */
body,
.wp-site-blocks,
.pff-homepage,
.pff-experiments-page,
.pff-experiment-detail,
.pff-courses-page {
	background: transparent !important;
	color: var(--pff-text) !important;
}

.pff-site-header {
	background: rgba(251, 250, 247, 0.84) !important;
	border-bottom-color: rgba(17, 17, 17, 0.08) !important;
	box-shadow: none !important;
}

.pff-atom-mark {
	background: #111111 !important;
	color: var(--pff-accent) !important;
	box-shadow: none !important;
}

.pff-main-nav a:hover,
.pff-main-nav a:focus-visible {
	background: rgba(17, 17, 17, 0.06) !important;
	color: #111111 !important;
}

.pff-shop-link a,
.pff-primary-button .wp-block-button__link {
	background: #111111 !important;
	border-color: #111111 !important;
	color: #ffffff !important;
}

.pff-shop-link a:hover,
.pff-shop-link a:focus-visible,
.pff-primary-button .wp-block-button__link:hover,
.pff-primary-button .wp-block-button__link:focus-visible {
	background: var(--pff-accent) !important;
	border-color: var(--pff-accent) !important;
	color: #ffffff !important;
}

.pff-hero-card,
.pff-exp-hero,
.pff-detail-hero,
.pff-courses-hero {
	background: transparent !important;
	border: 0 !important;
	border-radius: 0 !important;
	box-shadow: none !important;
}

.pff-hero-title,
.pff-section-title,
.pff-detail-title,
.pff-exp-title,
.pff-card-title,
.pff-exp-library-card h3,
.pff-live-content h2,
.pff-community-card h3 {
	color: #111111;
	font-family: ui-serif, Georgia, "Times New Roman", serif !important;
	font-weight: 520 !important;
	letter-spacing: 0 !important;
}

.pff-hero-title {
	font-size: clamp(4rem, 8vw, 7.8rem) !important;
	line-height: 0.9 !important;
}

.pff-section-title {
	font-size: clamp(2.6rem, 5.2vw, 5.3rem) !important;
	line-height: 0.96 !important;
}

.pff-eyebrow,
.pff-hero-cn,
.pff-section-title span,
.pff-card-title span,
.pff-exp-library-card h3 span,
.pff-detail-title span,
.pff-exp-title span {
	color: var(--pff-accent-dark) !important;
}

.pff-eyebrow {
	color: var(--pff-accent) !important;
}

.pff-mission-card,
.pff-latest-card,
.pff-course-card,
.pff-bottom-card,
.pff-exp-latest-card,
.pff-exp-library-card,
.pff-exp-teacher-note,
.pff-detail-card,
.pff-step-card,
.pff-result-card,
.pff-why-card,
.pff-challenge-card,
.pff-real-science-card,
.pff-resource-card,
.pff-try-card,
.pff-try-block,
.pff-download-card {
	background: rgba(255, 255, 255, 0.78) !important;
	border-color: rgba(17, 17, 17, 0.1) !important;
	border-radius: 18px !important;
	box-shadow: none !important;
}

.pff-real-video-card,
.pff-video-visual,
.pff-coin-visual,
.pff-exp-video-card,
.pff-detail-video,
.pff-live-media,
.pff-stream-card,
.pff-community-card {
	background: #111111 !important;
	border: 0 !important;
	border-radius: 18px !important;
	box-shadow: 0 34px 90px rgba(17, 17, 17, 0.16) !important;
}

.pff-real-video-card::after {
	background: linear-gradient(180deg, rgba(0, 0, 0, 0.02), rgba(0, 0, 0, 0.68)) !important;
}

.pff-play-button,
.pff-small-play {
	background: rgba(255, 255, 255, 0.92) !important;
	color: var(--pff-accent) !important;
}

.pff-video-caption {
	background: linear-gradient(180deg, transparent, rgba(0, 0, 0, 0.76)) !important;
	color: #ffffff !important;
}

.pff-physics-band,
.pff-exp-topic-band {
	background: #111111 !important;
	color: #ffffff !important;
}

.pff-topic-card,
.pff-exp-topic-card {
	background: rgba(255, 255, 255, 0.06) !important;
	border-color: rgba(255, 255, 255, 0.12) !important;
	box-shadow: none !important;
}

.pff-topic-card h3,
.pff-exp-topic-card h3,
.pff-topic-card p:not(.pff-topic-icon),
.pff-exp-topic-card p:not(.pff-topic-icon),
.pff-exp-topic-card small,
.pff-physics-band .pff-section-title,
.pff-exp-topic-band .pff-section-title {
	color: rgba(255, 255, 255, 0.86) !important;
}

.pff-topic-icon,
.pff-exp-topic-card .pff-topic-icon {
	background: rgba(242, 106, 33, 0.16) !important;
	color: #f7b17b !important;
}

.pff-live-feature {
	background: #111111 !important;
	color: #ffffff !important;
}

.pff-live-content h2 {
	color: #ffffff !important;
}

.pff-live-content h2 span,
.pff-live-kicker {
	color: #f7b17b !important;
}

.pff-stream-card,
.pff-community-card {
	background: #ffffff !important;
	color: #111111 !important;
}

.pff-footer {
	background: #111111 !important;
	color: rgba(255, 255, 255, 0.68) !important;
}

@media (max-width: 760px) {
	.pff-hero-title {
		font-size: clamp(3rem, 16vw, 4.6rem) !important;
	}

	.pff-section-title {
		font-size: clamp(2.25rem, 11vw, 3.8rem) !important;
	}
}

/* Desktop proportion correction */
.pff-container,
.pff-header-shell,
.pff-footer-grid,
.pff-footer-bottom {
	max-width: 1280px !important;
	padding-left: 40px !important;
	padding-right: 40px !important;
}

.pff-site-header {
	min-height: 92px !important;
}

.pff-header-shell {
	min-height: 92px !important;
	gap: 48px !important;
}

.pff-brand {
	gap: 14px !important;
}

.pff-atom-mark {
	height: 52px !important;
	width: 52px !important;
	font-size: 1.28rem !important;
}

.pff-brand-name,
.pff-brand-name a {
	font-size: 1.28rem !important;
}

.pff-main-nav {
	gap: 18px !important;
}

.pff-main-nav a {
	padding: 14px 18px !important;
}

.pff-section {
	padding-bottom: 104px !important;
	padding-top: 104px !important;
}

.pff-hero-wrap {
	padding-bottom: 72px !important;
	padding-top: 72px !important;
}

.pff-hero-card {
	align-items: center !important;
	display: grid !important;
	gap: clamp(40px, 4.4vw, 64px) !important;
	grid-template-columns: minmax(0, 45fr) minmax(0, 55fr) !important;
	min-height: 80vh !important;
	padding: 0 !important;
}

.pff-hero-card > .wp-block-column:first-child {
	max-width: none !important;
	width: 100% !important;
}

.pff-hero-title {
	font-size: clamp(4.5rem, 4.3vw, 4.75rem) !important;
	line-height: 0.95 !important;
	max-width: 560px !important;
	text-wrap: balance;
}

.pff-hero-cn {
	font-size: clamp(1.7rem, 1.6vw, 2.15rem) !important;
	line-height: 1.16 !important;
	max-width: 20ch !important;
}

.pff-hero-text,
.pff-section-copy,
.pff-mission-text {
	font-size: 1.18rem !important;
	line-height: 1.72 !important;
	max-width: 700px !important;
}

.pff-real-video-card,
.pff-video-visual,
.pff-coin-visual,
.pff-exp-video-card,
.pff-detail-video,
.pff-live-media {
	height: min(72vh, 720px) !important;
	min-height: 520px !important;
}

.pff-section-title {
	font-size: clamp(3.8rem, 4.1vw, 5.2rem) !important;
	line-height: 0.98 !important;
	margin-bottom: 32px !important;
	max-width: 920px !important;
}

.pff-section-title span,
.pff-card-title span,
.pff-exp-library-card h3 span,
.pff-detail-title span,
.pff-exp-title span {
	display: block !important;
	font-size: 0.56em !important;
	line-height: 1.18 !important;
	margin-top: 8px !important;
}

.pff-eyebrow {
	font-size: 0.84rem !important;
	letter-spacing: 0.18em !important;
	margin-bottom: 20px !important;
}

.pff-card-title,
.pff-exp-library-card h3 {
	font-size: clamp(1.65rem, 1.65vw, 2.15rem) !important;
	line-height: 1.08 !important;
}

.pff-mission-grid,
.pff-latest-grid,
.pff-home-bottom-grid,
.pff-exp-feature-grid,
.pff-detail-grid,
.pff-try-grid,
.pff-real-science-grid,
.pff-resource-grid {
	gap: 40px !important;
}

.pff-physics-grid,
.pff-exp-library-grid,
.pff-exp-topic-grid {
	gap: 28px !important;
	grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
}

.pff-course-grid,
.pff-stream-row {
	gap: 32px !important;
	grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
}

.pff-latest-card,
.pff-course-card,
.pff-bottom-card,
.pff-exp-library-card,
.pff-exp-latest-card,
.pff-topic-card,
.pff-exp-topic-card,
.pff-detail-card,
.pff-step-card,
.pff-result-card,
.pff-why-card,
.pff-challenge-card,
.pff-real-science-card,
.pff-resource-card,
.pff-try-card {
	padding: clamp(28px, 2.6vw, 42px) !important;
}

.pff-exp-library-card img,
.pff-stream-card img,
.pff-real-video-card img,
.pff-real-video-card video,
.pff-detail-video img,
.pff-detail-video video {
	aspect-ratio: 16 / 10 !important;
	object-fit: cover !important;
	width: 100% !important;
}

.pff-live-feature {
	display: grid !important;
	gap: 32px !important;
	grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	padding: 0 !important;
}

.pff-live-class {
	background: #111111;
	border-radius: 22px;
	color: #ffffff;
	display: grid;
	grid-template-rows: auto 1fr;
	min-height: 560px;
	overflow: hidden;
}

.pff-live-class img {
	aspect-ratio: 16 / 9;
	height: auto;
	object-fit: cover;
	width: 100%;
}

.pff-live-class > div {
	display: flex;
	flex-direction: column;
	padding: 34px;
}

.pff-live-class h2 {
	color: #ffffff !important;
	font-family: ui-serif, Georgia, "Times New Roman", serif !important;
	font-size: clamp(2.1rem, 2.25vw, 3rem) !important;
	font-weight: 520 !important;
	letter-spacing: 0 !important;
	line-height: 1.02 !important;
	margin: 0 0 18px !important;
}

.pff-live-class h2 span {
	color: #f7b17b !important;
	display: block;
	font-size: 0.58em;
	line-height: 1.18;
	margin-top: 8px;
}

.pff-live-class p {
	color: rgba(255, 255, 255, 0.72) !important;
	font-size: 1rem !important;
	line-height: 1.58 !important;
	margin: 0 0 24px !important;
}

.pff-live-class .pff-live-kicker {
	color: #f7b17b !important;
	font-size: 0.78rem !important;
	letter-spacing: 0.16em !important;
	text-transform: uppercase;
}

.pff-live-meta {
	gap: 10px !important;
	margin-top: auto !important;
}

.pff-upcoming-section {
	padding-top: 18px !important;
}

.pff-stream-card {
	border-radius: 20px !important;
	overflow: hidden !important;
	padding: 0 !important;
}

.pff-stream-card img {
	aspect-ratio: 16 / 9 !important;
	display: block !important;
}

.pff-stream-card strong {
	display: block !important;
	font-size: 1.28rem !important;
	line-height: 1.18 !important;
	padding: 22px 24px 4px !important;
}

.pff-stream-card span {
	display: block !important;
	font-size: 0.96rem !important;
	line-height: 1.45 !important;
	padding: 0 24px 24px !important;
}

.pff-community-grid {
	display: block !important;
}

.pff-community-banner {
	background: #111111 !important;
	border-radius: 24px !important;
	color: #ffffff !important;
	display: grid !important;
	grid-template-columns: minmax(0, 1.35fr) minmax(360px, 0.65fr) !important;
	min-height: 620px !important;
	overflow: hidden !important;
}

.pff-community-banner img {
	height: 100% !important;
	object-fit: cover !important;
	width: 100% !important;
}

.pff-community-banner div {
	align-self: end !important;
	padding: 48px !important;
}

.pff-community-banner h3 {
	color: #ffffff !important;
	font-family: ui-serif, Georgia, "Times New Roman", serif !important;
	font-size: clamp(2.5rem, 3vw, 4rem) !important;
	font-weight: 520 !important;
	line-height: 1 !important;
	margin: 0 0 20px !important;
}

.pff-community-banner h3 span {
	color: #f7b17b !important;
	display: block !important;
	font-size: 0.56em !important;
	line-height: 1.18 !important;
	margin-top: 10px !important;
}

.pff-community-banner p {
	color: rgba(255, 255, 255, 0.72) !important;
	font-size: 1.08rem !important;
	line-height: 1.65 !important;
	margin: 0 !important;
}

.pff-footer {
	margin-top: 104px !important;
	padding-bottom: 42px !important;
	padding-top: 108px !important;
}

@media (min-width: 1440px) {
	.pff-container,
	.pff-header-shell,
	.pff-footer-grid,
	.pff-footer-bottom {
		max-width: 1280px !important;
	}

	.pff-hero-card {
		min-height: 82vh !important;
	}
}

@media (max-width: 1180px) {
	.pff-container,
	.pff-header-shell,
	.pff-footer-grid,
	.pff-footer-bottom {
		padding-left: 28px !important;
		padding-right: 28px !important;
	}

	.pff-hero-card,
	.pff-live-feature,
	.pff-community-banner {
		grid-template-columns: 1fr !important;
	}

	.pff-hero-title {
		font-size: clamp(3.6rem, 8vw, 5rem) !important;
		max-width: 12ch !important;
	}

	.pff-physics-grid,
	.pff-exp-library-grid,
	.pff-exp-topic-grid,
	.pff-course-grid,
	.pff-stream-row {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	}
}

@media (max-width: 760px) {
	.pff-container,
	.pff-header-shell,
	.pff-footer-grid,
	.pff-footer-bottom {
		padding-left: 20px !important;
		padding-right: 20px !important;
	}

	.pff-section {
		padding-bottom: 58px !important;
		padding-top: 58px !important;
	}

	.pff-hero-card {
		min-height: auto !important;
	}

	.pff-hero-title {
		font-size: clamp(3rem, 16vw, 4.45rem) !important;
	}

	.pff-section-title {
		font-size: clamp(2.5rem, 12vw, 3.8rem) !important;
	}

	.pff-real-video-card,
	.pff-video-visual,
	.pff-coin-visual,
	.pff-exp-video-card,
	.pff-detail-video,
	.pff-live-media {
		min-height: 320px !important;
	}

	.pff-physics-grid,
	.pff-exp-library-grid,
	.pff-exp-topic-grid,
	.pff-course-grid,
	.pff-stream-row {
		grid-template-columns: 1fr !important;
	}

	.pff-live-class {
		min-height: auto !important;
	}

	.pff-community-banner {
		min-height: auto !important;
	}
}

/* Final desktop layout system: width, rhythm, and proportions */
.wp-site-blocks,
.pff-homepage,
.pff-courses-page,
.pff-experiments-page,
.pff-experiment-detail {
	width: 100%;
}

.pff-container,
.pff-header-shell,
.pff-footer-grid,
.pff-footer-bottom {
	box-sizing: border-box;
	max-width: 1280px !important;
	width: calc(100% - 96px) !important;
	margin-left: auto !important;
	margin-right: auto !important;
	padding-left: 0 !important;
	padding-right: 0 !important;
}

.pff-homepage > .pff-container,
.pff-homepage .pff-container,
.pff-courses-page .pff-container {
	max-width: 1280px !important;
}

.pff-site-header {
	min-height: 92px !important;
}

.pff-header-shell {
	min-height: 92px !important;
}

.pff-footer {
	padding-top: 112px !important;
	padding-bottom: 48px !important;
}

.pff-section,
.pff-exp-section,
.pff-detail-section {
	padding-top: 112px !important;
	padding-bottom: 112px !important;
}

.pff-hero-wrap {
	padding-top: clamp(64px, 7vh, 92px) !important;
	padding-bottom: clamp(64px, 7vh, 92px) !important;
}

.pff-homepage .pff-hero-card {
	align-items: center !important;
	display: grid !important;
	grid-template-columns: minmax(0, 45fr) minmax(0, 55fr) !important;
	gap: clamp(32px, 3.6vw, 48px) !important;
	min-height: clamp(680px, 80vh, 860px) !important;
	padding: 0 !important;
}

.pff-homepage .pff-hero-card > .wp-block-column {
	flex: initial !important;
	flex-basis: auto !important;
	max-width: none !important;
	width: auto !important;
}

.pff-homepage .pff-hero-copy {
	max-width: 560px !important;
}

.pff-homepage .pff-hero-title {
	font-size: clamp(56px, 4.2vw, 78px) !important;
	font-weight: 520 !important;
	line-height: 0.98 !important;
	max-width: 980px !important;
	margin-bottom: 36px !important;
	text-wrap: balance;
}

.pff-homepage .pff-hero-title .pff-nowrap {
	white-space: nowrap;
}

.pff-homepage .pff-hero-cn {
	font-size: clamp(28px, 1.8vw, 36px) !important;
	line-height: 1.16 !important;
	max-width: 560px !important;
}

.pff-homepage .pff-hero-text {
	font-size: 1.2rem !important;
	line-height: 1.7 !important;
	max-width: 560px !important;
}

.pff-homepage .pff-hero-visual-col,
.pff-homepage .pff-hero-visual-col > * {
	width: 100% !important;
}

.pff-homepage .pff-video-visual,
.pff-homepage .pff-real-video-card {
	aspect-ratio: 16 / 10 !important;
	display: block !important;
	height: auto !important;
	min-height: 0 !important;
	width: 100% !important;
}

.pff-homepage .pff-video-visual img,
.pff-homepage .pff-real-video-card img,
.pff-homepage .pff-video-visual video,
.pff-homepage .pff-real-video-card video {
	aspect-ratio: 16 / 10 !important;
	display: block !important;
	height: 100% !important;
	object-fit: cover !important;
	width: 100% !important;
}

.pff-section-title {
	font-size: clamp(56px, 4.2vw, 78px) !important;
	line-height: 0.98 !important;
	margin-bottom: 36px !important;
	max-width: 980px !important;
}

.pff-card-title,
.pff-exp-library-card h3 {
	font-size: clamp(28px, 1.8vw, 36px) !important;
	line-height: 1.08 !important;
}

.pff-section-copy,
.pff-mission-text,
.pff-exp-intro,
.pff-exp-library-intro {
	font-size: 1.18rem !important;
	line-height: 1.72 !important;
	max-width: 720px !important;
}

.pff-mission-card,
.pff-latest-card,
.pff-course-card,
.pff-bottom-card,
.pff-exp-latest-card,
.pff-exp-library-card,
.pff-exp-teacher-note,
.pff-detail-card,
.pff-step-card,
.pff-result-card,
.pff-why-card,
.pff-challenge-card,
.pff-real-science-card,
.pff-resource-card,
.pff-try-card,
.pff-try-block,
.pff-download-card {
	padding: clamp(36px, 3.2vw, 56px) !important;
}

.pff-mission-card,
.pff-latest-grid,
.pff-course-card,
.pff-bottom-grid,
.pff-exp-latest-grid,
.pff-detail-grid,
.pff-try-grid,
.pff-real-science-grid,
.pff-resource-grid {
	gap: 48px !important;
}

.pff-physics-band,
.pff-exp-topic-band {
	padding-top: 112px !important;
	padding-bottom: 112px !important;
}

.pff-physics-grid,
.pff-exp-topic-grid,
.pff-exp-library-grid,
.pff-exp-library-section .pff-exp-library-grid,
.pff-course-grid,
.pff-stream-row {
	display: grid !important;
	gap: 32px !important;
	grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
}

.pff-topic-card,
.pff-exp-topic-card,
.pff-exp-library-card,
.pff-stream-card {
	min-height: 260px !important;
}

.pff-exp-library-card-featured {
	grid-column: auto !important;
}

.pff-coin-visual,
.pff-class-visual,
.pff-exp-video-card,
.pff-detail-video {
	min-height: 420px !important;
}

.pff-courses-page .pff-live-feature {
	background: transparent !important;
	display: grid !important;
	gap: 32px !important;
	grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	padding: 0 !important;
}

.pff-courses-page .pff-live-class {
	min-height: 560px !important;
}

.pff-courses-page .pff-stream-row {
	grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
}

.pff-courses-page .pff-stream-card img {
	aspect-ratio: 16 / 9 !important;
}

.pff-courses-page .pff-community-banner {
	display: grid !important;
	grid-template-columns: minmax(0, 1.35fr) minmax(360px, 0.65fr) !important;
	min-height: 620px !important;
}

@media (min-width: 901px) {
	.pff-homepage .pff-hero-card {
		grid-template-columns: minmax(0, 45fr) minmax(0, 55fr) !important;
	}

	.pff-homepage .pff-hero-title {
		font-size: clamp(56px, 4.5vw, 64px) !important;
		max-width: 560px !important;
	}

	.pff-homepage .pff-hero-cn {
		max-width: 560px !important;
	}

	.pff-homepage .pff-hero-text {
		max-width: 560px !important;
	}
}

@media (min-width: 1500px) {
	.pff-container,
	.pff-header-shell,
	.pff-footer-grid,
	.pff-footer-bottom {
		max-width: 1280px !important;
	}
}

@media (max-width: 1180px) and (min-width: 901px) {
	.pff-homepage .pff-hero-card {
		grid-template-columns: minmax(0, 45fr) minmax(0, 55fr) !important;
		min-height: clamp(620px, 78vh, 780px) !important;
	}

	.pff-physics-grid,
	.pff-exp-topic-grid,
	.pff-exp-library-grid,
	.pff-exp-library-section .pff-exp-library-grid,
	.pff-course-grid,
	.pff-stream-row {
		grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
	}
}

@media (max-width: 900px) {
	.pff-container,
	.pff-header-shell,
	.pff-footer-grid,
	.pff-footer-bottom {
		width: calc(100% - 40px) !important;
	}

	.pff-homepage .pff-hero-card,
	.pff-courses-page .pff-live-feature,
	.pff-courses-page .pff-community-banner {
		grid-template-columns: 1fr !important;
		min-height: auto !important;
	}

	.pff-homepage .pff-hero-title {
		font-size: clamp(42px, 10vw, 64px) !important;
	}

	.pff-section-title {
		font-size: clamp(42px, 10vw, 64px) !important;
	}

	.pff-physics-grid,
	.pff-exp-topic-grid,
	.pff-exp-library-grid,
	.pff-exp-library-section .pff-exp-library-grid,
	.pff-course-grid,
	.pff-stream-row {
		grid-template-columns: 1fr !important;
	}
}

/* Homepage-only desktop layout correction */
@media (min-width: 901px) {
	.pff-homepage .pff-container {
		box-sizing: border-box;
		max-width: 1360px !important;
		width: calc(100% - 96px) !important;
		margin-inline: auto !important;
		padding-inline: 0 !important;
	}

	.pff-header-shell {
		max-width: 1360px !important;
		width: calc(100% - 96px) !important;
	}

	.pff-main-nav a {
		font-size: 13px !important;
		padding: 10px 14px !important;
	}

	.pff-main-nav a span {
		font-size: 12px !important;
	}

	.pff-main-nav a strong {
		font-size: 13px !important;
	}

	.pff-homepage .pff-hero-wrap {
		padding-top: 44px !important;
		padding-bottom: 44px !important;
	}

	.pff-homepage .pff-hero-card {
		display: grid !important;
		grid-template-columns: minmax(0, 42fr) minmax(0, 58fr) !important;
		align-items: center !important;
		gap: clamp(40px, 4vw, 64px) !important;
		min-height: 600px !important;
		max-height: 640px !important;
		padding: 0 !important;
	}

	.pff-homepage .pff-hero-card > .wp-block-column {
		flex: initial !important;
		flex-basis: auto !important;
		width: auto !important;
		max-width: none !important;
	}

	.pff-homepage .pff-hero-copy {
		max-width: 560px !important;
	}

	.pff-homepage .pff-hero-title {
		max-width: 820px !important;
		font-size: clamp(38px, 3.1vw, 50px) !important;
		font-weight: 520 !important;
		line-height: 1.02 !important;
		margin-bottom: 24px !important;
		text-wrap: balance;
	}

	.pff-homepage .pff-hero-cn {
		max-width: 560px !important;
		font-size: clamp(23px, 1.8vw, 28px) !important;
		line-height: 1.22 !important;
		margin-bottom: 18px !important;
	}

	.pff-homepage .pff-hero-text,
	.pff-homepage .pff-section-copy,
	.pff-homepage .pff-mission-text {
		max-width: 640px !important;
		font-size: 17px !important;
		line-height: 1.62 !important;
	}

	.pff-homepage .pff-audience-badges {
		gap: 10px !important;
		margin-top: 18px !important;
	}

	.pff-homepage .pff-audience-badges p {
		font-size: 12px !important;
		padding: 7px 12px !important;
	}

	.pff-homepage .pff-hero-visual-col,
	.pff-homepage .pff-hero-visual-col > * {
		width: 100% !important;
	}

	.pff-homepage .pff-video-visual,
	.pff-homepage .pff-real-video-card {
		aspect-ratio: 16 / 9 !important;
		display: block !important;
		width: 100% !important;
		height: auto !important;
		min-height: 0 !important;
	}

	.pff-homepage .pff-video-visual img,
	.pff-homepage .pff-real-video-card img,
	.pff-homepage .pff-video-visual video,
	.pff-homepage .pff-real-video-card video {
		aspect-ratio: 16 / 9 !important;
		width: 100% !important;
		height: 100% !important;
		object-fit: cover !important;
	}

	.pff-homepage .pff-section {
		padding-top: 72px !important;
		padding-bottom: 72px !important;
	}

	.pff-homepage .pff-section-title {
		max-width: 820px !important;
		font-size: clamp(38px, 3.1vw, 50px) !important;
		line-height: 1.02 !important;
		margin-bottom: 24px !important;
	}

	.pff-homepage .pff-card-title {
		font-size: clamp(28px, 2vw, 34px) !important;
		line-height: 1.08 !important;
	}

	.pff-homepage .pff-mission-card,
	.pff-homepage .pff-course-card {
		display: grid !important;
		grid-template-columns: 0.75fr 1.15fr 1.15fr !important;
		gap: 36px !important;
		align-items: center !important;
		padding: 32px !important;
	}

	.pff-homepage .pff-course-card {
		grid-template-columns: 0.8fr 1.3fr !important;
	}

	.pff-homepage .pff-latest-card,
	.pff-homepage .pff-bottom-card {
		padding: 32px !important;
	}

	.pff-homepage .pff-latest-grid {
		display: grid !important;
		grid-template-columns: minmax(0, 1.2fr) minmax(0, 1.15fr) auto !important;
		gap: 36px !important;
		align-items: center !important;
	}

	.pff-homepage .pff-latest-grid > .wp-block-column,
	.pff-homepage .pff-mission-card > .wp-block-column,
	.pff-homepage .pff-course-card > .wp-block-column {
		flex: initial !important;
		width: auto !important;
	}

	.pff-homepage .pff-coin-visual,
	.pff-homepage .pff-class-visual,
	.pff-homepage .pff-atom-visual {
		min-height: 260px !important;
	}

	.pff-homepage .pff-physics-band {
		margin-top: 40px !important;
		padding-top: 72px !important;
		padding-bottom: 72px !important;
	}

	.pff-homepage .pff-physics-grid {
		display: grid !important;
		grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
		gap: 18px !important;
		margin-top: 28px !important;
	}

	.pff-homepage .pff-topic-card {
		min-height: 168px !important;
		padding: 20px !important;
	}

	.pff-homepage .pff-bottom-grid {
		display: grid !important;
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
		gap: 28px !important;
	}

	.pff-homepage .pff-bottom-card {
		min-height: 220px !important;
	}
}

@media (max-width: 900px) {
	.pff-homepage .pff-hero-card,
	.pff-homepage .pff-mission-card,
	.pff-homepage .pff-latest-grid,
	.pff-homepage .pff-course-card,
	.pff-homepage .pff-bottom-grid {
		grid-template-columns: 1fr !important;
	}

	.pff-homepage .pff-hero-card {
		min-height: auto !important;
		max-height: none !important;
	}
}
