@font-face{font-family:Fraunces;font-style:normal;font-weight:600;font-display:swap;src:url(../fonts/fraunces-vietnamese.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Fraunces;font-style:normal;font-weight:600;font-display:swap;src:url(../fonts/fraunces-latin-ext.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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;font-style:normal;font-weight:600;font-display:swap;src:url(../fonts/fraunces-latin.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Fraunces;font-style:italic;font-weight:600;font-display:swap;src:url(../fonts/fraunces-italic-vietnamese.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Fraunces;font-style:italic;font-weight:600;font-display:swap;src:url(../fonts/fraunces-italic-latin-ext.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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;font-style:italic;font-weight:600;font-display:swap;src:url(../fonts/fraunces-italic-latin.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Fraunces;src:local("Fraunces Regular Italic"),local("Fraunces Italic"),url(../_fonts/ev87GAhzYOSqfvXc9scW-ZQJf7sUSUyGMr0CTeNoHF4-OPxwrsi67j0FWChFcXKyN9HLyQ7mKYh_4Vn2yBtMd_0.woff2) format(woff2);font-display:swap;unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;font-weight:400;font-style:italic}@font-face{font-family:"Fraunces Fallback: Times New Roman";src:local("Times New Roman");size-adjust:115.4462%;ascent-override:84.7148%;descent-override:22.0882%;line-gap-override:0%}@font-face{font-family:"Fraunces Fallback: Georgia";src:local("Georgia");size-adjust:105.2039%;ascent-override:92.9623%;descent-override:24.2386%;line-gap-override:0%}@font-face{font-family:"Fraunces Fallback: Noto Serif";src:local("Noto Serif");size-adjust:97.5052%;ascent-override:100.3023%;descent-override:26.1525%;line-gap-override:0%}@font-face{font-family:Fraunces;src:local("Fraunces Regular Italic"),local("Fraunces Italic"),url(../_fonts/HhYBt2tJo2k_2FsC1MSJ02On6MHSDmuCPvumUmOm5zc-yFegZxCeG5mKQV3aepxTxPDsb0t6St8NI3MRVbeEMG4.woff2) format(woff2);font-display:swap;unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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-weight:400;font-style:italic}@font-face{font-family:Fraunces;src:local("Fraunces Regular Italic"),local("Fraunces Italic"),url(../_fonts/_Q-se7FdIUrHjDmNsUL0V1o4K296p_VatHM-Pv4kyIc-poDrWqUb4dHlPgVcAp1htO9EsFEw_Puw06dBCjRLmMs.woff2) format(woff2);font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;font-weight:400;font-style:italic}@font-face{font-family:Fraunces;src:local("Fraunces SemiBold Italic"),url(../_fonts/ev87GAhzYOSqfvXc9scW-ZQJf7sUSUyGMr0CTeNoHF4-OPxwrsi67j0FWChFcXKyN9HLyQ7mKYh_4Vn2yBtMd_0.woff2) format(woff2);font-display:swap;unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;font-weight:600;font-style:italic}@font-face{font-family:Fraunces;src:local("Fraunces SemiBold Italic"),url(../_fonts/HhYBt2tJo2k_2FsC1MSJ02On6MHSDmuCPvumUmOm5zc-yFegZxCeG5mKQV3aepxTxPDsb0t6St8NI3MRVbeEMG4.woff2) format(woff2);font-display:swap;unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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-weight:600;font-style:italic}@font-face{font-family:Fraunces;src:local("Fraunces SemiBold Italic"),url(../_fonts/_Q-se7FdIUrHjDmNsUL0V1o4K296p_VatHM-Pv4kyIc-poDrWqUb4dHlPgVcAp1htO9EsFEw_Puw06dBCjRLmMs.woff2) format(woff2);font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;font-weight:600;font-style:italic}@font-face{font-family:Fraunces;src:local("Fraunces Bold Italic"),url(../_fonts/ev87GAhzYOSqfvXc9scW-ZQJf7sUSUyGMr0CTeNoHF4-OPxwrsi67j0FWChFcXKyN9HLyQ7mKYh_4Vn2yBtMd_0.woff2) format(woff2);font-display:swap;unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;font-weight:700;font-style:italic}@font-face{font-family:Fraunces;src:local("Fraunces Bold Italic"),url(../_fonts/HhYBt2tJo2k_2FsC1MSJ02On6MHSDmuCPvumUmOm5zc-yFegZxCeG5mKQV3aepxTxPDsb0t6St8NI3MRVbeEMG4.woff2) format(woff2);font-display:swap;unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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-weight:700;font-style:italic}@font-face{font-family:Fraunces;src:local("Fraunces Bold Italic"),url(../_fonts/_Q-se7FdIUrHjDmNsUL0V1o4K296p_VatHM-Pv4kyIc-poDrWqUb4dHlPgVcAp1htO9EsFEw_Puw06dBCjRLmMs.woff2) format(woff2);font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;font-weight:700;font-style:italic}@font-face{font-family:Fraunces;src:local("Fraunces ExtraBold Italic"),url(../_fonts/ev87GAhzYOSqfvXc9scW-ZQJf7sUSUyGMr0CTeNoHF4-OPxwrsi67j0FWChFcXKyN9HLyQ7mKYh_4Vn2yBtMd_0.woff2) format(woff2);font-display:swap;unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;font-weight:800;font-style:italic}@font-face{font-family:Fraunces;src:local("Fraunces ExtraBold Italic"),url(../_fonts/HhYBt2tJo2k_2FsC1MSJ02On6MHSDmuCPvumUmOm5zc-yFegZxCeG5mKQV3aepxTxPDsb0t6St8NI3MRVbeEMG4.woff2) format(woff2);font-display:swap;unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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-weight:800;font-style:italic}@font-face{font-family:Fraunces;src:local("Fraunces ExtraBold Italic"),url(../_fonts/_Q-se7FdIUrHjDmNsUL0V1o4K296p_VatHM-Pv4kyIc-poDrWqUb4dHlPgVcAp1htO9EsFEw_Puw06dBCjRLmMs.woff2) format(woff2);font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;font-weight:800;font-style:italic}@font-face{font-family:Fraunces;src:local("Fraunces Regular"),local("Fraunces"),url(../_fonts/XBS0oYP4cksqAElU3IMxAgwpzDzoJIEwfkOV-ozb58o-GfiQeHg5K0elW9dt1_DFU0HCdwAzUNFfFmYXBrpZ7S0.woff2) format(woff2);font-display:swap;unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;font-weight:400;font-style:normal}@font-face{font-family:Fraunces;src:local("Fraunces Regular"),local("Fraunces"),url(../_fonts/hlBhAijgZdVxBjR74rbt7K71I0wV1mB3jH1hVBCHlKk-FRNF6Y0H_i7oP64VN4wUyVdHpXDaloc-0nVuax5BR6w.woff2) format(woff2);font-display:swap;unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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-weight:400;font-style:normal}@font-face{font-family:Fraunces;src:local("Fraunces Regular"),local("Fraunces"),url(../_fonts/pZrE-slef2USYSteHMofh38tG-0x5V8w3-m5O8o55BA-2lkoGCOmO7jeyF1uZ0eej8W_w9soLdR904X6bIAsF0k.woff2) format(woff2);font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;font-weight:400;font-style:normal}@font-face{font-family:Fraunces;src:local("Fraunces SemiBold"),url(../_fonts/XBS0oYP4cksqAElU3IMxAgwpzDzoJIEwfkOV-ozb58o-GfiQeHg5K0elW9dt1_DFU0HCdwAzUNFfFmYXBrpZ7S0.woff2) format(woff2);font-display:swap;unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;font-weight:600;font-style:normal}@font-face{font-family:Fraunces;src:local("Fraunces SemiBold"),url(../_fonts/hlBhAijgZdVxBjR74rbt7K71I0wV1mB3jH1hVBCHlKk-FRNF6Y0H_i7oP64VN4wUyVdHpXDaloc-0nVuax5BR6w.woff2) format(woff2);font-display:swap;unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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-weight:600;font-style:normal}@font-face{font-family:Fraunces;src:local("Fraunces SemiBold"),url(../_fonts/pZrE-slef2USYSteHMofh38tG-0x5V8w3-m5O8o55BA-2lkoGCOmO7jeyF1uZ0eej8W_w9soLdR904X6bIAsF0k.woff2) format(woff2);font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;font-weight:600;font-style:normal}@font-face{font-family:Fraunces;src:local("Fraunces Bold"),url(../_fonts/XBS0oYP4cksqAElU3IMxAgwpzDzoJIEwfkOV-ozb58o-GfiQeHg5K0elW9dt1_DFU0HCdwAzUNFfFmYXBrpZ7S0.woff2) format(woff2);font-display:swap;unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;font-weight:700;font-style:normal}@font-face{font-family:Fraunces;src:local("Fraunces Bold"),url(../_fonts/hlBhAijgZdVxBjR74rbt7K71I0wV1mB3jH1hVBCHlKk-FRNF6Y0H_i7oP64VN4wUyVdHpXDaloc-0nVuax5BR6w.woff2) format(woff2);font-display:swap;unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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-weight:700;font-style:normal}@font-face{font-family:Fraunces;src:local("Fraunces Bold"),url(../_fonts/pZrE-slef2USYSteHMofh38tG-0x5V8w3-m5O8o55BA-2lkoGCOmO7jeyF1uZ0eej8W_w9soLdR904X6bIAsF0k.woff2) format(woff2);font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;font-weight:700;font-style:normal}@font-face{font-family:Fraunces;src:local("Fraunces ExtraBold"),url(../_fonts/XBS0oYP4cksqAElU3IMxAgwpzDzoJIEwfkOV-ozb58o-GfiQeHg5K0elW9dt1_DFU0HCdwAzUNFfFmYXBrpZ7S0.woff2) format(woff2);font-display:swap;unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;font-weight:800;font-style:normal}@font-face{font-family:Fraunces;src:local("Fraunces ExtraBold"),url(../_fonts/hlBhAijgZdVxBjR74rbt7K71I0wV1mB3jH1hVBCHlKk-FRNF6Y0H_i7oP64VN4wUyVdHpXDaloc-0nVuax5BR6w.woff2) format(woff2);font-display:swap;unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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-weight:800;font-style:normal}@font-face{font-family:Fraunces;src:local("Fraunces ExtraBold"),url(../_fonts/pZrE-slef2USYSteHMofh38tG-0x5V8w3-m5O8o55BA-2lkoGCOmO7jeyF1uZ0eej8W_w9soLdR904X6bIAsF0k.woff2) format(woff2);font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;font-weight:800;font-style:normal}:root{color-scheme:light;--clay-50:#f7e9e3;--clay-100:#efd2c7;--clay-400:#c4694e;--clay-600:#9c3d22;--clay-700:#7a2e18;--clay-900:#4a1c0e;--amber-100:#faebd0;--amber-500:#e8a33d;--amber-600:#c4872a;--amber-700:#9a6d1e;--leaf-100:#e7f3ec;--leaf-600:#2e7d5b;--leaf-700:#1f5c41;--river-100:#dceaec;--river-600:#33646e;--sand-50:#faf4e8;--sand-100:#f5edd9;--sand-200:#f0ebe0;--sand-300:#e6e0d4;--sand-400:#d9d3c7;--ink-700:#586860;--ink-900:#2b2622;--white:#fff;--primary:var(--clay-600);--primary-dark:var(--clay-700);--primary-light:var(--clay-400);--accent:var(--amber-500);--accent-dark:var(--amber-600);--accent-text:#9a6612;--secondary:var(--leaf-600);--secondary-dark:var(--leaf-700);--tertiary:var(--river-600);--primary-fg:var(--primary);--primary-fg-strong:var(--primary-dark);--secondary-fg:var(--secondary);--tertiary-fg:var(--tertiary);--on-primary:#fff;--on-secondary:#fff;--on-accent:#2b2622;--on-tertiary:#fff;--on-error:#fff;--primary-container:color-mix(in oklch,var(--primary) 12%,var(--card));--on-primary-container:var(--clay-700);--secondary-container:color-mix(in oklch,var(--secondary) 12%,var(--card));--on-secondary-container:var(--leaf-700);--tertiary-container:color-mix(in oklch,var(--tertiary) 12%,var(--card));--on-tertiary-container:var(--river-600);--accent-container:color-mix(in oklch,var(--accent) 15%,var(--card));--on-accent-container:#6b4a0f;--error-container:color-mix(in oklch,var(--error) 10%,var(--card));--on-error-container:#8b1a10;--bg:var(--sand-50);--bg-warm:var(--sand-100);--bg-alt:var(--sand-200);--ink:var(--ink-900);--muted:var(--ink-700);--ink-secondary:var(--ink-700);--ink-tertiary:#6b6b70;--line:var(--sand-300);--border:var(--sand-400);--border-input:#8f8676;--card:var(--white);--surface-translucent:hsla(0,0%,100%,.94);--surface:var(--card);--text:var(--ink);--text-muted:var(--muted);--success:#2e7d32;--on-success:#fff;--success-bg:rgba(46,125,50,.08);--success-border:rgba(46,125,50,.25);--info:#1565c0;--on-info:#fff;--info-bg:rgba(21,101,192,.08);--info-border:rgba(21,101,192,.25);--warning:#e67e22;--on-warning:#fff;--warning-bg:rgba(230,126,34,.08);--warning-border:rgba(230,126,34,.25);--error:#d94f3d;--danger:var(--error);--error-bg:rgba(217,79,61,.08);--error-border:rgba(217,79,61,.25);--save-red:#dc2626;--save-red-bg:rgba(220,38,38,.08);--save-red-border:rgba(220,38,38,.25);--state-hover-opacity:.08;--state-focus-opacity:.12;--state-pressed-opacity:.1;--state-dragged-opacity:.16;--opacity-disabled-content:.38;--opacity-disabled-container:.12;--glass-subtle:rgba(var(--ink-rgb),.02);--glass-light:rgba(var(--ink-rgb),.04);--glass-border:rgba(var(--ink-rgb),.08);--glass-medium:rgba(var(--ink-rgb),.1);--brand-zalo:#0068ff;--brand-zalo-hover:#0052cc;--map-bg:var(--sand-300);--state-color:var(--ink);--state-hover:color-mix(in oklch,var(--state-color) 8%,transparent);--state-focus:color-mix(in oklch,var(--state-color) 12%,transparent);--state-pressed:color-mix(in oklch,var(--state-color) 10%,transparent);--state-dragged:color-mix(in oklch,var(--state-color) 16%,transparent);--state-selected:color-mix(in oklch,var(--state-color) 8%,transparent);--primary-rgb:156,61,34;--accent-rgb:232,163,61;--secondary-rgb:46,125,91;--river-rgb:91,108,196;--ink-rgb:43,38,34;--danger-rgb:217,79,61;--blue-rgb:52,120,246;--warning-rgb:230,126,34;--purple-rgb:175,82,222;--indigo-rgb:88,86,214;--teal-rgb:0,199,190;--red-rgb:255,69,58;--success-rgb:95,207,138;--white-rgb:255,255,255;--black-rgb:0,0,0;--gray-rgb:142,142,147;--focus-ring:0 0 0 4px rgba(var(--primary-rgb),.12);--focus-outline:var(--primary);--shadow:0 1px 3px rgba(0,0,0,.04),0 6px 20px rgba(0,0,0,.06);--overlay-dark:rgba(0,0,0,.72);--overlay-dark-heavy:rgba(0,0,0,.86);--overlay-light:hsla(0,0%,100%,.15);--overlay-subtle:hsla(0,0%,50%,.04);--text-on-dark:#fff;--text-on-dark-rgb:255,255,255;--shadow-text:0 1px 4px rgba(0,0,0,.4);--shadow-text-heavy:0 2px 12px rgba(0,0,0,.5),0 1px 3px rgba(0,0,0,.3);--opacity-disabled:.4;--tracking-caps:.06em;--primary-hover:color-mix(in oklab,var(--primary) 85%,#000);--primary-focus:color-mix(in oklab,var(--primary) 92%,transparent);--font-sans:-apple-system,BlinkMacSystemFont,"Inter","SF Pro Display",system-ui,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;--font-display:var(--font-sans);--font-editorial:"Fraunces", "Fraunces Fallback: Times New Roman", "Fraunces Fallback: Georgia", "Fraunces Fallback: Noto Serif","Iowan Old Style","Palatino Linotype",Palatino,"Book Antiqua",Georgia,"Noto Serif","Times New Roman",serif;--grain:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='a'%3E%3CfeTurbulence baseFrequency='.9' numOctaves='2' stitchTiles='stitch' type='fractalNoise'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23a)'/%3E%3C/svg%3E");--scrim-hero:linear-gradient(0deg,rgba(8,9,12,.84) 0%,rgba(8,9,12,.4) 46%,rgba(8,9,12,.1));--measure-read:68ch;--space-editorial:clamp(3rem,2rem + 5vw,6rem);--ease-cinematic:cubic-bezier(.22,1,.36,1);--dur-kenburns:20s;--text-2xs:.6875rem;--text-xs:clamp(.75rem,.7256rem + .122vw,.8125rem);--text-sm:clamp(.875rem,.8262rem + .2439vw,1rem);--text-base:clamp(1rem,.9512rem + .2439vw,1.125rem);--text-lg:clamp(1.125rem,1.0274rem + .4878vw,1.375rem);--text-xl:clamp(1.375rem,1.2286rem + .7317vw,1.75rem);--text-2xl:clamp(1.75rem,1.5549rem + .9756vw,2.25rem);--text-3xl:clamp(2.25rem,1.957rem + 1.4634vw,3rem);--text-4xl:clamp(2.75rem,2.3598rem + 1.9512vw,3.5rem);--text-5xl:clamp(3.25rem,2.7622rem + 2.439vw,4rem);--lh-2xs:1rem;--lh-xs:1rem;--lh-sm:1.25rem;--lh-base:1.5rem;--lh-lg:1.75rem;--lh-xl:2rem;--lh-2xl:2.5rem;--lh-3xl:3.25rem;--lh-4xl:4rem;--lh-5xl:4.5rem;--ls-2xs:.03em;--ls-xs:.02em;--ls-sm:.01em;--ls-base:0;--ls-lg:-.01em;--ls-xl:-.015em;--ls-2xl:-.02em;--ls-3xl:-.025em;--ls-4xl:-.03em;--ls-5xl:-.035em;--leading-tight:1.15;--leading-snug:1.3;--leading-normal:1.5;--leading-relaxed:1.65;--weight-normal:400;--weight-medium:500;--weight-semibold:600;--weight-bold:700;--weight-extrabold:800;--tracking-tight:-.022em;--tracking-tighter:-.032em;--space-0:0px;--space-05:2px;--space-1:4px;--space-1h:6px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--space-16:64px;--space-20:80px;--space-24:96px;--space-page-gutter:var(--space-5);--space-section:var(--space-16);--space-card-pad:var(--space-4);--space-card-gap:var(--space-5);--space-stack:var(--space-4);--space-stack-sm:var(--space-2);--space-inline:var(--space-2);--space-inline-sm:var(--space-1);--space-component:var(--space-3);--font-size-label:var(--text-2xs);--font-size-caption:var(--text-xs);--font-size-body-sm:var(--text-sm);--font-size-body:var(--text-base);--font-size-title-sm:var(--text-lg);--font-size-title:var(--text-xl);--font-size-headline:var(--text-2xl);--font-size-display:var(--text-3xl);--weight-label:500;--weight-caption:400;--weight-body:400;--weight-title-sm:500;--weight-title:600;--weight-headline:600;--weight-display:400;--surface-dim:var(--sand-200);--surface-bright:var(--white);--surface-container-lowest:var(--white);--surface-container-low:var(--sand-50);--surface-container:var(--sand-100);--surface-container-high:var(--sand-200);--surface-container-highest:var(--sand-300);--outline:var(--border);--outline-variant:var(--line);--outline-input:var(--border-input);--scrim:rgba(0,0,0,.72);--inverse-surface:var(--ink-900);--on-inverse-surface:var(--sand-50);--inverse-primary:var(--clay-400);--text-high:var(--ink);--text-medium:var(--muted);--text-low:var(--ink-tertiary);--text-lowest:rgba(0,0,0,.25);--ratio-hero:16/9;--ratio-card:5/3;--ratio-card-tall:4/3;--ratio-square:1/1;--ratio-wide:21/9;--card-elevated-bg:var(--card);--card-elevated-shadow:var(--shadow-sm);--card-elevated-shadow-hover:var(--shadow-md);--card-elevated-border:.5px solid transparent;--card-filled-bg:var(--bg-alt);--card-filled-shadow:none;--card-filled-shadow-hover:var(--shadow-sm);--card-filled-border:none;--card-outlined-bg:var(--card);--card-outlined-shadow:none;--card-outlined-shadow-hover:var(--shadow-xs);--card-outlined-border:1px solid var(--line);--divider-subtle:1px solid rgba(var(--ink-rgb),.06);--divider-default:1px solid var(--line);--divider-strong:1px solid rgba(var(--ink-rgb),.15);--elevation-flat:none;--elevation-card:var(--shadow-sm);--elevation-card-hover:var(--shadow-md);--elevation-sticky:var(--shadow-sm);--elevation-dropdown:var(--shadow-lg);--elevation-dialog:var(--shadow-xl);--elevation-tooltip:var(--shadow-md);--elevation-overlay:var(--shadow-xl);--elevation-highlight:inset 0 .5px 0 hsla(0,0%,100%,.55);--elevation-border:.5px solid rgba(var(--ink-rgb),.06);--touch-min:44px;--touch-min-wcag:24px;--touch-gap:8px;--icon-xs:.75rem;--icon-sm:1rem;--icon-md:1.25rem;--icon-base:1.5rem;--icon-lg:2rem;--icon-xl:2.5rem;--icon-2xl:3rem;--sk-base:var(--bg-warm);--sk-highlight:var(--line);--sk-gradient:linear-gradient(90deg,var(--sk-base) 25%,var(--sk-highlight) 50%,var(--sk-base) 75%);--sk-duration:1.5s;--sk-radius-line:var(--radius-sm);--radius-none:0px;--radius-xs:4px;--radius-sm:10px;--radius-md:14px;--radius-lg:20px;--radius:var(--radius-lg);--radius-xl:28px;--radius-full:9999px;--maxw:1140px;--duration-instant:.08s;--duration-fast:.15s;--duration-normal:.25s;--duration-moderate:.3s;--duration-slow:.4s;--duration-slower:.5s;--duration-entrance:.8s;--ease-out:cubic-bezier(.2,.8,.2,1);--ease-in-out:cubic-bezier(.4,0,.2,1);--ease-decelerate:cubic-bezier(0,0,0,1);--ease-spring:cubic-bezier(.34,1.3,.64,1);--ease-spring-gentle:cubic-bezier(.22,1.1,.36,1);--ease-bounce:cubic-bezier(.34,1.56,.64,1);--ease-out-expo:cubic-bezier(.16,1,.3,1);--ease-soft:cubic-bezier(.2,1,.4,1);--dur-short1:50ms;--dur-short2:.1s;--dur-short3:.15s;--dur-short4:.2s;--dur-medium1:.25s;--dur-medium2:.3s;--dur-medium3:.35s;--dur-medium4:.4s;--dur-long1:.45s;--dur-long2:.5s;--dur-long3:.55s;--dur-long4:.6s;--dur-xlong1:.7s;--dur-xlong2:.8s;--dur-xlong3:.9s;--dur-xlong4:1s;--ease-standard:cubic-bezier(.4,0,.2,1);--ease-standard-decel:cubic-bezier(0,0,.2,1);--ease-standard-accel:cubic-bezier(.4,0,1,1);--ease-emphasized:cubic-bezier(.2,0,0,1);--ease-emphasized-decel:cubic-bezier(.05,.7,.1,1);--ease-emphasized-accel:cubic-bezier(.3,0,.8,.15);--img-hover-scale:1.04;--transition-card:transform .35s var(--ease-spring-gentle),box-shadow .35s var(--ease-out-expo),border-color .3s var(--ease-out);--shadow-xs:0 1px 2px rgba(0,0,0,.03);--shadow-sm:0 1px 3px rgba(0,0,0,.04),0 2px 8px rgba(0,0,0,.03);--shadow-md:0 2px 8px rgba(0,0,0,.06),0 8px 24px rgba(0,0,0,.06);--shadow-lg:0 4px 12px rgba(0,0,0,.06),0 20px 48px rgba(0,0,0,.1);--shadow-xl:0 8px 24px rgba(0,0,0,.08),0 32px 64px rgba(0,0,0,.12);--glass:saturate(180%) blur(20px);--glass-heavy:saturate(200%) blur(40px);--glass-bg:hsla(0,0%,100%,.72);--glass-bg-heavy:hsla(0,0%,100%,.88);--bp-compact:599px;--bp-medium:600px;--bp-expanded:840px;--bp-large:1200px;--bp-xlarge:1600px;--surface-1:var(--card);--surface-2:var(--card);--surface-3:var(--card);--surface-4:var(--card);--surface-5:var(--card);--z-base:0;--z-rel:1;--z-dropdown:50;--z-floating:75;--z-sticky:100;--z-mobile-nav:101;--z-overlay:200;--z-modal:500;--z-toast:600;--z-modal-high:900;--z-lightbox:9999;--z-skip-link:10000;--badge-season-bg:#fbe7da;--badge-ocop-bg:var(--leaf-100);--badge-year-bg:#eef1ef;--nav-hover:#f0ece2;--green:var(--secondary);--green-dark:var(--secondary-dark);--orange:var(--accent);--cream:var(--bg);--cat-experience:linear-gradient(135deg,#2e7d5b,#4ba97d);--cat-product:linear-gradient(135deg,#e8a33d,#f0be6a);--cat-attraction:linear-gradient(135deg,#33646e,#4e8a96);--cat-craft:linear-gradient(135deg,#9c3d22,#c4694e);--cat-accommodation:linear-gradient(135deg,#5b6cc4,#8b9af0);--cat-dish:linear-gradient(135deg,#d94f3d,#f07a5f);--cat-itinerary:linear-gradient(135deg,#9c3d22,#e8a33d);--cat-org:linear-gradient(135deg,#6b7b73,#97a89c);--cat-place:linear-gradient(135deg,#33646e,#4e8a96);--cat-attraction-accent:#2a9d8f;--cat-dish-accent:#d94f3d;--cat-craft-accent:#b5651d;--cat-accommodation-accent:#5b6cc4}.dark{color-scheme:dark;--bg:#232328;--bg-warm:#2c2c32;--bg-alt:#3c3c42;--ink:#f5f5f7;--muted:#b0b0b6;--line:#4a4a50;--border:#5e5e64;--border-input:#8e8e94;--card:#2e2e34;--surface-translucent:rgba(32,32,36,.88);--shadow:0 1px 3px rgba(0,0,0,.3),0 8px 32px rgba(0,0,0,.35);--shadow-xs:0 1px 2px rgba(0,0,0,.15);--shadow-sm:0 1px 3px rgba(0,0,0,.2),0 2px 8px rgba(0,0,0,.18);--shadow-md:0 2px 8px rgba(0,0,0,.28),0 8px 24px rgba(0,0,0,.28);--shadow-lg:0 4px 12px rgba(0,0,0,.32),0 20px 48px rgba(0,0,0,.4);--shadow-xl:0 8px 24px rgba(0,0,0,.35),0 32px 64px rgba(0,0,0,.45);--glass-bg:rgba(35,35,40,.55);--glass-bg-heavy:rgba(35,35,40,.65);--ink-secondary:#98989d;--ink-tertiary:#8e8e93;--accent-text:#e0b366;--nav-hover:#3a3a40;--badge-season-bg:#3d2a1e;--badge-ocop-bg:#1e3328;--badge-year-bg:#2a2d2a;--primary-rgb:196,105,78;--accent-rgb:240,160,80;--secondary-rgb:75,169,125;--river-rgb:123,140,224;--ink-rgb:245,245,247;--danger-rgb:255,105,97;--blue-rgb:80,145,255;--warning-rgb:240,160,80;--purple-rgb:200,120,240;--indigo-rgb:120,118,240;--teal-rgb:50,220,210;--red-rgb:255,100,90;--success-rgb:130,225,170;--focus-ring:0 0 0 3px rgba(196,105,78,.25);--focus-outline:var(--primary-fg);--overlay-dark:rgba(0,0,0,.4);--overlay-dark-heavy:rgba(0,0,0,.55);--overlay-light:hsla(0,0%,100%,.14);--overlay-subtle:hsla(0,0%,100%,.08);--shadow-text:0 1px 4px rgba(0,0,0,.6);--shadow-text-heavy:0 2px 12px rgba(0,0,0,.7),0 1px 3px rgba(0,0,0,.5);--primary-hover:color-mix(in oklab,var(--primary-fg) 85%,#fff);--primary-focus:color-mix(in oklab,var(--primary-fg) 92%,transparent);--glass-subtle:hsla(0,0%,100%,.05);--glass-light:hsla(0,0%,100%,.08);--glass-border:hsla(0,0%,100%,.14);--glass-medium:hsla(0,0%,100%,.16);--warning:#f0a050;--warning-bg:rgba(240,160,80,.12);--error:#ff6961;--danger:var(--error);--error-bg:rgba(255,105,97,.12);--save-red:#ff6961;--save-red-bg:rgba(255,105,97,.12);--save-red-border:rgba(255,105,97,.3);--brand-zalo:#3d8bff;--brand-zalo-hover:#5da0ff;--map-bg:var(--bg-alt);--surface:var(--card);--text:var(--ink);--text-muted:var(--muted);--on-primary:#fff;--on-secondary:#fff;--on-accent:#2b2622;--on-tertiary:#fff;--on-error:#601410;--primary-container:color-mix(in oklch,var(--primary) 22%,var(--card));--on-primary-container:#e8b8a0;--secondary-container:color-mix(in oklch,var(--secondary) 22%,var(--card));--on-secondary-container:#8dd4b0;--tertiary-container:color-mix(in oklch,var(--tertiary) 22%,var(--card));--on-tertiary-container:#9eccd8;--accent-container:color-mix(in oklch,var(--accent) 22%,var(--card));--on-accent-container:#e8c88a;--error-container:color-mix(in oklch,var(--error) 18%,var(--card));--on-error-container:#ffb4ab;--success:#66bb6a;--on-success:#1b3a1c;--success-bg:rgba(102,187,106,.12);--success-border:rgba(102,187,106,.3);--info:#64b5f6;--on-info:#0d2b4a;--info-bg:rgba(100,181,246,.12);--info-border:rgba(100,181,246,.3);--on-warning:#4a2800;--warning-border:rgba(240,160,80,.3);--error-border:rgba(255,105,97,.3);--sk-base:var(--bg-warm);--sk-highlight:var(--line);--surface-1:color-mix(in oklch,#1c1c1e 96%,var(--primary) 4%);--surface-2:color-mix(in oklch,#2c2c2e 94%,var(--primary) 6%);--surface-3:color-mix(in oklch,#3a3a3c 92%,var(--primary) 8%);--surface-4:color-mix(in oklch,#48484a 90%,var(--primary) 10%);--surface-5:color-mix(in oklch,#545456 88%,var(--primary) 12%);--text-high:var(--ink);--text-medium:var(--muted);--text-low:var(--ink-tertiary);--text-lowest:hsla(0,0%,100%,.18);--outline:#48484a;--outline-variant:hsla(0,0%,100%,.08);--outline-input:#7e7e82;--elevation-highlight:inset 0 .5px 0 hsla(0,0%,100%,.06);--elevation-border:.5px solid hsla(0,0%,100%,.08);--inverse-surface:var(--sand-50);--on-inverse-surface:var(--ink-900);--inverse-primary:var(--clay-600);--scrim:rgba(0,0,0,.82);--surface-dim:#1a1a1e;--surface-bright:#48484e;--surface-container-lowest:#1a1a1e;--surface-container-low:#282830;--surface-container:#343438;--surface-container-high:#424248;--surface-container-highest:#505058;--divider-subtle:1px solid hsla(0,0%,100%,.06);--divider-default:1px solid var(--line);--divider-strong:1px solid hsla(0,0%,100%,.15);--primary-fg:#d98a6f;--primary-fg-strong:#e09980;--secondary-fg:#4ba97d;--tertiary-fg:#6ba6b2;--cat-attraction-accent:#3dbfb0;--cat-dish-accent:#ef6f5e;--cat-craft-accent:#d4863e;--cat-accommodation-accent:#7b8ce0}:root{--chip-height:36px;--chip-radius:18px;--chip-border:1px solid var(--border,var(--line));--chip-active-bg:var(--surface-inverse,var(--ink));--chip-active-text:var(--text-on-inverse,var(--bg));--chip-gap:var(--space-2);--gallery-gap:var(--space-1);--gallery-main-ratio:3/2;--gallery-thumb-ratio:1/1;--contact-widget-width:320px;--contact-cta-height:48px;--contact-cta-radius:var(--radius-full,999px);--detail-section-gap:var(--space-8);--detail-divider:1px solid var(--line);--season-accent:var(--secondary);--season-tint:rgba(185,219,198,.06);--season-hero-gradient:linear-gradient(135deg,rgba(46,125,91,.08),rgba(232,163,61,.04));--season-emoji:"🌿"}.season-tet{--season-accent:#c9362c;--season-tint:rgba(201,54,44,.05);--season-hero-gradient:linear-gradient(135deg,rgba(201,54,44,.08),rgba(232,163,61,.06));--season-emoji:"🎋"}.season-he{--season-accent:#2e7d5b;--season-tint:rgba(46,125,91,.06);--season-hero-gradient:linear-gradient(135deg,rgba(46,125,91,.08),rgba(232,163,61,.04));--season-emoji:"☀️"}.season-nuoc{--season-accent:#2a6b7a;--season-tint:rgba(42,107,122,.06);--season-hero-gradient:linear-gradient(135deg,rgba(42,107,122,.08),rgba(75,169,125,.04));--season-emoji:"🌊"}.season-thu{--season-accent:#b5651d;--season-tint:rgba(181,101,29,.05);--season-hero-gradient:linear-gradient(135deg,rgba(181,101,29,.06),rgba(232,163,61,.06));--season-emoji:"🍂"}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:72px}#main-content{overflow-x:clip}body,html{margin:0;padding:0}body{font-family:var(--font-sans);color:var(--ink);background:var(--bg);line-height:var(--leading-normal);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-feature-settings:"cv11" 1;text-rendering:optimizeLegibility;-webkit-tap-highlight-color:transparent;overflow-x:hidden;transition:background .35s var(--ease-out),color .35s var(--ease-out);accent-color:var(--primary)}h1,h2,h3{text-wrap:balance}.icon-inline{vertical-align:-2px;margin-inline-end:var(--space-1)}figcaption,li,p{text-wrap:pretty}img{content-visibility:auto}img[loading=lazy]{opacity:0;transition:opacity .4s var(--ease-out)}img[loading=lazy].loaded,img[loading=lazy][complete]{opacity:1}@supports (content-visibility:auto){img[loading=lazy]{opacity:1}}::-moz-selection{background:rgba(var(--primary-rgb),.18);color:inherit}::selection{background:rgba(var(--primary-rgb),.18);color:inherit}.dark ::-moz-selection{background:rgba(var(--primary-rgb),.3)}.dark ::selection{background:rgba(var(--primary-rgb),.3)}::-moz-placeholder{color:var(--muted);opacity:1;-moz-transition:opacity .2s var(--ease-out);transition:opacity .2s var(--ease-out)}::placeholder{color:var(--muted);opacity:1;transition:opacity .2s var(--ease-out)}:focus::-moz-placeholder{opacity:.5}:focus::placeholder{opacity:.5}.dark ::-moz-placeholder{color:#ffffff59}.dark ::placeholder{color:#ffffff59}input:-webkit-autofill,input:-webkit-autofill:focus,input:-webkit-autofill:hover,select:-webkit-autofill,textarea:-webkit-autofill{-webkit-text-fill-color:var(--ink);-webkit-box-shadow:0 0 0 1000px var(--bg-alt) inset;-webkit-transition:background-color 5000s var(--ease-out) 0s;transition:background-color 5000s var(--ease-out) 0s}.dark input:-webkit-autofill,.dark select:-webkit-autofill,.dark textarea:-webkit-autofill{-webkit-text-fill-color:var(--ink);-webkit-box-shadow:0 0 0 1000px var(--card) inset}@supports (scrollbar-color:auto){*{scrollbar-width:thin;scrollbar-color:rgba(var(--ink-rgb,128,128,128),.25) transparent}.dark *{scrollbar-color:var(--glass-medium) transparent}}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:rgba(var(--ink-rgb,128,128,128),.25);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:rgba(var(--ink-rgb,128,128,128),.4)}.dark ::-webkit-scrollbar-thumb{background:var(--glass-medium)}.dark ::-webkit-scrollbar-thumb:hover{background:#fff3}.page-enter-active{transition:opacity .35s var(--ease-out-expo),transform .45s var(--ease-spring-gentle)}.page-leave-active{transition:opacity .2s var(--ease-out),transform .2s var(--ease-out)}.page-enter-from{opacity:0;transform:translateY(12px) scale(.985)}.page-leave-to{opacity:0;transform:translateY(-4px) scale(.995)}@supports (view-transition-name:auto){::view-transition-new(root),::view-transition-old(root){animation-duration:.25s;animation-timing-function:var(--ease-out)}.topbar{view-transition-name:topbar}::view-transition-new(topbar),::view-transition-old(topbar){animation:none}@media(prefers-reduced-motion:reduce){::view-transition-new(root),::view-transition-old(root){animation-duration:.01s}}}:root{--header-h:70px}:where(a[href],button,input,select,textarea,summary,[tabindex]:not([tabindex="-1"]),:target,h2,h3){scroll-margin-top:calc(var(--header-h) + .5rem)}a{color:inherit;text-decoration:none;-webkit-text-decoration-skip:ink;text-decoration-skip-ink:auto}[role=button],a,button{touch-action:manipulation}[contenteditable],input,textarea{caret-color:var(--primary-fg)}time{font-variant-numeric:tabular-nums}h1{font-size:var(--text-3xl);line-height:var(--lh-3xl);letter-spacing:var(--ls-3xl)}h1,h2{font-weight:var(--weight-bold)}h2{font-size:var(--text-2xl);line-height:var(--lh-2xl);letter-spacing:var(--ls-2xl)}h3{font-size:var(--text-xl);line-height:var(--lh-xl);letter-spacing:var(--ls-xl)}h3,h4{font-weight:var(--weight-bold)}h4{font-size:var(--text-lg);line-height:var(--lh-lg);letter-spacing:var(--ls-lg)}.skip-link{position:fixed;top:-100px;left:var(--space-4);z-index:var(--z-skip-link);padding:var(--space-3) var(--space-5);background:var(--primary);color:var(--text-on-dark,#fff);border-radius:0 0 var(--radius-sm) var(--radius-sm);font-weight:700;font-size:.9rem;transition:top .3s}.skip-link:focus{top:0}#main-content:focus{outline:none}.noscript-banner{background:var(--warning,#f59e0b);color:var(--ink);text-align:center;padding:var(--space-3) var(--space-4);font-size:var(--text-sm);font-weight:var(--weight-semibold)}.topbar{position:sticky;top:0;z-index:var(--z-sticky);background:var(--glass-bg-heavy);backdrop-filter:var(--glass);-webkit-backdrop-filter:var(--glass);border-bottom:.5px solid rgba(var(--ink-rgb,0,0,0),.06);padding-inline:env(safe-area-inset-left) env(safe-area-inset-right);transition:background .3s var(--ease-out),border-color .3s var(--ease-out),box-shadow .4s var(--ease-out)}.topbar.scrolled{box-shadow:0 1px 12px rgba(var(--ink-rgb,0,0,0),.06),0 4px 24px rgba(var(--ink-rgb,0,0,0),.04);border-bottom-color:rgba(var(--ink-rgb,0,0,0),.1)}.dark .topbar{border-bottom-color:var(--glass-light)}.dark .topbar.scrolled{box-shadow:var(--shadow-lg);border-bottom-color:var(--glass-border)}.topbar-inner{max-width:var(--maxw);margin:0 auto;display:flex;align-items:center;gap:var(--space-5);padding:var(--space-3) var(--space-5);flex-wrap:nowrap}.brand{display:flex;align-items:baseline;gap:1px;min-height:44px;padding:var(--space-1) 0}.brand .logo{font-size:1.4rem;font-weight:800;letter-spacing:-.5px;color:var(--primary-fg-strong)}.brand .logo .dot{color:var(--accent)}.brand .tld{color:var(--ink-tertiary,var(--muted));font-size:.85rem;font-weight:700;opacity:.7}.main-nav{display:flex;gap:var(--space-1);flex:1;flex-wrap:nowrap}.main-nav a{padding:var(--space-2) var(--space-4);border-radius:var(--radius-full);font-weight:var(--weight-medium);font-size:var(--text-sm);color:var(--ink);transition:background .3s var(--ease-out),color .3s,transform .3s;min-height:44px;display:inline-flex;align-items:center;white-space:nowrap}.main-nav a:hover{background:var(--nav-hover)}.main-nav a:active{transform:scale(.95);transition-duration:.08s}.main-nav a:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.main-nav a.active{background:var(--primary);color:var(--text-on-dark,#fff);font-weight:var(--weight-semibold)}.main-nav a.active:focus-visible{outline-color:var(--accent)}.nav-group{position:relative;display:flex}.nav-group-btn{padding:var(--space-2) var(--space-4);border-radius:var(--radius-full);font-weight:600;font-size:.95rem;color:var(--ink);background:none;border:none;cursor:pointer;display:inline-flex;align-items:center;gap:var(--space-1);min-height:44px;transition:background .3s var(--ease-out);font-family:inherit;white-space:nowrap}.nav-group-btn:hover{background:var(--nav-hover)}.nav-group-btn:active{transform:scale(.95);transition-duration:.08s}.nav-group-btn:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.nav-group-btn.active{color:var(--primary-fg)}.caret{font-size:.65rem;transition:transform .3s var(--ease-out)}.nav-group.open .caret{transform:rotate(180deg)}.nav-panel{position:absolute;top:calc(100% + var(--space-2));left:0;min-width:220px;background:var(--glass-bg-heavy);backdrop-filter:var(--glass-heavy);-webkit-backdrop-filter:var(--glass-heavy);border:.5px solid rgba(var(--ink-rgb,0,0,0),.06);border-radius:var(--radius-md);box-shadow:var(--shadow-xl);padding:var(--space-1);display:none;flex-direction:column;gap:2px;z-index:var(--z-dropdown);transform-origin:top left}.dark .nav-panel{border-color:var(--overlay-light)}.nav-panel.open{display:flex;animation:panelAppear .2s var(--ease-spring-gentle)}@keyframes panelAppear{0%{opacity:0;transform:translateY(-4px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.nav-panel a{padding:var(--space-3) 14px;border-radius:var(--radius-sm);font-size:.92rem;color:var(--ink);white-space:nowrap;min-height:44px;display:flex;align-items:center;transition:background .3s,transform .3s}.nav-panel a:hover{background:var(--nav-hover)}.nav-panel a:active{transform:scale(.96);transition-duration:.08s}.nav-panel a.active{color:var(--primary-fg);font-weight:700}.nav-panel a:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.topbar-search{min-width:0;flex-shrink:1}.topbar-search input{padding:9px 14px;border:.5px solid var(--border-input);border-radius:var(--radius-full);min-width:120px;width:100%;min-height:44px;font-size:.9rem;background:var(--card);transition:border-color .25s var(--ease-out),box-shadow .3s var(--ease-out-expo),background .25s var(--ease-out),min-width .35s var(--ease-spring-gentle)}.topbar-search input:focus{outline:none;border-color:var(--primary-fg);box-shadow:var(--focus-ring),var(--shadow-sm);background:var(--bg);min-width:240px}.theme-toggle{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;padding:6px;border:none;background:transparent;border-radius:var(--radius-full);cursor:pointer;font-size:1.15rem;line-height:1;transition:background .3s var(--ease-out)}.theme-toggle:hover{background:var(--nav-hover)}.theme-toggle:active{transform:scale(.88);transition-duration:.08s}.theme-toggle:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.hero{background-color:var(--primary);background-image:linear-gradient(105deg,rgba(var(--ink-rgb),.86) 0,rgba(var(--ink-rgb),.52) 46%,rgba(var(--ink-rgb),.12)),url(../img/hero.webp);background-size:cover;background-position:50%;color:var(--text-on-dark,#fff);position:relative;overflow:hidden;min-height:320px}@media(max-width:640px){.hero{background-image:linear-gradient(105deg,rgba(var(--ink-rgb),.86) 0,rgba(var(--ink-rgb),.52) 46%,rgba(var(--ink-rgb),.12)),url(../img/hero-mobile.webp)}}.hero-inner{max-width:var(--maxw);margin:0 auto;padding:var(--space-16) var(--space-5) calc(var(--space-16) + var(--space-2));position:relative;z-index:1}.hero h1{margin:0;font-size:clamp(2rem,6vw,3.25rem);letter-spacing:var(--tracking-tighter);line-height:1.08;font-weight:var(--weight-extrabold)}.hero p{margin:var(--space-4) 0 0;font-size:1.15rem;opacity:.88;max-width:640px;line-height:var(--leading-relaxed)}.hero-search{display:flex;gap:var(--space-3);margin:var(--space-6) 0 0;max-width:560px}.hero-search input{flex:1;padding:var(--space-4) var(--space-5) var(--space-4) 44px;border:2px solid transparent;border-radius:var(--radius-md);font-size:1rem;transition:border-color .3s,box-shadow .3s}.hero-search input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px rgba(var(--accent-rgb),.4),inset 0 0 0 1.5px rgba(var(--accent-rgb),.2)}.hero-search button{padding:0 28px;border:none;border-radius:var(--radius-md);background:var(--accent);color:var(--ink);font-weight:700;font-size:1rem;cursor:pointer;transition:background .25s var(--ease-out),transform .25s var(--ease-spring),box-shadow .25s var(--ease-out);min-height:48px}.hero-search button:hover{will-change:transform;background:var(--accent-dark);color:var(--ink);box-shadow:0 4px 20px rgba(var(--accent-rgb),.45);transform:translateY(-1px)}.hero-search button:active{transform:scale(.94) translateY(0);transition-duration:.08s;box-shadow:0 2px 8px rgba(var(--accent-rgb),.3)}.hero-search button:focus-visible{outline:2px solid var(--text-on-dark,#fff);outline-offset:2px}.block{max-width:var(--maxw);margin:0 auto;padding:var(--space-16) var(--space-5) var(--space-4);position:relative}.block+.block:before{content:"";position:absolute;top:0;left:var(--space-8);right:var(--space-8);height:1px;background:linear-gradient(to right,transparent,var(--line) 20%,var(--line) 80%,transparent);opacity:.45}@media(max-width:520px){.block+.block:before{left:var(--space-4);right:var(--space-4)}}.section-head{justify-content:space-between;margin-bottom:var(--space-6);gap:var(--space-3)}.section-head,.section-head h2{display:flex;align-items:center}.section-head h2{margin:0;font-size:var(--text-2xl);font-weight:var(--weight-bold);letter-spacing:var(--tracking-tighter);line-height:var(--leading-tight);gap:var(--space-2)}.see-all{color:var(--primary-fg);font-weight:var(--weight-semibold);font-size:var(--text-sm);white-space:nowrap;transition:color .3s var(--ease-out),transform .35s var(--ease-spring-gentle);padding:var(--space-2) var(--space-3);min-height:44px;display:inline-flex;align-items:center;border-radius:var(--radius-sm)}.see-all:hover{color:var(--primary-fg-strong,var(--primary-fg));text-decoration:underline;text-underline-offset:3px;transform:translate(3px)}.see-all:active{transform:translate(1px);transition-duration:.08s}.see-all:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.regions{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-4)}@media(max-width:720px){.regions{grid-template-columns:1fr}}.region-tile{position:relative;min-height:220px;border-radius:var(--radius);overflow:hidden;background-color:var(--primary);background-size:cover;background-position:50%;display:flex;align-items:flex-end;color:var(--text-on-dark,#fff);box-shadow:var(--shadow-md);transition:transform .4s var(--ease-spring),box-shadow .35s var(--ease-out)}.region-tile:before{content:"";position:absolute;inset:0;background:linear-gradient(0deg,#000000bf 0,#0000004d 50%,#00000014);transition:background .35s var(--ease-out-expo)}.dark .region-tile:before{background:linear-gradient(0deg,#000000d9 0,#0006 50%,#00000026)}.region-tile:hover:before{background:linear-gradient(0deg,#000000c7 0,#0000004d 50%,#00000014)}.region-tile:hover{will-change:transform;transform:translateY(-6px);box-shadow:var(--shadow-xl)}.region-tile:active{transform:translateY(-1px) scale(.97);transition-duration:.1s}.region-tile:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.region-tile-in{position:relative;padding:var(--space-5);width:100%}.region-emoji{font-size:var(--icon-lg);line-height:1}.region-tile h3{margin:var(--space-1) 0;font-size:1.3rem;font-weight:800;letter-spacing:-.01em}.region-tile p{margin:0 0 var(--space-1);font-size:.85rem;opacity:.92;line-height:1.45}.page{max-width:var(--maxw);margin:0 auto;padding:var(--space-8) var(--space-5) var(--space-5)}.page-head{margin-bottom:var(--space-6)}.page-head h1{margin:0 0 var(--space-2);font-size:clamp(1.6rem,4.5vw,2.25rem);font-weight:var(--weight-bold);letter-spacing:var(--tracking-tighter)}.page-head p{margin:0;color:var(--muted);max-width:720px;font-size:var(--text-lg);line-height:var(--leading-relaxed)}.empty{color:var(--muted);padding:var(--space-8) 0;text-align:center;font-size:var(--text-sm)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}[role=button]:focus-visible,[tabindex]:focus-visible,a:focus-visible,button:focus-visible,input:not([type=hidden]):focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--focus-outline);outline-offset:2px}a:focus:not(:focus-visible),button:focus:not(:focus-visible){outline:none}:where(a[href],button,[role=button],input:not([type=hidden]),select,textarea,summary){min-height:var(--touch-min)}:where(p a,li a,td a,.prose a){min-height:auto}.sk-shimmer{position:relative;overflow:hidden;background:var(--sk-base);border-radius:var(--sk-radius-line)}.sk-shimmer:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent 0,var(--sk-highlight) 50%,transparent 100%);transform:translate(-100%);animation:sk-shimmer-sweep var(--sk-duration) infinite;will-change:transform}@keyframes sk-shimmer-sweep{to{transform:translate(100%)}}@media(prefers-reduced-motion:reduce){.sk-shimmer:after{animation:sk-pulse 2s var(--ease-in-out) infinite;background:var(--sk-highlight);transform:none}@keyframes sk-pulse{0%,to{opacity:0}50%{opacity:.5}}}@media(forced-colors:active){.sk-shimmer{border:1px solid GrayText}.sk-shimmer:after{display:none}}.flow>*+*{margin-top:var(--flow-space,var(--space-4))}.cluster{gap:var(--cluster-gap,var(--space-3));align-items:center}.cluster,.switcher{display:flex;flex-wrap:wrap}.switcher{gap:var(--switcher-gap,var(--space-4))}.switcher>*{flex-grow:1;flex-basis:calc((var(--switcher-threshold, 30rem) - 100%)*999)}@supports (corner-shape:squircle){:root{--corner-shape:squircle}.badge,.card,.chip,.confirm-dialog,.modal-content,.nav-panel,.region-tile,.sidebar-card,.stop-card,.tag,.toast,[class*=skeleton],button:not(.btn-icon),input,select,textarea{corner-shape:var(--corner-shape,round)}.avatar,.pill{corner-shape:round}}.fetch-error{color:var(--error);text-align:center;padding:var(--space-8) var(--space-5);font-size:var(--text-sm);background:var(--bg-alt);border:.5px solid var(--line);border-radius:var(--radius-lg)}.map-fallback{display:flex;align-items:center;justify-content:center;background:linear-gradient(110deg,var(--bg-alt) 30%,var(--card) 50%,var(--bg-alt) 70%);background-size:200% 100%;animation:shimmer 1.6s linear infinite;border-radius:var(--radius-lg,16px)}@media(prefers-reduced-motion:reduce){.map-fallback{animation:none;background:var(--bg-alt)}}.si-green{background:rgba(var(--secondary-rgb),.1);color:var(--secondary)}.si-blue{background:rgba(var(--blue-rgb),.1);color:rgb(var(--blue-rgb))}.si-purple{background:rgba(var(--purple-rgb),.1);color:rgb(var(--purple-rgb))}.si-orange{background:rgba(var(--warning-rgb),.1);color:rgb(var(--warning-rgb))}.si-indigo{background:rgba(var(--indigo-rgb),.1);color:rgb(var(--indigo-rgb))}.si-red{background:rgba(var(--red-rgb),.1);color:rgb(var(--red-rgb))}.si-danger{background:rgba(var(--danger-rgb),.1);color:var(--error)}.si-teal{background:rgba(var(--teal-rgb),.1);color:rgb(var(--teal-rgb))}.si-muted{background:#8e8e931f;color:var(--muted)}.maplibregl-popup-content{font-family:var(--font-body);font-size:var(--text-sm);line-height:var(--leading-normal);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);border:.5px solid var(--line);background:var(--card);color:var(--ink)}.maplibregl-popup-content strong{font-weight:var(--weight-semibold)}.maplibregl-popup-content small{color:var(--muted)}.maplibregl-popup-content a{color:var(--primary-fg);font-weight:var(--weight-semibold);text-decoration:none}.maplibregl-popup-content a:hover{text-decoration:underline}.maplibregl-popup-content a:focus-visible{outline:2px solid var(--primary);outline-offset:2px;border-radius:2px}.maplibregl-popup-close-button{font-size:1.2rem;color:var(--muted);width:44px;height:44px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-full);transition:background .3s var(--ease-out)}.maplibregl-popup-close-button:hover{background:var(--bg-alt);color:var(--ink)}.maplibregl-popup-close-button:focus-visible{outline:2px solid var(--primary);outline-offset:-2px}.maplibregl-popup-tip{border-top-color:var(--card)}.dark .maplibregl-popup-content{background:var(--card);border-color:var(--line)}.dark .maplibregl-popup-tip{border-top-color:var(--card)}.dark .maplibregl-popup-close-button:hover{background:var(--overlay-light)}@keyframes revealUp{0%{opacity:0;transform:translateY(30px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}.reveal{opacity:1;transform:none}html.js .reveal{opacity:0;transform:translateY(30px) scale(.985)}.reveal.revealed{animation:revealUp .8s var(--ease-out-expo) both}.reveal.revealed:nth-child(2){animation-delay:.06s}.reveal.revealed:nth-child(3){animation-delay:.12s}.reveal.revealed:nth-child(4){animation-delay:.18s}.reveal.revealed:nth-child(5){animation-delay:.24s}.reveal.revealed:nth-child(6){animation-delay:.3s}.reveal.revealed:nth-child(7){animation-delay:.36s}.reveal.revealed:nth-child(8){animation-delay:.42s}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal,html.js .reveal{opacity:1;transform:none}.reveal.revealed{animation:none}.scroll-row .card{animation:none!important}.revealed .cw-row,.revealed .grid>*,.revealed .hl,.revealed .quick-picks>*,.revealed .scroll-row>*,.revealed .sidebar-list>*{animation:none}}@keyframes cardIn{0%{opacity:0;transform:translateY(12px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.revealed .cw-row,.revealed .grid>*,.revealed .hl,.revealed .quick-picks>*,.revealed .scroll-row>*,.revealed .sidebar-list>*{animation:cardIn .45s var(--ease-out-expo) both}.revealed .grid>:first-child,.revealed .quick-picks>:first-child,.revealed .scroll-row>:first-child,.revealed .sidebar-list>:first-child{animation-delay:.05s}.revealed .grid>:nth-child(2),.revealed .quick-picks>:nth-child(2),.revealed .scroll-row>:nth-child(2),.revealed .sidebar-list>:nth-child(2){animation-delay:.1s}.revealed .grid>:nth-child(3),.revealed .quick-picks>:nth-child(3),.revealed .scroll-row>:nth-child(3),.revealed .sidebar-list>:nth-child(3){animation-delay:.15s}.revealed .grid>:nth-child(4),.revealed .quick-picks>:nth-child(4),.revealed .scroll-row>:nth-child(4),.revealed .sidebar-list>:nth-child(4){animation-delay:.2s}.revealed .grid>:nth-child(5),.revealed .quick-picks>:nth-child(5),.revealed .scroll-row>:nth-child(5),.revealed .sidebar-list>:nth-child(5){animation-delay:.25s}.revealed .grid>:nth-child(6),.revealed .quick-picks>:nth-child(6),.revealed .scroll-row>:nth-child(6),.revealed .sidebar-list>:nth-child(6){animation-delay:.3s}.revealed .grid>:nth-child(7),.revealed .quick-picks>:nth-child(7),.revealed .scroll-row>:nth-child(7),.revealed .sidebar-list>:nth-child(7){animation-delay:.35s}.revealed .grid>:nth-child(8),.revealed .quick-picks>:nth-child(8),.revealed .scroll-row>:nth-child(8),.revealed .sidebar-list>:nth-child(8){animation-delay:.4s}.map-popup-link{font-weight:700;color:var(--primary-fg-strong)}.search-row-spaced{margin-bottom:var(--space-4)}.chip-row-spaced{margin-bottom:var(--space-3)}.lead-flush{margin-top:0}.transport-mode-spaced{margin-bottom:var(--space-2)}.picker-empty{font-size:var(--text-sm);padding:var(--space-3)}.legal-page{max-width:680px;margin:0 auto;padding:var(--space-8) var(--space-5)}.legal-page h1{font-size:clamp(1.5rem,3vw,2rem);font-weight:var(--weight-bold);letter-spacing:var(--tracking-tight);margin:0 0 var(--space-2);color:var(--ink)}.legal-updated{font-size:var(--text-sm);color:var(--muted);margin:0 0 var(--space-6)}.legal-page h2{font-size:var(--text-lg);font-weight:var(--weight-semibold);margin:var(--space-8) 0 var(--space-3);color:var(--ink)}.legal-page p{font-size:var(--text-base);line-height:var(--leading-relaxed);color:var(--ink-secondary);margin:0 0 var(--space-4)}.legal-page ol,.legal-page ul{padding-inline-start:var(--space-6);margin:0 0 var(--space-4)}.legal-page li{font-size:var(--text-base);line-height:var(--leading-relaxed);color:var(--ink-secondary);margin-bottom:var(--space-2)}.legal-page a{color:var(--primary-fg);font-weight:var(--weight-semibold);text-decoration:underline;text-underline-offset:2px;transition:color .3s var(--ease-out)}.legal-page a:hover{color:var(--primary-fg-strong)}.legal-page a:focus-visible{outline:2px solid var(--primary);outline-offset:2px;border-radius:2px}.legal-page strong{font-weight:var(--weight-semibold);color:var(--ink)}.site-footer{content-visibility:auto;contain-intrinsic-size:auto 400px;background:var(--bg-warm);background-image:linear-gradient(to bottom,rgba(var(--primary-rgb),.03) 0,transparent 40%);border-top:.5px solid var(--line);padding:var(--space-12) var(--space-5) calc(var(--space-8) + 72px + env(safe-area-inset-bottom));padding-inline:max(var(--space-5),env(safe-area-inset-left)) max(var(--space-5),env(safe-area-inset-right));color:var(--muted);font-size:var(--text-sm);margin-top:var(--space-10)}.dark .site-footer{background-image:linear-gradient(180deg,hsla(0,0%,100%,.015) 0,transparent 40%)}.footer-inner{max-width:var(--maxw);margin:0 auto}.footer-top{display:flex;justify-content:space-between;gap:var(--space-10);padding-bottom:var(--space-8)}.footer-brand{flex-shrink:0;max-width:280px}.footer-logo{display:inline-flex;align-items:baseline;gap:0;margin-bottom:var(--space-3);color:var(--ink);text-decoration:none;min-height:44px;padding:var(--space-2) 0}.footer-logo .logo{font-size:var(--text-lg);font-weight:var(--weight-bold)}.footer-logo .tld{font-size:var(--text-sm);color:var(--accent);font-weight:var(--weight-semibold)}.footer-logo{transition:opacity .3s var(--ease-out),transform .35s var(--ease-spring-gentle)}.footer-logo:hover{opacity:.7}.footer-logo:active{transform:scale(.95);transition-duration:.08s}.footer-logo:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.footer-brand p{margin:0;line-height:var(--leading-relaxed);color:var(--muted)}.footer-social{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-top:var(--space-4)}.footer-social a{display:inline-flex;align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-3);min-height:var(--touch-min);border:.5px solid var(--line);border-radius:var(--radius-full);color:var(--muted);font-size:var(--text-sm);font-weight:var(--weight-medium);transition:transform .35s var(--ease-spring-gentle),border-color .3s var(--ease-out),color .3s var(--ease-out),background .3s var(--ease-out)}.footer-social a:hover{transform:translateY(-2px);color:var(--primary-fg);border-color:var(--primary-fg);background:color-mix(in srgb,var(--primary) 5%,transparent)}.footer-social a:active{transform:scale(.96)}.footer-social a:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.footer-social .fs-icon{font-size:1rem;line-height:1}@media(prefers-reduced-motion:reduce){.footer-social a:active,.footer-social a:hover{transform:none}}.footer-nav{display:flex;gap:var(--space-10);flex-wrap:wrap}.footer-col h4{margin:0 0 var(--space-3);font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--ink);letter-spacing:-.01em}.footer-col nav{display:flex;flex-direction:column;gap:var(--space-2)}.footer-col a{color:var(--muted);transition:color .3s var(--ease-out),transform .3s,text-decoration-color .3s;text-decoration-line:underline;text-decoration-color:transparent;text-underline-offset:3px;text-decoration-thickness:1px;padding:var(--space-2) 0;min-height:44px;display:inline-flex;align-items:center}.footer-col a:hover{color:var(--primary-fg);text-decoration-color:var(--primary-fg)}.footer-col a:active{transform:translate(2px)}.footer-col a:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.footer-bottom{border-top:.5px solid var(--line);padding-top:var(--space-4)}.footer-bottom p{margin:0}.disclaimer{font-size:var(--text-xs);line-height:var(--leading-normal);max-width:560px;margin-bottom:var(--space-3)}.footer-bottom-row{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:var(--space-3);font-size:var(--text-xs)}.footer-legal{display:flex;gap:var(--space-4);flex-wrap:wrap}.footer-legal a{color:var(--muted);text-decoration-line:underline;text-decoration-color:transparent;text-underline-offset:3px;text-decoration-thickness:1px;transition:color .3s var(--ease-out),text-decoration-color .3s var(--ease-out);min-height:44px;display:inline-flex;align-items:center;padding:var(--space-2) 0}.footer-legal a:hover{color:var(--primary-fg);text-decoration-color:var(--primary-fg)}.footer-legal a:focus-visible{outline:2px solid var(--primary);outline-offset:2px}@media(max-width:820px){.footer-top{flex-direction:column;gap:var(--space-8)}.footer-brand{max-width:none}}@media(max-width:520px){.footer-nav{flex-direction:column;gap:0}.footer-col{padding:var(--space-5) 0;border-bottom:.5px solid var(--line)}.footer-col:last-child{border-bottom:none}.footer-bottom-row{flex-direction:column;align-items:flex-start}}.nav-backdrop{display:none}@media(max-width:820px){.nav-backdrop.show{animation:backdropFadeIn .2s var(--ease-out)}.nav-backdrop.closing,.nav-backdrop.show{display:block;position:fixed;inset:0;z-index:calc(var(--z-mobile-nav) - 2);background:rgba(var(--ink-rgb,43,38,34),.3)}.nav-backdrop.closing{animation:backdropFadeOut .25s var(--ease-out) forwards;pointer-events:none}}@keyframes backdropFadeIn{0%{opacity:0}to{opacity:1}}@keyframes backdropFadeOut{0%{opacity:1}to{opacity:0}}.chat-fab{position:fixed;bottom:calc(var(--space-6) + env(safe-area-inset-bottom));right:calc(var(--space-6) + env(safe-area-inset-right));z-index:var(--z-overlay);width:48px;height:48px;border-radius:50%;background:var(--primary);color:var(--text-on-dark,#fff);border:none;cursor:pointer;box-shadow:0 2px 10px rgba(var(--primary-rgb),.25);display:flex;align-items:center;justify-content:center;font-size:1.25rem;transition:transform .35s var(--ease-spring-gentle),box-shadow .3s,opacity .4s var(--ease-out);opacity:.85}.chat-fab:hover{transform:scale(1.08);box-shadow:0 4px 18px rgba(var(--primary-rgb),.35);opacity:1}.chat-fab:active{transform:scale(.94)}.chat-fab:focus-visible{outline:2px solid var(--text-on-dark,#fff);outline-offset:3px}.chat-fab.open{background:var(--muted)}.chat-panel{position:fixed;bottom:calc(92px + env(safe-area-inset-bottom));right:calc(24px + env(safe-area-inset-right));z-index:var(--z-overlay);width:400px;max-width:calc(100% - 32px);height:520px;max-height:85vh;max-height:min(85vh,calc(100dvh - 140px));background:var(--glass-bg-heavy);backdrop-filter:var(--glass-heavy);-webkit-backdrop-filter:var(--glass-heavy);border:.5px solid rgba(var(--ink-rgb,0,0,0),.06);border-radius:var(--radius);box-shadow:var(--shadow-xl);display:flex;flex-direction:column;overflow:hidden;opacity:0;transform:translateY(16px) scale(.95);transform-origin:bottom right;pointer-events:none;transition:opacity .25s var(--ease-out),transform .35s var(--ease-spring-gentle)}.chat-panel:not(.show){visibility:hidden}.chat-panel.show{opacity:1;transform:translateY(0) scale(1);pointer-events:auto}.chat-panel-head{background:var(--primary);color:var(--text-on-dark,#fff);padding:var(--space-3) var(--space-4);display:flex;align-items:center;gap:var(--space-3);flex-shrink:0}.chat-panel-head h3{margin:0;font-size:1rem;flex:1}.chat-panel-head .cp-close{background:none;border:none;color:var(--text-on-dark,#fff);font-size:1.4rem;cursor:pointer;opacity:.8;min-width:44px;min-height:44px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);transition:opacity .3s,background .3s}.chat-panel-head .cp-close:hover{opacity:1;background:#ffffff26}.chat-panel-head .cp-close:active{transform:scale(.9);transition-duration:.08s}.chat-panel-head .cp-close:focus-visible{outline:2px solid var(--text-on-dark,#fff);outline-offset:2px}.chat-panel-msgs{flex:1;min-height:0;overflow-y:auto;overscroll-behavior-y:contain;padding:var(--space-3);display:flex;flex-direction:column;gap:var(--space-3)}.chat-panel-msgs .cmsg{padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);max-width:85%;font-size:var(--text-sm);line-height:var(--leading-normal);animation:msgSlideIn .25s var(--ease-out)}@keyframes msgSlideIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.chat-panel-msgs .cmsg.user{align-self:flex-end;background:var(--primary);color:var(--text-on-dark,#fff);border-bottom-right-radius:4px}.chat-panel-msgs .cmsg.assistant{align-self:flex-start;background:var(--card);border:.5px solid var(--line);border-bottom-left-radius:4px}.chat-panel-msgs .cmsg.assistant strong{color:var(--primary-fg)}.chat-panel-msgs .cmsg.assistant ol,.chat-panel-msgs .cmsg.assistant ul{margin:var(--space-1) 0;padding-inline-start:18px}.chat-panel-msgs .cmsg.assistant p{margin:var(--space-1) 0}.chat-panel-msgs .cmsg.assistant p:first-child{margin-top:0}.chat-panel-msgs .cmsg.assistant p:last-child{margin-bottom:0}.chat-panel-msgs .c-typing{display:flex;gap:var(--space-1);padding:var(--space-3) var(--space-4);align-self:flex-start}.chat-panel-msgs .c-typing span{width:7px;height:7px;border-radius:50%;background:var(--muted);animation:cbounce .6s infinite alternate}.chat-panel-msgs .c-typing span:nth-child(2){animation-delay:.2s}.chat-panel-msgs .c-typing span:nth-child(3){animation-delay:.4s}@keyframes cbounce{to{opacity:.3;transform:translateY(-3px)}}@media(prefers-reduced-motion:reduce){.chat-panel-msgs .c-typing span{animation:none;opacity:1;transform:none}}.chat-panel-msgs .csuggestions{display:flex;gap:var(--space-2);flex-wrap:wrap;padding:var(--space-1) 0}.chat-panel-msgs .csuggestions button{padding:var(--space-2) var(--space-3);border:.5px solid var(--line);border-radius:var(--radius-full);background:var(--card);cursor:pointer;font-size:.82rem;color:var(--ink);min-height:44px;transition:border-color .3s,color .3s,transform .3s}.chat-panel-msgs .csuggestions button:hover{border-color:var(--primary-fg);color:var(--primary-fg)}.chat-panel-msgs .csuggestions button:active{transform:scale(.95);transition-duration:.08s}.chat-panel-msgs .csuggestions button:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.chat-panel-msgs .cmsg.assistant .csuggestions{justify-content:flex-start;margin-top:var(--space-2);gap:var(--space-1);padding:0}.chat-panel-msgs .cmsg.assistant .csuggestions button{padding:3px 10px;font-size:.8rem;opacity:.55;border-color:transparent;background:var(--cream)}.chat-panel-msgs .cmsg.assistant .csuggestions button:hover{opacity:1;border-color:var(--primary-fg)}.chat-panel-msgs .cmsg.assistant .csuggestions button:disabled{opacity:1;cursor:default;border-color:var(--primary-fg);background:var(--clay-50)}.chat-panel-input{display:flex;gap:var(--space-2);padding:var(--space-3);border-top:.5px solid var(--line);background:var(--card);flex-shrink:0}.chat-panel-input input{flex:1;padding:var(--space-2) var(--space-3);border:.5px solid var(--border-input);border-radius:var(--radius-sm);font-size:var(--text-sm);outline:none;transition:border-color .25s var(--ease-out),box-shadow .25s var(--ease-out)}.chat-panel-input input:focus{border-color:var(--primary-fg);box-shadow:var(--focus-ring)}.chat-panel-input button{padding:0 var(--space-4);border:none;border-radius:var(--radius-sm);background:var(--primary);color:var(--text-on-dark,#fff);font-weight:var(--weight-bold);cursor:pointer;min-height:44px;transition:opacity .3s,transform .35s var(--ease-spring-gentle),background .3s}.chat-panel-input button:not(:disabled):hover{background:var(--primary-dark,var(--primary))}.chat-panel-input button:not(:disabled):active{transform:scale(.93);transition-duration:.08s}.chat-panel-input button:disabled{opacity:var(--opacity-disabled)}.chat-panel-input button:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.sidebar-card{background:var(--card);border:.5px solid var(--line);border-radius:var(--radius-lg,16px);padding:var(--space-5);box-shadow:var(--shadow-sm);transition:transform .35s var(--ease-spring-gentle),box-shadow .35s var(--ease-out-expo)}.sidebar-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.sidebar-card:active{transform:scale(.97);transition-duration:.08s}.sidebar-card h3{margin:0 0 var(--space-2);font-size:var(--text-base);font-weight:var(--weight-semibold)}.sidebar-card p{color:var(--muted);line-height:var(--leading-relaxed)}.sidebar-card p,.sidebar-list{margin:0;font-size:var(--text-sm)}.sidebar-list{list-style:none;padding:0;display:flex;flex-direction:column;gap:var(--space-1)}.sidebar-list li{padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);transition:background .3s var(--ease-out)}.sidebar-list li:hover{background:var(--bg-alt)}.thread-post{display:flex;gap:var(--space-3);padding:var(--space-4) var(--space-2);border-bottom:.5px solid var(--line);position:relative;border-radius:var(--radius-sm);margin:0 calc(var(--space-2)*-1);transition:background .3s var(--ease-out)}.thread-post:hover{background:var(--overlay-subtle)}.thread-left{display:flex;flex-direction:column;align-items:center;flex-shrink:0;width:40px}.thread-avatar{width:36px;height:36px;font-size:.82rem;flex-shrink:0;transition:transform .35s var(--ease-spring-gentle)}.thread-avatar-link{display:block;min-width:44px;min-height:44px;display:flex;align-items:center;justify-content:center}.thread-avatar-link:hover .thread-avatar{transform:scale(1.08)}.thread-avatar-link:active .thread-avatar{transform:scale(.94);transition-duration:.08s}.thread-line{width:2px;flex:1;min-height:20px;background:var(--line);border-radius:1px;margin-top:var(--space-2)}.thread-right{flex:1;min-width:0;display:flex;flex-direction:column;gap:var(--space-1)}.thread-head{display:flex;align-items:center;gap:var(--space-2);min-height:24px}.thread-author{font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--ink);text-decoration:none;transition:color .2s;min-height:44px;display:inline-flex;align-items:center}a.thread-author:hover{color:var(--primary-fg)}.thread-time{font-size:var(--text-xs);color:var(--muted);margin-inline-start:auto;flex-shrink:0}.thread-more{background:none;border:none;padding:var(--space-1);cursor:pointer;color:var(--muted);border-radius:var(--radius-full);min-width:44px;min-height:44px;display:flex;align-items:center;justify-content:center;transition:background .2s,color .2s}.thread-more:hover{background:var(--bg-alt);color:var(--ink)}.thread-more:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.thread-menu{position:absolute;right:0;top:48px;z-index:10;background:var(--card);border:.5px solid var(--line);border-radius:var(--radius-sm);box-shadow:var(--shadow-md);padding:var(--space-1);min-width:120px;animation:threadMenuIn .15s var(--ease-out)}@keyframes threadMenuIn{0%{opacity:0;transform:translateY(-4px) scale(.97)}}.thread-menu button{display:block;width:100%;text-align:left;background:none;border:none;padding:var(--space-2) var(--space-3);font-size:var(--text-sm);color:var(--ink);cursor:pointer;border-radius:var(--radius-sm);min-height:44px;transition:background .2s,color .2s}.thread-menu button:hover{background:var(--bg-alt)}.thread-menu .menu-danger{color:var(--error)}.thread-menu .menu-danger:hover{background:rgba(var(--error-rgb,220,38,38),.08)}.thread-menu button:focus-visible{outline:2px solid var(--primary);outline-offset:-2px}.thread-entity{display:inline-flex;align-items:center;gap:var(--space-1);font-size:var(--text-xs);color:var(--primary-fg);font-weight:var(--weight-medium);padding:var(--space-2) 0;min-height:44px;transition:opacity .2s}.thread-entity:hover{opacity:.7}.thread-rating .star{font-size:var(--text-sm);color:var(--muted);transition:transform .3s var(--ease-spring-gentle);display:inline-block}.thread-rating .star.active{color:var(--accent)}.thread-body{text-decoration:none;color:inherit;display:block}.thread-content{margin:0;font-size:var(--text-base);line-height:var(--leading-relaxed);color:var(--ink);white-space:pre-line}.thread-content.collapsed{display:-webkit-box;-webkit-line-clamp:6;-webkit-box-orient:vertical;overflow:hidden}.thread-expand{background:none;border:none;color:var(--primary-fg);font-size:.85rem;font-weight:500;cursor:pointer;padding:var(--space-2) 0;margin-top:var(--space-05);min-height:var(--touch-min);display:inline-flex;align-items:center;text-decoration-line:underline;text-decoration-color:transparent;text-underline-offset:3px;transition:text-decoration-color .25s var(--ease-out)}.thread-expand:hover{text-decoration-color:var(--primary-fg)}.mention-link{color:var(--primary-fg);font-weight:var(--weight-medium);text-decoration-line:underline;text-decoration-color:transparent;text-underline-offset:3px;text-decoration-thickness:1.5px;transition:text-decoration-color .25s var(--ease-out)}.mention-link:hover{text-decoration-color:var(--primary-fg)}.hashtag-link{color:var(--accent-text,var(--primary-fg));text-decoration-line:underline;text-decoration-color:transparent;text-underline-offset:3px;text-decoration-thickness:1.5px;transition:text-decoration-color .25s var(--ease-out)}.hashtag-link:hover{text-decoration-color:currentColor}.thread-repost-embed{display:flex;flex-direction:column;gap:.2rem;margin:var(--space-2) 0;padding:var(--space-2) var(--space-3);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-alt);text-decoration:none;color:var(--ink)}.thread-repost-embed:hover{border-color:var(--primary)}.thread-repost-wrap{position:relative;display:inline-flex}.thread-repost-menu{position:absolute;left:0;bottom:48px;z-index:10;background:var(--card);border:.5px solid var(--line);border-radius:var(--radius-sm);box-shadow:var(--shadow-md);padding:var(--space-1);min-width:150px;animation:threadMenuIn .15s var(--ease-out)}.thread-repost-menu button{display:block;width:100%;text-align:left;background:none;border:none;padding:var(--space-2) var(--space-3);font-size:var(--text-sm);color:var(--ink);cursor:pointer;border-radius:var(--radius-sm);min-height:44px;transition:background .2s}.thread-repost-menu button:hover{background:var(--bg-alt)}.thread-repost-menu button:focus-visible{outline:2px solid var(--primary);outline-offset:-2px}.tre-head{color:var(--ink-700)}.tre-content,.tre-head{font-size:var(--text-sm)}.tre-content{color:var(--ink);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.thread-images{display:grid;gap:2px;border-radius:var(--radius-md);overflow:hidden;margin-top:var(--space-2);cursor:pointer}.thread-images.img-grid-1{grid-template-columns:1fr}.thread-images.img-grid-1 .thread-img-wrap{max-height:340px}.thread-images.img-grid-2{grid-template-columns:1fr 1fr}.thread-images.img-grid-2 .thread-img-wrap{height:180px}.thread-images.img-grid-3{grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr}.thread-images.img-grid-3 .thread-img-wrap:first-child{grid-row:1/3;height:100%}.thread-images.img-grid-3 .thread-img-wrap{height:130px}.thread-images.img-grid-4{grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr}.thread-images.img-grid-4 .thread-img-wrap{height:130px}.thread-img-wrap{position:relative;overflow:hidden;padding:0;background:none;border:none;cursor:pointer}.thread-img-wrap img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;transition:transform .4s var(--ease-out-expo)}.thread-img-wrap:hover img{transform:scale(var(--img-hover-scale))}.thread-img-wrap:active img{transform:scale(.98);transition-duration:.1s}.thread-img-wrap:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.thread-img-more{position:absolute;inset:0;background:#0006;color:var(--text-on-dark,#fff);display:flex;align-items:center;justify-content:center;font-size:1.3rem;font-weight:800}.thread-actions{display:flex;gap:var(--space-1);padding-top:var(--space-2)}.thread-act{background:none;border:none;padding:6px var(--space-3);border-radius:var(--radius-full);cursor:pointer;color:var(--muted);display:inline-flex;align-items:center;gap:var(--space-1);min-height:44px;min-width:44px;justify-content:center;transition:background .2s var(--ease-out),color .2s,transform .25s var(--ease-spring-gentle)}.thread-act:hover{background:var(--bg-alt);color:var(--ink)}.thread-act:active{transform:scale(.88);transition-duration:.08s}.thread-act.active{color:var(--save-red,#dc2626)}.thread-act.active:hover{background:#dc262614}.thread-act.active svg{color:var(--save-red,#dc2626)}.thread-act-end.active{color:var(--primary-fg)}.thread-act-end.active:hover{background:rgba(var(--primary-rgb),.08)}.thread-act-end.active svg{color:var(--primary-fg)}.thread-act:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.thread-act-end{margin-inline-start:auto}.act-count{font-size:var(--text-xs);font-weight:var(--weight-medium);font-variant-numeric:tabular-nums}.thread-act.like-pop svg{animation:likePopAnim .4s var(--ease-spring-gentle)}@keyframes likePopAnim{0%{transform:scale(1)}30%{transform:scale(1.35)}60%{transform:scale(.9)}to{transform:scale(1)}}@media(prefers-reduced-motion:reduce){.thread-act.like-pop svg{animation:none}}.thread-meta-row{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.thread-type-badge{font-size:var(--text-xs);font-weight:var(--weight-semibold);padding:1px var(--space-2);border-radius:var(--radius-full)}.thread-type-badge.type-review{background:rgba(var(--accent-rgb),.12);color:var(--accent-text)}.thread-type-badge.type-question{background:rgba(var(--primary-rgb),.08);color:var(--primary-fg)}.thread-type-badge.type-recommend{background:rgba(var(--secondary-rgb),.08);color:var(--secondary)}.thread-reply-hint{display:inline-flex;align-items:center;min-height:var(--touch-min);font-size:var(--text-xs);color:var(--muted);padding-top:var(--space-05);transition:color .2s}.thread-reply-hint:hover{color:var(--ink)}.post-type-selector{display:flex;gap:var(--space-2);flex-wrap:wrap}.planner-layout{display:grid;grid-template-columns:360px 1fr;gap:var(--space-6);align-items:start}.planner-picker{background:var(--card);border:.5px solid var(--line);border-radius:var(--radius-lg,16px);padding:var(--space-4);box-shadow:var(--shadow-sm);position:sticky;top:78px;max-height:calc(100vh - 100px);max-height:calc(100dvh - 100px);display:flex;flex-direction:column}.picker-list{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:2px}.picker-item{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3);border-radius:var(--radius-sm);cursor:pointer;min-height:44px;transition:background .3s var(--ease-out),transform .3s}.picker-item:hover{background:var(--bg-warm)}.picker-item:active{background:var(--line);transform:scale(.97);transition-duration:.08s}.picker-item:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.picker-emoji{font-size:var(--icon-base);flex-shrink:0}.picker-info{flex:1;min-width:0}.picker-info strong{display:block;font-size:.9rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.picker-info small{color:var(--muted);font-size:.78rem}.planner-builder{min-width:0}.builder-header{display:flex;flex-wrap:wrap;gap:var(--space-3);align-items:center;margin-bottom:var(--space-5)}.builder-title{flex:1;min-width:200px;font-weight:700;font-size:1.05rem}.builder-actions{display:flex;gap:var(--space-2)}.builder-empty{padding:var(--space-10) var(--space-5)}.stop-list{display:flex;flex-direction:column;gap:0}.stop-item{display:flex;gap:var(--space-4);position:relative;padding-bottom:var(--space-2)}.stop-num{width:32px;height:32px;border-radius:50%;background:var(--primary);color:var(--text-on-dark,#fff);display:flex;align-items:center;justify-content:center;font-weight:800;font-size:.85rem;flex-shrink:0;z-index:1}.stop-connector{position:absolute;left:15px;top:32px;bottom:-8px;width:2px;background:var(--line)}.stop-card{flex:1;background:var(--card);border:.5px solid var(--line);border-radius:var(--radius-lg,16px);padding:var(--space-4);box-shadow:var(--shadow-sm);transition:transform .35s var(--ease-spring-gentle),box-shadow .35s var(--ease-out-expo),border-color .3s}.stop-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);border-color:var(--border)}.stop-card:active{transform:scale(.97);transition-duration:.08s}.stop-card-head{display:flex;align-items:center;gap:var(--space-3)}.stop-emoji{font-size:var(--icon-md)}.stop-card-info{flex:1;min-width:0}.stop-card-info strong{font-size:.95rem}.stop-card-info small{display:block;font-size:.78rem;color:var(--muted)}.stop-card-actions{display:flex;gap:var(--space-1)}.btn-icon-sm{width:44px;height:44px;border:none;background:var(--bg-warm);border-radius:var(--radius-sm,8px);cursor:pointer;font-size:.85rem;display:flex;align-items:center;justify-content:center;transition:background .3s var(--ease-out),transform .35s var(--ease-spring-gentle),box-shadow .3s var(--ease-out)}.btn-icon-sm:hover{background:var(--line);transform:translateY(-1px);box-shadow:var(--shadow-xs)}.btn-icon-sm:active{transform:scale(.92);transition-duration:.08s;box-shadow:none}.btn-icon-sm.danger:hover{background:var(--error-bg);color:var(--error)}.btn-icon-sm:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.stop-card-fields{display:flex;gap:var(--space-2);margin-top:var(--space-3)}.stop-time-input{width:130px;flex-shrink:0}.stop-note-input,.stop-time-input{padding:var(--space-2) var(--space-3);font-size:.85rem;min-height:44px;transition:border-color .3s,box-shadow .3s}.stop-note-input{flex:1}.stop-note-input:focus,.stop-time-input:focus{outline:none;border-color:var(--primary-fg);box-shadow:var(--focus-ring)}.saved-plans{margin-top:var(--space-8)}.saved-plans h2,.saved-plans h3{font-size:var(--text-base);font-weight:var(--weight-semibold);margin:0 0 var(--space-3)}.saved-plan-item{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--card);border:.5px solid var(--line);border-radius:var(--radius-lg,16px);margin-bottom:var(--space-2);transition:transform .35s var(--ease-spring-gentle),box-shadow .35s var(--ease-out-expo),border-color .3s}.saved-plan-item:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);border-color:var(--border)}.saved-plan-item:active{transform:scale(.97);transition-duration:.08s}.saved-plan-info{flex:1;cursor:pointer}.saved-plan-info strong{display:block;font-size:var(--text-sm)}.saved-plan-info small{color:var(--muted);font-size:var(--text-xs)}.saved-plan-actions{display:flex;gap:var(--space-2)}.saved-plan-btn{background:none;border:none;padding:0;margin:0;font:inherit;color:inherit;text-align:left;cursor:pointer;display:block;width:100%}.saved-plan-btn:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.saved-plan-actions .danger{color:var(--error)}.transport-mode{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap;margin-bottom:var(--space-4);padding:var(--space-3) var(--space-4);background:var(--card);border:.5px solid var(--line);border-radius:var(--radius-lg,16px);box-shadow:var(--shadow-sm);transition:border-color .3s var(--ease-out),box-shadow .35s var(--ease-out-expo)}.transport-mode:hover{border-color:var(--border);box-shadow:var(--shadow-md)}.tm-label{font-size:.88rem;font-weight:600;color:var(--muted)}.route-total{margin-inline-start:auto;font-weight:700;font-size:.95rem;color:var(--primary-fg)}.route-loading{color:var(--muted);font-weight:400}.route-leg{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-1) 0 var(--space-1) 15px}.route-leg-line{width:2px;height:20px;background:var(--primary);opacity:.4;flex-shrink:0}.route-leg-info{font-size:.82rem;color:var(--primary-fg);font-weight:600;background:var(--bg-warm);padding:3px var(--space-3);border-radius:var(--radius-full);transition:background .3s var(--ease-out),transform .35s var(--ease-spring-gentle)}.route-leg-info:hover{background:var(--bg-alt);transform:scale(1.03)}.route-map-section{margin-top:var(--space-6)}.route-map-section h2,.route-map-section h3{font-size:1.05rem;margin:0 0 var(--space-3)}.route-map{height:340px;border-radius:var(--radius);border:.5px solid var(--line);z-index:0}.route-marker .rm-num{width:28px;height:28px;border-radius:50%;background:var(--primary);color:var(--text-on-dark,#fff);font-weight:800;font-size:.8rem;display:flex;align-items:center;justify-content:center;border:2px solid var(--white,#fff);box-shadow:0 1px 4px #0000004d}.user-profile{margin-top:var(--space-4)}.profile-cover{position:relative;border-radius:var(--radius);overflow:hidden;margin-bottom:60px}.profile-avatar-wrap{position:absolute;bottom:-40px;left:24px;border:4px solid var(--card);border-radius:50%;box-shadow:0 2px 12px #0000001f}.profile-avatar-wrap .avatar-xl{width:88px;height:88px;font-size:1.8rem}.profile-info{padding:0 0 0 4px}.profile-info h1{margin:0 0 var(--space-1);font-size:1.5rem}.profile-bio{color:var(--muted);font-size:.92rem;margin:0 0 var(--space-3);line-height:1.5}.profile-stats{display:flex;gap:var(--space-5);margin-top:var(--space-2)}.stat-item{display:flex;flex-direction:column;align-items:center;gap:2px;padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);transition:background .3s}.stat-item:hover{background:var(--bg-warm)}.stat-item strong{font-size:1.1rem;color:var(--ink)}.stat-item span{font-size:.8rem;color:var(--muted)}.profile-tabs{display:flex;gap:var(--space-2);margin:var(--space-5) 0 var(--space-4);border-bottom:.5px solid var(--line);padding-bottom:var(--space-3)}.profile-header{display:flex;gap:var(--space-5);align-items:center}.profile-header h1{margin:0}.js-item{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);background:var(--card);border:.5px solid var(--line);border-radius:var(--radius-md);font-size:.9rem;transition:transform .35s var(--ease-spring-gentle),box-shadow .3s}.js-item:hover{transform:translateY(-1px);box-shadow:var(--shadow-sm)}.js-item:active{transform:scale(.97);transition-duration:.08s}.js-emoji{font-size:var(--icon-md)}.nav-toggle{display:none;background:none;border:none;cursor:pointer;padding:6px;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-1);min-width:44px;min-height:44px;border-radius:var(--radius-sm);transition:background .3s var(--ease-out)}.nav-toggle:hover{background:var(--bg-warm)}.nav-toggle:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.nav-toggle span{display:block;width:22px;height:2px;background:var(--ink);border-radius:2px;transition:transform .35s var(--ease-spring-gentle),opacity .3s var(--ease-out);transform-origin:center}.nav-toggle[aria-expanded=true] span:first-child{transform:translateY(6px) rotate(45deg)}.nav-toggle[aria-expanded=true] span:nth-child(2){opacity:0;transform:scaleX(0)}.nav-toggle[aria-expanded=true] span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}@media(min-width:769px)and (max-width:1024px){.topbar-inner{gap:var(--space-3);padding:var(--space-3) var(--space-4)}.main-nav a{font-size:var(--text-xs)}.main-nav a,.nav-group-btn{padding:var(--space-2) var(--space-3)}.nav-group-btn{font-size:.88rem}.topbar-search input{min-width:140px}.hero h1{font-size:clamp(1.8rem,4.5vw,2.5rem)}.hero-inner{padding:var(--space-12) var(--space-5) calc(var(--space-12) + var(--space-2))}.regions{grid-template-columns:repeat(2,1fr)}.feed-layout{grid-template-columns:1fr}.feed-sidebar{position:static}.planner-layout{grid-template-columns:1fr}.planner-picker{position:static;max-height:400px;min-width:0}}@media(max-width:820px){.detail-body{grid-template-columns:1fr}.detail-aside{position:static}.hero h1{font-size:1.9rem}.nav-toggle{display:flex}.main-nav{display:none;order:3;width:100%;flex-direction:column;gap:0;background:var(--card);border-top:.5px solid var(--line);padding:var(--space-2) 0;position:relative;z-index:var(--z-mobile-nav)}.main-nav.open{display:flex;animation:navSlideDown .35s var(--ease-out-expo)}.main-nav.closing{display:flex;animation:navSlideUp .25s var(--ease-out) forwards;pointer-events:none}.main-nav.open>*{animation:navItemReveal .3s var(--ease-out-expo) both}.main-nav.open>:first-child{animation-delay:.02s}.main-nav.open>:nth-child(2){animation-delay:.05s}.main-nav.open>:nth-child(3){animation-delay:.08s}.main-nav.open>:nth-child(4){animation-delay:.11s}.main-nav.open>:nth-child(5){animation-delay:.14s}.main-nav.open>:nth-child(6){animation-delay:.17s}@keyframes navSlideDown{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}@keyframes navSlideUp{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-6px)}}@keyframes navItemReveal{0%{opacity:0;transform:translate(-8px)}to{opacity:1;transform:translate(0)}}.main-nav a{padding:var(--space-3) var(--space-4);border-radius:0}.nav-group{flex-direction:column}.nav-group-btn{width:100%;justify-content:space-between;border-radius:0;padding:var(--space-3) var(--space-4);min-height:44px}.nav-panel{position:static;display:none;box-shadow:none;border:none;border-radius:0;padding:0;background:var(--bg-warm);min-width:0}.nav-panel.open{display:flex;animation:navPanelExpand .25s var(--ease-out-expo)}@keyframes navPanelExpand{0%{opacity:0;max-height:0}to{opacity:1;max-height:400px}}.nav-panel a{padding:var(--space-3) var(--space-4) var(--space-3) 30px;font-size:.9rem}.topbar-search{order:2;flex:1}.topbar-search input{width:100%;min-width:0}.feed-layout{grid-template-columns:1fr}.feed-sidebar{position:static}.planner-layout{grid-template-columns:1fr}.planner-picker{position:static;max-height:400px;min-width:0}.stop-card-fields{flex-direction:column}.stop-time-input{width:100%}.post-images.img-grid-3 .post-img-wrap,.post-images.img-grid-4 .post-img-wrap{height:110px}.profile-cover{margin-bottom:50px}.profile-avatar-wrap{left:var(--space-4);bottom:-32px}.profile-avatar-wrap .avatar-xl{width:72px;height:72px;font-size:1.5rem}}@media(max-width:640px){.topbar-search{display:none}.topbar-inner{gap:var(--space-2);padding-inline:var(--space-3)}.brand .logo{font-size:1.15rem}.topbar .auth-area{gap:var(--space-2)}.topbar .auth-btn{padding:var(--space-2) 12px;font-size:.82rem}}@media(max-width:520px){.step{grid-template-columns:1fr;gap:var(--space-1)}.step-time{padding-top:0}}@media(max-width:640px){input:not([type]),input[type=email],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],select,textarea{font-size:16px}}@media(prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.dark .site-footer{background:var(--bg-warm)}.dark .sidebar-card{background:var(--card)}.dark .hero-search input{border-color:var(--line)}.dark .hero-search input,.dark .topbar-search input{background:var(--bg-alt);color:var(--ink)}.dark .chat-panel-input{background:var(--card)}.dark .chat-panel-input input{background:var(--bg-alt);color:var(--ink)}.dark .chat-panel-msgs .cmsg.assistant{background:var(--card)}.dark .thread-post{border-bottom-color:var(--overlay-light)}.dark .thread-post:hover{background:var(--glass-subtle)}.dark .thread-line{background:var(--glass-border)}.dark .thread-act:hover{background:var(--glass-light)}.dark .thread-act.active{color:var(--save-red,#ef4444)}.dark .thread-act-end.active{color:var(--primary-fg-strong)}.dark .thread-menu{background:var(--surface-2);border-color:var(--glass-border);box-shadow:0 8px 32px #00000080}.dark .thread-more:hover{background:var(--overlay-light)}.dark .ptb-review{background:rgba(var(--accent-rgb),.22)}.dark .ptb-share{background:#2e7d5b2e}.dark .ptb-recommend{background:#33646e2e}.dark .ptb-question{background:rgba(var(--primary-rgb),.16)}.dark .ptb-discussion{background:var(--glass-light)}.dark .chat-fab{box-shadow:0 2px 10px #0000004d}.dark .chat-panel{background:var(--surface-2);border-color:var(--line);box-shadow:0 8px 40px #00000080}.dark .chat-panel-head{border-bottom-color:var(--line)}.dark .cmsg.user{background:rgba(var(--primary-rgb),.22);color:var(--text-on-dark,#f5f5f7)}.dark .chat-panel-msgs{background:var(--bg)}.dark .chat-panel-input input:focus{box-shadow:0 0 0 3px rgba(var(--primary-rgb),.2)}.dark .csuggestions button{background:var(--glass-light);border-color:var(--line)}.dark .csuggestions button:hover{background:var(--glass-medium);border-color:var(--primary-fg)}.dark .saved-plan-item,.dark .stop-card,.dark .transport-mode{background:var(--card)}.dark .transport-mode{border-color:var(--line)}.dark .transport-mode:hover{border-color:var(--glass-border)}.dark .btn-icon-sm{background:var(--glass-light)}.dark .btn-icon-sm:hover{background:var(--glass-medium)}.dark .route-leg-info{background:var(--glass-subtle)}.dark img:not(.no-dim){opacity:.92}.dark .region-tile:before{background:linear-gradient(0deg,#000c 0,#00000059 50%,#0000001a)}.dark .footer-bottom{border-top-color:var(--glass-light)}.dark .footer-col a:hover{color:var(--ink)}.dark .nav-backdrop.closing,.dark .nav-backdrop.show{background:#00000073}.dark .main-nav a:hover,.dark .nav-group-btn:hover{background:var(--glass-light)}@media(max-width:820px){.dark .nav-panel{background:var(--glass-subtle)}}.dark .theme-toggle:hover{background:var(--overlay-light)}.dark .hero-search{border-color:var(--glass-border)}.dark .hero-search:focus-within{border-color:var(--primary-fg);box-shadow:0 0 0 3px rgba(var(--primary-rgb),.18)}.dark .profile-avatar-wrap{border-color:var(--card);box-shadow:0 2px 12px #0000004d}.dark .js-item,.dark .profile-cover{border-color:var(--line)}.dark .js-item{background:var(--card)}@media(max-width:480px){.chat-panel{bottom:0;left:0;right:0;width:auto;height:100vh;height:100dvh;max-height:100vh;max-height:100dvh;border-radius:0;padding-bottom:env(safe-area-inset-bottom)}.chat-fab{bottom:calc(var(--space-4) + 60px + env(safe-area-inset-bottom));right:var(--space-4)}.chat-fab.open{bottom:calc(var(--space-4) + env(safe-area-inset-bottom))}.hero{min-height:240px}.hero h1{font-size:1.5rem}.hero p{font-size:.95rem}.hero-inner{padding:var(--space-10) var(--space-4) calc(var(--space-10) + var(--space-1))}.hero-search{flex-direction:column}.hero-search button{padding:var(--space-3)}.block{padding-top:var(--space-10)}.builder-title{min-width:auto;width:100%}.planner-picker{max-height:300px}}@media(prefers-contrast:more){:root{--line:rgba(0,0,0,.25);--shadow-sm:0 1px 3px rgba(0,0,0,.15);--muted:#4a5b53;--ink-tertiary:#545458}.dark{--line:hsla(0,0%,100%,.25);--shadow-sm:0 1px 3px rgba(0,0,0,.4);--muted:#b8b8bd;--ink-tertiary:#b0b0b5;--primary-fg:#eaa78e}.dark ::-moz-placeholder{color:#ffffff80}.dark ::placeholder{color:#ffffff80}:focus::-moz-placeholder{opacity:.7}:focus::placeholder{opacity:.7}[role=button]:focus-visible,a:focus-visible,button:focus-visible{outline-width:3px}.card,.cross-card,.interest-card,.quick-pick,.route-card,.route-preview,.step-card{border-width:1px}}@media(prefers-reduced-transparency:reduce){:root{--glass-bg:var(--bg);--glass-bg-heavy:var(--bg);--surface-translucent:var(--bg)}.dark{--glass-bg:var(--card);--glass-bg-heavy:var(--card);--surface-translucent:var(--card)}.chat-panel,.scroll-top,.share-btn,.topbar{backdrop-filter:none;-webkit-backdrop-filter:none}}@media(forced-colors:active){.auth-btn,.badge,.btn,.chip,.tag{border:1px solid ButtonText}[role=button]:focus-visible,a:focus-visible,button:focus-visible{outline:2px solid Highlight}.site-footer,.topbar{border-bottom:1px solid CanvasText}.card,.js-item,.route-card,.saved-plan-item,.sidebar-card,.step-card,.stop-card,.thread-menu,.transport-mode{border:1px solid CanvasText}.thread-post{border-bottom:1px solid CanvasText}input,select,textarea{border:1px solid ButtonBorder}.btn-icon-sm,.nav-group-btn,.picker-item,.see-all,.thread-act{border:1px solid ButtonText}.thread-type-badge{border:1px solid GrayText}.stop-num{border:1px solid Highlight}.stop-connector,.thread-line{background:CanvasText}}@media print{body{background:#fff;color:#000}.admin-sidebar,.auth-area,.chat-widget,.feed-sidebar,.hero-pills,.hero-search,.journey-bar,.nav-toggle,.notif-bell,.onboarding-sheet,.scroll-row,.scroll-top,.site-footer,.skip-link,.thread-actions,.toast-container,.topbar{display:none!important}.card,.detail-cover,.modal-overlay,.page{box-shadow:none!important;border-color:#ccc!important}a[href]:after{content:" (" attr(href) ")";font-size:.8em;color:#666}a[href^="#"]:after,a[href^="/"]:after{content:none}img{max-width:100%!important;page-break-inside:avoid}h1,h2,h3,h4{page-break-after:avoid}.block,.card,.section,.skeleton-card{page-break-inside:avoid}li,p{orphans:2;widows:2}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-3) var(--space-5);border:none;border-radius:var(--radius-sm);font-size:var(--text-sm);font-weight:var(--weight-semibold);cursor:pointer;transition:background .3s var(--ease-out),transform .2s var(--ease-spring-gentle),opacity .3s,box-shadow .2s var(--ease-out);min-height:44px;min-width:44px;letter-spacing:.01em}.btn:hover:not(:disabled){transform:translateY(-1px)}.btn:active:not(:disabled){transform:scale(.96) translateY(0)}.btn:focus-visible{outline:2px solid var(--primary);outline-offset:3px}.btn:disabled{opacity:var(--opacity-disabled);cursor:not-allowed;filter:grayscale(.3)}.btn-primary{background:linear-gradient(135deg,var(--primary) 0,color-mix(in srgb,var(--primary) 85%,#000) 100%);color:var(--text-on-dark,#fff)}.btn-primary:hover:not(:disabled){box-shadow:0 4px 16px rgba(var(--primary-rgb),.35)}.btn-primary:active:not(:disabled){box-shadow:inset 0 2px 6px #00000040}.btn-secondary{background:var(--secondary);color:var(--text-on-dark,#fff)}.btn-secondary:hover:not(:disabled){opacity:.9;box-shadow:var(--shadow-sm)}.btn-outline{background:transparent;color:var(--primary-fg);border:1.5px solid var(--primary);transition:background .25s var(--ease-out),color .25s var(--ease-out),transform .2s var(--ease-spring-gentle),box-shadow .25s var(--ease-out),border-color .25s var(--ease-out)}.btn-outline:hover:not(:disabled){background:var(--primary);color:var(--text-on-dark,#fff);box-shadow:var(--shadow-sm)}.btn-ghost{background:transparent;color:var(--muted)}.btn-ghost:hover:not(:disabled){background:var(--bg-warm);color:var(--ink)}.link-btn{background:none;border:none;padding:0;color:var(--primary-fg);cursor:pointer;font:inherit;text-decoration:underline}.link-btn:hover{color:var(--primary-fg-strong,var(--primary))}.link-btn:focus-visible{outline:2px solid var(--primary);outline-offset:2px;border-radius:2px}.btn-sm{padding:var(--space-2) var(--space-4);font-size:var(--text-sm);min-height:44px}.btn-icon{padding:var(--space-2);border-radius:50%;min-width:var(--touch-min);min-height:var(--touch-min);display:inline-flex;align-items:center;justify-content:center}.input,.select,.textarea{width:100%;padding:var(--space-3) var(--space-4);border:.5px solid var(--line);border-radius:var(--radius-sm);font-size:var(--text-base);background:var(--bg-alt);color:var(--ink);transition:border-color .2s var(--ease-out),box-shadow .2s var(--ease-out),background .2s var(--ease-out);min-height:44px;-moz-appearance:none;appearance:none;-webkit-appearance:none}.input:focus,.select:focus,.textarea:focus{outline:none;border-color:var(--primary-fg);background:var(--card);box-shadow:var(--focus-ring),var(--shadow-xs);border-width:1px}.input::-moz-placeholder{color:var(--muted)}.input::placeholder{color:var(--muted)}.input.error,.textarea.error{border-color:var(--error);box-shadow:0 0 0 3px var(--error-bg);animation:inputShake .4s var(--ease-out)}.input.success,.textarea.success{border-color:var(--secondary);box-shadow:0 0 0 3px rgba(var(--secondary-rgb),.12)}@keyframes inputShake{0%,to{transform:translate(0)}20%,60%{transform:translate(-4px)}40%,80%{transform:translate(4px)}}.input:required:not(:-moz-placeholder):valid{border-color:var(--secondary)}.input:required:not(:placeholder-shown):valid{border-color:var(--secondary)}.input:required:not(:-moz-placeholder):invalid{border-color:var(--error)}.input:required:not(:placeholder-shown):invalid{border-color:var(--error)}.textarea{resize:vertical;min-height:80px}.input:disabled,.select:disabled,.textarea:disabled{background:var(--bg-warm);border-color:var(--line);color:var(--muted);cursor:not-allowed;opacity:var(--opacity-disabled-content)}.input:-moz-read-only,.textarea:-moz-read-only{background:var(--bg-warm);border-color:var(--line);cursor:default;opacity:.72}.input:read-only,.textarea:read-only{background:var(--bg-warm);border-color:var(--line);cursor:default;opacity:.72}.input:-moz-read-only:focus,.textarea:-moz-read-only:focus{box-shadow:none;border-color:var(--line)}.input:read-only:focus,.textarea:read-only:focus{box-shadow:none;border-color:var(--line)}.form-group{display:flex;flex-direction:column;gap:var(--space-3)}.form-label{font-size:.85rem;font-weight:700;color:var(--ink)}.form-error{font-size:.8rem;color:var(--error);animation:formErrorIn .25s var(--ease-out)}@keyframes formErrorIn{0%{opacity:0;transform:translateY(-4px)}}.avatar{width:40px;height:40px;border-radius:50%;background:var(--primary-light);color:var(--text-on-dark,#fff);display:inline-flex;align-items:center;justify-content:center;font-weight:800;font-size:.9rem;overflow:hidden;flex-shrink:0}.avatar img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.avatar-sm{width:28px;height:28px;font-size:.72rem}.avatar-xl{width:80px;height:80px;font-size:1.6rem}.modal-overlay{position:fixed;inset:0;z-index:var(--z-modal);background:#0006;backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px);display:none;align-items:center;justify-content:center;padding:var(--space-5);animation:overlayFadeIn .2s var(--ease-out)}@keyframes overlayFadeIn{0%{opacity:0}}.modal,.modal-overlay.show{display:flex}.modal{background:var(--card);border-radius:var(--radius-xl);width:100%;max-width:420px;box-shadow:var(--shadow-xl);flex-direction:column;max-height:min(90vh,calc(100vh - 40px));overflow:hidden;animation:modalIn .4s var(--ease-spring-gentle);border:.5px solid var(--line)}@keyframes modalIn{0%{opacity:0;transform:translateY(20px) scale(.95)}}.modal-fade-enter-active,.modal-fade-enter-active .modal-overlay{animation:overlayFadeIn .2s var(--ease-out)}.modal-fade-enter-active .modal{animation:modalIn .4s var(--ease-spring-gentle)}.modal-fade-leave-active,.modal-fade-leave-active .modal-overlay{animation:overlayFadeIn .2s var(--ease-out) reverse}.modal-fade-leave-active .modal{animation:modalIn .25s var(--ease-out) reverse}.modal-head{padding:var(--space-5) var(--space-6) 0;display:flex;align-items:center;justify-content:space-between;flex-shrink:0}.modal-head h2{margin:0;font-size:1.2rem}.modal-close{background:none;border:none;font-size:1.4rem;cursor:pointer;color:var(--muted);padding:var(--space-1);min-width:44px;min-height:44px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:background .3s var(--ease-out),transform .3s}.modal-close:hover{background:var(--bg-warm)}.modal-close:active{transform:scale(.9);transition-duration:.08s}.modal-close:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.modal-body{padding:var(--space-4) var(--space-6) var(--space-6);overflow-y:auto;flex:1;min-height:0;overscroll-behavior-y:contain}.modal-footer{padding:0 var(--space-6) var(--space-5);display:flex;gap:var(--space-3);justify-content:flex-end;flex-shrink:0}.toast-container{position:fixed;bottom:var(--space-8);left:50%;transform:translate(-50%);z-index:var(--z-toast);display:flex;flex-direction:column;gap:var(--space-2);pointer-events:none;max-width:calc(100vw - 32px)}@media(max-width:840px){.toast-container{bottom:calc(72px + env(safe-area-inset-bottom))}}.toast{padding:var(--space-3) var(--space-5);border-radius:var(--radius-md);background:var(--ink-900);color:var(--text-on-dark,#fff);font-size:var(--text-sm);font-weight:var(--weight-semibold);box-shadow:var(--shadow-xl);pointer-events:auto;animation:toastIn .35s var(--ease-spring-gentle),toastOut .35s var(--ease-out) 3s forwards;backdrop-filter:saturate(180%) blur(12px);-webkit-backdrop-filter:saturate(180%) blur(12px)}.toast.success{background:var(--secondary)}.toast.error{background:var(--error)}.toast.warning{background:var(--accent-dark);color:var(--ink)}@keyframes toastIn{0%{opacity:0;transform:translateY(12px)}}@keyframes toastOut{to{opacity:0;transform:translateY(-8px)}}.star-rating{display:inline-flex;gap:2px}.star-rating .star{font-size:1.5rem;cursor:pointer;color:var(--line);transition:color .3s var(--ease-out),transform .35s var(--ease-spring-gentle);padding:6px;min-width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center}.star-rating .star.active{color:var(--accent)}.star-rating .star:hover{transform:scale(1.2)}.star-rating .star:active{transform:scale(.9);transition-duration:.08s}.star-rating .star:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.star-rating.readonly .star{cursor:default}.star-rating.readonly .star:hover{transform:none}.star-rating-inline{display:inline-flex;gap:1px;font-size:.85rem}.star-rating-inline .star{color:var(--line);font-size:inherit}.star-rating-inline .star.active{color:var(--accent)}.tag{display:inline-flex;align-items:center;gap:var(--space-1);padding:var(--space-1) 10px;border-radius:var(--radius-full);font-size:.76rem;font-weight:700}.tag-primary{background:rgba(var(--primary-rgb),.1);color:var(--primary-fg)}.tag-accent{background:rgba(var(--accent-rgb),.15);color:var(--accent-text)}.tag-secondary{background:rgba(var(--secondary-rgb),.1);color:var(--secondary-fg)}.tag-tertiary{background:#33646e1a;color:var(--tertiary-fg)}.tag-muted{background:var(--bg-warm);color:var(--muted)}.tag[role=button],a.tag,button.tag{min-height:var(--touch-min);cursor:pointer;transition:background .2s var(--ease-out)}.tag[role=button]:hover,a.tag:hover,button.tag:hover{filter:brightness(.95)}.auth-area{display:flex;align-items:center;gap:var(--space-3);margin-inline-start:auto}.auth-btn{padding:var(--space-2) 18px;border-radius:var(--radius-full);font-weight:700;font-size:.9rem;cursor:pointer;border:2px solid var(--primary);background:transparent;color:var(--primary-fg);min-height:44px;white-space:nowrap;transition:background .3s var(--ease-out),color .3s var(--ease-out),transform .35s var(--ease-spring-gentle)}.auth-btn:hover{background:var(--primary);color:var(--text-on-dark,#fff)}.auth-btn:active{transform:scale(.95);transition-duration:.08s}.auth-btn:focus-visible{outline:2px solid var(--primary);outline-offset:3px}.auth-user{display:flex;align-items:center;gap:var(--space-2);cursor:pointer;background:none;border:none;font:inherit;color:inherit;padding:var(--space-2) 0;min-height:44px}.auth-user-snapshot{cursor:default;pointer-events:none;opacity:.92}.auth-user-loading{opacity:.55}.auth-user:active{transform:scale(.95);transition-duration:.08s}.auth-user:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.auth-user-name{font-weight:600;font-size:.9rem}.otp-step{display:flex;flex-direction:column;gap:var(--space-4)}.otp-step h3{margin:0;font-size:1rem}.otp-step p{margin:0;color:var(--muted);font-size:.88rem}.otp-input{display:flex;gap:var(--space-2);justify-content:center}.otp-input input{width:44px;height:52px;text-align:center;font-size:1.4rem;font-weight:800;border:2px solid var(--line);border-radius:var(--radius-md);background:var(--card);transition:border-color .3s var(--ease-out),box-shadow .3s var(--ease-out),transform .35s var(--ease-spring-gentle)}.otp-input input:focus{outline:none;border-color:var(--primary-fg);box-shadow:0 0 0 3px rgba(var(--primary-rgb),.12);transform:scale(1.06)}.otp-timer{text-align:center;color:var(--muted);font-size:.85rem}.otp-resend{color:var(--primary-fg);font-weight:700;cursor:pointer;background:none;border:none;font-size:.85rem;transition:opacity .3s,transform .3s;min-height:44px}.otp-resend:hover{opacity:.7}.otp-resend:active{transform:scale(.95)}.otp-resend:disabled{color:var(--muted);cursor:not-allowed;opacity:1}.otp-resend:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.quote-preview{display:flex;align-items:flex-start;gap:var(--space-2);margin:var(--space-2) 0;padding:var(--space-2) var(--space-3);border:1px solid var(--border);border-left:3px solid var(--primary);border-radius:var(--radius-md);background:var(--bg-alt)}.quote-preview-body{display:flex;flex-direction:column;gap:.15rem;min-width:0;flex:1}.qp-head{color:var(--ink-700)}.qp-content,.qp-head{font-size:var(--text-sm)}.qp-content{color:var(--ink);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.qp-remove{background:none;border:none;color:var(--muted);font-size:1.3rem;line-height:1;cursor:pointer;padding:0 var(--space-1);border-radius:var(--radius-sm);min-width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center}.qp-remove:hover{color:var(--ink)}.comment-mention-wrap,.compose-mention-wrap{position:relative}.mention-menu{position:absolute;left:0;right:0;top:100%;z-index:30;margin-top:2px;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-md,0 6px 24px rgba(0,0,0,.16));list-style:none;padding:.25rem;max-height:260px;overflow-y:auto}.mention-item{display:flex;align-items:center;gap:.5rem;padding:.45rem .55rem;border-radius:var(--radius-sm);cursor:pointer;font-size:var(--text-sm);min-height:44px}.mention-item.active,.mention-item:hover{background:rgba(var(--primary-rgb),.08)}.mention-ic{flex-shrink:0}.mention-label{font-weight:var(--weight-medium);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mention-sub{margin-inline-start:auto;color:var(--ink-700);font-size:.8em;flex-shrink:0}.img-preview-row{display:flex;gap:var(--space-2);flex-wrap:wrap;margin-top:var(--space-2)}.img-preview-item{position:relative;width:80px;height:80px;border-radius:var(--radius-md,10px);overflow:hidden}.img-preview-item img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.img-preview-item .remove{position:absolute;top:2px;right:2px;width:24px;height:24px;border-radius:50%;background:#0009;color:var(--text-on-dark,#fff);border:none;cursor:pointer;font-size:var(--text-xs);display:flex;align-items:center;justify-content:center;transition:background .3s var(--ease-out),transform .35s var(--ease-spring-gentle);opacity:0}.img-preview-item:hover .remove{opacity:1}.img-preview-item .remove:hover{background:#000c;transform:scale(1.1)}.img-preview-item .remove:active{transform:scale(.9)}.dark .img-preview-item .remove{background:#fff3}.dark .img-preview-item .remove:hover{background:#ffffff59}.skeleton{background:linear-gradient(105deg,var(--bg-alt) 30%,var(--line) 50%,var(--bg-alt) 70%);background-size:300% 100%;animation:shimmer 1.4s var(--ease-out) infinite;border-radius:var(--radius-sm)}.skeleton-text{height:12px;border-radius:6px;margin-bottom:var(--space-2)}.skeleton-text:last-child{width:60%}.skeleton-heading{height:20px;width:75%;border-radius:8px;margin-bottom:var(--space-3)}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.spinner{width:24px;height:24px;border:2.5px solid var(--line);border-top-color:var(--primary-fg);border-radius:50%;animation:spin .7s cubic-bezier(.4,.15,.6,.85) infinite}@keyframes spin{to{transform:rotate(1turn)}}.spinner-sm{width:18px;height:18px;border-width:2px}.dropdown{position:relative;display:inline-block}.dropdown-menu{position:absolute;top:100%;right:0;background:var(--surface-translucent);backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px);border:.5px solid rgba(0,0,0,.08);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);min-width:200px;padding:6px;display:none;z-index:var(--z-dropdown)}.dark .dropdown-menu{border-color:#ffffff1a}.dropdown-menu.show{display:block;animation:dropdownIn .25s var(--ease-spring-gentle)}@keyframes dropdownIn{0%{opacity:0;transform:translateY(-6px) scale(.97)}}.dropdown-item{display:flex;align-items:center;gap:var(--space-2);padding:10px 14px;border-radius:var(--radius-sm);font-size:.9rem;cursor:pointer;border:none;background:none;width:100%;text-align:left;color:var(--ink);min-height:var(--touch-min);transition:background .3s var(--ease-out),transform .3s}.dropdown-item:hover{background:var(--bg-warm)}.dropdown-item:active{transform:scale(.97);transition-duration:.08s}.dropdown-item:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.dropdown-item.danger{color:var(--error)}.dropdown-divider{height:.5px;background:var(--line);margin:var(--space-1) 0}.notif-bell,.notif-trigger{position:relative}.notif-trigger{background:none;border:none;font-size:1.3rem;cursor:pointer;padding:var(--space-2);min-width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);transition:background .3s var(--ease-out)}.notif-trigger:hover{background:var(--bg-warm)}.notif-trigger:active{transform:scale(.9);transition-duration:.08s}.notif-trigger:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.notif-badge{position:absolute;top:-4px;right:-6px;background:var(--error);color:var(--text-on-dark,#fff);font-size:.65rem;font-weight:800;min-width:18px;height:18px;border-radius:50%;display:flex;align-items:center;justify-content:center;border:2px solid var(--card);padding:0 3px;pointer-events:none;animation:notifPulse 2s var(--ease-out) infinite}@keyframes notifPulse{0%,to{transform:scale(1)}50%{transform:scale(1.15)}}.notif-dropdown{position:absolute;top:100%;right:0;z-index:var(--z-overlay);width:320px;max-width:calc(100vw - 24px);max-height:400px;background:var(--card);border:.5px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);overflow:hidden;margin-top:var(--space-2)}.notif-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-3) var(--space-4);border-bottom:.5px solid var(--line)}.notif-mark-read{background:none;border:none;color:var(--primary-fg);cursor:pointer;font-size:.82rem;font-weight:600;min-height:44px}.notif-mark-read:active{transform:scale(.95);transition-duration:.08s}.notif-mark-read:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.notif-list{overflow-y:auto;max-height:340px}.notif-item{padding:var(--space-3) var(--space-4);cursor:pointer;display:flex;align-items:flex-start;gap:var(--space-3);width:100%;text-align:left;background:none;border:none;border-bottom:.5px solid var(--line);font:inherit;color:inherit;transition:background .3s var(--ease-out),transform .35s var(--ease-spring-gentle)}.notif-item:hover{background:var(--bg-alt)}.notif-item:active{background:var(--line);transform:scale(.98);transition-duration:.08s}.notif-item:focus-visible{outline:2px solid var(--primary);outline-offset:-2px}.notif-item.unread{background:rgba(var(--primary-rgb),.06)}.notif-item-title{font-size:.88rem;font-weight:600}.notif-item-body{font-size:.82rem;color:var(--muted);margin-top:2px}.notif-item-time{font-size:.75rem;color:var(--muted);margin-top:3px;display:block}.notif-item-icon{flex:0 0 auto;font-size:1.15rem;line-height:1.4}.notif-item-content{flex:1 1 auto;min-width:0}.notif-item-body,.notif-item-title{overflow-wrap:anywhere}.notif-unread-dot{flex:0 0 auto;align-self:center;width:8px;height:8px;border-radius:50%;background:var(--primary-fg,var(--primary));margin-inline-start:var(--space-2)}.notif-empty{text-align:center;padding:var(--space-5);color:var(--muted);font-size:.88rem}.notif-loading{display:flex;justify-content:center;padding:var(--space-5)}.notif-drop-enter-active{transition:opacity .22s var(--ease-out),transform .22s var(--ease-spring-gentle)}.notif-drop-leave-active{transition:opacity .15s var(--ease-out),transform .15s var(--ease-out)}.notif-drop-enter-from,.notif-drop-leave-to{opacity:0;transform:translateY(-6px) scale(.97);transform-origin:top right}.save-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);background:var(--surface-translucent);backdrop-filter:saturate(180%) blur(16px);-webkit-backdrop-filter:saturate(180%) blur(16px);border:.5px solid var(--line);border-radius:var(--radius-full);padding:var(--space-2) var(--space-3);min-height:44px;cursor:pointer;font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--ink);transition:transform .35s var(--ease-spring-gentle),background .3s,border-color .3s,box-shadow .3s}.save-btn:hover{background:var(--card);border-color:var(--primary-fg);box-shadow:var(--shadow-sm)}.save-btn:active{transform:scale(.92);transition-duration:.08s}.save-btn.saved{background:var(--save-red-bg);border-color:var(--save-red-border);color:var(--save-red)}.save-btn.saved:hover{background:#dc262624}.save-btn:focus-visible{outline:2px solid var(--primary);outline-offset:3px}.save-btn-sm{width:44px;height:44px;min-height:44px;padding:0;background:#00000059;backdrop-filter:saturate(180%) blur(12px);-webkit-backdrop-filter:saturate(180%) blur(12px);border:none;color:var(--text-on-dark,#fff);box-shadow:0 2px 8px #00000026}.save-btn-sm:hover{background:#00000080;border:none;box-shadow:0 2px 12px #00000040}.save-btn-sm.saved{color:var(--save-red);border:none;box-shadow:0 2px 8px #0000001f}.save-btn-sm.saved,.save-btn-sm.saved:hover{background:var(--white)}.save-icon{width:20px;height:20px;flex-shrink:0;display:block;transition:transform .35s var(--ease-spring-gentle)}.save-btn-sm .save-icon{width:18px;height:18px}.save-btn.saved .save-icon{animation:savePop .4s var(--ease-bounce)}@keyframes savePop{0%{transform:scale(1)}30%{transform:scale(1.3)}60%{transform:scale(.9)}to{transform:scale(1)}}@keyframes reactionPop{0%{transform:scale(0);opacity:0}50%{transform:scale(1.3);opacity:1}to{transform:scale(1);opacity:1}}@keyframes heartBeat{0%{transform:scale(1)}15%{transform:scale(1.25)}30%{transform:scale(1)}45%{transform:scale(1.15)}60%{transform:scale(1)}}.reaction-btn.just-reacted{animation:reactionPop .3s ease-out}.save-btn.just-saved{animation:heartBeat .5s ease-out}@media(prefers-reduced-motion:reduce){.reaction-btn.just-reacted,.save-btn.just-saved{animation:none}}.save-label{white-space:nowrap}@media(max-width:640px){.save-btn:not(.saved){background:var(--card)}.save-btn-sm:not(.saved),.save-btn:not(.saved){backdrop-filter:none;-webkit-backdrop-filter:none}.save-btn-sm:not(.saved){background:#0009}.save-btn-sm:not(.saved):hover{background:#000000b8}.dark .save-btn:not(.save-btn-sm):not(.saved){background:var(--card)}.dark .save-btn-sm:not(.saved){background:#0009}.dark .save-btn-sm:not(.saved):hover{background:#000000b8}}.search-ac{position:relative}.search-ac form{display:contents}@media(max-width:640px){.topbar-search.search-ac{display:none!important}}.ac-dropdown{position:absolute;top:100%;left:0;right:0;margin-top:var(--space-2);background:var(--glass-bg-heavy);backdrop-filter:var(--glass-heavy);-webkit-backdrop-filter:var(--glass-heavy);border:.5px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-xl);z-index:var(--z-overlay);overflow:hidden;min-width:280px}.ac-item{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);text-decoration:none;color:var(--ink);font-size:var(--text-sm);transition:background .3s;cursor:pointer;animation:acItemIn .2s var(--ease-out) both}.ac-item:nth-child(2){animation-delay:.03s}.ac-item:nth-child(3){animation-delay:.06s}.ac-item:nth-child(4){animation-delay:.09s}.ac-item:nth-child(5){animation-delay:.12s}@keyframes acItemIn{0%{opacity:0;transform:translateY(-4px)}}.ac-item.highlighted,.ac-item:hover{background:var(--bg-alt)}.ac-item:focus-visible{outline:2px solid var(--primary);outline-offset:-2px;border-radius:var(--radius-sm)}.ac-item:active{transform:scale(.97);transition-duration:.08s}.ac-emoji{font-size:1.2rem;flex-shrink:0;width:28px;text-align:center}.ac-info{display:flex;flex-direction:column;gap:1px;min-width:0}.ac-name{font-weight:var(--weight-semibold);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ac-meta{display:flex;align-items:center;gap:var(--space-2);min-width:0}.ac-type{font-size:var(--text-xs);color:var(--primary-fg);font-weight:var(--weight-medium);flex-shrink:0}.ac-type+.ac-place:before{content:"·";margin-inline-end:var(--space-2);color:var(--muted);opacity:.6}.ac-place{font-size:var(--text-xs);color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.ac-all{border-top:.5px solid var(--line);color:var(--primary-fg);font-weight:var(--weight-semibold)}.ac-clear{position:absolute;right:var(--space-2);top:50%;transform:translateY(-50%);display:grid;place-items:center;width:32px;height:32px;border:0;background:none;color:var(--muted);border-radius:var(--radius-full);cursor:pointer;transition:color .2s,background .2s;z-index:1}.ac-clear:hover{color:var(--ink);background:var(--bg-alt)}.search-ac input[type=search]{padding-inline-end:36px}.ac-section{padding-block:var(--space-2)}.ac-section-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-2) var(--space-4) var(--space-1)}.ac-section-title{font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.ac-section-clear{font-size:var(--text-xs);color:var(--primary-fg);background:none;border:0;padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);cursor:pointer;transition:background .2s}.ac-section-clear:hover{background:var(--bg-alt)}.ac-recent .ac-info{flex:1}.ac-remove-recent{margin-inline-start:auto;flex-shrink:0;display:grid;place-items:center;width:32px;height:32px;border:0;background:none;color:var(--muted);border-radius:var(--radius-full);cursor:pointer;opacity:0;transition:opacity .2s,color .2s,background .2s}.ac-recent.highlighted .ac-remove-recent,.ac-recent:hover .ac-remove-recent{opacity:1}.ac-remove-recent:hover{color:var(--ink);background:var(--bg-alt)}.ac-empty{padding:var(--space-5) var(--space-4);text-align:center;color:var(--muted);font-size:var(--text-sm);line-height:1.5}.ac-loading{display:flex;justify-content:center;padding:var(--space-5)}@media(hover:none){.ac-remove-recent{opacity:1}.ac-clear,.ac-remove-recent{width:40px;height:40px}}.dark .save-btn:not(.save-btn-sm){background:#1c1c1ee0;border-color:var(--line)}.dark .save-btn:not(.save-btn-sm):hover{background:var(--card)}.dark .save-btn-sm{background:#ffffff2e}.dark .save-btn-sm:hover{background:#ffffff47}.dark .save-btn-sm.saved{background:#1c1c1ee6}.dark .input,.dark .select,.dark .textarea{background:#ffffff0d;border-color:#ffffff1a;color:var(--ink)}.dark .input:focus,.dark .select:focus,.dark .textarea:focus{background:var(--card);border-color:var(--primary-fg);box-shadow:0 0 0 3px rgba(var(--primary-rgb),.15)}.dark .input::-moz-placeholder{color:#ffffff59}.dark .input::placeholder{color:#ffffff59}.dark .modal{box-shadow:0 24px 80px #0000008c;border-color:#ffffff14}.dark .modal-overlay{background:#000000a6}.dark .modal-close:hover{background:#ffffff14}.dark .otp-input input{background:var(--bg-alt);border-color:var(--line);color:var(--ink)}.dark .otp-input input:focus{box-shadow:0 0 0 3px rgba(var(--primary-rgb),.2)}.dark .notif-badge{border-color:var(--card)}.dark .notif-dropdown{background:var(--card);border-color:var(--line);box-shadow:0 8px 32px #0006}.dark .notif-item:hover{background:#ffffff0a}.dark .notif-item:active{background:#ffffff12}.dark .notif-item.unread{background:rgba(var(--primary-rgb),.08)}.dark .tag-primary{background:rgba(var(--primary-rgb),.16)}.dark .tag-accent{background:rgba(var(--accent-rgb),.18)}.dark .tag-secondary{background:rgba(var(--secondary-rgb),.16)}.dark .tag-tertiary{background:#33646e29}.dark .tag-muted{background:#ffffff0f}.dark .ac-dropdown{background:var(--glass-bg-heavy);border-color:#ffffff14;box-shadow:var(--shadow-xl)}.dark .ac-item.highlighted,.dark .ac-item:hover{background:#ffffff0d}.dark .ac-all{border-color:var(--line)}.dark .ai-besttime,.dark .ai-search-assist,.dark .ai-tips{background:#ffffff08;border-color:var(--line)}.dark .ai-search-header{border-bottom-color:var(--line)}.dark .onboarding-overlay{background:#0009}.dark .sf-icon{background:#ffffff0f}.dark .sheet-feature:hover{background:#ffffff0a}.dark .sheet-close:hover{background:#ffffff14}.dark .btn-ghost:hover:not(:disabled){background:#ffffff0f}.dark .btn-outline{border-color:var(--primary-fg)}.dark .btn-outline:hover:not(:disabled){background:var(--primary)}.ai-recommend{max-width:var(--maxw);margin:var(--space-8) auto 0;padding:0 var(--space-5)}.detail-aside .ai-recommend,.detail-main .ai-recommend{max-width:none;padding:0}.ai-tips{background:var(--bg-warm);border:.5px solid var(--line);border-radius:var(--radius-md);overflow:hidden;margin-top:var(--space-5)}.ai-tips-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-4) var(--space-5);cursor:pointer;background:none;border:none;font:inherit;color:inherit;width:100%;text-align:left}.ai-tips-header h3{margin:0;font-size:.95rem;color:var(--ink)}.ai-tips-header:active{transform:scale(.98);transition-duration:.08s}.ai-tips-header:focus-visible{outline:2px solid var(--primary);outline-offset:-2px}.ai-toggle{font-size:.75rem;color:var(--muted)}.ai-tips-body{padding:0 var(--space-5) var(--space-4);font-size:.9rem;line-height:1.7}.ai-content{color:var(--ink)}.ai-loading{text-align:center;padding:var(--space-4)}.ai-loading small{display:block;margin-top:var(--space-2);color:var(--muted);font-size:.82rem}.ai-besttime{background:var(--bg-warm);border:.5px solid var(--line);border-radius:var(--radius-md);padding:var(--space-4) var(--space-5);margin-top:var(--space-3)}.ai-besttime h4{margin:0 0 var(--space-2);font-size:.88rem;color:var(--ink)}.ai-besttime-text{font-size:.88rem;color:var(--muted);margin:0;line-height:1.6}.ai-search-assist{background:var(--bg-warm);border:.5px solid var(--line);border-radius:var(--radius-md);margin-bottom:var(--space-5);overflow:hidden}.ai-search-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-3) var(--space-5);border-bottom:.5px solid rgba(0,0,0,.06)}.ai-search-header span{font-weight:700;font-size:.9rem;color:var(--ink)}.ai-toggle-btn{background:none;border:none;color:var(--primary-fg);cursor:pointer;font-size:.82rem;font-weight:600;min-height:44px;display:inline-flex;align-items:center;padding:var(--space-2) 0}.ai-toggle-btn:active{transform:scale(.92);transition-duration:.08s}.ai-toggle-btn:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.ai-search-body{padding:var(--space-4) var(--space-5);font-size:.9rem;line-height:1.7;color:var(--ink)}.ai-search-suggestions{padding:0 var(--space-5) var(--space-4);display:flex;gap:var(--space-2);flex-wrap:wrap}.onboarding-overlay{position:fixed;inset:0;z-index:var(--z-modal-high);background:#0006;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:flex-end;justify-content:center;box-sizing:border-box}.onboarding-sheet{position:relative;width:100%;min-width:0;max-width:min(480px,100vw);box-sizing:border-box;background:var(--card);border-radius:var(--radius-xl) var(--radius-xl) 0 0;padding:var(--space-8) var(--space-6) var(--space-6);box-shadow:var(--shadow-xl);border:.5px solid var(--line);border-bottom:none;display:flex;flex-direction:column;max-height:min(90vh,calc(100vh - 40px));overflow:hidden;overflow-wrap:break-word}.sheet-close{position:absolute;top:var(--space-3);right:var(--space-3);background:var(--bg-alt);border:none;border-radius:var(--radius-full);width:44px;height:44px;font-size:1.2rem;cursor:pointer;color:var(--muted);display:flex;align-items:center;justify-content:center;transition:background .3s var(--ease-out),transform .35s var(--ease-spring-gentle),color .3s var(--ease-out)}.sheet-close:hover{background:var(--line);color:var(--ink)}.sheet-close:active{transform:scale(.9);transition-duration:.08s}.sheet-close:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.sheet-header{text-align:center;margin-bottom:var(--space-6);flex-shrink:0}.sheet-emoji{font-size:2.5rem;display:block;margin-bottom:var(--space-3)}.sheet-header h2{margin:0 0 var(--space-2);font-size:var(--text-xl);font-weight:var(--weight-bold);color:var(--ink)}.sheet-header p{margin:0;color:var(--muted);font-size:var(--text-sm);line-height:var(--leading-relaxed)}.sheet-features{flex-direction:column;margin-bottom:var(--space-6);overflow-y:auto;flex:1;min-height:0;overscroll-behavior-y:contain}.sheet-feature,.sheet-features{display:flex;gap:var(--space-4)}.sheet-feature{align-items:flex-start;padding:var(--space-3);margin:calc(var(--space-3)*-1);border-radius:var(--radius-md);transition:background .3s var(--ease-out)}.sheet-feature:hover{background:var(--overlay-subtle,rgba(0,0,0,.03))}.sf-icon{font-size:1.5rem;flex-shrink:0;width:40px;height:40px;background:var(--bg-warm);border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;transition:transform .35s var(--ease-spring-gentle)}.sheet-feature:hover .sf-icon{transform:scale(1.08)}.sheet-feature strong{display:block;font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--ink);margin-bottom:2px}.sheet-feature p{margin:0;font-size:var(--text-xs);color:var(--muted);line-height:var(--leading-relaxed)}.sheet-actions{display:flex;gap:var(--space-3);justify-content:center;flex-shrink:0}.sheet-actions .btn-ghost{background:none;border:none;color:var(--muted);cursor:pointer;font-size:var(--text-sm);font-weight:var(--weight-semibold);padding:11px 22px;border-radius:var(--radius-sm);min-height:44px}.sheet-actions .btn-ghost:hover{color:var(--ink);background:var(--bg-alt)}.sheet-actions .btn-ghost:active{transform:scale(.95);transition-duration:.08s}.sheet-actions .btn-ghost:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.sheet-enter-active{transition:opacity .5s var(--ease-out-expo)}.sheet-enter-active .onboarding-sheet{transition:transform .5s var(--ease-spring-gentle)}.sheet-leave-active{transition:opacity .35s var(--ease-out-expo)}.sheet-leave-active .onboarding-sheet{transition:transform .35s var(--ease-out-expo)}.sheet-enter-from{opacity:0}.sheet-enter-from .onboarding-sheet{transform:translateY(100%)}.sheet-leave-to{opacity:0}.sheet-leave-to .onboarding-sheet{transform:translateY(100%)}@media(min-width:769px){.onboarding-overlay{align-items:center}.onboarding-sheet{border-radius:var(--radius-xl);max-width:440px}.sheet-enter-from .onboarding-sheet{transform:translateY(40px) scale(.95)}.sheet-leave-to .onboarding-sheet{transform:translateY(20px) scale(.98)}}.empty-state{text-align:center;padding:var(--space-12) var(--space-5);position:relative}.empty-state:before{content:"";position:absolute;top:50%;left:50%;width:280px;height:280px;transform:translate(-50%,-55%);border-radius:50%;background:radial-gradient(circle,rgba(var(--primary-rgb),.06) 0,transparent 70%);pointer-events:none;z-index:0}.empty-state>*{position:relative;z-index:1}.empty-icon{font-size:3rem;display:block;margin-bottom:var(--space-4);line-height:1}.empty-illust{width:160px;height:auto;margin:0 auto var(--space-4);display:block;animation:emptyFloat 4s var(--ease-out) infinite}@keyframes emptyFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.empty-title{font-size:var(--text-xl);color:var(--ink);margin:0 0 var(--space-2);font-weight:var(--weight-semibold)}.empty-text{color:var(--muted);font-size:var(--text-base);margin:0 auto;line-height:var(--leading-relaxed);max-width:400px}.empty-actions{display:flex;gap:var(--space-3);justify-content:center;margin-top:var(--space-5);flex-wrap:wrap}.menu-pop-enter-active{transition:opacity .2s var(--ease-out),transform .25s var(--ease-spring-gentle)}.menu-pop-leave-active{transition:opacity .15s var(--ease-out),transform .15s var(--ease-out)}.menu-pop-enter-from,.menu-pop-leave-to{opacity:0;transform:translateY(-6px) scale(.97)}@media(min-width:769px)and (max-width:1024px){.auth-area{gap:var(--space-2)}.auth-btn{padding:var(--space-2) 14px;font-size:.85rem}.notif-dropdown{right:-40px}.toast-container{bottom:calc(72px + env(safe-area-inset-bottom))}}@media(max-width:520px){.modal{max-width:100%;border-radius:18px 18px 0 0}.modal-overlay{align-items:flex-end;padding:0}.otp-input input{width:40px;height:48px;font-size:1.2rem}}@media(prefers-reduced-motion:reduce){.btn:active:not(:disabled),.btn:hover:not(:disabled){transform:none}.ac-dropdown,.ac-item,.input.error,.modal,.modal-overlay,.skeleton,.textarea.error,.toast{animation:none}.skeleton{background:var(--bg-alt)}.save-btn:active,.star-rating .star:active,.star-rating .star:hover{transform:none}.notif-badge,.save-btn.saved .save-icon{animation:none}.notif-item:active{transform:none}.empty-illust,.form-error,.journey-bar{animation:none}.sheet-enter-active,.sheet-leave-active{transition:opacity .15s}.sheet-enter-active .onboarding-sheet,.sheet-leave-active .onboarding-sheet{transition:none}.sheet-feature:hover{background:none}.sheet-feature:hover .sf-icon{transform:none}}.sediment-head h2,h2.sediment-head{font-family:var(--font-editorial);font-weight:600;letter-spacing:-.01em;position:relative;padding-left:var(--space-4)}.sediment-head h2:before,h2.sediment-head:before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:4px;height:1.05em;border-radius:var(--radius-full);background:linear-gradient(180deg,var(--river-600) 0,var(--amber-600) 52%,var(--clay-600) 100%)}.dark .sediment-head h2:before,.dark h2.sediment-head:before{background:linear-gradient(180deg,#74abb5 0,var(--amber-500) 52%,var(--clay-400) 100%)}.grid{display:grid;gap:var(--space-5);grid-template-columns:repeat(auto-fill,minmax(220px,1fr));container-type:inline-size;content-visibility:auto;contain-intrinsic-size:auto 400px}@container (max-width: 720px){.grid{gap:var(--space-4)}}@container (max-width: 480px){.grid{grid-template-columns:1fr}}@container (min-width: 481px) and (max-width: 720px){.grid{grid-template-columns:repeat(2,1fr)}}.card{background:var(--card);border:.5px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-sm);transition:var(--transition-card);display:flex;flex-direction:column}.card:hover{transform:translateY(-6px);box-shadow:var(--shadow-lg);border-color:var(--border);will-change:transform}.card:active{transform:translateY(-1px) scale(.97);transition-duration:.1s}.card:focus-visible{outline:2px solid var(--primary);outline-offset:3px;transform:translateY(-6px)}.cover{height:96px;display:flex;align-items:center;justify-content:center;position:relative;color:var(--text-on-dark,#fff)}.cover span:not(.cover-tag){font-size:var(--icon-xl);filter:drop-shadow(var(--shadow-text))}.cover-img{position:relative;height:var(--card-cover-height,160px);overflow:hidden;background:linear-gradient(110deg,var(--bg-alt) 30%,var(--card) 50%,var(--bg-alt) 70%);background-size:200% 100%;animation:shimmer 1.6s linear infinite;aspect-ratio:5/2}.cover-img:has(img.loaded),.cover-img:has(img:not([loading=lazy])){animation:none;background:var(--bg-alt)}.cover-img img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;transition:transform .5s var(--ease-out-expo),opacity .5s var(--ease-out-expo),filter .5s var(--ease-out-expo)}.cover-img img[loading=lazy]{opacity:0;transform:scale(1.02);filter:blur(2px)}.cover-img img.loaded,.cover-img img:not([loading=lazy]){opacity:1;transform:scale(1);filter:blur(0);transition:opacity .6s var(--ease-out-expo),transform .6s var(--ease-out-expo),filter .6s var(--ease-out-expo)}.cover-generated{background-size:cover;background-position:50%;background-repeat:no-repeat;animation:none}.cover-svg-icon{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:78px;height:78px;opacity:.72;color:var(--text-on-dark,#fff);pointer-events:none;filter:drop-shadow(0 2px 6px rgba(0,0,0,.18))}.cover-svg-icon :deep(svg),.cover-svg-icon svg{width:100%;height:100%;display:block}.cover-tag{position:absolute;bottom:var(--space-2);left:var(--space-2);font-size:.7rem;font-weight:var(--weight-semibold);padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);color:var(--text-on-dark,#fff);background:var(--overlay-dark,rgba(0,0,0,.45));backdrop-filter:var(--glass);-webkit-backdrop-filter:var(--glass);letter-spacing:.02em;border:.5px solid hsla(0,0%,100%,.15)}.card-save{position:absolute;top:var(--space-3);right:var(--space-3);z-index:2}.card-b{padding:var(--space-4) var(--space-4) var(--space-5);display:flex;flex-direction:column;gap:var(--space-2);flex:1}.card-type{display:inline-flex;align-items:center;gap:var(--space-2);font-size:.7rem;font-weight:var(--weight-semibold);text-transform:uppercase;letter-spacing:var(--tracking-caps);color:var(--primary-fg)}.card h3{font-size:1.06rem;font-weight:var(--weight-semibold);text-overflow:ellipsis;letter-spacing:var(--tracking-tight);line-height:var(--leading-snug)}.card .summary,.card h3{margin:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.card .summary{color:var(--muted);font-size:var(--text-sm);line-height:var(--leading-relaxed)}.card .place{margin:0;font-size:.84rem;opacity:.7}.itinerary-badge-row{display:flex;flex-wrap:wrap;gap:var(--space-2);margin:var(--space-1) 0 0}.itinerary-duration-badge,.itinerary-stops-badge{display:inline-flex;align-items:center;gap:var(--space-1);font-size:.74rem;font-weight:var(--weight-semibold);padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);letter-spacing:.01em;white-space:nowrap;transition:transform .35s var(--ease-spring-gentle),box-shadow .35s var(--ease-out-expo)}.itinerary-duration-badge{background:linear-gradient(135deg,rgba(var(--accent-rgb),.9),rgba(var(--accent-rgb),.65));color:var(--ink);box-shadow:0 1px 2px rgba(var(--accent-rgb),.3)}.itinerary-stops-badge{background:rgba(var(--secondary-rgb),.14);color:var(--secondary-dark);border:.5px solid rgba(var(--secondary-rgb),.22)}.card:hover .itinerary-duration-badge{transform:translateY(-1px);animation:itin-duration-glow 2.4s var(--ease-out) infinite}.card:hover .itinerary-stops-badge{transform:translateY(-1px)}@keyframes itin-duration-glow{0%,to{box-shadow:0 1px 2px rgba(var(--accent-rgb),.3),0 0 rgba(var(--accent-rgb),0)}50%{box-shadow:0 1px 2px rgba(var(--accent-rgb),.3),0 0 0 4px rgba(var(--accent-rgb),.16)}}.dark .itinerary-duration-badge{background:linear-gradient(135deg,rgba(var(--accent-rgb),.95),rgba(var(--accent-rgb),.72));color:var(--on-accent)}.dark .itinerary-stops-badge{background:rgba(var(--secondary-rgb),.22);color:var(--secondary-fg);border-color:rgba(var(--secondary-rgb),.4)}.card-meta{display:none}.cm-item{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:140px}.badges{display:flex;gap:var(--space-1);flex-wrap:wrap;margin-top:auto;padding-top:var(--space-1)}.badge{font-size:.72rem;padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);font-weight:var(--weight-medium);transition:transform .3s var(--ease-spring-gentle),opacity .3s var(--ease-out)}.card:hover .badge{transform:translateY(-1px)}.badge.season{background:var(--badge-season-bg);color:var(--primary-fg)}.badge.peak{background:var(--accent)}.badge.ocop{background:var(--badge-ocop-bg);color:var(--secondary-dark);border:.5px solid var(--leaf-100)}.badge.ocop-5{background:linear-gradient(135deg,var(--secondary),var(--secondary-dark));color:var(--text-on-dark,#fff);border-color:transparent}.badge.ocop-4{background:rgba(var(--secondary-rgb),.15);color:var(--secondary-dark);border-color:rgba(var(--secondary-rgb),.3)}.badge.ocop-3{background:var(--badge-ocop-bg);color:var(--secondary-dark)}.badge.year{background:var(--badge-year-bg);color:var(--muted)}.cover.cat-experience{background:var(--cat-experience)}.cover.cat-product{background:var(--cat-product)}.cover.cat-attraction{background:var(--cat-attraction)}.cover.cat-craft{background:var(--cat-craft)}.cover.cat-accommodation{background:var(--cat-accommodation)}.cover.cat-dish{background:var(--cat-dish)}.cover.cat-itinerary{background:var(--cat-itinerary)}.cover.cat-org{background:var(--cat-org)}.cover.cat-place{background:var(--cat-place)}@media(min-width:769px)and (max-width:1024px){.grid,.grid.itin{grid-template-columns:repeat(2,1fr)}}.dark .card{background:var(--card);border-color:var(--line)}.dark .card:hover{box-shadow:var(--shadow-lg);border-color:#ffffff1a}.dark .card h3{color:#f0f0f2}.dark .card .summary{color:#b8b8be}.dark .card .place{color:#a0a0a6;opacity:1}.dark .card-type{color:var(--primary-fg-strong)}.dark .cover-img{background:linear-gradient(110deg,var(--bg-alt) 30%,hsla(0,0%,100%,.04) 50%,var(--bg-alt) 70%);background-size:200% 100%}.dark .cover-tag{background:#0009;border-color:#ffffff1a;color:#f0f0f2}.dark .badge{color:#e0e0e4}.dark .badge.season{background:var(--badge-season-bg);color:var(--primary-fg-strong)}.dark .badge.peak{color:var(--on-accent)}.dark .badge.ocop{color:var(--secondary-fg);border-color:#4ba97d4d}.dark .badge.ocop-5{color:var(--text-on-dark,#fff);box-shadow:0 0 0 2px rgba(var(--secondary-rgb),.3)}.dark .badge.ocop-4{background:rgba(var(--secondary-rgb),.22);color:var(--secondary-fg);border-color:rgba(var(--secondary-rgb),.4)}.dark .badge.ocop-3{color:var(--secondary-fg);border-color:#4ba97d4d}.dark .badge.year{background:#ffffff14;color:#b8b8be}.card .cover-img:after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(0deg,rgba(0,0,0,.3) 0,rgba(0,0,0,.06) 34%,transparent 62%);opacity:.85;transition:opacity .5s var(--ease-out-expo);z-index:1}.card:hover .cover-img:after{opacity:1}.card .card-save,.card .cover-tag{z-index:2}.cover-generated .cover-svg-icon{transition:transform .5s var(--ease-spring-gentle),opacity .5s var(--ease-out-expo)}.card:hover .cover-generated .cover-svg-icon{transform:translate(-50%,-50%) scale(1.08);opacity:.8}.card{position:relative}.card:hover{box-shadow:var(--shadow-lg),0 0 0 1px rgba(var(--primary-rgb),.14),0 18px 40px -18px rgba(var(--primary-rgb),.35)}.card:focus-visible{box-shadow:var(--shadow-lg),0 0 0 1px rgba(var(--primary-rgb),.14),0 18px 40px -18px rgba(var(--primary-rgb),.35)}.card:before{content:"";position:absolute;inset:0;z-index:3;pointer-events:none;border-radius:inherit;background:linear-gradient(180deg,hsla(0,0%,100%,.55),transparent 18%);opacity:0;transition:opacity .45s var(--ease-out-expo);mix-blend-mode:overlay}.card:hover:before{opacity:.9}.card:hover .cover-img img.loaded{transform:scale(var(--img-hover-scale))}.badge.peak{background:linear-gradient(135deg,var(--accent),var(--accent-dark));color:var(--ink);font-weight:var(--weight-semibold);box-shadow:0 1px 2px rgba(var(--accent-rgb),.35);position:relative}.card:hover .badge.peak{animation:badge-pulse 2.4s var(--ease-out) infinite}@keyframes badge-pulse{0%,to{box-shadow:0 1px 2px rgba(var(--accent-rgb),.35),0 0 rgba(var(--accent-rgb),0)}50%{box-shadow:0 1px 2px rgba(var(--accent-rgb),.35),0 0 0 4px rgba(var(--accent-rgb),.14)}}.badge.ocop,.badge.season,.badge.year{box-shadow:var(--shadow-xs)}.badge.ocop-5{box-shadow:0 0 0 2px rgba(var(--secondary-rgb),.2)}.card-type:before{content:"";width:5px;height:5px;border-radius:50%;background:currentColor;flex:0 0 auto;opacity:.65}.card .cover-tag{transition:transform .4s var(--ease-spring-gentle),background .3s var(--ease-out)}.card:hover .cover-tag{transform:translateY(-2px)}.grid>.card{animation:card-rise .55s var(--ease-out-expo) both}.grid>.card:first-child{animation-delay:.02s}.grid>.card:nth-child(2){animation-delay:.06s}.grid>.card:nth-child(3){animation-delay:.1s}.grid>.card:nth-child(4){animation-delay:.14s}.grid>.card:nth-child(5){animation-delay:.18s}.grid>.card:nth-child(6){animation-delay:.22s}.grid>.card:nth-child(7){animation-delay:.26s}.grid>.card:nth-child(8){animation-delay:.3s}@keyframes card-rise{0%{opacity:0;transform:translateY(14px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}.dark .card:hover{box-shadow:var(--shadow-lg),0 0 0 1px rgba(var(--primary-rgb),.22),0 18px 44px -18px #000000b3}.dark .card:focus-visible{box-shadow:var(--shadow-lg),0 0 0 1px rgba(var(--primary-rgb),.22),0 18px 44px -18px #000000b3}.dark .card:before{background:linear-gradient(180deg,hsla(0,0%,100%,.1),transparent 18%)}.dark .card .cover-img:after{background:linear-gradient(0deg,rgba(0,0,0,.5) 0,rgba(0,0,0,.12) 34%,transparent 62%)}.card.cat-product .cover-img{--card-cover-height:180px}@media(max-width:480px){.card.cat-product .cover-img{--card-cover-height:160px}}.scroll-row.honor-roll .card:hover{transform:translateY(-8px);box-shadow:var(--shadow-lg),0 0 0 1px rgba(var(--secondary-rgb),.2),0 18px 40px -18px rgba(var(--secondary-rgb),.35)}.dark .scroll-row.honor-roll .card:hover{box-shadow:var(--shadow-lg),0 0 0 1px rgba(var(--secondary-rgb),.3),0 18px 44px -18px #000000b3}@media(max-width:640px){.cover-tag{backdrop-filter:none;-webkit-backdrop-filter:none}}@media(prefers-reduced-motion:reduce){.card:active,.card:hover{transform:none}.card:focus-visible{transform:none}.card:hover .badge,.card:hover .cover-img img.loaded{transform:none}.cover-img{animation:none}.cover-img img[loading=lazy]{opacity:1;transform:none;filter:none}.card:before,.card:hover:before{opacity:0;transition:none}.card .cover-img:after{transition:none}.scroll-row.honor-roll .card:hover{transform:none}.card:hover .cover-generated .cover-svg-icon{transform:translate(-50%,-50%)}.card:hover .cover-tag{transform:none}.card:hover .badge.peak,.grid>.card{animation:none}.card:hover .itinerary-duration-badge{transform:none;animation:none;box-shadow:0 1px 2px rgba(var(--accent-rgb),.3),0 0 0 4px rgba(var(--accent-rgb),.16)}.card:hover .itinerary-stops-badge{transform:none}}.breadcrumb{max-width:var(--maxw);margin:0 auto;padding:var(--space-3) var(--space-5) 0;display:flex;align-items:center;gap:var(--space-2)}.bc-back{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;min-width:44px;min-height:44px;border-radius:var(--radius-full);border:.5px solid var(--line);background:var(--card);color:var(--ink);font-size:1.15rem;line-height:1;cursor:pointer;transition:background .3s var(--ease-out),border-color .3s var(--ease-out),transform .35s var(--ease-spring-gentle),box-shadow .3s var(--ease-out)}.bc-back:hover{background:var(--bg-warm);border-color:var(--primary-fg);transform:translate(-2px);box-shadow:var(--shadow-xs)}.bc-back:active{transform:scale(.93);transition-duration:.08s}.bc-back:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.dark .bc-back{background:var(--card);border-color:var(--line)}.dark .bc-back:hover{background:#ffffff0f}.breadcrumb ol{flex:1;min-width:0;list-style:none;margin:0;padding:0;display:flex;flex-wrap:nowrap;gap:var(--space-1);font-size:var(--text-xs);color:var(--muted);overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:none;-webkit-overflow-scrolling:touch;mask-image:linear-gradient(90deg,#000 85%,transparent);-webkit-mask-image:linear-gradient(90deg,#000 85%,transparent)}.breadcrumb ol::-webkit-scrollbar{display:none}.breadcrumb li{white-space:nowrap;flex-shrink:0}.breadcrumb li:after{content:"/";margin-inline-start:var(--space-2);opacity:.4;font-weight:300}.breadcrumb li:last-child:after{display:none}.breadcrumb li:last-child{color:var(--ink);font-weight:var(--weight-semibold)}.breadcrumb a{color:var(--primary-fg);transition:color .3s var(--ease-out),text-decoration-color .25s var(--ease-out);min-height:44px;display:inline-flex;align-items:center;padding:var(--space-2) var(--space-1);text-decoration-line:underline;text-decoration-color:transparent;text-underline-offset:3px;text-decoration-thickness:1px}.breadcrumb a:hover{text-decoration-color:var(--primary-fg)}.breadcrumb a:active{opacity:.7}.breadcrumb a:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.highlights{display:flex;flex-wrap:wrap;margin:0 0 var(--space-5)}.highlights,.hl{gap:var(--space-2)}.hl{display:inline-flex;align-items:center;padding:var(--space-2) var(--space-4);border-radius:var(--radius-full);font-size:var(--text-sm);font-weight:var(--weight-semibold);min-height:44px;line-height:1.2;flex-shrink:0;max-width:100%;overflow-wrap:break-word;word-break:break-word}.hl:not(a){background:var(--bg-warm);color:var(--ink);border:.5px solid var(--line);transition:transform .3s var(--ease-spring-gentle),box-shadow .3s var(--ease-out),background .3s var(--ease-out),border-color .3s var(--ease-out)}.hl:not(a):hover{transform:translateY(-1px);box-shadow:var(--shadow-xs);background:var(--card);border-color:var(--border)}a.hl{background:var(--primary);color:var(--text-on-dark,#fff);min-height:44px;box-shadow:0 2px 8px rgba(var(--primary-rgb),.28),inset 0 1px #ffffff29;transition:background .3s var(--ease-out),transform .3s var(--ease-spring-gentle),box-shadow .3s var(--ease-out-expo)}a.hl:hover{background:var(--primary-dark);transform:translateY(-2px);box-shadow:0 6px 18px rgba(var(--primary-rgb),.36),inset 0 1px #fff3}a.hl:active{transform:scale(.96);transition-duration:.08s}a.hl:focus-visible{outline:2px solid var(--accent);outline-offset:2px}a.hl-action[href^="https://zalo"]{background:var(--brand-zalo);box-shadow:0 2px 8px #0068ff4d,inset 0 1px #ffffff2e}a.hl-action[href^="https://zalo"]:hover{background:var(--brand-zalo-hover);box-shadow:0 6px 18px #0068ff61,inset 0 1px #ffffff38}.detail-gallery .detail-img{cursor:pointer;transition:opacity .3s var(--ease-out),transform .35s var(--ease-spring-gentle)}.detail-gallery .detail-img:hover{opacity:.85;transform:scale(var(--img-hover-scale))}.detail-gallery .detail-img:active{transform:scale(.97);transition-duration:.08s}.lightbox{position:fixed;inset:0;z-index:var(--z-lightbox);background:#000000f0;backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);display:flex;align-items:center;justify-content:center;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}.lb-fade-enter-active{transition:opacity .3s var(--ease-out-expo)}.lb-fade-enter-active .lb-img{transition:transform .4s var(--ease-spring-gentle),opacity .3s var(--ease-out)}.lb-fade-leave-active{transition:opacity .25s var(--ease-out)}.lb-fade-enter-from,.lb-fade-leave-to{opacity:0}.lb-fade-enter-from .lb-img{transform:scale(.92)}.lb-img{max-width:90vw;max-height:85vh;-o-object-fit:contain;object-fit:contain;border-radius:var(--radius-md);box-shadow:0 16px 64px #00000080;transition:transform .35s var(--ease-spring-gentle),opacity .3s var(--ease-out);-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-user-drag:none;touch-action:manipulation}.lb-close{position:absolute;top:var(--space-4);right:var(--space-5);font-size:1.6rem;color:var(--text-on-dark,#fff);background:#ffffff1a;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:.5px solid hsla(0,0%,100%,.15);cursor:pointer;line-height:1;width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:background .3s var(--ease-out),transform .3s var(--ease-spring-gentle)}.lb-close:hover{background:#ffffff38;transform:scale(1.08)}.lb-close:active{transform:scale(.9);transition-duration:.08s}.lb-close:focus-visible{outline:2px solid #fff;outline-offset:2px}.lb-next,.lb-prev{position:absolute;top:50%;transform:translateY(-50%);font-size:1.6rem;color:var(--text-on-dark,#fff);background:#ffffff14;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:.5px solid hsla(0,0%,100%,.12);cursor:pointer;width:48px;height:48px;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:background .3s var(--ease-out),transform .3s var(--ease-spring-gentle)}.lb-prev{left:var(--space-4)}.lb-next{right:var(--space-4)}.lb-next:hover,.lb-prev:hover{background:#fff3;transform:translateY(-50%) scale(1.08)}.lb-next:active,.lb-prev:active{transform:translateY(-50%) scale(.92)}.lb-next:focus-visible,.lb-prev:focus-visible{outline:2px solid #fff;outline-offset:2px}.lb-counter{position:absolute;bottom:var(--space-5);left:50%;transform:translate(-50%);color:var(--text-on-dark,#fff);font-size:var(--text-sm);font-weight:var(--weight-semibold);background:#00000073;backdrop-filter:var(--glass);-webkit-backdrop-filter:var(--glass);padding:var(--space-1) var(--space-4);border-radius:var(--radius-full);letter-spacing:.02em;border:.5px solid hsla(0,0%,100%,.12)}.map-filters{display:flex;gap:var(--space-2);flex-wrap:wrap;margin-bottom:var(--space-3)}@media(max-width:840px){.map-filters{flex-wrap:nowrap;overflow-x:auto;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding-bottom:var(--space-1)}.map-filters::-webkit-scrollbar{display:none}}#mapContainer{height:560px;border-radius:var(--radius);overflow:hidden;border:.5px solid var(--line);background:var(--map-bg);box-shadow:var(--shadow-sm)}@media(max-width:768px){#mapContainer{height:400px}}@media(max-width:480px){#mapContainer{height:300px}}.dark .breadcrumb li:last-child{color:var(--ink)}.dark .hl:not(a){background:var(--bg-alt);border-color:var(--line)}@media(max-width:840px){.breadcrumb{padding:var(--space-3) var(--space-4) 0}}@media(max-width:480px){.highlights{margin:0 0 var(--space-4);gap:var(--space-1)}}@media(prefers-reduced-motion:reduce){.lb-fade-enter-active,.lb-fade-leave-active{transition-duration:0s}.bc-back:hover{transform:none}}.control-label{font-size:.75rem;font-weight:var(--weight-semibold);color:var(--ink-700);text-transform:uppercase;letter-spacing:var(--tracking-caps);margin:var(--space-4) 0 var(--space-2)}.dark .control-label{color:#ffffff8c}.search-row{display:flex;gap:var(--space-3);flex-wrap:wrap;padding:var(--space-3);border:.5px solid var(--line);border-radius:var(--radius-lg);background:var(--bg-alt);transition:border-color .35s var(--ease-out-expo),box-shadow .35s var(--ease-out-expo),background .35s var(--ease-out-expo)}.search-row:focus-within{border-color:var(--primary-fg);box-shadow:0 0 0 3px rgba(var(--primary-rgb),.1);background:var(--card)}.search-row input[type=search]{flex:1 1 260px;padding:var(--space-3) var(--space-4);border:.5px solid transparent;border-radius:var(--radius-sm);font-size:var(--text-base);background:transparent;transition:border-color .25s var(--ease-out),box-shadow .25s,background .25s}.search-row input[type=search]:focus{outline:none;border-color:transparent;background:transparent;box-shadow:none}.search-row input[type=search]:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.search-row select{padding:var(--space-3) var(--space-4);border:.5px solid transparent;border-radius:var(--radius-sm);background:transparent;color:var(--ink);transition:border-color .25s,box-shadow .25s}.search-row select:focus{outline:none;border-color:transparent;box-shadow:none}.search-row select:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.chip-row{display:flex;gap:var(--space-2);flex-wrap:wrap}.chip{border:.5px solid var(--line);background:var(--bg-alt);color:var(--ink);padding:var(--space-2) var(--space-4);border-radius:var(--radius-full);font-size:var(--text-sm);font-weight:var(--weight-medium);cursor:pointer;transition:background .2s var(--ease-out),color .2s var(--ease-out),border-color .2s var(--ease-out),box-shadow .2s var(--ease-out),transform .15s var(--ease-spring);white-space:nowrap;display:inline-flex;align-items:center;min-height:44px}.chip:hover{border-color:var(--primary-fg);background:var(--card);box-shadow:var(--shadow-xs)}.chip:active{transform:scale(.95);transition-duration:.08s}.chip:focus-visible{outline:2px solid var(--primary);outline-offset:3px}.chip.active:focus-visible{outline-color:var(--accent);outline-offset:4px}.chip.active{background:var(--primary);box-shadow:0 2px 8px rgba(var(--primary-rgb),.3)}.chip.active,.chip.season.active{color:var(--text-on-dark,#fff);border-color:var(--primary)}.chip.season.active{background:rgba(var(--primary-rgb),.88)}.dark .chip.season.active{background:rgba(var(--primary-rgb),.75)}@media(max-width:840px){.chip-row{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding-bottom:var(--space-1);scroll-snap-type:x proximity;overscroll-behavior-x:contain;mask-image:linear-gradient(90deg,#000 85%,transparent);-webkit-mask-image:linear-gradient(90deg,#000 85%,transparent)}.chip-row::-webkit-scrollbar{display:none}.chip-row:focus-within,.chip-row:hover{mask-image:none;-webkit-mask-image:none}.chip-row .chip{scroll-snap-align:start}.chip-row.wrap-mobile{flex-wrap:wrap;overflow-x:visible;mask-image:none;-webkit-mask-image:none;scroll-snap-type:none}}@media(max-width:640px){.chip-row:not(.wrap-mobile) .chip{min-width:80px;justify-content:center}}.result-meta{color:var(--ink);font-size:var(--text-sm);margin:var(--space-5) 0 var(--space-4);font-weight:var(--weight-medium);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);background:var(--bg-alt);transition:background .3s var(--ease-out)}.catalog-hero{position:relative;overflow:hidden;border-radius:var(--radius-xl);padding:var(--space-8) var(--space-6);margin-bottom:var(--space-6);background:linear-gradient(135deg,var(--primary-light) 0,var(--bg-warm) 100%);border:.5px solid var(--line)}.catalog-hero:before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;background-repeat:no-repeat;background-position:right -30px center;background-size:auto 92%;opacity:.1;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='640' height='240' fill='none' stroke='%23586860' stroke-linecap='round' stroke-width='2' viewBox='0 0 640 240'%3E%3Cpath d='M-20 70q100-20 200 0t200 0 200 0 200 0M-20 110q100-20 200 0t200 0 200 0 200 0M-20 150q100-20 200 0t200 0 200 0 200 0M-20 190q100-20 200 0t200 0 200 0 200 0'/%3E%3C/svg%3E");animation:hero-motif-sway 8s var(--ease-out,ease-in-out) infinite;will-change:transform}@keyframes hero-motif-sway{0%,to{transform:translateZ(0)}50%{transform:translate3d(-10px,4px,0)}}.catalog-hero-inner,.catalog-hero>.catalog-stats{position:relative;z-index:1}.catalog-hero.cat-ocop:before,.catalog-hero.cat-product:before{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='320' height='240' fill='none' stroke='%23586860' stroke-width='2' viewBox='0 0 320 240'%3E%3Ccircle cx='210' cy='110' r='34'/%3E%3Ccircle cx='262' cy='135' r='27'/%3E%3Ccircle cx='225' cy='168' r='30'/%3E%3Cpath stroke-linecap='round' d='M196 78q9-22 30-14'/%3E%3Cpath stroke-linecap='round' d='M210 76q14-16 30-10M210 110v0'/%3E%3C/svg%3E");background-position:right 16px center;background-size:auto 78%}.catalog-hero.cat-accommodation:before{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='320' height='260' fill='none' stroke='%23586860' stroke-linecap='round' stroke-width='2' viewBox='0 0 320 260'%3E%3Cpath d='M230 250q6-90 2-158M232 92q-36-22-74-6M232 92q36-26 72-12M232 92q-12-36-32-48M232 92q16-38 40-48'/%3E%3Cpath d='M232 100q-34-4-58 12M232 100q34-8 60 6'/%3E%3C/svg%3E");background-position:right 8px bottom -10px;background-size:auto 96%}.catalog-hero.cat-event:before,.catalog-hero.cat-festival:before{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='240' fill='none' stroke='%23586860' stroke-linecap='round' stroke-width='2' viewBox='0 0 300 240'%3E%3Cpath d='M170 200v-90M170 110q-30 20-32 74 28-16 32-74M170 110q30 20 32 74-28-16-32-74'/%3E%3Cpath d='M170 116q-50 16-60 62 40-8 60-62M170 116q50 16 60 62-40-8-60-62M170 122V84'/%3E%3C/svg%3E");background-position:right 24px bottom;background-size:auto 88%}@media(prefers-reduced-motion:reduce){.catalog-hero:before{animation:none}}.catalog-hero-inner{display:flex;align-items:flex-start;gap:var(--space-5)}.catalog-hero-icon{font-size:clamp(2rem,8vw,2.8rem);flex-shrink:0}@media(max-width:640px){.catalog-hero-icon{font-size:1.8rem}}.catalog-hero h1{margin:0 0 var(--space-2);font-family:var(--font-editorial);font-size:clamp(1.7rem,4.4vw,2.6rem);line-height:1.1;font-weight:600;letter-spacing:var(--tracking-tight)}.catalog-hero p{margin:0;color:var(--muted);font-size:var(--text-base);line-height:var(--leading-relaxed);max-width:600px}.catalog-stats{display:flex;gap:var(--space-6);margin-top:var(--space-5);padding-top:var(--space-4);border-top:.5px solid var(--line);flex-wrap:wrap}.stat-item{position:relative;display:flex;flex-direction:column;padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);transition:background .3s var(--ease-out);cursor:default}.catalog-stats .stat-item+.stat-item:before{content:"";position:absolute;left:calc(var(--space-3)*-1);top:50%;transform:translateY(-50%);width:1px;height:24px;background:var(--line)}.stat-item:hover{background:var(--overlay-subtle)}.stat-num{font-size:var(--text-2xl);font-weight:var(--weight-extrabold);color:var(--primary-fg);letter-spacing:var(--tracking-tight);transition:color .3s var(--ease-out);font-variant-numeric:tabular-nums}.stat-item:hover .stat-num{color:var(--primary-fg-strong,var(--primary-fg))}.stat-label{font-size:var(--text-xs);color:var(--muted);text-transform:uppercase;letter-spacing:var(--tracking-caps);font-weight:var(--weight-semibold)}.stat-stars{font-size:1rem;letter-spacing:.04em;line-height:1;transition:transform .3s var(--ease-spring-gentle)}.stat-item:hover .stat-stars{transform:scale(1.15)}.section-desc{color:var(--muted);font-size:var(--text-sm);margin:calc(var(--space-2)*-1) 0 var(--space-4);line-height:var(--leading-relaxed)}.scroll-row{display:flex;gap:var(--space-4);overflow-x:auto;-webkit-overflow-scrolling:touch;scroll-snap-type:x proximity;overscroll-behavior-x:contain;padding-bottom:var(--space-2);scrollbar-width:none}.scroll-row::-webkit-scrollbar{display:none}.scroll-row:focus-visible{outline:2px solid var(--primary);outline-offset:2px;border-radius:var(--radius-md)}.scroll-row>*{scroll-snap-align:start;min-width:0}.scroll-row>*,.scroll-row>.card{flex:0 0 260px}@media(max-width:640px){.scroll-row>*,.scroll-row>.card{flex:0 0 220px}.scroll-row{gap:var(--space-3)}}.scroll-row{-webkit-mask-image:linear-gradient(90deg,#000 0,#000 calc(100% - 40px),transparent);mask-image:linear-gradient(90deg,#000 0,#000 calc(100% - 40px),transparent)}.scroll-row.scroll-end{-webkit-mask-image:none;mask-image:none}.reveal .scroll-row>*{opacity:0;transform:translate(16px);animation:scrollRowIn .5s var(--ease-out-expo) forwards}.reveal .scroll-row>:first-child{animation-delay:0s}.reveal .scroll-row>:nth-child(2){animation-delay:.06s}.reveal .scroll-row>:nth-child(3){animation-delay:.12s}.reveal .scroll-row>:nth-child(4){animation-delay:.18s}.reveal .scroll-row>:nth-child(5){animation-delay:.24s}.reveal .scroll-row>:nth-child(n+6){animation-delay:.3s}@keyframes scrollRowIn{0%{opacity:0;transform:translate(16px)}to{opacity:1;transform:translate(0)}}.interest-nav{display:flex;gap:var(--space-2);flex-wrap:wrap;margin-bottom:var(--space-5)}@media(max-width:640px){.interest-nav{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;scroll-snap-type:x proximity;overscroll-behavior-x:contain;padding-bottom:var(--space-1)}.interest-nav::-webkit-scrollbar{display:none}.interest-nav .chip{scroll-snap-align:start;flex-shrink:0}}.catalog-more{display:block;margin:var(--space-5) auto 0}.catalog-divider{display:flex;align-items:center;gap:var(--space-4);margin:var(--space-8) 0 var(--space-4)}.catalog-divider:after,.catalog-divider:before{content:"";flex:1;height:.5px;background:var(--line)}.catalog-divider-text{font-size:var(--text-sm);font-weight:var(--weight-bold);color:var(--primary-fg-strong,var(--primary-fg));text-transform:uppercase;letter-spacing:var(--tracking-caps);white-space:nowrap;background:var(--bg);padding:0 var(--space-3);transition:color .3s var(--ease-out)}.catalog-cross h2{margin-bottom:var(--space-4);font-family:var(--font-editorial);font-weight:600;letter-spacing:-.01em;position:relative;padding-left:var(--space-3)}.catalog-cross h2:before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:3px;height:1em;border-radius:var(--radius-full);background:linear-gradient(180deg,var(--river-600) 0,var(--amber-600) 52%,var(--clay-600) 100%)}.dark .catalog-cross h2:before{background:linear-gradient(180deg,#74abb5 0,var(--amber-500) 52%,var(--clay-400) 100%)}.cross-links{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:var(--space-3)}.cross-card{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-4);border-radius:var(--radius-lg);background:var(--card);border:.5px solid var(--line);transition:transform .3s var(--ease-spring-gentle),box-shadow .3s var(--ease-out-expo),border-color .2s var(--ease-out)}.cross-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-md);border-color:var(--border)}.cross-card:active{transform:scale(.97);transition-duration:.08s}.cross-card:focus-visible{outline:2px solid var(--primary);outline-offset:3px}.cross-icon{font-size:1.6rem;flex-shrink:0;transition:transform .35s var(--ease-spring-gentle),text-shadow .35s var(--ease-spring-gentle)}.cross-card:hover .cross-icon{transform:scale(1.12)}.cross-card strong{display:block;font-size:var(--text-sm)}.cross-card p{margin:0;font-size:var(--text-xs);color:var(--muted)}@media(max-width:768px){.cross-links{grid-template-columns:repeat(2,1fr)}}.dark .cross-card:hover .cross-icon{text-shadow:0 0 12px rgba(var(--primary-rgb),.15)}.seasonal-banner{display:flex;align-items:center;gap:var(--space-4);padding:var(--space-4) var(--space-5);border-radius:var(--radius-lg);background:linear-gradient(90deg,rgba(var(--accent-rgb),.12),transparent);border-bottom:.5px solid rgba(var(--accent-rgb),.25);border:solid rgba(var(--accent-rgb),.25);border-width:.5px .5px 1px;margin-bottom:var(--space-4);transition:border-color .3s var(--ease-out),box-shadow .35s var(--ease-out-expo)}.seasonal-banner:hover{border-color:var(--accent);box-shadow:0 0 0 3px rgba(var(--accent-rgb),.08)}.seasonal-banner-icon{font-size:1.8rem;position:relative;display:inline-flex;align-items:center;justify-content:center}.seasonal-banner-icon:before{content:"";position:absolute;inset:-40%;z-index:-1;border-radius:50%;pointer-events:none;background:radial-gradient(circle at 50% 50%,rgba(var(--primary-rgb),.2),transparent 70%);transition:opacity .35s var(--ease-out-expo)}.seasonal-banner:hover .seasonal-banner-icon{filter:drop-shadow(0 2px 6px rgba(var(--primary-rgb),.25))}.seasonal-banner strong{font-size:var(--text-base)}.seasonal-banner p{margin:0;font-size:var(--text-sm);color:var(--muted)}.quick-picks{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:var(--space-3);margin-bottom:var(--space-6)}.quick-pick{display:flex;flex-direction:column;align-items:center;gap:var(--space-2);padding:var(--space-5) var(--space-3);border-radius:var(--radius-lg);background:var(--card);border:.5px solid var(--line);transition:transform .3s var(--ease-spring-gentle),box-shadow .3s var(--ease-out-expo),border-color .2s var(--ease-out);text-align:center;min-height:44px;cursor:pointer}.quick-pick:hover{transform:translateY(-3px);box-shadow:var(--shadow-md);border-color:var(--primary-fg)}.quick-pick:active{transform:scale(.96);transition-duration:.08s}.quick-pick:focus-visible{outline:2px solid var(--primary);outline-offset:3px}.quick-pick.active{border-color:var(--primary);background:rgba(var(--primary-rgb),.06)}.quick-pick-icon{font-size:1.6rem;transition:transform .4s var(--ease-spring-gentle)}.quick-pick:hover .quick-pick-icon{transform:scale(1.15)}.quick-pick-label{font-size:var(--text-sm);font-weight:var(--weight-semibold)}.quick-pick-count{font-size:var(--text-xs);color:var(--muted)}@media(max-width:640px){.quick-pick{padding:var(--space-6) var(--space-2);min-height:48px}}.quick-pick-stars{font-size:1rem;letter-spacing:.04em;line-height:1}.quick-pick:hover .quick-pick-stars{animation:star-twinkle 1.2s var(--ease-spring,ease-in-out) infinite}@keyframes star-twinkle{0%,to{opacity:1}50%{opacity:.4}}.region-quick-picks .quick-pick{--AREA-rgb:var(--primary-rgb);justify-content:flex-end;min-height:80px;background:linear-gradient(135deg,rgba(var(--AREA-rgb),.06),transparent)}.region-quick-picks .quick-pick:hover{transform:translateY(-4px);box-shadow:var(--shadow-md),0 0 0 1px rgba(var(--AREA-rgb),.3);border-color:rgba(var(--AREA-rgb),.4)}.region-quick-picks .quick-pick .quick-pick-label{font-weight:var(--weight-bold)}.dark .region-quick-picks .quick-pick{background:linear-gradient(135deg,rgba(var(--AREA-rgb),.12),transparent)}.catalog-hero.cat-experience{background:linear-gradient(135deg,rgba(var(--primary-rgb),.08) 0,var(--bg-warm) 100%)}.catalog-hero.cat-product{background:linear-gradient(135deg,rgba(var(--accent-rgb),.1) 0,var(--bg-warm) 100%)}.catalog-hero.cat-accommodation{background:linear-gradient(135deg,rgba(var(--river-rgb),.08) 0,var(--bg-warm) 100%)}.catalog-hero.cat-ocop{background:linear-gradient(135deg,rgba(var(--secondary-rgb),.08) 0,var(--bg-warm) 100%)}.catalog-hero.cat-season{background:linear-gradient(135deg,rgba(var(--accent-rgb),.08) 0,rgba(var(--secondary-rgb),.06))}.catalog-hero.cat-directory{background:linear-gradient(135deg,rgba(var(--river-rgb),.06) 0,rgba(var(--primary-rgb),.04))}.catalog-hero.cat-itinerary{background:linear-gradient(135deg,rgba(var(--secondary-rgb),.06) 0,rgba(var(--river-rgb),.04))}.catalog-hero.cat-community{background:linear-gradient(135deg,rgba(var(--primary-rgb),.06) 0,rgba(var(--accent-rgb),.04))}.catalog-hero.cat-area-vinh-long{background:linear-gradient(135deg,rgba(var(--primary-rgb),.08) 0,rgba(var(--accent-rgb),.04))}.catalog-hero.cat-area-ben-tre{background:linear-gradient(135deg,rgba(var(--secondary-rgb),.08) 0,rgba(var(--bg-warm),.6))}.catalog-hero.cat-area-tra-vinh{background:linear-gradient(135deg,rgba(var(--river-rgb),.08) 0,rgba(var(--primary-rgb),.04))}.catalog-hero.cat-search{background:linear-gradient(135deg,rgba(var(--primary-rgb),.05) 0,rgba(var(--river-rgb),.04))}.catalog-hero.cat-contact{background:linear-gradient(135deg,rgba(var(--accent-rgb),.06) 0,rgba(var(--primary-rgb),.04))}.catalog-hero.cat-map{background:linear-gradient(135deg,rgba(var(--secondary-rgb),.06) 0,rgba(var(--river-rgb),.04))}.catalog-hero.cat-interest{background:linear-gradient(135deg,rgba(var(--primary-rgb),.06) 0,rgba(var(--secondary-rgb),.04))}.catalog-hero.cat-route{background:linear-gradient(135deg,rgba(var(--accent-rgb),.08) 0,rgba(var(--secondary-rgb),.04))}.dark .catalog-hero{background:linear-gradient(135deg,#ffffff08,#ffffff03);border-color:var(--line)}.dark .catalog-hero:before{opacity:.08;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='640' height='240' fill='none' stroke='%23fff' stroke-linecap='round' stroke-width='2' viewBox='0 0 640 240'%3E%3Cpath d='M-20 70q100-20 200 0t200 0 200 0 200 0M-20 110q100-20 200 0t200 0 200 0 200 0M-20 150q100-20 200 0t200 0 200 0 200 0M-20 190q100-20 200 0t200 0 200 0 200 0'/%3E%3C/svg%3E")}.dark .catalog-hero.cat-ocop:before,.dark .catalog-hero.cat-product:before{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='320' height='240' fill='none' stroke='%23fff' stroke-width='2' viewBox='0 0 320 240'%3E%3Ccircle cx='210' cy='110' r='34'/%3E%3Ccircle cx='262' cy='135' r='27'/%3E%3Ccircle cx='225' cy='168' r='30'/%3E%3Cpath stroke-linecap='round' d='M196 78q9-22 30-14'/%3E%3Cpath stroke-linecap='round' d='M210 76q14-16 30-10M210 110v0'/%3E%3C/svg%3E")}.dark .catalog-hero.cat-accommodation:before{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='320' height='260' fill='none' stroke='%23fff' stroke-linecap='round' stroke-width='2' viewBox='0 0 320 260'%3E%3Cpath d='M230 250q6-90 2-158M232 92q-36-22-74-6M232 92q36-26 72-12M232 92q-12-36-32-48M232 92q16-38 40-48'/%3E%3Cpath d='M232 100q-34-4-58 12M232 100q34-8 60 6'/%3E%3C/svg%3E")}.dark .catalog-hero.cat-event:before,.dark .catalog-hero.cat-festival:before{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='240' fill='none' stroke='%23fff' stroke-linecap='round' stroke-width='2' viewBox='0 0 300 240'%3E%3Cpath d='M170 200v-90M170 110q-30 20-32 74 28-16 32-74M170 110q30 20 32 74-28-16-32-74'/%3E%3Cpath d='M170 116q-50 16-60 62 40-8 60-62M170 116q50 16 60 62-40-8-60-62M170 122V84'/%3E%3C/svg%3E")}.dark .cross-card{background:var(--card);border-color:var(--line)}.dark .cross-card:hover{box-shadow:var(--shadow-md);border-color:#ffffff14}.dark .quick-pick{background:var(--card)}.dark .catalog-hero.cat-community,.dark .catalog-hero.cat-directory,.dark .catalog-hero.cat-itinerary,.dark .catalog-hero.cat-season{background:linear-gradient(135deg,#ffffff08,#ffffff03)}.dark .seasonal-banner{background:linear-gradient(90deg,rgba(255,193,7,.06),transparent);border-color:#ffc10726}.dark .search-row{background:var(--bg-alt);border-color:var(--line)}.dark .search-row:focus-within{box-shadow:0 0 0 3px rgba(var(--primary-rgb),.18)}.dark .chip{background:var(--bg-alt);border-color:var(--line)}.dark .chip:hover{background:#ffffff0f}.dark .step-note{color:var(--accent)}.dark .route-leg-info{background:#ffffff0f}.dark .transport-mode{background:var(--card);border-color:var(--line)}@media(max-width:640px){.catalog-hero{padding:var(--space-5) var(--space-4)}.catalog-hero-inner{flex-direction:column;gap:var(--space-3)}.catalog-hero-icon{font-size:1.8rem}.catalog-hero h1{font-size:var(--text-xl)}.catalog-stats{flex-wrap:wrap;gap:var(--space-4)}.cross-links{grid-template-columns:repeat(2,1fr)}.quick-picks{grid-template-columns:repeat(3,minmax(0,1fr))}.catalog-hero{padding-inline-end:max(var(--space-4),env(safe-area-inset-right));padding-inline-start:max(var(--space-4),env(safe-area-inset-left))}.catalog-hero-icon{margin-inline-end:var(--space-2)}}@media(max-width:480px){.quick-picks{grid-template-columns:repeat(2,minmax(0,1fr))}}.grid.itin{grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}.back,.detail .back,.itinerary .back{display:inline-flex;align-items:center;color:var(--primary-fg);font-weight:var(--weight-semibold);font-size:var(--text-sm);margin-bottom:var(--space-3);min-height:44px;padding:var(--space-2) var(--space-1);transition:color .3s var(--ease-out),transform .3s}.back:hover{text-decoration:underline}.back:active{transform:translate(-2px) scale(.97);transition-duration:.08s}.back:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.timeline{list-style:none;margin:var(--space-5) 0 0;padding:0 0 0 4px}.step{display:grid;grid-template-columns:120px 1fr;gap:var(--space-4);padding-bottom:var(--space-5);position:relative}.step-time{font-weight:var(--weight-bold);color:var(--primary-fg-strong);font-size:var(--text-sm);padding-top:var(--space-4)}.step-card{display:flex;gap:var(--space-3);background:var(--card);border:.5px solid var(--line);border-left:5px solid var(--secondary);border-radius:var(--radius-md);padding:var(--space-4);box-shadow:var(--shadow-sm);transition:transform .35s var(--ease-spring-gentle),box-shadow .3s}.step-card:hover{transform:translate(3px);box-shadow:var(--shadow-md)}.step-card:active{transform:translate(1px) scale(.98);transition-duration:.1s}.step-card.cat-product{border-left-color:var(--accent)}.step-card.cat-attraction{border-left-color:var(--cat-attraction-accent)}.step-card.cat-dish{border-left-color:var(--cat-dish-accent)}.step-card.cat-craft{border-left-color:var(--cat-craft-accent)}.step-card.cat-accommodation{border-left-color:var(--cat-accommodation-accent)}.step-emoji{font-size:1.8rem}.step-card h3{margin:2px 0;font-size:1.05rem}.stop-link{color:inherit}.step-card .summary{margin:0;color:var(--muted);font-size:var(--text-sm)}.step-note{margin:var(--space-1) 0 0;font-size:var(--text-xs);color:var(--accent-text);font-weight:var(--weight-semibold)}.step-content{flex:1;min-width:0}.step-type-label{display:inline-block;font-size:var(--text-xs);font-weight:var(--weight-bold);text-transform:uppercase;color:var(--muted);letter-spacing:.03em;margin-bottom:2px}.itin-actions{display:flex;gap:var(--space-3);align-items:center;margin-bottom:var(--space-4);flex-wrap:wrap}.lead{font-size:1.05rem;line-height:1.6}.controls{margin:var(--space-5) 0 var(--space-3);background:var(--card);border:.5px solid var(--line);border-radius:var(--radius-lg);padding:var(--space-4) var(--space-4) var(--space-5);box-shadow:var(--shadow-xs)}.dark .controls{background:var(--card);border-color:var(--line)}.controls .search-row{background:var(--bg-alt);border-color:transparent;position:relative}.controls .search-row:focus-within{border-color:var(--primary-fg);background:var(--card);box-shadow:0 0 0 3px rgba(var(--primary-rgb),.1)}.controls .search-row{padding-inline-start:calc(var(--space-3) + 26px)}.controls .search-row:before{content:"";position:absolute;inset-inline-start:var(--space-4);top:50%;width:18px;height:18px;transform:translateY(-50%);pointer-events:none;opacity:.55;background-repeat:no-repeat;background-position:50%;background-size:contain;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' fill='none' stroke='%23586860' stroke-linecap='round' stroke-width='2.2' viewBox='0 0 24 24'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m21 21-4.3-4.3'/%3E%3C/svg%3E");transition:opacity .3s var(--ease-out)}.controls .search-row:focus-within:before{opacity:.9}.dark .controls .search-row:before{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' fill='none' stroke='%2398989d' stroke-linecap='round' stroke-width='2.2' viewBox='0 0 24 24'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m21 21-4.3-4.3'/%3E%3C/svg%3E");opacity:.65}.dark .controls .search-row:focus-within:before{opacity:.95}.controls .chip.active{box-shadow:0 2px 8px -2px rgba(var(--primary-rgb),.5),0 0 0 3px rgba(var(--primary-rgb),.12);transform:translateY(-1px)}.controls .chip.active:hover{background:var(--primary);border-color:var(--primary);box-shadow:0 3px 10px -2px rgba(var(--primary-rgb),.55),0 0 0 3px rgba(var(--primary-rgb),.16)}.dark .controls .chip.active{box-shadow:0 2px 8px -2px rgba(var(--primary-rgb),.5),0 0 0 3px rgba(var(--primary-rgb),.22)}.controls .chip:not(.active):hover{transform:translateY(-1px)}.result-meta{display:inline-flex;align-items:center;gap:var(--space-2);width:auto;border:.5px solid var(--line);box-shadow:var(--shadow-xs)}.result-meta:before{content:"";width:7px;height:7px;border-radius:50%;background:var(--secondary-fg);box-shadow:0 0 0 3px rgba(var(--secondary-rgb),.15);flex:0 0 auto}.result-meta{animation:result-pulse .5s var(--ease-out)}.result-meta:before{animation:result-dot-breathe 2.4s var(--ease-out) infinite}@keyframes result-pulse{0%{opacity:0;transform:translateY(-2px)}to{opacity:1;transform:translateY(0)}}@keyframes result-dot-breathe{0%,to{transform:scale(1);opacity:.9}50%{transform:scale(1.18);opacity:1}}.dark .result-meta{background:transparent;border-color:var(--line)}.block .empty-state{background:radial-gradient(120% 90% at 50% -10%,rgba(var(--primary-rgb),.06),transparent 60%),var(--card);border:.5px solid var(--line);border-radius:var(--radius-xl);padding:var(--space-12) var(--space-6);box-shadow:var(--shadow-sm);position:relative;overflow:hidden}.block .empty-state:before{content:"";position:absolute;inset:auto 0 0;height:120px;opacity:.06;pointer-events:none;background-repeat:no-repeat;background-position:bottom;background-size:640px auto;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='640' height='120' fill='none' stroke='%23586860' stroke-linecap='round' stroke-width='2' viewBox='0 0 640 120'%3E%3Cpath d='M-20 40q100-20 200 0t200 0 200 0 200 0'/%3E%3Cpath d='M-20 78q100-20 200 0t200 0 200 0 200 0'/%3E%3C/svg%3E")}.dark .block .empty-state{background:radial-gradient(120% 90% at 50% -10%,rgba(var(--primary-rgb),.08),transparent 60%),var(--card)}.dark .block .empty-state:before{opacity:.07;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='640' height='120' fill='none' stroke='%23fff' stroke-linecap='round' stroke-width='2' viewBox='0 0 640 120'%3E%3Cpath d='M-20 40q100-20 200 0t200 0 200 0 200 0'/%3E%3Cpath d='M-20 78q100-20 200 0t200 0 200 0 200 0'/%3E%3C/svg%3E")}.block .empty-state>*{position:relative;z-index:1}.block .empty-state .empty-icon{width:96px;height:96px;display:flex;align-items:center;justify-content:center;margin:0 auto var(--space-4);border-radius:50%;font-size:2.6rem;background:radial-gradient(circle at 50% 40%,rgba(var(--primary-rgb),.12),rgba(var(--primary-rgb),.04) 70%)}.block .empty-state .empty-hint{font-size:var(--text-sm);color:var(--muted);margin:var(--space-3) 0 var(--space-4)}.page-article{max-width:72ch;margin:0 auto var(--space-6);padding:var(--space-6) var(--space-6) var(--space-5);background:var(--card);border:.5px solid var(--line);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm)}.page-article h2{font-family:var(--font-editorial);font-size:var(--text-xl);font-weight:600;margin:var(--space-6) 0 var(--space-3);letter-spacing:var(--tracking-tight);line-height:var(--leading-tight);color:var(--ink)}.page-article h2:first-child{margin-top:0}.page-article>p:first-of-type:first-letter{font-family:var(--font-editorial);font-weight:700;float:left;font-size:3.1em;line-height:.78;padding:.04em .1em 0 0;color:var(--primary-fg)}.page-article p{color:var(--ink);font-size:var(--text-base);line-height:var(--leading-relaxed);margin:0 0 var(--space-3)}.page-article p:last-child{margin-bottom:0}.page-article strong{font-weight:var(--weight-semibold);color:var(--primary-fg)}.dark .page-article{background:var(--card);border-color:var(--line)}@media(max-width:640px){.page-article{padding:var(--space-4) var(--space-4) var(--space-3);border-radius:var(--radius-lg)}.page-article h2{font-size:var(--text-base);margin:var(--space-5) 0 var(--space-2)}}.block.band{background:var(--bg-warm);background-image:var(--season-hero-gradient);border-radius:var(--radius-xl);padding-inline:var(--space-6)}.block+.block.band:before,.block.band+.block:before{display:none}.dark .block.band{background-color:var(--bg-alt)}.stat-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:var(--space-3)}.stat-card{display:flex;flex-direction:column;align-items:center;gap:var(--space-1);padding:var(--space-4) var(--space-3);border-radius:var(--radius-lg);background:var(--card);border:.5px solid var(--line);text-align:center;transition:transform .35s var(--ease-spring-gentle),box-shadow .3s var(--ease-out-expo),border-color .3s var(--ease-out)}.stat-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);border-color:var(--border)}.stat-card-value{font-size:var(--text-xl);font-weight:var(--weight-bold);color:var(--ink)}.stat-card-label{font-size:var(--text-xs);color:var(--muted)}.dark .stat-card{background:var(--bg-alt)}@media(prefers-reduced-motion:reduce){.stat-card:hover{transform:none}}.filter-status{display:flex;align-items:center;gap:var(--space-2);margin-top:var(--space-3);padding-top:var(--space-3);border-top:.5px solid var(--line)}.filter-count{font-size:var(--text-xs);color:var(--muted);font-weight:var(--weight-medium)}.filter-clear{font-size:var(--text-xs);color:var(--primary-fg);background:none;border:none;cursor:pointer;font-weight:var(--weight-semibold);padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);transition:background .2s}.filter-clear:hover{background:rgba(var(--primary-rgb),.08)}.result-bar{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.view-toggle{display:flex;gap:2px;background:var(--surface);border-radius:var(--radius-sm);padding:2px}.vt-btn{background:none;border:none;cursor:pointer;padding:var(--space-1) var(--space-2);border-radius:var(--radius-xs);font-size:var(--text-sm);color:var(--muted);transition:background .15s,color .15s;line-height:1;min-width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center}.vt-btn.active{background:var(--card);color:var(--fg);box-shadow:var(--shadow-xs)}.list-view{display:flex;flex-direction:column;gap:var(--space-3)}.list-view :deep(.card){flex-direction:row;align-items:stretch}.list-view :deep(.cover){width:180px;min-height:120px;flex-shrink:0;aspect-ratio:auto}.list-view :deep(.card-b){flex:1;min-width:0}.list-view :deep(.card-b h3){-webkit-line-clamp:1}.list-view :deep(.summary){-webkit-line-clamp:2}@media(max-width:600px){.list-view :deep(.card){flex-direction:column}.list-view :deep(.cover){width:100%;min-height:140px;aspect-ratio:16/9}}@media(prefers-reduced-motion:reduce){.back:active,.chip:active,.controls .chip.active,.controls .chip:not(.active):hover,.cross-card:active,.cross-card:hover,.quick-pick:active,.quick-pick:hover,.stat-item:hover .stat-stars,.step-card:active,.step-card:hover{transform:none}.quick-pick:hover .quick-pick-stars{animation:none}.region-quick-picks .quick-pick:hover{transform:none}.result-meta,.result-meta:before{animation:none}.reveal .scroll-row>*{animation:none;opacity:1;transform:none}}.cine-hero{position:relative;min-height:clamp(58vh,42vh + 18vw,88vh);display:flex;align-items:flex-end;overflow:clip;isolation:isolate;background:var(--surface-container-high,#1a1a1e);color:#fff}.cine-hero__media{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;will-change:transform}.cine-hero__media,.cine-hero__wash{position:absolute;inset:0;z-index:-2}.cine-hero__wash{background:radial-gradient(120% 80% at 15% 0,rgba(156,61,34,.55),transparent 60%),radial-gradient(120% 90% at 85% 20%,rgba(46,125,91,.45),transparent 62%),linear-gradient(160deg,#23343f,#101820)}.cine-hero__scrim{position:absolute;inset:0;z-index:-1;background:var(--scrim-hero)}.cine-hero__inner{width:min(100% - 2 * var(--space-5),1200px);margin-inline:auto;padding-block:clamp(2rem,1rem + 5vw,5rem)}.cine-kicker{font-family:var(--font-sans);font-size:var(--text-2xs);font-weight:700;text-transform:uppercase;letter-spacing:var(--tracking-caps);color:#ffffffd1;margin:0 0 var(--space-3)}.cine-title{font-weight:600;font-size:var(--text-5xl);line-height:var(--leading-tight);letter-spacing:var(--tracking-tight);text-wrap:balance;margin:0;text-shadow:0 2px 24px rgba(0,0,0,.35)}.cine-dek,.cine-title{font-family:var(--font-editorial)}.cine-dek{font-size:clamp(1.05rem,1rem + .5vw,1.35rem);line-height:var(--leading-snug);color:#ffffffe6;max-width:46ch;margin:var(--space-4) 0 0}.cine-meta{display:flex;flex-wrap:wrap;gap:var(--space-2) var(--space-4);font-family:var(--font-sans);font-size:var(--text-sm);color:#ffffffc7;margin:var(--space-5) 0 0}.cine-meta>*{display:inline-flex;align-items:center;gap:var(--space-1)}.cine-hero__media.is-kb{animation:cine-kenburns var(--dur-kenburns) var(--ease-cinematic) both alternate infinite}@keyframes cine-kenburns{0%{transform:scale(1.04) translateZ(0)}to{transform:scale(1.14) translate3d(-1.5%,-1.5%,0)}}.editorial-body{max-width:var(--measure-read);font-size:clamp(1.05rem,1rem + .35vw,1.2rem);line-height:var(--leading-relaxed);color:var(--ink-800,var(--ink))}.editorial-body>p+p{margin-top:var(--space-4)}.drop-cap:first-letter{font-family:var(--font-editorial);font-weight:600;float:left;font-size:3.4em;line-height:.82;padding:.06em .12em 0 0;color:var(--primary)}.pull-quote{font-family:var(--font-editorial);font-size:clamp(1.5rem,1.2rem + 1.6vw,2.4rem);line-height:var(--leading-snug);font-weight:500;color:var(--ink);border-left:3px solid var(--primary);padding-left:var(--space-5);margin:var(--space-editorial) 0;text-wrap:balance}.pull-quote cite{display:block;font-family:var(--font-sans);font-size:var(--text-sm);font-style:normal;color:var(--muted);margin-top:var(--space-3)}.editorial-heading{max-width:var(--measure-read);margin:var(--space-editorial) 0 var(--space-5)}.editorial-heading .cine-kicker{color:var(--primary)}.editorial-heading h2{font-family:var(--font-editorial);font-weight:600;font-size:var(--text-4xl);line-height:var(--leading-tight);letter-spacing:var(--tracking-tight);text-wrap:balance;margin:0;color:var(--ink)}.chapter-sticky{position:sticky;top:var(--space-6);align-self:start}.story-block{display:grid;gap:clamp(1.5rem,1rem + 3vw,4rem);align-items:center;grid-template-columns:1fr;margin:var(--space-editorial) 0}@media(min-width:860px){.story-block{grid-template-columns:1.05fr .95fr}.story-block.is-reversed .story-block__media{order:2}}.story-block__media{position:relative;overflow:clip;border-radius:var(--radius-lg);aspect-ratio:4/3;background:var(--surface-container)}.story-block__media img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.story-block figcaption{font-family:var(--font-sans);font-size:var(--text-xs);color:var(--muted);margin-top:var(--space-2)}.read-next{margin:var(--space-editorial) 0 0}.read-next__label{font-family:var(--font-sans);font-size:var(--text-2xs);font-weight:700;text-transform:uppercase;letter-spacing:var(--tracking-caps);color:var(--muted);margin:0 0 var(--space-3)}@media(prefers-reduced-motion:reduce){.cine-hero__media.is-kb{animation:none}.chapter-sticky{position:static}}.dark .scroll-top{background:var(--glass-bg-heavy);backdrop-filter:var(--glass);-webkit-backdrop-filter:var(--glass);border-color:var(--line);box-shadow:var(--shadow-md);color:var(--primary-fg)}.dark .scroll-top:hover{box-shadow:var(--shadow-lg)}.dark .share-btn{background:var(--glass-bg-heavy);backdrop-filter:var(--glass);-webkit-backdrop-filter:var(--glass);border-color:var(--line)}.dark .post-entity-link,.dark .share-btn:hover{background:#ffffff0f}.dark .post-entity-link:hover{background:#ffffff1a}.dark .breadcrumb a:hover{background:#ffffff0f}.dark .ac-type{color:#ffffffbf;font-weight:var(--weight-semibold)}.dark .ac-place{color:#ffffffb3}.dark .nf-search input{background:#ffffff0d;border-color:#ffffff1a;color:var(--ink)}.dark .nf-search input:focus-visible{border-color:var(--accent);box-shadow:0 0 0 3px #e8a33d26}.dark .nf-search input::-moz-placeholder{color:#ffffff59}.dark .nf-search input::placeholder{color:#ffffff59}.dark .nf-btn-outline{border-color:var(--accent);color:var(--accent)}.dark .comment-form{background:#ffffff0a;border-color:#ffffff14}.dark .comment-form:focus-within{background:#ffffff0f;border-color:var(--primary-fg);box-shadow:0 0 0 3px rgba(var(--primary-rgb),.15)}.dark .comment-form .input{color:var(--ink)}.dark .comment-form .input::-moz-placeholder{color:#ffffff59}.dark .comment-form .input::placeholder{color:#ffffff59}.dark .comment-item{border-color:#ffffff0f}.dark .comment-item:hover{background:#ffffff08}.dark #mapContainer{border-color:#ffffff14;box-shadow:var(--shadow-md)}.dark #mapContainer:hover{box-shadow:var(--shadow-lg)}.dark .maplibregl-canvas{filter:brightness(.8) contrast(1.1) invert(1) hue-rotate(180deg)}.dark .maplibregl-popup-content{filter:invert(1) hue-rotate(180deg)}.dark .wp-card{border-color:#ffffff14}.dark .wp-card:hover{box-shadow:var(--shadow-lg)}.dark .wp-contact-item{border-color:#ffffff0f}.dark .wp-contact-main{background:#ffffff0a}.dark .wp-fac{border-color:#ffffff0f}.dark .wp-fac:hover{background:#ffffff0a}.dark .wp-map-btn{background:#ffffff0d;border-color:#ffffff14}.dark .wp-map-btn:hover{background:#ffffff14}.dark .step-card,.dark .wp-map-container{border-color:#ffffff14}.dark .step-card:hover{border-color:#ffffff26;box-shadow:var(--shadow-md)}.dark .route-leg-line{background:#ffffff1a}.dark .route-map{border-color:#ffffff14;box-shadow:var(--shadow-md)}.dark .saved-section{border-bottom-color:#ffffff14}.dark .js-item{border-color:#ffffff14}.dark .js-item:hover{box-shadow:var(--shadow-sm)}.dark .picker-item:hover{background:#ffffff0d}.dark .stop-card:hover{box-shadow:var(--shadow-md)}.dark .route-card{border-color:#ffffff14}.dark .route-card:hover{border-color:#ffffff26;box-shadow:var(--shadow-lg)}.dark .route-tips{background:#ffffff0a}.dark .route-stops li:hover{background:#ffffff08}.dark .quick-pick{border-color:#ffffff14}.dark .quick-pick:hover{border-color:var(--primary-fg);box-shadow:var(--shadow-md)}.dark .season-badge{background:#000000b3}.dark .sidebar-card:hover{box-shadow:var(--shadow-md)}.dark .report-entity-card{background:#ffffff0a}.dark .fac{border-color:#ffffff14}.dark .fac:hover{border-color:#ffffff26;box-shadow:var(--shadow-md)}.dark .dir-disclaimer{background:rgba(var(--accent-rgb),.08);border-color:rgba(var(--accent-rgb),.25)}.dark .contact-card{border-color:#ffffff14}.dark .contact-card:hover{border-color:#ffffff26;box-shadow:var(--shadow-lg)}.dark .card-claim{background:color-mix(in srgb,var(--accent) 6%,var(--card));border-color:#ffffff1f}.dark .card-note{color:#fff9!important}.dark .profile-cover,.dark .profile-stats{border-color:#ffffff0f}.dark .stat-item:hover{background:#ffffff0d}.dark .profile-tabs{border-color:#ffffff14}.dark .interest-nav .chip.active{box-shadow:var(--shadow-sm)}.dark .status-active{background:rgba(var(--secondary-rgb),.18);color:var(--secondary-fg-strong,#34d399)}.dark .status-banned{background:rgba(var(--error-rgb,220,38,38),.16);color:var(--error-light,#f87171)}.dark .admin-select-inline{background:#ffffff0d;border-color:#ffffff1a;color:var(--ink)}.dark .stat-panel{border-color:#ffffff14}.dark .stat-panel:hover{box-shadow:var(--shadow-md)}.dark .status-pending{background:rgba(var(--accent-rgb),.18);color:var(--accent-light,#f59e0b)}.dark .status-resolved{background:rgba(var(--secondary-rgb),.18);color:var(--secondary-fg-strong,#34d399)}.dark .status-dismissed{background:#ffffff0f;color:#fff6}.dark .hf-card{background:#ffffff1a;border-color:#fff3}.dark .hf-card:hover{background:#ffffff29}.dark .home .section-head h2{color:var(--ink)}.dark .home .section-head .section-link{color:var(--primary-fg)}.dark .event-mini{background:var(--surface-container-high);border-color:#ffffff24}.dark .event-mini:hover{border-color:var(--primary-fg);background:var(--surface-container-highest)}.dark .event-mini h3{color:var(--ink)}.dark .ec-countdown{color:var(--accent-text);background:rgba(var(--accent-rgb),.12)}.dark .spotlight{background:var(--surface-container-high);border-color:#ffffff29}.dark .spot-body{color:var(--ink)}.dark .spot-body .spot-desc{color:#c8c8ce}.dark .top-place{border-color:#ffffff1a}.dark .top-place:hover{background:#ffffff14}.dark .top-place h3{color:var(--ink)}.dark .top-place .tp-reviews{color:#b0b0b6}.dark .section-head p{color:#b8b8be}.dark .dq-diff-item{background:#ffffff0a}.dark .dq-apply-result{background:#2196531a;border-color:var(--primary);color:var(--primary)}.dark .dq-skipped-list{background:#e67e220f}.dark .hero-illustration .motif{color:var(--text-on-dark);opacity:.08}.dark .ac-chip{background:var(--glass-subtle);border-color:var(--glass-border)}.dark .ac-chip:hover{background:var(--overlay-light);border-color:#fff3}.dark .ac-empty-title{color:#ffffffe6}.dark .notif-retry{background:var(--bg-alt);border-color:var(--line)}.dark .notif-retry:hover{border-color:#fff3}.dark .review-featured{background:rgba(var(--accent-rgb),.06)}.dark .cmd-palette{background:var(--card,#2c2c2e)}.dark .cmd-item.active{background:rgba(var(--blue-rgb),.15)}.dark .cmd-footer kbd{background:#ffffff1f;color:#ffffffb3}.dark .ical-btn{background:var(--card);border-color:var(--line);color:var(--ink)}.dark .ical-btn:hover{background:#ffffff14}.dark .quick-pick-count{background:rgba(var(--river-rgb,var(--primary-rgb)),.18);color:var(--ink)}.dark .quick-pick.active .quick-pick-count,.dark .quick-pick:hover .quick-pick-count{background:rgba(var(--river-rgb,var(--primary-rgb)),.28)}.dark .type-pill{background:rgba(var(--river-rgb,var(--primary-rgb)),.16);border-color:rgba(var(--river-rgb,var(--primary-rgb)),.3)}.dark .type-pill:hover{background:rgba(var(--river-rgb,var(--primary-rgb)),.24)}.dark .type-count{color:var(--ink)}.dark .type-name{color:var(--muted)}.error-page[data-v-e8490e6c]{min-height:80vh;display:flex;align-items:center;justify-content:center;padding:var(--space-10) var(--space-5)}.error-content[data-v-e8490e6c]{text-align:center;max-width:460px;animation:errorIn-e8490e6c .6s var(--ease-spring-gentle) both}@keyframes errorIn-e8490e6c{0%{opacity:0;transform:translateY(16px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes errorPartIn-e8490e6c{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes sparkTwinkle-e8490e6c{0%,to{opacity:.25;transform:scale(.9)}50%{opacity:.7;transform:scale(1.05)}}.error-illust[data-v-e8490e6c]{width:160px;margin:0 auto var(--space-4)}.error-illust svg[data-v-e8490e6c]{width:100%;height:auto}.illust-halo[data-v-e8490e6c]{transition:opacity .3s var(--ease-out)}.illust-sparkles .spark[data-v-e8490e6c]{transform-box:fill-box;transform-origin:center;animation:sparkTwinkle-e8490e6c 3.2s var(--ease-in-out,ease-in-out) infinite}.illust-sparkles .spark-2[data-v-e8490e6c]{animation-delay:.8s}.illust-sparkles .spark-3[data-v-e8490e6c]{animation-delay:1.6s}.illust-sparkles .spark-4[data-v-e8490e6c]{animation-delay:2.4s}.error-code[data-v-e8490e6c]{font-size:clamp(3rem,12vw,5rem);margin:0;line-height:1;font-weight:var(--weight-extrabold);letter-spacing:var(--tracking-tighter);background:linear-gradient(135deg,var(--primary) 0,var(--accent) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;animation:errorPartIn-e8490e6c .5s var(--ease-out-expo) .1s both}.error-msg[data-v-e8490e6c]{font-size:var(--text-base);color:var(--muted);margin:var(--space-3) 0 0;line-height:var(--leading-relaxed);animation:errorPartIn-e8490e6c .5s var(--ease-out-expo) .2s both}.error-discovery[data-v-e8490e6c]{margin-top:var(--space-5);animation:errorPartIn-e8490e6c .5s var(--ease-out-expo) .3s both}.error-discovery-label[data-v-e8490e6c]{font-size:var(--text-sm);color:var(--ink-tertiary);margin:0 0 var(--space-2)}.error-search[data-v-e8490e6c]{display:flex;gap:var(--space-2);justify-content:center;flex-wrap:wrap;margin-bottom:var(--space-3)}.error-search-input[data-v-e8490e6c]{flex:1 1 200px;min-width:0;max-width:280px;padding:10px 16px;min-height:44px;border:.5px solid var(--border-input,var(--border));border-radius:var(--radius-full);background:var(--card,var(--bg));color:var(--ink);font-size:.9rem;transition:border-color .25s var(--ease-out),box-shadow .3s var(--ease-out-expo)}.error-search-input[data-v-e8490e6c]:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(var(--accent-rgb),.25)}.error-search-btn[data-v-e8490e6c]{flex:0 0 auto;padding:0 var(--space-5);min-height:44px}.error-links[data-v-e8490e6c]{display:flex;flex-wrap:wrap;gap:var(--space-2);justify-content:center}.error-link-pill[data-v-e8490e6c]{display:inline-flex;align-items:center;min-height:44px;padding:var(--space-2) var(--space-4);border:.5px solid var(--line);border-radius:var(--radius-full);background:var(--bg-warm);color:var(--ink);font-size:var(--text-sm);font-weight:var(--weight-semibold);text-decoration:none;transition:transform .35s var(--ease-spring-gentle),border-color .3s var(--ease-out),background .3s var(--ease-out),box-shadow .3s var(--ease-out)}.error-link-pill[data-v-e8490e6c]:hover{transform:translateY(-1px);border-color:var(--primary);box-shadow:var(--shadow-sm)}.error-link-pill[data-v-e8490e6c]:active{transform:scale(.96)}.error-link-pill[data-v-e8490e6c]:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.error-actions[data-v-e8490e6c]{display:flex;flex-wrap:wrap;gap:var(--space-3);justify-content:center;margin-top:var(--space-6);animation:errorPartIn-e8490e6c .5s var(--ease-out-expo) .4s both}.error-actions .btn[data-v-e8490e6c]{transition:transform .35s var(--ease-spring-gentle),box-shadow .35s var(--ease-out-expo)}.error-actions .btn[data-v-e8490e6c]:hover{transform:translateY(-1px);box-shadow:var(--shadow-md)}.error-actions .btn[data-v-e8490e6c]:active{transform:scale(.95);transition-duration:.08s}.dark .error-code[data-v-e8490e6c]{background:linear-gradient(135deg,var(--primary-light) 0,var(--accent) 100%);-webkit-background-clip:text;background-clip:text}.dark .illust-halo[data-v-e8490e6c]{opacity:.9}.dark .illust-face[data-v-e8490e6c]{stroke-opacity:1}.dark .error-link-pill[data-v-e8490e6c]{background:var(--bg-alt,var(--bg-warm));border-color:var(--border)}.dark .error-link-pill[data-v-e8490e6c]:hover{border-color:var(--primary-fg)}.dark .error-search-input[data-v-e8490e6c]{background:var(--card,var(--bg-alt));border-color:var(--border)}.dark .error-search-input[data-v-e8490e6c]:focus{border-color:var(--primary-fg);box-shadow:0 0 0 3px rgba(var(--primary-rgb),.25)}@media(max-width:520px){.error-page[data-v-e8490e6c]{min-height:60vh;padding:var(--space-8) var(--space-4)}.error-actions[data-v-e8490e6c]{flex-direction:column;align-items:stretch}.error-actions .btn[data-v-e8490e6c]{width:100%;min-width:140px}.error-search[data-v-e8490e6c]{flex-direction:column;align-items:stretch}.error-search-input[data-v-e8490e6c]{max-width:none}.error-search-btn[data-v-e8490e6c]{width:100%}}@media(prefers-reduced-motion:reduce){.error-actions[data-v-e8490e6c],.error-code[data-v-e8490e6c],.error-content[data-v-e8490e6c],.error-discovery[data-v-e8490e6c],.error-msg[data-v-e8490e6c],.illust-sparkles .spark[data-v-e8490e6c]{animation:none}.error-actions .btn[data-v-e8490e6c],.error-link-pill[data-v-e8490e6c],.error-search-input[data-v-e8490e6c]{transition:none}}@media(forced-colors:active){.error-code[data-v-e8490e6c]{-webkit-text-fill-color:Highlight;background:none}.error-illust circle[data-v-e8490e6c],.error-illust line[data-v-e8490e6c],.error-illust path[data-v-e8490e6c]{stroke:CanvasText}.illust-halo[data-v-e8490e6c]{fill:Canvas}.error-search-input[data-v-e8490e6c]{border:1px solid ButtonBorder}.error-actions .btn[data-v-e8490e6c],.error-link-pill[data-v-e8490e6c]{border:1px solid ButtonText}}
