/* MZO site: ABOUT page ("PROJECT FILE"): BO7 Kowakajo castle gate hero + SPEC SHEET, BY THE NUMBERS, FEATURE STATUS,
   THE ROAD SO FAR (changes per day), HOW IT WORKS, EVERY MAP, BUILT WITH. Accent: dossier teal (--ab).
   Markup: public/about.php, behaviour: site/js/about.js. */
body.page-about { --ab: #6fd6c8; --ab-2: #b6f1e9; --ok-c: #5fd38a; --wip-c: #e8b04a; --bad-c: #e0605a; overflow-x: clip; }

/* ---------- PROJECT FILE hero ---------- */
.pf { position: relative; isolation: isolate; overflow: hidden; margin-top: calc(-1 * var(--pm, 0rem)); padding: calc(6rem + var(--pm, 0rem)) var(--g) 3rem; min-height: calc(36rem + var(--pm, 0rem)); display: flex; flex-direction: column; justify-content: flex-end; }
.pf-art { position: absolute; inset: 0; z-index: -2; }
.pf-art img { width: 100%; height: 100%; object-fit: cover; object-position: 55% 35%; animation: kenburns 45s ease-in-out infinite alternate; }
.pf::before { content: ""; position: absolute; inset: 0; z-index: -1; background:
	radial-gradient(55% 60% at 75% 30%, rgba(111, 214, 200, .12), transparent 70%),
	linear-gradient(90deg, rgba(5, 6, 8, .95) 0%, rgba(5, 6, 8, .72) 40%, rgba(5, 6, 8, .25) 70%, rgba(5, 6, 8, .55) 100%),
	linear-gradient(180deg, rgba(5, 6, 8, .65) 0%, transparent 28%, transparent 58%, var(--bg, #050608) 100%); }
.pf::after { content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none; background: repeating-linear-gradient(0deg, rgba(255, 255, 255, .022) 0 1px, transparent 1px 0.25rem); }
.pf-head { display: grid; grid-template-columns: minmax(0, 1fr) minmax(22rem, 30rem); gap: 2rem 3rem; align-items: end; }
.pf-title > p:first-child { display: flex; align-items: center; gap: 0.625rem; margin: 0; font: 700 max(11px, 1.125rem) var(--head); letter-spacing: .22em; color: var(--ab); }
.pf-title > p:first-child img { width: 1.625rem; height: 1.625rem; }
.pf-title h1 { margin: 0.25rem 0 0; font: 900 clamp(max(11px, 3.25rem), 7vw, 7.5rem) / .9 var(--head); letter-spacing: .02em; text-shadow: 0 0 2.5rem rgba(111, 214, 200, .25); overflow-wrap: anywhere; }
.pf-lead { max-width: 46rem; margin: 1.25rem 0 0; font-size: max(14px, 1.3125rem); line-height: 1.45; color: #e3e8ec; }
.pf-lead2 { max-width: 46rem; margin: 0.75rem 0 0; color: var(--muted); }
.pf-lead2 b { color: var(--ab-2); }
.pf-hints { display: flex; flex-wrap: wrap; gap: 0.625rem; margin-top: 1.75rem; }

.spec { position: relative; padding: 1rem 1.125rem 1.125rem; background: linear-gradient(180deg, rgba(12, 18, 20, .92), rgba(6, 8, 10, .94)); border: 1px solid rgba(111, 214, 200, .3); box-shadow: 0 1.25rem 3rem rgba(0, 0, 0, .5); backdrop-filter: blur(6px); }
.spec::before { content: ""; position: absolute; left: -1px; right: -1px; top: -1px; height: 3px; background: linear-gradient(90deg, var(--ab), rgba(111, 214, 200, 0)); }
.spec-h { display: flex; align-items: center; justify-content: space-between; margin: 0 0 0.625rem; font: 700 max(10px, 0.8125rem) var(--head); letter-spacing: .18em; }
.spec-h b { padding: 0.125rem 0.5rem; font-weight: 900; color: #06201c; background: var(--ab); letter-spacing: .12em; }
.spec dl { margin: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 1px; background: #1c2226; border: 1px solid #1c2226; }
.spec dl div { padding: 0.5rem 0.625rem; background: #0a0d10; min-width: 0; }
.spec dt { font: 700 max(9px, 0.625rem) var(--head); letter-spacing: .14em; color: var(--muted); }
.spec dd { margin: 0.125rem 0 0; font: 900 max(12px, 1.0625rem) var(--head); letter-spacing: .03em; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.spec dd.is-free { color: var(--ok-c); }
.spec-latest { margin: 0.75rem 0 0; font-size: max(11px, 0.875rem); color: #c9d2d8; }
.spec-latest span { display: block; font: 700 max(9px, 0.625rem) var(--head); letter-spacing: .14em; color: var(--ab); }

/* ---------- shared heading ---------- */
.page-about .section { scroll-margin-top: 4rem; }
.sec-h { display: flex; flex-wrap: wrap; align-items: end; gap: 0.5rem 1.5rem; margin-bottom: 1.75rem; }
.sec-k { flex-basis: 100%; display: block; font: 700 max(10px, 0.75rem) var(--head); letter-spacing: .2em; color: var(--ab); }
.sec-h h2 { font: 900 max(11px, 2.75rem) / 1 var(--head); letter-spacing: .03em; }
.sec-h p { margin: 0; color: var(--muted); max-width: 52rem; }
.sec-h p a { color: var(--ab-2); text-decoration: underline; text-underline-offset: 0.2em; }
.c-ok { color: var(--ok-c); } .c-wip { color: var(--wip-c); } .c-bad { color: var(--bad-c); }

/* ---------- BY THE NUMBERS ---------- */
.nb { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 0.625rem; }
.nb-c { position: relative; display: flex; flex-direction: column; min-width: 0; padding: 1.125rem 1.125rem 1rem; background: var(--panel); border: 1px solid var(--frame); transition: border-color .2s, transform .2s var(--ease); }
.nb-c::before { content: ""; position: absolute; left: -1px; top: -1px; width: 1.5rem; height: 2px; background: var(--ab); transition: width .3s var(--ease); }
.nb-c:hover, .nb-c:focus-visible { border-color: rgba(111, 214, 200, .55); transform: translateY(-0.1875rem); }
.nb-c:hover::before { width: 100%; }
.nb-c b { font: 900 max(22px, 3rem) / 1 var(--head); font-variant-numeric: tabular-nums; color: #fff; }
.nb-c span { margin-top: 0.5rem; font: 700 max(11px, 0.8125rem) var(--head); letter-spacing: .14em; color: var(--ab-2); }
.nb-c small { margin-top: 0.25rem; color: var(--muted); font-size: max(11px, 0.875rem); }
.cls { display: flex; flex-wrap: wrap; gap: 0.375rem; margin-top: 0.75rem; }
.cls a { display: inline-flex; align-items: center; gap: 0.625rem; padding: 0.375rem 0.75rem; font: 700 max(10px, 0.75rem) var(--head); letter-spacing: .1em; color: #aebbc2; background: rgba(14, 16, 21, .9); border: 1px solid #2a2f37; transition: border-color .2s, color .2s; }
.cls a:hover { border-color: var(--ab); color: #fff; }
.cls b { color: #fff; }

/* ---------- FEATURE STATUS ---------- */
.st-total, .sg-m { display: flex; gap: 2px; height: 0.625rem; background: #12161b; }
.st-total { height: 0.875rem; margin-bottom: 1rem; }
.st-total i, .sg-m i { flex: var(--f) 1 0; min-width: 0; }
.st-total i[style*="--f:0"], .sg-m i[style*="--f:0"] { display: none; }
i.ok { background: var(--ok-c); } i.wip { background: var(--wip-c); } i.bad { background: var(--bad-c); }
.sg { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0.625rem; }
.sg-c { min-width: 0; padding: 0.875rem 1rem 1rem; background: var(--panel); border: 1px solid var(--frame); }
.sg-c header { display: flex; align-items: baseline; justify-content: space-between; gap: 0.75rem; }
.sg-c header b { font: 900 max(12px, 1.0625rem) var(--head); letter-spacing: .04em; overflow-wrap: anywhere; }
.sg-c header em { font: 900 max(12px, 1.125rem) var(--head); font-style: normal; color: var(--ok-c); }
.sg-c > small { display: block; margin: 0.125rem 0 0.625rem; color: var(--muted); font-size: max(11px, 0.875rem); }
.sg-c p { display: flex; flex-wrap: wrap; gap: 0.25rem 0.875rem; margin: 0.5rem 0 0; font: 700 max(10px, 0.6875rem) var(--head); letter-spacing: .08em; }

/* ---------- THE ROAD SO FAR ---------- */
.rd { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(18rem, 1fr); gap: 1.25rem; align-items: stretch; }
.rd-bars { display: flex; align-items: flex-end; gap: 0.375rem; min-height: 16rem; padding: 1rem 1rem 0; background: var(--panel); border: 1px solid var(--frame); overflow-x: auto; scrollbar-width: thin; }
.rd-b { flex: 1 0 2.75rem; display: flex; flex-direction: column; align-items: stretch; justify-content: flex-end; gap: 0.375rem; height: 14.5rem; padding-bottom: 0.5rem; }
.rd-b i { display: block; height: calc(var(--h) * 100%); min-height: 0.375rem; background: linear-gradient(180deg, var(--ab), rgba(111, 214, 200, .25)); opacity: .55; transition: opacity .2s, box-shadow .2s; transform-origin: bottom; }
.reveal.is-in .rd-b i { animation: grow .8s var(--ease) both; animation-delay: calc(var(--d, 0) * 40ms); }
@keyframes grow { from { transform: scaleY(0); } }
.rd-b span { font: 700 max(9px, 0.625rem) var(--head); letter-spacing: .06em; color: var(--muted); text-align: center; white-space: nowrap; }
.rd-b:hover i { opacity: .85; }
.rd-b.is-on i { opacity: 1; box-shadow: 0 0 1rem rgba(111, 214, 200, .5); }
.rd-b.is-on span { color: #fff; }
.rd-day { padding: 1rem 1.125rem; background: linear-gradient(180deg, rgba(12, 18, 20, .92), rgba(8, 10, 13, .92)); border: 1px solid rgba(111, 214, 200, .3); }
.rd-day[hidden] { display: none; }
.rd-h { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.25rem 0.875rem; margin: 0; }
.rd-h b { font: 900 max(14px, 1.375rem) var(--head); }
.rd-h span { font: 700 max(10px, 0.6875rem) var(--head); letter-spacing: .12em; color: var(--ab); }
.rd-h a { margin-left: auto; font: 700 max(10px, 0.6875rem) var(--head); letter-spacing: .12em; color: var(--ab-2); text-decoration: underline; text-underline-offset: 0.2em; }
.rd-day ul { margin: 0.75rem 0 0; padding: 0 0 0 1.125rem; display: grid; gap: 0.3125rem; max-height: 17rem; overflow-y: auto; scrollbar-width: thin; }
.rd-day li { font: 700 max(11px, 0.875rem) var(--head); letter-spacing: .04em; color: #d6dde2; }
.rd-day li::marker { color: var(--ab); }

/* ---------- HOW IT WORKS ---------- */
.pipe { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0.625rem; counter-reset: p; }
.pipe li { position: relative; display: flex; flex-direction: column; gap: 0.375rem; min-width: 0; padding: 1rem 1.125rem 1.125rem; background: var(--panel); border: 1px solid var(--frame); }
.pipe li:not(:last-child)::after { content: ""; position: absolute; right: -0.5rem; top: 50%; z-index: 1; width: 0.625rem; height: 0.625rem; border-top: 2px solid var(--ab); border-right: 2px solid var(--ab); transform: translateY(-50%) rotate(45deg); }
.pipe em { font: 900 max(11px, 0.875rem) var(--head); font-style: normal; color: var(--ab); }
.pipe b { font: 900 max(13px, 1.25rem) var(--head); letter-spacing: .04em; }
.pipe span { color: var(--muted); font-size: max(11px, 0.9375rem); }
.pipe a { color: var(--ab-2); text-decoration: underline; text-underline-offset: 0.2em; }
.know { list-style: none; margin: 0.75rem 0 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.625rem; }
.know li { display: grid; gap: 0.25rem; padding: 0.875rem 1rem 0.875rem 1.125rem; background: rgba(10, 12, 15, .85); border: 1px solid #1e2328; border-left: 3px solid var(--ab); }
.know b { font: 700 max(12px, 1rem) var(--head); letter-spacing: .03em; }
.know span { color: var(--muted); font-size: max(11px, 0.9375rem); }

/* ---------- EVERY MAP ---------- */
.mp { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 0.5rem; }
.mp-c { position: relative; overflow: hidden; margin: 0; aspect-ratio: 16 / 10; background: #0b0d10; border: 1px solid var(--frame); transition: border-color .2s; }
.mp-c img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s var(--ease), filter .3s; filter: saturate(.85) brightness(.85); }
.mp-c:hover { border-color: var(--ab); }
.mp-c:hover img { transform: scale(1.06); filter: none; }
.mp-c figcaption { position: absolute; left: 0; right: 0; bottom: 0; padding: 1.5rem 0.625rem 0.5rem; font: 900 max(10px, 0.8125rem) / 1.1 var(--head); letter-spacing: .04em; background: linear-gradient(180deg, transparent, rgba(0, 0, 0, .88)); overflow-wrap: anywhere; }

/* ---------- BUILT WITH ---------- */
.built { padding-bottom: 4rem; }
.bw { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: 1.25rem; align-items: start; }
.bw-tools { padding: 1.25rem 1.375rem; background: var(--panel); border: 1px solid var(--frame); }
.bw-tools h2 { margin: 0.25rem 0 0; font: 900 max(11px, 2.25rem) / 1 var(--head); }
.bw-tools ul { list-style: none; margin: 1rem 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 0.375rem; }
.bw-tools li { padding: 0.375rem 0.75rem; font: 700 max(11px, 0.875rem) var(--head); letter-spacing: .06em; background: #0b0e12; border: 1px solid #2a2f37; }
.bw-tools p { margin: 1rem 0 0; color: var(--muted); }
.bw-links { display: grid; gap: 0.375rem; }
.bw-links a { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 0.875rem 1.125rem; background: rgba(12, 14, 18, .9); border: 1px solid var(--frame); transition: border-color .2s, transform .2s var(--ease), background .2s; }
.bw-links a:hover, .bw-links a:focus-visible { border-color: var(--ab); transform: translateX(0.25rem); background: rgba(14, 26, 26, .9); }
.bw-links b { font: 900 max(12px, 1rem) var(--head); letter-spacing: .06em; }
.bw-links span { color: var(--muted); font-size: max(11px, 0.875rem); text-align: right; }

/* ---------- smaller screens ---------- */
@media (max-width: 1500px) {
	.nb { grid-template-columns: repeat(4, minmax(0, 1fr)); }
	.mp { grid-template-columns: repeat(5, minmax(0, 1fr)); }
}
@media (max-width: 1080px) {
	.pf { min-height: 0; padding-top: calc(4rem + var(--pm, 0rem)); }
	.pf-head, .rd, .bw { grid-template-columns: minmax(0, 1fr); }
	.nb, .sg, .know { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.pipe { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.pipe li:nth-child(2)::after { display: none; }
	.mp { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
	.nb { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.sg, .know, .pipe { grid-template-columns: minmax(0, 1fr); }
	.pipe li::after { display: none; }
	.mp { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.rd-bars { min-height: 12rem; }
	.rd-b { height: 10.5rem; flex-basis: 2.25rem; }
	.bw-links a { flex-direction: column; align-items: flex-start; gap: 0.125rem; }
	.bw-links span { text-align: left; }
}
@media (prefers-reduced-motion: reduce) {
	.pf-art img { animation: none; }
}
