/* Catalog composition. Shared record/forms styles are refined below. */
:root{--action-hover:#b8c4ff;--positive-bg:#1c342b;--code-text:var(--text)}:root[data-theme=light]{--action-hover:#354fae;--positive-bg:#e4f2ea}.page-heading{padding:20px 0 0;max-width:850px}.page-heading h1{font-size:34px;font-weight:720;line-height:1.2}.page-heading>p:not(.eyebrow){font-size:15px;line-height:1.85;color:var(--muted)}.page-heading .eyebrow{margin-bottom:12px}.prose h2,.prose h3{scroll-margin-top:94px}.entry-record .lua-keyword{color:#b8b4ff}.entry-record .lua-string{color:#a0daba}.entry-record .lua-number{color:#e8ca91}:root[data-theme=light] .entry-record .lua-keyword{color:#6344a8}:root[data-theme=light] .entry-record .lua-string{color:#27624c}:root[data-theme=light] .entry-record .lua-number{color:#87551f}
@media(max-width:760px){.discovery-search input,.archive-search-field input,.header-search input{font-size:16px}.icon-button,.mobile-menu summary{min-width:44px;width:44px;min-height:44px}.language-menu summary{min-height:44px}.feed-sort .icon-button{min-width:34px;width:34px}.page-heading h1{font-size:29px}.page-heading>p:not(.eyebrow){font-size:14px}}
.entry-primary .hero-copy{margin-left:0;border:1px solid transparent;background:var(--action);color:var(--action-text);border-radius:7px}.entry-primary .hero-copy:hover{background:var(--accent)}.entry-record .code-actions .copy-button{color:var(--text);border-color:var(--line);background:var(--surface-2)}.entry-record .code-actions .copy-button:hover{background:var(--surface-3)}
.entry-page{padding-bottom:25px}.entry-record{scroll-margin-top:95px}.entry-record+.entry-record{margin-top:50px;padding-top:35px;border-top:1px solid var(--line)}.entry-hero{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);align-items:center;gap:38px}.entry-preview{position:relative;aspect-ratio:16/9;display:grid;place-items:center;background:var(--code);border:1px solid var(--line);border-radius:12px;overflow:hidden}.entry-preview img{width:100%;height:100%;object-fit:cover}.entry-preview>.icon{width:60px;height:60px;color:var(--subtle)}.preview-format{position:absolute;left:14px;bottom:13px;padding:4px 7px;border:1px solid #ffffff25;border-radius:4px;background:#111725db;color:#e5eaff;font:10px/1.5 'IBM Plex Mono',monospace}.entry-game{display:inline-flex;gap:7px;align-items:center;min-height:30px;color:var(--muted);font-size:12px}.entry-game .icon{width:14px;height:14px}.entry-summary h1,.entry-summary h2{font-size:clamp(26px,2.8vw,38px);font-weight:740;line-height:1.2;letter-spacing:-.04em;margin:10px 0 17px;overflow-wrap:anywhere}.entry-flags{display:flex;gap:7px;flex-wrap:wrap}.entry-flags .icon{width:13px;height:13px}.entry-feature-line{margin:17px 0 0;color:var(--muted);font-size:13px;line-height:1.7}.entry-primary{display:flex;gap:10px;margin-top:24px;flex-wrap:wrap}.entry-primary .copy-button{min-width:180px;min-height:48px;font-size:13px}.entry-primary .button{min-height:48px;background:transparent}.entry-download{display:inline-flex;align-items:center;gap:8px;font-size:11px;color:var(--muted);min-height:40px;margin-top:6px}.entry-download .icon{width:14px;height:14px}.entry-download:hover{color:var(--text)}.entry-download .icon:last-child{width:12px;margin-left:7px}.entry-source-caption{display:flex;gap:6px;align-items:center;font-size:10px;color:var(--subtle);margin:8px 0 0}.entry-source-caption .icon{width:12px;height:12px}.entry-tabs{display:flex;gap:30px;margin-top:27px;margin-bottom:25px;border-bottom:1px solid var(--line)}.entry-tabs a{padding:16px 0;font-size:12px;font-weight:600;color:var(--muted);position:relative}.entry-tabs a:first-child{color:var(--text)}.entry-tabs a:first-child:after{content:'';height:2px;background:var(--accent);position:absolute;bottom:-1px;left:0;right:0}.entry-tabs a:hover{color:var(--text)}.entry-columns{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:24px;align-items:start}.entry-main,.entry-aside{min-width:0}.content-panel{border:1px solid var(--line);border-radius:9px;background:var(--surface);padding:23px}.content-panel h2{font-size:15px;font-weight:650;letter-spacing:-.02em;margin-bottom:14px}.entry-about>p{font-size:13px;line-height:1.85;color:var(--muted);margin-bottom:18px;max-width:86ch}.entry-features{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 20px;list-style:none;padding:18px 0 0;margin:0;border-top:1px solid var(--line);font-size:12px}.entry-features li{display:flex;align-items:start;gap:8px}.entry-features .icon{width:14px;height:14px;color:var(--positive);margin-top:3px}.source-disclosure{margin-top:20px;border-top:1px solid var(--line);padding-top:8px}.source-disclosure summary{display:flex;align-items:center;gap:7px;min-height:38px;font-size:11px;color:var(--muted);list-style:none}.source-disclosure summary::-webkit-details-marker{display:none}.source-disclosure summary>.icon{width:13px;height:13px}.source-disclosure summary>.icon:last-child{margin-left:auto;width:12px}.source-disclosure p{font-size:11px;color:var(--muted);margin:8px 0}.entry-code-section{margin-top:25px;scroll-margin-top:95px}.entry-about{scroll-margin-top:95px}.entry-code-heading{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:12px}.entry-code-heading h2{display:flex;gap:8px;align-items:center;font-size:15px;margin:0}.entry-code-heading h2>.icon{width:16px;height:16px;color:var(--muted)}.entry-code-heading>span{font:10px/1.5 'IBM Plex Mono',monospace;color:var(--subtle);text-align:right}.entry-record .code-block{min-width:0;border:1px solid var(--line);border-radius:9px;overflow:hidden;background:var(--code);margin:0}.entry-record .code-toolbar{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;padding:10px 12px;background:var(--surface);border-bottom:1px solid var(--line)}.entry-record .code-filename{font:10px/1.5 'IBM Plex Mono',monospace;color:var(--muted);overflow-wrap:anywhere;min-width:0}.entry-record .code-actions{display:flex;align-items:center;gap:7px;flex-shrink:0}.entry-record .code-actions button{min-height:36px;padding:8px 10px;font-size:10px;border-radius:5px}.entry-record .code-wrap{background:transparent;border:1px solid var(--line);color:var(--muted)}.entry-record .code-wrap[aria-pressed=true]{color:var(--accent);background:var(--surface-2)}.entry-record .code-block pre{margin:0;padding:22px;font:12px/1.9 'IBM Plex Mono',monospace;max-width:100%;max-height:440px;overflow:auto;tab-size:4;color:var(--text);background:var(--code)}.entry-record .code-block.is-wrapped pre{white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word}.entry-record .code-block pre code{font:inherit;background:none;padding:0}.lua-string{color:#9ed7b8}.lua-keyword{color:#b8acff}.lua-comment{color:var(--subtle)}.lua-number{color:#e8c890}.lua-function{color:#9ebfff}.is-copied{background:var(--positive)!important;color:var(--bg)!important}.entry-facts dl{margin:0}.entry-facts dl>div{display:flex;align-items:baseline;justify-content:space-between;gap:18px;padding:11px 0;border-bottom:1px solid var(--line);font-size:11px}.entry-facts dl>div:last-child{border:0;padding-bottom:0}.entry-facts dt{color:var(--muted)}.entry-facts dd{margin:0;text-align:right;font-weight:550}.entry-aside>.content-panel{margin-bottom:16px}.entry-executors>a{display:flex;align-items:center;gap:10px;padding-top:4px}.entry-executors>a img{width:35px;height:35px;border-radius:7px;object-fit:cover}.entry-executors>a span{min-width:0}.entry-executors strong{display:block;font-size:12px}.entry-executors small{display:block;font-size:9px;color:var(--muted)}.entry-executors>a>.icon:last-child{margin-left:auto;width:14px;color:var(--muted)}.entry-help{display:block}.entry-help>.icon{width:21px;height:21px;color:var(--accent);margin-bottom:10px}.entry-help strong{display:block;font-size:13px}.entry-help p{font-size:11px;line-height:1.7;color:var(--muted);margin:7px 0 15px}.entry-help>span{display:flex;align-items:center;gap:8px;font-size:11px;color:var(--accent)}.entry-help>span>.icon{margin-left:auto;width:15px}.entry-related .section-heading h2{font-size:21px}.entry-page .catalog-handbook{margin-top:30px}.record-page{padding-top:30px}.record-executor .record-heading h1{font-size:32px}.record-executor .record-intro{font-size:13px;line-height:1.85}.record-related .games-grid{grid-template-columns:repeat(4,minmax(0,1fr))}#community{scroll-margin-top:90px}.catalog-page .archive-context{display:none}.catalog-page>.editorial-wrap{margin-top:40px}.review-section,.reviews-section{margin-top:38px}
@media(max-width:1050px){.entry-hero{gap:26px;grid-template-columns:1.05fr 1fr}.entry-summary h1,.entry-summary h2{font-size:29px}.entry-columns{grid-template-columns:minmax(0,1fr) 250px;gap:20px}.entry-primary{gap:8px;margin-top:20px}.entry-primary .copy-button{min-width:150px}.entry-primary .button{padding-inline:12px}.content-panel{padding:20px}.record-related .games-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:760px){.entry-hero{grid-template-columns:1fr;gap:19px}.entry-preview{aspect-ratio:16/9;border-radius:9px}.entry-summary h1,.entry-summary h2{font-size:28px;margin-top:6px;margin-bottom:14px}.entry-primary{margin-top:19px}.entry-primary .copy-button{flex:1;min-height:48px}.entry-primary .button{flex:1;min-height:48px}.entry-source-caption{margin-top:3px}.entry-tabs{gap:26px;margin-top:20px;margin-bottom:20px}.entry-tabs a{font-size:11px;padding:14px 0}.entry-columns{grid-template-columns:1fr}.entry-aside{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.entry-aside>.content-panel{margin:0}.entry-help{grid-column:1/-1}.entry-code-section{margin-top:21px}.content-panel{padding:20px}.entry-about>p{font-size:12px}.entry-code-heading h2{font-size:14px}.entry-record .code-block pre{padding:17px;font-size:11px}.entry-record .code-filename{font-size:9px}.entry-record .code-toolbar{padding:9px;gap:8px}.entry-record .code-actions{gap:5px}.entry-record .code-actions button{padding-inline:8px;font-size:9px}.record-related .games-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:480px){.entry-features{grid-template-columns:1fr}.entry-summary h1,.entry-summary h2{font-size:27px}.entry-aside{grid-template-columns:1fr}.entry-primary .copy-button{min-width:0}.entry-primary .button{font-size:12px}.entry-code-heading{align-items:start}.entry-code-heading>span{font-size:9px;max-width:95px}.entry-code-heading h2{font-size:13px}.entry-record .code-toolbar{align-items:start}.entry-record .code-actions{margin-left:auto}.entry-record .code-filename{flex-basis:100%}.record-related .games-grid{grid-template-columns:1fr}.entry-preview{aspect-ratio:16/10}}
.discovery-band{border-bottom:1px solid var(--line);background:var(--bg)}.discovery-inner{padding-block:28px 19px}.discovery-search{width:min(760px,100%);margin:auto;position:relative;display:flex;align-items:center;gap:12px;padding:6px 7px 6px 20px;background:var(--surface);border:1px solid var(--line);border-radius:11px}.discovery-search>.icon{width:21px;height:21px;color:var(--muted)}.discovery-search input{flex:1;min-width:0;height:43px;background:transparent;border:0;padding:9px 0;font-size:15px;outline-offset:0}.discovery-search kbd{font:10px/1.5 var(--body);color:var(--subtle);border:1px solid var(--line);padding:3px 6px;border-radius:4px;white-space:nowrap}.discovery-search .button{min-height:43px;min-width:88px}.collection-meta{display:flex;gap:20px;align-items:center;justify-content:center;margin-top:15px;font-size:11px;color:var(--muted)}.collection-meta span{display:flex;align-items:center;gap:6px}.collection-meta .icon{width:14px;height:14px}.collection-meta strong{color:var(--text);font-weight:650}.collection-meta i{height:11px;width:1px;background:var(--line)}.feed-page{padding-top:27px}.strip-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.strip-heading h2{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:650;letter-spacing:0;margin:0}.strip-heading h2 .icon{width:16px;height:16px;color:var(--accent)}.strip-heading>a{display:flex;gap:8px;align-items:center;color:var(--muted);font-size:11px;min-height:32px}.strip-heading>a .icon{width:14px;height:14px}.game-rail{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:9px}.game-chip{min-width:0;display:flex;align-items:center;gap:9px;padding:9px;background:var(--surface);border:1px solid var(--line);border-radius:8px;transition:background .15s,border-color .15s}.game-chip:hover{background:var(--surface-2);border-color:var(--subtle)}.game-chip img{width:38px;height:38px;object-fit:cover;border-radius:6px;flex-shrink:0}.game-chip>span{min-width:0}.game-chip strong{display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-size:11px;font-weight:650}.game-chip small{display:block;font-size:10px;color:var(--muted);margin-top:2px}.feed-section{margin-top:34px}.feed-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:21px}.feed-heading h1{display:flex;align-items:center;gap:12px;font-size:27px;font-weight:740;letter-spacing:-.035em;margin-bottom:7px}.feed-heading h1>span{font-size:11px;font-weight:600;letter-spacing:0;color:var(--muted);background:var(--surface-2);border:1px solid var(--line);border-radius:5px;padding:3px 7px}.feed-heading p{font-size:12px;color:var(--muted);margin:0}.guide-link{font-size:11px;color:var(--muted)}.guide-link .icon{width:16px}.feed-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:22px;padding-bottom:16px;border-bottom:1px solid var(--line)}.feed-tabs{display:flex;align-items:center;gap:8px}.feed-tabs a{display:inline-flex;gap:7px;align-items:center;min-height:40px;padding:9px 14px;border-radius:7px;font-size:12px;font-weight:600;color:var(--muted);border:1px solid var(--line)}.feed-tabs a:hover{color:var(--text);background:var(--surface)}.feed-tabs a[aria-current]{color:var(--text);background:var(--surface-2);border-color:var(--surface-3)}.feed-tabs .icon{width:14px;height:14px}.feed-sort{display:flex;gap:5px}.feed-sort select{font-size:11px;min-height:40px;height:40px;background:var(--bg);border:0;color:var(--muted)}.feed-sort .icon-button{height:40px;width:34px;min-width:34px;border-color:transparent;background:transparent}.feed-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:28px 20px}.feed-card{min-width:0;position:relative}.feed-cover{position:relative;display:block;aspect-ratio:16/9;overflow:hidden;border:1px solid var(--line);border-radius:9px;background:var(--surface)}.feed-cover img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .22s}.feed-card:hover .feed-cover img{transform:scale(1.035)}.feed-card:hover h2 a{color:var(--accent)}.cover-label{position:absolute;left:8px;bottom:8px;display:flex;align-items:center;gap:3px;font-size:9px;font-weight:650;line-height:1.5;padding:3px 6px;color:#d9f8e6;background:#152b22ed;border:1px solid #89c8a442;border-radius:4px;backdrop-filter:blur(6px)}.cover-label .icon{width:11px;height:11px}.cover-format{position:absolute;right:8px;bottom:8px;font:550 9px/1.5 'IBM Plex Mono',monospace;padding:3px 5px;border:1px solid #ffffff21;background:#121824db;color:#e5eafa;border-radius:4px}.feed-card-body{padding:12px 2px 0}.feed-card h2{font-size:14px;font-weight:670;line-height:1.45;letter-spacing:-.015em;margin:0 0 7px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.feed-game{display:inline-flex;align-items:center;gap:5px;min-height:24px;font-size:11px;color:var(--muted);max-width:100%}.feed-game:hover{color:var(--accent)}.feed-game .icon{width:12px;height:12px}.feed-features{font-size:10px;line-height:1.6;color:var(--subtle);margin:4px 0 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.feed-cover.no-cover{display:grid;place-items:center}.feed-cover.no-cover>.icon{width:45px;height:45px;color:var(--subtle)}.search-summary{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:20px;color:var(--muted);font-size:12px}.search-summary>a{color:var(--accent);text-decoration:underline}.guide-banner{display:flex;align-items:center;gap:14px;padding:18px 22px;margin-top:36px;border:1px solid var(--line);border-radius:9px;background:var(--surface)}.guide-symbol{display:grid;place-items:center;width:38px;height:38px;background:var(--surface-2);color:var(--accent);border-radius:8px}.guide-banner strong{display:block;font-size:13px}.guide-banner small{display:block;font-size:11px;color:var(--muted);margin-top:2px}.guide-banner>.icon{margin-left:auto;color:var(--muted)}.guide-banner:hover{border-color:var(--subtle)}
@media(max-width:1100px){.game-rail{display:flex;overflow:auto;padding-bottom:5px;scrollbar-width:thin}.game-chip{flex:0 0 150px}.feed-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:26px 18px}}
@media(max-width:760px){.feed-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 15px}.discovery-inner{padding-block:21px 15px}.discovery-search{padding-left:13px;gap:9px}.discovery-search input{font-size:13px}.discovery-search kbd{display:none}.discovery-search .button{min-width:70px;padding-inline:13px}.collection-meta{margin-top:12px}.feed-page{padding-top:19px}.feed-section{margin-top:25px}.feed-heading{margin-bottom:16px}.feed-heading h1{font-size:24px}.feed-heading p{max-width:400px;font-size:11px}.guide-link{display:none}.feed-toolbar{gap:9px;margin-bottom:18px;padding-bottom:13px}.feed-sort select{max-width:150px;padding-right:22px;padding-left:3px}.feed-tabs{gap:5px}.feed-tabs a{padding-inline:10px;font-size:11px;min-height:42px}.feed-sort .icon-button{min-width:25px;width:25px}.feed-card h2{font-size:13px}.guide-banner{padding:16px;gap:12px}.guide-banner small{font-size:10px}.cover-label{font-size:8px;left:6px;bottom:6px}.cover-format{font-size:8px;right:6px;bottom:6px}}
@media(max-width:480px){.feed-grid{grid-template-columns:1fr;gap:25px}.feed-cover{aspect-ratio:16/8.7}.feed-card-body{padding-top:11px}.feed-card h2{font-size:15px}.feed-game{font-size:12px}.feed-features{font-size:11px}.feed-toolbar{flex-wrap:wrap}.feed-sort{margin-left:auto}.cover-label{font-size:10px;left:9px;bottom:9px}.cover-format{font-size:10px;right:9px;bottom:9px}}

