@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:ital,wght@0,400;0,500;0,600;1,400;1,500&display=swap');
:root{--ink:#fff4f0;--muted:#d3b6c5;--pink:#f6b8ce;--rose:#bc728e;--gold:#e3c093;--plum:#211428;--surface:#352337;--line:rgba(251,207,227,.14);--blue:#9cddde;--radius:22px;font-family:'DM Sans',system-ui,sans-serif;color:var(--ink);background:#160f20;font-synthesis:none}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-height:100vh;background:radial-gradient(ellipse at 85% 0%,#3b223c 0,transparent 45%),radial-gradient(ellipse at 0% 85%,#25233d 0,transparent 50%),#160f20}body.travel{--ink:#fff8e8;--muted:#d7cabb;--pink:#a4d8d7;--rose:#68b1ac;--gold:#f3d4a1;--plum:#132b34;--surface:#25424a;--line:rgba(228,246,238,.14);background:radial-gradient(ellipse at 80% 0%,#27515b 0,transparent 48%),#102631}button,input,textarea,select{font:inherit}button{cursor:pointer}button:disabled{opacity:.45;cursor:not-allowed}a{color:inherit}h1,h2,h3,p{margin:0}h1,h2,h3,.serif{font-family:'Playfair Display',Georgia,serif;font-weight:500}h1{font-size:clamp(2.8rem,6.1vw,6rem);line-height:1.08;letter-spacing:-.045em}h2{font-size:clamp(2rem,4vw,3.6rem);line-height:1.12;letter-spacing:-.035em}h3{font-size:1.55rem}p{line-height:1.65}button{border:0}.muted{color:var(--muted)}.tiny{font-size:.74rem}.small{font-size:.89rem}.eyebrow{text-transform:uppercase;letter-spacing:.25em;font-size:.66rem;color:var(--pink);font-weight:700}.accent{color:var(--pink)}.gold{color:var(--gold)}.italic{font-style:italic}.shell{width:min(1240px,calc(100% - 44px));margin:auto;position:relative;z-index:1}.topbar{height:94px;display:flex;justify-content:space-between;align-items:center;gap:16px}.brand{background:transparent;border:0;color:var(--ink);display:flex;align-items:center;gap:12px;font-size:1rem;font-weight:700;letter-spacing:.07em}.brandmark{border:1px solid var(--line);border-radius:50%;height:39px;width:39px;display:grid;place-items:center;color:var(--pink);font-family:Georgia,serif;font-size:20px}.nav{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}.nav button{background:transparent;border:1px solid transparent;color:var(--muted);border-radius:100px;padding:10px 15px;font-size:.85rem}.nav button.active,.nav button:hover{color:var(--ink);border-color:var(--line);background:rgba(255,255,255,.04)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:13px 22px;border-radius:100px;background:var(--pink);color:#2b1929;font-size:.88rem;font-weight:700;transition:transform .2s,filter .2s;border:1px solid transparent}.btn:hover{transform:translateY(-2px);filter:brightness(1.08)}.btn.secondary{background:rgba(255,255,255,.07);color:var(--ink);border-color:var(--line)}.btn.ghost{background:transparent;color:var(--muted);border-color:var(--line)}.btn.small{padding:9px 14px;font-size:.78rem}.btn.danger{background:#692d48;color:white}.btnrow{display:flex;gap:10px;flex-wrap:wrap}.hero{padding:85px 0 60px;min-height:530px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;position:relative}.hero p{max-width:680px;font-size:1rem;color:var(--muted);margin:20px auto 27px}.halo{position:absolute;width:460px;height:460px;max-width:90vw;top:5px;left:50%;transform:translateX(-50%);background:radial-gradient(circle,rgba(205,111,160,.16),rgba(156,95,153,.06) 45%,transparent 70%);pointer-events:none}.sparkle{position:relative;z-index:1;color:var(--pink);font-size:32px;animation:pulse 3s infinite}.heartline{font-family:'Playfair Display',serif;font-style:italic;color:var(--pink)}.cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.tile,.panel{border:1px solid var(--line);border-radius:var(--radius);background:linear-gradient(145deg,rgba(255,255,255,.075),rgba(255,255,255,.022));overflow:hidden}.tile{padding:28px;min-height:190px;position:relative;transition:transform .22s,border-color .22s;display:flex;flex-direction:column;justify-content:space-between}.tile:hover{transform:translateY(-5px);border-color:rgba(250,201,225,.42)}.tile .glyph{font-size:27px;color:var(--pink)}.tile h3{margin:13px 0 6px}.tile p{font-size:.84rem;color:var(--muted)}.tile .arrow{position:absolute;right:22px;bottom:22px;color:var(--pink)}.tile button{position:absolute;inset:0;background:transparent;color:transparent;width:100%;height:100%}.tile.wide{grid-column:span 2}.section{padding:34px 0 62px}.section-head{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:22px}.section-head p{color:var(--muted);margin-top:8px}.feature{display:grid;grid-template-columns:1fr 1fr;gap:24px;align-items:center;margin:30px 0}.panel{padding:27px}.panel.soft{background:rgba(255,255,255,.04)}.photo-placeholder{position:relative;overflow:hidden;min-height:280px;display:grid;place-items:center;background:linear-gradient(140deg,#53324d,#7c5078 38%,#bd8d91 75%,#f0c6b6);border-radius:18px;border:1px solid rgba(255,255,255,.1);color:#fff5f5}.photo-placeholder:before{content:'';position:absolute;inset:0;background:radial-gradient(circle at 55% 25%,rgba(255,230,211,.48),transparent 40%),linear-gradient(0deg,rgba(39,15,43,.46),transparent 55%)}.photo-placeholder.travelphoto{background:linear-gradient(155deg,#325e66,#39898e 43%,#d5c596 84%)}.photo-placeholder .inside{position:relative;text-align:center;padding:24px}.photo-placeholder .inside span{display:block;font-size:2.5rem;margin-bottom:12px}.photo-placeholder .inside small{display:block;font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;opacity:.86}.photo-placeholder .inside strong{display:block;font:italic 1.65rem 'Playfair Display',serif;margin:7px 0}.photo-placeholder img,.photo-placeholder video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.photo-placeholder .overlay-label{position:absolute;bottom:13px;left:13px;right:13px;font-size:.72rem;text-align:left;background:rgba(30,15,30,.55);padding:9px 12px;border-radius:12px;backdrop-filter:blur(8px)}.glass{backdrop-filter:blur(18px);background:rgba(46,27,54,.55);border:1px solid var(--line);border-radius:20px}.floating-photos{display:flex;justify-content:center;gap:10px;align-items:center;margin:28px 0 12px}.polaroid{width:clamp(105px,24vw,170px);padding:9px 9px 30px;background:#fbefe6;box-shadow:0 15px 38px rgba(0,0,0,.3);border-radius:4px;color:#463444;transform:rotate(-8deg);transition:transform .3s}.polaroid:nth-child(2){transform:rotate(4deg) translateY(-20px)}.polaroid:nth-child(3){transform:rotate(10deg)}.polaroid:hover{transform:rotate(0) translateY(-15px)}.polaroid .photo-placeholder{min-height:145px;border-radius:2px}.polaroid .photo-placeholder .inside strong{font-size:.9rem}.polaroid .photo-placeholder .inside span{font-size:1.4rem}.polaroid .photo-placeholder .inside small{display:none}.polaroid>small{display:block;text-align:center;margin-top:10px;font:italic .8rem Georgia,serif}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:18px 0}.stat{text-align:center;padding:21px 10px;border:1px solid var(--line);border-radius:16px;background:rgba(255,255,255,.035)}.stat strong{font-family:'Playfair Display',serif;font-size:1.8rem;display:block;color:var(--gold)}.stat span{display:block;font-size:.7rem;color:var(--muted);margin-top:7px}.divider{height:1px;background:var(--line);margin:23px 0}.footer{text-align:center;padding:50px 0;color:var(--muted);font-size:.75rem}.footer .heart{color:var(--pink)}.page-title{padding:68px 0 31px;text-align:center;max-width:760px;margin:auto}.page-title .eyebrow{margin-bottom:15px}.page-title p{color:var(--muted);margin-top:15px}.pill{display:inline-block;border:1px solid var(--line);background:rgba(255,255,255,.05);border-radius:100px;padding:7px 13px;color:var(--muted);font-size:.71rem}.pills{display:flex;flex-wrap:wrap;gap:7px}.item{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:18px 0;border-bottom:1px solid var(--line)}.item:last-child{border-bottom:0}.item strong{display:block;font-size:.95rem;margin-bottom:5px}.item p{font-size:.8rem;color:var(--muted)}.item .actions{display:flex;gap:7px;flex-shrink:0}.form{display:grid;gap:13px}.field{display:grid;gap:7px}.field label{color:var(--muted);font-size:.8rem}.field input,.field textarea,.field select{background:rgba(0,0,0,.2);color:var(--ink);border:1px solid var(--line);outline:0;padding:13px 14px;border-radius:12px;width:100%;min-height:45px}.field textarea{min-height:125px;resize:vertical}.field select option{background:#24182d}.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--pink)}.modal-backdrop{position:fixed;inset:0;background:rgba(9,5,15,.8);backdrop-filter:blur(12px);z-index:50;display:flex;align-items:center;justify-content:center;padding:18px}.modal{background:linear-gradient(145deg,#3a2940,#211827);border:1px solid rgba(249,208,231,.21);border-radius:24px;max-width:660px;width:100%;max-height:90vh;overflow:auto;padding:25px;box-shadow:0 30px 100px rgba(0,0,0,.5)}.modalheader{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:20px}.close{background:rgba(255,255,255,.08);color:white;width:34px;height:34px;border-radius:50%;font-size:22px}.toast{position:fixed;z-index:70;bottom:25px;left:50%;transform:translate(-50%,130px);background:#f7e3e9;color:#29192d;padding:12px 19px;border-radius:30px;box-shadow:0 12px 40px rgba(0,0,0,.25);font-size:.83rem;transition:transform .3s;max-width:calc(100vw - 32px);text-align:center}.toast.show{transform:translate(-50%,0)}.skyfield{height:440px;position:relative;overflow:hidden;background:radial-gradient(circle at 50% 38%,#3d3156 0,#211a3d 45%,#111326 85%);border-radius:22px;border:1px solid var(--line)}.skyfield:before{content:'';position:absolute;inset:0;background-image:radial-gradient(1px 1px at 20px 30px,#fff 95%,transparent),radial-gradient(1.5px 1.5px at 120px 80px,#ffe6d6 95%,transparent),radial-gradient(1px 1px at 75px 180px,#fff 95%,transparent),radial-gradient(2px 2px at 220px 190px,#fff 95%,transparent);background-size:265px 233px;opacity:.42}.starpoint{position:absolute;background:transparent;color:#ffe9ce;border:0;transform:translate(-50%,-50%);text-align:center;z-index:2;padding:20px}.starpoint .dot{display:block;margin:auto;width:9px;height:9px;border-radius:50%;background:#fff6e8;box-shadow:0 0 9px 3px #f8d5e3,0 0 33px 8px #a67da9;animation:twinkle 3s infinite}.starpoint:nth-child(even) .dot{animation-delay:1.1s}.starpoint span:last-child{display:block;font-size:.67rem;max-width:115px;margin-top:9px;color:#f7d7e5}.starline{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.vinyl{width:230px;height:230px;max-width:70vw;border-radius:50%;display:grid;place-items:center;position:relative;background:repeating-radial-gradient(circle at center,#15151b 0 5px,#24222b 6px 8px,#111116 9px 13px);box-shadow:0 22px 35px rgba(0,0,0,.4),0 0 0 6px rgba(255,255,255,.05)}.vinyl.playing{animation:spin 4s linear infinite}.vinyl:before{content:'';position:absolute;inset:5%;border-radius:50%;border:1px solid #403a47}.vinyl-label{height:91px;width:91px;background:radial-gradient(circle at center,#19151b 0 5px,#e5b1be 5px 6px,#963c63 7px,#ce759b 65%);border-radius:50%;display:grid;place-items:center;text-align:center;font:italic .8rem Georgia,serif;padding:12px;z-index:1}.vinyl-wrap{display:flex;justify-content:center;padding:25px}.recordgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.recordcard{padding:22px;text-align:center;border-radius:20px;border:1px solid var(--line);background:rgba(255,255,255,.05)}.recordcard .vinyl{width:145px;height:145px;max-width:100%;margin:10px auto 20px}.recordcard .vinyl-label{width:65px;height:65px;font-size:.65rem}.recordcard h3{font-size:1.18rem}.recordcard p{font-size:.8rem;color:var(--muted);margin:7px 0 16px}.stamp{width:115px;height:115px;border:3px double var(--gold);border-radius:50%;display:grid;place-items:center;text-align:center;transform:rotate(-13deg);color:var(--gold);text-transform:uppercase;letter-spacing:.08em;font-size:.67rem;padding:10px;box-shadow:inset 0 0 0 5px rgba(229,196,142,.15)}.stamp b{font-family:'Playfair Display',serif;font-size:1rem}.country{display:grid;grid-template-columns:140px 1fr;gap:20px;align-items:center}.challenge-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.quest{padding:20px;border:1px solid var(--line);background:rgba(255,255,255,.05);border-radius:19px;display:flex;flex-direction:column;gap:13px}.quest.completed{border-color:rgba(126,218,192,.5);background:rgba(89,182,167,.11)}.quest h3{font-family:'DM Sans',sans-serif;font-size:1rem;font-weight:700}.quest p{font-size:.81rem;color:var(--muted)}.quest-top,.quest-bottom{display:flex;align-items:center;justify-content:space-between;gap:8px}.quest-icon{font-size:1.8rem}.quest .pill{color:var(--gold)}.globe-stage{height:440px;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;background:radial-gradient(circle at 50% 50%,rgba(89,157,164,.12),transparent 67%)}.globe{position:relative;border-radius:50%;height:min(340px,78vw);width:min(340px,78vw);overflow:hidden;background:radial-gradient(circle at 29% 25%,#4b9a9b,#286078 51%,#122c49 79%,#092034);box-shadow:inset -40px -22px 45px rgba(2,19,39,.8),inset 14px 15px 30px rgba(192,254,241,.17),0 0 0 1px #95dfdd44,0 0 75px #4fbbb444;animation:glow 7s ease-in-out infinite}.globe svg{position:absolute;left:-5%;top:0;height:100%;width:160%;opacity:.7;animation:drift 35s linear infinite}.globe .meridians{position:absolute;inset:0;border-radius:50%;background:repeating-linear-gradient(90deg,transparent 0 30px,#c3f4e512 31px 32px,transparent 33px 60px);opacity:.2}.globe-caption{position:absolute;bottom:20px;color:var(--muted);font-size:.73rem}.globe-label{position:absolute;top:23px;left:23px;z-index:1}.journey-card{border:1px solid var(--line);background:linear-gradient(135deg,rgba(104,178,175,.13),rgba(243,207,153,.08));border-radius:22px;padding:25px;display:grid;grid-template-columns:1fr auto;gap:20px;align-items:center}.boarding{padding:24px;border:1px dashed rgba(245,217,174,.55);background:linear-gradient(110deg,#eadabe,#f8eddb);border-radius:17px;color:#394849;display:grid;gap:11px;max-width:480px;box-shadow:0 20px 60px #0004}.boarding .ticketbar{border-bottom:1px dashed #9f9580;padding-bottom:12px;display:flex;align-items:center;justify-content:space-between}.boarding .fromto{font:500 2rem 'Playfair Display',serif}.countdown{font-size:1.8rem;color:var(--gold);font-family:'Playfair Display',serif}.memory-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.memory-card{background:rgba(255,255,255,.045);border:1px solid var(--line);padding:10px 10px 16px;border-radius:15px}.memory-card .photo-placeholder{min-height:180px}.memory-card h3{font-size:1.04rem;margin:13px 5px 5px}.memory-card p{font-size:.77rem;color:var(--muted);margin:0 5px}.intro{position:fixed;z-index:40;inset:0;background:radial-gradient(circle at 50% 43%,#3d2847,#170e22 65%);display:flex;align-items:center;justify-content:center;text-align:center;overflow:auto;padding:20px}.intro-inner{max-width:790px;position:relative;z-index:2;animation:fadein .8s ease}.intro h1{margin:20px auto}.intro p{max-width:580px;margin:14px auto 27px;color:#e0c1d0;font-size:1.02rem}.intro .progress{display:flex;gap:8px;justify-content:center;margin:25px}.intro .progress span{width:28px;height:3px;background:#ad849f66;border-radius:3px}.intro .progress span.on{background:#f2b8d2}.intro .intro-message{font:italic clamp(1.5rem,3.6vw,2.5rem)/1.6 'Playfair Display',serif;color:#fff0ee;white-space:pre-wrap}.intro .intro-photos{display:flex;justify-content:center;gap:12px;margin:24px auto}.intro-photos .photo-placeholder{height:175px;width:175px;min-height:0}.intro .tiny{display:block;margin-top:14px}.orbit-symbol{font-size:85px;color:#edb7cf;text-shadow:0 0 40px #bb6b97;animation:pulse 3s ease-in-out infinite}.controls{display:flex;justify-content:center;gap:12px;align-items:center;margin-top:21px}.hidden{display:none!important}#stars{position:fixed;z-index:0;inset:0;width:100%;height:100%;pointer-events:none;opacity:.6}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:18px}.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.empty{text-align:center;padding:50px 25px;color:var(--muted);border:1px dashed var(--line);border-radius:20px}.empty strong{display:block;color:var(--ink);margin-bottom:8px}.setting-group{margin:18px 0}.setting-group>h3{margin-bottom:10px}.audio-notice{font-size:.74rem;color:var(--muted);padding:9px 0}.reveal{animation:fadeup .5s both}.line-clamp{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.scene-full{min-height:60vh;display:grid;place-items:center}@keyframes pulse{50%{transform:scale(1.08);opacity:.67}}@keyframes twinkle{50%{box-shadow:0 0 16px 5px #ffe6ee,0 0 55px 12px #a67da9;opacity:.65}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes drift{to{transform:translateX(-20%)}}@keyframes glow{50%{box-shadow:inset -40px -22px 45px rgba(2,19,39,.8),inset 14px 15px 30px rgba(192,254,241,.2),0 0 0 1px #95dfdd44,0 0 100px #4fbbb477}}@keyframes fadein{from{opacity:0}to{opacity:1}}@keyframes fadeup{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@media(max-width:800px){.shell{width:min(100% - 28px,1240px)}.topbar{height:auto;min-height:82px;align-items:flex-start;padding:19px 0}.nav{gap:2px}.nav button{padding:8px 10px;font-size:.73rem}.hero{min-height:440px;padding:70px 0 42px}.feature{grid-template-columns:1fr}.recordgrid,.memory-grid{grid-template-columns:repeat(2,1fr)}.grid3{grid-template-columns:repeat(2,1fr)}.section-head{align-items:flex-start;flex-direction:column}.globe-stage{height:370px}}@media(max-width:520px){.topbar{display:block}.brand{margin-bottom:12px}.nav{justify-content:flex-start}.nav button{padding:8px 9px}.hero h1{font-size:2.9rem}.hero p{font-size:.89rem}.cards,.challenge-list,.grid2,.grid3,.recordgrid,.memory-grid{grid-template-columns:1fr}.tile.wide{grid-column:span 1}.tile{min-height:165px;padding:21px}.panel{padding:19px}.country{grid-template-columns:1fr}.stamp{margin:auto}.journey-card{grid-template-columns:1fr}.stats{gap:7px}.stat{padding:15px 5px}.stat strong{font-size:1.4rem}.item{align-items:flex-start}.item .actions{flex-direction:column}.intro-photos .photo-placeholder{width:100px;height:125px}.intro .intro-message{font-size:1.45rem}.page-title{padding-top:40px}.modal{padding:20px}.floating-photos .polaroid{padding:6px 6px 22px}.polaroid .photo-placeholder{min-height:110px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}
