:root{--font-body:"Inter",sans-serif;--font-heading:"Outfit",sans-serif;--font-serif:"Merriweather",serif;--color-bg:#000;--color-bg-card:#000000d9;--color-text:#fff;--color-text-dim:#cbd5e1;--color-accent-teal:#14b8a6;--color-accent-blue:#3b82f6;--color-accent-gold:#f59e0b;--color-border:#94a3b833}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-body);background:var(--color-bg);color:var(--color-text);overflow-x:hidden}.hero-section{width:100%;min-height:100vh;position:relative;overflow:hidden}.hero-map{background:radial-gradient(circle,#0a0a0ae6,#000 75%);justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.hero-header{z-index:10;width:min(85vw,420px);max-width:420px;position:absolute;top:2rem;left:2rem}.globe-shell{clip-path:circle(50%);pointer-events:auto;width:min(100vw,100vh);max-width:1200px;height:min(100vw,100vh);max-height:1200px;overflow:hidden}.globe-shell>div,.globe-shell .maplibregl-map{width:100%;height:100%}.info-section{background:#050505;border-top:1px solid #ffffff0d;padding:4rem 2rem}.info-section.alt{background:#0a0a0a}.info-content{text-align:left;max-width:900px;margin:0 auto}.info-content h2{font-family:var(--font-heading);text-align:center;margin-bottom:1rem;font-size:2rem}.info-content p{color:var(--color-text-dim);line-height:1.8}.info-content p+p{margin-top:1rem}.info-content ol,.info-content ul{color:var(--color-text-dim);margin-top:1.5rem;margin-bottom:1.5rem;padding-left:1.5rem;line-height:1.8}.info-content li{margin-bottom:.75rem}.info-content h3{color:var(--color-text);margin-top:1.5rem;font-size:1.1rem}#globe{z-index:1;width:100vw;height:100vh;position:fixed;top:0;left:0}#globe-container{z-index:1;width:100%;height:100%;position:absolute;top:0;left:0}.glass-panel{-webkit-backdrop-filter:blur(20px);z-index:10;background:#000000bf;border:1px solid #ffffff26;border-radius:16px;padding:1.5rem;transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:0 10px 40px -5px #000c}.overlay{text-align:center;opacity:0;pointer-events:none;max-width:400px;transition:opacity .3s;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.overlay.active{opacity:1;pointer-events:auto}.overlay h2{font-family:var(--font-heading);color:var(--color-accent-gold);margin:1rem 0;font-size:1.8rem}.overlay p{color:var(--color-text-dim);margin-bottom:2rem;line-height:1.6}.primary-btn{background:var(--color-accent-blue);color:#fff;cursor:pointer;border:none;border-radius:50px;padding:.8rem 2rem;font-weight:600;transition:transform .2s,background .2s}.primary-btn:hover{background:#0284c7;transform:scale(1.05)}header h1{font-family:var(--font-heading);background:linear-gradient(to right,#fff,var(--color-accent-blue));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:1.5rem;font-weight:700}header.hero-header h1{background:0 0;-webkit-background-clip:initial;-webkit-text-fill-color:initial;color:var(--color-accent-gold)}header p{color:var(--color-text-dim);margin-top:.25rem;font-size:.9rem}.header{z-index:10;pointer-events:none;justify-content:space-between;align-items:center;padding:2rem;display:flex;position:fixed;top:0;left:0;right:0}.title{font-family:var(--font-heading);background:linear-gradient(135deg,var(--color-accent-teal),var(--color-accent-blue));-webkit-text-fill-color:transparent;pointer-events:auto;-webkit-background-clip:text;background-clip:text;font-size:2rem;font-weight:700}.search-container{width:100%;margin-top:1rem}.search-input-wrapper{width:100%;position:relative}.search-icon{color:var(--color-text-dim);width:18px;height:18px;position:absolute;top:50%;left:.75rem;transform:translateY(-50%)}#search-input{color:#fff;width:100%;font-family:var(--font-body);background:#0003;border:1px solid #ffffff1a;border-radius:99px;outline:none;padding:.75rem .75rem .75rem 2.5rem;font-size:.9rem;transition:all .2s}#search-input:focus{border-color:var(--color-accent-blue);background:#0006;box-shadow:0 0 0 3px #0ea5e933}.search-suggestions{z-index:20;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#000000d9;border:1px solid #ffffff1a;border-radius:16px;position:absolute;top:calc(100% + .5rem);left:0;right:0;overflow:hidden;box-shadow:0 15px 40px #00000073}.suggestion-item{text-align:left;width:100%;color:var(--color-text);cursor:pointer;font-family:var(--font-body);background:0 0;border:none;flex-direction:column;padding:.75rem 1rem;transition:background .2s;display:flex}.suggestion-item:hover,.suggestion-item.active{background:#3b82f633}.suggestion-primary{font-size:.95rem;font-weight:600}.suggestion-secondary{color:var(--color-text-dim);font-size:.8rem}.suggestion-item.muted{color:var(--color-text-dim);font-style:italic}.use-location-btn{width:100%;color:var(--color-text);font-family:var(--font-body);cursor:pointer;background:#ffffff0d;border:1px solid #fff3;border-radius:999px;margin-top:.75rem;padding:.65rem 1rem;font-size:.9rem;transition:background .2s,border-color .2s}.use-location-btn:hover:not(:disabled){background:#3b82f640;border-color:#3b82f699}.use-location-btn:disabled{opacity:.6;cursor:not-allowed}.tutorial-overlay{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:100;background:#000000d9;justify-content:center;align-items:center;animation:.5s fadeIn;display:flex;position:fixed;inset:0}.tutorial-content{text-align:center;max-width:600px;padding:3rem}.tutorial-content h1{font-family:var(--font-heading);background:linear-gradient(135deg,var(--color-accent-teal),var(--color-accent-blue),var(--color-accent-gold));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin-bottom:1rem;font-size:3.5rem}.tutorial-content p{color:var(--color-text-dim);font-size:1.25rem;font-family:var(--font-serif);margin-bottom:2rem;font-style:italic}.start-btn{background:linear-gradient(135deg,var(--color-accent-teal),var(--color-accent-blue));color:#fff;cursor:pointer;font-size:1.1rem;font-weight:600;font-family:var(--font-heading);border:none;border-radius:12px;padding:1rem 2.5rem;transition:all .3s}.start-btn:hover{transform:translateY(-2px);box-shadow:0 10px 25px #14b8a64d}.result-card{background:var(--color-bg-card);border:1px solid var(--color-border);z-index:20;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-radius:16px;width:400px;max-height:80vh;padding:2rem;transition:transform .4s cubic-bezier(.4,0,.2,1);position:fixed;top:50%;right:2rem;overflow-y:auto;transform:translateY(-50%)translate(120%)}.result-card.visible{transform:translateY(-50%)translate(0)}.close-card{color:var(--color-text-dim);cursor:pointer;background:#94a3b81a;border:none;border-radius:8px;justify-content:center;align-items:center;width:32px;height:32px;transition:all .2s;display:flex;position:absolute;top:1rem;right:1rem}.close-card:hover{color:var(--color-text);background:#94a3b833}#result-card{flex-direction:column;width:380px;display:flex;position:absolute;top:2rem;bottom:2rem;right:2rem;overflow-y:auto;transform:translate(120%)}#result-card.visible{transform:translate(0)}.location-title{margin-bottom:1.5rem}.location-title h2{font-family:var(--font-heading);margin-bottom:.25rem;font-size:1.75rem;line-height:1.2}.location-title p{color:var(--color-text-dim);font-family:var(--font-mono,monospace);opacity:.8;font-size:.9rem}.badge{text-transform:uppercase;letter-spacing:1px;color:var(--color-accent-teal);background:#ffffff1a;border-radius:99px;padding:.25rem .75rem;font-size:.75rem;font-weight:600}.icon-btn{color:var(--color-text-dim);cursor:pointer;background:0 0;border:none;border-radius:50%;padding:.5rem;transition:all .2s}.icon-btn:hover{color:var(--color-text);background:#ffffff1a}.content-grid{grid-template-columns:1fr 1fr;gap:1.5rem;margin-bottom:1.5rem;display:grid}.info-item{align-items:flex-start;gap:.75rem;display:flex}.info-item .icon-accent{color:var(--color-accent-gold);flex-shrink:0}.info-item .label{text-transform:uppercase;color:var(--color-text-dim);letter-spacing:.05em;margin-bottom:.25rem;font-size:.75rem;display:block}.info-item strong{color:var(--color-text);font-size:1.1rem}.full-width{grid-column:1/-1}.divider{background:#ffffff1a;height:1px;margin:1.5rem 0}#culture-title{color:var(--color-accent-teal);font-family:var(--font-heading);margin-bottom:.5rem;font-size:1.1rem}#culture-desc{font-family:var(--font-serif);color:#e2e8f0;margin-bottom:1rem;line-height:1.7}.card-header{margin-bottom:1.5rem}.location-type{color:var(--color-accent-teal);background:#14b8a61a;border-radius:6px;margin-bottom:.5rem;padding:.25rem .75rem;font-size:.875rem;font-weight:600;display:inline-block}.card-header h2{font-family:var(--font-heading);margin-bottom:.5rem;font-size:1.5rem}.coordinates{color:var(--color-text-dim);font-size:.875rem}.info-grid{gap:1rem;margin-bottom:1.5rem;display:grid}.grid-item{border:1px solid var(--color-border);background:#94a3b80d;border-radius:8px;padding:1rem}.grid-label{color:var(--color-text-dim);text-transform:uppercase;letter-spacing:.05em;margin-bottom:.5rem;font-size:.75rem;font-weight:600;display:block}.attractions-header{font-family:var(--font-heading);color:var(--color-accent-gold);margin:1.5rem 0 1rem;font-size:1.25rem}.attraction-card{border:1px solid var(--color-border);background:#94a3b80d;border-radius:8px;gap:1rem;margin-bottom:1rem;padding:1rem;transition:all .3s;display:flex}.attraction-card:hover{border-color:var(--color-accent-teal);background:#94a3b814}.attraction-card img{object-fit:cover;border-radius:6px;flex-shrink:0;width:120px;height:80px}.attraction-info{flex:1}.attraction-info h5{font-family:var(--font-heading);color:var(--color-text);margin-bottom:.5rem;font-size:1rem}.country-tag{color:var(--color-accent-gold);background:#f59e0b1a;border-radius:4px;margin-left:.5rem;padding:.125rem .5rem;font-size:.75rem;font-weight:600;display:inline-block}.attraction-info p{color:var(--color-text-dim);font-size:.875rem;line-height:1.5}.culture-desc{border-left:3px solid var(--color-accent-teal);color:var(--color-text-dim);background:#14b8a60d;border-radius:4px;margin-top:1rem;padding:1rem;font-style:italic}.loader{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);z-index:50;background:#0a0e27cc;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.loader.hidden{display:none}.spinner{border:3px solid #14b8a633;border-top-color:var(--color-accent-teal);border-radius:50%;width:50px;height:50px;animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.hidden{display:none!important}.region-grid{grid-template-columns:repeat(2,1fr);gap:.75rem;margin-bottom:1.5rem;display:grid}.grid-value{font-size:1.1rem;font-weight:600}.photo-gallery{margin-top:1.5rem}.photo-gallery h4{font-family:var(--font-heading);margin-bottom:.75rem;font-size:1rem}.photo-grid{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:.75rem;display:grid}.photo-grid figure{border:1px solid var(--color-border);background:#94a3b814;border-radius:10px;flex-direction:column;display:flex;overflow:hidden}.photo-grid img{object-fit:cover;width:100%;height:100px}.photo-grid figcaption{color:var(--color-text-dim);padding:.5rem;font-size:.75rem}@media (max-width:768px){.header{flex-direction:column;align-items:flex-start;gap:1rem}.title{font-size:1.5rem}.result-card{width:auto;left:1rem;right:1rem}.search-box{min-width:100%}}.reference-list a,.reference-links a{color:#f59e0b}@media (max-width:768px){.tutorial-overlay{align-items:flex-start;padding:3rem 1rem 1rem}.tutorial-content{width:min(520px,95vw);max-width:none;margin:0 auto;padding:2.5rem 1.5rem}.tutorial-content h1{font-size:clamp(2.2rem,6vw,2.8rem)}.tutorial-content p{font-size:1.05rem}.hero-section{min-height:auto;padding-bottom:2rem}.hero-map{min-height:60vh;position:relative}.hero-header{text-align:center;z-index:5;width:min(90vw,480px);max-width:100%;margin:1.5rem auto 0;position:relative;top:auto;left:auto}.hero-header p{font-size:.95rem;line-height:1.6}#result-card{z-index:9;width:auto;max-height:80vh;padding-bottom:2rem;position:fixed;inset:auto 1rem 1rem;transform:translateY(120%)}#result-card.visible{transform:translateY(0)}.content-grid{grid-template-columns:1fr}.photo-gallery .photo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:480px){.hero-map{min-height:50vh}.hero-header{width:calc(100% - 2rem);margin-top:1rem}#result-card{max-height:75vh;bottom:.5rem;left:.5rem;right:.5rem}.photo-gallery .photo-grid{grid-template-columns:repeat(1,minmax(0,1fr))}}