@media(max-width:760px){.discovery-search input,.archive-search-field input{font-size:16px}.header-tools>.icon-button,.mobile-menu summary{min-width:44px;width:44px;min-height:44px;height:44px}}

.discovery-search .button>.icon{display:none}@media(max-width:760px){.discovery-search .button{min-width:44px;min-height:44px;width:44px;padding:10px}.discovery-search .button>span{display:none}.discovery-search .button>.icon{display:block}.feed-sort select{max-width:100px;width:100px;font-size:10px}.feed-sort .icon-button{min-width:28px;width:28px}.feed-tabs a{padding-inline:9px}.feed-toolbar{gap:7px}}

.js .feed-sort .icon-button{display:none}.not-found{padding-block:60px;text-align:center;max-width:800px}.not-found .error-code{display:block;font-size:100px;line-height:1;color:var(--accent);font-weight:750;letter-spacing:-.08em;margin-bottom:28px}.not-found .error-code>span{display:none}.not-found p:not(.eyebrow){color:var(--muted)}.record-executor>.breadcrumbs{margin-top:0}.record-executor .record-profile{grid-template-columns:minmax(0,1fr) 300px;gap:24px}.record-executor .record-facts,.record-executor .record-source-description{padding:24px;background:var(--surface);border:1px solid var(--line);border-radius:9px}.record-executor .record-facts h2,.record-executor .record-source-description h2{font-size:16px}.record-executor .record-source-description p{font-size:13px;line-height:1.85}.record-executor .record-facts{padding-top:24px}@media(max-width:760px){.feed-sort select{width:120px;max-width:120px;font-size:11px}.feed-sort .icon-button{min-width:28px}.js .feed-toolbar{flex-wrap:nowrap}.record-executor .record-profile{grid-template-columns:1fr}.not-found .error-code{font-size:80px}}

