@font-face{font-family:Fraunces;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/fraunces-latin-500-normal-DnGCNyPD.woff2)format("woff2"),url(/assets/fraunces-latin-500-normal-BTR4KCeb.woff)format("woff")}@font-face{font-family:Fraunces;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/fraunces-latin-600-normal-BFCDtZfi.woff2)format("woff2"),url(/assets/fraunces-latin-600-normal-DL5QCzvS.woff)format("woff")}@font-face{font-family:Outfit;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/outfit-latin-400-normal-BGsTXAXT.woff2)format("woff2"),url(/assets/outfit-latin-400-normal-DMwTpYkH.woff)format("woff")}@font-face{font-family:Outfit;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/outfit-latin-500-normal-DKnIMDSk.woff2)format("woff2"),url(/assets/outfit-latin-500-normal-ClnHRwRh.woff)format("woff")}@font-face{font-family:Outfit;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/outfit-latin-600-normal-B7SfZ07L.woff2)format("woff2"),url(/assets/outfit-latin-600-normal-BEfTtDA7.woff)format("woff")}:root{--sand:#f3e6d0;--paper:#fff8ee;--paper-edge:#ead9bc;--ink:#2a2118;--ink-soft:#5c4e3f;--volcanic:#16120e;--cabin:#1c1712;--dash:#241e18;--ocean:#3d7a7c;--lagoon:#7eb8b0;--sunset:#e27d60;--gold:#d4a84b;--rose:#e8b4b8;--minion:#f5d76e;--window:#f4c38b;--ok:#6a9a6b;--shadow:0 18px 50px #140c0659;--font-display:"Fraunces", "Iowan Old Style", Georgia, serif;--font-ui:"Outfit", "Avenir Next", system-ui, sans-serif}*{box-sizing:border-box}html,body,#root{min-height:100%}html{-webkit-text-size-adjust:100%;height:100dvh}body{color:var(--ink);font-family:var(--font-ui);overscroll-behavior:none;-webkit-tap-highlight-color:transparent;touch-action:manipulation;background:#0c0a08;min-height:100dvh;margin:0}button,textarea,input{font:inherit;color:inherit}textarea,input{font-size:16px}button{cursor:pointer}button:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid color-mix(in srgb, var(--gold) 78%, white);outline-offset:3px}#root{min-height:100dvh}@media (width>=520px){body{background:radial-gradient(at 50% 0,#3a2a1c 0%,#0c0a08 55%);justify-content:center;align-items:stretch;min-height:100dvh;padding:28px 0;display:flex}#root{width:400px;min-height:calc(100dvh - 56px);max-height:900px;box-shadow:0 0 0 10px #1a1410, 0 0 0 12px #3a2e22, var(--shadow);border-radius:32px;overflow:hidden}}.app{height:100%;min-height:100dvh;padding-top:env(safe-area-inset-top,0px);position:relative;overflow:hidden}@media (width>=520px){.app{height:100%;min-height:100%}}.layer{position:absolute;inset:0}.screen{-webkit-overflow-scrolling:touch;flex-direction:column;height:100%;scroll-padding-bottom:38vh;display:flex;overflow:auto}.btn:disabled{opacity:.4;cursor:not-allowed;box-shadow:none}.screen-pad{padding:22px 22px calc(28px + env(safe-area-inset-bottom,0px))}.cabin-bg,.dusk-bg{background:radial-gradient(120% 70% at 50% -10%, #f4c38b 0%, transparent 42%), radial-gradient(80% 50% at 100% 100%, #3d7a7c22 0%, transparent 50%), linear-gradient(180deg, #2a1c14 0%, var(--cabin) 38%, #120f0c 100%);color:var(--sand)}.final-screen{background:radial-gradient(circle at 50% 76%,#e27d602e,#0000 28%),radial-gradient(at 50% 105%,#3d7a7c52,#0000 44%),linear-gradient(#17120f 0%,#2b1b14 58%,#101516 100%);justify-content:center;position:relative;overflow:hidden}.final-stars{pointer-events:none;opacity:.55;background:radial-gradient(circle at 12% 12%,#fff8ee 0 1px,#0000 1.6px),radial-gradient(circle at 78% 9%,#fff8ee 0 1px,#0000 1.7px),radial-gradient(circle at 91% 27%,#d4a84b 0 1px,#0000 1.8px),radial-gradient(circle at 22% 35%,#fff8ee 0 1px,#0000 1.6px),radial-gradient(circle at 66% 31%,#fff8ee 0 1px,#0000 1.5px),radial-gradient(circle at 42% 18%,#d4a84b 0 1px,#0000 1.8px);position:absolute;inset:0}.final-progress{z-index:1;justify-content:center;gap:7px;margin-bottom:18px;display:flex;position:relative}.final-progress i{background:#fff8ee33;border-radius:999px;width:5px;height:5px;transition:width .3s,background .3s}.final-progress i.read{background:#d4a84b80}.final-progress i.on{background:var(--gold);width:22px}.final-letter{z-index:1;flex-direction:column;flex:1;justify-content:center;width:100%;min-height:0;display:flex;position:relative}.final-van{place-items:center;margin:-12px 0 22px;display:grid}.final-title{color:#fff8ee;max-width:320px;margin:8px 0 20px;font-size:clamp(2.2rem,11vw,3.15rem)}.final-copy{color:#fff8eeeb;max-width:330px;font-family:var(--font-display);margin:0;font-size:1.2rem;line-height:1.55}.final-copy-soft{color:#f4e5ccb3;font-family:var(--font-display);margin-top:18px;font-size:.98rem}.final-signature{color:var(--gold);font-family:var(--font-display);margin:24px 0 28px;font-size:1.45rem;font-style:italic}.final-letter>.btn{margin-top:30px}.final-letter .final-signature+.btn{margin-top:0}.paper-bg{color:var(--ink);background:linear-gradient(#fff8ee 0%,#f6ead4 100%)}.kicker{letter-spacing:.16em;text-transform:uppercase;opacity:.7;margin:0 0 6px;font-size:.72rem}.display{font-family:var(--font-display);font-optical-sizing:auto;margin:0;font-weight:600;line-height:1.15}.lede,.prose{margin:0;font-size:1.05rem;line-height:1.55}.prose+.prose{margin-top:1rem}.btn{appearance:none;background:var(--gold);color:var(--volcanic);letter-spacing:.01em;border:0;border-radius:999px;padding:14px 22px;font-weight:600;box-shadow:0 8px 20px #d4a84b40}.btn:active{transform:translateY(1px)}.btn-ghost{color:inherit;box-shadow:none;border:1px solid color-mix(in srgb, currentColor 28%, transparent);background:0 0}.btn-paper{background:var(--paper);color:var(--ink);box-shadow:var(--shadow)}.btn-rose{background:var(--sunset);color:#fff;box-shadow:0 8px 20px #e27d6047}.btn-row{flex-wrap:wrap;gap:10px;display:flex}.btn-row>*{flex:140px}.topbar{justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px;display:flex}.back{appearance:none;background:color-mix(in srgb, currentColor 10%, transparent);color:inherit;border:0;border-radius:999px;padding:8px 12px;font-size:.88rem}.paper{background:var(--paper);color:var(--ink);box-shadow:var(--shadow);border-radius:22px;padding:22px 20px 20px;position:relative}.paper:before{content:"";background:var(--paper-edge);height:1px;position:absolute;inset:8px 8px auto}.stamp{border:3px solid color-mix(in srgb, var(--sunset) 80%, #6a2a1a);color:#8a3a28;width:72px;height:72px;font-family:var(--font-display);background:color-mix(in srgb, var(--sunset) 12%, var(--paper));box-shadow:inset 0 0 0 4px color-mix(in srgb, var(--sunset) 25%, transparent);border-radius:50%;place-items:center;font-size:1.6rem;display:grid;transform:rotate(-12deg)}.welcome{justify-content:flex-end}.welcome-art{flex:1;place-items:end center;min-height:280px;padding:20px 16px 0;display:grid}.welcome-copy{padding:8px 22px calc(36px + env(safe-area-inset-bottom,0px))}.welcome-copy .display{margin-bottom:12px;font-size:2.15rem}.welcome-copy .lede{color:color-mix(in srgb, var(--sand) 80%, transparent);margin-bottom:22px}.lock-card{margin-top:auto}.lock-input{border:0;border-bottom:2px solid var(--paper-edge);width:100%;font-size:1.35rem;font-family:var(--font-display);background:0 0;outline:none;margin:16px 0 12px;padding:10px 2px}.lock-msg{min-height:1.4em;color:var(--sunset);margin:0 0 14px;font-size:.95rem}.cabin-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.cabin-head .display{font-size:1.7rem}.km{letter-spacing:.12em;text-transform:uppercase;opacity:.65;font-size:.78rem}.window{background:linear-gradient(#f0c48a 0%,#e27d60 42%,#3d7a7c 100%);border-radius:18px 18px 8px 8px;height:148px;margin:18px 0 10px;position:relative;overflow:hidden;box-shadow:inset 0 0 0 6px #2b221a}.window-island{clip-path:polygon(0 70%,12% 40%,28% 55%,46% 22%,62% 48%,80% 30%,100% 60%,100% 100%,0 100%);background:#5a4632;height:38px;position:absolute;bottom:18px;left:18%;right:10%}.window-sea{background:#2f686c;height:28px;position:absolute;inset:auto 0 0}.dash-crew{z-index:1;justify-content:space-between;align-items:flex-end;margin:-28px 8px 8px;display:flex;position:relative}.road{padding:8px 0 12px 22px;position:relative}.road:before{content:"";background:linear-gradient(180deg, var(--gold), #5c4e3f);opacity:.7;width:2px;position:absolute;top:8px;bottom:18px;left:7px}.stop-card{text-align:left;appearance:none;background:color-mix(in srgb, var(--paper) 10%, transparent);width:100%;color:var(--sand);border:0;border:1px solid color-mix(in srgb, var(--sand) 12%, transparent);border-radius:16px;margin-bottom:10px;padding:12px 14px 12px 16px;position:relative}.stop-card:before{content:"";width:12px;height:12px;box-shadow:0 0 0 3px var(--cabin);background:#5c4e3f;border-radius:50%;position:absolute;top:18px;left:-19px}.stop-card.open:before{background:var(--gold)}.stop-card.done:before{background:var(--lagoon)}.stop-card.next{background:color-mix(in srgb, var(--paper) 92%, white);color:var(--ink);box-shadow:var(--shadow)}.stop-card.next:before{background:var(--sunset)}.stop-card.locked{opacity:.48}.stop-card small{opacity:.65;letter-spacing:.08em;text-transform:uppercase;margin-bottom:2px;font-size:.75rem;display:block}.stop-card strong{font-family:var(--font-display);font-size:1.15rem;font-weight:600}.cabin-actions{gap:10px;margin-top:auto;padding-top:8px;display:flex}.page-dots{gap:6px;margin:14px 0;display:flex}.page-dots i{background:color-mix(in srgb, var(--ink) 22%, transparent);border-radius:50%;width:7px;height:7px;display:block}.page-dots i.on{background:var(--sunset);border-radius:99px;width:16px}.textarea{border:1px dashed var(--paper-edge);resize:vertical;background:#fffdf8;border-radius:16px;outline:none;width:100%;min-height:140px;padding:14px}.game-stage{color:var(--sand);background:radial-gradient(circle at 50% 0,#f5d76e55,#0000 46%),#1a1410;border-radius:22px;min-height:240px;padding:18px}.choice-grid{grid-template-columns:1fr 1fr 1fr;gap:8px;margin-top:16px;display:grid}.choice{appearance:none;color:var(--ink);background:#fff8ee;border:0;border-radius:16px;padding:14px 8px;font-weight:600}.choice.mio{background:var(--rose)}.choice.tuyo{background:var(--minion)}.choice.nuestro{background:var(--lagoon)}.pack-grid{grid-template-columns:1fr 1fr;gap:8px;display:grid}.pack-item{appearance:none;color:var(--ink);text-align:left;background:#fff8ee;border:0;border-radius:14px;padding:12px}.pack-item.in{background:var(--lagoon)}.pack-item.no{background:#e8c4b8;animation:.4s shake}@keyframes shake{25%{transform:translate(-4px)}50%{transform:translate(4px)}75%{transform:translate(-3px)}}.van-well{color:var(--sand);background:#1a1410;border-radius:18px;min-height:72px;margin-bottom:12px;padding:12px 14px}.van-well span{background:color-mix(in srgb, var(--gold) 25%, transparent);border-radius:999px;margin:3px 4px 0 0;padding:4px 8px;font-size:.8rem;display:inline-block}.fv{background:#05080c;border-radius:22px;position:relative;overflow:hidden}.fv-stage{width:100%;position:relative}.fv-photo{vertical-align:middle;width:100%;height:auto;display:block}.fv-name{font-family:var(--font-display);letter-spacing:.06em;color:#fff8ee;text-shadow:0 1px 8px #140c0659;pointer-events:none;margin:0;font-size:.92rem;position:absolute;bottom:14px;left:14px}.pin-wrap{z-index:1;width:28px;height:34px;position:absolute;transform:translate(-50%,-100%)}.pin{appearance:none;background:var(--paper);width:28px;height:28px;color:var(--ink);border:0;border-radius:50% 50% 50% 0;transform:rotate(-45deg);box-shadow:0 6px 14px #00000040}.pin.locked{background:var(--volcanic);color:var(--gold)}.pin.open{background:var(--gold)}.pin.special{background:var(--sunset);color:#fff8ee}.pin i{font-size:.75rem;font-style:normal;display:block;transform:rotate(45deg)}.sheet{z-index:2;position:absolute;inset:auto 14px 14px}.reason{font-family:var(--font-display);margin:0;font-size:1.45rem;line-height:1.3}.reason-n{letter-spacing:.14em;text-transform:uppercase;opacity:.6;margin-bottom:10px;font-size:.78rem}.glove-bg{color:var(--sand);background:radial-gradient(90% 42% at 50% 0,#d4a84b33,#0000 70%),linear-gradient(#33261c 0%,#1c1712 48%,#100e0b 100%)}.glove-header{margin:2px 2px 20px}.glove-header h1{color:#fff8ee;font-size:2.45rem}.glove-header>p:last-child{color:#f4e5cca8;margin:7px 0 0;font-size:.9rem}.glove-box{background:linear-gradient(145deg,#ffffff06,#0000 30%),#18120e;border:2px solid #594433;border-radius:24px;flex:1;min-height:340px;padding:34px 13px 14px;position:relative;overflow:auto;box-shadow:inset 0 12px 28px #0000008c,0 10px 24px #00000038}.glove-latch{background:#6d5741;border-radius:999px;width:48px;height:8px;position:absolute;top:10px;left:50%;transform:translate(-50%);box-shadow:inset 0 2px 3px #00000059}.glove-empty{color:#f4e5ccb3;text-align:center;padding:28px 12px}.treasure-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding-bottom:4px;display:grid}.treasure-item{appearance:none;width:100%;min-height:132px;color:var(--ink);text-align:left;background:#f0dfbf;border:0;border-radius:17px;padding:14px;position:relative;overflow:hidden;box-shadow:0 7px 16px #00000040}.treasure-item.story,.treasure-item.trip{grid-column:1/-1;min-height:112px}.treasure-item.story{color:#fff8ee;background:radial-gradient(circle at 85% 15%,#fff8ee2e,#0000 24%),linear-gradient(135deg,#b85f4f,#d88c67)}.treasure-item.stamp{background:radial-gradient(circle at 90% 8%,#ffffff59,#0000 28%),#ead39d}.treasure-item.note{background:#e7c5c1}.treasure-item.dance{color:#fff8ee;background:#3f7776}.treasure-item.trip{color:#fff8ee;background:linear-gradient(110deg,#e77f68eb,#3d7a7cf2)}.treasure-item.place{background:#e9dbc0}.treasure-item small{opacity:.62;letter-spacing:.12em;text-transform:uppercase;margin:12px 0 3px;font-size:.65rem;font-weight:600;display:block}.treasure-item strong{font-family:var(--font-display);font-size:1.08rem;line-height:1.15;display:block}.treasure-icon{width:31px;height:31px;font-family:var(--font-display);background:#ffffff52;border-radius:50%;place-items:center;font-size:1rem;line-height:1;display:grid}.glove-open{min-height:100%;color:var(--ink);background:linear-gradient(145deg, #ffffff80, transparent 38%), var(--paper);border-radius:18px;padding:22px 20px;box-shadow:0 8px 22px #00000047}.glove-open .treasure-icon{color:#fff8ee;background:var(--sunset);margin-bottom:18px}.glove-open h2{margin-bottom:14px;font-size:1.8rem}.glove-open .prose{color:var(--ink-soft)}.glove-open .btn{width:100%;margin-top:22px}.glove-open .btn+.btn{margin-top:9px}.roadbook-bg{color:var(--ink);background:linear-gradient(90deg,#0000 45px,#e77f682e 46px,#0000 47px),repeating-linear-gradient(#0000 0 31px,#3d7a7c0f 32px,#0000 33px),#fffaf0;position:relative}.roadbook-header{margin:0 3px 20px 25px}.roadbook-header h1{font-size:2.5rem}.roadbook-header>p:last-child{max-width:310px;color:var(--ink-soft);margin:7px 0 0;font-size:.92rem;line-height:1.4}.roadbook-nav{z-index:20;pointer-events:none;min-height:36px;position:sticky;top:-10px}.roadbook-nav .back{pointer-events:auto;transform-origin:35%;position:relative;overflow:visible}.roadbook-nav .back span{z-index:2;position:relative}.fairy-spark{z-index:3;color:#fff8c9;font-family:var(--font-display);pointer-events:none;filter:drop-shadow(0 0 4px #fff2a6);font-style:normal;display:none;position:absolute}.fairy-stuck .back{color:#fffaf0;background:linear-gradient(110deg,#e77f68f5,#6f65b2f0,#3d7a7cf5) 0 0/220% 220%;animation:3.1s ease-in-out infinite fairy-float,4.6s ease-in-out infinite fairy-morph,5s linear infinite fairy-colours;box-shadow:0 0 0 1px #fff8c966,0 0 16px #e77f68b8,0 8px 22px #442d5247}.fairy-stuck .fairy-spark{display:block}.fairy-stuck .fairy-spark-one{animation:1.8s ease-in-out infinite fairy-spark-one;top:-10px;right:3px}.fairy-stuck .fairy-spark-two{font-size:1.4rem;animation:2.2s ease-in-out .35s infinite fairy-spark-two;bottom:1px;right:-9px}.fairy-stuck .fairy-spark-three{animation:2s ease-in-out .7s infinite fairy-spark-three;bottom:-12px;left:12px}.roadbook-pages{border-top:1px solid #523a271f;flex-shrink:0;min-height:0;padding:12px 0 18px 28px;position:relative;overflow:visible}.roadbook-binding{z-index:3;pointer-events:none;background:radial-gradient(circle,#7f6c59 0 3px,#3e342b 3.5px 4.5px,#0000 5px) top/15px 25px repeat-y;width:15px;position:absolute;top:12px;bottom:0;left:-2px}.roadbook-empty{text-align:center;padding:36px 12px}.roadbook-index{padding-bottom:4px}.roadbook-section+.roadbook-section{margin-top:26px}.roadbook-section-title{align-items:center;gap:8px;margin:0 2px 10px;display:flex}.roadbook-section-title span{color:#fffaf0;background:var(--sunset);border-radius:50%;place-items:center;width:25px;height:25px;font-size:.62rem;font-weight:600;display:grid}.roadbook-section-title h2{font-family:var(--font-display);margin:0;font-size:1.15rem}.roadbook-section-title i{color:var(--ink-soft);margin-left:auto;font-size:.72rem;font-style:normal}.roadbook-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.roadbook-card{appearance:none;width:100%;min-height:132px;color:var(--ink);text-align:left;background:#efe0c3;border:0;border-radius:6px;padding:14px;transition:box-shadow .22s,filter .22s;position:relative;overflow:hidden;box-shadow:0 5px 12px #3f2b1b29}.roadbook-card:before{content:"";z-index:0;pointer-events:none;background:linear-gradient(90deg,#0000,#fffadc61,#0000);width:34%;animation:6.5s ease-in-out infinite memory-glimmer;position:absolute;inset:-35% auto -35% -55%;transform:skew(-18deg)translate(-240%)}.roadbook-card:nth-child(2):before{animation-delay:.9s}.roadbook-card.story,.roadbook-card.trip{grid-column:1/-1;min-height:118px}.roadbook-card.story{color:#fffaf0;background:linear-gradient(105deg,#1c171238,#0000),linear-gradient(135deg,#d47b60,#3d7a7c)}.roadbook-card.story:after{content:"";border:2px dashed #fffaf06b;border-radius:50%;width:105px;height:82px;position:absolute;bottom:-24px;right:-15px;transform:rotate(-18deg)}.roadbook-card.stamp{background:#f0dcae;border:2px dashed #72533052}.roadbook-card.letter{background:linear-gradient(165deg,#0000 72%,#e77f6833 73%),#f3dfd8}.roadbook-card.mission{color:#fffaf0;background:#527f7c}.roadbook-card.gift{background:radial-gradient(circle at 82% 18%,#ffffff8c,#0000 22%),#efd18f}.roadbook-card.trip{color:#fffaf0;background:linear-gradient(100deg,#1c171226,#1c17128f),url(/maps/fuerteventura.jpg) 50% 63%/cover}.roadbook-card.place{color:#fffaf0;background:linear-gradient(#0000 20%,#0d1214bd 100%),url(/maps/fuerteventura.jpg) 50%/cover}.roadbook-card small{z-index:1;opacity:.7;letter-spacing:.12em;text-transform:uppercase;margin:13px 0 3px;font-size:.63rem;font-weight:600;display:block;position:relative}.roadbook-card strong{z-index:1;font-family:var(--font-display);font-size:1.08rem;line-height:1.17;display:block;position:relative}.roadbook-card .treasure-icon{z-index:1;border:1px solid #ffffff42;width:29px;height:29px;position:relative}.roadbook-open{min-height:100%;color:var(--ink);background:#fffaf0cc;padding:18px 16px}.roadbook-open>.treasure-icon{color:#fffaf0;background:var(--sunset);margin-bottom:18px}.roadbook-open h2{margin:0 0 14px;font-size:1.85rem}.roadbook-open .prose{color:var(--ink-soft)}.roadbook-open .btn{width:100%;margin-top:24px}.roadbook-open .btn+.btn{margin-top:9px}.anniversary-map-card{color:#fff8ee;background:radial-gradient(circle at 80% 8%,#f5d76e33,#0000 28%),linear-gradient(145deg,#32233c,#1c3d42 62%,#17120f);border-radius:20px;margin:0 0 28px;padding:18px;position:relative;overflow:hidden;box-shadow:0 12px 28px #2b1e2d47}.anniversary-map-head{align-items:flex-start;gap:12px;display:flex}.anniversary-map-head h2{max-width:220px;font-size:1.45rem}.anniversary-map-head>span{color:var(--gold);border:1px solid #fff8ee33;border-radius:999px;margin-left:auto;padding:5px 9px;font-size:.72rem}.map-puzzle{aspect-ratio:.9;background:#0a1115;border:1px solid #fff8ee21;border-radius:14px;grid-template-columns:repeat(2,1fr);width:min(210px,76%);margin:18px auto;display:grid;position:relative;overflow:hidden;box-shadow:0 0 28px #7eb8b024}.map-piece{z-index:1;appearance:none;color:#fff8ee6b;background:linear-gradient(145deg,#28212e,#17292c);border:1px solid #fff8ee14;position:relative}.map-piece.found{color:#fff5bb;background-image:linear-gradient(#120c0814,#120c0838),url(/maps/fuerteventura.jpg);background-repeat:no-repeat;background-size:200% 300%;animation:4s ease-in-out infinite piece-awake}.map-piece.available{color:#fff3a8;background:radial-gradient(circle,#f5d76e3d,#0000 58%),linear-gradient(145deg,#523a58,#244d50);animation:2.4s ease-in-out infinite piece-waiting}.map-piece i{z-index:2;font-family:var(--font-display);filter:drop-shadow(0 0 6px);font-size:.85rem;font-style:normal;position:relative}.map-piece.piece-1{background-position:0 0}.map-piece.piece-2{background-position:100% 0}.map-piece.piece-3{background-position:0}.map-piece.piece-4{background-position:100%}.map-piece.piece-5{background-position:0 100%}.map-piece.piece-6{background-position:100% 100%}.map-puzzle-glow{z-index:2;pointer-events:none;background:linear-gradient(120deg,#0000 35%,#fff8c91f,#0000 65%);animation:5s ease-in-out infinite map-light;position:absolute;inset:0;transform:translate(-100%)}.map-puzzle.complete{box-shadow:0 0 0 1px #f5d76e59,0 0 34px #f5d76e3d}.anniversary-map-note{color:#fff8eeb8;text-align:center;min-height:38px;margin:0;font-size:.85rem;line-height:1.45}.anniversary-map-link{appearance:none;color:var(--gold);background:0 0;border:0;margin:9px auto 0;font-weight:600;display:block}.anniversary-route-button{width:100%;margin-top:12px}.mission-magic-bg,.final-route-bg{color:var(--sand);background:radial-gradient(circle at 75% 8%,#f5d76e2e,#0000 24%),radial-gradient(circle at 10% 75%,#7eb8b024,#0000 28%),linear-gradient(160deg,#24192b,#1b1714 52%,#10252a);position:relative}.mission-topbar{justify-content:space-between;align-items:center;gap:12px;display:flex}.mission-topbar>span{color:#f4e5cc8c;font-size:.75rem}.mission-story-card,.route-stage-card,.mission-locked-card,.mission-complete-card,.route-waiting{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:radial-gradient(circle at 92% 5%,#f5d76e1f,#0000 25%),#fff8ee13;border:1px solid #fff8ee1f;border-radius:24px;margin:auto 0;padding:24px 22px;position:relative;overflow:hidden;box-shadow:0 18px 48px #0503084d}.mission-story-card h1,.route-stage-card h1,.mission-locked-card h1,.mission-complete-card h1,.route-waiting h1{color:#fff8ee;margin:8px 0 18px;font-size:2rem}.mission-story-card .prose,.route-stage-card .prose,.mission-locked-card .prose,.mission-complete-card .prose,.route-waiting .prose{color:#f4e5ccc7}.mission-story-card>.btn,.route-stage-card>.btn,.mission-complete-card>.btn{width:100%;margin-top:24px}.mission-page-dots{gap:6px;margin:24px 0 0;display:flex}.mission-page-dots i{background:#fff8ee2e;border-radius:999px;width:6px;height:6px;transition:width .3s,background .3s}.mission-page-dots i.on{background:var(--gold);width:24px}.mission-orb{color:#fff4aa;background:radial-gradient(circle,#f5d76e57,#6f65b233);border-radius:50%;place-items:center;width:48px;height:48px;margin-bottom:22px;animation:3s ease-in-out infinite mission-orb;display:grid;box-shadow:0 0 28px #f5d76e40}.code-card{overflow:visible}.magic-code-input{appearance:none;color:#fff8ee;letter-spacing:.15em;text-align:center;text-transform:uppercase;background:#0503083d;border:1px solid #f5d76e6b;border-radius:16px;outline:none;width:100%;margin-top:22px;padding:15px 16px;font-size:1rem;font-weight:600;box-shadow:inset 0 0 18px #05030833}.magic-code-input,.lock-input,.textarea{scroll-margin-bottom:38vh}.magic-code-input:focus{border-color:#fff1a8;box-shadow:0 0 0 3px #f5d76e1f,0 0 22px #f5d76e29}.code-error{color:#f3b3aa;margin:10px 0 0;font-size:.83rem;line-height:1.4}.mission-success{overflow:hidden}.mission-complete-card{z-index:2;text-align:center}.piece-medallion{color:#271c2d;width:82px;height:82px;font-family:var(--font-display);background:linear-gradient(145deg,#fff1a8,#d4a84b);border:1px solid #fff8c98c;border-radius:32% 68% 62% 38%/42% 37% 63% 58%;place-items:center;margin:0 auto 22px;font-size:2rem;display:grid;box-shadow:0 0 38px #f5d76e52}.magic-dust{pointer-events:none;position:absolute;inset:0}.magic-dust i{color:#fff2a6;opacity:0;font-style:normal;animation:3.8s ease-in-out infinite dust-rise;position:absolute}.magic-dust i:nth-child(3n+1){animation-delay:.2s;bottom:8%;left:12%}.magic-dust i:nth-child(3n+2){animation-delay:1.1s;bottom:2%;left:52%}.magic-dust i:nth-child(3n){animation-delay:2s;bottom:14%;right:12%}.magic-dust i:nth-child(4n){animation-delay:.7s;left:75%}.magic-dust i:nth-child(5n){animation-delay:1.6s;left:32%}.route-progress{justify-content:center;align-items:center;margin:34px 0 24px;display:flex}.route-progress>div{align-items:center;display:flex}.route-progress i{color:#fff8ee66;border:1px solid #fff8ee29;border-radius:50%;place-items:center;width:27px;height:27px;font-size:.68rem;font-style:normal;display:grid}.route-progress span{background:#fff8ee24;width:17px;height:1px}.route-progress .done i,.route-progress .now i{color:#2a2118;border-color:var(--gold);background:var(--gold);box-shadow:0 0 14px #d4a84b59}.route-progress .done span{background:var(--gold)}.route-progress .now i{animation:1.8s ease-in-out infinite route-current}.route-stage-card{margin-top:0}.route-code-label{color:#f4e5cc9e;letter-spacing:.08em;text-transform:uppercase;margin-top:24px;font-size:.76rem;display:block}.destination-reveal{color:var(--sand);background:radial-gradient(circle at 50% 35%,#f5d76e3b,#0000 35%),linear-gradient(160deg,#321d31,#1a3d42 62%,#17120f);justify-content:center;position:relative;overflow:hidden}.reveal-rays{aspect-ratio:1;opacity:.22;background:repeating-conic-gradient(from 0deg, transparent 0 12deg, #fff1a8 13deg 15deg, transparent 16deg 28deg);width:140%;animation:24s linear infinite reveal-rays;position:absolute;top:-12%;left:-20%}.destination-card{z-index:2;text-align:center;position:relative}.destination-place{color:var(--gold);letter-spacing:.14em;text-transform:uppercase;margin:12px 0 8px;font-size:.76rem;font-weight:600}.destination-card h1{color:#fff8ee;margin-bottom:18px;font-size:2.25rem}.destination-card .prose{color:#f4e5cccc}.destination-van{place-items:center;margin:26px 0 12px;display:grid}.destination-card .btn{width:100%}.install{background:color-mix(in srgb, var(--paper) 14%, transparent);color:var(--sand);border-radius:16px;margin:12px 0 6px;padding:12px 14px;font-size:.88rem;line-height:1.4}.pet{appearance:none;background:0 0;border:0;padding:0}.flash{color:var(--ink-soft);margin:12px 0 0;font-size:.95rem}.crew-svg{display:block;overflow:visible}.story-bg{color:var(--sand);background:radial-gradient(90% 50% at 50% 0,#3a2418 0%,#0000 50%),linear-gradient(#2a1c14 0%,#16120e 100%)}.story-book{touch-action:pan-y;flex:1;min-height:0}.story-page{background:var(--paper);color:var(--ink);box-shadow:var(--shadow);border-radius:22px;min-height:72%;padding:16px 18px 22px}.story-art{border-radius:16px;justify-content:center;align-items:flex-end;gap:16px;height:168px;margin-bottom:16px;display:flex;position:relative;overflow:hidden}.story-art-dusk{background:linear-gradient(#f0c48a 0%,#e27d60 46%,#3d7a7c 100%)}.story-art-stage{background:radial-gradient(circle at 50% 0,#f5d76e77,#0000 50%),#1a1410}.story-art-sand{background:linear-gradient(#f4c38b 0%,#e8d4b0 100%);align-items:center}.story-art-sea{background:linear-gradient(#f0c48a 0%,#3d7a7c 70%)}.story-art-island{background:linear-gradient(#7eb8b0 0%,#e27d60 80%)}.story-dune{clip-path:polygon(0 70%,18% 40%,40% 60%,62% 28%,82% 55%,100% 36%,100% 100%,0 100%);background:#d8c4a0;height:52px;position:absolute;bottom:0;left:0;right:0}.story-card{text-align:left;appearance:none;background:color-mix(in srgb, var(--paper) 94%, white);width:100%;color:var(--ink);box-shadow:var(--shadow);border:0;border-radius:16px;margin-bottom:14px;padding:14px 16px}.story-card small{opacity:.6;letter-spacing:.08em;text-transform:uppercase;margin-bottom:2px;font-size:.75rem;display:block}.story-card strong{font-family:var(--font-display);font-size:1.2rem}.btn,.back,.choice,.pack-item,.stop-card,.treasure-item,.pin{transition:transform .22s cubic-bezier(.22,1,.36,1),box-shadow .22s,background .22s,opacity .22s}.btn:hover{transform:translateY(-1px)}.btn:active,.choice:active,.pack-item:active,.stop-card:active,.treasure-item:active{transform:translateY(1px)scale(.98)}.page-dots i{transition:width .28s,background .28s}.kangoo-idle{transform-origin:50% 80%;animation:3.2s ease-in-out infinite kangoo-bob}.kangoo-idle .wheel{transform-origin:50%;transform-box:fill-box;animation:2.8s linear infinite wheel-spin}.cat-idle{transform-origin:50% 80%;animation:3.6s ease-in-out infinite cat-float}.cat-purr{animation:.35s ease-in-out 3 cat-purr}.goggles-idle{transform-origin:50% 70%;animation:2.4s ease-in-out infinite goggles-wiggle}.goggles-dance{animation:.55s ease-in-out infinite goggles-dance}.window{animation:8s ease-in-out infinite dusk-shift}.window-sea{animation:4.5s ease-in-out infinite sea}.window-island{animation:7s ease-in-out infinite island-drift}.stop-card.next{animation:2.4s ease-in-out infinite next-glow}.pin:not(.open):not(.locked){animation:2s ease-in-out infinite pin-pulse}.pin.locked{animation:1.6s ease-in-out infinite pin-secret}.stamp-pop{animation:.7s cubic-bezier(.22,1,.36,1) both stamp-in}.van-well span{animation:.35s cubic-bezier(.22,1,.36,1) both chip-in}@keyframes kangoo-bob{50%{transform:translateY(-4px)}}@keyframes wheel-spin{to{transform:rotate(360deg)}}@keyframes cat-float{0%,to{transform:translateY(0)rotate(-2deg)}50%{transform:translateY(-6px)rotate(2deg)}}@keyframes cat-purr{25%{transform:translate(-3px)rotate(-4deg)}75%{transform:translate(3px)rotate(4deg)}}@keyframes goggles-wiggle{0%,to{transform:rotate(-4deg)translateY(0)}50%{transform:rotate(5deg)translateY(-5px)}}@keyframes goggles-dance{0%,to{transform:translateY(0)rotate(-8deg)}50%{transform:translateY(-8px)rotate(8deg)}}@keyframes dusk-shift{50%{filter:saturate(1.12)brightness(1.04)}}@keyframes sea{50%{height:34px;transform:translate(-10px)}}@keyframes island-drift{50%{transform:translate(6px)}}@keyframes next-glow{50%{box-shadow:0 18px 40px #e27d6047}}@keyframes pin-pulse{50%{box-shadow:0 0 0 8px #fff8ee47}}@keyframes pin-secret{50%{box-shadow:0 0 0 7px #d4a84b47}}@keyframes stamp-in{0%{opacity:0;transform:scale(.4)rotate(-40deg)}70%{opacity:1;transform:scale(1.08)rotate(-8deg)}to{transform:scale(1)rotate(-12deg)}}@keyframes chip-in{0%{opacity:0;transform:scale(.7)}}.purr-line{animation:.4s both fade-up}@keyframes fade-up{0%{opacity:0;transform:translateY(6px)}}@keyframes fairy-float{0%,to{translate:0;rotate:-1deg}35%{translate:5px -5px;rotate:2deg}68%{translate:-2px -2px;rotate:-2deg}}@keyframes fairy-morph{0%,to{border-radius:18px 999px 999px 22px;scale:1}33%{border-radius:999px 24px 999px 999px;scale:1.04 .97}66%{border-radius:999px 999px 28px;scale:.98 1.04}}@keyframes fairy-colours{0%{filter:brightness();background-position:0%}50%{filter:brightness(1.14);background-position:100%}to{filter:brightness();background-position:0%}}@keyframes fairy-spark-one{0%,to{opacity:0;transform:translate(2px,5px)scale(.2)rotate(0)}45%{opacity:1;transform:translate(0)scale(1.15)rotate(100deg)}75%{opacity:0;transform:translate(-6px,-8px)scale(.4)rotate(180deg)}}@keyframes fairy-spark-two{0%,to{opacity:0;transform:translate(-5px,-2px)scale(.3)}40%{opacity:.9;transform:translate(1px,3px)scale(1)}70%{opacity:0;transform:translate(8px,8px)scale(.2)}}@keyframes fairy-spark-three{0%,to{opacity:0;transform:translate(5px,-5px)scale(.2)rotate(0)}35%{opacity:1;transform:translate(0)scale(.9)rotate(-80deg)}70%{opacity:0;transform:translate(-8px,6px)scale(.3)rotate(-150deg)}}@keyframes memory-glimmer{0%,72%{opacity:0;transform:skew(-18deg)translate(-240%)}78%{opacity:.9}91%,to{opacity:0;transform:skew(-18deg)translate(620%)}}@keyframes piece-awake{0%,to{filter:saturate(.88)brightness(.88)}50%{filter:saturate(1.12)brightness(1.08)}}@keyframes piece-waiting{0%,to{box-shadow:inset 0 0 #f5d76e00}50%{box-shadow:inset 0 0 28px #f5d76e38}}@keyframes map-light{0%,60%{transform:translate(-120%)}85%,to{transform:translate(120%)}}@keyframes mission-orb{0%,to{border-radius:50%;transform:translateY(0)rotate(0)}50%{border-radius:38% 62% 54% 46%;transform:translateY(-6px)rotate(12deg)}}@keyframes dust-rise{0%{opacity:0;transform:translateY(0)scale(.2)rotate(0)}28%{opacity:.9}75%{opacity:.5}to{opacity:0;transform:translateY(-78vh)scale(1.1)rotate(180deg)}}@keyframes route-current{50%{transform:scale(1.12);box-shadow:0 0 22px #f5d76e94}}@keyframes reveal-rays{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.kangoo-idle,.kangoo-idle .wheel,.cat-idle,.cat-purr,.goggles-idle,.goggles-dance,.window,.window-sea,.window-island,.stop-card.next,.pin:not(.open),.pin.locked,.stamp-pop,.van-well span,.purr-line,.fairy-stuck .back,.fairy-spark,.roadbook-card:before,.map-piece,.map-puzzle-glow,.mission-orb,.magic-dust i,.route-progress .now i,.reveal-rays{animation:none}}
