@font-face { font-family:Fraunces; src:url('/fraunces.ttf') format('truetype'); font-weight:100 900; font-style:normal; font-display:swap; }
:root { --cream:#211c18; --paper:#302821; --ink:#f5ebdc; --muted:#d0c0aa; --line:#594b3e; --berry:#e3bc91; --green:#b8c5a2; background:#211c18; }
body {
  background-color:#211c18;
  background-image:linear-gradient(#211c18c7,#211c18c7),url('/cottage/stone-wall.png');
  background-size:auto,760px 760px;
  background-repeat:repeat;
  color:#f5ebdc;
}
h1,h2,h3,.page-heading h1,.section-heading h2,.date-heading h2,.card h2,.card h3,.mini-heading h3,.plan h3,.idea h3,.empty h3,.join-card h1,.dialog-heading h2 {
  font-family:Fraunces,Georgia,serif; font-variation-settings:'SOFT' 30,'WONK' 1; font-weight:550; letter-spacing:-.025em; color:#f5ebdc; -webkit-text-fill-color:currentColor; background:none; text-shadow:none; filter:none;
}
.sidebar { background:#2a241e; border-color:#514539; border-radius:18px; }
.sidebar>.brand { width:165px; }
.sidebar .brand-jelly { width:165px; }
.profile strong { color:#f5ebdc; }
.profile small { color:#d0c0aa; }
.sidebar>.install-button { color:#e4c9a3; border-color:#695640; }
nav a,nav a:nth-child(n) { color:#decfb8; background:transparent; border-color:transparent; border-radius:11px; }
nav a.active { color:#f2e1c5; background:#473b2e; border-color:#967650; }
nav a:hover { color:#fff0d7; background:#3b3026; }
.nav-art { width:31px; height:31px; }
.home-welcome { color:#d0c0aa; }
.home-welcome>span:first-child { color:#ead4b3; font-weight:450; }
.home-welcome>span:last-child { color:#cdbcaa; }
.hero.cottage-hero { display:grid; grid-template-columns:1.03fr 1fr; text-align:left; min-height:0; padding:0; background:#302820; border:1px solid #68533e; border-radius:24px; box-shadow:none; overflow:hidden; }
.cottage-hero .hero-content { width:100%; max-width:none; padding:40px; margin:0; }
.cottage-hero .eyebrow { color:#dbc09a; font-size:12px; font-weight:500; letter-spacing:.07em; margin:0 0 25px; padding:0; line-height:1.6; }
.cottage-hero .eyebrow a { text-decoration:underline; text-underline-offset:3px; }
.cottage-hero .eyebrow a:hover { color:#f5ebdc; }
.cottage-hero .eyebrow a:focus-visible { outline:2px solid #e5c79e; outline-offset:4px; border-radius:2px; }
.hero .cottage-title { font-family:Fraunces,Georgia,serif; color:#f4e8d4; font-size:clamp(42px,4.8vw,68px); font-weight:500; line-height:1.05; letter-spacing:-.035em; margin:0 0 23px; max-width:none; }
.cottage-title span { color:#deb184; }
.cottage-hero p { color:#ddcdb6; font:350 17px/1.7 Fredoka,sans-serif; margin:0 0 26px; max-width:none; }
.cottage-hero .crew-chips { justify-content:flex-start; gap:10px; margin:30px 0 0; }
.crew-chips>span:nth-child(n) { color:#eadbc2; border:0; background:transparent; min-width:0; padding:0; gap:5px; box-shadow:none; font-weight:400; }
.crew-chips .member-art { width:34px; height:34px; flex-basis:34px; }
.cottage-hero-photo { display:grid; grid-template-rows:minmax(0,1fr) auto; margin:0; min-width:0; }
.cottage-hero-photo>img { display:block; width:100%; height:100%; min-height:0; object-fit:cover; object-position:54% 50%; }
.cottage-hero-photo figcaption { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:5px 15px; background:#3a2e23; padding:17px 22px; color:#f1e0c5; font-size:15px; }
.cottage-hero-photo figcaption small { color:#d4bfa1; font-size:13px; }
.primary,.hero .button,.join-card .primary,dialog .primary {
  color:#352416; border:1px solid #e3bf96; background:linear-gradient(165deg,#f0d4ad,#d8ac7a); box-shadow:inset 0 1px 0 #fff2d5b3,0 2px 0 #100c08; border-radius:12px;
}
.primary:hover,.hero .button:hover,.join-card .primary:hover,dialog .primary:hover { color:#352416; box-shadow:inset 0 1px 0 #fff2d5,0 4px 0 #100c08; }
.primary::before { opacity:.2; }
.secondary,.card .secondary,dialog .secondary { color:#eadcc4; background:#44392d; border-color:#826846; }
.text-button { color:#e3bc91; }
.page-heading h1 { font-size:44px; }
.page-heading p { color:#d0c0aa; }
.page-heading .eyebrow,.eyebrow { color:#dbc09a; }
.section-heading h2 { color:#f0e1ca; font-size:29px; }
.trip-strip { background:#2a241e; border-color:#514539; }
.strip-cell:nth-child(n) { color:#eadac1; border-color:#514539!important; }
.strip-cell:nth-child(n) strong { color:#f0e1ca; font-size:21px; font-weight:450; }
.strip-cell:nth-child(n) small { color:#cfbfa7; }
.strip-cell:nth-child(n) .strip-icon { color:#dbc298; background:#44392d; }
.card,.card-tint,.plan,.idea:nth-child(n),.checklist,.money-card:nth-child(n),.balance-card:nth-child(n),.progress-card,.section-intro,.empty,.join-card,dialog {
  --candy-ink:#f1e5d2; --candy-copy:#d0c0aa; --candy-edge:#594b3e;
  color:#f1e5d2; background:#302821; border-color:#594b3e; border-radius:18px; box-shadow:none;
}
.card-tint,.idea:nth-child(2n) { background:#2e3028; border-color:#555d47; }
.card h3,.mini-heading h3 { font-size:25px; }
.mini-heading small,.card-tint .mini-heading small,.mini-row small,.expense-main small { color:#d0c0aa; }
.card p,.card-tint p,.plan p,.idea:nth-child(n) p,.empty p,.section-intro { color:#d0c0aa; }
.mini-date { color:#f0dab8; background:#4a3b2c; font-weight:450; }
.mini-date small { color:#f0dab8; }
.mini-row,.expense-row,.transfer,.check-row { border-color:#594b3e; }
.card .text-button,.empty .text-button { color:#e6bf94; }
.idea-tag,.idea:nth-child(n) .idea-tag { color:#d3c5aa; }
.idea h3 { font-size:30px; }
.quick-link:nth-child(n) { color:#f1e5d2; background:#302821; border-color:#594b3e; border-radius:15px; }
.quick-link:nth-child(n) strong { color:#f1e5d2; font-weight:450; }
.quick-link:nth-child(n) small { color:#d0c0aa; }
.quick-link:hover { background:#3b3026; }
.quick-link>b { color:#e3bc91; }
.ui-art { width:39px; height:39px; }
.plan-time { color:#e3bc91; }
.plan-place { color:#c7cfb4; }
.tag { color:#e1cdac; background:#42372b; border-color:#7b6547; }
.day-button { color:#d0c0aa; background:#302821; border-color:#67533e; border-radius:15px; min-height:158px; }
.day-button strong { color:#f1e5d2; font-family:Fraunces,Georgia,serif; font-weight:550; }
.day-button small,.day-button em { color:#d0c0aa; }
.day-button.active { background:#dcc09a; border-color:#f2d9b4; box-shadow:none; }
.day-button.active strong,.day-button.active small,.day-button.active em { color:#39291c; }
.day-button.birthday-day { border-color:#c49476; background:#47322d; }
.day-button.birthday-day strong { color:#f2c7aa; }
.day-button.birthday-day.active { background:#e3be99; border-color:#f3ddbc; }
.day-button.birthday-day.active strong { color:#39291c; }
.birthday-label { display:flex; align-items:center; justify-content:center; gap:4px; margin-top:7px; font:400 12px/1.25 Fredoka,sans-serif; color:#f1ceb2; }
.birthday-day.active .birthday-label { color:#39291c; }
.day-cake { width:20px; height:20px; }
.birthday-teaser { display:flex; align-items:center; gap:18px; margin-top:22px; padding:18px 23px; color:#f1e5d2; background:#3b2c26; border:1px solid #947052; border-radius:17px; }
.birthday-teaser:hover { background:#47322b; }
.birthday-date { display:flex; flex-direction:column; align-items:center; flex:0 0 55px; color:#eed4ae; font-size:13px; border-right:1px solid #826244; padding-right:17px; }
.birthday-date b { font:500 32px/1 Fraunces,Georgia,serif; margin-bottom:5px; }
.birthday-teaser>div { display:flex; flex-direction:column; gap:5px; flex:1; min-width:0; }
.birthday-teaser small { color:#e2bb96; font-size:12px; letter-spacing:.06em; }
.birthday-teaser strong { color:#f4e5d0; font:500 23px/1.25 Fraunces,Georgia,serif; }
.birthday-teaser>div>span { color:#d9c5ab; font-size:15px; line-height:1.5; }
.teaser-cake { width:49px; height:49px; flex:0 0 49px; }
.teaser-arrow { color:#e4c299; font-size:23px; }
.birthday-celebration { position:relative; overflow:hidden; display:flex; flex-wrap:wrap; align-items:center; gap:18px 25px; padding:73px 30px 28px; margin:0 0 28px; background:#3b2c26; border:1px solid #b88d67; border-radius:21px; }
.birthday-bunting { position:absolute; top:0; left:0; width:100%; height:59px; pointer-events:none; }
.birthday-cake { width:84px; height:84px; flex:0 0 84px; }
.birthday-celebration>div { flex:1 1 280px; min-width:0; }
.birthday-celebration .eyebrow { color:#e2bb96; margin-bottom:10px; font-size:12px; line-height:1.5; }
.birthday-celebration h2 { color:#f3dfc3; font-size:34px; line-height:1.15; margin:0 0 12px; }
.birthday-celebration p:not(.eyebrow) { color:#e0ccb2; font-size:16px; line-height:1.65; margin:0; max-width:650px; }
.birthday-celebration>.button { flex:0 1 auto; }
.filter,.owner-pill,.vote { color:#e6d8bd; background:#42382c; border-color:#7c684b; border-radius:10px; }
.filter.active,.vote.voted { color:#f5e7ce; background:#5a4935; border-color:#c7a778; }
.check-toggle { background:#211d17; border-color:#96805e; }
.check-row.done .check-toggle { color:#2b3324; background:#bdc9a5; border-color:#d8e0bf; }
.check-row.done strong { color:#b8bea6; }
.progress-track { background:#201b16; border-color:#81704e; }
.progress-track i { background:#b7c29a; }
.card .positive,.money-card .positive,.balance-card .positive { color:#c7d4ae; }
.card .negative,.money-card .negative,.balance-card .negative { color:#f0bab2; }
.balance-card b,.money-card strong,.money-card:first-child strong { font-family:Fraunces,Georgia,serif; font-weight:550; }
.money-card:first-child small,.money-card:first-child p,.money-card small,.money-card p,.balance-card small { color:#d0c0aa; }
input,textarea,select { color-scheme:dark; color:#f1e5d2; background:#221e18; border-color:#897052; }
input::placeholder,textarea::placeholder { color:#c7b69d; }
select option { color:#f1e5d2; background:#221e18; }
fieldset { border-color:#7b674b; }
fieldset input { accent-color:#d9b68a; }
.error { color:#ffc5be; }
.card .icon-button:hover,.plan .icon-button:hover,.idea .icon-button:hover,.checklist .icon-button:hover,dialog .icon-button:hover { background:#534332; }
.join-screen { background:transparent; }
.join-card h1 { font-size:35px; line-height:1.15; }
.join-card .brand-jelly { width:250px; }
.join-card .join-foot { color:#d0c0aa!important; }
.join-card .join-foot span { color:#c7d4ae; }
.join-card .eyebrow,.dialog-heading .eyebrow { color:#dbc09a; }
.join-card .muted,dialog .muted { color:#d0c0aa; }
.cottage-corners { margin-top:45px; }
.cottage-corners .eyebrow { font-size:12px; letter-spacing:.08em; margin-bottom:9px; }
.cottage-gallery { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
.cottage-gallery figure { margin:0; border:1px solid #594b3e; border-radius:16px; overflow:hidden; background:#302821; }
.cottage-gallery img { display:block; width:100%; aspect-ratio:4/3; height:auto; object-fit:cover; }
.cottage-gallery figcaption { padding:17px; color:#e7d4b7; font:450 18px/1.4 Fraunces,Georgia,serif; }
footer,footer span { color:#d8c6ad; }
.button:focus-visible,nav a:focus-visible,.birthday-teaser:focus-visible,.join-card .primary:focus-visible,dialog .button:focus-visible,.card button:focus-visible,.plan button:focus-visible,.idea button:focus-visible,.checklist button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible { outline-color:#e5c79e; }
@media(max-width:1050px) {
  .cottage-hero .hero-content { padding:30px; }
  .hero .cottage-title { font-size:52px; }
  .cottage-hero .crew-chips { gap:6px; }
  .cottage-hero p { font-size:16px; }
}
@media(max-width:680px) {
  .sidebar>.brand,.sidebar .brand-jelly { width:140px; }
  .sidebar { border-radius:14px; padding:8px 12px; }
  .profile .avatar { width:32px; height:32px; flex-basis:32px; }
  nav { background:#2a241e; border-color:#7d6448; }
  nav a,nav a:nth-child(n) { border-radius:10px; }
  nav a.active { border-color:#a4865c; }
  .nav-art { width:28px; height:28px; }
  .home-welcome { margin-bottom:17px; }
  .home-welcome>span:last-child { font-size:13px; max-width:150px; }
  .hero.cottage-hero { grid-template-columns:1fr; border-radius:19px; }
  .cottage-hero .hero-content { padding:28px 23px; }
  .cottage-hero .eyebrow { font-size:12px; margin-bottom:18px; }
  .hero .cottage-title { font-size:46px; margin-bottom:19px; }
  .cottage-hero p { font-size:16px; line-height:1.6; }
  .cottage-hero p br { display:none; }
  .cottage-hero .crew-chips { max-width:310px; gap:6px; margin-top:26px; }
  .crew-chips>span:nth-child(n) { gap:3px; padding:0; }
  .crew-chips .member-art { width:34px; height:34px; }
  .cottage-hero-photo { grid-row:1; grid-template-rows:220px auto; }
  .cottage-hero-photo>img { height:220px; object-position:50% 51%; }
  .cottage-hero-photo figcaption { padding:12px 17px; font-size:14px; gap:4px 10px; }
  .cottage-hero-photo figcaption small { font-size:12px; }
  .birthday-teaser { gap:12px; padding:17px 15px; }
  .birthday-date { flex-basis:42px; padding-right:12px; }
  .birthday-teaser strong { font-size:20px; }
  .birthday-teaser small { font-size:12px; letter-spacing:.02em; line-height:1.5; }
  .birthday-teaser>div>span { font-size:14px; }
  .teaser-cake { width:33px; height:33px; flex-basis:33px; }
  .teaser-arrow { display:none; }
  .strip-cell:nth-child(n) strong { font-size:18px; }
  .strip-cell:nth-child(-n+2) { border-bottom-color:#514539!important; }
  .section-heading h2 { font-size:27px; }
  .page-heading h1 { font-size:36px; }
  .day-picker { gap:10px; }
  .day-button { min-width:78px; min-height:165px; }
  .birthday-label { flex-direction:column; font-size:12px; white-space:normal; padding:0 2px; }
  .birthday-celebration { padding:64px 22px 25px; gap:17px; }
  .birthday-bunting { height:44px; }
  .birthday-cake { width:64px; height:64px; flex-basis:64px; }
  .birthday-celebration h2 { font-size:30px; }
  .birthday-celebration>div { flex-basis:100%; }
  .birthday-celebration>.button { font-size:15px; }
  .card h3,.mini-heading h3 { font-size:24px; }
  .idea h3 { font-size:29px; }
  .cottage-corners { margin-top:35px; }
  .cottage-gallery { grid-template-columns:1fr; gap:18px; }
  .cottage-gallery img { aspect-ratio:16/10; }
  .cottage-gallery figcaption { padding:16px 19px; }
  .join-card h1 { font-size:33px; }
}
@media(max-width:370px) {
  .sidebar>.brand,.sidebar .brand-jelly { width:128px; }
  .cottage-hero .hero-content { padding:26px 19px; }
  .hero .cottage-title { font-size:40px; }
  .birthday-teaser { gap:10px; padding:16px 12px; }
  .birthday-teaser strong { font-size:19px; }
  .teaser-cake { display:none; }
}

/* Shared food ideas, grouped by meal, with room for seven navigation tabs. */
nav { grid-template-columns:repeat(7,minmax(0,1fr)); }
.food-sections { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); align-items:start; gap:24px; }
.meal-section-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:15px; margin-bottom:20px; }
.meal-section-heading>div { min-width:0; }
.meal-section-heading h2 { font-size:30px; margin-bottom:8px; }
.meal-section-heading p { font-size:15px; line-height:1.6; margin:0; }
.meal-count { flex-shrink:0; color:#dfc49f; font-size:13px; padding:7px 9px; background:#42372b; border-radius:9px; }
.meal-items { display:grid; gap:14px; }
.meal-idea { padding:19px; border:1px solid #6e5942; border-radius:13px; background:#382e25; min-width:0; }
.meal-idea h3 { font-size:24px; line-height:1.25; margin-bottom:10px; overflow-wrap:anywhere; }
.meal-idea p { font-size:16px; line-height:1.6; white-space:pre-wrap; overflow-wrap:anywhere; margin-bottom:15px; }
.meal-idea .idea-bottom { margin-top:16px; gap:12px; }
.meal-idea .vote { min-height:40px; min-width:58px; }
.meal-empty { color:#d0c0aa; font-size:16px; line-height:1.6; margin:0; padding:12px 0; }
.card .meal-add { margin-top:13px; text-decoration:none; }
@media(max-width:900px) { .food-sections { grid-template-columns:1fr; } }
@media(max-width:680px) {
  nav { gap:3px; }
  nav a,nav a:nth-child(n) { min-height:70px; }
  nav a>span { width:25px; flex-basis:25px; }
  .nav-art { width:25px; height:25px; }
  nav a b { font-size:10px; letter-spacing:-.01em; overflow-wrap:anywhere; }
  .food-sections { gap:19px; }
  .meal-section-heading { gap:10px; }
  .meal-section-heading h2 { font-size:28px; }
  .meal-count { padding:7px; font-size:12px; }
  .meal-idea { padding:17px; }
}
