@font-face{font-family:Lexend;src:url('/vendor/lexend-400.woff2') format('woff2');font-weight:400;font-display:swap}@font-face{font-family:Lexend;src:url('/vendor/lexend-500.woff2') format('woff2');font-weight:500;font-display:swap}@font-face{font-family:Lexend;src:url('/vendor/lexend-600.woff2') format('woff2');font-weight:600;font-display:swap}@font-face{font-family:Lexend;src:url('/vendor/lexend-700.woff2') format('woff2');font-weight:700;font-display:swap}
:root{font:100%/1.5 Lexend,system-ui,sans-serif;color:#203A33;background:#F7F8F7;--teal:#0F766E;--muted:#63776B;--ease:cubic-bezier(.23,1,.32,1)}*{box-sizing:border-box}body{margin:0}button,input{font:inherit}button{cursor:pointer;touch-action:manipulation}button,summary,input{-webkit-tap-highlight-color:transparent}button{transition:background-color 150ms ease,color 150ms ease,transform 140ms var(--ease)}button:active{transform:scale(.97)}button:focus-visible,summary:focus-visible,input:focus-visible{outline:3px solid #0F766E;outline-offset:4px}svg{fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}p{margin:0;font-size:14px;line-height:1.75}[hidden]{display:none!important}#travel-demo{width:100%;max-width:1240px;padding:14px 8px 20px;margin:auto;overflow-wrap:anywhere}.travel-window{background:#fff;border:1px solid #DBE5DC;border-radius:30px;overflow:hidden;box-shadow:0 18px 60px -32px #17453535,0 2px 4px #1a443005}.postcard{height:206px;position:relative;overflow:hidden;background:#accdd0;color:#fff}.photo-source{position:absolute;width:100%;min-width:530px;aspect-ratio:627/268;left:50%;top:50%;transform:translate(-50%,-50%);overflow:hidden}.photo-source img{position:absolute;max-width:none;width:146.73%;height:auto;left:-34.45%;top:-193.65%;user-select:none}.postcard-shade{position:absolute;inset:0;background:linear-gradient(90deg,#093f4ac9,#12545b33 75%),linear-gradient(0deg,#0a4c5061,transparent 70%)}.postcard-copy{position:absolute;top:34px;left:40px}.postcard-eyebrow{font-size:12px;letter-spacing:.14em;font-weight:500}.postcard h2{font-size:60px;line-height:1.15;letter-spacing:-.05em;margin:5px 0 4px;font-weight:600}.postcard h2 span{font-size:34px;display:inline-block;vertical-align:top;margin:6px 0 0 13px;font-weight:400;color:#f1ddbc}.postcard p{font-size:14px;letter-spacing:.01em}.travel-stamp{position:absolute;right:34px;top:43px;width:104px;height:113px;border:1px solid #ffffff90;border-radius:54px;display:flex;align-items:center;justify-content:center;gap:5px;flex-direction:column;transform:rotate(12deg);background:#c6ebe516;backdrop-filter:blur(7px)}.travel-stamp svg{width:32px;height:32px}.travel-stamp span{font-size:11px;letter-spacing:.12em;text-align:center;line-height:1.3}.travel-toolbar{padding:16px 24px;display:flex;align-items:center;justify-content:space-between;gap:16px;border-bottom:1px solid #E6EBE5;background:#FCFDFB}.travel-tabs{display:flex;gap:5px;padding:5px;border-radius:18px;background:#F0F4EF}.travel-tabs button{display:flex;align-items:center;gap:10px;border:0;padding:12px 18px;border-radius:13px;min-height:48px;color:#65766B;background:transparent;font-size:14px}.travel-tabs b{font-weight:500}.travel-tabs button>span{font-size:11px;font-variant-numeric:tabular-nums;color:#819588}.travel-tabs button[aria-selected="true"]{background:#fff;color:#105F53;box-shadow:0 2px 8px #143c3010}.travel-tabs button[aria-selected="true"]>span{color:#0F766E}.motion-control{display:flex;align-items:center;gap:7px;border:0;background:transparent;font-size:12px;color:#60776A;min-height:44px;padding:8px 10px;white-space:nowrap}.motion-control svg{width:16px;height:16px}.motion-control[aria-pressed="true"]{color:#0F766E;background:#EAF3ED;border-radius:13px}.travel-panel{padding:30px;display:grid;grid-template-columns:minmax(0,1.12fr) minmax(0,1fr);gap:36px;align-items:center;min-height:520px}.eyebrow{display:block;font-size:11px;letter-spacing:.1em;color:#648271;font-weight:500}.story-side{min-width:0}.story-side h3{font-size:31px;line-height:1.2;letter-spacing:-.03em;font-weight:500;margin:11px 0 15px;text-wrap:balance}.story-side .lead{font-size:15px;line-height:1.75;color:#617667}.route-head{display:flex;justify-content:space-between;align-items:flex-end;gap:15px;margin-bottom:17px}.day-tabs{display:flex;gap:8px;margin-top:9px}.day-tabs button{border:1px solid #D2DED4;background:#fff;color:#557360;min-height:44px;border-radius:24px;padding:9px 18px;font-size:14px}.day-tabs button[aria-pressed="true"]{background:#0F766E;border-color:#0F766E;color:#fff}.route-caption{max-width:140px;font-size:12px;color:#7D8E81;text-align:right}.route-board{position:relative;height:349px;border-radius:25px;overflow:hidden;border:1px solid #DDE8DA;box-shadow:inset 0 0 30px #fff8}.route-art{position:absolute;inset:0;width:100%;height:100%;stroke:none}.route-point{position:absolute;transform:translate(-50%,-50%);border:0;background:transparent;display:flex;align-items:center;flex-direction:column;gap:8px;padding:0;min-height:44px;width:115px;color:#385949;z-index:2}.route-point:active{transform:translate(-50%,-50%) scale(.97)}.point-icon{display:grid;place-items:center;width:49px;height:49px;background:#fff;border-radius:50%;box-shadow:0 5px 16px #173e351a;border:1px solid #c5d9ce;color:#456f5d;transition:background-color 160ms ease}.point-icon svg{width:23px;height:23px}.route-point[aria-pressed="true"] .point-icon{background:#0F766E;border-color:#fff;color:#fff;box-shadow:0 0 0 5px #fff9,0 6px 20px #173e3530}.point-label{font-size:12px;line-height:1.45;max-width:112px;padding:5px 7px;background:#fff9;border-radius:9px;backdrop-filter:blur(5px)}.route-board-label{position:absolute;bottom:14px;left:18px;right:18px;display:flex;align-items:center;gap:8px;font-size:11px;line-height:1.45;color:#788276}.sun-mark{font-size:21px;color:#B8A777}.stop-list{display:grid;gap:8px;margin:20px 0}.stop-button{border:1px solid #E4EAE1;border-radius:15px;background:#fff;padding:12px 14px;display:flex;align-items:center;gap:13px;text-align:left;min-height:59px;width:100%;color:#476351}.stop-button[aria-pressed="true"]{background:#EEF6EF;border-color:#BACFBE}.stop-time{width:66px;flex:none;font-size:12px;font-variant-numeric:tabular-nums;color:#6D8373}.stop-title{font-size:14px;line-height:1.45;flex:1}.stop-number{font-size:11px;color:#82A08A}.selection-note{display:flex;align-items:flex-start;gap:11px;padding:15px 0 2px;border-top:1px solid #E7EEE5}.note-spark{color:#0F766E;font-size:20px}.selection-note span#stop-duration{font-size:12px;color:#0F766E;display:block;margin-bottom:3px}.selection-note p{font-size:14px;color:#5B725F}.source-note{font-size:14px;color:#7B8B7C;line-height:1.65;margin-top:16px}.suitcase-scene{position:relative;height:405px;display:grid;place-items:center;overflow:hidden;border-radius:25px;background:radial-gradient(ellipse at 50% 47%,#DAE9DA 0,#F1F5EB 55%,#F7F8F0 100%)}.suitcase-orbit{position:absolute;width:310px;height:310px;border:1px solid #D5E2D0;border-radius:50%;transform:rotate(-20deg)}.orbit-b{width:420px;height:230px;border-style:dashed;opacity:.8}.suitcase-shadow{position:absolute;bottom:59px;left:20%;width:65%;height:26px;border-radius:50%;background:#34634526;filter:blur(15px);transform:rotate(-9deg)}.suitcase{position:relative;width:214px;height:264px;background:linear-gradient(110deg,#6C9E84,#386E59);border:1px solid #4D7D62;border-radius:33px 35px 30px 30px;box-shadow:9px 5px 0 #315E4C,14px 8px 14px #315e4c23,inset 3px 3px 3px #94b9a17a;transform:rotate(-8deg);margin-top:-15px}.handle{position:absolute;left:63px;top:-36px;width:86px;height:36px;border:7px solid #597E65;border-bottom:0;border-radius:18px 18px 0 0;box-shadow:inset 1px 2px 0 #fff7}.case-top{display:flex;justify-content:space-between;margin:20px 23px 12px;color:#DCEBE1;font-size:11px;letter-spacing:.15em}.case-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;position:relative;z-index:1;margin:10px 25px}.packed-icon{height:46px;border:1px solid #bbd4c030;border-radius:13px;display:grid;place-items:center;color:#D9EAE05c;background:#264f3a18}.packed-icon svg{width:27px;height:27px}.packed-icon.packed{background:#EFF4DF;color:#38614B;box-shadow:0 4px 7px #2449311a;border-color:#eef6e2}.case-rib{position:absolute;inset:55px 8px 26px;border-left:2px solid #9cc1a02b;border-right:2px solid #295c412b;border-radius:24px;pointer-events:none}.wheel{position:absolute;bottom:-11px;width:24px;height:18px;border-radius:8px;background:#2E5745;border:3px solid #294d3d}.wheel-left{left:30px}.wheel-right{right:29px}.luggage-tag{position:absolute;right:-28px;top:70px;width:64px;height:93px;background:#ECDCAE;border-radius:10px;box-shadow:0 4px 8px #1c3b3026;transform:rotate(19deg);color:#706144;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:15px;letter-spacing:.07em;border:1px solid #e2d0a0}.luggage-tag::before{content:'';position:absolute;top:-24px;left:25px;width:15px;height:29px;border:2px solid #A29364;border-radius:50%}.luggage-tag span{font-size:25px}.packing-counter{position:absolute;bottom:19px;left:0;right:0;display:flex;justify-content:center;align-items:baseline;gap:8px;color:#345B45}.packing-counter strong{font-size:28px;font-weight:500}.packing-counter span{font-size:14px}.packing-list{display:grid;gap:6px;margin-top:18px}.packing-item{position:relative;display:flex;align-items:center;gap:12px;min-height:47px;border-bottom:1px solid #EEF1EA;padding:7px 1px;cursor:pointer;font-size:14px;color:#4D6857}.packing-item input{position:absolute;width:24px;height:24px;opacity:0}.check-mark{width:23px;height:23px;border:1px solid #BCD0BF;border-radius:7px;flex:none;display:grid;place-items:center;background:#fff;transition:background-color 120ms ease}.check-mark svg{width:15px;height:15px;opacity:0}.packing-item input:checked+.check-mark{background:#0F766E;color:#fff;border-color:#0F766E}.packing-item input:checked+.check-mark svg{opacity:1}.packing-item input:focus-visible+.check-mark{outline:3px solid #0F766E;outline-offset:4px}.packing-item:has(input:checked) .packing-name{color:#78907D}.packing-item .packed-word{font-size:12px;color:#78907D;margin-left:auto}.packing-progress-track{height:5px;border-radius:3px;background:#EAF0E7;overflow:hidden;margin-top:20px}.packing-progress-track>span{height:100%;display:block;background:#719F7D}.budget-art{padding:20px 18px 22px;border-radius:25px;background:linear-gradient(140deg,#F2F5ED,#F8F9F2);border:1px solid #E5EBDF}.budget-art>.eyebrow{text-align:center}.budget-ring{position:relative;width:100%;max-width:340px;aspect-ratio:1;margin:8px auto 0}.budget-ring>svg{width:100%;height:100%}.budget-center{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;pointer-events:none}.budget-center>span:first-child{font-size:11px;letter-spacing:.09em;color:#81917C}.budget-center strong{font-size:43px;line-height:1.35;letter-spacing:-.05em;font-weight:500;color:#254932;font-variant-numeric:tabular-nums}.budget-center .currency{font-size:14px;color:#78886E;letter-spacing:.1em}.budget-legend{display:grid;gap:10px;grid-template-columns:repeat(2,minmax(0,1fr));margin:2px 10px}.legend-item{display:flex;gap:9px;align-items:flex-start;font-size:12px;color:#667b60}.legend-dot{width:9px;height:9px;border-radius:50%;flex:none;margin-top:5px;background:var(--color)}.legend-item strong{display:block;font-size:14px;font-weight:500;color:#42633F;font-variant-numeric:tabular-nums}.budget-art>.source-note{text-align:center}.lodging-control{background:#F6F8F2;border:1px solid #E3EBDC;padding:18px;border-radius:18px;margin:22px 0 14px}.lodging-control>div:first-child{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:14px}.lodging-control output{font-size:16px;color:#0F766E;font-variant-numeric:tabular-nums;font-weight:500}.lodging-control input[type=range]{display:block;width:100%;height:44px;margin:6px 0 0;accent-color:#0F766E;cursor:pointer}.range-labels{display:flex;justify-content:space-between;font-size:11px;color:#86917B}.budget-difference{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:0 2px;margin:17px 0 20px;color:#71836B;font-size:13px}.budget-difference strong{font-size:15px;color:#365E42;font-weight:500;font-variant-numeric:tabular-nums}.goal-toggle{display:flex;gap:10px;align-items:center;justify-content:space-between;width:100%;min-height:49px;padding:13px 17px;background:#0F766E;color:#fff;border:0;border-radius:14px;font-size:14px;text-align:left}.goal-toggle>span:last-child{font-size:20px}.goal-preview{margin-top:13px;padding:18px;border:1px solid #DCE7D8;border-radius:18px;background:#FAFBF6}.goal-controls{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:13px}.goal-controls>div{display:flex;gap:5px}.goal-controls button{width:44px;height:44px;border:1px solid #D4E1D0;background:#fff;color:#67805F;border-radius:13px}.goal-controls button[aria-pressed=true]{background:#DDEADB;color:#365F3E;border-color:#BAD0B6}.goal-horizon{font-size:14px;color:#7D8C74;margin-top:13px}.goal-result{display:flex;flex-direction:column;margin:12px 0}.goal-result strong{font-size:32px;font-weight:500;line-height:1.25;color:#315E3A;font-variant-numeric:tabular-nums}.goal-result span{font-size:13px;color:#7D8C74}.goal-preview>p{font-size:14px;color:#6B7E61}.confirm-goal{margin-top:14px;border:1px solid #ADC7A5;background:#EFF5E8;color:#44683D;min-height:44px;padding:10px 14px;border-radius:12px;font-size:13px}.goal-preview .goal-confirmation{font-size:14px;color:#0F766E;margin-top:8px}.demo-footer{border-top:1px solid #E5ECE1;padding:18px 28px;display:flex;gap:25px;justify-content:space-between;align-items:center;background:#FCFDF9}.demo-footer>div{display:flex;gap:10px;align-items:flex-start}.demo-dot{width:7px;height:7px;border-radius:50%;background:#9AAC93;margin-top:9px;flex:none}.demo-footer p{font-size:14px;line-height:1.6;color:#7A8B70;max-width:850px}.demo-footer button{background:transparent;border:0;border-bottom:1px solid #B9C8AE;min-height:44px;padding:7px 5px;font-size:13px;color:#52734B}.source-proof{margin-top:18px;color:#6A8062}.source-proof summary{display:flex;align-items:center;gap:10px;min-height:44px;cursor:pointer;font-size:13px;padding:8px 5px;list-style:none}.source-proof summary:before{content:'+';font-size:20px;color:#557950}.source-proof[open] summary:before{content:'−'}.source-proof p{font-size:14px;margin:10px 5px 20px;max-width:750px}.source-images{display:flex;gap:20px;align-items:flex-start;flex-wrap:wrap}.source-images img{display:block;width:min(100%,320px);height:auto;border-radius:20px}.keyboard-input button{transition:none!important}.keyboard-input button:active{transform:none}.keyboard-input .route-point:active{transform:translate(-50%,-50%)}
@media(hover:hover){.stop-button:hover{border-color:#BAD0B9;background:#F5F8F1}.day-tabs button:not([aria-pressed=true]):hover{background:#F0F5ED}.goal-toggle:hover{background:#0B625A}.travel-tabs button:not([aria-selected=true]):hover{background:#e6eee5}.motion-control:hover{background:#EAF2E6;border-radius:12px}.packing-item:hover{background:#F6F9F2}}
@media(max-width:1000px){.travel-panel{gap:24px;padding:24px}.travel-toolbar{padding:14px 18px}.travel-tabs button{padding:12px 13px}.motion-control span{display:none}.motion-control{width:44px;justify-content:center}.route-point{width:98px}.point-label{max-width:97px;font-size:11px}.story-side h3{font-size:28px}.budget-center strong{font-size:37px}}
@media(max-width:760px){.travel-panel{grid-template-columns:1fr;gap:25px;padding:24px}.route-side{order:1}.plan-panel .story-side{order:2}.route-board{height:330px}.route-point{width:116px}.point-label{font-size:12px;max-width:112px}.postcard{height:185px}.postcard-copy{left:26px;top:30px}.postcard h2{font-size:49px}.travel-stamp{right:25px;top:34px;width:90px;height:105px}.story-side h3{font-size:31px}.travel-tabs{flex:1;justify-content:space-between}.travel-tabs button{flex:1;justify-content:center;padding:12px 10px;font-size:13px;gap:6px}.travel-tabs button>span{display:none}.budget-art{max-width:none}.budget-ring{max-width:310px}.budget-art>.source-note{max-width:420px;margin:18px auto 0}.suitcase-scene{height:360px}.suitcase{transform:rotate(-8deg) scale(.92);margin-top:-8px}.packing-counter{bottom:11px}.packing-copy h3 br,.budget-copy h3 br{display:none}.demo-footer{padding:18px 23px}.demo-footer p{font-size:14px}.source-proof p{margin-right:5px}}
@media(max-width:420px){#travel-demo{padding:10px 4px 18px}.travel-window{border-radius:23px}.postcard{height:169px}.postcard-copy{left:20px;top:27px}.postcard-eyebrow{font-size:10px;letter-spacing:.1em}.postcard h2{font-size:43px;margin-top:9px}.postcard h2 span{font-size:25px;margin-left:10px}.postcard p{font-size:12px}.travel-stamp{display:none}.travel-toolbar{padding:10px 9px;gap:5px}.travel-tabs{padding:4px;gap:0;border-radius:14px}.travel-tabs button{padding:10px 7px;min-height:44px;font-size:12px;border-radius:10px}.motion-control{width:32px;min-width:32px;padding:6px 5px}.travel-panel{padding:22px 16px;gap:22px}.eyebrow{font-size:10px;letter-spacing:.09em}.route-head{gap:12px}.route-caption{font-size:11px;max-width:93px}.day-tabs button{padding:9px 15px}.route-board{height:310px;border-radius:20px}.route-point{width:86px}.point-icon{width:46px;height:46px}.point-label{max-width:89px;font-size:11px;padding:4px}.route-board-label{font-size:10px;left:12px;right:12px;bottom:12px}.story-side h3{font-size:28px}.story-side .lead{font-size:14px}.stop-time{width:58px;font-size:12px}.stop-button{padding:12px 11px;gap:8px}.stop-title{font-size:14px}.source-note{font-size:14px}.suitcase-scene{height:345px}.packing-item{min-height:49px;font-size:14px}.packing-counter strong{font-size:26px}.budget-art{padding:19px 11px}.budget-center strong{font-size:35px}.budget-ring{max-width:280px}.budget-legend{margin:2px 2px;gap:14px}.legend-item{font-size:11px;gap:6px}.legend-item strong{font-size:14px}.lodging-control{padding:15px}.lodging-control>div:first-child{font-size:14px}.lodging-control output{font-size:15px}.budget-difference{font-size:12px}.budget-difference strong{font-size:14px}.goal-preview{padding:15px}.goal-controls{font-size:12px}.demo-footer{padding:16px;gap:12px;align-items:flex-start}.demo-footer p{font-size:14px}.demo-footer button{font-size:12px}.source-proof summary{font-size:12px}.source-images img{max-width:100%}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.motion-control{opacity:.7}}
@media(prefers-reduced-transparency:reduce){.travel-stamp,.point-label{backdrop-filter:none}.point-label{background:#F9FBF6}.travel-stamp{background:#2F6864}}
@media(prefers-contrast:more){.travel-window,.stop-button,.travel-tabs,.route-board,.budget-art{border-color:#4E7558}.source-note,.demo-footer p,.route-caption{color:#385641}}

/* Align each path to the center of its native 49/46px marker. */
.route-point{--point-center:24.5px;transform:translate(-50%,calc(var(--point-center)*-1));transform-origin:50% var(--point-center)}.route-point:active{transform:translate(-50%,calc(var(--point-center)*-1)) scale(.97)}.keyboard-input .route-point:active{transform:translate(-50%,calc(var(--point-center)*-1))}
@media(max-width:420px){.route-point{--point-center:23px}.motion-control{width:44px;min-width:44px}.travel-tabs button{padding:10px 4px}}

/* The actual checkbox covers the full label, including its 44px+ touch target. */
.packing-item input{inset:0;width:100%;height:100%;margin:0;z-index:2;cursor:pointer}.packing-item .check-mark{pointer-events:none}

.demo-footer button{min-width:80px;flex:none;white-space:nowrap}.budget-difference strong{white-space:nowrap}
@media(max-width:760px){.demo-footer{flex-direction:column;gap:8px}.demo-footer button{align-self:flex-end}}

/* Keep the immediate result in view on a narrow screen. */
.route-selection-preview{position:absolute;top:15px;left:17px;max-width:75%;display:flex;align-items:center;gap:8px;padding:8px 11px;border:1px solid #ffffffaa;border-radius:12px;background:#ffffffb5;backdrop-filter:blur(7px);color:#315F50;font-size:12px}.route-selection-preview strong{font-weight:500}.route-selection-preview>span{color:#538A73}.control-total{display:none}
@media(max-width:760px){.control-total{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:17px;padding-top:14px;border-top:1px solid #dce7d3;font-size:13px;color:#6d8262}.control-total strong{font-size:16px;color:#1f664f;font-weight:500;white-space:nowrap}}
@media(prefers-reduced-transparency:reduce){.route-selection-preview{background:#F8FBF2;backdrop-filter:none}}
