:root{--bg: #FAF1E4;--bg-tint: #FFE7D1;--paper: #FFFBF4;--ink: #2A1A1A;--ink-soft: #5A4039;--ink-mute: rgba(42,26,26,.55);--hair: rgba(42,26,26,.1);--coral: #E5613A;--terracotta: #C84B31;--gold: #E8A33C;--plum: #6B2C44;--sky: #F2C9A1;--green: #5C7A4A;--red: #B23A2A}*{box-sizing:border-box;-webkit-font-smoothing:antialiased}html,body,#root{height:100%}body{margin:0;background:var(--bg);font-family:DM Sans,-apple-system,system-ui,sans-serif;color:var(--ink);overscroll-behavior-y:none}@keyframes larkle-shimmer{0%,to{opacity:.5}50%{opacity:1}}@keyframes hero-sheen{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes stamp-in{0%{opacity:0;transform:scale(1.25) rotate(-6deg)}55%{opacity:1;transform:scale(.96) rotate(1.5deg)}to{opacity:1;transform:none}}@keyframes seg-in{0%{opacity:0;transform:translateY(7px)}to{opacity:1;transform:none}}.seg-in{animation:seg-in .22s ease-out}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.serif{font-family:"Instrument Serif",Times New Roman,serif;font-style:italic;font-weight:400}.mono{font-family:JetBrains Mono,ui-monospace,monospace}.upper{text-transform:uppercase;letter-spacing:.12em}.tabnum{font-variant-numeric:tabular-nums}.app{position:relative;height:100dvh;max-width:520px;margin:0 auto;background:var(--bg);color:var(--ink);overflow:hidden;display:flex;flex-direction:column}@media(min-width:560px){body{background:#1a1310}.app{height:min(100dvh,940px);margin-top:calc((100dvh - min(100dvh,940px))/2);border-radius:24px;box-shadow:0 24px 80px #00000080}}.app-stage{flex:1;position:relative;overflow:hidden}.screen{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;overflow:hidden}.scroll{flex:1;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch}.hdr{padding:calc(env(safe-area-inset-top,34px) + 22px) 22px 14px;display:flex;align-items:flex-end;justify-content:space-between;gap:12px;flex-shrink:0}.hdr h1{font-family:"Instrument Serif",serif;font-style:italic;font-weight:400;font-size:38px;line-height:1;margin:0;letter-spacing:-.01em;color:var(--ink);text-wrap:pretty}.hdr .eyebrow{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-mute);margin-bottom:6px;font-weight:500}.hdr .actions{display:flex;gap:8px}.iconbtn{width:38px;height:38px;border-radius:999px;background:#2a1a1a0f;border:.5px solid var(--hair);display:inline-flex;align-items:center;justify-content:center;color:var(--ink);cursor:pointer;flex-shrink:0;transition:background .15s}.iconbtn:hover{background:#2a1a1a1a}.iconbtn.solid{background:var(--ink);color:var(--paper)}.iconbtn.solid:hover{background:var(--plum)}.tabbar{position:relative;z-index:30;padding:8px 22px calc(env(safe-area-inset-bottom,12px) + 14px);display:flex;justify-content:space-between;background:linear-gradient(to top,var(--bg) 60%,rgba(250,241,228,0));flex-shrink:0}.tab{flex:1;border:0;background:transparent;display:flex;flex-direction:column;align-items:center;gap:3px;padding:8px 0 0;color:var(--ink-mute);font-size:10px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;position:relative}.tab svg{width:22px;height:22px}.tab-badge{position:absolute;top:-4px;right:-8px;min-width:15px;height:15px;padding:0 4px;border-radius:999px;background:var(--coral);color:#fff;font-size:9.5px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;letter-spacing:0;box-shadow:0 0 0 2px var(--bg)}.tab.active{color:var(--coral)}.tab.active:before{content:"";position:absolute;top:0;left:50%;transform:translate(-50%);width:22px;height:3px;border-radius:999px;background:var(--coral)}.chip{display:inline-flex;align-items:center;gap:4px;height:24px;padding:0 10px;border-radius:999px;background:#2a1a1a0f;font-size:11px;font-weight:500;color:var(--ink-soft);white-space:nowrap}.chip.dark{background:#0006;color:#ffffffeb;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.chip.coral{background:#e5613a26;color:var(--terracotta)}.chip.gold{background:#e8a33c2e;color:#8a5a14}.chip.green{background:#5c7a4a2e;color:var(--green)}.btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;height:52px;padding:0 22px;border-radius:999px;background:var(--ink);color:var(--paper);font-family:inherit;font-size:15px;font-weight:500;letter-spacing:-.01em;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px;transition:transform .1s,background .15s}.btn:active{transform:scale(.97)}.btn.coral{background:var(--coral)}.btn.coral:hover{background:var(--terracotta)}.btn.ghost{background:transparent;color:var(--ink);border:1px solid var(--hair)}.btn.full{width:100%}.scrim{position:absolute;top:0;right:0;bottom:0;left:0;background:#140a0873;z-index:1040;animation:scrimIn .2s ease-out}@keyframes scrimIn{0%{opacity:0}}.sheet{position:absolute;left:0;right:0;bottom:0;background:var(--paper);border-radius:28px 28px 0 0;padding:14px 22px 28px;z-index:1050;max-height:86%;display:flex;flex-direction:column;animation:sheetIn .28s cubic-bezier(.2,.8,.2,1);box-shadow:0 -10px 30px #0000002e}.sheet .handle{width:40px;height:4px;border-radius:999px;background:#2a1a1a2e;margin:0 auto 14px}@keyframes sheetIn{0%{transform:translateY(100%)}to{transform:translateY(0)}}.detail-sheet{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1050;display:flex;flex-direction:column;outline:none;animation:sheetIn .38s cubic-bezier(.32,.72,0,1) backwards;will-change:transform}.stars{display:inline-flex;gap:2px}.stars svg{width:14px;height:14px}.stars.lg svg{width:28px;height:28px}.row{display:flex;align-items:center;gap:8px}.col{display:flex;flex-direction:column}.between{justify-content:space-between}.muted{color:var(--ink-mute)}.soft{color:var(--ink-soft)}.divider{height:.5px;background:var(--hair);margin:12px 0}.toast{position:absolute;left:50%;top:90px;transform:translate(-50%);background:var(--ink);color:var(--paper);padding:10px 16px;border-radius:999px;font-size:13px;font-weight:500;z-index:60;box-shadow:0 8px 24px #0003;animation:toastIn .3s cubic-bezier(.2,.8,.2,1);white-space:nowrap;display:inline-flex;align-items:center;gap:8px}@keyframes toastIn{0%{transform:translate(-50%,-20px);opacity:0}}.avatar{width:32px;height:32px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;font-size:11px;font-weight:600;color:var(--paper);letter-spacing:.02em;flex-shrink:0}.no-scrollbar::-webkit-scrollbar{display:none}.no-scrollbar{scrollbar-width:none}
