/* Generated by the site editor from the `css` of every block in site/blocks/.
   Do not edit this file — edit the block files instead. */

/* ---- block: hero (site/blocks/hero.js) ---- */
.hero{padding:96px 0 calc(96px + var(--slant))}
.hero-inner{display:grid;grid-template-columns:1.15fr 0.85fr;gap:48px;align-items:center}
.hero h1{font-size:clamp(2.75rem,7vw,5.5rem);margin-bottom:24px}

/* Bat icon cropped into an angular shard, with outline shards behind */
.hero-emblem{position:relative;aspect-ratio:1;max-width:440px;width:100%;justify-self:center}
.hero-emblem img{
	position:relative;z-index:2;width:100%;height:100%;
	clip-path:polygon(22% 0,86% 6%,100% 44%,90% 100%,30% 94%,0 62%,6% 16%);
}
.hero-emblem::before,.hero-emblem::after{content:"";position:absolute;inset:0;z-index:1}
.hero-emblem::before{
	background:var(--surface-2);
	transform:translate(22px,18px) rotate(6deg);
	clip-path:polygon(22% 0,86% 6%,100% 44%,90% 100%,30% 94%,0 62%,6% 16%);
}
.hero-emblem::after{
	background:var(--accent);opacity:0.25;
	transform:translate(-26px,-20px) rotate(-8deg) scale(0.9);
	clip-path:polygon(10% 4%,70% 0,96% 30%,80% 88%,20% 100%,2% 50%);
}

@media (max-width:960px){
	.hero-inner{grid-template-columns:1fr}
	.hero-emblem{max-width:300px;order:-1;justify-self:start}
}
@media (max-width:720px){
	.hero{padding:48px 0 calc(64px + var(--slant))}
	.hero-emblem{max-width:180px}
}

/* ---- block: page-hero (site/blocks/page-hero.js) ---- */
.page-hero{padding:88px 0 calc(72px + var(--slant))}
.page-hero h1{font-size:clamp(2.5rem,7vw,5rem);margin-bottom:20px}
.page-hero .lead{margin-bottom:0}
.page-hero::after{
	/* big faded shard on the right */
	content:"";position:absolute;right:-80px;top:-40px;width:520px;height:520px;
	background:var(--accent);opacity:0.06;
	clip-path:polygon(22% 0,86% 6%,100% 44%,90% 100%,30% 94%,0 62%,6% 16%);
	transform:rotate(12deg);pointer-events:none;
}

@media (max-width:720px){
	.page-hero{padding:56px 0 calc(48px + var(--slant))}
	.page-hero::after{width:300px;height:300px;right:-120px}
}

/* ---- block: band (site/blocks/band.js) ---- */
.band{
	background:var(--accent);color:var(--on-accent);
	transform:skewY(-2.5deg);margin:48px 0;padding:56px 0;
}
.band > .container{transform:skewY(2.5deg)}
.band p{
	margin:0;font-family:var(--font-display);font-weight:700;text-transform:uppercase;
	font-size:clamp(1.6rem,4.2vw,3rem);line-height:1.1;text-align:center;
}
.band small{display:block;margin-top:16px;font-family:var(--font-body);font-weight:500;text-transform:none;font-size:1.05rem;letter-spacing:0}

/* ---- block: feature (site/blocks/feature.js) ---- */
.feature{display:grid;grid-template-columns:1.2fr 1fr;gap:0;background:var(--surface);
	clip-path:polygon(var(--cut) 0,100% 0,100% calc(100% - var(--cut)),calc(100% - var(--cut)) 100%,0 100%,0 var(--cut))}
