:root{--paper: #fbf6ec;--paper2: #f1e7d5;--ink: #2c2a26;--ink-soft: #6e675b;--line: #e4d9c4;--teal: #2e8b84;--teal-dark: #1f645e;--teal-50: #eaf4f2;--honey: #c96f34;--honey-dark: #9c5222;--hand: "Shantell Sans Variable", "Segoe Print", cursive;--wob: 16px 13px 18px 12px / 12px 18px 12px 16px;--wob-lg: 22px 16px 24px 14px / 14px 24px 14px 22px;--wob-sm: 12px 9px 13px 8px / 8px 13px 8px 12px}*{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:Inter Variable,system-ui,sans-serif;color:var(--ink);background-color:var(--paper);background-image:radial-gradient(rgba(44,42,38,.055) 1px,transparent 1.4px);background-size:24px 24px;-webkit-font-smoothing:antialiased;overflow-x:hidden}.hand{font-family:var(--hand);font-weight:600}.hl{background-image:linear-gradient(104deg,transparent 2%,rgba(201,111,52,.5) 2%,rgba(201,111,52,.5) 98%,transparent 98%);background-repeat:no-repeat;background-size:100% 40%;background-position:0 82%;padding:0 .12em}.rf-head{position:sticky;top:0;z-index:50;background:#fbf6ecf2;backdrop-filter:blur(8px);border-bottom:2px solid var(--ink)}.rf-head-row{max-width:640px;margin:0 auto;height:60px;display:flex;align-items:center;justify-content:center;padding:0 20px;position:relative}.rf-logo{font-family:var(--hand);font-weight:700;font-size:21px;color:var(--ink);text-decoration:none}.rf-logo b{color:var(--honey)}.rf-nav{justify-content:space-between}.rf-acct{position:relative}.rf-acct summary{list-style:none;display:flex;align-items:center;gap:10px;cursor:pointer}.rf-acct summary::-webkit-details-marker{display:none}.rf-acct-info{text-align:right}.rf-greet{display:block;font-size:13px;font-weight:700;line-height:1.25}.rf-mail{display:block;font-size:10.5px;color:var(--ink-soft);line-height:1.25}.rf-ava{display:block;border:2px solid var(--ink);background:var(--teal);padding:2px;border-radius:var(--wob-sm);box-shadow:2px 2px #2c2a2633}.rf-ava img,.rf-ini{width:30px;height:30px;display:flex;align-items:center;justify-content:center;object-fit:cover;border-radius:8px 6px 9px 5px/5px 9px 5px 8px;background:#fff;color:var(--teal-dark);font-size:16px}.rf-caret{font-size:11px;color:var(--ink-soft)}.rf-menu{position:absolute;right:0;top:calc(100% + 10px);width:224px;background:#fff;border:2px solid var(--ink);border-radius:var(--wob);box-shadow:5px 5px #2c2a262e;padding:8px;z-index:60}.rf-menu a{display:flex;gap:10px;align-items:center;padding:9px 12px;font-size:13.5px;font-weight:600;color:var(--ink);text-decoration:none;border-radius:10px}.rf-menu a:hover{background:var(--paper2)}.rf-menu .rf-menu-out{color:#b0432c;border-top:2px dashed rgba(44,42,38,.2);border-radius:0;margin-top:4px;padding-top:11px}.rf-menu-id{display:none;padding:8px 12px 10px;border-bottom:2px dashed rgba(44,42,38,.2);margin-bottom:4px}.rf-menu-id b{display:block;font-size:13.5px}.rf-menu-id span{display:block;font-size:10.5px;color:var(--ink-soft)}@media(max-width:560px){.rf-acct-info{display:none}.rf-menu-id{display:block}}.rf-main{max-width:640px;margin:0 auto;padding:28px 20px 96px}.rf-center{text-align:center}.eyebrow{display:inline-block;font-family:var(--hand);font-weight:600;font-size:13px;color:var(--teal-dark);border:2px solid var(--ink);background:#fff;border-radius:var(--wob-sm);padding:4px 14px;margin-bottom:14px}h1.h{font-size:clamp(27px,6.4vw,36px);font-weight:800;line-height:1.14;letter-spacing:-.01em;margin:0 0 12px}h2.h2{font-size:clamp(19px,4.6vw,23px);font-weight:800;line-height:1.2;margin:0 0 4px}.sub{color:var(--ink-soft);font-size:15px;line-height:1.55;margin:0 auto;max-width:32em}.card{background:#fff;border:2px solid var(--ink);border-radius:var(--wob-lg);box-shadow:4px 5px #2c2a2621;padding:20px;margin-top:22px}.card.teal{background:var(--teal-50)}.invited{display:inline-flex;align-items:center;gap:8px;background:var(--teal-50);border:2px solid var(--ink);border-radius:99px;padding:6px 16px;font-size:13px;font-weight:700;margin-bottom:16px}.gbtn{display:inline-flex;align-items:center;justify-content:center;gap:10px;width:100%;max-width:360px;border:2px solid var(--ink);background:#fff;color:var(--ink);font-weight:800;font-size:16px;padding:14px 20px;border-radius:var(--wob);box-shadow:3px 3px 0 var(--ink);cursor:pointer;text-decoration:none;transition:transform .1s,box-shadow .1s;margin:4px auto 0}.gbtn:active{transform:translate(3px,3px);box-shadow:0 0 0 var(--ink)}.gbtn[aria-disabled=true]{opacity:.5;pointer-events:none}.gbtn svg{width:20px;height:20px;flex-shrink:0}.banner{border:2px solid var(--ink);border-radius:var(--wob);padding:12px 14px;font-size:13px;font-weight:700;margin-top:16px}.banner.warn{background:#fbeee6;color:var(--honey-dark)}.banner.err{background:#fbe9e6;color:#b0432c}.link-label{font-size:12px;font-weight:700;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.06em;margin-bottom:8px}.link-box{display:flex;align-items:center;gap:8px;border:2px solid var(--ink);background:var(--paper);border-radius:var(--wob);padding:4px 4px 4px 14px}.link-url{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:700;font-size:14px;color:var(--teal-dark)}.copy-btn{flex-shrink:0;display:inline-flex;align-items:center;gap:6px;border:2px solid var(--ink);background:var(--teal);color:#fff;font-weight:800;font-size:14px;padding:10px 16px;border-radius:var(--wob-sm);cursor:pointer;transition:transform .1s,background .15s}.copy-btn:active{transform:scale(.94)}.copy-btn.done{background:var(--teal-dark)}.share-row{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}.share{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:2px solid var(--ink);background:#fff;color:var(--ink);font-weight:700;font-size:14px;padding:12px 10px;border-radius:var(--wob);box-shadow:3px 3px #2c2a261f;cursor:pointer;text-decoration:none;transition:transform .1s,box-shadow .1s}.share:active{transform:translate(2px,2px);box-shadow:0 0 #2c2a261f}.share.wa{background:#25d366;color:#05391b}.share.full{grid-column:1 / -1}.prog-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:10px}.prog-cap{font-size:13px;color:var(--ink-soft);font-weight:700}.prog-big{font-family:var(--hand);font-weight:700;font-size:34px;line-height:1;color:var(--teal-dark)}.dots{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0 4px}.dot{flex:1 1 0;min-width:26px;height:40px;border:2px solid var(--ink);border-radius:var(--wob-sm);background:var(--paper);display:flex;align-items:center;justify-content:center;font-size:18px}.dot.on{background:var(--teal);color:#fff}.pbar{height:20px;border:2px solid var(--ink);border-radius:99px;background:var(--paper);overflow:hidden;margin:10px 0 2px}.pbar-fill{height:100%;min-width:4px;background:var(--teal);border-right:2px solid var(--ink);border-radius:99px;transition:width .4s ease}.ladder{list-style:none;padding:0;margin:16px 0 0}.tier{display:flex;align-items:center;gap:12px;padding:12px 0;border-top:1.5px solid var(--line)}.tier:first-child{border-top:none}.tier-ico{width:44px;height:44px;flex-shrink:0;border:2px solid var(--ink);border-radius:var(--wob-sm);background:#fff;display:flex;align-items:center;justify-content:center;font-size:22px}.tier.done .tier-ico{background:var(--teal)}.tier-goal{font-weight:800;font-size:15px}.tier-rew{font-size:13px;color:var(--ink-soft);line-height:1.35}.tier-badge{margin-left:auto;flex-shrink:0;font-size:11px;font-weight:800;border:2px solid var(--ink);border-radius:99px;padding:3px 10px}.tier-badge.locked{background:#fff;color:var(--ink-soft)}.tier-badge.done{background:var(--teal);color:#fff}.friends{list-style:none;padding:0;margin:8px 0 0}.friend{display:flex;align-items:center;gap:10px;padding:10px 0;border-top:1.5px solid var(--line);font-size:14px}.friend:first-child{border-top:none}.friend-av{width:32px;height:32px;flex-shrink:0;border:2px solid var(--ink);border-radius:50%;background:var(--teal-50);display:flex;align-items:center;justify-content:center;font-size:15px;font-weight:800}.friend-name{font-weight:700}.friend-when{margin-left:auto;font-size:12px;color:var(--ink-soft)}.empty{text-align:center;color:var(--ink-soft);font-size:14px;padding:14px 0}.steps{list-style:none;padding:0;margin:14px 0 0}.step{display:flex;gap:14px;align-items:flex-start;padding:12px 0}.step-n{width:34px;height:34px;flex-shrink:0;border:2px solid var(--ink);border-radius:50%;background:var(--honey);color:#fff;font-family:var(--hand);font-weight:700;font-size:17px;display:flex;align-items:center;justify-content:center;box-shadow:2px 2px #2c2a262e}.step-t{font-weight:800;font-size:15px;margin:4px 0 2px}.step-d{font-size:14px;color:var(--ink-soft);line-height:1.45}details.faq{border:2px solid var(--ink);border-radius:var(--wob);background:#fff;padding:0 16px;margin-bottom:10px;box-shadow:3px 3px #2c2a261a}details.faq summary{list-style:none;cursor:pointer;font-weight:800;font-size:14.5px;padding:14px 0;display:flex;justify-content:space-between;gap:10px;align-items:center}details.faq summary::-webkit-details-marker{display:none}details.faq summary:after{content:"+";font-family:var(--hand);font-size:22px;color:var(--teal-dark)}details.faq[open] summary:after{content:"–"}details.faq p{margin:0 0 14px;font-size:14px;line-height:1.5;color:var(--ink-soft)}.legal{max-width:420px;margin:26px auto 0;text-align:center;font-size:11px;line-height:1.5;color:var(--ink-soft)}.legal a{color:var(--ink-soft);text-decoration:underline}.toast{position:fixed;left:50%;bottom:26px;transform:translate(-50%,20px);background:var(--ink);color:#fff;font-weight:700;font-size:14px;padding:12px 20px;border-radius:99px;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;z-index:90}.toast.show{opacity:1;transform:translate(-50%)}@media(prefers-reduced-motion:reduce){.copy-btn,.share,.toast,.gbtn{transition:none!important}}
