@font-face{font-family:'Playfair Display';src:url(/fonts/PlayfairDisplay_700Bold.ttf);font-weight:700;font-display:swap}
@font-face{font-family:Inter;src:url(/fonts/Inter_400Regular.ttf);font-weight:400;font-display:swap}
@font-face{font-family:Inter;src:url(/fonts/Inter_600SemiBold.ttf);font-weight:600;font-display:swap}
:root{--forest:#1f3a33;--forest2:#2c5247;--birch:#f6f1e4;--paper:#fffdf6;--rust:#c8602b;--lake:#3b7a8c;--ink:#27302c;--mute:#6b7168;--line:#ddd2b3;--danger:#b3261e;--r:12px}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0}body{background:var(--birch);color:var(--ink);font:16px/1.55 Inter,system-ui,-apple-system,sans-serif;padding-bottom:calc(64px + env(safe-area-inset-bottom))}
h1,h2,h3{font-family:'Playfair Display',Georgia,serif;line-height:1.15;color:var(--forest)}h2{font-size:1.5rem;margin:.2rem 0 .6rem}h3{font-size:1.1rem;margin:1.2rem 0 .4rem}
a{color:#a6451a}.grow{flex:1}.pad{padding:1rem}.narrow{max-width:560px;margin:0 auto}.note{color:var(--mute);font-size:.88rem}.meta{color:var(--mute);font-size:.85rem;margin:.1rem 0}.err{color:var(--danger);min-height:1.2em;font-size:.9rem}.row{display:flex;gap:.6rem;flex-wrap:wrap;align-items:center;margin:.6rem 0}
header.top{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:.7rem;padding:calc(.5rem + env(safe-area-inset-top)) 1rem .5rem;background:var(--forest);color:var(--birch)}
.brand{display:flex;align-items:center;gap:.5rem;color:var(--birch);text-decoration:none;font:700 1.2rem 'Playfair Display',Georgia,serif}.acct{color:var(--birch);font-size:.85rem;text-decoration:none;border:1px solid #f6f1e455;border-radius:99px;padding:.15rem .7rem}
.syncdot{font-size:.72rem;opacity:.85;padding-left:14px;position:relative}.syncdot:empty{display:none}.syncdot:before{content:'';position:absolute;left:0;top:50%;width:8px;height:8px;margin-top:-4px;border-radius:50%;background:#8bd17c}.syncdot.pending:before{background:#f0b44c}.syncdot.off:before{background:#e0705a}
nav.bottom{position:fixed;bottom:0;left:0;right:0;z-index:20;display:flex;background:var(--paper);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom)}
nav.bottom a{flex:1;text-align:center;padding:.45rem 0 .35rem;font-size:.72rem;color:var(--mute);text-decoration:none;display:flex;flex-direction:column;gap:1px}nav.bottom a b{font-size:1.25rem;line-height:1.1}nav.bottom a.on{color:var(--forest);font-weight:600}nav.bottom a.rec b{color:var(--rust)}
.recbar{display:block;background:var(--rust);color:#fff;text-align:center;padding:.5rem;font-weight:600;text-decoration:none;position:sticky;top:46px;z-index:19}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;border:1.5px solid var(--forest);color:var(--forest);background:transparent;padding:.6rem 1.1rem;border-radius:10px;font:600 .95rem Inter,system-ui,sans-serif;text-decoration:none;cursor:pointer;min-height:44px}
.btn.primary{background:var(--forest);color:#fff}.btn.primary:hover{background:var(--forest2)}.btn.ghost{border-color:var(--line);background:var(--paper)}.btn.danger{border-color:var(--danger);color:var(--danger)}.btn.wide{width:100%}.btn.big{min-height:54px;font-size:1.05rem}.btn.small{min-height:34px;padding:.25rem .8rem;font-size:.82rem}.btn:disabled{opacity:.5}
input,select,textarea{width:100%;font:inherit;padding:.65rem .75rem;border:1.5px solid var(--line);border-radius:10px;background:var(--paper);color:var(--ink);margin-top:.25rem}input:focus,select:focus,textarea:focus,.btn:focus-visible,button:focus-visible,a:focus-visible{outline:3px solid #3b7a8c88;outline-offset:1px}
label{display:block;font-size:.85rem;font-weight:600;color:var(--forest);margin:.7rem 0}label.check{display:flex;gap:.5rem;align-items:center;font-weight:400}label.check input{width:auto;margin:0}label.check.big{font-size:1.05rem;margin:1rem 0}
.hero{background:linear-gradient(160deg,var(--forest),#34634f);color:var(--birch);border-radius:18px;padding:1.6rem 1.2rem;margin-bottom:1.2rem}.hero h1{color:#fff;font-size:2rem;margin:.2rem 0 .5rem}.hero .kicker{letter-spacing:.22em;text-transform:uppercase;font-size:.7rem;opacity:.75;margin:0}.hero .btn{border-color:#f6f1e488;color:#fff}.hero .btn.primary{background:var(--rust);border-color:var(--rust)}
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:1rem}.card{display:block;background:var(--paper);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;color:inherit;text-decoration:none;box-shadow:0 2px 8px #0001}.thumb{height:130px;background:#f1e8cf;position:relative}.cbody{padding:.7rem .9rem}.cbody h3{margin:0}.mapcanvas{display:block;touch-action:none}
.empty{text-align:center;padding:2rem 1rem;background:var(--paper);border:1px dashed var(--line);border-radius:var(--r)}.empty .row{justify-content:center}
.callout{background:#fff4dd;border:1px solid #ecc88a;border-radius:var(--r);padding:1rem;margin-bottom:1rem}
.tripbar{padding:.8rem 1rem 0}.tabs{display:flex;overflow-x:auto;gap:.2rem;padding:.4rem 1rem 0;border-bottom:1px solid var(--line);scrollbar-width:none}.tabs a{flex:none;padding:.55rem .9rem;color:var(--mute);text-decoration:none;border-bottom:3px solid transparent;font-size:.9rem}.tabs a.on{color:var(--forest);border-color:var(--rust);font-weight:600}
.bigmap{height:min(62vh,560px);background:#f1e8cf;position:relative;overflow:hidden}.pininfo{padding:.7rem 1rem;background:var(--paper);border-bottom:1px solid var(--line)}
.pinlist{padding:.5rem 1rem}.pincard{display:flex;gap:.8rem;padding:.9rem 0;border-bottom:1px solid var(--line)}.pincard h3{margin:0}.pincard img{max-width:100%;border-radius:10px;margin:.4rem 0;display:block}.pincard audio{width:100%}.badge{flex:none;width:30px;height:30px;border-radius:50%;color:#fff;font-weight:600;font-size:.85rem;display:grid;place-items:center}.pbody{flex:1;min-width:0}
.stylechips{display:flex;gap:.5rem;overflow-x:auto;padding-bottom:.3rem}.stylechip{flex:none;display:flex;align-items:center;gap:.5rem;padding:.45rem .9rem;border:1.5px solid var(--line);background:var(--paper);border-radius:99px;font:600 .85rem Inter,sans-serif;cursor:pointer}.stylechip.on{border-color:var(--forest);background:var(--forest);color:#fff}.sw{width:16px;height:16px;border-radius:50%;border:1px solid #0003}.sw-vintage{background:#e9d9ae}.sw-minimal{background:#fff}.sw-night{background:#14224d}.sw-watercolour{background:linear-gradient(135deg,#7fb6c8,#f0d8a8)}
.selects label{flex:1;min-width:130px;margin:.2rem 0}.posterbox{position:relative;background:#e8dfc6;border-radius:var(--r);min-height:240px;overflow:hidden;box-shadow:0 6px 22px #0002;margin:.6rem 0}.posterbox img{display:block;width:100%;height:auto}.spin{position:absolute;inset:0;display:grid;place-items:center;color:var(--mute);background:#e8dfc6;font-style:italic;padding:1rem;text-align:center}
.products{display:grid;gap:.6rem}.product{display:flex;gap:.7rem;align-items:center;border:1.5px solid var(--line);border-radius:var(--r);padding:.7rem .8rem;margin:0;background:var(--paper);font-weight:400;color:var(--ink);cursor:pointer}.product.on{border-color:var(--forest);box-shadow:0 0 0 2px #1f3a3322}.product input{width:auto;margin:0}.product div{flex:1}.product b{display:block}.product span{font-size:.82rem;color:var(--mute)}.product em{font-style:normal;font-weight:600;color:var(--forest)}.quote{font-weight:600;color:var(--forest)}
.drop{display:grid;place-items:center;gap:.2rem;border:2px dashed var(--line);border-radius:var(--r);padding:2.2rem 1rem;background:var(--paper);text-align:center;cursor:pointer;position:relative}.drop input{position:absolute;inset:0;opacity:0;cursor:pointer;margin:0}
details{margin:1rem 0;background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:.6rem 1rem}summary{cursor:pointer;font-weight:600}dt{font-weight:600;margin-top:.6rem}dd{margin:0;color:var(--mute);font-size:.9rem}.tips li{margin:.4rem 0}
.rec-wrap{display:flex;flex-direction:column;gap:.6rem;padding:.7rem}.rec-head{display:flex;align-items:center;gap:.6rem}.pulse{width:12px;height:12px;border-radius:50%;background:#e03a2b;animation:pulse 1.4s infinite}@keyframes pulse{50%{opacity:.25}}
.livemap{height:36vh;min-height:220px;border-radius:var(--r);overflow:hidden;background:#f1e8cf;position:relative}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:.4rem;text-align:center}.stat b{display:block;font:700 1.15rem 'Playfair Display',serif;color:var(--forest)}.stat span{font-size:.68rem;color:var(--mute);text-transform:uppercase;letter-spacing:.06em}.rec-actions{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}.rec-actions .primary{grid-column:1/-1}
.dim{position:fixed;inset:0;background:#000;color:#8a8a8a;z-index:50;display:grid;place-items:center;text-align:center}.dim[hidden]{display:none}.dim b{display:block;font:700 2.4rem 'Playfair Display',serif;color:#9a9a9a}.dim span{display:block;font-size:1.2rem}.dim small{display:block;margin-top:2rem;opacity:.6}
.sheetback{position:fixed;inset:0;background:#0008;z-index:40;display:flex;align-items:flex-end;justify-content:center}.sheet{background:var(--birch);width:100%;max-width:560px;max-height:92vh;overflow:auto;border-radius:18px 18px 0 0;padding:0 1rem 1.2rem}.sheethead{display:flex;justify-content:space-between;align-items:center;position:sticky;top:0;background:var(--birch);padding:.8rem 0 .2rem}.sheethead h3{margin:0}.x{border:0;background:none;font-size:1.8rem;line-height:1;color:var(--mute);min-width:44px;min-height:44px}
.chips{display:flex;flex-wrap:wrap;gap:.4rem;margin:.4rem 0}.chip{border:1.5px solid var(--c);color:var(--c);background:transparent;border-radius:99px;padding:.4rem .8rem;font:600 .82rem Inter,sans-serif;min-height:38px}.chip.on{background:var(--c);color:#fff}.preview img{max-width:100%;border-radius:10px;margin:.4rem 0}
#toast{position:fixed;left:50%;bottom:calc(76px + env(safe-area-inset-bottom));transform:translate(-50%,20px);background:#1f2a27;color:#fff;padding:.6rem 1rem;border-radius:10px;opacity:0;transition:.25s;z-index:60;max-width:90vw;pointer-events:none;font-size:.9rem}#toast.show{opacity:1;transform:translate(-50%,0)}
.ordercard{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:.8rem;margin:.6rem 0}.addr{margin-top:1.2rem}
@media(min-width:900px){body{padding-bottom:0}nav.bottom{position:static;justify-content:center;border:0;background:transparent}nav.bottom a{flex:none;padding:.4rem 1.2rem;flex-direction:row;gap:.4rem;align-items:center}#main{max-width:980px;margin:0 auto}.sheetback{align-items:center}.sheet{border-radius:18px}}
@media(prefers-reduced-motion:reduce){.pulse{animation:none}*{transition:none!important}}
