:root:root{--el-color-primary:var(--brand-500);--el-color-primary-light-3:color-mix(in srgb, var(--brand-500) 80%, #fff);--el-color-primary-light-5:color-mix(in srgb, var(--brand-500) 60%, #fff);--el-color-primary-light-7:color-mix(in srgb, var(--brand-500) 40%, #fff);--el-color-primary-light-8:color-mix(in srgb, var(--brand-500) 30%, #fff);--el-color-primary-light-9:color-mix(in srgb, var(--brand-500) 18%, #fff);--el-color-primary-dark-2:color-mix(in srgb, var(--brand-500) 80%, #000);--el-color-success:var(--success);--el-color-success-light-3:color-mix(in srgb, var(--success) 80%, #fff);--el-color-success-light-9:color-mix(in srgb, var(--success) 16%, #fff);--el-color-warning:var(--warning);--el-color-warning-light-3:color-mix(in srgb, var(--warning) 80%, #fff);--el-color-warning-light-9:color-mix(in srgb, var(--warning) 16%, #fff);--el-color-danger:var(--error);--el-color-error:var(--error);--el-color-danger-light-3:color-mix(in srgb, var(--error) 80%, #fff);--el-color-danger-light-9:color-mix(in srgb, var(--error) 16%, #fff);--el-color-info:var(--info);--el-color-info-light-3:color-mix(in srgb, var(--info) 80%, #fff);--el-color-info-light-9:color-mix(in srgb, var(--info) 16%, #fff);--el-border-radius-base:10px;--el-border-radius-small:8px;--el-font-family:var(--font-sans);--el-bg-color:var(--surface);--el-bg-color-page:var(--bg);--el-bg-color-overlay:var(--surface);--el-fill-color-blank:var(--surface);--el-fill-color:var(--surface-2);--el-fill-color-light:var(--surface-2);--el-text-color-primary:var(--text);--el-text-color-regular:var(--text-soft);--el-text-color-secondary:var(--text-faint);--el-text-color-placeholder:var(--text-faint);--el-text-color-disabled:var(--text-faint);--el-border-color:var(--border);--el-border-color-light:var(--border);--el-border-color-lighter:var(--border-strong);--el-border-color-hover:var(--border-strong);--el-overlay-color-lighter:#10142273;--el-table-header-bg-color:var(--gray-800);--el-table-header-text-color:oklch(99% 0 0);--el-table-row-hover-bg-color:var(--brand-50);--el-table-current-row-bg-color:var(--brand-100);--el-table-fixed-box-shadow:0 0 10px #10142214}.el-table{--el-table-border-color:var(--border);--el-table-text-color:var(--text);--el-table-header-text-color:oklch(99% 0 0);font-size:var(--fs-sm);border-radius:var(--r-md);overflow:hidden;box-shadow:0 1px 3px #1014220a,0 1px 2px #10142205}.el-table__header-wrapper thead th{letter-spacing:.02em;text-transform:uppercase;font-size:var(--fs-xs);text-shadow:0 1px 1px #10142240;background:var(--gray-800)!important;color:oklch(99% 0 0)!important;border-bottom:2px solid var(--brand-500)!important;font-weight:700!important}.el-table__header-wrapper thead th .cell{line-height:1.4}.el-table .cell{padding:var(--sp-3) var(--sp-3);line-height:1.5}.el-table--striped .el-table__body tr.el-table__row--striped td{background:var(--surface-2)}.el-table--enable-row-hover .el-table__body tr:hover>td{background:var(--brand-50)!important}.el-table__body tr.current-row>td{background:var(--brand-100)!important}.el-table td,.el-table th.is-leaf{border-bottom:1px solid var(--border)}.el-table--border:after,.el-table--border:before,.el-table--border .el-table__inner-wrapper:after,.el-table__border-left-patch{display:none}.el-table__empty-block{padding:var(--sp-8) 0;color:var(--text-faint)}.el-pagination{--el-pagination-button-height:32px;--el-pagination-font-size:var(--fs-sm);font-weight:500}.table-pager{margin-top:var(--sp-4);padding-top:var(--sp-3);border-top:1px dashed var(--border);justify-content:flex-end;display:flex}.seq-col{text-align:center;white-space:nowrap}.seq-col .cell{justify-content:center;display:flex}.seq-cell{font-variant-numeric:tabular-nums;min-width:26px;height:22px;color:var(--brand-600);background:oklch(94% .05 250/.5);border-radius:999px;justify-content:center;align-items:center;padding:0 8px;font-size:12px;font-weight:600;display:inline-flex}:root[data-theme=dark] .seq-cell{color:var(--brand-200);background:oklch(28% .04 var(--skin-hue) / .55)}.el-pagination .el-pager li{border-radius:var(--r-sm);font-weight:500}.el-pagination .el-pager li.is-active{background:var(--brand-500);color:var(--text-on-brand);box-shadow:0 2px 6px color-mix(in srgb, var(--brand-500) 40%, transparent)}.el-tag{--el-tag-border-radius:var(--r-pill);height:24px;font-weight:500;font-size:var(--fs-xs);padding:0 10px}.el-tag.el-tag--success{background:var(--success-bg);border-color:color-mix(in srgb, var(--success) 30%, transparent);color:color-mix(in srgb, var(--success) 70%, #000)}.el-tag.el-tag--info{background:var(--gray-100);border-color:var(--border-strong);color:var(--text-soft)}.el-button.is-link{padding:0 4px;font-weight:500}.el-button.is-link.el-button--primary{color:var(--brand-600)}.el-button.is-link.el-button--primary:hover{color:var(--brand-700)}.el-button.is-link.el-button--danger{color:var(--error)}.el-button.is-link.el-button--danger:hover{color:color-mix(in srgb, var(--error) 80%, #000)}.el-input-group__append .el-button{background:var(--brand-500);border-color:var(--brand-500);color:var(--text-on-brand)}.el-input-group__append .el-button:hover{background:var(--brand-600);border-color:var(--brand-600)}:root[data-theme=dark]:root{--el-table-header-bg-color:oklch(38% .02 240);--el-table-header-text-color:oklch(99% 0 0);--el-table-row-hover-bg-color:oklch(30% .03 var(--skin-hue) / .45);--el-table-current-row-bg-color:oklch(28% .04 var(--skin-hue) / .55);--el-table-border-color:var(--border)}:root[data-theme=dark] .el-table__header-wrapper thead th{color:oklch(99% 0 0)!important;border-bottom:2px solid var(--brand-400)!important;background:oklch(38% .02 240)!important}:root[data-theme=dark] .el-table--striped .el-table__body tr.el-table__row--striped td{background:var(--surface-2)}:root[data-theme=dark] .el-table__empty-block{color:var(--text-faint)}.row-actions{justify-content:center;align-items:center;gap:2px;display:inline-flex}.action-divider{color:var(--border-strong);font-size:var(--fs-xs);-webkit-user-select:none;user-select:none}.action-btn{transition:transform .12s,opacity .12s}.action-btn:hover{transform:translateY(-1px)}.action-btn--edit{color:var(--brand-600)!important}.action-btn--edit:hover{color:var(--brand-700)!important}.action-btn--delete{color:var(--error)!important}.action-btn--delete:hover{color:color-mix(in srgb, var(--error) 80%, #000)!important}.text-muted{color:var(--text-soft);font-size:var(--fs-sm)}.el-table .is-selected>td.el-table__cell{background:var(--brand-50,#3b82f614)}.toast-enter-active,.toast-leave-active{transition:opacity .3s,transform .3s}.toast-enter-from,.toast-leave-to{opacity:0;transform:translateY(12px)}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--skin-hue:225;--brand-50:oklch(97% .02 var(--skin-hue));--brand-100:oklch(93% .04 var(--skin-hue));--brand-200:oklch(85% .07 var(--skin-hue));--brand-300:oklch(74% .1 var(--skin-hue));--brand-400:oklch(62% .12 var(--skin-hue));--brand-500:oklch(52% .13 var(--skin-hue));--brand-600:oklch(45% .13 var(--skin-hue));--brand-700:oklch(38% .12 var(--skin-hue));--brand-800:oklch(32% .1 var(--skin-hue));--brand-900:oklch(27% .08 var(--skin-hue));--accent:oklch(68% .14 70);--accent-soft:oklch(94% .05 70);--success:oklch(58% .14 152);--success-bg:oklch(96% .04 152);--warning:oklch(70% .14 75);--error:oklch(58% .2 25);--error-bg:oklch(96% .04 25);--info:var(--brand-500);--violet-500:oklch(60% .16 290);--violet-600:oklch(53% .16 290);--violet-700:oklch(46% .15 290);--violet-soft:oklch(95% .05 290);--teal-500:oklch(64% .13 195);--teal-600:oklch(56% .13 195);--teal-soft:oklch(95% .05 195);--gradient-brand:linear-gradient(135deg, var(--brand-400), var(--brand-700));--gradient-cta:linear-gradient(135deg, var(--brand-500), oklch(58% .16 calc(var(--skin-hue) + 38)));--gradient-surface:linear-gradient(160deg, color-mix(in oklab, var(--brand-50) 55%, white), var(--surface));--ambient:radial-gradient(60% 80% at 0% 0%, oklch(70% .14 var(--skin-hue) / .16), transparent 55%), radial-gradient(60% 80% at 100% 0%, oklch(72% .15 290/.14), transparent 55%), radial-gradient(80% 80% at 100% 100%, oklch(85% .14 70/.1), transparent 55%);--gray-25:oklch(99% .003 240);--gray-50:oklch(98% .004 240);--gray-100:oklch(96% .006 240);--gray-200:oklch(92% .008 240);--gray-300:oklch(86% .01 240);--gray-400:oklch(72% .012 240);--gray-500:oklch(60% .013 240);--gray-600:oklch(50% .013 240);--gray-700:oklch(40% .012 240);--gray-800:oklch(30% .01 240);--gray-900:oklch(23% .009 240);--gray-950:oklch(16% .008 240);--bg:var(--gray-50);--bg-alt:var(--gray-100);--surface:oklch(100% 0 0);--surface-2:var(--gray-50);--bg-card:var(--surface);--border:var(--gray-200);--border-strong:var(--gray-300);--text:var(--gray-900);--text-soft:var(--gray-600);--text-faint:var(--gray-500);--text-2:var(--gray-500);--text-on-brand:oklch(99% 0 0);--ink:oklch(28% .02 250);--primary:var(--brand-500);--primary-hover:var(--brand-600);--primary-soft:var(--brand-50);--font-sans:"Plus Jakarta Sans", "PingFang SC", "Microsoft YaHei", "Noto Sans SC", system-ui, -apple-system, sans-serif;--font-display:"Plus Jakarta Sans", "PingFang SC", "Microsoft YaHei", "Noto Sans SC", system-ui, -apple-system, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;--fs-xs:.78rem;--fs-sm:.875rem;--fs-base:1rem;--fs-md:1.125rem;--fs-lg:clamp(1.25rem, 1rem + .8vw, 1.5rem);--fs-xl:clamp(1.6rem, 1.1rem + 1.8vw, 2.3rem);--fs-2xl:clamp(2.1rem, 1.3rem + 3.4vw, 3.4rem);--fs-hero:clamp(2.6rem, 1.5rem + 5vw, 4.75rem);--lh-tight:1.1;--lh-snug:1.35;--lh-base:1.7;--tracking-tight:-.025em;--tracking-wide:.1em;--sp-1:.25rem;--sp-2:.5rem;--sp-3:.75rem;--sp-4:1rem;--sp-5:1.25rem;--sp-6:1.5rem;--sp-8:2rem;--sp-10:2.5rem;--sp-12:3rem;--sp-16:4rem;--sp-20:5rem;--sp-24:6rem;--section-y:clamp(4rem, 3rem + 5vw, 8rem);--container:1200px;--r-sm:12px;--r-md:16px;--r-lg:26px;--r-pill:999px;--shadow-sm:0 1px 2px oklch(23% .01 240/.05);--shadow-md:0 8px 24px oklch(23% .01 240/.08);--shadow-lg:0 24px 60px oklch(23% .01 240/.13);--ring:0 0 0 3px oklch(52% .13 225/.3);--ease:cubic-bezier(.16, 1, .3, 1);--ease-soft:cubic-bezier(.65, 0, .35, 1);--dur-fast:.16s;--dur:.32s;--dur-slow:.6s}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:var(--gray-950);--bg-alt:oklch(20% .012 240);--surface:oklch(22% .013 240);--surface-2:oklch(27% .013 240);--bg-card:var(--surface);--border:oklch(33% .012 240);--border-strong:oklch(42% .012 240);--text:oklch(95% .01 240);--text-soft:oklch(76% .012 240);--text-faint:oklch(63% .012 240);--text-2:oklch(63% .012 240);--text-on-brand:oklch(99% 0 0);--ink:oklch(92% .01 240);--primary:oklch(68% .13 var(--skin-hue));--primary-hover:oklch(74% .13 var(--skin-hue));--primary-soft:oklch(28% .08 var(--skin-hue));--brand-50:oklch(24% .05 var(--skin-hue));--brand-100:oklch(26% .06 var(--skin-hue));--accent-soft:oklch(28% .06 70);--success-bg:oklch(24% .05 152);--error-bg:oklch(24% .05 25);--violet-soft:oklch(28% .06 290);--teal-soft:oklch(28% .05 195);--gradient-surface:linear-gradient(160deg, oklch(27% .05 var(--skin-hue)), var(--surface));--ambient:radial-gradient(60% 80% at 0% 0%, oklch(60% .14 var(--skin-hue) / .2), transparent 55%), radial-gradient(60% 80% at 100% 0%, oklch(62% .16 290/.18), transparent 55%), radial-gradient(80% 80% at 100% 100%, oklch(80% .14 70/.08), transparent 55%);--shadow-sm:0 1px 2px oklch(0% 0 0/.4);--shadow-md:0 8px 24px oklch(0% 0 0/.45);--shadow-lg:0 24px 60px oklch(0% 0 0/.55)}:root[data-skin=labridge]{--skin-hue:225}:root[data-skin=violet]{--skin-hue:290}:root[data-skin=emerald]{--skin-hue:162}:root[data-skin=amber]{--skin-hue:75}:root[data-skin=rose]{--skin-hue:18}html.is-skin-transitioning,html.is-skin-transitioning *{transition:background-color .4s var(--ease), border-color .4s var(--ease), color .4s var(--ease), fill .4s var(--ease), box-shadow .4s var(--ease)!important}.skin-switch{order:0;display:flex;position:relative}.skin-toggle{border-radius:var(--r-pill);cursor:pointer;border:1px solid var(--border);background:var(--surface);width:44px;height:44px;transition:border-color var(--dur-fast) var(--ease), transform var(--dur-fast) var(--ease);place-items:center;display:grid;position:relative}.skin-toggle:hover{border-color:var(--border-strong);transform:translateY(-1px)}.skin-toggle:focus-visible{box-shadow:var(--ring);outline:none}.skin-toggle__swatch{background:var(--gradient-cta);width:22px;height:22px;box-shadow:inset 0 0 0 2px var(--surface), 0 0 0 1px var(--border-strong);pointer-events:none;border-radius:50%}.skin-menu{z-index:130;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--shadow-lg);padding:var(--sp-2);opacity:0;visibility:hidden;min-width:176px;transition:opacity var(--dur-fast) var(--ease), transform var(--dur-fast) var(--ease), visibility var(--dur-fast) var(--ease);gap:2px;display:grid;position:absolute;top:calc(100% + 10px);right:0;transform:translateY(-6px)}.skin-menu.is-open{opacity:1;visibility:visible;transform:none}.skin-menu__item{align-items:center;gap:var(--sp-3);border-radius:var(--r-sm);width:100%;font-family:var(--font-sans);font-size:var(--fs-sm);color:var(--text-soft);transition:background var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease);padding:.55rem .7rem;font-weight:600;display:flex}.skin-menu__item:hover{background:var(--surface-2);color:var(--text)}.skin-menu__item.is-active{color:var(--primary);background:var(--primary-soft)}.skin-menu__item.is-active:after{content:"✓";margin-left:auto;font-weight:800}.skin-menu__swatch{width:18px;height:18px;box-shadow:inset 0 0 0 2px var(--surface), 0 0 0 1px var(--border-strong);pointer-events:none;border-radius:50%;flex:none}.skin-menu__title{font-family:var(--font-sans);font-size:var(--fs-xs);color:var(--text-faint);text-transform:uppercase;letter-spacing:.06em;padding:.3rem .7rem .4rem;font-weight:700}@media (width<=420px){.skin-switch{display:none}}*,:before,:after{box-sizing:border-box}*{margin:0}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{font-family:var(--font-sans);font-size:var(--fs-base);line-height:var(--lh-base);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;transition:background var(--dur) var(--ease), color var(--dur) var(--ease);overflow-x:hidden}body:before{content:"";z-index:-1;pointer-events:none;background:var(--ambient);position:fixed;inset:0}img,svg{max-width:100%;display:block}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:none}input,textarea,select{font:inherit;color:inherit}ul{padding:0;list-style:none}h1,h2,h3,h4{font-family:var(--font-display);line-height:var(--lh-tight);letter-spacing:-.02em;color:var(--ink);font-weight:600}:focus-visible{box-shadow:var(--ring);border-radius:var(--r-sm);outline:none}.skip-link{left:var(--sp-4);background:var(--primary);color:var(--text-on-brand);padding:var(--sp-2) var(--sp-4);border-radius:var(--r-sm);z-index:200;transition:top var(--dur-fast) var(--ease);position:absolute;top:-100px}.skip-link:focus{top:var(--sp-4)}.container{width:100%;max-width:var(--container);margin-inline:auto;padding-inline:clamp(1.25rem,4vw,2.5rem)}.section{padding-block:var(--section-y)}.section--alt{background:color-mix(in oklab, var(--brand-50) 45%, var(--bg-alt))}.section--raised{background:var(--surface-2);border-block:1px solid var(--border)}.stack>*+*{margin-top:var(--sp-4)}.text-gradient{background:var(--gradient-cta);-webkit-text-fill-color:transparent;color:#0000;-webkit-background-clip:text;background-clip:text}.eyebrow{align-items:center;gap:var(--sp-2);font-family:var(--font-sans);font-size:var(--fs-xs);letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--primary);font-weight:700;display:inline-flex}.eyebrow:before{content:"";background:var(--gradient-cta);border-radius:2px;width:1.75rem;height:2px}.section-title{font-size:var(--fs-xl);margin-top:var(--sp-3);max-width:20ch}.section-title em{background:var(--gradient-cta);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-style:normal}.section-lead{color:var(--text-soft);font-size:var(--fs-md);margin-top:var(--sp-4);max-width:56ch}.grid{gap:var(--sp-6);display:grid}.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}@media (width>=560px){.grid-2,.grid-3,.grid-4{grid-template-columns:repeat(2,1fr)}}@media (width>=820px){.grid-3,.grid-4{grid-template-columns:repeat(3,1fr)}}@media (width>=1100px){.grid-4{grid-template-columns:repeat(4,1fr)}}.btn{justify-content:center;align-items:center;gap:var(--sp-2);font-family:var(--font-sans);font-weight:600;font-size:var(--fs-sm);border-radius:var(--r-pill);white-space:nowrap;transition:transform var(--dur-fast) var(--ease), background var(--dur) var(--ease), box-shadow var(--dur) var(--ease), border-color var(--dur) var(--ease), color var(--dur) var(--ease);border:1px solid #0000;padding:.85rem 1.5rem;line-height:1;display:inline-flex}.btn svg{width:1.05em;height:1.05em}.btn--primary{background:var(--gradient-cta);color:var(--text-on-brand);box-shadow:0 8px 22px oklch(52% .15 260/.34)}.btn--primary:hover{background:var(--gradient-cta);filter:brightness(1.06);transform:translateY(-2px);box-shadow:0 14px 32px oklch(52% .15 260/.44)}.btn--ghost{color:var(--text);border-color:var(--border-strong);background:0 0}.btn--ghost:hover{background:var(--surface-2);border-color:var(--text-soft);transform:translateY(-1px)}.btn--soft{background:var(--primary-soft);color:var(--primary)}.btn--soft:hover{background:var(--brand-100)}.btn--block{width:100%}.btn--lg{font-size:var(--fs-base);padding:1.05rem 2rem}.btn:disabled{opacity:.55;cursor:not-allowed;transform:none}.btn:active:not(:disabled){filter:brightness(.96);transition-duration:80ms;transform:translateY(0)scale(.98)}.btn:focus-visible{box-shadow:0 0 0 3px color-mix(in oklab, var(--primary) 28%, transparent);outline:none}.site-header{z-index:100;background:color-mix(in oklab, var(--bg) 78%, transparent);-webkit-backdrop-filter:saturate(160%)blur(16px);transition:border-color var(--dur) var(--ease), background var(--dur) var(--ease), box-shadow var(--dur) var(--ease);border-bottom:1px solid #0000;position:sticky;top:0}.site-header.is-scrolled{border-bottom-color:var(--border);box-shadow:0 4px 20px oklch(23% .01 240/.05)}.nav{align-items:center;gap:var(--sp-6);height:76px;display:flex}.brand{align-items:center;gap:var(--sp-3);letter-spacing:-.02em;font-size:1.1rem;font-weight:800;font-family:var(--font-sans);display:inline-flex}.brand__mark{background:linear-gradient(150deg, var(--brand-500), var(--brand-800));color:#fff;width:40px;height:40px;box-shadow:var(--shadow-sm);border-radius:12px;flex:none;place-items:center;display:grid}.brand__mark svg{width:23px;height:23px}.brand__name small{font-family:var(--font-sans);letter-spacing:.24em;color:var(--text-faint);text-transform:uppercase;font-size:.6rem;font-weight:700;display:block}.brand__logo{width:auto;height:40px;display:block}.brand__wordmark{font-family:var(--font-display);letter-spacing:-.03em;color:currentColor;white-space:nowrap;font-size:1.25rem;font-weight:650;line-height:1}.nav__links{gap:var(--sp-1);margin-inline:auto;display:none}.nav__links a{border-radius:var(--r-pill);font-family:var(--font-sans);font-size:var(--fs-sm);color:var(--text-soft);white-space:nowrap;transition:color var(--dur-fast) var(--ease), background var(--dur-fast) var(--ease);flex-shrink:0;align-items:center;padding:.6rem 1.05rem;font-weight:600;display:inline-flex}.nav__links a:hover{color:var(--text);background:var(--surface-2)}.nav__links a[aria-current=page]{color:var(--primary);background:var(--primary-soft)}.nav__actions{align-items:center;gap:var(--sp-2);margin-left:auto;display:flex}.nav__actions>#theme-toggle{order:1}.nav__actions>#cart-open{order:2}.nav__actions>.region-switch{order:3}.nav__actions>.auth-area{order:4}.nav__actions>#nav-toggle{order:5}@media (width>=980px){.nav__links{display:flex}#nav-toggle,.nav__toggle{display:none}}@media (width<=1100px){.nav{gap:var(--sp-4)}.nav__actions{gap:var(--sp-1)}.nav__links a{padding:.55rem .85rem}}@media (width<=768px){.nav{gap:var(--sp-2);height:64px}.brand__logo{height:32px}.brand__mark{border-radius:10px;width:34px;height:34px}.brand__mark svg{width:19px;height:19px}.brand__wordmark{font-size:1.1rem}.icon-btn{width:38px;height:38px}.icon-btn svg{width:18px;height:18px}.skin-toggle{width:38px;height:38px}.skin-toggle__swatch{width:18px;height:18px}.region-switch{height:38px}.nav__actions{gap:var(--sp-1)}.auth-area .btn{font-size:var(--fs-xs);padding:.55rem .75rem}}@media (width<=420px){.nav__actions>#theme-toggle{display:none}.auth-area .btn{padding:.5rem .6rem}}.icon-btn{border-radius:var(--r-pill);width:44px;height:44px;color:var(--text-soft);border:1px solid var(--border);background:var(--surface);transition:color var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease), background var(--dur-fast) var(--ease), transform var(--dur-fast) var(--ease);place-items:center;display:grid;position:relative}.icon-btn:hover{color:var(--text);border-color:var(--border-strong);transform:translateY(-1px)}.icon-btn svg{width:20px;height:20px}.cart-btn__badge{background:var(--primary);color:#fff;border-radius:var(--r-pill);border:2px solid var(--bg);min-width:20px;height:20px;transition:transform var(--dur) var(--ease);place-items:center;padding:0 5px;font-size:.68rem;font-weight:700;display:grid;position:absolute;top:-4px;right:-4px;transform:scale(0)}.cart-btn__badge.is-visible{transform:scale(1)}.mobile-menu{z-index:99;background:var(--bg);padding:var(--sp-6) clamp(1.25rem, 4vw, 2.5rem);gap:var(--sp-2);transition:transform var(--dur) var(--ease);align-content:start;display:grid;position:fixed;inset:76px 0 0;transform:translate(100%)}.mobile-menu.is-open{transform:translate(0)}.mobile-menu a{border-bottom:1px solid var(--border);padding:1rem;font-size:1.1rem;font-weight:600}.mobile-menu a[aria-current=page]{color:var(--primary)}.hero{position:relative;overflow:hidden}.hero__inner{gap:var(--sp-12);align-items:center;padding-block:clamp(3.5rem,2rem + 6vw,7.5rem);display:grid}@media (width>=900px){.hero__inner{grid-template-columns:1.05fr .95fr}}.hero h1{font-size:var(--fs-hero);overflow-wrap:break-word;word-break:break-all;font-weight:600}.hero h1 .text-gradient{background:var(--gradient-cta);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.hero__lead{font-size:var(--fs-md);color:var(--text-soft);margin-top:var(--sp-5);max-width:46ch}.hero__cta{gap:var(--sp-3);margin-top:var(--sp-8);flex-wrap:wrap;display:flex}.hero__stats{gap:var(--sp-8);margin-top:var(--sp-10);flex-wrap:wrap;display:flex}.hero__stat b{font-family:var(--font-display);font-size:var(--fs-xl);letter-spacing:-.02em;color:var(--ink);font-weight:600;display:block}.hero__stat span{font-size:var(--fs-sm);color:var(--text-faint)}.hero__visual{aspect-ratio:1;border-radius:var(--r-lg);background:radial-gradient(120% 120% at 15% 10%, var(--brand-100), transparent 60%), radial-gradient(120% 120% at 90% 95%, var(--accent-soft), transparent 55%), var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-lg);place-items:center;display:grid;position:relative;overflow:hidden}.hero__visual svg{width:78%;height:78%}.hero__float{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);padding:var(--sp-3) var(--sp-4);box-shadow:var(--shadow-md);font-family:var(--font-sans);font-size:var(--fs-sm);align-items:center;gap:var(--sp-2);font-weight:600;display:flex;position:absolute}.hero__float svg{width:18px;height:18px;color:var(--primary)}.hero__float--1{animation:float 6s var(--ease) infinite;top:8%;left:-4%}.hero__float--2{animation:float 7s var(--ease) infinite reverse;bottom:12%;right:-3%}@media (width<=768px){.hero__inner{gap:var(--sp-8);grid-template-columns:minmax(0,1fr);padding-block:clamp(2.5rem,2rem + 4vw,5rem)}.hero h1{font-size:clamp(1.55rem,1.25rem + 1.5vw,2rem)}.hero__lead{font-size:var(--fs-sm);margin-top:var(--sp-4)}.hero__cta{margin-top:var(--sp-6)}.hero__stats{gap:var(--sp-5);margin-top:var(--sp-8)}}@keyframes float{50%{transform:translateY(-10px)}}.feature{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:var(--sp-8);transition:transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease), border-color var(--dur) var(--ease);position:relative;overflow:hidden}.feature:after{content:"";background:linear-gradient(var(--brand-400), var(--brand-700));opacity:0;width:3px;transition:opacity var(--dur) var(--ease);position:absolute;top:0;bottom:0;left:0}.feature:hover{box-shadow:var(--shadow-md);border-color:var(--border-strong);transform:translateY(-4px)}.feature:hover:after{opacity:1}.feature__icon{background:var(--primary-soft);width:54px;height:54px;color:var(--primary);margin-bottom:var(--sp-5);border-radius:14px;place-items:center;display:grid}.feature__icon svg{width:27px;height:27px}.feature h3{font-family:var(--font-sans);font-size:var(--fs-md);margin-bottom:var(--sp-2);font-weight:700}.feature p{color:var(--text-soft);font-size:var(--fs-sm)}.feature:nth-child(4n+2) .feature__icon{background:var(--violet-soft);color:var(--violet-600)}.feature:nth-child(4n+2):after{background:linear-gradient(var(--violet-500), var(--violet-700))}.feature:nth-child(4n+3) .feature__icon{background:var(--teal-soft);color:var(--teal-600)}.feature:nth-child(4n+3):after{background:linear-gradient(var(--teal-500), var(--teal-600))}.feature:nth-child(4n+4) .feature__icon{background:var(--accent-soft);color:var(--accent)}.feature:nth-child(4n+4):after{background:linear-gradient(var(--accent), var(--warning))}.cat-tile{align-items:center;gap:var(--sp-4);padding:var(--sp-5);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);transition:transform var(--dur) var(--ease), border-color var(--dur) var(--ease), box-shadow var(--dur) var(--ease);display:flex}.cat-tile:hover{box-shadow:var(--shadow-md);border-color:var(--brand-300);transform:translateY(-3px)}.cat-tile__icon{color:#fff;background:var(--gradient-brand);border-radius:13px;flex:none;place-items:center;width:48px;height:48px;display:grid}.cat-tile:nth-child(6n+2) .cat-tile__icon{background:linear-gradient(150deg, var(--violet-500), var(--violet-600))}.cat-tile:nth-child(6n+3) .cat-tile__icon{background:linear-gradient(150deg, var(--teal-500), var(--teal-600))}.cat-tile:nth-child(6n+4) .cat-tile__icon{background:linear-gradient(150deg, var(--accent), var(--warning))}.cat-tile:nth-child(6n+5) .cat-tile__icon{background:linear-gradient(150deg, var(--brand-400), var(--teal-500))}.cat-tile:nth-child(6n+6) .cat-tile__icon{background:linear-gradient(150deg, var(--violet-500), var(--brand-600))}.cat-tile h3{font-family:var(--font-sans);font-size:var(--fs-base);font-weight:700}.cat-tile span{font-size:var(--fs-xs);color:var(--text-faint)}.cat-tile__arrow{color:var(--text-faint);transition:transform var(--dur) var(--ease), color var(--dur) var(--ease);margin-left:auto}.cat-tile:hover .cat-tile__arrow{color:var(--primary);transform:translate(4px)}.product-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);transition:transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease), border-color var(--dur) var(--ease);flex-direction:column;display:flex;overflow:hidden}.product-card:hover{box-shadow:var(--shadow-md);border-color:var(--border-strong);transform:translateY(-4px)}.product-card__media{aspect-ratio:4/3;background:linear-gradient(160deg, color-mix(in oklab, var(--brand-50) 50%, var(--surface-2)), var(--bg-alt));border-bottom:1px solid var(--border);place-items:center;display:grid;position:relative}.product-card__media .thumb{opacity:.92;width:42%;height:42%;color:var(--primary);place-items:center;display:grid}.product-card__media .thumb svg{width:100%;height:100%}.product-card__media .product-card__img{object-fit:cover;width:100%;height:100%;display:block;position:absolute;inset:0}.product-card__cat{top:var(--sp-3);left:var(--sp-3);font-size:var(--fs-xs);border-radius:var(--r-pill);background:color-mix(in oklab, var(--surface) 86%, transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border:1px solid var(--border);color:var(--text-soft);padding:.3rem .7rem;font-weight:700;position:absolute}.product-card__body{padding:var(--sp-5);gap:var(--sp-2);flex-direction:column;flex:1;display:flex}.product-card__sku{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--text-faint);letter-spacing:.02em}.product-card__name{font-family:var(--font-sans);font-size:var(--fs-base);font-weight:700;line-height:1.4}.product-card__spec{font-size:var(--fs-xs);color:var(--text-soft)}.product-card__brand{font-size:var(--fs-xs);color:var(--primary);background:var(--primary-soft);border-radius:var(--r-pill);align-self:flex-start;padding:.2rem .6rem;font-weight:600}.product-card__foot{padding-top:var(--sp-4);justify-content:space-between;align-items:center;gap:var(--sp-3);margin-top:auto;display:flex}.price{font-family:var(--font-sans);font-size:var(--fs-md);letter-spacing:-.01em;font-weight:800}.price small{font-size:var(--fs-xs);color:var(--text-faint);margin-right:1px;font-weight:600}.product-empty{margin-top:var(--sp-8);padding:var(--sp-10) var(--sp-6);text-align:center;color:var(--text-soft);background:var(--surface);border:1px dashed var(--border);border-radius:var(--r-lg);font-size:var(--fs-base)}.product-empty.is-error{color:var(--error);border-color:var(--error);background:var(--error-bg)}.filter-bar{gap:var(--sp-2);margin-bottom:var(--sp-8);flex-wrap:wrap;display:flex}.filter-bar--brand{margin-top:calc(-1 * var(--sp-5));margin-bottom:var(--sp-7)}.filter-bar--brand .chip{font-size:var(--fs-xs);padding:.4rem .85rem}.chip{border-radius:var(--r-pill);font-size:var(--fs-sm);border:1px solid var(--border-strong);color:var(--text-soft);background:var(--surface);transition:all var(--dur-fast) var(--ease);padding:.55rem 1.1rem;font-weight:600}.chip:hover{color:var(--text);border-color:var(--text-soft)}.chip[aria-pressed=true],.chip.is-active{background:var(--gradient-cta);color:#fff;border-color:#0000;box-shadow:0 6px 16px oklch(52% .15 260/.3)}.scrim{z-index:150;opacity:0;visibility:hidden;transition:opacity var(--dur) var(--ease), visibility var(--dur) var(--ease);background:oklch(16% .01 240/.45);position:fixed;inset:0}.scrim.is-open{opacity:1;visibility:visible}.drawer{z-index:160;background:var(--bg);width:min(420px,100%);height:100%;box-shadow:var(--shadow-lg);transition:transform var(--dur) var(--ease);flex-direction:column;display:flex;position:fixed;top:0;right:0;transform:translate(100%)}.drawer.is-open{transform:translate(0)}.drawer__head{padding:var(--sp-6);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;display:flex}.drawer__head h2{font-family:var(--font-sans);font-size:var(--fs-md);font-weight:700}.drawer__body{padding:var(--sp-4) var(--sp-6);gap:var(--sp-4);flex:1;align-content:start;display:grid;overflow-y:auto}.drawer__foot{padding:var(--sp-6);border-top:1px solid var(--border);gap:var(--sp-4);background:var(--surface);display:grid}.cart-item{gap:var(--sp-3);grid-template-columns:56px 1fr auto;align-items:center;display:grid}.cart-item__media{border-radius:var(--r-sm);background:var(--surface-2);border:1px solid var(--border);width:56px;height:56px;color:var(--primary);place-items:center;display:grid}.cart-item__media svg{width:26px;height:26px}.cart-item__name{font-family:var(--font-sans);font-size:var(--fs-sm);font-weight:700;line-height:1.3}.cart-item__sku{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--text-faint)}.cart-item__price{font-size:var(--fs-sm);color:var(--text-soft);font-weight:700}.qty{border:1px solid var(--border-strong);border-radius:var(--r-pill);align-items:center;display:inline-flex;overflow:hidden}.qty button{width:30px;height:30px;color:var(--text-soft);transition:background var(--dur-fast) var(--ease);place-items:center;font-weight:700;display:grid}.qty button:hover{background:var(--surface-2);color:var(--text)}.qty span{text-align:center;min-width:30px;font-size:var(--fs-sm);font-variant-numeric:tabular-nums;font-weight:700}.cart-item__remove{color:var(--text-faint);font-size:var(--fs-xs);margin-top:2px;font-weight:600}.cart-item__remove:hover{color:var(--error)}.cart-empty{text-align:center;color:var(--text-faint);padding:var(--sp-12) 0}.cart-empty svg{width:46px;height:46px;margin:0 auto var(--sp-4);opacity:.5}.cart-summary__row{font-size:var(--fs-sm);color:var(--text-soft);justify-content:space-between;display:flex}.cart-summary__total{margin-top:var(--sp-3);padding-top:var(--sp-3);border-top:1px dashed var(--border-strong);justify-content:space-between;align-items:baseline;display:flex}.cart-summary__total b{font-size:var(--fs-lg)}.modal{z-index:170;padding:var(--sp-4);opacity:0;visibility:hidden;transition:opacity var(--dur) var(--ease), visibility var(--dur) var(--ease);background:oklch(16% .01 240/.5);place-items:center;display:grid;position:fixed;inset:0}.modal.is-open{opacity:1;visibility:visible}.modal__card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);width:min(560px,100%);max-height:92vh;box-shadow:var(--shadow-lg);transition:transform var(--dur) var(--ease);overflow-y:auto;transform:translateY(16px)scale(.98)}.modal.is-open .modal__card{transform:none}.modal__head{padding:var(--sp-6);border-bottom:1px solid var(--border);background:var(--surface);justify-content:space-between;align-items:center;display:flex;position:sticky;top:0}.modal__head h2{font-family:var(--font-sans);font-size:var(--fs-md);font-weight:700}.modal__body{padding:var(--sp-6);gap:var(--sp-5);display:grid}.order-review{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-md);padding:var(--sp-4);gap:var(--sp-2);font-size:var(--fs-sm);display:grid}.order-review__row{justify-content:space-between;gap:var(--sp-4);display:flex}.order-review__row span:last-child{font-variant-numeric:tabular-nums;font-weight:700}.order-review__total{padding-top:var(--sp-2);border-top:1px dashed var(--border-strong);font-weight:800;font-size:var(--fs-md);justify-content:space-between;display:flex}.auth-tabs{gap:var(--sp-2);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-md);padding:4px;display:flex}.auth-tab{border-radius:calc(var(--r-md) - 4px);color:var(--text-2);font-family:var(--font-sans);font-size:var(--fs-sm);cursor:pointer;transition:background var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease);background:0 0;border:none;flex:1;padding:.6rem 1rem;font-weight:600}.auth-tab:hover{color:var(--text)}.auth-tab.is-active{background:var(--surface);color:var(--text);box-shadow:var(--shadow-sm)}.field{gap:var(--sp-2);display:grid}.field label{font-family:var(--font-sans);font-size:var(--fs-sm);font-weight:600}.field label .req{color:var(--error)}.field input,.field textarea,.field select{border:1px solid var(--border-strong);border-radius:var(--r-sm);background:var(--surface);transition:border-color var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease);padding:.8rem 1rem}.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--primary);box-shadow:var(--ring);outline:none}.field textarea{resize:vertical;min-height:96px}.field__error{font-size:var(--fs-xs);color:var(--error);display:none}.field.is-invalid input,.field.is-invalid textarea{border-color:var(--error)}.field.is-invalid .field__error{display:block}.form-grid{gap:var(--sp-5);display:grid}@media (width>=560px){.form-grid--2{grid-template-columns:1fr 1fr}}.contact-card{gap:var(--sp-4);padding:var(--sp-5);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);transition:transform var(--dur) var(--ease), border-color var(--dur) var(--ease), box-shadow var(--dur) var(--ease);display:flex}.contact-card:hover{border-color:var(--border-strong);box-shadow:var(--shadow-sm);transform:translateY(-2px)}.contact-card__icon{background:var(--primary-soft);width:46px;height:46px;color:var(--primary);border-radius:12px;flex:none;place-items:center;display:grid}.contact-card__icon svg{width:23px;height:23px}.contact-card h3{font-family:var(--font-sans);font-size:var(--fs-sm);color:var(--text-faint);letter-spacing:.04em;text-transform:uppercase;font-weight:700}.contact-card p{font-size:var(--fs-base);margin-top:2px;font-weight:600}.contact-card a:hover{color:var(--primary)}.stats-band{gap:var(--sp-6);grid-template-columns:repeat(2,1fr);display:grid}@media (width>=760px){.stats-band{grid-template-columns:repeat(4,1fr)}}.stat{text-align:center}.stat b{font-family:var(--font-display);font-size:var(--fs-2xl);letter-spacing:-.02em;color:var(--primary);font-weight:600;display:block}.stat span{font-size:var(--fs-sm);color:var(--text-soft)}.value-list{gap:var(--sp-6);display:grid}.value{gap:var(--sp-5);grid-template-columns:auto 1fr;align-items:start;display:grid}.value__num{background:var(--primary-soft);width:48px;height:48px;color:var(--primary);font-weight:800;font-size:var(--fs-md);font-family:var(--font-display);border-radius:14px;flex:none;place-items:center;display:grid}.value h3{font-family:var(--font-sans);font-size:var(--fs-md);margin-bottom:var(--sp-1);font-weight:700}.value p{color:var(--text-soft);font-size:var(--fs-sm)}.cta-band{background:linear-gradient(140deg, var(--brand-600), var(--brand-900));color:#fff;border-radius:var(--r-lg);text-align:center;padding:clamp(2.5rem,5vw,4.5rem);position:relative;overflow:hidden}.cta-band:after{content:"";pointer-events:none;background:radial-gradient(80% 120% at 80% -10%,oklch(70% .14 225/.4),#0000 60%);position:absolute;inset:0}.cta-band>*{z-index:1;position:relative}.cta-band h2{font-family:var(--font-display);font-size:var(--fs-xl);color:#fff;font-weight:600}.cta-band p{color:oklch(92% .02 225);max-width:52ch;margin:var(--sp-4) auto 0}.cta-band .btn--primary{color:var(--brand-700);background:#fff}.cta-band .btn--primary:hover{background:oklch(96% .01 225)}.cta-band .btn--ghost{color:#fff;border-color:oklch(100% 0 0/.4)}.cta-band .btn--ghost:hover{background:oklch(100% 0 0/.12)}.site-footer{background:var(--gray-950);color:oklch(80% .01 240);padding-block:var(--sp-16) var(--sp-8)}:root[data-theme=dark] .site-footer{background:oklch(12% .008 240)}.site-footer a{color:oklch(72% .012 240);transition:color var(--dur-fast) var(--ease)}.site-footer a:hover{color:#fff}.footer-grid{gap:var(--sp-10);grid-template-columns:1fr;display:grid}@media (width>=760px){.footer-grid{grid-template-columns:1.6fr 1fr 1fr 1fr}}.footer-brand .brand{color:#fff}.footer-brand p{color:oklch(65% .012 240);font-size:var(--fs-sm);margin-top:var(--sp-4);max-width:36ch}.footer-col h4{color:#fff;font-family:var(--font-sans);font-size:var(--fs-sm);letter-spacing:.04em;text-transform:uppercase;margin-bottom:var(--sp-4)}.footer-col ul{gap:var(--sp-2);font-size:var(--fs-sm);display:grid}.footer-bottom{margin-top:var(--sp-12);padding-top:var(--sp-6);gap:var(--sp-4);font-size:var(--fs-xs);color:oklch(60% .012 240);border-top:1px solid oklch(100% 0 0/.1);flex-wrap:wrap;justify-content:space-between;display:flex}.toast-wrap{bottom:var(--sp-6);z-index:200;gap:var(--sp-2);width:min(380px,92vw);display:grid;position:fixed;left:50%;transform:translate(-50%)}.toast{background:var(--gray-900);color:#fff;border-radius:var(--r-md);box-shadow:var(--shadow-lg);align-items:center;gap:var(--sp-3);font-size:var(--fs-sm);animation:toastIn var(--dur) var(--ease);padding:.85rem 1.1rem;font-weight:600;display:flex}.toast svg{width:20px;height:20px;color:var(--success);flex:none}@keyframes toastIn{0%{opacity:0;transform:translateY(12px)}}.reveal{opacity:0;transition:opacity var(--dur-slow) var(--ease), transform var(--dur-slow) var(--ease);transition-delay:var(--reveal-delay,0s);transform:translateY(20px)}.reveal.is-in{opacity:1;transform:none}.page-head{padding-block:clamp(3rem, 2rem + 4vw, 5rem) var(--sp-10)}.page-head h1{font-family:var(--font-display);font-size:var(--fs-2xl);font-weight:600}.page-head p{color:var(--text-soft);margin-top:var(--sp-4);max-width:60ch;font-size:var(--fs-md)}.text-center{text-align:center}.mx-auto{margin-inline:auto}.mt-8{margin-top:var(--sp-8)}.mt-12{margin-top:var(--sp-12)}.lead{color:var(--text-soft);font-size:var(--fs-md)}.flex-wrap-gap{gap:var(--sp-3);flex-wrap:wrap;display:flex}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important}.reveal{opacity:1;transform:none}}.auth-area{align-items:center;gap:var(--sp-2);display:flex}.btn--sm{font-size:var(--fs-xs);padding:.55rem 1rem}.user-name{font-size:var(--fs-sm);color:var(--text);white-space:nowrap;font-weight:600}@media (width<=900px){.user-name{display:none}}.shop-toolbar{gap:var(--sp-4);margin-bottom:var(--sp-4);flex-wrap:wrap;justify-content:space-between;align-items:center;display:flex}.shop-toolbar .filter-bar{flex:auto;margin-bottom:0}.shop-search{flex:0 320px;align-items:center;min-width:220px;display:flex;position:relative}.shop-search__icon{width:18px;height:18px;color:var(--text-faint);pointer-events:none;position:absolute;left:.85rem}.shop-search input{border:1px solid var(--border);background:var(--surface);width:100%;color:var(--text);font-size:var(--fs-sm);border-radius:14px;padding:.7rem .9rem .7rem 2.4rem;transition:border-color .2s,box-shadow .2s}.shop-search input:focus{border-color:var(--primary);box-shadow:0 0 0 3px color-mix(in srgb, var(--primary) 18%, transparent);outline:none}.shop-count{color:var(--text-faint);font-size:var(--fs-sm);margin:0 0 var(--sp-3)}@media (width<=768px){.shop-toolbar{align-items:stretch;gap:var(--sp-3);flex-direction:column}.shop-toolbar .filter-bar{width:100%}.shop-search{flex:auto;width:100%;min-width:0;max-width:none}.page-head{padding-block:clamp(2.25rem, 1.5rem + 3vw, 3.5rem) var(--sp-8)}.page-head h1{overflow-wrap:break-word;word-break:break-all;font-size:clamp(1.75rem,1.4rem + 2vw,2.4rem)}.page-head p{font-size:var(--fs-sm);overflow-wrap:break-word;word-break:break-all}}.shop-empty,.shop-loading,.shop-error{text-align:center;color:var(--text-soft);padding:var(--sp-12) var(--sp-4)}.shop-error{color:var(--error)}.pagination{margin-top:var(--sp-8);flex-wrap:wrap;justify-content:center;gap:.4rem;display:flex}.pagination__btn{border:1px solid var(--border);background:var(--surface);min-width:40px;height:40px;color:var(--text);font-size:var(--fs-sm);cursor:pointer;border-radius:10px;padding:0 .7rem;transition:all .18s}.pagination__btn:hover:not(:disabled){border-color:var(--primary);color:var(--primary)}.pagination__btn.is-active{background:var(--primary);border-color:var(--primary);color:#fff}.pagination__btn:disabled{opacity:.45;cursor:not-allowed}.pagination__gap{color:var(--text-faint);align-self:center;padding:0 .35rem}.pdp{z-index:200;padding:var(--sp-4);place-items:center;display:grid;position:fixed;inset:0}.pdp__scrim{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);cursor:pointer;background:#0000008c;position:absolute;inset:0}.pdp__panel{z-index:1;gap:var(--sp-6);background:var(--surface);width:min(860px,100%);max-height:88vh;color:var(--text);border:1px solid var(--pdp-accent,var(--border-strong));padding:var(--sp-8);box-shadow:0 30px 80px #00000059, 0 0 0 1px color-mix(in srgb, var(--pdp-accent,var(--primary)) 18%, transparent), 0 0 40px color-mix(in srgb, var(--pdp-accent,var(--primary)) 12%, transparent);border-radius:18px;display:flex;position:relative;overflow:auto}.pdp__panel:before{content:"";background:var(--pdp-accent,var(--primary));border-radius:18px 18px 0 0;height:5px;position:absolute;top:0;left:0;right:0}.pdp__close{z-index:3;background:var(--error);color:#fff;cursor:pointer;width:44px;height:44px;box-shadow:0 6px 18px color-mix(in srgb, var(--error) 45%, transparent), inset 0 0 0 1px #ffffff38;transition:background var(--dur-fast) var(--ease-out-quart,cubic-bezier(.16, 1, .3, 1)), transform var(--dur-fast) var(--ease-out-quart,cubic-bezier(.16, 1, .3, 1)), box-shadow var(--dur-fast) var(--ease-out-quart,cubic-bezier(.16, 1, .3, 1));border:none;border-radius:12px;place-items:center;padding:0;display:grid;position:absolute;top:.9rem;right:.9rem}.pdp__close:hover{background:color-mix(in srgb, var(--error) 88%, #fff);color:#fff;box-shadow:0 10px 24px color-mix(in srgb, var(--error) 60%, transparent), inset 0 0 0 1px #ffffff59;transform:scale(1.08)rotate(90deg)}.pdp__close:focus-visible{outline:3px solid color-mix(in srgb, var(--error) 38%, #fff);outline-offset:3px}.pdp__close:active{transform:scale(.96)}.pdp__close svg{stroke-width:2.6px;width:22px;height:22px}.pdp__media{background:linear-gradient(135deg, color-mix(in srgb, var(--pdp-accent,var(--primary)) 14%, var(--surface-2)), color-mix(in srgb, var(--pdp-accent,var(--primary)) 4%, var(--surface-2)) 60%, var(--surface-2));width:200px;height:260px;color:var(--pdp-accent,var(--primary));border:1px solid color-mix(in srgb, var(--pdp-accent,var(--primary)) 28%, transparent);box-shadow:inset 0 1px 0 #ffffff14, 0 4px 18px color-mix(in srgb, var(--pdp-accent,var(--primary)) 14%, transparent);transition:transform var(--dur-fast) var(--ease-out-quart,cubic-bezier(.16, 1, .3, 1)), box-shadow var(--dur-fast) var(--ease-out-quart,cubic-bezier(.16, 1, .3, 1));border-radius:16px;flex:0 0 200px;place-items:center;font-size:3rem;display:grid;position:relative;overflow:hidden}.pdp__media:before{content:"";border:1.5px dashed color-mix(in srgb, var(--pdp-accent,var(--primary)) 22%, transparent);pointer-events:none;border-radius:10px;position:absolute;inset:10px}.pdp__media:after{content:"暂无图片";text-align:center;letter-spacing:.16em;text-transform:uppercase;color:color-mix(in srgb, var(--pdp-accent,var(--primary)) 75%, var(--text-soft));pointer-events:none;font-size:.72rem;font-weight:600;position:absolute;bottom:14px;left:0;right:0}.pdp__media svg{opacity:.78;width:72px;height:72px;margin-top:-10px}.pdp__media:hover{box-shadow:inset 0 1px 0 #ffffff1f, 0 10px 28px color-mix(in srgb, var(--pdp-accent,var(--primary)) 22%, transparent);transform:translateY(-2px)}.pdp__panel--img{flex-direction:column}.pdp__panel--img .pdp__media--img{border-radius:var(--r-lg);background:var(--surface-2);flex:none;width:100%;height:260px;overflow:hidden}.pdp__panel--img .pdp__media--img:before,.pdp__panel--img .pdp__media--img:after{display:none}.pdp__panel--img .pdp__media--img .pdp__img{object-fit:cover;width:100%;height:100%;display:block}.pdp__gallery{gap:var(--sp-2);padding:var(--sp-3) 0 0;flex-wrap:wrap;display:flex}.pdp__thumb{border-radius:var(--r-sm);border:1px solid var(--border);background:var(--surface-2);cursor:pointer;width:56px;height:56px;transition:border-color var(--dur-fast) var(--ease);padding:0;overflow:hidden}.pdp__thumb img{object-fit:cover;width:100%;height:100%;display:block}.pdp__thumb:hover,.pdp__thumb.is-active{border-color:var(--pdp-accent,var(--primary))}.pdp__main{flex:auto;min-width:0}.pdp__cat{font-size:var(--fs-xs);color:#fff;letter-spacing:.04em;text-transform:uppercase;background:var(--pdp-accent,var(--primary));border-radius:999px;padding:.2rem .6rem;font-weight:700;display:inline-block}.pdp__title{font-family:var(--font-display);font-size:var(--fs-xl,1.6rem);color:var(--text);margin:.75rem 0 .2rem;font-weight:600;display:inline-block;position:relative}.pdp__title:after{content:"";background:var(--pdp-accent,var(--primary));border-radius:999px;width:40px;height:4px;position:absolute;bottom:-.35rem;left:0}.pdp__en{color:var(--text-soft);font-size:var(--fs-sm);margin:.6rem 0 var(--sp-4)}.pdp__meta{gap:var(--sp-3);margin:0 0 var(--sp-4);grid-template-columns:repeat(auto-fit,minmax(140px,1fr));display:grid}.pdp__meta div{background:var(--surface-2);border:1px solid var(--border-strong);border-top:3px solid var(--pdp-accent,var(--primary));border-radius:10px;padding:.6rem .8rem}.pdp__meta dt{font-size:var(--fs-xs);color:var(--pdp-accent,var(--text-faint));letter-spacing:.02em;font-weight:600}.pdp__meta dd{color:var(--text);margin:.25rem 0 0;font-weight:700}.pdp__desc{color:var(--text-soft);font-size:var(--fs-sm);margin:0 0 var(--sp-5);line-height:1.7}.pdp__sku-title{font-family:var(--font-sans);font-size:var(--fs-md);margin-bottom:var(--sp-3);color:var(--text)}.pdp__skus{gap:var(--sp-2);display:grid}.pdp__sku{align-items:center;gap:var(--sp-3);background:var(--surface-2);border:1px solid var(--border-strong);border-top:3px solid var(--pdp-accent,var(--primary));transition:border-color var(--dur-fast), transform var(--dur-fast), box-shadow var(--dur-fast);border-radius:12px;padding:.7rem .9rem;display:flex}.pdp__sku:hover{border-color:var(--pdp-accent,var(--primary));box-shadow:0 6px 14px color-mix(in srgb, var(--pdp-accent,var(--primary)) 10%, transparent);transform:translate(3px)}.pdp__sku-info{flex:auto;min-width:0}.pdp__sku-spec{color:var(--text);font-weight:700}.pdp__sku-code{font-size:var(--fs-xs);color:var(--text-faint);font-family:var(--font-mono)}.pdp__sku-price{color:var(--pdp-accent,var(--primary));white-space:nowrap;font-weight:800;font-size:var(--fs-md)}.pdp__add-btn{background:linear-gradient(135deg, var(--pdp-accent,var(--primary)), color-mix(in srgb, var(--pdp-accent,var(--primary)) 70%, #fff));color:#fff;font-size:var(--fs-sm);cursor:pointer;box-shadow:0 4px 12px color-mix(in srgb, var(--pdp-accent,var(--primary)) 45%, transparent);transition:transform var(--dur-fast), box-shadow var(--dur-fast), filter var(--dur-fast);border:none;border-radius:10px;align-items:center;gap:.35rem;padding:.45rem .9rem;font-weight:700;display:inline-flex}.pdp__add-btn svg{width:16px;height:16px}.pdp__add-btn:hover{box-shadow:0 6px 16px color-mix(in srgb, var(--pdp-accent,var(--primary)) 60%, transparent);filter:brightness(1.08);transform:translateY(-2px)}.pdp__add-btn:active{transform:translateY(0)}.pdp__empty-sku{background:color-mix(in srgb, var(--warning,#f59e0b) 12%, var(--surface-2));border:1px dashed var(--warning,#f59e0b);color:var(--text);border-radius:12px;padding:1rem 1.2rem}.pdp__empty-sku strong{color:var(--warning,#f59e0b);margin-bottom:.25rem;display:block}.pdp__empty-sku p{font-size:var(--fs-sm);color:var(--text-soft);margin:0}[data-theme=dark] .pdp__empty-sku strong{color:#fbbf24}@media (width<=640px){.pdp__panel{padding:var(--sp-6);gap:var(--sp-4);flex-direction:column}.pdp__media{flex:none;width:100%;height:180px;font-size:2rem}.pdp__media svg{width:56px;height:56px}.pdp__media--img{height:200px}.pdp__close{width:40px;height:40px;top:.6rem;right:.6rem}.pdp__close svg{width:20px;height:20px}}.auth-modal-card{border-radius:var(--r-lg);width:min(420px,100%);position:relative;overflow:hidden}.auth-modal__close{z-index:2;border-radius:var(--r-md);background:var(--surface-2);width:36px;height:36px;color:var(--text-2);border:1px solid var(--border);cursor:pointer;transition:background var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease);place-items:center;display:grid;position:absolute;top:.75rem;right:.75rem}.auth-modal__close:hover{background:var(--surface-3);color:var(--text)}.auth-modal__tabs,.auth-modal__reg-tabs{border-bottom:1px solid var(--border);display:flex}.auth-modal__tab,.auth-modal__reg-tab{color:var(--text-2);font-family:var(--font-sans);font-size:var(--fs-base);cursor:pointer;transition:color var(--dur-fast) var(--ease);background:0 0;border:none;flex:1;padding:1rem;font-weight:600;position:relative}.auth-modal__tab:hover,.auth-modal__reg-tab:hover{color:var(--text)}.auth-modal__tab.is-active,.auth-modal__reg-tab.is-active{color:var(--primary)}.auth-modal__tab.is-active:after,.auth-modal__reg-tab.is-active:after{content:"";background:var(--primary);border-radius:2px;height:2px;position:absolute;bottom:0;left:20%;right:20%}.auth-modal__title{padding:var(--sp-5) var(--sp-6) 0;font-family:var(--font-display);font-size:var(--fs-lg);text-align:center;color:var(--ink);font-weight:600}.auth-modal__body{padding:var(--sp-6);gap:var(--sp-4);display:grid}.auth-modal__body form{gap:var(--sp-4);display:grid}.auth-modal__body .field input{width:100%}.field--code{gap:var(--sp-3);grid-template-columns:1fr auto;align-items:start;display:grid}.field--code input{grid-column:1}.field--code .code-send-btn{white-space:nowrap;border:1px solid var(--primary);height:100%;color:var(--primary);border-radius:var(--r-sm);font-family:var(--font-sans);font-size:var(--fs-sm);cursor:pointer;transition:background var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease);background:0 0;grid-column:2;padding:.8rem 1rem;font-weight:600}.field--code .code-send-btn:hover:not(:disabled){background:var(--primary-soft)}.field--code .code-send-btn:disabled{opacity:.6;cursor:not-allowed;border-color:var(--border-strong);color:var(--text-2)}.auth-error{color:var(--error);font-size:var(--fs-sm);text-align:center;min-height:1.4em;display:none}.auth-modal__foot{padding:var(--sp-4) var(--sp-6) var(--sp-6);font-size:var(--fs-sm);justify-content:space-between;align-items:center;display:flex}.auth-modal__link{color:var(--primary);font-weight:500;text-decoration:none}.auth-modal__link:hover{text-decoration:underline}.auth-modal__link+.auth-modal__link{margin-left:var(--sp-3)}@media (width<=480px){.auth-modal__body{padding:var(--sp-5)}.field--code{grid-template-columns:1fr}.field--code .code-send-btn{grid-column:1;width:100%}}
