@font-face{font-family:Fredoka;font-style:normal;font-display:swap;font-weight:500;src:url(./fredoka-latin-500-normal-B0JifZgm.woff2)format("woff2"),url(./fredoka-latin-500-normal-BL692wg7.woff)format("woff")}@font-face{font-family:Fredoka;font-style:normal;font-display:swap;font-weight:600;src:url(./fredoka-latin-600-normal-C4zohCW5.woff2)format("woff2"),url(./fredoka-latin-600-normal-CcrEjrB4.woff)format("woff")}@font-face{font-family:Fredoka;font-style:normal;font-display:swap;font-weight:700;src:url(./fredoka-latin-700-normal-BOIZVyIN.woff2)format("woff2"),url(./fredoka-latin-700-normal-C8FeHd3X.woff)format("woff")}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:400;src:url(./nunito-latin-400-normal-r8SDr6Up.woff2)format("woff2"),url(./nunito-latin-400-normal-DKg4f3fz.woff)format("woff")}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:600;src:url(./nunito-latin-600-normal-Br8yIETf.woff2)format("woff2"),url(./nunito-latin-600-normal-Cd0eNu1l.woff)format("woff")}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:700;src:url(./nunito-latin-700-normal-Dort48En.woff2)format("woff2"),url(./nunito-latin-700-normal-OcDqTBcA.woff)format("woff")}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:800;src:url(./nunito-latin-800-normal-Dz8SOQK_.woff2)format("woff2"),url(./nunito-latin-800-normal-D-J0wlBY.woff)format("woff")}:root{--pink:#f06d9b;--pink-soft:#fde4ec;--lilac:#9b7fd1;--ink:#3d3350;--muted:#8a8098;--line:#efe6ef;--bg:#fdf8fb;--card:#fff;--radius:14px;--shadow:0 6px 24px #5b3a6e1f;--font:"Nunito", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-title:"Fredoka", "Nunito", system-ui, sans-serif}*{box-sizing:border-box}html,body{height:100%;margin:0;overflow:hidden}body{font-family:var(--font);color:var(--ink);background:var(--bg);overscroll-behavior:none;-webkit-tap-highlight-color:transparent;-webkit-text-size-adjust:100%}button{color:inherit;cursor:pointer;font-family:inherit}#app{touch-action:manipulation;grid-template:"top top"60px"side view"minmax(0,1fr)/360px minmax(0,1fr);height:100dvh;display:grid}#topbar{border-bottom:1px solid var(--line);z-index:5;background:#fff;grid-area:top;align-items:center;gap:18px;min-width:0;padding:0 16px;display:flex;box-shadow:0 2px 12px #5b3a6e0f}.brand{align-items:center;gap:10px;min-width:330px;display:flex}.brand-text{min-width:0}.brand-icon{font-size:30px}.brand h1{font-family:var(--font-title);color:var(--pink);margin:0;font-size:21px;line-height:1}.brand small{color:var(--muted);letter-spacing:.5px;font-size:12px;font-weight:700}.seg{background:var(--pink-soft);border-radius:999px;flex:none;padding:4px;display:flex}.seg button{white-space:nowrap;color:#a2577a;background:0 0;border:0;border-radius:999px;padding:7px 16px;font-size:14px;font-weight:800}.seg button.active{color:var(--pink);background:#fff;box-shadow:0 2px 8px #f06d9b40}.top-actions{flex:none;align-items:center;gap:8px;margin-left:auto;display:flex}.sep{background:var(--line);width:1px;height:26px;margin:0 4px}.chip-btn,.icon-btn{border:1px solid var(--line);background:#fff;border-radius:999px;padding:7px 13px;font-size:13.5px;font-weight:700;transition:all .15s}.icon-btn{width:36px;height:36px;padding:0;font-size:17px}.chip-btn:hover,.icon-btn:hover{border-color:var(--pink);color:var(--pink)}.chip-btn.on{background:var(--pink);border-color:var(--pink);color:#fff}.chip-btn:disabled,.icon-btn:disabled{opacity:.4;cursor:default}#btn-julia.hidden{display:none}.save-status{color:var(--muted);white-space:nowrap;background:0 0;border:0;align-items:center;gap:6px;padding:4px 6px;font-size:12.5px;font-weight:700;display:inline-flex}.save-status .ico{color:#2e9466;background:#dcf2e6;border-radius:50%;place-items:center;width:18px;height:18px;font-size:11px;font-weight:900;display:inline-grid}.save-status[data-state=pending] .ico{border:2px solid #f6d3e0;border-top-color:var(--pink);background:0 0;animation:1s linear infinite spin}.save-status[data-state=error]{color:#c2410c}.save-status[data-state=error] .ico{color:#c2410c;background:#ffe2d3}.menu-wrap{position:relative}.menu{border-radius:var(--radius);box-shadow:var(--shadow);z-index:20;background:#fff;min-width:290px;max-width:calc(100vw - 16px);max-height:calc(100dvh - 70px);padding:6px;display:none;position:absolute;top:44px;right:0;overflow-y:auto}#btn-more{font-size:22px;line-height:1;display:none}.menu-quick{grid-template-columns:1fr 1fr;gap:4px;display:none}.menu-quick button{background:var(--pink-soft);text-align:center}.menu-quick button:disabled{opacity:.4}.menu-quick-sep{display:none}.menu.open{display:block}.menu button{text-align:left;background:0 0;border:0;border-radius:10px;width:100%;padding:10px 12px;font-size:14px;font-weight:700;display:block}.menu button:hover{background:var(--pink-soft)}.menu hr{border:0;border-top:1px solid var(--line);margin:6px 4px}.menu-note{color:var(--muted);margin:4px 12px 6px;font-size:12.5px;font-weight:600;line-height:1.35}#sidebar{border-right:1px solid var(--line);background:#fff;flex-direction:column;grid-area:side;min-width:0;min-height:0;display:flex}.sheet-handle{touch-action:none;cursor:grab;flex:none;justify-content:center;align-items:center;height:22px;display:none}.sheet-handle span{background:#e2d3e0;border-radius:99px;width:44px;height:5px}.panel-head{align-items:center;gap:8px;margin-bottom:6px;display:flex}.panel-head h3{font-family:var(--font-title);flex:1;min-width:0;margin:0;font-size:18px}.tabs{border-bottom:1px solid var(--line);grid-template-columns:repeat(4,1fr);display:grid}.tabs button{color:var(--muted);background:0 0;border:0;border-bottom:3px solid #0000;flex-direction:column;align-items:center;gap:2px;padding:10px 4px 8px;font-size:12px;font-weight:800;display:flex}.tabs button span{font-size:20px}.tabs button.active{color:var(--pink);border-bottom-color:var(--pink)}.tabs button{white-space:nowrap;min-width:0;position:relative}.tabs .count{background:var(--pink);color:#fff;text-align:center;border-radius:999px;min-width:16px;padding:0 6px;font-size:10px;line-height:16px;position:absolute;top:4px;left:calc(50% + 8px)}#panel{flex:1;padding:12px 14px 40px;overflow-y:auto}#panel::-webkit-scrollbar{width:8px}#panel::-webkit-scrollbar-thumb{background:#ecdbe7;border-radius:8px}.section{border:1px solid var(--line);border-radius:var(--radius);background:var(--card);margin-bottom:12px}.section>summary{font-family:var(--font-title);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:8px;padding:12px 14px;font-size:16px;font-weight:600;list-style:none;display:flex}.section>summary::-webkit-details-marker{display:none}.section>summary:after{content:"▾";color:var(--muted);margin-left:auto;transition:transform .2s}.section:not([open])>summary:after{transform:rotate(-90deg)}.section>summary .current{font-family:var(--font);color:var(--muted);margin-left:4px;font-size:12px;font-weight:700}.section .body{padding:0 14px 14px}.label{color:var(--muted);text-transform:uppercase;letter-spacing:.6px;margin:10px 0 6px;font-size:12px;font-weight:800}.note{color:var(--muted);margin:4px 0 8px;font-size:12.5px;line-height:1.35}.grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.card{border:2px solid var(--line);background:#fff;border-radius:12px;flex-direction:column;align-items:center;gap:4px;padding:5px 5px 6px;transition:transform .12s,border-color .12s,box-shadow .12s;display:flex;position:relative}.card:hover{border-color:#f6b7cd;transform:translateY(-2px);box-shadow:0 4px 12px #f06d9b26}.card.active{border-color:var(--pink);background:#fff7fa}.card.active:after{content:"✓";background:var(--pink);color:#fff;border-radius:50%;place-items:center;width:18px;height:18px;font-size:11px;font-weight:900;display:grid;position:absolute;top:4px;right:6px}.card .thumb{aspect-ratio:1;background:#faf5f8 50%/cover no-repeat;border-radius:8px;place-items:center;width:100%;display:grid}.card .thumb.loading:before{content:"";border:3px solid #f6d3e0;border-top-color:var(--pink);border-radius:50%;width:18px;height:18px;animation:1s linear infinite spin}.card .name{text-align:center;-webkit-line-clamp:2;overflow-wrap:anywhere;-webkit-box-orient:vertical;max-width:100%;min-height:27px;font-size:11.5px;font-weight:700;line-height:1.15;display:-webkit-box;overflow:hidden}.swatches{flex-wrap:wrap;gap:7px;display:flex}.swatch{background-size:cover;border:3px solid #fff;border-radius:50%;width:34px;height:34px;padding:0;position:relative;box-shadow:0 0 0 1px #e3d6e2}.swatch:hover{box-shadow:0 0 0 2px #f6b7cd}.swatch.active{box-shadow:0 0 0 3px var(--pink)}.swatch.small{border-width:2px;width:26px;height:26px}.swatch.custom{background:conic-gradient(#f88,#fd8,#8f8,#8df,#a8f,#f8c,#f88);overflow:hidden}.swatch.custom input{opacity:0;cursor:pointer;width:100%;height:100%;position:absolute;inset:0}.chips{flex-wrap:wrap;gap:6px;display:flex}.chip{border:2px solid var(--line);background:#fff;border-radius:999px;align-items:center;gap:6px;padding:5px 11px;font-size:12.5px;font-weight:700;display:inline-flex}.chip img{border-radius:50%;width:20px;height:20px}.chip:hover{border-color:#f6b7cd}.chip.active{border-color:var(--pink);background:var(--pink);color:#fff}.btn{background:var(--pink);color:#fff;border:0;border-radius:999px;padding:8px 14px;font-size:13px;font-weight:800}.btn.ghost{background:var(--pink-soft);color:#b2457a}.btn.danger{color:#c73a3a;background:#ffe1e1}.btn:hover{filter:brightness(1.05)}.row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.range{grid-template-columns:70px 1fr 54px;align-items:center;gap:8px;margin:6px 0;font-size:13px;font-weight:700;display:grid}.range input{accent-color:var(--pink)}.range output{text-align:right;color:var(--muted)}.cat-title{font-family:var(--font-title);color:#6b4f86;margin:14px 2px 8px;font-size:15px}.search{border:2px solid var(--line);width:100%;font:inherit;border-radius:999px;outline:none;padding:9px 14px;font-weight:600}.search:focus{border-color:#f6b7cd}.list-item{border:2px solid #0000;border-radius:12px;align-items:center;gap:10px;padding:6px;display:flex}.list-item:hover{background:#fdf3f7}.list-item.active{border-color:var(--pink);background:#fff7fa}.list-item .lthumb{background:#faf5f8 50%/cover;border-radius:10px;flex:none;width:44px;height:44px}.list-item .ltext{cursor:pointer;flex:1;min-width:0}.list-item .ltext b{font-size:13.5px;display:block}.list-item .ltext small{color:var(--muted);font-weight:600}.list-item button{color:#d24a6c;background:#ffe9ee;border:0;border-radius:10px;width:34px;height:34px;font-size:16px}.list-item button:hover{background:#ffd2dc}.empty{text-align:center;color:var(--muted);padding:30px 10px;font-weight:600}.closet-preview{grid-template-columns:96px 1fr;align-items:center;gap:10px;display:grid}.closet-preview .thumb{background:#faf5f8 50%/cover no-repeat;border-radius:10px;place-items:center;width:96px;height:96px;display:grid}.closet-preview .thumb.loading:before{content:"";border:3px solid #f6d3e0;border-top-color:var(--pink);border-radius:50%;width:18px;height:18px;animation:1s linear infinite spin}.closet-preview .note{margin:0}#viewport{background:#f4eef6;grid-area:view;position:relative;overflow:hidden}#scene{touch-action:none;outline:none;width:100%;height:100%;display:block}.banner{z-index:3;background:var(--ink);color:#fff;box-shadow:var(--shadow);white-space:nowrap;border-radius:999px;align-items:center;gap:10px;max-width:calc(100% - 20px);padding:9px 16px;font-size:14px;font-weight:700;display:flex;position:absolute;top:14px;left:50%;transform:translate(-50%)}.banner button{color:#fff;background:#ffffff2e;border:0;border-radius:999px;padding:4px 10px;font-weight:800}.hidden{display:none!important}#hint{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);color:#6c6178;pointer-events:none;background:#ffffffe0;border-radius:12px;max-width:min(440px,100% - 28px);padding:8px 12px;font-size:12.5px;font-weight:600;line-height:1.45;transition:opacity .3s;position:absolute;bottom:14px;left:14px;box-shadow:0 2px 10px #0000000f}#hint.off{opacity:0}#hint kbd{background:#fff;border:1px solid #e3d8e6;border-bottom-width:2px;border-radius:5px;padding:0 5px;font-family:inherit;font-size:11.5px}#selection{width:300px;max-height:calc(100% - 28px);box-shadow:var(--shadow);background:#fffffff7;border-radius:18px;padding:14px;position:absolute;top:14px;right:14px;overflow-y:auto}#selection h3{font-family:var(--font-title);align-items:center;gap:8px;margin:0;font-size:18px;display:flex}#selection h3 .x{background:#f4eef6;border:0;border-radius:50%;width:28px;height:28px;margin-left:auto;font-size:14px}#selection .sub{color:var(--muted);margin:2px 0 6px;font-size:12.5px;font-weight:700}#selection .actions{flex-wrap:wrap;gap:6px;margin-top:12px;display:flex}#selection .grid{grid-template-columns:repeat(3,minmax(0,1fr))}#selection .quick{scrollbar-width:none;gap:6px;margin-top:8px;display:flex;overflow-x:auto}#selection .quick::-webkit-scrollbar{display:none}#selection .quick .btn{white-space:nowrap;flex:none}#selection.compact{left:calc(8px + env(safe-area-inset-left));right:calc(8px + env(safe-area-inset-right));border-radius:16px;width:auto;max-height:none;padding:10px 12px;top:auto;bottom:8px;overflow:visible}#selection.compact h3{font-size:16px}#selection.compact .sub{margin:0}#place-confirm{left:50%;bottom:calc(16px + env(safe-area-inset-bottom));z-index:3;box-shadow:var(--shadow);background:#fffffff0;border-radius:999px;gap:10px;padding:8px;display:flex;position:absolute;transform:translate(-50%)}#place-confirm .btn{min-height:46px;padding:10px 18px;font-size:15px}.fab-row{left:calc(10px + env(safe-area-inset-left));z-index:2;gap:8px;display:flex;position:absolute;top:10px}.fab{width:44px;height:44px;color:var(--pink);background:#ffffffeb;border:0;border-radius:50%;place-items:center;font-size:18px;font-weight:900;display:none;box-shadow:0 3px 12px #0000001f}.fab-pill{right:calc(10px + env(safe-area-inset-right));z-index:2;color:#a2577a;background:#fffffff0;border:0;border-radius:999px;align-items:center;min-height:44px;padding:0 16px;font-size:14px;font-weight:800;display:none;position:absolute;top:10px;box-shadow:0 3px 12px #0000001f}.fab-pill.on{background:var(--pink);color:#fff}body.touch #btn-help{display:grid}#joystick{left:calc(18px + env(safe-area-inset-left));bottom:calc(18px + env(safe-area-inset-bottom));touch-action:none;z-index:2;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#ffffff80;border:2px solid #fffffff2;border-radius:50%;width:124px;height:124px;display:none;position:absolute;box-shadow:0 4px 16px #0000001f}#joystick .knob{background:var(--pink);pointer-events:none;border-radius:50%;width:54px;height:54px;margin:-27px 0 0 -27px;position:absolute;top:50%;left:50%;box-shadow:0 3px 10px #f06d9b73}body[data-mode=walk].touch #joystick{display:block}body.has-sel #joystick{bottom:calc(var(--selbar-h,100px) + 40px)}body[data-mode=walk].touch #hint{top:64px;bottom:auto}#selection.compact .quick .btn[data-short]{min-width:46px;padding:8px 12px;font-size:17px}#selection input[type=text]{border:2px solid var(--line);width:100%;font:inherit;letter-spacing:1px;border-radius:10px;outline:none;padding:8px 10px;font-weight:800}#selection input[type=text]:focus{border-color:#f6b7cd}#dpad{grid-template-rows:repeat(2,48px);grid-template-columns:repeat(3,48px);gap:6px;display:none;position:absolute;bottom:18px;right:18px}body[data-mode=walk]:not(.touch) #dpad{display:grid}#dpad button{color:var(--pink);-webkit-user-select:none;user-select:none;touch-action:none;background:#ffffffe6;border:0;border-radius:14px;font-size:18px;box-shadow:0 3px 10px #0000001f}#dpad button:active{background:var(--pink-soft)}#dpad [data-k=fwd]{grid-column:2}#dpad [data-k=left]{grid-area:2/1}#dpad [data-k=back]{grid-area:2/2}#dpad [data-k=right]{grid-area:2/3}#toast{background:var(--ink);color:#fff;z-index:6;opacity:0;pointer-events:none;border-radius:999px;align-items:center;gap:12px;max-width:calc(100% - 20px);padding:10px 18px;font-size:14px;font-weight:700;transition:all .25s;display:flex;position:absolute;bottom:24px;left:50%;transform:translate(-50%,20px)}#toast.show{opacity:1;transform:translate(-50%)}#toast.show.has-action{pointer-events:auto}#toast button{color:#fff;background:#fff3;border:0;border-radius:999px;min-height:34px;padding:6px 12px;font-weight:800}#loading{text-align:center;color:var(--pink);z-index:10;background:#fdf8fb;place-content:center;font-weight:800;transition:opacity .4s;display:grid;position:absolute;inset:0}#loading.done{opacity:0;pointer-events:none}.spinner{border:5px solid #f6d3e0;border-top-color:var(--pink);border-radius:50%;width:44px;height:44px;margin:0 auto 10px;animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (width<=1100px){#app{grid-template-columns:300px minmax(0,1fr)}.brand{min-width:0}.brand small{display:none}.chip-btn{padding:7px 10px;font-size:12.5px}.save-status .lbl{display:none}}@media (width<=1000px),(height<=500px){.wide-only{display:none!important}#btn-more{place-items:center;display:inline-grid}.menu-quick{display:grid}.menu-quick-sep{display:block}#topbar{gap:10px;padding:0 12px}.brand{flex:auto;min-width:0;overflow:hidden}.brand h1{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.top-actions{margin-left:0}body[data-mode=walk] #fab-julia{display:inline-flex}}@media (width<=760px){:root{--sheet-min:calc(80px + env(safe-area-inset-bottom));--sheet-mid:46dvh;--sheet-max:calc(100dvh - 170px)}#app{grid-template-columns:minmax(0,1fr);grid-template-rows:calc(54px + env(safe-area-inset-top)) minmax(0, 1fr) auto;grid-template-areas:"top""view""side"}#topbar{padding:env(safe-area-inset-top) calc(10px + env(safe-area-inset-right)) 0 calc(10px + env(safe-area-inset-left));gap:8px}.brand{gap:6px}.brand-icon{font-size:24px}.brand h1{font-size:16px}.seg{padding:3px}.seg button{padding:7px 11px;font-size:13px}.seg .lbl{display:none}#sidebar{height:var(--sheet-min);z-index:4;padding-bottom:env(safe-area-inset-bottom);border-right:0;border-radius:20px 20px 0 0;margin-top:-20px;transition:height .25s;position:relative;box-shadow:0 -6px 24px #5b3a6e24}#sidebar[data-sheet=mid]{height:var(--sheet-mid)}#sidebar[data-sheet=max]{height:var(--sheet-max)}#sidebar.dragging{transition:none}.sheet-handle{display:flex}.tabs{flex:none}.tabs button{gap:0;padding:2px 2px 6px;font-size:11.5px}.tabs button span{font-size:18px}#panel{overscroll-behavior:contain;padding:10px 12px 28px}#sidebar[data-sheet=min] #panel{visibility:hidden}#viewport{padding-bottom:20px}#hint{font-size:12px;bottom:30px;left:10px}#selection.compact{bottom:28px}#place-confirm{bottom:32px}#joystick{bottom:34px}#toast{top:64px;bottom:auto}.banner{white-space:normal;border-radius:16px;padding:8px 12px;font-size:13px;top:64px}.banner small{display:none}}@media (height<=500px) and (orientation:landscape){#app{grid-template-columns:var(--side-w,270px) minmax(0, 1fr);grid-template-rows:46px minmax(0,1fr);grid-template-areas:"top top""side view";transition:grid-template-columns .25s}body.side-hidden #app{--side-w:0px}#topbar{padding:0 calc(10px + env(safe-area-inset-right)) 0 calc(10px + env(safe-area-inset-left))}.brand-icon{font-size:22px}.brand h1{font-size:16px}.seg button{padding:5px 11px;font-size:13px}#sidebar{box-shadow:none;padding-left:env(safe-area-inset-left);border-radius:0;margin-top:0;overflow:hidden;height:auto!important}#sidebar #panel{visibility:visible!important}.sheet-handle{display:none!important}.tabs button{gap:0;padding:5px 2px;font-size:11px}.tabs button span{font-size:16px}#btn-side{display:grid}.fab-row,.fab-pill{top:8px}#hint{max-width:46%;font-size:12px;bottom:10px;left:auto;right:10px}.banner{white-space:normal;padding:7px 12px;font-size:13px;top:8px}.banner small{display:none}#toast{top:58px;bottom:auto}#joystick{width:108px;height:108px}#selection.compact{left:auto;right:calc(8px + env(safe-area-inset-right));width:min(440px,64%);padding:8px 10px}#selection.compact .sub{display:none}#selection.compact .quick{margin-top:6px}#selection.compact .quick .btn{min-height:40px;padding:8px 12px}body.has-sel #hint{display:none}}@media (pointer:coarse){.icon-btn{width:44px;height:44px}.save-status{justify-content:center;min-width:36px;min-height:44px}.chip-btn,.seg button{min-height:44px}.swatch,.swatch.small{width:44px;height:44px}.swatches{gap:8px}.chip{min-height:44px;padding:8px 14px;font-size:13px}.btn{min-height:44px;padding:10px 16px;font-size:14px}.menu button{padding:13px 14px;font-size:15px}.tabs button{min-height:52px}.list-item{min-height:56px}.list-item button{width:44px;height:44px}.section>summary{min-height:50px}#selection h3 .x{width:44px;height:44px}.range input{height:36px}.search,#selection input[type=text]{min-height:44px;font-size:16px}.card:hover{box-shadow:none;transform:none}.banner button{min-height:36px;padding:6px 12px}}
