@font-face{font-family:Plex;font-weight:400;font-style:normal;font-display:swap;unicode-range:U+2D7,U+303,U+331,U+E01-E5B,U+200C-200D,U+25CC;src:url(/fonts/plex_thai_400.woff2)format("woff2")}@font-face{font-family:Plex;font-weight:600;font-style:normal;font-display:swap;unicode-range:U+2D7,U+303,U+331,U+E01-E5B,U+200C-200D,U+25CC;src:url(/fonts/plex_thai_600.woff2)format("woff2")}@font-face{font-family:Plex;font-weight:400;font-style:normal;font-display:swap;unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215;src:url(/fonts/plex_latin_400.woff2)format("woff2")}@font-face{font-family:Plex;font-weight:600;font-style:normal;font-display:swap;unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215;src:url(/fonts/plex_latin_600.woff2)format("woff2")}:root{--bg-a:#fbeae6;--bg-b:#fff8f3;--nav-bg:#f6dcd3;--card:#fff9f5;--card-deep:#f3dad2;--ink:#6b4f48;--ink-soft:#a9887f;--accent:#ce9c90;--accent-deep:#b47f72;--line:#f0ddd5;--placeholder:#e9cac1;--field:#fff;--warn:#b4552f;--ok:#4e8c6c;--ring:0 0 0 3px var(--card), 0 0 0 5px var(--accent);--stamp-ink-1:var(--accent-deep);--stamp-ink-2:#5b7fa6;--stamp-ink-3:#8a8368;--stamp-ink-4:#a5567a}*{box-sizing:border-box}html,body{height:100%}body{background:var(--bg-a);color:var(--ink);-webkit-font-smoothing:antialiased;margin:0;font-family:Plex,Segoe UI,system-ui,sans-serif;overflow-x:hidden}a{color:inherit}h1,h2,h3{margin:0;font-family:Plex,sans-serif;font-weight:600}.nav{z-index:40;background:color-mix(in srgb, var(--nav-bg) 92%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);grid-template-columns:1fr auto 1fr;align-items:center;column-gap:16px;padding:14px 26px;display:grid;position:sticky;top:0}.brand{color:var(--accent-deep);justify-self:start;align-items:center;gap:8px;font-family:Plex,sans-serif;font-size:1.05rem;font-weight:600;text-decoration:none;display:flex}.brand-logo{object-fit:cover;border-radius:50%;flex-shrink:0;width:32px;height:32px}.navlinks{justify-self:center;align-items:center;gap:4px;display:flex}.navlinks a{color:var(--ink-soft);white-space:nowrap;border-radius:999px;padding:8px 12px;font-size:.86rem;font-weight:400;text-decoration:none;transition:color .2s,background .2s;position:relative}.navlinks a:hover{color:var(--ink);background:color-mix(in srgb, var(--card) 60%, transparent)}.navlinks a.active{color:var(--ink);background:var(--card);font-weight:600}.nav-right{justify-self:end;align-items:center;gap:8px;display:flex}.admin-pill,.pill-link{color:var(--accent-deep);background:var(--card);border:1px solid var(--line);white-space:nowrap;cursor:pointer;border-radius:999px;padding:8px 16px;font-family:Plex,sans-serif;font-size:.8rem;font-weight:600;text-decoration:none;transition:transform .2s,box-shadow .2s,background .2s}.admin-pill:hover,.pill-link:hover{background:var(--card-deep);transform:translateY(-1px);box-shadow:0 4px 14px #b4677a38}@media (max-width:760px){.nav{grid-template-columns:1fr auto;row-gap:10px;padding:12px 16px}.brand{grid-column:1}.nav-right{grid-column:2}.navlinks{scrollbar-width:none;grid-area:2/1/auto/-1;justify-content:flex-start;justify-self:stretch;width:100%;overflow-x:auto}.navlinks::-webkit-scrollbar{display:none}}.nav-minimal{-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0;border-bottom:none;grid-template-columns:1fr;justify-items:center;padding:clamp(34px,8vh,56px) 26px clamp(8px,2vh,16px);position:static}.nav-minimal .brand{flex-direction:column;justify-self:center;gap:4px;font-size:clamp(1.9rem,5vw,3rem)}.brand-logo-animated{flex-shrink:0;width:clamp(64px,9vw,96px);height:clamp(78px,11vw,118px);display:inline-block;position:relative}.brand-logo-animated img{object-fit:contain;object-position:bottom center;pointer-events:none;-webkit-user-select:none;user-select:none;width:100%;height:100%;position:absolute;inset:0}@media (max-width:760px){.nav-minimal{grid-template-columns:1fr}}.wrap{max-width:1180px;margin:0 auto;padding:40px 26px 70px}.pill-btn{border:1px solid var(--line);background:var(--card);color:var(--ink-soft);cursor:pointer;border-radius:999px;align-items:center;gap:6px;padding:9px 16px;font-family:Plex,sans-serif;font-size:.84rem;font-weight:400;transition:border-color .2s,color .2s,background .2s,transform .2s;display:inline-flex}.pill-btn:hover{border-color:var(--accent);transform:translateY(-1px)}.pill-btn.active{background:var(--accent);border-color:var(--accent);color:#fff}.grid{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:22px;display:grid}.card{background:var(--card);border:1px solid var(--line);border-radius:18px;flex-direction:column;transition:transform .3s cubic-bezier(.22,.8,.32,1),box-shadow .3s;display:flex;overflow:hidden}.card:hover{transform:translateY(-5px);box-shadow:0 16px 30px -14px #783c4652}.card .thumb{aspect-ratio:4/3;background:var(--placeholder);position:relative;overflow:hidden}.thumb-btn{cursor:pointer;width:100%;font:inherit;text-align:left;border:none;margin:0;padding:0;display:block}.card .thumb img{object-fit:cover;width:100%;height:100%;transition:transform .5s cubic-bezier(.22,.8,.32,1);display:block}.card:hover .thumb img{transform:scale(1.06)}.card .thumb .ph{width:100%;height:100%;color:var(--accent-deep);opacity:.55;justify-content:center;align-items:center;display:flex}.card .thumb .ph svg{width:34%;height:34%}.card .body{flex-direction:column;gap:6px;padding:14px 16px 16px;display:flex}.card h3{font-size:.98rem;line-height:1.35}.card .excerpt{color:var(--ink-soft);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:.8rem;line-height:1.5;display:-webkit-box;overflow:hidden}.card .tag{color:var(--accent-deep);background:color-mix(in srgb, var(--accent) 14%, var(--card));border-radius:999px;align-self:flex-start;margin-top:2px;padding:3px 10px;font-size:.72rem}.grid-travel .card .thumb{aspect-ratio:16/11}.grid-gadgets .card .thumb{aspect-ratio:1;background:var(--card-deep)}.grid-gadgets .card .tag{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.grid-lifestyle .card .thumb{aspect-ratio:1}.empty{text-align:center;color:var(--ink-soft);border:1.5px dashed var(--line);border-radius:20px;flex-direction:column;grid-column:1/-1;align-items:center;gap:10px;padding:60px 20px;display:flex}.empty .icon{font-size:2.2rem}.empty a{color:var(--accent-deep);border-bottom:1px dashed var(--accent-deep);font-weight:600;text-decoration:none}.page-head{margin-bottom:28px}.page-head h1{color:var(--accent-deep);margin-bottom:6px;font-size:1.7rem}.page-head p{color:var(--ink-soft);max-width:560px;font-size:.92rem}footer.site-footer{border-top:1px solid var(--line);color:var(--ink-soft);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-top:20px;padding:22px 26px;font-size:.78rem;display:flex}footer.site-footer .links{gap:16px;display:flex}footer.site-footer a{color:var(--ink-soft);text-decoration:none;transition:color .2s}footer.site-footer a:hover{color:var(--accent-deep)}.cat-walk-wrap{background:var(--line);flex-shrink:0;justify-content:center;align-items:flex-end;height:264px;padding-bottom:8px;display:flex;position:relative;overflow:hidden}.cat-walk-wrap-airport{background-image:linear-gradient(#fff8f626,#fff8f659),url(/AP.jpg);background-position:80% 60%;background-size:160%}.cat-walk-frame{object-fit:contain;object-position:bottom center;pointer-events:none;-webkit-user-select:none;user-select:none;width:auto;max-width:90%;height:calc(100% - 8px);position:absolute;bottom:8px;left:50%;transform:translate(-50%)}.cat-walk-shadow{filter:blur(1px);pointer-events:none;background:radial-gradient(#3c262052 0%,#3c262024 55%,#0000 78%);border-radius:50%;width:84px;height:18px;position:absolute;bottom:6px;left:50%;transform:translate(-50%)}.wall-wrap{background:var(--line);min-height:0;position:relative;overflow:hidden}.carousel-wrap{touch-action:none;cursor:grab;justify-content:center;align-items:stretch;min-height:0;padding-top:28px;display:flex}.carousel-wrap:active{cursor:grabbing}.carousel-column{flex-direction:column;align-items:center;gap:18px;width:100%;min-height:0;display:flex}.carousel-stage{perspective:1400px;flex:1;width:100%;min-height:0;max-height:560px;position:relative}.carousel-caption{color:var(--accent-deep);text-align:center;padding:0 20px;font-family:Plex,sans-serif;font-size:1.05rem;font-weight:600;animation:.5s both caption-in}@keyframes caption-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.carousel-card{aspect-ratio:4/5;background:var(--card-deep);will-change:transform, filter, opacity;border:none;border-radius:18px;width:auto;max-width:min(58vw,460px);height:100%;padding:0;position:absolute;top:0;left:50%;overflow:hidden;box-shadow:0 20px 50px #00000038}.carousel-card img{object-fit:cover;pointer-events:none;width:100%;height:100%;display:block}.home-carousel-shift{flex-direction:column;flex:1;min-height:0;padding-top:clamp(28px,6vh,72px);display:flex}.carousel-thumb .carousel-stage{max-height:300px}.carousel-thumb .carousel-card{border-radius:14px;max-width:min(32vw,240px)}.carousel-thumb .carousel-caption{font-size:.92rem}.carousel-micro.carousel-wrap{padding-top:10px}.carousel-micro .carousel-column{gap:8px}.carousel-micro .carousel-stage{max-height:140px}.carousel-micro .carousel-card{border-radius:10px;max-width:min(17vw,104px)}.carousel-micro .carousel-caption{font-size:.72rem}@media (max-height:820px){.cat-walk-wrap{height:170px}.cat-walk-shadow{width:60px;height:14px;bottom:4px}.carousel-stage{height:min(52vh,420px)}}@media (max-height:480px){.cat-walk-wrap{height:100px}.cat-walk-shadow{width:36px;height:9px;bottom:2px}.carousel-stage{height:min(46vh,260px)}}.mini-walk-row{flex-wrap:wrap;flex-shrink:0;justify-content:center;align-items:flex-start;gap:clamp(14px,4vw,40px);width:100%;max-width:960px;margin:clamp(12px,3vh,28px) auto 0;padding:0 24px;display:flex}.home-hub-col{flex-direction:column;flex:1 1 0;align-items:center;gap:8px;min-width:0;max-width:320px;display:flex}.mini-walk-frame-wrap{width:clamp(100px,22vw,168px);height:clamp(112px,24vw,188px);transition:transform .2s;display:block;position:relative}.mini-walk-frame-wrap:hover{transform:translateY(-3px)}.mini-walk-frame{object-fit:contain;object-position:bottom center;pointer-events:none;-webkit-user-select:none;user-select:none;width:84%;height:84%;position:absolute;inset:8%}.mini-walk-empty{justify-content:center;align-items:center;font-size:2rem;display:flex;position:absolute;inset:0}.mini-walk-label{color:var(--accent-deep);text-align:center;font-family:Plex,sans-serif;font-size:.9rem;font-weight:600}.wall-empty{text-align:center;color:var(--ink-soft);flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:20px;display:flex;position:absolute;inset:0}.wall-empty .icon{font-size:2.6rem}.wall-empty a{color:var(--accent-deep);border-bottom:1px dashed var(--accent-deep);font-weight:600;text-decoration:none}.auth-wrap{justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.auth-card{background:var(--card);border:1px solid var(--line);border-radius:20px;flex-direction:column;gap:16px;width:100%;max-width:380px;padding:28px;display:flex}.auth-card h1{color:var(--accent-deep);text-align:center;justify-content:center;align-items:center;gap:8px;font-size:1.3rem;display:flex}.field{flex-direction:column;gap:6px;display:flex}label{color:var(--ink-soft);font-size:.82rem;font-weight:600}input[type=text],input[type=email],input[type=password],input[type=url],textarea,select{color:var(--ink);background:var(--field);border:1px solid var(--line);border-radius:12px;width:100%;padding:10px 12px;font-family:Plex,sans-serif;font-size:.92rem;transition:border-color .2s,box-shadow .2s}textarea{resize:vertical;min-height:64px}input:focus,textarea:focus,select:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 18%, transparent);outline:none}button.primary{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:12px;padding:12px;font-family:Plex,sans-serif;font-size:.94rem;font-weight:600;transition:background .2s,transform .15s}button.primary:hover{background:var(--accent-deep);transform:translateY(-1px)}button.primary:disabled{opacity:.5;cursor:not-allowed;transform:none}.form-error{color:var(--warn);background:color-mix(in srgb, var(--warn) 10%, var(--card));border-radius:10px;padding:8px 12px;font-size:.82rem}.note{color:var(--ink-soft);background:var(--card);border:1px solid var(--line);border-radius:14px;margin:0;padding:14px 16px;font-size:.82rem;line-height:1.65}.admin-wrap{flex-direction:column;gap:22px;max-width:760px;margin:0 auto;padding:34px 22px 70px;display:flex}.admin-form{background:var(--card);border:1px solid var(--line);border-radius:20px;flex-direction:column;gap:16px;padding:22px;display:flex}.button-row{grid-template-columns:1fr 1.4fr 1.4fr auto;gap:8px;margin-bottom:8px;display:grid}.button-row button{background:color-mix(in srgb, var(--warn) 12%, var(--card));width:30px;height:30px;color:var(--warn);cursor:pointer;border:none;border-radius:50%;align-self:center;font-size:.75rem}.add-row{color:var(--accent-deep);background:color-mix(in srgb, var(--accent) 12%, var(--card));border:1px dashed var(--accent);cursor:pointer;border-radius:12px;width:100%;padding:10px;font-family:Plex,sans-serif;font-size:.85rem;font-weight:600;transition:background .2s}.add-row:hover{background:color-mix(in srgb, var(--accent) 20%, var(--card))}.cat-toggle{flex-wrap:wrap;gap:8px;display:flex}.cat-btn{text-align:center;border:1px solid var(--line);cursor:pointer;min-width:110px;color:var(--ink-soft);background:var(--field);border-radius:12px;flex:1;padding:10px;font-size:.84rem;transition:border-color .2s,background .2s,color .2s,transform .2s}.cat-btn:hover{transform:translateY(-1px)}.cat-btn.active{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 16%, var(--field));color:var(--ink);font-weight:600}.dropzone{border:1.5px dashed var(--line);cursor:pointer;border-radius:14px;align-items:center;gap:14px;padding:20px;transition:border-color .2s,background .2s;display:flex}.dropzone:hover,.dropzone.drag{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 8%, transparent)}.dropzone input{display:none}.dz-preview{background:var(--placeholder);border-radius:10px;flex:none;justify-content:center;align-items:center;width:72px;height:72px;display:flex;overflow:hidden}.dz-preview img{object-fit:cover;width:100%;height:100%;display:block}.dz-preview svg{width:40%;height:40%;color:var(--accent-deep);opacity:.6}.dz-text{color:var(--ink-soft);font-size:.82rem;line-height:1.5}.dz-text b{color:var(--ink)}.file-note{color:var(--ink-soft);font-size:.74rem}.file-note.ok{color:var(--ok)}.file-note.warn{color:var(--warn)}.gallery-thumbs{grid-template-columns:repeat(auto-fill,minmax(64px,1fr));gap:8px;margin-top:14px;display:grid}.gallery-thumbs .gt{flex-direction:column;gap:4px;display:flex;position:relative}.gallery-thumbs .gt-imgbox{aspect-ratio:1;background:var(--placeholder);border-radius:10px;position:relative;overflow:hidden}.gallery-thumbs .gt-imgbox img{object-fit:cover;width:100%;height:100%;display:block}.gallery-thumbs .gt button{color:#fff;cursor:pointer;z-index:1;background:#140e0c99;border:none;border-radius:50%;justify-content:center;align-items:center;width:20px;height:20px;padding:0;font-size:.7rem;line-height:1;transition:background .2s;display:flex;position:absolute;top:3px;right:3px}.gallery-thumbs .gt button:hover{background:var(--warn)}.gt-caption{border:1px solid var(--line);background:var(--card);width:100%;color:var(--ink);border-radius:6px;padding:4px 6px;font-family:inherit;font-size:.68rem}.gt-caption:focus{border-color:var(--accent);outline:none}.gt-latlng{grid-template-columns:1fr 1fr;gap:4px;display:grid}.gt-latlng .gt-caption{width:100%}.gt-imgbox{cursor:pointer;transition:box-shadow .15s}.gt-imgbox.selected{box-shadow:0 0 0 3px var(--accent);border-radius:10px}.gt-pin{filter:drop-shadow(0 1px 1px #00000080);pointer-events:none;font-size:.8rem;line-height:1;position:absolute;top:3px;left:3px}.location-editor{background:var(--card);border:1px solid var(--line);border-radius:16px;margin-top:14px;padding:16px}.location-editor-head{align-items:center;gap:12px;margin-bottom:14px;display:flex}.location-editor-head img{object-fit:cover;border-radius:10px;flex-shrink:0;width:52px;height:52px}.location-editor-head div{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.location-editor-head strong{color:var(--accent-deep);font-size:.92rem}.location-editor-head span{color:var(--ink-soft);font-size:.76rem}.location-editor-close{background:color-mix(in srgb, var(--warn) 12%, var(--card));color:var(--warn);cursor:pointer;border:none;border-radius:50%;flex-shrink:0;width:26px;height:26px;font-size:.75rem}.location-editor-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}@media (max-width:520px){.location-editor-grid{grid-template-columns:1fr}}.field-row{grid-template-columns:1fr 1fr;gap:12px;display:grid}@media (max-width:520px){.field-row{grid-template-columns:1fr}}.list h2{color:var(--accent-deep);margin-bottom:12px;font-size:1.05rem}.hub-uploaders{flex-direction:column;gap:16px;display:flex}.hub-uploaders .list{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:16px}.cmd-row{background:var(--card);border:1px solid var(--line);border-radius:14px;align-items:center;gap:12px;margin-bottom:8px;padding:10px 14px;display:flex}.cmd-row .thumb{background:var(--placeholder);border-radius:8px;flex:none;justify-content:center;align-items:center;width:46px;height:46px;display:flex;overflow:hidden}.cmd-row .thumb img{object-fit:cover;width:100%;height:100%;display:block}.cmd-row .meta{flex:1;min-width:0}.cmd-row .meta .t{white-space:nowrap;text-overflow:ellipsis;font-size:.88rem;font-weight:600;overflow:hidden}.cmd-row .meta .c{color:var(--ink-soft);font-size:.72rem}.cmd-row button.edit,.cmd-row button.delete{cursor:pointer;background:0 0;border:none;border-radius:8px;padding:6px 8px;font-size:.8rem;transition:background .2s}.cmd-row button.edit{color:var(--accent-deep)}.cmd-row button.edit:hover{background:color-mix(in srgb, var(--accent-deep) 12%, transparent)}.cmd-row button.delete{color:var(--warn)}.cmd-row button.delete:hover{background:color-mix(in srgb, var(--warn) 12%, transparent)}.empty-list{color:var(--ink-soft);font-size:.84rem;font-style:italic}.popup-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:500;background:#2818148c;justify-content:center;align-items:center;padding:24px;animation:.25s both popup-fade-in;display:flex;position:fixed;inset:0}@keyframes popup-fade-in{0%{opacity:0}to{opacity:1}}.popup-card{background:var(--card);border-radius:22px;flex-direction:column;gap:14px;width:100%;max-width:480px;max-height:90vh;padding:22px;animation:.32s cubic-bezier(.22,1,.36,1) both popup-rise-in;display:flex;position:relative;overflow-y:auto}@keyframes popup-rise-in{0%{opacity:0;transform:translateY(16px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}.admin-edit-card{align-items:stretch;max-width:640px}.crop-modal{background:var(--card);border-radius:22px;flex-direction:column;gap:14px;width:min(92vw,560px);padding:22px;animation:.32s cubic-bezier(.22,1,.36,1) both popup-rise-in;display:flex;position:relative}.crop-modal-stage{background:#171012;border-radius:14px;width:100%;height:min(52vh,400px);position:relative;overflow:hidden}.crop-modal-zoom{align-items:center;gap:10px;font-size:1rem;display:flex}.crop-modal-zoom input[type=range]{accent-color:var(--accent-deep);flex:1}.crop-modal-actions{justify-content:flex-end;gap:10px;display:flex}.crop-modal-actions button.primary{width:auto;padding:10px 22px}.popup-zoom{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:0;width:min(92vw,1560px);max-width:98vw;height:min(90vh,980px);max-height:96vh;padding:0;animation-name:popup-zoom-in;animation-duration:.38s;animation-timing-function:cubic-bezier(.22,1,.36,1);display:grid;overflow:hidden}@media (max-width:760px){.popup-zoom{grid-template-rows:minmax(160px,38%) 1fr;grid-template-columns:1fr;width:min(97vw,540px);height:min(93vh,800px)}}.popup-lightbox{z-index:600;background:#0a0605e0;justify-content:center;align-items:center;padding:40px;animation:.2s both popup-fade-in;display:flex;position:fixed;inset:0}.popup-lightbox-img{object-fit:contain;border-radius:8px;max-width:min(90vw,1500px);max-height:86vh;box-shadow:0 20px 60px #00000080}.popup-lightbox-close{color:#fff;cursor:pointer;background:#ffffff26;border:none;border-radius:50%;width:40px;height:40px;font-size:1rem;transition:background .2s;position:absolute;top:20px;right:24px}.popup-lightbox-close:hover{background:#ffffff47}.popup-lightbox-nav{color:#fff;cursor:pointer;background:#ffffff26;border:none;border-radius:50%;width:48px;height:48px;font-size:1.6rem;line-height:1;transition:background .2s;position:absolute;top:50%;transform:translateY(-50%)}.popup-lightbox-nav:hover{background:#ffffff47}.popup-lightbox-nav.prev{left:20px}.popup-lightbox-nav.next{right:20px}.popup-lightbox-caption{text-align:center;color:#fff;opacity:.85;font-size:.9rem;position:absolute;bottom:24px;left:0;right:0}@media (max-width:760px){.popup-lightbox-nav{width:40px;height:40px;font-size:1.3rem}}@keyframes popup-zoom-in{0%{opacity:0;transform:scale(.55)}to{opacity:1;transform:scale(1)}}.popup-close{background:color-mix(in srgb, var(--accent) 16%, var(--card));width:30px;height:30px;color:var(--accent-deep);cursor:pointer;z-index:2;border:none;border-radius:50%;font-size:.85rem;position:absolute;top:14px;right:14px}.popup-topic{color:var(--accent-deep);padding-right:34px;font-size:1.15rem}.popup-content-desc{color:var(--ink-soft);white-space:pre-line;font-size:.9rem;line-height:1.65}.popup-story-left{background:var(--bg-b);border-right:1px solid var(--line);height:100%;padding:20px;overflow-y:auto}.popup-story-grid{grid-template-columns:repeat(2,1fr);gap:10px;display:grid}.popup-story-thumb{aspect-ratio:4/3;cursor:pointer;background:var(--placeholder);border:2px solid #0000;border-radius:12px;padding:0;transition:border-color .2s,transform .2s;position:relative;overflow:hidden}.popup-story-thumb img{object-fit:cover;width:100%;height:100%;display:block}.popup-story-thumb:hover{transform:translateY(-2px)}.popup-story-thumb.active{border-color:var(--accent-deep)}.popup-story-thumb-caption{color:#fff;text-align:left;background:linear-gradient(#0000,#1e1210bf);padding:5px 8px;font-size:.7rem;line-height:1.3;position:absolute;bottom:0;left:0;right:0}.popup-story-grid-empty{opacity:.5;justify-content:center;align-items:center;height:100%;font-size:2.4rem;display:flex}.popup-story-right{flex-direction:column;gap:14px;height:100%;padding:24px;display:flex;overflow-y:auto}.popup-story-country{color:var(--ink);align-items:baseline;gap:8px;margin-top:-8px;font-size:1rem;font-weight:600;display:flex}.popup-story-country span:first-child{font-size:1.3rem}.popup-story-city{color:var(--ink-soft);font-size:.85rem;font-weight:400}.popup-location-tabs{flex-wrap:wrap;gap:6px;display:flex}.location-tab{color:var(--accent-deep);background:color-mix(in srgb, var(--accent) 12%, var(--card));cursor:pointer;border:1px solid #0000;border-radius:999px;padding:7px 14px;font-family:Plex,sans-serif;font-size:.8rem;font-weight:600;transition:background .2s,color .2s}.location-tab.active{background:var(--accent-deep);color:#fff}.popup-dashboard{background:var(--bg-b);border:1px solid var(--line);border-radius:16px;flex-direction:column;gap:12px;padding:18px 20px;display:flex}.popup-dashboard h3{color:var(--accent-deep);font-size:1.05rem}.location-row{flex-direction:column;gap:3px;display:flex}.location-row-label{letter-spacing:.04em;text-transform:uppercase;color:var(--ink-soft);font-size:.72rem;font-weight:600}.location-row p{color:var(--ink);margin:0;font-size:.9rem;line-height:1.55}.location-row a{color:var(--accent-deep);word-break:break-all;font-size:.9rem}.location-detail-text{white-space:pre-line}.location-maplink{color:#fff;background:var(--accent-deep);border-radius:999px;align-self:flex-start;margin-top:auto;padding:10px 20px;font-family:Plex,sans-serif;font-size:.85rem;font-weight:600;text-decoration:none;transition:background .2s,transform .2s}.location-maplink:hover{background:var(--warn);transform:translateY(-1px)}.popup-buttons{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.popup-button{color:var(--accent-deep);background:color-mix(in srgb, var(--accent) 12%, var(--card));cursor:pointer;border:1px solid #0000;border-radius:999px;padding:8px 16px;font-family:Plex,sans-serif;font-size:.82rem;font-weight:600;transition:background .2s,border-color .2s}.popup-button.active{background:var(--accent-deep);color:#fff}.popup-content{color:var(--ink);white-space:pre-line;font-size:.9rem;line-height:1.65}.popup-go{background:var(--accent-deep);color:#fff;letter-spacing:.06em;border-radius:999px;align-self:center;padding:10px 34px;font-size:.85rem;font-weight:600;text-decoration:none;transition:background .2s,transform .2s}.popup-go:hover{background:var(--warn);transform:translateY(-2px)}.passport-header{text-align:center;flex-shrink:0;width:100%;max-width:640px;margin:0 auto;padding:30px 20px 6px;position:relative}.passport-header h1{color:var(--accent-deep);margin:0 0 6px;font-size:1.5rem}.passport-header p{color:var(--ink-soft);margin:0;font-size:.86rem}.passport-header-deco{opacity:.35;font-size:1.8rem;position:absolute;top:14px;right:18px;transform:rotate(14deg)}.passport-empty{text-align:center;color:var(--ink-soft);flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:60px 20px;display:flex}.passport-empty .icon{font-size:2.6rem}.passport-empty a{color:var(--accent-deep);border-bottom:1px dashed var(--accent-deep);font-weight:600;text-decoration:none}.passport-book-scale-wrap{width:100%}@media (min-width:768px){.passport-book-scale-wrap{flex:1;justify-content:center;align-items:center;min-height:0;display:flex;overflow:hidden}}.passport-book{border:1px solid var(--line);background:#fffdfb;border-radius:20px;flex-direction:column;width:100%;max-width:1180px;margin:18px auto 0;padding:24px 20px;display:flex;position:relative;box-shadow:-4px 6px 22px #6b4f481a,inset 0 0 0 1px #fff9}@media (min-width:768px){.passport-book{transform-origin:50%;flex-direction:row;flex-shrink:0;width:1180px;margin:0;padding:44px 58px}}.passport-spine{display:none}@media (min-width:768px){.passport-spine{background:linear-gradient(to right, transparent, color-mix(in srgb, var(--accent) 22%, transparent), transparent);pointer-events:none;width:40px;margin-left:-20px;display:block;position:absolute;top:0;bottom:0;left:50%}}.passport-page{flex-direction:column;flex:1;min-height:0;padding-top:18px;display:flex;position:relative}.passport-page-left{border-bottom:1px dashed var(--line);padding-bottom:18px}@media (min-width:768px){.passport-page-left{border-bottom:none;border-right:1px dashed var(--line);padding-bottom:0;padding-right:30px}.passport-page-right{padding-top:18px;padding-left:30px}}.washi-tape{pointer-events:none;border-radius:2px;width:90px;height:22px;position:absolute;top:-6px;left:20px;transform:rotate(-3deg)}.washi-tape-blue{background:color-mix(in srgb, var(--stamp-ink-2) 35%, transparent)}.washi-tape-pink{background:color-mix(in srgb, var(--accent) 45%, transparent);left:auto;right:20px;transform:rotate(3deg)}.passport-scatter{flex:1;min-height:300px;padding:8px 4px;position:relative}@media (min-width:768px){.passport-scatter{min-height:560px}}.stamp-slot{position:absolute;transform:translate(-50%,-50%)}.passport-page-num{text-align:center;color:var(--ink-soft);opacity:.6;margin-top:auto;padding-top:8px;font-size:.72rem}.stamp-btn{cursor:pointer;background:0 0;border:none;padding:0;transition:transform .25s;position:relative}.stamp-btn:hover{transform:scale(1.08)!important}.stamp-art-wrap{max-width:164px;max-height:164px;display:inline-flex}.stamp-art-img{object-fit:contain;filter:drop-shadow(0 4px 10px #6b4f4838);width:auto;max-width:164px;height:auto;max-height:164px;display:block}@media (max-width:480px){.stamp-art-wrap{max-width:100px;max-height:100px}}.stamp-shape{text-align:center;color:var(--stamp-ink-1);opacity:.9;background:#ffffff80;flex-direction:column;justify-content:center;align-items:center;display:flex}.stamp-ink-1{color:var(--stamp-ink-1)}.stamp-ink-2{color:var(--stamp-ink-2)}.stamp-ink-3{color:var(--stamp-ink-3)}.stamp-ink-4{color:var(--stamp-ink-4)}.stamp-flag{margin-bottom:3px;font-size:2.05rem;line-height:1}.stamp-code{letter-spacing:.08em;font-size:1.1rem;font-weight:700}.stamp-country{text-transform:uppercase;letter-spacing:.04em;color:var(--ink-soft);max-width:82%;margin-top:3px;font-size:.72rem;line-height:1.25}.stamp-shape-circle-double{border:8px double;border-radius:50%;width:160px;height:160px}.stamp-shape-circle-dashed{border:5px dashed;border-radius:50%;width:148px;height:148px}.stamp-shape-circle-dotted{border:6px dotted;border-radius:50%;width:152px;height:152px}.stamp-shape-circle-nested{border:3px solid;border-radius:50%;width:162px;height:162px;box-shadow:inset 0 0 0 6px #ffffff8c,inset 0 0 0 7px}.stamp-shape-square-nested{border:3px solid;border-radius:16px;width:144px;height:144px;box-shadow:inset 0 0 0 6px #ffffff8c,inset 0 0 0 7px}.stamp-shape-rect{border:3px solid;border-radius:12px;width:168px;height:112px}@media (max-width:480px){.stamp-art-wrap{border-radius:12px;width:96px;height:96px}.stamp-shape-circle-double,.stamp-shape-circle-dashed,.stamp-shape-circle-dotted,.stamp-shape-circle-nested,.stamp-shape-square-nested{width:92px;height:92px}.stamp-shape-rect{width:100px;height:68px}.stamp-flag{font-size:1.3rem}.stamp-code{font-size:.78rem}.stamp-country{font-size:.52rem}}.stamp-city-tag{letter-spacing:.05em;white-space:nowrap;font-size:.58rem;font-weight:700;position:absolute;bottom:-8px;right:-2px;transform:rotate(6deg)}.passport-pager{color:var(--ink-soft);justify-content:center;align-items:center;gap:16px;margin:18px auto 8px;font-size:.84rem;display:flex}.passport-pager button{color:var(--accent-deep);background:color-mix(in srgb, var(--accent) 12%, var(--card));cursor:pointer;border:1px solid #0000;border-radius:999px;padding:8px 16px;font-family:Plex,sans-serif;font-size:.82rem;font-weight:600;transition:background .2s}.passport-pager button:hover:not(:disabled){background:color-mix(in srgb, var(--accent) 24%, var(--card))}.passport-pager button:disabled{opacity:.4;cursor:not-allowed}@media (prefers-reduced-motion:reduce){.card{transition:none}}
