*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--color-ssr:gold;--color-ssr-glow:orange;--color-sr:#a855f7;--color-sr-glow:#7c3aed;--color-rate-up:#e8334a;--color-bg:#09090b;--color-bg-2:#0d0d12;--color-surface:#18181b;--color-surface-2:#27272a;--color-surface-3:#3f3f46;--color-text:#fafafa;--color-text-muted:#a1a1aa;--color-text-dim:#52525b;--color-border:#27272a;--color-border-bright:#3f3f46;--color-ring:gold;--radius:.5rem;--radius-card:.75rem;--radius-sm:.375rem;--radius-lg:1rem;--transition-fast:.15s ease;--font-main:system-ui, -apple-system, sans-serif;--font-mono:ui-monospace, "Cascadia Code", "Courier New", monospace}body{background-color:var(--color-bg);color:var(--color-text);font-family:var(--font-main);-webkit-font-smoothing:antialiased;background-image:radial-gradient(80% 40% at 50% 0,#643cb41a 0%,#0000 70%);min-height:100vh;line-height:1.5}h1,h2,h3{line-height:1.2}button{cursor:pointer;border-radius:var(--radius-sm);transition:background-color var(--transition-fast), color var(--transition-fast), border-color var(--transition-fast), box-shadow var(--transition-fast), opacity var(--transition-fast), transform var(--transition-fast);border:none;padding:.5rem 1rem;font-family:inherit;font-size:.875rem;font-weight:500}button:disabled{opacity:.5;cursor:not-allowed;pointer-events:none}button:not(:disabled):active{transform:scale(.98)}button:focus-visible{box-shadow:0 0 0 2px var(--color-bg), 0 0 0 4px var(--color-ring);outline:none}input[type=number]{background:var(--color-surface-2);color:var(--color-text);border:1px solid var(--color-border-bright);border-radius:var(--radius-sm);font-family:var(--font-mono);transition:border-color var(--transition-fast), box-shadow var(--transition-fast);padding:.4rem .75rem;font-size:.875rem}input[type=number]:focus{border-color:var(--color-ring);outline:none;box-shadow:0 0 0 2px #ffd70026}#app{flex-direction:column;gap:1.75rem;max-width:860px;margin:0 auto;padding:2rem 1.25rem 4rem;display:flex}.app-header{justify-content:center;align-items:center;gap:1.25rem;padding:1.5rem 0 1rem;display:flex;position:relative}.app-header:after{content:"";background:linear-gradient(90deg, transparent, var(--color-border-bright), transparent);height:1px;position:absolute;bottom:0;left:10%;right:10%}.app-header__title-block{text-align:center;flex-direction:column;align-items:center;gap:.2rem;display:flex}.app-header__eyebrow{letter-spacing:.18em;text-transform:uppercase;color:var(--color-text-muted);font-size:.7rem;font-weight:600}.app-header__title{letter-spacing:-.02em;background:linear-gradient(135deg,gold 0%,orange 50%,gold 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:1.9rem;font-weight:900}.app-header__gem{background:var(--color-ssr);opacity:.7;flex-shrink:0;width:10px;height:10px;transform:rotate(45deg)}.banner-card{background:var(--color-surface);border:1px solid var(--color-border-bright);border-radius:var(--radius-card);align-items:center;gap:1rem;padding:.875rem 1.25rem;display:flex;position:relative;overflow:hidden}.banner-card:before{content:"";pointer-events:none;background:linear-gradient(90deg,#a855f70d 0%,#0000 60%);position:absolute;inset:0}.banner-card__badge{background:var(--color-rate-up);color:#fff;letter-spacing:.08em;text-transform:uppercase;border-radius:calc(var(--radius-sm) - 2px);flex-shrink:0;padding:2px 7px;font-size:.6rem;font-weight:700}.banner-card__name{color:var(--color-text);flex:1;font-size:.9rem;font-weight:600}.banner-card__rates{color:var(--color-text-muted);font-size:.7rem;font-family:var(--font-mono);flex-shrink:0}.section-heading{letter-spacing:.14em;text-transform:uppercase;color:var(--color-text-dim);align-items:center;gap:.6rem;font-size:.72rem;font-weight:700;display:flex}.section-heading:after{content:"";background:var(--color-border);flex:1;height:1px}.pull-controls{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.pull-buttons{flex:1;gap:.5rem;display:flex}.btn-pull{border-radius:var(--radius-sm);min-height:56px;color:var(--color-text);transition:border-color var(--transition-fast), box-shadow var(--transition-fast), transform var(--transition-fast);background:linear-gradient(160deg,#3d2800 0%,#1e1200 60%,#2a1a00 100%);border:1px solid #ffd70059;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:.1rem;padding:0 1rem;font-weight:600;display:flex;position:relative;overflow:hidden;box-shadow:inset 0 1px #ffd7001f,inset 0 -1px #0006,0 4px 16px #0006}.btn-pull:before{content:"";background:linear-gradient(105deg,#0000 30%,#ffd70014 50%,#0000 70%) 0 0/200% 100%;animation:2.8s ease-in-out infinite pullShimmer;position:absolute;inset:0}.btn-pull:after{content:"";background:linear-gradient(90deg,#0000,#ffd70099,#0000);height:1px;position:absolute;top:0;left:0;right:0}@keyframes pullShimmer{0%{background-position:200%}to{background-position:-200%}}.btn-pull:not(:disabled):hover{border-color:#ffd700a6;box-shadow:inset 0 1px #ffd70033,inset 0 -1px #0006,0 0 24px #ffa50040,0 6px 20px #00000080}.btn-pull:not(:disabled):active{transform:scale(.97)}.btn-pull__label{letter-spacing:.14em;text-transform:uppercase;color:#ffd7008c;z-index:1;font-size:.58rem;font-weight:600;line-height:1;position:relative}.btn-pull__count{color:var(--color-ssr);letter-spacing:-.02em;z-index:1;text-shadow:0 0 12px #ffd70066;font-size:1.05rem;font-weight:800;line-height:1.3;position:relative}.btn-reset{height:2.25rem;color:var(--color-text-muted);border:1px solid var(--color-border-bright);border-radius:var(--radius-sm);white-space:nowrap;background:0 0;padding:0 .75rem;font-size:.8rem;font-weight:500}.btn-reset:not(:disabled):hover{background:var(--color-surface-2);color:var(--color-text);border-color:var(--color-border-bright)}.skip-anim-toggle{border-radius:var(--radius-sm);border:1px solid var(--color-border-bright);height:2.25rem;color:var(--color-text-muted);cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;background:0 0;align-items:center;gap:.375rem;padding:0 .875rem;font-size:.8rem;font-weight:500;display:inline-flex}.skip-anim-toggle__icon{font-size:.8rem;line-height:1;transition:transform .15s}.skip-anim-toggle:not([aria-pressed=true]):hover{background:var(--color-surface-2);color:var(--color-text)}.skip-anim-toggle[aria-pressed=true]{background:var(--color-surface-2);border-color:var(--color-ssr);color:var(--color-ssr);box-shadow:0 0 0 1px #ffd70026}.skip-anim-toggle[aria-pressed=true] .skip-anim-toggle__icon{transform:scale(1.2)}.pity-gauge{flex-direction:column;gap:.35rem;display:flex}.pity-gauge__label{color:var(--color-text-muted);font-size:.72rem;font-weight:500;font-family:var(--font-mono);letter-spacing:.04em}.pity-gauge__track{background:var(--color-surface-2);border-radius:99px;height:4px;overflow:hidden}.pity-gauge__fill{background:var(--color-sr);transform-origin:0;border-radius:99px;height:100%;transition:transform .35s cubic-bezier(.4,0,.2,1);transform:scaleX(0)}.pity-gauge__fill--soft{background:linear-gradient(90deg, var(--color-sr), var(--color-ssr-glow))}.pity-gauge__fill--hard{background:var(--color-ssr);box-shadow:0 0 6px var(--color-ssr)}.session-dashboard{flex-direction:column;gap:.6rem;display:flex}.session-grid{grid-template-columns:repeat(5,1fr);gap:.5rem;display:grid}@media (width<=600px){.session-grid{grid-template-columns:repeat(3,1fr)}}.session-cell{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);flex-direction:column;gap:.15rem;padding:.6rem .75rem;display:flex;position:relative;overflow:hidden}.session-cell:before{content:"";background:var(--color-border-bright);opacity:.5;height:2px;position:absolute;top:0;left:0;right:0}.session-cell__label{color:var(--color-text-dim);text-transform:uppercase;letter-spacing:.08em;font-size:.62rem;font-weight:600}.session-cell__value{font-size:1.05rem;font-weight:800;font-family:var(--font-mono);color:var(--color-text)}.session-cell__value--ssr{color:var(--color-ssr)}.session-cell__value--sr{color:var(--color-sr)}.pull-history{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);overflow:hidden}.pull-history__summary{cursor:pointer;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.1em;-webkit-user-select:none;user-select:none;align-items:center;gap:.5rem;padding:.65rem 1rem;font-size:.72rem;font-weight:700;list-style:none;display:flex}.pull-history__summary::-webkit-details-marker{display:none}.pull-history__summary:before{content:"▶";font-size:.55rem;transition:transform .15s;display:inline-block}.pull-history[open] .pull-history__summary:before{transform:rotate(90deg)}.pull-history__list{border-top:1px solid var(--color-border);flex-direction:column;gap:.3rem;padding:.25rem .75rem .75rem;display:flex}.history-item{border-radius:var(--radius-sm);align-items:center;gap:.6rem;padding:.3rem .5rem;font-size:.82rem;display:flex}.history-item--ssr{border-left:2px solid var(--color-ssr);background:#ffd7000f}.history-item__pull-num{font-family:var(--font-mono);color:var(--color-text-dim);flex-shrink:0;min-width:2.8rem;font-size:.7rem;font-weight:700}.history-item__name{color:var(--color-text);flex:1;font-weight:600}.history-item__meta{color:var(--color-text-dim);text-transform:uppercase;letter-spacing:.06em;flex-shrink:0;font-size:.62rem;font-weight:700}.history-item__meta--soft{color:var(--color-ssr-glow)}.history-item__meta--hard{color:var(--color-ssr)}.history-item__rate-up{background:var(--color-rate-up);color:#fff;text-transform:uppercase;letter-spacing:.06em;border-radius:3px;flex-shrink:0;padding:1px 5px;font-size:.55rem;font-weight:700}.pull-results{flex-direction:column;gap:.75rem;display:flex}.cards-grid{grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:.5rem;display:grid}.cards-grid--entering{animation:.25s cubic-bezier(.22,1,.36,1) both cardsGridIn}@keyframes cardsGridIn{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}.card{border-radius:var(--radius-card);border:1px solid #0000;height:140px;position:relative;overflow:hidden}.card--ssr{background:linear-gradient(160deg,#2a1e00,#0f0900);border-color:#ffd70080;animation:2.5s ease-in-out infinite alternate cardGlow;box-shadow:0 0 12px #ffa50026}.card--sr{background:linear-gradient(160deg,#1e0a35,#0d0516);border-color:#a855f766}.card--r{background:var(--color-surface-2);border-color:var(--color-border)}@keyframes cardGlow{0%{box-shadow:0 0 8px #ffa50026}to{box-shadow:0 0 22px #ffa50059}}.card__img{object-fit:cover;border-radius:inherit;opacity:.75;width:100%;height:100%;position:absolute;inset:0}.card__overlay{z-index:1;background:linear-gradient(#0000 48%,#000000d1 100%);flex-direction:column;justify-content:flex-end;gap:.1rem;padding:.35rem .4rem;display:flex;position:absolute;inset:0}.card__rarity{text-transform:uppercase;letter-spacing:.1em;font-size:.58rem;font-weight:700}.card--ssr .card__rarity{color:var(--color-ssr)}.card--sr .card__rarity{color:var(--color-sr)}.card--r .card__rarity{color:#6a6a8a}.card__name{color:#fff;word-break:break-word;font-size:.7rem;font-weight:700;line-height:1.2}.card__rate-up{background:var(--color-rate-up);color:#fff;text-transform:uppercase;letter-spacing:.05em;border-radius:3px;align-self:flex-start;padding:1px 4px;font-size:.52rem;font-weight:700}.stats-grid{grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:.6rem;display:grid}.stat-card{background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:var(--radius-card);flex-direction:column;gap:.2rem;padding:.8rem;display:flex}.stat-card__label{color:var(--color-text-dim);text-transform:uppercase;letter-spacing:.08em;font-size:.65rem;font-weight:600}.stat-card__value{font-size:1.3rem;font-weight:800;font-family:var(--font-mono);color:var(--color-text)}.stat-card__value--ssr{color:var(--color-ssr)}.stat-card__value--sr{color:var(--color-sr)}.stats-duration{color:var(--color-text-dim);text-align:right;font-size:.7rem}.sim-trigger-btn{z-index:900;border-radius:var(--radius-sm);border:1px solid var(--color-border-bright);background:var(--color-surface);height:2.25rem;color:var(--color-text-muted);letter-spacing:.01em;align-items:center;gap:.375rem;padding:0 .875rem;font-size:.8rem;font-weight:500;display:inline-flex;position:fixed;top:.75rem;right:.75rem}.sim-trigger-btn:before{content:"⚡";opacity:.7;font-size:.75rem}.sim-trigger-btn:not(:disabled):hover{background:var(--color-surface-2);color:var(--color-text);border-color:var(--color-border-bright)}.sim-modal-backdrop{z-index:950;opacity:1;background:#000000bf;justify-content:center;align-items:center;padding:1rem;transition:opacity .15s;display:flex;position:fixed;inset:0}.sim-modal-backdrop--hidden{opacity:0;pointer-events:none}.sim-modal-panel{background:var(--color-surface);border:1px solid var(--color-border-bright);border-radius:var(--radius-card);flex-direction:column;gap:1.25rem;width:100%;max-width:580px;max-height:85vh;padding:1.5rem;animation:.15s cubic-bezier(.16,1,.3,1) both simModalIn;display:flex;overflow-y:auto;box-shadow:0 0 0 1px #ffffff0a,0 20px 48px #0009}.sim-modal-backdrop--hidden .sim-modal-panel{animation:none}@keyframes simModalIn{0%{opacity:0;transform:translateY(8px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}.sim-modal-header{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.sim-modal-title{color:var(--color-text);letter-spacing:-.01em;margin:0;font-size:1.05rem;font-weight:600}.sim-modal-close{border-radius:var(--radius-sm);width:1.75rem;height:1.75rem;color:var(--color-text-muted);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;padding:0;font-size:1rem;line-height:1;display:inline-flex}.sim-modal-close:not(:disabled):hover{background:var(--color-surface-2);color:var(--color-text)}.sim-modal-panel>*+*{padding-top:0}.sim-modal-controls{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.sim-modal-controls label{color:var(--color-text-muted);white-space:nowrap;font-size:.8rem;font-weight:500}.sim-modal-controls input[type=number]{flex:1;min-width:100px}.btn-simulate{border-radius:var(--radius-sm);background:var(--color-text);height:2.25rem;color:var(--color-bg);white-space:nowrap;border:none;justify-content:center;align-items:center;padding:0 1rem;font-size:.875rem;font-weight:600;display:inline-flex}.btn-simulate:not(:disabled):hover{background:#fafafae0}.btn-simulate--loading{opacity:.5}.sim-modal-results:not(:empty){border-top:1px solid var(--color-border);padding-top:1.25rem}.pull-overlay{z-index:1000;opacity:1;background:#000000ed;flex-direction:column;justify-content:center;align-items:center;gap:1.5rem;transition:opacity .35s;display:flex;position:fixed;inset:0}.pull-overlay--hidden{opacity:0;pointer-events:none}.pull-overlay--ssr-vignette{background:radial-gradient(70% 60%,#ffb40012 0%,#000000ed 70%)}.overlay-cards{z-index:1;flex-wrap:wrap;justify-content:center;gap:10px;display:flex;position:relative}.card-wrapper{perspective:1200px;opacity:0;transition:opacity .28s,transform .28s cubic-bezier(.22,1,.36,1);transform:translateY(28px)scale(.92)}.card-wrapper--visible{opacity:1;transform:translateY(0)scale(1)}.card-wrapper--1x{width:200px;height:280px}.card-wrapper--10x{width:110px;height:155px}.card-wrapper--ssr-revealed{z-index:2;transition:transform .3s cubic-bezier(.22,1,.36,1);transform:translateY(-6px)scale(1.04)}.card-inner{width:100%;height:100%;transform-style:preserve-3d;transition:transform .52s cubic-bezier(.45,.05,.55,.95);position:relative}.card-inner--animating{will-change:transform}.card-inner--no-transition{transition:none!important}.card-inner.is-flipped{transform:rotateY(180deg)}.card-back,.card-front{backface-visibility:hidden;border-radius:10px;position:absolute;inset:0;overflow:hidden}.card-back{background:linear-gradient(135deg,#1a1a2e,#16213e);border:2px solid #89a;justify-content:center;align-items:center;display:flex}.card-back:after{content:"";background:conic-gradient(#0000 0deg,#ffffff0f 60deg,#0000 120deg);animation:3s linear infinite rotateBorder;position:absolute;inset:-50%}@keyframes rotateBorder{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.card-back__logo{color:#89a;letter-spacing:.1em;z-index:1;font-size:1.5rem;font-weight:900;position:relative}.card-front{border:2px solid #0000;transform:rotateY(180deg)}.card-front--ssr{border-color:gold;animation:1.8s ease-in-out infinite alternate shimmerSSR;box-shadow:0 0 30px gold,0 0 60px #ffa50080}.card-front--sr{border-color:#c070e0;animation:2s ease-in-out infinite pulseGlowSR;box-shadow:0 0 16px #c070e0}.card-front--r{border-color:#a8c8e8;box-shadow:0 0 8px #a8c8e866}@keyframes shimmerSSR{0%{box-shadow:0 0 25px gold,0 0 55px #ffa50066}to{box-shadow:0 0 45px gold,0 0 90px #ffa500b3}}@keyframes pulseGlowSR{0%,to{box-shadow:0 0 14px #c070e0}50%{box-shadow:0 0 28px #c070e0}}.card-front__img{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.card-front__overlay{background:linear-gradient(#0000 45%,#000000d9 100%);flex-direction:column;justify-content:flex-end;gap:.15rem;padding:.5rem .6rem;display:flex;position:absolute;inset:0}.card-front__rarity{text-transform:uppercase;letter-spacing:.08em;font-size:.65rem;font-weight:700}.card-front--ssr .card-front__rarity{color:gold}.card-front--sr .card-front__rarity{color:#c070e0}.card-front--r .card-front__rarity{color:#a8c8e8}.card-front__name{color:#fff;word-break:break-word;font-size:.8rem;font-weight:600}.card-front__rate-up{color:#fff;background:var(--color-rate-up,#e74c3c);text-transform:uppercase;letter-spacing:.05em;border-radius:3px;align-self:flex-start;padding:1px 4px;font-size:.6rem;font-weight:700}@keyframes shake{0%,to{transform:translate(0,0)}12%{transform:translate(-7px)}25%{transform:translate(7px)}37%{transform:translate(-5px)}50%{transform:translate(5px)}62%{transform:translate(-3px)}75%{transform:translate(3px)}87%{transform:translate(-1px)}}.overlay--shake{animation:.45s ease-out shake}.overlay-actions{z-index:1;opacity:0;gap:1rem;animation:.3s .15s forwards actionsIn;display:flex;position:relative;transform:translateY(12px)}@keyframes actionsIn{to{opacity:1;transform:translateY(0)}}.overlay-btn{cursor:pointer;border:none;border-radius:6px;padding:.6rem 1.8rem;font-size:.9rem;font-weight:700}.overlay-btn--skip{color:#bbb;background:#ffffff1a;border:1px solid #ffffff2e;transition:background .15s,color .15s}.overlay-btn--skip:hover{color:#fff;background:#ffffff2e}.overlay-btn--close{color:#000;background:gold;transition:background .15s;animation:.25s cubic-bezier(.22,1,.36,1) both closePop}@keyframes closePop{0%{opacity:0;transform:scale(.85)}to{opacity:1;transform:scale(1)}}.overlay-btn--close:hover{background:#ffe34d}.overlay-btn--hidden{display:none}
