:root{--paper: #f6f1e6;--paper-2: #ede5d4;--paper-3: #e3d8c2;--card: #fffdf8;--ink: #1d2233;--ink-2: #474d61;--ink-3: #8b8f9b;--line: #e2d8c4;--line-2: #d3c6ac;--accent: #4338ca;--accent-2: #6366f1;--accent-soft: #ecebfb;--glow: #22d3ee;--gold: #b7862c;--holo: linear-gradient(115deg, #67e8f9 0%, #a5b4fc 30%, #f0abfc 60%, #fcd34d 100%);--g-none: #cbbfa6;--g0: #334155;--g1: #94a3b8;--g2: #ef4444;--g3: #f59e0b;--g4: #16a34a;--g5: #9333ea;--primary: var(--accent);--primary-hover: #3730a3;--primary-light: var(--accent-soft);--primary-border: #d6d4f5;--primary-shadow: rgba(67, 56, 202, .25);--fa-primary-opacity: 1;--fa-secondary-opacity: .45}body,html,#root{height:100%;height:100dvh;margin:0;overflow:hidden}body{background-color:var(--paper);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0.45 0 0 0 0 0.38 0 0 0 0 0.25 0 0 0 .05 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");color:var(--ink);font-family:Inter,system-ui,sans-serif;-webkit-font-smoothing:antialiased}::selection{background:#c7d2fe}button{-webkit-tap-highlight-color:transparent}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--line-2);border-radius:10px;border:2px solid transparent;background-clip:padding-box}::-webkit-scrollbar-thumb:hover{background-color:var(--ink-3)}.no-scrollbar{scrollbar-width:none}.no-scrollbar::-webkit-scrollbar{display:none}.font-display{font-family:Fraunces,Georgia,serif;font-optical-sizing:auto}.hud{font-family:JetBrains Mono,ui-monospace,monospace;font-size:10px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3)}.text-holo{background:var(--holo);-webkit-background-clip:text;background-clip:text;color:transparent}.page{background:var(--card);box-shadow:inset -1px 0 0 var(--line),inset -14px 0 24px -22px #503c1459}.sheet{background:var(--card);border:1px solid var(--line);border-radius:18px;box-shadow:0 1px #fffc inset,0 8px 24px -16px #3c2d1459}.divider{height:1px;background:linear-gradient(90deg,transparent,var(--line-2),transparent)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;border-radius:12px;font-weight:700;font-size:13px;line-height:1;padding:.7rem 1rem;transition:transform .12s,box-shadow .2s,background-color .2s,color .2s,border-color .2s;-webkit-user-select:none;user-select:none;white-space:nowrap}.btn:active:not(:disabled){transform:scale(.97)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-sm{padding:.5rem .75rem;font-size:12px;border-radius:10px}.btn-xs{padding:.35rem .55rem;font-size:11px;border-radius:8px;gap:.3rem}.btn-primary{background:var(--ink);color:var(--paper);box-shadow:0 6px 16px -8px #1d2233b3}.btn-primary:hover:not(:disabled){background:#2a3150;box-shadow:0 8px 22px -8px #4338ca8c}.btn-ghost{background:transparent;color:var(--ink-2);border:1px solid var(--line)}.btn-ghost:hover:not(:disabled){background:var(--paper);color:var(--ink);border-color:var(--line-2)}.btn-quiet{background:transparent;color:var(--ink-2)}.btn-quiet:hover:not(:disabled){background:var(--paper-2);color:var(--ink)}.btn-danger{background:transparent;color:#b91c1c;border:1px solid #fecaca}.btn-danger:hover:not(:disabled){background:#fef2f2}.btn-holo{position:relative;color:var(--ink);background:var(--card);border:1.5px solid transparent;background-image:linear-gradient(var(--card),var(--card)),var(--holo);background-origin:border-box;background-clip:padding-box,border-box}.btn-holo:hover:not(:disabled){box-shadow:0 0 0 4px #a5b4fc40,0 8px 22px -10px #6366f199}.btn-holo.solid{background-image:var(--holo);color:var(--ink)}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:10px;color:var(--ink-3);transition:all .15s}.icon-btn:hover:not(:disabled){background:var(--paper-2);color:var(--ink)}.icon-btn:disabled{opacity:.35;cursor:not-allowed}.field{width:100%;background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:.65rem .8rem;font-size:14px;color:var(--ink);outline:none;transition:border-color .15s,box-shadow .15s,background .15s}.field::placeholder{color:var(--ink-3)}.field:focus{background:var(--card);border-color:var(--accent-2);box-shadow:0 0 0 4px #6366f11f}.field-sm{padding:.45rem .6rem;font-size:13px;border-radius:10px}.field:disabled{opacity:.7}select.field{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%238b8f9b' stroke-width='3'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .7rem center;padding-right:2rem}.seg{display:inline-flex;padding:3px;gap:2px;background:var(--paper-2);border-radius:12px}.seg>button{padding:.45rem .8rem;border-radius:9px;font-size:12px;font-weight:700;color:var(--ink-2);transition:all .15s;white-space:nowrap}.seg>button:hover{color:var(--ink)}.seg>button.on{background:var(--card);color:var(--ink);box-shadow:0 1px 3px #3c2d142e}.chip{display:inline-flex;align-items:center;gap:.4rem;padding:.4rem .7rem;border-radius:999px;border:1px solid var(--line);background:var(--card);color:var(--ink-2);font-size:12px;font-weight:600;transition:all .15s;white-space:nowrap;-webkit-user-select:none;user-select:none}.chip:hover{border-color:var(--line-2);color:var(--ink)}.chip.on{background:var(--ink);border-color:var(--ink);color:var(--paper)}.chip.love{background:#ecfdf5;border-color:#6ee7b7;color:#047857}.chip.avoid{background:#fef2f2;border-color:#fca5a5;color:#b91c1c;text-decoration:line-through;text-decoration-thickness:1.5px}.switch{width:34px;height:20px;border-radius:999px;background:var(--line-2);position:relative;transition:background .2s;flex-shrink:0}.switch:after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 2px #00000040;transition:transform .2s}.switch.on{background:var(--accent)}.switch.on:after{transform:translate(14px)}.g-none{background:var(--paper-2);color:var(--ink-3)}.g-0{background:var(--g0);color:#fff}.g-1{background:var(--g1);color:#fff}.g-2{background:var(--g2);color:#fff}.g-3{background:var(--g3);color:#fff}.g-4{background:var(--g4);color:#fff}.g-5{background:var(--g5);color:#fff}.vote{display:grid;grid-template-columns:repeat(6,1fr);gap:3px;padding:3px;background:var(--paper-2);border-radius:11px}.vote>button{height:28px;border-radius:8px;font:700 12px/1 JetBrains Mono,monospace;color:var(--ink-3);transition:transform .1s,background .15s,color .15s}.vote>button:hover:not(:disabled){background:var(--card);color:var(--ink)}.vote>button.on{transform:scale(1.06);box-shadow:0 3px 10px -3px #00000059;color:#fff!important;text-shadow:0 1px 1px rgba(0,0,0,.25)}.vote.lg>button{height:42px;font-size:16px;border-radius:10px}.vote>button:disabled{cursor:default}@keyframes page-in{0%{opacity:0;transform:perspective(1400px) rotateY(-7deg) translate(18px)}to{opacity:1;transform:none}}.chapter-page{animation:page-in .38s cubic-bezier(.2,.8,.2,1) both;transform-origin:left center}@keyframes fade-up{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.fade-up{animation:fade-up .3s ease both}@keyframes pop-in{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:none}}.pop-in{animation:pop-in .18s ease-out both}.place-card{perspective:1400px}.place-card .flip{position:relative;height:100%;transition:transform .6s cubic-bezier(.3,.7,.2,1);transform-style:preserve-3d}.place-card.is-flipped .flip{transform:rotateY(180deg)}.card-face,.card-back{position:relative;height:100%;border-radius:18px;overflow:hidden;backface-visibility:hidden;-webkit-backface-visibility:hidden;background:var(--card);border:1px solid var(--line);box-shadow:0 1px #ffffffe6 inset,0 10px 26px -18px #3c2d148c;transition:box-shadow .2s,transform .2s,border-color .2s}.card-back{position:absolute;top:0;right:0;bottom:0;left:0;transform:rotateY(180deg);background:#1b2034;color:#e8e6f5;border-color:#2c3352}.place-card:hover .card-face{box-shadow:0 1px #ffffffe6 inset,0 18px 34px -18px #3c2d1499;transform:translateY(-2px)}.place-card.is-selected .card-face{border-color:var(--accent-2);box-shadow:0 0 0 3px #6366f140,0 18px 34px -18px #4338ca99}.place-card.is-hovered .card-face{border-color:var(--accent-2)}.place-card.is-focused .card-face{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent),0 0 0 8px #6366f138,0 22px 40px -18px #4338cabf;animation:card-focus 1.2s ease-out 2}@keyframes card-focus{0%{box-shadow:0 0 0 3px var(--accent),0 0 #6366f18c}70%{box-shadow:0 0 0 3px var(--accent),0 0 0 16px #6366f100}to{box-shadow:0 0 0 3px var(--accent),0 0 0 8px #6366f138}}@media(hover:hover){.place-card .card-locate{opacity:0;transition:opacity .15s,background .15s}.place-card:hover .card-locate,.place-card.is-focused .card-locate{opacity:1}}.place-card.is-hidden .card-face{opacity:.55;filter:grayscale(.5)}.card-photo{position:relative;overflow:hidden;background:var(--paper-2)}.card-photo:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;opacity:0;background:linear-gradient(115deg,transparent 30%,rgba(165,243,252,.35) 45%,rgba(240,171,252,.35) 55%,transparent 70%);transform:translate(-100%);transition:opacity .2s}.place-card:hover .card-photo:after{opacity:1;animation:sheen 1.1s ease forwards}@keyframes sheen{to{transform:translate(100%)}}.card-photo img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease}.place-card:hover .card-photo img{transform:scale(1.04)}.card-pattern{background-color:#1b2034;background-image:radial-gradient(circle at 20% 15%,rgba(165,180,252,.22) 0 1.5px,transparent 2px),radial-gradient(circle at 70% 40%,rgba(103,232,249,.2) 0 1.5px,transparent 2px),radial-gradient(circle at 40% 80%,rgba(240,171,252,.2) 0 1.5px,transparent 2px),repeating-linear-gradient(45deg,rgba(255,255,255,.025) 0 2px,transparent 2px 12px),radial-gradient(120% 80% at 50% 0%,#2b3460,#1b2034 60%);background-size:90px 90px,70px 70px,110px 110px,auto,auto}@keyframes materialize{0%{opacity:0;transform:translateY(16px) scale(.9) rotateX(22deg);filter:blur(8px) saturate(0) brightness(1.6)}55%{opacity:1;filter:blur(0) saturate(1.5) brightness(1.15)}to{opacity:1;transform:none;filter:none}}@keyframes foil-sweep{0%{transform:translate(-120%) skew(-12deg)}to{transform:translate(220%) skew(-12deg)}}.card-fresh{animation:materialize .9s cubic-bezier(.2,.8,.2,1) both;animation-delay:calc(var(--i, 0) * 90ms)}.card-fresh .card-face:before{content:"";position:absolute;z-index:5;top:0;bottom:0;width:45%;pointer-events:none;background:linear-gradient(90deg,transparent,rgba(255,255,255,.75),rgba(165,243,252,.5),transparent);animation:foil-sweep 1.2s ease-out both;animation-delay:calc(var(--i, 0) * 90ms + .35s)}@keyframes holo-shift{0%{background-position:0% 50%}to{background-position:200% 50%}}.card-drawing{border-radius:18px;border:1px solid #2c3352;position:relative;overflow:hidden}.card-drawing:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;opacity:.35;background:linear-gradient(115deg,transparent 20%,#67e8f9,#a5b4fc,#f0abfc,transparent 80%);background-size:200% 100%;animation:holo-shift 1.6s linear infinite;mix-blend-mode:screen}.tl-hours{background-image:repeating-linear-gradient(90deg,var(--line) 0 1px,transparent 1px var(--hour));background-size:var(--hour) 100%}.tl-block{position:absolute;border-radius:10px;overflow:hidden;cursor:grab;touch-action:none;background:color-mix(in srgb,var(--day) 12%,var(--card));border:1px solid color-mix(in srgb,var(--day) 45%,var(--line));box-shadow:inset 3px 0 0 var(--day),0 4px 10px -8px #1e1e3280;transition:box-shadow .15s,opacity .15s}.tl-block:hover{box-shadow:inset 3px 0 0 var(--day),0 8px 18px -10px #1e1e3299;z-index:5}.tl-block.is-selected{outline:2px solid var(--ink);outline-offset:1px;z-index:6}.tl-block.is-optional{border-style:dashed;background:var(--card)}.tl-block.is-transport{background:#1d2233;color:#eef;border-color:#1d2233;box-shadow:none}.tl-block.is-dragging{opacity:.35}.tl-block.is-drop-alt{outline:2px dashed var(--accent-2);outline-offset:2px}.tl-resize{position:absolute;top:0;right:0;bottom:0;width:8px;cursor:ew-resize}.tl-resize:hover{background:color-mix(in srgb,var(--day) 30%,transparent)}.drag-ghost{position:fixed;z-index:9999;pointer-events:none;transform:translate(-50%,-60%) rotate(-2deg);box-shadow:0 18px 40px -12px #1e1e328c}.gm-style .gm-style-iw-c{padding:0!important;border-radius:16px}.gm-style .gm-style-iw-d{overflow:auto!important}.gm-style .gm-style-iw-chr{display:none}.custom-vertex-dot{width:14px;height:14px;background-color:var(--accent);border:3px solid white;border-radius:50%;box-shadow:0 2px 6px #00000059;cursor:grab}.map-marker{position:relative;cursor:pointer;transition:transform .15s,opacity .15s}.map-marker:hover,.map-marker.is-hovered{transform:scale(1.15)}.map-marker-label{display:none;position:absolute;bottom:calc(100% + 7px);left:50%;transform:translate(-50%);padding:4px 9px;border-radius:9px;background:#1d2233f0;color:#fff;font:600 11px/1.3 Inter,system-ui,sans-serif;white-space:nowrap;pointer-events:none;box-shadow:0 3px 8px #0f172a4d}.map-marker:hover .map-marker-label,.map-marker.is-hovered .map-marker-label,.map-marker.is-selected .map-marker-label{display:block}.token-marker{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--card);color:var(--ink);font-size:14px;border:3px solid var(--grade, #b9ad94);box-shadow:0 3px 8px #1d223359;--fa-primary-color: var(--ink);--fa-secondary-color: var(--grade, #b9ad94);--fa-secondary-opacity: .9}.token-marker.is-selected{transform:scale(1.3);box-shadow:0 0 0 5px #6366f159,0 3px 8px #1d223359;z-index:5}.token-marker.is-dim{opacity:.35;filter:grayscale(.7)}.token-marker.is-dim:hover{opacity:.9;filter:none}.token-marker.is-new{animation:marker-drop .6s cubic-bezier(.2,.8,.2,1.3) both}@keyframes marker-drop{0%{opacity:0;transform:translateY(-18px) scale(.6)}to{opacity:1;transform:none}}.trip-marker{width:32px;height:32px;border-radius:50%;background-color:var(--day);border:3px solid white;color:#fff;font:900 12px/1 system-ui,sans-serif;display:flex;align-items:center;justify-content:center;box-shadow:0 3px 8px #0f172a59}.trip-marker-icon{font-size:13px;--fa-primary-color: white;--fa-secondary-color: white}.trip-marker.is-anchor{border-radius:9px}.trip-marker-order{position:absolute;top:-8px;right:-9px;min-width:17px;height:17px;padding:0 4px;border-radius:9px;background:#0f172a;border:2px solid white;color:#fff;font:900 9px/13px system-ui,sans-serif;text-align:center}.trip-marker.is-optional{background-color:#fff;color:var(--day);border:3px dashed var(--day)}.trip-marker.is-optional .trip-marker-icon{--fa-primary-color: var(--day);--fa-secondary-color: var(--day)}.trip-marker.is-alternative{opacity:.55;transform:scale(.8);border-style:dashed}.trip-marker.is-focused{transform:scale(1.25);box-shadow:0 0 0 4px #0f172a40,0 3px 8px #0f172a59}.trip-marker.is-hovered,.anchor-marker.is-hovered{transform:scale(1.35);opacity:1;filter:none;animation:marker-pulse 1.2s ease-out infinite}@keyframes marker-pulse{0%{box-shadow:0 0 color-mix(in srgb,var(--day) 60%,transparent),0 3px 8px #0f172a59}to{box-shadow:0 0 0 14px transparent,0 3px 8px #0f172a59}}.anchor-marker{width:30px;height:30px;border-radius:9px;background:#0f172a;border:3px solid var(--day);color:#fff;font-size:13px;display:flex;align-items:center;justify-content:center;box-shadow:0 3px 8px #0f172a59;--fa-primary-color: white;--fa-secondary-color: white}.safe-bottom{padding-bottom:env(safe-area-inset-bottom)}.chapter-mark{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;min-width:28px;height:24px;padding:0 6px;border-radius:7px;border:1.5px solid var(--line-2);color:var(--ink-3);background:var(--card);font:600 12px/1 Fraunces,Georgia,serif;letter-spacing:.06em;transition:all .15s}.chapter-mark.sm{min-width:24px;height:20px;font-size:11px;border-radius:6px;padding:0 5px}.chapter-mark.on{background:var(--ink);border-color:var(--ink);color:var(--paper)}.steps{display:flex;gap:0}.step{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;height:38px;min-width:0;padding:0 10px 0 18px;margin-left:-6px;font-size:12.5px;font-weight:700;color:var(--ink-2);background:var(--paper-2);transition:background .15s,color .15s;position:relative;clip-path:polygon(0 0,calc(100% - 12px) 0,100% 50%,calc(100% - 12px) 100%,0 100%,12px 50%)}.step:first-child{margin-left:0;padding-left:12px;border-radius:10px 0 0 10px;clip-path:polygon(0 0,calc(100% - 12px) 0,100% 50%,calc(100% - 12px) 100%,0 100%)}.step:last-child{clip-path:polygon(0 0,100% 0,100% 100%,0 100%,12px 50%);border-radius:0 10px 10px 0;padding-right:12px}.step:hover{background:var(--paper-3);color:var(--ink)}.step.done{color:var(--ink)}.step.done svg{color:#15803d}.step.on{background:var(--ink);color:var(--paper)}.step.on svg{color:#86efac}.gallery-bg{background-color:var(--paper);background-image:radial-gradient(circle,rgba(139,143,155,.18) 1px,transparent 1.5px),linear-gradient(180deg,rgba(255,255,255,.5),transparent 240px);background-size:22px 22px,100% 100%}.tl-hours{background-image:repeating-linear-gradient(90deg,var(--line-2) 0 1px,transparent 1px calc(var(--hour) * 3)),repeating-linear-gradient(90deg,var(--line) 0 1px,transparent 1px var(--hour))}.tl-band-night{background:#1d223312}.tl-band-morning{background:#f5be5a12}.tl-band-evening{background:#6366f10f}.tl-band-lunch{background:#f5be5a06}.day-head.has-photo{background-size:cover;background-position:center;background-color:#1b2034;color:#f6f1e6}.day-head.has-photo .text-ink-2,.day-head.has-photo .text-ink-3{color:#f6f1e6c7!important}.day-head.has-photo .text-ink-3:hover{color:#fff!important}.day-head.is-shown{box-shadow:inset 5px 0 0 var(--accent-2)}@media(max-width:767px){.page{box-shadow:none}}@media(max-width:640px){.step{padding:0 6px 0 15px;gap:0;font-size:12px}.step:first-child{padding-left:8px}.step:last-child{padding-right:8px}.step>svg,.step>.font-mono{display:none}.step.done:not(.on){color:#15803d}}.help-btn{display:inline-flex;align-items:center;justify-content:center;width:17px;height:17px;border-radius:999px;flex-shrink:0;font:700 10.5px/1 Inter,sans-serif;color:var(--ink-3);border:1px solid var(--line);background:var(--card);vertical-align:middle;transition:color .15s,border-color .15s,background .15s}.help-btn:hover,.help-btn.on{color:var(--ink);border-color:var(--ink-3)}.help-btn.light{color:#ffffffbf;border-color:#ffffff59;background:transparent}.cal-day{position:relative;height:34px;font-size:12.5px;font-weight:600;color:var(--ink-2);border-radius:0;transition:background .12s,color .12s}.cal-day:not(:disabled):not(.is-leave):not(.is-back):hover{background:var(--paper-2);border-radius:10px}.cal-day:disabled{color:var(--line-2, #cfc6b3);cursor:default}.cal-day.is-trip{background:#6366f114}.cal-day.is-leave{background:var(--accent);color:#fff;border-radius:10px}.cal-day.is-back{background:#f59e0b;color:#fff;border-radius:10px}.cal-day.is-today:after{content:"";position:absolute;left:50%;bottom:4px;width:4px;height:4px;margin-left:-2px;border-radius:99px;background:currentColor;opacity:.6}.cal-dot{display:inline-block;width:8px;height:8px;border-radius:99px;margin-right:4px;vertical-align:1px}.cal-dot.is-leave{background:var(--accent)}.cal-dot.is-back{background:#f59e0b}@media(hover:hover){.can-hover\:opacity-0{opacity:0}}.tl-block.is-closed{border-color:#f59e0b;box-shadow:inset 3px 0 0 var(--day),inset 0 0 0 1px #f59e0b}.tl-block.is-branch{border-style:dashed;background:color-mix(in srgb,var(--day) 6%,var(--card));opacity:.85;box-shadow:none}.tl-block.is-branch:hover{opacity:1}.map-marker.is-faded{opacity:.35;filter:saturate(.4)}
