:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#123a73;background:#fff8df;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}body{margin:0;min-width:320px;overflow-x:hidden}button,input{font:inherit}button{cursor:pointer}a{color:inherit}main{min-height:100vh;background:linear-gradient(180deg,#fff5caf5,#e4f7fffa 52%,#fff5d8),radial-gradient(circle at 90% 8%,rgba(255,211,60,.25),transparent 24rem)}.topbar{display:flex;align-items:center;justify-content:space-between;padding:20px clamp(18px,4vw,54px)}.topbar img{width:clamp(124px,19vw,180px)}.topbar a{text-decoration:none;font-weight:900;color:#0759bb;background:#ffffffbf;padding:10px 14px;border-radius:999px;border:1px solid rgba(7,89,187,.14)}.landing-page{min-height:100vh;position:relative}.landing-page:before{content:"";position:absolute;left:0;top:0;width:min(460px,78vw);height:150px;border-right:8px solid #efb52a;border-bottom:6px solid #efb52a;border-bottom-right-radius:72% 60%;background:#fffffae6;z-index:0}.landing-hero,.topbar{position:relative;z-index:1}.landing-hero{max-width:1180px;margin:28px auto 0;padding:0 clamp(18px,4vw,54px) 54px;display:grid;grid-template-columns:minmax(0,.95fr) minmax(340px,1.05fr);align-items:center;gap:clamp(30px,6vw,84px)}.campaign-pill{width:fit-content;display:inline-flex;align-items:center;gap:8px;color:#0759bb;background:#ffdc46;border-radius:999px;padding:9px 16px;font-weight:950;box-shadow:0 12px 28px #de9d122e}.landing-copy h1,.photo-panel h1,.join-card h1{margin:22px 0 16px;color:#0759bb;font-size:clamp(44px,7.2vw,86px);line-height:.96;letter-spacing:0}.landing-copy p,.photo-panel p,.join-card p{color:#33465c;font-size:clamp(18px,2vw,25px);line-height:1.35;margin:0;font-weight:650}.primary-cta,.secondary-action,.result-actions button,.result-actions a,.final-visual button{border:0;min-height:58px;display:inline-flex;align-items:center;justify-content:center;gap:10px;border-radius:999px;color:#fff;background:linear-gradient(180deg,#34d760,#0eaf3e);padding:0 24px;font-weight:950;text-decoration:none;box-shadow:0 15px 28px #1b9a3a38,inset 0 0 0 3px #ffffff57}.primary-cta{margin-top:28px;font-size:19px}.benefit-list{display:flex;flex-wrap:wrap;gap:9px;margin-top:18px}.benefit-list span{display:inline-flex;align-items:center;gap:7px;color:#1b6f45;background:#ffffffc7;border:1px solid rgba(20,108,74,.13);border-radius:999px;padding:8px 11px;font-weight:850}.brand-stage{position:relative;min-height:650px;border-radius:44px;background:linear-gradient(180deg,#ffffff9e,#fff5cc66),radial-gradient(circle at 50% 25%,#bdeaff,transparent 17rem);border:1px solid rgba(255,212,61,.42);box-shadow:0 28px 70px #07478024;overflow:hidden}.travel-path{position:absolute;top:36px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:10px;color:#efb52a}.travel-path span{width:148px;height:28px;border-top:3px dashed #76b6ea;border-radius:50%}.oma-img{position:absolute;left:-8%;bottom:0;width:min(70%,430px);max-height:92%;object-fit:contain}.product-img{position:absolute;right:3%;bottom:42px;width:min(42%,250px);filter:drop-shadow(0 18px 28px rgba(21,64,112,.2))}.happi-card{position:absolute;right:6%;top:24%;width:min(330px,55%);display:flex;gap:12px;align-items:center;padding:14px;border-radius:22px;background:#fffffff0;box-shadow:0 18px 42px #08407e2e}.happi-card img{width:62px;height:62px;border-radius:50%;border:3px solid #ffe063}.happi-card strong{display:block;color:#0759bb;font-size:19px}.happi-card small{color:#445e77;font-weight:750;line-height:1.3}.chat-page{min-height:100vh;background:#0f263c;color:#fff;display:grid;grid-template-rows:auto 1fr auto}.chat-top{position:sticky;top:0;z-index:2;display:flex;align-items:center;gap:12px;padding:14px 16px;background:#152f48;border-bottom:1px solid rgba(255,255,255,.12)}.chat-top button{width:42px;height:42px;border-radius:50%;border:0;background:#ffffff1a;color:#fff}.chat-top img{width:52px;height:52px;border-radius:50%;border:3px solid #fff1b4}.chat-top div:nth-child(3){flex:1}.chat-top strong,.chat-top span{display:block}.chat-top strong{font-size:20px}.chat-top span{color:#9bd3f7;font-weight:750}.progress-dot{width:52px;height:52px;border-radius:50%;background:conic-gradient(#38b6ff var(--p, 50%),rgba(255,255,255,.16) 0);display:grid;place-items:center;font-weight:950;font-size:13px}.chat-thread{width:min(100%,840px);margin:0 auto;padding:20px 14px 100px}.message-row{display:flex;gap:10px;margin:14px 0;align-items:flex-end}.message-row.user{justify-content:flex-end}.message-row.happi img{width:42px;height:42px;border-radius:50%;flex:0 0 auto}.message{max-width:min(650px,86vw);padding:13px 14px;border-radius:18px;background:#203b55;color:#fff;box-shadow:0 10px 24px #0000001f}.message-row.user .message{background:#d7f8c6;color:#103c24;border-bottom-right-radius:5px}.message-row.happi .message{border-bottom-left-radius:5px}.message p{margin:0;line-height:1.42;font-size:17px}.quick-replies{display:grid;gap:8px;margin-top:12px}.quick-replies button{min-height:48px;border:1px solid rgba(255,255,255,.14);border-radius:14px;background:#fff9ec;color:#123a73;font-weight:900;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:8px 12px}.quick-replies .selected{background:#ffdc46;color:#0759bb}.quick-replies .done{background:#38c865;color:#fff}.typing{display:inline-flex;gap:5px;align-items:center;min-width:66px}.typing span{width:8px;height:8px;border-radius:50%;background:#8fd5ff;animation:bounce 1s infinite ease-in-out}.typing span:nth-child(2){animation-delay:.15s}.typing span:nth-child(3){animation-delay:.3s}@keyframes bounce{0%,80%,to{transform:translateY(0);opacity:.45}40%{transform:translateY(-5px);opacity:1}}.itinerary-loading-card{width:min(650px,86vw);display:grid;gap:12px}.loading-card-top{display:flex;align-items:center;gap:10px;color:#fff}.loading-card-top strong{line-height:1.25}.loading-steps{display:grid;gap:7px}.loading-steps span{display:flex;align-items:center;gap:7px;min-height:30px;padding:7px 9px;border-radius:12px;color:#ffffff9e;background:#ffffff0f;font-weight:760;font-size:13px}.loading-steps span.active{color:#fff9dd;background:#ffdc4629}.itinerary-loading-card small{color:#bfe3ff;line-height:1.35;font-weight:700}.composer{position:fixed;left:0;right:0;bottom:0;display:flex;gap:10px;padding:12px max(12px,calc((100vw - 840px)/2));background:#152f48;border-top:1px solid rgba(255,255,255,.13)}.composer input{min-height:52px;flex:1;border:0;border-radius:999px;padding:0 18px;outline:0;color:#16364f;font-weight:750}.composer button{width:52px;height:52px;border-radius:50%;border:0;color:#fff;background:#28b75a}.composer button:disabled{opacity:.5;cursor:not-allowed}.itinerary-page,.photo-page,.join-page{min-height:100vh;padding:18px clamp(14px,4vw,48px) 44px}.result-header{max-width:940px;margin:0 auto 18px;display:flex;align-items:center;justify-content:space-between}.result-header img{width:130px}.result-header span{background:#ffdc46;color:#0759bb;padding:8px 12px;border-radius:999px;font-weight:950}.notice{max-width:940px;margin:0 auto 14px;padding:12px 14px;border-radius:16px;background:#fff0a8;color:#715400;font-weight:850}.itinerary-document{max-width:940px;margin:0 auto;background:#fffffff0;border:1px solid rgba(7,89,187,.12);border-radius:30px;padding:clamp(18px,4vw,34px);box-shadow:0 26px 70px #13538b29}.loading-state{min-height:360px;display:grid;place-items:center;align-content:center;text-align:center}.loading-state h1{margin:14px 0 8px;font-size:clamp(30px,6vw,48px)}.loading-state p{margin:0;color:#40556a;font-weight:750}.trip-meta{display:flex;gap:9px;flex-wrap:wrap}.trip-meta span{display:inline-flex;align-items:center;gap:7px;padding:8px 10px;border-radius:999px;background:#eaf7ff;color:#0f4d85;font-weight:850}.itinerary-document h1{margin:18px 0 10px;color:#0759bb;font-size:clamp(34px,5vw,62px);line-height:1;letter-spacing:0}.intro{color:#334b60;font-size:19px;line-height:1.45;font-weight:650}.route-note{margin:18px 0;border-radius:18px;padding:14px 16px;background:#fff4bf;color:#725908;font-weight:850}.days-stack{display:grid;gap:14px}.day-panel{border-radius:22px;padding:18px;background:#f7fbff;border:1px solid #dbeaf8}.day-number{width:fit-content;color:#0d9b49;font-weight:950;margin-bottom:8px}.day-panel h2{margin:0 0 12px;color:#123a73;font-size:24px;letter-spacing:0}.day-detail{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.day-detail p{margin:0;color:#40556a;line-height:1.36}.day-detail strong{display:block;color:#0759bb;margin-bottom:4px}.day-panel small{display:block;margin-top:12px;color:#765a08;font-weight:850}.comfort-section{margin-top:18px;padding:18px;border-radius:22px;background:linear-gradient(90deg,#0759bb,#0a72d8);color:#fff}.comfort-section h2{margin:0 0 12px;letter-spacing:0}.comfort-section div{display:flex;flex-wrap:wrap;gap:8px}.comfort-section span{background:#ffffff2e;border:1px solid rgba(255,255,255,.22);border-radius:999px;padding:8px 10px;font-weight:850}.comfort-section p{margin:14px 0 0;font-weight:800;line-height:1.4}.result-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:18px}.result-actions button,.result-actions a{min-height:54px;border-radius:16px;padding:0 14px;font-size:15px}.result-actions button:nth-child(2),.result-actions a{background:#ffdc46;color:#0759bb;box-shadow:none}.back-link{border:0;background:#ffffffc7;color:#0759bb;display:inline-flex;align-items:center;gap:7px;padding:10px 13px;border-radius:999px;font-weight:900;margin-bottom:16px}.photo-panel{max-width:1120px;margin:0 auto;display:grid;grid-template-columns:.86fr 1fr;gap:22px;align-items:start}.photo-panel>div,.generation-stage,.join-card{background:#fffffff0;border:1px solid rgba(7,89,187,.12);border-radius:30px;padding:clamp(18px,3vw,30px);box-shadow:0 24px 60px #13538b24}.photo-panel h1,.join-card h1{font-size:clamp(38px,6vw,70px)}.upload-zone{position:relative;min-height:190px;margin-top:18px;border:2px dashed #65b6ed;border-radius:24px;background:#eef9ff;display:grid;place-items:center;align-content:center;gap:8px;text-align:center;color:#0759bb;padding:18px}.upload-zone input{position:absolute;inset:0;opacity:0;cursor:pointer}.upload-zone strong{font-size:21px}.upload-zone span{color:#4c6378;font-weight:750}.secondary-action{width:100%;margin-top:12px;background:#ffdc46;color:#0759bb;box-shadow:none}.upload-note{margin:12px 0 0;padding:12px 14px;border-radius:16px;background:#fff4bf;color:#745708;font-size:15px;line-height:1.35;font-weight:850}.upload-received{margin-top:18px;display:flex;gap:14px;align-items:center;padding:14px;border-radius:22px;background:#eef9ff;border:1px solid #bfe2fb}.upload-received img{width:92px;height:92px;object-fit:cover;border-radius:18px;border:3px solid white;box-shadow:0 12px 28px #0759bb24}.upload-received strong,.upload-received span{display:block}.upload-received strong{color:#0759bb;font-size:20px;margin-bottom:4px}.upload-received span{color:#40556a;font-weight:750;line-height:1.35}.reupload-action{position:relative;margin-top:18px}.reupload-action input{position:absolute;inset:0;opacity:0;cursor:pointer}.generation-stage{min-height:520px;display:grid;place-items:center}.processing-card,.empty-visual,.final-visual{text-align:center;width:100%}.orbit{width:90px;height:90px;margin:0 auto 16px;border-radius:50%;display:grid;place-items:center;color:#0759bb;background:#fff2a8;animation:pulse 1.5s infinite ease-in-out}@keyframes pulse{50%{transform:scale(1.05);box-shadow:0 0 0 18px #ffdc462e}}.progress-bar{height:10px;background:#dceffc;border-radius:999px;overflow:hidden;margin-top:18px}.progress-bar span{display:block;height:100%;width:45%;background:#32bd62;border-radius:inherit;animation:loading 1.4s infinite ease-in-out}@keyframes loading{50%{transform:translate(120%)}}.final-visual img,.empty-visual img{width:100%;max-height:620px;object-fit:cover;border-radius:22px}.final-visual h2,.processing-card h2{color:#0759bb;letter-spacing:0}.final-visual button{margin-top:14px}.join-card{max-width:920px;margin:0 auto}.join-card>img{width:140px;margin-bottom:14px}.mechanic-steps{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin:22px 0}.mechanic-steps div{display:flex;gap:12px;align-items:center;padding:14px;border-radius:18px;background:#f3faff;color:#284a68;font-weight:750}.mechanic-steps strong{width:38px;height:38px;border-radius:50%;background:#ffdc46;color:#0759bb;display:grid;place-items:center;flex:0 0 auto}.join-links{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.join-links a{min-height:54px;display:flex;align-items:center;justify-content:center;gap:8px;border-radius:16px;background:#0759bb;color:#fff;font-weight:900;text-decoration:none}.join-links img{width:20px;height:20px}.purchase-strip{margin-top:16px;display:flex;gap:10px;align-items:center;padding:14px;border-radius:18px;background:#fff4bf;color:#715400;font-weight:850}.spin{animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:920px){.landing-hero,.photo-panel{grid-template-columns:1fr}.brand-stage{min-height:560px}.day-detail,.result-actions{grid-template-columns:1fr}}@media(max-width:620px){.topbar{padding:16px}.topbar img{width:126px}.landing-page:before{height:116px;border-width:0 6px 5px 0}.landing-hero{margin-top:22px;padding:0 16px 36px}.landing-copy h1,.photo-panel h1,.join-card h1{font-size:clamp(38px,11.3vw,50px);line-height:1.04}.landing-copy p,.photo-panel p,.join-card p{font-size:18px}.primary-cta{width:100%;white-space:normal;text-align:center}.brand-stage{min-height:500px;border-radius:30px}.oma-img{width:82%;left:-24%}.product-img{width:44%;right:2%;bottom:28px}.happi-card{width:78%;right:5%;top:18%}.chat-thread{padding-inline:10px}.message{max-width:84vw}.itinerary-page,.photo-page,.join-page{padding-inline:12px}.itinerary-document,.photo-panel>div,.generation-stage,.join-card{border-radius:22px;padding:18px}.itinerary-document h1{font-size:clamp(31px,9vw,42px)}.mechanic-steps,.join-links{grid-template-columns:1fr}}
