:root{--bg0:#141414;--bg1:#181818;--bg2:#2f2f2f;--ink:#fff;--muted:#b3b3b3;--line:#ffffff1f;--accent:#e50914;--accent-bright:#f40612;--accent-dim:#b20710;--danger:#e87c7c;--ok:#46d369;--shadow:0 8px 24px #0000008c;--radius:4px;--font-display:"Bebas Neue", Impact, sans-serif;--font-body:"Outfit", "Helvetica Neue", Helvetica, sans-serif;--nav-h:68px;color:var(--ink);background:var(--bg0);font-family:var(--font-body);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;line-height:1.45}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{background:var(--bg0);color:var(--ink)}a{color:var(--ink)}button,input,select{font:inherit}.app-shell{min-height:100dvh;padding-bottom:calc(64px + env(safe-area-inset-bottom));background:var(--bg0);flex-direction:column;display:flex}@media (width>=900px){.app-shell{padding-bottom:0}}.topbar{height:calc(var(--nav-h) + env(safe-area-inset-top));padding:env(safe-area-inset-top) 4% 0;z-index:40;pointer-events:none;background:linear-gradient(#000000e6 0%,#00000073 55%,#0000);border-bottom:none;justify-content:space-between;align-items:center;gap:20px;display:flex;position:fixed;top:0;left:0;right:0}.topbar a,.topbar button{pointer-events:auto}.brand{font-family:var(--font-display);letter-spacing:.06em;color:var(--ink);text-transform:none;font-size:2rem;font-weight:400;line-height:1;text-decoration:none}.brand span{color:var(--accent)}.main{width:100%;padding:calc(var(--nav-h) + env(safe-area-inset-top)) 0 64px;flex:1;margin:0}.main-pad{width:min(1400px,100%);padding:calc(var(--nav-h) + env(safe-area-inset-top) + 12px) 4% 40px;margin:0 auto}.bottom-nav{padding:8px 12px calc(8px + env(safe-area-inset-bottom));border-top:1px solid var(--line);z-index:50;background:#141414f5;grid-template-columns:1fr 1fr;gap:4px;display:grid;position:fixed;bottom:0;left:0;right:0}@media (width>=900px){.bottom-nav{display:none}.desktop-nav{display:flex!important}}.desktop-nav{align-items:center;gap:4px;display:none}.nav-link{appearance:none;color:var(--muted);text-align:center;cursor:pointer;background:0 0;border:none;border-radius:0;padding:8px 14px;font-size:.9rem;font-weight:500;text-decoration:none;transition:color .15s}.nav-link.active,.nav-link:hover{color:var(--ink)}.hero-login{background:radial-gradient(80% 60% at 50% 0,#e5091438,#0000 55%),linear-gradient(#0000008c,#000000e0),repeating-linear-gradient(-12deg,#1a1a1a 0 18px,#141414 18px 36px);place-items:center;min-height:100dvh;padding:24px;display:grid;position:relative}.hero-login:before{content:"";pointer-events:none;background:radial-gradient(circle at 20% 80%,#e509141f,#0000 40%),radial-gradient(circle at 85% 20%,#ffffff0a,#0000 35%);position:absolute;inset:0}.login-card{z-index:1;width:min(450px,100%);box-shadow:0 0 0 1px #ffffff0f, var(--shadow);background:#000000c7;border:none;border-radius:4px;padding:48px 48px 52px;animation:.5s both fade-up;position:relative}@media (width<=520px){.login-card{padding:36px 24px 40px}}.login-card h1{font-family:var(--font-display);letter-spacing:.06em;color:var(--ink);text-transform:none;margin:0 0 6px;font-size:clamp(2.4rem,8vw,3.2rem);font-weight:400;line-height:1}.login-card h1 span{color:var(--accent)}.login-card .login-title{font-family:var(--font-body);color:var(--ink);letter-spacing:-.01em;margin:18px 0 12px;font-size:1.75rem;font-weight:700}.login-card p{color:var(--muted);margin:0 0 22px;font-size:.95rem}.login-card .browser-tip{margin:-10px 0 18px}.browser-tip{color:var(--muted);margin:0;font-size:.85rem;line-height:1.4}.browser-tip.is-safari{color:#f5d76e}.browser-tip strong{color:var(--ink);font-weight:600}.library-browser-tip{padding:28px 4% 40px}.library-browser-tip .browser-tip{max-width:36rem}.browser-tip-banner{background:#f5c5181a;border:1px solid #f5c51859;border-radius:4px;justify-content:space-between;align-items:center;gap:16px;margin:0 4% 18px;padding:14px 16px;display:flex}.browser-tip-banner p{color:#f5d76e;margin:0;font-size:.9rem;line-height:1.4}.browser-tip-banner strong{color:#ffe9a3}.browser-tip-dismiss{appearance:none;color:#f5d76e;font:inherit;cursor:pointer;background:0 0;border:1px solid #f5c51873;border-radius:4px;flex-shrink:0;padding:8px 12px;font-size:.82rem;font-weight:600}.browser-tip-dismiss:hover{color:#ffe9a3;background:#f5c5181f}@media (width<=640px){.browser-tip-banner{flex-direction:column;align-items:flex-start}}.code-input{letter-spacing:.12em;text-align:left;font-variant-numeric:tabular-nums;width:100%;color:var(--ink);background:#333;border:none;border-radius:4px;margin-bottom:16px;padding:16px 18px;font-size:1.15rem;font-weight:600}.code-input::placeholder{color:#8c8c8c;letter-spacing:.12em;text-align:left}.code-input:focus{background:#454545;outline:none}.btn{appearance:none;cursor:pointer;border:none;border-radius:4px;padding:14px 18px;font-size:1rem;font-weight:700;transition:background .15s,opacity .15s,transform .12s}.btn:active{transform:scale(.99)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--accent);color:#fff;width:100%}.btn-primary:hover:not(:disabled){background:var(--accent-bright)}.btn-ghost{color:var(--ink);background:#6d6d6eb3;border:none}.btn-ghost:hover:not(:disabled){background:#6d6d6ee6}.btn-danger{color:#fff;background:0 0;border:1px solid #ffffff73}.btn-danger:hover:not(:disabled){border-color:var(--accent);background:#e5091433}.btn-play{color:#000;cursor:pointer;background:#fff;border:none;border-radius:4px;justify-content:center;align-items:center;gap:10px;width:auto;padding:12px 28px;font-weight:700;text-decoration:none;display:inline-flex}.btn-play:hover{background:#ffffffd9}.btn-play:before{content:"▶";font-size:.85rem;line-height:1}.section-head{justify-content:space-between;align-items:end;gap:16px;margin-bottom:10px;display:flex}.admin-tabs{border-bottom:1px solid var(--line);gap:2px;margin:0 0 28px;display:flex}.admin-tab{appearance:none;color:var(--muted);font-family:var(--font-body);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-1px;padding:12px 18px;font-size:.95rem;font-weight:600;transition:color .15s,border-color .15s}.admin-tab:hover{color:var(--ink)}.admin-tab.active{color:var(--ink);border-bottom-color:var(--accent)}.section-head h2{font-family:var(--font-body);letter-spacing:-.025em;margin:0;font-size:clamp(1.65rem,3.5vw,2.1rem);font-weight:700}.section-head p{color:var(--muted);max-width:48ch;margin:8px 0 0;font-size:.95rem}.library{padding-bottom:24px}.row-title{letter-spacing:-.01em;color:#e5e5e5;margin:0 0 10px;padding:0 4%;font-size:1.35rem;font-weight:700}.billboard{width:100%;min-height:min(72vw,560px);max-height:72vh;margin:calc(-1 * (var(--nav-h) + env(safe-area-inset-top))) 0 12px;background:#000;align-items:flex-end;display:flex;position:relative;overflow:hidden}.billboard-bg{background-position:top;background-size:cover;position:absolute;inset:0;transform:scale(1.02)}.billboard-bg:after{content:"";background:linear-gradient(77deg, #141414eb 0%, #1414148c 40%, transparent 70%), linear-gradient(0deg, var(--bg0) 0%, transparent 42%), linear-gradient(90deg, #141414a6 0%, transparent 50%);position:absolute;inset:0}.billboard-content{z-index:2;width:min(640px,90%);padding:0 4% 8%;animation:.6s both fade-up;position:relative}.billboard-kicker{font-family:var(--font-display);color:var(--accent);letter-spacing:.12em;text-transform:uppercase;margin-bottom:8px;font-size:1.1rem;display:inline-block}.billboard h1{font-family:var(--font-body);letter-spacing:-.03em;text-shadow:0 2px 18px #000000b3;margin:0 0 12px;font-size:clamp(2.2rem,6vw,3.6rem);font-weight:800;line-height:1.05}.billboard p{color:#e5e5e5;text-shadow:0 1px 8px #0009;max-width:32ch;margin:0 0 22px;font-size:clamp(.95rem,2vw,1.15rem)}.billboard-actions{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.rail{margin-top:4px;margin-bottom:18px}.rail-scroller{scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none;gap:6px;padding:6px 4% 36px;display:flex;overflow-x:auto}.rail-scroller::-webkit-scrollbar{display:none}.poster{scroll-snap-align:start;width:min(240px,42vw);color:inherit;background:var(--bg1);aspect-ratio:16/9;border-radius:3px;flex:none;text-decoration:none;transition:transform .25s,box-shadow .25s;animation:.45s both fade-up;position:relative;overflow:hidden}@media (width>=700px){.poster{width:min(280px,22vw)}}@media (width>=1100px){.poster{width:min(300px,16.5vw)}}.poster:hover{z-index:3;transform:scale(1.12);box-shadow:0 12px 40px #000000bf}.poster-play{z-index:2;opacity:0;pointer-events:none;background:#00000061;justify-content:center;align-items:center;transition:opacity .2s;display:flex;position:absolute;inset:0}.poster-play-icon{color:#111;background:#fffffff2;border-radius:50%;justify-content:center;align-items:center;width:52px;height:52px;padding-left:3px;font-size:1.05rem;line-height:1;transition:transform .2s;display:flex;transform:scale(.92);box-shadow:0 6px 20px #00000073}@media (hover:hover){.poster:hover .poster-play{opacity:1}.poster:hover .poster-play-icon{transform:scale(1)}}.poster.is-disabled{opacity:.55;pointer-events:none}.poster-art{background:linear-gradient(180deg, transparent 40%, #000000e6), var(--bg2);background-position:50%;background-size:cover;position:absolute;inset:0}.poster-new{z-index:2;background:var(--accent);color:#fff;letter-spacing:.06em;text-transform:uppercase;border-radius:0 2px 0 0;align-items:center;padding:3px 7px;font-size:.62rem;font-weight:800;line-height:1.2;display:inline-flex;position:absolute;bottom:0;left:0}.poster-new.is-inline{border-radius:2px;padding:6px 10px;font-size:.72rem;position:static}.poster-meta{z-index:1;padding:10px 10px 8px;position:absolute;bottom:0;left:0;right:0}.poster:has(.poster-new) .poster-meta{padding-bottom:26px}.poster-meta h3{-webkit-line-clamp:1;text-shadow:0 1px 6px #000c;-webkit-box-orient:vertical;margin:0;font-size:.88rem;font-weight:700;line-height:1.2;display:-webkit-box;overflow:hidden}.poster-version{color:var(--muted);margin:3px 0 0;font-size:.7rem;font-weight:600}.billboard-version{font-weight:600;color:#b3b3b3!important;margin:-4px 0 14px!important;font-size:.95rem!important}.badge{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);background:#000000a6;border-radius:2px;align-items:center;margin-bottom:6px;padding:3px 7px;font-size:.68rem;font-weight:700;display:inline-flex}.badge.ready{color:var(--ok)}.badge.converting,.badge.queued{color:#f5c518}.badge.failed{color:var(--danger)}.badge.f95-update{color:#f5c518}.f95-update-banner{color:#ffe9a3;background:#f5c5181a;border:1px solid #f5c51859;border-radius:4px;margin:0 0 12px;padding:8px 10px;font-size:13px;line-height:1.35}.f95-update-banner strong{color:#ffe9a3;font-weight:600}.grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px;display:grid}@media (width>=700px){.grid{grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:14px}}.game-card{aspect-ratio:2/3;border-radius:var(--radius);background:var(--bg1);color:inherit;text-decoration:none;transition:transform .22s;animation:.45s both fade-up;display:block;position:relative;overflow:hidden}.game-card:hover{z-index:2;transform:scale(1.05)}.game-cover{background:linear-gradient(180deg, transparent 40%, #000000e0), var(--bg2);background-position:50%;background-size:cover;position:absolute;inset:0}.game-meta{z-index:1;padding:12px 10px;position:absolute;bottom:0;left:0;right:0}.game-meta h3{margin:0;font-size:.95rem;font-weight:700}.panel{border:none;border-bottom:1px solid var(--line);background:0 0;border-radius:0;margin-bottom:28px;padding:0 0 28px}.panel:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}.panel h3{font-family:var(--font-body);letter-spacing:-.01em;margin:0 0 6px;font-size:1.2rem;font-weight:700}.panel-lead{color:var(--muted);max-width:52ch;margin:0 0 18px;font-size:.92rem;line-height:1.45}.panel-tile{background:#ffffff0a;border:none;border-radius:4px;padding:16px}.row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.btn-sm{width:auto;min-height:36px;padding:8px 14px;font-size:.85rem;font-weight:600}.btn.btn-sm.btn-primary,.btn.btn-sm.btn-ghost,.btn.btn-sm.btn-danger,.btn.btn-sm.btn-toggle{width:auto}.btn-toggle{color:var(--muted);background:0 0;border:1px solid #ffffff38;width:auto}.btn-toggle:hover:not(:disabled){color:var(--ink);background:#ffffff0f;border-color:#fff6}.btn-toggle.is-on{color:var(--ink);background:#46d3691f;border-color:#46d36973}.btn-toggle.is-on:hover:not(:disabled){background:#46d3692e;border-color:#46d36999}.admin-list{flex-direction:column;display:flex}.admin-list-row{border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 16px;padding:16px 0;display:flex}.admin-list-row:last-child{border-bottom:none}.admin-list-main{flex-direction:column;flex:200px;gap:4px;min-width:0;display:flex}.admin-list-title{flex-wrap:wrap;align-items:center;gap:8px;font-size:1rem;line-height:1.25;display:flex}.admin-list-title .badge{margin-bottom:0}.admin-list-sub{color:var(--muted);font-size:.8rem}.admin-list-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.admin-list-actions .field{background-position:right 12px center;flex:none;width:120px;min-width:0;height:36px;padding:0 32px 0 12px;font-size:.85rem;line-height:34px}.admin-reveal{border-left:3px solid var(--accent);background:#00000073;border-radius:0 4px 4px 0;margin-top:16px;padding:14px 16px}.admin-reveal .invite-eyebrow{margin-bottom:8px!important}.admin-reveal .code-reveal{background:0 0;border:none;margin:0;padding:4px 0 10px}.admin-reveal .btn{width:auto}.field-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 12px;margin-bottom:16px;display:grid}@media (width<=640px){.field-grid{grid-template-columns:1fr}}.field-group{flex-direction:column;gap:6px;min-width:0;display:flex}.field-label{letter-spacing:.02em;color:var(--muted);font-size:.78rem;font-weight:600;line-height:1.2}.field-label .optional{opacity:.75;font-weight:500}.field{box-sizing:border-box;width:100%;min-width:160px;height:44px;color:var(--ink);background:#333;border:1px solid #0000;border-radius:4px;flex:1;padding:0 14px;line-height:42px}select.field{appearance:none;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' fill='none'%3E%3Cpath stroke='%23999999' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m1.5 1.75 4.5 4.5 4.5-4.5'/%3E%3C/svg%3E");background-position:right 14px center;background-repeat:no-repeat;background-size:12px 8px;padding-right:36px}select.field option{color:var(--ink);background:#222}.field[type=file]{color:var(--muted);cursor:pointer;align-items:center;padding:8px 10px;font-size:.9rem;line-height:normal;display:flex}.field[type=file]::file-selector-button{appearance:none;color:var(--ink);font:inherit;cursor:pointer;background:#4a4a4a;border:none;border-radius:3px;margin-right:12px;padding:6px 12px;font-size:.85rem;font-weight:600;transition:background .15s}.field[type=file]::file-selector-button:hover{background:#5a5a5a}.field:focus{outline-offset:0;border-color:#0000;outline:2px solid #e509148c}.error{color:var(--danger);margin:10px 0 0;font-size:.92rem}.muted{color:var(--muted)}.code-reveal{letter-spacing:.12em;border:1px solid var(--accent-dim);word-break:break-all;background:#000;border-radius:4px;padding:14px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:1.15rem}.invite-hero{background:radial-gradient(90% 55% at 50% -10%,#e5091459,#0000 55%),linear-gradient(#00000059 0%,#000000d1 42%,#141414 100%),url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.08'/%3E%3C/svg%3E"),#141414;align-content:start;padding-top:0}.invite-hero:before{background:radial-gradient(circle at 12% 88%,#e509142e,#0000 42%),radial-gradient(circle at 88% 18%,#ffffff0d,#0000 38%)}.invite-topbar{z-index:2;height:calc(68px + env(safe-area-inset-top));padding:env(safe-area-inset-top) 4% 0;background:linear-gradient(#000000d9 0%,#0000);align-items:center;display:flex;position:absolute;top:0;left:0;right:0}.invite-claim-card{margin-top:calc(68px + env(safe-area-inset-top) + 24px);background:#000000c7;width:min(480px,100%);margin-bottom:40px;box-shadow:0 0 0 1px #ffffff0f,0 24px 64px #000000a6}.invite-claim-card.is-revealed{animation:.45s both invite-card-in}.invite-loading{text-align:center;place-items:center;gap:16px;padding:28px 0 12px;display:grid}.invite-spinner{border:3px solid #ffffff26;border-top-color:var(--accent);border-radius:50%;width:36px;height:36px;animation:.75s linear infinite invite-spin}.invite-stage{animation:.45s both fade-up}.invite-eyebrow{letter-spacing:.14em;text-transform:uppercase;font-weight:700;color:var(--muted)!important;margin:0 0 8px!important;font-size:.78rem!important}.invite-eyebrow.warn{color:var(--accent)!important}.invite-headline{font-family:var(--font-body);letter-spacing:-.02em;color:var(--ink);margin:0 0 14px;font-size:clamp(1.85rem,5vw,2.35rem);font-weight:700;line-height:1.1}.invite-copy{line-height:1.45;color:var(--muted)!important;margin:0 0 28px!important;font-size:1rem!important}.invite-fineprint{text-align:center;color:#b3b3b3bf!important;margin:18px 0 0!important;font-size:.8rem!important}.invite-urgency{font-family:var(--font-display);letter-spacing:.05em;color:var(--ink);text-align:center;margin:0 0 14px;font-size:clamp(2.2rem,7vw,3rem);font-weight:400;line-height:.95}.invite-urgency span{color:var(--accent);margin-top:.12em;animation:1.35s ease-in-out infinite invite-pulse;display:block}.invite-urgency-sub{text-align:center;line-height:1.4;color:#e5e5e5!important;margin:0 0 22px!important;font-size:.95rem!important}.invite-code-panel{background:linear-gradient(#1a1a1a,#0a0a0a);border:1px solid #e5091473;border-radius:4px;margin-bottom:18px;padding:16px;box-shadow:inset 0 0 0 1px #ffffff0a}.invite-code-label{letter-spacing:.16em;text-transform:uppercase;color:var(--muted);text-align:center;margin-bottom:10px;font-size:.72rem;font-weight:700}.invite-code-reveal{text-align:center;letter-spacing:.1em;color:var(--ink);text-shadow:0 0 24px #e5091440;-webkit-user-select:all;user-select:all;white-space:nowrap;word-break:normal;-webkit-overflow-scrolling:touch;background:0 0;border:none;padding:16px 8px;font-size:clamp(.95rem,3.6vw,1.35rem);overflow-x:auto}.invite-actions{gap:12px;display:grid}.invite-cta{letter-spacing:.01em;width:100%;min-height:52px;font-size:1.05rem;font-weight:700}.invite-cta.is-copied{background:var(--ok)}.invite-cta.is-copied:hover:not(:disabled){background:#3ec05c}.invite-continue{border-radius:4px;width:100%;min-height:52px;font-size:1rem}.invite-continue:before{content:none}.invite-claim-card .btn-primary,.invite-claim-card a.btn-primary{justify-content:center;align-items:center;width:100%;text-decoration:none;display:inline-flex}.invite-error{text-align:center;margin-top:16px}.invite-link-reveal{color:#e5e5e5;line-height:1.4;letter-spacing:normal!important;font-size:.92rem!important}.invite-compose{flex-wrap:wrap;align-items:stretch;gap:10px;display:flex}.invite-compose .field{flex:220px;min-width:0;margin:0}.invite-compose-actions{flex-wrap:wrap;align-items:stretch;gap:8px;display:flex}.invite-compose-actions .btn{white-space:nowrap;width:auto;min-height:44px;padding:0 18px}.invite-open-row{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding:14px 0;display:flex}.invite-open-row:last-child{border-bottom:none}.invite-open-meta{flex-wrap:wrap;align-items:center;gap:8px 12px;min-width:0;display:flex}.invite-open-meta strong{font-size:.98rem}.invite-status-pill{letter-spacing:.08em;text-transform:uppercase;width:fit-content;color:var(--ok);background:#46d3691f;border-radius:2px;padding:3px 7px;font-size:.68rem;font-weight:700;display:inline-block}@keyframes invite-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.82;transform:scale(1.03)}}@keyframes invite-spin{to{transform:rotate(360deg)}}@keyframes invite-card-in{0%{opacity:.6;transform:translateY(10px)scale(.98)}to{opacity:1;transform:none}}.progress{background:#ffffff1f;border-radius:0;height:4px;margin-top:10px;overflow:hidden}.progress>span{background:var(--accent);height:100%;transition:width .35s;display:block}.progress.lg{height:6px}.convert-card{background:#0006;border:none;border-radius:4px;min-width:min(420px,100%);margin-top:12px;padding:16px}.convert-card .step{color:var(--ink);margin:8px 0 0;font-size:.92rem}.convert-card .pct{font-variant-numeric:tabular-nums;color:var(--accent);font-weight:700}.steps-list{gap:6px;margin:12px 0 0;padding:0;list-style:none;display:grid}.steps-list li{color:var(--muted);align-items:center;gap:8px;font-size:.8rem;display:flex}.steps-list li.done{color:var(--ok)}.steps-list li.active{color:var(--accent);font-weight:600}.steps-list li .dot{background:currentColor;border-radius:50%;flex:none;width:8px;height:8px}@keyframes fade-up{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}.empty{text-align:center;color:var(--muted);background:#ffffff0a;border:none;border-radius:4px;margin:0 4%;padding:56px 24px}.footer-note{color:var(--muted);margin:8px 4% 0;font-size:.9rem}.footer-note a{color:var(--ink);text-underline-offset:3px;text-decoration:underline}.saves-page .section-head{margin-bottom:8px}.save-panel{margin-top:18px}.save-list{gap:16px;display:grid}.save-card{background:linear-gradient(#ffffff0f,#ffffff08);border:none;border-radius:6px;padding:16px;transition:background .2s,box-shadow .2s,transform .2s;animation:.45s both fade-up}.save-card:hover{background:linear-gradient(#ffffff14,#ffffff0a);box-shadow:0 10px 28px #00000059}.save-card.is-drop{background:linear-gradient(#e509142e,#ffffff0a);box-shadow:0 0 0 1px #e509148c,0 12px 32px #00000073}.save-card-main{align-items:stretch;gap:16px;display:flex}.save-thumb{background:linear-gradient(160deg,#2a0a0c,#1a1a1a 60%) 50%/cover;border-radius:4px;flex:none;width:72px;height:108px;box-shadow:0 8px 18px #00000073}.save-card-body{flex-direction:column;flex:1;justify-content:center;gap:10px;min-width:0;display:flex}.save-card-meta h3{font-family:var(--font-body);letter-spacing:.01em;margin:0 0 4px;font-size:1.2rem;font-weight:700}.save-card-meta p{margin:0;font-size:.88rem;line-height:1.4}.save-actions{margin-top:0}.save-actions .btn{width:auto}.save-drop{width:100%;color:var(--ink);text-align:left;cursor:pointer;background:#00000047;border:1px dashed #ffffff38;border-radius:6px;flex-direction:column;align-items:flex-start;gap:4px;margin-top:14px;padding:18px 16px;transition:border-color .15s,background .15s,transform .15s;display:flex}.save-drop:hover:not(:disabled),.save-drop.is-active{border-color:var(--accent);background:#e509141f;transform:translateY(-1px)}.save-drop:disabled{opacity:.7;cursor:wait}.save-drop-title{font-size:.98rem;font-weight:700}.save-drop-sub{font-size:.84rem;line-height:1.4}.save-drop-sub code{font-size:.8em}.save-card-foot{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-top:12px;display:flex}.save-foot-actions{align-items:center;gap:14px;display:flex}.save-link-btn{color:var(--muted);font:inherit;cursor:pointer;text-underline-offset:3px;background:0 0;border:none;padding:0;font-size:.84rem;text-decoration:underline}.save-link-btn:hover:not(:disabled){color:var(--ink)}.save-link-btn:disabled{opacity:.55;cursor:wait}.save-files-toggle{color:var(--muted);font:inherit;cursor:pointer;text-underline-offset:3px;background:0 0;border:none;padding:0;font-size:.88rem;text-decoration:underline}.save-files-toggle:hover{color:var(--ink)}.save-file-list{border:1px solid var(--line);background:#000;border-radius:4px;max-height:220px;margin:10px 0 0;padding:0;list-style:none;overflow:auto}.save-file-list li{border-bottom:1px solid var(--line);justify-content:space-between;gap:12px;padding:8px 12px;font-size:.82rem;display:flex}.save-file-list li:last-child{border-bottom:none}.save-file-list code{color:var(--ink);word-break:break-all}.save-notice{color:var(--ok);margin:10px 0 0;font-size:.9rem}@media (width<=640px){.save-thumb{width:56px;height:84px}.save-card-meta h3{font-size:1.05rem}.save-drop{padding:14px 12px}}.editor-overlay{z-index:80;padding:max(12px, env(safe-area-inset-top)) 12px max(12px, env(safe-area-inset-bottom));background:#000000b8;justify-content:center;align-items:stretch;display:flex;position:fixed;inset:0}.editor-modal{border:1px solid var(--line);width:min(1100px,100%);max-height:100%;box-shadow:var(--shadow);background:#0c0c0c;border-radius:8px;flex-direction:column;gap:12px;padding:16px 18px 20px;display:flex;overflow:auto}.editor-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.editor-kicker{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:0 0 2px;font-size:.75rem}.editor-head h3{font-family:var(--font-body);margin:0;font-size:1.25rem}.editor-notice{color:var(--ok);margin:0;font-size:.9rem}.editor-layout{flex:1;grid-template-columns:220px 1fr;gap:14px;min-height:0;display:grid}@media (width<=720px){.editor-layout{grid-template-columns:1fr}}.editor-aside-label{margin:0 0 8px;font-size:.8rem}.editor-slots ul{gap:6px;margin:0;padding:0;list-style:none;display:grid}.editor-slots button{text-align:left;border:1px solid var(--line);width:100%;color:var(--ink);cursor:pointer;background:#000;border-radius:4px;gap:2px;padding:10px 12px;display:grid}.editor-slots button:hover:not(:disabled){border-color:#ffffff47}.editor-slots button.is-active{border-color:var(--accent);background:#16080a}.editor-slots button:disabled{opacity:.45;cursor:not-allowed}.editor-slot-name{font-size:.92rem;font-weight:600}.editor-toolbar{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:10px;display:flex}.editor-search{border:1px solid var(--line);min-width:0;color:var(--ink);background:#000;border-radius:4px;flex:180px;padding:8px 10px}.editor-toggle{color:var(--muted);-webkit-user-select:none;user-select:none;align-items:center;gap:6px;font-size:.88rem;display:inline-flex}.editor-warn{margin:0 0 10px;font-size:.85rem}.editor-vars{gap:6px;max-height:min(58vh,560px);padding-right:2px;display:grid;overflow:auto}.editor-var{border:1px solid var(--line);background:#050505;border-radius:4px;grid-template-columns:minmax(0,1fr) auto minmax(120px,180px);align-items:center;gap:8px;padding:8px 10px;display:grid}.editor-var.is-dirty{background:#120608;border-color:#e509148c}.editor-var-path{word-break:break-all;color:var(--ink);font-size:.8rem}.editor-var-type{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:.72rem}.editor-var-input{border:1px solid var(--line);width:100%;color:var(--ink);background:#000;border-radius:3px;padding:6px 8px;font-size:.88rem}.editor-var input[type=checkbox]{justify-self:end;width:18px;height:18px}@media (width<=560px){.editor-var{grid-template-columns:1fr auto}.editor-var-type{grid-area:1/2}.editor-var-input,.editor-var input[type=checkbox]{grid-column:1/-1}}.crumb{color:var(--muted);margin:0 0 6px;font-size:.85rem}.crumb a{color:var(--muted);text-decoration:none}.crumb a:hover{color:var(--ink)}.game-edit-summary{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px;margin-bottom:22px;display:grid}.game-edit-summary>div,.game-edit-stats>div{background:#ffffff0a;border:none;border-radius:4px;flex-direction:column;gap:4px;padding:14px 16px;display:flex}.game-edit-summary strong,.game-edit-stats strong{font-family:var(--font-display);letter-spacing:.02em;font-size:1.35rem;font-weight:700}.game-edit-summary .muted,.game-edit-stats .muted{font-size:12px}.game-edit-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:18px;display:grid}.game-edit-card{background:#ffffff08;border:none;border-radius:4px;flex-direction:column;display:flex;overflow:hidden}.game-edit-cover{aspect-ratio:2/3;background-color:#0000;background-image:linear-gradient(#1a1a1a,#0d0d0d),repeating-linear-gradient(-12deg,#1a1a1a 0 12px,#151515 12px 24px);background-position:50%;background-repeat:repeat,repeat;background-size:cover;background-attachment:scroll,scroll;background-origin:padding-box,padding-box;background-clip:border-box,border-box;place-items:center;max-height:280px;display:grid;position:relative}.game-edit-cover-actions{opacity:0;transition:opacity .18s,transform .18s;position:absolute;bottom:10px;left:10px;right:10px;transform:translateY(4px)}.game-edit-card:hover .game-edit-cover-actions,.game-edit-card:focus-within .game-edit-cover-actions{opacity:1;transform:none}.game-edit-cover-actions .btn{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);width:100%}.game-edit-body .btn{width:auto}.game-edit-body{flex-direction:column;flex:1;padding:16px;display:flex}.game-edit-stats{grid-template-columns:1fr 1fr;gap:8px;margin-bottom:4px;display:grid}.game-edit-stats>div{padding:10px 12px}.game-edit-stats strong{font-size:1.05rem}@media (width<=520px){.game-edit-cover{max-height:220px}.game-edit-cover-actions{opacity:1;transform:none}}
