:root{--bg: #f5f5f7;--bg-elevated: #ffffff;--card: rgba(255, 255, 255, .85);--card-solid: #ffffff;--nav-glass: rgba(255, 255, 255, .72);--subnav: rgba(250, 250, 252, .9);--text: #1d1d1f;--text-2: #424245;--muted: #6e6e73;--label: #86868b;--accent: #0071e3;--accent-hover: #0077ed;--accent-active: #006edb;--accent-light: rgba(0, 113, 227, .12);--line: rgba(0, 0, 0, .08);--line-strong: rgba(0, 0, 0, .16);--shadow-sm: 0 1px 4px rgba(0,0,0,.06), 0 4px 12px rgba(0,0,0,.06);--shadow-md: 0 4px 16px rgba(0,0,0,.08), 0 12px 32px rgba(0,0,0,.06);--shadow-lg: 0 8px 32px rgba(0,0,0,.1), 0 24px 64px rgba(0,0,0,.08);--r-sm: 8px;--r-md: 12px;--r-lg: 18px;--r-xl: 24px;--r-pill:980px;--ease: cubic-bezier(.4, 0, .2, 1);--spring:cubic-bezier(.34, 1.56, .64, 1);--fast: .18s;--mid: .28s;--slow: .42s}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;scroll-behavior:smooth}body{background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,SF Pro Text,Helvetica Neue,Helvetica,Arial,sans-serif;line-height:1.5;letter-spacing:-.01em;min-height:100vh}.page{min-height:100vh;display:flex;flex-direction:column}.topbar{position:sticky;top:0;z-index:100;background:var(--nav-glass);backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px);border-bottom:1px solid var(--line);display:grid;grid-template-columns:160px 1fr auto;gap:1.5rem;align-items:center;padding:.75rem 2rem;transition:box-shadow var(--mid) var(--ease)}.topbar:has(+.page *:not(.hero)){box-shadow:var(--shadow-sm)}.brand{font-size:1.35rem;font-weight:700;letter-spacing:-.03em;color:var(--text);text-decoration:none}.search-wrap{display:flex;align-items:center;background:#0000000d;border:1px solid var(--line);border-radius:var(--r-pill);overflow:hidden;transition:background var(--fast) var(--ease),border-color var(--fast) var(--ease),box-shadow var(--fast) var(--ease)}.search-wrap:focus-within{background:#fff;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-light)}.search{flex:1;border:none;background:transparent;padding:.6rem 1rem;font-size:.9rem;color:var(--text);outline:none;font-family:inherit}.search::placeholder{color:var(--label)}.search-wrap button{border:none;background:transparent;color:var(--accent);padding:.6rem 1.1rem;font-size:.88rem;font-weight:600;cursor:pointer;font-family:inherit;transition:color var(--fast) var(--ease);letter-spacing:-.01em}.search-wrap button:hover{color:var(--accent-hover)}.meta{display:flex;align-items:center;gap:1.5rem;font-size:.875rem;color:var(--text-2)}.meta .status-dot{display:flex;align-items:center;gap:.4rem}.meta .status-dot:before{content:"";width:7px;height:7px;border-radius:50%;background:#34c759;display:inline-block;box-shadow:0 0 6px #34c75980}.topbar-user{display:flex;align-items:center;gap:.75rem;font-size:.875rem}.topbar-user span{color:var(--text-2);font-weight:500}.topbar-user .btn-ghost{font-size:.82rem}.subnav{background:var(--subnav);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--line);padding:.6rem 2rem;display:flex;gap:.4rem;flex-wrap:wrap;overflow-x:auto;scrollbar-width:none}.subnav::-webkit-scrollbar{display:none}.subnav button{border:1px solid transparent;background:transparent;color:var(--text-2);padding:.38rem .85rem;border-radius:var(--r-pill);cursor:pointer;font-size:.85rem;font-weight:500;font-family:inherit;letter-spacing:-.01em;transition:background var(--fast) var(--ease),color var(--fast) var(--ease),border-color var(--fast) var(--ease),transform var(--fast) var(--spring);white-space:nowrap}.subnav button:hover{background:#0000000f;color:var(--text);transform:translateY(-1px)}.subnav button.active{background:var(--text);color:#fff;border-color:var(--text)}.hero{background:linear-gradient(135deg,#e8f4fd,#f0f4ff,#faf0ff);padding:3.5rem 2rem 3rem;display:flex;justify-content:space-between;align-items:center;gap:2rem;overflow:hidden;position:relative}.hero:before{content:"";position:absolute;width:500px;height:500px;background:radial-gradient(circle,rgba(0,113,227,.08) 0%,transparent 70%);top:-200px;right:-100px;pointer-events:none}.hero-copy{max-width:520px}.hero h1{font-size:clamp(1.6rem,3vw,2.4rem);font-weight:700;letter-spacing:-.04em;color:var(--text);line-height:1.15;margin-bottom:.6rem}.hero p{color:var(--text-2);font-size:1rem;letter-spacing:-.01em}.hero-tags{display:flex;flex-direction:column;gap:.5rem;flex-shrink:0}.hero-tags span{background:#fffc;border:1px solid var(--line);padding:.5rem .9rem;border-radius:var(--r-pill);font-size:.82rem;font-weight:500;color:var(--text-2);letter-spacing:-.01em;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);transition:transform var(--fast) var(--spring),box-shadow var(--fast) var(--ease)}.hero-tags span:hover{transform:translate(-3px);box-shadow:var(--shadow-sm)}.order-msg{max-width:1400px;margin:1.2rem auto 0;padding:.85rem 1.2rem;border-radius:var(--r-md);background:#34c7591a;border:1px solid rgba(52,199,89,.3);color:#1a7a32;font-size:.9rem;font-weight:500;display:flex;align-items:center;gap:.5rem;animation:slideDown var(--mid) var(--spring)}.order-msg:before{content:"✓";width:20px;height:20px;background:#34c759;color:#fff;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:.7rem;font-weight:700;flex-shrink:0}@keyframes slideDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.content{max-width:1400px;margin:0 auto;display:grid;grid-template-columns:1fr 320px;gap:1.5rem;padding:1.5rem 2rem;flex:1}.catalog{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;align-content:start;min-width:0}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);padding:0;display:flex;flex-direction:column;overflow:hidden;transition:transform var(--mid) var(--spring),box-shadow var(--mid) var(--ease),border-color var(--fast) var(--ease);cursor:default}.card:hover{transform:translateY(-4px) scale(1.01);box-shadow:var(--shadow-md);border-color:var(--line-strong)}.card-img-wrap{padding:1rem 1rem 0}.card img{width:100%;height:170px;object-fit:cover;border-radius:var(--r-md);background:var(--bg);display:block;transition:transform var(--mid) var(--ease)}.card:hover .card-img-wrap img{transform:scale(1.03)}.card-body{padding:.9rem 1rem 1rem;display:flex;flex-direction:column;gap:.45rem;flex:1}.badge{font-size:.7rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;display:inline-flex;align-items:center;background:#ff3b301f;color:#ff3b30;padding:.2rem .55rem;border-radius:var(--r-pill);width:fit-content}.card h3{font-size:.9rem;font-weight:600;letter-spacing:-.02em;color:var(--text);line-height:1.35;min-height:38px}.rating{color:#ff9f0a;font-size:.82rem;display:flex;align-items:center;gap:.3rem}.rating span{color:var(--label);font-size:.78rem}.price{font-size:1.15rem;font-weight:700;letter-spacing:-.03em;color:var(--text);margin-top:auto}.card .btn-add{margin-top:.55rem;border:none;background:var(--accent);color:#fff;padding:.6rem .9rem;border-radius:var(--r-pill);cursor:pointer;font-size:.85rem;font-weight:600;font-family:inherit;letter-spacing:-.01em;width:100%;transition:background var(--fast) var(--ease),transform var(--fast) var(--spring),box-shadow var(--fast) var(--ease)}.card .btn-add:hover:not(:disabled){background:var(--accent-hover);transform:translateY(-1px);box-shadow:0 4px 12px #0071e359}.card .btn-add:active:not(:disabled){background:var(--accent-active);transform:translateY(0);box-shadow:none}.card .btn-add:disabled{background:#0071e366;cursor:not-allowed;transform:none;box-shadow:none}.cart-panel{background:var(--card-solid);border:1px solid var(--line);border-radius:var(--r-xl);padding:1.2rem 1.4rem;height:fit-content;position:sticky;top:80px;box-shadow:var(--shadow-sm)}.cart-panel h2{font-size:1.05rem;font-weight:700;letter-spacing:-.03em;margin-bottom:1rem;padding-bottom:.8rem;border-bottom:1px solid var(--line);color:var(--text)}.cart-item{border-bottom:1px solid var(--line);padding:.7rem 0;display:flex;justify-content:space-between;align-items:flex-start;gap:.6rem;animation:fadeIn var(--fast) var(--ease)}@keyframes fadeIn{0%{opacity:0;transform:translate(6px)}to{opacity:1;transform:translate(0)}}.cart-item strong{font-size:.88rem;font-weight:600;color:var(--text);letter-spacing:-.01em}.cart-item p{color:var(--muted);font-size:.8rem;margin-top:.15rem}.summary{margin-top:1rem;display:flex;flex-direction:column;gap:.4rem}.summary p{display:flex;justify-content:space-between;font-size:.875rem;color:var(--text-2)}.summary h3{display:flex;justify-content:space-between;font-size:1rem;font-weight:700;letter-spacing:-.02em;padding-top:.6rem;margin-top:.3rem;border-top:1px solid var(--line)}.checkout{display:block;width:100%;margin-top:1rem;border:none;background:var(--accent);color:#fff;padding:.78rem 1rem;border-radius:var(--r-pill);cursor:pointer;font-size:.95rem;font-weight:600;font-family:inherit;letter-spacing:-.01em;text-align:center;transition:background var(--fast) var(--ease),transform var(--fast) var(--spring),box-shadow var(--fast) var(--ease)}.checkout:hover:not(:disabled){background:var(--accent-hover);transform:translateY(-1px);box-shadow:0 6px 18px #0071e361}.checkout:active:not(:disabled){background:var(--accent-active);transform:translateY(0);box-shadow:none}.checkout:disabled{background:#0071e359;cursor:not-allowed;transform:none;box-shadow:none}.muted{color:var(--muted);font-size:.875rem}.btn-ghost{border:none;background:transparent;color:var(--accent);cursor:pointer;font-size:.875rem;font-weight:500;font-family:inherit;padding:0;transition:color var(--fast) var(--ease)}.btn-ghost:hover{color:var(--accent-hover)}.link{border:none;background:transparent;color:var(--accent);cursor:pointer;font-size:.82rem;font-weight:500;font-family:inherit;padding:.2rem .4rem;border-radius:4px;transition:background var(--fast) var(--ease),color var(--fast) var(--ease)}.link:hover{background:var(--accent-light);color:var(--accent-hover)}@media (max-width: 1100px){.content{grid-template-columns:1fr 290px}}@media (max-width: 900px){.topbar{grid-template-columns:1fr;gap:.75rem;padding:.75rem 1.2rem}.meta{display:none}.content{grid-template-columns:1fr;padding:1rem 1.2rem}.cart-panel{position:static;border-radius:var(--r-xl)}.hero{padding:2.5rem 1.2rem;flex-direction:column;align-items:flex-start}.hero-tags{flex-direction:row;flex-wrap:wrap}.subnav{padding:.5rem 1.2rem}}@media (max-width: 600px){.catalog{grid-template-columns:repeat(2,1fr)}}@media (max-width: 360px){.catalog{grid-template-columns:1fr}}.login-page{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;background:linear-gradient(175deg,#f5f5f7,#e8ecf7);padding:2rem 1rem;position:relative;overflow:hidden}.login-page:before{content:"";position:absolute;width:700px;height:700px;border-radius:50%;background:radial-gradient(circle,rgba(0,113,227,.07) 0%,transparent 70%);top:-300px;right:-200px;pointer-events:none}.login-page:after{content:"";position:absolute;width:500px;height:500px;border-radius:50%;background:radial-gradient(circle,rgba(175,82,222,.06) 0%,transparent 70%);bottom:-200px;left:-150px;pointer-events:none}.login-card{background:#ffffffd9;backdrop-filter:saturate(180%) blur(24px);-webkit-backdrop-filter:saturate(180%) blur(24px);border:1px solid rgba(255,255,255,.9);border-radius:var(--r-xl);padding:2.5rem 2.4rem;width:100%;max-width:400px;box-shadow:var(--shadow-lg);animation:cardIn var(--slow) var(--spring);position:relative;z-index:1}@keyframes cardIn{0%{opacity:0;transform:translateY(24px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.login-logo{display:flex;justify-content:center;margin-bottom:1.8rem}.login-logo-mark{width:52px;height:52px;background:var(--text);border-radius:14px;display:flex;align-items:center;justify-content:center;color:#fff;font-size:1.5rem;font-weight:800;letter-spacing:-.04em;box-shadow:0 8px 24px #00000026}.login-brand{font-size:1.6rem;font-weight:700;color:var(--text);letter-spacing:-.04em;text-align:center;margin-bottom:.25rem}.login-sub{font-size:.95rem;color:var(--muted);text-align:center;margin-bottom:2rem;letter-spacing:-.01em}.login-error{background:#ff3b3014;border:1px solid rgba(255,59,48,.22);color:#c0392b;border-radius:var(--r-md);padding:.65rem .9rem;margin-bottom:1rem;font-size:.875rem;display:flex;align-items:center;gap:.4rem;animation:shakeIn .3s ease}@keyframes shakeIn{0%,to{transform:translate(0)}20%{transform:translate(-5px)}60%{transform:translate(5px)}}.login-form{display:flex;flex-direction:column;gap:1.1rem}.login-field{display:flex;flex-direction:column;gap:.4rem}.login-field span{font-size:.82rem;font-weight:600;color:var(--text-2);letter-spacing:-.01em}.login-field input{border:1.5px solid var(--line-strong);border-radius:var(--r-md);padding:.7rem .9rem;font-size:.95rem;font-family:inherit;color:var(--text);background:#ffffffb3;outline:none;transition:border-color var(--fast) var(--ease),background var(--fast) var(--ease),box-shadow var(--fast) var(--ease);letter-spacing:-.01em}.login-field input::placeholder{color:var(--label)}.login-field input:focus{border-color:var(--accent);background:#fff;box-shadow:0 0 0 3px var(--accent-light)}.login-btn{margin-top:.5rem;border:none;background:var(--accent);color:#fff;padding:.78rem 1rem;border-radius:var(--r-pill);font-size:.95rem;font-weight:600;font-family:inherit;cursor:pointer;letter-spacing:-.01em;width:100%;transition:background var(--fast) var(--ease),transform var(--fast) var(--spring),box-shadow var(--fast) var(--ease)}.login-btn:hover:not(:disabled){background:var(--accent-hover);transform:translateY(-1px);box-shadow:0 6px 20px #0071e361}.login-btn:active:not(:disabled){background:var(--accent-active);transform:translateY(0);box-shadow:none}.login-btn:disabled{background:#0071e366;cursor:not-allowed;transform:none}.login-switch{margin-top:1.5rem;font-size:.875rem;text-align:center;color:var(--muted);display:flex;align-items:center;justify-content:center;gap:.4rem}.login-switch button{border:none;background:transparent;color:var(--accent);font-size:.875rem;font-weight:600;font-family:inherit;cursor:pointer;padding:0;transition:color var(--fast) var(--ease)}.login-switch button:hover{color:var(--accent-hover)}.login-footer{display:flex;gap:1rem;flex-wrap:wrap;justify-content:center;margin-top:2rem;font-size:.78rem;color:var(--label)}.login-footer a{color:var(--label);text-decoration:none}.login-footer a:hover{color:var(--muted)}
