:root{--bg-primary:#0a0e1a;--bg-secondary:#111827;--text-primary:#f1f5f9;--text-secondary:#94a3b8;--text-muted:#64748b;--accent-blue:#3b82f6;--accent-violet:#8b5cf6;--accent-pink:#ec4899;--glass-bg:#111827bf;--glass-bg-strong:#111827e6;--glass-border:#ffffff14;--glass-border-hover:#ffffff26;--card-shadow:0 4px 24px #0000004d;--card-shadow-hover:0 12px 40px #00000080;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:20px;--radius-pill:9999px;--transition-fast:.2s ease;--transition-normal:.3s ease;--transition-bounce:.4s cubic-bezier(.175, .885, .32, 1.275)}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--bg-primary);color:var(--text-primary);min-height:100vh;font-family:Outfit,sans-serif;line-height:1.6;overflow-x:hidden}.background{z-index:-1;background-position:50%;background-repeat:no-repeat;background-size:cover;transition:background-image 1s ease-in-out;position:fixed;inset:0;overflow:hidden}.background:after{content:"";z-index:-1;background-color:#12262bbf;background-image:repeating-linear-gradient(0deg,#0000,#0000 2px,#0000004d 2px 4px);background-size:100% 4px;animation:4s linear infinite scanlines;position:absolute;inset:0}@keyframes scanlines{0%{background-position:0 0}to{background-position:0 -40px}}.blob{filter:blur(100px);opacity:.4;border-radius:50%;animation:25s ease-in-out infinite alternate float;position:absolute}.blob-1{background:radial-gradient(circle,#3b82f680 0%,#0000 70%);width:55vw;height:55vw;top:-15%;left:-15%}.blob-2{background:radial-gradient(circle,#8b5cf666 0%,#0000 70%);width:60vw;height:60vw;animation-delay:-8s;bottom:-20%;right:-15%}.blob-3{background:radial-gradient(circle,#ec48994d 0%,#0000 70%);width:45vw;height:45vw;animation-delay:-15s;top:35%;left:25%}@keyframes float{0%{transform:translate(0)scale(1)}50%{transform:translate(30px,-20px)scale(1.05)}to{transform:translate(-20px,40px)scale(1.08)}}#app{width:100%;max-width:1280px;min-height:100vh;transition:max-width var(--transition-normal);flex-direction:column;margin:0 auto;padding:2rem 1.5rem;display:flex}#app.character-view{max-width:95vw}.header{text-align:center;transition:padding var(--transition-normal);padding:2rem 0 3rem;animation:.7s ease-out fadeInDown}.header.compact{display:none}.header-title{letter-spacing:-1.5px;margin-bottom:.4rem;font-size:clamp(2.5rem,6vw,4rem);font-weight:800}.header-title a{color:inherit;text-decoration:none}.header-title a:hover{opacity:.9}.header .highlight{background:linear-gradient(135deg,#60a5fa 0%,#a78bfa 50%,#f472b6 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.header .subtitle{color:var(--text-secondary);margin-bottom:2rem;font-size:1.1rem;font-weight:300}.banner-section{max-width:1200px;margin:1.5rem auto 4rem}.announcement-banner{color:#34d399;text-align:center;text-transform:uppercase;letter-spacing:.1em;-webkit-backdrop-filter:blur(12px);background:#10b9811a;border:1px solid #10b9814d;border-radius:100px;justify-content:center;align-items:center;gap:.75rem;max-width:fit-content;margin:0 auto 4rem;padding:.8rem 2rem;font-size:1.1rem;font-weight:600;display:flex;box-shadow:0 0 20px #10b9811a,inset 0 0 10px #10b9810d}.search-container{max-width:480px;margin:0 auto;position:relative}.search-icon{width:20px;height:20px;color:var(--text-muted);pointer-events:none;position:absolute;top:50%;left:1.2rem;transform:translateY(-50%)}#search-input{border-radius:var(--radius-pill);background:var(--glass-bg);border:1px solid var(--glass-border);width:100%;color:var(--text-primary);box-shadow:var(--card-shadow);-webkit-backdrop-filter:blur(16px);transition:border-color var(--transition-normal), box-shadow var(--transition-normal);outline:none;padding:.9rem 1.2rem .9rem 3.2rem;font-family:inherit;font-size:1rem;font-weight:400}#search-input:focus{border-color:var(--accent-blue);box-shadow:0 0 0 4px #3b82f626, var(--card-shadow)}#search-input::placeholder{color:var(--text-muted);font-weight:300}.loading{flex-direction:column;justify-content:center;align-items:center;gap:1.2rem;padding:5rem 0;display:flex}.loading p{color:var(--text-secondary);font-weight:300}.spinner{border:3px solid var(--glass-border);border-top-color:var(--accent-blue);border-radius:50%;width:44px;height:44px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.class-filter{flex-wrap:wrap;justify-content:center;gap:.75rem;margin-bottom:2rem;display:flex}.class-filter-btn{border-radius:var(--radius-pill);background:var(--glass-bg);border:1px solid var(--glass-border);color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);padding:.55rem 1.4rem;font-family:inherit;font-size:.9rem;font-weight:500}.class-filter-btn:hover{color:var(--text-primary);border-color:var(--glass-border-hover)}.class-filter-btn.active{background:var(--accent-violet);color:#fff;border-color:var(--accent-violet);box-shadow:0 4px 12px #8b5cf64d}.card-class{color:#e5f5f499;text-align:center;text-transform:uppercase;letter-spacing:.05em;margin-top:.1rem;font-size:.7rem;font-weight:500}.character-page-class{color:var(--text-muted);text-transform:uppercase;letter-spacing:.1em;background:var(--glass-bg);border-radius:var(--radius-pill);border:1px solid var(--glass-border);padding:.25rem .75rem;font-size:.85rem;font-weight:500}.character-grid{grid-template-columns:repeat(auto-fill,125px);justify-content:center;gap:1.25rem;padding-bottom:3rem;display:grid}.card{cursor:pointer;transition:transform var(--transition-bounce), box-shadow var(--transition-normal);background:#234346;border:1px solid #e5f5f4;border-radius:2px;animation:.5s ease-out backwards fadeInUp;overflow:hidden;box-shadow:0 4px 10px #0006}.card:hover{border-color:#fff;transform:translateY(-6px)scale(1.02);box-shadow:0 12px 24px #0009}.card:active{transform:translateY(-2px)scale(1)}.card-image-container{background-color:#eef1f3;background-image:repeating-linear-gradient(0deg,#0000,#0000 3px,#00000008 3px 6px);justify-content:center;align-items:center;width:100%;height:125px;display:flex;position:relative;overflow:hidden}.card-image-container img{object-fit:contain;max-width:125px;max-height:125px;transition:transform var(--transition-normal);filter:drop-shadow(0 4px 6px #00000026)}.card:hover .card-image-container img{transform:scale(1.08)}.card-image-placeholder{color:#0000001a;text-transform:uppercase;font-size:3rem;font-weight:700}.card-info{background:#356368;border-top:4px solid #163639;border-bottom:4px solid #1f3a3d;padding:.2rem .25rem}.card-name{color:#e5f5f4;text-align:center;white-space:nowrap;text-overflow:ellipsis;text-shadow:0 1px 2px #00000080;font-size:.95rem;font-weight:800;overflow:hidden}#page-content{flex-direction:column;flex:1;min-height:0;display:flex}.character-page{flex-direction:column;flex:1;height:calc(100vh - 4rem);min-height:0;animation:.4s ease-out fadeInUp;display:flex}.character-nav{flex-shrink:0;align-items:center;gap:1rem;margin-bottom:1rem;display:flex}.back-button{border-radius:var(--radius-pill);background:var(--glass-bg);border:1px solid var(--glass-border);color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);align-items:center;gap:.4rem;padding:.5rem 1rem;font-family:inherit;font-size:.9rem;font-weight:500;display:inline-flex}.back-button svg{width:18px;height:18px}.back-button:hover{color:var(--text-primary);border-color:var(--glass-border-hover);background:#ffffff14}.banner-title{text-align:center;background:linear-gradient(90deg,#60a5fa,#a78bfa,#f472b6);-webkit-text-fill-color:transparent;text-shadow:0 4px 20px #a78bfa4d;-webkit-background-clip:text;background-clip:text;margin-bottom:2rem;font-size:2.5rem;font-weight:800}.banner-cards-container{flex-wrap:wrap;justify-content:center;gap:4rem;display:flex}.banner-card-wrapper{flex-direction:column;align-items:center;gap:1rem;display:flex}.banner-region{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.1em;font-size:1.2rem;font-weight:700}.banner-grid-inner{justify-content:center;display:flex}.character-page-title{background:linear-gradient(135deg,#f1f5f9,#cbd5e1);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:1.5rem;font-weight:700}.character-tabs-row{flex-shrink:0;justify-content:space-between;align-items:center;gap:1rem;width:100%;margin-bottom:1rem;display:flex}.character-tabs{background:var(--glass-bg);border-radius:var(--radius-pill);border:1px solid var(--glass-border);-webkit-backdrop-filter:blur(12px);width:fit-content;max-width:100%;box-shadow:var(--card-shadow);scrollbar-width:none;gap:.4rem;padding:.4rem;display:flex;overflow-x:auto}.character-tabs::-webkit-scrollbar{display:none}.character-tab-btn{border-radius:var(--radius-pill);color:var(--text-secondary);cursor:pointer;transition:background-color var(--transition-fast), color var(--transition-fast), transform var(--transition-fast);white-space:nowrap;letter-spacing:.01em;background:0 0;border:none;padding:.55rem 1.3rem;font-family:inherit;font-size:.88rem;font-weight:500}.character-tab-btn:hover{color:var(--text-primary);background:#ffffff0f}.character-tab-btn:active{transform:scale(.97)}.character-tab-btn.active{background:linear-gradient(135deg, var(--accent-blue), var(--accent-violet));color:#fff;box-shadow:0 4px 14px #8b5cf659}.character-tab-content--loaded{animation:.35s ease-out fadeInUp}.sheet-table-wrapper[data-tab=skillRotation]{border-color:#3b82f640}.sheet-table-wrapper[data-tab=commonKeys]{border-color:#ec489940}.sheet-table-wrapper[data-tab=expansionKeys]{border-color:#8b5cf640}.view-toggle-container{background:var(--glass-bg);border-radius:var(--radius-pill);border:1px solid var(--glass-border);justify-content:center;gap:1rem;width:fit-content;margin-bottom:1.5rem;margin-left:auto;margin-right:auto;padding:.5rem;display:flex}.toggle-btn{border-radius:var(--radius-pill);color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast);background:0 0;border:none;padding:.6rem 1.5rem;font-family:inherit;font-size:.95rem;font-weight:500}.toggle-btn:hover{color:var(--text-primary);background:#ffffff0d}.toggle-btn.active{background:var(--accent-blue);color:#fff;box-shadow:0 4px 12px #3b82f64d}.sheet-content{flex-direction:column;flex:1;gap:0;min-height:0;display:flex}.sheet-table-wrapper{background:var(--glass-bg-strong);border:1px solid var(--glass-border);border-radius:var(--radius-xl);-webkit-backdrop-filter:blur(16px);box-shadow:var(--card-shadow);padding:1.5rem;animation:.5s ease-out fadeInUp;overflow:auto}.sheet-section-label{border-bottom:1px solid var(--glass-border);background:linear-gradient(135deg,#60a5fa,#a78bfa);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin-bottom:1rem;padding-bottom:.5rem;font-size:1.1rem;font-weight:600}.sheet-table-wrapper table{border-collapse:collapse;background:0 0;width:auto;min-width:50%;max-width:100%;margin:0 auto}.sheet-table-wrapper thead{display:none}.sheet-table-wrapper td,.sheet-table-wrapper th{vertical-align:middle;text-align:center;padding:.6rem .8rem;font-size:.85rem;line-height:1.5;color:var(--text-secondary)!important;background:0 0!important;border:2px solid #000000e6!important;font-family:Outfit,sans-serif!important}.sheet-table-wrapper td[dir=ltr],.sheet-table-wrapper td:not(:empty){color:var(--text-primary)!important}.sheet-table-wrapper td[colspan]{font-size:.95rem;font-weight:600}.sheet-table-wrapper img{border-radius:var(--radius-sm);max-width:100%;height:auto}.sheet-table-wrapper [style*=background]{background:0 0!important}.sheet-table-wrapper .column-headers-background,.sheet-table-wrapper .row-headers-background,.sheet-table-wrapper .freezebar-cell,.sheet-table-wrapper .header-row-number{display:none!important}.sheet-table-wrapper a{color:var(--accent-blue);text-decoration:none}.sheet-table-wrapper a:hover{text-decoration:underline}.error-message{text-align:center;color:var(--text-secondary);padding:3rem;font-size:1.1rem;font-weight:300}.footer{text-align:center;color:var(--text-muted);border-top:1px solid var(--glass-border);margin-top:auto;padding:2rem 0;font-size:.85rem}.footer a{color:var(--accent-blue);transition:color var(--transition-fast);text-decoration:none}.footer a:hover{color:var(--accent-violet)}.no-results{text-align:center;color:var(--text-secondary);grid-column:1/-1;padding:3rem 0;font-size:1.1rem;font-weight:300}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-25px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(25px)}to{opacity:1;transform:translateY(0)}}@media (width<=640px){.character-tabs-row{flex-direction:column;align-items:flex-end;gap:.75rem}#app{padding:1rem}.header{padding:1.5rem 0 2rem}.character-grid{gap:.8rem}.sheet-table-wrapper{border-radius:var(--radius-lg);padding:.8rem}.sheet-table-wrapper td,.sheet-table-wrapper th{padding:.3rem .4rem;font-size:.78rem}}.extras-row-anchor{z-index:10;justify-content:flex-end;margin:0;display:flex;position:relative}.expansion-keys-explanation{justify-content:flex-end;display:inline-flex;position:relative}.expansion-keys-explanation-trigger{cursor:pointer;color:var(--text-primary);-webkit-user-select:none;user-select:none;border-radius:var(--radius-md);transition:background var(--transition-fast), box-shadow var(--transition-fast);background:#8b5cf61f;border:1px solid #8b5cf659;align-items:center;gap:.5rem;padding:.55rem .95rem;font-family:inherit;font-size:.9rem;font-weight:500;list-style:none;display:inline-flex}.expansion-keys-explanation-trigger::-webkit-details-marker{display:none}.expansion-keys-explanation-trigger:after{content:"▾";color:var(--text-secondary);transition:transform var(--transition-fast);margin-left:.25rem;font-size:.75rem}.expansion-keys-explanation[open] .expansion-keys-explanation-trigger:after{transform:rotate(180deg)}.expansion-keys-explanation-trigger:hover{background:#8b5cf624}.expansion-keys-explanation-trigger:focus-visible{outline-offset:2px;outline:2px solid #8b5cf699}.expansion-keys-explanation-icon{font-size:1.05em}.expansion-keys-explanation-body{background:var(--glass-bg-strong);border-radius:var(--radius-md);width:420px;max-width:calc(100vw - 2rem);max-height:60vh;color:var(--text-primary);z-index:100;-webkit-backdrop-filter:blur(16px);border:1px solid #8b5cf659;padding:.85rem 1rem;font-size:.9rem;line-height:1.5;position:absolute;top:calc(100% + .5rem);right:0;overflow-y:auto;box-shadow:0 10px 30px #00000059,0 0 20px #8b5cf626}.expansion-keys-explanation[open] .expansion-keys-explanation-body{animation:.35s cubic-bezier(.34,1.56,.64,1) forwards slideDownFade}@keyframes slideDownFade{0%{opacity:0;filter:blur(4px);transform:translateY(-16px)scale(.95)}to{opacity:1;filter:blur();transform:translateY(0)scale(1)}}.tab-extras-container[data-tab=commonKeys] .expansion-keys-explanation-trigger{background:#ec48991f;border-color:#ec489959}.tab-extras-container[data-tab=commonKeys] .expansion-keys-explanation-trigger:hover{background:#ec489929}.tab-extras-container[data-tab=commonKeys] .expansion-keys-explanation-trigger:focus-visible{outline-color:#ec489999}.tab-extras-container[data-tab=commonKeys] .expansion-keys-explanation-body{border-color:#ec489959;box-shadow:0 10px 30px #00000059,0 0 20px #ec489926}.tab-extras-container[data-tab=skillRotation] .expansion-keys-explanation-trigger{background:#3b82f61f;border-color:#3b82f659}.tab-extras-container[data-tab=skillRotation] .expansion-keys-explanation-trigger:hover{background:#3b82f629}.tab-extras-container[data-tab=skillRotation] .expansion-keys-explanation-trigger:focus-visible{outline-color:#3b82f699}.tab-extras-container[data-tab=skillRotation] .expansion-keys-explanation-body{border-color:#3b82f659;box-shadow:0 10px 30px #00000059,0 0 20px #3b82f626}.expansion-keys-explanation-body p{margin:0}.expansion-keys-explanation-body p+p{margin-top:.7rem}.expansion-keys-explanation-body strong{color:var(--text-primary);font-weight:600}.sheet-table-container{flex-direction:column;flex:1;width:100%;min-height:0;display:flex;position:relative}.sheet-table-wrapper{cursor:grab;flex:1;align-self:center;width:fit-content;max-width:100%;min-height:0;margin:0 auto}.sheet-table-wrapper.grabbing{cursor:grabbing;-webkit-user-select:none;user-select:none}.sheet-table-wrapper.grabbing *{-webkit-user-select:none;user-select:none}.scroll-indicator-overlay{pointer-events:none;opacity:0;visibility:hidden;z-index:5;border-top-right-radius:var(--radius-xl);border-bottom-right-radius:var(--radius-xl);background:linear-gradient(90deg,#0000,#111827f2 75%);justify-content:flex-end;align-items:flex-start;width:220px;padding-top:5rem;padding-right:1.5rem;transition:opacity .3s,visibility .3s;display:flex;position:absolute;top:1px;bottom:1px;right:1px}.scroll-indicator-overlay.visible{opacity:1;visibility:visible}.scroll-indicator-content{color:#2dd4bf;text-shadow:0 0 10px #2dd4bf66;white-space:nowrap;flex-direction:column;align-items:flex-end;gap:.3rem;animation:2.5s ease-in-out infinite pulseIndicator;display:flex}.scroll-indicator-title{letter-spacing:.05em;font-size:.95rem;font-weight:700}.scroll-indicator-subtitle{opacity:.85;align-items:center;gap:.3rem;font-size:.75rem;font-weight:500;display:flex}.scroll-indicator-subtitle svg{stroke:currentColor;fill:none;width:14px;height:14px}@keyframes pulseIndicator{0%,to{opacity:.7;transform:translate(0)}50%{opacity:1;transform:translate(6px)}}@media (width<=640px){.scroll-indicator-overlay{border-top-right-radius:var(--radius-lg);border-bottom-right-radius:var(--radius-lg);width:150px;padding-top:4rem;padding-right:.75rem}.scroll-indicator-title{font-size:.8rem}.scroll-indicator-subtitle{font-size:.65rem}.scroll-indicator-subtitle svg{width:11px;height:11px}}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#fff3}.sheet-table-wrapper[data-tab=skins]{flex-flow:row!important;justify-content:flex-start!important;align-items:flex-start!important;gap:1.5rem!important;padding-bottom:1.5rem!important;display:flex!important;overflow:auto hidden!important}.skin-block{cursor:pointer;background:#0003;border-radius:8px;transition:transform .15s,box-shadow .15s;display:inline-block;position:relative;overflow:hidden;flex:none!important}.skin-block table{border-collapse:collapse!important;margin:0!important}.skin-block:hover{z-index:1;transform:translateY(-3px);box-shadow:0 10px 28px #00000080}.skin-modal{z-index:9999;justify-content:center;align-items:center;display:none;position:fixed;inset:0}.skin-modal.open{display:flex}.skin-modal-backdrop{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#000000e0;position:absolute;inset:0}.skin-modal-frame{z-index:1;background:#16182a;border:1px solid #ffffff14;border-radius:14px;justify-content:center;align-items:center;max-width:92vw;max-height:92vh;padding:20px;display:flex;position:relative;box-shadow:0 32px 80px #000c}.skin-modal-close{color:#fff;cursor:pointer;z-index:2;background:#ffffff1a;border:none;border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;font-size:16px;line-height:1;transition:background .15s;display:flex;position:absolute;top:10px;right:10px}.skin-modal-close:hover{background:#ffffff38}.skin-modal-image{object-fit:contain;border-radius:8px;max-width:88vw;max-height:86vh;display:block}.skin-modal-loading{color:#ffffffb3;text-align:center;flex-direction:column;align-items:center;gap:12px;min-width:220px;padding:48px 40px;display:flex}.skin-modal-loading p{margin:0;font-size:14px}.skin-modal-error{color:#f87171;text-align:center;min-width:220px;padding:40px;font-size:14px}.skins-hint-banner{color:#ff4d4d;letter-spacing:.02em;text-shadow:0 0 10px #ff4d4d99;border-radius:var(--radius-pill);background:#ff4d4d1f;border:1px solid #ff4d4d59;align-items:center;gap:.4rem;padding:.45rem 1.1rem;font-size:.9rem;font-weight:700;animation:.3s ease-out fadeIn;display:inline-flex}
