:root{--iv:#F6F0E8;--oat:#E6D8C8;--co:#6B5143;--tc:#A66F63;--sa:#C7A88A;--es:#302823;--card:#FFFCF7;--sh:0 8px 24px #3028231a}
*{box-sizing:border-box;margin:0;-webkit-tap-highlight-color:transparent}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;touch-action:pan-x pan-y;scroll-behavior:smooth;scrollbar-gutter:stable;color-scheme:light}
body{background:var(--iv);color:var(--es);font:400 15px/1.6 Jost,system-ui,sans-serif;padding-bottom:calc(66px + env(safe-area-inset-bottom));overflow-x:hidden;-webkit-font-smoothing:antialiased}
body.modal-open{overflow:hidden}
h1,h2,h3{font-family:"Playfair Display",serif;font-weight:500;line-height:1.2}
.script{font-family:Allura,cursive;font-weight:400}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
[hidden]{display:none!important}
button,input,select,textarea{font:inherit;color:inherit}
button{touch-action:manipulation}
input,select,textarea{width:100%;font-size:16px;padding:12px 14px;background:#fff;border:1px solid var(--sa);border-radius:12px;outline:0;-webkit-appearance:none;appearance:none}
select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' fill='none' stroke='%236B5143' stroke-width='2'%3E%3Cpath d='M1 1l5 5 5-5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;padding-right:36px}
input:focus,select:focus,textarea:focus{border-color:var(--co);box-shadow:0 0 0 3px #6b514322}
input[type=checkbox]{width:18px;height:18px;padding:0;accent-color:var(--co);-webkit-appearance:auto;appearance:auto}
textarea{min-height:90px;resize:vertical}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--co);color:var(--iv);border:1px solid var(--co);border-radius:99px;padding:12px 26px;cursor:pointer;font-weight:500;transition:.2s;box-shadow:0 4px 14px #6b514333}
.btn:hover{background:var(--es);border-color:var(--es)}
.btn.ghost{background:none;color:var(--co);box-shadow:none}
.btn.ghost:hover{background:var(--co);color:var(--iv)}
.btn.sm{padding:8px 16px;font-size:14px}
.btn.red{background:#9B4A3F;border-color:#9B4A3F}
.btn.blk{width:100%}
.btn:disabled{opacity:.5;pointer-events:none}
.btn.g{background:#fff;color:var(--es);border-color:var(--sa);box-shadow:var(--sh)}
.btn.g:hover{background:var(--oat);border-color:var(--sa)}
.wrap{max-width:1160px;margin:auto;padding:0 18px}
.narrow{max-width:520px}
.ctr{text-align:center}
.ib{position:relative;width:42px;height:42px;display:grid;place-items:center;background:none;border:0;cursor:pointer;color:var(--es);border-radius:50%;flex:none}
.ib:active{background:var(--oat)}
.ann{background:var(--tc);color:var(--iv);text-align:center;font-size:13px;padding:7px 12px}
.hd{position:sticky;top:0;z-index:30;background:#f6f0e8ee;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--oat)}
.hdr{display:flex;align-items:center;gap:6px;height:62px}
.brand{white-space:nowrap;flex:1;text-align:center;font-size:30px;line-height:1;color:var(--es)}
.dnav{display:none}
.hact{display:flex}
.hact img{width:28px;height:28px;border-radius:50%;object-fit:cover}
.cb{position:absolute;top:3px;right:1px;background:var(--tc);color:var(--iv);font-size:11px;min-width:17px;height:17px;border-radius:9px;display:grid;place-items:center;padding:0 4px}
.cb:empty{display:none}
.bn{position:fixed;bottom:0;left:0;right:0;z-index:30;background:#f6f0e8f2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-top:1px solid var(--oat);display:flex;padding-bottom:env(safe-area-inset-bottom)}
.bn a{flex:1;display:flex;flex-direction:column;align-items:center;gap:1px;padding:8px 0 7px;font-size:11px;color:#7d6a5e;position:relative}
.bn a.on{color:var(--co);font-weight:500}
.bn a.on:before{content:"";position:absolute;top:0;width:26px;height:3px;border-radius:0 0 4px 4px;background:var(--tc)}
.dr{position:fixed;inset:0;z-index:40;visibility:hidden;transition:visibility .25s}
.dr.open{visibility:visible}
.dbk{position:absolute;inset:0;background:#302823aa;opacity:0;transition:.25s}
.dr.open .dbk{opacity:1}
.dr aside{position:absolute;top:0;bottom:0;left:0;width:78%;max-width:320px;background:var(--iv);padding:22px;padding-top:calc(22px + env(safe-area-inset-top));transform:translateX(-100%);transition:transform .25s ease;display:flex;flex-direction:column;gap:4px;overflow:auto}
.dr.open aside{transform:none}
.dr aside a{padding:13px 4px;border-bottom:1px solid var(--oat);font-family:"Playfair Display",serif;font-size:19px;display:block}
.dr aside a.on{color:var(--tc)}
.dbrand{font-size:34px;margin-bottom:10px;line-height:1.1}
.sub{text-align:center;font-style:italic;color:var(--co);margin:6px 0 24px}
.grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.card{min-width:0}
.ci{position:relative;display:block;aspect-ratio:4/5;border-radius:16px;overflow:hidden;background:var(--oat);box-shadow:var(--sh)}
.ci img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.bdg{position:absolute;top:10px;left:10px;background:var(--tc);color:var(--iv);font-size:11px;padding:3px 10px;border-radius:99px}
.bdg.so{background:var(--es)}
.cf{display:flex;justify-content:space-between;align-items:flex-start;gap:8px;padding:10px 2px}
.cf h3{font-size:16px}
.pr{color:var(--co);font-size:14px}
.pr s{color:#a89a8e;margin-left:4px}
.rb{flex:none;width:38px;height:38px;border-radius:50%;border:0;background:var(--tc);color:var(--iv);display:grid;place-items:center;cursor:pointer;box-shadow:0 4px 12px #a66f6355;transition:.15s}
.rb:active{transform:scale(.92)}
.cats{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.ct{position:relative;aspect-ratio:1;border-radius:16px;overflow:hidden;background:var(--oat);display:flex;align-items:flex-end;box-shadow:var(--sh)}
.ct img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .5s}
.ct:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,#302823cc,transparent 60%)}
.ct span{position:relative;z-index:1;color:var(--iv);padding:12px;font-family:"Playfair Display",serif;font-size:18px}
.pg{padding:26px 18px}
.pg h1{font-size:32px;margin-bottom:16px}
.big{font-size:22px;margin:6px 0 14px}
.stp{display:inline-flex;align-items:center;border:1px solid var(--sa);border-radius:99px;background:#fff}
.stp button{width:40px;height:40px;border:0;background:none;font-size:20px;cursor:pointer}
.stp b{min-width:26px;text-align:center;font-weight:500}
.row{display:flex;gap:12px;padding:14px 0;border-bottom:1px solid var(--oat);align-items:center}
.row img{width:68px;height:84px;object-fit:cover;border-radius:10px;background:var(--oat);flex:none}
.row .m{flex:1;min-width:0}
.box{background:var(--oat);border-radius:16px;padding:16px;margin:16px 0}
.box .l{display:flex;justify-content:space-between;padding:3px 0}
.box .l.t{font-weight:500;font-size:17px;border-top:1px solid var(--sa);margin-top:6px;padding-top:9px}
.form{display:grid;gap:12px}
.form label{display:grid;gap:5px;font-size:13px;color:var(--co)}
.form label.chk{display:flex;align-items:center;gap:8px;font-size:14px}
.two{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.empty{text-align:center;padding:40px 10px;color:var(--co)}
.empty .btn{margin-top:14px}
footer{background:var(--es);color:var(--iv);margin-top:56px;padding:34px 0 20px}
footer .wrap{display:grid;gap:22px}
footer h4{font-family:"Playfair Display",serif;font-weight:500;margin-bottom:8px;color:var(--sa)}
footer a{display:block;padding:2px 0;opacity:.9}
footer .fb{font-size:34px}
footer .cp{font-size:12px;opacity:.6;border-top:1px solid #c7a88a44;padding-top:14px;grid-column:1/-1}
main#v{min-height:62vh}
/* sign-in modal: no jumping, smooth in/out */
.modal{position:fixed;inset:0;background:#302823bb;display:flex;align-items:flex-end;justify-content:center;z-index:60;animation:fi .2s}
.sheet{background:var(--iv);width:100%;max-width:540px;max-height:94vh;overflow:auto;border-radius:24px 24px 0 0;padding:24px 20px calc(28px + env(safe-area-inset-bottom));animation:su .28s ease}
.sheet h2{font-size:26px;margin-bottom:4px}
.sheet>p{margin-bottom:14px;color:var(--co)}
.sheet .gl{display:block;width:34px;height:4px;border-radius:4px;background:var(--sa);opacity:.6;margin:-10px auto 16px}
.spin{width:34px;height:34px;border:3px solid var(--oat);border-top-color:var(--co);border-radius:50%;margin:18px auto 6px;animation:sp .8s linear infinite}
.busy{text-align:center;padding:14px 0 18px}
.busy p{margin:0!important}
@keyframes sp{to{transform:rotate(360deg)}}
@keyframes fi{from{opacity:0}}
@keyframes su{from{transform:translateY(40px);opacity:0}}
#toast{position:fixed;left:50%;bottom:calc(84px + env(safe-area-inset-bottom));transform:translate(-50%,20px);background:var(--es);color:var(--iv);padding:10px 20px;border-radius:99px;font-size:14px;opacity:0;pointer-events:none;transition:.25s;z-index:99;max-width:90%;text-align:center}
#toast.show{opacity:1;transform:translate(-50%,0)}
/* loading skeletons (same shapes as real content, so nothing jumps) */
.sk{background:linear-gradient(90deg,#ece2d4,#f7f0e6,#ece2d4);background-size:200% 100%;animation:sh 1.3s infinite;border-radius:12px}
@keyframes sh{to{background-position:-200% 0}}
.skc .ph{aspect-ratio:4/5;border-radius:16px}
.skc .l1{height:14px;width:70%;margin:12px 2px 6px}
.skc .l2{height:12px;width:35%;margin:0 2px}
.sk-h{height:34px;width:46%;margin-bottom:18px}
.sk-b{height:16px;margin-bottom:12px}.sk-b.s{width:60%}
.sk-hero{height:520px;border-radius:0}
.sk-sq{aspect-ratio:1;border-radius:14px}
@media(min-width:800px){
body{padding-bottom:0}
.bn,.mob{display:none!important}
.dnav{display:flex;gap:28px;flex:1;margin-left:24px}
.dnav a{padding:6px 0;border-bottom:1px solid transparent}
.dnav a.on{border-color:var(--co)}
.brand{flex:none;text-align:left}
.hdr{height:70px}
.grid{grid-template-columns:repeat(3,1fr);gap:24px}
.cats{grid-template-columns:repeat(4,1fr)}
footer .wrap{grid-template-columns:2fr 1fr 1fr}
.modal{align-items:center}
.sheet{border-radius:24px;padding-bottom:28px}
.sheet .gl{display:none}
#toast{bottom:30px}
.card:hover .ci img,.ct:hover img{transform:scale(1.05)}
.sk-hero{height:560px}
}
