body.dark .trip-card{background:var(--surface);border-color:var(--border);}
body.dark .trip-card:hover{box-shadow:0 16px 48px rgba(0,0,0,.35);}
body.dark .map-btn{background:var(--surface);border-color:var(--border);color:var(--muted);}
.hero{padding:10rem 4rem 4rem;text-align:center;position:relative;overflow:hidden;}
.hero-blobs{position:absolute;inset:0;pointer-events:none;overflow:hidden;z-index:0;}
.blob{position:absolute;border-radius:50%;filter:blur(70px);animation:blobFloat 8s ease-in-out infinite alternate;}
.blob-1{width:400px;height:400px;background:rgba(74,184,240,.1);top:-80px;right:-60px;}
.blob-2{width:300px;height:300px;background:rgba(255,107,74,.1);bottom:-40px;left:5%;animation-delay:-3s;}
.blob-3{width:250px;height:250px;background:rgba(62,203,160,.1);top:40%;left:35%;animation-delay:-5s;}
@keyframes blobFloat{0%{transform:translate(0,0) scale(1);}100%{transform:translate(25px,18px) scale(1.06);}}
.hero-inner{position:relative;z-index:1;}
.hero-tag{display:inline-flex;align-items:center;gap:.5rem;background:rgba(74,184,240,.1);border:1px solid rgba(74,184,240,.3);border-radius:100px;padding:.35rem 1rem;font-size:.75rem;font-weight:500;color:var(--sky);margin-bottom:1.5rem;}
.hero-tag::before{content:'\2708';font-size:.85rem;}
.hero h1{font-family:var(--fd);font-size:clamp(3rem,7vw,6rem);font-weight:700;line-height:1.05;margin-bottom:1rem;}
.hero h1 em{font-style:italic;color:var(--coral);}
.hero p{font-size:1rem;color:var(--muted);max-width:480px;margin:0 auto 0;}
.stats-bar{display:flex;justify-content:center;gap:3rem;padding:2.5rem 4rem;border-bottom:1px solid var(--border);flex-wrap:wrap;}
.stat{text-align:center;}
.stat-num{font-family:var(--fd);font-size:2.8rem;font-weight:700;color:var(--coral);line-height:1;}
.stat-label{font-size:.78rem;color:var(--muted);margin-top:.2rem;}
.map-section{padding:2rem 4rem 1rem;position:relative;}
.map-wrap{position:relative;background:var(--surface);border:1.5px solid var(--border);border-radius:24px;overflow:hidden;box-shadow:0 8px 40px rgba(0,0,0,.06);}
.map-controls{position:absolute;top:1rem;right:1rem;z-index:10;display:flex;flex-direction:column;gap:.5rem;}
.map-btn{width:36px;height:36px;border-radius:10px;background:#fff;border:1.5px solid var(--border);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:1rem;transition:border-color .2s,color .2s;color:var(--muted);}
.map-btn:hover{border-color:var(--coral);color:var(--coral);}
#map-svg{width:100%;height:auto;display:block;cursor:grab;}
#map-svg:active{cursor:grabbing;}
.country-default{fill:#e8d9c8;stroke:#fff;stroke-width:.5;transition:fill .3s;}
.country-visited{fill:var(--coral);stroke:#fff;stroke-width:.5;cursor:pointer;transition:fill .25s,filter .25s;}
.country-visited:hover{fill:#ff8c6e;filter:drop-shadow(0 4px 12px rgba(255,107,74,.4));}
.country-ocean{fill:#deeef8;}
.view-toggle{display:flex;align-items:center;justify-content:center;gap:1rem;margin-bottom:1.5rem;}
.view-toggle span{font-size:.82rem;color:var(--muted);font-weight:500;}
.toggle-switch{position:relative;width:52px;height:28px;background:var(--border);border-radius:100px;cursor:pointer;transition:background .3s;border:none;padding:0;}
.toggle-switch.globe-active{background:var(--sky);}
.toggle-switch::after{content:'';position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:#fff;transition:transform .3s cubic-bezier(.34,1.56,.64,1);box-shadow:0 2px 6px rgba(0,0,0,.15);}
.toggle-switch.globe-active::after{transform:translateX(24px);}
.map-view,.globe-view{transition:opacity .35s,transform .35s;}
.map-view.hidden,.globe-view.hidden{display:none;}
.globe-wrap{position:relative;width:100%;max-width:580px;margin:0 auto;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle at 35% 35%,#1a3a5c 0%,#0a1628 60%,#050d1a 100%);box-shadow:0 0 80px rgba(74,184,240,.15),0 0 0 1px rgba(74,184,240,.1);overflow:hidden;cursor:grab;}
.globe-wrap:active{cursor:grabbing;}
#globeCanvas{width:100%!important;height:100%!important;display:block;}
.view-hint{text-align:center;font-size:.78rem;color:var(--muted);margin-top:.75rem;opacity:.7;}
.globe-tooltip{position:fixed;z-index:500;background:var(--surface);border:1.5px solid var(--border);border-radius:16px;padding:.9rem 1.1rem;min-width:180px;max-width:240px;box-shadow:0 12px 40px rgba(0,0,0,.15);pointer-events:none;opacity:0;transition:opacity .2s;}
.globe-tooltip.show{opacity:1;}
.gt-flag{font-size:1.8rem;margin-bottom:.3rem;display:block;}
.gt-name{font-family:var(--fd);font-size:1.1rem;font-weight:700;}
.gt-year{font-size:.7rem;font-weight:500;letter-spacing:.1em;color:var(--coral);text-transform:uppercase;margin-top:.15rem;}
.tooltip{position:fixed;z-index:500;background:var(--surface);border:1.5px solid var(--border);border-radius:16px;padding:1rem 1.2rem;min-width:200px;max-width:260px;box-shadow:0 12px 40px rgba(0,0,0,.12);pointer-events:none;opacity:0;transition:opacity .2s;}
.tooltip.show{opacity:1;}
.tt-flag{font-size:2rem;margin-bottom:.4rem;display:block;}
.tt-name{font-family:var(--fd);font-size:1.2rem;font-weight:700;margin-bottom:.2rem;}
.tt-year{font-size:.72rem;font-weight:500;letter-spacing:.1em;color:var(--coral);text-transform:uppercase;margin-bottom:.5rem;}
.tt-desc{font-size:.82rem;color:var(--muted);line-height:1.5;}
@media(max-width:680px){.map-section{padding:1.5rem 1rem .5rem;}.globe-wrap{max-width:320px;}}
.trips-section{padding:2rem 4rem 6rem;}
.trips-title{font-family:var(--fd);font-size:2rem;font-weight:700;margin-bottom:2rem;text-align:center;}
.trips-title em{font-style:italic;color:var(--coral);}
.trips-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.5rem;}
.trip-card{background:#fff;border:1.5px solid var(--border);border-radius:20px;padding:1.5rem;transition:transform .25s,box-shadow .25s;position:relative;overflow:hidden;cursor:default;}
.trip-card::before{content:'';position:absolute;top:0;left:0;right:0;height:4px;background:var(--card-color,var(--coral));border-radius:20px 20px 0 0;z-index:2;}
.trip-card:hover{transform:translateY(-4px);box-shadow:0 16px 48px rgba(0,0,0,.1);}
.trip-card::after{content:'';position:absolute;bottom:0;right:0;width:0;height:0;background:linear-gradient(135deg,transparent 50%,rgba(0,0,0,.05) 50%,rgba(0,0,0,.15) 55%,var(--surface) 60%);box-shadow:-2px -2px 6px rgba(0,0,0,.1);border-radius:0 0 4px 0;transition:width .35s cubic-bezier(.4,0,.2,1),height .35s cubic-bezier(.4,0,.2,1);pointer-events:none;}
.trip-card:hover::after{width:42px;height:42px;}
body.dark .trip-card::after{background:linear-gradient(135deg,transparent 50%,rgba(255,255,255,.04) 50%,rgba(255,255,255,.1) 55%,var(--bg) 60%);}
.trip-emoji{font-size:2.5rem;margin-bottom:.75rem;display:block;}
.trip-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:.5rem;}
.trip-name{font-family:var(--fd);font-size:1.3rem;font-weight:700;}
.trip-year{font-size:.72rem;font-weight:500;letter-spacing:.1em;color:var(--muted);background:var(--surface);border:1px solid var(--border);border-radius:100px;padding:.2rem .6rem;white-space:nowrap;}
.trip-desc{font-size:.85rem;color:var(--muted);line-height:1.6;margin-top:.5rem;}
.trip-tags{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:1rem;}
.trip-tag{font-size:.7rem;font-weight:500;padding:.2rem .65rem;border-radius:100px;background:rgba(255,107,74,.08);color:var(--coral);border:1px solid rgba(255,107,74,.2);}
.trip-album-link{display:inline-flex;align-items:center;gap:.4rem;margin-top:1rem;font-size:.8rem;font-weight:500;color:var(--card-color,var(--coral));text-decoration:none;padding:.45rem .9rem;border:1px solid currentColor;border-radius:100px;transition:background .2s,transform .2s;align-self:flex-start;}
.trips-view-toggle{display:flex;justify-content:center;gap:.5rem;margin-bottom:1.5rem;}
.trips-view-btn{background:var(--surface);border:1px solid var(--border);border-radius:100px;padding:.45rem 1.1rem;font-family:var(--fb);font-size:.82rem;color:var(--muted);cursor:pointer;transition:all .2s;}
.trips-view-btn:hover{border-color:var(--coral);color:var(--coral);}
.trips-view-btn.active{background:var(--coral);color:#fff;border-color:var(--coral);}
.trips-grid.scrapbook{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:2.5rem 2rem;padding:2rem 1rem;background:radial-gradient(circle at 20% 30%,rgba(180,130,80,.12),transparent 40%),radial-gradient(circle at 80% 70%,rgba(150,100,60,.1),transparent 40%),repeating-linear-gradient(45deg,rgba(120,80,40,.03) 0,rgba(120,80,40,.03) 1px,transparent 1px,transparent 8px),#e8d8b8;border-radius:24px;box-shadow:inset 0 0 80px rgba(80,50,20,.18);}
body.dark .trips-grid.scrapbook{background:radial-gradient(circle at 20% 30%,rgba(80,55,30,.4),transparent 40%),radial-gradient(circle at 80% 70%,rgba(60,40,20,.3),transparent 40%),repeating-linear-gradient(45deg,rgba(80,55,30,.08) 0,rgba(80,55,30,.08) 1px,transparent 1px,transparent 8px),#2a2218;}
.trips-grid.scrapbook .trip-card{background:#fff8e8;border:none;border-radius:2px;padding:1rem 1rem 1.2rem;box-shadow:0 8px 20px rgba(60,40,20,.25),inset 0 0 0 1px rgba(0,0,0,.04);transform-origin:center;position:relative;overflow:visible;}
body.dark .trips-grid.scrapbook .trip-card{background:#3a2f22;color:#f0e0c8;box-shadow:0 8px 20px rgba(0,0,0,.55);}
.trips-grid.scrapbook .trip-card:nth-child(3n+1){transform:rotate(-2.3deg);}
.trips-grid.scrapbook .trip-card:nth-child(3n+2){transform:rotate(1.8deg);}
.trips-grid.scrapbook .trip-card:nth-child(3n+3){transform:rotate(-1.2deg);}
.trips-grid.scrapbook .trip-card:nth-child(5n+4){transform:rotate(2.6deg);}
.trips-grid.scrapbook .trip-card:hover{transform:rotate(0) scale(1.04);z-index:5;box-shadow:0 18px 40px rgba(60,40,20,.45);}
.trips-grid.scrapbook .trip-card::after{display:none;}
.trips-grid.scrapbook .trip-card::before{content:'';position:absolute;top:-12px;left:50%;transform:translateX(-50%) rotate(-3deg);width:80px;height:18px;background:linear-gradient(180deg,rgba(255,255,180,.55),rgba(255,255,180,.35));border-left:1px dashed rgba(180,160,100,.5);border-right:1px dashed rgba(180,160,100,.5);box-shadow:0 2px 4px rgba(0,0,0,.08);}
.trips-grid.scrapbook .trip-year{background:repeating-linear-gradient(90deg,#fff5d6 0,#fff5d6 6px,#ffe6a8 6px,#ffe6a8 7px);border:1px solid #c9a85a;color:#6b4a18;border-radius:2px;box-shadow:0 1px 2px rgba(0,0,0,.1);transform:rotate(-1deg);}
body.dark .trips-grid.scrapbook .trip-year{background:#5a4824;color:#f0e0c8;border-color:#3d2f16;}
.trips-grid.scrapbook .trip-emoji{font-size:3rem;filter:drop-shadow(2px 3px 4px rgba(0,0,0,.2));}
.trips-grid.scrapbook .trip-name{font-family:'Brush Script MT','Lucida Handwriting',cursive;font-size:1.7rem;color:#8b4513;line-height:1.1;}
body.dark .trips-grid.scrapbook .trip-name{color:#d4a878;}
.trips-grid.scrapbook .trip-desc{font-family:Georgia,serif;font-style:italic;color:#5a4030;}
body.dark .trips-grid.scrapbook .trip-desc{color:#c0a888;}
.trips-grid.scrapbook .trip-tag{background:rgba(139,69,19,.15);color:#6b4513;border-color:rgba(139,69,19,.3);}
body.dark .trips-grid.scrapbook .trip-tag{background:rgba(212,168,120,.15);color:#d4a878;border-color:rgba(212,168,120,.3);}
.trips-grid.scrapbook .trip-album-link{background:#fff5d6;border-color:#c9a85a;color:#6b4513;}
body.dark .trips-grid.scrapbook .trip-album-link{background:#5a4824;border-color:#3d2f16;color:#f0e0c8;}
.trip-album-link:hover{background:color-mix(in srgb,currentColor 12%,transparent);transform:translateY(-1px);}
.trip-card.trip-target{animation:tripPulse 2s ease-out;}
@keyframes tripPulse{0%{box-shadow:0 0 0 0 var(--card-color,rgba(255,107,74,.5)),0 16px 48px rgba(0,0,0,.1);}100%{box-shadow:0 0 0 24px transparent,0 16px 48px rgba(0,0,0,.1);}}
@media(max-width:900px){.trips-section{padding:2rem 1.5rem 4rem;}.stats-bar{gap:2rem;}}
@media(max-width:680px){
  nav{padding:1.2rem 1.5rem;}.nav-links{display:none;}.hamburger{display:flex;}.lang-switcher{display:none;}
  .hero{padding:8rem 1.5rem 3rem;}
  .stats-bar{padding:2rem 1.5rem;gap:1.5rem;}
  .stat-num{font-size:2rem;}
  .map-section{padding:1.5rem 1rem;}
  .trips-section{padding:1.5rem 1rem 4rem;}
  .trips-grid{grid-template-columns:1fr;}
  footer{padding:1.5rem;text-align:center;}
  body{cursor:auto!important;}
  .cursor,.cursor-ring{display:none!important;}
}
html.dark-init body,html.dark-init{background:#141210!important;}
html.curtain-active #pageCurtain{transform:scaleY(1)!important;transition:none!important;}
