*{margin:0;padding:0;box-sizing:border-box}html,body{width:100%;height:100%;margin:0;overflow:hidden;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;user-select:none;-webkit-user-select:none}#app{position:fixed;inset:0;width:100%;height:100%;overflow:hidden;background:linear-gradient(180deg,#2b2b2b,#282828,#252525)}#app canvas{position:absolute;left:0;top:0;display:block}#ui-root{position:fixed;inset:0;pointer-events:none;padding:env(safe-area-inset-top,0) env(safe-area-inset-right,0) env(safe-area-inset-bottom,0) env(safe-area-inset-left,0)}#ui-root button,#ui-root .clickable{pointer-events:auto}#ui-root .ui-screen{pointer-events:auto;display:flex;flex-direction:column;align-items:center;gap:1rem}#ui-root .ui-title{font-size:2.5rem;font-weight:700;color:#fff}#ui-root .ui-subtitle{font-size:1.25rem;font-weight:600;color:#aaa;margin-top:.5rem}#ui-root .ui-coins{font-size:1.25rem;color:#ccc}#ui-root .ui-btn{padding:.6rem 1.5rem;font-size:1.1rem;color:#fff;background:#4a90d9;border:none;border-radius:4px;cursor:pointer}#ui-root .ui-btn:hover{background:#5aa0e9}#ui-root .ui-loading-screen{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;padding:24px;pointer-events:auto;background:radial-gradient(120% 90% at 50% 10%,rgba(255,255,255,.06),transparent 45%),linear-gradient(180deg,#1f1f1f,#191919 52%,#131313)}#ui-root .ui-loading{width:min(92vw,420px);display:flex;flex-direction:column;align-items:center;gap:12px;padding:22px 20px 18px;border-radius:16px;background:#ffffff0d;border:1px solid rgba(255,255,255,.08);box-shadow:0 10px 26px #00000047,inset 0 1px #ffffff0a}#ui-root .ui-loading-brand{display:flex;align-items:center;justify-content:center;width:100%;min-height:56px}#ui-root .ui-loading-logo{width:min(68vw,210px);max-width:100%;height:auto;object-fit:contain;image-rendering:-webkit-optimize-contrast}#ui-root .ui-loading-logo-fallback{width:52px;height:52px;border-radius:14px;display:inline-flex;align-items:center;justify-content:center;font-size:28px;background:#ffffff14;box-shadow:0 0 18px #ffffff14}#ui-root .ui-loading-text{margin:0;font-size:.95rem;font-weight:500;letter-spacing:.02em;color:#ffffffc2}#ui-root .ui-loading-progress{position:relative;width:min(80%,260px);height:6px;border-radius:999px;overflow:hidden;background:#ffffff14}#ui-root .ui-loading-progress-bar{position:absolute;inset:0 auto 0 0;width:42%;border-radius:inherit;background:linear-gradient(90deg,rgba(255,255,255,.16) 0%,var(--ui-accent-button-bg, rgba(255, 255, 255, .26)) 55%,rgba(255,255,255,.16) 100%);animation:ui-loading-progress .9s ease-in-out infinite}@keyframes ui-loading-progress{0%{transform:translate(-90%)}50%{transform:translate(60%)}to{transform:translate(190%)}}#ui-root .ui-btn-back{--ui-back-size: var(--ui-icon-btn-size, 40px);width:var(--ui-back-size);height:var(--ui-back-size);min-width:var(--ui-back-size);min-height:var(--ui-back-size);padding:0;font-size:1.25rem;line-height:1;color:var(--ui-icon-btn-color);background:var(--ui-icon-btn-bg);border:none;border-radius:var(--ui-icon-btn-radius);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;transition:var(--ui-icon-btn-transition)}#ui-root .ui-btn-back:hover{background:var(--ui-icon-btn-bg-hover);transform:scale(var(--ui-icon-btn-scale-hover))}#ui-root .ui-btn-back:active{background:var(--ui-icon-btn-bg-active);transform:scale(var(--ui-icon-btn-scale-active))}#ui-root .puzzle-ui{position:fixed;inset:0;pointer-events:none}#ui-root .puzzle-ui button{pointer-events:auto}#ui-root .puzzle-topbar,#ui-root .hub-topbar{position:absolute;left:0;right:0;top:0;min-height:var(--ui-topbar-min-height);display:flex;align-items:center;padding:var(--ui-topbar-padding-y) var(--ui-topbar-padding-x);gap:var(--ui-topbar-gap);pointer-events:auto;background:var(--ui-topbar-background);box-shadow:var(--ui-topbar-shadow)}#ui-root .hub-topbar{position:relative;height:var(--ui-topbar-min-height);min-height:0;overflow:visible}#ui-root .hub-topbar .hub-topbar-brand,#ui-root .puzzle-topbar .hub-topbar-brand{position:relative;flex-shrink:0;width:160px;max-width:40%;height:var(--ui-topbar-min-height);padding:6px 14px}#ui-root .hub-topbar .hub-topbar-brand:before,#ui-root .puzzle-topbar .hub-topbar-brand:before{content:"";position:absolute;inset:-6px -10px;border-radius:20px;background:radial-gradient(circle at 30% 50%,rgba(255,255,255,.1),transparent 70%);pointer-events:none;z-index:0}#ui-root .hub-topbar .hub-topbar-brand .hub-topbar-logo,#ui-root .puzzle-topbar .hub-topbar-brand .hub-topbar-logo{position:absolute;left:0;top:50%;transform:translateY(-50%) translateZ(0);height:73px;width:auto;max-width:100%;object-fit:contain;image-rendering:-webkit-optimize-contrast;backface-visibility:hidden;z-index:1}@media(max-width:480px){#ui-root .hub-topbar .hub-topbar-brand .hub-topbar-logo,#ui-root .puzzle-topbar .hub-topbar-brand .hub-topbar-logo{height:72px}}@media(max-width:360px){#ui-root .hub-topbar .hub-topbar-brand .hub-topbar-logo,#ui-root .puzzle-topbar .hub-topbar-brand .hub-topbar-logo{height:57px}}#ui-root .puzzle-topbar .puzzle-topbar-center{flex:1;display:flex;justify-content:center;align-items:center;min-width:0}#ui-root .puzzle-topbar .puzzle-topbar-right{display:flex;align-items:center;flex-shrink:0}#ui-root .puzzle-topbar .puzzle-topbar-skip.ui-pill{cursor:pointer;padding:0 12px;height:32px;min-height:32px;background:#ffffff0f;box-shadow:0 1px 3px #00000026;font-weight:400}#ui-root .puzzle-topbar .puzzle-topbar-skip.ui-pill .ui-pill-text{font-size:.8125rem;font-weight:400;color:#ffffffb8}#ui-root .puzzle-topbar .puzzle-progress-capsule,#ui-root .puzzle-topbar .puzzle-coins-capsule{display:inline-flex;align-items:center;height:var(--ui-pill-height);min-height:var(--ui-pill-height);padding:0 var(--ui-pill-padding-x);gap:var(--ui-pill-gap);background:var(--ui-pill-background);border-radius:var(--ui-pill-border-radius);flex-shrink:0;box-shadow:var(--ui-pill-shadow)}#ui-root .puzzle-progress-capsule{position:relative;overflow:hidden}#ui-root .puzzle-progress-inner{position:relative;display:flex;align-items:center;gap:var(--ui-pill-gap)}#ui-root .puzzle-progress-icon{display:flex;align-items:center;justify-content:center;font-size:var(--ui-capsule-icon-font-size);line-height:1;flex-shrink:0;filter:var(--ui-capsule-icon-filter)}#ui-root .puzzle-progress{font-size:var(--ui-capsule-font-size);font-weight:var(--ui-capsule-font-weight);font-variant-numeric:tabular-nums;color:var(--ui-capsule-color);letter-spacing:.02em;white-space:nowrap}#ui-root .puzzle-progress-bar{position:absolute;left:0;right:0;bottom:0;height:var(--ui-progress-bar-height);background:var(--ui-progress-bar-bg);border-radius:0 0 var(--ui-progress-bar-radius) var(--ui-progress-bar-radius);overflow:hidden}#ui-root .puzzle-progress-bar-fill{height:100%;background:var(--ui-progress-bar-fill);border-radius:0 0 0 var(--ui-progress-bar-radius);transition:width .2s ease}#ui-root .puzzle-coins-icon{display:flex;align-items:center;justify-content:center;font-size:var(--ui-capsule-icon-font-size);line-height:1;flex-shrink:0;filter:var(--ui-capsule-icon-filter)}#ui-root .puzzle-coins-capsule .puzzle-coins{font-size:var(--ui-capsule-font-size);font-weight:var(--ui-capsule-font-weight);font-variant-numeric:tabular-nums;color:var(--ui-capsule-color);white-space:nowrap}#ui-root .ui-pill{display:inline-flex;align-items:center;height:var(--ui-pill-height);min-height:var(--ui-pill-height);padding:0 var(--ui-pill-padding-x);gap:var(--ui-pill-gap);background:var(--ui-pill-background);border-radius:var(--ui-pill-border-radius);flex-shrink:0;box-shadow:var(--ui-pill-shadow)}#ui-root .ui-pill .ui-pill-icon,#ui-root .ui-pill .puzzle-progress-icon{display:flex;align-items:center;justify-content:center;font-size:var(--ui-capsule-icon-font-size);line-height:1;flex-shrink:0;filter:var(--ui-capsule-icon-filter)}#ui-root .ui-pill .ui-pill-text,#ui-root .ui-pill .puzzle-progress{font-size:var(--ui-capsule-font-size);font-weight:var(--ui-capsule-font-weight);font-variant-numeric:tabular-nums;color:var(--ui-capsule-color);white-space:nowrap}#ui-root .ui-pill-btn{display:inline-flex;align-items:center;height:var(--ui-pill-height);min-height:var(--ui-pill-height);padding:0 var(--ui-pill-padding-x);gap:var(--ui-pill-gap);background:var(--ui-pill-background);border-radius:var(--ui-pill-border-radius);flex-shrink:0;box-shadow:var(--ui-pill-shadow);border:none;cursor:pointer;color:var(--ui-capsule-color);font-size:var(--ui-capsule-font-size);font-weight:var(--ui-capsule-font-weight);transition:var(--ui-icon-btn-transition)}#ui-root .ui-pill-btn:hover{background:var(--ui-icon-btn-bg-hover);transform:scale(var(--ui-icon-btn-scale-hover))}#ui-root .ui-pill-btn:active{background:var(--ui-icon-btn-bg-active);transform:scale(var(--ui-icon-btn-scale-active))}#ui-root .ui-pill-btn .ui-pill-btn-icon{display:flex;align-items:center;justify-content:center;font-size:var(--ui-capsule-icon-font-size);line-height:1;flex-shrink:0;filter:var(--ui-capsule-icon-filter)}#ui-root .ui-pill-btn .ui-pill-btn-text{white-space:nowrap}#ui-root .hub-daily-cta{border-radius:var(--ui-accent-button-radius, 10px);background:var(--ui-accent-button-bg);color:var(--ui-accent-button-color);box-shadow:var(--ui-pill-shadow);transition:var(--ui-icon-btn-transition)}#ui-root .hub-daily-cta:hover{background:var(--ui-icon-btn-bg-hover);transform:scale(var(--ui-icon-btn-scale-hover))}#ui-root .hub-daily-cta:active{background:var(--ui-accent-button-bg-active);transform:scale(var(--ui-accent-button-scale-active))}#ui-root .ui-card{width:100%;background:var(--ui-card-bg);border-radius:var(--ui-card-radius);box-shadow:var(--ui-card-shadow);overflow:hidden}#ui-root .ui-card-inner{display:flex;flex-direction:column;align-items:center;padding:var(--ui-card-inner-padding);gap:var(--ui-card-gap)}#ui-root .ui-pack-card{cursor:pointer;transition:var(--ui-icon-btn-transition);text-align:center;display:flex;flex-direction:column;height:100%;min-height:0}#ui-root .ui-pack-card .ui-card-inner{flex:1;min-height:0}#ui-root .ui-pack-card:hover{transform:scale(var(--ui-icon-btn-scale-hover))}#ui-root .ui-pack-card.ui-pack-card--pressed,#ui-root .ui-pack-card:active{transform:scale(var(--ui-icon-btn-scale-active))}#ui-root .ui-pack-card .ui-pack-card-title{font-size:var(--ui-text-primary-font-size);color:var(--ui-text-primary);font-weight:600}#ui-root .ui-pack-card-progress-row{display:flex;align-items:center;gap:8px;width:100%;flex-shrink:0}#ui-root .ui-pack-card-progress-track{flex:1;min-width:0;height:5px;border-radius:var(--ui-progress-bar-radius, 16px);background:var(--ui-progress-bar-bg, rgba(255, 255, 255, .08));overflow:hidden}#ui-root .ui-pack-card-progress-fill{height:100%;border-radius:inherit;background:var(--ui-progress-bar-fill, rgba(255, 255, 255, .25));transition:width .2s ease}#ui-root .ui-pack-card .ui-pack-card-progress{font-size:var(--ui-text-secondary-font-size);color:var(--ui-text-secondary);white-space:nowrap}#ui-root .ui-pack-card-corner{position:absolute;top:6px;right:6px;display:flex;align-items:center;gap:4px;pointer-events:none}#ui-root .ui-pack-card-lock-indicator{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:var(--ui-pill-border-radius);background:var(--ui-pill-background, rgba(0, 0, 0, .6));color:var(--ui-capsule-color, #fff);font-size:.85rem}#ui-root .ui-pack-card-badge{font-size:.7rem;padding:2px 6px;border-radius:var(--ui-pill-border-radius);background:var(--ui-pill-background, rgba(0, 0, 0, .6));color:var(--ui-capsule-color, #fff)}#ui-root .ui-pack-card-lock-pill{position:absolute;left:50%;bottom:8px;transform:translate(-50%);padding:4px 10px;border-radius:var(--ui-pill-border-radius);background:#0009;color:#fff;font-size:var(--ui-capsule-font-size);white-space:nowrap;pointer-events:none}#ui-root .ui-daily-card-title{margin:0;font-size:1.08rem;font-weight:var(--ui-headline-sm-font-weight);color:var(--ui-headline-sm-color);text-align:center}#ui-root .ui-daily-progress-row{display:flex;align-items:center;gap:8px;flex:1;min-width:0}#ui-root .ui-daily-progress-track{flex:1;min-width:0;height:5px;border-radius:var(--ui-progress-bar-radius, 16px);background:var(--ui-progress-bar-bg, rgba(255, 255, 255, .08));overflow:hidden}#ui-root .ui-daily-progress-fill{height:100%;border-radius:inherit;background:var(--ui-progress-bar-fill, rgba(255, 255, 255, .25));transition:width .2s ease}#ui-root .ui-daily-progress-label{font-size:var(--ui-text-secondary-font-size);color:var(--ui-text-secondary);white-space:nowrap}#ui-root .ui-daily-status-row{flex-shrink:0}#ui-root .ui-daily-countdown{font-size:var(--ui-muted-font-size);color:var(--ui-muted-color)}#ui-root .ui-complete-screen{position:fixed;inset:0;pointer-events:auto}#ui-root .ui-complete-dim{position:fixed;background:#00000052;opacity:0;transition:opacity .22s ease-out;pointer-events:none;z-index:2;left:0;top:0;width:100%;height:100%}#ui-root .ui-complete-dim.is-visible{opacity:1}#ui-root .ui-complete-panel{position:fixed;left:50%;top:56%;transform:translate(-50%,-50%) translateY(10px);width:min(92vw,360px);padding:18px 16px 14px;border-radius:var(--ui-card-radius, 12px);background:#00000070;border:1px solid rgba(255,255,255,.08);box-shadow:0 10px 24px #00000047;display:flex;flex-direction:column;gap:12px;opacity:0;transition:opacity .22s ease-out,transform .24s ease-out;z-index:3}#ui-root .ui-complete-panel.is-visible{opacity:1;transform:translate(-50%,-50%) translateY(0)}#ui-root .ui-complete-title{margin:0;font-size:1.15rem;line-height:1.2;font-weight:600;color:#fffffff2;text-align:center}#ui-root .ui-complete-subtitle{margin:0;font-size:.88rem;line-height:1.35;color:#ffffffc2;text-align:center}#ui-root .ui-complete-actions{display:flex;flex-direction:column;gap:10px;width:100%}#ui-root .ui-pill-btn.ui-complete-btn-primary,#ui-root .ui-pill-btn.ui-complete-btn-secondary{width:100%;justify-content:center}#ui-root .ui-pill-btn.ui-complete-btn-primary{background:var(--ui-accent-button-bg, rgba(255, 255, 255, .16));color:var(--ui-accent-button-color, rgba(255, 255, 255, .95))}#ui-root .ui-pill-btn.ui-complete-btn-secondary{background:#ffffff14;color:#ffffffe0;border:1px solid rgba(255,255,255,.12)}#ui-root .puzzle-side{position:absolute;left:16px;top:84px;display:flex;flex-direction:column;gap:12px;pointer-events:auto}#ui-root .puzzle-side .hint-btn{padding:.5rem 1rem;font-size:.9rem;color:#fff;background:#4a90d9;border:none;border-radius:4px;cursor:pointer}#ui-root .puzzle-side .hint-btn:disabled{opacity:.5;cursor:default}#ui-root .puzzle-tray{position:absolute;left:0;right:0;bottom:0;height:180px;padding:12px 16px;background:transparent;pointer-events:none;box-sizing:border-box}#ui-root .puzzle-tray-title{font-size:.95rem;color:#aaa;margin-bottom:8px;pointer-events:none}#ui-root .puzzle-tray-scroll{height:120px;border:1px dashed rgba(255,255,255,.18);border-radius:18px;box-sizing:border-box;pointer-events:none}@keyframes tutorialHintFloat{0%,to{transform:translate(-50%) translateY(0)}50%{transform:translate(-50%) translateY(-3px)}}#ui-root .tutorial-hint.tutorial-hint-float{animation:tutorialHintFloat 1.4s ease-in-out infinite}#ui-root .collection-screen{width:100%;max-width:420px}#ui-root .collection-content{padding:28px var(--ui-topbar-padding-x) var(--ui-topbar-padding-y);width:100%;max-width:420px;display:flex;flex-direction:column;align-items:stretch;gap:0}#ui-root .collection-title{font-size:1.25rem;font-weight:600;letter-spacing:.02em;color:#ffffffeb;margin:0}#ui-root .collection-subtitle{font-size:var(--ui-text-secondary-font-size, .85rem);margin:6px 0 0;opacity:.6;color:var(--ui-text-secondary, rgba(255, 255, 255, .82))}#ui-root .collection-divider{height:1px;background:linear-gradient(to right,transparent,rgba(255,255,255,.15),transparent);margin-top:12px;margin-bottom:24px;border:none}#ui-root .collection-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;width:100%}@media(min-width:480px){#ui-root .collection-grid{grid-template-columns:repeat(3,1fr)}}#ui-root .collection-card{display:flex;flex-direction:column;align-items:stretch;gap:.25rem;padding:var(--ui-card-inner-padding, 8px);background:var(--ui-card-bg);border-radius:var(--ui-card-radius, 12px);box-shadow:var(--ui-card-shadow);cursor:pointer;text-align:center;transition:var(--ui-icon-btn-transition)}#ui-root .collection-card:hover{transform:scale(var(--ui-icon-btn-scale-hover, .98))}#ui-root .collection-card-thumb{width:100%;aspect-ratio:1;min-height:80px;border-radius:var(--ui-preview-radius, var(--ui-card-radius, 12px));overflow:hidden;background:#444}#ui-root .collection-card-title{font-size:var(--ui-text-primary-font-size, .95rem);color:var(--ui-text-primary);font-weight:600}
