﻿/* Shared geometry. Per-game styles own palette, type and ornament. */
*,*::before,*::after{box-sizing:border-box}
:root{--rules-size:18px;--piece-size:128px;--bar-height:44px;--reading-inset:0px;color-scheme:dark;background:var(--bg);color:var(--ink);font:18px/1.7 var(--reading)}body{margin:0;overflow-wrap:break-word}a{color:var(--accent);text-underline-offset:.2em}a:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--accent);outline-offset:4px}img{display:block;max-width:100%;height:auto}h1,h2,h3,h4{line-height:1.2;text-wrap:balance}p,li,dd{text-wrap:pretty}p,ul,ol,dl{margin:0 0 1.4em}
.cover{position:relative;z-index:2;isolation:isolate;background:var(--bg);height:min(58vh,620px);display:flex;align-items:end}.cover-art{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:var(--cover-position);z-index:-2}.cover::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,transparent 25%,color-mix(in srgb,var(--bg) 25%,transparent) 48%,var(--bg) 100%)}.cover-copy{width:min(1160px,calc(100% - 80px));margin:0 auto;padding:28px 0 20px}.cover nav{font:12px/1.7 var(--label);color:var(--muted);margin:0 0 20px}.cover nav a{color:inherit;text-decoration:none}.eyebrow{font:700 12px/1.5 var(--label);letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin:0 0 12px}h1{margin:0}.title-label{display:block;font:600 14px/1.6 var(--label);letter-spacing:.08em;color:var(--muted);margin-bottom:8px}.title-name,.sticky-name{font-family:var(--display);font-weight:var(--weight);font-style:var(--italic);letter-spacing:var(--tracking);text-transform:var(--casing);color:var(--titleInk)}.title-name{display:block;font-size:clamp(44px,6.8vw,100px);line-height:.98}.title-name b{font-weight:inherit}.title-name .title-dot{color:var(--dot);-webkit-text-fill-color:var(--dot)}
.sticky-play{position:sticky;top:0;z-index:1;height:var(--bar-height);margin-top:calc(-1 * var(--bar-height));display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 max(20px,calc((100% - 1160px)/2));background:color-mix(in srgb,var(--bg) 92%,transparent);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}.sticky-name{color:var(--ink);font-size:17px;letter-spacing:normal;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.play-button{display:inline-flex;align-items:center;justify-content:center;padding:12px 20px;background:var(--buttonBg);color:var(--buttonInk);border:1px solid var(--buttonBorder);border-radius:var(--buttonRadius);box-shadow:var(--buttonShadow);font:700 14px/1.2 var(--label);text-decoration:none;min-height:44px;text-align:center}.sticky-play .play-button{min-height:34px;padding:7px 14px;font-size:12px;flex-shrink:0}
/* One containing grid lets the side card stick through the entire rulebook. */
main{display:grid;grid-template-columns:minmax(0,66ch) 300px;column-gap:56px;row-gap:40px;width:min(calc(66ch + 356px),calc(100% - 80px));margin:60px auto 100px;align-items:start}
.lead{grid-column:1;grid-row:1;padding-inline:var(--reading-inset);font-size:18px;line-height:1.7;margin:0;color:var(--ink)}
.glance{grid-column:2;grid-row:1 / span 2;position:sticky;top:68px;align-self:start}
.glance{padding:26px;background:var(--panel);color:var(--panelInk);border:1px solid var(--panelBorder);border-radius:var(--panelRadius);box-shadow:var(--panelShadow)}.glance dl{display:grid;grid-template-columns:90px 1fr;gap:12px 16px;font-size:15px;line-height:1.5;margin:0 0 24px}.glance dt{font:600 11px/1.7 var(--label);text-transform:uppercase;letter-spacing:.08em;color:var(--panelMuted)}.glance dd{margin:0}.glance .play-button{width:100%}
.rulebook{grid-column:1;grid-row:2;min-width:0;width:100%;margin:0;counter-reset:section;background:var(--sheet);color:var(--ink)}/* Explicit sizes also protect reading copy from imported small/fine wrappers. */
#rules-content{font-size:var(--rules-size);line-height:1.7}
#rules-content p,#rules-content li,#rules-content dd{font-size:var(--rules-size);line-height:1.7}
#rules-content small,#rules-content .small,#rules-content .fine{font-size:inherit;line-height:inherit}
#rules-content .rules-label{font:400 13px/1.7 var(--label);letter-spacing:.14em;text-transform:uppercase}
#rules-content table,#rules-content td,#rules-content th{font-size:16px;line-height:1.7}
#rules-content h2{counter-increment:section;font:600 1.65em/1.25 var(--display);margin:0 0 24px;scroll-margin-top:70px}#rules-content h2::before{display:block;font:400 13px/1.5 var(--label);color:var(--accent);letter-spacing:.12em;margin-bottom:12px}#rules-content h3{font:600 1.25em/1.3 var(--display);margin:0 0 20px}#rules-content h4{font:700 1em/1.4 var(--label);margin:36px 0 18px}#rules-content strong,#rules-content b{color:var(--accent)}#rules-content ul{padding:0;list-style:none}#rules-content li{position:relative;padding-left:32px;margin:0 0 16px}#rules-content ul>li::before{content:var(--motif);position:absolute;left:0;top:0;width:20px;color:var(--accent);text-align:center;font-size:16px}#rules-content ol{padding-left:24px}#rules-content ol>li{padding-left:8px}#rules-content dd{margin:0 0 24px}#rules-content dt{font-weight:700;color:var(--accent)}#rules-content dd small{display:block;margin-top:8px}
.ornament{display:flex;align-items:center;gap:20px;margin:56px 0 28px;color:var(--accent);font-size:14px}.ornament::before,.ornament::after{content:"";height:1px;background:var(--line);flex:1}.ornament span::before{content:var(--motif)}.table-frame{width:100%;overflow-x:auto;margin:28px 0;box-shadow:inset -12px 0 12px -12px var(--ink);border:1px solid var(--line)}table{border-collapse:collapse;width:100%;font-size:16px}th,td{padding:12px 16px;text-align:left;vertical-align:top;border-bottom:1px solid var(--line)}th{font-family:var(--label);color:var(--accent)}code,kbd{font:.85em var(--label)}kbd{border:1px solid var(--line);padding:2px 5px}
.piece-row{display:flex;flex-wrap:wrap;align-items:start;gap:16px;margin:32px 0 40px}
.piece-row figure{box-sizing:content-box;flex:none;width:calc(var(--piece-size) * var(--piece-w,1));margin:0}
.piece-row img{width:100%;max-width:none;height:auto;object-fit:contain}
.piece-row figcaption{font:400 14px/1.5 var(--label);margin-top:10px;text-align:center;color:var(--muted)}
.piece-row figure[data-sprite]{width:calc(3px * var(--sprite-width))}
.piece-row figure[data-sprite="item"]{width:calc(2px * var(--sprite-width))}
.piece-row [data-sprite] img{image-rendering:pixelated}
.more-games{background:#0b1012;border-top:1px solid #2a373c;color:#ece8de;padding:48px max(20px,calc((100% - 1160px)/2)) 28px;font:16px/1.6 Georgia,'Times New Roman',serif}.more-games h2{font:400 30px Georgia,'Times New Roman',serif;margin:0 0 28px}.game-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;list-style:none;padding:0;margin:0}.game-card{min-width:0}.game-card a{display:block;height:100%;border:1px solid #2a373c;background:#11191c;color:inherit;text-decoration:none;transition:transform .18s}.game-card a:hover{transform:translateY(-2px)}.game-card img{width:100%;aspect-ratio:1.91;height:auto;object-fit:cover}.game-card picture{display:block}.game-card-copy{padding:18px}.game-card small{font:10px ui-monospace,monospace;text-transform:uppercase;letter-spacing:.15em;color:#9aa6a7}.game-card h3{font:400 20px/1.2 Georgia,'Times New Roman',serif;margin:10px 0}.game-card p{font-size:15px;color:#aab6b5;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;margin:0}.more-games footer{border-top:1px solid #2a373c;padding-top:24px;margin-top:36px;font:11px ui-monospace,monospace}.more-games footer a{color:#9aa6a7}
@media(max-width:999px){main{grid-template-columns:minmax(0,1fr);width:min(66ch,calc(100% - 40px));row-gap:28px;margin:36px auto 60px}.lead,.glance,.rulebook{grid-column:1;grid-row:auto}.glance{position:static}.game-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:699px){:root{--rules-size:17px;--piece-size:96px;font-size:17px}.cover{height:min(46vh,420px)}.cover-copy{width:calc(100% - 40px);padding-bottom:20px}.cover nav{font-size:10px;margin-bottom:12px}.eyebrow{font-size:10px}.title-name{font-size:clamp(36px,10vw,60px)}.title-label{font-size:12px}.lead{font-size:17px}.glance{padding:22px}.glance dl{grid-template-columns:75px 1fr;font-size:14px}.game-card-copy{padding:12px}.sticky-name{max-width:42%;font-size:14px}.sticky-play .play-button{max-width:56%;font-size:10px}.ornament{margin-top:44px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;animation:none!important;scroll-behavior:auto!important}}
.toy-announcement{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}button:focus-visible,[role="button"]:focus-visible{outline:2px solid var(--accent);outline-offset:4px}
