*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-top:calc(var(--gf-header-h) + 16px)}html,body{background:var(--gf-bg);min-height:100%;color:var(--gf-text);font-family:var(--gf-font);font-size:var(--gf-fs-body);font-weight:var(--gf-fw-body);line-height:var(--gf-lh-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0}body.portal{min-height:100dvh;overflow-x:clip}html[data-gf-immersive] body{overflow:hidden}img,svg{max-width:100%}a{color:inherit}button,input,select{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--gf-focus);outline-offset:3px;border-radius:var(--gf-r-inner)}::selection{background:var(--gf-accent);color:var(--gf-on-accent)}.game-art{background:var(--gf-surface-2);display:block;overflow:hidden}.game-art svg{width:100%;height:100%;display:block}.visually-hidden{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{z-index:1100;border-radius:var(--gf-r);background:var(--gf-accent);color:var(--gf-on-accent);font-weight:var(--gf-fw-bold);padding:12px 18px;text-decoration:none;position:fixed;top:8px;left:8px;transform:translateY(-160%)}.skip-link:focus-visible{transform:none}.wrap{width:min(var(--gf-wrap), 100% - 2 * max(var(--gf-gutter), env(safe-area-inset-left,0px)));margin-inline:auto}.field{background-color:var(--field-day,var(--gf-surface-2));color:var(--field-ink,var(--gf-text))}html:not([data-theme=light]) .field{background-color:var(--field-night,var(--gf-surface-2));color:#f2f1ec}html[data-theme=light] .gcard-art:after,html[data-theme=light] .cover-tile:after{content:"";z-index:1;border-radius:inherit;pointer-events:none;border:1px solid #1414131f;position:absolute;inset:0}.t-display,.t-h1,.t-h2,.t-h3{color:inherit;font-family:var(--gf-font-display);font-weight:var(--gf-fw-display);font-stretch:var(--gf-wd-display);text-wrap:balance;margin:0}.t-display{font-size:var(--gf-fs-hero);letter-spacing:var(--gf-track-display);line-height:.95}.t-h1{font-size:var(--gf-fs-h1);letter-spacing:var(--gf-track-display);line-height:.98}.t-h2{font-size:var(--gf-fs-h2);line-height:var(--gf-lh-title);letter-spacing:var(--gf-track-title)}.t-h3{font-size:var(--gf-fs-h3);line-height:1.25;font-weight:var(--gf-fw-bold);font-stretch:var(--gf-wd-title);letter-spacing:-.005em}.lede{color:var(--gf-muted);font-size:var(--gf-fs-lede);margin:0;line-height:1.5}.small{font-size:var(--gf-fs-small);line-height:1.45}.muted{color:var(--gf-muted)}.num,.mono{font-family:var(--gf-font-mono);font-stretch:var(--gf-wd-mono);letter-spacing:var(--gf-track-mono);font-variant-numeric:tabular-nums;font-weight:400}.prose{max-width:70ch;color:var(--gf-text-2);font-size:var(--gf-fs-body);line-height:1.65}.prose p{margin:0 0 14px}.prose p:last-child{margin-bottom:0}.prose a{color:var(--gf-text);font-weight:var(--gf-fw-ui);text-decoration:underline;text-decoration-color:var(--gf-line-strong);text-underline-offset:3px;text-decoration-thickness:1px}.prose a:hover{text-decoration-color:currentColor}.prose strong{color:var(--gf-text);font-weight:var(--gf-fw-strong)}.prose ol,.prose ul{margin:0 0 14px;padding-left:1.4em}.prose li{margin:0 0 8px}.btn{border:1px solid var(--gf-line);border-radius:var(--gf-r);background:var(--gf-surface-2);min-height:44px;color:var(--gf-text);font-size:15.5px;font-weight:var(--gf-fw-strong);white-space:nowrap;cursor:pointer;transition:transform var(--gf-t-fast) var(--gf-ease);justify-content:center;align-items:center;gap:10px;padding:0 22px;line-height:1;text-decoration:none;display:inline-flex}.btn svg{flex:none;width:15px;height:15px}.btn:active{transform:translateY(1px)}.btn[disabled],.btn[aria-disabled=true]{opacity:.45;pointer-events:none}.btn-primary{border-color:var(--gf-accent);background:var(--gf-accent);color:var(--gf-on-accent);font-weight:var(--gf-fw-bold)}.btn-secondary{border-color:var(--gf-line);background:var(--gf-surface-2);color:var(--gf-text)}.btn-ghost{border-color:var(--gf-line-strong);color:var(--gf-text);background:0 0}.btn-text{min-height:44px;color:var(--gf-muted);background:0 0;border-color:#0000;padding:0 4px}.btn-icon{width:44px;padding:0}.btn-lg{min-height:54px;padding:0 30px;font-size:17px}.btn-sm{min-height:36px;font-size:var(--gf-fs-small);padding:0 14px}@media (pointer:coarse){.btn-sm{min-height:44px}}@media (hover:hover) and (pointer:fine){.btn-primary:hover{border-color:var(--gf-accent-hover);background:var(--gf-accent-hover)}.btn-secondary:hover,.btn-ghost:hover{background:var(--gf-surface-3)}.btn-text:hover{color:var(--gf-text)}}.panel{border-radius:var(--gf-r);background:var(--gf-surface);padding:20px}@media (width>=1024px){.panel{padding:22px 24px}}.notice{border-radius:var(--gf-r);background:var(--gf-surface);color:var(--gf-muted);justify-items:start;gap:10px;padding:20px 22px;display:grid}.notice p{margin:0}.notice strong{color:var(--gf-text);font-weight:var(--gf-fw-strong)}.notice a:not(.btn){color:var(--gf-text);text-underline-offset:3px;text-decoration:underline}.section{margin-top:var(--gf-section)}.section-head{justify-content:space-between;align-items:baseline;gap:12px 24px;margin-bottom:18px;display:flex}.section-head .t-h2{min-width:0}.section-sub{color:var(--gf-muted);margin:4px 0 0;font-size:15px}.see-all{min-height:44px;color:var(--gf-muted);font-size:14.5px;font-weight:var(--gf-fw-ui);white-space:nowrap;flex:none;align-items:center;gap:4px;text-decoration:none;display:inline-flex}.see-all svg{display:none}.see-all:hover{color:var(--gf-text)}@media (width<=767px){.section-sub{display:none}.section-head{margin-bottom:12px}}.gcard{min-width:0;position:relative}.gcard-link{height:100%;color:var(--gf-text);outline:none;flex-direction:column;text-decoration:none;display:flex}.gcard-art{aspect-ratio:16/9;border-radius:var(--gf-r);background:var(--gf-surface-2);isolation:isolate;display:block;position:relative;overflow:hidden}.gcard-media{transition:transform var(--gf-t-slow) var(--gf-ease);display:block;position:absolute;inset:0}.gcard-media>img,.gcard-media>.game-art{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.gcard-body{gap:2px;min-width:0;padding-top:12px;display:grid}.gcard-title{font-size:var(--gf-fs-card);line-height:1.3;font-weight:var(--gf-fw-strong);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.gcard-tagline{color:var(--gf-muted);font-size:var(--gf-fs-small);-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.45;display:-webkit-box;overflow:hidden}.gcard-meta{color:var(--gf-faint);font-size:var(--gf-fs-tiny);flex-wrap:wrap;gap:2px 8px;margin-top:4px;line-height:1.4;display:flex}.gcard-meta>span+span:before{content:"·";margin-right:8px}.gcard-plat[data-platforms=both]{display:none}@media (pointer:coarse){.gcard[data-platforms=desktop] .gcard-plat{color:var(--gf-text)}}@media (pointer:fine){.gcard[data-platforms=mobile] .gcard-plat{color:var(--gf-text)}}@media (hover:hover) and (pointer:fine){.gcard-link:hover .gcard-media{transform:scale(1.03)}.gcard-link:hover .gcard-title{text-underline-offset:3px;text-decoration:underline 1px}}.gcard-link:focus-visible .gcard-art{outline:2px solid var(--gf-focus);outline-offset:3px}.gcard-link:active .gcard-art{transform:translateY(1px)}.gcard--sm{flex:none;width:100%}.gcard--sm .gcard-tagline{-webkit-line-clamp:1}.gcard--row .gcard-link{border-radius:var(--gf-r);flex-direction:row;align-items:center;gap:12px;padding:6px}.gcard.gcard--row .gcard-art{aspect-ratio:1;border-radius:var(--gf-r-inner);flex:none;width:44px}.gcard--row .gcard-body{padding:0}.gcard--row .gcard-title{font-size:15px}.gcard--row .gcard-meta{margin:0;font-size:13px}.game-grid{grid-template-columns:repeat(auto-fill, minmax(var(--card-min), 1fr));gap:28px var(--card-gap);margin:0;padding:0;list-style:none;display:grid}.game-grid>li{min-width:0}@media (width<=767px){.game-grid{gap:20px var(--card-gap)}}.row-scroller{position:relative}.row-track{--row-n:1.75;gap:var(--card-gap);margin:0 calc(var(--gf-gutter) * -1);padding:0 var(--gf-gutter) 4px;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scroll-padding-inline:var(--gf-gutter);scrollbar-width:none;list-style:none;display:flex;overflow-x:auto}.row-track::-webkit-scrollbar{display:none}.row-track>li{flex:0 0 calc((100% - (var(--row-n) - 1) * var(--card-gap) - var(--gf-gutter)) / var(--row-n));scroll-snap-align:start;min-width:0}@media (width>=768px){.row-track{--row-n:3.3}}@media (width>=1024px){.row-track{--row-n:4;margin:0;padding:0 0 4px;scroll-padding-inline:0}.row-track>li{flex-basis:calc((100% - (var(--row-n) - 1) * var(--card-gap)) / var(--row-n))}}.row-nav{gap:6px;display:none}.row-nav:has([data-row-prev]:disabled):has([data-row-next]:disabled){display:none}.row-nav button{border:1px solid var(--gf-line);border-radius:var(--gf-r);width:36px;height:36px;color:var(--gf-text);cursor:pointer;background:0 0;place-items:center;padding:0;display:inline-grid}.row-nav button svg{width:18px;height:18px}.row-nav button:disabled{opacity:.35;cursor:default}@media (hover:hover) and (pointer:fine) and (width>=768px){.row-nav{display:inline-flex}.row-nav button:not(:disabled):hover{background:var(--gf-surface-2)}}.row-band{border-radius:var(--gf-r);background:var(--gf-surface);grid-template-columns:minmax(0,1fr) minmax(0,2fr);align-items:start;gap:20px 24px;padding:24px;display:grid}.row-band-copy{justify-items:start;gap:12px;display:grid}.row-band-sub{color:var(--gf-muted);margin:0;font-size:15px;line-height:1.55}.row-band-cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin:0;padding:0;list-style:none;display:grid}@media (width<=767px){.row-band{grid-template-columns:minmax(0,1fr);padding:18px 16px}.row-band-cards{gap:12px}}.section-tools{flex:none;align-items:center;gap:14px;display:inline-flex}.breadcrumbs ol{color:var(--gf-muted);flex-wrap:wrap;align-items:center;gap:2px 0;margin:0;padding:0;font-size:13.5px;line-height:20px;list-style:none;display:flex}.breadcrumbs li{align-items:center;min-width:0;display:inline-flex}.breadcrumbs li+li:before{content:"/";opacity:.7;margin:0 8px}.breadcrumbs a{color:inherit;text-decoration:none}.breadcrumbs a:hover{color:var(--gf-text);text-underline-offset:3px;text-decoration:underline}.breadcrumbs [aria-current]{color:var(--gf-text);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.faq{margin:0;padding:0;list-style:none;display:grid}.faq details{border-bottom:1px solid var(--gf-line)}.faq summary{min-height:52px;font-size:15.5px;font-weight:var(--gf-fw-strong);cursor:pointer;justify-content:space-between;align-items:baseline;gap:16px;padding:14px 0;line-height:1.4;list-style:none;display:flex}.faq summary::-webkit-details-marker{display:none}.faq summary:after{content:"+";color:var(--gf-muted);font-family:var(--gf-font-mono);flex:none;font-weight:400}.faq details[open] summary:after{content:"−"}.faq .answer{color:var(--gf-muted);margin:-4px 0 0;padding:0 0 16px;font-size:14.5px;line-height:1.6}.answer a{color:var(--gf-text);text-underline-offset:3px;text-decoration:underline}@media (width>=900px){.faq-cols{grid-template-columns:1fr 1fr;align-items:start;column-gap:32px}}.faq-plain{gap:24px;margin:0;padding:0;list-style:none;display:grid}.faq-plain .faq-q{font-size:15px;font-weight:var(--gf-fw-strong);margin:0 0 6px;line-height:1.35}.faq-plain .answer{color:var(--gf-muted);margin:0;font-size:14px;line-height:1.6}@media (width>=900px){.faq-plain{grid-template-columns:repeat(3,minmax(0,1fr))}}.pagination{flex-wrap:wrap;justify-content:center;align-items:center;gap:6px;margin:32px 0 0;padding:0;list-style:none;display:flex}.pagination :is(a,span){border:1px solid var(--gf-line);border-radius:var(--gf-r);min-width:44px;min-height:44px;color:var(--gf-text);font-family:var(--gf-font-mono);font-stretch:var(--gf-wd-mono);font-variant-numeric:tabular-nums;background:0 0;place-items:center;padding:0 14px;font-size:14px;text-decoration:none;display:inline-grid}.pagination :is(a):hover{background:var(--gf-surface-2)}.pagination [aria-current=page]{border-color:var(--gf-text);background:var(--gf-text);color:var(--gf-bg)}.pagination .gap{color:var(--gf-faint);background:0 0;border:0;min-width:20px;padding:0}.pagination .is-disabled{opacity:.4}.pagination .compact{color:var(--gf-muted);background:0 0;border:0}.page-head{grid-template-columns:minmax(0,1fr);gap:12px;padding:20px 0 24px;display:grid}.page-h1{font-family:var(--gf-font-display);font-size:32px;font-weight:var(--gf-fw-display);font-stretch:var(--gf-wd-display);letter-spacing:var(--gf-track-display);text-wrap:balance;overflow-wrap:anywhere;margin:0;line-height:1}.page-line{max-width:46em;color:var(--gf-muted);font-size:var(--gf-fs-lede);margin:0;line-height:1.5}@media (width>=768px){.page-head{padding:28px 0}.page-h1{font-size:40px}}@media (width>=1024px){.page-h1{font-size:48px}}.seg{border-radius:var(--gf-r);background:var(--gf-surface);flex:none;gap:2px;margin:0;padding:3px;list-style:none;display:inline-flex}html[data-theme=light] .seg{background:var(--gf-inset);box-shadow:inset 0 0 0 1px var(--gf-line)}.seg a,.seg span{border-radius:var(--gf-r-inner);min-width:52px;min-height:34px;color:var(--gf-muted);font-size:14px;font-weight:var(--gf-fw-strong);white-space:nowrap;place-items:center;padding:0 12px;line-height:1;text-decoration:none;display:inline-grid}.seg a:hover{color:var(--gf-text)}.seg [aria-current]{background:var(--gf-surface-3);color:var(--gf-text)}html[data-theme=light] .seg [aria-current]{background:var(--gf-surface);box-shadow:0 0 0 1px var(--gf-line-strong)}@media (pointer:coarse){.seg a{min-height:40px}}.seg-field{align-items:center;gap:10px;min-width:0;display:inline-flex}.seg-label{color:var(--gf-muted);white-space:nowrap;font-size:13.5px}.page-search{border:1px solid var(--gf-line-strong);border-radius:var(--gf-r);background:var(--gf-surface);width:min(100%,560px);min-height:52px;color:var(--gf-faint);align-items:center;gap:8px;padding:4px 4px 4px 14px;display:flex}.page-search:focus-within{outline:2px solid var(--gf-focus);outline-offset:2px}.page-search input{min-width:0;height:42px;color:var(--gf-text);background:0 0;border:0;outline:none;flex:1;font-size:16px}.page-search input::placeholder{color:var(--gf-faint)}.page-search input::-webkit-search-cancel-button{display:none}.text-links{flex-wrap:wrap;gap:4px 20px;margin:0;padding:0;list-style:none;display:flex}.text-links a{min-height:32px;color:var(--gf-text-2);text-decoration:underline;text-decoration-color:var(--gf-line-strong);text-underline-offset:4px;align-items:center;font-size:15px;text-decoration-thickness:1px;display:inline-flex}.text-links a:hover{color:var(--gf-text);text-decoration-color:currentColor}@media (pointer:coarse){.text-links a{min-height:44px}}.link-cols{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:0 24px;margin:0;padding:0;list-style:none;display:grid}.link-cols a{border-bottom:1px solid var(--gf-line);min-height:46px;color:var(--gf-text-2);justify-content:space-between;align-items:center;gap:12px;font-size:15px;text-decoration:none;display:flex}.link-cols a:hover{color:var(--gf-text)}.link-cols .n{color:var(--gf-faint);font-family:var(--gf-font-mono);font-stretch:var(--gf-wd-mono);font-variant-numeric:tabular-nums;font-size:12.5px}@media (width<=767px){.link-cols{grid-template-columns:1fr 1fr;gap:0 16px}}.essay{border-top:1px solid var(--gf-line);grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:24px 40px;margin-top:72px;padding:40px 0 16px;display:grid}.essay-h{font-size:22px;font-weight:var(--gf-fw-bold);font-stretch:var(--gf-wd-title);letter-spacing:-.01em;text-wrap:balance;margin:0;line-height:1.2}.essay-body{gap:32px;min-width:0;display:grid}.essay-body>.prose{max-width:72ch;color:var(--gf-muted);font-size:15px}.essay-body>.prose strong,.essay-body>.prose a{color:var(--gf-text)}.essay-lede.prose{color:var(--gf-text-2);font-size:16.5px}.essay-sub{font-size:16px;font-weight:var(--gf-fw-bold);font-stretch:var(--gf-wd-title);margin:0 0 6px}@media (width<=1023px){.essay{grid-template-columns:minmax(0,1fr);gap:16px;margin-top:48px;padding-top:32px}}.board-rows{margin:0;padding:0;list-style:none;display:grid}.board-rows>li,.board-row-me{border-bottom:1px solid var(--gf-line);grid-template-columns:44px minmax(0,1fr) auto 18px;align-items:center;gap:10px;min-height:48px;padding:6px 0;font-size:15px;display:grid}:is(.board-rows,.board-row-me) .rk{color:var(--gf-muted);font-family:var(--gf-font-mono);font-stretch:var(--gf-wd-mono);letter-spacing:var(--gf-track-mono);font-variant-numeric:tabular-nums;font-size:14px}:is(.board-rows,.board-row-me) .who{font-weight:var(--gf-fw-ui);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}:is(.board-rows,.board-row-me) .who small{color:var(--gf-faint);margin-left:8px;font-size:13px;font-weight:400}:is(.board-rows,.board-row-me) .sc{font-family:var(--gf-font-mono);font-stretch:var(--gf-wd-mono);letter-spacing:var(--gf-track-mono);font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap;font-size:15px}:is(.board-rows,.board-row-me) .ok{width:16px;height:16px;color:var(--gf-faint)}.board-rows>li.is-pending{color:var(--gf-muted)}.board-row-me{border-radius:var(--gf-r-inner);background:var(--gf-accent-tint);box-shadow:inset 2px 0 0 var(--gf-accent);border-bottom:0;padding:6px 12px 6px 10px}.board-row-me .rk,.board-row-me .sc{color:var(--gf-accent-ink)}.board-rows>li:is([data-rank="1"],[data-rank="2"],[data-rank="3"]):not(.is-pending) .rk{color:var(--gf-gold-ink)}@media (width<=479px){.board-rows>li,.board-row-me{grid-template-columns:36px minmax(0,1fr) auto 16px;gap:8px;font-size:14.5px}}.steps-list{counter-reset:s;margin:0;padding:0;list-style:none;display:grid}.steps-list>li{border-top:1px solid var(--gf-line);color:var(--gf-text-2);counter-increment:s;grid-template-columns:32px minmax(0,1fr);padding:10px 0;font-size:14.5px;line-height:1.5;display:grid}ol.steps-list>li:before{content:counter(s, decimal-leading-zero);color:var(--gf-accent-ink);font-family:var(--gf-font-mono);font-stretch:var(--gf-wd-mono);font-size:12px;line-height:1.95}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-property:border-color,background-color,color,opacity!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.gcard-link:hover .gcard-media,.gcard-link:active .gcard-art,.btn:active{transform:none!important}}
