:root{--color-bg: #080810;--color-surface: #0d1117;--color-surface-hover: #141c22;--color-border: #1a2a20;--color-text: #c8d6c8;--color-text-muted: #5a7a5a;--color-primary: #00ff88;--color-primary-hover: #00cc6a;--color-accent: #00ff88;--color-glow: rgba(0,255,136,.15);--font-sans: system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono: "JetBrains Mono", "Fira Code", monospace;--font-pixel: "Press Start 2P", monospace;--max-width: 1200px;--radius: 8px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{color-scheme:dark}body{font-family:var(--font-sans);background-color:var(--color-bg);color:var(--color-text);line-height:1.6;min-height:100vh;display:flex;flex-direction:column}a{color:var(--color-accent);text-decoration:none}a:hover{text-decoration:underline}img{max-width:100%;height:auto}.container{width:100%;max-width:var(--max-width);margin:0 auto;padding:0 1rem}header{border-bottom:1px solid var(--color-border);padding:1rem 0}header .container{display:flex;align-items:center;justify-content:space-between}header .logo{font-size:1.25rem;font-weight:700;color:var(--color-text);display:flex;align-items:center;gap:.5rem}header .logo:hover{text-decoration:none;color:var(--color-accent)}nav{display:flex;gap:1.5rem}nav a{color:var(--color-text-muted);font-size:.875rem}nav a:hover{color:var(--color-text);text-decoration:none}.header-right{display:flex;align-items:center;gap:1.5rem}.account[hidden],.account [hidden]{display:none!important}.account{position:relative;font-size:.875rem}.account__signin{color:var(--color-text);border:1px solid var(--color-border);border-radius:999px;padding:.2rem .75rem;white-space:nowrap}.account__signin:hover{border-color:var(--color-accent);text-decoration:none}.account__trigger{list-style:none;display:flex;align-items:center;gap:.45rem;cursor:pointer;color:var(--color-text-muted);border-radius:999px;padding:.15rem .5rem .15rem .15rem;border:1px solid transparent}.account__trigger::-webkit-details-marker{display:none}.account__trigger:hover,.account__menu[open] .account__trigger{color:var(--color-text);border-color:var(--color-border)}.account__trigger:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.account__avatar{display:inline-grid;place-items:center;width:1.6rem;height:1.6rem;border-radius:50%;background:var(--color-glow);border:1px solid var(--color-primary);color:var(--color-primary);font-weight:700;font-size:.8rem}.account__email{max-width:14rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.account__admin{font-family:var(--font-mono);font-size:.65rem;letter-spacing:.04em;text-transform:uppercase;color:var(--color-text-muted);border:1px solid var(--color-border);border-radius:4px;padding:0 .3rem}.account__panel{position:absolute;right:0;top:calc(100% + .4rem);z-index:20;min-width:13rem;max-width:calc(100vw - 2rem);display:flex;flex-direction:column;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:0 10px 30px #00000080;padding:.4rem}.account__who{padding:.4rem .6rem .5rem;color:var(--color-text-muted);font-size:.8rem;border-bottom:1px solid var(--color-border);margin-bottom:.3rem;overflow-wrap:anywhere}.account__who strong{color:var(--color-text);font-weight:600}.account__panel a{color:var(--color-text);padding:.4rem .6rem;border-radius:4px}.account__panel a:hover{background:var(--color-surface-hover);text-decoration:none}main{flex:1;padding:2rem 0}body.app-page{height:100vh;height:100dvh;overflow:hidden}body.app-page header{padding:.5rem 0}body.app-page header .container{max-width:none}main.app-main{flex:1 1 auto;min-height:0;padding:0;display:flex;flex-direction:column}footer{border-top:1px solid var(--color-border);padding:1.5rem 0;text-align:center;color:var(--color-text-muted);font-size:.8rem}footer a{color:var(--color-text-muted)}.footer-disclaimer{margin-top:.5rem;font-size:.7rem;letter-spacing:.02em}.btn{display:inline-block;padding:.6rem 1.5rem;background:var(--color-primary);color:#04130b;border:1px solid var(--color-primary);border-radius:var(--radius);font-size:.9rem;font-weight:600;font-family:inherit;cursor:pointer;transition:background-color .15s ease,border-color .15s ease}.btn:hover{background:var(--color-primary-hover);border-color:var(--color-primary-hover);text-decoration:none}.btn:disabled{opacity:.6;cursor:not-allowed}.btn--ghost{background:transparent;color:var(--color-text);border-color:var(--color-border)}.btn--ghost:hover{background:var(--color-surface-hover);border-color:var(--color-accent)}.gallery-grid{display:grid;grid-template-columns:repeat(1,1fr);gap:1.5rem}@media(min-width:540px){.gallery-grid{grid-template-columns:repeat(2,1fr)}}@media(min-width:860px){.gallery-grid{grid-template-columns:repeat(3,1fr)}}@media(min-width:1100px){.gallery-grid{grid-template-columns:repeat(4,1fr)}}.param-badge{display:inline-flex;align-items:center;gap:.3rem;font-family:var(--font-mono);font-size:.68rem;line-height:1.4;padding:.12rem .45rem;border-radius:4px;background:#080810c7;border:1px solid var(--color-primary);color:var(--color-primary);white-space:nowrap}.param-badge:before{content:"";width:.4rem;height:.4rem;border-radius:50%;background:var(--color-primary);box-shadow:0 0 6px var(--color-glow)}.param-badge.play-badge{border-color:var(--color-accent);color:var(--color-accent)}.param-badge.play-badge:before{background:var(--color-accent);box-shadow:none}.versions-badge{display:inline-flex;align-items:center;font-family:var(--font-mono);font-size:.68rem;line-height:1.4;padding:.12rem .45rem;border-radius:4px;background:#080810c7;border:1px solid var(--color-accent);color:var(--color-accent);white-space:nowrap}.legal{max-width:46rem;margin:2rem auto;line-height:1.7}.legal h1{margin-bottom:.25rem}.legal h2{margin:2rem 0 .5rem;font-size:1.1rem}.legal p,.legal ul{margin-bottom:.9rem}.legal ul{padding-left:1.25rem}.legal-meta{color:var(--color-text-muted);font-size:.85rem}.legal-draft{border:1px solid var(--color-border);background:var(--color-surface);padding:.6rem .9rem;color:var(--color-text-muted)}@media(max-width:640px){header .container{flex-direction:column;gap:.75rem}.header-right{width:100%;justify-content:center;flex-wrap:wrap;gap:.75rem 1.25rem}header nav{gap:1.1rem}.account__email{display:none}}.hb-modal{margin:auto;width:min(30rem,calc(100vw - 2rem));max-height:calc(100dvh - 2rem);overflow:auto;padding:1.25rem 1.25rem 1rem;border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);color:var(--color-text);box-shadow:0 0 0 1px #00ff880f,0 18px 48px #0009}.hb-modal[open]{animation:hb-modal-in .14s ease-out}.hb-modal::backdrop{background:#020408a8;backdrop-filter:blur(2px)}.hb-modal__title{font-size:1.05rem;font-weight:700;margin-bottom:.6rem;color:var(--color-text)}.hb-modal__body{font-size:.9rem;color:var(--color-text-muted)}.hb-modal__body p+p{margin-top:.5rem}.hb-modal__body strong{color:var(--color-text)}.hb-modal__actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.5rem;margin-top:1.1rem}.hb-modal__btn{min-height:36px;padding:.4rem .9rem;border:1px solid var(--color-border);border-radius:6px;background:var(--color-bg);color:var(--color-text);font:inherit;font-size:.85rem;cursor:pointer}.hb-modal__btn:hover:not(:disabled){border-color:var(--color-accent);background:var(--color-surface-hover)}.hb-modal__btn:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.hb-modal__btn:disabled{opacity:.5;cursor:progress}.hb-modal__btn--primary{background:var(--color-primary);border-color:var(--color-primary);color:#04130b;font-weight:600}.hb-modal__btn--primary:hover:not(:disabled){background:var(--color-primary-hover);border-color:var(--color-primary-hover)}.hb-modal__btn--danger{color:#ff8fa3;border-color:#ff8fa373}.hb-modal__btn--danger:hover:not(:disabled){border-color:#ff8fa3;background:#ff8fa314}.hb-modal__label{display:flex;flex-direction:column;gap:.3rem;font-size:.8rem;color:var(--color-text-muted)}.hb-modal__input,.hb-send input[type=text],.hb-send input[type=number]{width:100%;min-height:36px;padding:.4rem .55rem;border:1px solid var(--color-border);border-radius:6px;background:var(--color-bg);color:var(--color-text);font:inherit;font-size:.9rem}.hb-modal__input:focus-visible,.hb-send input:focus-visible{outline:2px solid var(--color-accent);outline-offset:1px}.hb-modal__input[aria-invalid=true]{border-color:#ff8fa3}.hb-modal__hint{margin-top:.4rem;font-size:.78rem}@keyframes hb-modal-in{0%{opacity:0;transform:translateY(6px) scale(.985)}}.hb-modal--send{width:min(34rem,calc(100vw - 2rem))}.hb-send{display:flex;flex-direction:column;gap:.75rem;margin-top:.5rem}.hb-send [hidden]{display:none!important}.hb-send__what{color:var(--color-text)}.hb-send__note{padding:.5rem .65rem;border-left:2px solid var(--color-accent);background:var(--color-glow);color:var(--color-text);font-size:.82rem;border-radius:0 6px 6px 0}.hb-send__note--warn{border-left-color:#fc6;background:#ffcc6614}.hb-send__where{border:0;display:flex;flex-direction:column;gap:.4rem}.hb-send__where legend{font-size:.75rem;text-transform:uppercase;letter-spacing:.06em;margin-bottom:.35rem;font-weight:700}.hb-send__opt{display:flex;gap:.6rem;align-items:flex-start;padding:.55rem .7rem;border:1px solid var(--color-border);border-radius:6px;cursor:pointer;background:var(--color-bg)}.hb-send__opt:hover{border-color:color-mix(in srgb,var(--color-accent) 50%,var(--color-border))}.hb-send__opt:has(input:checked){border-color:var(--color-accent);background:var(--color-glow)}.hb-send__opt input{margin-top:.25rem;accent-color:var(--color-accent);flex:none}.hb-send__opt span{display:flex;flex-direction:column;gap:.1rem;min-width:0}.hb-send__opt strong{color:var(--color-text);font-size:.88rem}.hb-send__opt small{font-size:.78rem;color:var(--color-text-muted);overflow-wrap:anywhere}.hb-send__field{display:flex;flex-direction:column;gap:.3rem;font-size:.8rem}.hb-send__xyz{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.4rem}.hb-send__more summary{cursor:pointer;font-size:.8rem}.hb-send__more[open] summary{margin-bottom:.4rem}.hb-send__error{color:#ff8fa3;font-size:.82rem;min-height:1.2em}.hb-send__error:empty{display:none}.hb-toasts{position:fixed;z-index:1000;right:1rem;bottom:1rem;display:flex;flex-direction:column;align-items:flex-end;gap:.5rem;width:min(26rem,calc(100vw - 2rem));pointer-events:none}.hb-toast{pointer-events:auto;display:flex;align-items:center;gap:.6rem;width:100%;padding:.6rem .5rem .6rem .8rem;border:1px solid var(--color-border);border-left:3px solid var(--color-text-muted);border-radius:var(--radius);background:var(--color-surface);color:var(--color-text);font-size:.85rem;line-height:1.4;box-shadow:0 10px 28px #0000008c;animation:hb-toast-in .16s ease-out}.hb-toast.is-leaving{opacity:0;transform:translateY(4px);transition:opacity .16s,transform .16s}.hb-toast__text{flex:1;min-width:0;overflow-wrap:anywhere}.hb-toast__icon{flex:none;width:10px;height:10px;border-radius:50%;background:var(--color-text-muted)}.hb-toast[data-kind=ok]{border-left-color:var(--color-primary)}.hb-toast[data-kind=ok] .hb-toast__icon{background:var(--color-primary)}.hb-toast[data-kind=error]{border-left-color:#ff8fa3}.hb-toast[data-kind=error] .hb-toast__icon{background:#ff8fa3}.hb-toast[data-kind=busy]{border-left-color:#8ab4f8}.hb-toast[data-kind=busy] .hb-toast__icon{background:none;width:12px;height:12px;border:2px solid var(--color-border);border-top-color:#8ab4f8;animation:hb-spin .8s linear infinite}.hb-toast__action,.hb-toast__close{flex:none;border:1px solid var(--color-border);border-radius:5px;background:var(--color-bg);color:var(--color-text);font:inherit;font-size:.78rem;cursor:pointer;padding:.2rem .5rem}.hb-toast__close{border-color:transparent;background:none;color:var(--color-text-muted);font-size:1.05rem;line-height:1;padding:.15rem .4rem}.hb-toast__action:hover,.hb-toast__close:hover{border-color:var(--color-accent);color:var(--color-text)}.hb-toast__action:focus-visible,.hb-toast__close:focus-visible{outline:2px solid var(--color-accent)}@keyframes hb-toast-in{0%{opacity:0;transform:translateY(8px)}}@keyframes hb-spin{to{transform:rotate(360deg)}}@media(max-width:640px){.hb-toasts{right:50%;transform:translate(50%);bottom:.75rem;align-items:stretch}}@media(prefers-reduced-motion:reduce){.hb-modal[open],.hb-toast{animation:none}.hb-toast[data-kind=busy] .hb-toast__icon{animation-duration:2s}}.chip.chip--rating{color:#f2c94c;border-color:color-mix(in srgb,#f2c94c 60%,transparent)}
