:root{--paper: #f2f1ed;--surface: #ffffff;--ink: #14161a;--ink-muted: #61646b;--brand: #1f3bd6;--brand-ink: #ffffff;--brand-soft: #e2e6fb;--accent: #e8b33c;--line: #dedcd5;--danger: #b4231f;--success: #256b47;--font-display: "Bricolage Grotesque", Georgia, serif;--font-body: "IBM Plex Sans", system-ui, sans-serif;--font-mono: "IBM Plex Mono", ui-monospace, monospace;--radius: 10px;--max-width: 1180px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--space-7: 48px;--space-8: 72px;--shadow-sm: 0 1px 2px rgba(20, 22, 26, .06);--shadow-md: 0 8px 24px rgba(20, 22, 26, .1)}*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font-body);font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}:focus-visible{outline:2px solid var(--brand);outline-offset:2px;border-radius:4px}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}.container{width:100%;max-width:var(--max-width);margin-inline:auto;padding-inline:var(--space-5)}.stack>*+*{margin-top:var(--space-4)}.row{display:flex;align-items:center;gap:var(--space-3)}.row-between{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.grow{flex:1}.page{min-height:100%;display:flex;flex-direction:column}.page-body{flex:1}.heading{font-family:var(--font-display);font-weight:700;letter-spacing:-.02em;line-height:1.08;margin:0}.heading--xl{font-size:clamp(2.4rem,6vw,4rem)}.heading--lg{font-size:clamp(1.8rem,4vw,2.6rem)}.heading--md{font-size:1.35rem}.heading--sm{font-size:1.05rem;letter-spacing:-.01em}.eyebrow{font-family:var(--font-mono);font-size:.72rem;text-transform:uppercase;letter-spacing:.14em;color:var(--ink-muted);margin:0}.text{margin:0}.text--muted{color:var(--ink-muted)}.text--sm{font-size:.875rem}.text--lead{font-size:1.075rem}.price{font-family:var(--font-mono);font-weight:500;font-variant-numeric:tabular-nums}.price--strike{color:var(--ink-muted);text-decoration:line-through;font-weight:400}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);font-family:var(--font-body);font-size:.94rem;font-weight:600;padding:11px 18px;border-radius:var(--radius);border:1px solid transparent;cursor:pointer;transition:background-color .15s ease,border-color .15s ease,color .15s ease;text-align:center}.btn:disabled{opacity:.5;cursor:not-allowed}.btn--primary{background:var(--brand);color:var(--brand-ink)}.btn--primary:hover:not(:disabled){filter:brightness(.92)}.btn--secondary{background:var(--surface);color:var(--ink);border-color:var(--line)}.btn--secondary:hover:not(:disabled){border-color:var(--ink)}.btn--ghost{background:transparent;color:var(--ink);padding-inline:10px}.btn--ghost:hover:not(:disabled){background:var(--brand-soft)}.btn--danger{background:transparent;color:var(--danger);border-color:currentColor}.btn--danger:hover:not(:disabled){background:var(--danger);color:#fff}.btn--sm{padding:7px 12px;font-size:.85rem}.btn--block{width:100%}.field{display:block}.field__label{display:block;font-size:.82rem;font-weight:600;margin-bottom:6px}.field__hint{font-size:.78rem;color:var(--ink-muted);margin-top:5px}.field__error{font-size:.78rem;color:var(--danger);margin-top:5px}.input,.textarea,.select{width:100%;font-family:var(--font-body);font-size:.94rem;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:10px 12px}.input:focus,.textarea:focus,.select:focus{border-color:var(--brand);outline:none;box-shadow:0 0 0 3px var(--brand-soft)}.input--invalid,.textarea--invalid{border-color:var(--danger)}.textarea{min-height:110px;resize:vertical}.badge{display:inline-flex;align-items:center;font-family:var(--font-mono);font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;padding:3px 8px;border-radius:999px;background:var(--brand-soft);color:var(--brand)}.badge--neutral{background:var(--line);color:var(--ink-muted)}.badge--accent{background:var(--accent);color:var(--ink)}.badge--success{background:color-mix(in srgb,var(--success) 15%,white);color:var(--success)}.badge--danger{background:color-mix(in srgb,var(--danger) 12%,white);color:var(--danger)}.spinner{width:18px;height:18px;border:2px solid var(--line);border-top-color:var(--brand);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:var(--space-5)}.product-card{display:block}.product-card__media{position:relative;aspect-ratio:4 / 5;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.product-card__media img{width:100%;height:100%;object-fit:cover;transition:transform .4s ease}.product-card:hover .product-card__media img{transform:scale(1.03)}.product-card__flag{position:absolute;top:10px;left:10px}.product-card__body{display:flex;justify-content:space-between;gap:var(--space-3);margin-top:var(--space-3)}.product-card__name{font-weight:600;font-size:.96rem}.placeholder-media{width:100%;height:100%;display:grid;place-items:center;background:repeating-linear-gradient(45deg,var(--paper),var(--paper) 10px,var(--surface) 10px,var(--surface) 20px);color:var(--ink-muted);font-family:var(--font-mono);font-size:.75rem}.stepper{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface)}.stepper button{width:32px;height:32px;border:0;background:none;cursor:pointer;font-size:1rem;color:var(--ink)}.stepper button:disabled{color:var(--line);cursor:not-allowed}.stepper span{min-width:30px;text-align:center;font-family:var(--font-mono);font-size:.9rem}.line-item{display:grid;grid-template-columns:72px 1fr auto;gap:var(--space-4);align-items:start}.line-item__media{width:72px;aspect-ratio:1;border-radius:8px;overflow:hidden;border:1px solid var(--line);background:var(--surface)}.line-item__media img{width:100%;height:100%;object-fit:cover}.empty-state{text-align:center;padding:var(--space-8) var(--space-4)}.empty-state .heading{margin-bottom:var(--space-2)}.toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%);background:var(--ink);color:var(--paper);padding:11px 18px;border-radius:999px;font-size:.9rem;box-shadow:var(--shadow-md);z-index:80}.site-header{position:sticky;top:0;z-index:40;background:color-mix(in srgb,var(--paper) 88%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}.site-header__inner{display:flex;align-items:center;gap:var(--space-5);height:66px}.wordmark{font-family:var(--font-display);font-weight:800;font-size:1.2rem;letter-spacing:-.03em}.wordmark img{max-height:34px;width:auto}.site-nav{display:flex;gap:var(--space-5);font-size:.94rem}.site-nav a:hover,.site-nav a[aria-current=page]{color:var(--brand)}.cart-button{position:relative}.cart-button__count{position:absolute;top:-4px;right:-6px;min-width:18px;height:18px;padding:0 5px;background:var(--brand);color:var(--brand-ink);border-radius:999px;font-family:var(--font-mono);font-size:.68rem;display:grid;place-items:center}.site-footer{border-top:1px solid var(--line);margin-top:var(--space-8);padding-block:var(--space-6);font-size:.9rem;color:var(--ink-muted)}.site-footer .container{display:flex;flex-wrap:wrap;gap:var(--space-5);justify-content:space-between}.hero{padding-block:var(--space-8) var(--space-7)}.hero__grid{display:grid;grid-template-columns:1.1fr .9fr;gap:var(--space-7);align-items:center}.hero__media{aspect-ratio:5 / 4;border-radius:var(--radius);overflow:hidden;border:1px solid var(--line)}.hero__media img{width:100%;height:100%;object-fit:cover}.product-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:var(--space-5)}.section{padding-block:var(--space-7)}.section__head{display:flex;align-items:end;justify-content:space-between;gap:var(--space-4);margin-bottom:var(--space-5)}.detail{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-7);padding-block:var(--space-6);align-items:start}.detail__media{border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;aspect-ratio:1;background:var(--surface)}.detail__media img{width:100%;height:100%;object-fit:cover}.detail__thumbs{display:flex;gap:var(--space-2);margin-top:var(--space-3)}.detail__thumbs button{width:64px;aspect-ratio:1;border:1px solid var(--line);border-radius:8px;overflow:hidden;padding:0;background:none;cursor:pointer}.detail__thumbs button[aria-pressed=true]{border-color:var(--ink)}.cart-drawer__backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#14161a59;z-index:50}.cart-drawer{position:fixed;top:0;right:0;bottom:0;width:min(420px,100%);background:var(--paper);z-index:60;display:flex;flex-direction:column;border-left:1px solid var(--line)}.cart-drawer__head,.cart-drawer__foot{padding:var(--space-4) var(--space-5);border-color:var(--line)}.cart-drawer__head{border-bottom:1px solid var(--line)}.cart-drawer__foot{border-top:1px solid var(--line)}.cart-drawer__body{flex:1;overflow-y:auto;padding:var(--space-5)}.summary-row{display:flex;justify-content:space-between;font-size:.92rem}.summary-row--total{font-size:1.05rem;font-weight:600;padding-top:var(--space-3);border-top:1px solid var(--line)}.table{width:100%;border-collapse:collapse;font-size:.9rem;background:var(--surface)}.table th{text-align:left;font-family:var(--font-mono);font-weight:500;font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-muted);padding:10px 14px;border-bottom:1px solid var(--line)}.table td{padding:12px 14px;border-bottom:1px solid var(--line);vertical-align:middle}.table tr:last-child td{border-bottom:0}.table-wrap{border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.admin{display:grid;grid-template-columns:232px 1fr;min-height:100vh;background:var(--paper)}.admin__side{background:var(--surface);border-right:1px solid var(--line);padding:var(--space-5) var(--space-4);display:flex;flex-direction:column;gap:var(--space-5)}.admin__main{padding:var(--space-6);overflow-x:hidden}.admin__head{display:flex;justify-content:space-between;align-items:start;gap:var(--space-4);margin-bottom:var(--space-6)}.admin-nav{display:flex;flex-direction:column;gap:2px}.admin-nav a{display:flex;align-items:center;gap:10px;padding:9px 11px;border-radius:8px;font-size:.92rem;color:var(--ink-muted)}.admin-nav a:hover{background:var(--paper);color:var(--ink)}.admin-nav a[aria-current=page]{background:var(--brand-soft);color:var(--brand);font-weight:600}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:var(--space-4)}.stat__value{font-family:var(--font-mono);font-size:1.9rem;font-weight:500;letter-spacing:-.02em}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-4)}.form-grid--full{grid-column:1 / -1}.color-row{display:flex;align-items:center;gap:var(--space-3)}.color-row input[type=color]{width:44px;height:38px;padding:2px;border:1px solid var(--line);border-radius:8px;background:var(--surface)}.auth-screen{min-height:100vh;display:grid;place-items:center;padding:var(--space-5)}.auth-card{width:100%;max-width:380px}.image-tray{display:flex;flex-wrap:wrap;gap:var(--space-3)}.image-tray__item{position:relative;width:88px;aspect-ratio:1;border:1px solid var(--line);border-radius:8px;overflow:hidden}.image-tray__item img{width:100%;height:100%;object-fit:cover}.image-tray__item button{position:absolute;top:3px;right:3px;width:20px;height:20px;border-radius:50%;border:0;background:#14161ab3;color:#fff;cursor:pointer;font-size:12px;line-height:1}@media (max-width: 900px){.hero__grid,.detail{grid-template-columns:1fr}.hero__media{order:-1}.admin{grid-template-columns:1fr}.admin__side{flex-direction:row;align-items:center;overflow-x:auto;border-right:0;border-bottom:1px solid var(--line)}.admin-nav{flex-direction:row}.admin__main{padding:var(--space-5) var(--space-4)}.form-grid{grid-template-columns:1fr}}@media (max-width: 640px){.site-nav{display:none}.product-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:var(--space-4)}}
