.home-hero{display:grid;grid-template-columns:1.05fr 1fr;gap:40px;align-items:center;padding:68px 0 44px}.home-hero h1{font:900 clamp(34px,4.4vw,64px)/1.05 ui-monospace,monospace;letter-spacing:-2px;margin:18px 0 24px}.home-hero h1 em{font-style:normal;color:var(--pk-lime)}.home-hero .lede{max-width:560px;font-size:20px}.showcase{align-self:center;position:relative}.showcase canvas{aspect-ratio:932/640}.showcase-caption{padding:14px;min-height:68px}.showcase button{min-height:44px}.showcase #artStatus{padding:0 16px}.intro-copy{max-width:830px;font-size:19px}.intro-copy p{color:var(--pk-muted)}.portal-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:32px}.portal{position:relative;display:flex;flex-direction:column;padding:28px;border:1px solid #61764d;background:linear-gradient(140deg,#242d29,#161b27);box-shadow:5px 5px #080b11;min-width:0}.portal.heartlink{border-color:#b37178;background:linear-gradient(140deg,#38252b,#191921)}.portal.heartlink .eyebrow{color:var(--pk-rose)}.portal.gotchi{border-color:#8272ad;background:linear-gradient(140deg,#282139,#192823)}.portal.doom{border-color:#765052;background:linear-gradient(140deg,#332326,#181a22)}.portal h3{font:800 34px/1.15 ui-monospace,monospace;margin:20px 0 12px}.portal .tagline{font-size:19px;color:var(--pk-cream)}.portal p{color:var(--pk-muted)}.portal .button-row{margin-top:auto;padding-top:18px}.portal img{width:100%;aspect-ratio:3/2;object-fit:contain;image-rendering:pixelated;background:#131721}.portal .dance-thumb{float:right;width:90px;aspect-ratio:6/7;margin-left:15px}.lab-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:28px}.lab-item{padding:22px;background:#1a202b;border-top:3px solid #9aba68}.lab-item h3{font-size:21px;letter-spacing:-.5px}.lab-item p{color:var(--pk-muted);font-size:15px}.behind{display:grid;grid-template-columns:1fr 1.2fr;gap:40px;align-items:center}.behind figure{margin:0}.behind figcaption{padding:16px;font-size:14px;color:var(--pk-gold)}.behind img{display:block;aspect-ratio:3/2;object-fit:contain;image-rendering:pixelated}.phalla{display:grid;grid-template-columns:130px 1fr;gap:32px;align-items:center;border-color:#b0d77b}.heartbeat-rune{width:110px;height:160px;color:#aeff59;filter:drop-shadow(0 0 10px #8bf64d);animation:heartbeat 3.2s ease-in-out infinite}.countdown{display:flex;flex-wrap:wrap;gap:20px;margin:26px 0}.countdown span{display:flex;flex-direction:column;min-width:68px}.countdown b{font:800 clamp(30px,4vw,48px)/1 ui-monospace,monospace;color:var(--pk-lime)}.countdown small{font-size:12px;color:var(--pk-muted);padding-top:8px;text-transform:uppercase;letter-spacing:.12em}.phalla h2{font-size:clamp(32px,5vw,50px);margin:10px 0}.phalla .values{color:var(--pk-gold)}.closing{text-align:center}.closing .section-title{margin-inline:auto}.closing .button-row{justify-content:center}.hero-fallback{display:block;width:100%;aspect-ratio:932/640;object-fit:contain;image-rendering:pixelated}.hero-fallback[hidden]{display:none}.portals-awake .portal{border-color:#b0d77b;transition:border-color 1s}.site-intro{border-top:1px solid #4d5e3a;border-bottom:1px solid #4d5e3a}.why{max-width:780px}.why p{font-size:19px;color:var(--pk-muted)}@keyframes heartbeat{0%,35%,100%{transform:scale(1);filter:drop-shadow(0 0 6px #70d237)}10%,24%{transform:scale(1.04);filter:drop-shadow(0 0 18px #a5ff67)}17%{transform:scale(1.01)}}
@media(max-width:950px){.lab-grid{grid-template-columns:1fr 1fr}.home-hero{gap:24px}.home-hero h1{font-size:40px}}
@media(max-width:760px){.home-hero,.behind{grid-template-columns:1fr}.home-hero{padding:40px 0}.home-hero h1{font-size:clamp(34px,8.6vw,50px)}.portal-grid{grid-template-columns:1fr}.phalla{grid-template-columns:64px 1fr;gap:16px;padding:22px}.heartbeat-rune{width:56px;height:90px}.phalla .countdown{gap:12px}.countdown span{min-width:48px}.lab-grid{grid-template-columns:1fr 1fr}.portal{padding:22px}}
@media(max-width:400px){.lab-grid{grid-template-columns:1fr}.phalla{grid-template-columns:1fr}.heartbeat-rune{height:66px}.countdown b{font-size:30px}}
.showcase canvas{background:#151520 url('/media/hero-still.png') center/contain no-repeat}.countdown[hidden]{display:none}.portal.heartlink img{aspect-ratio:1;max-height:300px}.brand-rune{color:var(--pk-lime)}
.portal-grid{align-items:start}.portal{padding:22px}.portal h3{margin:14px 0 10px;font-size:30px}.portal p{font-size:16px;line-height:1.55;margin:12px 0}.portal .tagline{font-size:17px}.portal .button-row{padding-top:6px;margin-top:12px}.portal img.dance-thumb,.portal.heartlink img.dance-thumb{float:right;width:90px;height:105px;aspect-ratio:auto;object-fit:contain;background:transparent;margin:0 0 8px 12px}.portal p:empty{display:none}
.viking-party{border-top:1px solid #755047}.viking-scene{margin:26px 0 18px;background:#131923;border-color:#ae7645}.viking-scene img{display:block;width:100%;height:auto;object-fit:contain;image-rendering:pixelated}.viking-scene figcaption{padding:16px;color:var(--pk-gold);text-align:center}.viking-roster{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}.viking-roster button{min-width:0;min-height:48px;padding:10px 5px;border:1px solid #997558;background:#23232f;color:#fff0d4;font:700 15px ui-monospace,monospace;cursor:pointer}.viking-roster button[aria-pressed=true]{border-color:#adf064;background:#304532;box-shadow:0 0 14px #8feb4c30;color:#d9ffa9}.viking-roster button:focus-visible{outline:3px solid #ffcb7c;outline-offset:3px}.viking-role{min-height:3.4em;padding:14px 0;color:#e8d4bd;font-size:17px;line-height:1.6}@media(max-width:650px){.viking-roster{grid-template-columns:repeat(4,minmax(0,1fr))}.viking-scene figcaption{font-size:14px}.viking-roster button{font-size:13px}}
.viking-art{position:relative}.viking-scene .viking-rune{position:absolute;height:auto;pointer-events:none;filter:drop-shadow(0 0 2px #a4ea6540)}.viking-scene .rune-pk{left:37.05%;top:49.6%;width:5.86%;height:11.72%}.viking-scene .rune-child{left:10.42%;top:65.23%;width:4.23%;height:7.62%}.viking-scene .rune-banner{left:9.31%;top:23.34%;width:4.43%;height:12.7%}

/* Halloween v4: surface-aligned pixel emblems. */
.viking-scene .viking-rune{image-rendering:pixelated;object-fit:fill;filter:none}.viking-scene .rune-pk{left:37.56510416666667%;top:47.8515625%;width:6.0546875%;height:11.71875%}.viking-scene .rune-child{left:9.1796875%;top:63.8671875%;width:4.036458333333334%;height:8.0078125%}.viking-scene .rune-lilah{left:73.95833333333334%;top:60.15625%;width:4.427083333333334%;height:8.88671875%}.viking-scene .rune-banner{left:9.635416666666668%;top:26.46484375%;width:3.515625%;height:9.08203125%}.viking-scene .rune-banner-right{left:87.56510416666666%;top:22.4609375%;width:3.7760416666666665%;height:9.375%}

/* V5: PK shield moved down with the heavier armor. */
.viking-scene .rune-pk{top:49.4140625%}

/* V6: exact personal emblem centered within the tower shield plate. */
.viking-scene .rune-pk{left:39.0625%;top:49.0234375%;width:5.859375%;height:12.6953125%}

.brand-expansion{container-type:inline-size;display:flex;align-items:baseline;gap:8px;margin:66px 0 24px;white-space:nowrap}.hero-wordmark{display:block;flex:none;color:var(--pk-lime);font:900 clamp(52px,18cqi,108px)/1 ui-monospace,monospace;letter-spacing:-.06em}.home-hero .brand-caption{font:500 clamp(11px,5.1cqi,31px)/1.3 system-ui,sans-serif;letter-spacing:-.025em;color:var(--pk-muted);margin:0;transform:none;white-space:nowrap}.brand-caption strong{color:#fff;font-weight:850}@media(max-width:400px){.brand-expansion{gap:5px}}