:root{--ink:#102438;--muted:#526171;--paper:rgba(255,255,255,.91);--gold:#c99439;--blue:#0b3456;--line:rgba(16,36,56,.15);font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--ink);background:#07182b}*{box-sizing:border-box}body{margin:0;min-height:100dvh;background:#07182b;font-size:16px}.backdrop{position:fixed;inset:0;background-image:linear-gradient(180deg,rgba(4,18,31,.2),rgba(4,18,31,.76)),var(--season-image);background-size:cover;background-position:center;transform:scale(1.02)}body[data-season=spring]{--season-image:url('/assets/spring.webp');--gold:#a36d2c}body[data-season=summer]{--season-image:url('/assets/summer.webp');--gold:#b77d1f}body[data-season=autumn]{--season-image:url('/assets/autumn.webp');--gold:#b85b27}body[data-season=winter]{--season-image:url('/assets/winter.webp');--gold:#7d8db9}.app-shell{position:relative;width:min(100%,720px);margin:auto;padding:max(18px,env(safe-area-inset-top)) 16px max(28px,env(safe-area-inset-bottom))}.topbar{display:flex;align-items:center;justify-content:space-between;color:white;padding:0 4px 18px}.brand{display:flex;gap:10px;align-items:center;text-transform:uppercase;letter-spacing:.15em}.brand img{width:45px;height:45px;border-radius:14px}.brand div{display:flex;flex-direction:column;font-size:.68rem}.brand strong{font-family:Georgia,serif;font-size:1.1rem;letter-spacing:.07em;text-transform:none}.icon-button{border:0;width:44px;height:44px;border-radius:50%;font-size:1.35rem;background:rgba(255,255,255,.17);color:inherit;backdrop-filter:blur(8px);cursor:pointer}.reflection-card,.journal-card{background:var(--paper);box-shadow:0 24px 70px rgba(0,0,0,.28);border:1px solid rgba(255,255,255,.6);border-radius:28px;padding:22px;margin-bottom:14px;backdrop-filter:blur(16px)}.date-row{display:grid;grid-template-columns:44px 1fr 44px;align-items:center;color:var(--muted)}.date-row p{text-align:center;font-weight:650;font-size:.86rem;letter-spacing:.09em;text-transform:uppercase}.date-row button{border:0;background:transparent;font-size:2rem;color:var(--ink);min-height:44px}.eyebrow{text-transform:uppercase;letter-spacing:.18em;font-size:.69rem;font-weight:800;color:var(--gold);margin:22px 0 10px}.reflection-card h1{font-family:Georgia,"Times New Roman",serif;font-size:clamp(1.9rem,7vw,3.3rem);font-weight:500;line-height:1.12;margin:0;letter-spacing:-.025em}.rule{height:28px;display:flex;align-items:center}.rule span{display:block;width:46px;height:2px;background:var(--gold)}.reflection{font-family:Georgia,serif;font-size:1.08rem;line-height:1.72;color:#27394a;margin:0}.prompt{border-left:3px solid var(--gold);padding:2px 0 2px 16px;margin:24px 0}.prompt span{font-size:.68rem;text-transform:uppercase;letter-spacing:.14em;font-weight:800;color:var(--gold)}.prompt p{font-weight:650;line-height:1.5;margin:5px 0}.actions{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.soft-button{border:1px solid var(--line);background:rgba(255,255,255,.35);border-radius:14px;padding:11px 5px;color:var(--ink);font-weight:700;min-height:46px}.soft-button[aria-pressed=true]{background:var(--blue);color:white}.journal-card{padding:20px}.journal-card h2,.dialog-card h2,.pin-card h2{font-family:Georgia,serif;margin:0 0 14px;font-weight:500}.journal-card .eyebrow{margin:0 0 6px}.journal-card textarea{width:100%;resize:vertical;border:1px solid var(--line);border-radius:14px;background:rgba(255,255,255,.52);padding:14px;font:inherit;line-height:1.5;color:var(--ink)}.save-status{color:var(--muted);font-size:.75rem;margin:8px 2px 0}footer{text-align:center;color:rgba(255,255,255,.78);font-size:.75rem;padding:12px}footer a{color:inherit}dialog{border:0;background:transparent;padding:0;width:min(calc(100% - 24px),560px);max-height:90dvh}dialog::backdrop{background:rgba(2,12,21,.72);backdrop-filter:blur(8px)}.dialog-card,.pin-card{background:#f8fafb;border-radius:26px;padding:22px;overflow:auto;max-height:90dvh}.dialog-head{display:flex;justify-content:space-between;align-items:flex-start}.dialog-head .eyebrow{margin:0 0 5px}.dialog-head .icon-button{background:#e7edf1;color:var(--ink)}fieldset{border:0;padding:0;margin:14px 0 18px}legend{font-weight:800;margin-bottom:10px}.theme-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:7px}.theme-choice{border:2px solid transparent;border-radius:13px;padding:0;background:#eef2f4;overflow:hidden;color:var(--ink);font-size:.68rem;font-weight:750}.theme-choice img{display:block;width:100%;aspect-ratio:1;object-fit:cover}.theme-choice span{display:block;padding:6px 2px}.theme-choice.selected{border-color:var(--blue)}.setting-row{display:flex;align-items:center;justify-content:space-between;gap:12px;border-top:1px solid #dfe5e9;padding:14px 0}.setting-row span{display:flex;flex-direction:column}.setting-row small{color:var(--muted);margin-top:3px}.setting-row input{width:22px;height:22px}.small-button,.install-button,.text-button{border:0;border-radius:12px;padding:11px 14px;font-weight:800}.small-button{background:#e5ebef;color:var(--ink)}.install-button{width:100%;background:var(--blue);color:white;padding:14px;margin-top:10px}.privacy-note{text-align:center;color:var(--muted);font-size:.78rem;line-height:1.45}.pin-card{text-align:center}.pin-card img{width:76px;border-radius:22px}.pin-card .eyebrow{margin-bottom:5px}.pin-card input{display:block;width:170px;margin:16px auto;font-size:2rem;letter-spacing:.5em;text-align:center;padding:10px;border:1px solid #ccd5dc;border-radius:14px}.text-button{background:transparent;color:var(--muted)}.error{color:#9d2d24;min-height:1.3em;font-size:.82rem}body.large-text{font-size:19px}body.dark-card{--paper:rgba(7,24,43,.92);--ink:#f3f6f8;--muted:#bac7d2;--line:rgba(255,255,255,.16)}body.dark-card .reflection{color:#d6e0e8}body.dark-card .journal-card textarea{background:rgba(255,255,255,.08);color:white}@media(min-width:700px){.app-shell{padding-top:34px}.reflection-card{padding:34px 42px}.journal-card{padding:28px 34px}}@media(max-width:390px){.actions span{display:none}.theme-grid{grid-template-columns:repeat(3,1fr)}}@media(prefers-reduced-motion:no-preference){.reflection-card{animation:rise .6s ease both}@keyframes rise{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}}
