:root{--ink:#263c30;--green:#397b5d;--green-dark:#286247;--green-pale:#e8f1e7;--cream:#f8f7f0;--paper:#fffefa;--muted:#78867d;--line:#e9e9df;--yellow:#ffcf6b;--peach:#f8e5d8;--lav:#ece8f7;--shadow:0 8px 24px rgba(48,70,53,.08)}*{box-sizing:border-box}body{margin:0;background:var(--cream);color:var(--ink);font-family:'DM Sans',sans-serif;font-size:15px}.app-shell{min-height:100vh;max-width:1160px;margin:0 auto;padding:0 36px 100px}.topbar{height:86px;display:flex;align-items:center;justify-content:space-between}.brand{display:flex;align-items:center;gap:9px;color:var(--ink);text-decoration:none;font:20px/17px 'Fraunces',serif;letter-spacing:-.6px}.brand b{font-size:24px}.brand-sun{font:30px 'DM Sans';color:#e89c60}.topbar-right{display:flex;align-items:center;gap:16px}.week-pill{background:#eef2e8;border-radius:30px;padding:9px 14px;color:#57745f;font-size:11px;font-weight:700;letter-spacing:.08em}.week-pill i{display:inline-block;width:7px;height:7px;background:#65a878;border-radius:9px;margin-right:7px}.icon-button,.avatar{border:0;background:transparent;color:var(--ink);font-size:22px;cursor:pointer}.avatar{width:34px;height:34px;background:#ead5ba;border-radius:50%;font-weight:700;font-size:14px}#view{min-height:calc(100vh - 190px);outline:none}.hero{display:grid;grid-template-columns:1.15fr .85fr;gap:28px;align-items:stretch;margin:8px 0 24px}.hero-copy{padding:26px 4px}.eyebrow{text-transform:uppercase;letter-spacing:.12em;font-size:11px;font-weight:700;color:#78917a}.hero h1,.page-title{font:clamp(34px,4vw,52px)/1.05 'Fraunces',serif;letter-spacing:-1.2px;margin:10px 0 12px}.hero p{color:#697a6f;max-width:490px;line-height:1.7;margin:0}.stats-row{display:flex;gap:10px;margin-top:25px}.stat-card{background:var(--paper);border:1px solid #f0eee5;border-radius:15px;padding:13px 17px;min-width:112px;box-shadow:0 3px 10px rgba(48,70,53,.03)}.stat-icon{font-size:19px;margin-right:8px}.stat-value{font:20px 'Fraunces',serif}.stat-label{font-size:10px;color:var(--muted);margin-top:4px}.card-feature{position:relative;overflow:hidden;background:linear-gradient(130deg,#dfead7,#f2eacb 57%,#f7ddd0);border-radius:22px;min-height:222px;padding:23px 25px;box-shadow:var(--shadow)}.card-feature:after{content:'✿';position:absolute;right:22px;bottom:-30px;font-size:150px;color:rgba(255,255,255,.44);transform:rotate(-18deg)}.theme-icon{font-size:25px}.card-feature h2{font:27px 'Fraunces',serif;margin:7px 0}.card-feature p{font-size:13px;color:#5f7461;margin:0}.feature-bottom{display:flex;align-items:center;gap:12px;margin-top:22px;position:relative;z-index:1}.progress-track{height:8px;background:rgba(255,255,255,.7);border-radius:9px;flex:1;overflow:hidden}.progress-track span{height:100%;display:block;width:0;background:var(--green);border-radius:9px;transition:width .35s}.feature-count{font-size:12px;font-weight:700;white-space:nowrap}.primary-button{border:0;background:var(--green);color:white;border-radius:12px;padding:13px 18px;font:700 14px 'DM Sans';cursor:pointer;transition:transform .15s,background .15s}.primary-button:hover{background:var(--green-dark);transform:translateY(-1px)}.feature-action{position:relative;z-index:1;margin-top:17px;width:100%;background:rgba(255,255,255,.8);color:var(--green-dark)}.section-head{display:flex;align-items:end;justify-content:space-between;margin:32px 0 14px}.section-head h2{font:24px 'Fraunces',serif;margin:0}.text-button{border:0;background:none;color:var(--green);font-weight:700;cursor:pointer}.lower-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:18px}.panel{background:var(--paper);border:1px solid #efeee7;border-radius:18px;padding:20px;box-shadow:0 3px 12px rgba(48,70,53,.03)}.prompt-panel{background:linear-gradient(110deg,#fae9dc,#fbf3e6);display:flex;gap:16px;align-items:center}.prompt-emoji{font-size:30px}.prompt-panel h3{font:18px 'Fraunces',serif;margin:0 0 5px}.prompt-panel p{color:#718076;margin:0;font-size:13px}.memory-row{display:flex;gap:13px;align-items:center;cursor:pointer}.memory-thumb{width:63px;height:63px;display:grid;place-items:center;background:linear-gradient(135deg,#f6dcad,#c2d9c3);border-radius:14px;font-size:30px;flex:none}.memory-row h3{font-size:14px;margin:0 0 5px}.memory-row p{font-size:12px;color:#7d8980;margin:0;line-height:1.5}.memory-date{font-size:10px;color:#9aa49c;margin-top:6px}.card-page-head{display:flex;justify-content:space-between;align-items:center;margin:20px 0}.card-page-head h1{font:32px 'Fraunces',serif;margin:4px 0}.subtle{color:var(--muted);font-size:13px}.card-layout{display:grid;grid-template-columns:minmax(0,1fr) 250px;gap:26px;align-items:start}.bingo-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:9px}.square{aspect-ratio:1;position:relative;border:1px solid #ecece3;border-radius:15px;background:var(--paper);padding:9px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;cursor:pointer;color:var(--ink);transition:transform .16s,border-color .16s,background .16s}.square:hover{transform:translateY(-2px);border-color:#aac4ac}.square.done{background:#e6f1e5;border-color:#d5e5d4}.square .sq-icon{font-size:clamp(18px,2.4vw,28px);margin-bottom:5px}.square .sq-text{font-size:clamp(9px,1vw,12px);line-height:1.25}.square .checkmark{position:absolute;right:7px;top:6px;color:var(--green);font-weight:700}.square.free{background:#fff0d3;border-color:#f5dfae}.square.free .sq-text{font:700 12px 'Fraunces';text-transform:uppercase}.card-sidebar{position:sticky;top:20px}.side-progress h3{font:20px 'Fraunces',serif;margin:0 0 5px}.side-progress .big-progress{font:34px 'Fraunces',serif;margin:16px 0 5px}.side-progress p{color:var(--muted);font-size:12px;line-height:1.55}.line-list{margin-top:19px;border-top:1px solid var(--line);padding-top:14px}.line-list strong{font-size:12px}.line-badges{display:flex;gap:6px;margin-top:11px}.line-badge{background:#f5f3ec;color:#9aa198;border-radius:8px;padding:7px;font-size:11px}.line-badge.earned{background:#fff0cf;color:#a56a13}.page-title{font-size:38px}.community-tabs{display:flex;gap:8px;margin:20px 0}.tab-button{border:1px solid var(--line);background:transparent;padding:10px 18px;border-radius:30px;color:#738078;cursor:pointer}.tab-button.selected{background:#e5eee3;border-color:#e5eee3;color:var(--green-dark);font-weight:700}.feed-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.post-card{padding:0;overflow:hidden}.post-art{height:155px;display:grid;place-items:center;font-size:67px;background:linear-gradient(140deg,#f2d8b6,#c8dfce)}.post-content{padding:15px}.post-user{font-size:12px;font-weight:700}.post-time{float:right;font-size:10px;color:#9aa49c;font-weight:400}.post-content p{font-size:13px;line-height:1.5;color:#66766b;margin:10px 0}.post-prompt{font-size:10px;color:#8c998f}.reaction-row{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding-top:10px;margin-top:12px;color:#87948b;font-size:12px}.react-button{background:none;border:0;color:#e78681;cursor:pointer}.progress-overview{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:22px 0}.metric{padding:18px}.metric strong{font:27px 'Fraunces',serif;display:block}.metric span{font-size:11px;color:var(--muted)}.chart{height:168px;display:flex;align-items:end;gap:9px;padding:18px 10px 0}.bar-wrap{display:flex;align-items:center;flex-direction:column;justify-content:end;gap:8px;flex:1;height:100%}.bar{width:min(27px,75%);border-radius:8px 8px 2px 2px;background:linear-gradient(#95c69b,#42815e);min-height:7px}.bar-label{font-size:9px;color:#9aa49c}.achievement-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.achievement{text-align:center;padding:16px 9px}.achievement .badge{font-size:29px}.achievement strong{display:block;font-size:11px;margin-top:7px}.achievement span{font-size:9px;color:var(--muted)}.profile-header{display:flex;align-items:center;gap:18px;background:linear-gradient(110deg,#f2e7d4,#e5efdf);border-radius:20px;padding:24px}.profile-avatar{width:80px;height:80px;border-radius:50%;display:grid;place-items:center;background:#d6b990;font-size:33px}.profile-header h1{font:30px 'Fraunces',serif;margin:0 0 4px}.profile-header p{margin:0;color:#758278}.profile-edit{margin-left:auto;background:white;border:1px solid var(--line);padding:9px 13px;border-radius:10px;cursor:pointer}.empty-state{text-align:center;padding:50px 20px;color:var(--muted)}.empty-state b{display:block;color:var(--ink);font:21px 'Fraunces',serif;margin:10px}.bottom-nav{position:fixed;z-index:5;bottom:0;left:0;right:0;height:75px;background:rgba(255,254,250,.96);backdrop-filter:blur(12px);border-top:1px solid #eeede5;display:flex;align-items:center;justify-content:center;gap:clamp(15px,6vw,80px)}.nav-item{border:0;background:none;color:#88948b;display:flex;flex-direction:column;gap:2px;align-items:center;min-width:54px;cursor:pointer}.nav-item span{font-size:23px}.nav-item small{font-size:9px}.nav-item.active{color:var(--green-dark);font-weight:700}.nav-bingo{width:58px;height:58px;border:0;border-radius:50%;background:var(--green);color:white;display:flex;flex-direction:column;align-items:center;justify-content:center;margin-top:-24px;box-shadow:0 4px 12px #8aa99466;cursor:pointer}.nav-bingo span{font-size:23px;line-height:23px}.nav-bingo small{font-size:8px;font-weight:700}#modal-root:empty{display:none}.modal-backdrop{position:fixed;inset:0;background:rgba(22,37,27,.38);z-index:10;display:flex;align-items:end;justify-content:center}.sheet{background:var(--paper);border-radius:24px 24px 0 0;padding:23px max(22px,calc((100% - 540px)/2)) 28px;width:100%;max-height:90vh;overflow:auto;animation:rise .24s ease}.sheet-inner{max-width:540px;margin:0 auto}.sheet-grabber{width:38px;height:4px;background:#d6d9d1;border-radius:4px;margin:0 auto 20px}.sheet h2{font:27px 'Fraunces',serif;margin:0 0 8px}.sheet p{color:#748177;font-size:13px;line-height:1.55}.sheet-icon{font-size:35px;float:left;margin:0 14px 10px 0}.sheet-actions{display:grid;gap:9px;margin-top:18px}.secondary-button{border:1px solid var(--line);background:white;color:var(--ink);border-radius:12px;padding:12px;font:600 13px 'DM Sans';cursor:pointer}.entry-form label{display:block;font-size:12px;font-weight:700;margin:14px 0 7px}.entry-form textarea,.entry-form input{width:100%;border:1px solid var(--line);border-radius:12px;background:#fffefa;padding:13px;font:14px 'DM Sans';color:var(--ink)}.entry-form textarea{min-height:95px;resize:vertical}.visibility-options{display:flex;gap:8px}.visibility-option{flex:1;text-align:center;padding:11px 7px;border:1px solid var(--line);border-radius:11px;cursor:pointer;font-size:11px}.visibility-option input{accent-color:var(--green);width:auto;margin:0 4px 0 0}.visibility-option.chosen{border-color:#78a37d;background:#f0f6ee}.photo-pick{display:block;text-align:center;border:1px dashed #bccdbe;border-radius:12px;padding:12px;color:var(--green);cursor:pointer;margin-top:8px;font-size:12px}.photo-pick input{display:none}.sheet-footer{display:flex;gap:9px;margin-top:17px}.sheet-footer>*{flex:1}.celebration{text-align:center;padding:20px}.celebration .confetti{font-size:48px}.celebration h2{font-size:37px;color:var(--green)}#toast{position:fixed;z-index:20;bottom:92px;left:50%;transform:translate(-50%,15px);opacity:0;pointer-events:none;background:#253c30;color:white;padding:12px 18px;border-radius:30px;font-size:13px;transition:.22s;white-space:nowrap}#toast.show{opacity:1;transform:translate(-50%,0)}@keyframes rise{from{transform:translateY(30px);opacity:.6}to{transform:translateY(0);opacity:1}}@media(min-width:740px){.modal-backdrop{align-items:center}.sheet{border-radius:24px;max-width:590px;padding:26px}.bottom-nav{height:72px}.app-shell{padding-bottom:100px}}@media(max-width:740px){.app-shell{padding:0 18px 95px}.topbar{height:70px}.hero{grid-template-columns:1fr;gap:13px}.hero-copy{padding:17px 2px 8px}.hero h1{font-size:39px}.card-feature{min-height:205px}.lower-grid{grid-template-columns:1fr}.card-layout{grid-template-columns:1fr}.card-sidebar{position:static;order:-1}.side-progress{display:flex;align-items:center;gap:13px;padding:13px 16px}.side-progress h3{font-size:15px}.side-progress p{margin:2px 0}.side-progress .big-progress{font-size:22px;margin:0 0 0 auto}.side-progress .progress-track,.line-list{display:none}.bingo-grid{gap:5px}.square{border-radius:9px;padding:4px}.square .sq-icon{font-size:clamp(15px,5.2vw,25px);margin-bottom:2px}.square .sq-text{font-size:clamp(8px,2.4vw,11px)}.card-page-head h1{font-size:27px}.card-page-head{margin:11px 0}.feed-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.post-art{height:115px;font-size:52px}.post-content{padding:11px}.progress-overview{gap:7px}.metric{padding:13px}.metric strong{font-size:22px}.achievement-grid{grid-template-columns:repeat(2,1fr)}.bottom-nav{gap:0;justify-content:space-around}.nav-item{min-width:50px}.week-pill{font-size:9px;padding:8px 10px}}@media(max-width:380px){.app-shell{padding-left:12px;padding-right:12px}.stats-row{gap:6px}.stat-card{min-width:0;padding:11px;flex:1}.stat-label{font-size:9px}.feed-grid{grid-template-columns:1fr}.square .sq-text{font-size:8px}}

/* Accessible interaction defaults and user motion preference. */
button,.square,.tab-button,.visibility-option{min-height:44px}
button:focus-visible,a:focus-visible,[tabindex]:focus-visible{outline:3px solid #d29538;outline-offset:3px}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
.feature-footnote{position:relative;z-index:1;text-align:right;font-size:10px;color:#67806b;margin:8px 0 0}
.follow-tiny{border:0;background:none;color:var(--green);padding:3px 8px;min-height:26px;font:600 10px 'DM Sans';cursor:pointer;float:right}
.post-menu{border:0;background:none;color:#87948b;cursor:pointer;min-height:28px}
.post-prompt{border:0;background:none;padding:0;min-height:28px;text-align:left;cursor:pointer}
.post-art img{width:100%;height:100%;object-fit:cover}
.memory-photo{display:block;max-width:100%;max-height:350px;object-fit:contain;margin:15px auto;border-radius:13px}
.history-row{width:100%;min-height:52px;padding:10px 4px;border:0;border-bottom:1px solid var(--line);background:none;text-align:left;display:flex;align-items:center;justify-content:space-between;gap:8px;color:var(--ink);cursor:pointer}
.history-row small{display:block;color:var(--muted);font-size:10px;margin:3px 0 0 32px}.history-row b{font-size:11px;color:#6e7e73}
.history-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:5px}.history-grid .square{min-height:60px;cursor:default}.history-grid .square:not(:disabled){cursor:pointer}
@media(max-width:740px){.history-row{font-size:12px}.history-row b{font-size:10px}.feature-footnote{text-align:center}}
.auth-panel{max-width:510px;margin:clamp(24px,7vh,70px) auto;background:var(--paper);border:1px solid var(--line);border-radius:24px;padding:clamp(22px,5vw,42px);box-shadow:var(--shadow)}
.auth-panel h1{font:36px 'Fraunces',serif;margin:10px 0}.auth-panel>p{color:var(--muted);line-height:1.6}.auth-panel form{margin-top:25px}.auth-panel form>.primary-button{width:100%;margin-top:7px}.auth-message{min-height:20px;color:#9a6240;font-size:12px}.auth-links{display:flex;justify-content:space-between;gap:12px;margin:16px 0}.auth-links button{border:0;background:none;color:var(--green);cursor:pointer;font:600 12px 'DM Sans'}.privacy-note{font-size:11px!important;text-align:center;margin-top:25px}
.bottom-nav[hidden]{display:none}
.age-confirm{display:flex!important;align-items:center;gap:9px;font-weight:500!important}.age-confirm input{width:18px!important;height:18px;accent-color:var(--green);flex:none}
.danger-button{color:#a33f36!important}.primary-button.danger-button{background:#a33f36;color:#fff!important}
.photo-pick{position:relative}.photo-pick input{display:block;position:absolute;inset:auto auto 12px 12px;width:1px;height:1px;padding:0;margin:0;opacity:0;overflow:hidden;clip-path:inset(50%)}.photo-pick:focus-within{outline:3px solid #d29538;outline-offset:3px}[role="button"][tabindex="0"]:focus-visible{outline:3px solid #d29538;outline-offset:3px}@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}

/* Quiet editorial visual system */
:root{--ink:#21382f;--green:#315f4b;--green-dark:#244b3b;--green-pale:#e8eee8;--cream:#f5f4ef;--paper:#fffefa;--muted:#78817a;--line:#e5e4dc;--yellow:#c6a56a;--peach:#f3eee6;--lav:#eef0ed;--shadow:0 12px 32px rgba(32,51,42,.055)}
body{background:var(--cream);font-size:14px;letter-spacing:.005em}.app-shell{max-width:1080px;padding-left:42px;padding-right:42px}.topbar{height:88px;border-bottom:1px solid var(--line);margin-bottom:16px}
.brand{gap:11px;font-size:17px;line-height:16px;letter-spacing:-.4px}.brand b{font-size:21px}.brand-sun{display:grid;place-items:center;width:34px;height:34px;color:var(--green)}.brand-sun svg{width:28px;height:28px;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round}.topbar-right{gap:18px}.week-pill{background:transparent;border:1px solid var(--line);border-radius:4px;padding:8px 11px;color:#68766c;font-size:9px;letter-spacing:.12em}.week-pill i{background:#728d77;width:6px;height:6px}.icon-button{font-size:17px;color:#64756a}.avatar{background:#e8e4d9;color:var(--green);width:33px;height:33px}
.hero{gap:38px;margin:16px 0 34px}.hero-copy{padding:33px 0}.eyebrow{font-size:9px;letter-spacing:.16em;color:#778a79}.hero h1,.page-title{font-size:clamp(35px,4vw,49px);letter-spacing:-1.5px;line-height:1.08}.hero h1{margin:13px 0 14px}.hero p{color:#65736a;max-width:420px;font-size:14px;line-height:1.75}.stats-row{gap:27px;margin-top:29px}.stat-card{background:transparent;border:0;border-left:1px solid var(--line);border-radius:0;padding:4px 0 4px 13px;min-width:82px;box-shadow:none}.stat-icon{display:none}.stat-value{font:22px 'Fraunces',serif;color:var(--ink)}.stat-label{font-size:9px;text-transform:uppercase;letter-spacing:.09em;color:#858d86;margin-top:3px}
.card-feature{background:#e9eee7;border:1px solid #dce4da;border-radius:5px;min-height:240px;padding:26px 28px;box-shadow:none}.card-feature:after{content:'';width:184px;height:184px;border:1px solid rgba(49,95,75,.12);border-radius:50%;right:-40px;bottom:-70px;color:transparent;transform:none;box-shadow:0 0 0 22px rgba(49,95,75,.025),0 0 0 44px rgba(49,95,75,.02)}.theme-icon{display:none}.card-feature h2{font-size:29px;letter-spacing:-.7px;margin:13px 0 8px}.card-feature p{color:#68766c}.feature-bottom{margin-top:26px}.progress-track{height:5px;background:#d6dfd5}.progress-track span{background:var(--green)}.feature-count{font-size:11px;color:#475e50}.primary-button{background:var(--green);border-radius:4px;padding:12px 17px;font-size:12px;letter-spacing:.01em}.primary-button:hover{background:var(--green-dark);transform:translateY(-1px)}.feature-action{background:var(--green);color:white;margin-top:15px}.feature-footnote{color:#6c7c70;font-size:9px;letter-spacing:.025em}
.section-head{margin:35px 0 13px}.section-head h2{font-size:22px;letter-spacing:-.4px}.text-button{color:var(--green);font-size:11px}.lower-grid{gap:15px}.panel{background:var(--paper);border:1px solid var(--line);border-radius:5px;padding:19px;box-shadow:none}.prompt-panel{background:#f0eee7;gap:14px}.prompt-emoji{display:none}.prompt-panel h3{font:17px 'Fraunces',serif}.prompt-panel p{font-size:12px;color:#78817a}.memory-row{gap:15px}.memory-thumb{width:52px;height:52px;border-radius:4px;background:#e8eee7;font-size:0;position:relative}.memory-thumb:after{content:'';width:21px;height:21px;border:1px solid #93a694;border-radius:50%}.memory-row h3{font-size:13px}.memory-row p{font-size:11px}
.card-page-head{margin:25px 0 20px}.card-page-head h1{font-size:32px;letter-spacing:-.8px}.card-layout{gap:24px}.bingo-grid{gap:7px}.square{border:1px solid var(--line);border-radius:4px;background:var(--paper);padding:10px;transition:background .15s,border-color .15s}.square:hover{transform:none;border-color:#9aab9b;background:#f8f9f5}.square.done{background:#e9f0e8;border-color:#d1dfd2}.square .sq-icon{font-size:0;width:19px;height:19px;border:1px solid #c9d2c8;border-radius:50%;margin-bottom:9px;position:relative}.square .sq-icon:after{content:'';position:absolute;width:5px;height:5px;background:#97a997;border-radius:50%;top:6px;left:6px}.square.done .sq-icon{background:#dbe8dc;border-color:#a9c0aa}.square.done .sq-icon:after{background:var(--green)}.square .sq-text{font-size:clamp(9px,.95vw,11px);line-height:1.35;color:#46574c}.square.free{background:#f2eee4;border-color:#e5ddca}.square.free .sq-icon{border-color:#c8b991}.square .checkmark{right:7px;top:5px;font-size:11px}.card-sidebar{top:18px}.side-progress h3{font-size:18px}.side-progress .big-progress{font-size:32px;color:var(--green)}.line-list{border-color:var(--line)}.line-badge{background:#f2f1eb;border-radius:3px}.line-badge.earned{background:#ece8da;color:#8b7040}
.page-title{font-size:38px}.community-tabs{margin:19px 0}.tab-button{border-color:var(--line);border-radius:3px;padding:9px 16px;font-size:11px}.tab-button.selected{background:#e8eee7;border-color:#e8eee7;color:var(--green-dark)}.feed-grid{gap:14px}.post-card{border-radius:5px}.post-art{height:142px;font-size:0;position:relative;overflow:hidden;background:linear-gradient(135deg,#e8e9df,#dce7df)}.post-art:after{content:'';width:88px;height:88px;border:1px solid rgba(49,95,75,.2);border-radius:50%;box-shadow:0 0 0 16px rgba(49,95,75,.035),0 0 0 32px rgba(49,95,75,.025)}.post-card:nth-child(3n + 2) .post-art{background:linear-gradient(135deg,#eee8dc,#e8e4d8)}.post-card:nth-child(3n) .post-art{background:linear-gradient(135deg,#e4e9e4,#e9e4dc)}.post-art img{position:absolute;inset:0}.post-content{padding:14px}.post-user{font-size:11px}.post-content p{font-size:12px;color:#5f6c63}.reaction-row{font-size:11px}.react-button{color:var(--green)}
.progress-overview{gap:10px}.metric{padding:17px}.metric strong{font-size:25px}.metric span{font-size:10px}.bar{background:var(--green);border-radius:2px 2px 0 0}.achievement-grid{gap:8px}.achievement{padding:14px 8px}.achievement .badge{font-size:0;display:inline-block;width:30px;height:30px;border:1px solid #b7c4b7;border-radius:50%;position:relative}.achievement .badge:after{content:'';position:absolute;width:8px;height:8px;border:1px solid #8aa18d;border-radius:50%;left:10px;top:10px}.achievement strong{font-size:10px}.achievement span{font-size:9px}.profile-header{background:#e9eee7;border-radius:5px;padding:25px}.profile-avatar{background:#d9dfd5;color:var(--green);font-size:28px}.profile-header h1{font-size:28px}.profile-edit{border-radius:3px;border-color:#d8ded7;font-size:11px}.empty-state{padding:48px 20px}
.bottom-nav{height:72px;background:rgba(255,254,250,.97);border-top:1px solid var(--line);gap:clamp(20px,6vw,76px)}.nav-item{color:#858c86;gap:4px}.nav-item span{font:20px/24px 'DM Sans';color:currentColor}.nav-item small{font-size:9px;letter-spacing:.025em}.nav-item.active{color:var(--green)}.nav-bingo{width:50px;height:50px;margin-top:-19px;border-radius:4px;background:var(--green);box-shadow:0 5px 13px rgba(36,75,59,.18)}.nav-bingo span{font-size:20px}.nav-bingo small{font-size:7px;letter-spacing:.1em}
.modal-backdrop{background:rgba(27,40,32,.34)}.sheet{background:var(--paper);border-radius:8px;padding-top:24px}.sheet-grabber{background:#d8ddd6}.sheet h2{font-size:25px}.sheet-icon{display:none}.secondary-button{border-radius:4px;font-size:12px}.entry-form textarea,.entry-form input{border-color:#dedfd8;border-radius:4px}.visibility-option{border-radius:4px}.visibility-option.chosen{border-color:#91a994;background:#f0f4ef}.celebration .confetti{display:none}.celebration h2{font-size:32px;color:var(--green)}#toast{background:var(--ink);border-radius:4px;font-size:12px}
.auth-panel{border-radius:5px;box-shadow:none}.auth-panel h1{font-size:34px}.privacy-note{font-size:10px!important}.history-grid{gap:4px}.history-grid .square{min-height:58px}.history-grid .square .sq-icon{margin-bottom:4px}
button:focus-visible,a:focus-visible,[tabindex]:focus-visible,[role="button"][tabindex="0"]:focus-visible{outline:2px solid #a6854f;outline-offset:3px}
@media(max-width:740px){.app-shell{padding-left:20px;padding-right:20px}.topbar{height:70px;margin-bottom:5px}.hero{gap:12px;margin-top:8px}.hero-copy{padding:15px 0 9px}.hero h1{font-size:37px}.hero p{font-size:13px}.stats-row{gap:16px;margin-top:21px}.stat-card{min-width:70px;padding-left:9px}.card-feature{min-height:208px;padding:23px}.card-feature h2{font-size:25px}.section-head{margin-top:29px}.section-head h2{font-size:20px}.card-layout{gap:13px}.bingo-grid{gap:5px}.square{padding:5px 3px;border-radius:3px}.square .sq-icon{width:14px;height:14px;margin-bottom:4px}.square .sq-icon:after{width:4px;height:4px;left:4px;top:4px}.square .sq-text{font-size:clamp(8px,2.3vw,10px)}.card-sidebar{padding:11px 13px}.side-progress h3{font-size:14px}.side-progress .big-progress{font-size:20px}.feed-grid{gap:9px}.post-art{height:105px}.post-content{padding:10px}.post-content p{font-size:11px}.progress-overview{gap:6px}.metric{padding:12px}.metric strong{font-size:21px}.bottom-nav{gap:0;justify-content:space-around}.nav-item{min-width:50px}.nav-bingo{width:48px;height:48px}.profile-header{padding:18px}}
@media(max-width:380px){.app-shell{padding-left:13px;padding-right:13px}.stats-row{gap:11px}.stat-card{min-width:62px}.square .sq-text{font-size:8px}}
.square .sq-icon{display:block;flex:none;width:32px;height:32px;margin:0 0 7px;border:0;border-radius:0;background-image:url('assets/icons/gratitude-icons-v1.png');background-size:500% 500%;background-position:var(--icon-x) var(--icon-y);background-repeat:no-repeat}
.square .sq-icon:after{display:none}.memory-thumb{font-size:0}.memory-thumb:after{display:none}.memory-thumb .sq-icon{width:48px;height:48px;margin:0;background-image:url('assets/icons/gratitude-icons-v1.png');background-size:500% 500%;background-position:var(--icon-x) var(--icon-y);background-repeat:no-repeat}
@media(max-width:740px){.square .sq-icon{width:26px;height:26px;margin-bottom:5px}.history-grid .square .sq-icon{width:22px;height:22px;margin-bottom:3px}.memory-thumb .sq-icon{width:46px;height:46px}}
.hero h1 span{display:none}.icon-button{display:grid;place-items:center;width:30px;height:34px}.icon-button svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.square.done .sq-icon{background-color:transparent;border-color:transparent}

/* Prompt art can be drawn from any versioned atlas in the icon library. */
.sq-icon{background-image:var(--icon-url,url('assets/icons/gratitude-icons-v1.png'));background-position:var(--icon-x) var(--icon-y);background-size:500% 500%;background-repeat:no-repeat}
