@import"https://fonts.googleapis.com/css2?family=Lora:ital,wght@0,400;0,500;1,400&family=DM+Sans:wght@400;500&display=swap";:root{--bg: #0E0C09;--surface: #1C1810;--surface-2: #262015;--gold: #C9A84C;--gold-dim: #8A6E28;--gold-bg: rgba(201,168,76,.1);--gold-border: rgba(201,168,76,.2);--crimson: #8C2020;--crimson-bg: rgba(140,32,32,.12);--crimson-border: rgba(140,32,32,.28);--navy: #1E2870;--navy-bg: rgba(30,40,112,.15);--navy-border: rgba(30,40,112,.3);--green: #1D9E75;--green-bg: rgba(29,158,117,.12);--text: #D8C9A8;--text-muted: #8A7860;--text-faint: #5A4838;--border: rgba(201,168,76,.14);--radius: 14px;--radius-sm: 9px;--font-body: "DM Sans", sans-serif;--font-serif: "Lora", Georgia, serif}.hp-theme{--bg: #06091A;--surface: #0E1330;--surface-2: #151C40;--gold: #F0C040;--gold-dim: #A07C20;--gold-bg: rgba(240,192,64,.1);--gold-border: rgba(240,192,64,.28);--crimson: #C41E3A;--crimson-bg: rgba(196,30,58,.15);--crimson-border: rgba(196,30,58,.45);--navy: #5B7FE8;--navy-bg: rgba(91,127,232,.12);--navy-border: rgba(91,127,232,.3);--green: #27AE60;--green-bg: rgba(39,174,96,.15);--text: #EAD8A0;--text-muted: #8A7850;--text-faint: #4A4030;--border: rgba(240,192,64,.16)}.hp-theme body{background-image:radial-gradient(ellipse at 50% 0%,rgba(80,50,180,.22) 0%,transparent 60%),radial-gradient(ellipse at 0% 100%,rgba(196,30,58,.08) 0%,transparent 50%)}.hp-theme body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:0;background-image:radial-gradient(1.2px 1.2px at 4% 8%,rgba(255,255,255,.55) 0%,transparent 100%),radial-gradient(1px 1px at 11% 20%,rgba(255,255,255,.35) 0%,transparent 100%),radial-gradient(1.5px 1.5px at 18% 5%,rgba(255,255,255,.6) 0%,transparent 100%),radial-gradient(1px 1px at 24% 35%,rgba(255,255,255,.3) 0%,transparent 100%),radial-gradient(1.2px 1.2px at 30% 14%,rgba(255,255,255,.5) 0%,transparent 100%),radial-gradient(1px 1px at 38% 28%,rgba(255,255,255,.25) 0%,transparent 100%),radial-gradient(1.8px 1.8px at 45% 3%,rgba(255,255,255,.65) 0%,transparent 100%),radial-gradient(1px 1px at 52% 42%,rgba(255,255,255,.3) 0%,transparent 100%),radial-gradient(1.2px 1.2px at 60% 18%,rgba(255,255,255,.45) 0%,transparent 100%),radial-gradient(1px 1px at 67% 9%,rgba(255,255,255,.35) 0%,transparent 100%),radial-gradient(1.5px 1.5px at 73% 32%,rgba(255,255,255,.5) 0%,transparent 100%),radial-gradient(1px 1px at 80% 2%,rgba(255,255,255,.4) 0%,transparent 100%),radial-gradient(1.2px 1.2px at 87% 24%,rgba(255,255,255,.55) 0%,transparent 100%),radial-gradient(1px 1px at 93% 12%,rgba(255,255,255,.3) 0%,transparent 100%),radial-gradient(1px 1px at 7% 55%,rgba(255,255,255,.25) 0%,transparent 100%),radial-gradient(1.5px 1.5px at 14% 68%,rgba(255,255,255,.45) 0%,transparent 100%),radial-gradient(1px 1px at 22% 80%,rgba(255,255,255,.3) 0%,transparent 100%),radial-gradient(1.2px 1.2px at 35% 62%,rgba(255,255,255,.4) 0%,transparent 100%),radial-gradient(1px 1px at 48% 75%,rgba(255,255,255,.25) 0%,transparent 100%),radial-gradient(1.8px 1.8px at 56% 88%,rgba(255,255,255,.5) 0%,transparent 100%),radial-gradient(1px 1px at 64% 60%,rgba(255,255,255,.35) 0%,transparent 100%),radial-gradient(1.2px 1.2px at 71% 78%,rgba(255,255,255,.45) 0%,transparent 100%),radial-gradient(1px 1px at 79% 50%,rgba(255,255,255,.3) 0%,transparent 100%),radial-gradient(1.5px 1.5px at 85% 70%,rgba(255,255,255,.55) 0%,transparent 100%),radial-gradient(1px 1px at 92% 85%,rgba(255,255,255,.25) 0%,transparent 100%),radial-gradient(1.5px 1.5px at 40% 50%,rgba(240,192,64,.5) 0%,transparent 100%),radial-gradient(1px 1px at 70% 40%,rgba(240,192,64,.35) 0%,transparent 100%),radial-gradient(1.2px 1.2px at 20% 90%,rgba(240,192,64,.4) 0%,transparent 100%);animation:twinkle 5s ease-in-out infinite alternate}@keyframes twinkle{0%{opacity:.55}to{opacity:1}}.hp-theme .hint-card,.hp-theme .gps-card,.hp-theme .reveal-card{box-shadow:0 0 28px #f0c0400d,inset 0 0 0 .5px #f0c0401f}.hp-theme .arrive-btn--ready{background:linear-gradient(135deg,#c41e3a,#8b0000);color:#ffe4b0;animation:scarletGlow 2s ease-in-out infinite}@keyframes scarletGlow{0%,to{box-shadow:0 0 #c41e3a00}50%{box-shadow:0 0 0 10px #c41e3a33}}.hp-theme .continue-btn{background:linear-gradient(135deg,#c41e3a,#8b0000);color:#ffe4b0}.hp-theme .maps-btn{border-color:#f0c04066;box-shadow:0 0 16px #f0c04014}.hp-theme .hp-badge{background:#f0c0401f;border-color:#f0c04066;color:var(--gold);text-shadow:0 0 14px rgba(240,192,64,.5);letter-spacing:.04em}.hp-theme .reveal-icon{box-shadow:0 0 40px #f0c04040,0 0 0 1px #f0c0404d}.hp-theme .reveal-heading{text-shadow:0 0 40px rgba(240,192,64,.3);color:var(--gold)}.hp-theme .reveal-gift-name{color:var(--gold);text-shadow:0 0 20px rgba(240,192,64,.2)}.hp-theme .distance-number{text-shadow:0 0 20px rgba(240,192,64,.3)}.hp-theme .quest-heading{color:var(--gold)}.hp-theme .gift-progress{letter-spacing:.14em;text-shadow:0 0 12px rgba(240,192,64,.4)}.hp-theme .question-modal{background:var(--surface);box-shadow:0 0 40px #f0c04014,0 20px 60px #0009}.hp-theme .option-btn{background:var(--surface-2);border-color:#f0c04024}.hp-theme .option-btn:active{background:#f0c0401f;border-color:#f0c04059}.hp-theme .question-response p{color:var(--gold)}.hp-theme .retry-btn{background:var(--crimson)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}body{font-family:var(--font-body);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;overscroll-behavior:none}.app-shell{background:var(--bg);min-height:100dvh;max-width:430px;margin:0 auto;position:relative;transition:background-color 1.4s ease}.screen-content{padding:max(24px,env(safe-area-inset-top)) 20px calc(100px + env(safe-area-inset-bottom,0px)) 20px;display:flex;flex-direction:column;gap:14px;min-height:100dvh;animation:fadeUp .4s ease both}@keyframes fadeUp{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}.countdown-eyebrow{font-size:10px;font-weight:500;text-transform:uppercase;letter-spacing:.12em;color:var(--gold);text-align:center}.countdown-name{font-family:var(--font-serif);font-size:30px;font-weight:400;text-align:center;color:var(--text);line-height:1.3}.countdown-sub{text-align:center;font-size:13px;color:var(--text-muted);margin-top:-6px}.countdown-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.cd-cell{background:var(--gold-bg);border:.5px solid var(--gold-border);border-radius:var(--radius-sm);padding:14px 6px 12px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:4px}.cd-num{font-family:var(--font-serif);font-size:30px;font-weight:500;color:var(--gold);line-height:1}.cd-unit{font-size:10px;color:var(--text-muted);font-weight:500;letter-spacing:.08em;text-transform:uppercase}.unlock-note{font-size:11px;color:var(--text-faint);text-align:center;font-style:italic}.unlocked-badge{background:var(--gold-bg);border:.5px solid var(--gold-border);border-radius:20px;padding:8px 18px;font-size:13px;font-weight:500;color:var(--gold);width:fit-content;margin:0 auto}.sealed-card{background:var(--surface);border:.5px solid var(--border);border-radius:var(--radius);padding:16px;display:flex;align-items:flex-start;gap:12px}.sealed-lock{color:var(--gold-dim);flex-shrink:0;margin-top:1px}.sealed-text{font-family:var(--font-serif);font-style:italic;font-size:14px;color:var(--text-muted);line-height:1.65}.card-label{display:block;font-size:10px;font-weight:500;color:var(--text-faint);text-transform:uppercase;letter-spacing:.1em;margin-bottom:6px}.hint-card{background:var(--surface);border:.5px solid var(--gold-border);border-radius:var(--radius);padding:16px}.hint-text{font-family:var(--font-serif);font-style:italic;font-size:15px;color:var(--text);line-height:1.65;margin-top:2px}.back-btn{display:flex;align-items:center;gap:6px;background:none;border:none;padding:0;font-family:var(--font-body);font-size:13px;color:var(--text-muted);cursor:pointer;touch-action:manipulation;margin-bottom:-4px}.back-btn:active{opacity:.6}.gift-progress{font-size:11px;font-weight:500;color:var(--gold);text-transform:uppercase;letter-spacing:.12em}.quest-heading{font-family:var(--font-serif);font-size:26px;font-weight:400;color:var(--text);line-height:1.3;margin-top:-4px}.maps-btn{display:flex;align-items:center;justify-content:center;gap:10px;background:var(--surface);border:1px solid var(--gold-border);border-radius:var(--radius-sm);padding:15px 20px;font-family:var(--font-body);font-size:14px;font-weight:500;color:var(--gold);text-decoration:none;cursor:pointer;transition:opacity .15s;touch-action:manipulation}.maps-btn:active{opacity:.7}.gps-card{background:var(--surface);border:.5px solid var(--border);border-radius:var(--radius);padding:20px 16px;text-align:center;transition:border-color .4s,background .4s}.gps-card--close{border-color:#c9a84c66}.gps-card--arrived{background:var(--green-bg);border-color:#1d9e7559}.gps-loading{font-size:13px;color:var(--text-muted);font-style:italic}.distance-number{font-family:var(--font-serif);font-size:44px;font-weight:400;color:var(--gold);line-height:1;margin-bottom:4px}.gps-card--arrived .distance-number{color:var(--green);font-size:36px}.distance-label{font-size:13px;color:var(--text-muted)}.gps-error-card{background:var(--crimson-bg);border:.5px solid var(--crimson-border);border-radius:var(--radius);padding:16px}.gps-error-title{font-size:13px;font-weight:500;color:var(--crimson);margin-bottom:8px}.gps-error-help{font-size:12px;color:var(--text-muted);line-height:1.6}.gps-error-help strong{color:var(--text)}.retry-btn{margin-top:10px;background:var(--crimson);color:#fff;border:none;border-radius:var(--radius-sm);padding:10px 18px;font-family:var(--font-body);font-size:13px;font-weight:500;cursor:pointer;touch-action:manipulation;width:100%}.retry-btn:active{opacity:.8}.arrive-btn{display:flex;align-items:center;justify-content:center;width:100%;border:none;border-radius:var(--radius);padding:20px;font-family:var(--font-serif);font-size:17px;font-weight:400;letter-spacing:.01em;cursor:pointer;transition:all .35s ease;touch-action:manipulation}.arrive-btn--waiting{background:var(--surface-2);color:var(--text-faint);cursor:not-allowed}.arrive-btn--ready{background:var(--gold);color:#1a0c00;animation:arriveGlow 2.2s ease-in-out infinite}.arrive-btn--ready:active{transform:scale(.97)}@keyframes arriveGlow{0%,to{box-shadow:0 0 #c9a84c00}50%{box-shadow:0 0 0 10px #c9a84c2e}}.notif-prompt{background:var(--navy-bg);border:.5px solid var(--navy-border);border-radius:var(--radius-sm);padding:12px 14px;font-size:12px;color:var(--text-muted);cursor:pointer;text-align:left;touch-action:manipulation;transition:opacity .15s}.hp-theme .notif-prompt{color:var(--navy)}.notif-prompt:active{opacity:.7}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;display:flex;align-items:flex-end;z-index:100;padding:16px;padding-bottom:max(20px,env(safe-area-inset-bottom));animation:overlayIn .2s ease}@keyframes overlayIn{0%{opacity:0}to{opacity:1}}.question-modal{background:var(--surface);border:.5px solid var(--gold-border);border-radius:var(--radius);padding:22px 20px;width:100%;animation:modalUp .38s cubic-bezier(.34,1.4,.64,1) both}@keyframes modalUp{0%{transform:translateY(50px);opacity:0}to{transform:translateY(0);opacity:1}}.question-emoji{font-size:32px;text-align:center;margin-bottom:12px;display:block}.question-text{font-family:var(--font-serif);font-size:17px;color:var(--text);text-align:center;line-height:1.55;margin-bottom:18px}.question-options{display:flex;flex-direction:column;gap:8px}.option-btn{background:var(--surface-2);border:.5px solid var(--border);border-radius:var(--radius-sm);padding:13px 14px;font-family:var(--font-body);font-size:14px;color:var(--text);cursor:pointer;text-align:left;transition:background .15s,border-color .15s;touch-action:manipulation}.option-btn:active{background:var(--gold-bg);border-color:var(--gold-border)}.question-response{background:var(--gold-bg);border:.5px solid var(--gold-border);border-radius:var(--radius-sm);padding:16px;text-align:center;animation:fadeUp .3s ease both}.question-response p{font-family:var(--font-serif);font-style:italic;font-size:16px;color:var(--gold);line-height:1.5}.hp-theme .question-response p{color:var(--text)}.modal-dismiss-btn{margin-top:12px;width:100%;background:none;border:.5px solid var(--gold-border);border-radius:var(--radius-sm);padding:12px;font-family:var(--font-body);font-size:14px;font-weight:500;color:var(--gold);cursor:pointer;touch-action:manipulation;transition:background .15s}.modal-dismiss-btn:active{background:var(--gold-bg)}.reveal-screen{position:relative;overflow:hidden}.reveal-screen>*{position:relative;z-index:1}.confetti-container{position:fixed;top:0;left:0;right:0;height:100vh;pointer-events:none;z-index:0;overflow:hidden}.confetti-piece{position:absolute;top:-10px;border-radius:2px;animation:confettiFall 3.8s ease-in both}@keyframes confettiFall{0%{transform:translateY(0) rotate(0);opacity:1}to{transform:translateY(110vh) rotate(720deg);opacity:0}}.hp-badge{display:flex;align-items:center;justify-content:center;gap:6px;background:var(--crimson-bg);border:.5px solid var(--crimson-border);border-radius:20px;padding:7px 16px;font-size:12px;font-weight:500;color:var(--crimson);width:fit-content;margin:0 auto;animation:fadeUp .4s ease .1s both}.reveal-icon{width:72px;height:72px;border-radius:20px;background:var(--gold-bg);border:1px solid var(--gold-border);display:flex;align-items:center;justify-content:center;margin:0 auto;animation:iconPop .6s cubic-bezier(.34,1.5,.64,1) .2s both}@keyframes iconPop{0%{transform:scale(.3);opacity:0}to{transform:scale(1);opacity:1}}.reveal-heading{font-family:var(--font-serif);font-size:30px;font-weight:400;color:var(--text);text-align:center;line-height:1.3;animation:fadeUp .5s ease .35s both}.reveal-card{background:var(--surface);border:1px solid var(--gold-border);border-radius:var(--radius);padding:20px;animation:fadeUp .5s ease .6s both}.reveal-gift-label{font-size:10px;font-weight:500;text-transform:uppercase;letter-spacing:.1em;color:var(--text-faint);margin-bottom:8px}.reveal-gift-name{font-family:var(--font-serif);font-size:22px;color:var(--gold);margin-bottom:6px;line-height:1.3}.reveal-gift-desc{font-size:13px;color:var(--text-muted);line-height:1.6;margin-bottom:16px}.reveal-divider{height:.5px;background:var(--border);margin-bottom:14px}.reveal-instructions-label{font-size:10px;font-weight:500;text-transform:uppercase;letter-spacing:.1em;color:var(--text-faint);margin-bottom:7px}.reveal-instructions{font-size:14px;color:var(--text);line-height:1.7}.continue-btn{display:flex;align-items:center;justify-content:center;background:var(--gold);color:#1a0c00;border:none;border-radius:var(--radius-sm);padding:17px 20px;font-family:var(--font-serif);font-size:16px;font-weight:400;cursor:pointer;width:100%;touch-action:manipulation;transition:opacity .15s;animation:fadeUp .5s ease .9s both}.continue-btn:active{opacity:.82}@keyframes finale-entrance{0%{opacity:0;transform:scale(.7) translateY(20px);letter-spacing:.3em}60%{opacity:1;transform:scale(1.08) translateY(-4px);letter-spacing:.12em}to{opacity:1;transform:scale(1) translateY(0);letter-spacing:.08em}}@keyframes finale-shimmer{0%,to{text-shadow:0 0 8px rgba(201,168,76,.3),0 0 20px rgba(201,168,76,0)}50%{text-shadow:0 0 16px rgba(201,168,76,.8),0 0 40px rgba(201,168,76,.4)}}.finale-note{text-align:center;font-family:var(--font-serif);font-style:italic;font-size:32px;letter-spacing:.08em;color:#c9a84c;animation:finale-entrance 1s cubic-bezier(.34,1.56,.64,1) 1s both,finale-shimmer 2.4s ease-in-out 2.2s infinite}@keyframes shake{0%,to{transform:translate(0)}20%{transform:translate(-8px)}40%{transform:translate(8px)}60%{transform:translate(-6px)}80%{transform:translate(6px)}}.dev-bar{position:fixed;bottom:max(16px,env(safe-area-inset-bottom));right:16px;display:flex;gap:4px;z-index:200}.dev-skip{background:#c9a84c1f;border:.5px solid rgba(201,168,76,.2);border-radius:6px;padding:5px 9px;font-size:9px;color:var(--gold-dim);cursor:pointer;font-family:monospace;touch-action:manipulation}
