/* A */
.hello{display:flex;align-items:center;justify-content:space-between;padding:20px 16px 0}
.hello h1{margin:0;font-size:24px;font-weight:600;letter-spacing:-.01em;line-height:1.15}
.hello h1 small{display:block;font-size:14px;font-weight:400;color:var(--m);margin-top:3px;letter-spacing:0}
.chips{display:flex;gap:6px;padding:16px 16px 0;overflow:hidden;white-space:nowrap}
.chips a{flex:none;height:36px;padding:0 14px;display:inline-flex;align-items:center;font-size:15px;background:var(--q);color:var(--t)}
.chips a.on{background:var(--a);color:var(--ao);font-weight:600}
.ev{margin:20px 12px 0}
.ev .ph{height:128px;overflow:hidden}.ev .ph img{width:100%;height:100%;object-fit:cover;object-position:center 40%;display:block}
.ev .bd{padding:14px 14px 0}
.ev .who{display:flex;align-items:center;justify-content:space-between;font-size:13px;color:var(--m)}
.ev .who b{font-weight:500;color:var(--t)}
.ev .row{display:flex;gap:14px;align-items:center;margin-top:12px}
.ev h3{margin:0;font-size:21px;line-height:1.18;font-weight:600;letter-spacing:-.01em}
.ev .meta{font-size:14px;color:var(--m);margin-top:4px}
.ev .ppl{display:flex;align-items:center;gap:4px;margin-top:12px;font-size:14px;color:var(--m)}.ev .ppl .t{margin-left:8px}
.ev .lb{margin:16px 0 8px;font-size:12px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--hi)}
.ndc{display:flex;flex-wrap:wrap;gap:6px}
.ndc span{display:inline-flex;align-items:center;gap:6px;height:34px;padding:0 11px;background:var(--q);font-size:14px;color:var(--t)}
.ndc span em{font-style:normal;color:var(--m)}
.ndc span.ok{background:none;padding:0 4px;color:var(--ok)}
.ev .act{display:flex;gap:6px;padding:14px}.ev .act .btn{flex:1}
.lbl2{display:flex;align-items:baseline;justify-content:space-between;margin:30px 16px 10px;color:var(--hi)}
.lbl2 h2{margin:0;font-size:13px;font-weight:600;letter-spacing:.2em;text-transform:uppercase}
.lbl2 a{font-size:14px;color:var(--m)}
.hands{margin:0 12px;background:var(--p)}
.hand{display:flex;align-items:center;gap:12px;min-height:72px;padding:10px 6px 10px 14px}
.hand+.hand{border-top:1px solid var(--l)}
.hand .tx{flex:1;min-width:0;font-size:17px;line-height:1.25}.hand small{display:flex;align-items:center;gap:6px;font-size:13px;margin-top:4px;color:var(--m)}
.rail{display:flex;gap:8px;padding:0 12px;overflow:hidden}
.tile{flex:none;width:150px;background:var(--p)}
.tile .im{height:120px;overflow:hidden;position:relative}.tile .im img{width:100%;height:100%;object-fit:cover;display:block}
.tile .im.tx{display:flex;flex-direction:column;justify-content:flex-end;padding:12px;background:var(--q)}
.tile .im.tx b{font-size:30px;font-weight:600;line-height:1}.tile .im.tx s{font-size:14px;color:var(--m);margin-top:4px}
.tile .cap{padding:9px 11px 11px}
.tile .k{font-size:11px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--hi)}
.tile .n{font-size:15px;line-height:1.25;margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tile small{display:block;font-size:13px;color:var(--m);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.grp{flex:none;width:226px;display:flex;gap:12px;align-items:center;padding:10px;background:var(--p)}
.grp img,.grp .in{width:56px;height:56px;object-fit:cover;flex:none}
.grp .in{display:flex;align-items:center;justify-content:center;background:var(--q);font:600 22px/1 Fraunces,serif;color:var(--hi)}
.grp .tx{min-width:0;font-size:15px;line-height:1.25}.grp small{display:block;font-size:13px;color:var(--m);margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.grp b{font-weight:500;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.end{margin:28px 16px 0;text-align:center;font-size:14px;color:var(--m)}
.end a{display:flex;align-items:center;justify-content:center;height:48px;margin-top:0;background:var(--q);color:var(--t);font-size:15px;font-weight:500}
.lbl2.first{margin-top:24px}
.tile{width:164px}.tile .im{height:132px}
.dibs{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin:0 12px}
.dib{background:var(--p);padding:12px 12px 14px;display:flex;flex-direction:column;min-height:112px}
.dib .n{font-size:16px;line-height:1.25}.dib small{font-size:13px;color:var(--m);margin-top:3px}
.dib .pp{margin-top:auto;padding-top:10px;display:flex;align-items:baseline;gap:8px}.dib .pp b{font-size:22px;font-weight:600}.dib .pp s{font-size:14px;color:var(--m)}
.prow{display:flex;align-items:center;gap:12px;margin:0 12px;padding:12px 14px 12px 12px}
.prow .day{width:52px;height:52px}.prow .day b{font-size:20px}
.prow .tx{flex:1;min-width:0;font-size:16px;line-height:1.25;font-weight:500}.prow small{display:block;font-size:13px;font-weight:400;color:var(--m);margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.prow .porch{font-size:15px;align-self:flex-start;margin-top:2px}
.gchips{display:flex;gap:6px;padding:8px 12px 0;overflow:hidden;white-space:nowrap}
.gchips a{flex:none;display:inline-flex;align-items:center;gap:8px;height:40px;padding:0 12px 0 4px;background:var(--p);font-size:14px}
.gchips img,.gchips .in{width:32px;height:32px;object-fit:cover}
.gchips .in{display:inline-flex;align-items:center;justify-content:center;background:var(--q);font:600 16px/1 Fraunces,serif;color:var(--hi)}
/* B */
.hero{height:170px;overflow:hidden}.hero img{width:100%;height:100%;object-fit:cover;object-position:center 45%;display:block}
.pc{margin:-34px 12px 0;position:relative;background:var(--p);padding:16px 16px 14px}
.pc .src{display:flex;justify-content:space-between;align-items:center;font-size:13px;color:var(--m)}
.pc h2{margin:10px 0 0;font-size:24px;line-height:1.15;font-weight:600;letter-spacing:-.01em}
.pc .when{margin-top:8px;font-size:16px;font-weight:500;color:var(--hi)}
.pc .where{margin-top:3px;font-size:14px;color:var(--m)}
.pc .ppl{display:flex;align-items:center;gap:4px;margin-top:14px;font-size:14px;color:var(--m)}.pc .ppl .t{margin-left:8px}
.pc .act{display:flex;gap:6px;margin-top:14px}.pc .act .btn{flex:1}
.note{margin:2px 12px 0;background:var(--p);padding:14px 16px;font-size:15px;line-height:1.45}
.note .by{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--m);margin-bottom:6px}
.need{display:flex;align-items:center;gap:12px;min-height:76px;padding:12px 6px 12px 14px;margin:0 12px 2px;background:var(--p)}
.need .tx{flex:1;min-width:0;font-size:17px;line-height:1.25}
.need .cv{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;margin-top:5px;font-size:13px;color:var(--m)}
.need .cv span{display:inline-flex;align-items:center;gap:5px}
.need .cv .open{color:var(--hi)}
.need .done{display:inline-flex;align-items:center;gap:5px;height:44px;padding:0 14px;margin-right:8px;color:var(--ok);font-size:15px}
.more{display:flex;align-items:center;justify-content:space-between;margin:8px 12px 0;padding:0 14px;height:52px;border:1px solid var(--l);font-size:15px;color:var(--m)}
.more b{font-weight:500;color:var(--t)}
.foot{margin:18px 16px 0;font-size:13px;line-height:1.45;color:var(--m)}
/* C */
.gh{position:relative;height:190px;overflow:hidden}.gh img{width:100%;height:100%;object-fit:cover;object-position:center 30%;display:block}
.gh:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,0) 35%,rgba(20,18,17,.78))}
.gh .nm{position:absolute;left:16px;right:16px;bottom:14px;z-index:1;color:#F2F2F2}
.gh h2{margin:0;font-size:30px;font-weight:700;letter-spacing:-.02em;line-height:1.05}
.gh .sub{font-size:14px;margin-top:5px;color:#E6E1DC}
.about{padding:16px 16px 4px;font-size:16px;line-height:1.5}
.runs{display:flex;align-items:center;gap:0;padding:10px 16px 0;font-size:14px;color:var(--m)}
.runs span{display:inline-flex;align-items:center;gap:5px;color:var(--t)}
.join{display:flex;gap:6px;padding:16px 12px 0}.join .btn{flex:1}
.how{margin:10px 16px 0;font-size:13px;line-height:1.45;color:var(--m)}
.ev2{display:flex;align-items:center;gap:12px;min-height:80px;padding:12px 6px 12px 12px;margin:0 12px 2px;background:var(--p)}
.ev2 .tx{flex:1;min-width:0;font-size:17px;line-height:1.25}.ev2 small{display:block;font-size:13px;margin-top:4px;color:var(--m)}
.pzw{margin:26px 12px 0;padding:2px 0 4px}.pzw .sec{margin:16px 14px 6px}.pzw .ev2{margin:0;background:none;padding-left:14px}.pzw .ev2+.ev2{border-top:1px solid var(--l)}
.gear .st{font-size:14px;color:var(--m);margin-right:14px;white-space:nowrap}
/* D */
.scrim{position:fixed;inset:0;background:var(--scrim)}
.sheet{position:fixed;left:0;right:0;bottom:0;background:var(--sheet);padding:10px 16px 24px;box-shadow:0 -1px 0 var(--l)}
.grab{width:44px;height:4px;background:var(--inp);margin:0 auto 16px}
.light .grab{background:#cfc4bb}
.sheet .kick{display:block}
.sheet h2{margin:6px 0 2px;font-size:22px;font-weight:600;letter-spacing:-.01em}
.sheet .for{font-size:14px;color:var(--m)}
.lbl{margin:20px 0 8px;font-size:14px;font-weight:500}
.seg{display:flex;gap:4px}.seg a{flex:1;height:44px;display:flex;align-items:center;justify-content:center;background:var(--q);font-size:16px}
.seg a.on{background:var(--a);color:var(--ao);font-weight:600}
.seg.two a{font-size:15px}
.inp{height:48px;display:flex;align-items:center;padding:0 14px;background:var(--inp);font-size:16px;color:var(--t)}
.light .inp{border:1px solid var(--l)}
.seen{display:flex;gap:10px;align-items:flex-start;margin-top:16px;padding:12px 14px;background:var(--q);font-size:14px;line-height:1.45;color:var(--m)}
.seen b{color:var(--t);font-weight:500}
.sheet .acts{display:flex;gap:6px;margin-top:18px}.sheet .acts .btn{flex:1}.sheet .acts .btn.qt{flex:0 0 112px}
/* ---- app shell ---- */
html{background:#141312}html.light{background:#cbbfb5}
body{width:auto;max-width:480px;margin:0 auto;min-height:100vh;min-height:100dvh;position:relative;overflow-x:hidden;-webkit-tap-highlight-color:transparent}
@media(min-width:520px){body{box-shadow:0 0 0 1px rgba(0,0,0,.25),0 20px 60px rgba(0,0,0,.35)}}
button{font:inherit;color:inherit;border:0;background:none;padding:0;cursor:pointer}
a,[data-go],[data-act]{cursor:pointer;user-select:none;-webkit-user-select:none}
.appbar{position:sticky;top:0;z-index:20}
.town{gap:4px}
#view{min-height:calc(100dvh - 104px)}
#view.fwd{animation:vin .24s cubic-bezier(.2,.7,.2,1)}
#view.bkw{animation:vinb .24s cubic-bezier(.2,.7,.2,1)}
#view.fade{animation:vfade .2s ease-out}
@keyframes vin{from{opacity:0;transform:translateX(22px)}to{opacity:1;transform:none}}
@keyframes vinb{from{opacity:0;transform:translateX(-22px)}to{opacity:1;transform:none}}
@keyframes vfade{from{opacity:0}to{opacity:1}}
@media (prefers-reduced-motion:reduce){#view.fwd,#view.bkw,#view.fade{animation:none}}
.bar{position:sticky;top:0;z-index:20}
.rail,.chips,.gchips,.days{overflow-x:auto;scrollbar-width:none;scroll-snap-type:x proximity;scroll-padding:0 12px;-webkit-overflow-scrolling:touch}
.rail::-webkit-scrollbar,.chips::-webkit-scrollbar,.gchips::-webkit-scrollbar,.days::-webkit-scrollbar{display:none}
.rail>*,.gchips>*{scroll-snap-align:start}
.rail:after,.gchips:after,.chips:after{content:"";flex:0 0 4px}
.chips{padding-bottom:2px}
.tile .im.tx.lt{align-items:flex-start;justify-content:flex-end}
.tile .im.tx .ini{font:600 40px/1 Fraunces,serif;color:var(--hi)}
.tgrid{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin:0 12px}.tgrid .tile{width:auto}
.tile .yo{color:var(--hi)}
.grpl{display:flex;flex-direction:column;gap:2px;margin:8px 12px 0}.grpl .grp{width:auto}
.hand .go.q,.dib .st{color:var(--m)}
.dib .st{font-size:13px;margin-top:6px}
.empty{margin:20px 16px 0;padding:18px 16px;background:var(--p);color:var(--m);font-size:15px;line-height:1.5}
/* ---- post detail ---- */
.dhero{height:240px;overflow:hidden}.dhero img{width:100%;height:100%;object-fit:cover;display:block}
.dtx{height:150px;display:flex;flex-direction:column;justify-content:flex-end;padding:16px;background:var(--q)}
.dtx b{font-size:40px;font-weight:600;line-height:1}.dtx s{font-size:16px;color:var(--m);margin-top:6px}
.dtx .ini{font:600 56px/1 Fraunces,serif;color:var(--hi)}
.dbody{padding:18px 16px 0}
.dbody h2{margin:6px 0 0;font-size:26px;line-height:1.15;font-weight:600;letter-spacing:-.01em}
.whol{display:flex;align-items:center;gap:8px;margin-top:10px;font-size:15px;color:var(--m)}.whol b{font-weight:500;color:var(--t)}
.price{display:flex;align-items:baseline;gap:10px;margin-top:14px}.price b{font-size:30px;font-weight:600}.price s{font-size:16px;color:var(--m)}
.dtxt{margin:16px 0 0;font-size:16px;line-height:1.55}
.facts{margin:18px 12px 0;background:var(--p)}
.fact{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:50px;padding:0 14px;font-size:15px}
.fact+.fact{border-top:1px solid var(--l)}.fact span:first-child{color:var(--m)}.fact span:last-child{text-align:right}
.fact.link{color:var(--t)}.fact.link span:last-child{color:var(--hi)}
.dacts{position:sticky;bottom:0;z-index:5;display:flex;gap:6px;padding:12px 12px calc(12px + env(safe-area-inset-bottom));margin-top:20px;background:var(--bg);box-shadow:0 -1px 0 var(--l)}
.dacts .btn{flex:1}.dacts .btn.sv{flex:0 0 104px}
.dacts .status{flex:1;display:flex;align-items:center;justify-content:center;height:44px;font-size:15px;color:var(--m);background:var(--p)}
.btn[disabled],.btn.off{opacity:.45;pointer-events:none}
/* ---- sheets ---- */
#sheet-root .scrim{opacity:0;transition:opacity .22s ease;z-index:40}
#sheet-root .scrim.open{opacity:1}
#sheet-root .sheet{left:50%;right:auto;width:min(100%,480px);transform:translate(-50%,105%);transition:transform .28s cubic-bezier(.2,.8,.2,1);z-index:41;max-height:90dvh;overflow-y:auto;padding-bottom:calc(24px + env(safe-area-inset-bottom))}
#sheet-root .sheet.open{transform:translate(-50%,0)}
.sheet .inp{width:100%;border:0;border-radius:0;font:inherit;font-size:16px;color:var(--t);outline:none}
.light .sheet .inp{border:1px solid var(--l)}
.inp:focus,.fi:focus{box-shadow:inset 0 -2px 0 var(--hi)}
.done-ic{width:56px;height:56px;display:flex;align-items:center;justify-content:center;background:var(--q);color:var(--ok);margin:6px 0 14px}
.done-ic svg{width:30px;height:30px}
.sheet p.sub{margin:8px 0 0;font-size:15px;line-height:1.5;color:var(--m)}
.sheet .bigp{font-size:34px;font-weight:600;margin-top:14px}
.sheet .rows{margin-top:14px}
.srow2{display:flex;align-items:center;justify-content:space-between;min-height:52px;padding:0 14px;background:var(--q);margin-bottom:2px;font-size:16px}
.srow2.on{background:var(--a);color:var(--ao);font-weight:600}
.srow2 small{font-size:13px;color:var(--m)}.srow2.on small{color:var(--ao)}
.exbox{margin-top:14px;padding:14px;background:var(--q);font-size:15px;line-height:1.5;white-space:pre-wrap}
.exbox b{display:block;font-size:16px;margin-bottom:4px}
.exph{display:flex;gap:6px;align-items:center;margin-top:10px;font-size:14px;color:var(--m)}.exph i{width:64px;height:64px;background:var(--q);display:block;overflow:hidden}.exph i img{width:100%;height:100%;object-fit:cover;display:block}
.sheet .acts.one .btn{flex:1}
.sheet .full{display:flex;margin-top:6px}.sheet .full .btn{flex:1}
/* days picker */
.days{display:flex;gap:4px;margin:0 -16px;padding:0 16px}
.days a{flex:none;width:54px;height:62px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;background:var(--q);line-height:1}
.days a i{font-style:normal;font-size:11px;font-weight:600;letter-spacing:.14em;color:var(--hi)}
.days a b{font:700 20px/1 "Josefin Sans",sans-serif}
.days a.in{background:color-mix(in srgb,var(--a) 24%,var(--q))}
.days a.on{background:var(--a);color:var(--ao)}.days a.on i{color:var(--ao)}
.range{margin-top:10px;font-size:14px;color:var(--m)}
/* toast */
#toast{position:fixed;left:50%;bottom:calc(20px + env(safe-area-inset-bottom));transform:translate(-50%,20px);opacity:0;transition:.22s;z-index:60;max-width:min(92vw,440px);padding:12px 16px;background:var(--a);color:var(--ao);font-size:14px;line-height:1.4;pointer-events:none}
#toast.on{opacity:1;transform:translate(-50%,0)}
/* ---- composer ---- */
.types{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin:0 12px}
.type{display:flex;flex-direction:column;gap:4px;min-height:80px;padding:12px 14px;background:var(--p);text-align:left}
.type b{font-size:16px;font-weight:600}.type small{font-size:13px;line-height:1.35;color:var(--m)}
.type.on{background:var(--a);color:var(--ao)}.type.on small{color:var(--ao)}
.fld{margin:20px 16px 0}.fld .lbl{margin:0 0 8px}
.fi{display:block;width:100%;height:48px;padding:0 14px;border:0;border-radius:0;background:var(--inp);color:var(--t);font:inherit;font-size:16px;outline:none}
textarea.fi{height:96px;padding:12px 14px;resize:none;line-height:1.45}
.light .fi{border:1px solid var(--l)}
.fi::placeholder{color:var(--m);opacity:.8}
.money{display:flex;gap:6px}.money label{flex:1}.money .cap{display:block;font-size:13px;color:var(--m);margin-bottom:6px}
.money .fi.big{height:56px;font-size:24px;font-weight:600}
.phs{display:flex;gap:6px}.phs .pt{width:84px;height:84px;background:var(--q);overflow:hidden;position:relative}.phs .pt img{width:100%;height:100%;object-fit:cover;display:block}
.phs .add{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:4px;font-size:13px;color:var(--m);border:1px dashed var(--m);background:none}
.phs .add b{font-size:24px;font-weight:400;line-height:1;color:var(--t)}
.who-sees{margin:20px 16px 0;padding:12px 14px;background:var(--p);font-size:14px;line-height:1.45;color:var(--m)}.who-sees b{color:var(--t);font-weight:500}
.cacts{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:min(100%,480px);z-index:15;padding:12px 12px calc(12px + env(safe-area-inset-bottom));background:var(--bg);box-shadow:0 -1px 0 var(--l);display:flex}.cpad{height:calc(96px + env(safe-area-inset-bottom))}.cacts .btn{flex:1}
.err{margin-top:6px;font-size:13px;color:var(--hi)}
/* ---- yours ---- */
.req{margin:0 12px 2px;padding:14px;background:var(--p)}
.req .t{font-size:17px}.req small{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--m);margin-top:4px}
.req .q{margin-top:10px;font-size:15px;line-height:1.45}
.req .acts{display:flex;gap:6px;margin-top:12px}.req .acts .btn{flex:1}
.yrow{display:flex;align-items:center;gap:12px;min-height:72px;padding:10px 6px 10px 14px;margin:0 12px 2px;background:var(--p)}
.yrow img,.yrow .ini{width:56px;height:56px;object-fit:cover;flex:none}
.yrow .ini{display:flex;align-items:center;justify-content:center;background:var(--q);font:600 24px/1 Fraunces,serif;color:var(--hi)}
.yrow .tx{flex:1;min-width:0;font-size:17px;line-height:1.25}.yrow small{display:block;font-size:13px;margin-top:3px;color:var(--m)}
.yrow .bt{display:flex;flex-direction:column;gap:4px;margin-right:8px}
.yrow .bt .go{margin-right:0;height:38px;justify-content:center}
.yrow .st{font-size:14px;color:var(--m);margin-right:14px;white-space:nowrap}
/* ---- settings ---- */
.srow{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:60px;padding:10px 14px;margin:0 12px 2px;background:var(--p);font-size:16px}
.srow small{display:block;font-size:13px;color:var(--m);margin-top:3px;line-height:1.35}
.srow .v{color:var(--m);white-space:nowrap}
.srow .seg{flex:none;width:170px}.srow .seg a{height:38px;font-size:15px}
.tg{flex:none;width:52px;height:30px;background:var(--q);position:relative;transition:background .15s}
.tg:after{content:"";position:absolute;top:4px;left:4px;width:22px;height:22px;background:var(--m);transition:left .15s}
.tg.on{background:var(--a)}.tg.on:after{left:26px;background:var(--ao)}
.light .tg{background:#e7ddd4}
/* ---- first run ---- */
.fr{display:flex;flex-direction:column;min-height:100dvh;padding:56px 16px calc(24px + env(safe-area-inset-bottom))}
.fr .wm{font-size:58px;color:var(--t)}
.fr h1{margin:34px 0 14px;font-size:28px;font-weight:600;letter-spacing:-.01em}
.sug{margin-top:2px}.sug a{display:flex;justify-content:space-between;align-items:center;height:56px;padding:0 16px;background:var(--p);margin-bottom:2px;font-size:17px}
.sug a small{font-size:14px;color:var(--m)}.sug a.on{background:var(--a);color:var(--ao)}.sug a.on small{color:var(--ao)}
.frnote{margin:18px 0 0;font-size:15px;line-height:1.5;color:var(--m)}.frnote b{color:var(--t);font-weight:500}
.fr .start{margin-top:auto;padding-top:24px;display:flex}.fr .start .btn{flex:1;height:52px}
.nav .n0{background:#654B3D;color:#F2F2F2}.light .nav .n0{background:#DDC5AE;color:#28292A}
.light .nav .n2,.light .nav .n3{color:#28292A}
.nav a{transition:background .15s}
.join .btn svg{flex:none}
#toast.up{bottom:auto;top:calc(14px + env(safe-area-inset-top));transform:translate(-50%,-20px)}#toast.up.on{transform:translate(-50%,0)}

#toast{bottom:calc(16px + env(safe-area-inset-bottom));padding:8px 14px;font-size:13px;line-height:1.35;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:calc(min(100vw,480px) - 32px);box-shadow:0 2px 10px rgba(0,0,0,.25)}
#toast.lift{bottom:calc(84px + env(safe-area-inset-bottom))}
#toast.up{bottom:auto}
/* ---- garage + asks ---- */
.hand small.hint{display:block;color:var(--hi);margin-top:3px}
.intro,.gintro{margin:20px 16px 0;font-size:14px;line-height:1.45;color:var(--m)}.intro a{color:var(--hi)}
.gintro{margin:-2px 16px 12px}
.lbl2.sh{margin-top:22px}
.lbl2 .hadd{display:inline-flex;align-items:center;height:32px;padding:0 12px;background:var(--q);color:var(--t);font-size:14px;font-weight:500;letter-spacing:0;text-transform:none;align-self:center}
.lbl2:has(.hadd){align-items:center}
.shelves{display:grid;grid-template-columns:1fr 1fr;grid-auto-flow:row dense;gap:2px;margin:0 12px}
.shelf{padding:12px 12px 14px;background:var(--p);min-width:0}.shelf.s4{grid-column:1/-1}
.shelf h3{margin:0 0 10px;font-size:11px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--m)}
.shg{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.s2 .shg{grid-template-columns:repeat(2,minmax(0,1fr))}
.gt{display:block;min-width:0;color:var(--t)}
.gt .th{aspect-ratio:1/1;background:var(--q);overflow:hidden;display:flex;align-items:center;justify-content:center}
.gt .th img{width:100%;height:100%;object-fit:cover;display:block}
.gt .th .ini,.gsh .th .ini,.gpick .ini{font:600 26px/1 Fraunces,serif;color:var(--hi)}
.gt .nm{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin-top:6px;font-size:13px;line-height:1.25}
.gt small{display:block;margin-top:2px;font-size:12px;color:var(--hi)}
.gt.off .th>*{opacity:.35}.gt.off .nm{color:var(--m)}.gt.off small{color:var(--m)}
.gt.add .th{background:none;border:1px dashed var(--m);flex-direction:column;gap:3px;font-size:12px;color:var(--m)}
.gt.add .th b{font-size:22px;font-weight:400;line-height:1;color:var(--t)}
.shelfpick{display:flex;flex-wrap:wrap;gap:6px}
.shelfpick a{height:40px;padding:0 14px;display:inline-flex;align-items:center;background:var(--q);font-size:15px}
.shelfpick a.on{background:var(--a);color:var(--ao);font-weight:600}
.gsh{display:flex;gap:14px;align-items:center}
.gsh .th{width:76px;height:76px;flex:none;background:var(--q);overflow:hidden;display:flex;align-items:center;justify-content:center}
.gsh .th img{width:100%;height:100%;object-fit:cover;display:block}
.gsh h2{margin:4px 0 2px}
.gnote2{margin-top:14px;font-size:15px;line-height:1.45}
.gpick{display:flex;align-items:center;gap:12px;padding:8px 12px 8px 8px;background:var(--q)}
.gpick img,.gpick .ini{width:48px;height:48px;object-fit:cover;flex:none;display:flex;align-items:center;justify-content:center;background:var(--p)}
.gpick>span:not(.ini){flex:1;min-width:0;font-size:16px}.gpick small{display:block;font-size:13px;color:var(--m);margin-top:2px}
.gpick svg{width:20px;height:20px;color:var(--hi);flex:none}
.gnote{display:block;margin:12px 16px 0;font-size:14px;color:var(--m)}.gnote b{color:var(--hi);font-weight:500}
.gt .th{transition:outline-color .4s;outline:2px solid transparent;outline-offset:2px}.gt.new .th{outline-color:var(--hi)}
