.journey-page{--accent:#315742;--tint:#e5ece3;--journey-line:#dce3d8;--surface:#fffefa}*{box-sizing:border-box}body{margin:0}main{width:min(100% - 32px,960px);margin:auto;padding-bottom:48px}h3{margin:.7em 0 .35em}p{margin:.45em 0}.card{background:#fffdf8;border:1px solid #dddcd0;border-radius:20px;padding:clamp(16px,4vw,26px);margin:14px 0;overflow-wrap:anywhere}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:12px}.metric{background:var(--tint);border-radius:14px;padding:14px}.metric strong{display:block;font-size:1.7rem}.row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}label{display:grid;gap:5px}button,select,input,textarea,.button{font:inherit;border:1px solid #8b9d90;border-radius:11px;padding:9px 12px;min-height:44px;max-width:100%;background:white;color:inherit}input[type=number]{width:9rem}textarea{width:100%;min-height:80px}button,.button{cursor:pointer}a{color:var(--accent)}.primary{background:var(--accent);color:white}.button{display:inline-block;text-decoration:none}progress{width:100%;height:18px;accent-color:var(--accent)}ul{padding-inline-start:22px}.days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;margin:12px 0;text-align:center}.days span{padding:6px 1px;border-radius:7px}.visited{background:var(--accent);color:white;font-weight:750}.bars{display:grid;grid-template-columns:minmax(64px,auto) minmax(0,1fr) 2ch;gap:6px 8px;align-items:center}.muted{font-size:.88rem;color:#4f6157}.badge{border-left:4px solid var(--gold)}[hidden]{display:none!important}[data-theme=blue]{--accent:#24546d;--tint:#e4f0f7}[data-theme=gold]{--accent:#77501e;--tint:#f9efd9}[data-theme=lavender]{--accent:#614576;--tint:#efe7f6}
.journey-page main{overflow:visible;width:min(calc(100% - 32px),980px)}



.journey-page .journey-back{display:inline-block;margin:0 0 12px;color:var(--accent);font-size:.83rem;font-weight:700;text-decoration:none}
.journey-hero{position:relative;isolation:isolate;overflow:hidden;border-radius:26px;padding:clamp(22px,4.5vw,50px);background:var(--tint);border:1px solid var(--journey-line)}
.journey-hero h1{color:var(--purple);font-size:clamp(2.2rem,6vw,4rem);max-width:16ch;margin:6px 0 10px}
.journey-hero p:not(.eyebrow){max-width:40ch;line-height:1.45}
.journey-hero .eyebrow{color:var(--accent);letter-spacing:.17em}
.journey-botanical{position:absolute;z-index:-1;inset:auto -35px -46px auto;width:140px;height:175px;transform:rotate(-26deg);opacity:.26}
.journey-botanical i{position:absolute;width:66px;height:110px;background:var(--sage);border-radius:100% 0 100% 0}
.journey-botanical i:nth-child(2){left:42px;top:36px;background:var(--accent);transform:rotate(30deg)}
.journey-botanical i:nth-child(3){left:6px;top:54px;background:var(--gold);transform:rotate(-36deg)}
.journey-page #content{padding:0}
.journey-page .card{background:var(--surface);border-color:var(--journey-line);box-shadow:0 5px 18px #283d3209}
.journey-page h2{font-size:clamp(1.45rem,3.5vw,2rem);color:var(--purple);margin:0 0 12px}
.journey-page h3{font-family:'DM Sans',sans-serif;font-size:.88rem;font-weight:700}
.journey-page .grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.journey-page .metric{background:var(--tint);padding:10px 12px;line-height:1.25}
.journey-page .metric span{font-size:.82rem}
.journey-page .metric strong{font-size:1.52rem;color:var(--accent);margin-bottom:4px}
.journey-page main button,.journey-page .button{border-radius:100px;font-size:.85rem;font-weight:700;padding:9px 15px;border-color:var(--journey-line)}
.journey-page .primary{color:white;background:var(--accent);border-color:var(--accent)}
.journey-welcome p{margin-bottom:12px}
.journey-page .journey-goal{border-top:3px solid var(--gold)}
.journey-page .journey-goal .row{margin:8px 0}
.journey-page .journey-recap{margin:12px 0}
.journey-downloads,.journey-sharing{margin-top:14px;padding-top:10px;border-top:1px solid var(--journey-line)}
.journey-page :focus-visible{outline:2px solid var(--purple);outline-offset:3px}
@media(min-width:750px){.journey-page .card:not(.journey-report)>.grid{grid-template-columns:repeat(5,minmax(0,1fr))}.journey-botanical{transform:scale(1.6) rotate(-26deg);right:35px}}
.journey-report .recap-period{font-size:.95rem;margin-top:10px}
.journey-page .journey-report .journey-recap strong{font-size:clamp(2rem,6vw,2.6rem);font-family:'Playfair Display',Georgia,serif}
.journey-page .journey-report .journey-recap span{font-size:.96rem}
.journey-report .recap-goals{padding:16px 18px;background:#f4edf6;border:1px solid #e4d7e8;border-left:4px solid var(--gold);border-radius:14px;color:var(--purple)}
.journey-page .journey-report .recap-goals h3,.journey-page .journey-report .recap-achievements h3{font-size:1.06rem;margin:0 0 6px}
.journey-report .recap-goals strong{display:block;font:2.1rem/1.15 'Playfair Display',Georgia,serif;margin:4px 0 10px}
.journey-report .recap-goals progress{display:block;height:12px;accent-color:var(--purple)}
.journey-report .recap-highlights{display:grid;gap:12px;margin:16px 0}
.journey-report .recap-highlights dt{font-size:.93rem;font-weight:700}
.journey-report .recap-highlights dd{font-size:1.08rem;margin:0;color:var(--purple)}
.journey-report .recap-achievements ul{display:flex;flex-wrap:wrap;gap:8px;list-style:none;margin:8px 0 0;padding:0}
.journey-report .recap-achievements li{background:#f5eedc;color:#574117;border:1px solid #e7d7ad;border-radius:100px;padding:6px 12px;font-size:.96rem;font-weight:700}


.journey-hero{min-height:280px;display:flex;flex-direction:column;justify-content:flex-end}
.journey-photo,.journey-hero::before{position:absolute;inset:0;width:100%;height:100%}
.journey-photo{object-fit:cover;object-position:center 49%;z-index:-2}
.journey-hero::before{content:'';z-index:-1;background:linear-gradient(0deg,#17291ff5 0%,#17291fbc 35%,#17291f12 80%)}
.journey-hero h1,.journey-hero p:not(.eyebrow){color:#fff}
.journey-hero .eyebrow{color:#f7dfa6}
@media(min-width:750px){.journey-hero::before{background:linear-gradient(90deg,#17291ff5,#17291fa3 43%,transparent 85%)}}
.journey-page .badge-shortcut{margin:12px 0 0;color:var(--purple);background:#f4edf6}
.journey-badges{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:14px}
.journey-badge{padding:13px;border:1px solid var(--journey-line);border-radius:16px;background:#f7f8f4;line-height:1.35}
.journey-badge.earned{background:#fff8e8;border-color:#e7d7ad}
.journey-badge .badge-icon{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:#e5ece3;color:#315742}
.journey-badge.earned .badge-icon{background:#f1dfa9;color:#604717}
.badge-icon svg{width:25px;height:25px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.journey-page .journey-badge h3{font-size:1.03rem;color:var(--purple);margin:8px 0 5px}
.journey-badge p{font-size:.88rem;margin:6px 0}
.badge-status{font-size:.77rem;font-weight:700;color:#40574a}
.journey-badge.earned .badge-status{color:#604717}
@media(min-width:750px){.journey-badges{grid-template-columns:repeat(4,minmax(0,1fr))}}
.journey-page .journal-form{display:grid;gap:12px;margin-top:16px;padding:16px;border-radius:16px;background:var(--tint)}
.journey-page .journal-date{font-weight:700;color:var(--purple);margin:0}
.journey-page .journal-history{margin-top:20px}
.journal-history details{padding:10px 0;border-bottom:1px solid var(--journey-line)}
.journal-history summary{cursor:pointer;font-weight:700}
.journal-history details p{white-space:pre-wrap}
.journey-badge[data-palette=plum]:not(.earned){background:#f5edf6;border-color:#e5d8ea}
.journey-badge[data-palette=plum]:not(.earned) .badge-icon{background:#e8d9ed;color:#633d76}
.journey-badge[data-palette=gold]:not(.earned){background:#fcf6e7;border-color:#eadbb6}
.journey-badge[data-palette=gold]:not(.earned) .badge-icon{background:#f2e5bf;color:#654b20}
.journey-badge[data-palette=sage]:not(.earned){background:#edf5eb;border-color:#d0e0cd}
.journey-badge.earned{border-color:#caa552;box-shadow:inset 0 3px #caa552}
.journey-page input[type=checkbox]{min-height:0}
.journey-report .report-actions{gap:6px 8px;margin-bottom:8px}
.journey-page .report-actions :is(button,.button){display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:6px 11px}
.journey-report .report-share-status:empty{margin:0}
.journey-page #milestones{scroll-margin-top:130px}
@media(max-width:420px){.journey-page .report-actions :is(button,.button){font-size:.8rem;padding-inline:9px}}
.journey-page .report-actions .report-share-icon{width:44px;height:44px;padding:0;border-radius:50%}
.journal-export{margin-top:18px;padding-top:14px;border-top:1px solid var(--journey-line)}
.journal-export .journal-export-notes{display:flex;align-items:center;gap:8px;margin:10px 0}
.journal-export button:disabled{opacity:.55;cursor:default}
.journal-export [role=status]:empty{margin:0}