@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{color-scheme:dark;--cream:#fff2e4;--muted:#d7adb4;--red:#e84357;--line:#ffffff20}*{box-sizing:border-box}body{margin:0;background:#420d1b;color:var(--cream);font-family:'DM Sans',sans-serif;background-image:radial-gradient(ellipse at 70% 30%,#74203566,transparent 55%);min-height:100vh}button,a,input,textarea{ -webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid #ffb9bf;outline-offset:5px}header{height:114px;margin:0 6%;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);position:relative;z-index:2}.brand{font:italic 40px 'Playfair Display',serif;display:flex;align-items:center;gap:5px}.brand span{color:#f37989;font-size:28px}.brand small{font:9px 'DM Sans',sans-serif;letter-spacing:2px;max-width:100px;margin-left:18px;line-height:1.8}nav{display:flex;gap:34px;font-size:12px;color:var(--muted)}nav a{padding:12px 0;position:relative}nav a.active{color:var(--cream)}nav a.active:after{content:'♥';position:absolute;bottom:-7px;left:45%;font-size:9px;color:#fa7b8e}nav span{padding-left:9px}main{position:relative;z-index:1;max-width:1220px;margin:auto;padding:0 45px;min-height:calc(100vh - 195px)}.hero{display:grid;grid-template-columns:1.1fr 1fr;align-items:center;padding:62px 0 35px;min-height:470px}.eyebrow{font-size:10px;letter-spacing:3px;color:#f5b5bf;text-transform:uppercase;display:flex;align-items:center;gap:12px}.eyebrow:before{content:'';width:28px;height:1px;background:#e98192}h1{font:500 clamp(58px,6.7vw,93px)/1.08 'Playfair Display',Georgia,serif;letter-spacing:-4px;margin:22px 0}h1 em{font-weight:400;color:#fa9dab}p{color:var(--muted);line-height:1.9;font-size:14px}.hero p{max-width:370px}.signature{font:italic 20px 'Playfair Display',serif;margin-top:28px;color:#f6c8cc}.signature span{font:10px 'DM Sans';letter-spacing:1.5px;padding-left:15px}.mascot-scene{position:relative;display:flex;align-items:center;justify-content:center;height:350px}.halo{position:absolute;width:300px;height:300px;border:1px solid #e794a526;border-radius:50%;box-shadow:0 0 0 35px #e794a508,0 0 0 70px #e794a505}.mascot{width:280px;height:300px;overflow:visible;filter:drop-shadow(0 20px 22px #24030b66);animation:bob 4s ease-in-out infinite}.mascot .blink{transform-origin:140px 126px;animation:blink 6s infinite}.spark{position:absolute;color:#f39aab;font:27px Georgia;animation:bob 3s ease-in-out infinite}.spark.one{top:30px;left:22%;transform:rotate(-20deg)}.spark.two{right:13%;top:110px}.spark.three{bottom:30px;left:15%;font-size:16px}.mascot-label{position:absolute;bottom:0;right:10%;font:italic 15px 'Playfair Display';transform:rotate(-8deg);color:#e4abb6}.mascot-label span{font:24px Georgia;display:block}.intro-line{display:flex;align-items:center;gap:20px;font-size:9px;letter-spacing:2.5px;color:#d4a1ad;text-align:center;margin:20px 0 30px}.intro-line:before,.intro-line:after{content:'';height:1px;background:var(--line);flex:1}.destinations{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;padding-bottom:40px}.destination{border:1px solid var(--line);border-radius:15px;display:flex;align-items:center;gap:20px;padding:24px 18px;background:linear-gradient(130deg,#ffffff07,transparent);transition:transform .25s,background .25s}.destination:hover{transform:translateY(-5px);background:#ffffff0c}.heart-button{width:65px;height:65px;flex-shrink:0;display:grid;place-items:center;position:relative;color:#fff2e4}.heart-button svg{position:absolute;inset:0;width:100%;height:100%;filter:drop-shadow(0 5px 9px #20000844)}.heart-button b{z-index:1;font:italic 20px 'Playfair Display';padding-bottom:6px}.destination h2{font:500 18px 'Playfair Display';margin:0 0 7px}.destination p{font-size:10px;line-height:1.6;margin:0}.destination .arrow{margin-left:auto;color:#d898a4}footer{margin:0 6%;border-top:1px solid var(--line);min-height:81px;display:flex;align-items:center;justify-content:space-between;gap:20px;font-size:8px;letter-spacing:1.5px;color:#b78390}footer a{font:italic 17px 'Playfair Display';color:#e9bdc4}footer b{color:#e77d90;font-size:12px;margin:0 8px}#rain{position:fixed;inset:0;pointer-events:none;overflow:hidden;z-index:0}.fall{position:absolute;top:-40px;color:white;opacity:0;animation:fall linear infinite;font-size:10px}@keyframes fall{0%{transform:translateY(-30px) rotate(0);opacity:0}15%,80%{opacity:.15}100%{transform:translateY(110vh) rotate(80deg);opacity:0}}@keyframes bob{50%{translate:0 -9px}}@keyframes blink{0%,44%,48%,100%{scale:1 1}46%{scale:1 .08}}.page-head{text-align:center;padding:55px 0 25px}.page-head .eyebrow{justify-content:center}.page-head h1{font-size:55px;letter-spacing:-2px}.page-head p{margin:0 auto;max-width:500px}.mini-mascot{width:100px;height:100px;float:right}.mini-mascot .mascot{width:100px;height:110px}.panel{background:#ffffff06;border:1px solid var(--line);border-radius:18px;padding:28px}.notes-top{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:20px}.notes-top span{font-size:12px;color:var(--muted)}.btn{background:#da3b52;color:#fff0e6;border:1px solid #f9798a55;border-radius:30px;padding:12px 23px;font-size:12px}.btn:hover{background:#ed5065}.btn.subtle{background:transparent;border-color:var(--line)}.notes-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:35px}.note{min-height:170px;border:1px solid #efb0bc30;padding:25px;border-radius:12px;background:#5a1828;position:relative}.note-number{font:italic 27px 'Playfair Display';color:#ee8e9f}.note p{white-space:pre-wrap;overflow-wrap:anywhere;color:#ffe8e4}.note button{border:0;background:none;color:#d6a0ad;font-size:11px;margin-right:12px;padding:5px 0}.empty{text-align:center;padding:30px;grid-column:1/-1}.empty h2{font:30px 'Playfair Display'}.empty span{font-size:40px;color:#ed8fa0}.storage-note{font-size:11px;text-align:center;margin-bottom:35px}.countdown{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin:25px 0}.time-unit{text-align:center;padding:28px 10px;border:1px solid var(--line);border-radius:14px;background:#ffffff05}.time-unit strong{display:block;font:60px 'Playfair Display';font-variant-numeric:tabular-nums}.time-unit span{font-size:10px;text-transform:uppercase;letter-spacing:2px;color:#dba7b1}.time-bottom{text-align:center;margin:25px 0 40px}.time-bottom .mascot{width:145px;height:155px}.time-bottom p{font:italic 23px 'Playfair Display'}.date-settings{font-size:12px;color:var(--muted);margin-top:25px}.date-settings input{margin:12px;padding:9px;background:#370b17;border:1px solid var(--line);border-radius:8px;color:var(--cream)}.game-wrap{max-width:900px;margin:0 auto 35px;position:relative}.game-bar{display:flex;align-items:center;gap:25px;margin-bottom:15px;font-size:12px;color:var(--muted)}.game-bar strong{color:var(--cream);font-size:20px;margin-left:7px}.game-bar .btn{margin-left:auto}#game-board{height:380px;position:relative;overflow:hidden;border:1px solid #ed9bad3b;border-radius:18px;background:radial-gradient(ellipse at 50% 90%,#9b334b55,transparent 65%),#320a16;touch-action:none;outline-offset:5px}#game-board:after{content:'';position:absolute;bottom:0;left:0;right:0;height:20px;background:#6f263944;border-top:1px solid #dc789933}.catcher{position:absolute;bottom:7px;width:95px;height:110px;transform:translateX(-50%)}.catcher .mascot{width:95px;height:110px;animation:none}.catcher.caught .mascot{filter:drop-shadow(0 0 15px #ff97a9);scale:1.12;rotate:-5deg}.drop{position:absolute;color:#ff839a;font-size:26px;filter:drop-shadow(0 0 7px #fa799855)}.overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;background:#300a16c9;z-index:3}.overlay h2{font:32px 'Playfair Display';margin:0}.overlay p{font-size:12px}.game-help{text-align:center;font-size:11px}.touch-controls{display:flex;justify-content:center;gap:20px;margin-top:10px}.touch-controls button{width:70px;padding:8px;touch-action:none}.dialog{background:#501527;color:var(--cream);border:1px solid #b35c70;border-radius:18px;padding:30px;width:min(460px,90vw)}.dialog::backdrop{background:#150009b8;backdrop-filter:blur(5px)}.dialog h2{font:28px 'Playfair Display'}.dialog textarea{width:100%;height:150px;resize:vertical;background:#340c18;border:1px solid var(--line);border-radius:8px;padding:14px;color:white;font:14px/1.7 'DM Sans';margin:12px 0}.dialog label{font-size:12px}.dialog .actions{display:flex;justify-content:flex-end;gap:12px}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:#ffe6df;color:#561729;border-radius:25px;padding:12px 22px;z-index:10;font-size:12px;display:none} @media(max-width:760px){header{height:auto;min-height:100px;flex-wrap:wrap;padding:20px 0;gap:20px}.brand{font-size:30px}.brand small{font-size:8px}nav{gap:23px;font-size:11px}main{padding:0 23px}.hero{padding-top:40px;grid-template-columns:1fr;text-align:center}.hero .eyebrow{justify-content:center}.hero h1{font-size:72px}.hero p{margin:auto}.hero .signature{margin-top:20px}.mascot-scene{height:310px}.mascot{width:235px;height:260px}.halo{width:225px;height:225px}.destinations{grid-template-columns:1fr;gap:12px}.destination{padding:16px 22px}.destination h2{font-size:20px}.destination p{font-size:12px}footer{justify-content:center;text-align:center;flex-wrap:wrap;padding:23px 0}footer span:last-child{display:none}.page-head h1{font-size:43px}.notes-grid{grid-template-columns:1fr}.countdown{gap:7px}.time-unit{padding:22px 4px}.time-unit strong{font-size:36px}.time-unit span{font-size:8px}.game-bar{gap:12px}.game-bar strong{font-size:16px}.game-bar .btn{padding:10px 15px}.notes-top{flex-wrap:wrap}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}.fall{display:none}}
/* S1m0o0 and our photo album */
.mascot-3d{object-fit:contain;filter:drop-shadow(0 15px 14px #18030b55);transform-origin:center bottom}.hero-keepsake{display:flex;flex-direction:column;align-items:center;justify-content:center;rotate:-8deg;color:#f2b0bd;gap:5px}.hero-keepsake span{font:italic 25px 'Playfair Display';letter-spacing:2px}.hero-keepsake strong{font:150px/1.1 'Playfair Display';font-weight:400;color:#d9688070}.hero-keepsake em{font:italic 18px 'Playfair Display'}.home-companion{position:fixed;right:14px;bottom:8px;z-index:5;width:clamp(125px,15vw,205px);pointer-events:none;text-align:center}.home-companion .mascot{width:100%;height:auto;max-height:290px;animation:companion-sway 5s ease-in-out infinite;filter:drop-shadow(0 0 18px #ffacb22b) drop-shadow(0 10px 12px #17020988)}.home-companion span{display:block;font:italic 12px 'Playfair Display';color:#f4c2cd;margin-top:-8px;text-shadow:0 2px 5px #200}.home-page main{padding-right:150px}.home-page .destinations{grid-template-columns:repeat(2,1fr)}.catcher .mascot{object-fit:contain;transition:filter .15s,scale .15s;filter:drop-shadow(0 0 4px #edb1be55)}.catcher.caught .mascot{translate:0 -10px;rotate:0deg;scale:1.15}.album-tools{display:flex;justify-content:space-between;align-items:center;gap:20px;margin:12px 0 24px}.album-tools span{color:var(--muted);font-size:12px}.album-status{font-size:12px;margin:0 0 20px}.photo-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:25px;margin-bottom:40px}.photo-card{border:0;padding:12px 12px 22px;background:#faeee3;color:#6c2c3d;box-shadow:0 12px 24px #18020a44;rotate:-1.5deg;transition:rotate .2s,translate .2s;text-align:center;min-width:0}.photo-card:nth-child(even){rotate:1.5deg}.photo-card:hover{rotate:0deg;translate:0 -6px}.photo-card img{width:100%;aspect-ratio:1;object-fit:cover;display:block;background:#e2cfc5}.photo-card span{display:block;font:italic 18px/1.5 'Playfair Display';margin-top:17px;overflow-wrap:anywhere}.album-empty{grid-column:1/-1;text-align:center;border:1px dashed #f5b4c447;border-radius:20px;padding:45px 20px;background:#ffffff04}.album-empty h2{font:32px 'Playfair Display';margin:20px 0 10px}.album-empty p{margin:0 0 25px}.empty-frames{height:140px;display:flex;justify-content:center;align-items:center;padding-top:10px}.empty-frames span{width:100px;height:115px;display:grid;place-items:center;border:8px solid #f5dfd2;border-bottom-width:22px;background:#a65b6e;rotate:-13deg;font:italic 42px 'Playfair Display';box-shadow:0 6px 15px #18020a55}.empty-frames span+span{rotate:12deg;margin-left:-15px;background:#69243b}.photo-viewer{width:min(740px,94vw);max-height:92vh;overflow:auto;padding:25px;background:#491424;color:var(--cream);border:1px solid #c16d82;border-radius:18px}.photo-viewer::backdrop{background:#12030de8;backdrop-filter:blur(8px)}.viewer-close{display:block;margin:0 0 15px auto;padding:8px 14px}.photo-viewer>img{display:block;width:100%;height:min(52vh,550px);object-fit:contain;background:#2c0b18;border-radius:8px}.photo-viewer form{margin-top:20px}.photo-viewer label{display:block;font-size:12px;color:var(--muted);margin-bottom:10px}.photo-viewer input{width:100%;background:#300c1a;color:var(--cream);font:14px 'DM Sans';padding:13px;border:1px solid var(--line);border-radius:8px}.photo-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:15px}.photo-actions a{display:inline-flex;align-items:center}.photo-viewer p{font-size:12px}button:disabled{opacity:.55;cursor:wait}@keyframes companion-sway{0%,100%{transform:rotate(-2deg) translateY(0)}50%{transform:rotate(2deg) translateY(-7px)}}@media(max-width:760px){nav{gap:18px;flex-wrap:wrap}.home-page main{padding-right:23px}.home-page .hero{min-height:330px;padding-bottom:20px}.hero-keepsake{display:none}.home-page .destinations{grid-template-columns:1fr;margin-right:70px}.home-companion{width:110px;right:0;bottom:8px}.home-companion span{font-size:10px}.photo-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.photo-card{padding:8px 8px 15px}.photo-card span{font-size:15px}.album-tools{gap:10px}.album-tools .btn{padding:12px 18px}}@media(max-width:420px){.photo-grid{grid-template-columns:1fr}.home-page .destination{padding:16px 12px;gap:12px}.home-page .destination h2{font-size:18px}.home-page .heart-button{width:50px;height:50px}}@media(prefers-reduced-motion:reduce){.home-companion .mascot{animation:none}}
/* Larger, torso-only home companion */
.home-page main{max-width:none;width:calc(100% - 350px);margin-left:0;padding:0 35px 35px 6vw}.home-page .hero{grid-template-columns:1fr;min-height:460px}.home-page .hero-keepsake{display:none}.home-page .destinations{grid-template-columns:repeat(2,minmax(0,1fr));margin-right:0}.home-page .destination{gap:12px}.home-page .destination h2{font-size:18px}.home-companion.companion-bust{width:clamp(310px,31vw,450px);right:-12px;bottom:0;z-index:5;pointer-events:none}.companion-stage{display:block;width:100%;aspect-ratio:1;border:0;background:transparent;padding:0;position:relative;cursor:pointer;pointer-events:auto;transform:rotate(var(--lean,0deg));transition:transform 1s cubic-bezier(.22,1,.36,1);transform-origin:50% 95%;isolation:isolate}.companion-breathe{position:absolute;inset:0;display:block!important;margin:0!important;animation:soft-breath 6.5s ease-in-out infinite;transform-origin:50% 100%}.companion-pose{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;opacity:0;transition:opacity .95s ease-in-out;filter:drop-shadow(0 0 18px #ffb5c021);user-select:none;pointer-events:none}.companion-pose.is-active{opacity:1}.companion-bubble{display:inline-block;background:#ffe8df;color:#6b2438;font:italic 15px 'Playfair Display';border-radius:18px 18px 3px 18px;padding:12px 18px;box-shadow:0 8px 30px #20000c33;margin:0 25px 6px 0;animation:bubble-float 6.5s ease-in-out infinite}.companion-controls{display:flex;align-items:center;justify-content:center;gap:12px;padding:4px 0 9px;background:#420d1b}.companion-controls span{font:10px 'DM Sans';letter-spacing:1px;margin:0;color:#e7adb9}.companion-pause{pointer-events:auto;border:1px solid #ffffff30;color:#f5c6cd;background:#501629;border-radius:50%;width:30px;height:30px;cursor:pointer}.companion-particles{position:absolute!important;inset:0;display:block!important;pointer-events:none;margin:0!important}.companion-particles i{position:absolute;left:41%;top:60%;font:24px Georgia;color:#ffa7bb;opacity:0;animation:kiss-heart 2.4s ease-out forwards;filter:drop-shadow(0 0 8px #ff6b9966)}.companion-bust.is-paused *{animation-play-state:paused!important}.companion-stage:focus-visible{outline-offset:-8px;border-radius:25px}@keyframes soft-breath{0%,100%{transform:translateY(0) rotate(-.6deg) scale(1)}50%{transform:translateY(-6px) rotate(.7deg) scale(1.012)}}@keyframes bubble-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-3px)}}@keyframes kiss-heart{0%{opacity:0;transform:translate(0,0) scale(.5)}20%{opacity:1}100%{opacity:0;transform:translate(var(--drift),-170px) scale(1.3)}}@media(min-width:1450px){.home-page main{width:calc(100% - 450px)}.home-page .hero{grid-template-columns:1fr .7fr}.home-page .hero-keepsake{display:flex}}@media(max-width:1000px) and (min-width:761px){.home-page main{width:calc(100% - 280px);padding-right:15px}.home-companion.companion-bust{width:290px}.home-page .destinations{grid-template-columns:1fr}.home-page h1{font-size:64px}}@media(max-width:760px){.home-page main{width:100%;padding:0 23px 310px;margin:0;position:relative}.home-page .hero{min-height:330px}.home-page .destinations{grid-template-columns:1fr;margin-right:0;padding-bottom:20px}.home-companion.companion-bust{position:absolute;width:275px;right:0;bottom:0}.companion-bubble{font-size:12px;padding:9px 13px;margin-bottom:0}.companion-controls{padding-bottom:0}.home-page footer{position:relative}}@media(prefers-reduced-motion:reduce){.companion-breathe,.companion-bubble,.companion-particles i{animation:none!important}.companion-pose,.companion-stage{transition:none!important}.companion-particles{display:none!important}}
/* One continuously animated character; no pose swapping or crossfades. */
.continuous-companion .companion-stage{transform:none;transition:none}.companion-canvas,.companion-fallback{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;pointer-events:none}.companion-canvas{visibility:hidden}.canvas-ready .companion-canvas{visibility:visible}.canvas-ready .companion-fallback{visibility:hidden}.continuous-companion .companion-fallback{animation:soft-breath 6s ease-in-out infinite}.continuous-companion .companion-particles i{top:72%}
/* Each keeper has a distinct, continuous gesture. */
.save-strip{max-width:1130px;margin:14px auto 0;padding:0 24px;display:flex;justify-content:space-between;gap:15px}.save-strip button{background:none;border:0;color:#d7adb4;font:10px 'DM Sans';padding:6px;cursor:pointer}.mascot.pose-note{animation:letter-sway 5s ease-in-out infinite}.mascot.pose-love{animation:heart-hug 4.5s ease-in-out infinite}.catcher .mascot.pose-catch{animation:catch-ready 2s ease-in-out infinite;transition:rotate .18s,filter .18s}.catcher.is-moving .mascot{rotate:calc(var(--direction)*9deg);animation:catch-step .32s ease-in-out infinite}.catcher.caught .mascot{animation:catch-cheer .45s ease-out;filter:drop-shadow(0 0 18px #ff97a9)}.album-mascot{text-align:center;height:130px}.album-mascot .mascot{width:125px;height:130px}.mascot:hover{filter:drop-shadow(0 0 20px #ffb2c166)}.motion-paused *{animation-play-state:paused!important}.motion-paused .companion-fallback{animation-play-state:paused!important}@keyframes letter-sway{0%,100%{transform:rotate(-3deg) translateY(0)}35%{transform:rotate(3deg) translateY(-8px)}65%{transform:rotate(-1deg) translateY(-4px) scale(1.025)}}@keyframes heart-hug{0%,100%{transform:rotate(-2deg) scale(1)}45%{transform:rotate(2deg) translateY(-7px) scale(1.045)}65%{transform:rotate(0) scale(1.02)}}@keyframes catch-ready{0%,100%{transform:rotate(-2deg) scaleY(1)}50%{transform:rotate(2deg) scaleY(1.035) translateY(-3px)}}@keyframes catch-step{0%,100%{transform:translateY(0) rotate(-3deg)}50%{transform:translateY(-6px) rotate(3deg)}}@keyframes catch-cheer{0%,100%{transform:translateY(0) scale(1)}40%{transform:translateY(-18px) scale(1.12) rotate(-7deg)}70%{transform:translateY(-8px) rotate(6deg)}}@media(prefers-reduced-motion:reduce){.mascot{animation:none!important}.catcher .mascot{transition:none;rotate:0deg!important}}
.backup-actions{display:flex;gap:10px;flex-wrap:wrap}.save-strip{flex-wrap:wrap}#backup-status{font-size:12px}
/* A velvet-and-rose keepsake, throughout. */
:root{--cream:#fff4e9;--muted:#d5b5bf;--line:#e9b9c525;--red:#e98198}body{background-color:#351321;background-image:radial-gradient(ellipse at 95% 5%,#9b455638,transparent 48%),radial-gradient(ellipse at 0% 80%,#702b4733,transparent 55%);background-attachment:fixed}header{height:100px;max-width:1440px}nav{gap:12px}nav a{padding:11px 15px;border-radius:24px;transition:background .2s,color .2s}nav a:hover,nav a.active{background:#ffffff0a;color:#fff0e7}nav a.active:after{bottom:-8px}h1{letter-spacing:-3px}h1 em{color:#f0adba}.hero h1{max-width:700px}.hero p{font-size:15px;line-height:1.95}.signature{color:#ebbdc7}.home-page .hero{min-height:420px}.home-page main{padding-top:10px}.intro-line{margin:18px 0 28px;font-size:9px;letter-spacing:2px}.destination{min-height:118px;padding:23px!important;border-radius:20px;background:linear-gradient(135deg,#ffffff08,#ffffff02);border-color:#dfb5c32b;box-shadow:0 8px 30px #13071116}.destination:hover{border-color:#edafc074;box-shadow:0 14px 35px #13071130}.destination h2{font-size:20px!important}.destination p{font-size:12px;line-height:1.7}.heart-button svg{opacity:.75}.destination .arrow{width:29px;height:29px;display:grid;place-items:center;border:1px solid var(--line);border-radius:50%;flex-shrink:0}.panel,.time-unit,.note{background:linear-gradient(145deg,#6c31433b,#3e1d2d6b);border:1px solid #e2b2c32c;box-shadow:0 15px 40px #17091024;border-radius:20px}.note{padding:30px;min-height:200px}.note-number{color:#e5a3b5}.note p{font-size:15px}.page-head{padding:65px 0 38px}.page-head h1{font-size:clamp(39px,5vw,64px);line-height:1.18;margin:22px 0}.page-head p{font-size:14px}.btn{background:#edb4c1;border:1px solid #f6ced8;color:#3f1929;font-weight:600;padding:13px 24px;transition:background .2s,transform .2s}.btn:hover{background:#ffd4dc;transform:translateY(-2px)}.btn.subtle{color:var(--cream);border-color:#e6afbf3d}.btn.subtle:hover{background:#ffffff0b}.countdown{gap:20px}.time-unit{padding:38px 12px}.time-unit strong{font-size:clamp(40px,6vw,78px);color:#f5ccd1}.time-unit span{display:block;margin-top:12px;letter-spacing:2.5px}.time-bottom{margin-top:36px}.photo-card{border-radius:3px;padding:14px 14px 25px;box-shadow:0 15px 35px #10051155}.photo-grid{gap:30px}.album-empty{padding:50px 25px;border-radius:24px;background:#ffffff03}.dialog,.photo-viewer{background:#402031;border-color:#c68b9e66;border-radius:22px}#game-board{border-radius:25px;background:radial-gradient(ellipse at 50% 100%,#a2546550,transparent 70%),#29121f;box-shadow:inset 0 0 70px #18081366}.overlay{background:#2c1423c9}.companion-controls{background:transparent}.companion-bubble{background:#f5d8db;color:#542638}.save-strip{max-width:none;margin:15px 6% 0;padding:0}.save-strip button{color:#c8a6b2}.save-strip button:hover{color:#fff0e7}footer{min-height:95px;line-height:1.7}.gate-page{min-height:100svh;background:radial-gradient(ellipse at 50% 36%,#7940534d,transparent 62%),#2d1420}.gate-layout{width:100%;max-width:none;min-height:100svh;padding:30px 20px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:27px}.gate-brand{font:italic 30px 'Playfair Display',Georgia,serif}.gate-brand span{color:#eca9bb;margin-left:6px}.gate-card{width:min(100%,530px);text-align:center;padding:38px 54px 30px;background:linear-gradient(135deg,#80506120,#ffffff03);border:1px solid #e7bbcb30;border-radius:180px 180px 28px 28px;box-shadow:0 30px 100px #10040b40,inset 0 1px #ffffff0b}.gate-seal{width:65px;height:65px;display:grid;place-items:center;border:1px solid #e0abb855;border-radius:50%;margin:0 auto 26px;font:38px Georgia;color:#f0b5c4;box-shadow:0 0 0 8px #e0abb807}.gate-card .eyebrow{justify-content:center;font-size:8px;letter-spacing:2px;line-height:1.6}.gate-card .eyebrow:before{display:none}.gate-card h1{font-size:clamp(39px,5vw,56px);line-height:1.15;letter-spacing:-2px;margin:20px 0}.gate-card>p{font-size:13px;line-height:1.9;margin:0 0 25px}.gate-card form{text-align:left}.gate-card label{font-size:9px;letter-spacing:2px;color:#e7bec9;display:block;margin-bottom:10px}.password-wrap{display:flex;border:1px solid #d7a6b640;border-radius:12px;background:#200d1755;overflow:hidden}.password-wrap:focus-within{outline:2px solid #eeb6c6;outline-offset:3px}.password-wrap input{width:100%;min-width:0;border:0;outline:none;color:#fff2e8;background:transparent;font:14px 'DM Sans',sans-serif;padding:17px}.password-wrap input::placeholder{color:#b998a5}.password-wrap button{background:none;border:0;color:#e8c0cc;font-size:11px;padding:0 17px}.gate-submit{width:100%;border-radius:12px;display:flex;justify-content:space-between;align-items:center;min-height:51px}.gate-card #gate-error{min-height:20px;font-size:12px;color:#ffbac9;line-height:1.5;margin:8px 0}.gate-foot{border-top:1px solid var(--line);margin-top:27px;padding-top:22px;font-size:8px;letter-spacing:2px;color:#cca7b5}.gate-foot span{margin-left:12px;font-size:16px;color:#f0b5c4}.gate-bottom{font-size:8px;letter-spacing:2.5px;color:#b893a2;text-align:center}@media(max-width:760px){header{height:auto;margin:0 22px;justify-content:center;gap:16px;padding:22px 0}.brand small{max-width:none}nav{justify-content:center;gap:3px;width:100%}nav a{font-size:11px;padding:9px 10px}.save-strip{margin:14px 22px 0}.home-page .hero{min-height:350px;padding-top:35px}.hero h1{font-size:clamp(52px,12vw,72px);letter-spacing:-2px}.home-page .destinations{gap:14px}.destination{padding:20px!important}.destination h2{font-size:19px!important}.page-head{padding:40px 0 28px}.countdown{gap:8px}.time-unit{padding:25px 5px;border-radius:15px}.time-unit span{font-size:8px;letter-spacing:1px}.photo-grid{gap:18px}.gate-card{padding:35px 28px 27px}.gate-layout{padding:24px 20px;gap:23px}.gate-card h1{font-size:44px}.gate-card .eyebrow{font-size:7px;letter-spacing:1.6px}footer{margin:0 22px}.game-bar{flex-wrap:wrap}}
