*{box-sizing:border-box}
html,body,#app{margin:0;width:100%;height:100%;height:100dvh;overflow:hidden}
body{background:#0c1430;color:#cdd6e2;font-family:'IBM Plex Serif','Times New Roman',serif}
.mono{font-family:'Special Elite','Courier New',monospace}.ui{font-family:'IBM Plex Sans',system-ui,sans-serif}
.flicker{animation:flick 5s infinite}@keyframes flick{0%,96%,100%{opacity:1}97%{opacity:.4}98%{opacity:.9}}
#cv{width:100vw;height:100vh;height:100dvh;max-height:100dvh;display:block;cursor:grab}
.screen{position:fixed;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:24px;z-index:5}
.brand{font-family:'Special Elite',monospace;font-size:clamp(28px,7vw,58px);letter-spacing:.16em;color:#f0cd6e;text-shadow:0 0 34px rgba(240,205,110,.4)}
.quote{font-size:22px;font-style:italic;margin-top:24px;max-width:440px}
.subq{color:#7d88a4;font-style:italic;margin-top:8px}
.stat{font-size:18px;color:#a7b2cc;margin:5px 0}
.btn{background:#f0cd6e;color:#101a2e;border:0;padding:13px 28px;font-family:'Special Elite',monospace;font-size:15px;border-radius:3px;cursor:pointer;letter-spacing:.04em}
input,textarea,select{background:#16223e;border:1px solid #2f3d5c;color:#f0cd6e;padding:11px 14px;font-size:15px;border-radius:3px;font-family:'Special Elite','Courier New',monospace;width:100%;outline:none}
textarea{color:#cdd6e2;resize:vertical;line-height:1.5}
.hud{position:fixed;top:0;left:0;right:0;z-index:6;display:flex;justify-content:space-between;align-items:center;padding:calc(12px + env(safe-area-inset-top)) 14px 12px;gap:10px;background:linear-gradient(180deg,rgba(12,20,48,.92),transparent)}
.hud .t{font-family:'Special Elite',monospace;color:#f0cd6e;letter-spacing:.12em;font-size:16px}
.hud .ctl{display:flex;gap:6px;align-items:center}.hud .ctl>.subq{margin-top:0;display:inline-flex;align-items:center;line-height:1.1;white-space:nowrap}
.chip{background:#16223e;color:#7d88a4;border:1px solid #2f3d5c;padding:7px 9px;font-family:'Special Elite',monospace;font-size:13px;border-radius:2px;cursor:pointer}
.chip.on{color:#f0cd6e;border-color:#f0cd6e}
.mobile-menu-btn,.mobile-menu{display:none}.desktop-nav{display:inline-flex;gap:6px;align-items:center;flex-wrap:wrap}
.searchbar{position:fixed;top:52px;left:0;right:0;z-index:6;display:flex;gap:6px;justify-content:center;padding:6px;flex-wrap:wrap}
.searchbar input{width:auto;flex:1;max-width:240px;padding:7px 12px}
.searchbar select{width:auto;padding:7px 10px}
.moodbar{position:fixed;top:96px;left:0;right:0;z-index:6;display:flex;gap:6px;justify-content:center;flex-wrap:wrap;padding:4px}
.livebar{position:fixed;top:118px;left:50%;transform:translateX(-50%);z-index:6;display:flex;justify-content:center;padding:2px 10px;max-width:min(92vw,760px);pointer-events:none}
.livepill{background:rgba(18,28,50,.82);border:1px solid rgba(240,205,110,.28);box-shadow:0 12px 26px rgba(0,0,0,.16);border-radius:18px;padding:9px 24px 10px;color:#c7d0e6;font-size:14px;font-style:italic;line-height:1.25;letter-spacing:.015em;backdrop-filter:blur(6px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:opacity .25s ease, transform .25s ease}
.toast{position:fixed;left:50%;bottom:calc(116px + env(safe-area-inset-bottom));transform:translateX(-50%);z-index:40;max-width:min(92vw,420px);background:rgba(10,18,35,.94);border:1px solid rgba(240,205,110,.32);box-shadow:0 18px 46px rgba(0,0,0,.38);color:#f0cd6e;border-radius:999px;padding:11px 18px;font-family:'IBM Plex Sans',system-ui,sans-serif;font-size:14px;text-align:center}
.city-reply{position:fixed;left:50%;bottom:calc(122px + env(safe-area-inset-bottom));transform:translateX(-50%);z-index:42;width:min(92vw,470px);background:rgba(11,18,34,.96);border:1px solid rgba(240,205,110,.42);box-shadow:0 22px 58px rgba(0,0,0,.46),0 0 34px rgba(240,205,110,.08);border-radius:16px;padding:15px 18px;color:#dbe4f2;text-align:left;backdrop-filter:blur(8px)}
.city-reply .rt{font-family:'Special Elite',monospace;color:#f0cd6e;font-size:14px;margin-bottom:6px}.city-reply .rb{font-size:15px;line-height:1.45;color:#cdd6e2;font-style:italic}.city-reply button{float:right;margin-top:10px;background:transparent;border:0;color:#7d88a4;cursor:pointer}
.living-card{border:1px solid rgba(240,205,110,.25);background:linear-gradient(180deg,rgba(17,29,56,.96),rgba(10,17,32,.96));border-radius:12px;padding:14px;margin:14px 0}.living-top{display:flex;justify-content:space-between;gap:12px;align-items:center}.living-title{font-family:'Special Elite',monospace;color:#f0cd6e}.living-stage{color:#a7b2cc;font-size:13px}.living-bar{height:9px;background:#0c1430;border:1px solid #2f3d5c;border-radius:99px;overflow:hidden;margin:10px 0}.living-fill{height:100%;background:linear-gradient(90deg,rgba(240,205,110,.45),rgba(240,205,110,.9));box-shadow:0 0 18px rgba(240,205,110,.25)}.living-items{display:flex;gap:7px;flex-wrap:wrap}.living-items span{font-size:12px;border:1px solid #2f3d5c;border-radius:999px;padding:5px 9px;color:#cdd6e2;background:#101b34}.return-box{border:1px dashed rgba(240,205,110,.3);background:rgba(15,27,52,.84);border-radius:12px;padding:12px 14px;margin:12px 0}.return-box .mono{color:#f0cd6e}.home-scene{position:relative;min-height:156px;border:1px solid rgba(240,205,110,.18);border-radius:14px;margin:12px 0 10px;overflow:hidden;background:radial-gradient(circle at 50% 0,rgba(240,205,110,.13),transparent 42%),linear-gradient(180deg,#111d38,#090f20)}.home-building{position:absolute;left:50%;bottom:0;transform:translateX(-50%);width:128px;height:116px;background:linear-gradient(180deg,#223150,#121b30);border:1px solid rgba(205,214,226,.22);border-bottom:0;border-radius:10px 10px 0 0;box-shadow:0 -16px 42px rgba(0,0,0,.18)}.home-roof{position:absolute;left:-10px;right:-10px;top:-18px;height:24px;background:#0b1328;border:1px solid rgba(240,205,110,.18);transform:skewX(-8deg);border-radius:8px 8px 3px 3px}.home-window{position:absolute;left:32px;top:32px;width:64px;height:58px;background:#10182e;border:2px solid rgba(240,205,110,.25);border-radius:10px 10px 5px 5px;overflow:hidden}.home-scene.stage1 .home-window,.home-scene.stage2 .home-window,.home-scene.stage3 .home-window,.home-scene.stage4 .home-window,.home-scene.stage5 .home-window,.home-scene.stage6 .home-window,.home-scene.stage7 .home-window,.home-scene.stage8 .home-window{background:radial-gradient(circle at 50% 45%,rgba(255,231,160,.96),rgba(240,205,110,.5) 38%,rgba(89,62,27,.45) 72%);box-shadow:0 0 34px rgba(240,205,110,.36)}.home-curtain{display:none;position:absolute;top:0;bottom:0;width:18px;background:linear-gradient(180deg,rgba(142,93,123,.84),rgba(76,49,79,.9))}.home-curtain.left{left:0}.home-curtain.right{right:0}.home-scene.stage2 .home-curtain,.home-scene.stage3 .home-curtain,.home-scene.stage4 .home-curtain,.home-scene.stage5 .home-curtain,.home-scene.stage6 .home-curtain,.home-scene.stage7 .home-curtain,.home-scene.stage8 .home-curtain{display:block}.home-plant{display:none;position:absolute;right:18px;bottom:6px;width:25px;height:30px}.home-plant:before{content:'';position:absolute;left:8px;bottom:0;width:12px;height:10px;background:#8a5a3a;border-radius:2px}.home-plant:after{content:'';position:absolute;left:0;bottom:8px;width:28px;height:22px;background:radial-gradient(circle at 8px 12px,#7ad690 0 7px,transparent 8px),radial-gradient(circle at 18px 8px,#5ab976 0 7px,transparent 8px),radial-gradient(circle at 16px 17px,#8ce0a1 0 6px,transparent 7px)}.home-scene.stage3 .home-plant,.home-scene.stage4 .home-plant,.home-scene.stage5 .home-plant,.home-scene.stage6 .home-plant,.home-scene.stage7 .home-plant,.home-scene.stage8 .home-plant{display:block}.home-sign{display:none;position:absolute;left:18px;top:12px;right:18px;text-align:center;font-family:'Special Elite',monospace;color:#f0cd6e;font-size:12px;border:1px solid rgba(240,205,110,.35);background:#111d38;border-radius:999px;padding:4px}.home-scene.stage4 .home-sign,.home-scene.stage5 .home-sign,.home-scene.stage6 .home-sign,.home-scene.stage7 .home-sign,.home-scene.stage8 .home-sign{display:block}.home-mail{display:none;position:absolute;left:18px;bottom:14px;width:28px;height:18px;border:1px solid rgba(240,205,110,.5);background:#16223e;border-radius:3px}.home-mail:before{content:'';position:absolute;left:3px;right:3px;top:3px;height:8px;border-top:1px solid rgba(240,205,110,.4);transform:skewY(-20deg)}.home-scene.stage5 .home-mail,.home-scene.stage6 .home-mail,.home-scene.stage7 .home-mail,.home-scene.stage8 .home-mail{display:block}.home-balcony{display:none;position:absolute;left:24px;top:82px;width:80px;height:24px;border:2px solid rgba(205,214,226,.25);border-top:0;border-radius:0 0 12px 12px;background:rgba(8,13,25,.24)}.home-balcony i{position:absolute;top:0;bottom:0;width:1px;background:rgba(205,214,226,.24)}.home-balcony i:nth-child(1){left:20px}.home-balcony i:nth-child(2){left:40px}.home-balcony i:nth-child(3){left:60px}.home-scene.stage6 .home-balcony,.home-scene.stage7 .home-balcony,.home-scene.stage8 .home-balcony{display:block}.home-room{display:none;position:absolute;left:20px;right:20px;bottom:12px;height:22px;background:linear-gradient(90deg,rgba(240,205,110,.18),transparent,rgba(240,205,110,.14));border-radius:6px}.home-scene.stage7 .home-room,.home-scene.stage8 .home-room{display:block}.home-pin{display:none;position:absolute;right:14px;top:12px;color:#f0cd6e;font-size:18px;text-shadow:0 0 12px rgba(240,205,110,.4)}.home-scene.stage8 .home-pin{display:block}.model-homes{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px;margin:12px 0 18px}.model-home{border:1px solid rgba(240,205,110,.22);background:#101b34;border-radius:12px;padding:12px}.model-home .mh{font-family:'Special Elite',monospace;color:#f0cd6e;margin-bottom:6px}.model-home .subq{font-size:13px}.alley-chip{position:fixed;top:152px;right:16px;z-index:7;background:rgba(18,28,50,.88);border:1px solid rgba(240,205,110,.36);color:#f0cd6e;border-radius:999px;padding:9px 13px;font-family:'Special Elite',monospace;font-size:12px;cursor:pointer;box-shadow:0 12px 28px rgba(0,0,0,.22)}.event-banner{position:fixed;top:152px;left:50%;transform:translateX(-50%);z-index:6;max-width:min(92vw,720px);padding:10px 18px;border:1px solid rgba(240,205,110,.28);border-radius:18px;background:rgba(12,20,48,.76);box-shadow:0 14px 30px rgba(0,0,0,.18);color:#dbe4f2;text-align:center;font-style:italic;backdrop-filter:blur(6px)}.event-banner b{color:#f0cd6e;font-family:'Special Elite',monospace;font-style:normal;font-size:13px;letter-spacing:.06em}

.pill{background:rgba(22,34,62,.8);border:1px solid #2f3d5c;color:#a7b2cc;padding:5px 11px;border-radius:14px;cursor:pointer;font-size:14px}
.pill.on{border-color:#f0cd6e;color:#f0cd6e;background:#1d2c4c}
.bottom{position:fixed;bottom:calc(18px + env(safe-area-inset-bottom));left:0;right:0;z-index:6;display:flex;gap:10px;justify-content:center;flex-wrap:wrap}
.navbtn{background:rgba(22,34,62,.92);color:#f0cd6e;border:1px solid #2f3d5c;padding:12px 18px;font-family:'Special Elite',monospace;font-size:14px;border-radius:3px;cursor:pointer}
.panel{position:fixed;inset:0;z-index:7;overflow:auto;padding:44px 22px;background:#0c1430}
.panel .inner{max-width:600px;margin:0 auto}
.label{font-family:'Special Elite',monospace;font-size:13px;color:#7d88a4;margin:16px 0 6px;letter-spacing:.05em}
.row{display:flex;gap:8px;flex-wrap:wrap}
.choose-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}
.ccard{background:#16223e;border:1px solid #2f3d5c;border-radius:5px;padding:14px 12px;cursor:pointer;text-align:left}
.ccard.on{border-color:#f0cd6e;background:#1d2c4c}.ccard.locked{opacity:.55;filter:saturate(.6);cursor:not-allowed}
.ccard .e{font-size:26px}.ccard .l{font-family:'Special Elite',monospace;color:#f0cd6e;font-size:15px;display:block;margin:4px 0}
.ccard .s{font-size:15px;color:#a7b2cc;font-style:italic}
.entry{border-left:2px solid #f0cd6e;padding-left:16px;margin-bottom:16px}
.entry .d{font-family:'Special Elite',monospace;font-size:12px;color:#7d88a4;margin-bottom:5px}
.entry .b{font-size:21px;font-style:italic;color:#e6ecf4;line-height:1.5;white-space:pre-wrap;word-break:break-word}.entry .meta{font-family:'IBM Plex Sans',system-ui,sans-serif;color:#7d88a4;font-size:13px;margin-top:6px}.entry .meta a{color:#f0cd6e;text-decoration:none}
.modal-bg{position:fixed;inset:0;background:rgba(8,12,24,.85);z-index:20;display:flex;align-items:center;justify-content:center;padding:20px}
.modal{background:#16223e;border:1px solid #f0cd6e;border-radius:5px;padding:28px;max-width:440px}
.modal h3{color:#f0cd6e;font-family:'Special Elite',monospace;margin:0 0 12px}
.err{color:#ff8a8a;font-size:14px;margin-top:8px}
.back{background:none;border:0;color:#7d88a4;font-family:'Special Elite',monospace;font-size:13px;cursor:pointer;text-decoration:none}.sharebtn{display:inline-flex;align-items:center;gap:4px;background:#16223e;border:1px solid #2f3d5c;color:#f0cd6e!important;padding:8px 10px;border-radius:6px;text-decoration:none;font-family:'Special Elite',monospace;font-size:12px;cursor:pointer}
small.hint{color:#7d88a4;font-style:italic}.mini-note{font-size:13px;color:#7d88a4;line-height:1.4}.radioish{display:inline-flex;gap:5px;align-items:center;color:#a7b2cc;font-size:14px}.ownerbox{margin-top:18px;padding:12px 14px;border:1px dashed #2f3d5c;background:#101b34;border-radius:6px}.ownerbox summary{cursor:pointer;color:#f0cd6e;font-family:'Special Elite',monospace}.ownerlock{margin-top:10px}.ownerlock.hidden{display:none}
.checkrow{display:flex;gap:10px;align-items:flex-start;margin-top:14px;font-size:15px;color:#a7b2cc}.checkrow input{width:auto;margin-top:3px}
.venue-badge{display:inline-block;background:#f0cd6e;color:#101a2e;font-family:'Special Elite',monospace;font-size:11px;padding:2px 7px;border-radius:10px;margin-left:6px}.dash{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px;margin:14px 0}.dash .box{background:#111d38;border:1px solid #2f3d5c;border-radius:6px;padding:12px}.dash .n{font-size:24px;color:#f0cd6e;font-family:'Special Elite',monospace}.dash .l{font-size:12px;color:#7d88a4}.manage-actions{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0 18px}.wideinner{max-width:760px!important}.venue-inner{max-width:min(1160px,96vw)!important}.venue-inner .venue-profile{grid-template-columns:minmax(420px,1.05fr) minmax(420px,.95fr);gap:22px}.venue-inner .venue-cover{min-height:320px}.venue-inner textarea{min-height:96px;font-family:'IBM Plex Sans',system-ui,sans-serif}.venue-inner .mini-note{font-size:14px;line-height:1.55}@media (max-width:980px){.venue-inner .venue-profile{grid-template-columns:1fr}.venue-inner{max-width:760px!important}}

.district-dock{position:fixed;top:190px;left:50%;transform:translateX(-50%);z-index:6;display:flex;gap:6px;justify-content:center;flex-wrap:wrap;padding:4px;max-width:min(980px,96vw)}
.district-chip{background:rgba(14,25,45,.88);border:1px solid #30415e;color:#cdd6e2;padding:6px 11px;border-radius:14px;cursor:pointer;font-size:13px;box-shadow:0 8px 22px rgba(0,0,0,.12)}
.district-chip.on,.district-chip:hover{border-color:#f0cd6e;color:#f0cd6e;background:#1f2d4b}
.minimap{position:fixed;right:14px;bottom:86px;z-index:6;background:rgba(12,20,48,.88);border:1px solid #2f3d5c;border-radius:8px;padding:10px 12px;min-width:190px;backdrop-filter:blur(4px)}
.minimap .label{margin:0 0 6px;font-size:11px;color:#7d88a4}
.minimap .track{display:flex;height:8px;border-radius:6px;overflow:hidden;background:#111d38;border:1px solid #2b3957}
.minimap .seg{flex:1;position:relative;cursor:pointer;opacity:.72}.minimap .seg.active{opacity:1;box-shadow:inset 0 0 0 1px rgba(255,255,255,.34)}
.minimap .seg:not(:last-child)::after{content:'';position:absolute;right:0;top:0;bottom:0;width:1px;background:rgba(255,255,255,.15)}
.minimap .legend{display:grid;grid-template-columns:1fr 1fr;gap:5px 8px;margin-top:8px;font-size:11px;color:#9eb0ca}
.minimap .legend button{all:unset;cursor:pointer;display:flex;align-items:center;gap:5px;color:inherit}.minimap .dot{width:8px;height:8px;border-radius:50%;display:inline-block}


.venue-profile{display:grid;grid-template-columns:1.12fr .88fr;gap:14px;margin-top:14px}
.venue-cover{position:relative;min-height:220px;border:1px solid #2f3d5c;border-radius:12px;overflow:hidden;background:linear-gradient(180deg,rgba(17,30,55,.98),rgba(10,16,28,.98))}
.venue-cover .sky{position:absolute;inset:0;background:linear-gradient(180deg,rgba(56,86,142,.38),rgba(8,14,24,0) 48%)}
.venue-cover .glow{position:absolute;left:50%;bottom:20px;transform:translateX(-50%);width:76%;height:42px;background:radial-gradient(circle,rgba(240,205,110,.32),rgba(240,205,110,0) 72%)}
.venue-cover .building{position:absolute;box-shadow:0 18px 32px rgba(0,0,0,.28)}
.venue-cover .building.base{left:50%;bottom:34px;transform:translateX(-50%);width:68%;height:58%;border:1px solid rgba(255,255,255,.08);background:linear-gradient(180deg,rgba(27,41,75,.96),rgba(13,22,41,.98))}
.venue-cover .building.rear{left:50%;bottom:34px;transform:translateX(-50%);width:76%;height:62%;border:1px solid rgba(255,255,255,.08);background:linear-gradient(180deg,rgba(34,54,89,.96),rgba(14,22,37,.98))}
.venue-cover .building.low{left:50%;bottom:36px;transform:translateX(-50%);width:82%;height:46%;border:1px solid rgba(255,255,255,.08);background:linear-gradient(180deg,rgba(31,43,72,.96),rgba(12,19,33,.98))}
.venue-cover .building.tower{left:50%;bottom:34px;transform:translateX(-50%);width:42%;height:72%;border:1px solid rgba(255,255,255,.08);background:linear-gradient(180deg,rgba(27,41,75,.96),rgba(13,22,41,.98))}
.venue-cover .band,.venue-cover .awning,.venue-cover .glass,.venue-cover .counter,.venue-cover .pediment,.venue-cover .doorline,.venue-cover .cross,.venue-cover .label,.venue-cover .subline,.venue-cover .stem,.venue-cover .shelf,.venue-cover .flower,.venue-cover .column,.venue-cover .bulb,.venue-cover .trim,.venue-cover .poster,.venue-cover .seat,.venue-cover .seat-leg,.venue-cover .topline{position:absolute}
.venue-cover .window,.venue-cover .win{position:absolute;background:rgba(112,210,255,.88);box-shadow:0 0 10px rgba(112,210,255,.36)}
.venue-cover .sign{position:absolute;left:50%;bottom:14px;transform:translateX(-50%);padding:7px 12px;border-radius:999px;background:rgba(18,31,56,.9);border:1px solid rgba(240,205,110,.3);color:#f0cd6e;font-family:'Special Elite',monospace;font-size:12px;letter-spacing:.06em;white-space:nowrap;max-width:92%;overflow:hidden;text-overflow:ellipsis}
.venue-cover .people{position:absolute;left:0;right:0;bottom:10px;height:32px}.venue-cover .people i{position:absolute;display:block;width:4px;height:14px;background:#c6d0e6;border-radius:2px 2px 1px 1px}.venue-cover .people i:before{content:'';position:absolute;left:.5px;top:-4px;width:3px;height:3px;border-radius:50%;background:#c6d0e6}
.venue-cover.minhtien .building.rear{width:72%;height:66%;background:linear-gradient(180deg,#284667,#15243a)}
.venue-cover.minhtien .band{left:50%;top:18%;transform:translateX(-50%);width:76%;height:14%;background:#1b56a8;border:1px solid rgba(240,205,110,.72)}
.venue-cover.minhtien .label{top:calc(18% + 10px);left:18%;font:700 11px 'Special Elite',monospace;color:#f3f7ff}.venue-cover.minhtien .subline{top:calc(18% + 10px);right:18%;font:700 11px 'Special Elite',monospace;color:#f3f7ff}
.venue-cover.minhtien .trim{left:50%;top:34%;transform:translateX(-50%);width:62%;height:3px;background:#edf4fb}
.venue-cover.minhtien .glass{left:50%;bottom:56px;transform:translateX(-50%);width:58%;height:24%;background:linear-gradient(180deg,rgba(235,244,251,.92),rgba(220,232,244,.9));border:1px solid rgba(148,175,205,.88)}
.venue-cover.minhtien .window{width:14%;height:44%;top:18%;background:rgba(115,209,255,.82)}
.venue-cover.minhtien .window.w1{left:18%}.venue-cover.minhtien .window.w2{left:43%}.venue-cover.minhtien .window.w3{left:68%}
.venue-cover.minhtien .shelf{height:2px;background:rgba(129,160,182,.72)}
.venue-cover.minhtien .s1{left:10%;top:36%;width:18%}.venue-cover.minhtien .s2{left:40%;top:36%;width:18%}.venue-cover.minhtien .s3{left:69%;top:36%;width:14%}
.venue-cover.minhtien .counter{left:50%;bottom:48px;transform:translateX(-50%);width:20%;height:10px;background:#dfc793;border-top:3px solid #bda474}.venue-cover.minhtien .poster{width:8%;height:22%;bottom:62px;background:rgba(234,242,248,.92)}.venue-cover.minhtien .p1{left:33%}.venue-cover.minhtien .p2{right:33%}
.venue-cover.zushop .building.low{width:82%;height:56%;background:linear-gradient(180deg,#2d5563,#172b34);border-color:rgba(240,205,110,.45)}
.venue-cover.zushop .label{left:50%;top:15%;transform:translateX(-50%);padding:6px 16px;border-radius:999px;background:rgba(255,249,240,.98);color:#493237;font:italic 13px Georgia,serif}
.venue-cover.zushop .subline{left:50%;top:23%;transform:translateX(-50%);font:10px 'Special Elite',monospace;color:#f7e3bc}
.venue-cover.zushop .awning{left:50%;top:32%;transform:translateX(-50%);width:74%;height:14%;background:repeating-linear-gradient(90deg,#f5efe7 0 12%,#e4c35f 12% 24%);clip-path:polygon(0 0,100% 0,92% 100%,8% 100%)}
.venue-cover.zushop .bulb{width:8px;height:8px;border-radius:50%;background:#f5efe7;bottom:37%;box-shadow:0 0 8px rgba(255,245,232,.3)}
.venue-cover.zushop .glass{left:50%;bottom:54px;transform:translateX(-50%);width:72%;height:22%;background:rgba(255,235,205,.18);border:1px solid rgba(255,244,218,.28)}
.venue-cover.zushop .doorline.v{left:50%;bottom:54px;transform:translateX(-50%);width:2px;height:22%;background:rgba(255,245,232,.62)}.venue-cover.zushop .doorline.h{left:50%;bottom:calc(54px + 10%);transform:translateX(-50%);width:72%;height:2px;background:rgba(255,245,232,.62)}
.venue-cover.zushop .flower{width:7px;height:7px;border-radius:50%;bottom:48px;background:#f26f92}.venue-cover.zushop .flower.f2{background:#f0cd6e}.venue-cover.zushop .flower.f3{background:#d9a5ff}.venue-cover.zushop .flower.f4{background:#ffb38a}
.venue-cover.zushop .stem{width:10px;height:7px;bottom:42px;background:#5a3a28}
.venue-cover.citybar .building.low{width:84%;height:44%;background:linear-gradient(180deg,#26364a,#121b25);border-color:rgba(255,190,130,.55)}
.venue-cover.citybar .label{left:50%;top:18%;transform:translateX(-50%);font:700 12px 'Special Elite',monospace;color:#ffeccf}.venue-cover.citybar .subline{left:50%;top:26%;transform:translateX(-50%);font:10px Georgia,serif;color:#ffd8a8}
.venue-cover.citybar .glass{left:50%;bottom:52px;transform:translateX(-50%);width:68%;height:24%;background:rgba(255,208,136,.16);border:1px solid rgba(255,208,136,.28)}
.venue-cover.citybar .window{width:11%;height:54%;top:18%;background:rgba(255,208,136,.22)}.venue-cover.citybar .w1{left:12%}.venue-cover.citybar .w2{left:29%}.venue-cover.citybar .w3{left:48%}.venue-cover.citybar .w4{left:66%}
.venue-cover.citybar .seat{width:14px;height:2px;background:rgba(118,78,52,.92);bottom:32px}.venue-cover.citybar .seat-leg{width:2px;height:10px;background:rgba(35,28,24,.92);bottom:24px}
.venue-cover.nightmuseum .building.base{width:78%;height:56%;background:linear-gradient(180deg,#47362a,#191312);border-color:rgba(240,205,110,.62)}
.venue-cover.nightmuseum .label{left:50%;top:18%;transform:translateX(-50%);font:700 13px 'Special Elite',monospace;color:#fadea1}.venue-cover.nightmuseum .topline{left:50%;top:33%;transform:translateX(-50%);width:56%;height:8px;background:rgba(236,219,184,.26)}
.venue-cover.nightmuseum .column{width:6%;height:28%;bottom:56px;background:rgba(224,202,166,.36)}.venue-cover.nightmuseum .pediment{left:50%;bottom:48px;transform:translateX(-50%);width:0;height:0;border-left:48px solid transparent;border-right:48px solid transparent;border-bottom:34px solid rgba(255,214,120,.18)}
.venue-cover.nightmuseum .cross,.venue-cover.pharmacy .cross{width:18px;height:18px;left:50%;top:22%;transform:translateX(-50%)}
.venue-cover.pharmacy .building.low{width:82%;height:48%;background:linear-gradient(180deg,#20365c,#101b31)}
.venue-cover.pharmacy .cross:before,.venue-cover.pharmacy .cross:after,.venue-cover.nightmuseum .cross:before,.venue-cover.nightmuseum .cross:after{content:'';position:absolute;background:rgba(240,205,110,.9)}.venue-cover.pharmacy .cross:before,.venue-cover.nightmuseum .cross:before{left:7px;top:0;width:4px;height:18px}.venue-cover.pharmacy .cross:after,.venue-cover.nightmuseum .cross:after{left:0;top:7px;width:18px;height:4px}
.venue-cover.bookarch .building.low,.venue-cover.eaterynight .building.low,.venue-cover.grocery24 .building.low{width:82%;height:48%}
.venue-cover.cinema .building.base{width:88%;height:56%;border-radius:10px 10px 0 0;background:linear-gradient(180deg,#26395f,#121d34);border-color:rgba(240,205,110,.42)}
.venue-cover.cinema .building.rear{width:66%;height:70%;border-radius:50% 50% 10px 10px/16% 16% 10px 10px;background:linear-gradient(180deg,#344565,#172338);border-color:rgba(240,205,110,.32)}
.venue-cover.cinema .awning{left:50%;top:40%;transform:translateX(-50%);width:82%;height:18%;border-radius:50% 50% 20px 20px/55% 55% 20px 20px;background:rgba(201,151,78,.32);border:1px solid rgba(240,205,110,.7);box-shadow:0 0 18px rgba(240,205,110,.16)}
.venue-cover.cinema .label{left:50%;top:19%;transform:translateX(-50%);font:700 13px 'Special Elite',monospace;color:#ffd98b;text-shadow:0 0 10px rgba(240,205,110,.35)}
.venue-cover.cinema .subline{left:50%;top:31%;transform:translateX(-50%);font:11px 'Special Elite',monospace;color:#ffe6b0}.venue-cover.cinema .glass{left:50%;top:30%;transform:translateX(-50%);width:54%;height:34%;border-radius:18px 18px 8px 8px;background:rgba(255,215,145,.18);border:1px solid rgba(255,229,180,.35)}.venue-cover.cinema .column{width:5%;height:32%;bottom:50px;background:linear-gradient(90deg,rgba(130,146,168,.95),rgba(238,224,190,.82),rgba(96,112,140,.95));border-radius:6px}
.venue-cover.opera .building.base{width:86%;height:58%;background:linear-gradient(180deg,#7b5632,#3d2818);border-color:rgba(240,205,110,.68)}.venue-cover.opera .pediment{left:50%;top:9%;transform:translateX(-50%);width:82%;height:24%;background:linear-gradient(180deg,rgba(244,201,130,.34),rgba(112,73,40,.2));clip-path:polygon(0 100%,12% 45%,24% 100%,76% 100%,88% 45%,100% 100%)}.venue-cover.opera .label{left:50%;top:23%;transform:translateX(-50%);font:700 12px 'Special Elite',monospace;color:#ffe0a0;text-shadow:0 0 10px rgba(240,205,110,.42)}.venue-cover.opera .column{width:5%;height:38%;bottom:50px;background:linear-gradient(90deg,rgba(155,104,58,.94),rgba(255,220,154,.78),rgba(120,75,36,.96));border-radius:5px}.venue-cover.opera .window{width:8%;height:21%;top:43%;border-radius:50% 50% 4px 4px;background:rgba(255,212,130,.42);box-shadow:0 0 13px rgba(240,205,110,.32)}.venue-cover.opera .flag{left:50%;top:7%;transform:translateX(-50%);width:30px;height:17px;background:#c91f2d;box-shadow:0 0 10px rgba(255,56,56,.22)}.venue-cover.opera .flag:after{content:'★';position:absolute;left:8px;top:1px;color:#ffd24a;font-size:10px}
.venue-media{margin:12px 0;border:1px solid rgba(240,205,110,.22);border-radius:14px;overflow:hidden;background:#0c1630}.venue-media-head{padding:10px 12px;color:#f0cd6e;font-family:'Special Elite',monospace;font-size:13px;border-bottom:1px solid rgba(240,205,110,.16)}.venue-media iframe{display:block;width:100%;aspect-ratio:16/9;border:0;background:#050912}

.venue-profile .mini-note{height:100%}
.venue-kv{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:10px}
.venue-kv .k{background:#111d38;border:1px solid #2f3d5c;border-radius:6px;padding:10px}.venue-kv .n{font-size:20px;color:#f0cd6e;font-family:'Special Elite',monospace}.venue-kv .l{font-size:12px;color:#7d88a4}
.venue-rail{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.venue-note{padding:12px 14px;border:1px solid #2f3d5c;background:#111d38;border-radius:8px}
.venue-note .mono{font-size:13px}
@media (max-width: 760px){.venue-profile{grid-template-columns:1fr}}

@media (max-width: 820px){
  body.menu-open .searchbar,body.menu-open .moodbar,body.menu-open .livebar,body.menu-open .bottom{display:none!important}

  #cv{touch-action:none}
  .hud{padding:calc(9px + env(safe-area-inset-top)) 12px 8px;align-items:center;justify-content:space-between;flex-direction:row;min-height:auto;background:linear-gradient(180deg,rgba(12,20,48,.94),rgba(12,20,48,.28) 82%,transparent)}
  .hud .t{font-size:12px;max-width:88px;line-height:1.18;letter-spacing:.14em;display:block}
  .hud .ctl{gap:7px;flex-wrap:nowrap;justify-content:flex-end;max-width:calc(100vw - 118px);width:auto;position:relative}
  .hud .ctl>.subq{flex:0 0 auto;text-align:right;margin:0;font-size:13px;white-space:nowrap;color:#c6d2ea}
  .desktop-nav{display:none!important}
  .mobile-menu-btn{display:inline-flex;align-items:center;justify-content:center;min-width:42px;height:38px;font-size:15px;padding:8px 10px;border-radius:12px;background:rgba(22,34,62,.82)}
  .mobile-menu-backdrop{display:block;position:fixed;inset:0;z-index:28;background:rgba(5,10,24,.72);backdrop-filter:blur(5px)}
  .mobile-menu{display:grid;position:fixed;top:calc(82px + env(safe-area-inset-top));right:12px;left:12px;z-index:30;padding:12px;border:1px solid #314365;border-radius:20px;background:rgba(8,16,34,.98);box-shadow:0 22px 60px rgba(0,0,0,.62);gap:9px}
  .mobile-menu a,.mobile-menu button{display:block;text-align:left;width:100%;background:#142340;color:#f0cd6e;border:1px solid #2f3d5c;border-radius:12px;padding:13px 12px;font-family:'Special Elite','Courier New',monospace;font-size:14px;text-decoration:none}
  .chip,.navbtn{font-size:12px;padding:9px 10px}
  .searchbar{top:74px;left:0;right:0;padding:8px 12px;gap:8px;background:linear-gradient(180deg,rgba(12,20,48,.68),rgba(12,20,48,0));display:grid;grid-template-columns:1fr 1fr;align-items:stretch}
  .searchbar input{grid-column:1 / -1;max-width:none;min-width:0;padding:11px 13px;font-size:14px;width:100%;background:rgba(16,28,52,.86);border-radius:12px}
  .searchbar select{grid-column:1 / 2;min-width:0;padding:11px 12px;font-size:14px;width:100%;border-radius:12px;background:rgba(16,28,52,.86)}
  .searchbar .navbtn{grid-column:2 / 3;min-width:0;padding:11px 12px;font-size:13px;width:100%;border-radius:12px;background:rgba(16,28,52,.86)}
  .moodbar{top:184px;padding:5px 10px;gap:8px;flex-wrap:nowrap;justify-content:flex-start;overflow-x:auto;scrollbar-width:none;mask-image:linear-gradient(90deg,transparent 0,#000 18px,#000 calc(100% - 18px),transparent 100%)}
  .moodbar::-webkit-scrollbar{display:none}
  .moodbar .subq{flex:0 0 auto;font-size:13px;margin-left:4px;white-space:nowrap;color:#c3cfe5}
  .pill{font-size:13px;padding:8px 12px;white-space:nowrap;flex:0 0 auto;background:rgba(22,34,62,.72);backdrop-filter:blur(4px)}
  .livebar{top:236px;max-width:calc(100vw - 80px);padding:0 8px}
  .livepill{font-size:13px;padding:8px 16px 9px;white-space:normal;text-align:center;max-width:100%;line-height:1.25;background:rgba(18,28,50,.68)}
  .district-dock{display:none}
  .bottom{bottom:calc(18px + env(safe-area-inset-bottom));left:50%;right:auto;transform:translateX(-50%);width:min(92vw,380px);padding:0;gap:8px;display:grid;grid-template-columns:1fr 1fr;pointer-events:none}
  .bottom .btn,.bottom .navbtn{pointer-events:auto;min-width:0;padding:11px 9px;font-size:12px;border-radius:14px;background:rgba(14,24,45,.78);border:1px solid rgba(240,205,110,.22);box-shadow:0 10px 28px rgba(0,0,0,.24);backdrop-filter:blur(7px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .bottom .btn{background:rgba(240,205,110,.88);color:#101a2e}
  .minimap{display:none}
  .screen{padding-top:calc(24px + env(safe-area-inset-top));padding-bottom:calc(24px + env(safe-area-inset-bottom))}
}
@media (max-width: 520px){
  .hud .t{font-size:11px;max-width:72px}
  .hud .ctl{max-width:calc(100vw - 94px)}
  .searchbar{top:70px}
  .moodbar{top:180px}
  .livebar{top:232px}
  .bottom .btn,.bottom .navbtn{font-size:12px;padding:10px 8px}
}



.choose-inner{max-width:min(980px,94vw)!important}
.write-inner{max-width:min(820px,94vw)!important;padding-bottom:120px}
.choose-inner .choose-grid{grid-template-columns:repeat(auto-fill,minmax(185px,1fr));gap:14px}
.choose-inner .ccard{min-height:118px;padding:18px 16px}
.create-sticky{margin-top:24px;width:100%;font-size:16px;padding:15px 28px}
.story-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:8px 0 14px}
.story-count{font-family:'Special Elite',monospace;color:#f0cd6e;font-size:13px;border:1px solid rgba(240,205,110,.25);border-radius:999px;padding:6px 10px;background:rgba(240,205,110,.06)}
.owner-write-inline{margin:18px 0 18px;padding:14px;border:1px dashed #2f3d5c;background:#101b34;border-radius:10px}
.owner-write-inline textarea{min-height:120px}
@media(max-width:820px){
  .panel{padding-bottom:calc(120px + env(safe-area-inset-bottom))}
  .choose-inner .choose-grid{grid-template-columns:1fr 1fr;gap:12px}
  .choose-inner .ccard{min-height:112px;padding:15px 12px}
  .create-sticky{position:sticky;bottom:calc(16px + env(safe-area-inset-bottom));z-index:2;box-shadow:0 16px 38px rgba(0,0,0,.36)}
}
@media(max-width:430px){.choose-inner .choose-grid{grid-template-columns:1fr}}


.gate-actions{justify-content:center;margin-top:26px;gap:10px}
.gate-actions .btn,.gate-actions .navbtn{min-width:150px}
.edit-atmos{margin-top:14px;padding:14px;border:1px solid #2f3d5c;background:#101b34;border-radius:10px}
.edit-atmos .row{gap:8px}


.home-intro-card{margin:14px 0 4px;padding:13px 15px;border:1px solid rgba(240,205,110,.18);border-radius:12px;background:rgba(240,205,110,.045);color:#c8d3e8;font-size:15px;line-height:1.55;font-style:italic}
.story-list{display:grid;gap:12px}
.story-entry{border-left:2px solid rgba(240,205,110,.85);padding:12px 14px;background:rgba(15,26,50,.54);border-radius:0 12px 12px 0;margin-bottom:0}
.story-entry .b{font-size:18px!important;font-style:normal!important;line-height:1.68!important;color:#edf3ff!important;white-space:pre-wrap;word-break:break-word}
.comment-panel{margin-top:24px;padding:16px;border:1px solid #2f3d5c;border-radius:14px;background:rgba(10,18,35,.42)}
.comment-toolbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:10px 0}
.comment-toolbar select{max-width:260px;width:auto;margin-top:0}
.comment-entry .b{font-size:16px!important;font-style:normal!important;line-height:1.55!important;white-space:pre-wrap;word-break:break-word}
.write-section-title{margin-top:18px;padding-top:14px;border-top:1px solid #2f3d5c;color:#f0cd6e;font-family:'Special Elite',monospace}
@media(max-width:820px){
  .story-entry .b{font-size:16px!important;line-height:1.65!important}
  .comment-panel{padding:12px}
  .comment-toolbar select{width:100%;max-width:none}
}


.pager{display:flex;gap:8px;align-items:center;justify-content:center;flex-wrap:wrap;margin:14px 0}
.pager button{background:#16223e;border:1px solid #2f3d5c;color:#f0cd6e;border-radius:999px;padding:7px 12px;font-family:'Special Elite',monospace;cursor:pointer}
.pager button.on{background:#f0cd6e;color:#101a2e;border-color:#f0cd6e}
.pager .info{color:#7d88a4;font-size:13px;font-family:'IBM Plex Sans',system-ui,sans-serif}
.livepill a{color:#f0cd6e;text-decoration:none}
.livepill.clickable{cursor:pointer;border-color:rgba(240,205,110,.42)}
.npc-note{display:none!important}


.facade-picker{display:flex;flex-wrap:wrap;gap:10px;margin-top:8px}
.facade-card{flex:1 1 170px;min-width:170px;text-align:left;cursor:pointer}
.facade-card.on{border-color:#f0cd6e;box-shadow:0 0 0 1px rgba(240,205,110,.2) inset;background:#162541}

.venue-photo{position:relative;overflow:hidden;border:1px solid #2f3d5c;border-radius:14px;background:#0d1730;min-height:180px;margin:0 0 12px}
.venue-photo img{width:100%;height:240px;object-fit:cover;display:block;filter:saturate(.95) contrast(.98)}
.venue-photo.pos-left img{object-position:left center}.venue-photo.pos-center img{object-position:center center}.venue-photo.pos-right img{object-position:right center}
.bar-update-wall{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;margin:12px 0}
.bar-paper{position:relative;background:linear-gradient(180deg,rgba(19,30,54,.96),rgba(9,16,31,.98));color:#dce6f5;border:1px solid rgba(240,205,110,.32);border-radius:14px;padding:18px 16px 15px;box-shadow:0 18px 38px rgba(0,0,0,.34), inset 0 0 0 1px rgba(255,255,255,.03);font-family:'IBM Plex Serif',serif;transform:rotate(var(--rot, -1deg))}
.bar-paper:before{content:'';position:absolute;left:18px;top:-8px;width:54px;height:16px;border-radius:999px;background:rgba(240,205,110,.22);box-shadow:0 2px 8px rgba(0,0,0,.25)}
.bar-paper .d{font-family:'Special Elite',monospace;color:#f0cd6e;font-size:12px;margin-bottom:8px}.bar-paper .b{font-size:16px!important;line-height:1.55!important;color:#dce6f5!important;white-space:pre-wrap;word-break:break-word}
@media(max-width:820px){.venue-photo img{height:190px}.bar-update-wall{grid-template-columns:1fr}.bar-paper .b{font-size:15px!important}}


.entry-img{margin:10px 0 8px;border-radius:12px;overflow:hidden;border:1px solid rgba(240,205,110,.16);background:#0d1730}
.entry-img img{width:100%;max-height:320px;object-fit:cover;display:block}
.entry-img.pos-left img{object-position:left center}.entry-img.pos-center img{object-position:center center}.entry-img.pos-right img{object-position:right center}
.entry-edit{margin:10px 0 14px;padding:12px;border:1px dashed #2f3d5c;border-radius:12px;background:rgba(10,18,35,.45)}
.entry-edit textarea{min-height:110px}
.entry-tools{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}
.story-board-grid,.venue-wall-grid{position:relative;display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}
.story-board-grid.home-board{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}
.story-paper{position:relative;overflow:hidden}
.story-paper.home-paper{background:linear-gradient(180deg,rgba(20,31,56,.96),rgba(9,16,31,.98));border-color:rgba(167,182,204,.28);box-shadow:0 18px 36px rgba(0,0,0,.3), inset 0 0 0 1px rgba(255,255,255,.03)}
.story-paper.home-paper:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(255,255,255,.04),transparent 34%);pointer-events:none}
.venue-wall-grid.spotlit{padding-top:16px}
.venue-wall-grid.spotlit:before{content:"";position:absolute;left:4%;right:4%;top:0;height:190px;background:radial-gradient(circle at 18% 0,rgba(240,205,110,.18),transparent 34%),radial-gradient(circle at 50% 0,rgba(255,223,142,.11),transparent 32%),radial-gradient(circle at 82% 0,rgba(240,205,110,.18),transparent 34%);pointer-events:none;filter:blur(1.5px)}
.venue-wall-grid.spotlit:after{content:"";position:absolute;left:12%;right:12%;top:8px;height:12px;border-radius:999px;background:linear-gradient(90deg,rgba(255,224,146,.22),rgba(255,244,216,.55),rgba(255,224,146,.22));opacity:.5;pointer-events:none}
.venue-wall-grid.citybar-wall{padding-top:28px}
.venue-wall-grid.citybar-wall:before{content:"";position:absolute;left:2%;right:2%;top:0;height:220px;background:radial-gradient(circle at 14% 0,rgba(57,225,255,.28),transparent 34%),radial-gradient(circle at 50% 0,rgba(255,74,194,.22),transparent 32%),radial-gradient(circle at 84% 0,rgba(152,102,255,.24),transparent 34%);pointer-events:none;filter:blur(2px)}
.venue-wall-grid.citybar-wall:after{content:"";position:absolute;left:10%;right:10%;top:10px;height:14px;border-radius:999px;background:linear-gradient(90deg,rgba(44,227,255,.28),rgba(255,89,198,.68),rgba(128,103,255,.34));box-shadow:0 0 12px rgba(46,220,255,.24),0 0 18px rgba(255,82,190,.16);opacity:.9;pointer-events:none}
.venue-paper{position:relative;overflow:hidden}
.venue-paper.spotlit{background:linear-gradient(180deg,rgba(18,28,52,.98),rgba(8,14,28,.98));border-color:rgba(240,205,110,.3);box-shadow:0 18px 38px rgba(0,0,0,.34), inset 0 0 0 1px rgba(255,255,255,.03), 0 0 26px rgba(240,205,110,.07)}
.venue-paper.citybar-paper{background:linear-gradient(180deg,rgba(20,23,48,.98),rgba(7,10,22,.99));border-color:rgba(78,230,255,.42);box-shadow:0 20px 42px rgba(0,0,0,.4), inset 0 0 0 1px rgba(255,255,255,.03), 0 0 24px rgba(57,225,255,.14), 0 0 32px rgba(255,74,194,.09)}
.venue-paper.citybar-paper:before{content:"";position:absolute;left:50%;top:-10px;transform:translateX(-50%);width:112px;height:18px;border-radius:0 0 20px 20px;background:linear-gradient(180deg,rgba(254,246,255,.96),rgba(72,232,255,.92) 55%,rgba(255,84,194,.88));box-shadow:0 6px 16px rgba(0,0,0,.28),0 0 18px rgba(57,225,255,.22)}
.venue-paper.citybar-paper:after{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(57,225,255,.08),transparent 34%,transparent 58%,rgba(255,84,194,.07));pointer-events:none}
.venue-paper.citybar-paper .d{color:#79efff;text-shadow:0 0 10px rgba(57,225,255,.24)}
.venue-paper.citybar-paper .b{color:#eef2ff!important}
.venue-paper.spotlit:before{content:"";position:absolute;left:50%;top:-14px;transform:translateX(-50%);width:86px;height:20px;border-radius:0 0 18px 18px;background:linear-gradient(180deg,rgba(255,244,210,.98),rgba(229,187,88,.92));box-shadow:0 4px 14px rgba(0,0,0,.28)}
.venue-paper.spotlit:after{content:"";position:absolute;left:50%;top:-2px;transform:translateX(-50%);width:190px;height:180px;background:radial-gradient(ellipse at 50% 0,rgba(255,226,142,.28),rgba(255,226,142,.13) 30%,transparent 68%);clip-path:polygon(46% 0,54% 0,100% 100%,0 100%);mix-blend-mode:screen;pointer-events:none;opacity:.9}
.venue-paper .d,.venue-paper .b,.story-paper .d,.story-paper .b{position:relative;z-index:1}

.kvc-card{position:relative;min-height:380px;border-radius:18px;overflow:hidden;background:radial-gradient(circle at 50% 18%,rgba(240,205,110,.18),transparent 25%),linear-gradient(180deg,#17264a,#0a1327 60%,#080f1f)}
.kvc-card .moon-ring{position:absolute;left:50%;top:48%;width:86px;height:86px;border:9px solid rgba(250,244,222,.95);border-radius:50%;transform:translate(-50%,-50%);box-shadow:0 0 18px rgba(240,205,110,.35)}
.kvc-card .roof{position:absolute;left:50%;top:19%;transform:translateX(-50%);width:58%;height:40px;background:#8c131b;clip-path:polygon(0 70%,10% 35%,22% 25%,50% 0,78% 25%,90% 35%,100% 70%,87% 58%,13% 58%);box-shadow:0 4px 0 #d59a54}
.kvc-card .roof.r2{top:29%;width:70%;height:48px;background:#a2161d}
.kvc-card .body{position:absolute;left:50%;top:38%;transform:translateX(-50%);width:48%;height:92px;background:#8e1319;border:1px solid rgba(240,205,110,.45)}
.kvc-card .col{position:absolute;top:55%;width:12px;height:92px;background:linear-gradient(180deg,#ddd4ac,#9f9a7b);border:1px solid rgba(80,65,40,.28)}
.kvc-card .c1{left:34%}.kvc-card .c2{right:34%}.kvc-card .base{position:absolute;left:25%;right:25%;bottom:72px;height:18px;background:#8d9182;box-shadow:0 9px 0 #6c705f,0 18px 0 #4e5944}.kvc-card .base-plaque{position:absolute;left:50%;bottom:56px;transform:translateX(-50%);min-width:140px;padding:4px 18px;border-radius:6px;background:linear-gradient(180deg,rgba(152,117,58,.97),rgba(92,67,34,.98));border:1px solid rgba(242,220,160,.52);box-shadow:0 6px 14px rgba(0,0,0,.28);font-size:11px;letter-spacing:.24em;color:#f7edd0;text-transform:uppercase;text-align:center}.kvc-card .sign{position:absolute;left:50%;bottom:24px;transform:translateX(-50%);padding:9px 14px;border-radius:999px;background:rgba(18,31,56,.9);border:1px solid rgba(240,205,110,.32);color:#f0cd6e;font-size:12px;font-weight:700;letter-spacing:.08em}

/* v17_5 mobile polish: search/filter lives inside the hamburger menu, logo remains visible */
@media(max-width:820px){
  .hud .t{max-width:118px!important;white-space:normal!important}
  body:not(.menu-open) .searchbar{display:none!important}
  body:not(.menu-open) .livebar{top:66px!important;max-width:min(84vw,420px);opacity:.92}
  .mobile-menu{top:calc(58px + env(safe-area-inset-top))!important;max-height:calc(100dvh - 86px);overflow:auto}
  .mobile-menu .mobile-search{display:grid;grid-template-columns:1fr 112px;gap:8px;padding:10px;border:1px solid rgba(240,205,110,.18);border-radius:16px;background:rgba(12,22,42,.7)}
  .mobile-menu .mobile-search input{grid-column:1/-1;background:#101d37;border-radius:12px;padding:12px 13px;font-size:14px}
  .mobile-menu .mobile-search select{min-width:0;background:#101d37;border-radius:12px;padding:12px 10px;font-size:13px}
  .mobile-menu .mobile-search .navbtn{width:100%;border-radius:12px;padding:12px 8px;text-align:center;background:#f0cd6e;color:#101a2e}
  .mobile-menu .mobile-quick{display:flex;gap:7px;overflow:auto;padding:2px 0 4px;scrollbar-width:none}
  .mobile-menu .mobile-quick::-webkit-scrollbar{display:none}
  .mobile-menu .mobile-quick button{white-space:nowrap;width:auto;flex:0 0 auto;padding:10px 11px;font-size:12px;text-align:center}
  .panel{display:flex;align-items:flex-start;justify-content:center}
  .panel .inner{width:min(94vw,980px);margin:0 auto!important}
  .choose-inner,.write-inner{text-align:center}
  .write-inner input,.write-inner textarea,.write-inner select{text-align:left}
}

/* Phase B horizontal additions */
/* Thành Phố Đêm v18.17.0 — thời tiết mở rộng, mất điện tự hồi phục và đèn xe */
#cv{
  height:100vh;
  height:100dvh;
  max-height:100dvh;
  touch-action:none;
  user-select:none;
  -webkit-user-select:none;
  -webkit-tap-highlight-color:transparent;
}

.livebar{pointer-events:auto}
.livepill.clickable,.livepill.clickable a{pointer-events:auto;cursor:pointer}

.bottom.v18-bottom{display:none!important}
.city-hud{
  min-height:64px;
  padding:0 20px!important;
  border-bottom:1px solid rgba(141,163,199,.13);
  background:linear-gradient(180deg,rgba(7,15,31,.96),rgba(9,18,36,.88))!important;
  box-shadow:0 8px 30px rgba(2,7,16,.2);
  backdrop-filter:blur(14px);
}
.city-brand{
  width:178px;
  padding:0;
  border:0;
  background:transparent;
  color:#f0cd6e;
  text-align:left;
  font:16px 'Special Elite',monospace;
  letter-spacing:.16em;
  cursor:pointer;
}
.city-utility{margin-left:auto;display:flex;align-items:center;gap:10px;min-width:0}
.city-weather{color:#8f9db5;font:italic 13px 'IBM Plex Serif',serif;white-space:nowrap}
.city-nav{display:flex;align-items:center;gap:4px;flex-wrap:nowrap!important}
.city-utility-link{
  display:inline-flex;align-items:center;justify-content:center;
  min-height:32px;padding:7px 9px;border:0;border-radius:9px;
  background:transparent;color:#9eabc0;text-decoration:none;
  font:12px 'IBM Plex Sans',system-ui,sans-serif;cursor:pointer;white-space:nowrap;
}
.city-utility-link:hover{background:rgba(120,145,182,.1);color:#f0cd6e}
.city-top-actions{
  position:fixed;
  top:calc(11px + env(safe-area-inset-top));
  left:50%;
  z-index:8;
  display:flex;
  align-items:center;
  gap:6px;
  transform:translateX(-50%);
}
.city-top-actions button{
  min-height:40px;
  padding:9px 13px;
  border:1px solid rgba(151,174,210,.2);
  border-radius:13px;
  background:rgba(17,29,52,.76);
  color:#dce5f2;
  box-shadow:0 8px 24px rgba(0,0,0,.2);
  backdrop-filter:blur(8px);
  font:12px 'Special Elite',monospace;
  white-space:nowrap;
  cursor:pointer;
}
.city-top-actions button:hover{border-color:rgba(240,205,110,.5);color:#f0cd6e}
.short-label{display:none}

.searchbar{
  top:76px!important;left:50%!important;right:auto!important;transform:translateX(-50%);
  width:min(720px,calc(100vw - 32px));padding:8px!important;display:grid!important;
  grid-template-columns:minmax(240px,1fr) 190px 120px;gap:7px!important;
  border:1px solid rgba(137,160,195,.14);border-radius:16px;
  background:rgba(9,18,36,.78)!important;box-shadow:0 14px 34px rgba(0,0,0,.16);backdrop-filter:blur(10px);
}
.searchbar input,.searchbar select,.searchbar .navbtn{width:100%!important;max-width:none!important;min-height:42px;border-radius:10px!important}
.searchbar .navbtn{background:#172844;color:#f0cd6e;border:1px solid rgba(240,205,110,.2)}
.livebar{top:142px!important;max-width:min(86vw,790px)!important}
.livepill{padding:8px 20px 9px;border-radius:999px;background:rgba(11,21,41,.74)}
.city-load-error{top:190px!important}
.event-banner{top:190px!important}
.search-next{border-color:rgba(126,223,208,.46)!important;color:#7edfd0!important}

.city-loop-note{display:none!important}

.panel{
  background:
    radial-gradient(circle at 18% 8%,rgba(55,76,116,.2),transparent 34%),
    radial-gradient(circle at 82% 22%,rgba(90,55,92,.13),transparent 32%),
    #091226!important;
}
.panel .inner{width:min(1080px,100%);max-width:1080px!important}
.house-nav{position:relative;z-index:3;gap:7px;margin-bottom:14px;flex-wrap:wrap}
.house-content{
  position:relative;
  margin-top:18px;
  padding:clamp(16px,3vw,30px);
  border:1px solid rgba(151,170,204,.16);
  border-radius:22px;
  background:linear-gradient(180deg,rgba(18,30,54,.87),rgba(8,16,31,.94));
  box-shadow:0 24px 70px rgba(0,0,0,.32),inset 0 1px rgba(255,255,255,.025);
}

.house-interior{
  position:relative;
  height:clamp(230px,26vw,300px);
  min-height:230px;
  margin:0 0 20px;
  overflow:hidden;
  border:1px solid rgba(190,205,226,.25);
  border-radius:24px;
  background:#101a2a;
  box-shadow:0 28px 70px rgba(0,0,0,.48),inset 0 0 0 1px rgba(255,255,255,.035);
  isolation:isolate;
}
.house-interior:after{
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  pointer-events:none;
  background:linear-gradient(180deg,rgba(255,255,255,.025),transparent 35%,rgba(3,7,15,.3));
  box-shadow:inset 0 0 80px rgba(0,0,0,.4);
}
#houseInteriorCanvas{position:absolute;inset:0;width:100%;height:100%;display:block}
.room-plaque,.room-detail{position:absolute;z-index:2}
.room-plaque{
  top:16px;
  left:18px;
  display:grid;
  gap:2px;
  max-width:min(52%,420px);
  padding:10px 13px;
  border:1px solid rgba(240,205,110,.25);
  border-radius:12px;
  background:rgba(7,13,25,.68);
  backdrop-filter:blur(8px);
  box-shadow:0 10px 28px rgba(0,0,0,.25);
}
.room-plaque span{color:#a7b2cc;font:10px 'IBM Plex Sans',system-ui,sans-serif;letter-spacing:.14em;text-transform:uppercase}
.room-plaque strong{overflow:hidden;color:#f0cd6e;font:clamp(15px,2vw,20px) 'Special Elite',monospace;text-overflow:ellipsis;white-space:nowrap}
.room-detail{
  top:17px;
  right:18px;
  max-width:46%;
  padding:8px 11px;
  border-radius:999px;
  background:rgba(7,13,25,.64);
  color:#c4cede;
  font:11px 'IBM Plex Sans',system-ui,sans-serif;
  backdrop-filter:blur(7px);
  line-height:1.35;
  text-align:right;
}
.apartment-interior{border-color:rgba(126,223,208,.28)}
.real-venue-interior{border-color:rgba(240,205,110,.34)}
.room-upgrades{position:absolute;left:18px;bottom:16px;z-index:2;display:flex;gap:5px;max-width:68%;flex-wrap:wrap}
.room-upgrades span{padding:5px 8px;border:1px solid rgba(240,205,110,.22);border-radius:999px;background:rgba(6,12,23,.68);color:#d7dfeb;font:10px 'IBM Plex Sans',system-ui,sans-serif;backdrop-filter:blur(7px)}
.room-camera{position:absolute;right:16px;bottom:14px;z-index:3;display:flex;gap:4px;padding:4px;border:1px solid rgba(177,196,210,.17);border-radius:999px;background:rgba(5,11,20,.72);backdrop-filter:blur(9px)}
.room-camera button{padding:6px 9px;border:0;border-radius:999px;background:transparent;color:#91a0b5;font:10px 'IBM Plex Sans',system-ui,sans-serif;cursor:pointer;transition:background .18s ease,color .18s ease,box-shadow .18s ease}
.room-camera button:hover,.room-camera button.on{background:rgba(211,184,113,.14);color:#ead7a5;box-shadow:inset 0 0 0 1px rgba(211,184,113,.22)}
.room-camera .memory-pick{margin-left:2px;color:#9fc9c4;box-shadow:inset 1px 0 rgba(157,190,188,.18)}
.room-camera.room-memory-only{left:auto;right:16px;bottom:14px;padding:3px}
.room-camera.room-memory-only .memory-pick{margin:0;color:#d9c58e;box-shadow:none}
.room-picked{animation:roomPicked 2.4s ease both}@keyframes roomPicked{0%,100%{transform:translateY(0);box-shadow:0 0 0 rgba(211,184,113,0)}20%,70%{transform:translateY(-3px);box-shadow:0 0 0 2px rgba(211,184,113,.5),0 16px 45px rgba(0,0,0,.42)}}
.venue-head,.house-interior + div{position:relative}
.venue-profile .venue-cover,.venue-profile .venue-photo{display:none!important}
.venue-profile-compact{width:100%;max-width:none;margin-top:14px}
.venue-profile-compact>.mini-note{padding:14px 16px;border:1px solid rgba(151,174,210,.18)!important;border-radius:14px!important;background:rgba(12,22,42,.58)!important;color:#aebbd0!important}
.venue-profile-compact .mono{color:#f0cd6e;margin-bottom:7px}
.venue-profile-copy{font-size:14px;line-height:1.62;color:#c8d2e2}
.venue-profile-compact .venue-note{margin-top:12px;padding:11px 12px;border:1px solid rgba(240,205,110,.18);border-radius:10px;background:rgba(240,205,110,.04)}
.apartment-address{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px 18px;margin:14px 0;padding:14px 16px;border:1px solid rgba(126,223,208,.2);border-radius:14px;background:linear-gradient(135deg,rgba(25,47,63,.45),rgba(12,22,39,.68))}
.apartment-address>div:first-child{display:grid;gap:3px}.apartment-address>div:first-child span{color:#7edfd0;font:9px 'IBM Plex Sans',system-ui,sans-serif;letter-spacing:.16em}.apartment-address strong{color:#e4eaf2;font:16px 'Special Elite',monospace}.apartment-address small{color:#91a0b6;font:12px 'IBM Plex Sans',system-ui,sans-serif}
.apartment-unit{display:grid;align-content:center;gap:3px;text-align:right}.apartment-unit b{color:#f0cd6e;font:14px 'Special Elite',monospace}.apartment-unit span{color:#9eacc0;font-size:12px}
.apartment-directory{grid-column:1/-1;display:grid;gap:10px;padding-top:11px;border-top:1px solid rgba(126,223,208,.12)}
.apartment-directory-head{display:flex;align-items:center;justify-content:space-between;gap:12px;color:#7edfd0;font:10px 'IBM Plex Sans',system-ui,sans-serif;letter-spacing:.13em}.apartment-directory-head b{color:#f0cd6e;font-size:11px;letter-spacing:0}
.apartment-room-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(165px,1fr));gap:8px}
.apartment-room-card{position:relative;display:grid;gap:4px;min-width:0;padding:11px 12px;text-align:left;border:1px solid rgba(142,167,196,.2);border-radius:11px;background:linear-gradient(180deg,rgba(16,29,49,.88),rgba(8,16,29,.82));color:#cdd7e4;cursor:pointer;transition:transform .16s ease,border-color .16s ease,background .16s ease}.apartment-room-card:hover{transform:translateY(-1px);border-color:rgba(126,223,208,.48);background:rgba(22,42,58,.9)}
.apartment-room-card.current{border-color:rgba(240,205,110,.55);box-shadow:inset 3px 0 #f0cd6e;background:rgba(40,38,42,.78);cursor:default}.apartment-room-card .apartment-room-no{color:#7edfd0;font:9px 'IBM Plex Sans',system-ui,sans-serif;letter-spacing:.12em}.apartment-room-card strong{overflow:hidden;color:#e3e9f1;font:13px 'Special Elite',monospace;text-overflow:ellipsis;white-space:nowrap}.apartment-room-card small{color:#8998ad;font:10px 'IBM Plex Sans',system-ui,sans-serif}.apartment-room-card i{position:absolute;right:8px;top:8px;color:#f0cd6e;font:9px 'IBM Plex Sans',system-ui,sans-serif;font-style:normal}
.apartment-address p{grid-column:1/-1;margin:0;padding-top:9px;border-top:1px solid rgba(126,223,208,.12);color:#91a0b6;font-size:12px;line-height:1.5}
.admin-post-link{color:#7edfd0!important;text-decoration:underline;text-decoration-color:rgba(126,223,208,.42);text-underline-offset:3px;overflow-wrap:anywhere}
.room-progress{margin:14px 0;padding:14px 16px;border:1px solid rgba(166,184,211,.16);border-radius:14px;background:rgba(10,19,35,.56)}
.room-progress-top{display:flex;align-items:flex-end;justify-content:space-between;gap:12px}
.room-progress-top div{display:grid;gap:3px}.room-progress-top span{color:#8290a8;font:9px 'IBM Plex Sans',system-ui,sans-serif;letter-spacing:.15em}.room-progress-top strong{color:#dbe2eb;font:14px 'Special Elite',monospace}.room-progress-top b{color:#f0cd6e;font:12px 'IBM Plex Sans',system-ui,sans-serif;white-space:nowrap}
.room-progress-track{height:5px;margin:11px 0 10px;overflow:hidden;border-radius:99px;background:#0a1222}.room-progress-track i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#7edfd0,#f0cd6e);box-shadow:0 0 14px rgba(240,205,110,.28)}
.room-keepsakes{display:flex;gap:6px;flex-wrap:wrap}.room-keepsakes span{padding:5px 8px;border:1px solid rgba(154,174,207,.16);border-radius:999px;color:#9facc0;font:10px 'IBM Plex Sans',system-ui,sans-serif}
.room-progress p{margin:10px 0 0;color:#8e9bb0;font:12px/1.5 'IBM Plex Sans',system-ui,sans-serif}

.comment-panel{scroll-margin-top:22px}
.comment-filter-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  flex-wrap:wrap;
  padding:8px 10px;
  margin:8px 0 12px;
  border:1px solid rgba(240,205,110,.14);
  border-radius:10px;
  background:rgba(255,255,255,.025);
}
.comment-filter-row select{width:auto;max-width:220px;padding:8px 10px}
.comment-options{
  margin:10px 0 0;
  border:1px dashed rgba(240,205,110,.2);
  border-radius:10px;
  padding:9px 11px;
  background:rgba(10,18,35,.5);
}
.comment-options summary{cursor:pointer;color:#a7b2cc;font:13px 'IBM Plex Sans',system-ui,sans-serif}
.comment-options .options-body{display:grid;gap:9px;margin-top:10px}
.comment-options select{max-width:220px;padding:8px 10px}

.entry-share-row{display:flex;justify-content:flex-end;margin-top:12px;position:relative;z-index:2}
.entry-share-row button{padding:7px 10px}
.house-share-compact{margin-left:auto}

.share-sheet-backdrop{
  position:fixed;
  inset:0;
  z-index:80;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:18px;
  background:rgba(4,8,18,.82);
  backdrop-filter:blur(7px);
}
.share-sheet{
  width:min(94vw,470px);
  max-height:90dvh;
  overflow:auto;
  padding:20px;
  border:1px solid rgba(240,205,110,.48);
  border-radius:18px;
  background:linear-gradient(180deg,#172442,#0d172d);
  box-shadow:0 26px 80px rgba(0,0,0,.55);
}
.share-sheet-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}
.share-sheet-title{color:#f0cd6e;font:17px 'Special Elite',monospace;line-height:1.35}
.share-sheet-close{border:0;background:transparent;color:#9aa7c0;font-size:22px;cursor:pointer}
.share-sheet-url{margin:9px 0 14px;color:#9aa7c0;font-size:12px;line-height:1.45;word-break:break-all}
.share-sheet-qr{display:flex;justify-content:center;margin:6px 0 16px}
.share-sheet-qr img{width:184px;height:184px;padding:10px;border-radius:16px;background:white}
.share-sheet-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.share-sheet-actions button,.share-sheet-actions a{
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:42px;
  padding:9px 10px;
  border:1px solid #344361;
  border-radius:10px;
  background:#121f3b;
  color:#f0cd6e;
  text-decoration:none;
  font:13px 'Special Elite',monospace;
  cursor:pointer;
  text-align:center;
}
.share-sheet-actions .primary{grid-column:1/-1;background:#f0cd6e;color:#101a2e;border-color:#f0cd6e}

.story-paper.share-focus,.venue-paper.share-focus{
  outline:2px solid rgba(126,223,208,.72);
  box-shadow:0 0 0 5px rgba(126,223,208,.1),0 18px 38px rgba(0,0,0,.34);
}

@media(max-width:1100px) and (min-width:821px){
  .city-top-actions .full-label{display:none}
  .city-top-actions .short-label{display:inline}
  .city-top-actions button{padding-inline:9px}
}

@media(max-width:1000px) and (min-width:821px){
  .city-weather,.city-info-link{display:none}
  .city-brand{width:150px;font-size:14px}
}

@media(max-width:820px){
  .city-hud{min-height:56px;padding:0 12px!important}
  .city-brand{width:112px;font-size:11px;line-height:1.18;letter-spacing:.13em}
  .city-weather{display:none}
  .city-utility{gap:5px}
  .city-top-actions{
    top:calc(61px + env(safe-area-inset-top));
    max-width:calc(100vw - 16px);
    gap:4px;
  }
  .city-top-actions button{
    min-height:33px;
    padding:7px 8px;
    border-radius:10px;
    font-size:10px;
    background:rgba(12,22,42,.9);
  }
  .city-top-actions .full-label{display:none}
  .city-top-actions .short-label{display:inline}
  .city-top-actions .search-next{max-width:108px;overflow:hidden;text-overflow:ellipsis}
  body:not(.menu-open) .livebar{top:107px!important;max-width:min(88vw,440px)!important}
  .city-load-error,.event-banner{top:153px!important}
  .comment-filter-row{align-items:stretch}
  .comment-filter-row select{width:100%;max-width:none}
  .share-sheet-actions{grid-template-columns:1fr}
  .share-sheet-actions .primary{grid-column:auto}
  .panel{padding-left:12px!important;padding-right:12px!important}
  .house-interior{height:270px;min-height:270px;border-radius:18px}
  .room-plaque{left:12px;top:12px;max-width:72%}
  .room-detail{left:12px;right:auto;top:auto;bottom:50px;max-width:calc(100% - 24px);text-align:left}
  .room-camera{left:12px;right:auto;bottom:10px;max-width:calc(100% - 24px)}
  .room-camera button{padding:6px 7px;font-size:9px}
  .room-upgrades{left:12px;right:12px;top:72px;bottom:auto;max-width:none}
  .room-upgrades span{padding:4px 7px;font-size:9px}
  .apartment-address{grid-template-columns:1fr;padding:12px}.apartment-unit{text-align:left}.apartment-directory,.apartment-address p{grid-column:1}.apartment-room-grid{grid-template-columns:1fr 1fr}
  .house-content{padding:15px;border-radius:18px}
}

@media(max-width:390px){
  .city-top-actions button{padding-inline:6px;font-size:9px}
  .city-top-actions{max-width:calc(100vw - 10px)}
  .apartment-room-grid{grid-template-columns:1fr}
}

/* Extracted compatibility styles */
.quickbar{display:none !important}
.alley-chip{position:fixed;top:245px;left:50%;transform:translateX(-50%);z-index:6;border:1px solid rgba(240,205,110,.45);background:linear-gradient(180deg,rgba(23,36,63,.92),rgba(14,24,42,.96));color:#f4efe0;border-radius:999px;padding:10px 16px;box-shadow:0 10px 24px rgba(0,0,0,.18)}
.alley-hud{position:fixed;top:150px;left:50%;transform:translateX(-50%);z-index:6;max-width:min(92vw,760px);padding:10px 16px;border:1px solid rgba(126,223,208,.26);border-radius:18px;background:rgba(11,20,38,.82);box-shadow:0 14px 30px rgba(0,0,0,.18);color:#dbe4f2;backdrop-filter:blur(6px)}
.alley-hud b{color:#7edfd0;font-family:'Special Elite',monospace;font-size:13px;letter-spacing:.06em}.alley-hud .sub{font-size:13px;color:#aebad1;margin-top:4px}
.city-loc{position:fixed;top:198px;left:50%;transform:translateX(-50%);z-index:6;display:flex;gap:8px;justify-content:center;flex-wrap:wrap;max-width:min(92vw,920px)}
.city-loc .chipx{border-radius:999px;padding:7px 12px;font-size:12px;background:rgba(18,28,50,.88);border:1px solid rgba(126,223,208,.2);color:#dbe4f2;box-shadow:0 8px 22px rgba(0,0,0,.12)}.city-loc .chipx b{color:#f0cd6e;font-family:'Special Elite',monospace}
.lightning-overlay{position:fixed;inset:0;pointer-events:none;z-index:2;opacity:0;background:linear-gradient(180deg,rgba(215,230,255,.18),rgba(255,255,255,0));animation:flashSky 12s infinite}
.lightning-overlay:before{content:'';position:absolute;top:0;left:68%;width:2px;height:160px;background:linear-gradient(180deg,rgba(255,255,255,.95),rgba(255,255,255,.2));box-shadow:0 0 18px rgba(255,255,255,.6);transform:skewX(-12deg)}
@keyframes flashSky{0%,5%,12%,100%{opacity:0}5.6%,6.0%{opacity:.1}6.3%{opacity:.32}6.6%,6.9%{opacity:0}29.8%{opacity:0}30%{opacity:.22}30.2%{opacity:0}70%,100%{opacity:0}}

/* v17_5 mobile polish: search/filter lives inside the hamburger menu, logo remains visible */
@media(max-width:820px){
  .hud .t{max-width:118px!important;white-space:normal!important}
  body:not(.menu-open) .searchbar{display:none!important}
  body:not(.menu-open) .livebar{top:66px!important;max-width:min(84vw,420px);opacity:.92}
  .mobile-menu{top:calc(58px + env(safe-area-inset-top))!important;max-height:calc(100dvh - 86px);overflow:auto}
  .mobile-menu .mobile-search{display:grid;grid-template-columns:1fr 112px;gap:8px;padding:10px;border:1px solid rgba(240,205,110,.18);border-radius:16px;background:rgba(12,22,42,.7)}
  .mobile-menu .mobile-search input{grid-column:1/-1;background:#101d37;border-radius:12px;padding:12px 13px;font-size:14px}
  .mobile-menu .mobile-search select{min-width:0;background:#101d37;border-radius:12px;padding:12px 10px;font-size:13px}
  .mobile-menu .mobile-search .navbtn{width:100%;border-radius:12px;padding:12px 8px;text-align:center;background:#f0cd6e;color:#101a2e}
  .mobile-menu .mobile-quick{display:flex;gap:7px;overflow:auto;padding:2px 0 4px;scrollbar-width:none}
  .mobile-menu .mobile-quick::-webkit-scrollbar{display:none}
  .mobile-menu .mobile-quick button{white-space:nowrap;width:auto;flex:0 0 auto;padding:10px 11px;font-size:12px;text-align:center}
  .panel{display:flex;align-items:flex-start;justify-content:center}
  .panel .inner{width:min(94vw,980px);margin:0 auto!important}
  .choose-inner,.write-inner{text-align:center}
  .write-inner input,.write-inner textarea,.write-inner select{text-align:left}
}
.first-night-intro{position:fixed;inset:0;z-index:9998;display:grid;place-items:center;pointer-events:none;background:radial-gradient(circle at 50% 58%,rgba(31,61,84,.36),rgba(4,8,18,.94) 68%);animation:firstNightIn .9s ease both}
.first-night-intro>div{text-align:center;filter:drop-shadow(0 12px 35px #000)}
.first-night-intro small,.first-night-intro span{display:block;color:#9eb9c5;letter-spacing:.23em;font:600 10px 'IBM Plex Sans',sans-serif}
.first-night-intro strong{display:block;margin:12px 0;color:#f0cd6e;letter-spacing:.13em;font:clamp(30px,7vw,76px) 'Special Elite',serif;text-shadow:0 0 28px rgba(240,205,110,.2)}
.first-night-intro span{letter-spacing:.08em;text-transform:none;color:#c1ccd2;font-weight:400}
.first-night-intro.leaving{animation:firstNightOut 1.25s ease forwards}
@keyframes firstNightIn{from{opacity:0;transform:scale(1.025)}to{opacity:1;transform:scale(1)}}
@keyframes firstNightOut{to{opacity:0;visibility:hidden}}
@media(prefers-reduced-motion:reduce){.first-night-intro{animation:none}.first-night-intro.leaving{opacity:0;transition:opacity .15s}}


/* 2026-07-21 hotfix: reserve a separate mobile rail for LIVE news below city actions. */
@media(max-width:820px){
  .city-top-actions{
    top:calc(61px + env(safe-area-inset-top))!important;
    z-index:9!important;
  }
  body:not(.menu-open) .livebar{
    top:calc(105px + env(safe-area-inset-top))!important;
    left:50%!important;
    width:calc(100vw - 24px)!important;
    max-width:440px!important;
    padding:0!important;
    opacity:1!important;
    z-index:8!important;
    pointer-events:auto!important;
  }
  body:not(.menu-open) .livepill{
    display:-webkit-box!important;
    width:100%!important;
    max-width:100%!important;
    min-height:0!important;
    padding:8px 13px 9px!important;
    border-radius:15px!important;
    font-size:12px!important;
    line-height:1.28!important;
    text-align:center!important;
    white-space:normal!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
    -webkit-box-orient:vertical!important;
    -webkit-line-clamp:2!important;
    box-sizing:border-box!important;
  }
  .city-load-error,.event-banner{top:calc(158px + env(safe-area-inset-top))!important}
}
@media(max-width:390px){
  .city-top-actions{gap:3px!important;max-width:calc(100vw - 12px)!important}
  .city-top-actions button{padding-inline:6px!important;font-size:9px!important}
  body:not(.menu-open) .livebar{top:calc(102px + env(safe-area-inset-top))!important;width:calc(100vw - 18px)!important}
  body:not(.menu-open) .livepill{font-size:11px!important;padding:7px 10px 8px!important}
}


/* v2026-07-22 mobile polish + legal links */
@media(max-width:820px){
  .hud,.city-hud{padding-top:calc(8px + env(safe-area-inset-top));}
  body:not(.menu-open) .livebar{top:calc(96px + env(safe-area-inset-top))!important;width:min(90vw,430px)!important}
  .event-banner{top:calc(132px + env(safe-area-inset-top))!important;max-width:min(94vw,620px)!important;padding:9px 14px!important;font-size:13px!important;line-height:1.45!important}
  .alley-chip{top:calc(176px + env(safe-area-inset-top))!important;right:10px!important;max-width:44vw;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .mobile-menu{padding-bottom:calc(14px + env(safe-area-inset-bottom));}
  .mobile-menu a,.mobile-menu button{font-size:13px!important;padding:12px 11px!important}
  .panel{padding-inline:12px!important}
  .inner,.venue-inner{max-width:min(100vw - 16px,760px)!important}
  .house-content{padding-bottom:8px}
  .venue-inner .venue-cover,.venue-cover{min-height:260px!important}
  .venue-photo img{height:180px!important}
  .bottom{width:min(94vw,390px)!important;grid-template-columns:1fr 1fr!important}
}
@media(max-width:520px){
  .mobile-menu{left:8px!important;right:8px!important;top:calc(56px + env(safe-area-inset-top))!important}
  body:not(.menu-open) .livebar{top:calc(92px + env(safe-area-inset-top))!important;width:calc(100vw - 20px)!important}
  .event-banner{top:calc(126px + env(safe-area-inset-top))!important}
  .bottom .btn,.bottom .navbtn{min-height:46px!important;font-size:11.5px!important}
  .searchbar input,.searchbar select,.searchbar .navbtn{min-height:44px!important}
}

/* Hotfix R12: mobile livebar tách hẳn khỏi cụm quick nav */
@media (max-width: 820px){
  body:not(.menu-open) .livebar{
    top: calc(138px + env(safe-area-inset-top)) !important;
    left: 50% !important;
    transform: translateX(-50%) !important;
    width: calc(100vw - 18px) !important;
    max-width: calc(100vw - 18px) !important;
    padding: 0 6px !important;
    z-index: 9 !important;
  }
  body:not(.menu-open) .livepill{
    display: block !important;
    width: 100% !important;
    white-space: normal !important;
    text-align: center !important;
    line-height: 1.38 !important;
    font-size: 11px !important;
    padding: 9px 12px 10px !important;
  }
  .city-load-error,.event-banner{
    top: calc(188px + env(safe-area-inset-top)) !important;
  }
}
@media (max-width: 520px){
  body:not(.menu-open) .livebar{
    top: calc(144px + env(safe-area-inset-top)) !important;
    width: calc(100vw - 14px) !important;
    max-width: calc(100vw - 14px) !important;
  }
  .city-load-error,.event-banner{
    top: calc(194px + env(safe-area-inset-top)) !important;
  }
}

/* Hotfix R13: live ticker nằm cạnh logo trên mobile */
.city-mobile-live{display:none}
.city-mobile-livepill{display:none}

@media (max-width:820px){
  .city-hud{
    display:grid !important;
    grid-template-columns:112px minmax(0,1fr) auto !important;
    align-items:center !important;
    column-gap:8px !important;
  }
  .city-mobile-live{
    display:block !important;
    min-width:0;
    max-width:100%;
  }
  .city-mobile-livepill{
    display:block !important;
    width:100%;
    min-width:0;
    padding:7px 12px 8px;
    border:1px solid rgba(240,205,110,.24);
    border-radius:999px;
    background:linear-gradient(180deg,rgba(7,23,54,.92),rgba(5,17,40,.92));
    color:#d8dfeb;
    font:italic 12px 'IBM Plex Serif',serif;
    line-height:1.2;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
    box-sizing:border-box;
  }
  .city-mobile-livepill.clickable{cursor:pointer}
  body:not(.menu-open) .livebar{display:none !important}
  body.menu-open .city-mobile-live{display:none !important}
  .city-load-error,.event-banner{
    top:calc(112px + env(safe-area-inset-top)) !important;
  }
}
@media (max-width:520px){
  .city-hud{grid-template-columns:108px minmax(0,1fr) auto !important;column-gap:6px !important}
  .city-brand{width:108px !important;font-size:10.5px !important}
  .city-mobile-livepill{font-size:11px !important;padding:7px 10px 8px !important}
  .city-load-error,.event-banner{top:calc(108px + env(safe-area-inset-top)) !important}
}

/* Hotfix R14: ticker kiểu bản tin TV, thống nhất mobile + desktop */
.city-mobile-live,.city-mobile-livepill,.livebar{display:none !important}
.city-hud{
  display:grid !important;
  grid-template-columns:178px minmax(260px,1fr) auto !important;
  align-items:center !important;
  column-gap:14px !important;
}
.city-live{
  min-width:0;
  height:38px;
  display:flex;
  align-items:center;
  gap:10px;
  padding:0 12px 0 10px;
  border:1px solid rgba(240,205,110,.24);
  border-radius:999px;
  background:linear-gradient(180deg,rgba(7,23,54,.94),rgba(5,17,40,.94));
  box-shadow:inset 0 0 0 1px rgba(116,147,196,.06);
  overflow:hidden;
}
.city-live-label{
  flex:0 0 auto;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:40px;
  height:22px;
  padding:0 8px;
  border-radius:999px;
  background:linear-gradient(180deg,rgba(120,18,24,.92),rgba(84,8,16,.92));
  color:#ffd6d6;
  font:700 10px/1 'IBM Plex Sans',system-ui,sans-serif;
  letter-spacing:.18em;
  text-transform:uppercase;
}
#livepill.city-livepill{
  position:relative;
  display:inline-block;
  min-width:max-content;
  padding-left:100%;
  color:#dbe4f0;
  font:italic 15px/1.2 'IBM Plex Serif',serif;
  white-space:nowrap;
  animation:cityTickerScroll 14s linear infinite;
  will-change:transform;
}
#livepill.city-livepill a,
#livepill.city-livepill,
#livepill.city-livepill a:visited,
#livepill.city-livepill a:hover,
#livepill.city-livepill a:active{
  color:#dbe4f0 !important;
  text-decoration:none !important;
}
#livepill.city-livepill.clickable{cursor:pointer}
@keyframes cityTickerScroll{
  0%{transform:translateX(0)}
  100%{transform:translateX(-100%)}
}
.city-live:hover #livepill.city-livepill{animation-play-state:paused}

@media (max-width:1100px){
  .city-hud{grid-template-columns:150px minmax(180px,1fr) auto !important;column-gap:10px !important}
  .city-brand{width:150px !important;font-size:14px !important}
  #livepill.city-livepill{font-size:13px !important}
}
@media (max-width:820px){
  .city-hud{grid-template-columns:112px minmax(0,1fr) auto !important;column-gap:8px !important}
  .city-live{height:36px;padding:0 10px 0 8px !important}
  .city-live-label{min-width:34px;height:20px;padding:0 6px;font-size:9px}
  #livepill.city-livepill{font-size:12px !important}
  .city-load-error,.event-banner{top:calc(112px + env(safe-area-inset-top)) !important}
}
@media (max-width:520px){
  .city-hud{grid-template-columns:108px minmax(0,1fr) auto !important;column-gap:6px !important}
  .city-brand{width:108px !important;font-size:10.5px !important}
  .city-live{height:34px;padding:0 8px 0 7px !important}
  .city-live-label{min-width:30px;height:19px;padding:0 5px;font-size:8px}
  #livepill.city-livepill{font-size:11px !important}
  .city-load-error,.event-banner{top:calc(108px + env(safe-area-inset-top)) !important}
}

/* Hotfix R15: ticker không đè chữ LIVE, header không tràn nút trên PC */
.city-hud{
  display:grid !important;
  grid-template-columns:178px minmax(280px,1fr) auto !important;
  grid-template-areas:
    "brand live util"
    "actions actions actions" !important;
  align-items:center !important;
  row-gap:10px !important;
  column-gap:14px !important;
}
.city-brand{grid-area:brand}
.city-live{grid-area:live}
.city-top-actions{grid-area:actions;justify-self:center}
.city-utility{grid-area:util;justify-self:end}

.city-live{
  min-width:0;
  height:38px;
  display:flex;
  align-items:center;
  gap:10px;
  padding:0 12px 0 10px;
  border:1px solid rgba(240,205,110,.24);
  border-radius:999px;
  background:linear-gradient(180deg,rgba(7,23,54,.94),rgba(5,17,40,.94));
  box-shadow:inset 0 0 0 1px rgba(116,147,196,.06);
}
.city-live-label{position:relative;z-index:2;flex:0 0 auto}
.city-live-track{
  position:relative;
  flex:1 1 auto;
  min-width:0;
  overflow:hidden;
  height:20px;
}
#livepill.city-livepill{
  position:absolute;
  left:0;
  top:0;
  display:inline-block;
  min-width:max-content;
  padding-left:0 !important;
  color:#dbe4f0;
  font:italic 15px/20px 'IBM Plex Serif',serif;
  white-space:nowrap;
  transform:translateX(100%);
  animation:cityTickerScrollSafe 18s linear infinite;
  will-change:transform;
}
#livepill.city-livepill a,
#livepill.city-livepill,
#livepill.city-livepill a:visited,
#livepill.city-livepill a:hover,
#livepill.city-livepill a:active{
  color:#dbe4f0 !important;
  text-decoration:none !important;
}
@keyframes cityTickerScrollSafe{
  0%{transform:translateX(100%)}
  100%{transform:translateX(-100%)}
}
.city-live:hover #livepill.city-livepill{animation-play-state:paused}

@media (max-width:1280px){
  .city-hud{grid-template-columns:160px minmax(220px,1fr) auto !important;column-gap:10px !important}
  .city-brand{width:160px !important;font-size:14px !important}
  #livepill.city-livepill{font-size:13px !important}
}
@media (max-width:820px){
  .city-hud{
    grid-template-columns:112px minmax(0,1fr) auto !important;
    grid-template-areas:
      "brand live util"
      "actions actions actions" !important;
    row-gap:10px !important;
    column-gap:8px !important;
  }
  .city-live{height:36px;padding:0 10px 0 8px !important}
  .city-live-track{height:18px}
  .city-live-label{min-width:34px;height:20px;padding:0 6px;font-size:9px}
  #livepill.city-livepill{font-size:12px !important;line-height:18px !important}
}
@media (max-width:520px){
  .city-hud{grid-template-columns:108px minmax(0,1fr) auto !important;column-gap:6px !important}
  .city-brand{width:108px !important;font-size:10.5px !important}
  .city-live{height:34px;padding:0 8px 0 7px !important}
  .city-live-track{height:17px}
  .city-live-label{min-width:30px;height:19px;padding:0 5px;font-size:8px}
  #livepill.city-livepill{font-size:11px !important;line-height:17px !important}
}

/* Hotfix R16: ticker gọn một lớp; trả quick actions về vị trí cũ */
.city-mobile-live,.city-mobile-livepill,.livebar{display:none!important}

.city-hud{
  display:flex!important;
  align-items:center!important;
  min-height:64px!important;
  padding:0 20px!important;
}
.city-brand{
  flex:0 0 178px!important;
  width:178px!important;
}
.city-utility{
  margin-left:auto!important;
  position:relative!important;
  z-index:11!important;
}
.city-live{
  position:fixed!important;
  top:calc(13px + env(safe-area-inset-top))!important;
  left:198px!important;
  width:clamp(160px,18vw,310px)!important;
  height:34px!important;
  display:flex!important;
  align-items:center!important;
  gap:8px!important;
  padding:0 10px!important;
  border:1px solid rgba(240,205,110,.28)!important;
  border-radius:999px!important;
  background:rgba(7,20,45,.92)!important;
  box-shadow:none!important;
  overflow:hidden!important;
  z-index:9!important;
}
.city-live-label{
  flex:0 0 auto!important;
  min-width:auto!important;
  height:auto!important;
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  color:#e77a82!important;
  font:700 9px/1 'IBM Plex Sans',system-ui,sans-serif!important;
  letter-spacing:.16em!important;
  text-transform:uppercase!important;
}
.city-live-track{
  position:relative!important;
  flex:1 1 auto!important;
  min-width:0!important;
  height:18px!important;
  overflow:hidden!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
}
#livepill.city-livepill{
  position:absolute!important;
  left:0!important;
  top:0!important;
  display:inline-block!important;
  min-width:max-content!important;
  padding:0!important;
  color:#dbe4f0!important;
  font:italic 13px/18px 'IBM Plex Serif',serif!important;
  white-space:nowrap!important;
  text-decoration:none!important;
  transform:translateX(100%);
  animation:none!important;
  will-change:transform;
}
#livepill.city-livepill.is-running{
  animation:cityTickerR16 14.6s linear both!important;
}
#livepill.city-livepill,
#livepill.city-livepill:visited,
#livepill.city-livepill:hover,
#livepill.city-livepill:active{
  color:#dbe4f0!important;
  text-decoration:none!important;
}
@keyframes cityTickerR16{
  0%{transform:translateX(100%)}
  100%{transform:translateX(-100%)}
}

.city-top-actions{
  position:fixed!important;
  top:calc(11px + env(safe-area-inset-top))!important;
  left:50%!important;
  transform:translateX(-50%)!important;
  z-index:10!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:6px!important;
  width:auto!important;
  max-width:min(48vw,560px)!important;
}
.city-top-actions button{
  flex:0 0 auto!important;
  white-space:nowrap!important;
}

@media(max-width:1280px) and (min-width:821px){
  .city-brand{flex-basis:150px!important;width:150px!important;font-size:14px!important}
  .city-live{left:160px!important;width:clamp(135px,15vw,210px)!important}
  .city-top-actions{max-width:52vw!important;gap:4px!important}
  .city-top-actions .full-label{display:none!important}
  .city-top-actions .short-label{display:inline!important}
  .city-top-actions button{padding-inline:9px!important}
}

@media(max-width:820px){
  .city-hud{
    display:grid!important;
    grid-template-columns:108px minmax(0,1fr) auto!important;
    align-items:center!important;
    column-gap:7px!important;
    min-height:56px!important;
    padding:0 12px!important;
    padding-top:calc(8px + env(safe-area-inset-top))!important;
  }
  .city-brand{
    flex:initial!important;
    width:108px!important;
    font-size:10.5px!important;
    line-height:1.18!important;
    letter-spacing:.13em!important;
  }
  .city-live{
    position:relative!important;
    top:auto!important;
    left:auto!important;
    width:100%!important;
    max-width:none!important;
    height:32px!important;
    padding:0 9px!important;
    gap:7px!important;
    z-index:11!important;
  }
  .city-live-label{font-size:8px!important}
  .city-live-track{height:17px!important}
  #livepill.city-livepill{font-size:11px!important;line-height:17px!important}
  .city-utility{margin-left:0!important;justify-self:end!important}
  .city-top-actions{
    position:fixed!important;
    top:calc(61px + env(safe-area-inset-top))!important;
    left:50%!important;
    transform:translateX(-50%)!important;
    z-index:10!important;
    display:flex!important;
    gap:4px!important;
    width:auto!important;
    max-width:calc(100vw - 16px)!important;
  }
  .city-top-actions button{
    padding:9px 10px!important;
    font-size:10px!important;
  }
  .city-top-actions .full-label{display:none!important}
  .city-top-actions .short-label{display:inline!important}
  .city-load-error,.event-banner{top:calc(108px + env(safe-area-inset-top))!important}
}

@media(max-width:390px){
  .city-hud{grid-template-columns:102px minmax(0,1fr) auto!important;column-gap:5px!important;padding-inline:8px!important}
  .city-brand{width:102px!important;font-size:9.8px!important}
  .city-live{height:30px!important;padding:0 7px!important;gap:6px!important}
  .city-live-label{font-size:7.5px!important}
  .city-live-track{height:16px!important}
  #livepill.city-livepill{font-size:10.5px!important;line-height:16px!important}
  .city-top-actions{gap:3px!important;max-width:calc(100vw - 10px)!important}
  .city-top-actions button{padding:8px 7px!important;font-size:9px!important}
}

/* R18 — chốt lại header sạch, thẳng hàng, không còn khung trong khung */
.livebar,.city-mobile-live,.city-mobile-livepill{display:none!important}

.city-hud{
  position:fixed!important;
  top:0!important;left:0!important;right:0!important;
  z-index:10!important;
  display:flex!important;
  align-items:center!important;
  justify-content:flex-start!important;
  gap:0!important;
  height:58px!important;
  min-height:58px!important;
  padding:0 14px!important;
  overflow:visible!important;
  background:linear-gradient(180deg,rgba(7,15,31,.97),rgba(9,18,36,.93))!important;
  border-bottom:1px solid rgba(141,163,199,.13)!important;
  box-shadow:0 8px 30px rgba(2,7,16,.2)!important;
}
.city-brand{
  position:relative!important;
  z-index:3!important;
  flex:0 0 166px!important;
  width:166px!important;
  margin:0!important;
  padding:0!important;
  text-align:left!important;
  font-size:15px!important;
  line-height:1.1!important;
}
.city-utility{
  position:relative!important;
  z-index:4!important;
  margin-left:auto!important;
  display:flex!important;
  align-items:center!important;
  gap:8px!important;
}
.city-live{
  position:absolute!important;
  left:176px!important;
  top:11px!important;
  width:clamp(118px,12vw,220px)!important;
  height:34px!important;
  margin:0!important;
  padding:0 12px!important;
  display:flex!important;
  align-items:center!important;
  gap:9px!important;
  overflow:hidden!important;
  border:1px solid rgba(240,205,110,.28)!important;
  border-radius:999px!important;
  background:rgba(8,21,46,.9)!important;
  box-shadow:none!important;
}
.city-live-label{
  position:relative!important;
  z-index:2!important;
  flex:0 0 auto!important;
  min-width:auto!important;
  height:auto!important;
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  background:none!important;
  color:#e98286!important;
  font:700 10px/1 'IBM Plex Sans',system-ui,sans-serif!important;
  letter-spacing:.16em!important;
  text-transform:uppercase!important;
}
.city-live-track{
  position:relative!important;
  flex:1 1 auto!important;
  min-width:0!important;
  height:18px!important;
  overflow:hidden!important;
  border:0!important;
  border-radius:0!important;
  background:none!important;
  box-shadow:none!important;
}
#livepill.city-live-text{
  position:absolute!important;
  left:0!important;
  top:50%!important;
  display:block!important;
  min-width:max-content!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  background:none!important;
  box-shadow:none!important;
  color:#dbe4f0!important;
  font:italic 13px/18px 'IBM Plex Serif',serif!important;
  white-space:nowrap!important;
  text-align:left!important;
  transform:translate(100%,-50%)!important;
  animation:cityTickerR18 17s linear infinite!important;
  will-change:transform!important;
}
#livepill.city-live-text,
#livepill.city-live-text a,
#livepill.city-live-text a:visited,
#livepill.city-live-text a:hover,
#livepill.city-live-text a:active{
  color:#dbe4f0!important;
  text-decoration:none!important;
}
.city-live:hover #livepill.city-live-text{animation-play-state:paused!important}
@keyframes cityTickerR18{
  0%{transform:translate(100%,-50%)}
  100%{transform:translate(-100%,-50%)}
}
.city-top-actions{
  position:absolute!important;
  top:9px!important;
  left:50%!important;
  z-index:5!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:6px!important;
  width:auto!important;
  max-width:none!important;
  margin:0!important;
  padding:0!important;
  transform:translateX(-50%)!important;
}
.city-top-actions button{
  min-height:40px!important;
  margin:0!important;
  padding:9px 13px!important;
  font-size:12px!important;
  white-space:nowrap!important;
}
.searchbar{
  top:66px!important;
  left:50%!important;
  right:auto!important;
  transform:translateX(-50%)!important;
}

@media (max-width:1100px) and (min-width:821px){
  .city-brand{flex-basis:150px!important;width:150px!important;font-size:13px!important}
  .city-live{left:154px!important;width:110px!important;padding-inline:9px!important;gap:7px!important}
  .city-live-label{font-size:8.5px!important}
  #livepill.city-live-text{font-size:11.5px!important}
  .city-top-actions{gap:4px!important}
  .city-top-actions .full-label{display:none!important}
  .city-top-actions .short-label{display:inline!important}
  .city-top-actions button{padding-inline:9px!important;font-size:10.5px!important}
}

@media (max-width:820px){
  .city-hud{
    height:56px!important;
    min-height:56px!important;
    padding:0 10px!important;
  }
  .city-brand{
    flex:0 0 112px!important;
    width:112px!important;
    font-size:10.7px!important;
    letter-spacing:.12em!important;
  }
  .city-live{
    left:122px!important;
    right:64px!important;
    top:11px!important;
    width:auto!important;
    height:34px!important;
    padding:0 10px!important;
    gap:7px!important;
  }
  .city-live-label{font-size:8.5px!important;letter-spacing:.12em!important}
  .city-live-track{height:17px!important}
  #livepill.city-live-text{font-size:11px!important;line-height:17px!important}
  .city-utility{margin-left:auto!important}
  .city-top-actions{
    position:fixed!important;
    top:calc(62px + env(safe-area-inset-top))!important;
    left:50%!important;
    width:auto!important;
    max-width:calc(100vw - 16px)!important;
    gap:6px!important;
    transform:translateX(-50%)!important;
  }
  .city-top-actions button{
    min-height:42px!important;
    padding:9px 12px!important;
    font-size:10.5px!important;
  }
  .city-top-actions .full-label{display:none!important}
  .city-top-actions .short-label{display:inline!important}
  body:not(.menu-open) .searchbar{display:none!important}
  .city-load-error,.event-banner{top:calc(112px + env(safe-area-inset-top))!important}
}

@media (max-width:520px){
  .city-hud{padding:0 8px!important}
  .city-brand{flex-basis:106px!important;width:106px!important;font-size:10px!important}
  .city-live{left:114px!important;right:60px!important;height:32px!important;padding:0 8px!important}
  .city-live-label{font-size:7.8px!important}
  .city-live-track{height:16px!important}
  #livepill.city-live-text{font-size:10.3px!important;line-height:16px!important}
  .city-top-actions{
    top:calc(60px + env(safe-area-inset-top))!important;
    gap:5px!important;
    max-width:calc(100vw - 12px)!important;
  }
  .city-top-actions button{
    min-height:40px!important;
    padding:8px 10px!important;
    font-size:10px!important;
  }
  .city-load-error,.event-banner{top:calc(108px + env(safe-area-inset-top))!important}
}

/* R19 — sửa chữ LIVE bị mất: marquee dùng margin, không bị transform !important khóa animation */
.city-live-track{
  overflow:hidden!important;
}
#livepill.city-live-text{
  position:relative!important;
  left:auto!important;
  top:auto!important;
  display:inline-block!important;
  min-width:max-content!important;
  padding:0 0 0 100%!important;
  margin:0!important;
  transform:none!important;
  animation:cityTickerR19 16s linear infinite!important;
  animation-delay:-4s!important;
  color:#dbe4f0!important;
  opacity:1!important;
  visibility:visible!important;
  white-space:nowrap!important;
}
#livepill.city-live-text.is-running{
  animation:cityTickerR19 16s linear infinite!important;
  animation-delay:-4s!important;
}
@keyframes cityTickerR19{
  0%{margin-left:0}
  100%{margin-left:-100%}
}

/* R20 — dùng marquee thật cho ticker để chữ luôn hiện và chạy ổn định */
.city-live-track{
  position:relative !important;
  flex:1 1 auto !important;
  min-width:0 !important;
  height:18px !important;
  overflow:hidden !important;
  background:none !important;
  border:0 !important;
  box-shadow:none !important;
}
#livepill.city-live-text{
  display:block !important;
  width:100% !important;
  height:18px !important;
  margin:0 !important;
  padding:0 !important;
  background:none !important;
  border:0 !important;
  box-shadow:none !important;
  color:#dbe4f0 !important;
  font:italic 13px/18px 'IBM Plex Serif',serif !important;
  white-space:nowrap !important;
  text-decoration:none !important;
  overflow:hidden !important;
  transform:none !important;
  animation:none !important;
}
#livepill.city-live-text,
#livepill.city-live-text a,
#livepill.city-live-text a:visited,
#livepill.city-live-text a:hover,
#livepill.city-live-text a:active{
  color:#dbe4f0 !important;
  text-decoration:none !important;
}
#livepill.city-live-text.clickable{cursor:pointer !important}
@media (max-width:820px){
  .city-live-track{height:17px !important}
  #livepill.city-live-text{height:17px !important;font-size:11px !important;line-height:17px !important}
}
@media (max-width:520px){
  .city-live-track{height:16px !important}
  #livepill.city-live-text{height:16px !important;font-size:10.3px !important;line-height:16px !important}
}

/* R21 — ticker chuyển động liên tục bằng requestAnimationFrame, không nhảy cục */
.city-live-track{
  position:relative !important;
  overflow:hidden !important;
  min-width:0 !important;
}
#livepill.city-live-text{
  position:absolute !important;
  left:0 !important;
  top:50% !important;
  display:block !important;
  width:auto !important;
  min-width:max-content !important;
  height:auto !important;
  margin:0 !important;
  padding:0 !important;
  background:none !important;
  border:0 !important;
  border-radius:0 !important;
  box-shadow:none !important;
  color:#dbe4f0 !important;
  font:italic 13px/18px 'IBM Plex Serif',serif !important;
  white-space:nowrap !important;
  text-align:left !important;
  text-decoration:none !important;
  overflow:visible !important;
  opacity:1 !important;
  visibility:visible !important;
  animation:none !important;
  transition:none !important;
  will-change:transform !important;
  pointer-events:auto !important;
}
#livepill.city-live-text,
#livepill.city-live-text a,
#livepill.city-live-text a:visited,
#livepill.city-live-text a:hover,
#livepill.city-live-text a:active{
  color:#dbe4f0 !important;
  text-decoration:none !important;
}
@media(max-width:820px){
  #livepill.city-live-text{font-size:11px !important;line-height:17px !important}
}
@media(max-width:520px){
  #livepill.city-live-text{font-size:10.3px !important;line-height:16px !important}
}

/* R30 — Rạp Chiếu Bóng Nửa Đêm & Night Opera có không gian media riêng */
.special-venue-room{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(340px,.95fr);gap:14px;align-items:stretch;margin-bottom:16px}
.special-venue-room .house-interior{margin:0;height:auto;min-height:340px}
.special-venue-media{min-width:0;display:flex;flex-direction:column;border:1px solid rgba(240,205,110,.28);border-radius:20px;overflow:hidden;background:linear-gradient(180deg,#111c31,#080e1a);box-shadow:0 20px 45px rgba(0,0,0,.24)}
.special-venue-media-head{display:flex;flex-direction:column;gap:4px;padding:13px 16px;border-bottom:1px solid rgba(240,205,110,.2);background:rgba(7,13,25,.88)}
.special-venue-media-head span{color:#f0cd6e;font:700 10px/1 'IBM Plex Sans',sans-serif;letter-spacing:.16em}
.special-venue-media-head strong{color:#eef3ff;font:600 16px/1.3 'IBM Plex Serif',serif;white-space:normal;overflow-wrap:anywhere}
.special-venue-media-head small{color:#91a1bb;font-size:11px}
.special-venue-screen{position:relative;flex:1;min-height:0;display:grid;place-items:center;padding:18px;background:#05080d;overflow:hidden}
.special-venue-screen:before,.special-venue-screen:after{content:"";position:absolute;top:0;bottom:0;width:11%;z-index:1;pointer-events:none}
.special-venue-media.cinema .special-venue-screen:before{left:0;background:linear-gradient(90deg,#511b27,rgba(81,27,39,.2),transparent)}
.special-venue-media.cinema .special-venue-screen:after{right:0;background:linear-gradient(-90deg,#511b27,rgba(81,27,39,.2),transparent)}
.special-venue-media.opera .special-venue-screen{background:radial-gradient(circle at 50% 25%,rgba(212,166,86,.14),transparent 48%),#12080c}
.special-venue-media.opera .special-venue-screen:before{left:0;background:linear-gradient(90deg,#6f1f2c,rgba(111,31,44,.18),transparent)}
.special-venue-media.opera .special-venue-screen:after{right:0;background:linear-gradient(-90deg,#6f1f2c,rgba(111,31,44,.18),transparent)}
.special-venue-screen iframe{position:relative;z-index:2;display:block;width:100%;max-width:760px;aspect-ratio:16/9;border:1px solid rgba(240,205,110,.3);border-radius:10px;background:#000;box-shadow:0 14px 38px rgba(0,0,0,.45)}
.venue-program-editor{display:grid;grid-template-columns:1fr;gap:6px;margin:10px 0;padding:10px;border:1px solid rgba(240,205,110,.2);border-radius:12px;background:rgba(7,15,31,.6)}
.venue-program-editor .mono,.venue-editor-label{display:block;margin-top:8px;color:#f0cd6e;font-size:12px}
.venue-editor-control{width:100%;box-sizing:border-box;border:1px solid #30415e;border-radius:10px;background:#0d1730;color:#eef3ff;padding:10px}
.venue-editor-area{min-height:100px;resize:vertical}
@media(max-width:940px){.special-venue-room{grid-template-columns:1fr}.special-venue-room .house-interior{min-height:300px}.special-venue-screen{padding:14px}}
@media(max-width:560px){.special-venue-room{gap:10px}.special-venue-room .house-interior{min-height:255px}.special-venue-media{border-radius:16px}.special-venue-media-head{padding:11px 12px}.special-venue-media-head strong{font-size:14px}.special-venue-screen{padding:10px}.special-venue-screen iframe{border-radius:7px}}

/* R31 — phần giới thiệu ô cửa thật full chiều ngang + landmark ga/sân bay có tỷ lệ rõ */
.venue-inner .venue-head{
  width:100% !important;
  max-width:none !important;
}
.venue-inner .venue-head > p.subq{
  display:block !important;
  width:100% !important;
  max-width:none !important;
  margin:12px 0 14px !important;
  padding:0 !important;
  line-height:1.62 !important;
  overflow-wrap:anywhere;
}
.special-venue-room + .venue-head{
  clear:both;
  width:100% !important;
}
@media(max-width:820px){
  .venue-inner .venue-head > p.subq{
    font-size:14px !important;
    line-height:1.58 !important;
  }
}


/* R49 — Bãi Biển Ký Ức: landmark dài, không gian viết nhiều kỷ niệm biển */
.memory-beach-room{
  min-height:390px;
  border-color:rgba(160,210,224,.28) !important;
  background:linear-gradient(180deg,rgba(12,31,51,.98),rgba(7,18,31,.98)) !important;
  box-shadow:0 24px 55px rgba(0,0,0,.32),inset 0 1px rgba(255,255,255,.03) !important;
}
.memory-beach-room canvas{min-height:390px}
.memory-beach-room .room-plaque{
  background:rgba(7,20,33,.78) !important;
  border-color:rgba(175,221,229,.3) !important;
  backdrop-filter:blur(8px);
}
.memory-beach-room .room-plaque span{color:#b9e2e7 !important;letter-spacing:.18em}
.memory-beach-room .room-detail{color:#d3e7e8 !important;background:rgba(7,20,33,.62) !important;border-color:rgba(175,221,229,.2) !important}
.venue-inner[data-venue-type="memorybeach"] .story-card,
.venue-inner.memory-beach-venue .story-card{border-color:rgba(159,207,217,.22)}
@media(max-width:820px){
  .memory-beach-room,.memory-beach-room canvas{min-height:310px}
}
@media(max-width:520px){
  .memory-beach-room,.memory-beach-room canvas{min-height:270px}
}
