@font-face{font-family:Pixelify Sans;font-style:normal;font-display:swap;font-weight:400;src:url(./pixelify-sans-cyrillic-400-normal-Ckz2YJkH.woff2) format("woff2"),url(./pixelify-sans-cyrillic-400-normal-DfOZNMlW.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Pixelify Sans;font-style:normal;font-display:swap;font-weight:400;src:url(./pixelify-sans-latin-ext-400-normal-DdH6zlBQ.woff2) format("woff2"),url(./pixelify-sans-latin-ext-400-normal-BkfTUL4s.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Pixelify Sans;font-style:normal;font-display:swap;font-weight:400;src:url(./pixelify-sans-latin-400-normal-DLrIX9QE.woff2) format("woff2"),url(./pixelify-sans-latin-400-normal-JapMNN6Z.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Pixelify Sans;font-style:normal;font-display:swap;font-weight:600;src:url(./pixelify-sans-cyrillic-600-normal-BhqNJYOZ.woff2) format("woff2"),url(./pixelify-sans-cyrillic-600-normal-B3EuUOZG.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Pixelify Sans;font-style:normal;font-display:swap;font-weight:600;src:url(./pixelify-sans-latin-ext-600-normal-Dha6RiOG.woff2) format("woff2"),url(./pixelify-sans-latin-ext-600-normal-CDaIumwU.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Pixelify Sans;font-style:normal;font-display:swap;font-weight:600;src:url(./pixelify-sans-latin-600-normal-Dd_Dy7u5.woff2) format("woff2"),url(./pixelify-sans-latin-600-normal-BNlgYbDL.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Alegreya;font-style:normal;font-display:swap;font-weight:400;src:url(./alegreya-cyrillic-ext-400-normal-DN8azYTI.woff2) format("woff2"),url(./alegreya-cyrillic-ext-400-normal-Cj1kF6KR.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Alegreya;font-style:normal;font-display:swap;font-weight:400;src:url(./alegreya-cyrillic-400-normal-72Io3whm.woff2) format("woff2"),url(./alegreya-cyrillic-400-normal-VT77nruV.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Alegreya;font-style:normal;font-display:swap;font-weight:400;src:url(./alegreya-greek-ext-400-normal-ueNFnE5s.woff2) format("woff2"),url(./alegreya-greek-ext-400-normal-UcF-MPys.woff) format("woff");unicode-range:U+1F00-1FFF}@font-face{font-family:Alegreya;font-style:normal;font-display:swap;font-weight:400;src:url(./alegreya-greek-400-normal-BI7tMDVB.woff2) format("woff2"),url(./alegreya-greek-400-normal-BTnTTGc4.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Alegreya;font-style:normal;font-display:swap;font-weight:400;src:url(./alegreya-vietnamese-400-normal-D8CgJdBg.woff2) format("woff2"),url(./alegreya-vietnamese-400-normal-D-Jsyxvv.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Alegreya;font-style:normal;font-display:swap;font-weight:400;src:url(./alegreya-latin-ext-400-normal-BJ1luULk.woff2) format("woff2"),url(./alegreya-latin-ext-400-normal-I24-Fo_X.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Alegreya;font-style:normal;font-display:swap;font-weight:400;src:url(./alegreya-latin-400-normal-BLlBRtDv.woff2) format("woff2"),url(./alegreya-latin-400-normal-BuQWlRPA.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Alegreya;font-style:italic;font-display:swap;font-weight:400;src:url(./alegreya-cyrillic-ext-400-italic-CJ53xJ73.woff2) format("woff2"),url(./alegreya-cyrillic-ext-400-italic-281qz-PX.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Alegreya;font-style:italic;font-display:swap;font-weight:400;src:url(./alegreya-cyrillic-400-italic-CzOFVsaV.woff2) format("woff2"),url(./alegreya-cyrillic-400-italic-DSxbt1-2.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Alegreya;font-style:italic;font-display:swap;font-weight:400;src:url(./alegreya-greek-ext-400-italic-BqZ1xVE4.woff2) format("woff2"),url(./alegreya-greek-ext-400-italic-EKR1I7m6.woff) format("woff");unicode-range:U+1F00-1FFF}@font-face{font-family:Alegreya;font-style:italic;font-display:swap;font-weight:400;src:url(./alegreya-greek-400-italic-DpcfyKEk.woff2) format("woff2"),url(./alegreya-greek-400-italic-D9g29fJh.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Alegreya;font-style:italic;font-display:swap;font-weight:400;src:url(./alegreya-vietnamese-400-italic-CJsk7YCA.woff2) format("woff2"),url(./alegreya-vietnamese-400-italic-DD2hiUnx.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Alegreya;font-style:italic;font-display:swap;font-weight:400;src:url(./alegreya-latin-ext-400-italic-Cf8WgXZg.woff2) format("woff2"),url(./alegreya-latin-ext-400-italic-BQgzjtbe.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Alegreya;font-style:italic;font-display:swap;font-weight:400;src:url(./alegreya-latin-400-italic-BXpar-rJ.woff2) format("woff2"),url(./alegreya-latin-400-italic-CJvUQvZT.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Alegreya;font-style:normal;font-display:swap;font-weight:700;src:url(./alegreya-cyrillic-ext-700-normal-Dx8o6fqX.woff2) format("woff2"),url(./alegreya-cyrillic-ext-700-normal-A6q6xEOT.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Alegreya;font-style:normal;font-display:swap;font-weight:700;src:url(./alegreya-cyrillic-700-normal-Bftrb-m-.woff2) format("woff2"),url(./alegreya-cyrillic-700-normal-_o_NBoYw.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Alegreya;font-style:normal;font-display:swap;font-weight:700;src:url(./alegreya-greek-ext-700-normal-DzPShcR4.woff2) format("woff2"),url(./alegreya-greek-ext-700-normal-DQPzd-kK.woff) format("woff");unicode-range:U+1F00-1FFF}@font-face{font-family:Alegreya;font-style:normal;font-display:swap;font-weight:700;src:url(./alegreya-greek-700-normal-ByoPpMZf.woff2) format("woff2"),url(./alegreya-greek-700-normal-mWQ2Ne64.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Alegreya;font-style:normal;font-display:swap;font-weight:700;src:url(./alegreya-vietnamese-700-normal-CvM8am9u.woff2) format("woff2"),url(./alegreya-vietnamese-700-normal-CdvEC7Dz.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Alegreya;font-style:normal;font-display:swap;font-weight:700;src:url(./alegreya-latin-ext-700-normal-CEFih5UF.woff2) format("woff2"),url(./alegreya-latin-ext-700-normal-B6bzkdlx.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Alegreya;font-style:normal;font-display:swap;font-weight:700;src:url(./alegreya-latin-700-normal-Vpz_43wJ.woff2) format("woff2"),url(./alegreya-latin-700-normal-BS7r-qZs.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--night: #070b1a;--win-a: #1b2c63;--win-b: #0c1638;--bone: #e9e1cf;--bone-dim: #b7ad97;--brass: #c9a24a;--brass-dark: #7a5d22;--felt: #1d5a41;--felt-dark: #0f3626;--chip: #3d8bff;--mult: #e2403a;--gold: #f2c14e;--hp: #4fc46a;--hp-low: #e2403a;--ward: #8fd3ff;--muted: #8a93b8;--danger: #ff6a5c;--ui: "Pixelify Sans", system-ui, sans-serif;--prose: "Alegreya", Georgia, serif;--r: 6px}*{box-sizing:border-box}html,body{margin:0;height:100%}body{background:radial-gradient(ellipse at 50% -10%,#17224a 0%,var(--night) 60%) fixed;color:var(--bone);font-family:var(--ui);font-size:16px;line-height:1.35;-webkit-font-smoothing:antialiased;overflow-x:hidden}#app{min-height:100%}button{font:inherit;color:inherit}img{display:block}:focus-visible{outline:2px solid var(--gold);outline-offset:2px}.win{background:linear-gradient(180deg,var(--win-a),var(--win-b));border:2px solid var(--bone);border-radius:var(--r);box-shadow:inset 0 0 0 2px #0a1230,inset 0 0 0 3px #e9e1cf40,0 6px 24px #00000073;padding:12px 14px}.win h2,.win h3{margin:0 0 8px;font-weight:600;letter-spacing:.02em}.win h2{font-size:20px}.win h3{font-size:16px;color:var(--gold)}.prose{font-family:var(--prose);font-size:17px;line-height:1.5;max-width:68ch}.muted{color:var(--muted)}.small{font-size:13px}.gold{color:var(--gold)}.chipc{color:var(--chip)}.multc{color:var(--mult)}.danger{color:var(--danger)}.row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.col{display:flex;flex-direction:column;gap:8px}.grow,.spacer{flex:1}.hidden{display:none!important}.btn{background:#0a1230b3;border:1px solid rgba(233,225,207,.45);border-radius:4px;padding:7px 12px;cursor:pointer;text-align:left;position:relative;transition:background .12s,border-color .12s}.btn:hover:not(:disabled),.btn.on{background:#26408f;border-color:var(--bone)}.btn:hover:not(:disabled):before,.btn.on:before{content:"▶";position:absolute;left:-15px;top:50%;transform:translateY(-50%);color:var(--bone);font-size:11px}.btn:disabled{opacity:.42;cursor:not-allowed}.btn.primary{background:linear-gradient(180deg,#c9a24a,#8d6a26);color:#1b1203;border-color:#f3dfa5;font-weight:600}.btn.primary:hover:not(:disabled){background:linear-gradient(180deg,#e0bb5e,#a07a2d)}.btn.danger{border-color:var(--danger);color:#ffd3cd}.btn.small{padding:4px 8px;font-size:13px}.btn.big{padding:12px 18px;font-size:18px}.menu{display:flex;flex-direction:column;gap:4px;padding-left:16px}.menu .btn{width:100%}.topbar{display:flex;align-items:center;gap:14px;padding:8px 14px;border-bottom:2px solid rgba(233,225,207,.25);background:#050918d9;position:sticky;top:0;z-index:30;flex-wrap:wrap}.topbar .title{font-size:20px;font-weight:600}.stat{display:inline-flex;gap:5px;align-items:baseline}.stat b{font-size:18px}.art{width:100%;height:100%;object-fit:cover}.art.placeholder{display:grid;place-items:center;background:radial-gradient(circle at 50% 35%,var(--ph),#0b1230);color:#ffffffb3;font-size:28px;font-weight:600;border-radius:inherit}.portrait{width:64px;height:64px;border-radius:6px;overflow:hidden;border:2px solid rgba(233,225,207,.6);flex:none;background:#0b1230}.portrait.lg{width:112px;height:112px}.portrait.dead{filter:grayscale(1) brightness(.5)}.title-screen{min-height:100vh;display:grid;grid-template-rows:1fr auto;background-size:cover;background-position:center}.title-inner{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:22px;padding:24px 16px;text-align:center}.logo{font-size:clamp(44px,9vw,96px);font-weight:600;line-height:.95;text-shadow:0 4px 0 #2a1a05,0 0 40px rgba(242,193,78,.45);color:var(--gold);margin:0}.logo small{display:block;font-size:.3em;color:var(--bone);text-shadow:0 2px 0 #000;margin-top:10px;font-family:var(--prose);font-style:italic;font-weight:400}.title-dice{display:flex;gap:10px}.slots{display:grid;gap:10px;width:min(560px,100%)}.slot{display:flex;gap:10px;align-items:center}.legal{font-size:12px;color:var(--muted);padding:10px 16px;text-align:center;font-family:var(--prose)}.town{display:grid;grid-template-columns:220px 1fr;gap:14px;padding:14px;max-width:1400px;margin:0 auto}.town-nav{display:flex;flex-direction:column;gap:4px;padding-left:16px}.town-banner{height:180px;border-radius:var(--r);background-size:cover;background-position:center;border:2px solid var(--bone);margin-bottom:12px;display:flex;align-items:flex-end;padding:12px 16px}.town-banner h1{margin:0;font-size:30px;text-shadow:0 2px 0 #000,0 0 12px #000}.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:10px}.hero-card{display:flex;gap:10px;padding:10px;border:1px solid rgba(233,225,207,.3);border-radius:var(--r);background:#050a1e73;cursor:pointer;position:relative}.hero-card.sel{border-color:var(--gold);box-shadow:0 0 0 2px var(--gold) inset}.hero-card.dead{opacity:.55}.hero-card .lvl{position:absolute;right:8px;top:6px;color:var(--gold)}.badge{display:inline-block;padding:1px 6px;border-radius:3px;font-size:12px;background:var(--brass);color:#1b1203}.badge.red{background:var(--mult);color:#fff}.badge.blue{background:var(--chip);color:#fff}.list{display:flex;flex-direction:column;gap:6px}.item-row{display:flex;gap:10px;align-items:center;padding:6px 8px;border:1px solid rgba(233,225,207,.18);border-radius:4px;background:#050a1e59}.item-row .icon{width:40px;height:40px;flex:none}.item-row .icon .art{object-fit:contain}.biome-pick{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px}.biome-card{height:150px;border-radius:var(--r);border:2px solid rgba(233,225,207,.35);background-size:cover;background-position:center;padding:10px;display:flex;flex-direction:column;justify-content:flex-end;cursor:pointer;text-align:left}.biome-card.sel{border-color:var(--gold);box-shadow:0 0 0 2px var(--gold) inset}.biome-card.locked{filter:grayscale(.9) brightness(.5);cursor:not-allowed}.biome-card b{font-size:18px;text-shadow:0 2px 0 #000}.explore{display:grid;grid-template-columns:1fr 340px;gap:12px;padding:12px;max-width:1400px;margin:0 auto}.room-view{border-radius:var(--r);border:2px solid var(--bone);min-height:300px;background-size:cover;background-position:center;display:flex;flex-direction:column;justify-content:flex-end;padding:16px;position:relative}.room-view h1{margin:0 0 6px;font-size:26px;text-shadow:0 2px 0 #000}.room-view .prose{text-shadow:0 1px 2px #000}.compass{position:absolute;top:12px;right:12px;width:54px;height:54px;border-radius:50%;border:2px solid var(--bone);background:#050918cc;display:grid;place-items:center;font-size:22px}.meter-pill{position:absolute;top:12px;left:12px;padding:4px 10px;border-radius:20px;background:#050918cc;border:1px solid var(--bone)}.dpad{display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,auto);gap:6px}.dpad .btn{text-align:center;padding:10px 6px;min-height:52px}.dpad .btn small{display:block;font-size:11px;color:var(--muted)}.dpad .btn.locked{border-style:dashed}.dpad .fwd{grid-column:2;grid-row:1}.dpad .left{grid-column:1;grid-row:2}.dpad .right{grid-column:3;grid-row:2}.dpad .back{grid-column:2;grid-row:3}.dpad .mid{grid-column:2;grid-row:2;display:grid;place-items:center;color:var(--muted);font-size:12px;text-align:center}.minimap{display:grid;gap:2px;margin:0 auto}.mm{width:100%;aspect-ratio:1;border-radius:2px;position:relative}.mm.seen{background:#22305e}.mm.visited{background:#3a4f94}.mm.here{background:var(--gold)}.mm .door{position:absolute;background:#9fb0e8}.mm .door.n{top:-2px;left:35%;width:30%;height:3px}.mm .door.s{bottom:-2px;left:35%;width:30%;height:3px}.mm .door.e{right:-2px;top:35%;height:30%;width:3px}.mm .door.w{left:-2px;top:35%;height:30%;width:3px}.mm .door.lock{background:var(--mult)}.mm i{position:absolute;inset:0;display:grid;place-items:center;font-style:normal;font-size:9px;color:#fff}.party-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.pmini{display:flex;gap:8px;align-items:center;padding:6px;border-radius:4px;background:#050a1e80;border:1px solid rgba(233,225,207,.2);min-width:0}.pmini .portrait{width:44px;height:44px}.pmini .name{font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.log{font-family:var(--prose);font-size:15px;max-height:180px;overflow-y:auto;display:flex;flex-direction:column;gap:2px;padding-right:4px}.log .warn{color:#ffcf7a}.log .loot,.log .fortune{color:var(--gold)}.log .heal{color:#8ff0a4}.log .death{color:var(--danger)}.log .crit{color:#ff9cf0}.log .miss,.log .info{color:var(--bone-dim)}.bar{height:8px;background:#1a1f38;border-radius:4px;overflow:hidden;position:relative;border:1px solid rgba(0,0,0,.6)}.bar>span{display:block;height:100%;background:var(--hp);transition:width .35s ease}.bar.low>span{background:var(--hp-low)}.bar .ward{position:absolute;top:0;right:0;height:100%;background:repeating-linear-gradient(45deg,var(--ward),var(--ward) 3px,#4aa6dc 3px,#4aa6dc 6px);opacity:.9}.hpnum{font-size:12px;color:var(--bone-dim)}.conds{display:flex;gap:3px;flex-wrap:wrap}.cond{font-size:11px;padding:0 4px;border-radius:3px;background:#ffffff1f;border:1px solid rgba(255,255,255,.25)}.cond.bad{background:#e2403a59;border-color:#ff6a5c99}.cond.good{background:#4fc46a4d;border-color:#8ff0a480}.combat{display:grid;grid-template-columns:1fr 380px;grid-template-rows:auto auto;gap:10px;padding:10px;max-width:1500px;margin:0 auto}.battlefield{grid-column:1;position:relative;border:2px solid var(--bone);border-radius:var(--r);background-size:cover;background-position:center;min-height:360px;display:flex;flex-direction:column;justify-content:space-between;padding:10px;overflow:hidden}.curse-banner{align-self:center;padding:4px 12px;border-radius:20px;background:#3c0614d9;border:1px solid var(--mult);font-size:14px;max-width:95%;text-align:center}.biome-note{align-self:center;font-size:13px;padding:3px 10px;border-radius:20px;background:#050918bf;margin-top:4px}.rank-row{display:flex;justify-content:center;gap:10px;align-items:flex-end;flex-wrap:wrap}.rank-row.back .enemy{transform:scale(.82);transform-origin:bottom center}.enemy{width:150px;display:flex;flex-direction:column;align-items:center;cursor:default;position:relative;border-radius:6px;padding:4px;transition:transform .15s}.enemy .sprite{width:132px;height:132px;filter:drop-shadow(0 8px 6px rgba(0,0,0,.7))}.enemy .sprite .art{object-fit:contain}.enemy.boss{width:230px}.enemy.boss .sprite{width:210px;height:210px}.enemy.tier1 .sprite{filter:drop-shadow(0 8px 6px rgba(0,0,0,.7)) hue-rotate(-12deg) saturate(1.2)}.enemy.tier2 .sprite{filter:drop-shadow(0 0 10px rgba(255,60,60,.55)) hue-rotate(-25deg) saturate(1.3)}.enemy.tier3 .sprite{filter:drop-shadow(0 0 14px rgba(200,120,255,.7)) hue-rotate(40deg) saturate(1.4)}.enemy.elite .sprite{filter:drop-shadow(0 0 12px rgba(242,193,78,.8))}.enemy.targetable{cursor:crosshair}.enemy.targetable:hover,.enemy.targetable:focus-visible{background:#f2c14e2e;outline:2px solid var(--gold)}.enemy.acting{animation:lunge .35s ease}.enemy.dead{opacity:0;pointer-events:none;transition:opacity .6s}.enemy .ename{font-size:13px;text-align:center;text-shadow:0 1px 2px #000;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.enemy .bar{width:110px}.tele{position:absolute;top:-4px;right:0;background:var(--mult);color:#fff;font-size:11px;padding:1px 5px;border-radius:3px;animation:pulse 1s infinite}.heroes-row{display:flex;justify-content:center;gap:10px;flex-wrap:wrap}.hero-slot{width:210px;display:flex;gap:8px;padding:6px;border-radius:6px;background:#050918c7;border:2px solid rgba(233,225,207,.3);position:relative}.hero-slot.active{border-color:var(--gold);box-shadow:0 0 18px #f2c14e73}.hero-slot.back{opacity:.92}.hero-slot.targetable{cursor:pointer}.hero-slot.targetable:hover{outline:2px solid var(--hp)}.hero-slot .portrait{width:56px;height:56px}.hero-slot.down .portrait{filter:grayscale(1)}.rank-tag{position:absolute;top:-9px;left:8px;font-size:10px;padding:0 5px;border-radius:3px;background:#26408f}.floater{position:absolute;left:50%;top:20%;transform:translate(-50%);font-weight:600;font-size:26px;pointer-events:none;text-shadow:0 2px 0 #000,0 0 8px #000;animation:float 1.1s ease-out forwards;z-index:5;white-space:nowrap}.floater.dmg{color:#fff}.floater.crit{color:#ff9cf0;font-size:34px}.floater.heal{color:#8ff0a4}.floater.miss{color:var(--bone-dim);font-size:18px}.floater.ward{color:var(--ward)}.floater.text{color:var(--gold);font-size:18px}.shake{animation:shake .3s}.timeline{display:flex;gap:4px;align-items:center;flex-wrap:wrap}.tl{width:28px;height:28px;border-radius:4px;overflow:hidden;border:2px solid transparent;opacity:.8}.tl.now{border-color:var(--gold);opacity:1;transform:scale(1.12)}.tl.enemy-t{border-color:#e2403a99}.tl .art{object-fit:cover}.command{grid-column:2;grid-row:1 / span 2;display:flex;flex-direction:column;gap:10px;min-width:0}.cmd-tabs{display:flex;flex-direction:column;gap:4px;padding-left:16px}.opt-list{display:flex;flex-direction:column;gap:4px;max-height:300px;overflow-y:auto;padding-left:16px;padding-right:4px}.opt-list .btn{display:flex;justify-content:space-between;gap:8px}.opt-list .btn .cost{font-size:11px;color:var(--muted);flex:none}.opt-detail{font-family:var(--prose);font-size:15px;color:var(--bone-dim);min-height:2.6em}.target-hint{padding:6px 10px;border-radius:4px;background:#f2c14e26;border:1px dashed var(--gold)}.tray-wrap{grid-column:1}.felt{position:relative;border-radius:18px;padding:14px 16px 12px;background:radial-gradient(ellipse at 50% 40%,rgba(255,255,255,.07),transparent 60%),repeating-linear-gradient(45deg,rgba(0,0,0,.05) 0 2px,transparent 2px 4px),linear-gradient(180deg,var(--felt),var(--felt-dark));border:7px solid var(--brass-dark);box-shadow:inset 0 0 0 2px var(--brass),inset 0 6px 22px #0000008c,0 8px 26px #00000080}.felt-head{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:10px}.score-box{display:flex;align-items:center;gap:8px}.chips-box,.mult-box{min-width:86px;padding:6px 12px;border-radius:8px;font-size:26px;font-weight:600;text-align:center;color:#fff;text-shadow:0 2px 0 rgba(0,0,0,.4);transition:transform .08s}.chips-box{background:linear-gradient(180deg,#5aa0ff,#1e5fcf);box-shadow:0 3px #123c85}.mult-box{background:linear-gradient(180deg,#ff6a5c,#b8241f);box-shadow:0 3px #741513}.score-x{font-size:24px;color:var(--bone)}.bump{transform:scale(1.18)}.hand-name{font-size:20px;font-weight:600;color:var(--bone);min-width:150px}.hand-name small{display:block;font-size:12px;color:#b9e2cc;font-weight:400}.dice-row{display:flex;gap:12px;flex-wrap:wrap;justify-content:center;padding:10px 0 6px;min-height:92px}.die{--dc: #e9e1cf;--di: #2a2118;width:64px;height:64px;border-radius:13px;position:relative;cursor:pointer;background:radial-gradient(circle at 30% 25%,rgba(255,255,255,.55),transparent 45%),var(--dc);color:var(--di);box-shadow:inset 0 -5px #00000040,inset 0 2px #ffffff73,0 5px #00000059,0 8px 14px #00000059;display:grid;place-items:center;font-size:30px;font-weight:600;transition:transform .15s ease,box-shadow .15s;user-select:none;border:none}.die:hover{transform:translateY(-3px)}.die.sel{transform:translateY(-12px);box-shadow:0 0 0 3px var(--gold),0 14px #00000040,0 18px 20px #0006}.die.scoring{animation:pop .3s ease}.die.jinx{filter:grayscale(.8) brightness(.6)}.die.jinx:after{content:"✖";position:absolute;inset:0;display:grid;place-items:center;color:var(--mult);font-size:40px}.die.ghost{outline:2px dashed rgba(255,255,255,.7);outline-offset:2px}.die.rolling{animation:roll .45s ease-out}.die.glass{background:linear-gradient(135deg,#ffffffd9,#aae6f58c)}.die.prism{background:conic-gradient(from 0deg,#ff6a5c,#f2c14e,#4fc46a,#3d8bff,#b57bff,#ff6a5c);color:#111}.die.gold{background:radial-gradient(circle at 30% 25%,#fff6c8,transparent 45%),linear-gradient(135deg,#f2c14e,#a67c18)}.pips{position:absolute;inset:9px;display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr)}.pip{width:11px;height:11px;border-radius:50%;background:currentColor;place-self:center;box-shadow:inset 0 1px 1px #0006}.die .mod{position:absolute;right:-6px;top:-8px;font-size:14px;background:#111;color:var(--gold);border-radius:50%;width:22px;height:22px;display:grid;place-items:center;border:1px solid var(--gold)}.die .mat{position:absolute;left:4px;bottom:2px;font-size:9px;opacity:.65;font-weight:400}.tray-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.tray-actions .btn{background:#051910b3;border-color:#c9a24ab3}.tray-actions .btn:hover:not(:disabled){background:#2a6b4c}.rerolls{font-size:15px}.rerolls b{font-size:20px;color:var(--gold)}.charm-bar{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.charm{width:52px;height:52px;border-radius:8px;background:#00000059;border:2px solid var(--brass);position:relative;cursor:help;padding:3px}.charm .art{object-fit:contain}.charm.rare{border-color:#ff6a5c}.charm.uncommon{border-color:#8fd3ff}.charm.legendary{border-color:transparent;background:linear-gradient(#0b1230,#0b1230) padding-box,conic-gradient(#ff6a5c,#f2c14e,#4fc46a,#3d8bff,#b57bff,#ff6a5c) border-box}.charm .cnt{position:absolute;bottom:-6px;right:-6px;background:var(--mult);color:#fff;font-size:11px;border-radius:10px;padding:0 5px}.charm.trig{animation:jiggle .35s ease}.charm.empty{border-style:dashed;border-color:#c9a24a59;cursor:default}.token{width:34px;height:34px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff4c0,#c99a2a 60%,#7a5a14);border:2px solid #f3dfa5;display:grid;place-items:center;font-size:15px;color:#3a2600;cursor:pointer;box-shadow:0 3px #5a420e}.doubloons{display:inline-flex;align-items:center;gap:4px;color:var(--gold);font-size:18px}.coin{width:16px;height:16px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff4c0,#d5a32e 60%,#7a5a14);display:inline-block;box-shadow:0 1px #5a420e}.score-overlay{position:fixed;inset:0;display:grid;place-items:center;pointer-events:none;z-index:60}.score-card{background:#050c08eb;border:4px solid var(--brass);border-radius:16px;padding:18px 26px;min-width:min(460px,92vw);text-align:center;box-shadow:0 0 40px #f2c14e4d;animation:rise .2s ease}.score-card .hand-title{font-size:28px;font-weight:600;color:var(--gold)}.score-card .step{height:22px;font-size:16px;color:var(--bone-dim)}.score-card .total{font-size:52px;font-weight:600;color:#fff;text-shadow:0 0 20px rgba(242,193,78,.8);margin-top:6px}.score-card .score-box{justify-content:center;margin-top:8px}.modal-back{position:fixed;inset:0;background:#02040cb8;display:grid;place-items:center;z-index:50;padding:16px}.modal{width:min(920px,100%);max-height:calc(100vh - 32px);overflow-y:auto}.modal.narrow{width:min(560px,100%)}.boons{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}.boon{border:2px solid var(--brass);border-radius:10px;padding:12px;background:linear-gradient(180deg,#1c2a20,#0f1a13);cursor:pointer;display:flex;flex-direction:column;gap:6px;text-align:left;transition:transform .15s}.boon:hover:not(:disabled){transform:translateY(-4px);box-shadow:0 0 0 2px var(--gold)}.boon:disabled{opacity:.45;cursor:not-allowed}.boon .kind{font-size:12px;color:var(--gold)}.boon .icon{width:72px;height:72px;align-self:center}.boon .icon .art{object-fit:contain}.boon .name{font-size:18px;font-weight:600}.boon .desc{font-family:var(--prose);font-size:15px;color:var(--bone-dim)}.boon .price{margin-top:auto}.boon.charm-common{border-color:#b7ad97}.boon.charm-uncommon{border-color:#8fd3ff}.boon.charm-rare{border-color:#ff6a5c}.boon.charm-legendary{border-color:#f2c14e;box-shadow:0 0 18px #f2c14e80}.bag{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}.bag-die{border:1px solid rgba(233,225,207,.25);border-radius:8px;padding:8px;background:#050a1e66;cursor:pointer}.bag-die.sel{border-color:var(--gold);box-shadow:0 0 0 2px var(--gold) inset}.faces{display:grid;grid-template-columns:repeat(6,1fr);gap:3px;margin-top:6px}.face{aspect-ratio:1;border-radius:4px;display:grid;place-items:center;font-size:13px;font-weight:600;position:relative;border:none;cursor:pointer}.face.sel{outline:2px solid var(--gold)}.face sup{position:absolute;top:-3px;right:0;font-size:9px;color:var(--gold)}.sheet{display:grid;grid-template-columns:140px 1fr;gap:14px}.abil{display:grid;grid-template-columns:repeat(6,1fr);gap:6px;text-align:center}.abil div{border:1px solid rgba(233,225,207,.3);border-radius:4px;padding:4px}.abil b{display:block;font-size:20px}.feat{padding:6px 0;border-bottom:1px solid rgba(233,225,207,.1);font-family:var(--prose)}.feat b{font-family:var(--ui);font-weight:600}.impl{font-size:10px;padding:0 4px;border-radius:3px;margin-left:6px;vertical-align:middle;font-family:var(--ui)}.impl.exact{background:#2b6b45}.impl.adapted{background:#6b5a2b}.impl.narrative{background:#444b6b}.toast{position:fixed;bottom:20px;left:50%;transform:translate(-50%);padding:10px 16px;border-radius:6px;background:#3a0d12;border:1px solid var(--danger);z-index:80;animation:rise .2s ease;max-width:90vw}.toast.ok{background:#0f3a22;border-color:var(--hp)}.result-big{font-size:42px;font-weight:600;text-align:center;margin:0}.kbd{font-size:11px;padding:0 4px;border:1px solid rgba(233,225,207,.4);border-radius:3px;color:var(--muted)}.tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px}table.mini{border-collapse:collapse;width:100%;font-size:14px}table.mini td,table.mini th{padding:3px 6px;border-bottom:1px solid rgba(233,225,207,.1);text-align:left}@keyframes pop{0%{transform:translateY(-12px) scale(1)}50%{transform:translateY(-16px) scale(1.2)}to{transform:translateY(-12px) scale(1)}}@keyframes roll{0%{transform:rotate(-200deg) scale(.6);opacity:.3}70%{transform:rotate(15deg) scale(1.08);opacity:1}to{transform:rotate(0) scale(1)}}@keyframes float{0%{opacity:0;transform:translate(-50%,10px) scale(.7)}15%{opacity:1;transform:translate(-50%,-6px) scale(1.15)}to{opacity:0;transform:translate(-50%,-60px) scale(1)}}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-6px)}75%{transform:translate(6px)}}@keyframes lunge{50%{transform:translateY(14px) scale(1.06)}}@keyframes pulse{50%{opacity:.55}}@keyframes jiggle{25%{transform:rotate(-12deg) scale(1.15)}75%{transform:rotate(10deg) scale(1.15)}}@keyframes rise{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}@media(max-width:1000px){.combat,.explore{grid-template-columns:1fr}.command{grid-column:1;grid-row:auto}.town{grid-template-columns:1fr}.town-nav{flex-direction:row;flex-wrap:wrap;padding-left:0}.town-nav .btn:before{display:none}}@media(max-width:600px){.win{padding:10px}.die{width:48px;height:48px;font-size:22px;border-radius:10px}.pip{width:8px;height:8px}.pips{inset:6px}.dice-row{gap:8px}.enemy{width:104px}.enemy .sprite{width:88px;height:88px}.enemy.boss{width:150px}.enemy.boss .sprite{width:140px;height:140px}.enemy .bar{width:80px}.hero-slot{width:calc(50% - 8px);min-width:150px}.party-strip{grid-template-columns:1fr}.chips-box,.mult-box{min-width:64px;font-size:20px}.sheet{grid-template-columns:1fr}.abil{grid-template-columns:repeat(3,1fr)}.battlefield{min-height:300px}}