.executors-grid:has(>.executor-card:only-child){grid-template-columns:minmax(0,1fr)}.executor-card:only-child{display:grid;grid-template-columns:300px minmax(0,1fr);gap:16px 36px;padding:26px}.executor-card:only-child .executor-top{grid-column:1;margin:0;align-items:start;flex-wrap:wrap}.executor-card:only-child .executor-top>.pill{margin-left:66px;margin-top:-7px}.executor-card:only-child>p:not(.card-rating){grid-column:2;grid-row:1;max-width:650px;margin:0;line-height:1.9}.executor-card:only-child .card-rating{grid-column:1;font-size:11px;margin:0}.executor-card:only-child .card-bottom{grid-column:2;grid-row:2;border:0;padding:0}.executor-card:only-child .card-bottom>a{display:flex;align-items:center;gap:10px;color:var(--accent);min-height:40px;font-size:12px}@media(max-width:760px){.executor-card:only-child{display:block;padding:22px}.executor-card:only-child .executor-top{margin-bottom:18px}.executor-card:only-child .executor-top>.pill{margin-left:0;margin-top:0}.executor-card:only-child .card-rating{margin-top:16px}.executor-card:only-child .card-bottom{margin-top:16px;padding-top:12px;border-top:1px solid var(--line)}}

.record-executor .record-facts dl>div{display:flex;justify-content:space-between;align-items:baseline;gap:20px;padding:11px 0}.record-executor .record-facts dt{font-size:11px}.record-executor .record-facts dd{margin:0;text-align:right;font-size:11px}.record-executor .record-facts h2{margin-bottom:12px}.record-executor .record-facts dl{margin:0}.record-executor .record-facts dl>div:last-child{padding-bottom:0}
