@import "https://fonts.googleapis.com/css2?family=Share+Tech+Mono&family=Caveat:wght@500;700&display=swap";*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg:#0b0705;--surface:#180f0ad6;--surface-2:#2a1b11d1;--border:#a9825057;--border-strong:#cb9e5f8a;--text:#ead2a7;--muted:#b79868;--accent:#c77b2d;--accent-dim:#c77b2d29;--blue:#496a76;--green:#9fb36a;--red:#c94f38;--amber:#d39a46;--streak:#d39a46;--font-mono:"Share Tech Mono", "Courier New", Courier, monospace;--font-ui:system-ui, "Segoe UI", Roboto, sans-serif;--font-handwriting:"Caveat", cursive;font-family:var(--font-ui);color:var(--text);background-color:var(--bg);-webkit-font-smoothing:antialiased;font-size:16px;line-height:1.5}body{background-color:var(--bg);min-height:100vh}body:after{content:"";z-index:9999;pointer-events:none;background:repeating-linear-gradient(0deg,#0000 0 3px,#0000000d 3px 4px);position:fixed;inset:0}#root{flex-direction:column;width:100%;min-height:100vh;display:flex}.app{min-height:100vh;color:var(--text);background:url(/assets/background-jvfd7RTv.png) 50%/cover no-repeat;position:relative;overflow:hidden}.app>*{z-index:1;position:relative}.app-state{background:#0c0704bd;flex-direction:column;justify-content:center;align-items:center;gap:16px;min-height:100vh;padding:24px;display:flex}.app-state-text,.app-state-hint{font-family:var(--font-mono);color:var(--text);text-shadow:0 2px 8px #000}.app-state-text{font-size:1rem}.app-state-text:before{content:"> ";color:var(--accent)}.app-state--error .app-state-text{color:var(--red)}.app-state-hint{color:var(--muted);font-size:.78rem}.player-header{min-height:64px;color:var(--text);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:linear-gradient(#130c08e0,#130c089e);border-bottom:1px solid #b8915b4d;justify-content:space-between;align-items:center;gap:14px;padding:10px 22px;display:flex;box-shadow:0 10px 36px #00000052}.brand{text-transform:lowercase;flex-direction:column;flex-shrink:0;line-height:1.05;display:flex}.brand-name{font-family:var(--font-mono);color:#f3dfb7;text-shadow:0 2px 10px #000000e6;font-size:clamp(1rem,2vw,1.45rem)}.brand-name:before{content:"[";color:var(--accent);margin-right:5px}.brand-name:after{content:"]";color:var(--accent);margin-left:5px;animation:1.4s step-end infinite blink}.brand-accent{color:var(--accent)}.brand-tag{font-family:var(--font-mono);color:var(--muted);letter-spacing:0;margin-top:3px;font-size:.63rem}.player-identity{font-family:var(--font-mono);color:var(--text);font-size:.82rem}.player-name-bracket{color:var(--accent)}.player-stats,.lang-selector{align-items:center;gap:7px;display:flex}.stat{flex-direction:column;align-items:center;min-width:52px;display:flex}.stat-label{font-family:var(--font-mono);color:var(--muted);text-transform:uppercase;font-size:.52rem}.stat-value{font-family:var(--font-mono);text-shadow:0 2px 8px #000;font-size:1.04rem;line-height:1}.stat-value.rating,.stat-value.streak,.theme-pct{color:var(--amber)}.stat-value.solved,.theme-solved,.rating-change.positive{color:var(--green)}.stat-value.failed,.theme-failed,.rating-change.negative{color:var(--red)}.stat-divider{background:#b8915b47;flex-shrink:0;width:1px;height:30px}.lang-btn{min-width:34px;color:var(--muted);font-family:var(--font-mono);cursor:pointer;background:#00000047;border:1px solid #b8915b6b;border-radius:2px;padding:4px 7px;font-size:.62rem}.lang-btn:hover,.lang-btn--active{color:#1b1009;background:var(--accent);border-color:var(--accent)}.app-main{min-height:calc(100vh - 64px);position:relative}.theme-stats{z-index:2;background:linear-gradient(90deg,#0c0704cc,#0c070461);border-right:1px solid #b8915b3d;width:200px;max-height:calc(100vh - 64px);padding:20px 15px;position:absolute;top:0;left:0;overflow-y:auto;box-shadow:12px 0 34px #00000038}.theme-stats::-webkit-scrollbar{width:4px}.theme-stats::-webkit-scrollbar-track{background:#00000040}.theme-stats::-webkit-scrollbar-thumb{background:#b8915b59;border-radius:2px}.theme-stats::-webkit-scrollbar-thumb:hover{background:#b8915ba6}.theme-stats-title,.theme-stats-empty,.theme-name,.theme-pct,.theme-counts,.puzzle-loading,.coach-label,.coach-status,.coach-text,.result-badge,.rating-change,.next-btn{font-family:var(--font-mono)}.theme-stats-title{color:var(--muted);text-transform:uppercase;margin:0 0 17px;font-size:.64rem}.theme-stats-title:before{content:"marcas / ";color:var(--accent)}.theme-stats-empty{color:var(--muted);font-size:.72rem;line-height:1.7}.theme-list{flex-direction:column;gap:14px;list-style:none;display:flex}.theme-row{flex-direction:column;gap:4px;display:flex}.theme-row-top{justify-content:space-between;align-items:baseline;gap:6px;display:flex}.theme-name{min-width:0;color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-size:.7rem;overflow:hidden}.theme-pct{flex-shrink:0;font-size:.68rem}.theme-bar-track{background:#b8915b33;height:5px;overflow:hidden}.theme-bar-fill{height:100%;transition:width .4s}.theme-counts{color:var(--muted);gap:10px;font-size:.58rem;display:flex}.board-area{min-height:calc(100vh - 64px);padding:clamp(18px,3vw,34px);position:relative}.board-area:before{content:"zulochess.com";color:#150d0870;font-family:var(--font-mono);text-transform:lowercase;text-shadow:0 1px #eecb9329;font-size:clamp(.95rem,2vw,1.7rem);position:absolute;top:clamp(16px,4vh,44px);right:clamp(18px,4vw,70px);transform:rotate(-1deg)}.board-wrapper{transform-origin:50%;background:linear-gradient(145deg,#2c1b11eb,#0e0805f5);border:1px solid #c4975b38;width:clamp(310px,32vw,468px);padding:clamp(8px,1vw,13px);position:absolute;top:clamp(72px,8vh,105px);left:50%;transform:translate(-50%)perspective(1100px)rotateX(.6deg)rotateY(-1.5deg);box-shadow:0 22px 48px #00000094,-6px 4px #0003}.board-wrapper:before,.board-wrapper:after{content:"";background:#110a06b8;border:1px solid #be915b33;width:38px;height:18px;position:absolute;top:-12px}.board-wrapper:before{left:24px;transform:rotate(-5deg)}.board-wrapper:after{right:24px;transform:rotate(5deg)}.puzzle-meta-area{flex-direction:column;gap:6px;width:clamp(130px,13vw,172px);display:flex;position:absolute;top:clamp(72px,8vh,105px);left:calc(50% + clamp(310px,32vw,468px)/2 + 14px);transform:none}.puzzle-meta{background:#0e0804b8;border:1px solid #b8915b38;border-top:2px solid #b8915b61;flex-direction:column;gap:8px;padding:8px 10px 10px;display:flex;box-shadow:0 8px 24px #00000052}.hint-btn{font-family:var(--font-mono);letter-spacing:.07em;color:var(--text);cursor:pointer;background:#160d07f2;border:1px solid #b8915b99;align-items:center;gap:5px;padding:5px 14px;font-size:.7rem;transition:color .15s,border-color .15s,box-shadow .15s,background .15s;display:inline-flex;position:absolute;top:calc(clamp(72px,8vh,105px) - 24px);left:50%;transform:translate(-50%);box-shadow:0 3px 14px #0000008c,0 0 12px #b8915b24}.hint-btn:hover{color:#f3dfb7;background:#221408fa;border-color:#b8915be6;box-shadow:0 3px 14px #0000008c,0 0 22px #b8915b52}.hint-btn:active{color:var(--red);box-shadow:none;border-color:#c94f38a6}.puzzle-meta__rating{align-items:baseline;gap:7px;display:flex}.puzzle-meta__elo-label{font-family:var(--font-mono);color:var(--muted);letter-spacing:.1em;text-transform:uppercase;font-size:.58rem}.puzzle-meta__elo-value{font-family:var(--font-mono);color:var(--amber);text-shadow:0 0 18px #d39a4673;font-size:1.35rem;font-weight:700;line-height:1}.puzzle-meta__tags{flex-wrap:wrap;gap:5px;display:flex}.puzzle-tag{font-family:var(--font-mono);letter-spacing:.04em;color:var(--text);opacity:.75;white-space:nowrap;background:#b8915b0f;border:1px solid #b8915b4d;padding:2px 7px;font-size:.6rem}.puzzle-loading{max-width:min(34vw,360px);color:var(--text);text-shadow:0 2px 8px #000;background:#0c0704b8;border:1px solid #b8915b57;padding:12px 16px;font-size:.86rem;position:absolute;top:clamp(130px,18vh,200px);left:50%;transform:translate(-50%)}.puzzle-loading:before{content:"> ";color:var(--accent)}.puzzle-loading:after{content:"_";color:var(--accent);animation:1s step-end infinite blink}.coach-bubble{transform-origin:50%;background:linear-gradient(158deg,#1a0d04f7 0%,#100802fc 100%);border:1px solid #94662470;border-top-color:#be8c3459;width:clamp(310px,32vw,468px);max-height:calc(clamp(72px,8vh,105px) - clamp(4px,.5vh,8px) - 8px);padding:10px 16px 8px;animation:.32s wallWrite;position:absolute;top:clamp(4px,.5vh,8px);left:50%;overflow:hidden;transform:translate(-50%)rotate(-1.6deg);box-shadow:0 0 0 1px #000000bf,0 12px 48px #000000a6,inset 0 1px #d29b3a17}.coach-bubble:before{content:"";background:#c8a85833;border:1px solid #c8a8582e;border-radius:1px;width:56px;height:20px;position:absolute;top:-10px;left:50%;transform:translate(-50%)rotate(1.8deg)}.coach-bubble p{font-family:var(--font-handwriting);color:var(--text);text-shadow:0 1px 6px #0000008c;font-size:clamp(1rem,1.55vw,1.22rem);font-weight:600;line-height:1.6;animation:.3s both fadeInText}.pressure-message--solved{border-color:#9fb36a85;box-shadow:0 0 0 1px #000000bf,0 12px 48px #000000a6,0 0 28px #9fb36a1a,inset 0 1px #9fb36a1a}.pressure-message--solved p{color:#c8dda0}.pressure-message--failed{border-color:#c94f3885;box-shadow:0 0 0 1px #000000bf,0 12px 48px #000000a6,0 0 28px #c94f381a,inset 0 1px #c94f381a}.pressure-message--failed p{color:#e09080}.pressure-message--retry{border-color:#c9963885;box-shadow:0 0 0 1px #000000bf,0 12px 48px #000000a6,0 0 28px #c996381f,inset 0 1px #c996381a}.pressure-message--retry p{color:#e0c080}.pressure-message--hint{border-color:#c94f387a;transform:translate(-50%)rotate(-2.4deg);box-shadow:0 0 0 1px #000000bf,0 12px 48px #000000a6,0 0 28px #c94f381f,inset 0 1px #c94f381a}.pressure-message--hint p{color:#e09080;font-style:italic}.puzzle-result{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#0e0804c7;border:1px solid #b8915b52;flex-direction:column;align-items:stretch;gap:10px;width:clamp(130px,13vw,172px);padding:12px;display:flex;position:absolute;top:calc(clamp(72px,8vh,105px) + 90px);left:calc(50% + clamp(310px,32vw,468px)/2 + 14px);transform:none;box-shadow:0 12px 32px #00000061}.result-badge{font-family:var(--font-mono);letter-spacing:.1em;border:1px solid;padding:5px 10px;font-size:.7rem}.result-badge--solved{color:var(--green)}.result-badge--failed{color:var(--red)}.rating-change{font-family:var(--font-mono);font-size:1rem}.next-btn{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--text);cursor:pointer;background:#00000047;border:1px solid #b8915b80;border-radius:2px;width:100%;padding:9px 14px;font-size:.72rem;transition:background .12s,color .12s,border-color .12s}.next-btn:hover{color:#1b1009;background:var(--accent);border-color:var(--accent)}.difficulty-upgrade-btn{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.06em;color:var(--accent);cursor:pointer;background:0 0;border:1px solid #b8915b59;border-radius:2px;width:100%;padding:7px 14px;font-size:.65rem;transition:background .12s,border-color .12s}.difficulty-upgrade-btn:hover{border-color:var(--accent);background:#b8915b1a}@keyframes slideIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes wallWrite{0%{opacity:0;transform:translate(-50%)rotate(-1.2deg)scale(.96)}to{opacity:1;transform:translate(-50%)rotate(-1.2deg)scale(1)}}@keyframes fadeInText{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}.lichess-login-btn{font-family:var(--font-mono);color:var(--accent);cursor:pointer;white-space:nowrap;background:0 0;border:1px solid #b8915b66;border-radius:2px;align-items:center;gap:5px;margin-left:8px;padding:3px 9px;font-size:.72rem;transition:background .12s,color .12s,border-color .12s;display:inline-flex}.lichess-login-btn:hover{border-color:var(--accent);background:#b8915b1f}.lichess-badge{font-family:var(--font-mono);color:var(--green);white-space:nowrap;border:1px solid #50c86459;border-radius:2px;align-items:center;gap:5px;margin-left:8px;padding:2px 8px;font-size:.72rem;display:inline-flex}.change-nick-btn{font-family:var(--font-mono);color:var(--text-dim);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:2px;align-items:center;margin-left:5px;padding:1px 5px;font-size:.72rem;line-height:1;transition:color .12s,border-color .12s;display:inline-flex}.change-nick-btn:hover{color:var(--accent);border-color:#b8915b59}.nickname-edit{align-items:center;gap:5px;display:inline-flex}.nickname-input{font-family:var(--font-mono);color:var(--text);background:#ffffff0d;border:1px solid #b8915b80;border-radius:2px;outline:none;width:140px;padding:2px 6px;font-size:.8rem}.nickname-input:focus{border-color:var(--accent)}.nickname-error{font-family:var(--font-mono);color:var(--red,#e05);font-size:.65rem}.nickname-save-btn,.nickname-cancel-btn{font-family:var(--font-mono);cursor:pointer;border-radius:2px;padding:2px 7px;font-size:.68rem;transition:background .12s}.nickname-save-btn{color:var(--green);background:0 0;border:1px solid #50c86466}.nickname-save-btn:hover{background:#50c8641f}.nickname-cancel-btn{color:var(--text-dim);background:0 0;border:1px solid #ffffff1a}.nickname-cancel-btn:hover{background:#ffffff0d}.lichess-cta-banner{z-index:5;background:#140c05e0;border-bottom:1px solid #b8915b38;align-items:center;gap:10px;padding:6px 14px 6px 16px;display:flex;position:relative}.lichess-cta-icon{color:var(--accent);flex-shrink:0;font-size:1rem;line-height:1}.lichess-cta-body{font-family:var(--font-mono);color:var(--muted);white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:.7rem;overflow:hidden}.lichess-cta-btn{font-family:var(--font-mono);color:#1b1009;background:var(--accent);cursor:pointer;white-space:nowrap;letter-spacing:.03em;border:none;border-radius:2px;flex-shrink:0;padding:4px 10px;font-size:.68rem;font-weight:700;transition:background .12s}.lichess-cta-btn:hover{background:#d4a66a}.lichess-cta-close{font-family:var(--font-mono);color:var(--muted);cursor:pointer;background:0 0;border:none;flex-shrink:0;padding:2px 6px;font-size:.7rem;line-height:1;transition:color .12s}.lichess-cta-close:hover{color:var(--text)}.lichess-toast{z-index:999;font-family:var(--font-mono);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);white-space:nowrap;border:1px solid;border-radius:3px;padding:10px 22px;font-size:.8rem;animation:.2s slideIn;position:fixed;bottom:24px;left:50%;transform:translate(-50%)}.lichess-toast--ok{color:var(--green);background:#0e0804e0;border-color:#50c86466}.lichess-toast--err{color:var(--red);background:#0e0804e0;border-color:#c83c3c66}@media (width<=980px){.player-header{flex-wrap:wrap;align-items:flex-start}.player-stats{flex-wrap:wrap;justify-content:flex-end;margin-left:auto}.app-main{flex-direction:column;display:flex;overflow-y:auto}.board-area{flex-shrink:0;order:1;min-height:calc(clamp(100px,15vh,160px) + min(500px,88vw) + 190px)}.theme-stats{width:100%;max-height:none;box-shadow:none;background:linear-gradient(#0c0704d9,#0c07048c);border-top:1px solid #b8915b3d;border-right:none;order:2;padding:16px 20px 28px;position:static}.board-wrapper{width:min(500px,88vw);max-width:88vw;top:clamp(100px,15vh,160px);left:50%;transform:translate(-50%)perspective(1000px)rotateX(.5deg)}.puzzle-meta-area{width:min(500px,88vw);top:calc(clamp(100px,15vh,160px) + min(500px,88vw) + 30px);left:50%;transform:translate(-50%)}.puzzle-meta{flex-direction:row;align-items:center;gap:14px}.hint-btn{top:calc(clamp(100px,15vh,160px) - 30px);left:50%;transform:translate(-50%)}.coach-bubble{width:min(500px,88vw);max-height:calc(clamp(100px,15vh,160px) - clamp(12px,1.8vh,22px) - 10px);top:clamp(12px,1.8vh,22px);left:50%;transform:translate(-50%)rotate(-1deg)}.puzzle-result{width:min(500px,88vw);min-width:unset;flex-direction:row;justify-content:center;align-items:center;top:calc(clamp(100px,15vh,160px) + min(500px,88vw) + 82px);bottom:auto;left:50%;transform:translate(-50%)}}@media (width<=640px){.app{background:url(/assets/background_mobile-DAqtx10A.png) top/cover no-repeat;overflow-y:auto}.player-header{flex-wrap:wrap;gap:4px;min-height:52px;padding:6px 12px}.brand,.lichess-badge,.lichess-login-btn{display:none}.player-identity{order:2;justify-content:center;width:100%;font-size:.72rem}.player-stats{order:1;justify-content:center;width:100%}.stat{min-width:40px}.stat-divider{display:none}.app-main{flex-direction:column;min-height:calc(100dvh - 52px);display:flex}.theme-stats{width:100%;max-height:200px;box-shadow:none;background:linear-gradient(#0c0704d9,#0c0704a6);border-top:1px solid #b8915b3d;border-right:none;order:2;padding:12px 16px 20px;display:block;position:static}.board-area{flex-direction:column;order:1;align-items:center;gap:10px;min-height:auto;padding:10px 8px 16px;display:flex}.board-area:before{display:none}.coach-bubble{transform-origin:50%;order:1;width:min(340px,88vw);max-height:none;padding:12px 16px 10px;position:relative;top:auto;bottom:auto;left:auto;transform:rotate(-1.2deg)}.pressure-message--hint{transform:rotate(-2.4deg)}.coach-bubble:before{width:44px;height:16px}.coach-bubble p{font-size:clamp(.82rem,3.8vw,.96rem);line-height:1.45}.hint-btn{order:2;align-self:center;padding:4px 12px;font-size:.65rem;position:relative;top:auto;left:auto;transform:none}.puzzle-meta-area{order:3;width:min(340px,88vw);max-width:88vw;position:relative;top:auto;left:auto;transform:none}.puzzle-meta{flex-direction:row;align-items:center;gap:12px;padding:7px 10px}.puzzle-meta__elo-value{font-size:1.05rem}.board-wrapper{order:4;width:min(340px,88vw);max-width:88vw;padding:clamp(5px,1.4vw,9px);position:relative;top:auto;left:auto;transform:none}.board-wrapper:before,.board-wrapper:after{display:none}.puzzle-loading{order:4;width:min(300px,88vw);max-width:88vw;position:relative;top:auto;left:auto;transform:none}.puzzle-result{flex-direction:column;order:5;align-items:stretch;gap:8px;width:min(340px,88vw);padding:12px 14px;position:relative;top:auto;bottom:auto;left:auto;transform:none}.next-btn{width:100%;padding:11px 14px;font-size:.75rem}.lichess-cta-body{display:none}.lichess-login-btn{margin-left:4px;padding:3px 6px;font-size:.65rem}}
