/* A calm travel journal. The stamp is the signature, not another dashboard. */
/* Restaurant research uses the existing card grid, without public ranking numbers. */
.research-place { gap:18px; min-width:0; }
.restaurant-card.research-place > div { margin:0; }
.research-place .place-status { display:inline-block; margin:0 0 12px; padding:5px 8px; background:#fff1d8; color:#77541f; border-radius:6px; font-size:.72rem; }
.research-place address { margin-top:10px; line-height:1.65; overflow-wrap:anywhere; }
.research-place .place-facts { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.research-place .place-facts dt { font-size:.74rem; color:var(--muted); }
.research-place .place-facts dd { margin:5px 0 0; font-size:.88rem; }
.research-place .place-facts dd small { display:block; margin-top:4px; color:var(--muted); }
.restaurant-card.research-place > .place-map-actions { display:grid; grid-template-columns:1fr 1fr; margin-top:auto; }
.place-map-actions small { grid-column:1/-1; color:var(--muted); font-size:.7rem; }
.place-evidence { border-top:1px solid var(--line); margin-top:16px; padding-top:12px; }
.place-evidence summary { cursor:pointer; font-size:.8rem; font-weight:600; }
.place-evidence blockquote { margin:12px 0; padding-left:12px; border-left:2px solid var(--line); line-height:1.7; font-size:.8rem; }
.place-evidence a { display:inline-block; background:none; color:var(--red); border:0; padding:0; text-align:left; }
.place-research-empty { padding:24px; border:1px dashed var(--line); border-radius:12px; }
.stop-match.pending { background:#fff1d8; color:#77541f; }
.recipe-research p { overflow-wrap:anywhere; }
#placeDialog .restaurant-grid { grid-template-columns:1fr; }
@media(max-width:600px) { .place-city-tabs { grid-template-columns:repeat(2,minmax(0,1fr)); } .restaurant-grid { grid-template-columns:1fr; } .research-place .place-facts { grid-template-columns:1fr 1fr; } }
:root { --paper:#faf7f0; --ink:#262d29; --ink2:#37463d; --red:#b53f30; --red2:#923427; --jade:#476e5a; --muted:#656b65; --line:#deded3; --shadow:0 16px 50px #262d2912; }
body { background:var(--paper); }
main { max-width:1180px; padding-bottom:64px; }
.site-header { background:var(--paper); height:76px; gap:24px; padding-inline:max(24px,calc((100vw - 1120px)/2)); }
.brand-button img { width:218px; height:auto; }
.site-header .brand-button img { content:normal; }
.site-header nav button { background:none; border:0; font-weight:500; }
.site-header nav button.active { background:none; color:var(--red); text-decoration:underline; text-underline-offset:8px; }
.header-actions { gap:14px; }
.header-actions [data-open-account] { background:none; border-color:var(--line); color:var(--ink); font-size:.85rem; }
.account-bar { background:#fff5dc; max-width:none; border:0; padding:8px max(24px,calc((100vw - 1120px)/2)); }
.account-bar:has([data-state="guest"]),.account-bar:has([data-state="saved"]) { display:none; }
.language-switch { background:none; border:0; }
.destination-workspace { grid-template-columns:1.1fr .85fr; gap:10%; margin:64px 0; min-height:520px; }
.destination-copy h1 { font-family:Georgia,serif; font-size:clamp(3.1rem,5.2vw,4.65rem); line-height:1.08; letter-spacing:-.04em; }
.eyebrow { font-size:.7rem; line-height:1.7; letter-spacing:.13em; }
.destination-copy .home-intro { font-size:1.05rem; max-width:410px; }
.city-label { font-size:.95rem; }
.city-search { border:1px solid #9a9c90; box-shadow:none; min-height:58px; height:58px; border-radius:9px; }
.city-search:focus-within { outline:2px solid var(--jade); outline-offset:3px; }
.city-search input:focus-visible { outline:none; }
.city-suggestion { font-size:.85rem; color:var(--muted); margin:12px 0; }
.city-suggestion button { border:0; background:none; color:var(--red); padding:0 6px; font-weight:600; }
.home-footnote { max-width:400px; font-size:.8rem; }
.home-action-panel { margin-top:18px; }
.home-action-panel:empty { display:none; }
.passport-preview { position:relative; padding:40px 34px 34px 46px; background:#fffdfa; border:1px solid #d8d2c6; border-radius:4px 18px 18px 4px; box-shadow:12px 14px 0 #eee9dd; transform:rotate(2deg); max-width:400px; }
.preview-binding { position:absolute; inset:0 auto 0 15px; border-left:1px solid #ded8c8; }
.preview-label { font-size:.65rem; letter-spacing:.13em; color:var(--muted); }
.passport-preview h2 { font:3.2rem Georgia,serif; margin:22px 0 10px; }
.passport-preview h2 span { display:block; font:1rem serif; margin-top:10px; color:var(--muted); }
.passport-preview>p:not(.preview-label) { color:var(--muted); font-size:.9rem; }
.preview-stamps { display:flex; gap:12px; flex-wrap:wrap; margin:34px 0; }
.sample-stamp { width:112px; height:96px; border:2px solid var(--red); color:var(--red); border-radius:9px; display:flex; align-items:center; justify-content:center; flex-direction:column; font:1.7rem serif; transform:rotate(-7deg); opacity:.83; }
.sample-stamp:nth-child(2) { transform:rotate(7deg); border-radius:50%; color:var(--jade); border-color:var(--jade); }
.sample-stamp.curious { width:68px; height:68px; border-style:dashed; border-radius:50%; transform:rotate(-3deg); }
.sample-stamp small { font:600 .5rem/1.4 sans-serif; letter-spacing:.02em; margin-top:7px; }
.preview-note { display:flex; gap:12px; padding:16px 0; border-top:1px solid var(--line); }
.preview-note>span { font:3rem Georgia,serif; color:var(--red); }
.preview-note p { font:italic 1.1rem/1.5 Georgia,serif; }
.passport-preview .text-detail { font-size:.85rem; }
.primary-button { background:var(--red); border-color:var(--red); border-radius:8px; font-size:.9rem; }
.secondary-button { background:#fffdfa; border-color:var(--line); border-radius:8px; font-size:.9rem; }
.quiet-button { border:0; background:none; color:var(--ink2); padding:6px 4px; font-size:.875rem; text-decoration:underline; text-underline-offset:4px; }
.food-discovery { margin-top:22px; }
.discovery-hero { height:auto; min-height:0; border-radius:0; background:none; overflow:visible; color:var(--ink); }
.discovery-hero>div { position:static; padding:20px 0 26px; display:grid; grid-template-columns:1fr auto; gap:0 28px; }
.discovery-hero h2 { font:3.4rem/1.15 Georgia,serif; grid-column:1; margin-bottom:12px; color:var(--ink); }
.discovery-hero p { grid-column:1; color:var(--muted); }
.discovery-hero>div>p:not(.eyebrow) { color:var(--muted); }
.discovery-hero>div>div { grid-column:2; grid-row:1/4; align-self:center; }
.discovery-hero .eyebrow { color:var(--red); }
.discovery-heading { border-top:1px solid var(--line); padding-top:28px; margin:0 0 20px; gap:24px; }
.discovery-heading h2 { font:1.7rem/1.3 Georgia,serif; }
.discovery-heading>p { font-size:.9rem; max-width:400px; }
.discovery-search-bar { padding:0; border:0; background:none; margin:0 0 16px; }
.discovery-search-bar label { max-width:480px; }
.discovery-search-bar label>span { font-size:.8rem; }
.discovery-search-bar input { font-size:1rem; }
.discovery-tag-filters { align-items:center; margin-bottom:24px; }
.discovery-tag-filters button { min-height:40px; padding:6px 14px; background:none; color:var(--muted); font-size:.8rem; border:1px solid var(--line); }
.discovery-tag-filters button.active { background:var(--ink); color:white; border-color:var(--ink); }
.taste-filters summary { cursor:pointer; padding:10px; font-size:.8rem; }
.taste-filters>div { display:flex; flex-wrap:wrap; gap:6px; padding:10px 0; }
.taste-filters[open] { flex-basis:100%; }
.discovery-foods { gap:22px; }
.discovery-food { border-radius:10px; box-shadow:none; background:#fffdfa; }
.discovery-image { aspect-ratio:16/10; }
.discovery-image>.image-kind { font-size:.75rem; font-weight:500; line-height:1.4; max-width:calc(100% - 28px); padding:3px 7px; border-radius:4px; }
.discovery-copy { padding:18px 18px 0; }
.discovery-copy h3 { font-size:1.15rem; margin:6px 0; }
.discovery-copy h3 button { width:100%; border:0; background:none; text-align:left; padding:0; line-height:1.4; font-weight:600; }
.discovery-copy h3 button span { color:var(--muted); float:right; margin-left:5px; }
.discovery-copy>p { font-size:.875rem; line-height:1.65; }
.discovery-copy>small { font-size:.8rem; }
.discovery-copy .dish-category { color:var(--jade); font-size:.7rem; margin:0; }
.discovery-actions { position:static; left:auto; right:auto; bottom:auto; display:block; padding:14px 18px 18px; }
.discovery-actions .save-food { width:100%; min-height:42px; background:none; border-color:var(--line); color:var(--ink); }
.discovery-actions .save-food.selected { border-color:var(--jade); color:var(--jade); background:#f0f5ed; }
.dish-warning { color:#8b3b28; display:block; font-size:.8rem; line-height:1.6; }
.discovery-copy .dish-warning { border-top:1px solid var(--line); padding-top:10px; font-size:.8rem; }
.module-page { padding-top:36px; }
.section-heading h2 { font:2.7rem Georgia,serif; }
.section-heading>p { font-size:.95rem; }
.passport-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
.passport-card { box-shadow:none; background:#fffdfa; }
.passport-cover-button { height:240px; }
.workspace-dialog { width:min(920px,calc(100vw - 40px)); border-radius:14px; background:var(--paper); }
.minimal-workspace-head { padding:22px 30px; border-bottom:1px solid var(--line); display:flex; flex-wrap:wrap; align-items:center; gap:20px; }
.minimal-workspace-head>div { flex:1; }
.minimal-workspace-head h2 { font:2.25rem Georgia,serif; margin:0; }
.minimal-workspace-head h2 small { font:1rem serif; color:var(--muted); margin-left:8px; }
.minimal-workspace-head .eyebrow { margin-bottom:4px; }
.taste-count { font-size:.8rem; color:var(--muted); }
.workspace-body { padding:28px 30px; }
.next-taste { display:grid; grid-template-columns:1fr 210px; gap:26px; align-items:center; margin:0 0 26px; }
.next-taste h3 { font:2rem/1.2 Georgia,serif; margin:8px 0 14px; }
.next-taste p:not(.eyebrow) { font-size:.95rem; color:var(--muted); }
.next-taste-art img { width:100%; height:185px; object-fit:cover; border-radius:8px; }
.next-taste-actions { display:flex; align-items:center; gap:16px; flex-wrap:wrap; margin-top:18px; }
.chapter-progress { display:flex; justify-content:space-between; align-items:center; gap:16px; padding:16px 0 22px; border-block:1px solid var(--line); margin:20px 0 28px; }
.chapter-progress strong { font-size:.9rem; font-weight:500; }
.chapter-progress small { display:block; color:var(--muted); font-size:.8rem; margin-top:4px; }
.chapter-dots { display:flex; gap:8px; }
.chapter-dots>span { width:38px; height:38px; display:grid; place-items:center; border:1px dashed var(--line); border-radius:50%; color:var(--muted); }
.chapter-dots>span.filled { border:1px solid var(--jade); color:var(--jade); font-family:serif; transform:rotate(-8deg); }
.collection-heading { display:flex; justify-content:space-between; gap:16px; align-items:center; margin-top:24px; }
.collection-heading h3 { margin:0; font-size:1rem; font-weight:500; }
.collection-heading h3 small { color:var(--muted); font-size:.8rem; margin-left:6px; }
.stamp-collection { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; margin:18px 0 30px; }
.collected-stamp { display:flex; flex-direction:column; align-items:center; gap:6px; background:none; border:1px dashed #b7bfaf; padding:16px 8px; border-radius:9px; color:var(--jade); }
.collected-stamp>span { font:2.1rem serif; border:2px solid var(--jade); border-radius:50%; width:56px; height:56px; display:grid; place-items:center; transform:rotate(-9deg); margin-bottom:7px; }
.collected-stamp b { font-size:.8rem; font-weight:500; line-height:1.45; }
.collected-stamp small { font-size:.7rem; }
.collection-empty { grid-column:1/-1; font-size:.9rem; color:var(--muted); padding:20px 0; margin:0; }
.planned-foods { gap:0; }
.minimal-plan-item { display:grid; grid-template-columns:1fr auto 35px; gap:14px; align-items:center; border-bottom:1px solid var(--line); padding:14px 0; }
.plan-food-name { border:0; background:none; padding:0; text-align:left; display:grid; gap:3px; }
.plan-food-name>span { font-weight:500; font-size:1rem; }
.plan-food-name small { color:var(--muted); font-size:.8rem; }
.plan-food-name .dish-warning { color:#8b3b28; }
.remove-plan-button { background:none; border:0; font-size:1.3rem; color:var(--muted); padding:0; }
.passport-bottom-actions { display:flex; flex-wrap:wrap; gap:20px; margin-top:26px; }
.food-dialog { width:min(740px,calc(100vw - 40px)); background:#fffdfa; border-radius:12px; }
.food-sheet { padding:30px; }
.minimal-dish-head { display:flex; align-items:start; justify-content:space-between; gap:20px; margin-bottom:22px; }
.minimal-dish-head h2 { font:2.15rem/1.2 Georgia,serif; margin:0 0 10px; }
.minimal-dish-head>div>span { color:var(--muted); font-size:.95rem; }
.minimal-dish-head .icon-button { flex-shrink:0; }

/* One content scroll owner. The close control cannot leave the dialog viewport. */
.food-dialog[open] { display:grid; grid-template-rows:auto minmax(0,1fr); overflow:clip; }
.dish-close-toolbar { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:12px 24px; background:#fffdfa; border-bottom:1px solid var(--line); z-index:2; }
.dish-close-toolbar>span { font-size:.85rem; color:var(--muted); }
.dish-close-toolbar .icon-button { width:44px; height:44px; flex:0 0 44px; }
.food-dialog .food-sheet { min-height:0; max-height:none; overflow-y:auto; overscroll-behavior:contain; scroll-padding-block:22px; }
.dialog-shell { grid-template-rows:auto auto minmax(0,1fr) auto; min-height:0; }
.builder-dialog .builder-body { min-height:0; overflow-y:auto; overscroll-behavior:contain; touch-action:pan-y; }
.plan-row { touch-action:pan-y; }
.plan-controls form { display:flex; gap:8px; align-items:center; }
.plan-controls form>label { display:flex; flex:1; min-width:0; align-items:center; gap:8px; background:white; border:1px solid var(--line); border-radius:9px; padding:10px 12px; }
.plan-search-submit { flex-shrink:0; min-height:44px; }
#planSearchStatus { margin:10px 0; font-size:.85rem; color:var(--muted); }
.rating-control { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:4px 16px; max-width:310px; align-items:center; }
.rating-stars { position:relative; width:max-content; display:block; letter-spacing:3px; font-size:1.7rem; line-height:1.3; }
.rating-empty { color:#c7c8bd; }
.rating-filled { position:absolute; left:0; top:0; overflow:hidden; white-space:nowrap; color:#bb6827; }
.rating-control output { font-size:.95rem; font-weight:700; font-variant-numeric:tabular-nums; }
.rating-control input[type="range"] { position:static; opacity:1; pointer-events:auto; grid-column:1/-1; width:100%; height:44px; margin:0; accent-color:var(--red); }
.rating-hint { display:block; font-size:.8rem; color:var(--muted); margin-top:4px; }
.taste-seal { display:block; width:100%; height:100%; object-fit:contain; }
.inline-stamp:has(.taste-seal),.collected-stamp>span:has(.taste-seal),.taste-stamp-mark:has(.taste-seal),.share-stamp:has(.taste-seal) { padding:0; border:0; background:none; }
.inline-stamp { flex:0 0 94px; width:94px; height:94px; }
.inline-stamp:has(.courage-seal) { width:110px; height:110px; flex-basis:110px; }
.inline-stamp.just-stamped { animation:ink-land 650ms cubic-bezier(.16,.8,.3,1) both; }
.minimal-memory:has(.just-stamped) { animation:achievement-wash 950ms ease-out both; }
@keyframes ink-land { 0% {opacity:0;transform:rotate(-18deg) scale(1.9);} 48% {opacity:1;transform:rotate(-7deg) scale(.92);} 72% {transform:rotate(-5deg) scale(1.05);} 100% {transform:rotate(-5deg) scale(1);} }
@keyframes achievement-wash { 0% {box-shadow:inset 0 0 0 2px #b53f30,0 0 0 0 #c56a3440;} 55% {box-shadow:inset 0 0 0 1px #bd764d,0 0 0 12px #c56a3400;} 100% {box-shadow:none;} }
@media(max-width:700px) {
 .dish-close-toolbar { padding:10px 18px; padding-top:max(10px,env(safe-area-inset-top)); }
 .builder-dialog { height:100dvh; max-height:100dvh; width:100vw; max-width:100vw; margin:0; border-radius:0; }
 .builder-body .selected-tray>div:last-child { max-height:none; overflow:visible; }
 .builder-dialog .dialog-header { padding:14px 18px; }
 .builder-dialog .dialog-header h2 { font-size:1.65rem; }
 .builder-steps { padding:0 12px; }
 .builder-steps button { height:48px; }
 .builder-body { padding:18px; }
 .builder-footer { padding:12px 18px max(12px,env(safe-area-inset-bottom)); }
 .inline-stamp-row { align-items:center; }
}
@media(prefers-reduced-motion:reduce) {
 .inline-stamp.just-stamped,.minimal-memory:has(.just-stamped) { animation:none; }
}
.dish-introduction { display:grid; grid-template-columns:150px 1fr; gap:20px; align-items:start; }
.dish-introduction>img { width:150px; height:130px; object-fit:cover; border-radius:7px; }
.dish-introduction p { font-size:.9rem; line-height:1.7; }
.dish-introduction .food-lead { font-size:1rem; }
.dish-introduction small { color:var(--muted); font-size:.7rem; }
.dish-safety { padding:14px 18px; border-left:3px solid #a15433; background:#faf1e8; margin:20px 0; }
.dish-safety p { margin:6px 0; font-size:.9rem; }
.dish-safety small { color:var(--muted); font-size:.8rem; }
.minimal-dish-actions { display:flex; gap:10px; flex-wrap:wrap; align-items:center; margin:24px 0; }
.tried-label { color:var(--jade); font-weight:600; }
.curious-note { border-top:1px solid var(--line); padding-top:16px; font-size:.85rem; color:var(--muted); }
.curious-note>span { color:var(--red); font-family:serif; }
.dish-depth { border-top:1px solid var(--line); margin-top:22px; }
.dish-depth summary,.memory-extras summary { cursor:pointer; min-height:48px; padding:12px 0; font-size:.9rem; }
.dish-depth .fact-grid { margin:14px 0; gap:20px; }
.dish-depth .fact-grid p { font-size:.9rem; }
.dish-depth .fact-grid h3 { font-size:.9rem; }
.dish-footer { display:flex; flex-wrap:wrap; gap:20px; padding-top:12px; }
.memory-editor.minimal-memory { background:#f5f6ee; border:1px solid var(--line); padding:18px; margin:0 0 24px; border-radius:9px; }
.minimal-memory h3 { font:1.2rem Georgia,serif; margin:0 0 10px; }
.minimal-memory fieldset { margin:0; }
.minimal-memory fieldset legend { font-size:.8rem; }
.minimal-memory textarea { min-height:75px; height:85px; font-size:1rem; }
.minimal-memory .memory-actions { margin-top:12px; }
.minimal-memory .star-rating { gap:2px; }
.memory-extras { margin-top:14px; border-top:1px solid var(--line); }
.memory-extras .public-note { margin-top:4px; font-size:.8rem; }
.memory-photo-preview { width:140px; height:100px; object-fit:cover; border-radius:7px; margin-top:14px; }
.place-dialog { width:min(660px,calc(100vw - 32px)); border:0; border-radius:12px; background:#fffdfa; color:var(--ink); }
.place-sheet { padding:28px; }
.place-order-action { width:100%; margin-bottom:30px; }
.minimal-places article { border-top:1px solid var(--line); padding:18px 0; }
.minimal-places h4 { font-size:1.1rem; margin-bottom:6px; }
.minimal-places address { font-style:normal; font-size:.9rem; }
.minimal-places p { font-size:.8rem; color:var(--muted); margin-top:8px; }
.minimal-places article>div { display:flex; gap:22px; }
.minimal-places a { text-decoration:underline; text-underline-offset:4px; color:var(--red); font-size:.85rem; padding-block:8px; }
.stamp-dialog { width:min(460px,calc(100vw - 32px)); border:0; border-radius:14px; color:var(--ink); background:#fffdfa; }
.stamp-sheet { padding:40px 28px 28px; text-align:center; position:relative; }
.stamp-close { position:absolute; top:10px; right:10px; }
.taste-stamp-mark { margin:0 auto 22px; width:100px; height:100px; border:3px double var(--red); border-radius:10px; display:grid; place-content:center; color:var(--red); font:2.7rem serif; transform:rotate(-8deg); animation:press-stamp .45s ease-out both; }
.taste-stamp-mark small { font:.6rem sans-serif; letter-spacing:.1em; margin-top:5px; text-transform:uppercase; }
.stamp-sheet h2 { font:1.8rem/1.25 Georgia,serif; margin-bottom:15px; }
.stamp-sheet>small { font-size:.75rem; color:var(--muted); }
.stamp-feedback-actions { display:grid; gap:10px; margin:24px 0; }
dialog::backdrop { background:#262d2966; backdrop-filter:blur(3px); }
.builder-steps { grid-template-columns:repeat(auto-fit,minmax(0,1fr)); }
.builder-body { background:#fffdfa; }
.plan-profile-summary { font-size:.8rem; }
.builder-body .plan-profile-summary { position:static; }
.builder-body .selected-tray>div:last-child:has(.quick-selected-food) { max-height:none; overflow:visible; }
.step-copy h3 { font:1.8rem/1.25 Georgia,serif; }
.quick-selected-food .quiet-button { background:none; border:0; }
.discovery-selection { position:fixed; bottom:22px; left:50%; transform:translateX(-50%); width:min(480px,calc(100% - 32px)); display:flex; align-items:center; justify-content:space-between; gap:12px; background:#fffdfa; border:1px solid var(--line); padding:12px 16px; border-radius:12px; box-shadow:var(--shadow); z-index:25; font-size:.875rem; }
.quick-selected-food { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:12px 0; border-bottom:1px solid var(--line); }
.quick-selected-food:last-child { border-bottom:0; }
.quick-selected-food b { font-size:1rem; font-weight:500; }
.quick-selected-food small { display:block; font-size:.8rem; color:var(--muted); }
.quick-selected-food .dish-warning { color:#8b3b28; }
.quick-selected-food button { min-width:40px; text-decoration:none; font-size:1.3rem; }

/* Long selections stay in flow, leaving every dish reachable on a phone. */
.builder-body .selected-tray { position:static; top:auto; backdrop-filter:none; background:var(--paper); }
.builder-body .selected-tray>div:last-child:has(.quick-selected-food) { max-height:220px; overflow:auto; overscroll-behavior:contain; }
.builder-body { min-height:0; scroll-padding-block:16px; }
.plan-name strong { white-space:normal; overflow:visible; text-overflow:clip; line-height:1.4; }
.plan-name small { white-space:normal; }
.plan-row { align-items:center; }
.account-dialog { background:#fff; color:var(--ink); overflow:auto; border:1px solid var(--line); }
.account-body { background:#fff; }
.account-dialog::backdrop { background:rgba(22,30,26,.65); backdrop-filter:blur(3px); }
.account-body .account-signin { color:#fff; text-decoration:none; }
.city-choices { display:flex; flex-wrap:wrap; gap:8px; margin-top:14px; max-width:560px; }
.city-choices button { min-height:44px; padding:9px 15px; border:1px solid var(--line); border-radius:24px; background:var(--white); color:var(--ink); font-size:.85rem; }
.city-choices button:hover { border-color:var(--red); color:var(--red); }
.courage-seal { display:block; width:100%; height:100%; object-fit:contain; }
.collected-stamp>span:has(.courage-seal),.inline-stamp:has(.courage-seal) { border:0; border-radius:0; background:none; }
.courage-mark:has(.courage-seal) { border:0; width:164px; height:164px; transform:rotate(-6deg); }
.curious-note .courage-mini { width:36px; height:36px; flex-shrink:0; border:0; display:inline-block; vertical-align:middle; }
.sample-stamp.curious small { font-size:.4rem; max-width:52px; text-align:center; }
.theme-collection { background:#fffdfa; }
.journey-atlas { margin-top:0; }
.memoir-city { background:#fffdfa; }
.next-city { background:#eeeee3; color:var(--ink); }
.next-city p,.next-city small { color:var(--muted); }
.next-city .eyebrow { color:var(--red); }
footer { background:none; color:var(--muted); border-top:1px solid var(--line); padding:24px max(24px,calc((100vw - 1120px)/2)); }
footer .footer-brand { display:none; }
footer .footer-tools { gap:18px; padding-bottom:14px; }
footer .footer-tools a,footer .footer-tools button,footer .restore-backup { color:var(--muted); font-size:.75rem; }
footer>p { font-size:.8rem; margin-bottom:5px; }
footer>details>summary { cursor:pointer; font-size:.8rem; padding:8px 0 18px; }
.tag-picker label:focus-within { outline:2px solid var(--jade); outline-offset:3px; border-radius:6px; }
footer>span { font-size:.65rem; }
#mobileNav { grid-template-columns:repeat(2,1fr); background:var(--paper); }
@keyframes press-stamp { from { opacity:0; transform:scale(1.3) rotate(-16deg); } to { opacity:1; transform:scale(1) rotate(-8deg); } }
@media(max-width:900px) {
 .site-header { padding-inline:20px; gap:12px; }
 .brand-button img { width:190px; }
 .site-header nav { gap:0; }
 .site-header nav button { padding:10px; font-size:.85rem; }
 .destination-workspace { gap:5%; }
 .passport-preview { padding:30px 24px 28px 36px; }
 .sample-stamp { width:90px; height:85px; }
 .discovery-foods { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:700px) {
 .site-header { height:auto; min-height:68px; padding:10px 16px; }
 .brand-button img { width:154px; }
 .site-header .brand-button img { width:154px; height:auto; }
 .discovery-selection { bottom:82px; }
 .header-actions { gap:6px; }
 .language-switch button { min-width:28px; font-size:.7rem; padding:5px; }
 .header-actions [data-open-account] { font-size:.7rem; padding:5px 8px; }
 .destination-workspace { margin:34px 0 30px; gap:32px; }
 .destination-copy h1 { font-size:3.15rem; }
 .destination-copy .home-intro { font-size:1rem; }
 .passport-preview { width:calc(100% - 16px); max-width:420px; transform:rotate(1deg); margin:0 auto 20px; }
 .preview-stamps { margin:22px 0; }
 .passport-preview h2 { font-size:2.6rem; }
 .discovery-hero>div { display:block; padding-top:10px; }
 .discovery-hero h2 { font-size:2.7rem; }
 .discovery-hero>div>div { position:sticky; top:68px; padding:8px 0; z-index:5; background:var(--paper); }
 .discovery-hero .primary-button { width:100%; }
 .discovery-heading { display:block; padding-top:22px; }
 .discovery-heading h2 { font-size:1.7rem; margin-bottom:14px; }
 .discovery-foods { grid-template-columns:1fr; }
 .discovery-copy>p { font-size:.9rem; }
 .passport-grid { grid-template-columns:1fr; }
 .workspace-dialog,.food-dialog { margin:0; width:100%; max-width:100%; height:100dvh; max-height:100dvh; border-radius:0; }
 .minimal-workspace-head { padding:16px 18px; gap:12px; }
 .minimal-workspace-head>button { flex-basis:100%; text-align:left; }
 .minimal-workspace-head h2 { font-size:1.9rem; }
 .taste-count { font-size:.75rem; }
 .workspace-body { padding:22px 18px; }
 .next-taste { grid-template-columns:1fr 90px; gap:16px; align-items:start; }
 .next-taste h3 { font-size:1.55rem; }
 .next-taste-art img { height:100px; margin-top:28px; }
 .next-taste-actions { gap:8px; }
 .chapter-progress { gap:10px; }
 .chapter-progress strong { font-size:.8rem; }
 .chapter-dots>span { width:30px; height:30px; }
 .stamp-collection { grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; }
 .minimal-plan-item { gap:10px; grid-template-columns:1fr 24px; }
 .minimal-plan-item>.quiet-button { display:none; }
 .plan-food-name { min-height:54px; }
 .food-sheet { padding:22px 18px; }
 .minimal-dish-head h2 { font-size:1.75rem; }
 .dish-introduction { grid-template-columns:1fr; gap:16px; }
 .dish-introduction>img { width:100%; height:170px; object-fit:cover; }
 .minimal-dish-actions { display:grid; grid-template-columns:1fr; }
 .minimal-memory { padding:14px; }
 .minimal-memory .memory-actions { gap:8px; }
 .place-sheet { padding:24px 18px; }
 .place-dialog { max-height:92dvh; }
 .footer-tools .restore-backup { flex-basis:100%; }
 footer { margin-bottom:76px; }
}
@media(max-width:380px) { .site-header { flex-wrap:wrap; } .header-actions { margin-left:0; } .next-taste { grid-template-columns:1fr; } .next-taste-art { display:none; } }
@media(prefers-reduced-motion:reduce) { .taste-stamp-mark { animation:none; } }

/* V0.8: one food surprise, then context and a personal courage story. */
.challenge-preview { transform:rotate(1deg); padding:28px; }
.challenge-preview h2 { font:1.7rem/1.25 Georgia,serif; margin:14px 0 20px; }
.challenge-preview .eyebrow { margin:16px 0 0; color:var(--red); }
.challenge-photo { position:relative; margin-top:18px; }
.challenge-photo img { width:100%; height:180px; object-fit:cover; border-radius:7px; }
.challenge-photo>span { position:absolute; bottom:8px; left:8px; background:#fffdfae8; color:var(--muted); padding:3px 7px; font-size:.65rem; }
.challenge-reveal { padding:16px 0 0; }
.challenge-reveal p { font-size:.9rem; line-height:1.6; }
.challenge-another { display:block; margin-top:16px; }
.challenge-promise { display:block; margin-top:16px; font-size:.7rem; color:var(--muted); }
.dish-understanding { margin:22px 0; padding:20px 0; border-block:1px solid var(--line); }
.dish-understanding h3 { font-size:1rem; margin:0 0 6px; }
.dish-understanding p { font-size:.9rem; line-height:1.7; margin:0 0 16px; }
.dish-understanding>small { color:var(--muted); font-size:.75rem; }
.challenge-understanding { border:1px solid #d7b7a9; background:#fcf3e9; padding:20px; border-radius:9px; }
.challenge-understanding>.eyebrow { color:var(--red); }
.challenge-understanding>h3 { font:1.35rem/1.4 Georgia,serif; margin:8px 0; }
.ingredient-truth { font-weight:500; }
.courage-rays { display:none; }
.courage-dialog { background:var(--paper); color:var(--ink); }
.courage-sheet { padding:34px 28px 28px; }
.courage-mark { background:none; box-shadow:none; border:3px double var(--red); color:var(--red); border-radius:12px; animation:press-stamp .45s ease-out; }
.courage-actions { display:grid; grid-template-columns:1fr; gap:12px; }
.courage-sheet h2 { font:2.3rem Georgia,serif; }
.courage-sheet h3 { font-size:1.15rem; }
.courage-sheet>p:not(.eyebrow) { font-size:.95rem; line-height:1.7; }
#courageCardPreview { margin:20px auto; width:min(310px,100%); }
#courageCardPreview canvas { display:block; width:100%; height:auto; border:1px solid var(--line); border-radius:8px; box-shadow:var(--shadow); }
#courageCaption { width:100%; min-height:120px; font-size:.85rem; margin:18px 0; }
.header-actions [data-auth-entry],.header-actions [data-account-manage] { min-height:40px; background:none; border:1px solid var(--line); color:var(--ink); font-size:.8rem; padding:6px 12px; border-radius:22px; }
.header-actions [data-account-manage] { border:0; padding-inline:5px; }
@media(max-width:700px){ .challenge-preview { padding:24px; }.challenge-photo img {height:165px;}.header-actions [data-auth-entry] { font-size:.75rem; padding:6px 9px; }.header-actions [data-account-manage] { font-size:.65rem; }.site-header:has([data-header-signout]) {flex-wrap:wrap;}.site-header:has([data-header-signout]) .header-actions {margin-left:auto;} }
@media(prefers-reduced-motion:reduce){ .courage-mark {animation:none;} }

/* V0.81: one memory stays in the same sheet; motion never moves the form. */
:root { --story-space:24px; --stamp-time:420ms; }
.challenge-preview { transform:none; }
.food-expectation { font-size:.95rem; line-height:1.65; color:var(--muted); }
.challenge-preview .quiet-button { display:inline-block; }
.challenge-preview .challenge-another { display:block; }
.destination-copy h1,.challenge-preview h2,.minimal-dish-head h2 { text-wrap:balance; }
.personal-progress { display:flex; align-items:center; gap:20px; padding-bottom:24px; margin-bottom:28px; border-bottom:1px solid var(--line); }
.personal-progress strong { font-size:1.05rem; }
.personal-progress p { color:var(--muted); font-size:.9rem; margin:6px 0; }
.progress-ring { width:76px; height:76px; flex-shrink:0; padding:5px; border-radius:50%; background:conic-gradient(var(--jade) var(--progress),var(--line) 0); }
.progress-ring>span { height:100%; display:grid; place-content:center; text-align:center; background:var(--paper); border-radius:50%; font-size:1.15rem; font-weight:600; }
.progress-ring small { font-size:.7rem; color:var(--muted); }
.completed-plan-note { font-size:.75rem; color:var(--jade); }
.next-taste .suggestion-reason { padding-top:9px; font-size:.85rem; color:var(--jade); }
.inline-stamp-row { display:flex; align-items:center; gap:18px; margin-bottom:20px; }
.inline-stamp { width:58px; height:58px; flex-shrink:0; display:grid; place-items:center; color:var(--red); border:2px solid var(--red); border-radius:7px; font:2rem Georgia,serif; transform:rotate(-8deg); }
.inline-stamp.just-stamped { animation:press-stamp var(--stamp-time) ease-out both; }
.inline-stamp-row .eyebrow { margin:0 0 5px; font-size:.7rem; color:var(--jade); }
.inline-stamp-row h3 { font:1.5rem/1.25 Georgia,serif; margin:0 0 5px; }
.inline-stamp-row small { font-size:.8rem; color:var(--muted); }
.memory-reactions { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:16px; }
.memory-reactions button { min-height:44px; padding:9px 13px; border:1px solid var(--line); background:#fffdfa; color:var(--ink); border-radius:22px; font-size:.85rem; }
.memory-reactions button[aria-pressed=true] { border-color:var(--jade); color:var(--jade); background:#ecf2e9; }
.minimal-memory .comment-field>span { font-size:.85rem; }
.minimal-memory .photo-upload { position:relative; display:inline-flex; max-width:100%; }
.minimal-memory .photo-upload input { position:absolute; inset:0; width:100%; height:100%; min-width:0; max-width:100%; }
.memory-save-status { font-size:.8rem; color:var(--muted); margin:12px 0 0; min-height:1.5em; }
.memory-story-actions { display:flex; flex-wrap:wrap; gap:18px; margin-top:14px; border-top:1px solid var(--line); padding-top:10px; }
.memory-extras .star-rating { margin:10px 0 18px; }
.story-personalise { display:grid; gap:12px; margin:20px 0; padding:18px; background:var(--paper); border:1px solid var(--line); border-radius:8px; }
.story-personalise>label { display:flex; align-items:center; gap:10px; min-height:44px; font-size:.9rem; }
.story-personalise input { width:18px; height:18px; accent-color:var(--jade); }
.story-personalise summary { min-height:44px; cursor:pointer; font-size:.9rem; }
.story-personalise details>label { display:block; margin:12px 0 6px; font-size:.85rem; }
.story-personalise select { width:100%; padding:10px; min-height:44px; border:1px solid var(--line); border-radius:5px; background:white; color:var(--ink); font-size:1rem; }
#memoirCanvasPreview { max-width:310px; margin:22px auto; }
#memoirCanvasPreview canvas,#courageCardPreview canvas { width:100%; height:auto; aspect-ratio:9/16; display:block; border:1px solid var(--line); border-radius:8px; }
.quiet-button,.remove-plan-button,.text-detail,.star-rating button,.language-switch button { min-height:44px; }
.remove-plan-button { min-width:44px; }
.minimal-plan-item { grid-template-columns:1fr auto 44px; }
button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,summary:focus-visible { outline:2px solid var(--jade); outline-offset:3px; }
@media(max-width:700px) { .minimal-plan-item {grid-template-columns:1fr 44px;} .inline-stamp-row {gap:12px;} .inline-stamp-row h3 {font-size:1.25rem;} .personal-progress {gap:15px;} .story-personalise {padding:14px;} .language-switch button {min-width:34px;} .memory-reactions button {font-size:.8rem;} .food-dialog .memory-editor.minimal-memory {padding:16px;} }

/* A travel-journal seal, shared with the exported Courage Card. */
.courage-dialog { background:var(--paper); color:var(--ink); border:1px solid var(--line); }
.courage-sheet { background:var(--paper); color:var(--ink); }
.courage-sheet>p:not(.eyebrow) { color:var(--muted); }
.courage-sheet .eyebrow,.courage-sheet h3 { color:var(--red); }
.courage-sheet .courage-mark { border:0; }
.courage-meta span { border-color:var(--line); color:var(--muted); }
.courage-rays { display:none; }
.courage-close { background:var(--white); color:var(--ink); border-color:var(--line); }
.courage-actions .primary-button { background:var(--red); border-color:var(--red); color:#fff; }
.courage-actions { flex-wrap:wrap; }
@media(prefers-reduced-motion:reduce) { .inline-stamp.just-stamped {animation:none;} }
:root { --source-border: #d6d9cb; }
.source-label { display: block; margin-top: 12px; font-size: 13px; line-height: 1.55; color: var(--muted, #60675e); }
.city-sources { display: inline-flex; align-items: center; min-height: 44px; margin-inline-start: 8px; text-decoration: underline; text-underline-offset: 3px; color: inherit; }
.source-details { margin-block: 20px; border-top: 1px solid var(--source-border); }
.source-details summary { min-height: 44px; display: flex; align-items: center; cursor: pointer; font-weight: 700; }
.source-details dl { margin-block: 20px; }
.source-details dt { font-size: 13px; color: var(--muted, #60675e); margin-top: 16px; }
.source-details dd { margin-inline-start: 0; overflow-wrap: anywhere; line-height: 1.6; }
.source-details a { color: inherit; text-underline-offset: 3px; overflow-wrap: anywhere; }
.source-status { font-weight: 600; }
.tag-picker label { position:relative; min-height:44px; display:grid; align-items:center; }
.tag-picker input { position:absolute; inset:0; width:100%; height:100%; margin:0; opacity:0; pointer-events:auto; cursor:pointer; }
.tag-picker label:focus-within { outline:2px solid var(--jade); outline-offset:2px; border-radius:99px; }
.public-note { position:relative; min-height:44px; }
.public-note input { position:absolute; inset:0; width:100%; height:100%; margin:0; opacity:0; pointer-events:auto; cursor:pointer; }
.public-note:focus-within { outline:2px solid var(--jade); outline-offset:2px; border-radius:6px; }
.photo-upload,.upload-option,.allergen-grid label { position:relative; }

/* Final stamp sizing stays shared across memory, collection and exported artwork. */
.inline-stamp { width:94px; height:94px; flex:0 0 94px; border:0; background:none; }
.inline-stamp:has(.courage-seal) { width:110px; height:110px; flex-basis:110px; }
.inline-stamp.just-stamped { animation:ink-land 650ms cubic-bezier(.16,.8,.3,1) both; }
.collected-stamp>span { width:80px; height:80px; border:0; background:none; }
.courage-seal,.taste-seal { width:100%; height:100%; object-fit:contain; }
.taste-stamp-mark { width:132px; height:132px; padding:0; border:0; background:none; }
.cover-preview-note { font-size:.85rem; color:var(--muted); }
@media(max-width:700px) {
 .builder-body .selected-tray>div:last-child:has(.quick-selected-food) { max-height:none; overflow:visible; overscroll-behavior:auto; }
 .inline-stamp { width:80px; height:80px; flex-basis:80px; }
 .inline-stamp:has(.courage-seal) { width:96px; height:96px; flex-basis:96px; }
}
@media(prefers-reduced-motion:reduce) { .inline-stamp.just-stamped,.minimal-memory:has(.just-stamped) {animation:none;} }
