@import "https://fonts.googleapis.com/css2?family=Montserrat:wght@400;500;600;700;800;900&display=swap";:root{--vino:#88011d;--vino-dark:#6b0116;--negro:#111;--gris:#ededed;--gris-2:#f5f5f5;--text-dark:#1c1c1c;--text-mut:#6b6b6b;--oro:#c79a2e}*{box-sizing:border-box;margin:0;padding:0;font-family:Montserrat,sans-serif}html,body,#root{width:100%;height:100%}body{background-color:#111;overflow:hidden}.app-container{justify-content:center;align-items:center;width:100vw;height:100vh;display:flex;position:relative;overflow:hidden}.scene-gate{z-index:10;background-image:url(/assets/portada-academia-v2-CHjlMnQp.png);background-position:50%;background-size:cover;flex-direction:column;justify-content:center;align-items:flex-start;width:100%;height:100%;padding-left:clamp(28px,10vw,150px);transition:opacity .32s;display:flex;position:absolute;top:0;left:0}.scene-gate:before{content:"";pointer-events:none;background:linear-gradient(90deg,#010d227a 0%,#010d221a 48%,#010d2224 100%);position:absolute;inset:0}.scene-gate.open{opacity:0;pointer-events:none!important}.scene-gate.open *{pointer-events:none!important}.auth-box{z-index:1;text-align:left;color:var(--negro);background:#fffffff5;border:1px solid #ffffffd1;border-radius:20px;width:min(100% - 32px,422px);padding:34px;animation:.5s fadeIn;position:relative;box-shadow:0 24px 70px #00000052}.auth-logo{width:min(100%,310px);height:auto;margin:0 0 18px;display:block}.auth-eyebrow{color:var(--vino);letter-spacing:1.7px;margin-bottom:11px;font-size:11px;font-weight:900}.auth-box h2{color:#161722;letter-spacing:-.8px;margin-bottom:10px;font-size:clamp(29px,3vw,35px);font-weight:900;line-height:1.03}.auth-box p{color:var(--text-mut);margin-bottom:22px;font-size:13.5px;line-height:1.5}.auth-box .auth-intro{max-width:330px}.auth-box form{flex-direction:column;gap:14px;display:flex}.auth-box input{color:var(--negro);background:#f8fafc;border:1px solid #d8dce5;border-radius:10px;padding:13px 14px;font-size:15px}.auth-box input:focus{border-color:var(--vino);background:#fff;outline:3px solid #88011d21}.login-btn{color:#fff;cursor:pointer;pointer-events:all;letter-spacing:.15px;background:linear-gradient(135deg,#990420,#720116);border:none;border-radius:10px;padding:13px 14px;font-size:15px;font-weight:800;transition:all .2s}.login-btn:hover{background:var(--vino-dark);transform:translateY(-2px);box-shadow:0 6px 18px #88011d59}@media (width<=720px){.scene-gate{background-position:63%;justify-content:flex-end;align-items:center;padding:22px 16px}.scene-gate:before{background:linear-gradient(#010d2226 0%,#010d2294 62%,#010d22d6 100%)}.auth-box{width:100%;min-width:0;max-width:430px;padding:27px 22px;overflow:hidden}.auth-box p{overflow-wrap:anywhere}.auth-box h2{font-size:30px}}.avatar-selection-box{z-index:1;text-align:center;color:var(--negro);background:#fffffff7;border:1px solid #ffffffd9;border-radius:22px;width:min(90%,610px);padding:30px;position:relative;box-shadow:0 24px 70px #00000057}.selection-logo{width:min(70%,300px);height:auto;margin:0 auto 18px;display:block}.avatar-selection-box h2{color:var(--vino);font-size:30px;font-weight:800}.avatar-selection-box p{color:var(--text-mut)}.avatar-grid{justify-content:center;gap:14px;margin-top:20px;display:grid}.avatar-card{cursor:pointer;pointer-events:all;width:190px;color:var(--negro);background:#f4f5f8;border:2px solid #0000;border-radius:15px;padding:9px;font-size:14px;font-weight:800;transition:all .25s;overflow:hidden}.avatar-card img{object-fit:cover;object-position:center 22%;filter:drop-shadow(0 5px 8px #00000029);border-radius:10px;width:100%;height:148px;margin-bottom:8px;transition:transform .3s;display:block}.avatar-card:hover{border-color:var(--vino);background:#fff;transform:translateY(-5px);box-shadow:0 12px 24px #88011d2e}.avatar-card:hover img{transform:scale(1.08)}.campus-mode-box{z-index:12;width:min(92vw,860px);max-height:calc(100vh - 36px);color:var(--negro);text-align:center;background:#fffffff9;border:1px solid #ffffffe6;border-radius:24px;padding:28px;animation:.35s fadeIn;position:absolute;top:50%;left:50%;overflow-y:auto;transform:translate(-50%,-50%);box-shadow:0 28px 80px #00000061}.campus-mode-box .selection-logo{width:min(62%,270px);margin-bottom:12px}.campus-mode-box .auth-eyebrow{margin-bottom:7px}.campus-mode-box h2{color:var(--vino);font-size:clamp(25px,3vw,34px);font-weight:900;line-height:1.12}.campus-mode-intro{color:var(--text-mut);max-width:650px;margin:8px auto 21px;font-size:14px;line-height:1.55}.campus-mode-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.campus-mode-card{color:#20232d;cursor:pointer;text-align:left;background:linear-gradient(145deg,#fff,#f5f7fa);border:2px solid #dfe3ea;border-radius:18px;flex-direction:column;align-items:flex-start;gap:13px;min-height:218px;padding:24px 20px 19px;font-family:inherit;transition:transform .2s,border-color .2s,box-shadow .2s;display:flex;position:relative}.campus-mode-card:hover,.campus-mode-card:focus-visible{border-color:var(--vino);outline:none;transform:translateY(-4px);box-shadow:0 14px 28px #88011d24}.campus-mode-card.recommended{border-color:#88011d80}.campus-mode-card.light{background:linear-gradient(145deg,#fff,#f2f8f5)}.campus-mode-icon{background:var(--vino);color:#fff;letter-spacing:.5px;border-radius:13px;place-items:center;width:54px;height:46px;font-size:19px;font-weight:900;display:grid;box-shadow:0 7px 16px #88011d38}.campus-mode-card.light .campus-mode-icon{background:#246b4a;box-shadow:0 7px 16px #246b4a38}.campus-mode-card-copy{flex-direction:column;gap:7px;display:flex}.campus-mode-card-copy strong{color:#171923;font-size:19px;font-weight:900}.campus-mode-card-copy small{color:#646a75;font-size:13px;line-height:1.5}.campus-mode-meta{color:var(--vino);font-size:11.5px;font-weight:800;line-height:1.4}.campus-mode-card.light .campus-mode-meta{color:#246b4a}.campus-mode-badge,.campus-mode-last{letter-spacing:.3px;text-transform:uppercase;border-radius:999px;padding:5px 9px;font-size:9.5px;font-weight:900;position:absolute;top:15px;right:15px}.campus-mode-badge{color:#755508;background:#f4e7b9}.campus-mode-last{color:#666c76;background:#eceef2;top:auto;bottom:14px}.campus-mode-back{color:var(--vino);cursor:pointer;background:0 0;border:0;margin-top:19px;padding:8px 12px;font-size:13px;font-weight:800}@media (width<=680px){.campus-mode-box{width:min(94vw,500px);max-height:calc(100vh - 24px);padding:22px 16px}.campus-mode-box .selection-logo{width:min(68%,230px)}.campus-mode-grid{grid-template-columns:1fr;gap:12px}.campus-mode-card{gap:10px;min-height:170px;padding:18px 16px}.campus-mode-icon{width:48px;height:40px;font-size:17px}.campus-mode-card-copy strong{font-size:17px}.campus-mode-card-copy small{padding-right:4px}}.scene-campus{z-index:5;opacity:0;pointer-events:none;background-image:url(/assets/campus-CwxXR4i7.png);background-position:50%;background-size:cover;justify-content:center;align-items:center;width:100%;height:100%;transition:opacity 1s;display:flex;position:absolute;top:0;left:0}.scene-campus.active{opacity:1;pointer-events:all;z-index:20}.campus-loading{color:var(--vino);z-index:8;background:#f5f7faeb;place-items:center;font-size:15px;font-weight:900;display:grid;position:absolute;inset:0}.campus-loading span{background:#fff;border-radius:14px;padding:14px 20px;box-shadow:0 8px 28px #00000026}.campus-header{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--gris);background:#fffffff0;border-radius:16px;align-items:center;gap:20px;padding:12px 34px;display:flex;position:absolute;top:20px;left:50%;transform:translate(-50%);box-shadow:0 8px 24px #0003}.campus-title{color:var(--vino);letter-spacing:.5px;font-size:24px;font-weight:800}.campus-brand{align-items:center;min-width:210px;display:flex}.campus-brand img{object-fit:contain;object-position:left center;width:245px;height:45px;display:block}.back-btn{background:var(--vino);color:#fff;cursor:pointer;pointer-events:all;border:none;border-radius:10px;padding:9px 16px;font-weight:700;transition:all .2s}.back-btn:hover{background:var(--vino-dark);transform:scale(1.04)}.towers-grid{grid-template-columns:repeat(2,1fr);gap:40px;width:80%;max-width:800px;margin-top:50px;display:grid}.tower-card{border:1px solid var(--gris);text-align:center;cursor:pointer;pointer-events:all;background:#ffffffeb;border-radius:16px;padding:28px;transition:all .3s;position:relative;overflow:hidden}.tower-card:hover{border-color:var(--vino);transform:translateY(-12px);box-shadow:0 18px 36px #88011d33}.tower-icon{margin-bottom:12px;font-size:48px}.tower-card h3{color:var(--vino);margin-bottom:8px;font-size:22px;font-weight:800}.tower-card p{color:var(--text-mut);font-size:15px}.aula-header{background:var(--vino);z-index:35;border-radius:14px;align-items:center;gap:24px;margin-bottom:15px;padding:12px 28px;display:flex;box-shadow:0 6px 18px #88011d4d}.aula-header h2{color:#fff;font-size:22px;font-weight:800}.player-profile-corner{z-index:50;pointer-events:none;align-items:flex-end;gap:15px;transition:all .5s;display:flex;position:absolute;bottom:20px;right:20px}.player-profile-corner.in-tower{transform:scale(.8)translate(20px,20px)}.stats-box{flex-direction:column;align-items:flex-end;gap:10px;margin-bottom:20px;display:flex}.stat-level{border:2px solid var(--vino);background:#fffffff5;border-radius:14px;align-items:center;gap:10px;width:250px;padding:10px;display:flex}.lvl-badge{background:var(--vino);color:#fff;border-radius:8px;padding:5px 10px;font-size:14px;font-weight:800}.xp-bar-bg{background:#e6e6e6;border:1px solid #ccc;border-radius:10px;flex:1;height:14px;overflow:hidden}.xp-bar-fill{background:linear-gradient(90deg, var(--vino), #b8324b);height:100%;transition:width .5s cubic-bezier(.4,0,.2,1)}.stat-coins{border:2px solid var(--oro);color:#8a6a1f;background:#c79a2e29;border-radius:14px;align-items:center;gap:10px;padding:8px 18px;font-size:22px;font-weight:800;display:flex}.coin-icon{font-size:26px;animation:2s infinite bounce}.player-avatar-wrapper{flex-direction:column;align-items:center;animation:4s ease-in-out infinite float;display:flex}.player-avatar-wrapper img{object-fit:contain;filter:drop-shadow(0 10px 15px #00000080);width:150px;height:150px}.player-name{background:var(--vino);color:#fff;z-index:2;border:2px solid #fff;border-radius:12px;margin-bottom:-15px;padding:3px 15px;font-size:15px;font-weight:700}.scene-overlay{z-index:30;background:linear-gradient(#f7f7f7,#ededed);flex-direction:column;align-items:center;padding:20px;animation:.4s fadeIn;display:flex;position:absolute;inset:0;overflow-y:auto}.scene-overlay.biblioteca{background:linear-gradient(#f7f7f7,#eae7e8)}.scene-overlay.tienda{background:linear-gradient(#f7f7f7,#efe9ea)}.scene-overlay .aula-header{justify-content:space-between;align-items:center;width:100%;max-width:1000px;display:flex}.scene-overlay .aula-header h2{color:#fff;font-size:26px}.overlay-sub{color:var(--text-mut);margin:6px 0 26px;font-size:15px}.cards-grid{flex-wrap:wrap;justify-content:center;gap:20px;max-width:900px;display:flex}.shop-card{border:1px solid var(--gris);text-align:center;cursor:pointer;width:190px;color:var(--negro);background:#fff;border-radius:16px;padding:22px;transition:all .2s;box-shadow:0 4px 12px #0000000d}.shop-card:hover{border-color:var(--vino);transform:translateY(-6px);box-shadow:0 12px 24px #88011d26}.shop-card.owned{border-color:#1a8f4a}.shop-card.equipped{border-color:var(--vino);box-shadow:0 0 0 2px #88011d40}.shop-emoji{margin-bottom:10px;font-size:52px}.shop-card h3{min-height:44px;color:var(--negro);margin-bottom:12px;font-size:17px;font-weight:700}.shop-card h4{color:var(--negro);margin-bottom:12px;font-size:15px;font-weight:700}.tag-cost{color:var(--vino);background:#88011d1a;border-radius:999px;padding:6px 16px;font-weight:800}.tag-owned{color:#1a8f4a;background:#1a8f4a24;border-radius:999px;padding:6px 16px;font-weight:800}.tag-equipped{color:var(--vino);background:#88011d24;border-radius:999px;padding:6px 16px;font-weight:800}.shop-scroll{width:100%;max-width:1020px;padding-bottom:30px;overflow-y:auto}.shop-cat{margin-bottom:22px}.shop-cat-title{color:var(--vino);text-align:left;margin:12px 6px 14px;font-size:20px;font-weight:800}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-15px)}}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}
