@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-vietnamese-wght-normal-CnvboYUG.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-latin-ext-wght-normal-Ca2vKHc0.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-latin-wght-normal-ukD16Tqj.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Figtree Variable;font-style:normal;font-display:swap;font-weight:300 900;src:url(/assets/figtree-latin-ext-wght-normal-DCwSJGxG.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Figtree Variable;font-style:normal;font-display:swap;font-weight:300 900;src:url(/assets/figtree-latin-wght-normal-D_ZTVpCC.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg:#fbf8f2;--bg-deep:#f4efe6;--surface:#fff;--ink:#241a20;--ink-2:#5b4d55;--muted:#7a6b73;--line:#ebe3d8;--line-strong:#d9cfc2;--accent:#6e2f4f;--accent-ink:#fff;--accent-hover:#5a2541;--accent-soft:#f4e7ed;--accent-soft-2:#ead3de;--gold:#b0874a;--ok:#3f6b4a;--ok-soft:#e7f0e8;--warn:#8a5a14;--warn-soft:#fbf0dc;--danger:#a3302a;--danger-soft:#fbe9e7;--radius:18px;--radius-sm:12px;--shadow:0 1px 2px #241a200a, 0 6px 20px #241a200f;--shadow-lg:0 10px 40px #241a2029;--font-brand:"Fraunces Variable", "Iowan Old Style", "Georgia", serif;--font-sans:"Figtree Variable", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-display:var(--font-sans);--nav-h:68px;--safe-b:env(safe-area-inset-bottom,0px);--safe-t:env(safe-area-inset-top,0px);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--ink);font-family:var(--font-sans);font-feature-settings:"ss01", "cv01";-webkit-font-smoothing:antialiased;margin:0;font-size:15px;line-height:1.5}img{max-width:100%;display:block}button,input,select,textarea{font:inherit;color:inherit}a{color:var(--accent)}h1,h2,h3{font-family:var(--font-display);letter-spacing:-.022em;margin:0;font-weight:720;line-height:1.15}h1{font-size:clamp(1.55rem,4.6vw,2.15rem);font-weight:760}h2{font-size:1.2rem}h3{font-size:1rem}p{margin:0}:focus-visible{outline:3px solid var(--accent);outline-offset:2px;border-radius:6px}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{background:var(--accent);color:#fff;z-index:100;border-radius:10px;padding:10px 14px;position:absolute;top:-60px;left:12px}.skip-link:focus{top:calc(12px + var(--safe-t))}.app{min-height:100dvh}.main{max-width:1180px;padding:calc(16px + var(--safe-t)) 18px calc(var(--nav-h) + var(--safe-b) + 32px);margin:0 auto}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:12px;margin:8px 0 18px;display:flex}.page-head .sub{color:var(--muted);margin-top:4px}.stack{gap:14px;min-width:0;display:grid}.stack>*,.detail>*{min-width:0}.row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.spacer{flex:1}.muted{color:var(--muted)}.small{font-size:.875rem}.tiny{font-size:.78rem}.demo-banner{background:var(--warn-soft);color:var(--warn);text-align:center;padding:calc(8px + var(--safe-t)) 12px 8px;border-bottom:1px solid #f0dcb4;font-size:.85rem}.bottom-nav{z-index:30;-webkit-backdrop-filter:saturate(1.4)blur(14px);backdrop-filter:saturate(1.4)blur(14px);border-top:1px solid var(--line);padding:6px 8px calc(6px + var(--safe-b));background:#fbf8f2f0;grid-template-columns:repeat(5,1fr);align-items:center;display:grid;position:fixed;bottom:0;left:0;right:0}.nav-link{color:var(--muted);border-radius:12px;flex-direction:column;align-items:center;gap:2px;padding:6px 2px;font-size:.72rem;font-weight:500;text-decoration:none;display:flex}.nav-link svg{width:24px;height:24px}.nav-link.active{color:var(--accent)}.nav-add{cursor:pointer;background:var(--accent);width:56px;height:56px;color:var(--accent-ink);border:0;border-radius:50%;justify-self:center;place-items:center;transition:transform .18s,background .18s;display:grid;transform:translateY(-10px);box-shadow:0 6px 18px #6e2f4f59}.nav-add:hover{background:var(--accent-hover)}.nav-add:active{transform:translateY(-10px)scale(.95)}.nav-add svg{width:28px;height:28px}.bottom-nav .brand{font-family:var(--font-brand);color:var(--accent);margin-right:18px;font-size:1.5rem;font-weight:600;text-decoration:none;display:none}.nav-add .label{display:none}@media (width>=900px){.bottom-nav{border-top:0;border-bottom:1px solid var(--line);padding:calc(10px + var(--safe-t)) 28px 10px;align-items:center;gap:6px;display:flex;top:0;bottom:auto}.bottom-nav .brand{display:block}.nav-link{flex-direction:row;gap:8px;padding:8px 14px;font-size:.95rem}.nav-link svg{width:20px;height:20px}.nav-add{border-radius:999px;order:10;gap:6px;width:auto;height:44px;margin-left:auto;padding:0 18px;font-weight:600;display:flex;transform:none}.nav-add:active{transform:scale(.97)}.nav-add .label{display:inline}.main{padding-top:calc(92px + var(--safe-t));padding-bottom:48px}}.btn{border:1px solid var(--line-strong);background:var(--surface);min-height:44px;color:var(--ink);cursor:pointer;border-radius:999px;justify-content:center;align-items:center;gap:8px;padding:0 18px;font-weight:550;text-decoration:none;transition:background .15s,border-color .15s,transform .1s;display:inline-flex}.btn:hover{border-color:var(--ink-2)}.btn:active{transform:scale(.98)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn svg{width:18px;height:18px}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.btn-primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.btn-soft{background:var(--accent-soft);color:var(--accent);border-color:#0000}.btn-soft:hover{background:var(--accent-soft-2);border-color:#0000}.btn-ghost{background:0 0;border-color:#0000}.btn-ghost:hover{background:var(--bg-deep);border-color:#0000}.btn-danger{background:var(--danger);border-color:var(--danger);color:#fff}.btn-danger-ghost{color:var(--danger);background:0 0;border-color:#0000}.btn-danger-ghost:hover{background:var(--danger-soft);border-color:#0000}.btn-sm{min-height:36px;padding:0 13px;font-size:.9rem}.btn-block{width:100%}.icon-btn{border:1px solid var(--line);background:var(--surface);cursor:pointer;width:44px;height:44px;color:var(--ink);border-radius:50%;place-items:center;display:inline-grid}.icon-btn svg{width:20px;height:20px}label.field{color:var(--ink-2);gap:6px;font-size:.9rem;font-weight:550;display:grid}.input,.select,.textarea{border-radius:var(--radius-sm);border:1px solid var(--line-strong);background:var(--surface);width:100%;min-height:46px;color:var(--ink);padding:11px 14px;font-size:1rem;font-weight:400}.textarea{resize:vertical;min-height:96px;line-height:1.5}.input:focus,.select:focus,.textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft-2);outline:none}.hint{color:var(--muted);font-size:.82rem;font-weight:400}.error-text{color:var(--danger);font-size:.9rem}.search-bar{background:var(--surface);border:1px solid var(--line-strong);box-shadow:var(--shadow);border-radius:999px;align-items:center;gap:10px;min-height:54px;padding:4px 6px 4px 18px;display:flex}.search-bar:focus-within{border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-soft-2), var(--shadow)}.search-bar svg{width:20px;height:20px;color:var(--muted);flex:none}.search-bar input{background:0 0;border:0;outline:none;flex:1;min-width:0;padding:10px 0;font-size:1.05rem}.search-bar input::placeholder{color:#9b8d94}.chips{scrollbar-width:none;gap:8px;padding:2px 2px 6px;display:flex;overflow-x:auto}.chips::-webkit-scrollbar{display:none}.chip{border:1px solid var(--line-strong);background:var(--surface);cursor:pointer;white-space:nowrap;min-height:36px;color:var(--ink-2);border-radius:999px;flex:none;align-items:center;gap:6px;padding:0 14px;font-size:.9rem;display:inline-flex}.chip[aria-pressed=true],.chip.on{background:var(--ink);color:var(--bg);border-color:var(--ink)}.chip .x{opacity:.7}.recognized{background:var(--accent-soft);color:var(--accent);border-radius:999px;align-items:center;gap:6px;padding:4px 12px;font-size:.85rem;display:inline-flex}.grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}@media (width>=640px){.grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}}@media (width>=1000px){.grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:22px}}.card{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);color:inherit;flex-direction:column;text-decoration:none;transition:transform .2s,box-shadow .2s;animation:.35s both rise;display:flex;position:relative;overflow:hidden}.card:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px)}.card .media{aspect-ratio:4/5;background:var(--bg-deep);overflow:hidden}.card .media img{object-fit:cover;width:100%;height:100%}.card .body{gap:4px;padding:11px 13px 13px;display:grid}.card .title{font-family:var(--font-display);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:1rem;font-weight:520;line-height:1.25;display:-webkit-box;overflow:hidden}.card .title.untitled{color:var(--muted);font-style:italic}.card .meta{color:var(--muted);align-items:center;gap:6px;min-width:0;font-size:.78rem;display:flex}.card .meta .src{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.card .price{color:var(--ink);font-size:.9rem;font-weight:600}.card .pill{position:absolute;top:10px;left:10px}.card .select-box{color:#fff;background:#241a2040;border:2px solid #fff;border-radius:50%;place-items:center;width:28px;height:28px;display:grid;position:absolute;top:10px;right:10px}.card.selected{outline:3px solid var(--accent);outline-offset:0}.card.selected .select-box{background:var(--accent)}.card .match{color:var(--accent);font-size:.75rem}.list{gap:10px;display:grid}.list .card{flex-direction:row;align-items:center}.list .card .media{aspect-ratio:auto;border-radius:12px;flex:none;width:84px;height:84px;margin:8px}.list .card .body{flex:1;padding:8px 12px 8px 4px}.pill{color:var(--ink-2);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#ffffffeb;border-radius:999px;align-items:center;gap:5px;padding:3px 10px;font-size:.74rem;font-weight:600;display:inline-flex}.pill.accent{background:var(--accent-soft);color:var(--accent)}.pill.ok{background:var(--ok-soft);color:var(--ok)}.pill.warn{background:var(--warn-soft);color:var(--warn)}.pill.danger{background:var(--danger-soft);color:var(--danger)}.placeholder{text-align:center;width:100%;height:100%;font-family:var(--font-display);color:#fffffff2;place-items:center;padding:16px;font-size:2.6rem;display:grid}.placeholder span{font-size:.82rem;font-family:var(--font-sans);letter-spacing:.08em;text-transform:uppercase;opacity:.85;margin-top:6px;display:block}.panel{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px}.panel.flat{box-shadow:none;border:1px solid var(--line)}.section-title{font-family:var(--font-sans);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:4px 0 8px;font-size:.78rem;font-weight:600}.empty{text-align:center;justify-items:center;gap:12px;padding:48px 20px;display:grid}.empty .art{background:var(--accent-soft);width:96px;height:96px;color:var(--accent);border-radius:50%;place-items:center;display:grid}.empty .art svg{width:44px;height:44px}.empty p{color:var(--ink-2);max-width:36ch}.notice{border-radius:var(--radius-sm);background:var(--bg-deep);color:var(--ink-2);align-items:flex-start;gap:10px;padding:12px 14px;font-size:.92rem;display:flex}.notice svg{flex:none;width:20px;height:20px;margin-top:1px}.notice.info{background:var(--accent-soft);color:var(--accent)}.notice.warn{background:var(--warn-soft);color:var(--warn)}.notice.ok{background:var(--ok-soft);color:var(--ok)}.notice.danger{background:var(--danger-soft);color:var(--danger)}.backdrop{z-index:50;background:#241a2061;animation:.2s both fade;position:fixed;inset:0}.sheet{z-index:51;background:var(--bg);max-height:92dvh;padding:10px 20px calc(24px + var(--safe-b));box-shadow:var(--shadow-lg);border-radius:24px 24px 0 0;animation:.28s cubic-bezier(.2,.8,.2,1) both slide-up;position:fixed;bottom:0;left:0;right:0;overflow-y:auto}.sheet .grab{background:var(--line-strong);border-radius:3px;width:40px;height:5px;margin:0 auto 14px}.sheet-head{justify-content:space-between;align-items:center;gap:10px;margin-bottom:14px;display:flex}@media (width>=700px){.sheet{border-radius:24px;width:min(560px,92vw);padding-bottom:24px;animation:.22s both pop;inset:50% auto auto 50%;transform:translate(-50%,-50%)}.sheet .grab{display:none}}.add-options{gap:10px;display:grid}.add-option{border-radius:var(--radius);border:1px solid var(--line);background:var(--surface);cursor:pointer;text-align:left;align-items:center;gap:14px;width:100%;padding:14px 16px;display:flex}.add-option:hover{border-color:var(--accent)}.add-option .ic{background:var(--accent-soft);width:44px;height:44px;color:var(--accent);border-radius:14px;flex:none;place-items:center;display:grid}.add-option .ic svg{width:22px;height:22px}.add-option strong{font-weight:600;display:block}.add-option span{color:var(--muted);font-size:.88rem}.toast-zone{left:50%;bottom:calc(var(--nav-h) + var(--safe-b) + 18px);z-index:60;gap:8px;width:min(92vw,440px);display:grid;position:fixed;transform:translate(-50%)}@media (width>=900px){.toast-zone{bottom:24px}}.toast{background:var(--ink);color:var(--bg);box-shadow:var(--shadow-lg);border-radius:14px;align-items:center;gap:12px;padding:12px 16px;font-size:.95rem;animation:.25s both rise;display:flex}.toast.error{background:var(--danger);color:#fff}.toast button{color:inherit;cursor:pointer;background:0 0;border:0;padding:4px;font-weight:700;text-decoration:underline}.detail{gap:22px;display:grid}@media (width>=900px){.detail{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start}.detail .gallery{position:sticky;top:100px}}.gallery{gap:10px;display:grid}.gallery .main-img{border-radius:var(--radius);background:var(--bg-deep);aspect-ratio:4/5;box-shadow:var(--shadow);overflow:hidden}.gallery .main-img img{object-fit:contain;background:var(--bg-deep);width:100%;height:100%}@media (width<=899px){.gallery .main-img{aspect-ratio:auto;height:min(56dvh,110vw)}}.gallery.no-image .main-img{aspect-ratio:auto;height:150px}.gallery.no-image .placeholder{font-size:2rem}div.field{color:var(--ink-2);gap:6px;font-size:.9rem;font-weight:550;display:grid}.thumbs{gap:8px;display:flex;overflow-x:auto}.thumbs button{cursor:pointer;background:var(--bg-deep);border:2px solid #0000;border-radius:12px;flex:none;width:64px;height:64px;padding:0;overflow:hidden}.thumbs button[aria-current=true]{border-color:var(--accent)}.thumbs img{object-fit:cover;width:100%;height:100%}.kv{gap:14px;display:grid}.kv .k{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);align-items:center;gap:8px;font-size:.78rem;font-weight:600;display:flex}.kv .v{white-space:pre-wrap;word-break:break-word;margin-top:2px}.prov{text-transform:none;letter-spacing:0;border-radius:999px;padding:1px 8px;font-size:.68rem;font-weight:600}.prov.extracted{color:#2f5376;background:#e6eef6}.prov.suggested{background:var(--warn-soft);color:var(--warn)}.prov.demo{background:var(--bg-deep);color:var(--muted)}.prov.user{display:none}.suggestion{border:1px dashed var(--line-strong);border-radius:var(--radius-sm);background:#fffdf8;gap:8px;padding:10px 12px;display:grid}.tag{background:var(--bg-deep);color:var(--ink-2);border-radius:999px;align-items:center;gap:4px;padding:4px 11px;font-size:.85rem;display:inline-flex}.tag.suggested{border:1px dashed var(--line-strong);cursor:pointer;background:0 0}.tag.suggested:hover{border-color:var(--accent);color:var(--accent)}.swatch{border:1px solid #0000001f;border-radius:50%;width:18px;height:18px;display:inline-block}details.more{border-top:1px solid var(--line);padding-top:12px}details.more summary{cursor:pointer;color:var(--ink-2);align-items:center;gap:8px;min-height:44px;font-weight:600;list-style:none;display:flex}details.more summary::-webkit-details-marker{display:none}details.more[open] summary .chev{transform:rotate(90deg)}.chev{transition:transform .2s;display:inline-block}.status-select{flex-wrap:wrap;gap:8px;display:flex}.analysis{align-items:center;gap:10px;font-size:.9rem;display:flex}.col-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}@media (width>=700px){.col-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}}@media (width>=1000px){.col-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}.col-card{color:inherit;gap:8px;text-decoration:none;animation:.35s both rise;display:grid}.col-cover{aspect-ratio:1;border-radius:var(--radius);background:var(--bg-deep);box-shadow:var(--shadow);grid-template-rows:1fr 1fr;grid-template-columns:1fr 1fr;gap:2px;transition:transform .2s;display:grid;overflow:hidden}.col-card:hover .col-cover{transform:translateY(-2px)}.col-cover.single{grid-template-rows:1fr;grid-template-columns:1fr}.col-cover img{object-fit:cover;width:100%;height:100%}.col-card h3{font-size:1.02rem}.import-list{gap:10px;display:grid}.import-row{background:var(--surface);border-radius:var(--radius-sm);box-shadow:var(--shadow);grid-template-columns:56px 1fr auto;align-items:center;gap:12px;padding:8px;display:grid}.import-row img{object-fit:cover;border-radius:10px;width:56px;height:56px}.progress{background:var(--bg-deep);border-radius:3px;height:6px;margin-top:6px;overflow:hidden}.progress>div{background:var(--accent);height:100%;transition:width .2s}.compare{gap:14px;display:grid}.compare-row{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);padding:14px}.compare-cells{grid-template-columns:repeat(var(--n), minmax(0, 1fr));gap:10px;display:grid}@media (width<=560px){.compare-cells.n3,.compare-cells.n4{grid-template-columns:repeat(2,minmax(0,1fr))}}.compare-cell{word-break:break-word;font-size:.92rem}.compare-cell .who{color:var(--accent);margin-bottom:2px;font-size:.72rem;font-weight:700;display:block}.compare-img{aspect-ratio:4/5;background:var(--bg-deep);border-radius:12px;overflow:hidden}.compare-img img{object-fit:cover;width:100%;height:100%}.na{color:var(--muted);font-style:italic}.selection-bar{left:12px;right:12px;bottom:calc(var(--nav-h) + var(--safe-b) + 12px);z-index:40;background:var(--ink);color:var(--bg);box-shadow:var(--shadow-lg);border-radius:18px;flex-wrap:wrap;align-items:center;gap:8px;padding:10px 12px;animation:.2s both rise;display:flex;position:fixed}.selection-bar .btn{color:var(--bg);background:0 0;border-color:#ffffff40;min-height:38px;padding:0 12px;font-size:.88rem}@media (width>=900px){.selection-bar{max-width:900px;bottom:20px;left:50%;right:auto;transform:translate(-50%)}}.welcome{min-height:100dvh;padding:24px 18px calc(24px + var(--safe-b));place-items:center;display:grid}.welcome-card{gap:22px;width:min(440px,100%);display:grid}.welcome .logo{font-family:var(--font-brand);color:var(--accent);letter-spacing:-.02em;font-size:3rem;font-weight:600}.welcome .promise{font-family:var(--font-display);letter-spacing:-.02em;color:var(--ink);font-size:1.3rem;font-weight:700;line-height:1.3}.mosaic{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.mosaic div{aspect-ratio:3/4;border-radius:12px}.tabs{background:var(--bg-deep);border-radius:999px;padding:4px;display:flex}.tabs button{cursor:pointer;color:var(--muted);background:0 0;border:0;border-radius:999px;flex:1;padding:10px;font-weight:600}.tabs button[aria-selected=true]{background:var(--surface);color:var(--ink);box-shadow:var(--shadow)}.spinner{border:2.5px solid var(--accent-soft-2);border-top-color:var(--accent);border-radius:50%;flex:none;width:20px;height:20px;animation:.8s linear infinite spin}.skeleton{background:linear-gradient(90deg, var(--bg-deep), #faf6ef, var(--bg-deep));border-radius:var(--radius);background-size:200% 100%;animation:1.4s infinite shimmer}@keyframes rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes fade{0%{opacity:0}to{opacity:1}}@keyframes slide-up{0%{transform:translateY(100%)}to{transform:none}}@keyframes pop{0%{opacity:0;transform:translate(-50%,-48%)scale(.98)}to{opacity:1;transform:translate(-50%,-50%)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes shimmer{to{background-position:-200% 0}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.public-head{text-align:center;gap:8px;margin:12px 0 26px;display:grid}.public-head .by{color:var(--muted)}.public .main{padding-bottom:48px}.reserved-overlay{background:#fbf8f299;place-items:center;display:grid;position:absolute;inset:0}.check{cursor:pointer;align-items:flex-start;gap:10px;line-height:1.4;display:flex}.check input{width:20px;height:20px;accent-color:var(--accent);flex:none;margin:1px 0 0}.map{border-radius:var(--radius);width:100%;box-shadow:var(--shadow);background:var(--bg-deep);z-index:0;overflow:hidden}.map.picking{cursor:crosshair;outline:3px solid var(--accent);outline-offset:2px}.map-pin{background:var(--accent);border:3px solid #fff;border-radius:50% 50% 50% 0;width:26px;height:26px;display:block;transform:rotate(-45deg);box-shadow:0 2px 8px #241a2059}.map-pin.suggested{background:var(--gold)}.map-pin.active{background:var(--ink)}.leaflet-popup-content{font-family:var(--font-sans);font-size:.92rem;line-height:1.4}.leaflet-popup-content strong{font-family:var(--font-display);font-size:1rem}.map-open{background:var(--accent);color:#fff;cursor:pointer;border:0;border-radius:999px;margin-top:8px;padding:6px 12px;font-weight:600}.leaflet-container a{color:var(--accent)}code{overflow-wrap:anywhere;background:#241a200f;border-radius:6px;padding:1px 5px;font-size:.88em}.notice>div,.notice>span{overflow-wrap:anywhere;min-width:0}.masonry{--pin-gap:14px;column-gap:var(--pin-gap);grid-template-columns:repeat(auto-fill,minmax(150px,1fr));grid-auto-rows:4px;display:grid}@media (width>=640px){.masonry{--pin-gap:18px;grid-template-columns:repeat(auto-fill,minmax(190px,1fr))}}@media (width>=1000px){.masonry{--pin-gap:20px;grid-template-columns:repeat(auto-fill,minmax(210px,1fr))}}.masonry-cell>*{margin-bottom:var(--pin-gap)}.pin{color:inherit;animation:.35s both rise;display:block;position:relative}.pin.selectable{text-align:left;cursor:pointer;width:100%;font:inherit;background:0 0;border:0;padding:0}.pin-media-wrap{position:relative}.pin-link{border-radius:18px;display:block}.pin-media{background:var(--bg-deep);border-radius:18px;position:relative;overflow:hidden}.pin-media img{object-fit:cover;object-position:top;width:100%;height:100%;transition:transform .35s,filter .2s}.pin-media .placeholder{position:absolute;inset:0}.pin-badge{position:absolute;top:10px;left:10px}.pin.selected .pin-media{outline:3px solid var(--accent);outline-offset:2px}.pin .select-box{color:#fff;background:#241a2040;border:2px solid #fff;border-radius:50%;place-items:center;width:28px;height:28px;display:grid;position:absolute;top:10px;right:10px}.pin.selected .select-box{background:var(--accent)}.pin-overlay{pointer-events:none;opacity:0;background:linear-gradient(#241a2047,#0000 35% 65%,#241a2052);border-radius:18px;transition:opacity .18s;position:absolute;inset:0}.pin-overlay>*{pointer-events:auto}.pin-save{background:var(--accent);color:#fff;cursor:pointer;border:0;border-radius:999px;padding:10px 16px;font-size:.88rem;font-weight:700;position:absolute;top:10px;right:10px}.pin-save:hover{background:var(--accent-hover)}.pin-source{max-width:calc(100% - 20px);color:var(--ink);background:#fffffff0;border-radius:999px;align-items:center;gap:6px;padding:6px 12px;font-size:.8rem;font-weight:650;text-decoration:none;display:inline-flex;position:absolute;bottom:10px;left:10px}.pin-source span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}@media (hover:hover){.pin:hover .pin-overlay,.pin:focus-within .pin-overlay{opacity:1}.pin:hover .pin-media img{filter:brightness(.96)}.pin-more{opacity:.55}.pin:hover .pin-more{opacity:1}}@media (hover:none){.pin-overlay{display:none}}.pin:focus-within .pin-overlay{opacity:1}.pin-body{padding:8px 30px 0 4px;position:relative}.pin-body-link{color:inherit;text-decoration:none;display:block}.pin-title{letter-spacing:-.01em;-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:.9rem;font-weight:650;line-height:1.3;display:-webkit-box;overflow:hidden}.pin-title.untitled{color:var(--muted);font-style:italic;font-weight:500}.pin-meta{color:var(--muted);align-items:center;gap:5px;min-width:0;margin-top:2px;font-size:.76rem;display:flex}.pin-meta .src{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.pin-meta .price{color:var(--ink);font-weight:700}.pin-match{color:var(--accent);margin-top:2px;font-size:.74rem}.pin-more{width:32px;height:32px;color:var(--ink-2);cursor:pointer;background:0 0;border:0;border-radius:50%;place-items:center;display:grid;position:absolute;top:4px;right:-4px}.pin-more:hover{background:var(--bg-deep)}.list .pin{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);align-items:center;gap:12px;padding:8px;display:flex}.list .pin-media-wrap{flex:none;width:84px}.list .pin-media{border-radius:12px;aspect-ratio:1!important}.list .pin-link{border-radius:12px}.list .pin-overlay{display:none}.list .pin-body{flex:1;padding-top:0}.boards{scrollbar-width:none;gap:12px;padding:2px 2px 6px;display:flex;overflow-x:auto}.boards::-webkit-scrollbar{display:none}.board-chip{background:var(--surface);box-shadow:var(--shadow);color:var(--ink);border-radius:16px;flex:none;align-items:center;gap:10px;padding:6px 14px 6px 6px;font-size:.88rem;font-weight:650;text-decoration:none;display:flex}.board-chip .thumb{background:var(--bg-deep);border-radius:11px;flex:none;width:40px;height:40px;overflow:hidden}.board-chip .thumb img{object-fit:cover;width:100%;height:100%}
