:root{--bg:#0b1f24;--bg-deep:#061418;--ink:#e6f2ef;--soft:#a8c5c0;--faint:#6f8f8b;--accent:#7fe3d4;--accent-deep:#2f9c93;--gold:#e8d49a;--glass:#0a22289e;--glass-strong:#081a1fdb;--line:#a0e6dc2e;--radius:18px;--nav-h:64px;--safe-b:env(safe-area-inset-bottom,0px);--safe-t:env(safe-area-inset-top,0px);--font-body:var(--font-gothic), "Hiragino Maru Gothic ProN", "Yu Gothic", sans-serif;--font-title:var(--font-mincho), "Hiragino Mincho ProN", "Yu Mincho", serif;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{background:var(--bg-deep);height:100%;color:var(--ink);font-family:var(--font-body);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;overscroll-behavior:none;margin:0}button{font:inherit;color:inherit;cursor:pointer}h1,h2,h3{font-family:var(--font-title);letter-spacing:.04em;margin:0;font-weight:500}p{margin:0;line-height:1.7}.sr-only{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}.soft{color:var(--soft);font-size:.86rem}.fine{color:var(--faint);font-size:.76rem}.eyebrow{color:var(--accent);letter-spacing:.18em;font-size:.72rem}.effect{color:var(--gold);font-size:.9rem}.error-text{color:#ffb4a8;font-size:.85rem}.pad{padding:16px}.row{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.app{background:radial-gradient(120% 80% at 50% 30%, #123a40 0%, var(--bg) 55%, var(--bg-deep) 100%);max-width:480px;height:100dvh;margin:0 auto;position:relative;overflow:hidden}.screen{position:absolute;inset:0}.scroll{padding:calc(76px + var(--safe-t)) 16px calc(var(--nav-h) + 24px + var(--safe-b));overflow-y:auto}.center-screen{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:16px;padding:24px;display:flex}.glass{background:var(--glass);border:1px solid var(--line);-webkit-backdrop-filter:blur(14px)saturate(1.2)}.scenery{position:absolute;inset:0;overflow:hidden}.scenery-img{object-fit:cover;-webkit-user-select:none;user-select:none;width:100%;height:100%;animation:24s ease-in-out infinite alternate breathe;position:absolute;inset:0}@keyframes breathe{0%{transform:scale(1)}to{transform:scale(1.035)}}.btn{border:1px solid var(--line);min-height:44px;color:var(--ink);letter-spacing:.04em;background:#143c42b3;border-radius:999px;padding:10px 18px;font-size:.92rem;transition:background .2s,transform .15s,opacity .2s}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.45;cursor:default}.btn-primary{background:linear-gradient(135deg,#3cb7a9,#2a7f95);border-color:#befff559;font-weight:500;box-shadow:0 6px 24px #3cc8be47}.btn-small{min-height:40px;padding:8px 14px;font-size:.8rem}.icon-btn{background:#ffffff0f;border:1px solid #0000;border-radius:50%;flex:none;place-items:center;width:44px;height:44px;font-size:1.3rem;line-height:1;display:grid}.icon-btn.active{border-color:var(--accent);color:var(--accent)}.icon-spacer{flex:none;width:44px}.chip{color:var(--accent);background:#7fe3d424;border:1px solid #7fe3d440;border-radius:999px;padding:2px 9px;font-size:.7rem;display:inline-block}.chip-btn{border:1px solid var(--line);background:#ffffff0d;border-radius:999px;min-height:40px;padding:6px 14px;font-size:.82rem}.chip-btn.active{border-color:var(--accent);background:#7fe3d42e}.chip-btn:disabled{opacity:.4}.topbar{top:calc(10px + var(--safe-t));z-index:20;border-radius:999px;align-items:center;gap:8px;padding:6px;display:flex;position:absolute;left:10px;right:10px}.topbar-title{text-align:center;flex:1;min-width:0}.topbar-title h1{white-space:nowrap;text-overflow:ellipsis;font-size:1.02rem;overflow:hidden}.topbar-title p{color:var(--soft);font-size:.7rem;line-height:1.3}.navbar{left:10px;right:10px;bottom:calc(10px + var(--safe-b));z-index:30;height:var(--nav-h);border-radius:22px;padding:4px;display:flex;position:absolute}.nav-btn{color:var(--soft);background:0 0;border:0;border-radius:18px;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;font-size:.7rem;transition:background .2s,color .2s;display:flex}.nav-icon{font-size:1.15rem;line-height:1}.nav-btn.active{color:var(--ink);background:#7fe3d424}.nav-btn.active .nav-icon{color:var(--accent);text-shadow:0 0 12px #7fe3d4b3}.sheet-backdrop{z-index:60;background:#020a0c73;justify-content:center;align-items:flex-end;animation:.25s fade-in;display:flex;position:fixed;inset:0}.sheet{background:var(--glass-strong);width:100%;max-width:480px;max-height:72dvh;padding-bottom:var(--safe-b);border-radius:24px 24px 0 0;flex-direction:column;animation:.32s cubic-bezier(.2,.8,.2,1) rise;display:flex}.sheet-tall{max-height:86dvh}.sheet-head{justify-content:space-between;align-items:center;gap:8px;padding:14px 14px 6px 20px;display:flex}.sheet-head h2{font-size:1.05rem}.sheet-body{flex-direction:column;gap:14px;padding:6px 18px 22px;display:flex;overflow-y:auto}@keyframes rise{0%{opacity:0;transform:translateY(40px)}}@keyframes fade-in{0%{opacity:0}}.toast{left:50%;bottom:calc(var(--nav-h) + 26px + var(--safe-b));z-index:90;background:var(--glass-strong);border:1px solid var(--line);border-radius:999px;width:max-content;max-width:calc(100% - 40px);padding:10px 18px;font-size:.85rem;animation:.2s fade-in;position:absolute;transform:translate(-50%)}.loading-orb{background:radial-gradient(circle,#bff7ee 0%,#4cc9bb 40%,#0000 70%);border-radius:50%;width:46px;height:46px;animation:2.4s ease-in-out infinite pulse}@keyframes pulse{50%{opacity:.6;transform:scale(1.25)}}.bead{background:radial-gradient(circle at 32% 28%, #ffffffd9 0 12%, transparent 30%), radial-gradient(circle at 50% 55%, var(--bead) 0 60%, color-mix(in srgb, var(--bead) 60%, black) 100%);box-shadow:0 0 6px color-mix(in srgb, var(--bead) 50%, transparent);border-radius:50%;flex:none;display:inline-block}.bead-dim{opacity:.3}.bead-counts{flex-wrap:wrap;justify-content:center;gap:6px 12px;margin:0;padding:0;list-style:none;display:flex}.bead-counts li{color:var(--soft);align-items:center;gap:4px;font-size:.8rem;display:flex}.title-screen .title-bg{animation:30s ease-in-out infinite alternate breathe}.title-veil{background:linear-gradient(#04101333 0%,#0410131a 40%,#041013d9 100%);position:absolute;inset:0}.title-body{padding:24px 24px calc(40px + var(--safe-b));text-align:center;flex-direction:column;gap:18px;display:flex;position:absolute;inset:auto 0 0}.title-logo{letter-spacing:.3em;text-shadow:0 0 24px #7fe3d499;margin-bottom:4px;font-size:2.4rem}.title-reading{color:var(--soft);letter-spacing:.5em;margin-top:2px;font-size:.72rem}.title-copy{color:var(--soft);font-size:.92rem}.title-actions{flex-direction:column;gap:10px;display:flex}.light-glow{pointer-events:none;mix-blend-mode:screen;background:radial-gradient(60% 40% at 50% 60%,#a0ffebe6,#0000 70%);transition:opacity 1.5s;position:absolute;inset:0}.texture{object-fit:cover;pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.caustics{opacity:.35;mix-blend-mode:screen;animation:26s ease-in-out infinite alternate drift}@keyframes drift{0%{transform:translate(-2%)scale(1.08)}to{transform:translate(2%,-2%)scale(1.14)}}.memory-overlay{object-fit:cover;pointer-events:none;opacity:.85;width:100%;height:100%;animation:2s fade-in,40s ease-in-out infinite alternate drift;position:absolute;inset:0}.spring-slot{aspect-ratio:1;color:#dcfffa8c;z-index:2;background:radial-gradient(circle,#7fe3d41f,#0000 70%);border:1px dashed #befff547;border-radius:50%;place-items:center;width:22%;font-size:1.2rem;display:grid;position:absolute;transform:translate(-50%,-50%)}.spring-slot.filled{background:radial-gradient(circle,#aafff047,#0000 65%);border:0}.spring-slot img{object-fit:contain;filter:drop-shadow(0 0 10px #a0fff073);width:130%;height:130%;animation:6s ease-in-out infinite float}.spring-slot:nth-child(odd) img{animation-delay:-2.5s}.spring-slot.res-2 img{animation:5s ease-in-out infinite float,3.5s ease-in-out infinite shimmer}.spring-slot.res-3:after{content:"";pointer-events:none;background:radial-gradient(circle,#e8d49a59,#0000 60%);border-radius:50%;animation:4s ease-in-out infinite pulse;position:absolute;inset:-20%}@keyframes float{50%{transform:translateY(-6%)}}@keyframes shimmer{50%{filter:drop-shadow(0 0 18px #c8fff5e6)brightness(1.15)}}.home-head{top:calc(10px + var(--safe-t));z-index:10;border-radius:20px;grid-template-columns:1fr auto;align-items:center;gap:4px 12px;padding:10px 16px 12px;display:grid;position:absolute;left:10px;right:10px}.home-head h1{font-size:1.1rem}.glimmer{color:var(--gold);text-shadow:0 0 10px #e8d49a80;font-size:.95rem}.stage-bar,.progress{background:#ffffff14;border-radius:4px;grid-column:1/-1;height:4px;overflow:hidden}.stage-bar>div,.progress>div{background:linear-gradient(90deg, var(--accent-deep), var(--accent));height:100%;box-shadow:0 0 10px var(--accent);transition:width .8s}.greeting{z-index:10;top:calc(100px + var(--safe-t));text-align:center;border-radius:16px;padding:12px 16px;animation:1.2s fade-in;position:absolute;left:24px;right:24px}.home-actions{z-index:10;left:16px;right:16px;bottom:calc(var(--nav-h) + 22px + var(--safe-b));gap:10px;display:flex;position:absolute}.home-actions .btn{flex:1}.home-actions .btn-primary{flex:1.6}.care-section{flex-direction:column;gap:8px;display:flex}.care-section h3{font-size:.95rem}.memory-list{flex-wrap:wrap;gap:6px;display:flex}.light-meter{gap:6px;display:flex}.light-meter span{background:#ffffff14;border-radius:4px;flex:1;height:8px}.light-meter span.on{background:var(--gold);box-shadow:0 0 8px var(--gold)}.item-grid,.dex-grid{grid-template-columns:repeat(3,1fr);gap:8px;margin:0;padding:0;list-style:none;display:grid}.item-cell,.dex-cell{border:1px solid var(--line);text-align:center;background:#ffffff0a;border-radius:14px;flex-direction:column;align-items:center;gap:4px;width:100%;height:100%;padding:8px 6px;display:flex}.item-cell img,.dex-cell img{aspect-ratio:1;object-fit:contain;filter:drop-shadow(0 0 8px #a0fff04d);width:72%}.item-cell.selected{border-color:var(--accent)}.item-name,.dex-name{font-size:.74rem;line-height:1.3}.item-effect{color:var(--soft);font-size:.64rem;line-height:1.3}.rarity-rare{border-color:#7fe3d473}.rarity-mythic{border-color:#e8d49a99;box-shadow:inset 0 0 18px #e8d49a26}.dex-cell.unknown img{filter:brightness(0)opacity(.35)}.dex-cell.unknown{cursor:default}.resonance{color:var(--accent);letter-spacing:.15em;font-size:.55rem}.item-detail{text-align:center;flex-direction:column;align-items:center;gap:8px;display:flex}.item-detail img{filter:drop-shadow(0 0 16px #a0fff066);width:55%;max-width:220px}.card-meta{color:var(--soft);font-size:.78rem}.section-title{margin:18px 4px 10px;font-size:.98rem}.explore-lead{text-align:center;color:var(--soft);margin:4px 0 14px;font-size:.9rem}.new-region{color:var(--gold);display:block}.offer-list{flex-direction:column;gap:12px;margin:0;padding:0;list-style:none;display:flex}.offer-card{border-radius:var(--radius);border:1px solid var(--line);text-align:left;background:#0d2a30;width:100%;height:150px;padding:0;position:relative;overflow:hidden}.offer-list.compact .offer-card{height:96px}.offer-card img{object-fit:cover;object-position:center 40%;width:100%;height:100%;transition:transform .6s;position:absolute;inset:0}.offer-card:hover img{transform:scale(1.04)}.offer-card.done img{filter:saturate(.5)brightness(.7)}.offer-info{background:linear-gradient(#0000,#041013e0);flex-direction:column;gap:2px;padding:26px 14px 10px;display:flex;position:absolute;inset:auto 0 0}.offer-info h2{font-size:1.1rem}.offer-puzzles{flex-wrap:wrap;gap:4px;display:flex}.offer-status{color:var(--soft);background:#041013a6;border-radius:999px;padding:3px 10px;font-size:.72rem;position:absolute;top:10px;right:10px}.offer-status.started{color:var(--accent)}.deeper{border-radius:var(--radius);text-align:center;flex-direction:column;gap:10px;margin-top:18px;padding:16px;display:flex}.kehai{z-index:3;background:0 0;border:0;place-items:center;width:64px;height:64px;display:grid;position:absolute;transform:translate(-50%,-50%)}.kehai:before{content:"";border:1.5px solid #e8d49abf;border-radius:50%;animation:3.2s ease-in-out infinite kehai-ring;position:absolute;inset:8px;box-shadow:0 0 12px #e8d49a80,inset 0 0 12px #e8d49a59}.kehai.solved:before{display:none}@keyframes kehai-ring{0%,to{opacity:.9;transform:scale(.85)}50%{opacity:.45;transform:scale(1.1)}}.kehai-core{background:radial-gradient(circle,#fff 0%,#bff7ee 30%,#7fe3d480 60%,#0000 72%);border-radius:50%;width:22px;height:22px;animation:3.2s ease-in-out infinite kehai;box-shadow:0 0 22px 8px #7fe3d473}.kehai:nth-of-type(2) .kehai-core{animation-delay:-1.1s}.kehai:nth-of-type(3) .kehai-core{animation-delay:-2.1s}.kehai.hint .kehai-core{animation:1.2s ease-in-out 2 kehai-hint}@keyframes kehai{50%{opacity:.7;transform:scale(1.35)}}@keyframes kehai-hint{50%{transform:scale(2.2);box-shadow:0 0 40px 18px #c8fff5cc}}.kehai.solved img{object-fit:contain;filter:drop-shadow(0 0 10px #c8fff5cc);width:54px;height:54px;animation:5s ease-in-out infinite float}.found-dots{z-index:10;bottom:calc(26px + var(--safe-b));background:#04101359;border-radius:999px;gap:14px;padding:10px 16px;display:flex;position:absolute;left:50%;transform:translate(-50%)}.found-dots span{border:1px solid #befff599;border-radius:50%;width:10px;height:10px}.found-dots span.on{background:var(--accent);box-shadow:0 0 10px var(--accent)}.exploration-done{z-index:12;left:16px;right:16px;bottom:calc(80px + var(--safe-b));border-radius:var(--radius);text-align:center;flex-direction:column;gap:12px;padding:16px;animation:.5s rise;display:flex;position:absolute}.discovery-backdrop{z-index:70;background:#020a0cb8;place-items:center;padding:16px;animation:.5s fade-in;display:grid;position:absolute;inset:0}.discovery-card{aspect-ratio:2/3;width:min(100%,360px);max-height:92dvh;animation:.9s cubic-bezier(.2,.8,.2,1) card-in;position:relative}@keyframes card-in{0%{opacity:0;transform:translateY(24px)scale(.92)}}.card-frame{object-fit:fill;pointer-events:none;z-index:2;width:100%;height:100%;position:absolute;inset:0}.card-content{text-align:center;background:radial-gradient(90% 60% at 50% 30%,#286e6e8c,#06161af0);border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:6px;padding:14px;display:flex;position:absolute;inset:7% 9%;overflow-y:auto}.card-content h2{font-size:1.3rem}.card-item{aspect-ratio:1;object-fit:contain;filter:drop-shadow(0 0 22px #aafff099);width:58%;animation:5s ease-in-out infinite float}.discovery-card.rarity-mythic .card-item{filter:drop-shadow(0 0 26px #e8d49acc)}.card-beads{flex-direction:column;gap:4px;margin:4px 0 8px;display:flex}.puzzle-backdrop{z-index:50;background:linear-gradient(#0000 0%,#020a0c66 40%);align-items:flex-end;animation:.3s fade-in;display:flex;position:absolute;inset:0}.puzzle-panel{width:100%;height:84dvh;padding:14px 16px calc(14px + var(--safe-b));background:#081a1fd1;border-radius:26px 26px 0 0;flex-direction:column;gap:10px;animation:.35s cubic-bezier(.2,.8,.2,1) rise;display:flex}.puzzle-head{justify-content:space-between;align-items:center;display:flex}.puzzle-head h2{font-size:1.1rem}.puzzle-tools{gap:6px;display:flex}.puzzle-help{color:var(--soft);background:#7fe3d414;border-radius:12px;padding:8px 12px;font-size:.82rem}.puzzle-body{flex:1;justify-content:center;align-items:center;min-height:0;transition:filter .8s;display:flex}.puzzle-body.is-solved{filter:brightness(1.25)drop-shadow(0 0 18px #7fe3d480)}.puzzle-foot{justify-content:center;gap:10px;display:flex}.puzzle-foot .btn{flex:1;max-width:200px}.solved-text{color:var(--accent);animation:1.6s ease-in-out infinite pulse}.beadsort{grid-template-columns:repeat(var(--per-row), 1fr);justify-items:center;gap:18px 6px;width:100%;display:grid}.vial{background:0 0;border:0;justify-content:center;width:100%;max-width:60px;padding:18px 2px 4px;display:flex}.vial-glass{width:42px;height:calc(var(--cap) * 38px + 10px);background:linear-gradient(90deg,#ffffff14,#ffffff05 40%,#ffffff1a);border:2px solid #befff559;border-top-color:#befff51f;border-radius:8px 8px 22px 22px;flex-direction:column-reverse;align-items:center;gap:4px;padding:5px 0;transition:border-color .2s,box-shadow .3s;display:flex}.vial.selected .vial-glass{border-color:var(--accent)}.vial.full .vial-glass{border-color:#e8d49ab3;box-shadow:0 0 18px #e8d49a59}.vial.shake .vial-glass{animation:.3s shake}@keyframes shake{25%{transform:translate(-3px)}75%{transform:translate(3px)}}.vial-bead{background:radial-gradient(circle at 32% 28%, #ffffffd9 0 10%, transparent 28%), radial-gradient(circle at 50% 55%, var(--bead) 0 58%, color-mix(in srgb, var(--bead) 55%, black) 100%);width:32px;height:32px;box-shadow:0 0 10px color-mix(in srgb, var(--bead) 60%, transparent);border-radius:50%;flex:none;transition:transform .2s cubic-bezier(.3,1.4,.5,1)}.vial-bead:after{content:attr(data-mark);color:#ffffffc7;text-shadow:0 0 3px #0009;place-items:center;width:100%;height:100%;font-size:13px;line-height:1;display:grid}.vial-bead.lifted{transform:translateY(-22px)}.slide-wrap{flex-direction:column;align-items:center;gap:10px;height:100%;display:flex}.slide-board{aspect-ratio:941/1672;height:min(100% - 50px,177.7vw - 71.08px,820px);box-shadow:inset 0 0 0 1px var(--line);background:#00000059;border-radius:12px;position:relative;overflow:hidden}.slide-tile{background-repeat:no-repeat;border:0;padding:0;transition:transform .18s ease-out,box-shadow .4s;position:absolute;top:0;left:0;box-shadow:inset 0 0 0 1px #00000059,inset 0 0 0 2px #befff514}.slide-tile.home{box-shadow:inset 0 0 0 1px #7fe3d426}.is-solved .slide-tile{box-shadow:none}.slide-peek{object-fit:cover;z-index:3;width:100%;height:100%;animation:.2s fade-in;position:absolute;inset:0}.roots-wrap,.ripple-wrap{flex-direction:column;justify-content:center;align-items:center;gap:10px;width:100%;height:100%;display:flex}.roots-board{width:min(100%, calc((84dvh - 200px) * var(--ratio)));box-shadow:inset 0 0 0 1px var(--line);background:radial-gradient(circle,#285a4680,#081a16cc);border-radius:14px;display:grid;overflow:hidden}.root-cell{aspect-ratio:1;background:0 0;border:0;padding:0;box-shadow:inset 0 0 0 .5px #a0e6c812}.root-cell svg{width:100%;height:100%;display:block;overflow:visible}.root-arm{stroke:#6b5a3e;stroke-width:15px;stroke-linecap:round;transition:stroke .35s}.root-knot,.root-bud{fill:#7a6848;transition:fill .35s}.root-cell.wet .root-arm{stroke:#5fd6c4;filter:drop-shadow(0 0 4px #7fe3d4cc)}.root-cell.wet .root-knot{fill:#7fe3d4}.root-cell.wet .root-bud{fill:#a8f0b8;filter:drop-shadow(0 0 6px #a8f0b8e6)}.root-source{fill:#bff7ee;filter:drop-shadow(0 0 8px #7fe3d4)}.root-cell:active svg{transform:scale(.9)}.ripple-board{width:min(100%,50dvh);box-shadow:inset 0 0 0 1px var(--line);background:radial-gradient(circle,#1e506e73,#06141eb3);border-radius:18px;gap:8px;padding:12px;display:grid}.stone{aspect-ratio:1;background:radial-gradient(circle at 40% 35%,#2c4550,#0f1f27);border:1px solid #a0dce626;border-radius:46% 54% 50% 50%;transition:background .35s,box-shadow .35s;position:relative;overflow:visible}.stone.lit{background:radial-gradient(circle at 40% 35%,#f4fffb 0%,#a6e9f2 30%,#3c8fb0 75%);box-shadow:0 0 16px #a0e6ff8c}.stone.hinted{outline:2px solid var(--gold);outline-offset:3px;animation:1s ease-in-out infinite pulse}.wave{pointer-events:none;border:2px solid #bef0ffcc;border-radius:50%;animation:.9s ease-out forwards wave;position:absolute;inset:0}@keyframes wave{to{opacity:0;transform:scale(2.6)}}.weave-intro{border-radius:var(--radius);flex-direction:column;gap:8px;margin-bottom:14px;padding:14px;font-size:.86rem;display:flex}.weave-list{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.weave-card{text-align:left;border:1px solid var(--line);background:#ffffff0a;border-radius:16px;align-items:center;gap:12px;width:100%;padding:8px;display:flex}.weave-card img{object-fit:cover;border-radius:10px;flex:none;width:56px;height:92px}.weave-card>div{flex-direction:column;flex:1;gap:4px;display:flex}.weave-card h2{font-size:.98rem}.weave-card.done{border-color:#e8d49a66}.weave-editor .loom{top:calc(74px + var(--safe-t));bottom:calc(var(--nav-h) + 142px + var(--safe-b));justify-content:center;align-items:center;padding:0 12px;display:flex;position:absolute;left:0;right:0}.mosaic-board{aspect-ratio:12/20;max-width:100%;height:100%;box-shadow:inset 0 0 0 1px var(--line);touch-action:none;-webkit-user-select:none;user-select:none;background:#030c0ed9;border-radius:12px;gap:1px;padding:4px;display:grid;position:relative;overflow:hidden}.mosaic-image{object-fit:cover;opacity:0;pointer-events:none;width:calc(100% - 8px);height:calc(100% - 8px);transition:opacity .6s;position:absolute;inset:4px}.mosaic-image.show{opacity:.28}.mcell{border-radius:50%;place-items:center;display:grid;position:relative}.mcell:before{content:"";background:var(--bead);opacity:.35;border-radius:50%;width:34%;height:34%}.mcell.match:before{opacity:.8;width:46%;height:46%;box-shadow:0 0 0 1.5px #ffffff8c}.mcell.match:after{content:attr(data-mark);color:#ffffffe6;text-shadow:0 0 2px #000;font-size:8px;line-height:1;position:absolute}.mcell.on:before{opacity:1;background:radial-gradient(circle at 32% 28%, #ffffffb3 0 12%, transparent 30%), radial-gradient(circle at 50% 55%, var(--bead) 0 60%, color-mix(in srgb, var(--bead) 60%, black) 100%);width:96%;height:96%;box-shadow:0 0 4px color-mix(in srgb, var(--bead) 70%, transparent);animation:.25s cubic-bezier(.3,1.6,.5,1) pop}@keyframes pop{0%{transform:scale(.3)}}.palette{left:10px;right:10px;bottom:calc(var(--nav-h) + 20px + var(--safe-b));z-index:15;border-radius:18px;grid-template-columns:repeat(4,1fr);gap:6px;padding:8px;display:grid;position:absolute}.palette-btn{text-align:left;background:#ffffff0a;border:1px solid #0000;border-radius:12px;grid-template-rows:auto auto;grid-template-columns:auto 1fr;align-items:center;column-gap:6px;min-height:44px;padding:4px 8px;display:grid}.palette-btn .bead{grid-row:1/3;place-items:center;display:grid}.palette-bead:after{content:attr(data-mark);color:#ffffffd9;text-shadow:0 0 2px #000;font-size:11px}.palette-btn.active{border-color:var(--accent);background:#7fe3d424}.palette-btn.complete{opacity:.5}.palette-have{font-size:.86rem;line-height:1.1}.palette-need{color:var(--soft);font-size:.64rem;line-height:1.1}.weave-finish{text-align:center;border-radius:22px;flex-direction:column;align-items:center;gap:10px;width:min(100%,340px);padding:20px;animation:.9s card-in;display:flex}.weave-finish img{border-radius:12px;width:60%;box-shadow:0 0 30px #7fe3d459}.tabs{gap:6px;margin-bottom:8px;display:flex}.tab{border:1px solid var(--line);min-height:44px;color:var(--soft);background:0 0;border-radius:999px;flex:1;font-size:.82rem}.tab.active{color:var(--ink);background:#7fe3d429;border-color:#7fe3d466}.album-grid{grid-template-columns:repeat(4,1fr);gap:6px;margin:12px 0 0;padding:0;list-style:none;display:grid}.album-cell{aspect-ratio:9/16;border:0;border-radius:10px;width:100%;padding:0;position:relative;overflow:hidden}.album-cell img{object-fit:cover;width:100%;height:100%}.album-cell .chip{color:var(--gold);background:#041013bf;position:absolute;top:4px;right:4px}.album-detail{flex-direction:column;gap:10px;display:flex}.album-detail img{border-radius:14px;width:100%}.journal{border-radius:var(--radius);margin:12px 0 0;padding:8px 16px}.journal div{border-bottom:1px solid var(--line);justify-content:space-between;padding:10px 0;display:flex}.journal div:last-child{border-bottom:0}.journal dt{color:var(--soft);font-size:.86rem}.journal dd{margin:0}.settings-group{border-radius:var(--radius);flex-direction:column;gap:10px;margin-bottom:12px;padding:14px 16px;display:flex}.settings-group h2{color:var(--accent);font-size:.95rem}.field{justify-content:space-between;align-items:center;gap:12px;min-height:44px;font-size:.9rem;display:flex}.field input[type=text],.field input:not([type]){border:1px solid var(--line);max-width:60%;min-height:40px;color:var(--ink);font:inherit;background:#00000040;border-radius:10px;flex:1;padding:6px 10px}.field input[type=range]{max-width:60%;accent-color:var(--accent);flex:1}.toggle{cursor:pointer;justify-content:space-between;align-items:center;min-height:44px;font-size:.9rem;display:flex;position:relative}.toggle input{opacity:0;width:1px;height:1px;position:absolute}.toggle-track{background:#ffffff1f;border-radius:13px;width:46px;height:26px;transition:background .2s;position:relative}.toggle-track:after{content:"";background:var(--ink);border-radius:50%;width:20px;height:20px;transition:transform .2s;position:absolute;top:3px;left:3px}.toggle input:checked+.toggle-track{background:var(--accent-deep)}.toggle input:checked+.toggle-track:after{transform:translate(20px)}.toggle input:focus-visible+.toggle-track,:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important}}.reduce-motion *,.reduce-motion :before,.reduce-motion :after{transition-duration:1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important}
