@import"https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Gowun+Dodum&display=swap";:root{font-family:DM Sans,Apple SD Gothic Neo,Malgun Gothic,sans-serif;color:#344c43;background:#fafbf7;font-synthesis:none;--green:#426d57;--muted:#90988d;--line:#e7eae0;--sage:#eaf0e4}*{box-sizing:border-box}body{margin:0}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer;border:0;background:none}button:disabled{cursor:not-allowed;opacity:.38}button:focus-visible,a:focus-visible,canvas:focus-visible{outline:3px solid #90b1a0;outline-offset:4px}a{color:inherit;text-decoration:none}.header{height:100px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 4.2%;gap:24px}.brand{display:flex;align-items:center;gap:12px;font-size:26px;font-weight:700;letter-spacing:-1.2px}.brand-mark{width:45px;height:45px;display:grid;place-items:center;transform:rotate(-12deg)}.brand-mark svg{width:44px;fill:none;stroke:#4c775e;stroke-width:2;stroke-linecap:round}.brand-plus{color:#d7a37e;padding:0 1px}.brand small{font-size:10px;font-weight:400;letter-spacing:1.8px;display:block;color:#8b9485;margin-top:3px}.header nav{display:flex;align-items:stretch;gap:40px;height:100%;margin-left:30px}.nav-item{position:relative;font-size:13px;color:#93998f;padding:0 2px}.nav-item.active{color:#426b54;font-weight:700}.nav-item.active:after{position:absolute;bottom:22px;left:50%;transform:translate(-50%);width:18px;height:3px;border-radius:5px;background:#557b62;content:""}.tiny-dot{display:inline-block;width:4px;height:4px;background:#d3ad79;border-radius:50%;vertical-align:top;margin:3px 0 0 4px}.header-actions{display:flex;align-items:center;gap:16px}.offline{font-size:11px;color:#89917f;margin-right:6px}.offline i,.green-dot{width:6px;height:6px;border-radius:50%;background:#8ba47d;display:inline-block;margin-right:7px}.icon-button{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;color:#7e8a7e;font-size:16px;border:1px solid #e4e9dd;transition:.2s}.icon-button:hover{background:#eaf0e4;color:#416c54}.icon-button svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.profile{border-radius:50%;background:#e9eddf;display:grid;place-items:center;font-size:12px;color:#829075;width:34px;height:34px}.layout{max-width:1370px;margin:0 auto;padding:43px 45px 25px;display:grid;grid-template-columns:220px minmax(390px,600px) 232px;gap:47px;align-items:start}.left-panel{padding-top:11px}.eyebrow{font-size:10px;letter-spacing:1.6px;font-weight:500;color:#8d9a81}.left-panel h1{font-family:Gowun Dodum,serif;font-weight:400;font-size:31px;line-height:1.5;letter-spacing:-1.4px;margin:17px 0 16px}.intro{font-size:12px;line-height:1.95;color:#949b8f;margin:0 0 36px}.journey-title{font-size:12px;display:flex;justify-content:space-between;align-items:center;margin-bottom:15px;font-weight:600}.journey-title span:last-child{font-size:10px;font-weight:400;color:#949e8f}.level-list{display:flex;flex-direction:column;gap:6px}.level-item{padding:12px 11px;display:flex;align-items:center;text-align:left;gap:12px;border-radius:12px;width:100%;transition:.2s}.level-item:hover{background:#f0f3eb}.level-item.active{background:#eaf0e4}.level-number{display:grid;place-items:center;font-size:11px;width:30px;height:30px;border-radius:50%;color:#a4ad9b;border:1px solid #dce2d4;flex-shrink:0}.level-item.active .level-number{background:#53765b;color:#fff;border-color:#53765b;box-shadow:0 2px 5px #446d5420}.level-item.done .level-number{color:#4d785d;background:#e2ecdd}.level-name{font-size:12px;flex:1;font-weight:500;line-height:1.7}.level-name small{font-size:9px;display:block;color:#95a18c;font-weight:400}.level-item:not(.active) .level-name small{display:none}.level-arrow{font-size:16px;color:#85967b}.tutorial-entry{border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-top:24px;padding:20px 0;display:flex;align-items:center;gap:10px;font-size:11px;width:100%;text-align:left}.tutorial-entry small{display:block;font-size:9px;color:#9ca38f;margin-top:5px}.tutorial-entry>span:last-child{margin-left:auto;font-size:15px;color:#a7b09c}.tutorial-icon{font-size:30px;color:#87a182}.left-note{font-size:10px;color:#a1a894;display:flex;gap:7px;margin-top:23px;align-items:center;white-space:nowrap}.left-note svg{width:13px;fill:none;stroke:#a8b29e;stroke-width:1.4}.stage-heading{display:flex;align-items:center;justify-content:space-between;margin:0 1px 19px}.stage-kicker{color:#9ba18f;font-size:10px;letter-spacing:1.3px}.stage-heading h2{font-size:20px;font-weight:600;letter-spacing:-.6px;margin:7px 0 0;display:flex;align-items:center;gap:11px}.difficulty{font-size:9px;letter-spacing:0;background:#eef1e5;color:#869378;padding:4px 9px;border-radius:20px;font-weight:400}.stage-actions{display:flex;gap:9px}.game-shell{background:#e8efe4;border:1px solid #e1e8db;position:relative;border-radius:20px;overflow:hidden;box-shadow:0 8px 20px #425d4205}.board-top{display:flex;justify-content:space-between;align-items:center;padding:16px 20px 0;position:absolute;z-index:2;left:0;top:0;width:100%}.board-pill{font-size:9px;color:#7c9078;background:#f7faf0bb;border:1px solid #fff7;padding:7px 11px;border-radius:20px;display:flex;align-items:center}.board-pill .green-dot{width:4px;height:4px;margin-right:6px}.board-pause{border:1px solid #afbfaa66;border-radius:50%;width:26px;height:26px;font-size:11px;color:#81937e;background:#ffffff36}#game{width:100%;height:auto;display:block;touch-action:manipulation;outline-offset:-4px;cursor:default}.board-bottom{font-size:9px;display:flex;align-items:center;justify-content:space-between;color:#8ca085;position:absolute;bottom:15px;left:22px;right:22px;pointer-events:none}.legend-dot{width:5px;height:5px;display:inline-block;border-radius:50%;background:#bdcbb4;margin:0 5px 1px 0}.game-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#eef3e5e8;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);z-index:4;display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;padding:30px}.game-overlay .big-symbol{font-size:56px;color:#7b9e70;margin-bottom:15px}.game-overlay h2{font-family:Gowun Dodum,serif;font-size:29px;font-weight:400;margin:0 0 13px}.game-overlay p{font-size:13px;line-height:1.9;color:#8a9780}.primary-button{background:#52755c;color:#fff;padding:13px 28px;border-radius:9px;font-size:12px;margin-top:15px;box-shadow:0 4px #3b5c44;transition:.2s}.primary-button:hover{background:#41654b;transform:translateY(-1px)}.secondary-button{font-size:11px;color:#7f9177;text-decoration:underline;margin-top:22px}.toolbar{margin:19px auto 0;display:flex;justify-content:center;align-items:center;gap:25px;height:80px}.tool{position:relative;display:flex;align-items:center;flex-direction:column;gap:6px;font-size:10px;color:#7d8b73;min-width:60px}.tool-art{background:#f0f2e8;border:1px solid #e6e9dd;border-radius:15px;display:grid;place-items:center;width:53px;height:49px;position:relative;transition:.2s}.tool:hover .tool-art,.tool.selected .tool-art{background:#e4ecd9;border-color:#b3c5a0;transform:translateY(-3px)}.tool-art img{width:40px;height:40px;object-fit:contain;filter:saturate(.77)}.tool-art b{position:absolute;bottom:-3px;right:-4px;border:2px solid #fafbf7;background:#617d5d;color:#fff;border-radius:50%;width:18px;height:18px;display:grid;place-items:center;font-size:9px;font-weight:500}.tool kbd{position:absolute;right:0;bottom:0;font:8px DM Sans,sans-serif;border:1px solid #e5e9dc;border-radius:3px;padding:1px 3px;color:#aab29f}.tool-separator{height:30px;width:1px;background:#e6eadd}.undo,.hint{display:flex;align-items:center;flex-direction:column;gap:9px;font-size:9px;color:#91a085;width:45px;padding:4px 0}.undo svg,.hint svg{width:23px;height:23px;stroke:currentColor;fill:none;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}.below-game{text-align:center;font-size:10px;color:#a1aa96;margin:18px 0 0;letter-spacing:.2px}.right-panel{padding-top:83px}.session-card{background:#fff;border:1px solid #e6eadd;border-radius:16px;padding:24px 22px}.card-eyebrow{font-size:10px;display:flex;align-items:center;justify-content:space-between;color:#84917b;letter-spacing:.2px}.card-eyebrow>span{font-size:19px;color:#b9c5a7}.progress-number{margin-top:19px;display:flex;align-items:baseline}.progress-number>span:first-child{font-size:37px;font-weight:500;letter-spacing:-1.8px;color:#50705a;line-height:1}.progress-number small{font-size:16px;color:#a1af94;margin-left:4px}.progress-description{font-size:9px;color:#a3ac97;margin-left:auto}.progress-track{height:6px;background:#f0f3e9;border-radius:5px;margin-top:18px;overflow:hidden}.progress-track>div{width:0;height:100%;background:#91af7d;border-radius:5px;transition:width .4s}.progress-detail{display:flex;align-items:center;justify-content:space-between;font-size:10px;color:#9ba48f;margin-top:12px}.progress-detail b{font-size:10px;font-weight:500;color:#76896b;margin-left:12px}.mini-spool{font-size:23px;color:#c3cbb5}.session-divider{height:1px;background:#edf0e6;margin:17px 0 21px}.slots-stat{display:flex;align-items:center;justify-content:space-between;font-size:11px;color:#86917b}.slots-stat strong{font-size:17px;color:#607954;font-weight:500}.slots-stat em{font-size:11px;font-style:normal;color:#a4ad97}.slot-dots{display:flex;gap:6px;margin-top:15px}.slot-dots i{height:15px;flex:1;border:1px solid #e7ebdf;background:#f3f5ef;border-radius:4px}.session-card p{font-size:10px;line-height:1.8;color:#a1aa94;margin:17px 0 0}.how-card{padding:29px 16px 0}.small-sun{font-size:27px;color:#baaa7a}.how-card h3{font-family:Gowun Dodum,serif;font-size:18px;font-weight:400;margin:9px 0 20px}.how-card ol{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:15px}.how-card li{display:flex;gap:12px}.how-card li>span{font-size:9px;color:#aab29e;padding-top:4px}.how-card p{font-size:10px;line-height:1.85;color:#939e88;margin:0}.how-card button{font-size:10px;color:#829579;padding:17px 0 0}.how-card button>span{margin-left:17px;color:#9fad92}.little-flower{text-align:center;margin-top:28px}.little-flower svg{width:136px;height:85px;opacity:.8}.little-flower p{font-family:Gowun Dodum,serif;font-size:11px;color:#a2aa95;margin:5px 0}footer{max-width:1280px;margin:15px auto 0;padding:22px 0 26px;border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;font-size:10px;color:#9ca58f}footer i{font-style:normal;font-size:9px;color:#b2b9a7;margin-left:12px}.footer-flower{margin-left:14px;color:#9aae89;font-size:17px}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#2c453e55;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:20;display:grid;place-items:center;padding:24px}.modal-card{position:relative;background:#fafbf5;border-radius:22px;box-shadow:0 20px 70px #2a4c3b33;max-width:450px;padding:39px;width:100%;max-height:90vh;overflow:auto}.modal-close{position:absolute;top:15px;right:15px;font-size:22px}.modal-card h2{font-family:Gowun Dodum,serif;font-size:26px;font-weight:400;margin:5px 0 20px}.modal-card p,.modal-card li{font-size:12px;line-height:1.95;color:#85917b}.modal-card ol{padding-left:17px}.modal-card .key-list{border-top:1px solid var(--line);padding-top:15px;font-size:11px;line-height:2;color:#8c977e}.toast{position:fixed;bottom:35px;left:50%;transform:translate(-50%,20px);background:#405e4deb;color:#fff;padding:13px 23px;border-radius:10px;font-size:12px;box-shadow:0 6px 25px #314e3f22;opacity:0;transition:.25s;pointer-events:none;z-index:50;max-width:90vw;text-align:center}.toast.show{opacity:1;transform:translate(-50%)}.secondary-view{max-width:1160px;min-height:75vh;padding:64px 35px;margin:auto}.secondary-view h1{font-family:Gowun Dodum,serif;font-size:36px;font-weight:400}.secondary-view>p{font-size:13px;line-height:1.9;color:#8e9b83}.analysis-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin:35px 0}.analysis-grid article{padding:28px;border:1px solid #e1e7d7;background:#fff;border-radius:15px}.analysis-grid h3{font-size:18px;font-weight:500}.analysis-grid p{font-size:13px;line-height:1.9;color:#87937d}.analysis-grid code{font:11px monospace;color:#809371;line-height:2}.evidence-label{font-size:10px;color:#618468;background:#eaf3e6;padding:5px 9px;border-radius:5px}.evidence-label.reconstructed{color:#a58b61;background:#f7efdd}.source-link{font-size:12px;text-decoration:underline;color:#6f8762}#collection-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;margin-top:36px}.collection-card{border:1px solid var(--line);padding:22px;background:#fff;border-radius:15px}.collection-card h3{font-size:14px;font-weight:500}.collection-card p{font-size:11px;color:#9da58f}.collection-swatch{height:140px;border-radius:9px;background:repeating-linear-gradient(60deg,#d4e2c3 0,#d4e2c3 8px,#bacfa5 9px,#bacfa5 12px);position:relative;overflow:hidden;display:grid;place-items:center;font-size:34px;color:#ffffffa8}.collection-swatch.locked{filter:grayscale(1);opacity:.35}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;border:0;clip:rect(0,0,0,0);overflow:hidden}.sr-only:focus-within{width:auto;height:auto;clip:auto;position:fixed;left:10px;bottom:10px;background:#fff;z-index:99;padding:10px}.hidden{display:none!important}.game-shell:fullscreen{height:100vh;width:100vw;display:flex;justify-content:center;align-items:center;background:#e8efe4}.game-shell:fullscreen canvas{height:100vh;width:auto;max-width:100vw;object-fit:contain}.game-shell:fullscreen .board-top{max-width:620px;left:50%;transform:translate(-50%)}@media(min-width:1500px){.layout{max-width:1440px;grid-template-columns:245px minmax(450px,600px) 245px;gap:55px}.header{padding:0 calc((100vw - 1370px)/2)}.game-column{max-width:580px}}@media(max-width:1200px){.layout{grid-template-columns:185px minmax(360px,550px) 200px;gap:28px;padding:35px 30px}.header{padding:0 30px}.header nav{gap:25px;margin-left:0}.offline{display:none}.session-card{padding:20px 17px}.progress-description{font-size:8px}.toolbar{gap:17px}footer{margin:0 30px}.left-panel h1{font-size:28px}}@media(max-width:1000px){.layout{grid-template-columns:180px minmax(360px,560px);justify-content:center;gap:30px}.right-panel{display:none}.header-actions{gap:9px}.header nav{gap:20px}.header{height:85px}.brand{font-size:23px}.brand small{font-size:8px}.nav-item{font-size:11px}.header nav .nav-item.active:after{bottom:15px}}@media(max-width:700px){.header{height:76px;padding:0 20px;gap:10px}.brand{font-size:22px;gap:6px}.brand-mark,.brand-mark svg{width:33px;height:33px}.brand small{font-size:7px;letter-spacing:1.1px}.header nav{display:none}.header-actions .profile{display:none}.header-actions .icon-button{width:30px;height:30px}.layout{display:block;padding:22px 16px 15px;max-width:550px}.left-panel{display:none}.stage-heading{margin:0 4px 15px}.stage-heading h2{font-size:19px}.stage-kicker{font-size:9px}.game-shell{border-radius:17px}.toolbar{gap:16px;margin-top:17px}.below-game{font-size:9px;margin-top:10px}footer{font-size:8px;margin:8px 20px;line-height:1.8;gap:15px;align-items:start}footer>span:last-child{max-width:130px;text-align:right}footer i{display:block;margin:0;font-size:8px}.footer-flower{display:none}.board-top{padding:13px 15px 0}.board-pill{font-size:8px;padding:6px 9px}.board-bottom{left:18px;right:18px;font-size:8px;bottom:13px}.secondary-view{padding:30px 20px;min-height:80vh}.secondary-view h1{font-size:29px}.analysis-grid{grid-template-columns:1fr}.analysis-grid article{padding:23px}.analysis-grid p{font-size:12px}#collection-grid{grid-template-columns:1fr 1fr;gap:12px}.collection-card{padding:15px}.collection-swatch{height:120px}.modal-card{padding:30px}.toast{bottom:18px;font-size:11px}.game-overlay h2{font-size:25px}}@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}@media(max-width:700px){.header{height:108px;padding-bottom:31px;position:relative}.header nav{display:flex;position:absolute;bottom:0;left:20px;right:20px;height:31px;justify-content:center;gap:38px}.header nav .nav-item.active:after{bottom:0;width:25px;height:2px}.nav-item{font-size:10px}.layout{padding-top:18px}}@media(min-width:1001px){.layout{grid-template-columns:210px clamp(340px,calc((100vh - 280px)*.78049),560px) 220px;justify-content:center;gap:42px;padding-top:27px}.right-panel{padding-top:75px}.stage-heading{margin-bottom:14px}.toolbar{margin-top:12px}.below-game{margin-top:9px}.intro{margin-bottom:25px}.level-item{padding-top:9px;padding-bottom:9px}.tutorial-entry{margin-top:17px;padding:16px 0}.little-flower{margin-top:18px}.session-card{padding:21px 19px}.how-card{padding-top:22px}footer{margin-top:0;padding-top:17px}}:root{--green:#76608e;--muted:#95899e;--line:#e5dfeb;--sage:#ede5f5;color:#51465f;background:#faf8fc}body{background:radial-gradient(ellipse at 50% 14%,#f3eef9 0,transparent 60%),#faf8fc}.header{height:86px;background:#fffdfbbf;border-color:#e9e2ed}.brand{color:#584369}.brand-mark svg{stroke:#9674b5}.brand-plus{color:#d99c79}.brand small{color:#a292aa}.profile{background:#eee5f4;color:#8c709e}.offline{color:#a090a9}.offline i,.green-dot{background:#ab88bb}.header nav .nav-item{color:#a093ad}.header nav .nav-item.active{color:#795a92}.header nav .nav-item.active:after{background:#9b78b8}.icon-button{border-color:#e5ddeb;color:#897494;background:#fffdfa}.icon-button:hover{background:#eee5f6;color:#795a92}.tiny-dot{background:#d8a479}.left-panel h1{color:#675372;font-size:32px}.eyebrow{color:#9a82a6}.intro{color:#96869f}.level-item{transition:background .2s,transform .2s}.level-item:hover{background:#f1eaf7;transform:translate(3px)}.level-item.active{background:#ede3f5;box-shadow:inset 0 0 0 1px #dfd0e9}.level-item.active .level-number{background:#9973b0;border-color:#9973b0;box-shadow:0 3px 8px #9973b033}.level-name small{color:#a18ba9}.level-number{color:#a792b2;border-color:#e4d9eb}.level-arrow{color:#a990b6}.tutorial-entry{border-color:#e8e0ed}.tutorial-icon{color:#a581b8}.tutorial-entry small,.left-note,.journey-title span:last-child{color:#ac9ab6}.level-item.done .level-number{background:#e3eadd;color:#759267}.stage-kicker{color:#9c85ac}.stage-heading h2{color:#5b496c}.difficulty{background:#ece4f2;color:#9b78af}.game-shell{border:5px solid #fffaff;outline:1px solid #e3d9ee;border-radius:25px;box-shadow:0 14px 40px #80629d17,0 2px 5px #80629d0a;background:#e2e9fa}.board-pill{background:#fffaf0db;border-color:#fff;color:#91819d;box-shadow:0 2px 7px #6d608c0a}.board-pill .green-dot{background:#ba96cf}.board-pause{background:#fffcf3cb;color:#9f84b3;border-color:#fff}.board-bottom{color:#7f7a96}.legend-dot{background:#b1a2c1}.toolbar{gap:16px;background:#fffdfb;border:1px solid #e9e0ee;border-radius:19px;margin-top:17px;padding:10px 12px;height:86px;box-shadow:0 5px 14px #70548905}.tool{color:#8d749a;min-width:49px}.tool-art{background:#f3edf9;border:1px solid #e6dbee;box-shadow:0 3px #e7dcec;width:49px;height:46px;border-radius:13px}.tool-art img{width:39px;height:39px;filter:none}.tool-art b{background:#9d79b4;border-color:#fffdfb}.tool:hover .tool-art,.tool.selected .tool-art{background:#eee0fa;border-color:#c2a2d6;transform:translateY(-3px)}.tool.selected .tool-art{box-shadow:0 0 0 3px #c9aadf55,0 3px #c9aadf}.tool kbd{color:#b4a3be;border-color:#eee5f3;right:-3px;bottom:-2px}.tool-separator{background:#e9e0ef;height:26px}.undo,.hint{color:#a18bb0;width:34px;font-size:8px}.undo svg,.hint svg{width:21px;height:21px}.below-game{color:#a08caf;font-size:11px;line-height:1.7}.session-card{border-color:#e7dfed;background:#fffdfb;box-shadow:0 8px 25px #715a8505}.card-eyebrow{color:#a28cad}.card-eyebrow>span{color:#c2a5d1}.progress-number>span:first-child{color:#8e6da7}.progress-number small{color:#b299c1}.progress-description,.progress-detail,.session-card p,.slots-stat{color:#aa97b6}.progress-track{background:#f1eaf6;height:7px}.progress-track>div{background:linear-gradient(90deg,#bc99d4,#9a79ba)}.progress-detail b,.slots-stat strong{color:#9876aa}.session-divider{background:#eee6f4}.slot-dots i{background:#f3edf7;border-color:#e9dfef}.combo-badge{background:#f4eff8;border-radius:9px;padding:10px 5px;margin-top:17px;text-align:center;font-size:10px;color:#b5a1bf;transition:background .3s}.combo-badge.lit{background:#f6ebd6;color:#b38b48}.how-card h3{color:#7e638d}.how-card p{color:#a28caf}.how-card button{color:#a180b4}.small-sun{color:#d7af73}.how-card li>span{color:#bda8c9}.how-card ol{gap:12px}.little-flower{display:none}.trick-card{margin-top:26px;border-top:1px dashed #dccfe5;padding:22px 15px 0}.trick-card h3{font-family:Gowun Dodum,serif;font-size:16px;font-weight:400;color:#8f6ca2;margin:10px 0}.trick-card p{font-size:11px;line-height:1.9;color:#a18dab;margin:0}.trick-stitch{display:block;font-size:26px;color:#d5c5e0;letter-spacing:9px;margin:8px 0}.primary-button{background:#9a78af;box-shadow:0 4px #7b5b90}.primary-button:hover{background:#8965a0}.secondary-button{color:#9c7ab0}.game-overlay{background:#f4edf8ed;color:#725488}.game-overlay .big-symbol{color:#c59c5e;text-shadow:0 5px 0 #e9d9b5}.game-overlay p{color:#a68bb7}.victory-stars{color:#dfb45b;font-size:29px;letter-spacing:10px;margin-bottom:18px;animation:victory-pop .7s cubic-bezier(.2,1.6,.5,1) both}.game-overlay:not(.hidden) .primary-button{animation:victory-pop .45s .1s both}.toast{background:#705583f2}.modal-card{background:#fcf9ff}.modal-card h2{color:#7f5d98}.modal-card p,.modal-card li{color:#9b83aa}footer{color:#b2a0bd;border-color:#e9e0ef}footer i{color:#c0b0c9}.footer-flower{color:#bda3ce}@keyframes victory-pop{0%{opacity:0;transform:translateY(14px) scale(.8)}to{opacity:1;transform:translateY(0) scale(1)}}@media(min-width:1001px){.layout{grid-template-columns:210px clamp(360px,calc((100vh - 260px)*.78049),580px) 220px;gap:40px;padding-top:25px}.right-panel{padding-top:73px}.left-panel{padding-top:15px}.left-panel h1{margin-top:16px}.toolbar{gap:14px}}@media(max-width:1000px){.toolbar{gap:15px}.header{height:80px}}@media(max-width:700px){.header{height:108px}.game-shell{border-width:4px;border-radius:22px}.layout{padding:18px 12px 14px}.toolbar{gap:8px;padding:9px 7px;border-radius:16px;margin-top:15px;height:82px}.tool{min-width:44px;font-size:9px}.tool-art{width:43px;height:43px}.tool-art img{width:34px;height:34px}.tool-art b{width:17px;height:17px;font-size:8px}.tool kbd{display:none}.undo,.hint{width:30px;font-size:8px}.tool-separator{height:21px}.below-game{font-size:10px;margin:12px 5px}.stage-heading h2{font-size:18px}.game-overlay p{font-size:12px}}@media(max-width:360px){.toolbar{gap:5px}.tool{min-width:39px}.tool-art{width:39px;height:40px}.undo,.hint{width:26px}.tool-separator{display:none}}.stage-kicker,.eyebrow{color:#8a709b}.intro,.below-game{color:#8e789d}.board-bottom{color:#716580}.board-pill{color:#7d688e}.level-name small,.tutorial-entry small{color:#8c729b}.progress-detail,.progress-description,.session-card p,.slots-stat,.how-card p,.trick-card p{color:#90789f}.combo-badge{color:#9377a2}.tool{color:#80618f}.tool:disabled{opacity:.45}.puzzle-rules{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:11px;margin:0 2px 12px;color:#80658f}.puzzle-rules button{font-size:10px;text-decoration:underline;text-underline-offset:3px;color:#9772ab;padding:5px 0;white-space:nowrap}.demand-preview{display:flex;align-items:center;justify-content:center;gap:13px;background:#fffdfb;border:1px solid #e6daee;border-radius:13px;margin-bottom:13px;padding:10px 14px;min-height:62px}.demand-token{display:flex;gap:7px;align-items:center;position:relative;padding-top:15px;color:#95829f;font-size:12px}.demand-token small{position:absolute;top:0;left:0;right:0;font-size:8px;font-weight:400;white-space:nowrap}.demand-token i,.order-grid i{width:14px;height:14px;display:inline-block;flex-shrink:0;border-radius:50%;box-shadow:inset 0 0 0 2px #fff7,0 1px 2px #6e4d8020}.demand-token.current{color:#684b7e}.demand-token.current small{color:#9572af}.demand-arrow{font-size:13px;color:#c5b4d1;padding-top:10px}.demand-finished{font-size:12px;color:#9175a2}.rescue-budget{text-align:center;font-size:10px;color:#997d53;margin:16px 0 -7px}.toolbar{margin-top:16px}.order-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin:24px 0}.order-grid>span{display:flex;align-items:center;gap:6px;flex-wrap:wrap;background:#f0e9f6;border:1px solid #e5d8ed;border-radius:8px;padding:10px 7px;font-size:11px}.order-grid small{color:#a68ab7;font-size:9px}.order-grid em{width:100%;font-style:normal;font-size:8px;color:#ab97b7;padding-left:18px}.loss-detail{background:#eadfee;padding:11px 15px;border-radius:8px;font-size:11px;color:#8d6c9e;margin:8px 0}.game-overlay .loss-detail b{color:#6a4a80}.left-panel h1{font-size:29px}.game-overlay p{line-height:1.9}@media(min-width:1001px){.layout{grid-template-columns:210px clamp(360px,calc((100vh - 368px)*.78049),540px) 220px}.right-panel{padding-top:160px}}@media(max-width:700px){.puzzle-rules{font-size:10px;margin:0 5px 10px}.demand-preview{padding:10px;gap:17px;margin-bottom:13px;min-height:60px}.demand-token{font-size:12px}.demand-token small{font-size:8px}.rescue-budget{font-size:9px;margin-top:16px}.left-panel h1{font-size:28px}}.chapter-switch{display:flex;gap:5px;margin:0 0 12px;background:#f0e9f5;padding:4px;border-radius:10px}.chapter-switch button{flex:1;padding:9px 3px;font-size:10px;color:#a18bad;border-radius:7px;white-space:nowrap}.chapter-switch button.active{background:snow;color:#79548e;box-shadow:0 2px 6px #70498012;font-weight:700}.local-progress{background:#f5eff8;border:1px solid #e4d7ed;border-radius:12px;padding:12px;margin:16px 0;color:#765786;line-height:1.7}.local-progress strong{display:block;font-size:11px}.local-progress p{font-size:11px;margin:6px 0}.local-progress small{display:block;font-size:10px;color:#8c729b}.local-progress small+small{margin-top:7px;color:#967fa2}.chapter-switch{flex-wrap:wrap}.chapter-switch button[data-chapter=campaign]{flex-basis:100%}.range-label{display:flex;gap:8px;align-items:center;font-size:11px;color:#80618f;margin:10px 0 14px}.range-label[hidden]{display:none}.range-label select,.level-jump input{font:inherit;color:#725488;background:#fffafd;border:1px solid #d8c8e4;border-radius:8px;padding:8px;min-width:0}.range-label select{flex:1;max-width:260px}.level-jump{display:flex;gap:12px;align-items:center;justify-content:space-between;margin-bottom:14px;font-size:12px;color:#80618f}.level-jump input{width:85px;margin-left:8px}.level-list .level-number{min-width:30px;font-size:12px}.level-list .level-name{min-width:0}.level-list .level-name small{white-space:normal}.modal-card .level-list{max-height:48vh;overflow:auto;overscroll-behavior:contain}#levels{max-height:560px;overflow:auto;overscroll-behavior:contain}#collection-view>.range-label{max-width:330px}.storage-warning{position:fixed;left:12px;right:12px;bottom:8px;z-index:60;padding:10px;border:1px solid #d9a973;border-radius:9px;background:#fff4db;color:#78522f;font-size:12px;text-align:center}@media(max-width:700px){.header{height:72px;padding:0 12px 23px;gap:8px}.brand{font-size:19px;gap:5px}.brand-mark,.brand-mark svg{width:28px;height:28px}.brand small{display:none}.header-actions{gap:4px}.header-actions .offline{display:none}.header-actions .icon-button{width:40px;height:40px}.header nav{height:23px;left:12px;right:12px;gap:32px;margin:0}.header nav .nav-item{font-size:10px;padding:0 8px}#play-view{padding:6px 12px max(6px,env(safe-area-inset-bottom));height:calc(100vh - 72px);height:calc(100dvh - 72px);min-height:490px;max-width:550px}.game-column{display:grid;height:100%;min-height:0;grid-template-rows:44px 22px 40px minmax(0,1fr) 18px 70px 28px;row-gap:3px;align-items:center}.stage-heading{margin:0 2px;gap:8px}.stage-heading h2{font-size:16px;margin:2px 0 0;line-height:1.3}.stage-kicker{font-size:10px;letter-spacing:.5px;display:inline-block;padding:3px 0}.stage-actions{gap:4px}.stage-actions .icon-button{width:40px;height:40px}.difficulty{font-size:9px;padding:3px 6px;margin-left:5px}.puzzle-rules{margin:0 2px;font-size:9px;line-height:1.3}.puzzle-rules button{font-size:10px;padding:4px 0}.demand-preview{margin:0;padding:4px 8px;min-height:40px;height:40px;border-radius:10px;gap:20px}.demand-token{padding-top:12px;font-size:11px;gap:5px}.demand-token small{font-size:8px}.demand-token i{width:12px;height:12px}.game-shell:not(:fullscreen){justify-self:center;width:auto;height:100%;max-height:calc((100vw - 32px)*1.28125 + 8px);aspect-ratio:648 / 828;max-width:100%;min-height:0;border-width:4px;border-radius:17px}.game-shell:not(:fullscreen) canvas{display:block;width:100%;height:100%;border-radius:12px}.board-top{padding:7px 9px 0}.board-pill{font-size:8px;padding:5px 7px}.board-pause{width:36px;height:36px}.board-bottom{left:10px;right:10px;bottom:7px;font-size:8px}.rescue-budget{margin:0;font-size:9px;line-height:1.4}.toolbar{margin:0;padding:5px 4px;gap:0;height:70px;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));width:100%;border-radius:14px}.toolbar .tool-separator{display:none}.toolbar>button{justify-self:stretch;min-width:0;width:100%;height:58px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;font-size:9px}.tool-art{width:38px;height:36px;border-radius:10px}.tool-art img{width:31px;height:31px}.tool-art b{width:16px;height:16px;font-size:8px;right:-3px;bottom:-3px}.toolbar kbd{display:none}.undo svg,.hint svg{width:24px;height:24px}.undo span{max-width:45px;line-height:1.3}.below-game{margin:0 2px;font-size:9px;line-height:1.4;text-align:center}.toast{top:78px;bottom:auto;max-width:calc(100vw - 24px);padding:9px 14px}body:has(#play-view:not(.hidden))>footer{display:none}.game-overlay h2{font-size:20px;margin:8px 0}.game-overlay p{font-size:10px;line-height:1.5;margin:6px 10px}.game-overlay .big-symbol{font-size:32px}.game-overlay .victory-stars{font-size:22px;margin-bottom:5px}.game-overlay .primary-button{padding:11px 16px;font-size:12px}.game-overlay .secondary-button{padding:10px;font-size:11px}}@media(max-width:700px)and (max-height:600px){#play-view{min-height:474px}.game-column{grid-template-rows:40px 20px 36px minmax(0,1fr) 16px 64px 24px;row-gap:2px}.demand-preview{min-height:36px;height:36px}.toolbar{height:64px}.toolbar>button{height:56px}.stage-heading h2{font-size:15px}}
