:root{--color-bg: #f0e0d6;--color-bg-elevated: #f8efe8;--color-text: #800000;--color-text-muted: #9c5c50;--color-border: #d8c3b2;--color-accent: #1c71d8;--color-accent-hover: #155cb3;--color-danger: #b32828}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--color-bg: #282a2e;--color-bg-elevated: #31343a;--color-text: #c5c8c6;--color-text-muted: #8b8f93;--color-border: #3c4046;--color-accent: #1c71d8;--color-accent-hover: #3d8ae5;--color-danger: #e06c75}}:root[data-theme=dark]{--color-bg: #282a2e;--color-bg-elevated: #31343a;--color-text: #c5c8c6;--color-text-muted: #8b8f93;--color-border: #3c4046;--color-accent: #1c71d8;--color-accent-hover: #3d8ae5;--color-danger: #e06c75}:root[data-theme=light]{--color-bg: #f0e0d6;--color-bg-elevated: #f8efe8;--color-text: #800000;--color-text-muted: #9c5c50;--color-border: #d8c3b2;--color-accent: #1c71d8;--color-accent-hover: #155cb3;--color-danger: #b32828}:root{color-scheme:light dark;font-family:Inter,system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}body{margin:0;min-height:100vh;background-color:var(--color-bg);color:var(--color-text)}a{color:var(--color-accent);text-decoration:inherit}a:hover{color:var(--color-accent-hover)}button{border-radius:8px;border:1px solid var(--color-border);padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:var(--color-bg-elevated);color:var(--color-text);cursor:pointer;transition:border-color .15s,background-color .15s}button:hover{border-color:var(--color-accent)}button:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.site-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.5rem;border-bottom:1px solid var(--color-border)}.site-header__logo{font-weight:700;font-size:1.25rem;color:var(--color-text)}.site-header__actions{display:flex;align-items:center;gap:1rem}.site-header__nav-link{color:var(--color-text-muted);font-size:.95rem}.site-header__nav-link:hover{color:var(--color-text)}.site-header__cta{display:inline-block;padding:.5em 1em;border-radius:8px;background-color:var(--color-accent);color:#fff}.site-header__cta:hover{background-color:var(--color-accent-hover);color:#fff}.profile-menu{position:relative}.profile-menu__trigger{padding:0;border:none;background:none;border-radius:999px;cursor:pointer}.profile-menu__avatar{width:36px;height:36px;border-radius:999px;display:block;object-fit:cover}.profile-menu__avatar--placeholder{background-color:var(--color-bg-elevated);border:1px solid var(--color-border)}.profile-menu__dropdown{position:absolute;right:0;top:calc(100% + .5rem);min-width:200px;background-color:var(--color-bg-elevated);border:1px solid var(--color-border);border-radius:8px;padding:.5rem;display:flex;flex-direction:column;gap:.25rem;z-index:10}.profile-menu__section{padding:.5rem}.profile-menu__label{display:block;font-size:.75rem;color:var(--color-text-muted);margin-bottom:.4rem}.profile-menu__theme-options{display:flex;gap:.25rem}.profile-menu__theme-option{flex:1;padding:.3em .5em;font-size:.8rem;text-transform:capitalize}.profile-menu__theme-option--active{border-color:var(--color-accent);color:var(--color-accent)}.profile-menu__region-select{width:100%;padding:.3em .5em;font-size:.8rem}.profile-menu__item{display:block;padding:.5rem;border-radius:6px;color:var(--color-text)}.profile-menu__item:hover{background-color:var(--color-bg);color:var(--color-text)}.landing{--landing-max: 68rem;overflow-x:clip}.landing__hero{position:relative;max-width:var(--landing-max);margin:0 auto;padding:5rem 1.5rem 3rem;text-align:center;isolation:isolate}.landing__glow{position:absolute;inset:-4rem 0 auto;height:28rem;z-index:-1;background:radial-gradient(40rem 18rem at 50% 30%,color-mix(in srgb,var(--color-accent) 28%,transparent),transparent 70%),radial-gradient(24rem 14rem at 80% 10%,color-mix(in srgb,var(--color-accent) 14%,transparent),transparent 70%);filter:blur(8px);animation:landing-glow 9s ease-in-out infinite alternate}@keyframes landing-glow{to{transform:translateY(1.5rem) scale(1.06);opacity:.8}}.landing__eyebrow{display:inline-block;margin:0 0 1.25rem;padding:.3em .9em;border:1px solid var(--color-border);border-radius:999px;background:var(--color-bg-elevated);color:var(--color-text-muted);font-size:.8rem;letter-spacing:.08em;text-transform:uppercase}.landing__title{margin:0 auto;max-width:14em;font-size:clamp(2.4rem,7vw,4.5rem);line-height:1.05;font-weight:700;letter-spacing:-.03em}.landing__title span{background:linear-gradient(100deg,var(--color-accent),color-mix(in srgb,var(--color-accent) 55%,var(--color-text)));-webkit-background-clip:text;background-clip:text;color:transparent}.landing__lead{max-width:38rem;margin:1.5rem auto 0;font-size:clamp(1.02rem,2.2vw,1.2rem);line-height:1.6;color:var(--color-text-muted)}.landing__cta-row{display:flex;flex-wrap:wrap;justify-content:center;gap:.75rem;margin-top:2rem}.landing__cta{display:inline-block;padding:.8em 1.6em;border-radius:10px;border:1px solid var(--color-accent);background-color:var(--color-accent);color:var(--color-on-accent);font-weight:500;transition:transform .15s,background-color .15s,box-shadow .15s;box-shadow:0 6px 24px color-mix(in srgb,var(--color-accent) 35%,transparent)}.landing__cta:hover{background-color:var(--color-accent-hover);color:var(--color-on-accent);transform:translateY(-1px)}.landing__cta:focus-visible{outline:2px solid var(--color-focus-ring);outline-offset:2px}.landing__cta--ghost{background:transparent;color:var(--color-text);border-color:var(--color-border);box-shadow:none}.landing__cta--ghost:hover{background:var(--color-bg-elevated);color:var(--color-text);border-color:var(--color-accent)}.landing__preview{max-width:40rem;margin:3.5rem auto 0;border:1px solid var(--color-border);border-radius:14px;background:var(--color-bg-elevated);box-shadow:0 24px 60px -20px color-mix(in srgb,var(--color-accent) 35%,transparent);text-align:left;overflow:hidden;transform:perspective(1200px) rotateX(4deg);animation:landing-rise .9s cubic-bezier(.2,.7,.2,1) both}@keyframes landing-rise{0%{opacity:0;transform:perspective(1200px) rotateX(10deg) translateY(2rem)}}.landing__preview-bar{display:flex;align-items:center;gap:.4rem;padding:.65rem .9rem;border-bottom:1px solid var(--color-border);font-size:.75rem;color:var(--color-text-muted)}.landing__preview-bar i{width:.6rem;height:.6rem;border-radius:50%;background:var(--color-border)}.landing__preview-bar span{margin-left:.6rem}.landing__preview-rows{list-style:none;margin:0;padding:.4rem}.landing__preview-rows li{display:flex;align-items:center;gap:.8rem;padding:.6rem .7rem;border-radius:8px}.landing__preview-rows li:first-child{background:color-mix(in srgb,var(--color-accent) 10%,transparent)}.landing__preview-art{flex:none;width:2.2rem;aspect-ratio:3 / 4;border-radius:4px;background:linear-gradient(145deg,color-mix(in srgb,var(--color-accent) 55%,var(--color-bg-elevated)),var(--color-border))}.landing__preview-name{flex:1;min-width:0;font-weight:500}.landing__preview-name small{display:block;font-weight:400;color:var(--color-text-muted)}.landing__preview-when{font-size:.8rem;color:var(--color-text-muted);white-space:nowrap}.landing__preview-star{color:var(--color-border)}.landing__preview-star.is-on{color:var(--color-accent)}.landing__stats{max-width:var(--landing-max);margin:2rem auto 0;padding:0 1.5rem;display:grid;grid-template-columns:repeat(auto-fit,minmax(9.5rem,1fr));gap:.9rem}.landing__stat{padding:1.2rem 1rem;border:1px solid var(--color-border);border-radius:12px;background:var(--color-bg-elevated);text-align:center}.landing__stat-value{font-size:clamp(1.6rem,4vw,2.2rem);font-weight:700;letter-spacing:-.02em;font-variant-numeric:tabular-nums;color:var(--color-accent)}.landing__stat-value small{margin-left:.2em;font-size:.5em;font-weight:500;color:var(--color-text-muted)}.landing__stat-label{margin-top:.2rem;font-size:.82rem;color:var(--color-text-muted)}.landing__consoles{margin:3rem 0 0;padding:.9rem 0;border-block:1px solid var(--color-border);-webkit-mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent);mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent)}.landing__marquee{display:flex;width:max-content;animation:landing-scroll 40s linear infinite}.landing__marquee:hover{animation-play-state:paused}.landing__marquee-track{display:flex;flex:none;gap:2.5rem;padding:0 1.25rem;margin:0;list-style:none}.landing__console{display:flex;align-items:center;gap:.6rem;white-space:nowrap;color:var(--color-text-muted);font-weight:500}.landing__console img{border-radius:6px;object-fit:contain}@keyframes landing-scroll{to{transform:translate(-50%)}}.landing__section{max-width:var(--landing-max);margin:0 auto;padding:5rem 1.5rem 0}.landing__section h2,.landing__final h2{margin:0;text-align:center;font-size:clamp(1.6rem,4vw,2.3rem);letter-spacing:-.02em}.landing__section-lead{margin:.6rem 0 0;text-align:center;color:var(--color-text-muted)}.landing__features{margin-top:2.5rem;display:grid;grid-template-columns:repeat(auto-fit,minmax(17rem,1fr));gap:1rem}.landing__feature{padding:1.5rem;border:1px solid var(--color-border);border-radius:14px;background:var(--color-bg-elevated);transition:transform .2s,border-color .2s}.landing__feature:hover{transform:translateY(-3px);border-color:var(--color-accent)}.landing__feature-icon{display:grid;place-items:center;width:2.5rem;height:2.5rem;border-radius:10px;background:color-mix(in srgb,var(--color-accent) 16%,transparent);color:var(--color-accent);font-size:1.2rem}.landing__feature h3{margin:1rem 0 .4rem;font-size:1.1rem}.landing__feature p{margin:0;line-height:1.6;color:var(--color-text-muted);font-size:.95rem}.landing__steps{list-style:none;counter-reset:step;margin:2.5rem 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(14rem,1fr));gap:1.5rem}.landing__steps li{counter-increment:step;position:relative;padding-top:3.2rem}.landing__steps li:before{content:counter(step);position:absolute;top:0;left:0;display:grid;place-items:center;width:2.4rem;height:2.4rem;border-radius:50%;background:var(--color-accent);color:var(--color-on-accent);font-weight:700}.landing__steps h3{margin:0 0 .3rem}.landing__steps p{margin:0;line-height:1.6;color:var(--color-text-muted)}.landing__final{max-width:var(--landing-max);margin:5rem auto 0;padding:3.5rem 1.5rem;text-align:center;border:1px solid var(--color-border);border-radius:20px;background:radial-gradient(30rem 12rem at 50% 0%,color-mix(in srgb,var(--color-accent) 20%,transparent),transparent 70%),var(--color-bg-elevated);width:calc(100% - 3rem)}.landing__final p{margin:.7rem 0 0;color:var(--color-text-muted)}.landing__cta-row--center{margin-top:1.75rem}.landing__footer{max-width:var(--landing-max);margin:3rem auto 0;padding:1.5rem 1.5rem 2.5rem;display:flex;flex-wrap:wrap;gap:.5rem 1.5rem;border-top:1px solid var(--color-border);font-size:.9rem;color:var(--color-text-muted)}.landing__footer span{margin-right:auto}@media(prefers-reduced-motion:reduce){.landing__glow,.landing__marquee,.landing__preview{animation:none}.landing__marquee{flex-wrap:wrap;width:auto;justify-content:center}.landing__marquee-track[aria-hidden=true]{display:none}.landing__feature,.landing__cta{transition:none}}@media(max-width:560px){.landing__hero{padding-top:3rem}.landing__preview-when{display:none}}.games-page{padding:1.5rem}.games-page__toolbar{display:flex;gap:1rem;margin-bottom:1.5rem}.games-page__search{flex:1;padding:.6em 1em;border-radius:8px;border:1px solid var(--color-border);background-color:var(--color-bg-elevated);color:var(--color-text);font-size:1em}.games-page__view-toggle{display:flex;gap:.25rem}.games-page__add{display:inline-flex;align-items:center;padding:.5em 1em;border-radius:8px;background-color:var(--color-accent);color:#fff;white-space:nowrap}.games-page__add:hover{background-color:var(--color-accent-hover);color:#fff}.games-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:1rem}.game-card{color:var(--color-text);border:1px solid var(--color-border);border-radius:10px;overflow:hidden;display:block}.game-card:hover{border-color:var(--color-accent);color:var(--color-text)}.game-card__art{position:relative;aspect-ratio:3 / 4;background-color:var(--color-bg-elevated)}.game-card__art-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.game-card__corner{position:absolute;font-size:.7rem;padding:.2em .4em;border-radius:4px;background-color:#0009;color:#fff}.game-card__corner--tl{top:.4em;left:.4em}.game-card__corner--tr{top:.4em;right:.4em}.game-card__corner--bl{bottom:.4em;left:.4em}.game-card__corner--br{bottom:.4em;right:.4em}.game-card__name{padding:.6em;font-size:.9rem}.games-list{width:100%;border-collapse:collapse}.games-list td{padding:.6em;border-bottom:1px solid var(--color-border)}.games-list__label{color:var(--color-text-muted)}.combobox{position:relative}.combobox input{width:100%;padding:.5em .7em;border-radius:8px;border:1px solid var(--color-border);background-color:var(--color-bg-elevated);color:var(--color-text);font-size:1em}.combobox__list{position:absolute;top:calc(100% + .25rem);left:0;right:0;max-height:220px;overflow-y:auto;background-color:var(--color-bg-elevated);border:1px solid var(--color-border);border-radius:8px;padding:.25rem;margin:0;list-style:none;z-index:10}.combobox__list button{display:block;width:100%;text-align:left;padding:.4em .6em;border:none;background:none;border-radius:6px;color:var(--color-text)}.combobox__list button:hover{background-color:var(--color-bg);border-color:transparent}.new-game{padding:1.5rem;max-width:420px}.new-game form{display:flex;flex-direction:column;gap:1rem}.new-game label{display:flex;flex-direction:column;gap:.3rem;font-size:.9rem;color:var(--color-text-muted)}.new-game__hint{margin:.3rem 0 0;font-size:.8rem;color:var(--color-accent)}.new-game__text-input{width:100%;padding:.5em .7em;border-radius:8px;border:1px solid var(--color-border);background-color:var(--color-bg-elevated);color:var(--color-text);font-size:1em}.new-game__error{color:var(--color-danger)}.game-detail{padding:1.5rem}.game-detail__header{display:flex;align-items:center;gap:.75rem;margin-bottom:1rem}.game-detail__icon{width:48px;height:48px;border-radius:8px;object-fit:cover;background-color:var(--color-bg-elevated)}.game-detail__edit-name{background:none;border:none;font-size:1rem;color:var(--color-text-muted);padding:.2em}.game-detail__edit-name:hover{color:var(--color-accent)}.game-detail__name-form{display:flex;align-items:center;gap:.5em}.game-detail__name-form input{padding:.4em .6em;border-radius:6px;border:1px solid var(--color-border);background-color:var(--color-bg-elevated);color:var(--color-text);font-size:1.2rem}.game-detail__upload{margin:1rem 0}.game-detail__error{color:var(--color-danger)}.game-detail__saves{width:100%;border-collapse:collapse}.game-detail__saves th{text-align:left;color:var(--color-text-muted);font-weight:500;font-size:.85rem;padding:.5em;border-bottom:1px solid var(--color-border)}.game-detail__saves td{padding:.5em;border-bottom:1px solid var(--color-border)}.game-detail__star{background:none;border:none;font-size:1.1rem;padding:.2em;color:var(--color-text-muted)}.game-detail__star--active{color:var(--color-accent)}.game-detail__danger-zone{margin-top:2rem;padding-top:1rem;border-top:1px solid var(--color-border)}.game-detail__delete{background:none;border:1px solid var(--color-danger);color:var(--color-danger);padding:.4em .8em;border-radius:6px;font-size:.9rem}.game-detail__delete:hover:not(:disabled){background-color:var(--color-danger);color:var(--color-bg)}.game-detail__delete:disabled{opacity:.6}.settings-page{display:flex;min-height:calc(100vh - 65px)}.settings-page__sidebar{width:220px;border-right:1px solid var(--color-border);padding:1rem;display:flex;flex-direction:column;gap:.25rem}.settings-page__nav-item{text-align:left;background:none;border:none;padding:.6em .8em;border-radius:6px;color:var(--color-text)}.settings-page__nav-item:hover{background-color:var(--color-bg-elevated)}.settings-page__nav-item--active{background-color:var(--color-bg-elevated);color:var(--color-accent)}.settings-page__content{flex:1;padding:1.5rem}.settings-sessions{list-style:none;padding:0;margin:0}.settings-sessions__item{display:flex;align-items:center;justify-content:space-between;padding:.75em 0;border-bottom:1px solid var(--color-border)}.settings-sessions__current,.settings-sessions__meta,.settings-link-device__hint{color:var(--color-text-muted);font-size:.85rem}.admin-hint{color:var(--color-text-muted);font-size:.85rem;max-width:60ch}.admin-error{color:#c0392b;font-size:.9rem}.admin-add-form{display:flex;flex-wrap:wrap;gap:.5rem;margin:.75rem 0}.admin-add-form input[type=email]{flex:1;min-width:16rem}.admin-list{list-style:none;padding:0;margin:0}.admin-list__item{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.75em 0;border-bottom:1px solid var(--color-border)}.admin-list__meta{color:var(--color-text-muted);font-size:.85rem}.admin-badge{display:inline-block;font-size:.7rem;text-transform:uppercase;letter-spacing:.04em;padding:.1em .5em;border-radius:999px;background-color:var(--color-bg-elevated);color:var(--color-text-muted);vertical-align:middle}.admin-rom-table-wrap{overflow-x:auto}.admin-rom-table{width:100%;border-collapse:collapse;font-size:.9rem}.admin-rom-table th,.admin-rom-table td{text-align:left;padding:.55em .75em .55em 0;border-bottom:1px solid var(--color-border);vertical-align:top}.admin-rom-table th{color:var(--color-text-muted);font-weight:600}.admin-rom-meta{font-size:.8rem}.admin-rom-meta code,.admin-list__meta code{font-size:.75rem;color:var(--color-text-muted)}.admin-rom-actions{display:flex;align-items:center;gap:.6rem;white-space:nowrap}.admin-rom-actions a{font-size:.85rem}.admin-rom-upload{cursor:pointer;font-size:.85rem;color:var(--color-accent)}.admin-rom-upload--busy{opacity:.5;cursor:default}.dev-admin{padding:1.5rem;max-width:700px}.dev-admin__warning{color:var(--color-danger);font-weight:500}.dev-admin__actions{display:flex;gap:.75rem;margin:1rem 0}.dev-admin__status{font-family:monospace;font-size:.85rem;background-color:var(--color-bg-elevated);padding:.5em;border-radius:6px;word-break:break-all}.dev-admin form{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:.5rem}.dev-admin input,.dev-admin select{padding:.4em .6em;border-radius:6px;border:1px solid var(--color-border);background-color:var(--color-bg-elevated);color:var(--color-text)}.dev-admin ul{padding-left:1.2rem}.docs{min-height:100vh;background-color:var(--color-bg);color:var(--color-text)}.docs__topbar{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.5rem;border-bottom:1px solid var(--color-border);font-size:.9rem}.docs__brand{font-weight:700;font-size:1.1rem;color:var(--color-text)}.docs__brand span{font-weight:400;color:var(--color-text-muted)}.docs__body{max-width:46rem;margin:0 auto;padding:2.5rem 1.5rem 5rem;line-height:1.65}.docs__body h1{font-size:1.9rem;margin:0 0 .75rem}.docs__lead{font-size:1.05rem;color:var(--color-text);margin:0 0 1.5rem}.docs__toc{display:flex;flex-wrap:wrap;gap:.5rem 1.25rem;padding:1rem 0;margin-bottom:1rem;border-top:1px solid var(--color-border);border-bottom:1px solid var(--color-border);font-size:.9rem}.docs__toc a{color:var(--color-text-muted)}.docs__toc a:hover{color:var(--color-accent)}.docs__body section{margin-top:2.75rem;scroll-margin-top:1rem}.docs__body h2{font-size:1.3rem;margin:0 0 .75rem}.docs__body h3{font-size:1rem;margin:1.5rem 0 .4rem}.docs__body ul,.docs__body ol{padding-left:1.35rem}.docs__body li{margin:.4rem 0}.docs__body code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.88em;background-color:var(--color-bg-elevated);border:1px solid var(--color-border);border-radius:4px;padding:.08em .32em}.docs__code{background-color:var(--color-bg-elevated);border:1px solid var(--color-border);border-radius:8px;padding:.9rem 1rem;overflow-x:auto;margin:.75rem 0}.docs__code code{background:none;border:none;padding:0;font-size:.82rem;line-height:1.5;white-space:pre}.account-deleted{max-width:32rem;margin:0 auto;padding:4rem 1.5rem}.account-deleted h1{font-size:1.5rem;margin:0 0 1rem}.account-deleted p{line-height:1.6;color:var(--color-text)}.account-deleted__error{color:var(--color-danger)}.account-deleted__actions{display:flex;align-items:center;gap:1rem;margin-top:2rem}.account-deleted__reinstate{background-color:var(--color-accent);color:var(--color-on-accent);border-color:transparent}.account-deleted__reinstate:hover:not(:disabled){background-color:var(--color-accent-hover);border-color:transparent}.account-deleted__reinstate:disabled{opacity:.6;cursor:default}.account-deleted__logout{color:var(--color-text-muted)}.account-deleted__logout:hover{color:var(--color-text)}.download{max-width:44rem;margin:0 auto;padding:3rem 1.5rem 4rem}.download h1{font-size:1.75rem;margin:0 0 1rem}.download__lead{font-size:1.05rem;line-height:1.6;color:var(--color-text);margin:0 0 2rem}.download__cta-row{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem 1rem}.download__cta{display:inline-block;padding:.7em 1.4em;border-radius:8px;background-color:var(--color-accent);color:var(--color-on-accent);font-weight:500;white-space:nowrap}.download__cta:hover{background-color:var(--color-accent-hover);color:var(--color-on-accent)}.download__cta-note{font-size:.9rem;color:var(--color-text-muted)}.download__platforms{list-style:none;padding:0;margin:1.25rem 0 0;display:flex;flex-wrap:wrap;gap:1.25rem;font-size:.95rem}.download__section{margin-top:2.5rem}.download__section h2{font-size:1.15rem;margin:0 0 .75rem}.download__section p{line-height:1.6;color:var(--color-text)}.download__section ol{line-height:1.6;padding-left:1.25rem}.download__section li{margin:.4rem 0}
