@layer reset{*{box-sizing:border-box;margin:0;padding:0}}@layer base{html{scroll-behavior:smooth;font-size:16px}body{font-family:var(--font-body);color:var(--color-text-primary);background-color:var(--color-bg-primary);z-index:0;min-height:100vh;font-size:1rem;line-height:1.6;position:relative;overflow-x:hidden}body:before{content:"";background-image:radial-gradient(2px 2px at 20px 30px, var(--color-star-white), transparent), radial-gradient(2px 2px at 40px 70px, var(--color-star-white), transparent), radial-gradient(1px 1px at 90px 40px, var(--color-star-white), transparent), radial-gradient(1px 1px at 130px 80px, var(--color-star-white), transparent), radial-gradient(2px 2px at 160px 30px, var(--color-star-white), transparent), radial-gradient(1px 1px at 200px 60px, var(--color-star-white), transparent), radial-gradient(2px 2px at 250px 20px, var(--color-star-white), transparent), radial-gradient(1px 1px at 300px 90px, var(--color-star-white), transparent);opacity:.15;pointer-events:none;z-index:-1;background-repeat:repeat;background-size:350px 150px;width:100%;height:100%;animation:60s linear infinite starfield;position:fixed;top:0;left:0}@keyframes starfield{0%{transform:translateY(0)}to{transform:translateY(-150px)}}body:after{content:"";pointer-events:none;z-index:10;opacity:.3;background:repeating-linear-gradient(0deg,#0000,#0000 2px,#00000014 2px 4px);width:100%;height:100%;position:fixed;top:0;left:0}#root{z-index:1;flex-direction:column;min-height:100vh;display:flex;position:relative}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);color:var(--color-text-primary);font-weight:400;line-height:1.3}h1{font-size:clamp(1.5rem,5vw,3rem)}h2{font-size:clamp(1.2rem,4vw,2rem)}h3{font-size:clamp(1rem,3vw,1.5rem)}p{font-family:var(--font-body);color:var(--color-text-secondary);font-size:1.1rem;line-height:1.7}a{color:var(--color-orange-text);transition:color var(--transition-fast);text-decoration:none}a:hover{color:var(--color-orange-light)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--color-bg-primary)}::-webkit-scrollbar-thumb{background:var(--color-gray-medium);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--color-gray-light)}::selection{background:var(--color-orange);color:var(--color-on-accent)}:focus-visible{outline:2px solid var(--color-orange);outline-offset:2px}.container{width:100%;max-width:1200px;padding:0 var(--spacing-lg);margin:0 auto}}@layer components{.theme-toggle{top:var(--spacing-lg);right:var(--spacing-lg);z-index:3;width:44px;height:44px;color:var(--color-text-primary);background:var(--color-bg-card);border:2px solid var(--color-gray-border);border-radius:var(--radius-md);cursor:pointer;transition:border-color var(--transition-fast), transform var(--transition-fast), background var(--transition-fast);justify-content:center;align-items:center;padding:0;display:inline-flex;position:absolute}.theme-toggle:hover{border-color:var(--color-orange);transform:translateY(-2px)}.theme-toggle:active{transform:translateY(0)}.theme-toggle-icon{width:22px;height:22px;display:inline-flex}.theme-toggle-icon svg{width:100%;height:100%}@media (width<=768px){.theme-toggle{top:var(--spacing-md);right:var(--spacing-md);width:40px;height:40px}}.hero{min-height:100vh;padding:var(--spacing-xxl) 0;flex-direction:column;justify-content:center;display:flex;position:relative;overflow:hidden}.hero-bg{z-index:-1;position:absolute;inset:0}.hero-stars{position:absolute;inset:0}.hero-stars:before{content:"";background-image:radial-gradient(2px 2px at 20px 30px, var(--color-star-white), transparent), radial-gradient(2px 2px at 40px 70px, var(--color-star-white), transparent), radial-gradient(1px 1px at 90px 40px, var(--color-star-white), transparent), radial-gradient(1px 1px at 130px 80px, var(--color-star-white), transparent), radial-gradient(2px 2px at 160px 30px, var(--color-star-white), transparent), radial-gradient(1px 1px at 200px 60px, var(--color-star-white), transparent), radial-gradient(2px 2px at 250px 20px, var(--color-star-white), transparent), radial-gradient(1px 1px at 300px 90px, var(--color-star-white), transparent);opacity:.15;pointer-events:none;background-repeat:repeat;background-size:350px 150px;animation:60s linear infinite starfield;position:absolute;inset:0}@keyframes starfield{0%{transform:translateY(0)}to{transform:translateY(-150px)}}.hero-gradient{background:radial-gradient(ellipse 80% 50% at 50% 0%, var(--color-tint-orange) 0%, transparent 70%), radial-gradient(ellipse 60% 40% at 50% 100%, var(--color-tint-green-soft) 0%, transparent 60%);position:absolute;inset:0}.hero-content{gap:var(--spacing-xxl);grid-template-columns:1fr 1fr;align-items:center;max-width:1400px;display:grid}.hero-logo{justify-content:center;animation:6s ease-in-out infinite float;display:flex}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-15px)}}.hero-logo-img{width:clamp(200px,40vw,350px);height:auto;filter:drop-shadow(0 20px 40px var(--color-glow-orange));transition:transform var(--transition-slow)}.hero-logo-img:hover{transform:scale(1.02)rotate(1deg)}.hero-text{gap:var(--spacing-lg);flex-direction:column;display:flex}.hero-title{color:var(--color-text-primary);text-shadow:0 0 30px var(--color-glow-orange);font-size:clamp(1.5rem,4vw,2.5rem);line-height:1.2}.hero-title:first-line{color:var(--color-orange-text)}.hero-subtitle{color:var(--color-text-secondary);max-width:500px;font-size:clamp(1rem,2.5vw,1.25rem);line-height:1.8}.hero-stats{gap:var(--spacing-xl);margin-top:var(--spacing-md);flex-wrap:wrap;display:flex}.hero-stat{gap:var(--spacing-xs);flex-direction:column;display:flex}.hero-stat-value{font-family:var(--font-heading);color:var(--color-orange-text);text-shadow:0 0 20px #f0842380;font-size:clamp(1.5rem,4vw,2.5rem);line-height:1}.hero-stat-label{font-family:var(--font-ui);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.1em;font-size:.7rem}.hero-actions{gap:var(--spacing-md);margin-top:var(--spacing-md);flex-wrap:wrap;display:flex}.hero-scroll{bottom:var(--spacing-xl);align-items:center;gap:var(--spacing-xs);color:var(--color-text-muted);flex-direction:column;animation:2s ease-in-out infinite scrollBounce;display:flex;position:absolute;left:50%;transform:translate(-50%)}@keyframes scrollBounce{0%,to{transform:translate(-50%)translateY(0)}50%{transform:translate(-50%)translateY(10px)}}.hero-scroll-arrow{width:24px;height:24px;color:var(--color-orange-text)}@media (prefers-reduced-motion:reduce){.hero-stars:before,.hero-logo,.hero-scroll{animation:none}}@media (width<=1024px){.hero-content{text-align:center;grid-template-columns:1fr}.hero-logo{order:-1}.hero-subtitle{margin-left:auto;margin-right:auto}.hero-stats,.hero-actions{justify-content:center}.hero{padding-bottom:calc(var(--spacing-xxl) + 48px)}}@media (width<=768px){.hero{min-height:auto;padding:var(--spacing-xl) 0 var(--spacing-xxl)}.hero-scroll{display:none}.hero-stats{gap:var(--spacing-md)}}.project-badges{align-items:center;gap:var(--spacing-xs);flex-wrap:wrap;display:inline-flex}.project-badge{padding:2px var(--spacing-sm);font-family:var(--font-ui);text-transform:uppercase;letter-spacing:.03em;white-space:nowrap;border-radius:var(--radius-sm);border:1px solid;font-size:.65rem;font-weight:700;line-height:1.5;display:inline-block}.project-badge.free{color:var(--color-badge-free-text);background:var(--color-tint-green);border-color:var(--color-edge-green)}.project-badge.paid{color:var(--color-badge-paid-text);background:var(--color-tint-orange);border-color:var(--color-edge-orange)}.project-badge.demo{color:var(--color-badge-demo-text);background:var(--color-tint-blue);border-color:var(--color-edge-blue)}.project-badge.patch{color:var(--color-badge-patch-text);background:var(--color-tint-pink);border-color:var(--color-edge-pink);cursor:help}.console-badges{align-items:center;gap:var(--spacing-xs);flex-wrap:wrap;display:inline-flex}.console-badge{padding:2px var(--spacing-sm);font-family:var(--font-ui);letter-spacing:.03em;white-space:nowrap;border-radius:var(--radius-sm);font-size:.65rem;font-weight:700;line-height:1.5;display:inline-block;box-shadow:0 1px 3px #00000073}.console-badge abbr{cursor:help;text-decoration:none}.project-card-cell{height:100%;container-type:inline-size}.project-card{background:var(--color-bg-card);border:1px solid var(--color-gray-border);border-radius:var(--radius-lg);transition:all var(--transition-normal);cursor:pointer;content-visibility:auto;contain-intrinsic-size:auto 460px;flex-direction:column;height:100%;display:flex;position:relative;overflow:hidden}.project-card:hover{border-color:var(--color-orange);box-shadow:var(--shadow-lg), var(--shadow-glow);transform:translateY(-6px)}.project-card-image{aspect-ratio:16/9;background:linear-gradient(135deg, var(--color-gray-medium) 0%, var(--color-gray-dark) 100%);max-height:200px;position:relative;overflow:hidden}.project-card-image-img{object-fit:cover;opacity:.85;width:100%;height:100%;transition:transform var(--transition-slow), opacity var(--transition-slow), filter var(--transition-slow);filter:grayscale(.2)contrast(1.05)brightness(.9);position:absolute;inset:0}.project-card:hover .project-card-image-img{opacity:1;filter:grayscale(0)contrast(1.1)brightness();transform:scale(1.04)}.project-card-featured-badge{top:var(--spacing-md);left:var(--spacing-md);align-items:center;gap:var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-sm);background:var(--color-orange);color:var(--color-on-accent);font-family:var(--font-ui);text-transform:uppercase;letter-spacing:.05em;border-radius:var(--radius-sm);box-shadow:var(--shadow-sm), 0 0 12px #f0842366;z-index:2;font-size:.6rem;font-weight:700;animation:3s ease-in-out infinite featuredPulse;display:inline-flex;position:absolute}.featured-heart{font-size:.75rem;line-height:1}.project-card-category{bottom:var(--spacing-md);left:var(--spacing-md);padding:var(--spacing-xs) var(--spacing-sm);font-family:var(--font-ui);color:var(--color-on-accent);border-radius:var(--radius-sm);text-transform:uppercase;letter-spacing:.05em;box-shadow:var(--shadow-sm);font-size:.65rem;font-weight:700;position:absolute}.project-card-languages{top:var(--spacing-md);right:var(--spacing-md);align-items:flex-end;gap:var(--spacing-xs);z-index:2;pointer-events:none;flex-direction:column;display:flex;position:absolute}.project-card-content{padding:var(--spacing-lg);flex-direction:column;flex:1;display:flex}.project-card-title{font-family:var(--font-heading);color:var(--color-text-primary);margin-bottom:var(--spacing-sm);transition:color var(--transition-fast);font-size:1.1rem;line-height:1.3}.project-card:hover .project-card-title{color:var(--color-orange-text)}.project-card-description{color:var(--color-text-secondary);margin-bottom:var(--spacing-md);-webkit-line-clamp:3;-webkit-box-orient:vertical;flex:1;font-size:.95rem;line-height:1.6;display:-webkit-box;overflow:hidden}.project-card-tags{gap:var(--spacing-xs);margin-bottom:var(--spacing-md);flex-wrap:wrap;display:flex}.project-card-tag{padding:var(--spacing-xs) var(--spacing-sm);font-family:var(--font-ui);background:var(--color-gray-medium);border:1px solid var(--color-gray-border);border-radius:var(--radius-sm);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.02em;transition:all var(--transition-fast);font-size:.65rem}.project-card:hover .project-card-tag{border-color:var(--color-gray-light);color:var(--color-text-primary)}.project-card-tag-more{background:var(--color-orange)!important;border-color:var(--color-orange)!important;color:var(--color-on-accent)!important}.project-card-meta{gap:var(--spacing-md);padding-top:var(--spacing-md);border-top:1px solid var(--color-gray-border);font-family:var(--font-ui);color:var(--color-text-muted);flex-wrap:wrap;align-items:center;font-size:.7rem;display:flex}.project-card-author,.project-card-version{align-items:center;gap:var(--spacing-xs);display:flex}.project-card-author svg,.project-card-version svg{flex-shrink:0;width:14px;height:14px}.project-card-footer{padding:var(--spacing-md) var(--spacing-lg);border-top:1px solid var(--color-gray-border);background:var(--color-gray-dark)}.project-card-cta{align-items:center;gap:var(--spacing-xs);font-family:var(--font-ui);color:var(--color-orange-on-dark);text-transform:uppercase;letter-spacing:.05em;transition:gap var(--transition-fast);font-size:.75rem;font-weight:700;display:inline-flex}.project-card-cta svg{width:16px;height:16px;transition:transform var(--transition-fast);flex-shrink:0}.project-card:hover .project-card-cta{gap:var(--spacing-sm)}.project-card:hover .project-card-cta svg{transform:translate(2px)}@media (width<=768px){.project-card-content{padding:var(--spacing-md)}.project-card-title{font-size:1rem}.project-card-description{-webkit-line-clamp:2;font-size:.9rem}.project-card-featured-badge{padding:2px 8px;font-size:.55rem}.project-card-languages{top:var(--spacing-sm);right:var(--spacing-sm)}}.project-card-tag.active{background:var(--color-orange)!important;border-color:var(--color-orange)!important;color:var(--color-on-accent)!important}.project-card-tag:not(.project-card-tag-more){cursor:pointer;z-index:1;margin:0;line-height:normal;position:relative}.project-card-open{font:inherit;color:inherit;text-align:inherit;text-transform:inherit;letter-spacing:inherit;cursor:pointer;background:0 0;border:0;margin:0;padding:0}.project-card-open:after{content:"";border-radius:var(--radius-lg);position:absolute;inset:0}.project-card-open:focus-visible{outline:none}.project-card-open:focus-visible:after,.project-card-tag:not(.project-card-tag-more):focus-visible{outline:2px solid var(--color-orange);outline-offset:2px}@container (width>=520px){.project-card{grid-template-columns:minmax(var(--card-media-min-width), var(--card-media-width)) minmax(0, 1fr);grid-template-rows:1fr auto;display:grid}.project-card-image{aspect-ratio:auto;max-height:none;min-height:var(--card-media-min-height);grid-row:1/3}.project-card-content,.project-card-footer{grid-column:2}.project-card-description{-webkit-line-clamp:4}}.category-filter{padding:var(--spacing-md) 0;min-width:0;max-width:100%}.category-filter-scroll{justify-content:center;gap:var(--spacing-sm);padding:var(--spacing-xs);flex-wrap:wrap;display:flex}.category-btn{align-items:center;gap:var(--spacing-xs);padding:var(--spacing-sm) var(--spacing-md);font-family:var(--font-ui);color:var(--color-text-secondary);background:var(--color-bg-card);border:2px solid var(--color-gray-border);border-radius:var(--radius-xl);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;text-transform:uppercase;letter-spacing:.02em;font-size:.8rem;font-weight:700;display:inline-flex}.category-btn:hover{color:var(--color-text-primary);border-color:var(--color-gray-light);background:var(--color-bg-card-hover)}.category-btn:focus-visible{outline:2px solid var(--color-orange);outline-offset:2px}.category-btn.active{color:var(--color-text-primary);background:color-mix(in srgb, var(--category-color,var(--color-orange)) 14%, transparent);border-color:var(--category-color,var(--color-orange));box-shadow:var(--shadow-glow)}.category-btn.active:hover{color:var(--color-text-primary);background:color-mix(in srgb, var(--category-color,var(--color-orange)) 26%, transparent)}.category-btn-icon{font-size:1rem;line-height:1}.category-btn-label{font-size:.75rem}@media (width<=768px){.category-filter-scroll{gap:var(--spacing-xs)}.category-btn{padding:var(--spacing-xs) var(--spacing-sm);font-size:.7rem}.category-btn-label{font-size:.65rem}}.carousel{--carousel-width:68%;--carousel-arrow-size:36px;--carousel-gutter:56px;background:linear-gradient(135deg, var(--color-gray-medium) 0%, var(--color-gray-dark) 100%);flex-shrink:0;position:relative}.carousel-stage{isolation:isolate;aspect-ratio:21/8;touch-action:pan-y;-webkit-user-select:none;user-select:none;width:100%;max-height:min(28vh,300px);position:relative}.carousel-track{justify-items:center;width:100%;display:grid;overflow:clip}.carousel--cartes .carousel-track{overflow:clip visible}.carousel:not(.carousel--cartes) .carousel-track{position:absolute;inset:0}.carousel-slide{width:var(--carousel-width);max-height:100%;transform:translateX(calc(var(--d) * 62%)) scale(calc(1 - var(--abs) * .18));opacity:calc(1 - var(--abs) * .45);z-index:calc(10 - var(--abs));grid-area:1/1;transition:transform .4s,opacity .4s,visibility;position:relative}.carousel--cartes{background:0 0}.carousel--cartes .carousel-stage{aspect-ratio:auto;max-height:none}.carousel--cartes .carousel-slide:not(.is-active):not(.is-hidden){opacity:1}.carousel--cartes .carousel-slide:not(.is-active):not(.is-hidden) .project-card{background:var(--color-bg-card-recessed)}.carousel--cartes .carousel-slide:not(.is-active):not(.is-hidden) .project-card-image-img{opacity:.5;filter:grayscale(.35)brightness(.8)}.carousel--cartes .carousel-slide:not(.is-active):not(.is-hidden):hover{transform:translateX(calc(var(--d) * 62%)) scale(calc(1 - var(--abs) * .06))}.carousel--cartes .carousel-slide:not(.is-active):not(.is-hidden):hover .project-card{background:var(--color-bg-card);border-color:var(--color-orange);box-shadow:var(--shadow-lg), var(--shadow-glow);transform:translateY(-6px)}.carousel--cartes .carousel-slide:not(.is-active):not(.is-hidden):hover .project-card-image-img{opacity:1;filter:grayscale(0)contrast(1.1)brightness()}.carousel--cartes .carousel-slide:not(.is-active):not(.is-hidden):hover .project-card-title{color:var(--color-orange-text)}.carousel--cartes .carousel-slide:not(.is-active):not(.is-hidden):hover .project-card-tag{border-color:var(--color-gray-light);color:var(--color-text-primary)}.carousel--cartes .carousel-slide:not(.is-active):not(.is-hidden):hover .project-card-cta{gap:var(--spacing-sm)}.carousel--cartes .carousel-slide:not(.is-active):not(.is-hidden):hover .project-card-cta svg{transform:translate(2px)}.carousel--cartes[data-count="1"]{--carousel-width:100%}.carousel--cartes[data-count="2"]{--carousel-width:68%}.carousel--cartes[data-count="3"]{--carousel-width:52%}.carousel--cartes[data-count="4"],.carousel--cartes[data-count="5"]{--carousel-width:44%}@media (width<=768px){.carousel--cartes[data-count]{--carousel-width:100%}}@media (width>=900px){.carousel--cartes .carousel-stage{padding-inline:var(--carousel-gutter)}.carousel--cartes .carousel-arrow-prev{left:calc((var(--carousel-gutter) - var(--carousel-arrow-size)) / 2)}.carousel--cartes .carousel-arrow-next{right:calc((var(--carousel-gutter) - var(--carousel-arrow-size)) / 2)}}.carousel-slide:not(.is-active) .carousel-img{filter:brightness(.6)}.carousel-slide.is-hidden{opacity:0;visibility:hidden;pointer-events:none;transition:transform .4s,opacity .4s,visibility 0s .4s}.carousel-img{object-fit:contain;pointer-events:none;width:100%;height:100%;display:block;position:absolute;inset:0}.carousel-slide-hit{cursor:pointer;background:0 0;border:0;padding:0;position:absolute;inset:0}.carousel-arrow{z-index:20;width:var(--carousel-arrow-size);height:var(--carousel-arrow-size);color:#fff;cursor:pointer;transition:background var(--transition-fast), border-color var(--transition-fast);background:#0000008c;border:1px solid #fff3;border-radius:50%;justify-content:center;align-items:center;padding:0;display:flex;position:absolute;top:50%;transform:translateY(-50%)}.carousel-arrow svg{width:20px;height:20px}.carousel-arrow:hover{border-color:var(--color-orange);background:#000c}.carousel-arrow:focus-visible,.carousel-dot:focus-visible,.carousel-pause:focus-visible{outline:2px solid var(--color-orange);outline-offset:2px}.carousel-arrow-prev{left:var(--spacing-sm)}.carousel-arrow-next{right:var(--spacing-sm)}.carousel-dots{padding:var(--spacing-sm) 0 var(--spacing-md);grid-template-columns:1fr auto 1fr;align-items:center;display:grid}.carousel-dots-group{gap:var(--spacing-xs);grid-column:2;display:flex}.carousel-dot{cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;width:24px;height:24px;padding:0;display:inline-flex;position:relative}.carousel-dot:before{content:"";background:var(--color-dot-idle);width:8px;height:8px;transition:background var(--transition-fast), transform var(--transition-fast);border-radius:50%}.carousel-dot:hover:before{background:var(--color-dot-hover)}.carousel-dot.active:before{background:var(--color-orange);transform:scale(1.25)}.carousel-pause{width:28px;height:28px;color:var(--color-text-muted);cursor:pointer;transition:color var(--transition-fast);background:0 0;border:0;border-radius:50%;grid-column:3;justify-content:center;justify-self:start;align-items:center;padding:0;display:inline-flex}.carousel-pause:hover{color:var(--color-orange-text)}.carousel-pause svg{width:14px;height:14px}.carousel-status{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (width<=600px){.carousel-stage{aspect-ratio:2.1}.carousel:not(.carousel--cartes){--carousel-width:84%}.carousel-arrow{width:30px;height:30px}}@media (prefers-reduced-motion:reduce){.carousel-slide,.carousel-slide.is-hidden{transition:none}}.share-link-btn{align-items:center;gap:var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-md);font-family:var(--font-ui);color:var(--color-text-secondary);border:1px solid var(--color-gray-border);border-radius:var(--radius-md);cursor:pointer;transition:color var(--transition-fast), border-color var(--transition-fast);background:0 0;font-size:.75rem;font-weight:700;display:inline-flex}.share-link-btn:hover,.share-link-btn:focus-visible{color:var(--color-orange-text);border-color:var(--color-orange)}.share-link-btn.copied{color:var(--color-green-pale);border-color:var(--color-green-pale)}.patcher-panel{margin-bottom:var(--spacing-lg);padding:var(--spacing-lg);background:var(--color-tint-pink-soft);border:1px solid var(--color-edge-pink-soft);border-radius:var(--radius-md)}.patcher-panel-title{margin:0 0 var(--spacing-sm);font-family:var(--font-ui);color:var(--color-text-primary);font-size:1rem}.patcher-panel-text,.patcher-panel-status,.patcher-panel-format{margin:0 0 var(--spacing-md);font-family:var(--font-ui);color:var(--color-text-secondary);font-size:.85rem;line-height:1.6}.patcher-panel-text strong{color:var(--color-text-primary)}.patcher-panel-format code,.patcher-rom-meta code,.patcher-result-text code{font-family:var(--font-ui);color:var(--color-text-primary);overflow-wrap:anywhere}.patcher-panel-open{align-items:center;gap:var(--spacing-xs);padding:var(--spacing-sm) var(--spacing-lg);font-family:var(--font-ui);color:#fff;background:var(--color-pink);border:1px solid var(--color-pink-border);border-radius:var(--radius-md);cursor:pointer;transition:background var(--transition-fast);font-size:.85rem;font-weight:700;display:inline-flex}.patcher-panel-open:hover,.patcher-panel-open:focus-visible{background:var(--color-pink-hover)}.patcher-panel-body{gap:var(--spacing-md);flex-direction:column;align-items:flex-start;display:flex}.patcher-panel-format{padding:var(--spacing-xs) var(--spacing-sm);background:var(--color-surface-inset);border-radius:var(--radius-sm);margin:0}.patcher-dropzone{align-items:center;gap:var(--spacing-sm);width:100%;padding:var(--spacing-md);border:2px dashed var(--color-edge-pink-dashed);border-radius:var(--radius-md);background:var(--color-surface-inset);transition:border-color var(--transition-fast), background var(--transition-fast);flex-wrap:wrap;display:flex}.patcher-dropzone.dragover{border-color:var(--color-orange);background:#f084231f}.patcher-dropzone-hint{font-family:var(--font-ui);color:var(--color-text-muted);font-size:.78rem}.patcher-rom{gap:var(--spacing-xs);width:100%;padding:var(--spacing-sm) var(--spacing-md);background:var(--color-surface-inset);border-left:3px solid var(--color-gray-light);border-radius:var(--radius-sm);font-family:var(--font-ui);color:var(--color-text-secondary);flex-direction:column;font-size:.82rem;display:flex}.patcher-rom-name{color:var(--color-text-primary);overflow-wrap:anywhere}.patcher-rom-ok{color:var(--color-green-light)}.patcher-rom-ko{color:var(--color-error-text)}.patcher-rom-warn{color:var(--color-orange-light)}.patcher-panel-error{width:100%;padding:var(--spacing-sm) var(--spacing-md);background:var(--color-error-bg);border:1px solid var(--color-error-border);border-radius:var(--radius-sm);font-family:var(--font-ui);color:var(--color-error-text-soft);margin:0;font-size:.82rem;line-height:1.5}.patcher-panel-status{margin:0}.patcher-result{gap:var(--spacing-sm);width:100%;padding:var(--spacing-md);background:var(--color-tint-green-soft);border:1px solid var(--color-tint-green-strong);border-radius:var(--radius-md);flex-direction:column;align-items:flex-start;display:flex}.patcher-result-text{font-family:var(--font-ui);color:var(--color-text-primary);margin:0;font-size:.85rem}.modal-overlay{background:var(--color-overlay);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);padding:var(--spacing-lg);z-index:1000;animation:modalOverlayIn var(--transition-fast) ease forwards;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}@media (prefers-reduced-transparency:reduce){.modal-overlay{-webkit-backdrop-filter:none;backdrop-filter:none}}@keyframes modalOverlayIn{0%{opacity:0}to{opacity:1}}.modal{background:var(--color-bg-secondary);border:1px solid var(--color-gray-border);border-radius:var(--radius-xl);width:100%;max-width:1100px;max-height:90vh;animation:modalIn var(--transition-normal) ease forwards;box-shadow:var(--shadow-lg), var(--shadow-glow);flex-direction:column;display:flex;position:relative;overflow:hidden;container-type:inline-size}@keyframes modalIn{0%{opacity:0;transform:scale(.95)translateY(20px)}to{opacity:1;transform:scale(1)translateY(0)}}.modal-close{top:var(--spacing-md);right:var(--spacing-md);background:var(--color-bg-card);border:1px solid var(--color-gray-border);width:40px;height:40px;color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-fast);z-index:10;border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute}.modal-close:hover{background:var(--color-orange);border-color:var(--color-orange);color:var(--color-on-accent);transform:rotate(90deg)}.modal-close svg{width:20px;height:20px}.modal-header{padding:var(--spacing-lg) var(--spacing-xl);padding-right:calc(var(--spacing-xl) + 60px);border-bottom:1px solid var(--color-gray-border);background:var(--color-gray-dark);justify-content:space-between;align-items:center;display:flex}.modal-category{align-items:center;gap:var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-md);font-family:var(--font-ui);color:var(--color-on-accent);border-radius:var(--radius-md);text-transform:uppercase;letter-spacing:.05em;font-size:.7rem;font-weight:700;display:inline-flex}.modal-featured{align-items:center;gap:var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-sm);font-family:var(--font-ui);color:var(--color-orange-on-dark);background:var(--color-tint-orange);border:1px solid var(--color-orange);border-radius:var(--radius-sm);font-size:.65rem;font-weight:700;animation:3s ease-in-out infinite featuredPulse;display:inline-flex}.modal-body{padding:var(--spacing-xl);gap:var(--spacing-lg);flex-direction:column;flex:1;display:flex;overflow-y:auto}.modal-title{font-family:var(--font-heading);color:var(--color-text-primary);font-size:clamp(1.5rem,3vw,2rem);line-height:1.2}.modal-meta{gap:var(--spacing-md);padding:var(--spacing-md) 0;border-top:1px solid var(--color-gray-border);border-bottom:1px solid var(--color-gray-border);flex-wrap:wrap;display:flex}.modal-meta-item{align-items:center;gap:var(--spacing-xs);font-family:var(--font-ui);color:var(--color-text-secondary);font-size:.8rem;display:flex}.modal-meta-item svg{width:16px;height:16px;color:var(--color-orange-text);flex-shrink:0}.modal-meta-item strong{color:var(--color-text-primary)}.modal-description{gap:var(--spacing-md);flex-direction:column;display:flex}.modal-paragraph{font-family:var(--font-body);color:var(--color-text-secondary);white-space:pre-wrap;font-size:1.05rem;line-height:1.8}.modal-tags{gap:var(--spacing-xs);flex-wrap:wrap;display:flex}.modal-tag{padding:var(--spacing-xs) var(--spacing-sm);font-family:var(--font-ui);background:var(--color-gray-medium);border:1px solid var(--color-gray-border);border-radius:var(--radius-sm);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.02em;transition:all var(--transition-fast);font-size:.7rem}.modal-tag:hover{border-color:var(--color-orange);color:var(--color-orange-text)}.modal-links{padding-top:var(--spacing-lg);border-top:1px solid var(--color-gray-border);margin-top:auto}.modal-links-title{font-family:var(--font-heading);color:var(--color-text-primary);margin-bottom:var(--spacing-md);font-size:.9rem}.modal-links-list{gap:var(--spacing-sm);flex-direction:column;display:flex}.modal-link{align-items:center;gap:var(--spacing-md);padding:var(--spacing-md);background:var(--color-bg-card);border:1px solid var(--color-gray-border);border-radius:var(--radius-md);color:var(--color-text-primary);transition:all var(--transition-fast);text-decoration:none;display:flex}.modal-link:hover{border-color:var(--color-orange);background:var(--color-bg-card-hover);transform:translate(4px)}.modal-link-icon{text-align:center;width:40px;font-size:1.5rem}.modal-link-label{font-family:var(--font-ui);color:var(--color-text-primary);flex:1;font-size:.9rem;font-weight:700}.modal-link-type{font-family:var(--font-ui);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em;padding:var(--spacing-xs) var(--spacing-sm);background:var(--color-gray-medium);border-radius:var(--radius-sm);font-size:.65rem}.modal-link-external{width:18px;height:18px;color:var(--color-text-muted);transition:color var(--transition-fast);flex-shrink:0}.modal-link:hover .modal-link-external{color:var(--color-orange-text)}@media (width<=768px){.modal-overlay{padding:var(--spacing-md);align-items:flex-start}.modal{max-height:calc(100vh - 2 * var(--spacing-md));max-height:calc(100dvh - 2 * var(--spacing-md));border-radius:var(--radius-lg)}.modal-header{padding:var(--spacing-md);padding-right:calc(var(--spacing-md) + 60px);gap:var(--spacing-sm);flex-wrap:wrap}.modal-body{padding:var(--spacing-md)}.modal-meta{gap:var(--spacing-sm) var(--spacing-md);flex-wrap:wrap}.modal-link{flex-wrap:wrap}}@media (width<=520px){.modal-header{flex-direction:column;align-items:flex-start}.modal-meta{flex-direction:column}}.modal-languages{align-items:center;gap:var(--spacing-xs);flex-wrap:wrap;display:inline-flex}.modal-language{align-items:center;gap:var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-sm);font-family:var(--font-ui);color:var(--color-on-accent);border-radius:var(--radius-full);white-space:nowrap;box-shadow:var(--shadow-sm);transition:box-shadow var(--transition-fast), transform var(--transition-fast);font-size:.65rem;font-weight:700;display:inline-flex}.modal-language:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}.modal-multilingual{align-items:center;gap:var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-sm);font-family:var(--font-ui);color:var(--color-on-accent);background:linear-gradient(135deg, var(--color-multilingual-start) 0%, var(--color-multilingual-end) 100%);border-radius:var(--radius-full);box-shadow:var(--shadow-sm);white-space:nowrap;transition:box-shadow var(--transition-fast), transform var(--transition-fast);font-size:.6rem;font-weight:700;animation:3s ease-in-out infinite multilingualPulse;display:inline-flex}.modal-multilingual:hover{box-shadow:var(--shadow-md), 0 0 20px var(--color-tint-green-strong);transform:translateY(-1px)}.multi-icon{font-size:.75rem}.modal-tag.active{background:var(--color-orange)!important;border-color:var(--color-orange)!important;color:var(--color-on-accent)!important}.modal-tag{cursor:pointer;margin:0;line-height:normal}.modal-tag:focus-visible{outline:2px solid var(--color-orange);outline-offset:2px}.modal:focus,.modal-title:focus{outline:none}.modal-share{margin-bottom:var(--spacing-md)}.modal-layout{flex-direction:column;flex:1;min-height:0;display:flex}@container (width>=740px){.modal-layout{grid-template-rows:minmax(0,1fr);grid-template-columns:minmax(0,46%) minmax(0,1fr);display:grid}.modal-layout .carousel{flex-direction:column;justify-content:center;align-self:stretch;display:flex}.modal-layout .carousel-stage{aspect-ratio:16/11;max-height:none}.modal-layout .carousel-slide{--carousel-width:80%}.modal-layout .modal-body{min-height:0}}.error-boundary{align-items:center;gap:var(--spacing-md);margin:var(--spacing-lg) 0;padding:var(--spacing-xl) var(--spacing-lg);text-align:center;background:var(--color-bg-card);border:1px solid var(--color-orange);border-radius:var(--radius-lg);flex-direction:column;display:flex}.error-boundary-icon{color:var(--color-orange-text);margin:0;font-size:2.5rem;line-height:1}.error-boundary-title{margin:0;font-size:clamp(1.1rem,3vw,1.6rem)}.error-boundary-text{max-width:52ch;color:var(--color-text-secondary);margin:0;font-size:1.1rem}.error-boundary-details{width:100%;max-width:60ch;font-family:var(--font-ui);color:var(--color-text-muted);text-align:left;font-size:.75rem}.error-boundary-details summary{cursor:pointer;padding:var(--spacing-xs) 0}.error-boundary-details pre{padding:var(--spacing-sm) var(--spacing-md);background:var(--color-surface-inset);border-radius:var(--radius-sm);white-space:pre-wrap;overflow-wrap:anywhere;margin:0;overflow-x:auto}.projects-section{padding:var(--spacing-xxl) 0;position:relative}.projects-section:before{content:"";background:linear-gradient(90deg, transparent, var(--color-orange), transparent);width:200px;height:1px;position:absolute;top:0;left:50%;transform:translate(-50%)}.projects-header{text-align:center;margin-bottom:var(--spacing-xl)}.projects-title{font-family:var(--font-heading);color:var(--color-text-primary);margin-bottom:var(--spacing-sm);font-size:clamp(1.5rem,4vw,2.5rem);display:inline-block;position:relative}.projects-title:after{content:"";background:var(--color-orange);width:60px;height:3px;box-shadow:0 0 10px var(--color-orange);border-radius:2px;position:absolute;bottom:-8px;left:50%;transform:translate(-50%)}.projects-subtitle{color:var(--color-text-muted);max-width:600px;margin:0 auto;font-size:1.1rem}.projects-filters{justify-content:center;align-items:center;gap:var(--spacing-md);margin-bottom:var(--spacing-lg);flex-wrap:wrap;display:flex}.sort-select-wrapper{position:relative}.sort-select{appearance:none;background:var(--color-bg-card);border:1px solid var(--color-gray-border);border-radius:var(--radius-md);color:var(--color-text-primary);font-family:var(--font-ui);padding:var(--spacing-sm) var(--spacing-xl) var(--spacing-sm) var(--spacing-md);cursor:pointer;transition:all var(--transition-fast);min-width:180px;font-size:.85rem}.sort-select:hover{border-color:var(--color-gray-light)}.sort-select:focus{border-color:var(--color-orange);box-shadow:0 0 0 3px var(--color-tint-orange-strong);outline:none}.sort-select-wrapper:after{content:"▼";right:var(--spacing-md);color:var(--color-text-muted);pointer-events:none;font-size:.6rem;position:absolute;top:50%;transform:translateY(-50%)}.projects-advanced-filters{margin-bottom:var(--spacing-xl)}.advanced-filters-toggle{align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);font-family:var(--font-ui);color:var(--color-text-secondary);background:var(--color-bg-card);border:1px solid var(--color-gray-border);border-radius:var(--radius-full);cursor:pointer;transition:all var(--transition-fast);text-transform:uppercase;letter-spacing:.05em;font-size:.75rem;font-weight:700;display:inline-flex}.advanced-filters-toggle:hover{background:var(--color-bg-card-hover);border-color:var(--color-gray-light);color:var(--color-text-primary)}.advanced-filters-toggle:focus-visible{outline:2px solid var(--color-orange);outline-offset:2px}.toggle-icon{width:16px;height:16px;transition:transform var(--transition-fast);flex-shrink:0}.toggle-icon.expanded{transform:rotate(180deg)}.advanced-filters-panel{opacity:0;visibility:hidden;transition:grid-template-rows var(--transition-normal) ease, opacity var(--transition-fast) ease, padding var(--transition-normal) ease, margin var(--transition-normal) ease, visibility 0s linear var(--transition-normal);grid-template-rows:0fr;display:grid}.advanced-filters-panel.open{opacity:1;visibility:visible;padding:var(--spacing-lg);margin-top:var(--spacing-md);background:var(--color-bg-card);border:1px solid var(--color-gray-border);border-radius:var(--radius-lg);transition:grid-template-rows var(--transition-normal) ease, opacity var(--transition-fast) ease, padding var(--transition-normal) ease, margin var(--transition-normal) ease, visibility 0s;grid-template-rows:1fr}.advanced-filters-inner{min-height:0;margin:-4px;padding:4px;overflow:hidden}@media (prefers-reduced-motion:reduce){.advanced-filters-panel,.advanced-filters-panel.open{transition:none}}.active-tags-bar{align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);margin-bottom:var(--spacing-md);background:var(--color-tint-orange-soft);border:1px solid var(--color-tint-orange-strong);border-radius:var(--radius-md);flex-wrap:wrap;display:flex}.active-tags-label{font-family:var(--font-ui);color:var(--color-orange-text);text-transform:uppercase;letter-spacing:.05em;white-space:nowrap;font-size:.7rem;font-weight:700}.active-tags-list{gap:var(--spacing-xs);flex-wrap:wrap;align-items:center;display:flex}.active-tag-chip{align-items:center;gap:var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-sm);font-family:var(--font-ui);color:var(--color-on-accent);background:var(--color-orange);border-radius:var(--radius-full);cursor:pointer;transition:all var(--transition-fast);text-transform:uppercase;letter-spacing:.03em;white-space:nowrap;border:none;font-size:.65rem;font-weight:700;display:inline-flex}.active-tag-chip:hover{background:var(--color-orange-light);transform:scale(1.02)}.active-tag-chip:focus-visible{outline:2px solid var(--color-orange);outline-offset:2px}.active-tag-remove{background:var(--color-surface-inset);width:14px;height:14px;color:inherit;border-radius:50%;justify-content:center;align-items:center;font-size:.7rem;line-height:1;display:inline-flex}.clear-all-tags{font-family:var(--font-ui);color:var(--color-orange-text);cursor:pointer;padding:var(--spacing-xs) var(--spacing-xs);text-transform:uppercase;letter-spacing:.03em;transition:color var(--transition-fast);background:0 0;border:none;font-size:.65rem;font-weight:700}.clear-all-tags:hover{color:var(--color-orange-light);text-decoration:underline}.tag-search-wrapper{margin-bottom:var(--spacing-md);position:relative}.projects-search-wrapper{width:100%;max-width:520px;position:relative}.tag-search-icon,.projects-search-icon{left:var(--spacing-sm);width:18px;height:18px;color:var(--color-text-muted);pointer-events:none;position:absolute;top:50%;transform:translateY(-50%)}.tag-search-input,.projects-search-input{width:100%;padding:var(--spacing-sm) var(--spacing-md) var(--spacing-sm) calc(var(--spacing-md) + 22px);font-family:var(--font-ui);color:var(--color-text-primary);background:var(--color-bg-primary);border:1px solid var(--color-gray-border);border-radius:var(--radius-md);transition:all var(--transition-fast);font-size:.8rem}.tag-search-input:focus,.projects-search-input:focus{border-color:var(--color-orange);box-shadow:0 0 0 3px var(--color-tint-orange);outline:none}.tag-search-input::placeholder,.projects-search-input::placeholder{color:var(--color-text-muted)}.tag-search-clear,.projects-search-clear{right:var(--spacing-sm);width:24px;height:24px;color:var(--color-text-muted);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast);background:0 0;border:none;justify-content:center;align-items:center;font-size:1rem;line-height:1;display:flex;position:absolute;top:50%;transform:translateY(-50%)}.tag-search-clear:hover,.projects-search-clear:hover{color:var(--color-text-primary);background:var(--color-gray-medium)}.projects-search-input::-webkit-search-cancel-button{appearance:none;display:none}.tag-search-input::-webkit-search-cancel-button{appearance:none;display:none}.projects-search{align-items:center;gap:var(--spacing-sm);margin-bottom:var(--spacing-lg);flex-direction:column;display:flex}.projects-search-count{font-family:var(--font-ui);color:var(--color-text-muted);text-align:center;font-size:.8rem}.tag-filter-group{gap:var(--spacing-xs);flex-direction:column;width:100%;display:flex}.tag-filter-header{width:100%;margin-bottom:var(--spacing-xs);justify-content:space-between;align-items:center;display:flex}.tag-filter-label{font-family:var(--font-ui);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em;white-space:nowrap;font-size:.75rem}.tag-group{margin-bottom:var(--spacing-md);padding-bottom:var(--spacing-md);border-bottom:1px solid var(--color-gray-border)}.tag-group:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}.tag-group-label{font-family:var(--font-ui);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:var(--spacing-xs);padding-left:var(--spacing-xs);font-size:.65rem;font-weight:700;display:block}.tag-group-pills{gap:var(--spacing-xs);flex-wrap:wrap;display:flex}.tag-pills{gap:var(--spacing-sm);flex-wrap:wrap;display:flex}.tag-pill{align-items:center;gap:var(--spacing-xs);font-family:var(--font-ui);color:var(--color-text-secondary);background:var(--color-bg-primary);border:1px solid var(--color-gray-border);border-radius:var(--radius-full);cursor:pointer;transition:all var(--transition-fast);letter-spacing:.02em;white-space:nowrap;padding:4px 10px;font-size:.65rem;font-weight:700;display:inline-flex}.tag-pill:hover{background:var(--color-bg-card-hover);border-color:var(--color-gray-light);color:var(--color-text-primary)}.tag-pill.active{background:var(--color-orange);border-color:var(--color-orange);color:var(--color-on-accent)}.tag-pill.active:hover{background:var(--color-orange-light);border-color:var(--color-orange-light)}.tag-pill-count{opacity:.8;background:var(--color-surface-inset-soft);border-radius:var(--radius-full);margin-left:var(--spacing-xs);padding:1px 5px;font-size:.6rem;font-weight:700}.tag-pill.active .tag-pill-count{background:var(--color-surface-inset)}.tag-pill-remove{background:var(--color-surface-inset);width:14px;height:14px;color:inherit;margin-left:var(--spacing-xs);border-radius:50%;justify-content:center;align-items:center;font-size:.7rem;line-height:1;display:inline-flex}.tag-pill.active .tag-pill-remove{background:#0000004d}.language-filter-group{gap:var(--spacing-sm);width:100%;padding-top:var(--spacing-sm);border-top:1px solid var(--color-gray-border);margin-top:var(--spacing-sm);flex-direction:column;display:flex}.language-pills{gap:var(--spacing-sm);flex-wrap:wrap;display:flex}.language-pill{align-items:center;gap:var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-md);font-family:var(--font-ui);color:var(--color-text-secondary);background:var(--color-bg-primary);border:1px solid var(--color-gray-border);border-radius:var(--radius-full);cursor:pointer;transition:all var(--transition-fast);text-transform:uppercase;letter-spacing:.03em;font-size:.7rem;font-weight:700;display:inline-flex}.language-pill:hover{background:var(--color-bg-card-hover);border-color:var(--color-gray-light);color:var(--color-text-primary)}.language-pill.active{color:var(--color-on-accent)}.clear-filters-btn{margin-top:var(--spacing-md);padding:var(--spacing-xs) var(--spacing-md);font-family:var(--font-ui);color:var(--color-text-muted);border:1px solid var(--color-gray-border);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);text-transform:uppercase;letter-spacing:.05em;background:0 0;width:100%;font-size:.7rem;font-weight:700}.clear-filters-btn:hover{color:var(--color-orange-text);border-color:var(--color-orange)}.projects-grid{gap:var(--spacing-lg);margin-top:var(--spacing-xl);grid-template-columns:repeat(auto-fill,minmax(min(100%,320px),1fr));display:grid}.projects-pagination-info{margin-top:var(--spacing-xl);text-align:center;font-family:var(--font-ui);color:var(--color-text-muted);font-size:.75rem}.projects-pagination{justify-content:center;align-items:center;gap:var(--spacing-xs);margin-top:var(--spacing-md);flex-wrap:wrap;display:flex}.pagination-button{min-width:40px;height:40px;padding:0 var(--spacing-sm);font-family:var(--font-ui);color:var(--color-text-secondary);background:var(--color-bg-card);border:1px solid var(--color-gray-border);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);justify-content:center;align-items:center;font-size:.8rem;font-weight:700;display:inline-flex}.pagination-button:hover:not(:disabled){background:var(--color-bg-card-hover);border-color:var(--color-gray-light);color:var(--color-text-primary)}.pagination-button:focus-visible{outline:2px solid var(--color-orange);outline-offset:2px}.pagination-button.active{color:var(--color-on-accent);background:var(--color-orange);border-color:var(--color-orange)}.pagination-button:disabled{opacity:.35;cursor:not-allowed}.pagination-gap{text-align:center;min-width:20px;font-family:var(--font-ui);color:var(--color-text-muted)}@media (width<=768px){.projects-section{padding:var(--spacing-xl) 0}.projects-filters{gap:var(--spacing-sm);flex-direction:column}.sort-select{width:100%;max-width:300px}.projects-grid{gap:var(--spacing-md);grid-template-columns:minmax(0,1fr)}.advanced-filters-toggle{justify-content:center;width:100%}.advanced-filters-panel.open{padding:var(--spacing-md);margin-top:var(--spacing-sm)}.tag-filter-header,.active-tags-bar{align-items:flex-start;gap:var(--spacing-xs);flex-direction:column}.active-tags-list{width:100%}}.projects-empty{padding:var(--spacing-xxl);text-align:center;color:var(--color-text-muted);background:var(--color-bg-card);border:1px dashed var(--color-gray-border);border-radius:var(--radius-lg);flex-direction:column;grid-column:1/-1;justify-content:center;align-items:center;display:flex}.projects-empty svg{width:48px;height:48px;margin-bottom:var(--spacing-md);opacity:.5}.projects-empty p{font-family:var(--font-ui);font-size:1rem}.language-pill-all{background:var(--color-bg-primary);border-color:var(--color-gray-border);color:var(--color-text-secondary)}.language-pill-all:hover{background:var(--color-bg-card-hover);border-color:var(--color-gray-light);color:var(--color-text-primary)}.language-pill-all.active{background:var(--color-orange);border-color:var(--color-orange);color:var(--color-on-accent)}.language-pill-all.active:hover{background:var(--color-orange-light);border-color:var(--color-orange-light)}.console-filter{justify-content:center;align-items:center;gap:var(--spacing-sm);flex-wrap:wrap;display:flex}.console-filter-label{font-family:var(--font-ui);text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);font-size:.7rem;font-weight:700}.console-pill:before{content:"";background:var(--console-color);border-radius:50%;width:8px;height:8px;margin-right:6px;display:inline-block}.console-pill.active{color:var(--color-on-accent);background:var(--color-orange);border-color:var(--color-orange)}.footer{background:var(--color-bg-secondary);border-top:1px solid var(--color-gray-border);padding:var(--spacing-xxl) 0 var(--spacing-lg);margin-top:auto}.footer-grid{gap:var(--spacing-xl);margin-bottom:var(--spacing-xl);grid-template-columns:2fr 1fr 1fr 1fr;display:grid}.footer-brand{gap:var(--spacing-md);flex-direction:column;display:flex}.footer-logo{width:120px;height:auto;filter:drop-shadow(0 4px 12px var(--color-glow-orange))}.footer-title{font-family:var(--font-heading);color:var(--color-text-primary);font-size:1rem;line-height:1.3}.footer-tagline{color:var(--color-text-secondary);max-width:300px;font-size:.9rem;line-height:1.7}.footer-social{gap:var(--spacing-md);margin-top:var(--spacing-sm);display:flex}.footer-social-link{background:var(--color-bg-card);border:1px solid var(--color-gray-border);border-radius:var(--radius-md);width:44px;height:44px;color:var(--color-text-secondary);transition:all var(--transition-fast);justify-content:center;align-items:center;display:flex}.footer-social-link:hover{background:var(--color-orange);border-color:var(--color-orange);color:var(--color-on-accent);transform:translateY(-2px)}.footer-social-link svg{fill:currentColor;width:22px;height:22px}.footer-nav{gap:var(--spacing-md);flex-direction:column;display:flex}.footer-nav-title{font-family:var(--font-ui);color:var(--color-orange-text);text-transform:uppercase;letter-spacing:.1em;margin-bottom:var(--spacing-xs);font-size:.7rem}.footer-nav-list{gap:var(--spacing-sm);flex-direction:column;list-style:none;display:flex}.footer-nav-link{font-family:var(--font-ui);color:var(--color-text-secondary);transition:color var(--transition-fast);font-size:.85rem}button.footer-nav-link{text-align:left;cursor:pointer;background:0 0;border:0;margin:0;padding:0}.footer-nav-link:hover{color:var(--color-orange-text)}.footer-bottom{align-items:center;gap:var(--spacing-md);padding-top:var(--spacing-lg);flex-direction:column;display:flex}.footer-divider{background:linear-gradient(90deg, transparent, var(--color-gray-border), transparent);width:100%;max-width:600px;height:1px}.footer-copyright{font-family:var(--font-ui);color:var(--color-text-muted);text-align:center;font-size:.75rem;line-height:1.6}.footer-sign{font-family:var(--font-heading);vertical-align:.08em;font-size:.62rem;line-height:1}.footer-tech{font-family:var(--font-ui);color:var(--color-text-muted);text-align:center;font-size:.7rem}@media (width<=1024px){.footer-grid{gap:var(--spacing-lg);grid-template-columns:1fr 1fr}.footer-brand{grid-column:1/-1;max-width:400px}}@media (width<=768px){.footer{padding:var(--spacing-xl) 0 var(--spacing-md)}.footer-grid{gap:var(--spacing-lg);text-align:center;grid-template-columns:1fr}.footer-brand{justify-self:center;align-items:center}.footer-tagline{max-width:none}.footer-social{justify-content:center}.footer-nav{align-items:center}}.legal-modal-overlay{background:var(--color-overlay);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);padding:var(--spacing-lg);z-index:1000;animation:fadeIn var(--transition-fast) ease;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.legal-modal{background:var(--color-bg-card);border:1px solid var(--color-gray-border);border-radius:var(--radius-xl);width:100%;max-width:700px;max-height:85dvh;padding:var(--spacing-xl);animation:slideUp var(--transition-normal) ease;position:relative;overflow-y:auto}.legal-modal-close{top:var(--spacing-md);right:var(--spacing-md);background:var(--color-bg-primary);border:1px solid var(--color-gray-border);border-radius:var(--radius-md);width:40px;height:40px;color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-fast);justify-content:center;align-items:center;display:flex;position:absolute}.legal-modal-close:hover{background:var(--color-orange);border-color:var(--color-orange);color:var(--color-on-accent)}.legal-modal-close svg{width:20px;height:20px}.legal-modal-title{font-family:var(--font-heading);color:var(--color-orange-text);margin-bottom:var(--spacing-lg);padding-bottom:var(--spacing-md);border-bottom:1px solid var(--color-gray-border);font-size:1.1rem}.legal-modal-content{gap:var(--spacing-lg);flex-direction:column;display:flex}.legal-modal-content section{gap:var(--spacing-sm);flex-direction:column;display:flex}.legal-modal-content h3{font-family:var(--font-ui);color:var(--color-orange-text);letter-spacing:.05em;font-size:.8rem}.legal-modal-content p{font-family:var(--font-body);color:var(--color-text-secondary);font-size:.85rem;line-height:1.7}.legal-modal-content a{color:var(--color-orange-text);text-underline-offset:2px;text-decoration:underline}.legal-modal-content a:hover{color:var(--color-orange-light)}.legal-modal-content ul{gap:var(--spacing-xs);padding-left:var(--spacing-lg);flex-direction:column;display:flex}.legal-modal-content li{font-family:var(--font-body);color:var(--color-text-secondary);font-size:.85rem;line-height:1.7}.submit-modal-overlay{background:var(--color-overlay);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);padding:var(--spacing-lg);z-index:1000;animation:fadeIn var(--transition-fast) ease;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.submit-modal{background:var(--color-bg-card);border:1px solid var(--color-gray-border);border-radius:var(--radius-xl);width:100%;max-width:500px;max-height:85dvh;padding:var(--spacing-xl);animation:slideUp var(--transition-normal) ease;text-align:center;position:relative;overflow-y:auto}.submit-modal-close{top:var(--spacing-md);right:var(--spacing-md);background:var(--color-bg-primary);border:1px solid var(--color-gray-border);border-radius:var(--radius-md);width:40px;height:40px;color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-fast);justify-content:center;align-items:center;display:flex;position:absolute}.submit-modal-close:hover{background:var(--color-orange);border-color:var(--color-orange);color:var(--color-on-accent)}.submit-modal-close svg{width:20px;height:20px}.submit-modal-icon{width:64px;height:64px;margin:0 auto var(--spacing-lg);color:var(--color-orange-text)}.submit-modal-title{font-family:var(--font-heading);color:var(--color-orange-text);margin-bottom:var(--spacing-md);font-size:1.1rem}.submit-modal-description{font-family:var(--font-body);color:var(--color-text-secondary);margin-bottom:var(--spacing-xl);text-align:left;font-size:.9rem;line-height:1.7}.submit-modal-steps{gap:var(--spacing-lg);margin-bottom:var(--spacing-xl);text-align:left;flex-direction:column;display:flex}.submit-step{gap:var(--spacing-md);align-items:flex-start;display:flex}.submit-step-number{background:var(--color-orange);width:28px;height:28px;color:var(--color-on-accent);font-family:var(--font-ui);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:.75rem;font-weight:700;display:flex}.submit-step strong{font-family:var(--font-ui);color:var(--color-text-primary);margin-bottom:var(--spacing-xs);font-size:.85rem;display:block}.submit-step p{font-family:var(--font-body);color:var(--color-text-secondary);margin:0;font-size:.8rem;line-height:1.6}.submit-modal-cta{justify-content:center;width:100%;display:inline-flex}@media (width<=768px){.legal-modal,.submit-modal{padding:var(--spacing-lg);margin:var(--spacing-md);max-height:90dvh}.legal-modal-title,.submit-modal-title{font-size:1rem}.submit-step{align-items:flex-start;gap:var(--spacing-xs);flex-direction:column}.submit-step-number{align-self:flex-start}}.legal-modal:focus,.submit-modal:focus,.legal-modal-title:focus,.submit-modal-title:focus{outline:none}.not-found{justify-content:center;align-items:center;gap:var(--spacing-md);min-height:70vh;padding:var(--spacing-xl) var(--spacing-lg);text-align:center;flex-direction:column;display:flex}.not-found-code{font-family:var(--font-heading);color:var(--color-orange-text);text-shadow:0 0 24px #f0842359;margin:0;font-size:clamp(3rem,12vw,6rem);line-height:1}.not-found-title{margin:0;font-size:clamp(1.2rem,4vw,2rem)}.not-found-text{max-width:46ch;color:var(--color-text-secondary);margin:0;font-size:1.1rem}}@layer utilities{.btn{justify-content:center;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-lg);font-family:var(--font-ui);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);text-transform:uppercase;letter-spacing:.05em;border:2px solid #0000;font-size:.875rem;font-weight:700;display:inline-flex}.btn-primary{background:var(--color-orange);color:var(--color-on-accent);border-color:var(--color-orange)}.btn-primary:hover{background:var(--color-orange-light);border-color:var(--color-orange-light);color:var(--color-on-accent);box-shadow:var(--shadow-glow);transform:translateY(-2px)}.btn-secondary{color:var(--color-orange-text);border-color:var(--color-orange);background:0 0}.btn-secondary:hover{background:var(--color-orange);color:var(--color-on-accent)}.btn-green{background:var(--color-green-light);color:var(--color-green-dark);border-color:var(--color-green-light)}.btn-green:hover{background:var(--color-green-pale);border-color:var(--color-green-pale);box-shadow:var(--shadow-glow-green)}.btn-sm{padding:var(--spacing-xs) var(--spacing-md);font-size:.75rem}.btn-lg{padding:var(--spacing-md) var(--spacing-xl);font-size:1rem}.card{background:var(--color-bg-card);border:1px solid var(--color-gray-border);border-radius:var(--radius-lg);padding:var(--spacing-lg);transition:all var(--transition-normal)}.card:hover{background:var(--color-bg-card-hover);border-color:var(--color-gray-light);box-shadow:var(--shadow-lg);transform:translateY(-4px)}.multi-icon,.multi-text{flex-shrink:0}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes featuredPulse{0%,to{box-shadow:var(--shadow-sm), 0 0 8px var(--color-glow-orange)}50%{box-shadow:var(--shadow-sm), 0 0 16px #f0842399}}@keyframes multilingualPulse{0%,to{box-shadow:var(--shadow-sm), 0 0 8px var(--color-glow-green)}50%{box-shadow:var(--shadow-sm), 0 0 16px var(--color-glow-blue)}}}:root,[data-theme=dark]{--color-orange:#f08423;--color-orange-light:#ff9f43;--color-orange-dark:#d4721a;--color-orange-text:#f08423;--color-orange-on-dark:#f08423;--color-badge-free-text:#9bbc0f;--color-badge-paid-text:#ff9f43;--color-badge-demo-text:#6cb4ee;--color-badge-patch-text:#f08cc0;--color-green-dark:#0f380f;--color-green-medium:#306230;--color-green-light:#8bac0f;--color-green-pale:#9bbc0f;--color-gray-dark:#1a1a1a;--color-gray-medium:#2d2d2d;--color-gray-light:#4a4a4a;--color-gray-border:#3a3a3a;--color-star-white:#fff;--color-star-glow:#fff8e7;--color-text-primary:#f5f5f0;--color-text-secondary:#c4c4b8;--color-text-muted:#8a8a7a;--color-bg-primary:#0d0d0d;--color-bg-secondary:#161616;--color-bg-card:#1e1e1e;--color-bg-card-hover:#252525;--color-bg-card-recessed:#191919;--color-on-accent:#0d0d0d;--color-surface-inset:#00000040;--color-surface-inset-soft:#0000001a;--color-overlay:#000000d9;--color-tint-orange-soft:#f0842314;--color-tint-orange:#f0842326;--color-tint-orange-strong:#f0842333;--color-tint-green-soft:#8bac0f1a;--color-tint-green:#8bac0f26;--color-tint-green-strong:#8bac0f66;--color-tint-blue:#3b8fd926;--color-tint-pink-soft:#e062a014;--color-tint-pink:#e062a026;--color-tint-red:#c8282826;--color-edge-orange:#f084238c;--color-edge-green:#8bac0f8c;--color-edge-blue:#3b8fd98c;--color-edge-pink:#e062a08c;--color-edge-pink-soft:#e062a066;--color-edge-pink-dashed:#e062a073;--color-glow-orange:#f084234d;--color-glow-green:#8bac0f4d;--color-glow-blue:#0066cc80;--color-danger:#c82828;--color-danger-text:#e06060;--color-warning-text:#e0a060;--color-error-text:#ff7a7a;--color-error-text-soft:#ffb3b3;--color-error-bg:#ff5a5a1f;--color-error-border:#ff5a5a73;--color-pink:#c4467f;--color-pink-hover:#d9558f;--color-pink-border:#e0629f;--color-multilingual-start:#8bac0f;--color-multilingual-end:#06c;--color-dot-idle:#6b6b66;--color-dot-hover:#9a9a92;--font-heading:"Press Start 2P", "VT323", monospace;--font-body:"VT323", "Courier New", monospace;--font-ui:"Space Mono", monospace;--spacing-xs:4px;--spacing-sm:8px;--spacing-md:16px;--spacing-lg:24px;--spacing-xl:32px;--spacing-xxl:48px;--radius-sm:4px;--radius-md:8px;--radius-lg:12px;--radius-xl:16px;--card-media-min-width:200px;--card-media-width:42%;--card-media-min-height:240px;--transition-fast:.15s ease;--transition-normal:.25s ease;--transition-slow:.35s ease;--shadow-sm:0 2px 8px #0000004d;--shadow-md:0 4px 16px #0006;--shadow-lg:0 8px 32px #00000080;--shadow-glow:0 0 20px var(--color-glow-orange);--shadow-glow-green:0 0 20px var(--color-glow-green)}[data-theme=light]{--color-bg-primary:#f3f0e6;--color-bg-secondary:#eae6d8;--color-bg-card:#fff;--color-bg-card-hover:#fbf9f3;--color-bg-card-recessed:#f7f5ec;--color-text-primary:#1b1b17;--color-text-secondary:#44443c;--color-text-muted:#63635a;--color-orange:#e07b1d;--color-orange-light:#f0912e;--color-orange-dark:#a9530a;--color-orange-text:#9c4a05;--color-orange-on-dark:#ffa64d;--color-badge-free-text:#4a6005;--color-badge-paid-text:#a85308;--color-badge-demo-text:#1f6ba5;--color-badge-patch-text:#a52f68;--color-green-dark:#3f5c0a;--color-green-medium:#5a8a12;--color-green-light:#7ba415;--color-green-pale:#9bbc0f;--color-gray-dark:#3a3a32;--color-gray-medium:#e6e2d4;--color-gray-light:#b8b3a4;--color-gray-border:#d9d4c4;--color-dot-idle:#b8b3a4;--color-dot-hover:#8a857a;--color-star-white:#bdb49c;--color-star-glow:#d8cfb6;--color-overlay:#2d28198c;--color-surface-inset:#5a503212;--color-surface-inset-soft:#5a50320d;--shadow-sm:0 2px 8px #463c231f;--shadow-md:0 4px 16px #463c2329;--shadow-lg:0 8px 32px #463c2333;--shadow-glow:0 0 20px #d2690e40;--shadow-glow-green:0 0 20px #7ba41540}@media (width<=768px){:root{--spacing-xl:24px;--spacing-xxl:32px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.language-indicator{align-items:center;gap:var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-sm);font-family:var(--font-ui);color:var(--color-on-accent);border-radius:var(--radius-full);box-shadow:var(--shadow-sm);white-space:nowrap;transition:box-shadow var(--transition-fast), transform var(--transition-fast);font-size:.65rem;font-weight:700;display:inline-flex}.language-indicator:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}.language-indicator-multilingual{align-items:center;gap:var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-sm);font-family:var(--font-ui);color:var(--color-on-accent);background:linear-gradient(135deg, var(--color-multilingual-start) 0%, var(--color-multilingual-end) 100%);border-radius:var(--radius-full);box-shadow:var(--shadow-sm);white-space:nowrap;transition:box-shadow var(--transition-fast), transform var(--transition-fast);font-size:.55rem;font-weight:700;animation:3s ease-in-out infinite multilingualPulse;display:inline-flex}.language-indicator-multilingual:hover{box-shadow:var(--shadow-md), 0 0 20px var(--color-tint-green-strong);transform:translateY(-1px)}.language-indicator-icon{font-size:.7rem}.language-indicator-fr{min-width:18px;height:18px;font-family:var(--font-ui);color:var(--color-on-accent);border-radius:var(--radius-full);box-shadow:0 0 0 2px var(--color-bg-card);background:var(--color-multilingual-start);flex-shrink:0;justify-content:center;align-items:center;font-size:.5rem;font-weight:700;display:inline-flex}@media (width<=768px){.language-indicator{padding:2px 8px;font-size:.6rem}.language-indicator-multilingual{padding:2px 8px;font-size:.5rem}.language-indicator-fr{min-width:16px;height:16px;font-size:.45rem}}.spotlight{padding:var(--spacing-xxl) 0 0;overflow:hidden}.spotlight-header{justify-content:center;align-items:baseline;gap:var(--spacing-md);margin-bottom:var(--spacing-lg);flex-wrap:wrap;display:flex}.spotlight-title{align-items:center;gap:var(--spacing-sm);font-family:var(--font-heading);color:var(--color-orange-text);font-size:clamp(1.05rem,2.4vw,1.4rem);display:inline-flex}.spotlight-star{color:var(--color-orange);font-size:.9em}.spotlight-subtitle{font-family:var(--font-ui);color:var(--color-text-muted);font-size:.75rem}@media (width<=768px){.spotlight{padding-top:var(--spacing-xl)}}
