@import"https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=DM+Serif+Display:ital@0;1&display=swap";:root{font-family:DM Sans,sans-serif;color:#17352f;background:#f3eadb;font-synthesis:none;--ink: #17352f;--paper: #f3eadb;--cream: #fffaf0;--coral: #e85f49;--yellow: #efc84a;--sage: #a9b8a4;--line: rgba(23, 53, 47, .18)}*{box-sizing:border-box}html{background:var(--paper)}body{margin:0;min-width:320px;min-height:100vh;background-color:var(--paper);background-image:radial-gradient(rgba(23,53,47,.055) .7px,transparent .7px);background-size:6px 6px}button,input{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{color:inherit}#root{min-height:100vh}main{width:min(100%,560px);min-height:100vh;margin:0 auto;padding:max(20px,env(safe-area-inset-top)) 20px max(28px,env(safe-area-inset-bottom));overflow:hidden;position:relative}.page-enter{animation:enter .45s cubic-bezier(.2,.8,.2,1) both}@keyframes enter{0%{opacity:0;transform:translateY(10px)}}.topbar{display:flex;justify-content:space-between;align-items:center;position:relative;z-index:2}.brand{display:flex;gap:9px;align-items:center;font-weight:700;letter-spacing:-.02em}.brand-mark{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;border:1.5px solid var(--ink);font-family:"DM Serif Display",serif;font-style:italic}.date-pill,.step-label{padding:8px 11px;border:1px solid var(--line);border-radius:99px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em}.duo-status{display:flex;align-items:center;gap:6px;padding:8px 10px;border:1px solid var(--line);border-radius:99px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.05em}.duo-status i{width:7px;height:7px;border-radius:50%;background:#b0aaa0}.duo-status.online i{background:#4f9b70;box-shadow:0 0 0 3px #4f9b7021}.cover:before{content:"";position:absolute;width:330px;height:330px;border:55px solid var(--yellow);border-radius:50%;top:88px;right:-180px;opacity:.95;transform:rotate(-8deg)}.cover-content{margin-top:clamp(62px,11vh,110px);position:relative}.kicker,.card-label{margin:0 0 12px;text-transform:uppercase;letter-spacing:.13em;font-size:11px;font-weight:700}h1,h2{font-family:"DM Serif Display",serif;font-weight:400;letter-spacing:-.04em}h1{font-size:clamp(62px,19vw,98px);line-height:.78;margin:0;position:relative}h1 em{color:var(--coral);font-weight:inherit}.lead{font-family:"DM Serif Display",serif;font-size:23px;line-height:1.25;max-width:390px;margin:34px 0 10px}.fineprint{font-size:12px;color:#17352f9e}.route-squiggle{position:absolute;right:8px;top:155px;width:105px;border-top:2px dashed var(--ink);transform:rotate(-8deg)}.route-squiggle span{position:absolute;right:-2px;top:-13px;background:var(--paper);padding-left:7px;font-size:20px;color:var(--coral)}.ticket{display:grid;grid-template-columns:1fr auto 1fr;gap:12px;align-items:center;margin:34px 0 18px;padding:18px 16px;border:1px dashed var(--ink);border-radius:3px;background:#fffaf08c;position:relative}.ticket-label{display:block;font-size:9px;text-transform:uppercase;letter-spacing:.13em;margin-bottom:5px;opacity:.6}.ticket strong{font-family:"DM Serif Display",serif;font-size:16px;font-weight:400}.ticket-arrow{color:var(--coral);font-size:22px}.primary-button,.route-button{width:100%;border:0;border-radius:2px;padding:17px 18px;background:var(--ink);color:var(--cream);display:flex;align-items:center;justify-content:space-between;text-decoration:none;font-weight:700;cursor:pointer;box-shadow:4px 4px 0 var(--coral);transition:transform .15s,box-shadow .15s}.primary-button:active,.route-button:active{transform:translate(3px,3px);box-shadow:1px 1px 0 var(--coral)}.signature{text-align:center;font-family:"DM Serif Display",serif;font-style:italic;font-size:13px;margin:20px 0 0}.section-heading{margin:52px 0 28px;position:relative}.section-heading h2,.stage h2{font-size:42px;line-height:.98;margin:0 0 18px}.section-heading>p:last-child{line-height:1.55}.big-number{position:absolute;right:-8px;top:-35px;font-family:"DM Serif Display",serif;font-size:110px;color:#e85f4924}.person-tabs{display:grid;grid-template-columns:1fr 1fr;margin-bottom:14px;border-bottom:1px solid var(--line)}.person-tabs button{border:0;background:transparent;padding:13px 8px;cursor:pointer;opacity:.55;position:relative}.person-tabs button.active{opacity:1;font-weight:700}.person-tabs button.active:after{content:"";height:3px;background:var(--coral);position:absolute;left:0;right:0;bottom:-2px}.choice-card{padding:20px;background:var(--cream);border:1px solid var(--line)}.back-button{border:0;background:transparent;padding:0 0 14px;color:var(--coral);font-size:11px;font-weight:700;cursor:pointer}.choice-card h3{font-family:"DM Serif Display",serif;font-weight:400;font-size:22px;line-height:1.2}.identity-card{padding:20px;background:var(--cream);border:1px solid var(--line)}.identity-options{display:grid;grid-template-columns:1fr 1fr;gap:10px}.identity-options button{min-height:118px;border:1px solid var(--line);background:transparent;display:flex;flex-direction:column;justify-content:center;gap:6px;cursor:pointer}.identity-options button:first-child{background:#efc84a33}.identity-options button:last-child{background:#e85f491a}.identity-options button:disabled{opacity:.4;cursor:default}.identity-options button.occupied{border-style:dashed}.identity-options strong{font-family:"DM Serif Display",serif;font-size:23px;font-weight:400}.identity-options span{font-size:10px;text-transform:uppercase;letter-spacing:.06em}.handover{margin-top:0}.choice-list{display:grid;gap:9px}.choice-list button,.mini-options button{padding:14px;border:1px solid var(--line);background:transparent;text-align:left;cursor:pointer}.choice-list button span{display:inline-grid;place-items:center;width:25px;height:25px;border-radius:50%;border:1px solid var(--line);margin-right:10px;font-size:11px}.choice-list button.selected,.mini-options button.selected{border-color:var(--coral);background:#e85f4917;color:#a63525}.pact-result{margin-top:16px}.pact-result p{font-family:"DM Serif Display",serif;font-style:italic;font-size:18px;text-align:center}.partner-wait{display:flex;justify-content:center;align-items:center;gap:7px;margin:17px 0 -3px;padding-top:14px;border-top:1px solid var(--line);font-size:11px;opacity:.65}.partner-wait span{color:#aaa29a}.partner-wait span.ready{color:var(--coral);animation:heartbeat .7s ease}@keyframes heartbeat{50%{transform:scale(1.4)}}.dialog-backdrop{position:fixed;z-index:50;inset:0;padding:20px;display:grid;place-items:center;background:#17352f9e;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);animation:fade-in .2s ease both}.role-dialog{width:min(100%,420px);padding:28px 22px 22px;background:var(--cream);border:1px solid var(--ink);box-shadow:7px 7px 0 var(--coral);text-align:center;animation:dialog-in .25s cubic-bezier(.2,.8,.2,1) both}.dialog-icon{display:grid;place-items:center;width:52px;height:52px;margin:0 auto 18px;border-radius:50%;background:var(--yellow);font-size:25px}.role-dialog h3{margin:0 0 13px;font-family:"DM Serif Display",serif;font-size:27px;line-height:1.1;font-weight:400}.role-dialog>p:not(.card-label){margin:0 0 22px;font-size:13px;line-height:1.55}.dialog-actions{display:grid;grid-template-columns:.75fr 1.25fr;gap:10px}.dialog-actions .secondary-button,.dialog-actions .primary-button{min-height:54px}.dialog-actions .primary-button{padding:12px 13px;box-shadow:3px 3px 0 var(--coral)}@keyframes fade-in{0%{opacity:0}}@keyframes dialog-in{0%{opacity:0;transform:translateY(12px) scale(.98)}}.quiz-heading{margin-bottom:22px}.quiz-card,.unlock-card,.quiz-wait{padding:22px 20px;background:var(--cream);border:1px solid var(--line)}.quiz-meta{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;font-size:10px;text-transform:uppercase;letter-spacing:.08em}.quiz-progress{height:3px;background:#17352f1f;margin-bottom:24px}.quiz-progress span{display:block;height:100%;background:var(--coral);transition:width .3s ease}.quiz-card h3,.unlock-card h3,.quiz-wait h3{margin:0 0 20px;font-family:"DM Serif Display",serif;font-size:25px;line-height:1.18;font-weight:400}.quiz-options{display:grid;gap:9px}.quiz-options button{min-height:54px;padding:11px 13px;border:1px solid var(--line);background:transparent;text-align:left;cursor:pointer;display:flex;align-items:center}.quiz-options button span{flex:0 0 auto;display:inline-grid;place-items:center;width:27px;height:27px;border:1px solid var(--line);border-radius:50%;margin-right:11px;font-size:10px}.quiz-options button.selected{border-color:var(--coral);background:#e85f4917;color:#a63525}.quiz-options button:disabled{cursor:default}.quiz-reaction{margin-top:17px;border-top:1px solid var(--line);padding-top:15px}.quiz-reaction p{min-height:42px;margin:0 0 15px;color:#33715d;font-size:12px;line-height:1.45}.quiz-reaction .primary-button{padding:14px 16px}.partner-progress{margin:17px 0 -3px;text-align:center;font-size:10px;opacity:.55}.quiz-wait{text-align:center;padding-top:35px}.quiz-wait>p:not(.kicker){font-size:13px;line-height:1.5}.waiting-heart{display:grid;place-items:center;width:54px;height:54px;margin:0 auto 20px;border-radius:50%;background:#e85f491f;color:var(--coral);font-size:24px;animation:heartbeat 1.4s ease infinite}.quiz-dots{display:flex;justify-content:center;gap:8px;margin-top:20px}.quiz-dots i{width:9px;height:9px;border-radius:50%;background:#17352f26}.quiz-dots i.done{background:var(--coral)}.unlock-card{position:relative;padding-top:60px;text-align:center;border:1.5px dashed var(--ink)}.unlock-stamp{position:absolute;top:17px;left:50%;transform:translate(-50%) rotate(-2deg);white-space:nowrap;padding:5px 9px;border:2px double var(--coral);color:var(--coral);font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.08em}.unlock-icon{display:grid;place-items:center;width:76px;height:76px;margin:2px auto 22px;border-radius:50%;background:var(--yellow);font-family:"DM Serif Display",serif;font-size:45px;font-style:italic;transform:rotate(-4deg)}.unlock-card>p:not(.card-label){margin:0 0 22px;font-size:13px;line-height:1.55}.progress-wrap{margin:26px 0 32px}.progress-copy{display:flex;justify-content:space-between;font-size:11px;text-transform:uppercase;letter-spacing:.09em;margin-bottom:9px}.progress-track{height:3px;background:#17352f26}.progress-track span{display:block;height:100%;background:var(--coral);transition:width .4s ease}.stage-hero{display:grid;grid-template-columns:64px 1fr;align-items:start;position:relative}.stage-number{font-family:"DM Serif Display",serif;color:var(--coral);font-size:44px;line-height:.9}.stage-hero h2{margin:0}.postcard-decoration{height:56px;display:flex;justify-content:flex-end;align-items:center;gap:18px;font-family:"DM Serif Display",serif;color:var(--coral)}.postcard-decoration span:last-child{display:grid;place-items:center;width:42px;height:42px;border:1px solid var(--coral);border-radius:50%;transform:rotate(12deg)}.stage-story{font-family:"DM Serif Display",serif;font-size:20px;line-height:1.35;margin:4px 0 24px}.mission-card,.challenge-card,.checkpoint{padding:22px 20px;margin:14px 0;border:1px solid var(--line);background:var(--cream);position:relative}.mission-card{border-top:4px solid var(--yellow)}.mission-card>p:not(.card-label){font-size:14px;line-height:1.55}.route-button{margin-top:20px}.maps-note{text-align:center;font-size:10px!important;opacity:.58;margin:13px 0 0}.challenge-card{background:#a9b8a43b}.challenge-card h3,.checkpoint h3{font-family:"DM Serif Display",serif;font-size:20px;font-weight:400;margin:0 0 16px}.mini-options{display:grid;grid-template-columns:1fr;gap:8px}.mini-options button{padding:11px 12px;font-size:13px}.success-copy{color:#33715d;font-size:12px;margin:14px 0 0}.checkpoint{border:1.5px dashed var(--ink);margin-top:18px;text-align:center}.checkpoint-icon{margin:-4px auto 10px;display:grid;place-items:center;width:42px;height:42px;background:var(--yellow);border-radius:50%;font-size:23px}.checkpoint .primary-button{margin-top:18px}.location-message{padding:14px 0;font-size:13px}.spinner{width:14px;height:14px;display:inline-block;border:2px solid var(--line);border-top-color:var(--coral);border-radius:50%;animation:spin .7s linear infinite;vertical-align:-3px;margin-right:5px}@keyframes spin{to{transform:rotate(360deg)}}.location-result{font-size:13px;line-height:1.5}.secret-radar{padding:5px 0 2px}.radar-dial{width:174px;height:174px;margin:0 auto 14px;border:1px solid rgba(23,53,47,.25);border-radius:50%;position:relative;background:radial-gradient(circle,rgba(239,200,74,.28) 0 3px,transparent 4px),repeating-radial-gradient(circle,transparent 0 27px,rgba(23,53,47,.08) 28px 29px)}.radar-dial:before,.radar-dial:after{content:"";position:absolute;background:#17352f1f}.radar-dial:before{width:1px;top:0;bottom:0;left:50%}.radar-dial:after{height:1px;left:0;right:0;top:50%}.radar-north{position:absolute;top:8px;left:50%;transform:translate(-50%);z-index:2;font-size:9px;font-weight:700;color:var(--coral)}.radar-arrow{position:absolute;top:50%;left:50%;z-index:3;width:44px;height:112px;transform-origin:50% 50%;display:flex;justify-content:center;color:var(--coral);font-size:68px;line-height:1;text-shadow:0 2px 0 var(--cream);transition:transform .35s ease}.radar-dial i{position:absolute;width:6px;height:6px;border-radius:50%;background:var(--ink);opacity:.16}.radar-dial i:nth-of-type(1){left:24px;top:62px}.radar-dial i:nth-of-type(2){right:29px;bottom:38px}.radar-dial i:nth-of-type(3){left:54px;bottom:18px}.radar-distance{font-family:"DM Serif Display",serif;font-size:34px;color:var(--coral);margin:0}.radar-cap{margin:1px 0 10px;text-transform:uppercase;letter-spacing:.12em;font-size:10px;font-weight:700}.radar-help{max-width:310px;margin:0 auto;font-size:10px;line-height:1.45;opacity:.62}.demo-heading{margin-bottom:22px}.compass-demo .checkpoint{margin-top:0}.demo-controls{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:16px}.demo-controls .secondary-button{min-height:54px}.demo-controls .primary-button{min-height:54px;box-shadow:3px 3px 0 var(--coral)}.demo-controls .text-button{grid-column:1 / -1;margin-top:4px}.secondary-button{border:1px solid var(--ink);background:transparent;padding:10px 15px;cursor:pointer}.fallback{border-top:1px solid var(--line);margin-top:20px;padding-top:12px}.joker-note{margin:10px 0 0;font-size:10px;opacity:.62}.text-button{border:0;background:transparent;text-decoration:underline;text-underline-offset:3px;font-size:11px;cursor:pointer;opacity:.7}.code-row{display:flex;margin-top:12px}.code-row input{min-width:0;flex:1;border:1px solid var(--line);border-right:0;background:#fff;padding:11px;text-transform:uppercase}.code-row button{border:0;background:var(--ink);color:#fff;padding:0 15px;cursor:pointer}.success-panel{position:relative;padding-top:56px}.stamp{position:absolute;top:7px;left:50%;transform:translate(-50%) rotate(-7deg);color:var(--coral);border:3px double var(--coral);padding:5px 10px;font-weight:700;letter-spacing:.1em}.finale{text-align:center}.finale:before{content:"";position:absolute;width:250px;height:250px;background:var(--yellow);border-radius:50%;top:100px;left:-145px}.finale-content{margin-top:70px;position:relative;z-index:1}.finale h1{line-height:.88}.finale .lead{margin-left:auto;margin-right:auto}.score-seal{width:180px;height:180px;margin:32px auto 15px;border:1px solid var(--coral);outline:1px dashed var(--coral);outline-offset:6px;border-radius:50%;display:flex;flex-direction:column;justify-content:center;transform:rotate(-3deg);background:#f3eadbd9}.score-seal span,.score-seal small{text-transform:uppercase;letter-spacing:.1em;font-size:8px}.score-seal strong{font-family:"DM Serif Display",serif;color:var(--coral);font-size:52px;line-height:1}.score-verdict{font-family:"DM Serif Display",serif;font-style:italic}.final-ticket{margin-top:28px;padding:25px 18px;border:1px dashed var(--ink);background:var(--cream)}.final-ticket strong{display:block;font-family:"DM Serif Display",serif;font-size:28px;font-weight:400}.final-ticket p{margin-bottom:0}.restart{margin-top:26px}.confetti{position:absolute;inset:0;pointer-events:none;overflow:hidden}.confetti i{--x: calc((var(--i) * 47) % 100);position:absolute;top:-20px;left:calc(var(--x) * 1%);width:7px;height:13px;background:var(--coral);animation:fall calc(3s + (var(--i) % 4) * .5s) calc((var(--i) % 7) * .2s) linear infinite;transform:rotate(calc(var(--i) * 31deg))}.confetti i:nth-child(3n){background:var(--yellow);border-radius:50%}.confetti i:nth-child(4n){background:var(--ink)}@keyframes fall{to{transform:translateY(105vh) rotate(540deg)}}@media(min-width:700px){body{padding:24px 0}main{min-height:calc(100vh - 48px);box-shadow:0 18px 60px #17352f24;border:1px solid rgba(23,53,47,.1);padding-left:32px;padding-right:32px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important}}