.feature-art{
	position:relative;min-height:380px;overflow:hidden;
	background:
		linear-gradient(135deg,rgba(var(--accent-rgb),0.22),transparent 60%),
		repeating-linear-gradient(-60deg,transparent 0 22px,rgba(var(--white-rgb),0.025) 22px 44px),
		var(--deep);
	display:grid;place-items:center;
	clip-path:polygon(0 0,100% 0,88% 100%,0 100%);
}
.feature-art img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0}
.feature-art .placeholder{font-family:var(--font-display);font-weight:700;letter-spacing:0.3em;text-transform:uppercase;color:var(--muted);font-size:0.85rem}
.feature-body{padding:48px 48px 48px 24px}
.feature-body h2{font-size:clamp(2rem,4vw,3rem);margin-bottom:16px}
.feature-body .pitch{font-size:1.15rem;color:var(--muted)}
.meta{list-style:none;padding:0;margin:24px 0 32px;display:grid;grid-template-columns:auto 1fr;gap:8px 20px;font-size:0.95rem}
.meta dt{font-family:var(--font-display);font-weight:700;letter-spacing:0.15em;text-transform:uppercase;font-size:0.8rem;color:var(--accent);padding-top:2px}
.meta dd{margin:0}

@media (max-width:960px){
	.feature{grid-template-columns:1fr}
	.feature-art{min-height:260px;clip-path:polygon(0 0,100% 0,100% 86%,0 100%)}
	.feature-body{padding:32px}
}

/* ---- block: link-cards (site/blocks/link-cards.js) ---- */
.link-card{display:flex;flex-direction:column;text-decoration:none;min-height:260px;transition:background .2s,transform .2s}
.link-card .num{font-family:var(--font-display);font-weight:700;color:var(--accent);font-size:0.9rem;letter-spacing:0.2em;margin-bottom:auto}
.link-card h3{font-size:2rem;margin:32px 0 10px}
.link-card .go{margin-top:16px;font-family:var(--font-display);font-weight:700;letter-spacing:0.12em;text-transform:uppercase;font-size:0.85rem;color:var(--accent)}
.link-card:hover{background:var(--surface-2);transform:translateY(-4px)}
.link-card::after{
	content:"";position:absolute;right:0;top:0;width:90px;height:90px;background:var(--accent);opacity:0;
	clip-path:polygon(100% 0,100% 100%,0 0);transition:opacity .2s;
}
.link-card:hover::after{opacity:1}

/* ---- block: story (site/blocks/story.js) ---- */
/* Split heading + copy */
.split{display:grid;grid-template-columns:5fr 7fr;gap:56px;align-items:start}
.split h2{font-size:clamp(2rem,4.5vw,3.25rem)}
.split .copy p{font-size:1.1rem;color:var(--muted)}
.split .copy p:first-child{color:var(--text);font-size:1.3rem}

@media (max-width:960px){
	.split{grid-template-columns:1fr;gap:24px}
}

/* ---- block: values (site/blocks/values.js) ---- */
.value{border-top:4px solid var(--accent)}
.value .num{font-family:var(--font-display);font-weight:700;font-size:3.5rem;line-height:1;color:var(--line);display:block;margin-bottom:20px}

/* ---- block: track-record (site/blocks/track-record.js) ---- */
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin-bottom:64px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.stat{padding:28px 24px;border-left:1px solid var(--line)}
.stat:first-child{border-left:0}
.stat b{display:block;font-family:var(--font-display);font-weight:700;font-size:clamp(2.25rem,5vw,3.5rem);line-height:1;color:var(--accent)}
.stat span{color:var(--muted);font-size:0.95rem}

.timeline{list-style:none;margin:0;padding:0;position:relative}
.timeline::before{content:"";position:absolute;left:92px;top:0;bottom:0;width:2px;background:var(--line)}
.timeline li{display:grid;grid-template-columns:92px 1fr;gap:40px;padding:0 0 40px;position:relative}
.timeline li:last-child{padding-bottom:0}
.timeline li::before{content:"";position:absolute;left:86px;top:8px;width:14px;height:14px;background:var(--accent);transform:rotate(45deg)}
.timeline .year{font-family:var(--font-display);font-weight:700;font-size:1.25rem;color:var(--accent);padding-top:0}
.timeline h3{font-size:1.4rem;margin-bottom:6px}
.timeline p{color:var(--muted);margin:0}

