:root{--bg:#07090d;--surface:#ffffff09;--surface-strong:#ffffff0f;--border:#ffffff17;--text:#eef2f6;--text-muted:#93a0b4;--accent:#34d399;--accent-2:#a3e635;--gold:#fbbf24;--danger:#f87171;--cell-empty:#141a24;--tier-1:#22d3ee;--tier-2:#34d399;--tier-3:#a3e635;--tier-4:#fbbf24;--tier-1-glow:#22d3ee80;--tier-2-glow:#34d39980;--tier-3-glow:#a3e63580;--tier-4-glow:#fbbf2480;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html{background:var(--bg);min-height:100%}body{min-width:320px;min-height:100%;margin:0}#root{min-height:100svh}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}::selection{color:#071009;background:var(--accent)}.app{background:radial-gradient(900px 500px at 85% -10%, #34d39914, transparent 60%), radial-gradient(700px 420px at -10% 105%, #fbbf240f, transparent 60%), var(--bg);justify-content:center;min-height:100svh;padding:clamp(14px,3.5vw,40px);display:flex}.layout{align-content:start;gap:16px;width:100%;max-width:1080px;display:grid}.layout>*{min-width:0}.board,.card{border:1px solid var(--border);background:var(--surface);border-radius:20px}.board{padding:clamp(16px,3vw,28px)}.panel{align-content:start;gap:14px;display:grid}.card{border-radius:16px;padding:16px}.brand{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:20px;display:flex}.brand-badge{color:#071009;background:linear-gradient(135deg, var(--accent), var(--accent-2));border-radius:13px;flex:none;place-items:center;width:42px;height:42px;display:grid;box-shadow:0 10px 26px -12px #34d399a6}.brand-copy h1{letter-spacing:-.01em;margin:0;font-size:19px;font-weight:800}.brand-version{color:#1a1204;background:var(--gold);vertical-align:2px;border-radius:999px;margin-left:4px;padding:2px 7px;font-size:11px;font-weight:800;display:inline-block}.brand-copy p{color:var(--text-muted);margin:2px 0 0;font-size:12.5px}.stats-top{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:14px;display:flex}.stats-percent{letter-spacing:-.03em;font-variant-numeric:tabular-nums;background:linear-gradient(100deg, var(--tier-2), var(--tier-3) 55%, var(--tier-4));color:#0000;-webkit-background-clip:text;background-clip:text;font-size:clamp(46px,9vw,64px);font-weight:850;line-height:.95;display:block}.stats-remaining{color:var(--text-muted);font-variant-numeric:tabular-nums;margin-top:8px;font-size:14px;display:block}.stats-remaining.is-complete{color:var(--gold);font-weight:700}.stats-figures{gap:8px;margin:0;display:flex}.stats-figures>div{border:1px solid var(--border);background:var(--surface-strong);border-radius:12px;min-width:118px;padding:10px 14px}.stats-figures dt{color:var(--text-muted);letter-spacing:.07em;text-transform:uppercase;font-size:10.5px;font-weight:700}.stats-figures dd{font-variant-numeric:tabular-nums;overflow-wrap:anywhere;margin:4px 0 0;font-size:15px;font-weight:750}.stats-bar{background:#ffffff12;border-radius:999px;height:6px;margin:16px 0 18px;overflow:hidden}.stats-bar-fill{border-radius:inherit;transform-origin:0;background:linear-gradient(90deg, var(--tier-1), var(--tier-2) 35%, var(--tier-3) 70%, var(--tier-4));width:100%;height:100%;transition:transform .52s cubic-bezier(.22,1,.36,1);display:block}.pixel-grid{grid-template-columns:repeat(var(--dim), minmax(0, 1fr));border-radius:12px;gap:clamp(3px,.85vw,7px);display:grid}.pixel-grid.is-complete{box-shadow:0 0 70px -22px var(--tier-4-glow);animation:.9s both grid-celebrate}.cell{aspect-ratio:1;background:var(--cell-empty);border-radius:22%;position:relative;box-shadow:inset 0 0 0 1px #ffffff09}.cell.tier-1{--c:var(--tier-1);--c-glow:var(--tier-1-glow)}.cell.tier-2{--c:var(--tier-2);--c-glow:var(--tier-2-glow)}.cell.tier-3{--c:var(--tier-3);--c-glow:var(--tier-3-glow)}.cell.tier-4{--c:var(--tier-4);--c-glow:var(--tier-4-glow)}.cell:before{content:"";border-radius:inherit;background:linear-gradient(180deg, #ffffff47, #fff0 55%) var(--c,transparent);transform-origin:bottom;transform:scaleY(var(--f,0));transition:transform .42s cubic-bezier(.22,1,.36,1);position:absolute;inset:0}.cell.is-lit{animation:.34s cubic-bezier(.34,1.56,.64,1) both cell-pop}.cell.is-lit:not(.is-full):before{animation:2.6s ease-in-out infinite cell-frontier}.cell.is-full{animation:.38s cubic-bezier(.34,1.56,.64,1) both cell-complete}.cell.is-full:before{box-shadow:0 0 9px var(--c-glow)}@keyframes cell-pop{0%{opacity:0;transform:scale(.55)}60%{transform:scale(1.1)}to{opacity:1;transform:scale(1)}}@keyframes cell-complete{0%{transform:scale(1)}40%{transform:scale(1.2)}to{transform:scale(1)}}@keyframes cell-frontier{0%,to{filter:brightness()}50%{filter:brightness(1.35)}}@keyframes grid-celebrate{0%{transform:scale(1)}35%{transform:scale(1.02)}to{transform:scale(1)}}@media (hover:hover){.cell:after{content:attr(data-tip);z-index:3;border:1px solid var(--border);color:var(--text);font-variant-numeric:tabular-nums;white-space:nowrap;opacity:0;pointer-events:none;background:#10151d;border-radius:8px;padding:5px 9px;font-size:11px;font-weight:650;transition:opacity .13s,transform .13s;position:absolute;bottom:calc(100% + 7px);left:50%;transform:translate(-50%,4px)}.cell:hover{z-index:4}.cell:hover:after{opacity:1;transform:translate(-50%)}}.grid-caption{color:var(--text-muted);font-variant-numeric:tabular-nums;flex-wrap:wrap;justify-content:space-between;gap:6px 14px;margin-top:14px;font-size:12px;display:flex}.card-label{color:var(--text-muted);letter-spacing:.07em;text-transform:uppercase;justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px;font-size:11.5px;font-weight:750;display:flex}.input-row{gap:8px;display:flex}.money-wrap{flex:1;min-width:0;position:relative}.money-wrap .money-input{width:100%;padding-right:42px}.clear-button{width:28px;height:28px;color:var(--text-muted);background:#ffffff12;border:0;border-radius:8px;place-items:center;padding:0;transition:color .15s,background .15s;display:grid;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.clear-button:hover{color:var(--text);background:#ffffff24}.money-input{border:1px solid var(--border);min-width:0;height:48px;color:var(--text);font:inherit;font-variant-numeric:tabular-nums;background:#ffffff0d;border-radius:12px;flex:1;padding:0 14px;font-size:16px;font-weight:650;transition:border-color .15s,box-shadow .15s}.money-input::placeholder{color:#ffffff4d;font-weight:500}.money-input:focus-visible{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px #34d39938}button{font:inherit;cursor:pointer}.primary{color:#071009;background:linear-gradient(135deg, var(--accent), var(--accent-2));border:0;border-radius:12px;justify-content:center;align-items:center;gap:7px;height:48px;padding:0 16px;font-size:14.5px;font-weight:800;transition:transform .15s,filter .15s;display:inline-flex;box-shadow:0 10px 22px -12px #34d3998c}.primary:hover{filter:brightness(1.06);transform:translateY(-1px)}.primary:active{transform:translateY(0)scale(.98)}.ghost{border:1px solid var(--border);color:var(--text-muted);letter-spacing:normal;text-transform:none;background:0 0;border-radius:9px;align-items:center;gap:6px;padding:6px 10px;font-size:12px;font-weight:700;transition:color .15s,border-color .15s,background .15s;display:inline-flex}.ghost:hover:not(:disabled){color:var(--text);background:#f871711f;border-color:#f8717180}.ghost:disabled{opacity:.45;cursor:default}.entry-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.entry-list li{background:#ffffff0b;border:1px solid #ffffff0f;border-radius:12px;justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;display:flex}.entry-info strong{font-variant-numeric:tabular-nums;font-size:14.5px;font-weight:750;display:block}.entry-info time{color:var(--text-muted);margin-top:2px;font-size:11.5px;display:block}.icon-button{width:34px;height:34px;color:var(--text-muted);background:#ffffff0f;border:0;border-radius:10px;flex:none;place-items:center;padding:0;transition:color .15s,background .15s;display:grid}.icon-button:hover{color:#fff;background:var(--danger)}.empty-row{border:1px dashed var(--border);color:var(--text-muted);text-align:center;border-radius:12px;margin:0;padding:20px 12px;font-size:13px}.more-note{color:var(--text-muted);text-align:center;margin:10px 0 0;font-size:12px}@media (width>=920px){.layout{grid-template-columns:minmax(0,1.3fr) minmax(320px,.85fr);gap:20px}}@media (width<=480px){.stats-figures{width:100%}.stats-figures>div{flex:1;min-width:0}.primary span{display:none}.primary{width:48px;padding:0}.edit-goal span{display:none}.edit-goal{padding:6px 9px}}.screen{width:100%;max-width:1080px}.setup{gap:14px;width:100%;max-width:460px;margin:0 auto;padding-top:clamp(8px,6vh,56px);display:grid}.setup-brand{justify-content:center;margin-bottom:8px}.setup-card h2{letter-spacing:-.01em;margin:4px 0 14px;font-size:21px;font-weight:800}.setup-tag{color:var(--accent);letter-spacing:.09em;text-transform:uppercase;background:#34d3991a;border:1px solid #34d39959;border-radius:999px;align-items:center;gap:6px;margin:0;padding:4px 10px;font-size:11px;font-weight:800;display:inline-flex}.field-label{color:var(--text-muted);letter-spacing:.07em;text-transform:uppercase;margin:14px 0 7px;font-size:11.5px;font-weight:750;display:block}.setup .money-input{width:100%}.cloud-opt{border:1px solid var(--border);cursor:pointer;background:#ffffff08;border-radius:12px;align-items:center;gap:11px;margin-top:16px;padding:12px;transition:border-color .15s,background .15s;display:flex}.cloud-opt input{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}.cloud-opt.is-on{background:#34d39914;border-color:#34d39980}.cloud-opt-icon{width:36px;height:36px;color:var(--text-muted);background:#ffffff0f;border-radius:10px;flex:none;place-items:center;transition:color .15s,background .15s;display:grid}.cloud-opt.is-on .cloud-opt-icon{color:#071009;background:linear-gradient(135deg, var(--accent), var(--accent-2))}.cloud-opt-text{flex:1;min-width:0}.cloud-opt-text strong{font-size:13.5px;display:block}.cloud-opt-text small{color:var(--text-muted);margin-top:2px;font-size:11.5px;line-height:1.35;display:block}.cloud-opt-pill{color:var(--text-muted);letter-spacing:.08em;background:#ffffff12;border-radius:999px;flex:none;padding:3px 8px;font-size:10.5px;font-weight:800}.cloud-opt.is-on .cloud-opt-pill{color:#071009;background:var(--accent-2)}.setup-actions{justify-content:flex-end;gap:8px;margin-top:16px;display:flex}.setup-start{flex:1}.setup-divider{color:var(--text-muted);letter-spacing:.14em;text-transform:uppercase;align-items:center;gap:12px;font-size:11.5px;font-weight:700;display:flex}.setup-divider:before,.setup-divider:after{content:"";background:var(--border);flex:1;height:1px}.code-input{letter-spacing:.06em;text-transform:uppercase;font-family:ui-monospace,Cascadia Mono,Consolas,monospace;font-size:14px}.form-error{color:var(--danger);margin:10px 0 0;font-size:12.5px;font-weight:600}.brand-actions{flex:none;gap:8px;margin-left:auto;display:flex}.theme-button{padding:6px 9px}.theme-button:hover:not(:disabled),.edit-goal:hover:not(:disabled){color:var(--text);background:#34d3991f;border-color:#34d39980}.cloud-hint{color:var(--text-muted);margin:0 0 12px;font-size:12.5px;line-height:1.45}.cloud-create{width:100%}.cloud-load{margin-top:10px}.cloud-load-toggle{justify-content:center;width:100%;margin-top:8px}.cloud-load-toggle:hover:not(:disabled){color:var(--text);background:#34d3991f;border-color:#34d39980}.sync-chip{letter-spacing:.02em;text-transform:none;border-radius:999px;align-items:center;gap:5px;padding:3px 9px;font-size:10.5px;font-weight:750;display:inline-flex}.sync-chip.is-off{color:var(--text-muted);background:#ffffff12}.sync-chip.is-loading,.sync-chip.is-saving,.sync-chip.is-dirty{color:#f5d565;background:#fbbf241f}.sync-chip.is-saved{color:var(--accent);background:#34d3991f}.sync-chip.is-error{color:var(--danger);background:#f8717121}.spin{animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.code-pill{width:100%;color:var(--gold);background:#fbbf2412;border:1px dashed #fbbf2473;border-radius:12px;justify-content:space-between;align-items:center;gap:10px;padding:11px 13px;transition:background .15s,border-color .15s;display:flex}.code-pill:hover{border-color:var(--gold);background:#fbbf2421}.code-text{letter-spacing:.09em;text-overflow:ellipsis;white-space:nowrap;font-family:ui-monospace,Cascadia Mono,Consolas,monospace;font-size:14.5px;font-weight:700;overflow:hidden}.code-copied{color:var(--accent)}.cloud-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;margin-top:10px;display:flex}.modal-overlay{z-index:50;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#040609b3;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.modal{text-align:center;background:#0e1219;border:1px solid #fbbf2459;border-radius:20px;width:100%;max-width:400px;padding:26px 22px 22px;box-shadow:0 30px 90px #0000008c}.modal-icon{color:#1a1204;background:linear-gradient(135deg, var(--gold), #fde68a);border-radius:16px;place-items:center;width:54px;height:54px;margin:0 auto 12px;display:grid;box-shadow:0 12px 30px -12px #fbbf2499}.modal h2{letter-spacing:-.01em;margin:0 0 8px;font-size:22px;font-weight:850}.modal p{color:var(--text-muted);margin:0 0 16px;font-size:13.5px;line-height:1.5}.code-pill-big{justify-content:center;margin-bottom:14px;padding:14px}.code-pill-big .code-text{font-size:17px}.modal-note{font-size:12px!important}.modal-done{width:100%}.theme-overlay{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#0406098c}.theme-modal{border-color:var(--border);overscroll-behavior:contain;text-align:left;max-width:420px;max-height:calc(100svh - 32px);padding:20px;overflow-y:auto}.theme-head{align-items:center;gap:12px;margin-bottom:14px;display:flex}.theme-head-icon{color:#071009;background:linear-gradient(135deg, var(--tier-1), var(--tier-3));width:40px;height:40px;box-shadow:0 10px 24px -12px var(--tier-2-glow);border-radius:12px;flex:none;place-items:center;display:grid}.theme-head-copy h2{letter-spacing:-.01em;margin:0;font-size:17px;font-weight:800}.theme-head-copy p{color:var(--text-muted);margin:3px 0 0;font-size:12px;line-height:1.4}.theme-preview{border:1px solid var(--border);background:#ffffff08;border-radius:14px;grid-template-columns:repeat(8,minmax(0,1fr));gap:5px;margin-bottom:14px;padding:10px;display:grid}.theme-preview-cell{aspect-ratio:1;background:linear-gradient(180deg, #ffffff47, #fff0 55%) var(--pc);border-radius:22%;transition:background .2s}.palette-list{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;display:grid}.palette-option{border:1px solid var(--border);min-width:0;color:var(--text);text-align:left;background:#ffffff08;border-radius:12px;align-items:center;gap:9px;padding:10px 12px;font-size:13px;font-weight:700;transition:border-color .15s,background .15s,transform .15s;display:flex}.palette-option:hover{background:#ffffff0f;border-color:#ffffff38;transform:translateY(-1px)}.palette-option.is-active{background:#34d39917;border-color:#34d3998c}.palette-dots{flex:none;gap:3px;display:inline-flex}.palette-dots i{border-radius:4px;width:11px;height:11px}.palette-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.palette-check{color:var(--accent);flex:none}.custom-colors{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:10px;display:grid;overflow:hidden}.color-slot{cursor:pointer;gap:5px;display:grid}.color-slot input[type=color]{border:1px solid var(--border);cursor:pointer;background:#ffffff0a;border-radius:10px;width:100%;height:40px;padding:0;transition:border-color .15s}.color-slot input[type=color]:hover{border-color:#ffffff47}.color-slot input[type=color]::-webkit-color-swatch-wrapper{padding:4px}.color-slot input[type=color]::-webkit-color-swatch{border:none;border-radius:6px}.color-slot input[type=color]::-moz-color-swatch{border:none;border-radius:6px}.color-slot span{color:var(--text-muted);font-variant-numeric:tabular-nums;text-align:center;font-size:10.5px;font-weight:700}.theme-actions{flex-wrap:wrap;align-items:center;gap:8px;margin-top:16px;display:flex}.theme-reset{margin-right:auto}.theme-reset:hover:not(:disabled),.theme-cancel:hover:not(:disabled){color:var(--text);background:#ffffff14;border-color:#ffffff40}.theme-done{min-width:110px;height:38px}@media (width<=360px){.palette-list{grid-template-columns:minmax(0,1fr)}}@media (prefers-reduced-motion:reduce){.cell,.cell:before,.pixel-grid,.stats-bar-fill{transition:none!important;animation:none!important}}
