.app-header{z-index:10;border-bottom:1px solid var(--color-frame);background:linear-gradient(#080809eb,#0e0d0dcc);min-height:6.5rem;position:relative;box-shadow:0 2px #000c,0 3px #8a70482e,0 .8rem 1.8rem #00000073}.app-header:before{content:"";pointer-events:none;background:linear-gradient(90deg,#0000,#8a70480f 50%,#0000);position:absolute;inset:0}.app-header:after{content:"";pointer-events:none;background:linear-gradient(#ffffff06,#0000 35%);position:absolute;inset:0}.app-header__content{z-index:1;justify-content:space-between;align-items:center;width:min(100% - 3rem,1460px);min-height:6.5rem;margin:0 auto;padding:0 1rem;display:flex;position:relative}.app-header__brand{width:16rem;color:inherit;flex-shrink:0;text-decoration:none;transition:filter .16s,transform .16s;display:block}.app-header__brand:hover{filter:brightness(1.08);transform:translateY(-1px)}.app-header__logo{object-fit:contain;width:100%;height:auto;display:block}.app-header__nav{color:var(--color-text-secondary);align-items:center;gap:1.35rem;display:flex}.app-header__username{color:var(--color-accent);font-family:var(--font-heading);letter-spacing:.045em;text-transform:uppercase;text-shadow:0 1px 4px #000c;font-size:.95rem;font-weight:700}.app-header__separator{background:linear-gradient(180deg, transparent, var(--color-frame-highlight), transparent);opacity:.75;width:1px;height:1.5rem}.app-header__stats{color:var(--color-text-secondary);font-family:var(--font-heading);letter-spacing:.1em;text-transform:uppercase;font-size:.82rem;font-weight:400;text-decoration:none;transition:color .16s,text-shadow .16s;position:relative}.app-header__stats:after{content:"";background:var(--color-frame-highlight);opacity:.7;height:1px;transition:background .16s,opacity .16s;position:absolute;bottom:-.3rem;left:0;right:0}.app-header__stats:hover{color:var(--color-accent);text-shadow:0 0 .8rem #d6a84f2e}.app-header__stats:hover:after{background:var(--color-accent);opacity:1}.app-header__logout{border-radius:var(--radius-sm);min-width:9.5rem;color:var(--color-action-text);font-family:var(--font-heading);letter-spacing:.14em;text-transform:uppercase;background:linear-gradient(#a52b24,#6d1717);border:1px solid #7d241f;padding:.7rem 1.35rem;font-size:.76rem;font-weight:700;transition:background .16s,border-color .16s,transform .16s,box-shadow .16s;box-shadow:inset 0 1px #ffffff1f,inset 0 -2px #00000059,0 .2rem .6rem #00000073}.app-header__logout:hover:not(:disabled){background:linear-gradient(#bd3730,#801d1d);border-color:#b63131;transform:translateY(-1px);box-shadow:inset 0 1px #ffffff24,inset 0 -2px #00000059,0 .3rem .8rem #0000008c}.app-header__logout:active:not(:disabled){transform:translateY(1px)}.app-header__logout:disabled{cursor:not-allowed;opacity:.6}@media (width<=1100px){.app-header__content{width:min(100% - 2rem,1460px);padding-inline:.5rem}.app-header__brand{width:clamp(10rem,20vw,14rem)}.app-header__nav{gap:clamp(.65rem,1.5vw,1.1rem)}.app-header__username{font-size:.8rem}.app-header__stats{letter-spacing:.07em;font-size:.72rem}.app-header__logout{min-width:7.5rem;padding:.62rem .85rem;font-size:.68rem}}@media (width<=620px){.app-header,.app-header__content{min-height:auto}.app-header__content{flex-direction:column;justify-content:center;align-items:center;gap:.65rem;width:min(100% - 1rem,500px);padding:.65rem .25rem .75rem}.app-header__brand{flex-shrink:0;width:clamp(8rem,36vw,9.5rem)}.app-header__nav{flex-wrap:wrap;justify-content:center;align-items:center;gap:clamp(.4rem,2vw,.65rem);width:100%;min-width:0;display:flex}.app-header__username{letter-spacing:.025em;white-space:nowrap;text-overflow:ellipsis;flex-shrink:1;max-width:clamp(4.5rem,24vw,7rem);font-size:.68rem;display:block;overflow:hidden}.app-header__separator{flex-shrink:0;height:1.1rem}.app-header__stats{letter-spacing:.045em;flex-shrink:0;font-size:.66rem}.app-header__nav form{flex-shrink:0}.app-header__logout{letter-spacing:.06em;min-width:auto;padding:.55rem .7rem;font-size:.6rem}}@media (width<=360px){.app-header__content{width:calc(100% - .5rem);padding-inline:.125rem}.app-header__nav{gap:.5rem .35rem}.app-header__username{max-width:4.25rem;font-size:.58rem}.app-header__stats{font-size:.58rem}.app-header__logout{padding:.48rem .55rem;font-size:.55rem}}@media (prefers-reduced-motion:reduce){.app-header__brand,.app-header__stats,.app-header__stats:after,.app-header__logout{transition:none}.app-header__brand:hover,.app-header__logout:hover:not(:disabled),.app-header__logout:active:not(:disabled){transform:none}}.hero-selection{isolation:isolate;background:var(--color-bg-primary);min-height:100vh;position:relative;overflow:clip}.hero-selection:before{content:"";z-index:-2;pointer-events:none;background-color:#0000;background-image:linear-gradient(#0003,#0000000d 35%,#00000047 100%),url(/assets/hero-selection-dungeon-background-CY7taWcv.webp);background-position:50%;background-repeat:no-repeat;background-size:cover;background-attachment:scroll,scroll;background-origin:padding-box,padding-box;background-clip:border-box,border-box;position:fixed;inset:0}.hero-selection:after{content:"";z-index:-1;pointer-events:none;position:absolute;inset:0;box-shadow:inset 0 8rem 7rem #0000008c,inset 0 -8rem 8rem #000000b3}.hero-selection__atmosphere{z-index:-1;pointer-events:none;background:radial-gradient(circle at 8% 28%,#d25a1824,#0000 15%),radial-gradient(circle at 92% 28%,#d25a1824,#0000 15%);display:none;position:absolute;inset:0}.hero-selection__content{width:min(100% - 3rem,1460px);margin:0 auto;padding:2.75rem 0 3.5rem}.hero-selection__header{text-align:center;margin-bottom:1.5rem}.hero-selection__title{color:#f1e4cf;font-family:var(--font-heading);letter-spacing:.025em;text-transform:uppercase;text-shadow:0 2px #65523a,0 4px 12px #000000f2;margin:0;font-size:clamp(2.25rem,4vw,4rem);font-weight:900;line-height:1}.hero-selection__subtitle{color:var(--color-accent);font-family:var(--font-heading);letter-spacing:.18em;text-transform:uppercase;text-shadow:0 2px 6px #000000e6;margin:.55rem 0 0;font-size:clamp(.72rem,1.15vw,1rem);font-weight:400;line-height:1.5}.hero-selection__divider{width:min(100%,42rem);margin:.75rem auto 1.25rem}.hero-selection__divider img{width:100%;height:auto;display:block}.hero-selection__grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;display:grid}.hero-card{background:linear-gradient(#171719,#0c0d0f);flex-direction:column;width:100%;min-width:0;transition:border-color .18s,transform .18s,box-shadow .18s;display:flex;position:relative;overflow:hidden;box-shadow:0 1rem 2rem #000000a6,inset 0 1px #ffffff0f,inset 0 -2px #000c}.hero-card:before{content:"";z-index:2;pointer-events:none;border:1px solid #8a70487a;display:none;position:absolute;inset:.35rem}.hero-card:hover{border-color:var(--color-frame-highlight);transform:translateY(-4px);box-shadow:0 1.4rem 2.5rem #000000b8,0 0 1.25rem #d6a84f14,inset 0 1px #ffffff14}.hero-card__image-wrapper{z-index:1;aspect-ratio:4/3;border-bottom:1px solid var(--color-frame);background:#08090b;position:relative;overflow:hidden}.hero-card__image-wrapper:after{content:"";background:linear-gradient(#0000 58%,#0000002e 72%,#000000d1 100%);position:absolute;inset:0}.hero-card__image{object-fit:cover;width:100%;height:100%;transition:transform .4s,filter .4s}.hero-card:hover .hero-card__image{filter:brightness(1.06);transform:scale(1.025)}.hero-card__content{z-index:2;flex-direction:column;flex:1;row-gap:.5rem;padding:.7rem .9rem 1.4rem;display:flex;position:relative}.hero-card__name{color:#ead7b9;font-family:var(--font-heading);letter-spacing:.055em;text-align:center;text-transform:uppercase;text-shadow:0 2px 5px #000000e6;margin:0;font-size:clamp(.95rem,1.35vw,1.1rem);font-weight:700;line-height:1.2}.hero-card__description{max-width:95%;min-height:3.132rem;color:var(--color-text-secondary);font-family:var(--font-body);text-align:center;margin:.5rem auto 0;font-size:.72rem;line-height:1.45}.hero-card__stats{border-top:1px solid #5a493299;border-bottom:1px solid #5a493299;grid-template-columns:repeat(3,1fr);margin:.55rem 0 0;padding:.42rem 0;display:grid}.hero-card__stat{text-align:center;flex-direction:column;align-items:center;min-width:0;display:flex}.hero-card__stat+.hero-card__stat{border-left:1px solid #5a493273}.hero-card__stat dt{color:var(--color-text-muted);font-family:var(--font-body);letter-spacing:.1em;text-transform:uppercase;align-items:center;gap:.3rem;margin:0;font-size:.58rem;font-weight:700;display:flex}.hero-card__stat dt img{object-fit:contain;width:.95rem;height:.95rem}.hero-card__stat dd{color:var(--color-text-primary);font-family:var(--font-heading);order:-1;margin:0 0 .05rem;font-size:.95rem;font-weight:700}.hero-card__button{border-radius:var(--radius-sm);width:min(100%,13rem);color:var(--color-action-text);font-family:var(--font-heading);letter-spacing:.08em;text-transform:uppercase;background:linear-gradient(#a32b24,#681616);border:1px solid #76221d;align-self:center;margin-top:auto;margin-bottom:.75rem;padding:.52rem 1rem;font-size:.7rem;font-weight:700;line-height:1;transition:background .16s,border-color .16s,transform .16s;position:relative;box-shadow:inset 0 1px #ffffff1a}.hero-card__button:hover{background:linear-gradient(#bd3730,#801d1d);border-color:#b63131;transform:translateY(-1px)}.hero-card__button:active{transform:translateY(1px)}.hero-selection__quote{color:#b5afa3a6;font-family:var(--font-heading);letter-spacing:.18em;text-align:center;text-transform:uppercase;text-shadow:0 2px 5px #000000e6;margin:2.2rem auto 0;font-size:.75rem}.hero-selection__quote:before,.hero-selection__quote:after{content:"";background:linear-gradient(90deg, transparent, var(--color-frame-highlight));width:4rem;height:1px;margin:0 .8rem .25rem;display:inline-block}.hero-selection__quote:after{background:linear-gradient(90deg, var(--color-frame-highlight), transparent)}.hero-selection__loading,.hero-selection__error{background:var(--color-bg-card);border:1px solid var(--color-border);width:min(100% - 2rem,600px);box-shadow:var(--shadow-card);text-align:center;margin:4rem auto;padding:2rem}.hero-selection__error{border-color:var(--color-danger)}.hero-selection__error-message{color:var(--color-danger);margin-bottom:0}.hero-selection__footer-nav{text-align:center;margin-top:1rem}.hero-selection__footer-nav a{color:var(--color-accent);font-family:var(--font-heading);letter-spacing:.1em;text-transform:uppercase;font-size:.75rem;text-decoration:none;transition:color .16s}.hero-selection__footer-nav a:hover{color:var(--color-accent-hover);text-underline-offset:.25rem;text-decoration:underline}@media (width<=1279px){.hero-selection__grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width<=900px){.hero-selection{min-height:calc(100vh - 6rem)}.hero-selection__content{width:min(100% - 2rem,900px)}.hero-selection__grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=620px){.hero-selection__content{width:min(100% - 1rem,500px);padding-top:.9rem;padding-bottom:2.5rem}.hero-selection__header{margin-bottom:1.5rem}.hero-selection__title{letter-spacing:.015em;overflow-wrap:normal;text-wrap:balance;width:100%;max-width:24rem;margin-inline:auto;font-size:clamp(1.45rem,7.2vw,2.1rem);line-height:1.05}.hero-selection__subtitle{letter-spacing:.13em;max-width:24rem;margin-top:.35rem;margin-left:auto;margin-right:auto;font-size:.62rem;line-height:1.35}.hero-selection__divider{width:min(92%,28rem);margin:1rem auto .55rem}.hero-selection__grid{grid-template-columns:minmax(0,1fr);gap:1rem}.hero-selection__quote:before,.hero-selection__quote:after{width:1.5rem;margin-left:.4rem;margin-right:.4rem}.hero-card{width:min(100%,20rem);margin-inline:auto}.hero-card__content{padding-inline:.8rem;padding-bottom:1.25rem}.hero-card__name{font-size:1rem}.hero-card__description{max-width:96%;min-height:2.94rem;margin-top:.4rem;font-size:.7rem;line-height:1.4}.hero-card__stats{margin-top:.45rem;padding:.35rem 0}.hero-card__stat dt img{width:.85rem;height:.85rem}.hero-card__stat dd{font-size:.9rem}.hero-card__button{width:min(100%,14rem);margin-top:auto;margin-bottom:.75rem;padding:.5rem .75rem}}@media (width<=380px){.hero-selection__content{padding-top:.7rem}.hero-selection__title{font-size:clamp(1.35rem,7vw,1.6rem)}.hero-selection__subtitle{letter-spacing:.11em;font-size:.58rem}.hero-selection__divider{width:90%;margin-top:.3rem;margin-bottom:.45rem}.hero-card{width:min(100%,19rem)}}.route-error{isolation:isolate;box-sizing:border-box;background:linear-gradient(#06070980,#060709c7),url(/assets/hero-selection-dungeon-background-CY7taWcv.webp) 50%/cover no-repeat;place-items:center;min-height:100dvh;padding:2rem 1rem;display:grid;position:relative}.route-error__content{isolation:isolate;box-sizing:border-box;background:linear-gradient(#18191df7,#0a0b0efa);width:min(100%,34rem);padding:3rem 2.25rem;position:relative;box-shadow:0 1.5rem 3rem #000000a6,inset 0 1px #ffffff0d,inset 0 -1px #000000bf}.route-error__brand{z-index:1;justify-content:center;margin:-.25rem auto .5rem;display:flex;position:relative}.route-error__brand img{object-fit:contain;filter:drop-shadow(0 .45rem .8rem #000000b3);width:min(100%,15rem);height:auto;display:block}.route-error__divider{z-index:1;align-items:center;gap:.7rem;margin:.5rem 0 1.5rem;display:flex;position:relative}.route-error__divider:before,.route-error__divider:after{content:"";background:linear-gradient(90deg, transparent, var(--color-frame-highlight));flex:1;height:1px}.route-error__divider:after{background:linear-gradient(90deg, var(--color-frame-highlight), transparent)}.route-error__divider span{border:1px solid var(--color-frame-highlight);background:var(--color-bg-surface-raised);flex:none;width:.45rem;height:.45rem;transform:rotate(45deg)}.route-error__eyebrow{z-index:1;color:var(--color-danger);font-family:var(--font-heading);letter-spacing:.16em;text-align:center;text-transform:uppercase;margin:0 0 .65rem;font-size:.75rem;font-weight:700;position:relative}.route-error__status{z-index:1;color:var(--color-accent);font-family:var(--font-heading);text-align:center;margin:0 0 .5rem;font-size:2.5rem;line-height:1;position:relative}.route-error__title{z-index:1;color:var(--color-text-primary);font-family:var(--font-heading);text-align:center;margin:0;font-size:clamp(1.4rem,4vw,2rem);line-height:1.3;position:relative}.route-error__message{z-index:1;max-width:27rem;color:var(--color-text-secondary);text-align:center;overflow-wrap:anywhere;margin:1rem auto 1.75rem;font-size:.9rem;line-height:1.8;position:relative}.route-error__actions{z-index:1;justify-items:center;gap:1rem;display:grid;position:relative}.route-error__action{box-sizing:border-box;background:linear-gradient(180deg, var(--color-action-hover), var(--color-action));min-width:14rem;min-height:2.9rem;color:var(--color-action-text);font-family:var(--font-heading);letter-spacing:.07em;text-transform:uppercase;cursor:pointer;border:1px solid #5f2020;border-radius:.2rem;justify-content:center;align-items:center;padding:.75rem 1.25rem;font-size:.8rem;font-weight:700;text-decoration:none;display:inline-flex}.route-error__action:hover{background:var(--color-action-hover)}.route-error__secondary-action{color:var(--color-accent);font-size:.85rem;font-weight:600;text-decoration:none}.route-error__secondary-action:hover{color:var(--color-accent-hover);text-decoration:underline}.route-error__action:focus-visible,.route-error__secondary-action:focus-visible{outline:2px solid var(--color-accent);outline-offset:4px}.auth-error{isolation:isolate;box-sizing:border-box;background:linear-gradient(#06070980,#060709c7),url(/assets/hero-selection-dungeon-background-CY7taWcv.webp) 50%/cover no-repeat;place-items:center;min-height:100dvh;padding:2rem 1rem;display:grid;position:relative}.auth-error__card{isolation:isolate;box-sizing:border-box;text-align:center;background:linear-gradient(#18191df7,#0a0b0efa);width:min(100%,31rem);padding:3rem 2rem;position:relative;box-shadow:0 1.5rem 3rem #000000a6,inset 0 1px #ffffff0d,inset 0 -1px #000000bf}.auth-error__brand{z-index:1;justify-content:center;margin:-.25rem auto .5rem;display:flex;position:relative}.auth-error__brand img{object-fit:contain;filter:drop-shadow(0 .45rem .8rem #000000b3);width:min(100%,15rem);height:auto;display:block}.auth-error__divider{z-index:1;align-items:center;gap:.7rem;margin:.5rem 0 1.5rem;display:flex;position:relative}.auth-error__divider:before,.auth-error__divider:after{content:"";background:linear-gradient(90deg, transparent, var(--color-frame-highlight));flex:1;height:1px}.auth-error__divider:after{background:linear-gradient(90deg, var(--color-frame-highlight), transparent)}.auth-error__divider span{border:1px solid var(--color-frame-highlight);background:var(--color-bg-surface-raised);flex:none;width:.45rem;height:.45rem;transform:rotate(45deg)}.auth-error__eyebrow{z-index:1;color:var(--color-danger);font-family:var(--font-heading);letter-spacing:.16em;text-transform:uppercase;margin:0 0 .65rem;font-size:.75rem;font-weight:700;position:relative}.auth-error__card h1{z-index:1;color:var(--color-text-primary);font-family:var(--font-heading);margin:0;font-size:clamp(1.4rem,4vw,1.9rem);line-height:1.3;position:relative}.auth-error__message{z-index:1;color:var(--color-text-secondary);overflow-wrap:anywhere;margin:1rem 0 1.75rem;font-size:.9rem;line-height:1.8;position:relative}.auth-error__action{z-index:1;box-sizing:border-box;background:linear-gradient(180deg, var(--color-action-hover), var(--color-action));min-width:13rem;min-height:2.9rem;color:var(--color-action-text);font-family:var(--font-heading);letter-spacing:.06em;text-transform:uppercase;border:1px solid #5f2020;border-radius:.2rem;justify-content:center;align-items:center;padding:.75rem 1.25rem;font-size:.8rem;font-weight:700;text-decoration:none;display:inline-flex;position:relative}.auth-error__action:hover{background:var(--color-action-hover)}.auth-error__action:focus-visible{outline:2px solid var(--color-accent);outline-offset:4px}.auth-page{box-sizing:border-box;background:linear-gradient(#06070980,#060709b8),url(/assets/hero-selection-dungeon-background-CY7taWcv.webp) 50%/cover no-repeat;place-items:center;min-height:100dvh;padding:3rem 1.5rem;display:grid;position:relative;overflow:hidden}.auth-page:before{content:"";pointer-events:none;background:radial-gradient(circle at 50% 38%,#d6a84f14,#0000 35%),linear-gradient(90deg,#00000052,#0000 30% 70%,#00000052);position:absolute;inset:0}.auth-card{z-index:1;box-sizing:border-box;isolation:isolate;background:linear-gradient(#18191df7,#0a0b0efa);width:min(100%,31rem);padding:1.5rem 2rem 4.5rem;position:relative;box-shadow:0 1.5rem 3rem #000000a6,inset 0 1px #ffffff0d,inset 0 -1px #000000bf}.auth-card:before{content:"";pointer-events:none;position:absolute;inset:.35rem}.auth-card:after{content:"";background:linear-gradient(90deg, transparent, var(--color-frame-highlight), transparent);opacity:.8;pointer-events:none;height:1px;position:absolute;top:.15rem;left:12%;right:12%}.auth-card__brand{z-index:1;justify-content:center;align-items:center;margin:-.75rem auto -.25rem;display:flex;position:relative}.auth-card__brand:before,.auth-card__brand:after{content:"";border:1px solid var(--color-frame-highlight);background:var(--color-bg-surface-raised);opacity:.8;width:.45rem;height:.45rem;position:absolute;top:50%;transform:translateY(-50%)rotate(45deg)}.auth-card__brand:before{left:0}.auth-card__brand:after{right:0}.auth-card__brand img{filter:drop-shadow(0 .45rem .8rem #000000b3)drop-shadow(0 0 .6rem #d6a84f14);width:min(100%,16rem);height:auto;display:block}.auth-card__divider{z-index:1;justify-content:center;align-items:center;margin:.25rem 0 1.25rem;display:flex;position:relative}.auth-card__divider:before,.auth-card__divider:after{content:"";background:linear-gradient(90deg, transparent, var(--color-frame));flex:1;height:1px}.auth-card__divider:after{background:linear-gradient(90deg, var(--color-frame), transparent)}.auth-card__divider span{border:1px solid var(--color-frame-highlight);background:var(--color-bg-surface-raised);width:.45rem;height:.45rem;margin:0 .7rem;transform:rotate(45deg)}.auth-card__header{z-index:1;text-align:center;margin-bottom:1.75rem;position:relative}.auth-card__eyebrow{color:var(--color-accent);font-family:var(--font-heading);letter-spacing:.14em;text-transform:uppercase;margin:0 0 .35rem;font-size:.7rem;font-weight:700;line-height:1.4}.auth-card__header h1{color:var(--color-text-primary);font-family:var(--font-heading);white-space:nowrap;text-shadow:0 .15rem .4rem #000000a6;margin:0;font-size:clamp(1.55rem,4vw,2rem);line-height:1.15}.auth-card__header p:last-child{max-width:22rem;color:var(--color-text-secondary);margin:.65rem auto 0;font-size:.875rem;line-height:1.5}.auth-form{z-index:1;gap:1.15rem;display:grid;position:relative}.auth-form__field{gap:.45rem;display:grid}.auth-form__field label{color:var(--color-text-primary);font-family:var(--font-heading);letter-spacing:.08em;text-transform:uppercase;font-size:.72rem;font-weight:700}.auth-form__field input{box-sizing:border-box;border:1px solid var(--color-border);background:linear-gradient(180deg, var(--color-bg-surface-inset), #08090b);width:100%;min-height:2.8rem;color:var(--color-text-primary);font:inherit;box-shadow:var(--shadow-inset), 0 0 0 1px #0003;border-radius:.15rem;padding:.7rem .8rem;transition:border-color .14s,box-shadow .14s,background-color .14s}.auth-form__field input::placeholder{color:var(--color-text-muted)}.auth-form__field input:hover{border-color:var(--color-border-hover)}.auth-form__field input:focus{border-color:var(--color-frame-highlight);box-shadow:0 0 0 1px var(--color-frame-highlight), 0 0 0 3px #d6a84f1a, var(--shadow-inset);outline:none}.auth-form__submit{background:linear-gradient(180deg, var(--color-action-hover), var(--color-action));min-height:3rem;color:var(--color-action-text);font-family:var(--font-heading);letter-spacing:.08em;text-transform:uppercase;cursor:pointer;border:1px solid #5f2020;border-radius:.2rem;margin-top:.25rem;padding:.7rem 1rem;font-size:.82rem;font-weight:700;transition:background .14s,transform .14s,box-shadow .14s;position:relative;box-shadow:inset 0 1px #ffffff1f,inset 0 -2px #00000059,0 .35rem .8rem #00000059}.auth-form__submit:before,.auth-form__submit:after{content:"";background:var(--color-action);border:1px solid #d6a84fb3;width:.35rem;height:.35rem;position:absolute;top:50%;transform:translateY(-50%)rotate(45deg)}.auth-form__submit:before{left:.6rem}.auth-form__submit:after{right:.6rem}.auth-form__submit:hover:not(:disabled){background:linear-gradient(180deg, #c43a3a, var(--color-action-hover));transform:translateY(-1px);box-shadow:inset 0 1px #ffffff24,inset 0 -2px #00000059,0 .45rem 1rem #00000073}.auth-form__submit:active:not(:disabled){transform:translateY(1px)}.auth-form__submit:focus-visible{outline:2px solid var(--color-accent);outline-offset:3px}.auth-form__submit:disabled{cursor:wait;opacity:.65}.auth-card__footer{z-index:1;color:var(--color-text-secondary);text-align:center;margin:1.35rem 0 0;font-size:.8rem;line-height:1.5;position:relative}.auth-card__footer a{color:var(--color-accent);font-weight:700;text-decoration:none}.auth-card__footer a:hover{color:var(--color-accent-hover);text-decoration:underline}.auth-form__error{color:#e58a8a;background:#4a141473;border:1px solid #b631318c;border-radius:.15rem;margin:0;padding:.6rem .7rem;font-size:.78rem;line-height:1.4}.auth-form__field input[aria-invalid=true]{border-color:var(--color-danger)}.auth-form__field input[aria-invalid=true]:focus{box-shadow:0 0 0 1px var(--color-danger), 0 0 0 3px #b631311f, var(--shadow-inset);outline:none}.auth-form__captcha{justify-content:center;min-width:0;display:flex;overflow:auto hidden}@media (width<=700px){.auth-page{padding:2rem 1rem}.auth-card{width:min(100%,27rem)}.auth-card__brand img{width:min(100%,14rem)}}@media (width<=480px){.auth-page{align-items:center;min-height:100dvh;padding:1.25rem .75rem}.auth-card{width:100%;padding:1.2rem 1.25rem 4rem}.auth-card:before{inset:.25rem}.auth-card__brand{margin-top:-.6rem}.auth-card__brand img{width:min(100%,12rem)}.auth-card__divider{margin-bottom:1rem}.auth-card__header{margin-bottom:1.35rem}.auth-card__header h1{white-space:normal;font-size:1.45rem}.auth-form{gap:1rem}.auth-form__submit{min-height:2.9rem}}@media (width<=360px){.auth-page{padding:.75rem .5rem}.auth-card{padding-inline:1rem}.auth-card__brand img{width:min(100%,10.5rem)}.auth-card__header h1{font-size:1.35rem}}.confirmation-modal{z-index:1000;place-items:center;padding:1.25rem;display:grid;position:fixed;inset:0}.confirmation-modal__backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);cursor:default;background:#000000b8;border:0;width:100%;height:100%;padding:0;position:absolute;inset:0}.confirmation-modal__dialog{z-index:1;box-sizing:border-box;border:1px solid var(--color-frame);text-align:center;background:linear-gradient(#19191dfc,#0a0b0efc);border-radius:.15rem;width:min(100%,30rem);padding:2rem 2rem 1.75rem;position:relative;box-shadow:0 1.5rem 4rem #000000bf,inset 0 1px #ffffff0d,inset 0 -1px #000c}.confirmation-modal__dialog:before{content:"";pointer-events:none;border:1px solid #8a704873;position:absolute;inset:.35rem}.confirmation-modal__dialog:after{content:"";background:linear-gradient(90deg, transparent, var(--color-frame-highlight), transparent);opacity:.8;pointer-events:none;height:1px;position:absolute;top:.15rem;left:12%;right:12%}.confirmation-modal__ornament{z-index:1;align-items:center;gap:.75rem;margin-bottom:1rem;display:flex;position:relative}.confirmation-modal__ornament:before,.confirmation-modal__ornament:after{content:"";background:linear-gradient(90deg, transparent, var(--color-frame));flex:1;height:1px}.confirmation-modal__ornament:after{background:linear-gradient(90deg, var(--color-frame), transparent)}.confirmation-modal__ornament span{border:1px solid var(--color-frame-highlight);background:var(--color-bg-surface-raised);width:.55rem;height:.55rem;transform:rotate(45deg)}.confirmation-modal__eyebrow{z-index:1;color:var(--color-danger);font-family:var(--font-heading);letter-spacing:.12em;text-transform:uppercase;margin:0 0 .45rem;font-size:.7rem;font-weight:700;position:relative}.confirmation-modal__dialog h2{z-index:1;color:var(--color-text-primary);font-family:var(--font-heading);text-shadow:0 .15rem .4rem #000000a6;margin:0;font-size:clamp(1.35rem,4vw,1.7rem);line-height:1.2;position:relative}.confirmation-modal__dialog>p:not(.confirmation-modal__eyebrow){z-index:1;max-width:24rem;color:var(--color-text-secondary);margin:.75rem auto 0;font-size:.85rem;line-height:1.55;position:relative}.confirmation-modal__actions{z-index:1;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;margin-top:1.5rem;display:grid;position:relative}.confirmation-modal__cancel,.confirmation-modal__confirm{min-height:2.8rem;font-family:var(--font-heading);letter-spacing:.06em;text-transform:uppercase;cursor:pointer;border-radius:.15rem;padding:.65rem 1rem;font-size:.7rem;font-weight:700;transition:background .14s,border-color .14s,transform .14s}.confirmation-modal__cancel{border:1px solid var(--color-frame);background:linear-gradient(180deg, var(--color-bg-surface-raised), var(--color-bg-card));color:var(--color-text-primary)}.confirmation-modal__cancel:hover{border-color:var(--color-frame-highlight);background:var(--color-bg-card-hover);transform:translateY(-1px)}.confirmation-modal__confirm{background:linear-gradient(180deg, var(--color-action-hover), var(--color-action));color:var(--color-action-text);border:1px solid #6b2424;box-shadow:inset 0 1px #ffffff1a,inset 0 -2px #00000059}.confirmation-modal__confirm:hover{background:linear-gradient(180deg, #c43a3a, var(--color-action-hover));transform:translateY(-1px)}.confirmation-modal__cancel:focus-visible,.confirmation-modal__confirm:focus-visible{outline:2px solid var(--color-accent);outline-offset:3px}@media (width<=430px){.confirmation-modal{padding:.75rem}.confirmation-modal__dialog{padding:1.5rem 1.25rem 1.35rem}.confirmation-modal__actions{grid-template-columns:1fr}}.game-page{box-sizing:border-box;background:linear-gradient(#090a0d6b,#090a0db3),url(/assets/hero-selection-dungeon-background-CY7taWcv.webp) 50%/cover no-repeat;align-items:center;width:100%;min-height:calc(100dvh - 7.6rem);margin:0 auto;padding:2rem 0 2.5rem;display:flex;position:relative}.game-page__layout{width:min(100% - 2rem, var(--content-width));grid-template-columns:minmax(18rem,.82fr) minmax(0,1.45fr);align-items:stretch;gap:1.25rem;margin:0 auto;display:grid}.game-page__hero-card{box-shadow:var(--shadow-card);background:linear-gradient(#18191dfa,#090a0dfa);flex-direction:column;display:flex;position:relative;overflow:visible}.game-page__hero-image-wrapper{aspect-ratio:4/3;border-bottom:1px solid var(--color-frame);position:relative;overflow:hidden}.game-page__hero-image-wrapper:after{content:"";background:linear-gradient(#0000 55%,#000000b3);position:absolute;inset:0}.game-page__hero-image{object-fit:cover;width:100%;height:100%;display:block}.game-page__hero-content{z-index:3;flex-direction:column;flex:1;padding:1.5rem 1.75rem 3rem;display:flex;position:relative}.game-page__hero-eyebrow,.game-page__section-eyebrow{color:var(--color-accent);font-family:var(--font-heading);letter-spacing:.12em;text-transform:uppercase;margin:0 0 .4rem;font-size:.68rem;font-weight:700;line-height:1.4}.game-page__hero-name{color:var(--color-text-primary);font-family:var(--font-heading);text-shadow:0 .15rem .4rem #000000a6;margin:0;font-size:clamp(1.5rem,3vw,2rem);line-height:1.15}.game-page__hero-description{color:var(--color-text-secondary);margin:.75rem 0 0;font-size:.875rem;line-height:1.6}.game-page__stats{border-top:1px solid var(--color-border);grid-template-columns:repeat(3,1fr);gap:0;margin:auto 0 0;padding-top:1.35rem;display:grid}.game-page__stat{justify-items:center;gap:.35rem;min-width:0;padding:0 .5rem;display:grid}.game-page__stat+.game-page__stat{border-left:1px solid var(--color-border)}.game-page__stat dt{color:var(--color-text-muted);letter-spacing:.06em;text-transform:uppercase;align-items:center;gap:.35rem;font-size:.65rem;font-weight:700;display:flex}.game-page__stat dt img{object-fit:contain;width:1rem;height:1rem}.game-page__stat dd{color:var(--color-text-primary);font-family:var(--font-heading);margin:0;font-size:1.3rem;font-weight:700}.game-page__main{flex-direction:column;gap:1rem;min-width:0;min-height:100%;display:flex}.game-page--no-active-run .game-page__layout{place-items:center}.game-page--no-active-run .game-page__hero-card{justify-self:center;width:min(100%,32rem)}.game-page--no-active-run .game-page__main{flex-direction:column;justify-content:center;align-items:center;width:100%;min-width:0;display:flex}.game-page--no-active-run .game-page__main>*{box-sizing:border-box;width:min(100%,32rem);min-width:0}.game-page--no-active-run .game-page__prepare-card{box-sizing:border-box;flex-direction:column;justify-content:center;min-height:18rem;padding:2.25rem 2rem;display:flex}.game-page--no-active-run .game-page__prepare-card>p:not(.game-page__section-eyebrow){max-width:34rem}.game-page--no-active-run .game-page__start-form{margin-top:1.75rem}.game-page__run-card,.game-page__prepare-card,.game-page__continue-card{box-shadow:var(--shadow-raised), inset 0 1px 0 #ffffff0a, inset 0 -1px 0 #000000b3;background:linear-gradient(#141519f7,#090a0dfa);position:relative}.game-page__run-card{padding:1.5rem}.game-page__run-heading{align-items:center;gap:.9rem;display:flex}.game-page__run-heading h2{color:var(--color-accent);font-family:var(--font-heading);text-align:center;text-shadow:0 .15rem .45rem #000000b3;flex:none;margin:0;font-size:clamp(1.8rem,4vw,2.5rem);line-height:1}.game-page__run-line{background:linear-gradient(90deg, transparent, var(--color-frame));flex:1;height:1px}.game-page__run-line:last-child{background:linear-gradient(90deg, var(--color-frame), transparent)}.game-page__run-status{color:#d8ead4;width:fit-content;font-family:var(--font-heading);letter-spacing:.1em;text-transform:uppercase;background:linear-gradient(#18401c80,#0c1f0f80);border:1px solid #4f7e4a73;border-radius:.2rem;margin:1rem auto 1.25rem;padding:.45rem 2rem;font-size:.7rem;font-weight:700}.game-page__run-summary{border-top:1px solid var(--color-border);grid-template-columns:repeat(2,1fr);margin:0;display:grid}.game-page__run-summary div{text-align:center;padding:1rem}.game-page__run-summary div+div{border-left:1px solid var(--color-border)}.game-page__run-summary dt{color:var(--color-text-muted);letter-spacing:.06em;text-transform:uppercase;font-size:.68rem;font-weight:700}.game-page__run-summary dd{color:var(--color-text-primary);font-family:var(--font-heading);margin:.35rem 0 0;font-size:1rem;font-weight:700}.game-page__continue-card,.game-page__prepare-card{padding:1.75rem}.game-page__continue-content,.game-page__prepare-card>*{z-index:1;position:relative}.game-page__continue-content h2,.game-page__prepare-card h2{color:var(--color-text-primary);font-family:var(--font-heading);margin:0;font-size:clamp(1.4rem,3vw,1.85rem);line-height:1.2}.game-page__continue-content p:last-child,.game-page__prepare-card>p:not(.game-page__section-eyebrow){max-width:38rem;color:var(--color-text-secondary);margin:.65rem 0 0;font-size:.875rem;line-height:1.6}.game-page__continue-card{grid-template-columns:minmax(0,1fr) minmax(15rem,.75fr);align-items:center;gap:1.5rem;display:grid}.game-page__primary-action{z-index:1;background:linear-gradient(180deg, var(--color-action-hover), var(--color-action));width:100%;min-height:3.5rem;color:var(--color-action-text);font-family:var(--font-heading);letter-spacing:.06em;text-transform:uppercase;cursor:pointer;border:1px solid #6b2424;border-radius:.2rem;grid-template-columns:auto 1fr auto;align-items:center;gap:.7rem;padding:.8rem 1rem;font-size:.8rem;font-weight:700;transition:background .14s,transform .14s,box-shadow .14s;display:grid;position:relative;box-shadow:inset 0 1px #ffffff1f,inset 0 -2px #00000059,0 .4rem 1rem #0006}.game-page__primary-action:hover:not(:disabled){background:linear-gradient(180deg, #c43a3a, var(--color-action-hover));transform:translateY(-1px)}.game-page__primary-action:active:not(:disabled){transform:translateY(1px)}.game-page__primary-action:focus-visible,.game-page__secondary-action:focus-visible,.game-page__danger-action:focus-visible{outline:2px solid var(--color-accent);outline-offset:3px}.game-page__primary-action:disabled,.game-page__secondary-action:disabled,.game-page__danger-action:disabled{cursor:wait;opacity:.55}.game-page__action-arrow{font-size:1.3rem;line-height:1}.game-page__run-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem;margin-top:auto;display:grid}.game-page__secondary-action,.game-page__danger-action{border:1px solid var(--color-frame);min-height:4.25rem;color:var(--color-text-primary);font-family:var(--font-heading);letter-spacing:.04em;text-transform:uppercase;cursor:pointer;box-shadow:var(--shadow-raised), inset 0 1px 0 #ffffff0a;background:linear-gradient(#1c1c1ffa,#0c0d10fa);border-radius:.15rem;grid-template-columns:auto 1fr auto;align-items:center;gap:.55rem;padding:.7rem .8rem;font-size:.7rem;font-weight:700;transition:border-color .14s,background .14s,transform .14s;display:grid}.game-page__secondary-action:hover:not(:disabled){border-color:var(--color-frame-highlight);background:linear-gradient(180deg, var(--color-bg-card-hover), var(--color-bg-card));transform:translateY(-1px)}.game-page__danger-action{background:linear-gradient(#4a1919eb,#1e0c0dfa);border-color:#662626}.game-page__danger-action:hover:not(:disabled){border-color:var(--color-danger);background:linear-gradient(#672222f2,#300f10fa);transform:translateY(-1px)}.game-page__error{z-index:2;color:#e58a8a;background:#4a141480;border:1px solid #b631318c;border-radius:.15rem;margin:0;padding:.7rem .8rem;font-size:.8rem;line-height:1.45;position:relative}.game-page__start-form{z-index:1;margin-top:1.5rem;position:relative}@media (width<=900px){.game-page{padding-top:2.25rem}.game-page__layout{grid-template-columns:1fr;width:min(100% - 2rem,40rem)}.game-page__hero-card{width:100%}.game-page__hero-content{padding:1.35rem 1.35rem 3rem}.game-page__continue-card{grid-template-columns:1fr}.game-page__primary-action{max-width:100%}.game-page__run-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.game-page__secondary-action,.game-page__danger-action{min-height:3.5rem}}@media (width>=701px) and (width<=820px){.game-page__layout{grid-template-columns:minmax(0,1fr);gap:1.5rem}.game-page__hero-card{justify-self:center;width:min(100%,32rem)}.game-page__hero-image-wrapper{aspect-ratio:16/10}.game-page__main{width:100%}}@media (width<=700px){.game-page{width:min(100% - 1.25rem,34rem);padding:1.5rem 0 2.5rem}.game-page__layout{grid-template-columns:1fr}.game-page__hero-image-wrapper{aspect-ratio:16/10}.game-page__hero-content{padding:1.25rem 1.35rem 2.5rem}.game-page__stats{margin-top:1.35rem}.game-page__run-card,.game-page__continue-card,.game-page__prepare-card{padding:1.25rem}.game-page__run-heading h2{font-size:1.8rem}.game-page__run-status{margin-bottom:1rem}.game-page__run-actions{grid-template-columns:1fr}}@media (width<=430px){.game-page{width:100%}.game-page__hero-image-wrapper{aspect-ratio:4/3}.game-page__hero-name{font-size:1.55rem}.game-page__stats{grid-template-columns:repeat(3,minmax(0,1fr))}.game-page__stat{gap:.3rem;padding-inline:.1rem}.game-page__stat dt{letter-spacing:.025em;white-space:nowrap;justify-content:center;gap:.2rem;font-size:.55rem}.game-page__stat dt img{flex-shrink:0;width:.8rem;height:.8rem}.game-page__stat dd{font-size:1.15rem}.game-page__run-heading{gap:.5rem}.game-page__run-heading h2{font-size:1.55rem}.game-page__run-status{box-sizing:border-box;text-align:center;width:100%;padding-inline:1rem}.game-page__run-summary div{padding:.8rem .5rem}.game-page__run-summary dt{font-size:.58rem}.game-page__run-summary dd{font-size:.85rem}.game-page__continue-card,.game-page__prepare-card{padding:1.1rem}.game-page__primary-action{min-height:3.2rem;font-size:.72rem}}.battle-actions{gap:1rem;min-width:0;display:grid}.battle-actions__run-controls{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;display:grid}.battle-actions__button{min-width:0;min-height:2.9rem;color:var(--color-text-primary);font-family:var(--font-heading);text-align:center;text-transform:uppercase;background:var(--color-bg-card);border:1px solid var(--color-frame);border-radius:var(--radius-sm);cursor:pointer;overflow-wrap:anywhere;justify-content:center;align-items:center;padding:.7rem clamp(.5rem,1.5vw,1rem);font-size:.85rem;font-weight:700;line-height:1.35;transition:background-color .16s,border-color .16s,filter .16s;display:inline-flex}.battle-actions__button--primary{width:100%;color:var(--color-action-text);background:var(--color-action);border-color:var(--color-frame-highlight)}.battle-actions__button--primary:hover:not(:disabled){background:var(--color-action-hover)}.battle-actions__button--danger{color:var(--color-action-text);border-color:var(--color-action)}.battle-actions__button--danger:hover:not(:disabled){background:var(--color-action)}.battle-actions__button--gold{color:var(--color-accent);border-color:var(--color-frame-highlight)}.battle-actions__button--gold:hover:not(:disabled){color:var(--color-accent-text);background:var(--color-accent)}.battle-actions__button:disabled{opacity:.55;cursor:not-allowed}.battle-actions__button:focus-visible{outline:2px solid var(--color-accent);outline-offset:3px}.battle-actions__error{color:var(--color-danger);overflow-wrap:anywhere;margin:0;font-size:.875rem;line-height:1.5}@media (width<=420px){.battle-actions__run-controls{grid-template-columns:1fr;gap:.65rem}}@media (prefers-reduced-motion:reduce){.battle-actions__button{transition:none}}.battle-fighter{min-width:0;box-shadow:var(--shadow-card);background:#090a0df0;position:relative}.battle-fighter__portrait{aspect-ratio:1.45;background:var(--color-bg-secondary);position:relative;overflow:hidden}.battle-fighter__portrait:after{content:"";pointer-events:none;background:linear-gradient(#0000,#090a0dd9);position:absolute;inset:45% 0 0}.battle-fighter__portrait img{object-fit:cover;object-position:center 25%;width:100%;height:100%;display:block}.battle-fighter__image-fallback{width:100%;height:100%;min-height:8rem;color:var(--color-accent);font-family:var(--font-heading);background:radial-gradient(circle, var(--color-bg-surface-raised), transparent), var(--color-bg-secondary);place-items:center;font-size:3rem;display:grid}.battle-fighter__content{padding:.75rem .85rem 1.75rem;position:relative}.battle-fighter__role{color:var(--color-text-muted);letter-spacing:.12em;text-align:center;text-transform:uppercase;margin:0;font-size:.65rem}.battle-fighter__name{color:var(--color-text-primary);font-family:var(--font-heading);text-align:center;overflow-wrap:anywhere;margin:.35rem 0 .65rem;font-size:clamp(1rem,1.3vw,1.35rem);line-height:1.25}.battle-fighter__health{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.5rem;min-width:0;display:grid}.battle-fighter__health-track{border:1px solid var(--color-frame);background:var(--color-bg-surface-inset);min-width:0;height:.7rem;overflow:hidden}.battle-fighter__health-fill{background:linear-gradient(#d44839,#8f2525);height:100%;transition:width .85s cubic-bezier(.22,1,.36,1);display:block;box-shadow:inset 0 1px #ffffff2e}.battle-fighter__health>strong{color:var(--color-text-primary);font-family:var(--font-heading);white-space:nowrap;font-variant-numeric:tabular-nums;font-size:.85rem}.battle-fighter__health>strong span{color:var(--color-text-muted)}.battle-fighter__stats{border-top:1px solid var(--color-border);grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem;margin:.75rem 0 .4rem;padding:.65rem .25rem 0;display:grid}.battle-fighter__stats>div{flex-wrap:wrap;justify-content:center;align-items:center;gap:.35rem;min-width:0;display:flex}.battle-fighter__stats dt{color:var(--color-text-secondary);text-transform:uppercase;font-size:.7rem;line-height:1.4}.battle-fighter__stats dd{color:var(--color-accent);font-family:var(--font-heading);margin:0;font-size:1.05rem;font-weight:700;line-height:1.4}.battle-fighter--damaged{animation:.52s ease-out battle-fighter-hit}@keyframes battle-fighter-hit{0%{filter:brightness();transform:translate(0)}15%{filter:brightness(1.7)sepia(.2);transform:translate(-5px)}35%{filter:brightness(1.35);transform:translate(4px)}55%{filter:brightness(1.15);transform:translate(-2px)}75%{filter:brightness(1.05);transform:translate(1px)}to{filter:brightness();transform:translate(0)}}@media (width>=901px) and (height<=800px){.battle-fighter__portrait{aspect-ratio:1.6}.battle-fighter__content{padding:.6rem 1rem 2rem}.battle-fighter__name{margin-block:.2rem .45rem}.battle-fighter__stats{margin-block:.45rem .2rem;padding-top:.4rem}}@media (width<=520px){.battle-fighter__portrait{aspect-ratio:1.6}.battle-fighter__content{padding:.5rem .4rem 1.35rem}.battle-fighter__role{letter-spacing:.08em;font-size:.58rem}.battle-fighter__name{text-align:center;overflow-wrap:anywhere;justify-content:center;align-items:center;min-height:2.4em;margin-block:.25rem .4rem;font-size:clamp(.72rem,2.9vw,.85rem);line-height:1.2;display:flex}.battle-fighter__health{grid-template-columns:minmax(0,1fr) auto;gap:.25rem}.battle-fighter__health-track{height:.5rem}.battle-fighter__health>strong{font-size:.7rem}.battle-fighter__stats{gap:.15rem;margin-top:.45rem;padding:.45rem .05rem 0}.battle-fighter__stats>div{flex-wrap:nowrap;gap:.15rem;min-width:0}.battle-fighter__stats dt{white-space:nowrap;font-size:clamp(.48rem,1.8vw,.62rem)}.battle-fighter__stats dd{flex-shrink:0;font-size:.85rem}}@media (width>=521px){.battle-fighter__portrait{aspect-ratio:1.8}}@media (width<=360px){.battle-fighter__content{padding-inline:.25rem}.battle-fighter__stats dt{font-size:.5rem}.battle-fighter__stats dd{font-size:.85rem}}@media (prefers-reduced-motion:reduce){.battle-fighter--damaged{animation:none}.battle-fighter__health-fill{transition:none}}.battle-arena{min-width:0;padding:.75rem 1.5rem 1rem;position:relative}.battle-arena__fighters{grid-template-columns:minmax(0,1fr) clamp(4.5rem,6vw,6rem) minmax(0,1fr);align-items:center;gap:clamp(1rem,1.5vw,1.5rem);width:100%;max-width:1000px;margin-inline:auto;display:grid}.battle-arena__versus{place-items:center;min-width:0;display:grid}.battle-arena__versus img{object-fit:contain;filter:drop-shadow(0 .35rem .75rem #000000bf);width:100%;max-width:8rem;height:auto;display:block}@media (width<=700px){.battle-arena{padding:.25rem 0 .4rem}.battle-arena__fighters{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:.4rem}.battle-arena__versus{grid-area:1/1/auto/-1;justify-self:center;width:3.25rem;margin-bottom:-.25rem}.battle-arena__fighters>:first-child,.battle-arena__fighters>:last-child{grid-row:2}}@media (width<=360px){.battle-arena__fighters{gap:.25rem}.battle-arena__versus{width:2.75rem}}@media (width>=901px){.battle-arena{padding-block:.25rem .4rem}.battle-arena__fighters{gap:clamp(.75rem,1.5vw,1.5rem)}.battle-arena__versus img{max-width:6.5rem}}.battle-combat-log{min-width:0;min-height:0;padding:.9rem 1rem 1.2rem}.battle-combat-log__empty{color:var(--color-text-muted);text-align:center;overflow-wrap:anywhere;margin:1rem 0 0;font-size:.85rem;line-height:1.5}.battle-combat-log__list{overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--color-frame-highlight) var(--color-bg-surface-inset);gap:0;min-width:0;max-height:18rem;margin:0;padding:0 0 .75rem;list-style:none;display:grid;overflow-y:auto}.battle-combat-log__list::-webkit-scrollbar{width:8px}.battle-combat-log__list::-webkit-scrollbar-track{background:var(--color-bg-surface-inset);border-left:1px solid var(--color-border)}.battle-combat-log__list::-webkit-scrollbar-thumb{background:var(--color-frame);border:1px solid var(--color-frame-highlight);border-radius:var(--radius-sm)}.battle-combat-log__list::-webkit-scrollbar-thumb:hover{background:var(--color-frame-highlight)}.battle-combat-log__entry{overflow-wrap:anywhere;border-bottom:1px solid var(--color-border);min-width:0;padding:.85rem 0}.battle-combat-log__entry:last-child{border-bottom:0}.battle-combat-log__entry h3{color:var(--color-accent);font-family:var(--font-heading);margin:0 0 .4rem;font-size:.85rem}.battle-combat-log__entry p{color:var(--color-text-secondary);overflow-wrap:anywhere;margin:.25rem 0;font-size:.8rem;line-height:1.5}.battle-combat-log__entry strong{color:var(--color-text-primary)}.battle-combat-log__outcome{font-weight:700}.battle-combat-log__outcome--won{color:#72d49a!important}.battle-combat-log__outcome--lost{color:#ef7165!important}.battle-combat-log__outcome--draw,.battle-combat-log__outcome--active{color:var(--color-accent)!important}@media (width<=520px){.battle-combat-log{padding:.85rem .85rem 1.1rem}}.battle-dice-panel{text-align:center;min-width:0;padding:clamp(.85rem,1.5vw,1.25rem) clamp(.85rem,1.5vw,1.25rem) clamp(1.5rem,1.32rem + .75vw,2rem)}.battle-panel{min-width:0;box-shadow:var(--shadow-card);background:#0d0e11f0;position:relative}.battle-dice-panel__title{color:var(--color-accent);font-family:var(--font-heading);text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--color-border);margin:0;padding-bottom:.7rem;font-size:clamp(1rem,2vw,1.35rem)}.battle-dice-panel__dice{justify-content:center;align-items:center;gap:clamp(.75rem,3vw,2.5rem);min-height:0;padding:.85rem 0 1rem;display:flex}.battle-die{justify-items:center;gap:.35rem;min-width:0;display:grid}.battle-die__label{color:var(--color-text-secondary);letter-spacing:.08em;text-transform:uppercase;font-size:.7rem}.battle-die__value{aspect-ratio:1;width:clamp(3rem,5vw,5rem);color:var(--color-accent);font-family:var(--font-heading);border:2px solid var(--color-frame-highlight);border-radius:var(--radius-md);background:linear-gradient(145deg,#29231a,#101114);place-items:center;font-size:clamp(1.5rem,3vw,2.5rem);font-weight:700;display:grid;box-shadow:inset 0 0 0 3px #00000059,0 .4rem .8rem #0006}.battle-die--enemy .battle-die__value{color:#ef7165;border-color:var(--color-action)}.battle-dice-panel__separator{color:var(--color-text-muted);font-family:var(--font-heading);text-transform:uppercase;font-size:1rem}.battle-dice-panel__dice--rolling .battle-die__value{will-change:transform, filter;animation:.56s ease-in-out infinite battle-die-tumble}.battle-dice-panel__dice--rolling .battle-die:first-child .battle-die__value{animation-delay:-120ms}.battle-dice-panel__dice--rolling .battle-die--enemy .battle-die__value{animation-delay:-280ms}@keyframes battle-die-tumble{0%{filter:brightness();transform:translateY(0)rotate(0)scale(1)}20%{filter:brightness(1.3);transform:translateY(-9px)rotate(-16deg)scale(1.08)}45%{filter:brightness(1.1);transform:translateY(2px)rotate(14deg)scale(.96)}70%{filter:brightness(1.2);transform:translateY(-4px)rotate(-7deg)scale(1.03)}to{filter:brightness();transform:translateY(0)rotate(0)scale(1)}}.battle-dice-panel__dice--revealing .battle-die__value{animation:.42s cubic-bezier(.2,.8,.25,1) both battle-die-settle}@keyframes battle-die-settle{0%{transform:rotateX(720deg)rotateY(720deg)scale(1.08)}70%{transform:rotateX(-12deg)rotateY(8deg)scale(.96)}to{transform:rotateX(0)rotateY(0)scale(1)}}.battle-dice-panel__result{background:var(--color-bg-surface-inset);border:1px solid var(--color-border);color:var(--color-text-secondary);margin:0 0 .75rem;padding:.65rem .75rem}.battle-dice-panel__result p{margin:.25rem 0}.battle-dice-panel__result>p:last-child{color:var(--color-text-secondary);overflow-wrap:anywhere;margin:0;font-size:.875rem;line-height:1.5}.battle-dice-panel__result strong{color:var(--color-text-primary)}.battle-dice-panel__outcome{color:var(--color-accent);margin:0 0 .35rem;font-weight:700}.battle-dice-panel__outcome--won{color:#72d49a}.battle-dice-panel__outcome--lost{color:#ef7165}.battle-dice-panel__outcome--draw,.battle-dice-panel__outcome--active{color:var(--color-accent)}.battle-dice-panel__error{color:var(--color-danger);margin:0 0 1rem;font-size:.85rem}.battle-dice-panel__roll-button{width:min(100%,20rem);min-height:3rem;color:var(--color-action-text);font-family:var(--font-heading);text-transform:uppercase;background:linear-gradient(180deg, var(--color-action-hover), var(--color-action));border:1px solid var(--color-frame-highlight);border-radius:var(--radius-sm);box-shadow:var(--shadow-raised);cursor:pointer;margin:.2rem auto 0;padding:.8rem 1.25rem;font-size:1rem;font-weight:700;transition:filter .16s,transform .16s;display:block}.battle-dice-panel__roll-button:hover:not(:disabled){filter:brightness(1.15)}.battle-dice-panel__roll-button:active:not(:disabled){transform:translateY(1px)}.battle-dice-panel__roll-button:disabled{opacity:.55;cursor:not-allowed}.battle-dice-panel__finished{color:var(--color-text-muted);margin:.75rem 0 0;font-size:.8rem}@media (width<=520px){.battle-dice-panel{padding:.65rem .7rem 1.35rem}.battle-dice-panel__title{padding-bottom:.5rem;font-size:.95rem}.battle-dice-panel__dice{gap:.85rem;min-height:0;padding-block:.65rem .75rem}.battle-die{gap:.2rem;min-width:3.5rem}.battle-die__label{font-size:.62rem}.battle-die__value{width:3rem;font-size:1.65rem}.battle-dice-panel__separator{font-size:.85rem}.battle-dice-panel__result{margin-bottom:.6rem;padding:.55rem .45rem;font-size:.75rem;line-height:1.4}.battle-dice-panel__result>p:last-child{font-size:.78rem}.battle-dice-panel__error{overflow-wrap:anywhere;margin-bottom:.5rem;font-size:.75rem;line-height:1.4}.battle-dice-panel__roll-button{width:min(100%,20rem);min-height:2.75rem;padding:.6rem .75rem;font-size:.9rem}.battle-dice-panel__finished{margin-top:.4rem;font-size:.75rem}.battle-dice-panel__result,.battle-dice-panel__error,.battle-dice-panel__finished{overflow-wrap:anywhere;max-width:100%;line-height:1.5}.battle-dice-panel button{width:min(100%,17rem);margin-inline:auto;display:block}}@media (height<=760px){.battle-dice-panel{padding-block:.6rem 1.25rem}.battle-dice-panel__title{padding-bottom:.45rem}.battle-dice-panel__dice{min-height:0;padding-block:.55rem .65rem}.battle-dice-panel__result{margin-bottom:.5rem;padding:.5rem}.battle-dice-panel__error{margin-bottom:.5rem}.battle-dice-panel__roll-button{min-height:2.75rem}}@media (width>=901px) and (height<=900px){.battle-dice-panel{padding-block:.65rem 2rem}.battle-dice-panel__title{padding-bottom:.5rem}.battle-dice-panel__dice{min-height:0;padding-block:.6rem .7rem}}@media (prefers-reduced-motion:reduce){.battle-dice-panel__dice--rolling .battle-die__value{animation:none}.battle-dice-panel__roll-button{transition:none}.battle-dice-panel__dice--rolling .battle-die__value,.battle-dice-panel__dice--revealing .battle-die__value{animation:none}}.battle-header{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:1rem;min-width:0;margin-bottom:1.25rem;display:grid}.battle-header__back{min-width:0;color:var(--color-text-secondary);justify-self:start;font-size:.85rem;text-decoration:none;transition:color .16s}.battle-header__back:hover{color:var(--color-accent)}.battle-header__back span{margin-right:.45rem}.battle-header__back:focus-visible{outline:2px solid var(--color-accent);outline-offset:4px}.battle-header__title{text-align:center;min-width:0}.battle-header__title>p{color:var(--color-accent);letter-spacing:.15em;text-transform:uppercase;margin:0 0 .2rem;font-size:.7rem;font-weight:700}.battle-header__title h1{color:var(--color-text-primary);font-family:var(--font-heading);margin:0;font-size:clamp(1.5rem,3vw,2.5rem);line-height:1.1}.battle-header__status{color:var(--color-text-secondary);margin-top:.3rem;font-size:.75rem;display:inline-block}@media (width<=520px){.battle-header{grid-template-columns:1fr;justify-items:center;gap:.25rem}.battle-header__title h1{font-size:1.5rem}.battle-header__back{justify-self:start;width:100%}.battle-header__title{grid-row:2}}@media (height<=760px){.battle-header{gap:.35rem;margin-bottom:.25rem}.battle-header__title>p{font-size:.62rem}.battle-header__title h1{font-size:clamp(1.35rem,2.5vw,2rem)}.battle-header__status{margin-top:.1rem;font-size:.7rem}}@media (width>=901px) and (height<=900px){.battle-header{margin-bottom:.35rem}.battle-header__title h1{font-size:clamp(1.4rem,2.5vw,2rem)}.battle-header__status{margin-top:.15rem}}.battle-round-history{min-width:0;min-height:0;padding:.9rem 1rem 1.2rem}.battle-support-panel__title{color:var(--color-accent);font-family:var(--font-heading);text-align:center;text-transform:uppercase;border-bottom:1px solid var(--color-border);margin:0;padding-bottom:.75rem;font-size:1rem}.battle-round-history__empty{color:var(--color-text-muted);text-align:center;overflow-wrap:anywhere;margin:1rem 0 0;font-size:.85rem;line-height:1.5}.battle-round-history__list{overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--color-frame-highlight) var(--color-bg-surface-inset);gap:0;min-width:0;max-height:18rem;margin:0;padding:0 0 .75rem;list-style:none;display:grid;overflow-y:auto}.battle-round-history__list::-webkit-scrollbar{width:8px}.battle-round-history__list::-webkit-scrollbar-track{background:var(--color-bg-surface-inset);border-left:1px solid var(--color-border)}.battle-round-history__list::-webkit-scrollbar-thumb{background:var(--color-frame);border:1px solid var(--color-frame-highlight);border-radius:var(--radius-sm)}.battle-round-history__list::-webkit-scrollbar-thumb:hover{background:var(--color-frame-highlight)}.battle-round-history__item{overflow-wrap:anywhere;border-bottom:1px solid var(--color-border);min-width:0;padding:.85rem 0}.battle-round-history__item:last-child{border-bottom:0}.battle-round-history__heading{color:var(--color-text-primary);flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.4rem;font-size:.8rem;display:flex}.battle-round-history__status{font-weight:700}.battle-round-history__status--won{color:#72d49a}.battle-round-history__status--lost{color:#ef7165}.battle-round-history__status--draw,.battle-round-history__status--active{color:var(--color-accent)}.battle-round-history__item p{color:var(--color-text-secondary);margin:.35rem 0 0;font-size:.8rem;line-height:1.45}@media (width<=520px){.battle-round-history{padding:.85rem .85rem 1.1rem}}.battle-roll-overlay{z-index:1000;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:radial-gradient(#1c160fe0 0%,#090a0df0 65%,#000000f7 100%);place-items:center;padding:1.5rem;animation:.22s ease-out both battle-roll-overlay-enter;display:grid;position:fixed;inset:0;overflow:hidden}.battle-roll{border:1px solid var(--color-frame-highlight);border-radius:var(--radius-lg);width:min(100%,38rem);box-shadow:0 0 0 1px #000000e6, 0 0 2.5rem #d6a84f29, var(--shadow-raised);text-align:center;background:linear-gradient(145deg,#231d15fa,#090a0dfc);padding:clamp(1.5rem,4vw,3rem)}.battle-roll__eyebrow{color:var(--color-accent);letter-spacing:.2em;text-transform:uppercase;margin:0 0 .5rem;font-size:.7rem;font-weight:700}.battle-roll__title{color:var(--color-text-primary);font-family:var(--font-heading);text-transform:uppercase;margin:0;font-size:clamp(1.4rem,4vw,2rem)}.battle-roll__dice-row{perspective:900px;justify-content:center;align-items:center;gap:clamp(1.5rem,6vw,4rem);min-height:13rem;margin:2rem 0 1.5rem;display:flex}.battle-roll__die-group{justify-items:center;gap:1rem;display:grid}.battle-roll__label{color:var(--color-text-secondary);letter-spacing:.14em;font-size:.75rem;font-weight:700}.battle-roll__die{--die-size:clamp(4.5rem, 12vw, 6.5rem);width:var(--die-size);height:var(--die-size);transform-style:preserve-3d;position:relative}.battle-roll__die--rolling{animation:1.15s cubic-bezier(.25,.7,.25,1) infinite battle-die-spin}.battle-roll__die--revealing{animation:.48s cubic-bezier(.2,.8,.2,1) both battle-die-settle}.battle-roll__die--impact{transform:rotateX(0)rotateY(0)}.battle-roll__face{backface-visibility:hidden;border:2px solid;border-radius:.8rem;grid-template-rows:repeat(3,1fr);grid-template-columns:repeat(3,1fr);place-items:center;padding:13%;display:grid;position:absolute;inset:0;box-shadow:inset 0 0 1rem #ffffff0d,inset 0 -.6rem 1rem #00000059}.battle-roll__die--player .battle-roll__face{background:linear-gradient(145deg,#4a3820,#17130e 70%);border-color:#d6a84f}.battle-roll__die--enemy .battle-roll__face{background:linear-gradient(145deg,#4a2020,#170d0e 70%);border-color:#a62d2d}.battle-roll__pip{aspect-ratio:1;opacity:0;border-radius:50%;width:62%;transform:scale(.5)}.battle-roll__pip--visible{opacity:1;transform:scale(1)}.battle-roll__die--player .battle-roll__pip--visible{background:radial-gradient(circle at 30% 25%,#ffe6a0,#d6a84f 70%);box-shadow:0 0 .45rem #d6a84f73}.battle-roll__die--enemy .battle-roll__pip--visible{background:radial-gradient(circle at 30% 25%,#ffb0a8,#b63131 70%);box-shadow:0 0 .45rem #b6313173}.battle-roll__face--front{transform:translateZ(calc(var(--die-size) / 2))}.battle-roll__face--back{transform:rotateY(180deg) translateZ(calc(var(--die-size) / 2))}.battle-roll__face--right{transform:rotateY(90deg) translateZ(calc(var(--die-size) / 2))}.battle-roll__face--left{transform:rotateY(-90deg) translateZ(calc(var(--die-size) / 2))}.battle-roll__face--top{transform:rotateX(90deg) translateZ(calc(var(--die-size) / 2))}.battle-roll__face--bottom{transform:rotateX(-90deg) translateZ(calc(var(--die-size) / 2))}.battle-roll__versus{color:var(--color-accent);font-family:var(--font-heading);text-shadow:0 0 1rem #d6a84f4d;font-size:.9rem;font-weight:700}.battle-roll__result{color:var(--color-text-primary);font-family:var(--font-heading);font-size:1.2rem;font-weight:700;animation:.26s ease-out both battle-roll-result-enter}.battle-roll__hint{color:var(--color-text-secondary);margin:0;font-size:.85rem}.battle-roll-overlay--impact{animation:.3s ease-in both battle-roll-overlay-exit}@keyframes battle-die-spin{0%{transform:rotateX(0)rotateY(0)rotate(0)}35%{transform:rotateX(260deg)rotateY(180deg)rotate(90deg)}70%{transform:rotateX(520deg)rotateY(390deg)rotate(200deg)}to{transform:rotateX(720deg)rotateY(720deg)rotate(360deg)}}@keyframes battle-roll-overlay-enter{0%{opacity:0}to{opacity:1}}@keyframes battle-roll-overlay-exit{to{opacity:0;visibility:hidden}}@keyframes battle-roll-result-enter{0%{opacity:0;transform:translateY(.4rem)scale(.9)}to{opacity:1;transform:translateY(0)scale(1)}}@media (prefers-reduced-motion:reduce){.battle-roll-overlay,.battle-roll__die,.battle-roll__result{transition:none!important;animation:none!important}.battle-roll__die{transform:none}}.battle-page{isolation:isolate;background:var(--color-bg-primary);min-height:100vh;position:relative}.battle-page__background{z-index:-1;pointer-events:none;background-image:linear-gradient(#090a0d61,#090a0dad),url(/assets/battle-arena-background-DkFy966o.webp);background-position:top;background-repeat:no-repeat;background-size:cover;position:absolute;inset:0}.battle-page__content{gap:clamp(.65rem,1.1vw,1rem);width:min(100% - 2rem,1440px);margin-inline:auto;padding-block:.75rem 1.5rem;display:grid}.battle-panel,.battle-fighter{border:14px solid #0000;background-clip:padding-box;border-image-source:url(/assets/battle-panel-frame-CjZ189e6.png);border-image-slice:110 fill;border-image-width:14px;border-image-repeat:stretch;border-radius:0;min-width:0;height:auto;overflow:visible}.battle-fighter{background-color:#090a0df0}.battle-panel{background-color:#0d0e11f0}.battle-page__lower-grid{grid-template-columns:minmax(0,1fr) minmax(0,1.2fr) minmax(0,1fr);align-items:start;gap:clamp(.65rem,1vw,1rem);display:grid}.battle-page__lower-grid>*{align-self:start;min-width:0}.battle-page__completion{justify-items:center;gap:clamp(.5rem,1vw,.75rem);width:min(100%,44rem);margin:.1rem auto 0;display:grid}.battle-page__resolution{width:100%;min-width:0;color:var(--color-text-secondary);text-align:center;border:1px solid var(--color-frame);border-top:2px solid var(--color-accent);box-shadow:var(--shadow-card);background:linear-gradient(135deg,#222328f0,#0d0e11f7);padding:clamp(.8rem,1.5vw,1rem) clamp(.75rem,2vw,1.5rem)}.battle-page__completion-eyebrow{color:var(--color-text-muted);letter-spacing:.14em;text-transform:uppercase;margin-bottom:.25rem;font-size:.7rem;display:block}.battle-page__resolution h2{color:var(--color-accent);font-family:var(--font-heading);margin:0;font-size:clamp(1.3rem,2.5vw,1.75rem)}.battle-page__resolution p{overflow-wrap:anywhere;max-width:38rem;margin:.4rem auto 0;line-height:1.6}.battle-page__resolution--won{border-top-color:var(--color-accent-hover)}.battle-page__resolution--won h2{color:var(--color-accent-hover)}.battle-page__resolution--lost{border-top-color:var(--color-danger)}.battle-page__resolution--lost h2{color:var(--color-danger)}.battle-page__resolution--draw{border-top-color:var(--color-frame-highlight)}.battle-page__resolution--draw h2{color:var(--color-text-primary)}.battle-page__resolution{isolation:isolate;position:relative}.battle-page__outcome-effects{z-index:-1;pointer-events:none;opacity:0;position:absolute;inset:0;overflow:hidden}.battle-page__resolution--won.battle-page__resolution--animate .battle-page__outcome-effects{background-image:radial-gradient(circle at 15% 78%,#ffda7ef2 0 1.5px,#0000 2.5px),radial-gradient(circle at 70% 88%,#ffad3bd9 0 2px,#0000 3px),radial-gradient(circle at 90% 62%,#ffe29bbf 0 1px,#0000 2px),radial-gradient(at 50% 100%,#c4812538,#0000 72%);animation:2.4s ease-out both battle-outcome-victory}.battle-page__resolution--lost.battle-page__resolution--animate .battle-page__outcome-effects{background-image:radial-gradient(circle at 20% 80%,#ff6f5bd9 0 1.5px,#0000 2.5px),radial-gradient(circle at 78% 65%,#be2c2abf 0 2px,#0000 3px),radial-gradient(at 50% 100%,#99222540,#0000 75%);animation:2.2s ease-out both battle-outcome-defeat}.battle-page__resolution--draw.battle-page__resolution--animate .battle-page__outcome-effects{background-image:radial-gradient(#ca963b33,#0000 68%),radial-gradient(at 15%,#aa2f2d2e,#0000 55%),radial-gradient(at 85%,#d4a1472b,#0000 55%);animation:1.8s ease-out both battle-outcome-draw}@keyframes battle-outcome-victory{0%{opacity:0;transform:translateY(8%)scale(.98)}20%{opacity:1}75%{opacity:.7;transform:translateY(-3%)scale(1.01)}to{opacity:0;transform:translateY(-7%)scale(1.02)}}@keyframes battle-outcome-defeat{0%{opacity:0}25%{opacity:.85}65%{opacity:.5}to{opacity:0}}@keyframes battle-outcome-draw{0%{opacity:0;transform:scale(.96)}35%{opacity:1;transform:scale(1)}70%{opacity:.55;transform:scale(1.015)}to{opacity:0;transform:scale(1.02)}}.battle-actions{width:min(100%,44rem);margin-inline:auto}.battle-page__completion .battle-actions{gap:.75rem;width:100%;max-width:none}.battle-page__completion .battle-actions__run-controls{gap:.75rem}@media (width>=1500px){.battle-page__content{gap:1.15rem;padding-top:1.15rem}.battle-page__lower-grid{gap:1.25rem}}@media (width<=900px){.battle-page__content{width:min(calc(100% - 1.5rem), var(--content-width));gap:.75rem;padding-block:.5rem 1rem}.battle-page__lower-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:.75rem}.battle-page__lower-grid>*{justify-self:center;width:100%}.battle-dice-panel{grid-area:1/1/auto/-1;justify-self:center;width:100%;max-width:36rem}.battle-round-history{grid-area:2/1}.battle-combat-log{grid-area:2/2}.battle-round-history,.battle-combat-log{width:100%;max-width:none;height:auto}}@media (width<=520px){.battle-page__content{gap:.5rem;width:calc(100% - 1rem);padding-block:.4rem 1rem}.battle-page__lower-grid{grid-template-columns:minmax(0,1fr);gap:.65rem}.battle-page__lower-grid>*{max-width:32rem}.battle-dice-panel{grid-area:1/1}.battle-round-history{grid-area:2/1}.battle-combat-log{grid-area:3/1}.battle-dice-panel,.battle-round-history,.battle-combat-log{width:100%;max-width:none}.battle-panel,.battle-fighter{border-width:12px;border-image-width:12px}.battle-actions{width:100%}.battle-page__completion{gap:.5rem}.battle-page__completion .battle-page__resolution{padding:.8rem .65rem}.battle-page__completion .battle-page__resolution p{font-size:.95rem;line-height:1.5}.battle-page__completion .battle-actions{gap:.65rem}}@media (height<=760px){.battle-page__content{gap:.5rem;padding-block:.35rem .75rem}.battle-header{margin-bottom:.25rem}.battle-arena{padding-block:.2rem .35rem}}@media (width>=901px) and (height<=900px){.battle-page__content{gap:.5rem;padding-block:.35rem .75rem}.battle-header{margin-bottom:.35rem}.battle-arena{padding-block:.15rem .25rem}}@media (height>=900px){.battle-page{flex-direction:column;display:flex}.battle-page__content{margin-block:auto}}@media (prefers-reduced-motion:reduce){.battle-page *,.battle-page :before,.battle-page :after{scroll-behavior:auto;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.statistics-page{isolation:isolate;background:linear-gradient(#090a0d8c,#090a0dc2),url(/assets/hero-selection-dungeon-background-CY7taWcv.webp) 50%/cover no-repeat fixed;min-height:calc(100dvh - 7.6rem);padding:2.5rem 0 3rem;position:relative}.statistics-page__content{width:min(calc(100% - 2rem), var(--content-width));margin:0 auto}.statistics-page__header{text-align:center;margin-bottom:2.75rem}.statistics-page__header h1{color:var(--color-text-primary);font-family:var(--font-heading);letter-spacing:.06em;text-transform:uppercase;text-shadow:0 3px 12px #000000e6;margin-bottom:.5rem;font-size:clamp(2.5rem,4.5vw,4rem);font-weight:700;line-height:1.2}.statistics-page__divider{object-fit:contain;width:min(100%,40rem);height:auto;max-height:2rem;margin:.75rem auto 1rem}.statistics-page__header p{color:var(--color-text-secondary);font-family:var(--font-heading);letter-spacing:.22em;text-transform:uppercase;text-shadow:0 2px 8px #000000e6;margin:0;font-size:.95rem}.statistics-page__metrics{grid-template-columns:repeat(4,minmax(0,1fr));gap:1.25rem;margin-bottom:2rem;display:grid}.statistics-card{background:linear-gradient(145deg,#222328f7,#0d0e11fa);flex-direction:column;justify-content:center;align-items:center;min-width:0;min-height:17rem;padding:1.5rem 1rem;display:flex;position:relative;overflow:hidden}.statistics-card__icon-frame{aspect-ratio:1;border:2px solid var(--color-frame-highlight);background:radial-gradient(circle at 35% 25%, var(--color-bg-surface-raised), var(--color-bg-surface-inset) 72%);border-radius:50%;place-items:center;width:6.5rem;margin-bottom:.75rem;display:grid;box-shadow:0 0 0 3px #0000008c,inset 0 1px 3px #ffffff14,0 3px 8px #0009}.statistics-card__icon{object-fit:contain;filter:drop-shadow(0 2px 3px #000000a6);width:70%;height:70%}.statistics-card__value{color:var(--color-accent);font-family:var(--font-heading);text-shadow:0 2px 8px #000c;font-size:clamp(2.5rem,3.5vw,3.5rem);font-weight:700;line-height:1.2}.statistics-card__label{color:var(--color-text-primary);font-family:var(--font-heading);letter-spacing:.04em;text-align:center;text-transform:uppercase;margin-top:.4rem;font-size:clamp(.9rem,1.5vw,1.2rem);font-weight:400}.best-run{background:linear-gradient(145deg,#18191df7,#090a0dfa);padding:2rem;position:relative}.best-run__layout{grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr);align-items:center;gap:2rem;display:grid;position:relative}.best-run__identity{border-right:1px solid var(--color-frame);justify-content:center;align-items:center;gap:1.5rem;min-width:0;padding-right:2rem;display:flex}.best-run__emblem{object-fit:contain;filter:drop-shadow(0 3px 5px #000000a6);flex:none;width:clamp(7rem,11vw,8.125rem);height:auto}.best-run__title-group{text-align:center;min-width:0}.best-run__title-group h2,.best-run__empty h2{color:var(--color-text-secondary);font-family:var(--font-heading);letter-spacing:.15em;text-transform:uppercase;margin-bottom:.5rem;font-size:1.1rem;font-weight:400}.best-run__number{color:var(--color-accent);font-family:var(--font-heading);text-shadow:0 2px 8px #000c;margin:0;font-size:clamp(2.25rem,3.5vw,3rem);font-weight:700;line-height:1.25}.best-run__completed{color:var(--color-text-secondary);margin:.5rem 0 0;font-size:.9rem}.best-run__stats{gap:.75rem;margin:0;display:grid}.best-run__stat{grid-template-columns:3rem 2.25rem minmax(0,1fr);align-items:center;gap:.75rem;display:grid}.best-run__stat img{object-fit:contain;width:2.75rem;height:2.75rem}.best-run__stat dd{color:var(--color-accent);font-family:var(--font-heading);margin:0;font-size:1.65rem;font-weight:700}.best-run__stat dt{color:var(--color-text-primary);font-family:var(--font-heading);text-transform:uppercase;font-size:1rem}.best-run__empty{text-align:center;padding:1rem;position:relative}.best-run__empty p{color:var(--color-text-secondary);margin:0}.statistics-page__actions{justify-content:center;margin-top:2.5rem;display:flex}.statistics-page__actions a{border:1px solid var(--color-frame-highlight);background:linear-gradient(180deg, var(--color-action-hover), var(--color-action) 70%);min-width:19rem;color:var(--color-action-text);font-family:var(--font-heading);letter-spacing:.08em;text-align:center;text-transform:uppercase;border-radius:.15rem;justify-content:center;align-items:center;padding:1rem 2rem;font-size:1.05rem;font-weight:700;text-decoration:none;transition:background .16s,border-color .16s,transform .16s;display:inline-flex;box-shadow:0 5px 14px #0000008c,inset 0 1px #ffffff1f}.statistics-page__actions a:hover{border-color:var(--color-accent);background:var(--color-action-hover);transform:translateY(-1px)}@media (width<=900px){.statistics-page__metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.best-run__layout{grid-template-columns:minmax(0,1fr)}.best-run__identity{border-right:0;border-bottom:1px solid var(--color-frame);padding:0 0 1.25rem}.best-run__stats{width:min(100%,24rem);margin:0 auto}}@media (width<=600px){.statistics-page{background-attachment:scroll;padding:1.5rem 0 2rem}.statistics-page__content{width:calc(100% - 1.25rem)}.statistics-page__header{margin-bottom:1.5rem}.statistics-page__header h1{letter-spacing:.025em;font-size:clamp(1.8rem,7vw,2.5rem);line-height:1.15}.statistics-page__divider{width:min(85%,22rem);margin:.5rem auto}.statistics-page__header p{letter-spacing:.08em;font-size:.65rem;line-height:1.6}.statistics-page__metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem;margin-bottom:1.25rem}.statistics-card{min-height:10.5rem;padding:.85rem .4rem}.statistics-card__icon-frame{width:4rem;margin-bottom:.4rem}.statistics-card__value{font-size:1.8rem}.statistics-card__label{margin-top:.25rem;font-size:.7rem;line-height:1.4}.best-run{padding:1rem .75rem}.best-run__identity{gap:.5rem;padding-bottom:1rem}.best-run__emblem{width:5rem}.best-run__number{font-size:1.6rem}.best-run__title-group h2{font-size:.85rem}.best-run__completed{font-size:.75rem}.best-run__stat{grid-template-columns:2.25rem 1.5rem minmax(0,1fr);gap:.5rem}.best-run__stat img{width:2rem;height:2rem}.best-run__stat dd{font-size:1.25rem}.best-run__stat dt{font-size:.8rem}.statistics-page__actions{margin-top:1.5rem}.statistics-page__actions a{width:min(100%,19rem);min-width:0;padding:.85rem 1rem;font-size:.85rem}}@media (width<=380px){.statistics-page__content{width:calc(100% - 1rem)}.statistics-page__metrics{gap:.65rem}.statistics-card{min-height:11.5rem}.statistics-card__icon-frame{width:4rem}.statistics-card__value{font-size:1.8rem}.statistics-card__label{font-size:.75rem}.best-run__number{overflow-wrap:anywhere}.best-run__completed{line-height:1.5}.best-run__identity{flex-direction:column}}.about-page{isolation:isolate;background:var(--color-bg-primary);min-height:calc(100vh - 6.5rem);padding:3.5rem 1.5rem 5rem;position:relative;overflow:clip}.about-page:before{content:"";z-index:-2;pointer-events:none;background:linear-gradient(#00000059,#00000094),url(/assets/hero-selection-dungeon-background-CY7taWcv.webp) 50%/cover no-repeat;position:fixed;inset:0}.about-page__content{width:min(100%,1100px);margin-inline:auto}.about-page__header{text-align:center;max-width:820px;margin:0 auto 3.5rem}.about-page__eyebrow,.about-page__section-label{color:var(--color-accent);font-family:var(--font-heading);letter-spacing:.16em;text-transform:uppercase;margin:0 0 .65rem;font-size:.75rem;font-weight:700}.about-page__header h1{color:#f1e4cf;text-shadow:0 2px #65523a,0 4px 12px #000000f2;text-transform:uppercase;margin:0;font-size:clamp(2rem,5vw,3.75rem);font-weight:900;line-height:1.15}.about-page__divider{width:min(100%,36rem);margin:1rem auto 1.5rem;display:block}.about-page__intro{max-width:720px;color:var(--color-text-secondary);margin:0 auto;font-size:1.05rem;line-height:1.9}.about-page__story{max-width:800px;box-shadow:var(--shadow-card), inset 0 1px 0 #ffffff0a;text-align:center;background:linear-gradient(#18191df5,#0a0b0ef7);margin:0 auto 3.5rem;padding:2rem clamp(1.25rem,4vw,3rem)}.about-page__story h2,.about-page__section-header h2,.about-page__closing h2{color:#f1e4cf;text-transform:uppercase;margin:0 0 1rem;font-size:clamp(1.45rem,3vw,2rem);line-height:1.25}.about-page__story>p:not(.about-page__section-label){max-width:680px;color:var(--color-text-secondary);margin:0 auto 1rem;line-height:1.8}.about-page__story>p:last-child{margin-bottom:0}.about-page__section-header{text-align:center;margin-bottom:1.5rem}.about-page__step-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:1.25rem;display:grid}.about-step{min-width:0;box-shadow:var(--shadow-raised);background:linear-gradient(#18191df7,#0a0b0efa);padding:1.75rem 1.5rem;position:relative}.about-step__number{z-index:0;width:2.5rem;height:2.5rem;color:var(--color-accent);font-family:var(--font-heading);place-items:center;margin-bottom:1.1rem;font-size:1rem;font-weight:700;line-height:1;display:inline-grid;position:relative}.about-step__number:before{content:"";z-index:-1;border:1px solid var(--color-frame-highlight);position:absolute;inset:0;transform:rotate(45deg)}.about-step h3{color:var(--color-accent);text-transform:uppercase;margin:0 0 .75rem;font-size:1.05rem;line-height:1.4}.about-step p{color:var(--color-text-secondary);margin:0;font-size:.95rem;line-height:1.75}.about-page__closing{text-align:center;background:radial-gradient(circle at 50% 0,#d6a84f1a,#0000 65%),#08090cf0;margin-top:3.5rem;padding:2.5rem 1.5rem}.about-page__closing p{max-width:560px;color:var(--color-text-secondary);margin:0 auto 1.5rem;line-height:1.7}.about-page__cta{min-height:3rem;color:var(--color-action-text);font-family:var(--font-heading);letter-spacing:.12em;text-align:center;text-transform:uppercase;background:linear-gradient(#a52b24,#6d1717);border:1px solid #7d241f;justify-content:center;align-items:center;padding:.85rem 1.75rem;font-size:.78rem;font-weight:700;text-decoration:none;transition:background .16s,transform .16s;display:inline-flex;box-shadow:inset 0 1px #ffffff1f,0 .3rem .8rem #00000073}.about-page__cta:hover{background:linear-gradient(#bd3730,#801d1d);transform:translateY(-1px)}.about-page__creator{max-width:800px;box-shadow:var(--shadow-card);text-align:center;background:linear-gradient(#18191df5,#0a0b0ef7);margin:3.5rem auto 0;padding:2rem clamp(1.25rem,4vw,3rem)}.about-page__creator h2{color:#f1e4cf;text-transform:uppercase;margin:0 0 1rem;font-size:clamp(1.45rem,3vw,2rem);line-height:1.25}.about-page__creator>p:not(.about-page__section-label){max-width:680px;color:var(--color-text-secondary);margin:0 auto 1rem;line-height:1.8}.about-page__creator>p:last-child{margin-bottom:0}@media (width<=900px){.about-page{min-height:calc(100vh - 6.5rem);padding-top:3rem}.about-page__step-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.about-step{padding:1.4rem 1.25rem}.about-page__step-grid .about-step:last-child{grid-column:1/-1}}@media (width<=680px){.about-page{padding:2.25rem 1rem 3rem}.about-page__header{margin-bottom:2.5rem}.about-page__intro{font-size:.95rem;line-height:1.75}.about-page__story{margin-bottom:2.5rem;padding:1.5rem 1.1rem 2rem}.about-page__step-grid{grid-template-columns:minmax(0,1fr)}.about-step{padding:1.35rem}.about-page__closing{margin-top:2.5rem;padding:2rem 1rem}.about-page__creator{margin-top:2.5rem;padding:1.5rem 1.1rem 2.5rem}}@media (prefers-reduced-motion:reduce){.about-page__cta{transition:none}}:root{--color-bg-primary:#090a0d;--color-bg-secondary:#111318;--color-bg-card:#18191d;--color-bg-card-hover:#202126;--color-bg-surface-raised:#222328;--color-bg-surface-inset:#0d0e11;--color-border:#34312c;--color-border-hover:#5b5141;--color-frame:#5a4932;--color-frame-highlight:#8a7048;--color-text-primary:#f1ede5;--color-text-secondary:#b5afa3;--color-text-muted:#77736b;--color-accent:#d6a84f;--color-accent-hover:#e7bd68;--color-accent-text:#120f0a;--color-action:#8f2525;--color-action-hover:#b63131;--color-action-text:#fff4ed;--color-danger:#b63131;--font-heading:"Cinzel", serif;--font-body:"Inter", sans-serif;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.625rem;--shadow-card:0 .75rem 2rem #00000073;--shadow-raised:0 .5rem 1.25rem #0006;--shadow-inset:inset 0 1px 0 #ffffff0a, inset 0 -1px 0 #00000080;--content-width:1200px}@font-face{font-family:Cinzel;src:url(/assets/Cinzel-Regular-Rwy4oMWW.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Cinzel;src:url(/assets/Cinzel-Bold-D_ERzFu0.woff2)format("woff2");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:Cinzel;src:url(/assets/Cinzel-Black-BFlSZ-R4.woff2)format("woff2");font-weight:900;font-style:normal;font-display:swap}*{box-sizing:border-box}html{background:var(--color-bg-primary);min-width:320px;min-height:100%}body{background:radial-gradient(circle at 50% 0%, #4b39201f, transparent 38%), linear-gradient(180deg, #0d0e12 0%, var(--color-bg-primary) 45%, #06070a 100%);min-width:320px;min-height:100vh;color:var(--color-text-primary);font-family:var(--font-body);margin:0;line-height:1.5}button,input{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed}button:focus-visible,input:focus-visible,a:focus-visible{outline:2px solid var(--color-accent);outline-offset:3px}img{max-width:100%;display:block}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:var(--font-heading)}.ornate-frame{border:14px solid #0000;background-clip:padding-box;border-image-source:url(/assets/battle-panel-frame-CjZ189e6.png);border-image-slice:110 fill;border-image-width:14px;border-image-repeat:stretch;border-radius:0}