@media (max-width:960px){
	.stats{grid-template-columns:repeat(2,1fr)}
	.stat:nth-child(3){border-left:0}
	.stat:nth-child(n+3){border-top:1px solid var(--line)}
}
@media (max-width:720px){
	.timeline::before{left:6px}
	.timeline li{grid-template-columns:1fr;gap:4px;padding-left:36px}
	.timeline li::before{left:0}
}

/* ---- block: game-cards (site/blocks/game-cards.js) ---- */
.game-card{padding:0;display:flex;flex-direction:column}
.game-card .thumb{
	aspect-ratio:16/9;display:grid;place-items:center;
	background:
		linear-gradient(160deg,rgba(var(--accent-rgb),0.14),transparent 55%),
		repeating-linear-gradient(-60deg,transparent 0 16px,rgba(var(--white-rgb),0.025) 16px 32px),
		var(--deep);
	clip-path:polygon(0 0,100% 0,100% 88%,0 100%);
}
.game-card .thumb img{width:100%;height:100%;object-fit:cover}
.game-card .thumb span{font-family:var(--font-display);font-weight:700;letter-spacing:0.3em;text-transform:uppercase;color:var(--muted);font-size:0.75rem}
.game-card .body{padding:20px 28px 32px}
.game-card h3{font-size:1.4rem;margin-bottom:8px}

/* On phones the shared .card padding applies to game cards too (as it always has). */
@media (max-width:720px){
	.game-card{padding:24px}
}

/* ---- block: team (site/blocks/team.js) ---- */
.member{padding:0;display:flex;flex-direction:column}
.portrait{
	position:relative;aspect-ratio:4/5;overflow:hidden;
	background:linear-gradient(160deg,var(--surface-2),var(--deep));
	display:grid;place-items:center;
}
.portrait img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.portrait .initials{
	font-family:var(--font-display);font-weight:700;font-size:5rem;color:var(--on-accent);
	width:62%;aspect-ratio:1;display:grid;place-items:center;background:var(--accent);
	clip-path:polygon(22% 0,86% 6%,100% 44%,90% 100%,30% 94%,0 62%,6% 16%);
}
.portrait .role{
	position:absolute;left:0;bottom:20px;z-index:2;
	background:var(--accent);color:var(--on-accent);
	font-family:var(--font-display);font-weight:700;font-size:0.8rem;letter-spacing:0.2em;text-transform:uppercase;
	padding:6px 20px 6px 16px;clip-path:polygon(0 0,100% 0,calc(100% - 10px) 100%,0 100%);
}
/* Wide shape: the game cards' 16:9 image with a slanted lower edge. */
.member-wide .portrait{aspect-ratio:16/9;overflow:visible;clip-path:polygon(0 0,100% 0,100% 88%,0 100%)}
.member-wide .portrait img{position:static}
.member-wide .portrait .role{bottom:calc(12% + 8px)}
.member-wide .portrait .initials{width:auto;height:62%;font-size:3.5rem}
.member .body{padding:24px 28px 32px;display:flex;flex-direction:column;flex:1}
.member h3{font-size:1.75rem;margin-bottom:10px}
.member .bio{color:var(--muted)}
.member h4{font-size:0.8rem;letter-spacing:0.2em;color:var(--accent);margin:8px 0 10px}
.credits{list-style:none;margin:0 0 20px;padding:0;font-size:0.95rem}
.credits li{padding:6px 0 6px 18px;position:relative;border-top:1px solid var(--line)}
.credits li::before{content:"";position:absolute;left:0;top:14px;width:7px;height:7px;background:var(--accent);transform:rotate(45deg)}
.member .pills{margin-top:auto}

/* On phones the shared .card padding applies to member cards too (as it always has). */
@media (max-width:720px){
	.member{padding:24px}
}

