@import url("https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,700;9..144,800;9..144,900&family=Nunito:wght@400;500;600;700;800&family=Caveat:wght@500;700&display=swap");:root{--terracotta-50:#FBEEE6;--terracotta-100:#F6DCCC;--terracotta-200:#EEBFA3;--terracotta-300:#E29B75;--terracotta-400:#D67F55;--terracotta-500:#C96A3F;--terracotta-600:#B0562F;--terracotta-700:#8C4223;--terracotta-800:#6B321B;--sage-50:#EFF3EB;--sage-100:#DCE6D1;--sage-200:#BFD0AE;--sage-300:#9DB887;--sage-400:#7FA068;--sage-500:#668651;--sage-600:#4F6B3E;--sage-700:#3B5230;--peach-50:#FFF3EB;--peach-100:#FFE4D3;--peach-200:#FFCCAE;--peach-300:#FFB085;--peach-400:#FB9663;--peach-500:#E87A47;--butter-50:#FFF7E0;--butter-100:#FFEDB8;--butter-200:#FFE08A;--butter-300:#FBCE5C;--butter-400:#F0B431;--butter-500:#D89614;--blush-100:#FCE1DD;--blush-200:#F8C5BD;--blush-300:#F1A197;--blush-400:#E47D72;--cream-50:#FBF6EC;--cream-100:#F5EEDF;--cream-200:#ECE0CA;--cream-300:#DBCBAF;--ink-900:#2D2118;--ink-700:#4D3A29;--ink-500:#7A6450;--ink-300:#B4A38E;--ink-100:#D8C9B1;--c-bg:var(--cream-50);--c-bg-elev:#FFFFFF;--c-surface:#FFFFFF;--c-surface-muted:var(--cream-100);--c-card-shadow-color:#2D211820;--c-fg:var(--ink-900);--c-fg-muted:var(--ink-500);--c-fg-inverse:var(--cream-50);--c-border:var(--ink-100);--c-border-strong:var(--ink-300);--c-primary:var(--terracotta-500);--c-primary-hover:var(--terracotta-400);--c-primary-press:var(--terracotta-600);--c-primary-shadow:var(--terracotta-700);--c-on-primary:#FFFFFF;--c-secondary:var(--sage-500);--c-secondary-shadow:var(--sage-700);--c-success:var(--sage-500);--c-warning:var(--butter-400);--c-danger:var(--blush-400);--c-streak:var(--butter-400);--c-love:var(--blush-300);--c-partner:var(--peach-400);--font-display:"Fraunces","Feather Bold","DIN Round Pro",Georgia,serif;--font-body:"Nunito","DIN Round Pro",ui-rounded,system-ui,-apple-system,sans-serif;--font-hand:"Caveat","Marker Felt",cursive;--fs-xs:12px;--fs-sm:14px;--fs-md:16px;--fs-lg:18px;--fs-xl:22px;--fs-2xl:28px;--fs-3xl:36px;--fs-4xl:48px;--fs-5xl:64px;--lh-tight:1.05;--lh-snug:1.2;--lh-body:1.45;--tracking-tight:-0.02em;--tracking-caps:0.08em;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--space-16:64px;--radius-sm:8px;--radius-md:14px;--radius-lg:20px;--radius-xl:28px;--radius-2xl:36px;--radius-pill:999px;--chunky-1:0 2px 0 0;--chunky-2:0 4px 0 0;--chunky-3:0 6px 0 0;--shadow-card-sm:0 1px 2px rgba(45,33,24,0.06),0 2px 4px rgba(45,33,24,0.04);--shadow-card-md:0 2px 6px rgba(45,33,24,0.06),0 8px 16px rgba(45,33,24,0.08);--shadow-card-lg:0 4px 12px rgba(45,33,24,0.08),0 20px 40px rgba(45,33,24,0.12);--inner-highlight:inset 0 1px 0 rgba(255,255,255,0.35);--ease-squish:cubic-bezier(.34,1.56,.64,1);--ease-out:cubic-bezier(.2,.7,.3,1);--dur-fast:120ms;--dur-med:220ms;--dur-slow:420ms}*,:after,:before{box-sizing:border-box}body,html{margin:0;padding:0}body{font-family:var(--font-body);font-size:var(--fs-md);line-height:var(--lh-body);font-weight:500;color:var(--c-fg);background:var(--c-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overscroll-behavior-y:contain}button{font:inherit;color:inherit}img{display:block;max-width:100%}a{color:inherit}.display-xl{font-size:var(--fs-4xl)}.display-xl,h1{font-family:var(--font-display);font-weight:900;line-height:var(--lh-tight);letter-spacing:var(--tracking-tight)}h1{font-size:var(--fs-3xl);margin:0}h2{font-size:var(--fs-2xl);letter-spacing:var(--tracking-tight)}h2,h3{font-family:var(--font-display);font-weight:800;line-height:var(--lh-snug);margin:0}h3{font-size:var(--fs-xl)}p{margin:0}.label{font-size:11px;font-weight:800;letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--c-fg-muted)}.hand{font-family:var(--font-hand);font-weight:700}.app-shell{position:relative;max-width:520px;margin:0 auto;min-height:100dvh;background:var(--c-bg);display:flex;flex-direction:column}.app-scroll{flex:1 1;padding:max(env(safe-area-inset-top),24px) 20px 140px;display:flex;flex-direction:column;gap:18px}.app-header{display:flex;align-items:center;justify-content:space-between;padding:0 4px 4px;gap:12px}.app-header .greet{font-family:var(--font-display);font-weight:900;font-size:28px;color:var(--c-fg);line-height:1.05;letter-spacing:var(--tracking-tight)}.app-header .greet .sun{color:var(--terracotta-500)}.app-header .sub{font-size:13px;color:var(--c-fg-muted);margin-top:4px;font-weight:600}.avatar{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:999px;border:3px solid #fff;background:var(--peach-100);box-shadow:0 2px 0 0 var(--cream-300);overflow:hidden;flex-shrink:0}.avatar img{width:100%;height:100%;object-fit:cover}.avatar.tone-blush{background:var(--blush-100)}.avatar.tone-sage{background:var(--sage-100)}.avatar.tone-butter{background:var(--butter-100)}.avatar.size-lg{width:62px;height:62px}.card{background:#fff;border-radius:22px;padding:18px;box-shadow:var(--shadow-card-md)}.card.flat{box-shadow:var(--shadow-card-sm);padding:14px}.card.butter{background:var(--butter-100)}.card.blush{background:var(--blush-100)}.card.peach{background:var(--peach-100)}.hero-stats{display:flex;gap:12px}.hero-stats .stat{flex:1 1;padding:14px;display:flex;align-items:center;gap:10px;border-radius:22px;box-shadow:var(--shadow-card-md)}.hero-stats .stat img{flex-shrink:0}.hero-stats .num{font-family:var(--font-display);font-weight:900;font-size:28px;line-height:1}.hero-stats .lbl{font-size:11px;font-weight:800;letter-spacing:var(--tracking-caps);text-transform:uppercase;margin-top:2px}.hero-stats .streak{background:var(--butter-100)}.hero-stats .streak .num{color:var(--terracotta-700)}.hero-stats .streak .lbl{color:var(--terracotta-600)}.hero-stats .xp{background:var(--blush-100)}.hero-stats .xp .lbl,.hero-stats .xp .num{color:var(--blush-400)}.partner-nudge{display:flex;align-items:center;gap:12px;padding:14px;background:var(--peach-100);border-radius:22px;box-shadow:var(--shadow-card-md)}.partner-nudge .title{font-family:var(--font-display);font-weight:900;font-size:15px;color:var(--peach-500);line-height:1.1}.partner-nudge .sub{font-size:12px;color:var(--ink-700);font-weight:600;margin-top:2px}.section-label{font-size:11px;font-weight:800;letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--c-fg-muted);padding:0 4px;margin-bottom:8px}.goal-list{display:flex;flex-direction:column;gap:10px}.goal-card{border-radius:22px;box-shadow:var(--shadow-card-sm)}.goal-card.expanded{overflow:hidden}.goal-row{display:flex;align-items:center;gap:14px;background:#fff;padding:14px 18px;border-radius:22px;transition:opacity var(--dur-med) var(--ease-out)}.goal-row.done{opacity:.78}.goal-card.expanded .goal-row{border-radius:22px 22px 0 0}.goal-row .title{font-family:var(--font-body);font-weight:700;font-size:16px;color:var(--c-fg);line-height:1.25;transition:color var(--dur-med),-webkit-text-decoration var(--dur-med);transition:color var(--dur-med),text-decoration var(--dur-med);transition:color var(--dur-med),text-decoration var(--dur-med),-webkit-text-decoration var(--dur-med)}.goal-row.done .title{color:var(--c-fg-muted);text-decoration:line-through}.suggested-by{display:block;font-size:11px;font-weight:700;color:var(--blush-400);font-family:var(--font-hand);font-size:14px;margin-top:1px}.goal-row.done .suggested-by{text-decoration:none}.checkbox{width:34px;height:34px;border-radius:999px;border:3px solid var(--cream-300);background:#fff;box-shadow:0 2px 0 0 var(--cream-300);display:inline-flex;align-items:center;justify-content:center;color:#fff;font-weight:900;font-size:17px;cursor:pointer;padding:0;flex-shrink:0;transition:transform var(--dur-slow) var(--ease-squish),background var(--dur-fast),box-shadow var(--dur-fast),border-color var(--dur-fast)}.checkbox:focus-visible{outline:3px solid var(--terracotta-300);outline-offset:3px}.checkbox.checked{border-color:transparent;background:var(--sage-500);box-shadow:0 3px 0 0 var(--sage-700)}.checkbox.pop{transform:scale(1.15)}.checkbox .tick{opacity:0;transition:opacity var(--dur-fast)}.checkbox.checked .tick{opacity:1}.xp-chip{font-family:var(--font-display);font-weight:900;font-size:13px;padding:4px 10px;border-radius:999px;white-space:nowrap;color:var(--terracotta-500);background:var(--butter-100)}.xp-chip.done{color:var(--sage-700);background:var(--sage-100)}.btn{font-family:var(--font-body);font-weight:800;font-size:16px;padding:14px 26px;border-radius:999px;border:0;cursor:pointer;letter-spacing:.01em;transition:transform 80ms var(--ease-out),background 80ms,box-shadow 80ms;color:#fff;background:var(--terracotta-500);box-shadow:0 4px 0 0 var(--terracotta-700),var(--inner-highlight);text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:8px}.btn:hover{background:var(--terracotta-400)}.btn.is-pressed,.btn:active{transform:translateY(4px);background:var(--terracotta-600);box-shadow:0 0 0 0 var(--terracotta-700),inset 0 1px 0 rgba(255,255,255,.2)}.btn:focus-visible{outline:3px solid var(--terracotta-300);outline-offset:3px}.btn[disabled]{opacity:.45;cursor:not-allowed;box-shadow:none;transform:none}.btn.full{width:100%}.btn.sm{padding:10px 18px;font-size:14px}.btn.lg{padding:18px 34px;font-size:20px}.btn.secondary{background:var(--sage-500);box-shadow:0 4px 0 0 var(--sage-700),var(--inner-highlight)}.btn.secondary:hover{background:var(--sage-400)}.btn.secondary:active{background:var(--sage-600);box-shadow:0 0 0 0 var(--sage-700),inset 0 1px 0 rgba(255,255,255,.2)}.btn.partner{background:var(--peach-400);box-shadow:0 4px 0 0 #B85828,var(--inner-highlight)}.btn.partner:hover{background:var(--peach-300)}.btn.partner:active{background:var(--peach-500);box-shadow:0 0 0 0 #B85828,inset 0 1px 0 rgba(255,255,255,.2)}.btn.ghost{background:#fff;color:var(--terracotta-600);box-shadow:0 4px 0 0 var(--cream-300)}.btn.ghost:active,.btn.ghost:hover{background:var(--cream-100)}.btn.ghost:active{box-shadow:0 0 0 0 var(--cream-300)}.tab-bar{position:fixed;left:50%;transform:translateX(-50%);bottom:max(env(safe-area-inset-bottom),12px);width:calc(min(100vw, 520px) - 32px);background:#fff;border-radius:28px;padding:8px;display:grid;grid-template-columns:repeat(4,1fr);grid-gap:4px;gap:4px;box-shadow:var(--shadow-card-lg);z-index:40}.tab-bar a{background:transparent;color:var(--c-fg-muted);border:0;cursor:pointer;border-radius:22px;padding:10px 4px;font-family:var(--font-body);font-weight:800;font-size:11px;display:flex;flex-direction:column;align-items:center;gap:2px;transition:background var(--dur-fast),color var(--dur-fast),transform 80ms var(--ease-out);text-decoration:none;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;-moz-user-select:none;user-select:none}.tab-bar a:hover{color:var(--ink-700)}.tab-bar a:active{transform:scale(.92)}.tab-bar a.active{background:var(--terracotta-100);color:var(--terracotta-700)}.tab-bar .glyph{font-size:20px;line-height:1;transition:transform var(--dur-med) var(--ease-squish)}.tab-bar a.active .glyph{transform:scale(1.12)}.toast{position:fixed;left:50%;transform:translateX(-50%);bottom:-180px;width:calc(min(100vw, 520px) - 32px);background:#fff;border-radius:20px;padding:14px 18px;display:flex;align-items:center;gap:12px;box-shadow:var(--shadow-card-lg);transition:bottom var(--dur-slow) var(--ease-squish);z-index:45}.toast.show{bottom:calc(env(safe-area-inset-bottom) + 100px)}.toast img{width:40px;height:40px;flex-shrink:0}.toast .msg{font-family:var(--font-display);font-weight:900;font-size:18px;color:var(--c-fg);line-height:1.05}.toast .sub{font-size:13px;color:var(--c-fg-muted);font-weight:600;margin-top:2px}.streak-hero{text-align:center;padding:26px;background:var(--butter-100)}.streak-hero img{width:92px;margin:0 auto 8px}.streak-hero .num{font-family:var(--font-display);font-weight:900;font-size:72px;color:var(--terracotta-700);line-height:.9;letter-spacing:-.03em}.streak-hero .days{font-family:var(--font-hand);font-weight:700;font-size:28px;color:var(--terracotta-500);transform:rotate(-3deg);display:inline-block;margin-top:4px}.streak-hero .caption{font-size:13px;color:var(--ink-700);font-weight:600;margin-top:8px}.calendar .calendar-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.calendar .month{font-family:var(--font-display);font-weight:900;font-size:18px}.calendar .count{font-size:11px;font-weight:800;letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--c-fg-muted)}.calendar .dow{display:grid;grid-template-columns:repeat(7,1fr);grid-gap:6px;gap:6px;margin-bottom:8px}.calendar .dow span{text-align:center;font-size:10px;font-weight:800;letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--c-fg-muted)}.calendar .weeks{display:flex;flex-direction:column;gap:6px}.calendar .week{display:grid;grid-template-columns:repeat(7,1fr);grid-gap:6px;gap:6px}.calendar .day{aspect-ratio:1;border-radius:12px;background:var(--cream-100);display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-weight:900;font-size:14px;color:var(--ink-300)}.calendar .day.done{background:var(--butter-300);box-shadow:0 2px 0 0 var(--butter-500);color:var(--terracotta-700)}.calendar .day.today{background:var(--terracotta-500);box-shadow:0 3px 0 0 var(--terracotta-700);color:#fff}.calendar .day.empty{background:transparent;box-shadow:none}.milestones{display:flex;gap:10px}.milestone{flex:1 1;text-align:center;padding:14px 8px;border-radius:18px;background:#fff;box-shadow:var(--shadow-card-sm);opacity:.55}.milestone.hit{background:var(--butter-100);opacity:1}.milestone img{width:30px;margin:0 auto 4px}.milestone .d{font-family:var(--font-display);font-weight:900;font-size:18px}.milestone .lbl{font-size:10px;font-weight:700;color:var(--c-fg-muted)}.versus-hero{padding:20px;background:linear-gradient(180deg,var(--peach-50) 0,var(--blush-100) 100%)}.versus-hero .row{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.versus-hero .side{text-align:center;flex:1 1;display:flex;flex-direction:column;align-items:center;gap:6px}.versus-hero .side .name{font-family:var(--font-display);font-weight:900;font-size:16px}.versus-hero .side .score{font-family:var(--font-display);font-weight:900;font-size:40px;line-height:1}.versus-hero .side.me .score{color:var(--terracotta-500)}.versus-hero .side.partner .score{color:var(--peach-500)}.versus-hero .vs{font-family:var(--font-display);font-weight:900;font-size:28px;color:var(--ink-500);padding:0 8px}.versus-bar{position:relative;height:22px;background:rgba(45,33,24,.08);border-radius:999px;overflow:hidden}.versus-bar .me{position:absolute;inset:0;background:var(--terracotta-500);border-radius:999px 0 0 999px}.versus-bar .partner{position:absolute;top:0;bottom:0;right:0;background:var(--peach-400);border-radius:0 999px 999px 0}.versus-lead{text-align:center;margin-top:10px;font-family:var(--font-display);font-weight:900;font-size:14px;color:var(--terracotta-700)}.reactions{display:flex;gap:10px;justify-content:center}.reactions button{width:54px;height:54px;border-radius:999px;border:0;background:#fff;font-size:26px;cursor:pointer;box-shadow:0 3px 0 0 var(--cream-300),inset 0 1px 0 rgba(255,255,255,.6);transition:transform var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast)}.reactions button:active{transform:translateY(3px);box-shadow:0 0 0 0 var(--cream-300)}.reactions button.popped{animation:pop-spring var(--dur-slow) var(--ease-squish)}@keyframes pop-spring{0%{transform:scale(1)}40%{transform:scale(1.25)}to{transform:scale(1)}}.form-wrap{min-height:100dvh;display:flex;flex-direction:column;justify-content:center;padding:40px 20px;max-width:440px;margin:0 auto;gap:18px}.form-wrap .logo{width:132px;margin:0 auto 4px}.form-wrap h1{text-align:center;font-size:32px}.form-wrap p.sub{text-align:center;color:var(--c-fg-muted);font-weight:600}.field{display:flex;flex-direction:column;gap:6px}.field label{font-size:12px;font-weight:800;letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--c-fg-muted);padding-left:4px}.field input,.field select{font:inherit;font-weight:600;padding:14px 18px;border-radius:var(--radius-pill);border:2px solid var(--cream-300);background:#fff;color:var(--c-fg);outline:none;transition:border-color var(--dur-fast),box-shadow var(--dur-fast)}.field input:focus,.field select:focus{border-color:var(--terracotta-400);box-shadow:0 0 0 4px var(--terracotta-100)}.form-error{background:var(--blush-100);color:var(--terracotta-800);padding:10px 16px;border-radius:var(--radius-lg);font-weight:700;font-size:14px}.form-link{text-align:center;color:var(--c-fg-muted);font-weight:600;font-size:14px}.form-link a{color:var(--terracotta-600);font-weight:800;text-decoration:none}.form-link a:hover{text-decoration:underline}.suggestion-card{background:linear-gradient(180deg,var(--peach-50) 0,var(--peach-100) 100%);border-radius:22px;padding:16px;box-shadow:var(--shadow-card-sm);display:flex;flex-direction:column;gap:10px}.suggestion-card .from{font-size:11px;font-weight:800;letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--peach-500)}.suggestion-card .title{font-family:var(--font-display);font-weight:900;font-size:18px;color:var(--ink-900);line-height:1.15}.suggestion-card .meta{display:flex;gap:8px;flex-wrap:wrap}.suggestion-card .tag{font-family:var(--font-body);font-weight:800;font-size:11px;letter-spacing:var(--tracking-caps);text-transform:uppercase;padding:4px 10px;border-radius:999px;background:rgba(255,255,255,.7);color:var(--peach-500)}.suggestion-card .note{font-family:var(--font-hand);font-weight:700;font-size:19px;color:var(--terracotta-600);line-height:1.2}.suggestion-card .actions{display:flex;gap:10px;margin-top:2px}.suggestion-card .actions .btn{flex:1 1}.segmented{display:flex;gap:4px;padding:4px;background:var(--cream-100);border-radius:999px}.segmented button{flex:1 1;border:0;background:transparent;font-family:var(--font-body);font-weight:800;font-size:13px;color:var(--c-fg-muted);padding:10px;border-radius:999px;cursor:pointer;letter-spacing:var(--tracking-caps);text-transform:uppercase;transition:background var(--dur-fast),color var(--dur-fast)}.segmented button.active{background:#fff;color:var(--terracotta-600);box-shadow:var(--shadow-card-sm)}.invite-code{font-family:var(--font-display);font-weight:900;font-size:48px;letter-spacing:.12em;color:var(--terracotta-700);text-align:center;padding:18px 12px;box-shadow:var(--shadow-card-sm);-webkit-user-select:all;-moz-user-select:all;user-select:all}.install-banner,.invite-code{background:var(--butter-100);border-radius:var(--radius-xl)}.install-banner{position:fixed;bottom:calc(env(safe-area-inset-bottom) + 108px);left:50%;transform:translateX(-50%);width:calc(min(100vw, 520px) - 32px);padding:14px 16px;display:flex;align-items:center;gap:12px;box-shadow:var(--shadow-card-md);z-index:35}.install-banner img{width:40px;height:40px;flex-shrink:0}.install-banner .msg{flex:1 1;font-weight:700;font-size:14px;color:var(--terracotta-700)}.install-banner .close{background:transparent;border:0;cursor:pointer;color:var(--terracotta-600);font-weight:800;padding:6px 10px;border-radius:999px}.landing{padding:56px 20px 80px;gap:40px;background:var(--cream-100);min-height:100dvh}.landing,.landing-header{display:flex;flex-direction:column;align-items:center}.landing-header{max-width:620px;text-align:center;gap:14px}.landing-header .wordmark{width:168px;filter:drop-shadow(0 3px 0 rgba(45,33,24,.08))}.landing-header h1{font-size:clamp(34px,6vw,54px)}.landing-header h1 em{font-family:var(--font-hand);font-weight:700;font-style:normal;color:var(--terracotta-500);display:inline-block;transform:rotate(-3deg)}.landing-header p{max-width:52ch;color:var(--ink-700)}.landing-cta{display:flex;gap:12px;flex-wrap:wrap;justify-content:center}.landing-hero{width:100%;max-width:440px;background:#fff;border-radius:var(--radius-xl);padding:28px 24px;box-shadow:var(--shadow-card-md);display:flex;flex-direction:column;gap:16px}.landing-hero h3{text-align:center}.landing-bullets{display:grid;grid-gap:10px;gap:10px}.landing-bullets li{list-style:none;display:flex;align-items:center;gap:10px;font-weight:700;color:var(--ink-700)}.landing-bullets li img{width:22px}.landing-footer{font-weight:600;font-size:13px;color:var(--c-fg-muted);text-align:center}.landing-footer .hand{color:var(--terracotta-500);font-size:17px}.goal-row .title{display:inline-flex;align-items:center;gap:10px;flex:1 1}.goal-thumb{width:34px;height:34px;border-radius:10px;object-fit:cover;box-shadow:0 1px 0 0 var(--cream-300)}.goal-edit-btn,.goal-thumb{cursor:pointer;flex-shrink:0}.goal-edit-btn{background:transparent;border:0;font-size:18px;color:var(--c-fg-muted);padding:4px 8px;border-radius:999px;line-height:1;transition:background var(--dur-fast),color var(--dur-fast)}.goal-edit-btn:hover{background:var(--cream-100);color:var(--terracotta-600)}.goal-edit-btn:focus-visible{outline:3px solid var(--terracotta-300);outline-offset:2px}.goal-editor{display:flex;flex-direction:column;gap:12px}.goal-photo-preview{width:72px;height:72px;border-radius:16px;object-fit:cover;box-shadow:var(--shadow-card-sm);flex-shrink:0}.goal-photo-preview.empty{display:flex;align-items:center;justify-content:center;background:var(--cream-100);color:var(--c-fg-muted);font-size:11px;font-weight:700;text-align:center}.completion-panel{background:#fff;border-top:2px dashed var(--cream-200);padding:0 0 14px;display:flex;flex-direction:column;overflow:hidden}.completion-panel .cp-photo-area{position:relative;width:100%;background:var(--cream-100);min-height:0}.completion-panel .cp-photo-area.has-photo{min-height:0}.completion-panel .cp-photo-area img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block}.completion-panel .cp-add-photo,.completion-panel .cp-photo-buttons{display:flex;flex-direction:column;align-items:center}.completion-panel .cp-add-photo{justify-content:center;gap:6px;padding:24px 18px 10px;cursor:pointer;border:0;background:transparent;width:100%;transition:background var(--dur-fast)}.completion-panel .cp-add-photo:hover{background:var(--cream-200)}.completion-panel .cp-add-photo .cp-camera{font-size:28px;line-height:1}.completion-panel .cp-add-photo span{font-family:var(--font-hand);font-size:18px;font-weight:700;color:var(--terracotta-500)}.completion-panel .cp-upload-link{border:0;background:transparent;cursor:pointer;font-family:var(--font-body);font-size:12px;font-weight:700;color:var(--c-fg-muted);padding:6px 18px 16px;text-decoration:underline;text-underline-offset:2px}.completion-panel .cp-upload-link:hover{color:var(--terracotta-500)}.inline-camera{position:relative;width:100%;aspect-ratio:4/3;background:#000;overflow:hidden}.inline-camera-video{width:100%;height:100%;object-fit:cover;display:block}.inline-camera-loading{inset:0;justify-content:center;font-family:var(--font-hand);font-size:18px;font-weight:700;color:rgba(255,255,255,.7)}.inline-camera-controls,.inline-camera-loading{position:absolute;display:flex;align-items:center}.inline-camera-controls{bottom:0;left:0;right:0;justify-content:space-around;padding:14px 24px 18px;background:linear-gradient(0deg,rgba(0,0,0,.5) 0,transparent)}.cam-btn{width:40px;height:40px;border-radius:999px;border:0;background:rgba(255,255,255,.2);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);color:#fff;font-size:18px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background var(--dur-fast)}.cam-btn:hover{background:rgba(255,255,255,.35)}.cam-shutter{width:60px;height:60px;border-radius:999px;border:0;cursor:pointer;background:#fff;box-shadow:0 0 0 4px rgba(255,255,255,.3);transition:transform .12s var(--ease-squish),box-shadow var(--dur-fast)}.cam-shutter:hover{box-shadow:0 0 0 6px rgba(255,255,255,.4)}.cam-shutter:active{transform:scale(.9)}.completion-panel .cp-photo-remove{position:absolute;top:10px;right:10px;width:28px;height:28px;border-radius:999px;background:rgba(0,0,0,.45);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);color:#fff;border:0;font-size:18px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background var(--dur-fast)}.completion-panel .cp-photo-remove:hover{background:rgba(0,0,0,.65)}.completion-panel .cp-body{padding:14px 18px 0;display:flex;flex-direction:column;gap:12px}.completion-panel textarea{font-family:var(--font-body);font-size:15px;font-weight:600;border:0;border-bottom:2px solid var(--cream-200);border-radius:0;padding:6px 0;resize:none;background:transparent;color:var(--c-fg);width:100%;box-sizing:border-box}.completion-panel textarea::placeholder{color:var(--c-fg-muted);font-weight:500;font-family:var(--font-hand);font-size:17px}.completion-panel textarea:focus{outline:none;border-color:var(--sage-400)}.completion-panel .cp-sharing{display:flex;gap:6px}.sharing-chip{font-family:var(--font-body);font-weight:700;font-size:12px;padding:6px 12px;border-radius:999px;border:2px solid var(--cream-200);background:#fff;color:var(--c-fg-muted);cursor:pointer;transition:background var(--dur-fast),border-color var(--dur-fast),color var(--dur-fast)}.sharing-chip:hover{border-color:var(--cream-300)}.sharing-chip.active{background:var(--blush-100);border-color:var(--blush-300);color:var(--blush-400)}.completion-panel .cp-actions{display:flex;align-items:center;gap:8px}.completion-detail{background:#fff;border-top:2px dashed var(--cream-200);overflow:hidden}.completion-detail .cd-photo-frame{position:relative;width:100%}.completion-photo{width:100%;aspect-ratio:4/3;object-fit:cover;display:block}.completion-detail .cd-caption{padding:12px 18px}.completion-note{font-family:var(--font-body);font-size:14px;font-weight:600;color:var(--c-fg-muted);margin:0;line-height:1.4}.completion-detail .cd-caption-only{padding:10px 18px 12px}.completion-detail .cd-timestamp{font-family:var(--font-hand);font-size:14px;color:var(--terracotta-400);margin-top:4px}.profile-view .field{margin-bottom:14px}.profile-view .field:last-child{margin-bottom:0}.pronoun-chip{background:var(--cream-100);border:2px solid transparent;border-radius:999px;padding:6px 12px;font-weight:700;font-size:13px;color:var(--ink-700);cursor:pointer}.pronoun-chip.active{background:var(--blush-100);border-color:var(--blush-300);color:var(--blush-400)}.tone-chip{background:var(--peach-100);border:2px solid transparent;border-radius:999px;padding:6px 14px;font-weight:700;font-size:13px;color:var(--terracotta-700);cursor:pointer;text-transform:lowercase}.tone-chip.tone-blush{background:var(--blush-100);color:var(--blush-400)}.tone-chip.tone-sage{background:var(--sage-100);color:var(--sage-700)}.tone-chip.tone-butter{background:var(--butter-100);color:var(--terracotta-700)}.tone-chip.active{border-color:var(--ink-300);box-shadow:0 2px 0 0 var(--cream-300)}.offline-banner{position:fixed;top:12px;left:50%;transform:translateX(-50%);width:calc(min(100vw, 520px) - 32px);background:var(--butter-100);color:var(--terracotta-700);border-radius:999px;padding:8px 16px;z-index:50;font-weight:700;font-size:13px;text-align:center;box-shadow:var(--shadow-card-sm)}.sheet-backdrop{position:fixed;inset:0;background:rgba(45,33,24,.5);z-index:50;opacity:0;pointer-events:none;transition:opacity var(--dur-med)}.sheet-backdrop.open{opacity:1;pointer-events:auto}.sheet{position:fixed;left:0;right:0;bottom:0;max-width:520px;margin:0 auto;background:var(--c-bg);border-radius:28px 28px 0 0;padding:14px 20px 28px;max-height:82vh;overflow-y:auto;z-index:51;transform:translateY(100%);transition:transform .32s var(--ease-out);box-shadow:0 -8px 30px rgba(45,33,24,.18)}.sheet.open{transform:translateY(0)}.sheet .handle{width:44px;height:5px;background:var(--cream-300);border-radius:999px;margin:0 auto 14px}.sheet .streak-hero{background:transparent;padding:0;margin-bottom:18px}.sheet .streak-hero .num{font-size:56px}.sheet .streak-hero .days{font-size:24px}.us-garden{position:relative;overflow:hidden}.us-garden .overlay{position:absolute;top:14px;left:20px;right:20px;display:flex;justify-content:space-between;align-items:flex-start}.us-garden .overlay .title-group .hand-label{font-family:var(--font-hand);font-weight:700;font-size:20px;color:var(--terracotta-700);transform:rotate(-2deg);display:inline-block;line-height:1}.us-garden .overlay .title-group .heading{font-family:var(--font-display);font-weight:900;font-size:30px;color:var(--terracotta-700);line-height:1;margin-top:2px;letter-spacing:var(--tracking-tight)}.joint-streak{padding:16px 18px;background:var(--blush-100);border-radius:22px;box-shadow:var(--shadow-card-md)}.joint-streak .top-row{display:flex;align-items:center;gap:12px;margin-bottom:10px}.joint-streak .count{flex:1 1;text-align:right}.joint-streak .count .num{font-family:var(--font-display);font-weight:900;font-size:34px;color:var(--blush-400);line-height:1}.joint-streak .count .lbl{font-size:11px;font-weight:800;letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--blush-400)}.joint-streak .day-strip{display:flex;gap:5px;margin-top:6px}.joint-streak .day-strip .day-cell{flex:1 1;display:flex;flex-direction:column;align-items:center;gap:3px}.joint-streak .day-strip .day-dot{width:100%;aspect-ratio:1;border-radius:10px;display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-weight:900;font-size:13px;text-transform:uppercase}.joint-streak .day-strip .day-label{font-size:9px;font-weight:800;color:var(--blush-400);letter-spacing:.06em;text-transform:uppercase}.joint-streak .footer-note{margin-top:10px;font-weight:700;font-size:12px;color:var(--ink-700);text-align:center}.shared-goals .shared-goal-row{background:#fff;border-radius:22px;padding:12px 14px;display:flex;align-items:center;gap:12px;box-shadow:var(--shadow-card-sm)}.shared-goals .shared-goal-row.both-done{outline:2px solid var(--blush-300);outline-offset:-2px}.shared-goals .person-col{display:flex;flex-direction:column;align-items:center;gap:2px}.shared-goals .person-label{font-size:9px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.shared-goals .both-chip{font-family:var(--font-display);font-weight:900;font-size:13px;padding:4px 10px;border-radius:999px}.bet-card{padding:18px;border-radius:22px;background:linear-gradient(180deg,#FFF7E0,#FFE4D3);box-shadow:var(--shadow-card-md)}.bet-card .meta-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.bet-card .stakes{font-family:var(--font-display);font-weight:900;font-size:22px;color:var(--terracotta-700);letter-spacing:var(--tracking-tight);margin-bottom:12px}.bet-card .bar{position:relative;height:18px;background:rgba(45,33,24,.08);border-radius:999px;overflow:hidden}.bet-card .bar .me{position:absolute;inset:0;background:var(--terracotta-500);border-radius:999px 0 0 999px}.bet-card .bar .them{position:absolute;top:0;bottom:0;right:0;background:var(--peach-400);border-radius:0 999px 999px 0}.bet-card .score-row{display:flex;justify-content:space-between;margin-top:8px;font-weight:800;font-size:12px}.bet-card .score-row .num{font-family:var(--font-display);font-weight:900;font-size:16px}.polaroid-scroll{display:flex;gap:14px;overflow-x:auto;padding:8px 4px 14px;margin:0 -4px;scrollbar-width:none}.polaroid-scroll::-webkit-scrollbar{display:none}.polaroid{flex-shrink:0;width:160px;background:#fff;padding:8px;border-radius:8px;box-shadow:0 4px 14px rgba(45,33,24,.15)}.polaroid .photo{aspect-ratio:4/3;overflow:hidden;background:var(--cream-100);margin-bottom:6px;border-radius:4px}.polaroid .caption{font-family:var(--font-hand);font-weight:700;font-size:18px;color:var(--ink-900);line-height:1}.polaroid .date{font-weight:700;font-size:10px;color:var(--c-fg-muted);letter-spacing:.06em;text-transform:uppercase;margin-top:2px}.love-notes{display:flex;flex-direction:column;gap:8px}.love-note{max-width:82%;padding:10px 14px;font-weight:600;font-size:14px;box-shadow:var(--shadow-card-sm)}.love-note.from-me{align-self:flex-end;background:var(--terracotta-500);color:#fff;border-radius:20px 20px 6px 20px}.love-note.from-them{align-self:flex-start;background:var(--blush-100);color:var(--ink-900);border-radius:20px 20px 20px 6px}.love-note .time{font-size:10px;opacity:.7;margin-top:2px;font-weight:700}.board-shelf{margin:-24px -20px 0;padding:20px 20px 14px;background:#fff;border-radius:0 0 28px 28px;box-shadow:var(--shadow-card-sm)}.board-shelf-header{margin-bottom:14px}.board-shelf-title{font-family:var(--font-display);font-weight:900;font-size:24px;color:var(--c-fg);letter-spacing:var(--tracking-tight)}.board-shelf-sub{font-weight:600;font-size:14px;color:var(--c-fg-muted);margin-top:2px}.view-toggle{display:flex;gap:0;background:var(--cream-100);border-radius:999px;padding:3px}.view-toggle-btn{font-family:var(--font-body);font-weight:800;font-size:12px;padding:5px 14px;border-radius:999px;border:0;background:transparent;color:var(--c-fg-muted);cursor:pointer;transition:background var(--dur-fast),color var(--dur-fast)}.view-toggle-btn.active{background:#fff;color:var(--terracotta-600);box-shadow:0 1px 3px rgba(0,0,0,.08)}.board-shelf-label{font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--c-fg-muted);margin-bottom:8px}.board-shelf-avatars{display:flex;gap:14px;overflow-x:auto;scrollbar-width:none;padding-bottom:2px}.board-shelf-avatars::-webkit-scrollbar{display:none}.shelf-chip{display:flex;flex-direction:column;align-items:center;gap:4px;flex-shrink:0;background:transparent;border:0;cursor:pointer;padding:0;opacity:.55;transition:opacity var(--dur-fast)}.shelf-chip.active{opacity:1}.shelf-chip:hover{opacity:.85}.shelf-avatar-ring{padding:3px;border-radius:999px;background:var(--cream-200);transition:background var(--dur-fast);position:relative}.shelf-avatar-ring.selected{background:linear-gradient(135deg,var(--peach-400),var(--blush-300),var(--butter-400))}.shelf-avatar-ring.all{width:44px;height:44px;display:flex;align-items:center;justify-content:center;background:var(--cream-200);font-weight:900;color:var(--c-fg-muted)}.shelf-chip.active .shelf-avatar-ring.all{background:var(--terracotta-500);color:#fff}.shelf-avatar-ring .avatar{border:2px solid #fff}.shelf-dot{position:absolute;bottom:1px;right:1px;width:12px;height:12px;border-radius:999px;background:var(--sage-500);border:2px solid #fff}.shelf-name{font-weight:800;font-size:11px;color:var(--ink-700)}.shelf-streak-badge{position:absolute;bottom:-4px;right:-6px;font-size:9px;font-weight:900;color:var(--terracotta-700);background:var(--butter-100);padding:1px 5px;border-radius:999px;border:2px solid #fff;line-height:1.2}.bulletin-board{margin:0 -20px;padding:20px;min-height:300px;background:radial-gradient(circle at 20% 30%,var(--cream-100) 0,transparent 50%),radial-gradient(circle at 80% 70%,var(--butter-50) 0,transparent 50%),var(--cream-50)}.board-masonry{column-count:2;column-gap:12px}.board-card{page-break-inside:avoid;break-inside:avoid;margin-bottom:14px;transition:transform var(--dur-med) var(--ease-squish)}.board-card:hover{z-index:2}.board-pin{width:12px;height:12px;border-radius:999px;background:var(--terracotta-400);box-shadow:0 2px 4px rgba(0,0,0,.15),inset 0 1px 0 rgba(255,255,255,.4);position:relative;top:-6px;margin:0 auto -6px;z-index:1}.board-card.polaroid{background:#fff;border-radius:6px;padding:6px 6px 8px;box-shadow:0 2px 8px rgba(0,0,0,.1),0 1px 2px rgba(0,0,0,.06)}.board-card-tap{display:block;width:100%;border:0;padding:0;background:transparent;cursor:pointer;text-align:left}.polaroid-photo{width:100%;aspect-ratio:1;object-fit:cover;display:block;border-radius:3px}.polaroid-caption{padding:8px 4px 2px}.polaroid-goal{font-family:var(--font-hand);font-size:15px;font-weight:700;color:var(--c-fg);line-height:1.2}.polaroid-note{font-size:12px;font-weight:600;color:var(--c-fg-muted);margin-top:2px;line-height:1.3}.polaroid-meta{font-size:10px;font-weight:700;color:var(--c-fg-muted);margin-top:4px;display:flex;gap:4px;align-items:center}.polaroid-name{color:var(--terracotta-600);text-decoration:none;font-weight:800}.polaroid-name:hover{text-decoration:underline}.polaroid-xp{position:absolute;top:14px;right:10px;font-family:var(--font-display);font-weight:900;font-size:11px;color:#fff;background:var(--terracotta-500);padding:2px 8px;border-radius:999px;box-shadow:0 1px 3px rgba(0,0,0,.2)}.board-card.sticky{border-radius:4px;padding:6px;box-shadow:0 2px 6px rgba(0,0,0,.08),0 1px 2px rgba(0,0,0,.04);position:relative}.sticky-body{display:flex;flex-direction:column;align-items:center;gap:6px;padding:16px 10px 8px;text-align:center;width:100%;border:0;background:transparent;cursor:pointer}.sticky-goal{font-family:var(--font-display);font-weight:900;font-size:15px;color:var(--c-fg);line-height:1.2}.sticky-note{font-family:var(--font-hand);font-size:15px;font-weight:700;color:var(--terracotta-600);line-height:1.3}.sticky-meta{font-size:10px;font-weight:700;color:var(--c-fg-muted);display:flex;gap:4px;align-items:center}.sticky-name{color:var(--terracotta-600);text-decoration:none;font-weight:800}.sticky-name:hover{text-decoration:underline}.sticky-xp{font-family:var(--font-display);font-weight:900;font-size:12px;color:var(--butter-500)}.board-reactions{display:flex;gap:4px;flex-wrap:wrap;padding:6px 4px 2px;position:relative}.board-reactions .reaction-chip{padding:4px 8px;font-size:11px}.board-reactions .reaction-chip .emoji{font-size:13px}.board-reactions .add-reaction{padding:4px 10px}.board-empty{text-align:center;padding:40px 20px}.board-empty p{font-family:var(--font-hand);font-size:18px;font-weight:700;color:var(--c-fg-muted);margin-top:8px}.feed-post{background:#fff;border-radius:24px;box-shadow:var(--shadow-card-md)}.feed-post .post-header{display:flex;align-items:center;gap:12px;padding:14px 16px 10px}.feed-post .post-meta .name{font-family:var(--font-display);font-weight:900;font-size:15px;text-decoration:none;color:inherit}.feed-post .post-meta a.name:hover{color:var(--terracotta-500)}.feed-post .post-header>a{text-decoration:none}.feed-post .post-meta .time{color:var(--c-fg-muted);font-weight:700;font-size:12px}.feed-post .post-meta .goal-line{font-weight:700;font-size:13px;color:var(--terracotta-600)}.feed-post .post-meta .goal-line .xp{color:var(--butter-500)}.feed-post .post-photo{aspect-ratio:3/2;overflow:hidden;background:var(--cream-100);border-radius:0}.feed-post .post-caption{padding:12px 16px 4px;font-weight:600;font-size:14px;color:var(--ink-700);line-height:1.4}.feed-post .post-reactions{padding:12px 14px 14px;display:flex;gap:6px;flex-wrap:wrap;position:relative}.reaction-chip{display:inline-flex;align-items:center;gap:6px;padding:7px 12px;border-radius:999px;border:0;cursor:pointer;background:var(--cream-100);box-shadow:0 2px 0 0 var(--cream-300);font-family:var(--font-body);font-weight:800;font-size:13px;color:var(--ink-700);transition:transform .28s var(--ease-squish),background var(--dur-fast)}.reaction-chip.active{background:var(--blush-100);box-shadow:0 2px 0 0 var(--blush-300);color:var(--blush-400)}.reaction-chip .emoji{font-size:15px}.reaction-chip .count{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.reaction-chip.pop{transform:scale(1.18)}.reaction-chip.add-reaction{font-size:16px;font-weight:900;color:var(--c-fg-muted);padding:7px 14px;min-width:0}.reaction-chip.add-reaction:hover{color:var(--terracotta-500)}.emoji-picker{position:absolute;bottom:100%;right:14px;margin-bottom:6px;background:#fff;border-radius:20px;padding:6px 8px;display:flex;gap:2px;box-shadow:var(--shadow-card-lg);z-index:20;white-space:nowrap;animation:picker-pop var(--dur-med) var(--ease-squish)}@keyframes picker-pop{0%{opacity:0;transform:scale(.8) translateY(6px)}to{opacity:1;transform:scale(1) translateY(0)}}.emoji-pick{width:36px;height:36px;border-radius:999px;border:0;background:transparent;cursor:pointer;font-size:19px;display:flex;align-items:center;justify-content:center;transition:background var(--dur-fast),transform .18s var(--ease-squish)}.emoji-pick:hover{background:var(--cream-100);transform:scale(1.15)}.profile-back{background:transparent;border:0;cursor:pointer;font-family:var(--font-body);font-weight:800;font-size:14px;color:var(--terracotta-500);padding:4px 0;margin-bottom:4px}.profile-back:hover{color:var(--terracotta-700)}.you-header{text-align:center;padding:8px 0 4px}.you-avatar-ring{display:inline-block;padding:4px;border-radius:999px;background:linear-gradient(135deg,var(--peach-400),var(--blush-300),var(--butter-400))}.you-avatar-ring .avatar{border:3px solid #fff}.you-name{font-family:var(--font-display);font-weight:900;font-size:26px;color:var(--c-fg);letter-spacing:var(--tracking-tight);margin-top:10px}.you-partner-badge{display:inline-block;font-size:13px;color:var(--blush-400);background:var(--blush-100);padding:4px 14px;border-radius:999px}.you-bio,.you-partner-badge{margin-top:6px;font-weight:700}.you-bio{font-family:var(--font-hand);font-size:16px;color:var(--c-fg-muted)}.you-stats{display:flex;justify-content:space-around;background:#fff;border-radius:22px;padding:16px 8px;box-shadow:var(--shadow-card-sm)}.you-stat{text-align:center;flex:1 1}.you-stat .num{font-family:var(--font-display);font-weight:900;font-size:20px;color:var(--c-fg)}.you-stat .lbl{font-weight:700;font-size:11px;color:var(--c-fg-muted);text-transform:uppercase;letter-spacing:.04em;margin-top:2px}.you-tabs{display:flex;gap:0;margin-bottom:12px;border-bottom:2px solid var(--cream-200)}.you-tab{flex:1 1;text-align:center;padding:10px 0;font-family:var(--font-body);font-weight:800;font-size:13px;color:var(--c-fg-muted);background:transparent;border:0;cursor:pointer;border-bottom:3px solid transparent;margin-bottom:-2px;transition:color var(--dur-fast),border-color var(--dur-fast)}.you-tab.active{color:var(--terracotta-600);border-bottom-color:var(--terracotta-500)}.you-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:3px;gap:3px;border-radius:16px;overflow:hidden}.you-grid-item{position:relative;aspect-ratio:1;overflow:hidden;border:0;padding:0;cursor:pointer;background:var(--cream-100)}.you-grid-item img{width:100%;height:100%;object-fit:cover;display:block;transition:transform var(--dur-med) var(--ease-out)}.you-grid-item:hover img{transform:scale(1.05)}.you-grid-overlay{position:absolute;inset:0;background:linear-gradient(0deg,rgba(0,0,0,.4) 0,transparent 50%);display:flex;align-items:flex-end;justify-content:flex-end;padding:6px 8px;opacity:0;transition:opacity var(--dur-fast)}.you-grid-item:hover .you-grid-overlay{opacity:1}.you-grid-overlay span{font-family:var(--font-display);font-weight:900;font-size:12px;color:#fff;text-shadow:0 1px 3px rgba(0,0,0,.3)}.you-list{display:flex;flex-direction:column;gap:8px}.you-memory-row{display:flex;align-items:center;gap:12px;background:#fff;padding:10px 14px;border-radius:18px;box-shadow:var(--shadow-card-sm);border:0;cursor:pointer;text-align:left;width:100%;transition:transform var(--dur-fast) var(--ease-out)}.you-memory-row:hover{transform:translateY(-1px)}.you-memory-thumb{width:48px;height:48px;border-radius:12px;object-fit:cover;flex-shrink:0}.you-memory-thumb.placeholder{display:flex;align-items:center;justify-content:center;background:var(--cream-100);font-size:20px}.you-memory-info{flex:1 1;min-width:0}.you-memory-goal{font-weight:700;font-size:14px;color:var(--c-fg);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.you-memory-date{font-weight:600;font-size:11px;color:var(--c-fg-muted)}.you-memory-note{font-weight:600;font-size:12px;color:var(--terracotta-500);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px}.you-memory-xp{font-family:var(--font-display);font-weight:900;font-size:13px;color:var(--butter-500);flex-shrink:0}.you-empty{text-align:center;padding:32px 20px;background:#fff;border-radius:22px;box-shadow:var(--shadow-card-sm)}.you-empty-icon{font-size:36px;margin-bottom:8px}.you-empty p{font-weight:600;font-size:14px;color:var(--c-fg-muted);line-height:1.5;max-width:240px;margin:0 auto}.memory-overlay{position:fixed;inset:0;z-index:100;background:rgba(0,0,0,.55);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;padding:20px;animation:fade-in var(--dur-med) var(--ease-out)}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.memory-modal{background:#fff;border-radius:24px;overflow:hidden;width:100%;max-width:400px;box-shadow:0 20px 60px rgba(0,0,0,.3);animation:modal-pop var(--dur-slow) var(--ease-squish)}@keyframes modal-pop{0%{opacity:0;transform:scale(.9) translateY(20px)}to{opacity:1;transform:scale(1) translateY(0)}}.memory-modal-photo{width:100%;aspect-ratio:4/3;object-fit:cover;display:block}.memory-modal-note-hero{padding:32px 24px;text-align:center;background:linear-gradient(135deg,var(--cream-50),var(--blush-100))}.memory-modal-note-hero p{font-family:var(--font-hand);font-size:22px;font-weight:700;color:var(--terracotta-600);margin:0;line-height:1.4}.memory-modal-body{padding:16px 20px 12px}.memory-modal-goal{font-family:var(--font-display);font-weight:900;font-size:17px;color:var(--c-fg)}.memory-modal-meta{display:flex;gap:6px;align-items:center;margin-top:4px;font-weight:700;font-size:13px;color:var(--c-fg-muted)}.memory-modal-caption{font-weight:600;font-size:14px;color:var(--ink-700);margin-top:10px;line-height:1.4}.memory-modal-close{width:100%;padding:14px;border:0;cursor:pointer;font-family:var(--font-body);font-weight:800;font-size:15px;color:var(--terracotta-600);background:var(--cream-50);border-top:1px solid var(--cream-200);transition:background var(--dur-fast)}.memory-modal-close:hover{background:var(--cream-100)}.profile-card{text-align:center;padding:28px;background:#fff;border-radius:22px;box-shadow:var(--shadow-card-md)}.profile-card .display-name{font-family:var(--font-display);font-weight:900;font-size:28px;color:var(--c-fg);letter-spacing:var(--tracking-tight);margin-top:12px}.profile-card .email{font-weight:600;font-size:14px;color:var(--c-fg-muted);margin-top:4px}.profile-section{background:#fff;border-radius:22px;padding:18px;box-shadow:var(--shadow-card-sm)}.profile-section .row{display:flex;align-items:center;justify-content:space-between;padding:12px 0}.profile-section .row+.row{border-top:1px solid var(--cream-200)}.profile-section .row .label-text{font-weight:700;font-size:15px;color:var(--c-fg)}.profile-section .row .value{font-weight:700;font-size:15px;color:var(--c-fg-muted)}.garden-shop-btn{position:absolute;bottom:12px;right:12px;width:42px;height:42px;border-radius:999px;border:0;background:#fff;box-shadow:var(--shadow-card-md);font-size:20px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:transform var(--dur-fast) var(--ease-squish);z-index:5}.garden-shop-btn:hover{transform:scale(1.08)}.garden-shop-btn:active{transform:scale(.95)}.garden-shop-btn .badge{position:absolute;top:-2px;right:-2px;width:10px;height:10px;border-radius:999px;background:var(--terracotta-500);border:2px solid #fff}.shop-overlay{position:fixed;inset:0;z-index:100;background:rgba(0,0,0,.4);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:flex-end;justify-content:center;animation:fade-in var(--dur-med) var(--ease-out)}.shop-sheet{background:#fff;border-radius:28px 28px 0 0;width:100%;max-width:520px;max-height:80vh;overflow-y:auto;padding:0 0 max(env(safe-area-inset-bottom),20px);animation:sheet-up var(--dur-slow) var(--ease-squish)}@keyframes sheet-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}.shop-handle{width:36px;height:4px;border-radius:999px;background:var(--cream-300);margin:12px auto 0}.shop-header{display:flex;align-items:center;justify-content:space-between;padding:16px 22px 10px}.shop-title{font-size:22px;color:var(--c-fg)}.shop-balance,.shop-title{font-family:var(--font-display);font-weight:900}.shop-balance{display:flex;align-items:center;gap:6px;background:var(--butter-100);padding:6px 14px;border-radius:999px;font-size:14px;color:var(--terracotta-700)}.shop-body{padding:0 18px}.shop-tier-label{font-size:12px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--c-fg-muted);padding:14px 4px 8px}.shop-grid{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:10px;gap:10px}.shop-card{display:flex;flex-direction:column;align-items:center;gap:4px;padding:14px 8px;border-radius:18px;background:var(--cream-50);border:2px solid var(--cream-200);cursor:pointer;transition:border-color var(--dur-fast),transform var(--dur-fast) var(--ease-squish)}.shop-card:hover:not(:disabled){border-color:var(--terracotta-300);transform:translateY(-1px)}.shop-card:active:not(:disabled){transform:scale(.97)}.shop-card.owned{opacity:.5;cursor:default}.shop-card.unaffordable{opacity:.6}.shop-card.confirming{background:var(--butter-50);border-color:var(--butter-400);cursor:default}.shop-card-emoji{font-size:28px;line-height:1}.shop-card-name{font-weight:700;font-size:13px;color:var(--c-fg)}.shop-card-cost{font-family:var(--font-display);font-weight:900;font-size:12px;color:var(--terracotta-500)}.shop-card-cost.too-much{color:var(--c-fg-muted)}.shop-card-owned{font-weight:800;font-size:11px;color:var(--sage-600)}.shop-confirm-text{font-family:var(--font-hand);font-size:16px;font-weight:700;color:var(--c-fg)}.shop-confirm-cost{font-family:var(--font-display);font-weight:900;font-size:14px;color:var(--terracotta-500);margin-bottom:4px}@keyframes shimmer{0%{background-position:-400px 0}to{background-position:400px 0}}.skel{background:linear-gradient(90deg,var(--cream-100) 25%,var(--cream-200) 50%,var(--cream-100) 75%);background-size:800px 100%;animation:shimmer 1.4s ease-in-out infinite;border-radius:var(--radius-md)}.skel-line{height:14px;border-radius:999px}.skel-line.lg{height:28px;width:60%}.skel-line.sm{height:11px;width:45%}.skel-circle{border-radius:999px}.skel-card{padding:18px}.skel-card,.skel-row{background:#fff;border-radius:22px;box-shadow:var(--shadow-card-sm)}.skel-row{display:flex;align-items:center;gap:14px;padding:14px 18px}