:root{--ink: #2a1b24;--muted: #76636c;--paper: #fbf4ee;--paper-2: #fffbf7;--line: rgba(91, 42, 69, .16);--rose: #b0465b;--plum: #5b2a45;--honey-deep: #b7791f;--honey: #e9a23b;--terra: #a33a3a;--ivory: #fffbf7;--shadow: 0 16px 40px rgba(91, 42, 69, .08);--serif: "Fraunces", "Iowan Old Style", Palatino, Georgia, serif;--sans: "Outfit", "Segoe UI", sans-serif;color:var(--ink);background:#ecdcd8;font-family:var(--sans);font-size:16px;line-height:1.45}*{box-sizing:border-box}.offline-banner{background:#fff0c2;color:#513900;padding:12px 16px;position:sticky;top:0;z-index:100}progress{width:100%;height:12px;accent-color:var(--rose)}:focus-visible{outline:3px solid #b0465b;outline-offset:3px}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}html,body,#root{min-height:100%}body{margin:0;background:radial-gradient(circle at 20% 10%,rgba(233,162,59,.18),transparent 28%),#ecdcd8}button,input,textarea{font:inherit;color:inherit}button{cursor:pointer}p{margin:0}#root{min-height:100dvh;background:linear-gradient(180deg,#fffaf3f0,#fbf4eef5),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140' viewBox='0 0 140 140'%3E%3Cg fill='none' stroke='%23B0465B' stroke-opacity='.16' stroke-width='1'%3E%3Cpath d='M70 18 92 48 122 70 92 92 70 122 48 92 18 70 48 48Z'/%3E%3Cpath d='M70 38 86 56 104 70 86 84 70 102 54 84 36 70 54 56Z'/%3E%3C/g%3E%3C/svg%3E")}@media(min-width:880px){body{background-color:#e4d0cc;background-image:radial-gradient(circle at 12% 20%,rgba(233,162,59,.25),transparent 24%),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180' viewBox='0 0 180 180'%3E%3Cg fill='none' stroke='%23B0465B' stroke-opacity='.28' stroke-width='1.2'%3E%3Cpath d='M90 16 118 52 154 90 118 128 90 164 62 128 26 90 62 52Z'/%3E%3Crect x='58' y='58' width='64' height='64' transform='rotate(45 90 90)'/%3E%3C/g%3E%3C/svg%3E")}#root{width:min(460px,100%);margin:0 auto;box-shadow:0 0 0 1px #5b2a4529,0 30px 80px #5b2a4533}}.app{min-height:100dvh;display:flex;flex-direction:column}.app:has(.tabs){height:100dvh;max-height:100dvh;overflow:hidden}.screen{width:min(100%,460px);margin:0 auto;padding:calc(22px + env(safe-area-inset-top)) max(18px,env(safe-area-inset-right)) 28px max(18px,env(safe-area-inset-left));flex:1}.screen-app{padding:calc(14px + env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) 28px max(16px,env(safe-area-inset-left));flex:1;min-height:0;overflow:auto}.kicker{letter-spacing:.16em;text-transform:uppercase;font-size:11px;color:var(--honey-deep);font-weight:600}h1,h2,h3{font-family:var(--serif);font-weight:560;letter-spacing:-.02em}h1{font-size:52px;line-height:.95;margin:10px 0 8px}h2{font-size:28px;margin:0 0 6px}h3{font-size:20px;margin:0}.lede{color:var(--muted);font-size:17px;max-width:34ch}.hero{position:relative;padding:22px 18px 18px;border:1px solid rgba(183,121,31,.45);background:#fffaf3b8;margin-bottom:18px}.hero:after{content:"";position:absolute;top:6px;right:6px;bottom:6px;left:6px;border:1px solid rgba(183,121,31,.28);pointer-events:none}.hero-mark{margin-bottom:8px}.principles{display:grid;gap:8px;margin:18px 0}.principle{display:grid;grid-template-columns:74px 1fr;gap:10px;align-items:baseline;padding-bottom:8px;border-bottom:1px solid var(--line)}.principle strong{font-family:var(--serif);font-size:18px}.principle span{color:var(--muted);font-size:14px}.stack{display:grid;gap:10px}.row{display:flex;gap:8px;align-items:center}.between{display:flex;justify-content:space-between;gap:10px;align-items:center;flex-wrap:wrap}.grow{flex:1;min-width:0}.muted{color:var(--muted);font-size:13px}.fine{color:var(--muted);font-size:12.5px;line-height:1.4}.btn{border:1px solid transparent;background:transparent;border-radius:999px;min-height:48px;padding:0 16px;font-weight:600}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.45;cursor:default}.btn-block{width:100%}.btn-primary{background:var(--rose);color:var(--ivory)}.btn-gold{background:#9a5b12;color:#fffbf7}.btn-ghost{border-color:var(--line);background:#fffaf3b3}.btn-danger{background:transparent;color:var(--terra);border-color:#8c3a3259}.btn-small{min-height:38px;padding:0 12px;font-size:14px}.card{background:var(--paper-2);border:1px solid var(--line);border-radius:18px;padding:14px;box-shadow:var(--shadow)}.card h3{margin-bottom:4px}.card+.card{margin-top:0}.task{border-left:4px solid transparent}.task.pending{border-left-color:var(--honey)}.task.approved{border-left-color:#2f7d56}.task.rejected{border-left-color:var(--terra)}.task p{color:var(--muted);font-size:14px;margin-top:4px}.stats{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:12px 0}.stat{text-align:left;border-radius:16px;border:1px solid var(--line);background:#fffaf3cc;padding:12px}.stat b{display:block;font-family:var(--serif);font-size:28px;font-weight:560;line-height:1}.stat span{color:var(--muted);font-size:13px}.gold{display:inline-flex;align-items:center;gap:6px;color:#9a5b12;font-weight:600}.gold-lg{font-family:var(--serif);font-size:42px;font-weight:560;font-style:italic;letter-spacing:-.03em;line-height:1}.points{color:#9a5b12;font-weight:600;white-space:nowrap}.pill{display:inline-flex;align-items:center;border-radius:999px;padding:3px 8px;font-size:12px;font-weight:600;background:#b0465b14;color:var(--rose)}.pill-hane{background:#8c4a321f;color:#8c4a32}.pill-ilim{background:#5b2a451a;color:var(--plum)}.pill-edep{background:#b7791f2e;color:#9a5b12}.pill-beden{background:#245c731f;color:#245c73}.pill-ibadet{background:#3e346e1a;color:#3e346e}.meta{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:8px}.header{display:flex;gap:10px;align-items:center;padding-bottom:10px}.header strong{display:block;font-family:var(--serif);font-size:18px;line-height:1.15}.avatar{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;color:#fffbf7;font-family:var(--serif);font-size:16px;flex:none}.avatar.lg{width:54px;height:54px;font-size:20px}.member{width:100%;display:flex;gap:12px;align-items:center;text-align:left;padding:12px;border-radius:18px;border:1px solid var(--line);background:var(--paper-2)}.member small{display:block;color:var(--muted)}.tabs{flex:none;display:grid;gap:2px;padding:6px 8px calc(8px + env(safe-area-inset-bottom));background:#fbf4eef0;border-top:1px solid var(--line);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:5}.tab{border:0;background:transparent;min-height:52px;border-radius:12px;color:var(--muted);display:grid;justify-items:center;gap:1px;font-size:11px;font-weight:600;position:relative}.tab.active{color:var(--rose);background:#b0465b0f}.ico{width:22px;height:22px;display:block}.tab-badge{position:absolute;top:4px;right:calc(50% - 24px);min-width:16px;height:16px;padding:0 4px;border-radius:99px;background:#9a5b12;color:#fff;font-size:10px;line-height:16px}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#2a1b247a;display:flex;align-items:flex-end;justify-content:center;z-index:30;padding:12px}.sheet{width:min(440px,100%);max-height:min(92dvh,780px);overflow:auto;background:var(--paper);border-radius:22px 22px 12px 12px;padding:16px 16px 18px;box-shadow:var(--shadow)}.sheet-head{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:12px}.icon-btn{width:36px;height:36px;border-radius:50%;border:1px solid var(--line);background:transparent}.field{display:grid;gap:6px;margin-bottom:12px}.field span{font-size:13px;font-weight:600}.field input,.field textarea{width:100%;border:1px solid var(--line);background:#fff;border-radius:12px;padding:12px;font-size:16px}.field textarea{min-height:72px;resize:vertical}.pin{letter-spacing:.4em;font-family:var(--serif);font-size:28px!important;text-align:center}.chips{display:flex;flex-wrap:wrap;gap:6px}.chip{border:1px solid var(--line);background:transparent;border-radius:999px;min-height:36px;padding:0 12px}.chip.on{background:var(--rose);color:var(--ivory);border-color:var(--rose)}.stepper{display:flex;align-items:center;gap:10px}.stepper b{font-family:var(--serif);font-size:28px;min-width:42px;text-align:center}.dots{display:flex;gap:6px;flex-wrap:wrap}.dot{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;font-size:10px;font-weight:700;color:var(--muted);background:#1c19150d}.dot.pending{background:#e9a23b8c;color:#6e3f0a}.dot.approved{background:#2f7d562e;color:#1d5c3d}.dot.rejected{background:#8c3a3226;color:var(--terra)}.badge-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.medal{border:1px dashed var(--line);border-radius:16px;padding:10px;min-height:86px;background:#fffaf373}.medal.earned{border-style:solid;border-color:#b7791fb3;background:#e9a23b2e}.medal b{display:block;font-family:var(--serif);font-size:18px}.medal span{color:var(--muted);font-size:12px}.week{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin:10px 0 4px}.day{text-align:center;font-size:11px;color:var(--muted)}.day i{display:block;height:8px;margin-top:4px;border-radius:99px;background:#1c191514;font-style:normal}.day.on i{background:var(--rose)}.day.today{color:var(--ink);font-weight:700}.toast{position:fixed;left:50%;bottom:calc(84px + env(safe-area-inset-bottom));transform:translate(-50%);z-index:40;background:var(--plum);color:var(--ivory);border-radius:999px;padding:10px 14px;width:max-content;max-width:min(90vw,420px);text-align:center;box-shadow:var(--shadow)}.platform{margin-top:16px;padding:12px;border-radius:16px;background:#b0465b0f}.platform+.platform{margin-top:8px}.platform a{color:var(--rose)}.empty{text-align:center;padding:22px 10px;color:var(--muted)}.empty strong{display:block;color:var(--ink);font-family:var(--serif);font-size:22px;margin-bottom:4px}.archive{margin-top:8px;color:var(--muted)}.archive summary{cursor:pointer;padding:8px 0}.child-list{display:grid;gap:8px}.check{display:flex;gap:8px;align-items:flex-start;font-size:14px}.code-banner{display:grid;gap:2px;width:100%;text-align:center;padding:14px 12px;border-radius:16px;border:1px dashed rgba(176,70,91,.35);background:#e9a23b38;color:inherit}.code-banner span,.code-banner small{color:var(--muted);font-size:13px}.code-banner strong{font-family:var(--serif);font-size:32px;letter-spacing:.18em}.code-input{text-align:center;font-size:28px;letter-spacing:.16em;text-transform:uppercase;font-family:var(--serif)}.choice{display:grid;gap:4px;width:100%;text-align:left;padding:18px;border-radius:20px;border:1px solid var(--line);background:var(--paper-2);color:var(--ink);box-shadow:var(--shadow)}.choice strong{font-family:var(--serif);font-size:22px;font-weight:560}.choice small{color:var(--muted);font-size:14px}.choice-primary{background:var(--rose);border-color:var(--rose);color:var(--ivory)}.choice-primary small{color:#fffbf7d9}.btn-link{background:none;border:0;color:var(--rose);text-decoration:underline;min-height:44px}.more{margin-top:18px}.more>summary{color:var(--muted);font-size:14px;margin-bottom:10px;cursor:pointer}.more>.btn{margin-bottom:10px}.section-title{margin-top:10px;font-size:20px}.steps{margin:0;padding-left:22px;display:grid;gap:6px;font-size:16px}.invite-code{text-align:center;font-family:var(--serif);font-size:44px;letter-spacing:.14em;padding:16px 8px;border-radius:18px;background:#e9a23b38;border:1px dashed rgba(176,70,91,.35);-webkit-user-select:all;user-select:all}.note{font-size:13px;color:#6e3f0a;background:#e9a23b33;border-radius:12px;padding:8px 10px}.shake{animation:shake .35s ease}@keyframes shake{20%{transform:translate(-6px)}40%{transform:translate(6px)}60%{transform:translate(-3px)}80%{transform:translate(3px)}}:focus-visible{outline:2px solid #b0465b;outline-offset:2px}@media(prefers-reduced-motion:reduce){.shake{animation:none}.btn:active{transform:none}}
