:root{--bg:#fff;--surface:#f7f7f5;--card:#fff;--ink:#1c1b19;--ink-2:#56534d;--muted:#8a867e;--line:#e8e5e0;--line-2:#f1efeb;--accent:#e0485a;--accent-ink:#c2354a;--accent-wash:#fdf1f2;--good:#0f7b57;--good-wash:#e8f5ef;--star:#f0a020;--shadow-sm:0 1px 2px #1c1b190d, 0 1px 3px #1c1b190a;--shadow-md:0 4px 12px -2px #1c1b1914, 0 12px 28px -8px #1c1b191f;--shadow-lg:0 8px 24px -4px #1c1b191a, 0 24px 56px -12px #1c1b192e;--r-sm:10px;--r:14px;--r-lg:20px;--r-xl:28px;--r-pill:999px;--maxw:1280px;--ease:cubic-bezier(.22, .61, .36, 1);--ease-out:cubic-bezier(.16, 1, .3, 1);--font:ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono:ui-monospace, "SF Mono", Menlo, monospace}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#131211;--surface:#191817;--card:#1e1d1b;--ink:#f5f3f0;--ink-2:#b8b3ab;--muted:#837e75;--line:#2b2926;--line-2:#232120;--accent:#ff6274;--accent-ink:#ff8290;--accent-wash:#2a1619;--good:#3fbc8d;--good-wash:#13291f;--shadow-sm:0 1px 2px #0006;--shadow-md:0 4px 12px -2px #00000080, 0 12px 28px -8px #0009;--shadow-lg:0 8px 24px -4px #0000008c, 0 24px 56px -12px #000000b3}}:root[data-theme=dark]{--bg:#131211;--surface:#191817;--card:#1e1d1b;--ink:#f5f3f0;--ink-2:#b8b3ab;--muted:#837e75;--line:#2b2926;--line-2:#232120;--accent:#ff6274;--accent-ink:#ff8290;--accent-wash:#2a1619;--good:#3fbc8d;--good-wash:#13291f;--shadow-sm:0 1px 2px #0006;--shadow-md:0 4px 12px -2px #00000080, 0 12px 28px -8px #0009;--shadow-lg:0 8px 24px -4px #0000008c, 0 24px 56px -12px #000000b3}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--ink);font-family:var(--font);-webkit-font-smoothing:antialiased;margin:0;line-height:1.5;overflow-x:hidden}h1,h2,h3{letter-spacing:-.022em;text-wrap:balance;margin:0;font-weight:640;line-height:1.12}h1{letter-spacing:-.032em;font-size:clamp(2.1rem,5.2vw,3.7rem)}h2{font-size:clamp(1.4rem,2.6vw,2rem)}p{margin:0}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}button,select,input{font:inherit;color:inherit}.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.wrap{max-width:var(--maxw);margin:0 auto;padding:0 24px}@media (max-width:640px){.wrap{padding:0 16px}}:focus-visible{outline:2.5px solid var(--accent);outline-offset:2px;border-radius:4px}.reveal{opacity:0;transform:translateY(14px)}.reveal.in{opacity:1;transition:opacity .55s var(--ease-out), transform .55s var(--ease-out);transition-delay:var(--d,0s);transform:none}@media (prefers-reduced-motion:reduce){.reveal,.reveal.in{opacity:1;transition:none;transform:none}*{transition-duration:.01ms!important;animation-duration:.01ms!important}}.hdr{z-index:50;background:color-mix(in srgb, var(--bg) 82%, transparent);-webkit-backdrop-filter:blur(18px)saturate(140%);border-bottom:1px solid var(--line-2);position:sticky;top:0}.hdr .wrap{justify-content:space-between;align-items:center;gap:16px;height:68px;display:flex}.brand{letter-spacing:-.03em;align-items:center;gap:9px;font-size:17px;font-weight:680;display:flex}.brand .mark{background:linear-gradient(140deg, var(--accent), #ff9a6b);border-radius:8px;flex:none;width:26px;height:26px}.hdr nav{align-items:center;gap:4px;display:flex}.hdr nav a{border-radius:var(--r-pill);color:var(--ink-2);transition:background .18s var(--ease), color .18s var(--ease);padding:8px 13px;font-size:14.5px;font-weight:520}.hdr nav a:hover{background:var(--surface);color:var(--ink)}@media (max-width:780px){.hdr .wrap{gap:10px}.hdr nav{-webkit-overflow-scrolling:touch;scrollbar-width:none;margin-right:-16px;padding-right:16px;overflow-x:auto}.hdr nav::-webkit-scrollbar{display:none}.hdr nav a{white-space:nowrap;padding:8px 10px;font-size:14px}.hdr .brand{flex:none}}.hchart{align-items:flex-end;gap:6px;margin-top:18px;padding-bottom:4px;display:flex;overflow-x:auto}.hchart .hcol{flex-direction:column;flex:1 1 0;align-items:center;gap:6px;min-width:44px;display:flex}.hchart .hbar{background:var(--surface);border-radius:6px 6px 0 0;align-items:flex-end;width:100%;height:132px;display:flex;position:relative;overflow:hidden}.hchart .hfill{background:var(--accent);width:100%;transition:height .2s var(--ease);border-radius:6px 6px 0 0}.hchart .hcol.best .hfill{background:var(--good)}.hchart .hval{font-variant-numeric:tabular-nums;font-size:12.5px;font-weight:600}.hchart .hlab{color:var(--muted);font-size:11.5px}.hchart .hsub{color:var(--muted);font-size:11px}.hero{padding:68px 0 40px;position:relative}.hero .eyebrow{letter-spacing:.06em;text-transform:uppercase;color:var(--accent-ink);background:var(--accent-wash);border-radius:var(--r-pill);align-items:center;gap:8px;margin-bottom:20px;padding:7px 13px;font-size:12.5px;font-weight:620;display:inline-flex}.hero .eyebrow .pulse{background:var(--accent);width:7px;height:7px;animation:pulse 2.4s var(--ease) infinite;border-radius:50%}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.45;transform:scale(.82)}}.hero .lede{color:var(--ink-2);max-width:58ch;margin-top:18px;font-size:clamp(1rem,1.9vw,1.2rem)}.hero h1 em{color:var(--accent);font-style:normal}.filters{z-index:40;background:color-mix(in srgb, var(--bg) 90%, transparent);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--line-2);margin-bottom:28px;padding:14px 0;position:sticky;top:68px}.mbar{align-items:center;gap:10px;display:flex}.mbar input{background:var(--card);border:1px solid var(--line);border-radius:var(--r);min-width:0;max-width:420px;transition:border-color .18s var(--ease), box-shadow .18s var(--ease);flex:1;padding:10px 14px;font-size:15px}.mbar input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-wash);outline:none}.mbar .fbtn{background:var(--card);border:1px solid var(--line);border-radius:var(--r);cursor:pointer;transition:border-color .18s var(--ease), background .18s var(--ease);flex:none;align-items:center;gap:8px;padding:10px 16px;font-size:14.5px;font-weight:600;display:inline-flex}.mbar .fbtn:hover{border-color:var(--muted)}.mbar .fbtn[aria-expanded=true]{border-color:var(--accent);color:var(--accent-ink);background:var(--accent-wash)}.mbar .fbtn .n{background:var(--accent);color:#fff;border-radius:var(--r-pill);place-items:center;min-width:20px;height:20px;font-size:11.5px;display:grid}.mbar .fbtn .chev{transition:transform .22s var(--ease)}.mbar .fbtn[aria-expanded=true] .chev{transform:rotate(180deg)}.filterrow{flex-wrap:wrap;align-items:center;gap:10px;display:none}.filterrow.open{border-top:1px solid var(--line-2);animation:sheet .26s var(--ease-out) both;margin-top:14px;padding-top:14px;display:flex}@keyframes sheet{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}.fld{flex-direction:column;gap:3px;display:flex}.fld label{letter-spacing:.05em;text-transform:uppercase;color:var(--muted);padding-left:2px;font-size:11px;font-weight:640}.fld select,.fld input{appearance:none;background:var(--card);border:1px solid var(--line);border-radius:var(--r);cursor:pointer;min-width:132px;transition:border-color .18s var(--ease), box-shadow .18s var(--ease);background-image:linear-gradient(45deg, transparent 50%, var(--muted) 50%), linear-gradient(135deg, var(--muted) 50%, transparent 50%);background-position:calc(100% - 17px),calc(100% - 12px);background-repeat:no-repeat;background-size:5px 5px,5px 5px;padding:9px 32px 9px 13px;font-size:14.5px;font-weight:520}.fld input{cursor:text;background-image:none;padding-right:13px}.fld select:hover,.fld input:hover{border-color:var(--muted)}.fld select:focus,.fld input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-wash);outline:none}.toggle{background:var(--surface);border-radius:var(--r-pill);border:1px solid var(--line);gap:2px;padding:3px;display:inline-flex}.toggle button{border-radius:var(--r-pill);cursor:pointer;color:var(--ink-2);transition:background .2s var(--ease), color .2s var(--ease), box-shadow .2s var(--ease);background:0 0;border:0;padding:7px 15px;font-size:13.5px;font-weight:600}.toggle button[aria-pressed=true]{background:var(--card);color:var(--ink);box-shadow:var(--shadow-sm)}.resultbar{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:16px;margin-bottom:18px;display:flex}.resultbar .count{color:var(--ink-2);font-size:15px}.resultbar .count b{color:var(--ink);font-weight:640}.linkbtn{color:var(--accent-ink);cursor:pointer;background:0 0;border:0;border-radius:6px;padding:4px 6px;font-size:14px;font-weight:600}.linkbtn:hover{background:var(--accent-wash)}.grid{grid-template-columns:repeat(auto-fill,minmax(268px,1fr));gap:26px 22px;display:grid}.card{flex-direction:column;gap:10px;display:flex}.card .shot{aspect-ratio:20/15;border-radius:var(--r-lg);background:var(--surface);box-shadow:var(--shadow-sm);position:relative;overflow:hidden}.card .shot img{object-fit:cover;width:100%;height:100%;transition:transform .62s var(--ease-out), opacity .4s var(--ease);opacity:0}.card .shot img.loaded{opacity:1}.card:hover .shot img{transform:scale(1.055)}.card .badge{background:color-mix(in srgb, var(--card) 92%, transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:var(--r-pill);box-shadow:var(--shadow-sm);color:var(--ink);padding:5px 10px;font-size:12px;font-weight:640;position:absolute;top:11px;left:11px}.card .badge.save{color:var(--good);background:color-mix(in srgb, var(--good-wash) 94%, transparent)}.card h3{font-size:15.5px;font-weight:620;line-height:1.28}.card .place{color:var(--muted);font-size:13.5px}.card .rating{color:var(--ink-2);align-items:center;gap:5px;font-size:13.5px;display:flex}.card .rating svg{fill:var(--star);flex:none}.card .price{color:var(--ink-2);margin-top:2px;font-size:14px}.card .price b{color:var(--ink);letter-spacing:-.02em;font-size:17px;font-weight:680}.card .price .when{color:var(--muted)}.cardmeta{flex-wrap:wrap;gap:4px 6px;margin-top:5px;display:flex}.cardmeta span{color:var(--ink-2);background:var(--surface);border-radius:var(--r-pill);padding:3px 8px;font-size:11.5px;font-weight:560}@media (max-width:760px){.cardmeta span{padding:2px 7px;font-size:11px}}.detail-hero{grid-template-columns:1.6fr 1fr;gap:12px;margin:22px 0 30px;display:grid}.detail-hero .main{border-radius:var(--r-xl);aspect-ratio:16/10;background:var(--surface);overflow:hidden}.detail-hero .main img{object-fit:cover;width:100%;height:100%}.detail-hero aside{flex-direction:column;gap:12px;display:flex}@media (max-width:860px){.detail-hero{grid-template-columns:1fr}}.panel{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);padding:20px 22px}.panel h3{margin-bottom:3px;font-size:15px}.panel .sub{color:var(--muted);margin-bottom:15px;font-size:12.5px}.bookbox{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-md);padding:22px;position:sticky;top:88px}.bookbox .big{letter-spacing:-.03em;font-size:30px;font-weight:700}.bookbox .big span{color:var(--muted);letter-spacing:0;font-size:14px;font-weight:520}.btn{background:linear-gradient(135deg, var(--accent), #ff7a5c);color:#fff;border-radius:var(--r);cursor:pointer;width:100%;transition:transform .18s var(--ease), box-shadow .25s var(--ease), filter .18s var(--ease);box-shadow:0 4px 14px -4px color-mix(in srgb, var(--accent) 60%, transparent);border:0;justify-content:center;align-items:center;gap:8px;padding:14px 20px;font-size:15.5px;font-weight:640;display:flex}.btn:hover{filter:saturate(1.08);box-shadow:0 8px 22px -6px color-mix(in srgb, var(--accent) 70%, transparent);transform:translateY(-1.5px)}.btn:active{transform:translateY(0)}.kv{border-bottom:1px solid var(--line-2);justify-content:space-between;gap:12px;padding:9px 0;font-size:14px;display:flex}.kv:last-child{border-bottom:0}.kv .k{color:var(--muted)}.kv .v{text-align:right;font-weight:580}.pill{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-pill);color:var(--ink-2);align-items:center;gap:6px;padding:5px 12px;font-size:13px;font-weight:560;display:inline-flex}.aprow{align-items:center;gap:11px;padding:6px 0;font-size:13.5px;display:flex}.aprow .an{width:116px;color:var(--ink-2);white-space:nowrap;text-overflow:ellipsis;flex:none;overflow:hidden}.aprow .at{background:var(--surface);border-radius:var(--r-pill);flex:1;height:9px;overflow:hidden}.aprow .af{border-radius:var(--r-pill);background:var(--accent);opacity:.8;transform-origin:0;height:100%;animation:growx .7s var(--ease-out) both}@keyframes growx{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.aprow.best .af{background:var(--good);opacity:1}.aprow .av{text-align:right;flex:none;width:62px;font-weight:640}.aprow.best .av{color:var(--good)}.gallery{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:8px;display:grid}.gimg{aspect-ratio:4/3;border-radius:var(--r);background:var(--surface);display:block;overflow:hidden}.gimg img{object-fit:cover;width:100%;height:100%;transition:transform .5s var(--ease-out)}.gimg:hover img{transform:scale(1.06)}@media (max-width:760px){.gallery{grid-template-columns:repeat(3,1fr);gap:6px}}.note{background:var(--surface);border:1px dashed var(--line);border-radius:var(--r-lg);color:var(--ink-2);padding:18px 22px;font-size:14px}.note b{color:var(--ink)}.empty{text-align:center;color:var(--muted);padding:70px 20px}.foot{border-top:1px solid var(--line-2);color:var(--muted);margin-top:72px;padding:34px 0 56px;font-size:13px}.foot a{color:var(--ink-2);text-underline-offset:2px;text-decoration:underline}.skel{background:linear-gradient(90deg, var(--surface) 25%, var(--line-2) 37%, var(--surface) 63%);background-size:400% 100%;animation:1.5s infinite shimmer}@keyframes shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}.lastmin{scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;gap:12px;padding:4px 0 12px;display:flex;overflow-x:auto}.lastmin::-webkit-scrollbar{height:0}.lm{scroll-snap-align:start;background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);width:216px;box-shadow:var(--shadow-sm);transition:transform .2s var(--ease), box-shadow .2s var(--ease);flex:none;overflow:hidden}.lm:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.lm .im{aspect-ratio:16/10;background:var(--surface)}.lm .im img{object-fit:cover;width:100%;height:100%}.lm .bd{padding:11px 13px 13px}.lm .when{letter-spacing:.04em;text-transform:uppercase;color:var(--accent-ink);font-size:11.5px;font-weight:650}.lm h4{margin:3px 0 2px;font-size:14px;font-weight:620;line-height:1.25}.lm .pl{color:var(--muted);font-size:12.5px}.lm .pr{margin-top:7px;font-size:15.5px;font-weight:700}.lm .pr span{color:var(--muted);font-size:12px;font-weight:500}.lmchips{flex-wrap:wrap;gap:6px;display:flex}@media (max-width:760px){.lmchips{-webkit-overflow-scrolling:touch;flex-wrap:nowrap;padding-bottom:2px;overflow-x:auto}.lmchips::-webkit-scrollbar{height:0}.lmchips .pill{flex:none}}.idx{border-radius:var(--r-pill);align-items:center;gap:6px;padding:5px 11px;font-size:12.5px;font-weight:620;display:inline-flex}.idx.low{background:var(--good-wash);color:var(--good)}.idx.high{background:var(--accent-wash);color:var(--accent-ink)}.idx.mid{background:var(--surface);color:var(--ink-2)}@media (max-width:760px){.hero{padding:26px 0 18px}.hero h1{font-size:clamp(1.75rem,8.4vw,2.3rem)}.hero .lede{-webkit-line-clamp:3;-webkit-box-orient:vertical;margin-top:12px;font-size:15px;display:-webkit-box;overflow:hidden}.hero .pillrow{padding-bottom:4px;overflow-x:auto;flex-wrap:nowrap!important;margin-top:16px!important}.hero .pillrow .pill{flex:none}.hero .pillrow::-webkit-scrollbar{height:0}.filters{margin-bottom:18px;padding:10px 0}.mbar input{max-width:none}.filterrow.open{grid-template-columns:1fr 1fr;display:grid}.filterrow.open .fld{min-width:0}.filterrow.open .fld select,.filterrow.open .fld input{width:100%;min-width:0}.filterrow.open .toggle{width:100%}.filterrow.open .toggle button{flex:1}.grid{grid-template-columns:1fr 1fr;gap:20px 12px}.card h3{font-size:14px}.card .place,.card .rating{font-size:12.5px}.card .price b{font-size:15.5px}.card .badge{padding:4px 8px;font-size:11px}.detail-hero{gap:10px;margin:14px 0 20px}.bookbox{position:static}.panel{padding:16px}.aprow .an{width:88px;font-size:12.5px}.resultbar .count{font-size:14px}}@media (max-width:380px){.grid{grid-template-columns:1fr}}.card .shot img.static{opacity:1}.crumbs{color:var(--muted);flex-wrap:wrap;align-items:center;gap:7px;font-size:13px;display:flex}.crumbs a{color:var(--ink-2)}.crumbs a:hover{color:var(--accent-ink)}.destgrid{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px;display:grid}.destcard{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);transition:border-color .2s var(--ease), transform .2s var(--ease), box-shadow .25s var(--ease);flex-direction:column;gap:3px;padding:14px 16px;display:flex}.destcard:hover{border-color:var(--accent);box-shadow:var(--shadow-md);transform:translateY(-2px)}.destcard b{color:var(--ink);letter-spacing:-.01em;font-size:15px;font-weight:620}.destmeta{color:var(--muted);font-size:12.5px}.footlinks{flex-wrap:wrap;gap:7px 14px;margin-bottom:20px;font-size:13px;display:flex}.footlinks a{color:var(--muted)}.footlinks a:hover{color:var(--accent-ink)}.aprow .an a{color:var(--ink-2)}.aprow .an a:hover{color:var(--accent-ink)}@media (max-width:760px){.destgrid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:9px}.destcard{padding:11px 13px}.destcard b{font-size:14px}}.cookiebar{z-index:60;background:var(--card);border-top:1px solid var(--line);box-shadow:var(--shadow-lg);flex-wrap:wrap;justify-content:center;align-items:center;gap:12px;padding:14px 20px;display:flex;position:fixed;inset:auto 0 0}.cookiebar p{max-width:62ch;color:var(--ink-2);margin:0;font-size:14px}.cookiebar-actions{flex-shrink:0;gap:8px;display:flex}.cookiebar button{border:1px solid var(--line);border-radius:var(--r-pill);background:var(--surface);color:var(--ink);cursor:pointer;padding:8px 18px}.cookiebar button:hover{background:var(--line-2)}.cookiebar button.primary{background:var(--accent);border-color:var(--accent);color:#fff}.cookiebar button.primary:hover{background:var(--accent-ink);border-color:var(--accent-ink)}
