@font-face{font-family:Galmuri11;font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/galmuri11-latin.woff2) format("woff2")}:root{color-scheme:light;--bg: #fafafa;--bg-elev: #ffffff;--bg-inset: #f1f0ec;--card: #ffffff;--fg: #1c1b19;--muted: #6b675f;--border: #d9d6cf;--accent: #3f6cd1;--accent-soft: color-mix(in srgb, var(--accent) 14%, transparent);--danger: #b4422a;--font-pixel: "Galmuri11", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;font-family:var(--font-pixel);font-synthesis:none}:root[data-theme=dark]{color-scheme:dark;--bg: #15141a;--bg-elev: #1e1c24;--bg-inset: #2a2832;--card: #2a2832;--fg: #ededf0;--muted: #a3a0ab;--border: #39363f;--accent: #6f97e6;--accent-soft: color-mix(in srgb, var(--accent) 24%, transparent);--danger: #e0735a}:root[data-theme=dark] .panel-appearance,:root[data-theme=dark] .panel-catalog{background:linear-gradient(135deg,#221f2a,#1f1d27 45%,#1d1c25 72%,#211e2a);border-color:var(--border)}:root[data-theme=dark] .appearance-card,:root[data-theme=dark] .catalog-grid,:root[data-theme=dark] .gender-row,:root[data-theme=dark] .gender-btn+.gender-btn,:root[data-theme=dark] .class-trigger{border-color:var(--border)}:root[data-theme=dark] .gender-btn{color:var(--muted)}:root[data-theme=dark] .gender-btn:hover:not(:disabled){background:color-mix(in srgb,var(--card) 84%,#fff)}:root[data-theme=dark] .stage{background:radial-gradient(ellipse 84px 22px at 50% 80%,rgba(0,0,0,.45),transparent 70%),linear-gradient(180deg,#2b2935,#211f29 55%,#1a1922)}:root[data-theme=dark] .stage-expand{background:#ffffff0f}:root[data-theme=dark] .stage-expand:hover{background:#ffffff1f}:root[data-theme=dark] .sprite-modal-download{background:#ffffff0f}:root[data-theme=dark] .sprite-modal-download:hover:not(:disabled){background:#ffffff1f}:root[data-theme=dark] .sprite-modal-box{background:radial-gradient(ellipse 40% 14% at 50% 88%,rgba(0,0,0,.4),transparent 70%),linear-gradient(180deg,#2b2935,#1c1b24)}:root[data-theme=dark] .hair-pick,:root[data-theme=dark] .catalog-item{background-image:url(../icons/ui/bt_hairstyle_normal_dark.png)}:root[data-theme=dark] .hair-pick:hover,:root[data-theme=dark] .catalog-item:hover{background-image:url(../icons/ui/bt_hairstyle_over_dark.png)}:root[data-theme=dark] .hair-pick:active,:root[data-theme=dark] .catalog-item:active{background-image:url(../icons/ui/bt_hairstyle_press_dark.png)}:root[data-theme=dark] .hair-pick.is-selected,:root[data-theme=dark] .catalog-item.is-equipped{background-image:url(../icons/ui/bt_hairstyle_select_dark.png)}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--fg)}#app{display:flex;flex-direction:column;min-height:100vh}.boot-message{margin:auto;padding:4rem 1rem;color:var(--muted)}.topbar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.6rem 1rem;padding:.9rem 1.25rem;border-bottom:1px solid var(--border);background:var(--bg-elev)}.topbar-heading{display:flex;align-items:baseline;gap:.6rem}.topbar-actions{display:flex;align-items:center;flex-wrap:wrap;justify-content:flex-end;gap:.6rem;margin-left:auto}.topbar-action{flex:none;font:inherit;font-size:.78rem;padding:.3rem .6rem;border:1px solid var(--border);border-radius:8px;background:var(--bg-inset);color:var(--fg);text-decoration:none;white-space:nowrap;cursor:pointer}.topbar-action:hover{border-color:var(--accent);color:var(--accent)}.topbar-action:focus-visible{outline:2px solid var(--accent);outline-offset:-1px}.theme-select{flex:none;font:inherit;font-size:.78rem;padding:.3rem .5rem;border:1px solid var(--border);border-radius:8px;background:var(--bg-inset);color:var(--fg);cursor:pointer}.theme-select:hover{border-color:var(--accent)}.theme-select:focus-visible{outline:2px solid var(--accent);outline-offset:-1px}.topbar h1{margin:0;font-size:1.15rem;letter-spacing:.02em}.topbar-sub{color:var(--muted);font-size:.9rem}.footer{margin-top:auto;padding:1rem 1.25rem 1.25rem;border-top:1px solid var(--border);background:var(--bg-elev);text-align:center;font-size:.8rem;color:var(--muted)}.footer-line{margin-bottom:.25rem}.footer-link{color:inherit;text-decoration:underline}.footer-link:hover{color:var(--accent)}.layout{display:grid;grid-template-columns:380px minmax(300px,1fr) 400px;gap:1rem;padding:1rem 1.25rem;width:100%;max-width:1320px;margin:0 auto;align-items:start}@media (max-width: 1080px){.layout{grid-template-columns:minmax(280px,1fr) minmax(280px,1fr)}.panel-catalog{grid-column:1 / -1}}@media (max-width: 640px){.layout{grid-template-columns:1fr}}@media (min-width: 641px){#app{height:100dvh;overflow:hidden}.layout{flex:1;min-height:0;align-items:stretch;grid-template-rows:minmax(0,1fr) minmax(0,1fr)}.panel{max-height:100%}.panel-appearance,.panel-preview{overflow-y:auto}.panel-catalog{display:flex;flex-direction:column;overflow:hidden}.panel-catalog .catalog{flex:1;min-height:0}.panel-catalog .catalog-grid{flex:1;min-height:0;max-height:none}}@media (min-width: 1081px){.layout{grid-template-rows:minmax(0,1fr)}}.panel{background:var(--bg-elev);border:1px solid var(--border);border-radius:10px;padding:1rem}.panel-appearance,.panel-catalog{background:linear-gradient(135deg,#fef6f9,#fefaf6 22%,#fefdf8 42%,#f8fcf7,#f6fafe 78%,#f9f6fd);border-color:#ece4ef}.appearance-card{background:var(--card);border:1px solid rgba(0,0,0,.06);border-radius:10px;padding:.5rem;box-shadow:0 1px 2px #0000000d}h1,.panel-title,.control-label,.slot-title,.wishlist-title{text-shadow:1px 0 0 currentColor}.panel-title{margin:0 0 .75rem;font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.panel-title+.control-block{margin-top:0}.control-block{margin-top:1rem}.control-label{font-size:.8rem;font-weight:600;color:var(--muted);margin-bottom:.4rem}button{font:inherit;color:inherit;background:none;border:none;padding:0;cursor:pointer}button:disabled{opacity:.4;cursor:default}[data-tip]{position:relative}.tooltip{position:fixed;z-index:1000;pointer-events:none;white-space:nowrap;background:var(--fg);color:var(--bg);font-size:.72rem;line-height:1;padding:.35rem .5rem;border-radius:5px;box-shadow:0 2px 10px #00000038}.tooltip[hidden]{display:none}.sprite-btn{display:inline-flex;align-items:center;justify-content:center;border-radius:4px;transition:filter .1s}.sprite-btn:hover:not(:disabled){filter:brightness(1.06)}.sprite-btn img{display:block}.color-btn img{width:26px;height:26px;image-rendering:pixelated}.gender-row{display:inline-flex;border:1px solid rgba(0,0,0,.12);border-radius:8px;overflow:hidden;background:var(--card);box-shadow:0 1px 2px #0000000d}.gender-btn{padding:.45rem .9rem;height:34px;font-size:.88rem;font-weight:600;line-height:1;color:#7c828d;background:var(--card);transition:background .12s,color .12s}.gender-btn+.gender-btn{border-left:1px solid rgba(0,0,0,.1)}.gender-btn:hover:not(:disabled){background:#f1f3f7}.gender-m.is-selected{color:#fff;background:#4f86d6}.gender-f.is-selected{color:#fff;background:#e07091}.gender-btn:disabled{opacity:.45}.tint-swatch{position:relative;width:26px;height:26px;isolation:isolate}.tint-swatch img{width:26px;height:26px;image-rendering:pixelated;display:block}.tint-swatch:before{content:"";position:absolute;inset:1.5px;background:var(--tint);mix-blend-mode:color;pointer-events:none;transition:background .1s}.tint-swatch:hover:before{background:color-mix(in srgb,var(--tint) 82%,white)}.class-select{position:relative}.class-trigger{display:flex;align-items:center;gap:.5rem;width:100%;padding:.45rem .6rem;border:1px solid rgba(0,0,0,.1);border-radius:8px;background:var(--card);text-align:left;box-shadow:0 1px 2px #0000000d}.class-trigger:hover{border-color:var(--accent)}.class-trigger-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.class-caret{color:var(--muted);font-size:.8rem}.class-icon{width:24px;height:24px;object-fit:contain;image-rendering:pixelated;flex:none}.class-icon.is-missing{visibility:hidden}.class-popup{position:absolute;top:calc(100% + 4px);left:0;right:0;max-height:380px;overflow-y:auto;background:var(--bg-elev);border:1px solid var(--border);border-radius:8px;box-shadow:0 8px 24px #0000002e;z-index:20;padding:0 .25rem .25rem}.class-group-label{position:sticky;top:0;z-index:1;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);background:var(--bg-elev);margin:0 -.25rem;padding:.5rem .75rem .3rem}.class-option{display:flex;align-items:center;gap:.5rem;width:100%;padding:.35rem .5rem;border-radius:6px;text-align:left;font-size:.9rem}.class-option:hover{background:var(--accent-soft)}.class-option.is-selected{background:var(--accent);color:#fff}.hair-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:.25rem}.hair-pick{aspect-ratio:1 / 1;position:relative;background:url(https://ragassets.duckdns.org/icons/ui/bt_hairstyle_normal.png) no-repeat center / 100% 100%;display:flex;align-items:center;justify-content:center;padding:2px 2px 5px;overflow:hidden}.hair-pick:hover{background-image:url(https://ragassets.duckdns.org/icons/ui/bt_hairstyle_over.png)}.hair-pick:active{background-image:url(https://ragassets.duckdns.org/icons/ui/bt_hairstyle_press.png)}.hair-pick.is-selected{background-image:url(https://ragassets.duckdns.org/icons/ui/bt_hairstyle_select.png)}.hair-pick img{width:100%;height:auto;display:block;pointer-events:none}.swatch-row{display:flex;flex-wrap:wrap;gap:.35rem}.swatch{width:26px;height:26px;border-radius:50%;border:2px solid var(--border);background:var(--swatch, #888);transition:transform .1s,border-color .12s,box-shadow .12s}.swatch:hover{transform:scale(1.12);border-color:var(--accent)}.swatch.is-selected{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.swatch-default{background:linear-gradient(135deg,transparent 46%,var(--muted) 46%,var(--muted) 54%,transparent 54%),var(--bg-inset)}.panel-preview{display:flex;flex-direction:column}.preview{display:flex;flex-direction:column;align-items:center;gap:.75rem}.stage{position:relative;width:300px;height:254px;max-width:100%;display:flex;align-items:center;justify-content:center;border:1px solid var(--border);border-radius:10px;background:radial-gradient(ellipse 84px 22px at 50% 80%,rgba(70,60,90,.18),transparent 70%),linear-gradient(180deg,#fdfbff,#eef0f8 55%,#e7e4f1);overflow:hidden}.stage-sprite{width:300px;height:254px;object-fit:contain;image-rendering:pixelated;opacity:0}.stage-sprite.is-loaded{opacity:1}.stage-error{position:absolute;inset:auto 0 .6rem;text-align:center;font-size:.8rem;color:var(--danger)}.stage-expand{position:absolute;top:6px;right:6px;width:26px;height:26px;border:1px solid var(--border);border-radius:6px;background:#ffffffd9;color:var(--muted);font-size:.95rem;line-height:1;display:inline-flex;align-items:center;justify-content:center;z-index:3;transition:background .12s,border-color .12s,color .12s}.stage-expand:hover{background:#fff;border-color:var(--accent);color:var(--accent)}.sprite-modal{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;padding:2rem;background:#14121ca8}.sprite-modal[hidden]{display:none}.sprite-modal-box{position:relative;max-width:90vw;max-height:86vh;overflow:auto;background:radial-gradient(ellipse 40% 14% at 50% 88%,rgba(70,60,90,.16),transparent 70%),linear-gradient(180deg,#fdfbff,#ebe8f3);border-radius:12px;box-shadow:0 12px 40px #0006;padding:1.5rem;display:flex;align-items:center;justify-content:center}.sprite-modal-img{image-rendering:pixelated;display:block}.game-close{flex:none;width:22px;height:22px;background:no-repeat center / 17px 16px;background-image:url(https://ragassets.duckdns.org/icons/ui/bt_close_normal.png)}.game-close:hover{background-image:url(https://ragassets.duckdns.org/icons/ui/bt_close_over.png)}.game-close:active{background-image:url(https://ragassets.duckdns.org/icons/ui/bt_close_press.png)}.sprite-modal-close{position:absolute;top:8px;right:8px}.sprite-modal-download{position:absolute;top:8px;left:8px;width:26px;height:26px;border:1px solid var(--border);border-radius:6px;background:#ffffffd9;color:var(--muted);display:inline-flex;align-items:center;justify-content:center;z-index:3;transition:background .12s,border-color .12s,color .12s}.sprite-modal-download:hover:not(:disabled){background:#fff;border-color:var(--accent);color:var(--accent)}.sprite-modal-download:disabled{cursor:progress;opacity:.55}.stage-wrap{position:relative;width:300px;max-width:100%}.stage-arrow{position:absolute;width:33px;height:34px;background:no-repeat center / contain;z-index:2;transition:filter .1s}.stage-arrow[hidden]{display:none}.stage-arrow:hover{filter:brightness(1.08)}.stage-arrow:active{transform:translateY(1px)}.arrow-left{left:8px;background-image:url(https://ragassets.duckdns.org/icons/ui/bt_leftturn_normal.png)}.arrow-left:active{background-image:url(https://ragassets.duckdns.org/icons/ui/bt_leftturn_press.png)}.arrow-right{right:8px;background-image:url(https://ragassets.duckdns.org/icons/ui/bt_rightturn_normal.png)}.arrow-right:active{background-image:url(https://ragassets.duckdns.org/icons/ui/bt_rightturn_press.png)}.arrow-body{top:58%}.arrow-head{top:30%}.actions-block{width:100%;margin-top:0}.actions-row{display:flex;flex-wrap:wrap;gap:.35rem;justify-content:center}.action-btn{width:44px;height:64px;border:1px solid var(--border);border-radius:8px;background:var(--bg-inset);position:relative;transition:border-color .12s,background .12s,transform .1s}.action-btn:hover{border-color:var(--accent);background:var(--accent-soft);transform:translateY(-1px)}.action-btn.is-selected{border-color:var(--accent);box-shadow:inset 0 0 0 2px var(--accent);background:var(--accent-soft)}.action-clip{position:absolute;inset:2px;overflow:hidden;border-radius:5px;pointer-events:none}.action-icon{width:100%;height:100%;object-fit:contain;object-position:center bottom;image-rendering:pixelated}.playback{display:flex;align-items:center;gap:.4rem;width:100%;max-width:300px}.playback[hidden]{visibility:hidden}.play-btn{flex:none;width:30px;height:30px;border:1px solid var(--border);border-radius:6px;background:var(--bg-elev);font-size:.85rem;line-height:1;display:inline-flex;align-items:center;justify-content:center}.play-btn:hover{border-color:var(--accent);background:var(--accent-soft)}.frame-step{flex:none;width:30px;height:30px;border:1px solid var(--border);border-radius:6px;background:var(--bg-elev);line-height:1;display:inline-flex;align-items:center;justify-content:center}.frame-step:hover{border-color:var(--accent);background:var(--accent-soft)}.frame-step[hidden],.frame-slider[hidden]{display:none}.frame-slider{flex:1;accent-color:var(--accent);cursor:pointer}.panel-header{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.75rem}.panel-header .panel-title{margin:0}.wishlist-open{display:inline-flex;align-items:center;font-size:.78rem;font-weight:600;padding:.35rem .7rem;border:1px solid var(--accent);border-radius:999px;background:var(--accent);color:#fff;transition:filter .12s}.wishlist-open:hover{filter:brightness(1.07)}.wishlist-badge:not(:empty){margin-left:.3rem;font-variant-numeric:tabular-nums}.wishlist-modal{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;padding:1.5rem;background:#14121c99}.wishlist-modal[hidden]{display:none}.wishlist-box{width:460px;max-width:100%;max-height:84vh;display:flex;flex-direction:column;background:var(--bg-elev);border-radius:12px;box-shadow:0 12px 40px #0006;overflow:hidden}.wishlist-header{display:flex;align-items:center;gap:.75rem;padding:.85rem 1rem;border-bottom:1px solid var(--border)}.wishlist-title{margin:0;font-size:1rem;flex:1}.wishlist-server{display:inline-flex;align-items:center;gap:.35rem;font-size:.8rem;color:var(--muted)}.wishlist-server-select{font:inherit;font-size:.82rem;padding:.25rem .4rem;border:1px solid var(--border);border-radius:6px;background:var(--bg-inset);color:var(--fg)}.wishlist-list{overflow-y:auto;padding:.5rem}.wishlist-hint{font-size:.75rem;color:var(--muted);padding:.25rem .5rem .6rem}.wishlist-row{display:flex;align-items:center;gap:.6rem;padding:.55rem .5rem;border:1px solid var(--border);border-radius:8px;background:var(--bg-inset)}.wishlist-row+.wishlist-row{margin-top:.4rem}.wishlist-icon{width:28px;height:28px;object-fit:contain;image-rendering:pixelated;flex:none}.wishlist-info{flex:1;min-width:0;display:flex;flex-direction:column}.wishlist-name{font-size:.88rem;font-weight:600;color:var(--accent);text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wishlist-name:hover{text-decoration:underline}.wishlist-id{font-size:.72rem;color:var(--muted)}.wishlist-market{flex:none;width:34px;height:34px;border:1px solid var(--border);border-radius:8px;color:var(--muted);display:inline-flex;align-items:center;justify-content:center;transition:background .12s,color .12s,border-color .12s}.wishlist-market:hover{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.wishlist-empty{text-align:center;color:var(--muted);font-size:.85rem;padding:2rem 1rem}.slots{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:.5rem;margin-bottom:1rem}.slot-card{border:1px dashed var(--border);border-radius:8px;padding:.5rem .6rem;background:var(--card);box-shadow:0 1px 2px #0000000d}.slot-card.is-filled{border-style:solid;border-color:var(--accent);background:var(--accent-soft)}.slot-card:not(.is-filled){cursor:pointer}.slot-card:not(.is-filled):hover{border-color:var(--accent)}.slot-title{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-bottom:.3rem}.slot-body{display:flex;align-items:center;gap:.4rem;min-height:26px}.slot-icon{width:24px;height:24px;object-fit:contain;image-rendering:pixelated;flex:none}.slot-name{flex:1;min-width:0;font-size:.8rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted)}.slot-card.is-filled .slot-name{color:var(--fg)}.slot-clear{flex:none;width:20px;height:20px;border-radius:50%;color:var(--muted);display:inline-flex;align-items:center;justify-content:center}.slot-clear:hover{background:var(--danger);color:#fff}.slot-clear[hidden]{display:none}.catalog{display:flex;flex-direction:column;gap:.5rem}.search{width:100%;padding:.5rem .7rem;font:inherit;color:inherit;background:var(--card);border:1px solid var(--border);border-radius:8px}.search:focus{outline:2px solid var(--accent);outline-offset:-1px}.catalog-filters{display:flex;flex-wrap:wrap;gap:.3rem}.catalog-filter{font-size:.78rem;font-weight:600;padding:.28rem .7rem;border:1px solid var(--border);border-radius:999px;background:var(--bg-inset);color:var(--muted);transition:background .12s,color .12s,border-color .12s}.catalog-filter:hover{border-color:var(--accent);color:var(--fg)}.catalog-filter.is-active{background:var(--accent);border-color:var(--accent);color:#fff}.catalog-count{font-size:.75rem;color:var(--muted)}.catalog-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(46px,1fr));grid-auto-rows:48px;gap:.25rem;max-height:56vh;overflow-y:auto;border:1px solid rgba(0,0,0,.06);border-radius:10px;padding:.4rem;background:var(--card);box-shadow:0 1px 2px #0000000d}.catalog-item{position:relative;background:url(https://ragassets.duckdns.org/icons/ui/bt_hairstyle_normal.png) no-repeat center / 100% 100%;display:flex;align-items:center;justify-content:center;padding:4px;overflow:hidden}.catalog-item[hidden]{display:none}.catalog-item:hover{background-image:url(https://ragassets.duckdns.org/icons/ui/bt_hairstyle_over.png)}.catalog-item:active{background-image:url(https://ragassets.duckdns.org/icons/ui/bt_hairstyle_press.png)}.catalog-item.is-equipped{background-image:url(https://ragassets.duckdns.org/icons/ui/bt_hairstyle_select.png)}.catalog-icon{width:30px;height:30px;object-fit:contain;image-rendering:pixelated;pointer-events:none}.catalog-icon.is-missing{visibility:hidden}.catalog-empty{text-align:center;color:var(--muted);font-size:.85rem;padding:1rem 0}
