:root{--fg-bg:#f3f3f0;--fg-surface:#ffffff9e;--fg-line:#18181b24;--fg-line-strong:#18181b57;--fg-texture:#18181b09;--fg-gap:16px;--fg-pad:clamp(16px, 2vw, 28px);--fg-corner:18px;--ink:#18181b;--muted:#6f6f76;--accent:#e5533d;--sans:"Geist", ui-sans-serif, system-ui, sans-serif;--mono:"Geist Mono", ui-monospace, SFMono-Regular, Menlo, monospace}html{background:var(--fg-bg);scroll-behavior:smooth}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}body{color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;margin:0}.framed-grid{min-height:100vh;padding:var(--fg-gap);background:repeating-linear-gradient(135deg, transparent 0 11px, var(--fg-texture) 11px 12px), var(--fg-bg);gap:var(--fg-gap);box-sizing:border-box;grid-template-columns:repeat(12,minmax(0,1fr));max-width:1600px;margin:0 auto;display:grid}.framed-grid>*{min-width:0}.frame{border:1px solid var(--fg-line);padding:var(--fg-pad);box-sizing:border-box;position:relative;overflow:hidden}.frame-brackets{--b:var(--fg-line-strong);background:linear-gradient(var(--b), var(--b)) left top / var(--fg-corner) 1px no-repeat, linear-gradient(var(--b), var(--b)) left top / 1px var(--fg-corner) no-repeat, linear-gradient(var(--b), var(--b)) right top / var(--fg-corner) 1px no-repeat, linear-gradient(var(--b), var(--b)) right top / 1px var(--fg-corner) no-repeat, linear-gradient(var(--b), var(--b)) left bottom / var(--fg-corner) 1px no-repeat, linear-gradient(var(--b), var(--b)) left bottom / 1px var(--fg-corner) no-repeat, linear-gradient(var(--b), var(--b)) right bottom / var(--fg-corner) 1px no-repeat, linear-gradient(var(--b), var(--b)) right bottom / 1px var(--fg-corner) no-repeat, var(--fg-surface)}.span-12{grid-column:span 12}.span-8{grid-column:span 8}.span-6{grid-column:span 6}.span-4{grid-column:span 4}.span-3{grid-column:span 3}.mono{font-family:var(--mono);letter-spacing:.04em;text-transform:uppercase;font-size:11.5px}.muted{color:var(--muted)}.small{font-size:11px;line-height:1.6}h1,h2,h3{letter-spacing:-.035em;margin:0;font-weight:500}h1{max-width:11ch;font-size:clamp(44px,6.2vw,92px);line-height:.95}h2{font-size:clamp(26px,2.6vw,38px);line-height:1.05}h3{font-size:24px;line-height:1.1}p{margin:0;line-height:1.55}a{color:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.meta-row{border-bottom:1px solid var(--fg-line);justify-content:space-between;gap:12px;padding-bottom:14px;display:flex}.dot{background:var(--accent);vertical-align:1px;width:6px;height:6px;margin-right:8px;display:inline-block}.live .dot,.bar-status .dot{animation:1.6s steps(2,jump-none) infinite blink}@keyframes blink{50%{opacity:.2}}.btn{border:1px solid var(--ink);height:44px;font:500 14px/1 var(--sans);cursor:pointer;white-space:nowrap;justify-content:center;align-items:center;padding:0 20px;text-decoration:none;transition:background-color .2s,color .2s;display:inline-flex}.btn-sm{height:36px;padding:0 14px;font-size:13px}.btn-ink{background:var(--ink);color:#fafaf9}.btn-ink:hover{background:#3a3a40}.btn-line{color:var(--ink);background:0 0}.btn-line:hover{background:var(--ink);color:#fafaf9}.bar{align-items:center;gap:28px;padding-block:14px;display:flex}.logo{letter-spacing:-.02em;align-items:center;gap:10px;font-size:16px;font-weight:600;text-decoration:none;display:inline-flex}.logo svg{width:20px;height:20px}.bar nav{gap:24px;margin-left:32px;display:flex}.bar nav a{color:var(--muted);font-size:14px;text-decoration:none}.bar nav a:hover{color:var(--ink)}.bar-status{margin-left:auto}.hero{flex-direction:column;gap:40px;padding-bottom:0;display:flex}.hero h1{margin-top:auto}.hero-foot{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:32px;display:grid}.lede{color:#3f3f46;max-width:46ch;font-size:17px}.ctas{flex-wrap:wrap;gap:10px;display:flex}.ruler{margin:0 calc(var(--fg-pad) * -1);border-top:1px solid var(--fg-line);grid-template-columns:repeat(8,1fr);padding:0;list-style:none;display:grid}.ruler li{border-left:1px solid var(--fg-line);color:var(--muted);padding:8px 10px;font-size:10px}.ruler li:first-child{border-left:0}.field{flex-direction:column;gap:16px;display:flex}.board{aspect-ratio:1;border:1px solid var(--fg-line);position:relative}.board canvas{width:100%;height:100%;display:block;position:absolute;inset:0}.readout{border:1px solid var(--fg-line);grid-template-columns:repeat(4,1fr);margin:0;display:grid}.readout div{border-left:1px solid var(--fg-line);padding:10px 12px}.readout div:first-child{border-left:0}.readout dt{color:var(--muted);font-size:10px}.readout dd{color:var(--ink);letter-spacing:0;margin:4px 0 0;font-size:14px}.stat{align-items:flex-end;gap:16px;min-height:120px;display:flex}.stat-n{letter-spacing:-.05em;font-variant-numeric:tabular-nums;font-size:clamp(40px,4vw,56px);font-weight:500;line-height:.85}.stat-l{color:var(--muted);max-width:22ch;font-size:13.5px;line-height:1.4}.section-head{gap:var(--fg-gap);grid-template-columns:repeat(12,minmax(0,1fr));align-items:end;padding-block:36px;display:grid}.section-head>span{grid-column:span 3;align-self:start}.section-head h2{grid-column:span 5}.section-head p{grid-column:span 4}.game{flex-direction:column;gap:18px;transition:background-color .25s;display:flex}.game:hover{--b:var(--ink)}.art{aspect-ratio:4/3;border:1px solid var(--fg-line);overflow:hidden}.art svg{width:100%;height:100%;display:block}.tag{border:1px solid var(--fg-line-strong);padding:3px 7px;font-size:10px}.tag-accent{border-color:var(--accent);color:var(--accent)}.game p{font-size:15px}.spec{border-top:1px solid var(--fg-line);margin:auto 0 0}.spec div{border-bottom:1px solid var(--fg-line);justify-content:space-between;gap:12px;padding:9px 0;display:flex}.spec div:last-child{border-bottom:0;padding-bottom:0}.spec dt{color:var(--muted)}.spec dd{text-align:right;margin:0}.devlog,.build,.principles,.team,.jobs,.signup{flex-direction:column;gap:22px;display:flex}.devlog ul,.jobs ul,.principles ol,.meters,.team-grid{margin:0;padding:0;list-style:none}.post{border-top:1px solid var(--fg-line);grid-template-columns:84px 84px minmax(0,1fr) 52px;align-items:baseline;gap:16px;padding:18px 0;text-decoration:none;display:grid}.post .tag{justify-self:start}.post-body{gap:6px;display:grid}.post-body strong{letter-spacing:-.015em;font-size:18px;font-weight:500}.post-body .muted{font-size:14.5px;line-height:1.5}.post-len{text-align:right}.post:hover strong,.role:hover strong{text-underline-offset:4px;text-decoration:underline 1px}.meters{gap:18px;display:grid}.meter-row{justify-content:space-between;margin-bottom:8px;display:flex}.meter{border:1px solid var(--fg-line-strong);background:repeating-linear-gradient(135deg,#0000 0 3px,#18181b14 3px 4px);height:10px}.meter span{height:100%;width:var(--p);background:var(--ink);display:block}.milestones{border-top:1px solid var(--fg-line);margin:0;padding:0;list-style:none}.milestones li{border-bottom:1px solid var(--fg-line);grid-template-columns:84px minmax(0,1fr);align-items:baseline;gap:12px;padding:11px 0;font-size:14.5px;display:grid}.milestones li.next .mono{color:var(--accent)}.build .small{border-top:1px solid var(--fg-line);margin-top:auto;padding-top:16px}.principles ol li{border-top:1px solid var(--fg-line);grid-template-columns:44px minmax(0,1fr);gap:12px;padding:16px 0;display:grid}.principles .idx{color:var(--accent);padding-top:3px}.principles strong{font-size:17px;font-weight:500}.principles p{margin-top:4px;font-size:14.5px}.team-grid{border-top:1px solid var(--fg-line);border-left:1px solid var(--fg-line);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.team-grid li{border-right:1px solid var(--fg-line);border-bottom:1px solid var(--fg-line);align-items:center;gap:12px;min-width:0;padding:14px;display:flex}.team-grid li>span:last-child{min-width:0;display:grid}.team-grid strong{font-size:14.5px;font-weight:500}.team-grid .muted{font-size:13px}.ini{border:1px solid var(--fg-line-strong);flex:none;place-items:center;width:36px;height:36px;font-size:11px;display:grid}.ini-accent{background:var(--accent);border-color:var(--accent);color:#fff}.role{border-top:1px solid var(--fg-line);grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) minmax(0,1fr) auto;align-items:baseline;gap:16px;padding:18px 0;text-decoration:none;display:grid}.role strong{letter-spacing:-.015em;font-size:18px;font-weight:500}.signup form{gap:8px;margin-top:auto;display:grid}.field-row{display:flex}.field-row input{border:1px solid var(--ink);min-width:0;height:44px;font:15px var(--sans);color:var(--ink);background:#fff;border-right:0;border-radius:0;flex:1;padding:0 14px}.field-row input:focus-visible{outline-offset:-2px}#signup-msg{min-height:18px}.foot{flex-wrap:wrap;justify-content:space-between;gap:16px;padding-block:18px;display:flex}@media (width<=1100px){.span-8,.span-4{grid-column:span 12}.span-3,.game{grid-column:span 6}.game:first-of-type{grid-column:span 12}.field{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;display:grid}.field .meta-row{grid-column:1/-1}.field .readout{grid-template-columns:1fr 1fr}.field .readout div:nth-child(3){border-left:0}.field .readout div:nth-child(n+3){border-top:1px solid var(--fg-line)}.bar-status{display:none}.bar nav{margin-left:auto}}@media (width<=760px){.framed-grid{grid-template-columns:1fr}.span-12,.span-8,.span-6,.span-4,.span-3,.game,.game:first-of-type{grid-column:1/-1}.bar{flex-wrap:wrap;gap:14px}.bar nav{border-top:1px solid var(--fg-line);order:3;gap:18px;width:100%;margin:0;padding-top:12px}.bar .btn{margin-left:auto}.hero{gap:28px}.hero h1{margin-top:12px}.hero-foot{grid-template-columns:1fr;gap:24px}.ruler{grid-template-columns:repeat(4,1fr)}.ruler li:nth-child(n+5){display:none}.field{align-items:stretch;display:flex}.readout{grid-template-columns:repeat(2,1fr)!important}.stat{min-height:0}.section-head{grid-template-columns:1fr;padding-block:24px}.section-head>*{grid-column:1/-1!important}.post{grid-template-columns:auto auto 1fr;row-gap:10px}.post-body{grid-column:1/-1}.post-len{grid-area:1/3}.team-grid{grid-template-columns:1fr 1fr}.role{grid-template-columns:1fr auto;row-gap:6px}.role strong{grid-column:1/-1}.role>span:nth-of-type(2){display:none}}@media (prefers-reduced-motion:reduce){.live .dot,.bar-status .dot{animation:none}}
