@import "https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Fraunces:opsz,wght@9..144,600;9..144,700&display=swap";:root{color:#402f38;font-synthesis:none;--cream:#fff8ee;--paper:#fffdf8;--coral:#df6d73;--coral-dark:#b94e59;--lilac:#d8c7ec;--plum:#49343f;--sage:#adbea6;--ink-soft:#75616b;--shadow:0 18px 50px #5b374629;background:#fff8ee;font-family:DM Sans,system-ui,sans-serif}*{box-sizing:border-box}html{background:var(--cream)}body{min-width:320px;min-height:100vh;margin:0}button,a,input{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible,input:focus-visible{outline-offset:3px;outline:3px solid #7d5aa1}h1,h2,p{margin-top:0}h1,h2{color:var(--plum);font-family:Fraunces,Georgia,serif}h1{letter-spacing:-.045em;font-size:clamp(2.3rem,10vw,4.8rem);line-height:.96}p{line-height:1.65}.centered-shell,.welcome,.finale{min-height:100svh;padding:calc(28px + env(safe-area-inset-top)) 20px calc(28px + env(safe-area-inset-bottom));place-items:center;display:grid;position:relative;overflow:hidden}.centered-shell:before,.welcome:before,.finale:before{content:"";z-index:-1;background:radial-gradient(circle at 22% 20%,#df6d732e 0 12%,#0000 13%),radial-gradient(circle at 82% 75%,#d8c7ec99 0 16%,#0000 17%),linear-gradient(145deg,#fffaf1,#fff5e7 55%,#f8ecf2);position:absolute;inset:-20%}.paper-card{background:var(--paper);width:min(100%,560px);box-shadow:var(--shadow);border:1px solid #49343f1a;border-radius:7px;padding:clamp(28px,7vw,52px);position:relative;transform:rotate(-.6deg)}.paper-card:after{content:"";background:#d8c7eca6;width:90px;height:28px;position:absolute;top:-12px;left:50%;transform:translate(-50%)rotate(2deg)}.eyebrow{color:var(--coral-dark);letter-spacing:.15em;text-transform:uppercase;margin-bottom:14px;font-size:.75rem;font-weight:700;display:block}.button{cursor:pointer;border:0;border-radius:999px;justify-content:center;align-items:center;min-height:54px;padding:14px 24px;font-weight:700;text-decoration:none;transition:transform .2s,box-shadow .2s,background .2s;display:inline-flex}.button:hover{transform:translateY(-2px)}.button:disabled{cursor:not-allowed;opacity:.48;transform:none}.button.primary{color:#fff;background:var(--coral);box-shadow:0 10px 24px #b94e5940}.button.primary:hover{background:var(--coral-dark)}.button.secondary{color:var(--plum);background:#efe6f7}.button.small{background:var(--plum);color:#fff;min-height:42px;padding:9px 17px}.text-button,.pause-link{color:var(--coral-dark);cursor:pointer;text-underline-offset:4px;background:0 0;border:0;font-weight:700;text-decoration:underline}.fine-print,.safety-note{color:var(--ink-soft);font-size:.84rem}.welcome{text-align:center}.welcome-copy{max-width:650px}.welcome-copy h1{max-width:570px;margin:18px auto 24px}.welcome-copy>p:not(.safety-note){max-width:540px;margin:0 auto 28px;font-size:1.08rem}.welcome-copy .safety-note{max-width:440px;margin:22px auto 0}.welcome-doodles{color:var(--coral);font-size:clamp(2rem,9vw,4.5rem);position:absolute;top:10%;left:5%;transform:rotate(-12deg)}.welcome-doodles span{color:#8b6cad}.missions-shell{min-height:100svh;padding:calc(34px + env(safe-area-inset-top)) 18px calc(36px + env(safe-area-inset-bottom));background:var(--cream)}.missions-header{max-width:650px;margin:0 auto 26px}.missions-header h1{margin-bottom:16px;font-size:clamp(2.5rem,12vw,4.4rem)}.missions-header p{color:var(--ink-soft)}.mission-list{gap:14px;max-width:650px;margin:auto;display:grid}.mission-card{background:var(--paper);border:1px solid #49343f1a;border-radius:22px;grid-template-columns:44px 1fr auto;align-items:center;gap:14px;min-height:126px;padding:18px;display:grid;box-shadow:0 8px 26px #5b374614}.mission-card.complete{background:#f3f5ec}.mission-card.locked{box-shadow:none;opacity:.58}.mission-number{color:var(--coral-dark);background:#f6d8d4;border-radius:50%;justify-content:center;align-items:center;width:42px;height:42px;font-family:Fraunces,serif;font-size:1.25rem;display:flex}.complete .mission-number{color:#52694d;background:#d8e2d3}.mission-copy>span{color:var(--coral-dark);letter-spacing:.12em;text-transform:uppercase;font-size:.68rem;font-weight:700}.mission-copy h2{margin:3px 0 5px;font-size:1.28rem}.mission-copy p{color:var(--ink-soft);margin:0;font-size:.84rem;line-height:1.4}.mission-copy .setup-warning{color:#9b5b2f;margin-top:7px;font-weight:700}.lock{color:#8f719e;font-size:1.3rem}.missions-shell>.safety-note,.missions-shell>.error-message{text-align:center;max-width:650px;margin:22px auto 0}.navigation-shell{background:#e8e2db;min-height:100svh;position:relative}.map-header{padding:calc(10px + env(safe-area-inset-top)) 14px 10px;z-index:5;grid-template-columns:42px 1fr 52px;align-items:center;gap:12px;display:grid;position:absolute;top:0;left:0;right:0}.map-header>div{background:#fffdf8eb;border-radius:16px;padding:8px 14px;box-shadow:0 5px 18px #402f3821}.map-header span{letter-spacing:.08em;text-transform:uppercase;font-size:.66rem;display:block}.map-header strong{font-family:Fraunces,serif;display:block}.icon-button,.mystery-mark{background:#fffdf8f0;border:0;border-radius:50%;justify-content:center;align-items:center;height:42px;display:flex;box-shadow:0 5px 18px #402f3821}.icon-button{cursor:pointer;font-size:1.25rem}.mystery-mark{width:42px;font-family:Fraunces,serif}.live-map-wrap{height:58svh;min-height:410px;position:relative;overflow:hidden}.live-map{width:100%;height:100%}.navigation-heart,.destination-marker{border:3px solid #fff;justify-content:center;align-items:center;display:flex;box-shadow:0 4px 14px #402f3847}.navigation-heart{color:#fff;background:#715289;border-radius:50%;width:38px;height:38px;font-size:22px}.destination-marker{background:var(--coral);color:#fff;border-radius:50%;width:42px;height:42px;font-family:Fraunces,serif;font-size:20px;font-weight:700}.map-waiting,.map-error{text-align:center;background:#fffdf8f0;border-radius:14px;width:min(82%,340px);padding:12px 15px;position:absolute;top:44%;left:50%;transform:translate(-50%,-50%)}.map-error{color:#9d3745}.navigation-card{background:var(--paper);min-height:calc(42svh + 28px);padding:14px 22px calc(26px + env(safe-area-inset-bottom));z-index:4;border-radius:28px 28px 0 0;margin-top:-28px;position:relative;box-shadow:0 -8px 35px #402f3824}.drag-handle{background:#d8cdd2;border-radius:99px;width:44px;height:4px;margin:0 auto 18px}.navigation-card h1{margin-bottom:16px;font-size:clamp(2rem,9vw,3.3rem)}.maneuver-card{color:#fff;background:#3f3150;border-radius:18px;gap:7px;margin-bottom:18px;padding:16px;display:grid}.maneuver-card strong{font-size:1.15rem;line-height:1.3}.maneuver-card p,.maneuver-distance{opacity:.85;margin:0;font-size:.78rem}.maneuver-distance{letter-spacing:.06em;text-transform:uppercase;font-weight:800}.upcoming-directions{border-top:1px solid #fff3;margin-top:5px;padding-top:9px;font-size:.78rem}.upcoming-directions summary{cursor:pointer;font-weight:700}.upcoming-directions ol{gap:7px;margin:10px 0 0;padding-left:20px;display:grid}.maneuver-card .text-button{color:#fff;justify-self:start;padding:5px 0 0}.location-status{color:#624c6e;background:#f5eff9;border-radius:15px;align-items:flex-start;gap:10px;margin-bottom:15px;padding:12px;font-size:.85rem;line-height:1.4;display:flex}.pulse{background:#8c70a0;border-radius:50%;flex:none;width:9px;height:9px;margin-top:3px}.navigation-actions{gap:10px;display:grid}.error-message{color:#9d3745;background:#fff0ef;border-radius:12px;padding:10px 12px;font-size:.84rem}.parked-panel{background:#fff6e3;border:1px solid #ead6aa;border-radius:18px;margin-top:16px;padding:18px}.parked-panel h2{margin-bottom:5px;font-size:1.35rem}.parked-panel p{color:var(--ink-soft);margin-bottom:14px;font-size:.84rem;line-height:1.45}.parked-check{cursor:pointer;align-items:center;gap:10px;font-size:.9rem;font-weight:700;display:flex}.parked-check input{accent-color:var(--coral);width:23px;height:23px}.gift-button{background:var(--coral);color:#fff;width:100%;margin-top:15px}.pause-link{margin:18px auto 0;font-size:.76rem;display:block}.reveal-shell{text-align:center}.reveal-card{transform:rotate(.5deg)}.gift-icon{margin-bottom:14px;font-size:4rem;display:block}.reveal-card h1{font-size:clamp(2.3rem,10vw,3.8rem)}.reveal-card h2{color:var(--coral-dark);font-size:1.5rem}.reveal-card .button{margin-top:10px}.finale{text-align:center}.finale-card{transform:rotate(-.4deg)}.finale-card h1{font-size:clamp(2.6rem,11vw,4.5rem)}.gift-row{flex-wrap:wrap;justify-content:center;gap:8px;margin:25px 0;display:flex}.gift-row span{color:#654b7d;background:#f2e9f7;border-radius:999px;padding:8px 12px;font-size:.78rem;font-weight:700}.signature{color:var(--coral-dark);font-family:Fraunces,serif;font-size:1.15rem}.confetti{color:var(--coral);word-spacing:4vw;font-size:clamp(2rem,8vw,4rem);position:absolute;top:8%;left:0;right:0}.sticker{background:var(--lilac);color:#5e466d;text-transform:uppercase;border-radius:50%;padding:13px 8px;font-size:.7rem;font-weight:700;position:absolute;top:18px;right:18px;transform:rotate(9deg)}.update-toast{background:var(--plum);bottom:calc(16px + env(safe-area-inset-bottom));box-shadow:var(--shadow);color:#fff;cursor:pointer;z-index:20;border:0;border-radius:14px;width:min(90%,420px);padding:13px 18px;position:fixed;left:50%;transform:translate(-50%)}.loading{color:var(--coral-dark);font-family:Fraunces,serif;font-size:1.3rem}.admin-shell{background:#f5efe7;min-height:100svh;padding:38px 20px}.admin-login,.admin-header,.admin-create,.admin-locations,.profile-grid,.created-link,.admin-shell>.error-message{max-width:900px;margin-left:auto;margin-right:auto}.admin-login{background:var(--paper);box-shadow:var(--shadow);border-radius:22px;max-width:480px;margin-top:8vh;padding:32px}.admin-login h1,.admin-header h1{margin-bottom:20px;font-size:clamp(2.2rem,8vw,4rem)}.admin-login form,.admin-create,.admin-locations,.custom-link form{gap:16px;display:grid}.admin-shell label{gap:7px;font-weight:700;display:grid}.admin-shell input{border:1px solid #cdbfc5;border-radius:10px;min-height:46px;padding:10px 12px}.admin-header{justify-content:space-between;align-items:start;display:flex}.admin-locations{background:var(--paper);border-radius:18px;gap:16px;margin-bottom:16px;padding:18px;display:grid}.admin-locations h2{margin-bottom:4px}.admin-create{background:var(--paper);border-radius:18px;grid-template-columns:1fr auto;align-items:end;padding:18px}.created-link{overflow-wrap:anywhere;background:#fff6d9;border-radius:14px;gap:10px;margin-top:16px;padding:16px;display:grid}.profile-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px;margin-top:22px;display:grid}.profile-card{background:var(--paper);border-radius:18px;padding:20px;box-shadow:0 8px 24px #402f3814}.profile-card h2{margin-bottom:4px}.profile-card ul{padding:0;list-style:none}.profile-card li{border-top:1px solid #eadfe3;justify-content:space-between;align-items:center;padding:10px 0;display:flex}.profile-card li span{gap:3px;display:grid}.profile-card li small{color:var(--ink-soft)}.admin-actions{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.text-button.danger{color:#9d3745}.custom-link{border-top:1px solid #eadfe3;margin-top:16px;padding-top:14px}.custom-link summary{cursor:pointer;font-weight:700}.custom-link form{margin-top:14px}@media (width<=560px){.admin-create{grid-template-columns:1fr}}@media (width>=720px){.navigation-shell{max-width:560px;box-shadow:var(--shadow);margin:0 auto}.missions-shell{padding-left:28px;padding-right:28px}}@media (prefers-reduced-motion:no-preference){.welcome-doodles{animation:5s ease-in-out infinite alternate drift}.pulse{animation:1.8s ease-out infinite pulse}.gift-icon{animation:1s ease-in-out both gift}@keyframes drift{to{transform:rotate(-7deg)translateY(9px)}}@keyframes pulse{0%{box-shadow:0 0 #8c70a073}75%,to{box-shadow:0 0 0 8px #0000}}@keyframes gift{0%{opacity:0;transform:scale(.65)rotate(-8deg)}70%{transform:scale(1.08)rotate(3deg)}to{opacity:1;transform:scale(1)}}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
