*{box-sizing:border-box}
body{margin:0;font-family:'Segoe UI',system-ui,Arial;background:#05010a;color:#fff;min-height:100vh;
  background-image:radial-gradient(ellipse at top,#2a0a3a 0%,#05010a 55%),linear-gradient(#05010a,#05010a);
  overflow-x:hidden}
.grid-bg{position:fixed;inset:0;background-image:linear-gradient(#a855f722 1px,transparent 1px),linear-gradient(90deg,#a855f722 1px,transparent 1px);background-size:40px 40px;mask-image:radial-gradient(circle at 50% 30%,#000 20%,transparent 80%);z-index:0;pointer-events:none}
header{position:relative;z-index:5;display:flex;align-items:center;justify-content:space-between;padding:18px 22px}
.brand{display:flex;align-items:center;gap:12px}
.brand img{width:46px;height:46px;border-radius:50%;box-shadow:0 0 25px #ec4899aa;border:1px solid #ec489966}
.brand h1{margin:0;font-size:22px;font-style:italic;letter-spacing:1px}
.brand h1 span{background:linear-gradient(90deg,#ec4899,#a855f7);-webkit-background-clip:text;color:transparent}
.menu-btn{background:none;border:0;color:#fff;font-size:26px;cursor:pointer}
.container{position:relative;z-index:5;max-width:720px;margin:20px auto;padding:0 18px 80px}
.tagline{text-align:center;letter-spacing:6px;color:#f472b6;font-size:12px;margin-bottom:6px;text-shadow:0 0 15px #ec4899}
.title{text-align:center;font-size:38px;font-style:italic;background:linear-gradient(90deg,#fff 20%,#ec4899 60%,#a855f7);-webkit-background-clip:text;color:transparent;margin:0 0 20px;letter-spacing:2px;filter:drop-shadow(0 0 20px #a855f755)}
.search-card{background:linear-gradient(160deg,#160a24cc,#0a0414cc);border:1px solid #a855f755;border-radius:22px;padding:22px;backdrop-filter:blur(6px);box-shadow:0 0 50px #a855f733}
.search-card input{width:100%;padding:15px 18px;border-radius:14px;background:#0d0518;border:1px solid #4c1d95;color:#fff;font-size:15px;outline:none}
.search-card input:focus{border-color:#ec4899;box-shadow:0 0 0 3px #ec489933}
.search-btn{margin-top:14px;width:100%;padding:15px;border:0;border-radius:14px;color:#fff;font-weight:800;letter-spacing:2px;font-size:15px;background:linear-gradient(90deg,#ec4899,#a855f7,#6366f1);cursor:pointer;box-shadow:0 8px 25px #a855f766;transition:.2s}
.search-btn:hover{transform:translateY(-2px);box-shadow:0 12px 35px #ec489988}
.loading{margin-top:22px;font-family:'Courier New',monospace;color:#22c55e;background:#020a05;border:1px solid #16a34a55;border-radius:12px;padding:14px;min-height:120px;white-space:pre-wrap;font-size:13px;display:none}
.result{margin-top:22px;display:none;background:linear-gradient(160deg,#160a24,#0a0414);border:1px solid #ec489988;border-radius:18px;padding:20px;box-shadow:0 0 40px #ec489944}
.result h3{margin:0 0 14px;color:#f472b6;letter-spacing:2px;font-style:italic}
.row{display:flex;justify-content:space-between;padding:10px 0;border-bottom:1px dashed #4c1d9555}
.row:last-child{border-bottom:0}
.row b{color:#a78bfa}
.row span{color:#fff;text-align:right;max-width:60%;word-break:break-word}
.map{margin-top:14px;border-radius:14px;overflow:hidden;border:1px solid #a855f755;height:220px}
.signature{text-align:center;margin-top:12px;font-size:11px;letter-spacing:3px;color:#f472b6}
.notfound{margin-top:22px;padding:18px;border-radius:14px;background:#1a0505;border:1px solid #ef444488;color:#fca5a5;text-align:center;display:none}
.footer{text-align:center;margin-top:36px;font-size:11px;letter-spacing:2px;color:#a78bfa88}
.footer b{color:#ec4899}

/* Slide menu */
.overlay{position:fixed;inset:0;background:#000a;backdrop-filter:blur(4px);z-index:20;display:none}
.overlay.open{display:block}
.sidemenu{position:fixed;top:0;right:-320px;width:300px;height:100%;background:linear-gradient(180deg,#160a24,#05010a);border-left:1px solid #a855f755;padding:26px 20px;z-index:30;transition:.3s}
.sidemenu.open{right:0}
.sidemenu a{display:block;padding:14px;color:#fff;text-decoration:none;border-radius:12px;margin:6px 0;background:#0d0518;border:1px solid #4c1d9555}
.sidemenu a:hover{background:#1a0a2a;border-color:#ec4899}
.close{background:none;border:0;color:#fff;font-size:26px;float:right;cursor:pointer}
