/* Couple Heart-inspired visual direction. Edit this file for this edition's theme. */
:root{--paper:#fff;--ink:#263c3b;--accent:#10afa5;--sage:#648582;--line:#dfebe8}
body{background:#fff;font-family:Arial,sans-serif;color:var(--ink)}
h1,h2,h3{font-family:Georgia,serif}
.top-strip{background:#0faaa1;color:white;padding:11px 5%;display:flex;justify-content:space-between;font-size:10px;letter-spacing:2px}
header{max-width:none;padding:23px max(5%,calc((100vw - 1200px)/2));border:0;gap:25px;background:#fff}
.brand{color:#07978d;font-family:'Brush Script MT',Georgia,serif;font-size:34px;white-space:nowrap}
.brand small{display:block;font:9px Arial;letter-spacing:2px;color:#728581;margin:6px 0 0 30px}
nav{gap:32px}nav a{font-size:10px;font-weight:600;letter-spacing:1.5px;text-transform:uppercase}
nav .nav-gift{border:1px solid var(--accent);padding:12px 17px;color:#078c83;background:white}
.primary{border-radius:0;background:var(--accent);box-shadow:none;font-size:12px;letter-spacing:.4px;transition:background .2s,transform .2s}
.primary:hover{background:#087f77;transform:translateY(-2px)}
.quiet{border-radius:0}.eyebrow{color:#109e95;font-size:10px;letter-spacing:2.6px}
.wedding-hero{min-height:660px;position:relative;isolation:isolate;overflow:hidden;background:#163c39;color:#fff;display:flex;align-items:center}
.hero-wash{position:absolute;inset:-30px;background:linear-gradient(110deg,#153b38,#3c6451);z-index:-4}
#cover-image{position:absolute;right:0;top:0;width:50%;height:100%;object-fit:cover;object-position:50% 44%;z-index:-3;transition:opacity .3s}
.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,#103936 0%,#123c38f0 35%,#193f3866 65%,#183f3020);z-index:-2}
.cover-copy{width:min(1200px,90%);margin:auto;padding:75px 0 105px}
.cover-copy .eyebrow{color:#a4e3d8}.script-line{font:italic 26px Georgia;color:#d3e4cd;margin:30px 0 12px}
.cover-copy h1{font-size:clamp(50px,5.6vw,82px);letter-spacing:-2.5px;line-height:1.09;margin:12px 0 25px;max-width:750px}
.cover-copy h1 em{color:#b5e1d6;font-weight:400}.cover-copy .intro{color:#e0eae5;max-width:440px;font-size:14px;line-height:1.9;margin:0 0 30px}
.cover-actions{display:flex;gap:12px;align-items:center}.outline-button{border:1px solid #b5cec6;padding:16px 23px;color:white;text-decoration:none;font-size:12px}
.cover-date{font-size:10px;letter-spacing:3px;color:#c4d5c7;margin:35px 0 0}
.slider-bottom{position:absolute;bottom:0;left:5%;right:5%;display:flex;align-items:center;justify-content:space-between;border-top:1px solid #cbdacd35;min-height:63px;font-size:11px;letter-spacing:1px;gap:20px}
.slide-controls{display:flex;align-items:center;gap:12px}.slide-controls button{background:transparent;color:#fff;padding:8px}
.slide-controls .slide-dot{padding:0;width:6px;height:6px;border:1px solid white;border-radius:50%;opacity:.6}.slide-dot.active{background:white!important;opacity:1!important}
.slider-bottom .tiny{font-size:8px;letter-spacing:2px}
.welcome{max-width:1120px;margin:85px auto 45px;padding:0 25px;display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center}
.welcome h2{font-size:43px;line-height:1.2;margin:20px 0}.welcome p{font-size:14px;color:#6a7d77;line-height:1.9}.welcome .eyebrow{font-size:10px;color:#109e95}.ornament{color:var(--accent);letter-spacing:4px}.welcome-signature{font:italic 22px Georgia!important;color:#3b6f61!important}
.experience-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;max-width:1120px;margin:0 auto 80px;padding:0 25px}
.experience-card{padding:0;text-align:left;background:#fff;border:1px solid var(--line);color:var(--ink);overflow:hidden}
.experience-card>img{width:100%;height:260px;object-fit:cover;object-position:center 42%;display:block;transition:transform .7s}
.experience-card:hover>img{transform:scale(1.035)}.card-copy{display:block;padding:25px}.card-copy small{font-size:9px;letter-spacing:2px;color:var(--accent)}.card-copy strong{display:block;font:25px Georgia;margin:14px 0}.card-copy>span{display:block;font-size:11px;line-height:1.8;color:#788780}.card-copy b{float:right;color:var(--accent)}
.birthday-band{padding:45px max(5%,calc((100vw - 1100px)/2));background:#eef8f4;display:flex;gap:35px;align-items:center;justify-content:space-between}.birthday-band>span{font:65px Georgia;color:#21a99b}.birthday-band h2{font-size:33px;margin:10px 0}
.panel{background:white;border:1px solid var(--line);border-top:4px solid var(--accent);border-radius:0;box-shadow:0 20px 65px #193c3310;margin:60px auto}
.quiz-mascot{border-radius:50%;height:115px;width:115px;object-fit:cover;object-position:50% 40%;border:5px solid #edf6f3}
.quiz-choice{background:#f8fcfa;border-radius:0}.quiz-choice b{background:#e3f1ed;color:#138a80}.quiz-choice:hover{background:#e9f6f1}
.story{max-width:1200px;padding-top:65px}.story-heading:after{content:'──── ♡ ────';color:var(--accent);letter-spacing:4px}
.story-heading h2{font-size:48px}.story-heading p{font-size:14px;color:#7a8880}.gallery-tip{margin-bottom:35px}
.timeline{gap:25px}.polaroid{transform:none;background:white;padding:0 0 20px;box-shadow:none;border-bottom:2px solid #b1dbcc}
.polaroid:nth-child(even){transform:translateY(28px)}.polaroid:hover{transform:translateY(-6px)}.polaroid:nth-child(even):hover{transform:translateY(22px)}
.polaroid>p,.polaroid>h3{margin-left:15px;margin-right:15px}.polaroid>h3{font-size:24px}.photo{background:#eef5ee}.photo img{object-fit:cover}
.game{padding:55px 35px;background:#f4f9f6;border:1px solid #e5eee7;max-width:780px;margin-top:100px}
.card{border-radius:0;background:linear-gradient(135deg,#1eaaa0,#087b75);box-shadow:inset 0 0 0 7px #ffffff12}
.wish-game{padding:65px 25px 25px}.wish-field{border-radius:0;background:radial-gradient(ellipse at bottom,#d4e7c1,transparent 70%),linear-gradient(#d9f1ec,#f7fbf4)}
.cinema{border-radius:0;background:#163f3a}.love-letter{background:#f8fcfa;border:1px solid #dcebe3;box-shadow:none}.love-letter h2{font-size:42px}
footer{background:#173b36;color:#c4d8cb;padding:50px 20px;font-size:12px;line-height:2}
.footer-brand{font:italic 32px Georgia;display:block;color:#fff;margin-bottom:8px}
@media(min-width:1500px){#cover-image{object-fit:contain;right:4%;width:45%}}
@media(max-width:800px){header{padding:20px 5%;flex-wrap:wrap;justify-content:center}nav{gap:20px}.top-strip{font-size:8px;letter-spacing:1px}.wedding-hero{min-height:660px}#cover-image{width:100%;opacity:.65;object-position:50% 45%}.hero-shade{background:linear-gradient(90deg,#103936e8,#10393666)}.cover-copy{padding:70px 0 110px}.cover-copy h1{font-size:58px}.cover-copy .intro{max-width:380px}.slider-bottom .tiny{display:none}.welcome{gap:35px;margin-top:55px}.welcome h2{font-size:33px}.experience-cards{gap:15px}.experience-card>img{height:210px}.card-copy{padding:18px}.card-copy strong{font-size:21px}.birthday-band{flex-wrap:wrap}.birthday-band h2{font-size:28px}}
@media(max-width:550px){nav{gap:14px}nav a{font-size:9px}.brand{font-size:30px}.top-strip span:last-child{display:none}.top-strip{justify-content:center}.cover-copy h1{font-size:48px;letter-spacing:-1px}.script-line{font-size:22px}.cover-copy .eyebrow{font-size:8px;letter-spacing:1.5px}.cover-actions{flex-wrap:wrap}.slider-bottom{font-size:9px;gap:10px}.slide-controls{gap:8px}.welcome{grid-template-columns:1fr;gap:10px}.experience-cards{grid-template-columns:1fr;margin-bottom:45px}.experience-card{display:grid;grid-template-columns:40% 60%;align-items:center}.experience-card>img{height:240px}.birthday-band{gap:15px}.birthday-band>span{display:none}.panel{margin:25px 15px;padding:25px}.story-heading h2{font-size:35px}.polaroid:nth-child(even){transform:none}.game{padding:30px 15px}.wedding-hero{min-height:680px}}

/* Personal edition: no promotional banner or service-card sections. */
.brand .name-heart{font:italic 28px Georgia;margin:0 7px;color:#65a79a}
.brand{font:26px Georgia;letter-spacing:2px}
.brand small{margin-left:0;text-align:center;font-size:8px}
.personal-promise{text-align:center;padding:15px 25px 65px;max-width:800px;margin:auto}
.personal-promise>span{font-size:36px;color:var(--accent)}
.personal-promise p{font:italic 24px/1.6 Georgia;color:#55796e;margin:20px 0 30px}
@media(max-width:550px){.brand{font-size:24px}.personal-promise p{font-size:21px}}

/* Single-action birthday entrance. */
header{justify-content:center;padding:22px 5%}
.cover-actions{justify-content:flex-start}
#begin{min-width:210px;font-size:15px;padding:18px 30px}

/* A birthday greeting, a mischievous gift, and one button. */
body.on-invitation{background:#f8f3e9}body.on-invitation>header,body.on-invitation>footer{display:none}
.birthday-entrance{min-height:100svh;box-sizing:border-box;padding:45px 20px;display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative;overflow:hidden;background:radial-gradient(ellipse at 50% 48%,#fffdf7 0%,#f8f3e9 65%);text-align:center;isolation:isolate}
.birthday-entrance.hidden{display:none}.birthday-entrance h1{font:clamp(42px,7vw,76px)/1.12 Georgia,serif;color:#264d43;letter-spacing:-1.5px;margin:0 0 18px}.birthday-entrance h1 em{display:inline-block;color:#10998c;font-weight:normal}
.birthday-entrance #begin{border-radius:50px;padding:19px 33px;background:#168f80;color:white;box-shadow:0 9px 0 #0a6159,0 18px 30px #286a4620;position:relative;z-index:2;min-width:230px}.birthday-entrance #begin:hover{transform:translateY(-3px) rotate(-2deg)}.birthday-entrance #begin:active{transform:translateY(6px);box-shadow:0 3px 0 #0a6159}.birthday-entrance #begin:focus-visible{outline:3px solid #d87962;outline-offset:8px}
.silly-gift{width:220px;height:225px;position:relative;margin:0 auto 26px}.gift-box{position:absolute;left:48px;bottom:29px;width:124px;height:93px;background:#e7a397;border-radius:4px 4px 13px 13px;z-index:3;box-shadow:inset -12px 0 #d98d80;animation:gift-wiggle 3.8s infinite}.gift-box>span{position:absolute;left:51px;height:100%;width:23px;background:#fcde9b}.gift-box>b{position:absolute;left:45px;top:29px;width:36px;height:36px;line-height:36px;border-radius:50%;background:#fff4d9;color:#b76c5c;font-size:25px}
.gift-lid{position:absolute;left:39px;bottom:120px;width:142px;height:24px;border-radius:5px;background:#efb2a4;z-index:4;animation:gift-lid-hop 3.8s infinite}.gift-lid>span{display:block;width:25px;height:100%;background:#ffe4aa;margin:auto}.gift-lid:before,.gift-lid:after{content:'';position:absolute;width:34px;height:22px;border:6px solid #e5bc69;border-radius:50% 50% 0 50%;top:-28px;left:32px;transform:rotate(16deg)}.gift-lid:after{left:70px;transform:rotate(80deg)}
.gift-fox{position:absolute;font-size:79px;line-height:1;left:65px;bottom:93px;z-index:2;animation:fox-peek 3.8s infinite}.gift-shadow{position:absolute;width:140px;height:15px;border-radius:50%;background:#294b3a14;bottom:14px;left:40px}
.birthday-confetti{position:absolute;inset:0;z-index:-1;pointer-events:none}.birthday-confetti i{position:absolute;top:17%;left:16%;font-style:normal;font-size:28px;color:#dfb45e;animation:party-float 4s ease-in-out infinite}.birthday-confetti i:nth-child(2){left:79%;top:28%;color:#d49389;animation-delay:-1s}.birthday-confetti i:nth-child(3){left:86%;top:67%;color:#5f9e8e;animation-delay:-2s}.birthday-confetti i:nth-child(4){left:11%;top:70%;font-size:13px;color:#d49389;animation-delay:-3s}.birthday-confetti i:nth-child(5){left:65%;top:85%;font-size:18px;animation-delay:-1.5s}.birthday-confetti i:nth-child(6){left:32%;top:9%;font-size:13px;color:#77a897;animation-delay:-2.5s}
@keyframes gift-wiggle{0%,15%,40%,100%{transform:rotate(0)}5%,25%{transform:rotate(-5deg)}10%,30%{transform:rotate(5deg)}}
@keyframes gift-lid-hop{0%,34%,90%,100%{transform:translateY(0) rotate(0)}43%,72%{transform:translate(-9px,-95px) rotate(-17deg)}80%{transform:translateY(-12px) rotate(8deg)}}
@keyframes fox-peek{0%,33%,91%,100%{transform:translateY(50px) scale(.7)}45%,65%{transform:translateY(-31px) rotate(-10deg)}73%{transform:translateY(-31px) rotate(12deg)}}
@keyframes party-float{50%{transform:translateY(-14px) rotate(18deg)}}
@media(max-width:480px){.birthday-entrance h1{font-size:45px}.birthday-confetti i{font-size:20px}}
@media(prefers-reduced-motion:reduce){.birthday-entrance *, .birthday-entrance *:before,.birthday-entrance *:after{animation:none!important;transition:none!important}.gift-fox{transform:translateY(-25px)}.gift-lid{transform:translate(-9px,-88px) rotate(-17deg)}}

/* Animated personal memory game */
#memory-game{max-width:850px;border-radius:28px;background:radial-gradient(circle at top right,#ffeddb,transparent 55%),#f0f8f3;box-shadow:0 20px 60px #234b3410;position:relative}
#memory-game .grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px;max-width:660px;margin:25px auto}
#memory-game .memory-tile{height:auto;aspect-ratio:4/5;padding:0;position:relative;perspective:900px;background:transparent;box-shadow:none;border:0;border-radius:15px;overflow:visible;animation:memory-deal .5s both;animation-delay:var(--deal-delay)}
.memory-inner{display:block;width:100%;height:100%;position:relative;transform-style:preserve-3d;transition:transform .55s cubic-bezier(.2,.7,.3,1)}
.flipped .memory-inner{transform:rotateY(180deg)}
.memory-back,.memory-face{position:absolute;inset:0;border-radius:15px;overflow:hidden;backface-visibility:hidden;-webkit-backface-visibility:hidden;display:flex;align-items:center;justify-content:center}
.memory-back{background:repeating-linear-gradient(45deg,#ffffff07 0 10px,transparent 10px 20px),linear-gradient(135deg,#25b4a0,#126b65);color:#fff0cf;border:5px solid #e0eee5;box-shadow:0 5px 0 #acd1c3;font:48px Georgia}
.memory-face{transform:rotateY(180deg);background:#fff;border:4px solid white;box-shadow:0 5px 15px #244e3320;flex-direction:column}
#memory-game .memory-face img{width:100%;height:calc(100% - 27px);object-fit:contain;border-radius:0;background:#edf2e8}.memory-face>span{height:27px;display:grid;place-items:center;font-size:10px;color:#335c50}
#memory-game .matched .memory-face{border-color:#e7bd65;box-shadow:0 0 0 3px #e7bd6533,0 6px 22px #d9ba5d44}
#memory-game .matched{animation:match-pop .45s both}#memory-game .memory-tile:focus-visible{outline:3px solid #d88974;outline-offset:5px}
.match-meter{max-width:400px;height:10px;border-radius:20px;background:#dae8dc;margin:18px auto;overflow:hidden}.match-meter span{display:block;width:0;height:100%;border-radius:20px;background:linear-gradient(90deg,#22a58f,#e6bc63);transition:width .55s}
#match-reaction{min-height:44px;max-width:510px;margin:15px auto;color:#466958;font-size:14px;line-height:1.6}#memory-game .toolbar{justify-content:center;flex-wrap:wrap}#match-peek{background:#fff4d9;color:#725731;border:1px solid #ecd79c}#match-peek:disabled{opacity:.55;cursor:default}
@keyframes memory-deal{from{opacity:0;transform:translateY(22px) rotate(-6deg)}to{opacity:1;transform:none}}@keyframes match-pop{50%{transform:scale(1.07) rotate(2deg)}}
@media(max-width:550px){#memory-game .grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.memory-back{font-size:36px}.memory-face>span{font-size:9px}}
@media(prefers-reduced-motion:reduce){#memory-game .memory-tile{animation:none}.memory-inner,.match-meter span{transition:none}}

/* Final birthday wish hunt */
.wish-field{height:360px!important;border-radius:25px!important;border:2px solid #c7e5d6;box-shadow:inset 0 0 70px #fff9;background:radial-gradient(circle at 50% 100%,#ffedbf,transparent 60%),linear-gradient(#d6eee9,#f9fbef)!important;position:relative;overflow:hidden}
.hunt-wish{position:absolute;width:64px;height:64px;padding:0;border-radius:50%;display:grid;place-items:center;font-size:36px;border:2px solid #fff;background:#fff9;box-shadow:0 6px 0 #67998133,0 10px 22px #35674c18;cursor:pointer;animation:wish-bob 2s ease-in-out infinite;transition:background .15s}
.hunt-heart{color:#dc7380}.hunt-gift{background:#ffecd2}.hunt-clock{background:#d8edf5}.hunt-cloud{color:#7c8c9c;background:#e1e6ed}.hunt-wish:hover{background:#fff}.hunt-wish:active{scale:.88}.hunt-wish:focus-visible{outline:4px solid #168f80;outline-offset:5px}
.hunt-gold{width:90px;height:90px;font-size:58px;background:#fff2b5;box-shadow:0 0 40px #eab94e88;animation:golden-pulse 1.3s infinite}.golden-round{background:radial-gradient(circle,#fff5bc,#e5f1dd)!important}
.wish-victory{display:flex;align-items:center;justify-content:center;height:100%;flex-direction:column;gap:15px;font-size:65px}.wish-victory strong{font:28px Georgia;color:#2f6658}.wish-victory span{font-size:14px;color:#527c6d}
#wish-status{min-height:50px;line-height:1.6}.wish-hud{font-weight:bold;flex-wrap:wrap;gap:12px}#wish-meter{accent-color:#dfb553;height:15px}
@keyframes wish-bob{50%{transform:translateY(-7px) rotate(7deg)}}@keyframes golden-pulse{50%{transform:scale(1.12) rotate(-10deg)}}
@media(max-width:480px){.hunt-wish{width:55px;height:55px;font-size:30px}.hunt-gold{width:75px;height:75px;font-size:46px}}
@media(prefers-reduced-motion:reduce){.hunt-wish{animation:none;transition:none}}
