@import"https://fonts.googleapis.com/css2?family=Be+Vietnam+Pro:wght@400;500;600;700;800&display=swap";:root{font-family:Be Vietnam Pro,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#2f2a26;background:#f8f2e8;font-synthesis:none;--bg: #f8f2e8;--surface: #fffdf9;--surface-warm: #f4ead9;--ink: #2f2a26;--muted: #887d73;--line: #eadfce;--primary: #d85f3e;--primary-dark: #b7472e;--gold: #e9a63b;--green: #6f8d5e;--shadow: 0 16px 40px rgba(91, 65, 38, .08)}*{box-sizing:border-box}body{margin:0;min-width:320px;background:radial-gradient(circle at 50% -5%,#fffaf2 0,var(--bg) 42%,#f5eee3 100%)}button,a{font:inherit}button{border:0;cursor:pointer}a{color:inherit;text-decoration:none}.app-frame{width:100%;max-width:620px;min-height:100vh;margin:0 auto;position:relative;background:var(--bg);box-shadow:0 0 60px #452d1814}.app-header{height:72px;display:flex;align-items:center;justify-content:space-between;padding:max(16px,env(safe-area-inset-top)) 22px 12px;background:#f8f2e8e6;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);position:sticky;top:0;z-index:10}.brand-mark{display:inline-flex;gap:9px;align-items:center;color:var(--primary-dark);font-size:19px;font-weight:800;letter-spacing:-.5px}.brand-flower{display:grid;place-items:center;width:29px;height:29px;border-radius:9px 11px 8px 10px;color:#fff;background:var(--primary);transform:rotate(-9deg);font-size:18px}.header-actions{display:flex;align-items:center;gap:10px}.coin-pill{display:inline-flex;align-items:center;gap:5px;color:#805622;background:#fff2d4;padding:7px 10px;border-radius:999px;font-size:12px}.header-avatar{display:inline-flex}.page-content{padding:10px 18px 112px}.home-content{padding-top:26px}.inner-content{padding-top:24px}.hero-row{display:flex;justify-content:space-between;align-items:center;margin:0 4px 22px}.eyebrow{color:var(--primary);font-size:10px;font-weight:800;letter-spacing:1.3px}h1,h2,h3,p{margin:0}h1{font-size:clamp(28px,8vw,38px);line-height:1.18;letter-spacing:-1.5px}.hero-row h1{margin:7px 0}.hero-row h1 em{font-style:normal;color:var(--primary)}.hero-row p,.page-title p{color:var(--muted);font-size:13px;line-height:1.6}.wave{display:inline-block;font-size:24px;transform:rotate(-12deg)}.avatar{display:grid;flex:0 0 auto;place-items:center;border-radius:50%;background:#e9b070;border:3px solid #fffaf0;box-shadow:0 5px 18px #6b412124}.avatar-small{width:34px;height:34px;font-size:17px;border-width:2px}.avatar-medium{width:48px;height:48px;font-size:24px}.avatar-large{width:72px;height:72px;font-size:37px}.card{background:var(--surface);border:1px solid rgba(234,223,206,.85);border-radius:18px;box-shadow:var(--shadow)}.player-progress-card{padding:15px 16px 14px;margin-bottom:30px}.player-progress-top{display:flex;align-items:center;gap:11px;margin-bottom:13px}.player-progress-top p{color:var(--muted);font-size:11px;margin-top:3px}.xp-label{color:var(--muted);font-size:10px;margin-left:auto;white-space:nowrap;align-self:flex-start}.level-mark{display:grid;place-items:center;width:38px;height:42px;background:#f9e5b9;color:#a87224;border-radius:12px;line-height:1}.level-mark span{font-size:8px;font-weight:800}.level-mark strong{font-size:17px}.progress-wrap{min-width:0}.progress-label{display:block;color:var(--muted);font-size:10px;margin-bottom:7px}.progress-track{width:100%;height:7px;overflow:hidden;border-radius:999px;background:#efe7da}.progress-fill{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--gold),#efc761)}.home-section{margin-bottom:29px}.section-header{display:flex;align-items:baseline;justify-content:space-between;margin:0 3px 13px}.section-header h2{font-size:17px;letter-spacing:-.5px}.text-link,.card-link{color:var(--primary);font-size:11px;font-weight:700}.game-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.game-card{display:block;overflow:hidden;background:var(--surface);border:1px solid var(--line);border-radius:17px;box-shadow:0 8px 20px #5b41260d;transition:transform .2s ease,box-shadow .2s ease}.game-card:active{transform:scale(.98)}.game-card:hover{box-shadow:0 12px 24px #5b41261f}.game-art{position:relative;min-height:112px;overflow:hidden;display:grid;place-items:center}.game-art:before,.detail-art:before{content:"";position:absolute;width:90px;height:90px;border:1px solid rgba(255,255,255,.35);border-radius:50%;box-shadow:0 0 0 14px #ffffff1a,0 0 0 28px #ffffff14}.game-art-sparkle{position:absolute;top:11px;right:17px;color:#ffffffbf;font-size:18px}.game-icon{position:relative;font-size:47px;filter:drop-shadow(0 7px 4px rgba(76,48,19,.15))}.art-sunset{background:linear-gradient(140deg,#efab69,#df6c55)}.art-leaf{background:linear-gradient(140deg,#a9be80,#6f956e)}.art-sky{background:linear-gradient(140deg,#89b8c0,#5e91aa)}.art-plum{background:linear-gradient(140deg,#ae8aa5,#87698e)}.game-card-body{padding:11px 12px 13px}.game-card-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:4px}.game-card h3{font-size:13px;letter-spacing:-.2px}.game-card p{min-height:35px;color:var(--muted);font-size:10px;line-height:1.5;margin:6px 0 10px}.game-card .badge{flex-shrink:0}.badge{display:inline-flex;width:fit-content;align-items:center;padding:4px 7px;border-radius:999px;font-size:9px;font-weight:700;white-space:nowrap}.badge-muted{background:#f1ece5;color:#93877b}.badge-accent{background:#fff1cb;color:#a36b22}.badge-success{background:#e6f1df;color:#63844f}.badge-neutral{background:var(--surface-warm);color:var(--muted)}.mission-card{display:flex;align-items:center;gap:10px;padding:12px;margin-bottom:9px;box-shadow:none}.mission-icon{display:grid;place-items:center;width:35px;height:35px;flex:0 0 auto;border-radius:12px;color:var(--primary);background:#fff0dd;font-size:15px}.mission-content{flex:1;min-width:0}.mission-heading{display:flex;align-items:center;gap:7px;margin-bottom:8px}.mission-heading h3,.mission-content h3{overflow:hidden;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.mission-card .progress-label{float:right;margin:-2px 0 0 7px}.mission-card .progress-track{height:5px}.reward-badge{flex:0 0 auto;color:#a36b22;background:#fff5dc;padding:5px 6px;border-radius:8px;font-size:9px;font-weight:700}.mission-card.completed .mission-icon{color:var(--green);background:#eaf3e3}.mission-card.locked{opacity:.7}.event-banner{position:relative;display:flex;align-items:center;gap:14px;overflow:hidden;margin:2px 0 12px;padding:18px 17px;color:#fffaf0;background:linear-gradient(110deg,#b74f3c,#d3774b);border-radius:19px;box-shadow:0 12px 24px #ae4e2f2e}.event-banner:after{content:"✿";position:absolute;right:34px;top:-18px;color:#ffffff29;font-size:90px;transform:rotate(14deg)}.event-sun{display:grid;place-items:center;width:44px;height:44px;flex:0 0 auto;border-radius:14px;color:#bd6a31;background:#ffe3a9;font-size:24px}.event-banner h2{position:relative;font-size:20px;margin:4px 0 2px}.event-banner p{position:relative;max-width:230px;color:#ffffffd1;font-size:10px}.event-banner .badge{position:relative}.event-arrow{position:relative;margin-left:auto;font-size:22px;z-index:1}.bottom-nav{position:fixed;left:50%;bottom:0;z-index:20;display:flex;justify-content:space-around;width:min(620px,100%);padding:9px 13px max(11px,env(safe-area-inset-bottom));background:#fffdf9f0;border-top:1px solid rgba(234,223,206,.8);box-shadow:0 -9px 24px #51371f0f;transform:translate(-50%);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.nav-item{display:flex;flex:1;flex-direction:column;align-items:center;gap:4px;padding:4px 2px;color:#a1988e;font-size:9px;font-weight:600}.nav-icon{display:grid;place-items:center;width:28px;height:25px;border-radius:9px;font-size:17px}.nav-item.active{color:var(--primary)}.nav-item.active .nav-icon{background:#fff0df}.inner-page{padding-bottom:18px}.back-link{display:inline-block;color:var(--muted);font-size:12px;font-weight:600;margin-bottom:24px}.page-title{margin-bottom:24px}.page-title h1{margin:5px 0 7px}.detail-page .page-title{margin-top:23px}.detail-art{position:relative;display:grid;place-items:center;height:230px;overflow:hidden;border-radius:23px}.detail-art span{position:relative;font-size:95px;filter:drop-shadow(0 14px 7px rgba(76,48,19,.18))}.detail-art small{position:absolute;right:20px;bottom:18px;color:#ffffffb3;font-size:9px;font-weight:800;letter-spacing:2px}.detail-meta{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:22px 0}.detail-meta div{padding:11px 9px;background:#f3eadc;border-radius:12px}.detail-meta span,.detail-meta strong{display:block}.detail-meta span{color:var(--muted);font-size:9px;margin-bottom:4px}.detail-meta strong{font-size:11px}.detail-actions{display:flex;align-items:center;justify-content:space-between;gap:12px}.button{display:inline-flex;min-height:44px;align-items:center;justify-content:center;padding:0 18px;border-radius:12px;font-size:12px;font-weight:700}.button-primary{color:#fff;background:var(--primary);box-shadow:0 9px 18px #d85f3e33}.button-secondary{color:var(--primary);background:#fff0df}.button-disabled{color:#a89f96;background:#e9e4dc;cursor:not-allowed}.detail-note{color:var(--muted);font-size:11px;line-height:1.7;margin-top:23px;padding:14px;border-left:3px solid #e9b86a;background:#fff6e5;border-radius:0 12px 12px 0}.page-title+.mission-list{margin-top:-5px}.mission-list .mission-card{min-height:75px}.soft-note{display:flex;align-items:flex-start;gap:9px;color:var(--muted);padding:13px;margin-top:18px;background:#f4ecdf;border-radius:13px;font-size:10px;line-height:1.55}.soft-note span{font-size:15px}.tab-list{display:flex;gap:6px;padding:4px;margin-bottom:14px;background:#eee5d7;border-radius:12px}.tab-list button{flex:1;padding:9px 4px;color:var(--muted);background:transparent;border-radius:9px;font-size:11px;font-weight:700}.tab-list button.active{color:var(--ink);background:var(--surface);box-shadow:0 3px 9px #5e401d14}.leaderboard-card{padding:7px 12px;background:var(--surface);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow)}.leaderboard-row{display:flex;align-items:center;gap:10px;padding:13px 2px;border-bottom:1px solid #f1eae0}.leaderboard-row:last-child{border-bottom:0}.rank{display:grid;place-items:center;width:20px;color:var(--muted);font-size:12px;font-weight:800}.leaderboard-row.gold .rank{color:#d49625}.leaderboard-row.silver .rank{color:#85929b}.leaderboard-row.bronze .rank{color:#b87954}.leaderboard-row strong{font-size:12px}.leader-score{margin-left:auto;color:var(--muted);font-size:10px}.profile-hero{display:flex;align-items:center;gap:14px;margin:6px 3px 23px}.profile-hero h1{font-size:25px;margin:3px 0 2px}.profile-hero p{color:var(--muted);font-size:11px}.icon-button{width:35px;height:35px;margin-left:auto;border-radius:10px;background:#eee4d6;color:var(--muted);font-size:16px}.profile-level-card{padding:16px}.profile-level-head{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:14px}.profile-level-head strong,.profile-level-head>span{display:block;margin-top:4px;font-size:13px}.profile-level-head>span{color:var(--muted);font-size:10px}.profile-section{margin-top:28px}.mastery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.mastery-item{display:flex;flex-direction:column;align-items:center;gap:7px;padding:12px 4px;text-align:center;background:var(--surface);border:1px solid var(--line);border-radius:14px}.mastery-icon{display:grid;place-items:center;width:41px;height:41px;border-radius:12px;font-size:22px}.mastery-item strong{font-size:10px}.mastery-item span:last-child{color:var(--muted);font-size:10px}.achievement-empty{display:flex;align-items:center;gap:11px;padding:13px;box-shadow:none}.achievement-empty>span:first-child{font-size:22px}.achievement-empty strong{font-size:11px}.achievement-empty p{color:var(--muted);font-size:10px;margin-top:3px}.chevron{margin-left:auto;color:var(--muted);font-size:20px}.stats-row{display:grid;grid-template-columns:repeat(3,1fr);padding:16px 8px;background:var(--surface);border:1px solid var(--line);border-radius:15px}.stats-row div{text-align:center;border-right:1px solid var(--line)}.stats-row div:last-child{border:0}.stats-row strong,.stats-row span{display:block}.stats-row strong{font-size:16px}.stats-row span{color:var(--muted);font-size:9px;margin-top:4px}.event-hero{position:relative;overflow:hidden;display:flex;align-items:center;gap:16px;min-height:180px;padding:22px;margin-bottom:13px;color:#fff;border-radius:22px;background:linear-gradient(145deg,#d56b4b,#8e4f4c)}.event-hero:after{content:"";position:absolute;right:-36px;bottom:-50px;width:190px;height:190px;border:1px solid rgba(255,255,255,.25);border-radius:50%;box-shadow:0 0 0 22px #ffffff14,0 0 0 45px #ffffff0f}.event-hero-lantern{font-size:56px;z-index:1}.event-hero-flower{position:absolute;right:22px;top:17px;color:#ffffff4d;font-size:40px}.event-hero h2{position:relative;font-size:22px;margin:9px 0 4px;z-index:1}.event-hero p{position:relative;color:#fffc;font-size:10px;z-index:1}.event-info-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.event-info-grid .card{display:flex;flex-direction:column;gap:3px;padding:14px;box-shadow:none}.info-icon{font-size:18px;margin-bottom:4px}.event-info-grid span:not(.info-icon){color:var(--muted);font-size:9px}.event-info-grid strong{font-size:12px}.event-section{margin-top:28px}.event-mission{display:flex;align-items:center;gap:11px;padding:14px;margin-bottom:10px;box-shadow:none}.event-mission>span{font-size:24px}.event-mission strong{font-size:11px}.event-mission p{color:var(--muted);font-size:10px;margin-top:3px}.settings-card{padding:5px 15px;box-shadow:none}.settings-group{padding:13px 0}.settings-label{display:block;color:var(--primary);font-size:10px;font-weight:800;letter-spacing:1px;margin-bottom:5px}.settings-divider{height:1px;background:var(--line)}.setting-row{display:flex;align-items:center;gap:11px;min-height:65px;border-bottom:1px solid #f3eee6}.setting-row:last-child{border-bottom:0}.setting-icon{display:grid;place-items:center;width:31px;height:31px;flex:0 0 auto;border-radius:10px;background:#f5ecdf;font-size:15px}.setting-row>div{flex:1}.setting-row strong{display:block;font-size:12px}.setting-row p{color:var(--muted);font-size:10px;margin-top:3px}.setting-value{color:var(--muted);font-size:10px}.toggle{position:relative;width:39px;height:23px;flex:0 0 auto;padding:3px;border-radius:999px;background:#dcd5cc;transition:background .2s}.toggle span{display:block;width:17px;height:17px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #0000001f;transition:transform .2s}.toggle.is-on{background:var(--primary)}.toggle.is-on span{transform:translate(16px)}.not-found-page,.not-found-inline{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:55vh;text-align:center}.not-found-illustration{display:grid;place-items:center;width:102px;height:102px;margin-bottom:22px;border-radius:35% 55% 45% 50%;background:#f4d99a;font-size:48px;transform:rotate(-8deg)}.not-found-page h1,.not-found-inline h1{margin:8px 0;font-size:25px}.not-found-page p{max-width:250px;color:var(--muted);font-size:12px;line-height:1.6;margin-bottom:22px}.not-found-inline>span{font-size:48px;margin-bottom:13px}.not-found-inline .button{margin-top:20px}.state-card{display:flex;flex-direction:column;align-items:center;gap:8px;padding:35px 18px;text-align:center;border:1px dashed var(--line);border-radius:17px}.state-card strong{font-size:13px}.state-card p{color:var(--muted);font-size:11px}.state-icon{font-size:25px}.spinner{width:25px;height:25px;border:3px solid #eadfce;border-top-color:var(--primary);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(min-width:621px){body{padding:22px 0}.app-frame{min-height:calc(100vh - 44px);border-radius:26px;overflow:hidden}.app-header{border-radius:26px 26px 0 0}.bottom-nav{bottom:22px;border-radius:0 0 26px 26px}.page-content{padding-left:30px;padding-right:30px}}@media(min-width:900px){.app-frame{max-width:760px}.game-grid{grid-template-columns:repeat(4,1fr)}.game-card .game-art{min-height:125px}.page-content{padding-left:44px;padding-right:44px}}@media(max-width:370px){.page-content{padding-left:14px;padding-right:14px}.game-card p{font-size:9px}.game-card-heading h3{font-size:12px}}.auth-loading,.auth-error{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px;padding:24px;text-align:center;background:var(--bg)}.auth-loading strong,.auth-error h1{font-size:16px}.auth-loading p,.auth-error p{color:var(--muted);font-size:11px}.auth-error>span{font-size:32px}.auth-error h1{margin:5px 0 0}.catalog-state{padding:24px 12px;color:var(--muted);font-size:12px;text-align:center;background:#fff8ed;border-radius:14px}
