:root{color-scheme:light;--paper:#f2f6fc;--card:#fff;--ink:#243d36;--muted:#667a71;--teal:#23664e;--teal-dark:#194e3b;--mint:#66c5a3;--mint-soft:#e6f6ed;--lemon:#fff1ac;--peach:#ffe0cc;--lilac:#e8ddff;--line:#dde6da;--sand:#f4f2e8;--shadow:0 6px 0 #dfe7ef}
*,*::before,*::after{box-sizing:border-box}
html{min-width:320px;scroll-behavior:smooth;scroll-padding-top:24px}
body{margin:0;background:var(--paper);color:var(--ink);font-family:ui-rounded,"Arial Rounded MT Bold","Apple SD Gothic Neo","Malgun Gothic",system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:14px;-webkit-font-smoothing:antialiased}
button,input,select{font:inherit}button,select{cursor:pointer}button:disabled{cursor:wait;opacity:.6}button,a,input,select{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}a{color:inherit}[hidden]{display:none!important}:focus-visible{outline:3px solid #469773;outline-offset:4px}::selection{background:var(--lemon);color:var(--ink)}

.site-header{display:flex;align-items:center;justify-content:space-between;gap:20px;width:min(1120px,calc(100% - 64px));min-height:92px;margin:auto;border-bottom:1px solid #e6e9dd}
.wordmark{display:inline-flex;align-items:center;gap:11px;color:var(--ink);text-decoration:none;font-size:26px;font-weight:900;letter-spacing:-.06em}
.wordmark-mark{display:grid;place-items:center;width:44px;height:44px;border:1.5px solid var(--ink);border-radius:15px;background:var(--mint);color:var(--ink);font-size:23px;font-weight:900;transform:rotate(-7deg);box-shadow:2px 2px 0 var(--ink)}
.wordmark small{display:block;margin-top:3px;color:var(--muted);font-size:10px;font-weight:600;letter-spacing:-.01em}
.header-note{display:inline-flex;align-items:center;gap:8px;padding:9px 13px;border:1px solid #dbe8d9;border-radius:99px;background:#f1f7ed;color:#4c6d55;font-size:11px;font-weight:700;white-space:nowrap}
.status-pip{display:inline-block;width:7px;height:7px;border-radius:50%;background:#4ea679;box-shadow:0 0 0 3px #dfeddb}
.page-shell{width:min(1120px,calc(100% - 64px));margin:0 auto}

.intro{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:363px;padding:39px 8px 37px}
.intro-main{position:relative;z-index:2;flex:1 1 570px}
.eyebrow{display:inline-flex;align-items:center;gap:7px;margin:0;color:#54725a;font-size:11px;font-weight:850;letter-spacing:.12em}
.eyebrow::before{display:inline-block;width:18px;height:2px;background:var(--teal);content:""}
.intro h1{margin:15px 0 17px;font-size:clamp(42px,4.75vw,57px);font-weight:900;letter-spacing:-.075em;line-height:1.2}
.intro h1 em{position:relative;color:var(--teal);font-style:normal;white-space:nowrap}
.intro h1 em::after{position:absolute;z-index:-1;right:-4px;bottom:1px;left:-3px;height:.25em;border-radius:8px 4px 7px 6px;background:var(--lemon);transform:rotate(-1deg);content:""}
.intro-copy{max-width:490px;margin:0;color:#687a6c;font-size:14px;line-height:1.85;letter-spacing:-.025em;word-break:keep-all}
.intro-tags{display:flex;flex-wrap:wrap;gap:7px;margin-top:21px}
.intro-tags span{display:inline-flex;align-items:center;gap:5px;padding:7px 10px;border:1px solid #e5e8d9;border-radius:8px;background:#fffefb;color:#62725f;font-size:10px;font-weight:650}
.intro-tags span:first-child{border-color:#d3e5d8;background:#edf7ed;color:#397054}
.hero-art{position:relative;flex:0 0 390px;align-self:stretch;min-height:284px;margin-right:17px}
.postcard{position:absolute;top:10px;right:24px;width:282px;padding:13px;border:1.5px solid #4e6c53;border-radius:16px;background:#fff;box-shadow:5px 7px 0 #dce9d7;transform:rotate(7deg)}
.postcard-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;color:#607a61;font-size:9px;font-weight:800;letter-spacing:.1em}
.postcard-top span:last-child{font-size:13px;letter-spacing:.07em}
.postcard-illustration{overflow:hidden;border:1px solid #d4e5d0;border-radius:8px;background:#e8f3de}
.postcard-illustration svg{display:block;width:100%;height:154px}
.postcard-caption{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:11px 2px 1px;color:#406047;font-size:11px;font-weight:750}
.postcard-caption strong{font-size:14px;font-weight:850;letter-spacing:-.04em}.postcard-caption small{color:#86907c;font-size:9px;font-weight:600}
.ticket-sticker{position:absolute;z-index:2;right:143px;bottom:1px;width:202px;padding:13px 17px 12px;border:1.5px solid #6d6541;border-radius:14px;background:var(--lemon);color:#595337;box-shadow:4px 5px 0 #ece6ca;transform:rotate(-9deg)}
.ticket-sticker::before,.ticket-sticker::after{position:absolute;top:53px;width:12px;height:18px;border:1.5px solid #6d6541;border-radius:50%;background:var(--paper);content:""}
.ticket-sticker::before{left:-7px;border-left-color:transparent}.ticket-sticker::after{right:-7px;border-right-color:transparent}
.ticket-top{display:flex;align-items:center;justify-content:space-between;gap:5px;padding-bottom:9px;border-bottom:1px dashed #b9a95f;font-size:8px;font-weight:850;letter-spacing:.1em}
.ticket-route{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:9px 0 7px;font-size:14px;font-weight:850}.ticket-route strong{font-size:20px;font-weight:900}.ticket-route span{color:#877a3b}
.ticket-bottom{display:flex;justify-content:space-between;gap:5px;color:#807445;font-size:9px;font-weight:650}
.sparkle{position:absolute;z-index:3;display:grid;place-items:center;color:#5b9570;font-size:39px;line-height:1}.sparkle-one{top:20px;left:32px;transform:rotate(-10deg)}.sparkle-two{right:-3px;bottom:14px;color:#d1a35b;font-size:44px;transform:rotate(12deg)}

.planner-panel{position:relative;margin-top:3px;padding:27px 30px 25px;border:1.5px solid #d9e4d3;border-radius:27px;background:var(--card);box-shadow:var(--shadow)}
.panel-heading,.itinerary-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}
.step-label{display:inline-flex;align-items:center;gap:7px;color:#667f68;font-size:10px;font-weight:850;letter-spacing:.12em}
.step-number{display:inline-grid;place-items:center;width:25px;height:25px;margin-right:1px;border-radius:8px;background:var(--mint-soft);color:var(--teal);font-size:11px;letter-spacing:0}
.panel-heading h2,.itinerary-heading h2{margin:9px 0 0;color:var(--ink);font-size:24px;font-weight:850;letter-spacing:-.055em;line-height:1.35}
.heading-stamp{display:inline-grid;place-items:center;flex:0 0 auto;width:55px;height:55px;margin-top:1px;border:1.5px dashed #d0ba70;border-radius:50%;background:#fff8d6;color:#b69a4c;font-size:30px;transform:rotate(12deg)}
.form-grid{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:18px;margin-top:23px}.field{min-width:0}
.field label{display:flex;align-items:center;gap:6px;margin:0 0 9px;color:#4f6654;font-size:12px;font-weight:800}
.field-label-icon{display:inline-grid;place-items:center;width:21px;height:21px;border-radius:6px;background:#f1f5eb;font-size:12px}
.field select,.field input{width:100%;min-width:0;height:51px;padding:0 14px;border:1.5px solid #dde5d9;border-radius:13px;background:#fcfdf9;color:var(--ink);font-size:14px;font-weight:650;line-height:normal;transition:border-color .15s,background .15s}
.field select:hover,.field input:hover{border-color:#9abb9e;background:#fff}.field select:focus,.field input:focus{border-color:#67a17d;background:#fff}
.field-hint{display:block;min-height:15px;margin:7px 0 0;color:#8a9586;font-size:10px;line-height:1.5}
.data-status{display:flex;align-items:flex-start;gap:7px;width:fit-content;max-width:100%;margin:17px 0 0;padding:8px 11px;border-radius:9px;background:#f0f7ed;color:#5a7657;font-size:11px;line-height:1.55}
.data-status::before{display:inline-block;flex:0 0 auto;width:6px;height:6px;margin-top:5px;border-radius:50%;background:#74aa6f;content:""}
.form-footer{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:18px;padding-top:19px;border-top:1px dashed #e2e8da}
.form-footer p{margin:0;color:#7c8976;font-size:11px;line-height:1.75;word-break:keep-all}
.button{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:42px;padding:0 16px;border:1.5px solid #d8e2d3;border-radius:12px;background:#fffef9;color:#506c50;font-size:12px;font-weight:750;text-decoration:none;white-space:nowrap;transition:background .15s,border-color .15s,transform .15s,box-shadow .15s}
.button:hover{border-color:#a6bea3;background:#f3f7ed}
.button-primary{flex:0 0 auto;min-height:49px;min-width:183px;padding:0 20px;border-color:var(--teal);border-radius:14px;background:var(--teal);color:#fffdf1;font-size:14px;font-weight:800;box-shadow:0 4px 0 #163f31}
.button-primary span:last-child{margin-left:14px;font-size:21px;font-weight:500;line-height:1}
.button-primary:hover{border-color:var(--teal-dark);background:var(--teal-dark);transform:translateY(-1px);box-shadow:0 5px 0 #163f31}.button-primary:active{transform:translateY(3px);box-shadow:0 1px 0 #163f31}.button-quiet{background:#fffef9}
.app-message,.capacity-message{margin-top:17px;padding:13px 16px;border:1px solid #e4d9a8;border-radius:13px;background:#fffae6;color:#786735;font-size:12px;line-height:1.7}.app-message.is-error{border-color:#f0cfbf;background:#fff4ee;color:#9a5840}.app-message.is-success{border-color:#cfe5d2;background:#eef8ef;color:#44704b}

.empty-state{display:grid;justify-items:center;padding:39px 20px 30px;text-align:center}
.empty-icon{display:grid;place-items:center;width:54px;height:54px;margin-bottom:12px;border:1px solid #e0d2f3;border-radius:18px;background:#f1eafa;color:#9176b4;font-size:28px;transform:rotate(-7deg)}
.empty-state p{margin:0;color:#5c735c;font-size:16px;font-weight:750;letter-spacing:-.025em;line-height:1.7}.empty-state>span{margin-top:7px;color:#909a87;font-size:11px;line-height:1.7}
.empty-features{display:flex;justify-content:center;flex-wrap:wrap;gap:6px;margin-top:17px}.empty-features span{padding:6px 10px;border-radius:99px;background:#f1f3e9;color:#7d8c72;font-size:10px}

.itinerary-section{margin-top:40px;scroll-margin-top:26px}.itinerary-heading{align-items:flex-end;margin-bottom:23px}.itinerary-heading h2{font-size:31px;letter-spacing:-.065em}.itinerary-heading p{margin:9px 0 0;color:#7a8873;font-size:12px;line-height:1.7}
.heading-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:7px}.capacity-message{margin:0 0 16px}
.day-list{display:grid;grid-template-columns:minmax(0,1fr);gap:25px}
.day-card{overflow:hidden;border:1.5px solid #dce4d5;border-radius:25px;background:#fff;box-shadow:0 5px 0 #e9ecdf}
.day-card-header{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:91px;padding:20px 26px;border-bottom:1px solid #d9e8d4;background:#e7f4e3}
.day-card:nth-child(3n+2) .day-card-header{border-bottom-color:#eadfc0;background:#fff4cf}.day-card:nth-child(3n) .day-card-header{border-bottom-color:#e4d8ee;background:#eee5fa}
.day-title{display:flex;align-items:baseline;flex:0 0 auto;gap:12px}.day-title strong{color:#3b6d48;font-size:23px;font-weight:900;letter-spacing:-.055em}.day-card:nth-child(3n+2) .day-title strong{color:#8a7338}.day-card:nth-child(3n) .day-title strong{color:#796092}.day-title span{color:#748269;font-size:12px;font-weight:600}
.day-region{padding:7px 11px;border:1px solid #d4e2cc;border-radius:99px;background:#f8fcf4;color:#577549;font-size:11px;font-weight:750}
.day-area-controls{display:flex;align-items:center;justify-content:flex-end;gap:8px;min-width:0}
.day-area-select{min-width:0;max-width:270px;height:41px;padding:0 29px 0 12px;border:1px solid #c9dbbf;border-radius:11px;background:#ffffffcf;color:#4f6a49;font-size:12px;font-weight:700}
.area-apply-button{flex:0 0 auto;min-height:41px;padding:0 13px;border:1px solid #c6d7bd;border-radius:11px;background:#f9fff4;color:#527343;font-size:11px;font-weight:800}.area-apply-button:hover{border-color:#95b188;background:#fff}
.timeline{padding:14px 27px 12px}
.timeline-row{position:relative;display:grid;grid-template-columns:80px minmax(0,1fr);gap:20px;padding:10px 0}
.timeline-row:not(:last-child)::before{position:absolute;z-index:0;top:33px;bottom:-10px;left:7px;width:1px;background:repeating-linear-gradient(to bottom,#d5dfcc 0,#d5dfcc 4px,transparent 4px,transparent 8px);content:""}
.timeline-time{position:relative;z-index:1;display:grid;grid-template-columns:14px 1fr;align-content:start;align-items:start;column-gap:11px;row-gap:3px;padding-top:20px;color:#677b5f;font-size:11px;font-weight:800;font-variant-numeric:tabular-nums;white-space:nowrap}
.timeline-time::before{grid-column:1;grid-row:1 / span 3;display:inline-block;width:14px;height:14px;margin-top:0;border:4px solid #e5f1de;border-radius:50%;background:#69965a;box-shadow:0 0 0 2px #fff;content:""}
.timeline-time span{grid-column:2}.timeline-time .time-divider{color:#b3bca7;font-size:8px;line-height:6px}
.timeline-content{min-width:0}.place-row .timeline-content{padding:19px 20px;border:1px solid #e3e9dc;border-radius:18px;background:#fafcf6}
.event-top{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.event-place-heading{display:flex;align-items:center;gap:11px;min-width:0}
.place-sticker{display:grid;place-items:center;flex:0 0 auto;width:40px;height:40px;border-radius:12px;background:#e5f2df;font-size:21px;transform:rotate(-5deg)}.day-card:nth-child(3n+2) .place-sticker{background:#ffedc9}.day-card:nth-child(3n) .place-sticker{background:#ece0fa}
.event-copy{min-width:0}.event-title{margin:0;color:#334b39;font-size:16px;font-weight:850;letter-spacing:-.035em;line-height:1.5;overflow-wrap:anywhere}.event-subtitle{display:block;margin-top:2px;color:#8c9784;font-size:10px;line-height:1.6}
.event-description{margin:12px 0 0;color:#6f7d65;font-size:12px;line-height:1.85;word-break:keep-all;overflow-wrap:anywhere}
.event-meta{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:11px}.meta-pill{display:inline-flex;align-items:center;padding:5px 8px;border-radius:7px;background:#edf1e6;color:#7b886d;font-size:10px;line-height:1.4}
.event-meta a{color:#59845c;text-decoration:none}.event-meta a:hover{color:#2d6543;text-decoration:underline;text-underline-offset:3px}
.event-actions{display:flex;flex:0 0 auto;align-items:center;gap:6px}.swap-button,.map-link{display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:0 11px;border:1px solid #d8e1ce;border-radius:10px;background:#fff;color:#6c805e;font-size:10px;font-weight:750;text-decoration:none;white-space:nowrap}.map-link{border-color:#d0e1c7;background:#eff8e9;color:#537845}.swap-button:hover,.map-link:hover{border-color:#a1ba92;background:#e8f3e0}
.swap-picker{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;margin-top:13px;padding-top:13px;border-top:1px dashed #dde5d5}
.swap-picker select{min-width:0;min-height:42px;padding:0 10px;border:1px solid #d8e2d1;border-radius:10px;background:#fff;color:#55704c;font-size:12px}.swap-picker button{min-height:42px;padding:0 14px;border:1px solid #bdd6b1;border-radius:10px;background:#e3f0db;color:#4c7540;font-size:11px;font-weight:800}.swap-picker button:hover{background:#d9ebcf}
.meal-row,.transfer-row,.free-row,.buffer-row{padding:8px 0}.meal-row .timeline-content,.transfer-row .timeline-content,.free-row .timeline-content,.buffer-row .timeline-content{padding:8px 13px}.meal-row .timeline-time,.transfer-row .timeline-time,.free-row .timeline-time,.buffer-row .timeline-time{padding-top:11px}.meal-row .timeline-time::before{border-color:#fff0db;background:#ca9d61}.transfer-row .timeline-time::before,.free-row .timeline-time::before,.buffer-row .timeline-time::before{border-color:#f0f0e8;background:#afb59f}
.meal-row .event-title,.transfer-row .event-title,.free-row .event-title,.buffer-row .event-title{color:#7b846d;font-size:12px;font-weight:700}.meal-row .event-description,.transfer-row .event-description,.free-row .event-description,.buffer-row .event-description{margin-top:3px;color:#98a08d;font-size:11px}
.day-footnote{padding:0 27px 20px 120px;color:#9aa28d;font-size:10px;line-height:1.7}.fine-print{margin:24px 5px 0;padding:18px 20px;border-radius:15px;background:#f5f5ed;color:#929984;font-size:10px;line-height:1.95;word-break:keep-all}.fine-print strong{margin-right:6px;color:#77866c}
.site-footer{display:flex;align-items:center;justify-content:space-between;gap:15px;width:min(1120px,calc(100% - 64px));margin:29px auto 26px;padding-top:19px;border-top:1px solid #e6e9dc;color:#9a9f8c;font-size:10px;line-height:1.7}.site-footer span:first-child{color:#6d8063;font-size:12px;font-weight:850}.site-footer a{color:#829278;text-underline-offset:3px}.noscript{margin:20px auto;padding:12px;color:#985a41;font-size:13px;text-align:center}

@media(max-width:1000px){
  .intro{gap:10px}.intro h1{font-size:50px}.hero-art{flex-basis:330px;margin-right:0}.postcard{right:10px;width:250px}.postcard-illustration svg{height:139px}.ticket-sticker{right:102px;bottom:8px;width:193px}.sparkle-one{left:3px}.sparkle-two{right:-4px;bottom:27px}
}
@media(max-width:800px){
  .site-header,.page-shell,.site-footer{width:calc(100% - 40px)}.intro{min-height:340px;padding:32px 0}.intro h1{font-size:43px}.intro-copy{max-width:365px;font-size:13px}.intro-tags{gap:5px;margin-top:17px}.intro-tags span{padding:6px 8px;font-size:9px}
  .hero-art{flex-basis:265px;min-height:250px}.postcard{top:19px;right:3px;width:216px;padding:11px}.postcard-illustration svg{height:125px}.postcard-top{font-size:8px}.postcard-caption{font-size:10px}.postcard-caption strong{font-size:12px}.postcard-caption small{font-size:8px}.ticket-sticker{right:66px;bottom:6px;width:176px;padding:11px 13px}.ticket-route{font-size:12px}.ticket-route strong{font-size:18px}.ticket-top{font-size:7px}.ticket-bottom{font-size:8px}.sparkle-one{top:5px;left:5px;font-size:30px}.sparkle-two{right:-6px;bottom:22px;font-size:32px}
  .planner-panel{padding:24px}.form-grid{gap:13px}.field select,.field input{padding:0 11px;font-size:13px}.day-card-header{padding:18px 20px}.timeline{padding-right:20px;padding-left:20px}.event-top{gap:12px}.place-row .timeline-content{padding:17px 16px}.event-title{font-size:15px}.event-actions{flex-wrap:wrap;justify-content:flex-end;max-width:150px}.day-footnote{padding-left:113px}
}
@media(max-width:700px){
  .site-header{min-height:78px}.wordmark{gap:9px;font-size:18px}.wordmark-mark{width:38px;height:38px;border-radius:12px;font-size:21px}.wordmark small{font-size:9px}.header-note{gap:6px;padding:7px 10px;font-size:9px}
  .intro{position:relative;min-height:310px;padding:31px 0 34px}.intro-main{flex-basis:100%}.intro h1{max-width:calc(100% - 145px);margin-top:14px;font-size:clamp(35px,6vw,43px);line-height:1.2}.eyebrow{max-width:calc(100% - 145px)}.intro-copy{max-width:100%;margin-top:20px;font-size:13px}.intro-tags{margin-top:16px}
  .hero-art{position:absolute;top:17px;right:0;width:160px;min-height:180px;opacity:.9}.postcard{top:0;right:1px;width:135px;padding:7px;border-radius:10px;box-shadow:3px 4px 0 #dce9d7;transform:rotate(9deg)}.postcard-top{margin-bottom:5px;font-size:5px}.postcard-top span:last-child{font-size:7px}.postcard-illustration{border-radius:5px}.postcard-illustration svg{height:82px}.postcard-caption{padding:6px 0 0;font-size:6px}.postcard-caption strong{font-size:9px}.postcard-caption small,.ticket-sticker,.sparkle{display:none}
  .panel-heading h2{font-size:22px}.heading-stamp{width:47px;height:47px;font-size:25px}.form-grid{gap:12px;margin-top:21px}.field label{font-size:11px}.field-hint{font-size:9px}.form-footer p{max-width:52%;font-size:10px}.button-primary{min-width:162px;padding:0 16px;font-size:13px}.button-primary span:last-child{margin-left:8px}
  .itinerary-heading{align-items:flex-start}.itinerary-heading h2{font-size:27px}.heading-actions{max-width:145px}.heading-actions .button{min-height:40px;padding:0 12px;font-size:10px}.day-card-header{align-items:flex-start;flex-direction:column;gap:13px}.day-area-controls{width:100%;justify-content:stretch}.day-area-select{flex:1 1 auto;max-width:none}
  .timeline-row{grid-template-columns:64px minmax(0,1fr);gap:9px}.timeline-time{grid-template-columns:12px 1fr;column-gap:7px;font-size:10px}.timeline-time::before{width:12px;height:12px;border-width:3px}.timeline-row:not(:last-child)::before{left:6px}.event-top{flex-wrap:wrap;gap:13px}.event-actions{justify-content:flex-start;max-width:none}.place-row .event-actions{margin-left:51px}.event-description{font-size:12px}.day-footnote{padding-left:93px}
}
@media(max-width:500px){
  .site-header,.page-shell,.site-footer{width:calc(100% - 32px)}.site-header{gap:10px;min-height:74px}.header-note{padding:7px 8px;font-size:8px}.status-pip{width:5px;height:5px;box-shadow:0 0 0 2px #dfeddb}
  .intro{min-height:305px;padding:29px 0 30px}.eyebrow{max-width:calc(100% - 100px);font-size:8px;letter-spacing:.08em}.eyebrow::before{width:12px}.intro h1{max-width:calc(100% - 90px);margin:16px 0 14px;font-size:clamp(32px,7.2vw,37px)}.intro h1 em{white-space:normal}.intro-copy{margin-top:15px;font-size:12px;line-height:1.85}.intro-tags{gap:5px;margin-top:15px}.intro-tags span{padding:6px 7px;font-size:8px}
  .hero-art{top:43px;right:2px;width:110px;min-height:130px}.postcard{top:4px;width:96px;padding:5px;border-radius:8px}.postcard-top{font-size:4px}.postcard-top span:last-child{font-size:6px}.postcard-illustration svg{height:66px}.postcard-caption{justify-content:center;padding-top:5px;font-size:5px}.postcard-caption strong{font-size:7px}
  .planner-panel{margin-top:0;padding:22px 20px;border-radius:22px}.panel-heading{gap:8px}.panel-heading h2{margin-top:7px;font-size:21px}.step-label{font-size:9px;letter-spacing:.07em}.step-number{width:23px;height:23px;font-size:10px}.heading-stamp{width:42px;height:42px;font-size:23px}
  .form-grid{grid-template-columns:minmax(0,1fr);gap:17px;margin-top:24px}.field label{margin-bottom:7px;font-size:12px}.field select,.field input{height:49px;padding:0 13px;font-size:14px}.field-hint{min-height:0;margin-top:5px;font-size:10px}.field-hint:empty{display:none}.data-status{margin-top:17px;padding:9px 10px;font-size:10px}
  .form-footer{flex-direction:column;align-items:stretch;gap:15px;margin-top:18px;padding-top:16px}.form-footer p{max-width:none;font-size:10px}.button-primary{width:100%;min-height:49px;font-size:14px}.button-primary span:last-child{margin-left:13px}.app-message{padding:12px 13px;font-size:11px}
  .empty-state{padding:33px 8px 25px}.empty-state p{font-size:15px}.empty-state>span{font-size:10px}.empty-features{gap:5px}.empty-features span{padding:5px 8px;font-size:9px}
  .itinerary-section{margin-top:34px}.itinerary-heading{flex-direction:column;gap:15px;margin-bottom:20px}.itinerary-heading h2{font-size:28px}.itinerary-heading p{font-size:11px}.heading-actions{justify-content:flex-start;max-width:none}.heading-actions .button{font-size:11px}.day-list{gap:21px}.day-card{border-radius:20px}.day-card-header{gap:12px;padding:17px 16px}.day-title{gap:11px}.day-title strong{font-size:22px}.day-title span{font-size:11px}.day-area-controls{gap:6px}.day-area-select{height:40px;padding-left:10px;font-size:11px}.area-apply-button{min-height:40px;padding:0 10px;font-size:10px}
  .timeline{padding:12px 12px 9px}.timeline-row{grid-template-columns:45px minmax(0,1fr);gap:7px;padding:8px 0}.timeline-time{grid-template-columns:8px 1fr;column-gap:4px;padding-top:19px;font-size:9px}.timeline-time::before{width:8px;height:8px;margin-top:2px;border-width:2px}.timeline-row:not(:last-child)::before{top:30px;bottom:-8px;left:3px}
  .place-row .timeline-content{padding:14px 12px;border-radius:14px}.event-place-heading{align-items:flex-start;gap:8px}.place-sticker{width:31px;height:31px;border-radius:9px;font-size:17px}.event-title{font-size:14px}.event-subtitle{font-size:9px}.event-top{gap:11px}.place-row .event-actions{margin-left:0}.event-actions{flex-wrap:wrap;gap:5px}.swap-button,.map-link{min-height:40px;padding:0 9px;font-size:10px}.event-description{margin-top:10px;font-size:11px;line-height:1.8}.event-meta{gap:5px;margin-top:9px}.meta-pill{padding:4px 6px;font-size:9px}.swap-picker{gap:6px}.swap-picker select{padding:0 7px;font-size:10px}.swap-picker button{padding:0 9px;font-size:10px}
  .meal-row .timeline-content,.transfer-row .timeline-content,.free-row .timeline-content,.buffer-row .timeline-content{padding:7px 6px}.meal-row .event-title,.transfer-row .event-title,.free-row .event-title,.buffer-row .event-title{font-size:11px}.meal-row .event-description,.transfer-row .event-description,.free-row .event-description,.buffer-row .event-description{font-size:10px}.day-footnote{padding:0 15px 17px 64px;font-size:9px}.fine-print{margin:22px 0 0;padding:15px 16px;font-size:9px}.site-footer{flex-wrap:wrap;gap:9px;margin:24px auto 23px;padding-top:16px;font-size:9px}.site-footer span:nth-child(2){order:3;width:100%}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
@media print{
  @page{size:auto;margin:14mm}body{background:#fff;color:#243d36;font-size:10pt}.site-header{min-height:0;padding:0 0 10px;border-bottom-color:#aaa}.site-header,.page-shell{width:100%;max-width:none}.wordmark{font-size:16px}.wordmark-mark{width:30px;height:30px;border-radius:9px;box-shadow:none;font-size:16px}.header-note{border:0;background:none}
  .intro{display:block;min-height:0;margin:12px 0;padding:0 0 13px}.intro h1{max-width:none;margin:7px 0 8px;font-size:25px}.intro h1 br{display:none}.intro h1 em{white-space:normal}.intro h1 em::after{display:none}.intro-copy{max-width:none;margin:0;font-size:9pt}.eyebrow{max-width:none;font-size:8px}.hero-art,.intro-tags,.planner-panel,.empty-state,.heading-actions,.event-actions,.site-footer,.swap-picker,.day-area-controls{display:none!important}
  .itinerary-section{display:block!important;margin:0}.itinerary-heading{margin-bottom:13px}.itinerary-heading h2{font-size:22px}.itinerary-heading p{margin-top:5px;font-size:8pt}.step-label{font-size:8px}.day-list{display:block}.day-card{margin-bottom:14px;border:1px solid #ccc;border-radius:12px;box-shadow:none;break-inside:avoid}.day-card-header{min-height:0;padding:10px 13px;print-color-adjust:exact;-webkit-print-color-adjust:exact}.day-title strong{font-size:17px}.day-title span{font-size:9px}
  .timeline{padding:4px 13px 8px}.timeline-row{grid-template-columns:58px minmax(0,1fr);gap:10px;padding:6px 0}.timeline-time{grid-template-columns:9px 1fr;column-gap:7px;padding-top:10px;font-size:9px}.timeline-time::before{width:9px;height:9px;border-width:2px;print-color-adjust:exact;-webkit-print-color-adjust:exact}.timeline-row:not(:last-child)::before{top:24px;bottom:-6px;left:4px}.place-row .timeline-content{padding:10px 12px;border-radius:10px}.event-place-heading{gap:8px}.place-sticker{width:29px;height:29px;border-radius:8px;font-size:16px;print-color-adjust:exact;-webkit-print-color-adjust:exact}.event-title{font-size:11pt}.event-subtitle{font-size:8px}.event-description{margin-top:6px;font-size:8pt;line-height:1.65}.event-meta{gap:4px;margin-top:6px}.meta-pill{padding:3px 5px;font-size:7px}
  .meal-row .timeline-content,.transfer-row .timeline-content,.free-row .timeline-content,.buffer-row .timeline-content{padding:3px 8px}.meal-row .timeline-time,.transfer-row .timeline-time,.free-row .timeline-time,.buffer-row .timeline-time{padding-top:6px}.meal-row .event-title,.transfer-row .event-title,.free-row .event-title,.buffer-row .event-title{font-size:9px}.meal-row .event-description,.transfer-row .event-description,.free-row .event-description,.buffer-row .event-description{font-size:8px}.day-footnote{padding:0 13px 11px 81px;font-size:7px}.fine-print{margin-top:12px;padding:10px 12px;font-size:7pt;line-height:1.7}.capacity-message{border-color:#aaa;background:#fff;font-size:8pt}.app-message{display:none!important}
}

/* A quiet, centered introduction above the travel cards. */
@media screen {
  .intro { justify-content: center; min-height: 300px; padding: 43px 8px 38px; text-align: center; }
  .intro-main { flex: 0 1 760px; }
  .intro h1 { max-width: none; }
  .intro-copy { max-width: 560px; margin: 0 auto; }
  .intro-tags { justify-content: center; }
  .hero-art { display: none; }
  .eyebrow { max-width: none; }
  .timeline-time { min-width: 0; overflow: hidden; }
  .place-sticker { position: static; }
}
@media screen and (max-width: 800px) {
  .intro { min-height: 290px; padding: 36px 0; }
  .intro h1 { font-size: 46px; }
  .intro-copy { max-width: 520px; }
}
@media screen and (max-width: 700px) {
  .wordmark { font-size: 25px; }
  .intro { min-height: 290px; padding: 35px 0 34px; }
  .intro h1 { font-size: clamp(35px, 6vw, 43px); }
  .intro-copy { max-width: 490px; margin: 20px auto 0; }
  .timeline-row { grid-template-columns: 64px minmax(0, 1fr); gap: 15px; }
}
@media screen and (max-width: 500px) {
  .intro { min-height: 270px; padding: 32px 0 31px; }
  .intro h1 { max-width: none; font-size: clamp(32px, 7.2vw, 37px); }
  .intro-copy { max-width: 340px; margin: 15px auto 0; }
  .timeline-row { grid-template-columns: 54px minmax(0, 1fr); gap: 12px; }
  .timeline-time { grid-template-columns: 8px 1fr; column-gap: 6px; font-size: 10px; }
}

/* Calm, readable colors for a broad audience. */
@media screen {
  :root{--paper:#f8fafc;--card:#fff;--ink:#303e4e;--muted:#687788;--teal:#52779b;--teal-dark:#3f6387;--mint:#e3edf5;--mint-soft:#eef4f9;--lemon:#e9f0f7;--peach:#f8f3ed;--lilac:#f3f1f8;--line:#e3e9ef;--sand:#f4f7fa;--shadow:0 8px 28px rgba(45,65,90,.035)}
  body{background:var(--paper)}
  .site-header,.site-footer{border-color:#e5ebf1}
  .wordmark-mark{border:1px solid #d9e4ed;background:#e6eff6;color:#52728f;box-shadow:none;transform:none}
  .wordmark small,.intro-copy,.form-footer p,.event-description{color:#647486}
  .header-note{border-color:#e0e8f0;background:#f0f5f9;color:#627b91}
  .status-pip{background:#91b3c5;box-shadow:0 0 0 3px #e6eff5}
  .eyebrow,.step-label{color:#6d8093}
  .intro h1{font-weight:800;color:#344557}
  .intro h1 em{color:#607f9b}
  .intro h1 em::after{background:#e7eef6}
  .intro-tags span,.intro-tags span:first-child{border-color:#e4eaf0;background:#fff;color:#647b8d}
  .planner-panel,.day-card{border:1px solid #e1e7ee;box-shadow:0 8px 28px rgba(45,65,90,.035)}
  .heading-stamp{border-color:#e3eaf1;background:#f5f8fb;color:#8b9fb2;box-shadow:none;transform:none}
  .field label{color:#526477}
  .field-label-icon{background:#f2f6fa}
  .field select,.field input{border:1px solid #dde5ed;background:#fcfdfe;color:#37485b}
  .field select:hover,.field input:hover{border-color:#b6c8d8;background:#fff}
  .field select:focus,.field input:focus{border-color:#87a6c0;background:#fff}
  .field-hint{color:#738292}
  .data-status{background:#f0f5f9;color:#647f96}
  .data-status::before{background:#91b2c7}
  .form-footer{border-color:#e4eaf0}
  .button,.button-quiet{border:1px solid #dce5ee;background:#fff;color:#5d758d}
  .button:hover{border-color:#b8cadb;background:#f3f7fb}
  .button-primary{border-color:#52779b;background:#52779b;color:#fff;box-shadow:0 3px 8px rgba(64,97,130,.12)}
  .button-primary:hover{border-color:#42698e;background:#42698e;box-shadow:0 4px 10px rgba(64,97,130,.15)}
  .button-primary:active{box-shadow:none;transform:translateY(1px)}
  .app-message,.capacity-message{border-color:#e0e8f0;background:#f3f7fb;color:#607a93}
  .app-message.is-success{border-color:#dfebe6;background:#f3f8f5;color:#5c7d6c}
  .app-message.is-error{border-color:#eedfdc;background:#fcf5f3;color:#96645b}
  .empty-icon{border-color:#e0e7ef;background:#edf3f8;transform:none}
  .empty-state p{color:#5f7387}.empty-state>span{color:#778695}
  .empty-features span{background:#eef3f7;color:#718395}
  .day-card-header{border-color:#e1e9f0;background:#f0f5f9}
  .day-card:nth-child(3n+2) .day-card-header{border-color:#ece8e0;background:#f8f5ef}
  .day-card:nth-child(3n) .day-card-header{border-color:#e7e3ed;background:#f4f2f8}
  .day-title strong{color:#5c7b96}.day-card:nth-child(3n+2) .day-title strong{color:#8d816e}.day-card:nth-child(3n) .day-title strong{color:#817493}
  .day-title span{color:#758391}
  .day-area-select,.area-apply-button{border-color:#d9e3ec;background:#fff;color:#5e7891}
  .area-apply-button:hover{border-color:#afc2d4;background:#f7fafd}
  .timeline-row:not(:last-child)::before{background:repeating-linear-gradient(to bottom,#dce5ed 0,#dce5ed 4px,transparent 4px,transparent 8px)}
  .timeline-time{color:#697d91}.timeline-time::before{border-color:#e7eef5;background:#8aa8bf}
  .timeline-time .time-divider{color:#a6b5c3}
  .place-row .timeline-content{border-color:#e4eaf0;background:#fbfcfe}
  .place-sticker,.day-card:nth-child(3n+2) .place-sticker,.day-card:nth-child(3n) .place-sticker{background:#edf3f8;transform:none}
  .event-title{color:#3f5368}.event-subtitle{color:#77889a}
  .meta-pill{background:#f0f4f8;color:#74869a}
  .event-meta a{color:#6688a5}.event-meta a:hover{color:#426b90}
  .swap-button,.map-link{border-color:#dce5ed;background:#fff;color:#647d94}
  .map-link{background:#f0f5fa}.swap-button:hover,.map-link:hover{border-color:#b8cbdb;background:#edf4fa}
  .swap-picker{border-color:#e0e8f0}.swap-picker select{border-color:#dce5ed;color:#5f7890}
  .swap-picker button{border-color:#d2e0eb;background:#eaf2f8;color:#5a7893}.swap-picker button:hover{background:#e1edf6}
  .meal-row .event-title{color:#738396}.meal-row .timeline-time{color:#8594a4}
  .meal-row .timeline-time::before{border-color:#eef2f6;background:#aebdca}
  .day-footnote{color:#7e8c9b}.fine-print{background:#f0f4f8;color:#7c8999}.fine-print strong{color:#637a91}
  .site-footer{color:#8391a0}.site-footer span:first-child,.site-footer a{color:#6b8298}
  :focus-visible{outline-color:#7698b6}::selection{background:#ddeaf5;color:#34495d}
}

/* Keep the introduction compact so trip controls are visible immediately. */
@media screen {
  .intro{min-height:0;padding:30px 0 28px}
  .intro-main{flex:0 1 760px}
  .intro h1{margin:10px 0 11px;font-size:clamp(28px,3vw,38px);line-height:1.3;letter-spacing:-.055em}
  .intro-copy{max-width:none;margin:0 auto;font-size:14px;line-height:1.7}
  .header-note{padding:8px 12px;font-size:12px;font-weight:600;letter-spacing:0}
  #destinations-retry{margin-top:12px}
}
@media screen and (max-width:500px){
  .intro{min-height:0;padding:24px 0}
  .intro h1{font-size:29px}
  .intro-copy{max-width:290px;font-size:12px}
  .header-note{padding:7px 10px;font-size:10px}
}
