:root{--bg:#fff;--bg-subtle:#f5f5f7;--ink:#1d1d1f;--ink-secondary:#6e6e73;--ink-tertiary:#86868b;--line:#e8e8ed;--line-strong:#d2d2d7;--accent:#1d1d1f;--accent-hover:#000;--danger:#ff3b30;--radius:16px;--radius-sm:12px;--radius-lg:22px;--shadow:0 14px 44px #0000001a;--shadow-lg:0 28px 84px #00000024;--shadow-card:0 1px 1px #0000000a, 0 4px 10px #00000009, 0 12px 28px #0000000b;--ease-spring:cubic-bezier(.22, 1, .36, 1);--fs-xs:12px;--fs-sm:13px;--fs-base:15px;--fs-md:17px;--fs-lg:20px;--fs-xl:28px;--fs-2xl:34px;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:20px;--sp-6:24px;--sp-8:32px;--page-x:16px;--font:-apple-system, BlinkMacSystemFont, "SF Pro Display", "SF Pro Text", "Helvetica Neue", "PingFang SC", "Segoe UI", Roboto, sans-serif}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{font-family:var(--font);color:var(--ink);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;background:#ececf0;justify-content:center;align-items:stretch;height:100dvh;line-height:1.5;display:flex;overflow:hidden}#root{background:var(--bg);-webkit-overflow-scrolling:touch;scrollbar-width:none;width:100%;max-width:430px;height:100dvh;position:relative;overflow:hidden}#root::-webkit-scrollbar{width:0;height:0}@media (width>=480px){body{background:radial-gradient(120% 120% at 50% 0,#f6f6f8 0%,#e4e4ea 55%,#d3d3da 100%);align-items:center;padding:24px 0}#root{border-radius:44px;height:min(872px,100dvh - 48px);box-shadow:0 0 0 11px #1d1d1f,0 0 0 12px #35353a,0 30px 80px #00000059}}a{color:inherit;text-decoration:none}button{cursor:pointer;color:inherit;-webkit-tap-highlight-color:transparent;touch-action:manipulation;background:0 0;border:none;font-family:inherit}a{touch-action:manipulation}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:6px}input,textarea,select{color:inherit;font-family:inherit;font-size:16px}.field{border-radius:var(--radius-sm);border:1px solid var(--line-strong);background:var(--bg);outline:none;width:100%;padding:12px 14px;font-size:16px;transition:border-color .15s,box-shadow .15s}.field:focus{border-color:var(--accent);box-shadow:0 0 0 3px #1d1d1f14}.container{width:100%;max-width:1200px;padding-left:var(--page-x);padding-right:var(--page-x);margin:0 auto}.eyebrow{font-size:var(--fs-xs);letter-spacing:.14em;color:var(--ink-tertiary);text-transform:uppercase;font-weight:600}.segmented{border-radius:var(--radius-sm);background:var(--bg-subtle);gap:2px;padding:3px;display:flex;box-shadow:inset 0 1px 2px #0000000d}.segmented>button{min-height:38px;font-size:var(--fs-sm);color:var(--ink-secondary);transition:background .2s var(--ease-spring), color .2s ease, box-shadow .2s ease;border-radius:9px;flex:1;font-weight:600}.segmented>button:active{transform:scale(.975)}.segmented>button[data-active=true]{color:var(--ink);background:#fff;box-shadow:0 1px 1px #0000000a,0 2px 6px #00000014,0 6px 14px #0000000d}.btn{min-height:46px;font-size:var(--fs-base);white-space:nowrap;-webkit-tap-highlight-color:transparent;border-radius:980px;justify-content:center;align-items:center;gap:8px;padding:12px 22px;font-weight:500;transition:background .18s,color .18s,border-color .18s,transform .12s;display:inline-flex}.btn:active{transform:scale(.985)}.btn-primary{background:linear-gradient(180deg, #333336 0%, var(--accent) 58%, #171719 100%);color:#fff;box-shadow:inset 0 1px #ffffff29,0 6px 16px #0000002e,0 1px 2px #00000029}.btn-primary:hover{background:var(--accent-hover)}.btn-primary:disabled,.btn:disabled{background:var(--bg-subtle);color:var(--ink-tertiary);cursor:not-allowed;border-color:#0000;transform:none}.btn-outline:disabled{border-color:var(--line)}.btn-dark{background:var(--ink);color:#fff}.btn-dark:hover{background:#000}.btn-secondary{background:var(--bg-subtle);color:var(--ink)}.btn-secondary:hover{background:#ebebef}.btn-outline{color:var(--accent);border:1px solid var(--line-strong);background:#fff}.btn-outline:hover{background:var(--bg-subtle)}.btn-text{min-height:44px;font-size:var(--fs-sm);color:var(--ink-secondary);padding:0 6px;font-weight:500}.btn-block{width:100%}.muted{color:var(--ink-secondary)}.danger-text{color:var(--danger)}.card{box-shadow:var(--shadow-card);background:#fff;border:1px solid #0000000e;border-radius:18px}.section-title{font-size:var(--fs-xl);letter-spacing:-.02em;font-weight:700;line-height:1.15}.page{padding-top:var(--sp-4);padding-bottom:var(--sp-6)}.page-head{padding-top:var(--sp-5);padding-bottom:var(--sp-6)}.loader{aspect-ratio:1;border:1px solid var(--line);background:linear-gradient(#fbfbfd 0%,#f4f4f6 100%);border-radius:18px;flex-direction:column;justify-content:center;align-items:center;gap:22px;width:100%;display:flex}.build{perspective:520px;width:84px;height:84px;position:relative}.build i{width:46px;height:46px;transform:rotateX(58deg) rotateZ(45deg) translateZ(var(--z));animation:2.4s cubic-bezier(.6,.05,.2,1) infinite build-up;animation-delay:calc(var(--i) * .18s);opacity:0;background:linear-gradient(160deg,#fff 0%,#e7e7ec 100%);border-radius:9px;margin:-23px 0 0 -23px;position:absolute;top:50%;left:50%;box-shadow:0 1px #d7d7dc,0 12px 20px #00000012}@keyframes build-up{0%{opacity:0;transform:rotateX(58deg) rotateZ(45deg) translateZ(calc(var(--z) - 30px)) scale(.92)}18%{opacity:1}55%{opacity:1;transform:rotateX(58deg) rotateZ(45deg) translateZ(var(--z)) scale(1)}80%{opacity:1;transform:rotateX(58deg) rotateZ(45deg) translateZ(var(--z)) scale(1)}to{opacity:0;transform:rotateX(58deg) rotateZ(45deg) translateZ(var(--z)) scale(1)}}.loader-label{letter-spacing:.01em;color:var(--ink-secondary);font-size:13.5px;font-weight:600}.loader-bar{background:var(--line);border-radius:999px;width:148px;height:3px;overflow:hidden}.loader-bar>span{background:var(--accent);border-radius:999px;height:100%;transition:width .25s;display:block}.loader-text{color:var(--ink-tertiary);font-variant-numeric:tabular-nums;font-size:12px}.product-card{box-shadow:var(--shadow-card);transition:transform .3s var(--ease-spring), box-shadow .3s ease, border-color .3s ease;background:#fff;border:1px solid #0000000e;border-radius:18px;display:block;overflow:hidden}.product-card:hover{box-shadow:var(--shadow);border-color:#00000014;transform:translateY(-3px)}.product-card:active{transform:scale(.985)}.product-card img{transition:transform .6s var(--ease-spring)}.product-card:hover img{transform:scale(1.035)}@keyframes toast-in{0%{opacity:0;transform:translateY(-6px)scale(.96)}to{opacity:1;transform:translateY(0)scale(1)}}.glass-btn:active{transform:scale(.94)}.btn-primary:disabled{box-shadow:none}@keyframes card-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.product-card{animation:card-in .45s var(--ease-spring) both}.product-card:nth-child(2){animation-delay:60ms}.product-card:nth-child(3){animation-delay:.12s}.product-card:nth-child(4){animation-delay:.18s}@media (prefers-reduced-motion:reduce){.product-card,.product-card img{transition:none;animation:none}}.glass-group{-webkit-backdrop-filter:blur(30px)saturate(190%);isolation:isolate;transform-origin:100%;height:44px;transition:transform .24s var(--ease-spring), box-shadow .24s ease;background:linear-gradient(155deg,#ffffffe6 0%,#ffffff85 100%);border:1px solid #ffffffb3;border-radius:999px;align-items:center;padding:0 4px;display:inline-flex;position:relative;overflow:hidden;box-shadow:0 8px 26px #00000021,inset 0 1px #fffffff2,0 0 0 .5px #0000000b}.glass-group:active{transform:scale(.955);box-shadow:0 3px 12px #0000001f,inset 0 1px #fffffff2,0 0 0 .5px #0000000b}.glass-group:before{content:"";pointer-events:none;z-index:0;background:radial-gradient(130% 90% at 18% -10%,#fffffff2,#fff0 62%);position:absolute;inset:0}.glass-action{z-index:1;width:44px;height:44px;color:var(--ink);border-radius:999px;justify-content:center;align-items:center;transition:color .22s,background-color .22s;display:inline-flex;position:relative}@media (hover:hover){.glass-action:hover{background:#0000000b}}.glass-action:active{background:#00000013}.glass-action[aria-pressed=true]{color:var(--ink);background:#0000000e}.glass-divider{z-index:1;background:linear-gradient(#00000005,#00000029,#00000005);width:1px;height:15px;position:relative}@keyframes heart-pop{0%{transform:scale(1)}38%{transform:scale(1.24)}70%{transform:scale(.94)}to{transform:scale(1)}}.heart-pop{animation:heart-pop .42s var(--ease-spring);transform-origin:50%}@media (prefers-reduced-motion:reduce){.glass-group,.glass-action,.heart-pop{transition:none;animation:none}.glass-group:active{transform:none}}.pattern-card{transition:transform .3s var(--ease-spring), box-shadow .3s ease}@media (hover:hover){.pattern-card:hover{box-shadow:var(--shadow);transform:translateY(-2px)}}.pattern-card:active{transform:scale(.982)}.pattern-card:active .pattern-import{background:#000}.upload-fab{right:20px;bottom:calc(84px + env(safe-area-inset-bottom));z-index:45;color:#fff;cursor:pointer;width:52px;height:52px;transition:transform .16s var(--ease-spring);-webkit-tap-highlight-color:transparent;animation:fab-in .34s var(--ease-spring);background:#0a0a0c;border:0;border-radius:999px;justify-content:center;align-items:center;padding:0;display:inline-flex;position:absolute;overflow:hidden;box-shadow:0 6px 18px #00000038,inset 0 1px #ffffff0d}.upload-fab:active{background:#050506;transform:scale(.965);box-shadow:0 1px 4px #0003,inset 0 4px 10px #000000f2,inset 0 0 0 1px #0009,inset 0 -1px #ffffff0f}.upload-fab svg{z-index:1;position:relative}.upload-fab:active svg{transform:translateY(.5px)}.fab-mist{left:var(--x,50%);top:var(--y,50%);pointer-events:none;filter:blur(9px);opacity:0;background:radial-gradient(circle,#fffffffa 0%,#fffc 18%,#ffffff61 34%,#ffffff1a 48%,#ffffff08 66%,#fff0 80%);border-radius:999px;width:140px;height:140px;margin:-70px 0 0 -70px;animation:.8s cubic-bezier(.22,1,.36,1) forwards fab-mist;position:absolute}.fab-mist-core{filter:blur(4px);opacity:0;background:radial-gradient(circle,#fff 0%,#ffffffd1 30%,#fff3 62%,#fff0 78%);border-radius:999px;animation:.7s cubic-bezier(.22,1,.36,1) forwards fab-mist-core;position:absolute;inset:22%}@keyframes fab-mist{0%{opacity:0;transform:scale(.42)}16%{opacity:1;transform:scale(.72)}46%{opacity:.9;transform:scale(1.04)}to{opacity:0;transform:scale(1.68)}}@keyframes fab-mist-core{0%{opacity:0;transform:scale(.5)}20%{opacity:1;transform:scale(.9)}60%{opacity:.65;transform:scale(1.25)}to{opacity:0;transform:scale(1.6)}}@keyframes fab-in{0%{opacity:0;transform:translateY(8px)scale(.86)}}.sheet-backdrop{z-index:70;-webkit-backdrop-filter:blur(3px);background:#0000003d;align-items:flex-end;animation:.24s sheet-fade;display:flex;position:absolute;inset:0}.sheet{width:100%;padding:14px 18px calc(20px + env(safe-area-inset-bottom));animation:sheet-up .32s var(--ease-spring);background:#fff;border-radius:26px 26px 0 0;box-shadow:0 -16px 50px #0003}@keyframes sheet-fade{0%{opacity:0}}@keyframes sheet-up{0%{opacity:.5;transform:translateY(36px)}}@media (prefers-reduced-motion:reduce){.upload-fab,.fab-mist,.fab-mist-core,.sheet-backdrop,.sheet{transition:none;animation:none}}
