:root{--bg-0: #0b0e1a;--bg-1: #141a33;--card: rgba(255, 255, 255, .05);--line: rgba(255, 255, 255, .1);--text: #eef1ff;--muted: #9aa3c7;--gold: #f5c76a;--gold-hi: #ffe3a3;--purple: #a78bfa;--blue: #7dd3fc;--font-display: "Cinzel", Georgia, serif}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html{background:var(--bg-0)}html,body{margin:0;padding:0;color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;overscroll-behavior:none}body{background:radial-gradient(ellipse 80% 50% at 50% -10%,rgba(167,139,250,.16),transparent),radial-gradient(ellipse 70% 55% at 112% 112%,rgba(245,199,106,.09),transparent),linear-gradient(180deg,var(--bg-0),var(--bg-1));background-attachment:scroll;min-height:100dvh}#root{min-height:100dvh}.starfield{position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none}.app{position:relative;z-index:1;max-width:480px;margin:0 auto;min-height:100dvh;display:flex;flex-direction:column}.screen{flex:1;padding:max(20px,env(safe-area-inset-top)) 20px 20px;display:flex;flex-direction:column}.tabbar{display:flex;border-top:1px solid var(--line);background:#0b0e1ae6;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);padding-bottom:env(safe-area-inset-bottom);position:sticky;bottom:0;z-index:2}.tab{flex:1;background:none;border:none;color:var(--muted);font-size:12px;padding:10px 0 8px;display:flex;flex-direction:column;align-items:center;gap:2px;cursor:pointer}.tab.active{color:var(--gold)}.tab-icon{font-size:20px}.wish{flex:1;display:flex;flex-direction:column}.wish-head{text-align:center;margin-top:8px}.logo-mark{display:block;margin:0 auto 4px;filter:drop-shadow(0 0 16px rgba(245,199,106,.45))}.logo{margin:0;font-family:var(--font-display);font-weight:800;font-size:30px;letter-spacing:.32em;text-indent:.32em;background:linear-gradient(110deg,#b98a2e 0%,var(--gold) 25%,#fff6dd 50%,var(--gold) 75%,#b98a2e 100%);background-size:200% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:logo-shimmer 5s linear infinite;filter:drop-shadow(0 0 18px rgba(245,199,106,.35))}@keyframes logo-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.tagline{margin:4px 0 0;color:var(--muted);font-size:13px}.aurora-ribbon{position:relative;margin:18px auto 0;padding:11px 18px;border-radius:999px;display:flex;align-items:center;justify-content:center;gap:9px;font-size:13.5px;font-weight:600;color:#fff;background:linear-gradient(100deg,#6d4fd0,#a44ede 20%,#e0489b,#ef6a45,#f5c76a,#6d4fd0);background-size:300% 100%;animation:aurora-flow 8s linear infinite;box-shadow:0 0 26px #c44ec459,0 0 60px #7c5ce02e;overflow:hidden}.aurora-ribbon:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(105deg,transparent 35%,rgba(255,255,255,.45) 50%,transparent 65%);transform:translate(-100%);animation:aurora-sheen 3.6s ease-in-out infinite;pointer-events:none}@keyframes aurora-flow{to{background-position:-300% 0}}@keyframes aurora-sheen{0%{transform:translate(-120%)}55%,to{transform:translate(120%)}}.aurora-emoji{font-size:16px;filter:drop-shadow(0 0 6px rgba(255,255,255,.5))}.aurora-text{letter-spacing:.02em;text-shadow:0 1px 6px rgba(0,0,0,.35)}.chips{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-top:16px}.chip{background:var(--card);border:1px solid var(--line);border-radius:999px;padding:6px 12px;font-size:13px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.chip-dim{opacity:.6}.pull-zone{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:24px}.pull-btn{position:relative;width:180px;height:180px;border-radius:50%;border:2px solid rgba(245,199,106,.55);background:radial-gradient(circle at 35% 30%,#ffe3a340,#f5c76a14 60%),#ffffff08;color:var(--gold-hi);cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;animation:glow-pulse 2.6s ease-in-out infinite;transition:transform .15s}.pull-btn-label{font-family:var(--font-display);font-weight:700;font-size:22px;letter-spacing:.28em;text-indent:.28em}.pull-btn-ring{position:absolute;top:-14px;right:-14px;bottom:-14px;left:-14px;border-radius:50%;border:1.5px dashed rgba(245,199,106,.35);animation:ring-spin 24s linear infinite;pointer-events:none}@keyframes ring-spin{to{transform:rotate(360deg)}}.pull-btn:active{transform:scale(.94)}.pull-btn:disabled{opacity:.35;animation:none;cursor:default}.pull-btn-star{font-size:36px;line-height:1;animation:star-breathe 2.6s ease-in-out infinite}@keyframes star-breathe{0%,to{transform:scale(1)}50%{transform:scale(1.15)}}@keyframes glow-pulse{0%,to{box-shadow:0 0 24px #f5c76a40,0 0 60px #f5c76a14}50%{box-shadow:0 0 44px #f5c76a80,0 0 100px #f5c76a2e}}.hint{color:var(--muted);font-size:13px;text-align:center;margin:0}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#060810f0;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;padding:24px;z-index:50;overflow:hidden}.pulling{text-align:center}.summon{position:relative;width:160px;height:160px;margin:0 auto;display:flex;align-items:center;justify-content:center}.summon-ring{position:absolute;border-radius:50%}.summon-ring.r1{top:0;right:0;bottom:0;left:0;border:2px dashed rgba(245,199,106,.5);animation:ring-spin 6s linear infinite}.summon-ring.r2{top:22px;right:22px;bottom:22px;left:22px;border:1.5px solid rgba(167,139,250,.4);border-top-color:#ffe3a3e6;animation:ring-spin 1.4s linear infinite reverse}.summon-star{font-size:54px;color:var(--gold-hi);animation:star-charge 1.3s ease-in-out infinite;text-shadow:0 0 40px rgba(245,199,106,.9)}@keyframes star-charge{0%,to{transform:scale(.85);opacity:.7}50%{transform:scale(1.25);opacity:1}}.pulling-text{color:var(--muted);letter-spacing:.2em;margin-top:22px;animation:fade-blink 1.2s ease-in-out infinite}@keyframes fade-blink{0%,to{opacity:.4}50%{opacity:1}}.meteor-lane{position:absolute;top:-50%;right:-50%;bottom:-50%;left:-50%;transform:rotate(36deg);pointer-events:none}.meteor{--mc: 255, 255, 255;position:absolute;top:50%;left:0;width:46vmax;height:5px;border-radius:999px;background:linear-gradient(90deg,transparent,rgba(var(--mc),.85) 70%,#fff);box-shadow:0 0 18px rgba(var(--mc),.8),0 0 60px rgba(var(--mc),.4);animation:meteor-fly 1.25s cubic-bezier(.45,0,.6,1) forwards}.meteor:after{content:"";position:absolute;right:-8px;top:50%;width:16px;height:16px;transform:translateY(-50%);border-radius:50%;background:radial-gradient(circle,#fff 0%,rgba(var(--mc),.85) 40%,transparent 70%)}.meteor.mid{height:3px;opacity:.85;width:34vmax}.meteor.mid.m1{top:32%;animation-delay:.1s;animation-duration:1s}.meteor.mid.m2{top:62%;animation-delay:.22s;animation-duration:1.08s}.meteor.rarity-5{--mc: 245, 199, 106}.meteor.rarity-4{--mc: 167, 139, 250}.meteor.rarity-3{--mc: 125, 211, 252}.meteor.faint{height:2px;opacity:.5;--mc: 205, 214, 255}.meteor.faint.f1{top:40%;animation-delay:.14s;animation-duration:1s}.meteor.faint.f2{top:70%;animation-delay:.28s;animation-duration:1.05s}.meteor.faint.f3{top:24%;animation-delay:.34s;animation-duration:.95s}.meteor.faint.f4{top:54%;animation-delay:.05s;animation-duration:1.15s}@keyframes meteor-fly{0%{transform:translate(calc(-100% - 10vw));opacity:0}12%{opacity:1}to{transform:translate(220vw);opacity:1}}.flash{--mc: 255, 255, 255;position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(circle,#fff,rgba(var(--mc),.9) 40%,rgba(var(--mc),.2));animation:flash-burst .3s ease-out forwards}.flash.rarity-5{--mc: 245, 199, 106}.flash.rarity-4{--mc: 167, 139, 250}.flash.rarity-3{--mc: 125, 211, 252}@keyframes flash-burst{0%{opacity:0}30%{opacity:1}to{opacity:0}}.overlay.shake{animation:screen-shake .3s ease-out}@keyframes screen-shake{0%,to{transform:translate(0)}25%{transform:translate(-7px,5px)}50%{transform:translate(6px,-4px)}75%{transform:translate(-3px,2px)}}.reveal-wrap{position:relative;display:flex;align-items:center;justify-content:center;width:100%}.rays{--mc: 255, 255, 255;position:absolute;z-index:0;width:260vmax;height:260vmax;background:conic-gradient(transparent 0deg,rgba(var(--mc),.08) 22deg,transparent 44deg,transparent 60deg,rgba(var(--mc),.08) 82deg,transparent 104deg,transparent 120deg,rgba(var(--mc),.08) 142deg,transparent 164deg,transparent 180deg,rgba(var(--mc),.08) 202deg,transparent 224deg,transparent 240deg,rgba(var(--mc),.08) 262deg,transparent 284deg,transparent 300deg,rgba(var(--mc),.08) 322deg,transparent 344deg,transparent 360deg);mask-image:radial-gradient(circle,black 0%,rgba(0,0,0,.5) 34%,transparent 58%);-webkit-mask-image:radial-gradient(circle,black 0%,rgba(0,0,0,.5) 34%,transparent 58%);animation:ring-spin 24s linear infinite;pointer-events:none}.rays.rarity-5{--mc: 245, 199, 106}.rays.rarity-4{--mc: 167, 139, 250}.rays.rarity-3{--mc: 125, 211, 252}.sparkles{position:absolute;z-index:1;pointer-events:none}.sparkles.rarity-5{color:var(--gold)}.sparkles.rarity-4{color:var(--purple)}.sparkles.rarity-3{color:var(--blue)}.sparkle{position:absolute;animation:sparkle-fly .9s ease-out var(--delay) both;text-shadow:0 0 12px currentColor}@keyframes sparkle-fly{0%{transform:rotate(var(--a)) translate(0) scale(.3);opacity:0}25%{opacity:1}to{transform:rotate(var(--a)) translate(var(--d)) scale(1);opacity:0}}.card{position:relative;z-index:2;width:100%;max-width:380px;background:linear-gradient(165deg,#ffffff17,#ffffff05),#10142a;border:1px solid var(--line);border-radius:20px;padding:28px 24px;text-align:center}.card-pop{animation:card-pop .55s cubic-bezier(.2,1.6,.4,1)}@keyframes card-pop{0%{transform:scale(.5) translateY(30px);opacity:0}to{transform:scale(1) translateY(0);opacity:1}}.rarity-5.card{border-color:#f5c76ab3;box-shadow:0 0 50px #f5c76a59,inset 0 0 30px #f5c76a0d}.rarity-5 .rarity-stars{color:var(--gold)}.rarity-4.card{border-color:#a78bfab3;box-shadow:0 0 50px #a78bfa4d,inset 0 0 30px #a78bfa0d}.rarity-4 .rarity-stars{color:var(--purple)}.rarity-3.card{border-color:#7dd3fc99;box-shadow:0 0 50px #7dd3fc40,inset 0 0 30px #7dd3fc0d}.rarity-3 .rarity-stars{color:var(--blue)}.rarity-stars{font-size:18px;letter-spacing:.3em;margin-bottom:10px;text-shadow:0 0 14px currentColor}.reveal-name{margin:0 0 8px;font-family:var(--font-display);font-weight:700;font-size:26px}.reveal-reason{color:var(--text);opacity:.9;margin:10px 0 8px;font-size:15px}.vibe{color:var(--muted);font-style:italic;font-size:13px;margin:0 0 4px}.brain-badge{font-size:11px;color:var(--muted);margin-top:10px}.card-actions{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-top:20px}.btn{background:var(--card);border:1px solid var(--line);color:var(--text);border-radius:12px;padding:11px 18px;font-size:15px;cursor:pointer;transition:transform .15s}.btn:active{transform:scale(.96)}.btn-primary{background:linear-gradient(120deg,var(--gold),#d9a53f);border-color:transparent;color:#201603;font-weight:700}.card-none h2{margin:0 0 6px;font-family:var(--font-display);font-size:20px}.confirm-card{max-width:320px}.confirm-card h2{margin:0 0 8px;font-family:var(--font-display);font-size:20px}.confirm-name{margin:0;color:var(--muted);font-size:15px}.btn-danger{background:linear-gradient(120deg,#ef5459,#d63a3f);border-color:transparent;color:#fff;font-weight:700}.excluded-list{list-style:none;padding:0;margin:14px 0 0;text-align:left;display:flex;flex-direction:column;gap:8px}.excluded-list li{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:10px 12px;font-size:13px;color:var(--muted)}.excluded-list strong{color:var(--text)}.badge{display:inline-block;font-size:10px;font-weight:600;letter-spacing:.04em;border-radius:999px;padding:2px 8px;margin-left:8px;vertical-align:middle}.badge-routine{background:#7dd3fc1f;border:1px solid rgba(125,211,252,.35);color:var(--blue)}.badge-once{background:#f5c76a1f;border:1px solid rgba(245,199,106,.35);color:var(--gold)}.card .badge{margin-left:0}.tasks-head h1{margin:8px 0 0;font-family:var(--font-display);font-size:22px}.task-form{display:flex;flex-direction:column;gap:10px;margin-top:12px}.input-row{display:flex;gap:8px}.input-row .input{flex:1}.input{background:var(--card);border:1px solid var(--line);border-radius:12px;color:var(--text);padding:13px 14px;font-size:15px;outline:none}.input:focus{border-color:#f5c76a80}.input::placeholder{color:var(--muted);opacity:.7}.hold-bar{width:100%;margin-top:18px;padding:16px 18px;border-radius:14px;border:1px solid rgba(255,255,255,.16);background:linear-gradient(120deg,#ef5459,#d63a3f);color:#fff;font-size:15px;font-weight:600;display:flex;align-items:center;justify-content:center;gap:10px;cursor:pointer;transition:transform .15s;touch-action:none;user-select:none;-webkit-user-select:none;box-shadow:0 0 18px #e5484d40}.hold-bar:active{transform:scale(.98)}.hold-bar.recording{background:linear-gradient(120deg,#ff4a50,#f02b32);animation:rec-pulse 1.1s ease-in-out infinite}.hold-bar.parsing{background:linear-gradient(120deg,#8b6ce8,#6d4fd0);box-shadow:0 0 18px #7c5ce059}.hold-bar:disabled{cursor:default}@keyframes rec-pulse{0%,to{box-shadow:0 0 #ff505680}50%{box-shadow:0 0 22px #ff5056cc}}.voice-status{margin:0;font-size:12px;color:var(--muted)}.voice-overlay{flex-direction:column;gap:26px;pointer-events:none}.voice-orb{--lvl: 0;position:relative;width:190px;height:190px;display:flex;align-items:center;justify-content:center}.voice-ring{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;border:2px solid rgba(255,99,105,.35);transform:scale(calc(.62 + var(--lvl) * .5));transition:transform .08s linear,border-color .25s}.voice-ring.vr2{transform:scale(calc(.78 + var(--lvl) * .75));border-color:#ff636938}.voice-ring.vr3{transform:scale(calc(.94 + var(--lvl) * 1.05));border-color:#ff63691f}.voice-orb.hearing .voice-ring{border-color:#f5c76a99}.voice-orb.hearing .voice-ring.vr2{border-color:#f5c76a59}.voice-orb.hearing .voice-ring.vr3{border-color:#f5c76a2e}.voice-runes{position:absolute;top:-26px;right:-26px;bottom:-26px;left:-26px;display:flex;align-items:center;justify-content:center;font-size:15px;letter-spacing:2.2em;text-indent:2.2em;color:#f5c76a40;animation:ring-spin 14s linear infinite;transition:color .3s}.voice-orb.hearing .voice-runes{color:#f5c76ad9;text-shadow:0 0 14px rgba(245,199,106,.7)}.voice-core{width:96px;height:96px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#ff7a7f,#e5484d 65%);color:#fff;display:flex;align-items:center;justify-content:center;box-shadow:0 0 calc(20px + var(--lvl) * 70px) rgba(255,80,86,calc(.4 + var(--lvl) * .5));transition:box-shadow .1s linear}.voice-orb.hearing .voice-core{background:radial-gradient(circle at 35% 30%,#ffd98a,#d9a53f 65%);box-shadow:0 0 calc(24px + var(--lvl) * 80px) rgba(245,199,106,calc(.5 + var(--lvl) * .5))}.voice-orb.parsing .voice-core{background:radial-gradient(circle at 35% 30%,#c4b5fd,#7c5ce0 65%)}.voice-spinner{font-size:40px;animation:star-spin-slow 1.1s linear infinite}@keyframes star-spin-slow{to{transform:rotate(360deg)}}.voice-title{margin:0;font-family:var(--font-display);font-size:18px;letter-spacing:.08em}.voice-sub{margin:0;color:var(--muted);font-size:13px}.sync-box{margin-top:28px;padding:16px;border:1px solid var(--line);border-radius:16px;background:var(--card)}.sync-box h2{margin:0 0 4px;font-family:var(--font-display);font-size:16px}.sync-hint{margin:0 0 10px;color:var(--muted);font-size:12px}.sync-status{margin:8px 0 0;font-size:12px;color:var(--muted)}.btn:disabled{opacity:.4;cursor:default}.backup-card{max-width:380px}.backup-textarea{width:100%;height:120px;margin-top:12px;resize:none;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;line-height:1.5}.repeat-toggle{display:flex;gap:8px}.pill{flex:1;background:var(--card);border:1px solid var(--line);color:var(--muted);border-radius:999px;padding:9px 0;font-size:13px;cursor:pointer;transition:all .15s}.pill.active{border-color:#f5c76a99;background:#f5c76a1f;color:var(--gold-hi)}.form-actions{display:flex;gap:10px}.task-list{list-style:none;padding:0;margin:22px 0 0;display:flex;flex-direction:column;gap:10px}.task-card{display:flex;align-items:stretch;background:var(--card);border:1px solid var(--line);border-radius:14px;overflow:hidden;transition:border-color .2s}.task-card.editing{border-color:#f5c76a80}.task-body{flex:1;background:none;border:none;color:var(--text);text-align:left;padding:13px 14px;cursor:pointer;display:flex;flex-direction:column;gap:3px}.task-name{font-size:16px;font-weight:600}.task-conditions{font-size:13px;color:var(--muted)}.task-complete,.task-delete{background:none;border:none;border-left:1px solid var(--line);padding:0 13px;cursor:pointer;font-size:16px;opacity:.7}.task-complete:active,.task-delete:active{opacity:1}
