:root{--wine:#7a2435;--wine-dark:#541725;--cream:#f7f1e8;--paper:#fffdf9;--ink:#29221f;--muted:#766b64;--gold:#c39a52;--line:#e6ddd2;--green:#43705c;--shadow:0 18px 50px rgba(70,42,32,.12);color-scheme:light}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#e9e0d5;color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif}button,input,textarea,select{font:inherit}button{cursor:pointer}.app-shell{position:relative;max-width:520px;min-height:100vh;margin:auto;background:var(--cream);box-shadow:0 0 70px rgba(40,25,20,.14);padding-bottom:94px}.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;padding:18px 20px 12px;background:color-mix(in srgb,var(--cream) 92%,transparent);backdrop-filter:blur(18px)}h1,h2,h3,p{margin-top:0}h1{font:600 28px/1.1 Georgia,serif;margin-bottom:0}h2{font:600 30px/1.08 Georgia,serif;margin-bottom:10px}h3{font:600 18px/1.25 Georgia,serif;margin:7px 0}.eyebrow,.kicker{color:var(--wine);font-size:11px;font-weight:800;letter-spacing:.14em;margin-bottom:6px}.kicker{color:var(--muted)}.lede{color:var(--muted);font-size:15px;line-height:1.55;margin-bottom:24px}.icon-button{width:42px;height:42px;border:1px solid var(--line);border-radius:50%;background:var(--paper);color:var(--ink);font-size:20px}.screen{display:none;padding:12px 20px 28px;animation:fade .22s ease}.screen.active{display:block}@keyframes fade{from{opacity:.25;transform:translateY(4px)}}.hero-card{position:relative;overflow:hidden;min-height:260px;margin:2px 0 26px;padding:30px 24px;border-radius:28px;color:white;background:linear-gradient(150deg,rgba(58,11,26,.15),rgba(58,11,26,.85)),radial-gradient(circle at 80% 15%,#d8a75a 0 5%,transparent 35%),linear-gradient(130deg,#b9735d,#6b2336 58%,#341621);box-shadow:var(--shadow)}.hero-card:after{content:"";position:absolute;right:-45px;bottom:-55px;width:190px;height:190px;border:1px solid rgba(255,255,255,.25);border-radius:50%;box-shadow:0 0 0 32px rgba(255,255,255,.05),0 0 0 64px rgba(255,255,255,.03)}.hero-card .kicker{color:#f5dca8}.hero-card h2{max-width:320px;font-size:38px}.hero-card>p{max-width:340px;line-height:1.55;color:#faeee8}.hero-meta{position:absolute;left:24px;bottom:24px;display:flex;gap:10px;z-index:1}.hero-meta span,.pill{padding:7px 10px;border-radius:99px;background:rgba(255,255,255,.16);font-size:11px;font-weight:700}.section-heading{display:flex;align-items:end;justify-content:space-between;margin-bottom:8px}.section-heading h2{font-size:24px}.section-heading .pill{background:#eadfd3;color:var(--wine)}.timeline{position:relative}.timeline:before{content:"";position:absolute;left:49px;top:24px;bottom:24px;width:1px;background:var(--line)}.timeline-item{display:grid;grid-template-columns:58px 1fr;gap:14px;position:relative;padding:14px 0}.timeline-item:before{content:"";position:absolute;left:44px;top:22px;width:9px;height:9px;border-radius:50%;background:var(--paper);border:2px solid var(--gold)}.timeline-item time{font-size:12px;font-weight:800;color:var(--muted);padding-top:3px}.timeline-item>div{padding:0 0 15px 4px}.timeline-item p{color:var(--muted);font-size:14px;line-height:1.5;margin-bottom:7px}.timeline-item.featured>div{padding:15px 16px;margin-top:-10px;border:1px solid #dbc7b3;border-radius:18px;background:var(--paper);box-shadow:0 10px 28px rgba(75,48,35,.08)}.status{display:inline-block;border-radius:99px;padding:4px 8px;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.05em}.confirmed{background:#dceade;color:var(--green)}.flexible{background:#efe8da;color:#86682e}.planning{background:#eee1e5;color:var(--wine)}.text-link{padding:0;border:0;background:none;color:var(--wine);font-size:13px;font-weight:800}.note-card,.progress-card,.pack-summary,.journal-card,.empty-state{display:flex;gap:14px;padding:18px;border:1px solid var(--line);border-radius:20px;background:var(--paper)}.note-card{margin-top:16px}.note-card>span{color:var(--gold);font-size:24px}.note-card p{color:var(--muted);font-size:14px;margin-bottom:0}.mood-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.mood-grid button{display:flex;flex-direction:column;gap:13px;min-height:108px;padding:18px;text-align:left;border:1px solid var(--line);border-radius:20px;background:var(--paper);color:var(--ink);font-weight:750}.mood-grid button span{font-size:25px}.mood-grid .trust{grid-column:1/-1;min-height:auto;flex-direction:row;align-items:center;color:white;background:var(--wine);border-color:var(--wine)}.mood-grid button.selected{outline:2px solid var(--gold);outline-offset:2px}.recommendations{display:grid;gap:12px;margin-top:20px}.empty-state{display:block;text-align:center;color:var(--muted);padding:30px}.empty-state span{font-size:25px;color:var(--gold)}.rec-card{padding:18px;border-radius:20px;background:var(--paper);border:1px solid var(--line)}.rec-card header{display:flex;justify-content:space-between;gap:10px}.rec-card p{font-size:14px;line-height:1.5;color:var(--muted)}.rec-meta{display:flex;gap:8px;margin-bottom:12px;color:var(--wine);font-size:11px;font-weight:800}.rec-actions{display:flex;justify-content:space-between;align-items:center}.favorite{border:0;background:none;color:var(--muted);font-size:20px}.favorite.saved{color:var(--wine)}.progress-card{display:block;margin-bottom:16px}.progress-card>div:first-child{display:flex;justify-content:space-between;font-size:13px}.progress{height:7px;margin-top:12px;border-radius:99px;background:var(--line);overflow:hidden}.progress i{display:block;width:0;height:100%;background:var(--wine);transition:.25s}.stack{display:grid;gap:12px}.trip-card{padding:18px;border:1px solid var(--line);border-radius:20px;background:var(--paper)}.trip-card-top{display:flex;gap:14px;align-items:start}.trip-icon{display:grid;place-items:center;flex:0 0 42px;height:42px;border-radius:13px;background:#efe3db}.trip-card p{font-size:13px;color:var(--muted);margin-bottom:12px}.trip-card select{width:100%;padding:10px;border:1px solid var(--line);border-radius:12px;background:var(--cream);color:var(--ink)}.booking-button{width:100%;margin-top:9px;padding:10px;border:0;border-radius:12px;background:#efe3db;color:var(--wine);font-weight:800}.pack-summary{align-items:center;margin-bottom:16px}.pack-summary p{margin:4px 0 0;color:var(--muted);font-size:12px}.ring{--p:0;display:grid;place-items:center;width:72px;height:72px;border-radius:50%;background:conic-gradient(var(--wine) calc(var(--p)*1%),var(--line) 0);position:relative}.ring:before{content:"";position:absolute;inset:7px;border-radius:50%;background:var(--paper)}.ring span{position:relative;font-weight:850}.filters{display:flex;gap:7px;overflow:auto;padding:2px 0 12px}.filters button{white-space:nowrap;border:1px solid var(--line);border-radius:99px;padding:8px 12px;background:var(--paper);color:var(--muted);font-size:12px}.filters button.active{background:var(--wine);color:white;border-color:var(--wine)}.checklist{display:grid;gap:8px}.check-item{display:flex;align-items:center;gap:12px;padding:14px;border:1px solid var(--line);border-radius:15px;background:var(--paper)}.check-item input{appearance:none;width:23px;height:23px;border:2px solid #c9bcb0;border-radius:7px}.check-item input:checked{border-color:var(--wine);background:var(--wine);box-shadow:inset 0 0 0 5px var(--paper)}.check-item.checked span{text-decoration:line-through;color:var(--muted)}.check-item small{margin-left:auto;color:var(--muted)}.story-hero{padding:28px 22px;margin-bottom:24px;border-radius:26px;color:white;background:linear-gradient(145deg,#3d1823,#8a3547)}.story-hero .eyebrow{color:#e8c992}.story-hero p:last-child{color:#eadde0;margin-bottom:0;line-height:1.5}.story-entry{display:grid;grid-template-columns:20px 1fr;gap:12px;padding:8px 0 28px}.story-dot{width:12px;height:12px;margin-top:5px;border:3px solid var(--gold);border-radius:50%}.story-entry p:last-child{color:var(--muted);line-height:1.55}.journal-card{display:block}.journal-card label{display:block;margin:14px 0;color:var(--muted);font-size:12px;font-weight:750}.journal-card input,.journal-card textarea{display:block;width:100%;margin-top:7px;padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--cream);color:var(--ink);resize:vertical}.primary{width:100%;padding:13px;border:0;border-radius:13px;background:var(--wine);color:#fff;font-weight:850}.save-message{min-height:18px;margin:10px 0 0;text-align:center;color:var(--green);font-size:12px}.bottom-nav{position:fixed;left:50%;bottom:0;z-index:30;display:grid;grid-template-columns:repeat(5,1fr);width:min(520px,100%);transform:translateX(-50%);padding:9px 8px calc(9px + env(safe-area-inset-bottom));background:color-mix(in srgb,var(--paper) 94%,transparent);border-top:1px solid var(--line);backdrop-filter:blur(18px)}.bottom-nav button{display:flex;flex-direction:column;align-items:center;gap:4px;padding:6px 2px;border:0;background:none;color:var(--muted);font-size:10px;font-weight:750}.bottom-nav button span{font-size:19px}.bottom-nav button.active{color:var(--wine)}dialog{width:min(430px,calc(100% - 30px));border:0;border-radius:24px;padding:26px;background:var(--paper);color:var(--ink);box-shadow:var(--shadow)}dialog::backdrop{background:rgba(35,20,19,.55);backdrop-filter:blur(4px)}.dialog-close{float:right;border:0;background:none;color:var(--muted);font-size:28px}.booking-detail{clear:both}.booking-detail .code{padding:14px;border:1px dashed var(--gold);border-radius:12px;background:var(--cream);font-family:ui-monospace,monospace}.booking-detail dl{display:grid;grid-template-columns:auto 1fr;gap:8px 14px;font-size:13px}.booking-detail dt{color:var(--muted)}.booking-detail dd{margin:0;font-weight:750}.dark{--cream:#1d1918;--paper:#272120;--ink:#f6eee8;--muted:#b9aaa2;--line:#423734;--wine:#ce7287;--wine-dark:#ef93a7;--gold:#dfb46a;--green:#8dc0a6;background:#111}.dark .hero-card{background:linear-gradient(150deg,rgba(58,11,26,.1),rgba(24,11,17,.9)),linear-gradient(130deg,#925545,#511c2a)}.dark .confirmed{background:#294637}.dark .planning,.dark .trip-icon,.dark .booking-button{background:#3e2a31}.dark .flexible{background:#433922}.dark .section-heading .pill{background:#3d302b}.dark .icon-button{background:#272120}@media(min-width:700px){body{padding:30px 0}.app-shell{min-height:calc(100vh - 60px);border-radius:32px;overflow:hidden}.bottom-nav{bottom:30px;border-radius:0 0 32px 32px}}
