:root{--elvt-night: #101426;--elvt-deep: #0e1324;--elvt-panel: #1c2444;--elvt-edge: #2c3360;--elvt-ink: #f6f0e4;--elvt-soft: #c4bdd0;--elvt-gold: #f0cd7a;--elvt-gold-deep: #c99a3e;--elvt-btn-ink: #1a140c;--elvt-sky: #7fd4ef;--bg: var(--elvt-night);--panel: var(--elvt-panel);--ink: var(--elvt-ink);--soft: var(--elvt-soft);--gold: var(--elvt-gold);--edge: var(--elvt-edge);--deep: var(--elvt-deep);--btn-ink: var(--elvt-btn-ink);--bar-h: 64px;color-scheme:dark;font-family:ui-rounded,SF Pro Rounded,system-ui,-apple-system,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}html,body{margin:0;height:100%;background:var(--bg);color:var(--ink)}body{overflow:hidden;-webkit-tap-highlight-color:transparent}#app{height:100dvh;display:flex;flex-direction:column}#view{flex:1;min-height:0;overflow:auto}.bar{display:flex;justify-content:center;gap:8px;height:calc(var(--bar-h) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:var(--deep);border-top:1px solid var(--edge)}.bar a{flex:0 1 120px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;color:var(--soft);text-decoration:none;font-size:13px;font-weight:600;border-radius:12px}.bar a .ico{font-size:22px;line-height:1}.bar a[aria-current=page]{color:var(--gold)}body[data-tab=story] .bar{display:none}.home{max-width:560px;margin:0 auto;padding:max(24px,env(safe-area-inset-top)) 20px 24px;display:grid;gap:16px}.home h1{font-size:clamp(26px,6vw,36px);margin:8px 0 4px}.card{background:var(--panel);border-radius:20px;padding:20px;border:1px solid var(--edge)}.card h2{margin:0 0 8px;font-size:18px;color:var(--gold)}.card p{margin:0 0 14px;font-size:18px;line-height:1.45}.btn{display:inline-block;background:var(--gold);color:var(--btn-ink);font-weight:800;text-decoration:none;padding:14px 22px;border-radius:999px;font-size:18px;min-height:48px}.xp-top{display:flex;justify-content:space-between;align-items:baseline;gap:12px}.xp .lvl{font-size:28px;font-weight:800;color:var(--gold)}.xp .pts{font-size:18px;font-weight:700;color:var(--ink)}.meter{height:14px;margin:12px 0 10px;border-radius:999px;background:var(--deep);border:1px solid var(--edge);overflow:hidden}.meter span{display:block;height:100%;min-width:6px;border-radius:inherit;background:linear-gradient(90deg,var(--elvt-gold-deep),var(--gold));transition:width .6s ease}.xp p{margin:0;color:var(--soft);font-size:16px}.xp p.tip{margin-top:6px;color:var(--gold);font-weight:700}.hint p{font-size:16px}.link{background:none;border:0;color:var(--gold);font-size:16px;font-weight:700;padding:8px 0;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;min-height:44px;min-width:44px}.fine{text-align:center;color:var(--soft);font-size:14px;margin:0}.story{position:relative;height:100%;display:flex;flex-direction:column}.story{background:var(--bg)}.story iframe{flex:1;width:100%;min-height:0;border:0;display:block;background:var(--bg);color-scheme:dark;opacity:0;transition:opacity .16s ease-out}.story iframe.ready{opacity:1}@media(prefers-reduced-motion:reduce){.story iframe{transition:none}}.toast{position:fixed;left:50%;transform:translate(-50%);bottom:calc(var(--bar-h) + 12px + env(safe-area-inset-bottom));background:var(--panel);border:1px solid var(--gold);color:var(--ink);padding:10px 14px;border-radius:14px;display:flex;gap:10px;align-items:center;font-size:15px;z-index:10;max-width:calc(100vw - 24px)}.toast[hidden]{display:none}.toast button{background:var(--gold);color:var(--btn-ink);border:0;border-radius:999px;padding:8px 14px;font-weight:800;font-size:15px}@media(orientation:landscape)and (max-height:500px){#app{flex-direction:row}.bar{order:-1;flex-direction:column;justify-content:center;gap:6px;height:auto;width:calc(76px + env(safe-area-inset-left));padding:8px 0 env(safe-area-inset-bottom) env(safe-area-inset-left);border-top:0;border-right:1px solid var(--edge)}.bar a{flex:0 0 64px;font-size:12px}.home{max-width:900px;grid-template-columns:1fr 1fr;align-items:start;gap:12px;padding:max(14px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) 14px 16px}.home h1{grid-column:1 / -1;margin:0;font-size:24px}.home .card{padding:16px}.home .card.one,.home .card.xp{align-self:stretch}.home .fine{grid-column:1 / -1}.toast{bottom:12px}}@media(horizontal-viewport-segments:2){.home{max-width:none;grid-template-columns:1fr 1fr;padding-left:20px;padding-right:20px;column-gap:calc(env(viewport-segment-left 1 0,50vw) - env(viewport-segment-right 0 0,50vw) + 40px)}.home h1,.home .fine{grid-column:1 / -1}}.fuel{max-width:560px;margin:0 auto;padding:max(20px,env(safe-area-inset-top)) 20px 28px;display:grid;gap:14px;position:relative}.fuel h1{font-size:clamp(24px,6vw,32px);margin:4px 0 0}.fuel h1.q{font-size:22px}.fuel .sub{color:var(--soft);font-size:16px;margin:0}.fuel-top{display:flex;align-items:center;justify-content:space-between;gap:12px}.fuel-stats{display:flex;align-items:center;gap:12px}.flame{font-size:20px;font-weight:800;color:var(--gold)}.ring{--p: 0;width:54px;height:54px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(var(--gold) calc(var(--p) * 360deg),var(--edge) 0)}.ring span{width:42px;height:42px;border-radius:50%;background:var(--bg);display:grid;place-items:center;font-weight:800;font-size:15px}.hero{display:flex;align-items:flex-end;gap:12px}.hero img{width:96px;height:120px;object-fit:contain;flex:none;animation:hero-bob 3.2s ease-in-out infinite}.hero.small img{width:64px;height:80px}.bubble{position:relative;background:var(--panel);border:1px solid var(--edge);border-radius:18px 18px 18px 4px;padding:12px 14px;margin:0 0 18px;font-size:18px;line-height:1.4}@keyframes hero-bob{50%{transform:translateY(-4px)}}@media(prefers-reduced-motion:reduce){.hero img{animation:none}}.fuel-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.fuel-actions .btn{flex:1 1 200px;text-align:center}button.btn{border:0;cursor:pointer;font-family:inherit}.btn.ghost{background:transparent;color:var(--gold);border:2px solid var(--gold)}.btn:disabled{opacity:.45}.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px}.tile{display:flex;align-items:center;gap:10px;min-height:52px;padding:10px 12px;border-radius:16px;border:2px solid var(--edge);background:var(--panel);color:var(--ink);font:inherit;font-size:16px;font-weight:700;text-align:left;cursor:pointer}.tile span{font-size:24px}.tile.big{flex-direction:column;justify-content:center;text-align:center;min-height:92px;gap:4px}.tile.big span{font-size:38px}.foods{grid-template-columns:repeat(auto-fill,minmax(96px,1fr))}.tile.on{border-color:var(--gold);background:#2b2a4a}.field{display:grid;gap:6px;font-size:16px;font-weight:700;color:var(--soft)}.field input{min-height:48px;border-radius:14px;border:2px solid var(--edge);background:var(--deep);color:var(--ink);padding:0 14px;font:inherit;font-size:17px}.flow-nav{display:flex;justify-content:space-between;align-items:center;gap:12px}.flow-nav .link{min-height:44px}.link-card{color:var(--ink);text-decoration:none;font-weight:800;font-size:18px}.habits .sub{margin-bottom:12px}.done{display:grid;justify-items:center;gap:8px;text-align:center}.done .gain{font-size:30px;font-weight:800;color:var(--gold);margin:0}.phone-down{text-align:center;font-size:18px;font-weight:700;margin:0}.day h2{font-size:17px}.log-row{display:flex;gap:12px;padding:10px 0;border-top:1px dashed var(--edge)}.log-row:first-of-type{border-top:0}.log-row .icons{font-size:24px;min-width:56px}.log-row p{margin:0 0 4px;font-size:16px}.log-row small{color:var(--soft);font-weight:400}.log-row .feel,.log-row .note,.habits-line{color:var(--soft)}.habits-line{margin:6px 0 0;font-size:15px}.xp-pop{position:fixed;left:50%;top:40%;transform:translate(-50%);background:var(--gold);color:var(--btn-ink);font-weight:800;padding:10px 18px;border-radius:999px;font-size:20px;animation:pop-up 1.6s ease-out forwards;pointer-events:none}@keyframes pop-up{0%{opacity:0;transform:translate(-50%,10px)}15%{opacity:1;transform:translate(-50%)}80%{opacity:1}to{opacity:0}}.hold{position:relative;overflow:hidden;touch-action:none;user-select:none;-webkit-user-select:none}.hold .fill{position:absolute;top:0;right:0;bottom:0;left:0;background:#fff6;transform:scaleX(0);transform-origin:left}.hold.holding .fill{transform:scaleX(1);transition:transform 3s linear}.hold .lbl{position:relative}.fuel-card{display:flex;gap:14px;align-items:center;color:var(--ink);text-decoration:none}.fuel-card img{width:56px;height:70px;object-fit:contain}.fuel-card p{margin:0}@media(orientation:landscape)and (max-height:500px){.fuel{max-width:900px;padding:max(14px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) 14px 16px}.fuel .hero img{width:64px;height:80px}.home .fuel-card{grid-column:1 / -1}}.fuel .card,.log-row div{min-width:0;overflow-wrap:break-word}.log-row .note,.log-row .what,.log-row .feel{overflow-wrap:anywhere}.quiet{color:var(--soft);opacity:.7;font-size:13px;text-decoration:underline;display:inline-flex;align-items:center;min-height:44px;padding:0 10px}.taper-note{position:fixed;z-index:5;left:50%;transform:translate(-50%);width:min(520px,calc(100vw - 24px));box-sizing:border-box;bottom:calc(var(--bar-h) + 12px + env(safe-area-inset-bottom));padding:14px;box-shadow:0 10px 30px #0008;border-color:var(--gold)}.taper-note .link{min-height:44px;float:right}@media(orientation:landscape)and (max-height:500px){.taper-note{bottom:12px}}.taper-note .bubble{margin-bottom:8px;font-size:16px}.home .brand{display:grid;justify-items:center;gap:2px;text-align:center}.home .brand .title-art{width:min(240px,62vw);height:auto;display:block}.home .brand h1{margin:0;font-size:clamp(20px,5vw,26px)}@media(max-height:700px){.home .brand .title-art{width:min(160px,46vw)}}@media(orientation:landscape)and (max-height:500px){.home .brand{grid-column:1 / -1;grid-template-columns:auto 1fr;justify-items:start;align-items:center;gap:14px;text-align:left}.home .brand .title-art{width:120px}.home .brand h1{grid-column:auto}}@media(horizontal-viewport-segments:2){.home .brand{grid-column:1 / -1}}.tile.write{border-style:dashed;color:var(--gold)}.custom-form{display:grid;gap:12px;margin-top:14px;padding-top:14px;border-top:1px dashed var(--edge)}.pick{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.pick .sub{margin-right:4px}.chip{min-width:44px;min-height:44px;border-radius:999px;border:2px solid var(--edge);background:var(--deep);color:var(--ink);font:inherit;font-size:22px;cursor:pointer}.chip.word{font-size:15px;font-weight:700;padding:0 14px}.chip.on{border-color:var(--gold);background:#2b2a4a}@media(prefers-reduced-motion:reduce){.xp-pop{animation:none}.hold.holding .fill{transition-duration:3s}.meter span{transition:none}}.fuel{gap:12px}.fuel-top{margin-bottom:-4px}.hero{gap:10px;align-items:center}.hero img{width:72px;height:90px}.hero.small img{width:56px;height:70px}.bubble{margin:0;padding:10px 14px;font-size:17px;line-height:1.35}.main-actions{display:grid;grid-template-columns:1fr auto;gap:8px}.main-actions .btn{padding:12px 16px;font-size:17px;line-height:1.2;display:flex;align-items:center;justify-content:center}.habits{padding:16px}.habits h2{margin-bottom:4px}.habits .sub{font-size:15px;margin-bottom:10px}.tiles{gap:8px}.tile{min-height:48px;padding:8px 10px}.main-actions .btn{white-space:nowrap;font-size:clamp(15px,4.2vw,17px);padding:12px clamp(10px,3vw,16px)}.levelup{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:grid;place-items:center;padding:max(16px,env(safe-area-inset-top)) 16px max(16px,env(safe-area-inset-bottom));background:radial-gradient(ellipse at 50% 42%,#e8c46a29,#e8c46a00 60%),#101426f7;opacity:0;transition:opacity .35s ease;cursor:pointer}.levelup.in{opacity:1}.levelup.out{opacity:0}.lu-card{position:relative;text-align:center;max-width:420px;width:100%;max-height:100%;display:flex;flex-direction:column;align-items:center;gap:4px}.lu-stage{--lu-h: min(36vh, 290px);--lu-r: calc(var(--lu-h) * .3);--lu-p: .9s;position:relative;display:grid;place-items:center}.lu-glow{position:absolute;left:50%;top:50%;width:120%;aspect-ratio:1;transform:translate(-50%,-50%);border-radius:50%;pointer-events:none;background:radial-gradient(circle,#7fd4ef52,#ffe2962e 40%,#e8c46a00 68%);opacity:0}.levelup.in .lu-glow{animation:lu-glow-in .8s ease-out forwards,lu-pulse 2.4s ease-in-out .8s infinite}.lu-hero{position:relative;z-index:1;height:var(--lu-h);max-width:70vw;object-fit:contain;filter:drop-shadow(0 0 14px rgba(127,212,239,.45))}.levelup.in .lu-hero{animation:lu-rise 1.8s cubic-bezier(.3,.7,.3,1) forwards}.lu-stage{width:fit-content}.lu-ring{position:absolute;left:50%;bottom:0;width:calc(var(--lu-r) * 2.3);height:calc(var(--lu-h) * .14);border:2px solid rgba(232,196,106,.9);border-radius:50%;box-shadow:0 0 12px #e8c46a8c,inset 0 0 8px #e8c46a59;transform:translate(-50%,50%);opacity:0;pointer-events:none}.lu-ring-back{z-index:0;clip-path:inset(0 0 50% 0)}.lu-ring-front{z-index:2;clip-path:inset(50% 0 0 0)}.levelup.in .lu-ring{animation:lu-ring 1.8s cubic-bezier(.4,0,.5,1) forwards,lu-ring-out .5s ease-out 1.8s forwards}.lu-orbit{position:absolute;left:50%;bottom:0;width:0;height:0;z-index:2;opacity:0}.lu-ox{width:0}.lu-oy{width:22px;margin-left:-11px}.levelup.in .lu-orbit{animation:lu-climb 1.8s cubic-bezier(.45,0,.4,1) forwards,lu-depth var(--lu-p) linear infinite}.lu-ox{animation:lu-ox calc(var(--lu-p) / 2) cubic-bezier(.37,0,.63,1) infinite alternate}.lu-oy{animation:lu-oy calc(var(--lu-p) / 2) cubic-bezier(.37,0,.63,1) calc(var(--lu-p) / -4) infinite alternate}.lu-orb{display:block;width:22px;height:22px;margin:-11px 0 0;border-radius:50%;background:radial-gradient(circle at 35% 35%,#fff,var(--elvt-sky) 42%,#1a6f9a);box-shadow:0 0 16px var(--elvt-sky),0 0 32px #7fd4ef99}.lu-burst{position:absolute;left:50%;top:30%;width:40px;height:40px;margin:-20px 0 0 -20px;z-index:3;border-radius:50%;pointer-events:none;opacity:0;background:radial-gradient(circle,#fff 0,#7fd4efe6,#e8c46a80 50%,#e8c46a00 70%)}.levelup.in .lu-burst{animation:lu-burst .6s ease-out 1.75s forwards}.levelup .lu-text{opacity:0;transform:translateY(8px)}.levelup.in .lu-text{animation:lu-text .35s ease-out 1.9s forwards}@keyframes lu-glow-in{to{opacity:1}}@keyframes lu-rise{0%{transform:translateY(14px) scale(.94)}to{transform:translateY(-10px)}}@keyframes lu-ring{0%{opacity:0;bottom:0}12%{opacity:1}to{opacity:1;bottom:66%}}@keyframes lu-ring-out{to{opacity:0;transform:translate(-50%,50%) scale(1.5)}}@keyframes lu-climb{0%{opacity:0;transform:translateY(0)}10%{opacity:1}92%{opacity:1}to{opacity:0;transform:translateY(calc(var(--lu-h) * -.66))}}@keyframes lu-ox{0%{transform:translate(var(--lu-r))}to{transform:translate(calc(var(--lu-r) * -1))}}@keyframes lu-depth{0%,49.9%{z-index:3}50%,to{z-index:0}}@keyframes lu-oy{0%{transform:translateY(calc(var(--lu-h) * -.06)) scale(.72);opacity:.7}to{transform:translateY(calc(var(--lu-h) * .06)) scale(1.12);opacity:1}}@keyframes lu-burst{0%{opacity:0;transform:scale(.3)}30%{opacity:1}to{opacity:0;transform:scale(7)}}@keyframes lu-text{to{opacity:1;transform:none}}.lu-kicker{margin:6px 0 0;color:var(--soft);font-weight:800;letter-spacing:.14em;text-transform:uppercase;font-size:13px}.lu-level{margin:0;font-size:clamp(34px,9vh,52px);font-weight:900;color:var(--gold);line-height:1.05}.lu-line{margin:4px 0 0;font-size:19px;line-height:1.35;color:var(--ink);max-width:30ch}.lu-text{display:flex;flex-direction:column;align-items:center}.lu-tap{margin:10px 0 0;font-size:13px;color:var(--soft)}@keyframes lu-pulse{0%,to{opacity:.75;transform:translate(-50%,-50%) scale(.96)}50%{opacity:1;transform:translate(-50%,-50%) scale(1.04)}}@media(orientation:landscape)and (max-height:520px){.lu-card{flex-direction:row;flex-wrap:nowrap;align-items:center;justify-content:center;max-width:720px;text-align:left;gap:0 20px}.lu-stage{--lu-h: min(62vh, 240px)}.lu-text{display:flex;flex-direction:column;align-items:flex-start;max-width:340px}}@media(prefers-reduced-motion:reduce){.lu-ring,.lu-orbit,.lu-burst{display:none}.levelup.in .lu-glow,.levelup.in .lu-hero,.levelup.in .lu-text{animation:none;opacity:1;transform:none}.levelup .lu-text{opacity:1;transform:none}}.home .brand,.home{position:relative}.home .brand{position:static}.speaker{order:-1;justify-self:end;align-self:start;margin:-8px -4px 0 0;z-index:2;width:48px;height:48px;padding:0;display:grid;place-items:center;border-radius:50%;border:2px solid var(--gold);background:#e8c46a1f;color:var(--gold);cursor:pointer;box-shadow:0 0 14px #e8c46a59;transition:opacity .3s ease,box-shadow .3s ease;-webkit-tap-highlight-color:transparent}.speaker svg{display:block}.speaker .sp-waves,.speaker .sp-x{transition:opacity .3s ease}.speaker .sp-x{opacity:0}.speaker[aria-pressed=false]{opacity:.4;box-shadow:none}.speaker[aria-pressed=false] .sp-waves{opacity:0}.speaker[aria-pressed=false] .sp-x{opacity:1}.speaker:focus-visible{outline:2px solid var(--ink);outline-offset:3px}.speaker.bounce{animation:sp-bounce .36s ease-out}@keyframes sp-bounce{0%{transform:scale(1)}40%{transform:scale(1.12)}70%{transform:scale(.96)}to{transform:scale(1)}}@media(prefers-reduced-motion:reduce){.speaker.bounce{animation:none}.speaker,.speaker .sp-waves,.speaker .sp-x{transition:none}}@media(min-width:600px),(orientation:landscape)and (max-height:500px){.speaker{position:absolute;top:max(12px,env(safe-area-inset-top));right:8px;margin:0}}.sound-card h2{margin:0 0 8px}.sound-card .sound-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:8px 0}.sound-card input[type=range]{flex:1;min-width:140px;accent-color:var(--gold);min-height:44px}.bar a .ico svg{display:block;width:24px;height:24px}.satchel-top{align-items:flex-start}.satchel-top .sub{font-size:15px;margin-top:2px}.bag-hero{position:relative;display:grid;justify-items:center;gap:2px;margin-top:-4px}.bag{width:min(46vw,190px);height:auto;overflow:visible;transform:scale(var(--bulge, 1));transform-origin:50% 100%;filter:drop-shadow(0 6px 14px rgba(0,0,0,.35)) drop-shadow(0 0 18px rgba(232,196,106,.18));animation:bag-open .7s cubic-bezier(.3,.7,.3,1) both}.bag .flap{transform-box:fill-box;transform-origin:50% 0;animation:bag-flap .9s ease-out .1s both}.bag-fill{animation:bag-glow .9s ease-out .3s both}.strap{display:flex;flex-wrap:wrap;justify-content:center;gap:4px;min-height:22px;max-width:280px;padding:2px 10px;border-top:3px solid #8a5a32;border-radius:0 0 12px 12px}.strap .charm{display:inline-grid;filter:drop-shadow(0 0 4px rgba(243,212,138,.5))}.strap-empty,.stones-empty{color:var(--soft);font-size:13px}.sat-new{margin:-4px 0 0;text-align:center;color:var(--gold);font-weight:800;font-size:16px;animation:lu-text .35s ease-out .5s both}.pouch{padding:14px 16px;display:grid;gap:10px}.pouch-top{display:flex;align-items:center;justify-content:space-between;gap:10px}.pouch h2,.keeps h2{margin:0;font-size:20px}.pouch .ring{width:46px;height:46px}.stones{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:0 0 10px;min-height:18px}.stone{width:16px;height:13px;border-radius:50% 50% 46% 46%/60% 60% 40% 40%;background:radial-gradient(circle at 35% 30%,#fff8,var(--c) 45%,var(--c));background:radial-gradient(circle at 35% 30%,#fff8,var(--c) 45%,color-mix(in srgb,var(--c) 60%,#000));box-shadow:0 0 6px var(--c);box-shadow:0 0 6px color-mix(in srgb,var(--c) 50%,transparent)}.stones .more{color:var(--soft);font-size:13px}.keeps{padding:14px 16px}.keepsakes{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-top:8px}.keepsake{display:grid;justify-items:center;gap:4px;text-align:center;font-size:12px;line-height:1.2;color:var(--soft);opacity:.55}.keepsake.on{color:var(--ink);opacity:1}.keepsake.on svg{filter:drop-shadow(0 0 8px rgba(243,212,138,.55))}.drop{animation:sat-drop .8s cubic-bezier(.3,.7,.3,1) calc(.5s + var(--i, 0) * .15s) both}@keyframes bag-open{0%{opacity:0;transform:translateY(16px) scale(calc(var(--bulge, 1) * .92))}to{opacity:1;transform:scale(var(--bulge, 1))}}@keyframes bag-flap{0%{transform:rotateX(0)}40%{transform:translateY(-6px) rotate(-3deg)}to{transform:none}}@keyframes bag-glow{0%{opacity:0}to{opacity:.55}}@keyframes sat-drop{0%{opacity:0;transform:translateY(-34px) scale(1.25);filter:drop-shadow(0 0 14px rgba(243,212,138,.95))}60%{opacity:1;transform:translateY(3px) scale(1)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){.bag,.bag .flap,.bag-fill,.drop,.sat-new{animation:none}.drop{animation:sat-fade .4s ease-out both}}@keyframes sat-fade{0%{opacity:0}to{opacity:1}}.bag{animation:bag-open2 .9s cubic-bezier(.2,.8,.25,1) both}@keyframes bag-open2{0%{opacity:0;transform:translateY(22px) scale(calc(var(--bulge,1)*.86),calc(var(--bulge,1)*.8))}45%{opacity:1;transform:translateY(-6px) scale(calc(var(--bulge,1)*.96),calc(var(--bulge,1)*1.07))}70%{transform:translateY(2px) scale(calc(var(--bulge,1)*1.05),calc(var(--bulge,1)*.95))}to{transform:scale(var(--bulge,1))}}.bag .flap{animation:bag-flap2 1.1s cubic-bezier(.3,.7,.3,1) .15s both}@keyframes bag-flap2{0%{transform:none}35%{transform:translateY(-10px) rotate(-7deg)}60%{transform:translateY(-3px) rotate(2deg)}80%{transform:rotate(-1deg)}to{transform:none}}.bag-fill{transform-box:fill-box;transform-origin:50% 100%;animation:bag-rise 1.3s cubic-bezier(.3,.7,.3,1) .35s both,bag-shimmer 3.2s ease-in-out 1.7s infinite}@keyframes bag-rise{0%{opacity:0;transform:scaleY(0)}to{opacity:.55;transform:scaleY(1)}}@keyframes bag-shimmer{0%,to{opacity:.55}50%{opacity:.75}}.drop{position:relative;animation:sat-drop2 1s cubic-bezier(.3,.7,.3,1) calc(.6s + var(--i,0) * .18s) both}.drop:after{content:"";position:absolute;top:-6px;right:-6px;bottom:-6px;left:-6px;border-radius:50%;border:2px solid rgba(243,212,138,.9);opacity:0;pointer-events:none;animation:sat-ring .7s ease-out calc(1.25s + var(--i,0) * .18s) both}@keyframes sat-drop2{0%{opacity:0;transform:translate(-18px,-46px) rotate(-25deg) scale(1.35);filter:drop-shadow(0 0 16px rgba(243,212,138,1))}55%{opacity:1;transform:translateY(4px) rotate(6deg) scale(.92)}75%{transform:translateY(-5px) rotate(-2deg) scale(1.05)}to{transform:none;filter:none}}@keyframes sat-ring{0%{opacity:.95;transform:scale(.5)}to{opacity:0;transform:scale(1.8)}}.charm.drop{transform-origin:50% 0;animation:sat-clip 1.2s cubic-bezier(.3,.7,.3,1) calc(.9s + var(--i,0) * .2s) both}@keyframes sat-clip{0%{opacity:0;transform:translateY(-24px) scale(1.3)}35%{opacity:1;transform:translateY(0) rotate(22deg)}55%{transform:rotate(-14deg)}72%{transform:rotate(7deg)}86%{transform:rotate(-3deg)}to{transform:none}}.keepsake.on.drop{animation:sat-unlock 1.3s cubic-bezier(.3,.7,.3,1) .6s both}@keyframes sat-unlock{0%{opacity:.35;transform:scale(.85);filter:grayscale(1)}40%{opacity:1;transform:scale(1.18);filter:drop-shadow(0 0 18px rgba(243,212,138,1))}70%{transform:scale(.97)}to{transform:none;filter:none}}@media(prefers-reduced-motion:reduce){.bag,.bag .flap,.bag-fill,.charm.drop,.keepsake.on.drop,.drop:after{animation:none}.bag-fill{opacity:.55}.drop,.charm.drop,.keepsake.on.drop{animation:sat-fade .4s ease-out both}}.sat-row{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:12px;margin:2px 0 10px}.sat-row .bag{width:min(30vw,130px)}.sat-row .keeps{background:var(--panel, rgba(255,255,255,.04));border:1px solid var(--line, rgba(255,255,255,.08));border-radius:16px;padding:10px 10px 8px}.sat-row .keeps h2{margin:0;font-size:15px}.sat-row .keepsakes{grid-template-columns:repeat(2,1fr);gap:6px 4px;margin-top:6px}.satchel-top .sub{margin-bottom:0}.keepsake.drop:after{inset:auto;left:50%;top:-4px;width:52px;height:52px;margin-left:-26px}.bag{position:relative;display:block;aspect-ratio:298 / 382;width:min(26vw,112px)}.sat-row .bag{width:min(26vw,112px)}.bag-body,.bag .flap{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.bag .flap{clip-path:inset(0 0 46% 0);filter:brightness(1.04)}.bag-glowbox{position:absolute;top:0;right:0;bottom:0;left:0;-webkit-mask:var(--art) center / 100% 100% no-repeat;mask:var(--art) center / 100% 100% no-repeat;display:flex;align-items:flex-end;mix-blend-mode:screen;pointer-events:none}.bag-fill{display:block;width:100%;background:linear-gradient(to top,#ffd678bf,#ffe9a859 70%,#ffe9a800)}.bag-fill{background:linear-gradient(to top,#ffcd6e80,#ffe29633 70%,#ffe9a800)}@keyframes bag-rise{0%{opacity:0;transform:scaleY(0)}to{opacity:1;transform:scaleY(1)}}@keyframes bag-shimmer{0%,to{opacity:1}50%{opacity:.7}}@media(prefers-reduced-motion:reduce){.bag-fill{opacity:1}}.bag-glowbox{mix-blend-mode:soft-light}.bag-fill{background:linear-gradient(to top,#ffd66ef2,#ffd66e8c 55%,#ffd66e00)}.bag-hero .strap{border-top:0;background:linear-gradient(#6d3f22,#5a321b);border-radius:6px;box-shadow:inset 0 0 0 1px #00000040,inset 0 2px #ffffff14;background-image:linear-gradient(#6d3f22,#5a321b),repeating-linear-gradient(90deg,rgba(232,196,106,.55) 0 4px,transparent 4px 8px);background-size:100% 100%,100% 1px;background-position:0 0,0 3px;background-repeat:no-repeat;padding:4px 8px}.bag-hero .strap-empty{color:#e6cfa8;font-size:12px}.bag .flap{filter:none}.bag-glowbox{z-index:2}.pouch-top{min-width:0}.pouch-top h2{min-width:0;flex:1 1 auto;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pouch .fuel-stats{flex:0 0 auto;gap:8px}@media(max-width:400px){.pouch-top h2{font-size:17px}.pouch .ring{width:42px;height:42px}.pouch .ring span{width:32px;height:32px;font-size:13px}}.sat-row{grid-template-columns:auto minmax(0,1fr)}.sat-row .keepsake{min-width:0;overflow-wrap:anywhere}.pouch{min-width:0}.pouch{grid-template-columns:minmax(0,1fr)}.pouch>*{min-width:0}.pouch .fuel-actions{flex-wrap:wrap}.pouch .fuel-actions .btn{min-width:0}@media(max-width:400px){.pouch .fuel-actions .btn{padding-left:14px;padding-right:14px;font-size:15px}}.bag{aspect-ratio:579 / 764}.bag .flap{clip-path:none;z-index:3;filter:drop-shadow(0 2px 1.5px rgba(40,18,6,.45))}.bag-glowbox{z-index:2;mix-blend-mode:soft-light}.bag-fill{background:linear-gradient(to top,#ffce6e57,#ffd68233 55%,#ffdc8c00)}.bag:before{content:"";position:absolute;left:6%;right:10%;bottom:-5%;height:11%;border-radius:50%;z-index:-1;background:radial-gradient(closest-side,rgba(0,0,0,.55),rgba(0,0,0,.25) 60%,transparent);filter:blur(2px)}.bag-hero{gap:6px}.bag-hero .strap{position:relative;background:linear-gradient(#7a4626,#5e341c 60%,#4d2a16);border:1px solid rgba(30,14,6,.6);box-shadow:inset 0 1px #ffdcaa2e,inset 0 0 0 3px transparent,0 2px 4px #00000059;outline:1px dashed rgba(232,196,130,.45);outline-offset:-4px}.bag-hero .strap:before,.bag-hero .strap:after{content:"";position:absolute;top:50%;width:6px;height:6px;margin-top:-3px;border-radius:50%;background:radial-gradient(circle at 35% 35%,#fff1c4,#d6a64a 55%,#8a6220)}.bag-hero .strap:before{left:4px}.bag-hero .strap:after{right:4px}.bag-hero .strap{padding:3px 16px}.daily-orb-pop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:grid;place-items:center;padding:16px;background:radial-gradient(ellipse at 50% 40%,#e8c46a24,#e8c46a00 60%);background-color:var(--bg);opacity:0;transition:opacity .35s ease;cursor:pointer}.daily-orb-pop.in{opacity:1}.daily-orb-pop.out{opacity:0}.do-card{text-align:center;display:flex;flex-direction:column;align-items:center;gap:6px;max-width:420px}.do-stage{--do-h: min(40vh, 300px);position:relative;height:var(--do-h);width:calc(var(--do-h) * .447);margin-top:70px}.do-glow{position:absolute;left:50%;top:40%;width:220%;aspect-ratio:1;transform:translate(-50%,-50%);border-radius:50%;opacity:0;background:radial-gradient(circle,rgba(232,196,106,.32),transparent 62%)}.do-staff,.do-light{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.do-staff{object-fit:contain;opacity:0;transform:translateY(30px);filter:drop-shadow(0 0 10px rgba(232,196,106,.25))}.do-light{opacity:0;overflow:hidden;-webkit-mask:url(/story/game/sprites/item-staff.webp) center / contain no-repeat;mask:url(/story/game/sprites/item-staff.webp) center / contain no-repeat}.do-light:before{content:"";position:absolute;left:0;right:0;height:30%;top:100%;background:linear-gradient(0deg,transparent,rgba(255,226,150,.95) 50%,transparent)}.do-words{position:absolute;left:50%;top:2%;margin:0;white-space:nowrap;font-size:16px;font-weight:800;letter-spacing:.06em;color:var(--gold);text-shadow:0 0 14px rgba(243,212,138,.7);opacity:0;transform:translate(-50%)}.do-text{opacity:0;transform:translateY(8px)}.do-line{margin:10px 0 0;font-size:20px;line-height:1.35;font-weight:700;color:var(--ink);max-width:26ch}.do-xp{margin:6px 0 0;font-size:22px;font-weight:900;color:var(--gold)}.daily-orb-pop.in .do-staff{animation:do-rise .7s cubic-bezier(.3,.7,.3,1) forwards}.daily-orb-pop.in .do-glow{animation:lu-glow-in .7s ease-out .4s forwards}.daily-orb-pop.in .do-light{animation:do-run .8s ease-in-out .5s forwards}.daily-orb-pop.in .do-light:before{animation:do-band .8s ease-in-out .5s forwards}.daily-orb-pop.in .do-words{animation:do-words 1.9s ease-out 1.1s forwards}.daily-orb-pop.in .do-text{animation:lu-text .35s ease-out 1.7s forwards}@keyframes do-rise{to{opacity:1;transform:none}}@keyframes do-run{0%,85%{opacity:1}to{opacity:0}}@keyframes do-band{to{top:-30%}}@keyframes do-words{0%{opacity:0;transform:translate(-50%,10px)}25%{opacity:1;transform:translate(-50%,-14px)}60%{opacity:1;transform:translate(-50%,-34px)}to{opacity:0;transform:translate(-50%,-60px)}}@media(prefers-reduced-motion:reduce){.daily-orb-pop.in .do-staff,.daily-orb-pop.in .do-glow,.daily-orb-pop.in .do-text{animation:none;opacity:1;transform:none}.daily-orb-pop.in .do-light,.daily-orb-pop.in .do-light:before{animation:none}.daily-orb-pop.in .do-words{animation:none;opacity:1;transform:translate(-50%,-34px)}}@media(min-width:900px)and (orientation:landscape){.fuel:has(.sat-row){max-width:1080px;grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-auto-flow:row dense;column-gap:18px;align-content:start}.fuel:has(.sat-row)>.satchel-top{grid-column:1;grid-row:1}.fuel:has(.sat-row)>.sat-row{grid-column:1;grid-row:2}.fuel:has(.sat-row)>.pouch{grid-column:1;grid-row:3 / span 3;align-self:start}.fuel:has(.sat-row)>.habits{grid-column:2;grid-row:1 / span 2;align-self:start}.fuel:has(.sat-row)>.link-card{grid-column:2;grid-row:3;align-self:start}.fuel:has(.sat-row)>.fine{grid-column:2}.fuel:has(.sat-row)>.fine+.fine{margin-top:-8px}}@media(min-width:900px)and (orientation:landscape)and (max-height:680px){.fuel:has(.sat-row){gap:8px;padding-top:max(10px,env(safe-area-inset-top));padding-bottom:8px}.fuel:has(.sat-row) .habits .tile{padding-top:6px;padding-bottom:6px}}.home .speaker{position:absolute;top:max(12px,env(safe-area-inset-top));right:16px;margin:0}@media(orientation:portrait)and (max-width:600px),(orientation:portrait)and (max-height:900px){.home{padding-top:max(14px,env(safe-area-inset-top));padding-bottom:14px;gap:12px}.home .brand .title-art{width:min(170px,46vw)}.home .card{padding:14px 16px;border-radius:18px}.home .card h2{margin-bottom:4px;font-size:17px}.home .card p{font-size:17px;line-height:1.35;margin-bottom:10px}.home .card .btn{min-height:44px;padding-top:10px;padding-bottom:10px}.home .xp .lvl{font-size:24px}.home .meter{margin:8px 0 6px}.home .xp p{font-size:15px;margin:0}.home .fuel-card img{width:40px;height:50px}.home .fuel-card p{margin:0}}@media(orientation:portrait)and (max-height:700px){.home{gap:10px}.home .brand .title-art{width:min(130px,40vw)}.home .brand h1{font-size:20px}.home .card p{font-size:16px}.home .xp p.tip{display:inline;margin:0 0 0 4px}.home .fine{font-size:13px}}@media(orientation:landscape)and (min-width:900px)and (min-height:501px){.home{max-width:920px;grid-template-columns:1fr 1fr;align-items:stretch;gap:14px;padding:clamp(14px,3vh,28px) 24px 16px}.home .brand{grid-column:1 / -1;grid-template-columns:auto auto;justify-content:center;align-items:center;gap:18px}.home .brand .title-art{width:clamp(140px,22vh,200px)}.home .brand h1{font-size:26px}.home .card{padding:16px 18px}.home .card p{margin-bottom:12px}.home .fuel-card,.home .card.hint,.home .fine{grid-column:1 / -1}.home .fuel-card{padding-top:10px;padding-bottom:10px}.home .fuel-card img{width:44px;height:55px}}.home .card.hint{display:grid;grid-template-columns:1fr auto;align-items:center;column-gap:12px;padding:10px 14px}.home .card.hint h2{grid-column:1;margin:0;font-size:15px}.home .card.hint p{grid-column:1;margin:2px 0 0;font-size:14px;line-height:1.35}.home .card.hint .link{grid-column:2;grid-row:1 / span 2;min-height:44px;min-width:64px}@media(orientation:portrait)and (max-height:700px){.home{padding-top:max(10px,env(safe-area-inset-top));padding-bottom:10px;gap:8px}.home .brand .title-art{width:min(116px,36vw)}.home .brand h1{font-size:19px}.home .card{padding:12px 14px}.home .card h2{font-size:16px}.home .card p{font-size:15.5px;margin-bottom:8px}.home .xp .lvl{font-size:21px}.home .xp .pts{font-size:16px}.home .meter{height:12px;margin:6px 0 4px}.home .xp p{font-size:14px}.home .fuel-card{padding-top:8px;padding-bottom:8px}.home .fuel-card img{width:32px;height:40px}}@media(orientation:portrait)and (max-height:700px){.home{gap:7px}.home .brand{grid-template-columns:auto auto;justify-content:center;align-items:center;gap:10px;padding-right:44px}.home .brand .title-art{width:min(104px,30vw)}.home .card{padding:10px 14px;border-radius:16px}.home .card p{font-size:15px;line-height:1.3;margin-bottom:8px}.home .card .btn{min-height:44px;padding-top:8px;padding-bottom:8px;font-size:16px}.home .xp p{font-size:13.5px;line-height:1.3}.home .fuel-card h2{margin-bottom:0}.home .fuel-card p{font-size:14.5px}.home .card.hint{padding:8px 12px}.home .card.hint p{font-size:13px;line-height:1.3}.home .fine{font-size:12px}}@media(orientation:portrait)and (max-height:700px){.home .brand{padding-right:56px}.home .xp p.tip{display:block;margin:4px 0 0}}@media(orientation:landscape)and (min-width:900px)and (min-height:501px){.home{min-height:100%;box-sizing:border-box;align-content:center}}.info-page{display:flex;flex-direction:column;gap:14px;max-width:640px;margin:0 auto}.info-page .card p{margin:0 0 10px;line-height:1.45}.info-page .card p:last-child{margin-bottom:0}.grown-privacy summary{cursor:pointer;min-height:44px;display:flex;align-items:center;list-style:none}.grown-privacy summary::-webkit-details-marker{display:none}.grown-privacy summary h2{margin:0}.grown-privacy summary:after{content:"+";margin-left:auto;color:var(--gold);font-size:22px;font-weight:700}.grown-privacy[open] summary:after{content:"−"}.grown-privacy ul{margin:8px 0 12px;padding-left:20px;line-height:1.45}.grown-privacy li{margin-bottom:6px}.grown-privacy a{color:var(--gold)}.not-found{align-items:center;justify-content:center;text-align:center;min-height:60vh}.info-page a[href^="mailto:"]{display:inline-flex;align-items:center;min-height:44px}.book-pop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:grid;place-items:center;padding:16px;overflow:hidden;background:radial-gradient(ellipse at 50% 38%,#e8c46a29,#e8c46a00 60%);background-color:var(--bg);opacity:0;transition:opacity .35s ease;cursor:pointer}.book-pop.in{opacity:1}.book-pop.out{opacity:0}.bk-card{text-align:center;display:flex;flex-direction:column;align-items:center;gap:4px;max-width:420px}.bk-stage{position:relative;width:min(56vw,34vh,240px);aspect-ratio:1.2;display:grid;place-items:center}.bk-glow{position:absolute;left:50%;top:50%;width:180%;aspect-ratio:1;transform:translate(-50%,-50%);border-radius:50%;opacity:0;background:radial-gradient(circle,rgba(232,196,106,.34),transparent 62%)}.bk-stone{position:relative;width:100%;opacity:0;transform:translateY(36px) scale(.9);filter:drop-shadow(0 10px 18px rgba(0,0,0,.45))}.bk-stone svg{display:block;width:100%;height:auto}.bk-shine{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;pointer-events:none;background:linear-gradient(105deg,transparent 35%,rgba(255,236,180,.85) 50%,transparent 65%) no-repeat;background-size:250% 100%;background-position:120% 0;-webkit-mask:radial-gradient(ellipse 46% 40% at 50% 52%,#000 98%,transparent);mask:radial-gradient(ellipse 46% 40% at 50% 52%,#000 98%,transparent)}.bk-text{opacity:0;transform:translateY(8px)}.bk-kicker{margin:6px 0 0;font-size:13px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--gold)}.bk-line{margin:6px 0 0;font-size:20px;line-height:1.35;font-weight:700;color:var(--ink);max-width:24ch}.bk-xp{margin:6px 0 0;font-size:18px;font-weight:800;color:var(--gold);max-width:26ch}.book-pop.in .bk-stone{animation:bk-rise .8s cubic-bezier(.3,.7,.3,1) forwards}.book-pop.in .bk-glow{animation:lu-glow-in .7s ease-out .5s forwards}.book-pop.in .bk-shine{animation:bk-shine 1.1s ease-in-out .8s forwards}.book-pop.in .bk-text{animation:lu-text .35s ease-out 1.5s forwards}@keyframes bk-rise{to{opacity:1;transform:none}}@keyframes bk-shine{0%{opacity:1;background-position:120% 0}85%{opacity:1}to{opacity:0;background-position:-20% 0}}@media(prefers-reduced-motion:reduce){.book-pop.in .bk-stone,.book-pop.in .bk-glow,.book-pop.in .bk-text{animation:none;opacity:1;transform:none}.book-pop.in .bk-shine{animation:none}}
