:root{--sky:#cfe8f5;--sky-deep:#b9dcef;--ink:#33566b;--ink-soft:#5b7d90;--ink-faint:#7a97a8;--pink:#f6a6b2;--pink-deep:#e07e8d;--mint:#8fd3b6;--lilac:#e6dcf5;--lilac-ink:#7a5da0;--panel:#fff;--tint:#eaf5fb;--tint-2:#f4f9fc;--shadow:0 8px 20px #4a789624;--radius:26px;--safe-t:env(safe-area-inset-top,0px);--safe-b:env(safe-area-inset-bottom,0px);--safe-l:env(safe-area-inset-left,0px);--safe-r:env(safe-area-inset-right,0px)}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{color:var(--ink);background:var(--sky);overscroll-behavior:none;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;-webkit-text-size-adjust:100%;font-family:Fredoka,system-ui,-apple-system,sans-serif}button{font:inherit;color:inherit;cursor:pointer;touch-action:manipulation;background:0 0;border:none}.app{background:linear-gradient(180deg, var(--sky) 0%, var(--sky-deep) 100%);height:100dvh;padding:var(--safe-t) var(--safe-r) var(--safe-b) var(--safe-l);position:relative;overflow:hidden}.app--loading{place-items:center;display:grid}.spinner{border:6px solid #fffa;border-top-color:var(--pink);border-radius:50%;width:46px;height:46px;animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.clouds{pointer-events:none;position:absolute;inset:0;overflow:hidden}.cloud{background:#fff;border-radius:50%;position:absolute}.cloud--1{opacity:.35;width:34vmin;height:34vmin;top:-8%;left:-6%}.cloud--2{opacity:.28;width:40vmin;height:40vmin;bottom:-10%;right:-5%}.cloud--3{opacity:.4;width:14vmin;height:14vmin;top:14%;right:8%}.splash{z-index:1;flex-direction:column;justify-content:center;align-items:center;gap:clamp(14px,3vh,30px);height:100%;padding:4vmin;display:flex;position:relative}.splash__art{aspect-ratio:10/9;width:clamp(190px,34vmin,300px);animation:5s ease-in-out infinite floaty;position:relative}@keyframes floaty{0%,to{transform:translateY(0)rotate(-1.5deg)}50%{transform:translateY(-10px)rotate(1.5deg)}}.splash__heart{filter:drop-shadow(0 10px 18px #4a789647);width:100%;height:100%;position:absolute;inset:0}.splash__pet{aspect-ratio:1;background:#fff;border:4px solid #fff;border-radius:50%;width:30%;position:absolute;top:34%;overflow:hidden;box-shadow:0 4px 10px #0000001f}.splash__pet svg{width:190%;height:190%;margin:-12% 0 0 -45%}.splash__pet--0{left:15%}.splash__pet--1{left:52%}.splash__text{text-align:center}.splash__text h1{letter-spacing:-1px;margin:0;font-size:clamp(38px,8vmin,66px);font-weight:700}.splash__text p{color:var(--ink-soft);margin:6px 0 0;font-size:clamp(16px,3vmin,24px);font-weight:500}.cta{color:#fff;background:var(--pink);box-shadow:0 8px 0 var(--pink-deep), 0 14px 20px #e07e8d59;border-radius:40px;padding:clamp(13px,2.2vmin,18px) clamp(34px,6vmin,52px);font-size:clamp(19px,3.4vmin,26px);font-weight:600;transition:transform 80ms,box-shadow 80ms}.cta:active{box-shadow:0 3px 0 var(--pink-deep);transform:translateY(5px)}.bar{z-index:1;flex-wrap:wrap;align-items:center;gap:14px;padding:clamp(10px,2vmin,24px) clamp(12px,3vmin,40px) 6px;display:flex;position:relative}.bar__title{margin:0;font-size:clamp(22px,4vmin,38px);font-weight:700}.bar__sub{color:#6b889b;margin:2px 0 0;font-size:clamp(13px,2vmin,19px)}.bar__actions{flex-wrap:wrap;gap:8px;margin-left:auto;display:flex}.round{width:48px;min-width:48px;height:48px;color:var(--ink-soft);background:#fff;border-radius:50%;place-items:center;font-size:22px;display:grid;box-shadow:0 4px 10px #00000014}.round--sm{background:var(--tint);width:44px;min-width:44px;height:44px;box-shadow:none;font-size:19px;font-weight:700}.pill{color:var(--ink-soft);background:#fff;border-radius:30px;align-items:center;gap:6px;min-height:44px;padding:11px 18px;font-size:clamp(14px,1.8vmin,18px);font-weight:600;display:inline-flex;box-shadow:0 3px 8px #0000000f}.pill:disabled{opacity:.55}.pill--magic{color:var(--lilac-ink);background:var(--lilac)}.pill--photo{color:#2f6b8c;background:#d8ecf7}.pill--sm{background:var(--tint-2);min-height:40px;padding:9px 14px;font-size:14px}.gallery{z-index:1;flex-direction:column;height:100%;display:flex;position:relative}.gallery__grid{flex:1;grid-template-columns:repeat(3,1fr);gap:clamp(10px,2vmin,26px);min-height:0;padding:clamp(8px,2vmin,16px) clamp(12px,3vmin,40px) clamp(16px,3vmin,40px);display:grid;overflow-y:auto}.card{box-shadow:var(--shadow);background:#fff;border-radius:clamp(16px,2.4vmin,28px);flex-direction:column;align-items:center;gap:8px;min-height:0;padding:clamp(8px,1.6vmin,18px);transition:transform .14s,box-shadow .14s;display:flex}@media (hover:hover){.card:hover{transform:translateY(-6px);box-shadow:0 14px 26px #4a789638}}.card:active{transform:scale(.97)}.card__art{border-radius:20px;flex:1;place-items:center;width:100%;min-height:0;display:grid;overflow:hidden}.card__art svg,.card__art img{object-fit:cover;width:100%;height:100%}.card__name{font-size:clamp(14px,2.2vmin,24px);font-weight:600}@media (orientation:portrait) and (width<=700px){.gallery__grid{grid-template-columns:repeat(2,1fr)}}.dress{z-index:1;flex-direction:column;height:100%;display:flex;position:relative}.dress__body{flex:1;gap:clamp(10px,2vmin,24px);min-height:0;padding:6px clamp(10px,3vmin,34px) clamp(10px,2.4vmin,30px);display:flex}.dress__stage{background:#fff8;border-radius:clamp(20px,3vmin,32px);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:10px;min-width:0;min-height:0;padding:clamp(8px,1.6vmin,18px);display:flex}.stage{flex:1;place-items:center;width:100%;min-height:0;display:grid}.stage__inner{aspect-ratio:400/600;max-width:100%;height:100%}.stage__svg{touch-action:none;width:100%;height:100%;display:block;overflow:visible}.tools{background:#fff;border-radius:22px;flex-wrap:wrap;justify-content:center;align-items:center;gap:7px;padding:7px 10px;display:flex;box-shadow:0 4px 12px #4a789629}.tools__label{padding:0 6px;font-size:14px;font-weight:600}.hint{color:var(--ink-faint);text-align:center;align-items:center;min-height:34px;margin:0;font-size:clamp(12px,1.7vmin,15px);font-weight:500;display:flex}.wardrobe{background:#fff;border-radius:clamp(20px,2.6vmin,28px);flex-direction:column;width:clamp(280px,33vw,420px);min-height:0;display:flex;box-shadow:0 8px 20px #4a78961f}.wardrobe__scroll{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;flex:1;min-height:0;padding:clamp(12px,1.8vmin,20px) clamp(12px,1.8vmin,22px);overflow-y:auto}.wardrobe__group+.wardrobe__group{margin-top:18px}.wardrobe__title{margin:0 0 10px;font-size:clamp(15px,2vmin,20px);font-weight:600}.wardrobe__items{flex-wrap:wrap;gap:10px;display:flex}.item{background:var(--tint-2);border:3px solid #0000;border-radius:20px;flex-direction:column;align-items:center;gap:5px;width:104px;padding:9px;transition:transform .12s,border-color .12s,background .12s;display:flex}@media (hover:hover){.item:hover{border-color:var(--pink)}}.item:active{transform:scale(.95)}.item--on{border-color:var(--pink);background:#fdeef1}.item__art{place-items:center;width:62px;height:62px;display:grid}.item__art svg{width:100%;height:100%;overflow:visible}.item__label{color:var(--ink-soft);text-align:center;font-size:13px;font-weight:500;line-height:1.15}.dress--compact .dress__body{flex-direction:column}.wardrobe--compact{border-radius:clamp(20px,2.6vmin,28px);flex:none;width:100%;max-height:38dvh}.wardrobe__tabs{overscroll-behavior-x:contain;scrollbar-width:none;gap:7px;padding:10px 12px 4px;display:flex;overflow-x:auto}.wardrobe__tabs::-webkit-scrollbar{display:none}.tab{color:var(--ink-soft);background:var(--tint);border-radius:18px;flex:none;min-height:40px;padding:9px 15px;font-size:14px;font-weight:600}.tab--on{color:#fff;background:var(--pink)}.wardrobe--compact .wardrobe__items{overscroll-behavior-x:contain;scrollbar-width:none;flex-wrap:nowrap;padding-bottom:6px;overflow-x:auto}.wardrobe--compact .wardrobe__items::-webkit-scrollbar{display:none}.wardrobe--compact .item{flex:none}@media (width<=700px){.pill__text{display:none}.pill{padding:10px 13px;font-size:17px}.bar{gap:10px}.bar__actions{flex-wrap:nowrap;gap:6px}}@media (orientation:landscape) and (height<=460px){.bar{padding-top:6px;padding-bottom:2px}.pill__text{display:none}.pill{padding:10px 13px}.hint{display:none}}@media (width>=1100px){.item{width:116px}.item__art{width:70px;height:70px}}
