@import url("https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:ital,wght@0,500;0,600;1,500&display=swap");:root{--ink:#203e36;--muted:#778278;--paper:#f7f7ef;--green:#245947;--line:#dee3d8;--accent:#edb64f}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:DM Sans,system-ui,sans-serif;font-size:14px}button,input,select,textarea{font:inherit}a,button,input,select,textarea{touch-action:manipulation}button{cursor:pointer;border:0;background:var(--green);color:white;padding:13px 20px;border-radius:9px;font-weight:600}button:disabled{opacity:.5;cursor:wait}button:hover{filter:brightness(.95)}a{color:inherit}input,select,textarea{border:1px solid var(--line);border-radius:8px;padding:12px;background:#fff;color:var(--ink);min-width:0}button:focus-visible,input:focus,select:focus,textarea:focus{outline:2px solid #d99a34;outline-offset:3px}textarea{min-height:85px;resize:vertical}h1,h2,h3,p{margin-top:0}h1,h2{font-family:Playfair Display,Georgia,serif;font-weight:500}h1{font-size:clamp(40px,5vw,67px);line-height:1.08;letter-spacing:-2px}h1 em{color:#3e765d;font-weight:500}h2{font-size:31px;letter-spacing:-.7px}h3{font-size:18px}.muted,small{color:var(--muted)}p{line-height:1.7}.eyebrow{font-size:10px;font-weight:700;letter-spacing:2px;color:#728774}.app{max-width:1440px;margin:auto}header{height:100px;justify-content:space-between;padding:0 6%;border-bottom:1px solid var(--line)}.brand,header{display:flex;align-items:center}.brand{text-decoration:none;gap:14px;font-family:Georgia,serif;font-size:30px;letter-spacing:-3px}.brand span{font:700 9px/1.6 system-ui;letter-spacing:2px;border-left:1px solid #c5cdbf;padding-left:15px}nav{display:flex;gap:12px}nav button{background:transparent;color:#849084;font-size:13px;padding:14px}nav button.active{color:var(--green);background:#e7ecdf}nav button span{margin-right:4px;font-size:18px}.avatar{width:38px;height:38px;display:inline-flex;align-items:center;justify-content:center;background:#e5dec9;border:3px solid #fff;border-radius:50%;font-weight:700}main{padding:32px 6% 0}.hero{position:relative;min-height:365px;overflow:hidden;border-radius:20px;background:#e8eddf;padding:42px}.hero>div:first-child{position:relative;z-index:2}.hero h1{margin:18px 0}.hero p:not(.eyebrow){color:#6a7e6e}.hero button{margin-top:8px}.hero-drawing{position:absolute;width:48%;height:100%;right:0;bottom:0;background:linear-gradient(#e6eddd,#d1e7da);overflow:hidden}.sun-disc{position:absolute;width:145px;height:145px;background:#eccb79;border-radius:50%;right:25%;top:30px}.island{position:absolute;background:linear-gradient(110deg,#537d65,#2d5946);border-radius:70% 60% 0 0;transform:rotate(-5deg);bottom:65px}.island-one{width:170px;height:190px;right:30%}.island-two{width:140px;height:120px;right:0}.water{position:absolute;height:130px;bottom:0;width:100%;background:repeating-linear-gradient(178deg,#a7cebc 0 15px,#b6d7c4 16px 18px,#94bfac 19px 32px);opacity:.9}.hero-drawing>span{position:absolute;bottom:20px;right:25px;font-size:9px;letter-spacing:4px;color:#456b56}.countdown{position:absolute;z-index:3;right:25px;top:24px;display:flex;flex-direction:column;text-align:center;background:#ffffffb8;padding:12px 18px;border-radius:12px}.countdown strong{font-family:Georgia;font-size:33px}.countdown span{font-size:9px;color:#71816f}.trip-strip{display:flex;gap:12px;margin:20px 0 28px}.trip-strip button{flex:1 1;display:flex;align-items:center;gap:15px;background:transparent;color:var(--ink);border:1px solid var(--line);padding:18px;text-align:left}.trip-strip button.chosen{border-color:#91aa8a;background:#eef1e4}.trip-strip button>span:last-child{margin-left:auto}.trip-strip small,.trip-strip strong{display:block}.trip-strip strong{font-size:16px;margin-bottom:5px}.stop{color:#a2ac91;font-family:Georgia;font-size:23px}.return-note{padding:16px 25px;font-size:12px;line-height:1.8}.quick-add{display:flex;align-items:center;background:white;border:1px solid var(--line);border-radius:12px;padding:10px 12px;gap:12px}.quick-add>span{font-size:25px;padding:0 10px;color:#9aa88d}.quick-add input{flex:1 1;border:0;background:transparent}.quick-add button{background:#edf0e4;color:var(--green)}.section-heading{display:flex;justify-content:space-between;align-items:center;gap:15px;margin:36px 0 20px}.section-heading h2{margin:0}.section-heading h2 small{font-family:system-ui;font-size:13px;vertical-align:middle;background:#e8ecdf;border-radius:20px;padding:5px 10px;margin-left:5px}.section-heading .eyebrow{margin-bottom:7px}.section-heading select{background:transparent}.filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:24px}.filters select{font-size:12px;background:transparent}.text-button{background:transparent;color:var(--green);padding:8px}.filters .text-button{margin-left:auto;font-size:12px}.grid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:22px;gap:22px}.suggestion{padding:0;text-align:left;background:#fff;color:var(--ink);border:1px solid var(--line);border-radius:15px;overflow:hidden;font-weight:400}.card-art{height:150px;position:relative;display:flex;align-items:center;justify-content:center;background:#e8d9b7}.card-art>span{font-family:Georgia;font-size:75px;color:#777d51}.card-art small{position:absolute;top:12px;left:12px;background:#ffffffe6;color:var(--ink);padding:6px 9px;border-radius:6px;font-size:9px}.art-1{background:#c1ded5}.art-2{background:#b8c9ac}.art-3{background:#dfc7a1}.art-4{background:#c3c5d6}.art-5{background:#e5c7bb}.art-6{background:#d4dcaa}.card-body{padding:21px}.card-body .eyebrow{font-size:9px;letter-spacing:1px}.card-body h3{margin:10px 0}.card-body>p:not(.eyebrow){font-size:12px;color:var(--muted);height:40px;overflow:hidden}.card-foot{display:flex;justify-content:space-between;gap:10px;border-top:1px solid #edf0e8;padding-top:16px;font-size:12px}.card-foot>span:first-child{color:#bd8a35}.empty{border:1px dashed #ccd6c1;text-align:center;padding:55px 20px;border-radius:18px;background:#f0f2e7}.empty>span,.sun{font-size:65px;color:#c6a45c}.empty h3{font-family:Georgia;font-size:25px;font-weight:400;margin:15px 0}.empty p{color:var(--muted)}.map-main{height:500px}.map-pin{display:block;border-radius:50% 50% 50% 0;transform:rotate(-45deg);width:30px;height:30px;background:#295d48;border:2px solid white;box-shadow:0 2px 6px #0005;color:white;text-align:center;line-height:25px;font-size:18px}.hotel-pin{background:#c08e35}.pin-shell{background:transparent}.day-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:14px;gap:14px;margin-bottom:40px}.day,.panel{background:white;border:1px solid var(--line);border-radius:12px;padding:23px;margin-bottom:12px}.day select{width:100%;font-size:12px}.plan-item{width:100%;margin-bottom:10px;background:#edf1e5;color:var(--ink);text-align:left}.family-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:12px;gap:12px}.family-grid .panel p{font-size:11px;overflow-wrap:anywhere}.family-grid h3{margin-top:15px}details summary{cursor:pointer;font-weight:600}details form{margin-top:20px}footer{margin-top:65px;border-top:1px solid var(--line);padding:25px 0 70px;font-size:9px;letter-spacing:1.5px;color:var(--muted);display:flex;justify-content:space-between}.logout{position:absolute;top:105px;right:6%}.logout,.logout button{font-size:10px}.overlay{position:fixed;inset:0;z-index:1000;background:#153b2c88;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:flex-start;justify-content:center;padding:30px 15px;overflow:auto}.modal{position:relative;background:var(--paper);padding:35px;border-radius:20px;width:100%;max-width:580px;box-shadow:0 20px 80px #153b2c44}.modal.detail{max-width:700px}.close{position:absolute;right:13px;top:10px;background:transparent;color:var(--ink);font-size:25px;padding:5px 12px}.modal h2{margin:14px 0 24px}.modal h3{margin-top:26px}.modal label,.panel label{display:flex;flex-direction:column;gap:7px;margin:14px 0;font-size:12px;font-weight:600}.two{display:grid;grid-template-columns:1fr 1fr;grid-gap:13px;gap:13px}.two>*{min-width:0}.modal form>button{margin-top:10px}.inline{display:flex;gap:8px;margin:12px 0}.inline input{flex:1 1}.inline button{margin:0!important}.sources a{display:flex;justify-content:space-between;padding:12px;background:#e8eddf;margin:7px 0;border-radius:8px;text-decoration:none}.stars{display:flex;gap:6px}.stars button{padding:0 7px;background:transparent;color:#d9dece;font-size:35px}.stars button.gold{color:#d5a046}.interest{display:flex;gap:6px;flex-wrap:wrap;margin:12px 0}.interest button{font-size:11px;background:#e9eddf;color:var(--ink)}.interest button.chosen{background:var(--green);color:white}.member-votes p{display:flex;justify-content:space-between;font-size:11px;margin:9px 0}.member-votes span{color:var(--muted)}.candidate{display:block;text-align:left;font-size:11px;background:#e7eddf;color:var(--ink);margin:6px 0;width:100%}.comment{border-top:1px solid var(--line);padding-top:14px;margin-top:14px;font-size:12px}.comment small{float:right}.comment p{white-space:pre-wrap}.error{background:#fce4d9;color:#9a3f29;padding:12px 15px;border-radius:8px;margin:15px 0}.error button{background:transparent;color:inherit;float:right;padding:0 5px}.loading{text-align:center;padding:120px 20px}.login{min-height:100vh;padding:40px 9%;background:radial-gradient(ellipse at 90% 90%,#accbb9,transparent 60%),#eff0df;position:relative;overflow:hidden}.login h1{font-size:clamp(52px,8vw,96px);margin:30px 0}.login>.eyebrow{margin-top:100px}.login .brand span{max-width:200px;letter-spacing:2px}.login>p:not(.eyebrow){max-width:360px;color:#6a7e6e}.login form{margin:30px 0 16px}.login-art{position:absolute;right:5%;top:20%;font-size:390px;color:#d7b86666;pointer-events:none}.login small{font-size:11px}@media(max-width:800px){header{padding:0 5%;height:78px}nav{position:fixed;bottom:0;left:0;width:100%;background:#f7f7eff5;border-top:1px solid var(--line);z-index:900;justify-content:space-around;padding:7px 4px max(7px,env(safe-area-inset-bottom))}nav button{display:flex;flex-direction:column;align-items:center;font-size:10px;padding:6px 16px;gap:4px}nav button span{font-size:20px}.brand{font-size:26px}.brand span{font-size:8px}main{padding:22px 5% 0}.hero{padding:27px 23px;min-height:380px}.hero .eyebrow{font-size:8px;max-width:230px;line-height:1.8}.hero h1{font-size:44px;margin-top:24px}.hero>div:first-child>p:not(.eyebrow){max-width:220px;font-size:12px}.hero-drawing{width:38%;opacity:.65}.sun-disc{width:90px;height:90px;right:-25px;top:70px}.island-one{width:90px;height:130px;right:0;bottom:95px}.island-two{display:none}.water{height:110px}.countdown{right:12px;top:13px;padding:8px 12px}.countdown strong{font-size:24px}.countdown span{font-size:7px}.trip-strip{gap:8px}.trip-strip button{padding:13px 11px;gap:9px}.trip-strip strong{font-size:14px}.trip-strip small{font-size:9px}.trip-strip .stop{font-size:18px}.return-note{display:none}.quick-add{gap:0;padding:7px}.quick-add>span{display:none}.quick-add input{width:100%;font-size:11px;padding:9px}.quick-add button{padding:12px;font-size:10px;white-space:nowrap}.quick-add button span{display:none}.section-heading{align-items:flex-start}.section-heading h2{font-size:26px}.section-heading>select{font-size:10px;max-width:125px;padding:9px}.section-heading .eyebrow{font-size:8px}.filters{gap:6px}.filters select{font-size:10px;padding:9px;max-width:45%}.filters .text-button{margin:0}.grid{grid-template-columns:repeat(2,1fr);gap:12px}.card-art{height:110px}.card-art>span{font-size:55px}.card-body{padding:13px}.card-body h3{font-size:15px;line-height:1.4}.card-body .eyebrow{font-size:7px}.card-foot{font-size:10px;gap:4px}.card-foot small,.card-foot>span:last-child{display:none}.day-grid{grid-template-columns:1fr 1fr}.day{padding:15px}.family-grid{grid-template-columns:1fr 1fr}.panel{padding:18px}.overlay{padding:10px}.modal{padding:28px 20px}.two{gap:10px}.login{padding:30px 7%}.login-art{right:-130px;top:30%}.login>.eyebrow{margin-top:95px}.logout{top:80px;right:4%}.map-main{height:450px}footer{margin-top:40px;gap:20px;font-size:8px;padding-bottom:100px}.member-votes p{gap:15px}}@media(prefers-reduced-motion:no-preference){button{transition:background .15s,filter .15s}.modal{animation:appear .2s ease}@keyframes appear{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}}