:root {--bg: #f6f7fb;--surface: #fff;--text: #12141c;--muted: #5d6479;--border: #e3e6ef;--accent: #4f46e5;--accent-2: #7c3aed;--ok: #16a34a;--err: #dc2626;--star: #f59e0b;--shadow: 0 6px 24px rgba(20,24,40,.08) }:root[data-theme=dark] {--bg: #0d0f16;--surface: #161923;--text: #eceef6;--muted: #9aa2b8;--border: #262b3a;--accent: #818cf8;--accent-2: #a78bfa;--shadow: 0 6px 24px rgba(0,0,0,.45) }* {box-sizing: border-box }html {scroll-behavior: smooth }body {margin: 0;font: 16px/1.6 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;background: var(--bg);color: var(--text);transition: background .25s,color .25s;min-height: 100vh;display: flex;flex-direction: column }a {color: inherit;text-decoration: none }main {flex: 1 }.wrap {max-width: 1180px;margin: 0 auto;padding: 0 20px }header.top {position: sticky;top: 0;z-index: 10;background: color-mix(in srgb,var(--bg) 85%,transparent);backdrop-filter: blur(12px);border-bottom: 1px solid var(--border) }header .wrap {display: flex;align-items: center;justify-content: space-between;height: 64px;gap: 16px }.brand {font-weight: 800;font-size: 1.25rem;letter-spacing: -.02em }.brand span {background: linear-gradient(90deg,var(--accent),var(--accent-2));-webkit-background-clip: text;background-clip: text;color: transparent }nav a {margin-left: 20px;color: var(--muted);font-size: .95rem }nav a:hover {color: var(--text) }.icon-btn, .btn {font: inherit;cursor: pointer;border: 1px solid var(--border);background: var(--surface);color: var(--text);border-radius: 10px;transition: .2s }.icon-btn {width: 40px;height: 40px;font-size: 1.1rem }.icon-btn:hover {border-color: var(--accent) }.btn {padding: 11px 20px;font-weight: 600 }.btn.primary {background: linear-gradient(135deg,var(--accent),var(--accent-2));color: #fff;border: 0 }.btn.primary:hover {filter: brightness(1.1);transform: translateY(-1px) }.btn:disabled {opacity: .6;cursor: wait }:focus-visible {outline: 2px solid var(--accent);outline-offset: 2px }.hero {padding: 56px 0 24px }.hero h1 {font-size: clamp(1.8rem,4vw,2.8rem);margin: 0 0 8px;letter-spacing: -.03em }.hero p {color: var(--muted);margin: 0;max-width: 560px }.toolbar {display: flex;flex-wrap: wrap;gap: 12px;margin: 24px 0 }input, select, textarea {font: inherit;color: var(--text);background: var(--surface);border: 1px solid var(--border);border-radius: 10px;padding: 10px 14px;width: 100%;transition: border .2s }input:focus, select:focus, textarea:focus {border-color: var(--accent);outline: 0 }.toolbar input {flex: 1 1 260px;width: auto }.toolbar select {width: auto;flex: 0 0 190px }.grid {display: grid;grid-template-columns: repeat(auto-fill,minmax(250px,1fr));gap: 22px;padding-bottom: 56px }.card {background: var(--surface);border: 1px solid var(--border);border-radius: 16px;overflow: hidden;box-shadow: var(--shadow);transition: transform .2s,border-color .2s;display: flex;flex-direction: column }.card:hover {transform: translateY(-4px);border-color: var(--accent) }.card img {width: 100%;aspect-ratio: 4/3;object-fit: cover;display: block }.card .body {padding: 16px;display: flex;flex-direction: column;gap: 6px;flex: 1 }.cat {font-size: .75rem;text-transform: uppercase;letter-spacing: .08em;color: var(--accent);font-weight: 700 }.card h3 {margin: 0;font-size: 1.05rem }.price {font-weight: 800;font-size: 1.15rem;margin-top: auto }.stars {color: var(--star);letter-spacing: 2px;white-space: nowrap }.meta {color: var(--muted);font-size: .85rem }.notice {background: color-mix(in srgb,var(--accent) 10%,transparent);border: 1px solid var(--accent);border-radius: 10px;padding: 10px 14px;font-size: .9rem;margin: 16px 0 }.crumbs {padding: 24px 0 8px;color: var(--muted);font-size: .9rem }.crumbs a:hover {color: var(--accent) }.product {display: grid;grid-template-columns: minmax(0,1.1fr) minmax(0,1fr);gap: 40px;padding: 12px 0 32px }.main-img {width: 100%;aspect-ratio: 1/1;object-fit: cover;border-radius: 18px;border: 1px solid var(--border);display: block }.thumbs {display: flex;gap: 10px;margin-top: 12px }.thumbs button {padding: 0;border: 2px solid var(--border);border-radius: 10px;overflow: hidden;cursor: pointer;background: none;width: 20%;aspect-ratio: 1/1;opacity: .7;transition: .2s }.thumbs button.active, .thumbs button:hover {border-color: var(--accent);opacity: 1 }.thumbs img {width: 100%;height: 100%;object-fit: cover;display: block }.info h1 {font-size: 2rem;margin: 4px 0 8px;letter-spacing: -.02em }.info .price {font-size: 1.9rem;display: block;margin: 12px 0 }section.panel {background: var(--surface);border: 1px solid var(--border);border-radius: 16px;padding: 28px;margin-bottom: 24px;box-shadow: var(--shadow) }section.panel h2 {margin: 0 0 14px;font-size: 1.3rem }.reviews {display: grid;grid-template-columns: minmax(0,1.2fr) minmax(0,1fr);gap: 28px }.review {padding: 16px 0;border-bottom: 1px solid var(--border) }.review:last-child {border: 0 }.review h4 {margin: 4px 0 }.review p {margin: 4px 0;color: var(--muted) }form label {display: block;font-weight: 600;font-size: .9rem;margin: 14px 0 6px }.rate {display: inline-flex;flex-direction: row-reverse;gap: 4px }.rate input {position: absolute;opacity: 0;width: 0 }.rate label {font-size: 1.8rem;color: var(--border);cursor: pointer;margin: 0;line-height: 1 }.rate input:checked ~ label, .rate label:hover, .rate label:hover ~ label {color: var(--star) }.rate input:focus-visible + label {outline: 2px solid var(--accent) }.status {margin-top: 12px;font-size: .92rem;min-height: 1.4em }.status.ok {color: var(--ok) }.status.err {color: var(--err) }footer.site {background: var(--surface);border-top: 1px solid var(--border);margin-top: 32px;padding: 44px 0 24px }.fcols {display: grid;grid-template-columns: 2fr 1fr 1fr 1fr;gap: 32px }footer h4 {margin: 0 0 12px;font-size: .8rem;text-transform: uppercase;letter-spacing: .08em;color: var(--muted) }footer ul {list-style: none;margin: 0;padding: 0 }footer li {margin: 8px 0 }footer li a {color: var(--muted);font-size: .93rem }footer li a:hover {color: var(--accent) }.legal {border-top: 1px solid var(--border);margin-top: 32px;padding-top: 20px;color: var(--muted);font-size: .85rem;display: flex;justify-content: space-between;flex-wrap: wrap;gap: 8px }@media(max-width:820px) {.product, .reviews {grid-template-columns: 1fr }.fcols {grid-template-columns: 1fr 1fr }nav {display: none }}@media(prefers-reduced-motion:reduce) {* {transition: none !important }}