:root{--bg:#F7F2EA;--paper:#FBF8F3;--white:#fff;--ink:#2A2320;--ink-2:#4F443D;--muted:#6B5E55;--line:#E3D9CB;--line-2:#D6CABA;--sand:#EFE4D6;--accent:#9E4424;--accent-d:#7A3319;--accent-bg:#F6E6DC;--green:#2F5D50;--green-d:#1F4A3E;--green-bg:#E4EDE8;--danger:#B3261E;--serif:"Fraunces",Georgia,serif;--sans:"DM Sans",system-ui,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased}a{color:var(--accent)}a:hover{color:var(--accent-d)}img{display:block;max-width:100%}button,input,select,textarea{font:inherit;color:inherit}h1,h2,h3{line-height:1.15}.wrap{max-width:1200px;margin:0 auto;padding:0 24px}.serif{font-family:var(--serif)}.muted{color:var(--muted)}.eyebrow{font-size:13px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--accent)}[hidden]{display:none!important}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:0 22px;border-radius:999px;border:1.5px solid transparent;font-weight:600;text-decoration:none;cursor:pointer;background:transparent;transition:background .15s,color .15s,border-color .15s}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-d);color:#fff}.btn-green{background:var(--green);color:#fff}.btn-green:hover{background:var(--green-d);color:#fff}.btn-ghost{border-color:var(--ink);color:var(--ink)}.btn-ghost:hover{background:var(--ink);color:var(--paper)}.btn-danger{border-color:var(--danger);color:var(--danger)}.btn-danger:hover{background:var(--danger);color:#fff}.btn-sm{min-height:38px;padding:0 14px;font-size:14px}.btn-block{width:100%}.demo-bar{background:var(--ink);color:#E4DAD0;font-size:13px;text-align:center;padding:8px 16px}.demo-bar a{color:#F2C9A8}header.top{position:-webkit-sticky;position:sticky;top:0;z-index:20;background:rgba(251,248,243,.95);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}.top .wrap{display:flex;align-items:center;gap:24px;min-height:72px}.logo{display:flex;flex-direction:column;text-decoration:none;color:var(--ink);line-height:1}.logo b{font-family:var(--serif);font-weight:700;font-size:26px;letter-spacing:-.5px;white-space:nowrap}.logo b span,.tagline{color:var(--accent)}.tagline{font-size:10.5px;font-weight:700;letter-spacing:1.6px;text-transform:uppercase;margin-top:4px;white-space:nowrap}.top nav{display:flex;gap:22px;font-weight:500;font-size:15px;margin-left:auto;align-items:center;flex-wrap:wrap}.top nav a{color:var(--ink);text-decoration:none}.top nav a:hover{color:var(--accent)}.hero{padding:64px 0 40px}.hero h1{font-family:var(--serif);font-size:clamp(40px,6vw,68px);line-height:1;letter-spacing:-2px;margin:14px 0 20px;font-weight:700}.hero h1 em{font-style:italic;color:var(--accent);font-weight:600}.hero p.lead{font-size:19px;color:var(--ink-2);max-width:560px;margin:0 0 28px}.ctas{display:flex;gap:12px;flex-wrap:wrap}.sitebar{background:var(--green);color:#fff;text-align:center;padding:10px 16px;font-size:14.5px;font-weight:600}section.block{padding:40px 0}.head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:22px;flex-wrap:wrap}.head h2{font-family:var(--serif);font-size:clamp(28px,3.4vw,38px);margin:6px 0 0;letter-spacing:-.6px}.carousel{position:relative}.cats{display:flex;gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;padding:4px 2px 12px;scrollbar-width:none}.cats::-webkit-scrollbar{display:none}.cat{flex:0 0 176px;scroll-snap-align:start;display:flex;flex-direction:column;gap:10px;padding:10px;border-radius:18px;background:var(--white);border:1px solid var(--line);text-decoration:none;color:var(--ink);font-size:14px;font-weight:600;text-align:center}.cat i{aspect-ratio:1;border-radius:12px;overflow:hidden}.cat i,.cat i img{display:block;width:100%}.cat i img{height:100%;object-fit:cover;transition:transform .3s}.cat:hover i img{transform:scale(1.04)}.cat span{padding:0 4px 4px;overflow-wrap:break-word;-webkit-hyphens:auto;hyphens:auto}.cat:hover,.cat[aria-current=true]{border-color:var(--accent);color:var(--accent)}.carousel .nav{position:absolute;top:calc(50% - 34px);width:44px;height:44px;border-radius:50%;border:1px solid var(--line-2);background:var(--white);color:var(--ink);font-size:22px;line-height:1;cursor:pointer;box-shadow:0 4px 14px rgba(42,35,32,.12);z-index:2;display:flex;align-items:center;justify-content:center}.carousel .nav:disabled{opacity:0;pointer-events:none}.carousel .prev{left:-20px}.carousel .next{right:-20px}.grid-shops{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));grid-gap:18px;gap:18px}.grid-prods{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));grid-gap:18px;gap:18px}.shop{display:flex;flex-direction:column;background:var(--white);border:1px solid var(--line);border-radius:20px;overflow:hidden;text-decoration:none;color:var(--ink)}.shop:hover{border-color:var(--line-2);color:var(--ink)}.shop .cover{height:120px;background:var(--sand)}.shop .cover img{width:100%;height:100%;object-fit:cover}.shop .body{padding:0 18px 18px}.avatar{width:58px;height:58px;border-radius:50%;border:3px solid var(--white);margin-top:-29px;background:var(--accent-bg);display:flex;align-items:center;justify-content:center;font-family:var(--serif);font-weight:700;font-size:22px;color:var(--accent-d);overflow:hidden}.avatar img{width:100%;height:100%;object-fit:cover}.shop h3{font-family:var(--serif);font-size:21px;margin:8px 0 2px}.meta{color:var(--muted);font-size:14px}.pills{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}.pill{font-size:12px;font-weight:700;padding:5px 10px;border-radius:999px;background:var(--green-bg);color:var(--green-d)}.pill.dark{background:var(--ink);color:var(--paper)}.pill.off{background:var(--sand);color:var(--muted)}.pill.ok{background:var(--green);color:#fff}.pill.warn{background:#FFF1C9;color:#6B4E00}.pill.bad{background:#FDECEA;color:#8C1D18}.prod{display:flex;flex-direction:column;gap:4px;text-decoration:none;color:var(--ink)}.prod .ph{position:relative;aspect-ratio:4/5;border-radius:18px;overflow:hidden;background:var(--sand)}.prod .ph img{width:100%;height:100%;object-fit:cover}.prod .tag{position:absolute;top:10px;left:10px;padding:5px 10px;border-radius:999px;font-size:12px;font-weight:700;background:var(--paper);color:var(--green)}.prod .tag.order{background:var(--ink);color:var(--paper)}.prod b{font-size:15.5px;margin-top:6px}.prod .shopname{font-size:13.5px;color:var(--muted)}.prod .price{font-weight:700}.empty{text-align:center;padding:40px 20px;border:1px dashed var(--line-2);border-radius:18px;color:var(--muted)}.card,.empty{background:var(--white)}.card{border:1px solid var(--line);border-radius:20px;padding:24px}.card h2{font-family:var(--serif);font-size:24px;margin:0 0 4px}.hint{color:var(--muted);font-size:14px;margin:0 0 16px}.grid2{display:grid;grid-template-columns:1fr 1fr;grid-gap:14px;gap:14px}.full{grid-column:1/-1}label.f{display:flex;flex-direction:column;gap:6px;font-weight:600;font-size:14px}.f input,.f select,.f textarea{border:1px solid var(--line-2);border-radius:12px;background:var(--white);padding:0 14px;height:48px;outline:none;font-weight:400;font-size:16px;width:100%}.f textarea{height:auto;min-height:120px;padding:12px 14px;resize:vertical;line-height:1.55}.f input:focus,.f select:focus,.f textarea:focus{border-color:var(--ink)}.f .aux{font-weight:400;font-size:13px;color:var(--muted)}.msg{padding:12px 16px;border-radius:14px;font-size:14.5px;margin:0 0 16px}.msg.err{background:#FDECEA;color:#5C1A14;border:1px solid #f3c2bd}.msg.ok{background:var(--green-bg);color:var(--green-d);border:1px solid #c5dbcf}.msg.warn{background:#FFF6DC;color:#4A3A10;border:1px solid #f0dda0}.auth{max-width:480px;margin:48px auto;padding:0 16px}.auth .card{padding:32px}.auth h1{font-family:var(--serif);font-size:34px;margin:0 0 6px}.stack{display:flex;flex-direction:column;gap:14px}.panel{display:grid;grid-template-columns:240px minmax(0,1fr);grid-gap:28px;gap:28px;padding:32px 0 64px}.side{display:flex;flex-direction:column;gap:4px;position:-webkit-sticky;position:sticky;top:96px;align-self:start}.side a,.side button{display:block;padding:10px 14px;border-radius:12px;color:var(--ink);text-decoration:none;font-weight:500;border:0;background:none;text-align:left;cursor:pointer}.side a[aria-current=page]{background:var(--ink);color:var(--paper)}.side a:hover{background:var(--sand)}.ph-title{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;margin-bottom:20px;flex-wrap:wrap}.ph-title h1{font-family:var(--serif);font-size:34px;margin:0}.ph-title p{margin:4px 0 0;color:var(--muted)}.plist{display:flex;flex-direction:column;gap:12px}.prow{display:grid;grid-template-columns:72px minmax(0,1fr) auto;grid-gap:14px;gap:14px;align-items:center;background:var(--white);border:1px solid var(--line);border-radius:16px;padding:10px}.prow .thumb{width:72px;height:72px;border-radius:12px;background:var(--sand);overflow:hidden}.prow .thumb img{width:100%;height:100%;object-fit:cover}.prow .acts{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.photos{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));grid-gap:8px;gap:8px}.photos .slot{position:relative;aspect-ratio:1;border-radius:12px;background:var(--sand);overflow:hidden;border:1px dashed var(--line-2)}.photos .slot img{width:100%;height:100%;object-fit:cover}.photos .slot button{position:absolute;top:4px;right:4px;width:26px;height:26px;border-radius:50%;border:0;background:rgba(0,0,0,.6);color:#fff;cursor:pointer}.vcover{height:220px;background:var(--sand)}.vcover img{width:100%;height:100%;object-fit:cover}.profile{display:flex;gap:20px;align-items:flex-end;margin-top:-48px;flex-wrap:wrap}.profile .avatar{width:110px;height:110px;margin-top:0;border-width:5px;font-size:40px}.profile h1{font-family:var(--serif);font-size:clamp(30px,4vw,44px);margin:0}.selo{display:inline-block;vertical-align:middle;font-family:var(--sans);font-size:12px;font-weight:700;padding:4px 10px;border-radius:999px;background:var(--green);color:#fff;margin-left:6px}.video{position:relative;aspect-ratio:16/9;border-radius:16px;overflow:hidden;background:#000}.video iframe{position:absolute;inset:0;width:100%;height:100%;border:0}.pd{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);grid-gap:32px;gap:32px;padding:32px 0 64px}.gallery{display:flex;flex-direction:column;gap:10px}.gallery .main{aspect-ratio:4/5;border-radius:20px;overflow:hidden;background:var(--sand)}.gallery .main img{width:100%;height:100%;object-fit:cover}.gallery .thumbs{display:flex;gap:8px}.gallery .thumbs img{width:64px;height:64px;border-radius:10px;object-fit:cover}footer.foot{border-top:1px solid var(--line);padding:28px 0;color:var(--muted);font-size:14px}@media (max-width:860px){.panel{grid-template-columns:1fr}.side{position:static;flex-direction:row;overflow-x:auto}.side a,.side button{white-space:nowrap}.pd{grid-template-columns:1fr}}@media (max-width:620px){.wrap{padding:0 16px}.top .wrap{gap:10px;padding-top:10px;padding-bottom:10px;flex-wrap:wrap}.top nav{gap:14px;font-size:14px;margin-left:0;width:100%}.grid2{grid-template-columns:1fr}.hero{padding:36px 0 24px}.prow{grid-template-columns:56px minmax(0,1fr)}.prow .thumb{width:56px;height:56px}.prow .acts{grid-column:1/-1;justify-content:flex-start}.photos{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-prods{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}}.catrow{grid-template-columns:72px minmax(0,1fr) auto}.catimg{width:72px;height:72px;border-radius:12px;overflow:hidden;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:12px;color:var(--ink-2);border:2px dashed rgba(0,0,0,.12)}.catimg img{width:100%;height:100%;object-fit:cover}.catfields{display:flex;gap:10px;align-items:flex-end}.catfields .f{flex:1 1;min-width:0}.catfields .f input{height:42px}table.perm{width:100%;border-collapse:collapse;font-size:14px;min-width:520px}table.perm td,table.perm th{padding:8px;border-bottom:1px solid var(--line);text-align:center}table.perm td:first-child,table.perm th:first-child{text-align:left}@media (max-width:620px){.cat{flex-basis:136px;font-size:13px}.carousel .nav{display:none}.catrow{grid-template-columns:64px minmax(0,1fr)}.catrow .acts{grid-column:1/-1;justify-content:flex-start}}