/* ---- block: contact-cards (site/blocks/contact-cards.js) ---- */
.contact-card{display:flex;flex-direction:column}
.contact-card .icon{
	width:56px;height:56px;display:grid;place-items:center;margin-bottom:24px;
	background:var(--accent);color:var(--on-accent);
	clip-path:polygon(22% 0,100% 0,100% 78%,78% 100%,0 100%,0 22%);
}
.contact-card .icon svg{width:26px;height:26px}
.contact-card .big-link{
	margin-top:auto;padding-top:12px;font-family:var(--font-display);font-weight:700;font-size:1.15rem;
	color:var(--accent);text-decoration:none;word-break:break-word;
}
.contact-card .big-link:hover{text-decoration:underline;text-underline-offset:4px}

/* ---- block: cta-strip (site/blocks/cta-strip.js) ---- */
.cta-strip{
	display:flex;align-items:center;justify-content:space-between;gap:32px;flex-wrap:wrap;
	padding:48px;background:var(--surface);border-left:6px solid var(--accent);
	clip-path:polygon(0 0,100% 0,100% calc(100% - 24px),calc(100% - 24px) 100%,0 100%);
}
.cta-strip h2{font-size:clamp(1.75rem,4vw,2.75rem);margin-bottom:8px}
.cta-strip p{margin:0;color:var(--muted)}

@media (max-width:720px){
	.cta-strip{padding:32px 24px}
}

/* ---- block: tea-party (site/blocks/tea-party.js) ---- */
.tea-party{margin:0 auto;max-width:900px}
.tea-scene{
	background:var(--accent);padding:24px 24px 0;
	clip-path:polygon(28px 0,100% 0,100% calc(100% - 28px),calc(100% - 28px) 100%,0 100%,0 28px);
}
.tea-scene svg{display:block;width:100%;height:auto}
.tea-party figcaption{margin-top:20px;text-align:center;color:var(--muted);font-family:var(--font-display);font-weight:600;letter-spacing:0.08em;text-transform:uppercase;font-size:0.9rem}
.tp-dark{fill:var(--bg)}
.tp-cream{fill:var(--text)}
.tp-eye{fill:var(--accent)}
.tp-line{fill:none;stroke:var(--bg);stroke-width:6;stroke-linejoin:miter}
.tp-string{fill:none;stroke:var(--bg);stroke-width:3}
.tp-thread{fill:none;stroke:var(--text);stroke-width:2}
.tp-steam{fill:none;stroke:var(--text);stroke-width:4;stroke-linecap:round;opacity:0;animation:tp-steam 2.6s ease-in-out infinite}
.tp-steam.s2{animation-delay:.9s}
.tp-steam.s3{animation-delay:1.6s}
.tp-bob{animation:tp-bob 2.4s ease-in-out infinite}
.tp-bob.b2{animation-delay:-1.2s}
.tp-hanger{transform-box:view-box;transform-origin:330px 80px;animation:tp-sway 3.2s ease-in-out infinite}
.tp-flyer{animation:tp-bob 1.2s ease-in-out infinite}
.tp-flyer .wing{transform-box:fill-box;animation:tp-flap .35s ease-in-out infinite alternate}
.tp-flyer .wing-l{transform-origin:right center}
.tp-flyer .wing-r{transform-origin:left center}
.tp-lid{transform-box:fill-box;transform-origin:center bottom;animation:tp-rattle 3s ease-in-out infinite}
@keyframes tp-steam{0%{opacity:0;transform:translateY(8px)}35%{opacity:.9}100%{opacity:0;transform:translateY(-14px)}}
@keyframes tp-bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}
@keyframes tp-sway{0%,100%{transform:rotate(-5deg)}50%{transform:rotate(5deg)}}
@keyframes tp-flap{from{transform:scaleY(1)}to{transform:scaleY(.3)}}
@keyframes tp-rattle{0%,82%,100%{transform:rotate(0)}86%{transform:rotate(-6deg) translateY(-3px)}90%{transform:rotate(5deg) translateY(-3px)}94%{transform:rotate(-3deg)}}

@media (prefers-reduced-motion:reduce){
	.tea-scene *{animation:none !important}
	.tea-scene .tp-steam{opacity:.8}
}
