/* Curiobject 客人页（DESIGN.md：无点缀色、直角、无阴影；正文 14px；触控 ≥44px） */
*{box-sizing:border-box;margin:0;padding:0}
:root{
  --surface:#F6F4EF;--inset:#ECE9E2;--ink:#1F1D1A;--muted:#625E56;--hair:#D9D5CC;
  --inv:#1F1D1A;--inv-ink:#F6F4EF;--inv-muted:#B9B4AA;
  --serif:"Noto Serif SC","Songti SC",STSong,serif;
  --sans:"PingFang SC","Microsoft YaHei",sans-serif;
  --mono:"IBM Plex Mono",ui-monospace,Menlo,monospace;
  --tap:44px;--m:18px;
}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{background:var(--surface);color:var(--ink);font-family:var(--sans);font-size:14px;line-height:1.6;overflow-wrap:anywhere}
.scr{max-width:480px;margin:0 auto;padding:0 var(--m) 48px}
.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}
.vh{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}
[hidden]{display:none!important}

.eb{font-family:var(--mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.head{padding:28px 0 22px}
.head h1{font-family:var(--serif);font-weight:600;font-size:30px;line-height:1.2;margin:8px 0 10px}
.head h1:focus{outline:none}
.head h1:focus-visible{outline:2px solid var(--ink);outline-offset:2px}

.field{margin-bottom:24px}
.flabel{display:block;font-size:14px}
.flabel .opt{color:var(--muted)}
.ti{display:block;width:100%;min-height:var(--tap);border:0;border-bottom:1px solid var(--ink);border-radius:0;background:transparent;color:var(--ink);font-family:var(--sans);font-size:16px;padding:0 2px;-webkit-appearance:none;appearance:none}
.ti.mono{font-family:var(--mono)}
.ti:focus{outline:none}
.ti:focus-visible{outline:2px solid var(--ink);outline-offset:2px}
.ti[aria-invalid=true]{border-bottom-width:2px}
.help{font-size:14px;color:var(--muted);margin-top:6px}
.err{font-size:14px;color:var(--ink);border-left:2px solid var(--ink);padding-left:10px;margin-top:8px}

.lnk{color:var(--ink);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}
.lnk-pad{display:inline-flex;align-items:center;min-height:var(--tap);padding:0 2px}
.switch{text-align:center;margin-top:10px}
a:focus{outline:none}
a:focus-visible,button:focus-visible{outline:2px solid var(--ink);outline-offset:2px}

.im{border-left:2px solid var(--ink);padding:2px 0 2px 12px;font-size:14px;color:var(--ink);margin-bottom:20px}
.im.after{margin:14px 0 0}

.btn{display:flex;align-items:center;justify-content:center;width:100%;min-height:var(--tap);font-family:var(--sans);font-size:14px;border:0;border-radius:0;cursor:pointer;-webkit-appearance:none;appearance:none}
.btn-primary{background:var(--inv);color:var(--inv-ink)}
.btn-primary:active{padding-top:1px}
.btn[aria-disabled=true]{background:var(--inset);color:var(--muted);border:1px dashed var(--muted);cursor:default}
.reason{font-size:14px;color:var(--ink);margin-top:8px}
/* 不跑 JS 时也随勾选切换外观（JS 同时更新 aria-disabled） */
form:has(#r-consent:checked) .btn[data-consent-gate]{background:var(--inv);color:var(--inv-ink);border:0}
form:has(#r-consent:checked) #why-reg[data-consent-reason]{display:none}

.consent{display:flex;gap:10px;align-items:flex-start;min-height:var(--tap);padding:12px 0;font-size:14px;line-height:1.6;margin-bottom:12px;cursor:pointer}
.consent input{flex:none;width:20px;height:20px;margin-top:2px;border:1px solid var(--ink);border-radius:0;background:var(--surface);-webkit-appearance:none;appearance:none;display:grid;place-content:center}
.consent input:checked{background:var(--inv)}
.consent input:checked::after{content:"";width:10px;height:5px;border-left:2px solid var(--inv-ink);border-bottom:2px solid var(--inv-ink);transform:rotate(-45deg) translate(1px,-1px)}
.consent input:focus{outline:none}
.consent input:focus-visible{outline:2px solid var(--ink);outline-offset:2px}
.consent .lnk{display:inline-block;min-height:24px}

/* 登录后外壳（首页占位、停用页） */
.site-head{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:0 12px;border-bottom:1px solid var(--hair);padding:6px 0}
.brand{font-family:var(--serif);font-weight:600;font-size:17px}
.menu{display:flex;flex-wrap:wrap;gap:0 14px}
.linkbtn{background:none;border:0;font:inherit;color:var(--ink);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;min-height:var(--tap);padding:0 2px;cursor:pointer}
.display{font-family:var(--serif);font-weight:600;font-size:40px;line-height:1.15;margin:8px 0 12px}
.empty{border-top:2px solid var(--ink);padding:20px 0;margin-top:12px}
.empty p{font-family:var(--serif);font-weight:600;font-size:17px;line-height:1.35}
.site-foot{border-top:1px solid var(--ink);margin-top:28px;padding-top:6px;display:flex;flex-wrap:wrap;gap:0 18px}

/* 说明页 */
.legal h2{font-family:var(--serif);font-weight:600;font-size:17px;line-height:1.35;margin:24px 0 8px;border-top:1px solid var(--hair);padding-top:16px}
.legal p,.legal li{margin-bottom:8px}
.legal ul{padding-left:1.2em}
.legal blockquote{border-left:2px solid var(--ink);padding-left:12px;margin:0 0 16px}
.ver{color:var(--muted)}
.head.tight{padding-top:8px}

/* 首页（故事 10）：页头更新时间、今日榜横滑、全部藏品（品牌分区 + 筛选 + 双列瀑布流）、底部面板 */
html{scroll-padding-top:128px}
.brand-line{display:flex;flex-wrap:wrap;align-items:center;gap:0 10px;min-height:var(--tap)}
.upd{font-size:12px;color:var(--muted)}
.muted{color:var(--muted)}
.ph{display:block;position:relative;overflow:hidden;background:var(--inset)}
.ph img{display:block;width:100%;height:auto;background:var(--inset)}
.ph-none{display:flex;align-items:center;justify-content:center;min-height:120px;color:var(--muted);font-size:12px;background:var(--inset)}
.ph.broken img{visibility:hidden}
.ph.broken::after{content:"图片未能加载";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:var(--muted);font-size:12px}

.rank{list-style:none;display:flex;gap:8px;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x proximity;margin:0 calc(-1 * var(--m));padding:2px var(--m) 16px;scroll-padding:0 var(--m)}
.rk{flex:0 0 38%;min-width:120px;max-width:170px;scroll-snap-align:start}
.rk-a{display:block;color:var(--ink);text-decoration:none}
.rk-a:focus{outline:none}
.rk-a:focus-visible{outline:2px solid var(--ink);outline-offset:-4px}
.ph.sq{aspect-ratio:1/1}
.ph.sq img{height:100%;object-fit:cover}
.ph.sq .ph-none{height:100%}
.rk-n{position:absolute;left:0;top:0;background:var(--inv);color:var(--inv-ink);font-size:12px;line-height:1.4;padding:1px 6px}
.rt{display:block;font-family:var(--serif);font-weight:600;font-size:14px;line-height:1.35;margin-top:6px}
.pr{display:block;font-size:14px;margin-top:2px}

.pool{padding-top:28px}
.section{font-family:var(--serif);font-weight:600;font-size:26px;line-height:1.25;margin:4px 0 14px}
.cnt{font-size:15px;font-weight:400;color:var(--muted)}
.sticky{position:sticky;top:0;z-index:5;background:var(--surface)}
.tabs{display:flex;border-top:2px solid var(--ink);border-bottom:1px solid var(--hair)}
.tc{flex:1 1 0;min-width:0;display:flex;flex-direction:column;min-height:var(--tap);padding:8px 10px 9px;border-right:1px solid var(--hair);color:var(--ink);text-decoration:none}
.tc:last-child{border-right:0}
.tc .idx{font-size:12px;color:var(--muted)}
.tc b{font-family:var(--serif);font-weight:600;font-size:17px;line-height:1.3}
.tc .n{font-size:14px}
.tc.on{background:var(--inv);color:var(--inv-ink)}
.tc.on .idx{color:var(--inv-muted)}
.tc:focus{outline:none}
.tc:focus-visible{outline:2px solid var(--ink);outline-offset:-4px}
.tc.on:focus-visible{outline-color:var(--inv-ink)}
.facets{display:flex;flex-wrap:wrap;gap:0 20px;border-bottom:1px solid var(--hair)}
.fbtn{display:inline-flex;align-items:center;gap:4px;min-height:var(--tap);color:var(--ink);text-decoration:none;font-size:14px}
.fsum{padding:8px 0 14px;font-size:14px}

.wf{list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:12px;align-items:start}
.wf.js{display:block;position:relative}
.wf.js>.card{position:absolute;top:0;left:0}
.card{border-bottom:1px solid var(--hair);padding-bottom:12px}
.card-a{display:block;color:var(--ink);text-decoration:none}
.card-a:focus{outline:none}
.card-a:focus-visible{outline:2px solid var(--ink);outline-offset:2px}
.code{display:block;font-size:12px;letter-spacing:.08em;color:var(--muted);margin-bottom:4px}
.ct{font-family:var(--serif);font-weight:600;font-size:14px;line-height:1.35;margin-top:8px}
.more{min-height:var(--tap);padding:12px 0;text-align:center}
.more .im{text-align:left}

.empty-state{border-top:2px solid var(--ink);padding:20px 0}
.empty-state .zero{font-size:32px;line-height:1;font-weight:500}
.empty-state h3{font-family:var(--serif);font-weight:600;font-size:17px;line-height:1.35;margin:8px 0 4px}
.empty-state .btn{margin-top:14px;text-decoration:none}

.sheet{display:none;position:fixed;left:0;right:0;bottom:0;max-width:480px;margin:0 auto;max-height:80vh;overflow-y:auto;background:var(--surface);border-top:2px solid var(--ink);z-index:30;padding:0 var(--m) 18px}
.sheet:target,.sheet.open{display:block}
.sheet-head{display:flex;justify-content:space-between;align-items:center;min-height:var(--tap)}
.sheet-head h2{font-family:var(--serif);font-weight:600;font-size:17px;line-height:1.35}
.opt{display:flex;align-items:center;gap:8px;min-height:var(--tap);border-top:1px solid var(--hair);color:var(--ink);text-decoration:none}
.opt::before{content:"";display:inline-block;width:10px;height:10px;flex:none}
.opt.on{font-weight:600}
.opt.on::before{background:var(--ink)}
.opt:focus{outline:none}
.opt:focus-visible{outline:2px solid var(--ink);outline-offset:-4px}

/* 币种切换（currency-switch）：两格 € / ¥，1px 墨色框，选中格反色，等宽字；不跑脚本时是两颗提交按钮 */
.cur{display:flex;align-items:center}
.cur-g{display:flex;border:1px solid var(--ink)}
.cur-o{min-width:var(--tap);min-height:var(--tap);border:0;border-radius:0;background:var(--surface);color:var(--ink);font-size:14px;cursor:pointer;-webkit-appearance:none;appearance:none}
.cur-o+.cur-o{border-left:1px solid var(--ink)}
.cur-o[aria-checked=true]{background:var(--inv);color:var(--inv-ink)}
.cur-o:focus{outline:none}
.cur-o:focus-visible{outline:2px solid var(--ink);outline-offset:-4px}
.cur-o[aria-checked=true]:focus-visible{outline-color:var(--inv-ink)}
.fxnote{font-size:14px;color:var(--muted);padding:6px 0 0}

/* 单件页（故事 12）：画廊、编号小节、预估费用、点评、复制栏、已售出处理、放大层 */
.obj{padding-top:12px}
.gal{position:relative;background:var(--inset)}
.gal-track{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;overscroll-behavior-x:contain;scrollbar-width:none;aspect-ratio:1/1}
.gal-track::-webkit-scrollbar{display:none}
.slide{flex:0 0 100%;scroll-snap-align:start;display:flex;align-items:center;justify-content:center;background:var(--inset)}
.slide img{display:block;width:100%;height:100%;object-fit:contain;-webkit-user-drag:none}
.gal-none{aspect-ratio:1/1}
.gbtn{position:absolute;top:50%;transform:translateY(-50%);min-width:var(--tap);min-height:var(--tap);padding:0 8px;background:var(--surface);border:1px solid var(--ink);border-radius:0;color:var(--ink);font:inherit;font-size:14px;cursor:pointer}
.gbtn.prev{left:0}
.gbtn.next{right:0}
.zm{position:absolute;left:0;bottom:0;min-height:var(--tap);padding:0 10px;background:var(--surface);border:0;color:var(--ink);font:inherit;font-size:14px;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;cursor:pointer}
.pg{position:absolute;right:0;bottom:0;min-height:var(--tap);display:flex;align-items:center;padding:0 10px;background:var(--surface);font-size:14px}
.gbtn:focus,.zm:focus{outline:none}
.gbtn:focus-visible,.zm:focus-visible{outline:2px solid var(--ink);outline-offset:-4px}
.thumbs{list-style:none;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px;margin:10px 0 0;padding:2px}
.tb{display:block;aspect-ratio:1/1;min-height:var(--tap);background:var(--inset);overflow:hidden}
.tb img{display:block;width:100%;height:100%;object-fit:cover}
.tb[aria-current=true]{outline:2px solid var(--ink);outline-offset:2px}
.tb:focus{outline:none}
.tb:focus-visible{outline:2px solid var(--ink);outline-offset:2px}
.obj .code{margin-top:16px}
.h1s{font-family:var(--serif);font-weight:600;font-size:30px;line-height:1.2;margin:2px 0 6px}
.price{display:flex;align-items:baseline;flex-wrap:wrap;gap:0 10px;margin:8px 0 20px}
.price .big{font-size:32px;font-weight:500;line-height:1.2}
.ns{border-top:1px solid var(--hair);padding:14px 0 18px}
.ns h2{font-family:var(--serif);font-weight:600;font-size:17px;line-height:1.35;margin-bottom:8px}
.ns h2 .ix{font-weight:400;font-size:12px;letter-spacing:.14em;color:var(--muted);margin-right:10px}
.said-t{white-space:pre-line}
.fee{display:flex;flex-wrap:wrap;align-items:baseline;gap:0 4px;margin-bottom:4px}
.fee-n{font-size:20px;font-weight:500}
.ask{font-family:var(--serif);font-weight:600;font-size:30px;line-height:1.2;margin-bottom:6px}
.note{margin-top:6px}
.cq{font-family:var(--serif);font-size:15.5px;line-height:1.75;border-left:2px solid var(--ink);padding-left:12px;white-space:pre-line}
.sig{margin-top:6px}
.copy-bar{border-top:2px solid var(--ink);padding-top:14px;margin-top:4px}
.cb-row{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.cb-code{display:flex;flex-direction:column}
.cb-n{font-size:20px;font-weight:500;line-height:1.2}
.cb-btn{width:auto;padding:0 20px}
.cb-help{margin-top:10px}
.copy-bar .im{margin:12px 0 0}
.copy-bar .field{margin:12px 0 0}
.more-all{margin:16px 0 0}
.plate{position:absolute;left:0;top:0;z-index:2;background:var(--inv);color:var(--inv-ink);font-size:12px;line-height:1.5;padding:2px 8px}
.plate.inline{position:static;display:inline-block;margin-bottom:8px}
.sold .slide img,.sold .tb img{filter:grayscale(1);opacity:.45}
.sold .h1s,.sold .price,.sold .code{color:var(--muted)}
.gone{margin:0 0 8px}
a.btn{text-decoration:none}
.btn-sec{background:var(--surface);color:var(--ink);border:1px solid var(--ink)}

/* 放大层（zoom-layer）：整块底色、顶 2px 粗线；只用"关闭"或 Esc 关闭；touch-action:none 只在层内 */
.zl{position:fixed;inset:0;z-index:40;display:flex;flex-direction:column;background:var(--surface);border-top:2px solid var(--ink)}
.zl[hidden]{display:none!important}
.zl-top{display:flex;justify-content:space-between;align-items:center;padding:0 var(--m);font-size:14px}
.zl-stage{flex:1;position:relative;overflow:hidden;background:var(--inset);touch-action:none}
.zl-stage img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;transform-origin:50% 50%;-webkit-user-drag:none;user-select:none}
.zl-ctl{display:grid;grid-template-columns:repeat(auto-fit,minmax(0,1fr));gap:6px;padding:12px var(--m) 16px}
.zl-ctl .btn{padding:0 4px}
body.zl-open{overflow:hidden}

@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important;scroll-behavior:auto!important}}
.im.stale{margin:12px 0 20px}
