body:has(.game-loading[data-loading=true])>.game-pointer{display:none}.game-loading{z-index:10000;color:#e7d8bb;background:#100e0c;place-items:center;display:grid;position:fixed;inset:0}.game-loading-panel{text-align:center;width:min(26rem,85vw)}.loading-progress{background:#302a21;border-radius:1rem;width:100%;height:.8rem;margin:2rem 0;display:block;overflow:hidden}.loading-progress>div{border-radius:inherit;background:#b88a45;height:100%;transition:width .25s linear}@media (prefers-reduced-motion:reduce){.loading-progress>div{transition:none}}html,html *,html :before,html :after{cursor:none!important}.game-pointer{z-index:2147483647;pointer-events:none;-webkit-user-select:none;user-select:none;contain:layout style;position:fixed}.game-pointer img,.game-pointer canvas{pointer-events:none;width:100%;height:100%;display:block}.game-pointer[hidden],.game-pointer [hidden]{display:none}@font-face{font-family:Mochiy Pop One;src:url(../fonts/localization/mochiy-pop-one.woff2)format("woff2");font-weight:400;font-display:swap}@font-face{font-family:Yeon Sung;src:url(../fonts/localization/yeon-sung.woff2)format("woff2");font-weight:400;font-display:swap}@font-face{font-family:Caveat Brush;font-style:normal;font-display:swap;font-weight:400;src:url(../fonts/caveat-brush/caveat-brush-latin-ext.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Caveat Brush;font-style:normal;font-display:swap;font-weight:400;src:url(../fonts/caveat-brush/caveat-brush-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Pangolin;font-style:normal;font-display:swap;font-weight:400;src:url(../fonts/pangolin/pangolin-cyrillic-ext.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Pangolin;font-style:normal;font-display:swap;font-weight:400;src:url(../fonts/pangolin/pangolin-cyrillic.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Pangolin;font-style:normal;font-display:swap;font-weight:400;src:url(../fonts/pangolin/pangolin-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Noto Serif;src:url(../fonts/localization/noto-serif.woff2)format("woff2");font-weight:100 900;font-display:swap}@font-face{font-family:Noto Serif SC;src:url(../fonts/localization/noto-serif-sc.woff2)format("woff2");font-display:swap}@font-face{font-family:Noto Serif JP;src:url(../fonts/localization/noto-serif-jp.woff2)format("woff2");font-display:swap}@font-face{font-family:Noto Serif KR;src:url(../fonts/localization/noto-serif-kr.woff2)format("woff2");font-display:swap}.settings select,.settings option{max-width:100%;font-family:Noto Serif,Noto Serif SC,Noto Serif JP,Noto Serif KR,serif}.dialog{overflow-wrap:anywhere}.dialog header,.start-row,.hud,.hud-left,.hud-right,.settings .row{flex-wrap:wrap}.modes .mode,.start-row>span{min-width:0}@font-face{font-family:IM Fell English SC;src:url(../fonts/im-fell-english-sc/im-fell-english-sc-latin.woff2)format("woff2");font-display:swap}@font-face{font-family:Crimson Pro;src:url(../fonts/crimson-pro/crimson-pro-latin-variable.woff2)format("woff2");font-weight:200 900;font-display:swap}@font-face{font-family:Walter Turncoat;src:url(../fonts/walter-turncoat/walter-turncoat-latin.woff2)format("woff2");font-display:swap}@font-face{font-family:Fredericka the Great;src:url(../fonts/fredericka-the-great/fredericka-the-great-latin.woff2)format("woff2");font-display:swap}@font-face{font-family:Bitter;src:url(../fonts/bitter/bitter-latin.woff2)format("woff2");font-weight:700;font-display:swap}@font-face{font-family:Roboto Slab;src:url(../fonts/roboto-slab/roboto-slab-latin.woff2)format("woff2");font-weight:700;font-display:swap}@font-face{font-family:Grenze;src:url(../fonts/grenze/grenze-latin.woff2)format("woff2");font-weight:600;font-display:swap}@font-face{font-family:Cinzel;src:url(../fonts/cinzel/cinzel-latin.woff2)format("woff2");font-weight:700;font-display:swap}:root{--font-title:"IM Fell English SC", Georgia, serif;--font-ui:"Crimson Pro", Georgia, serif;--bg:#0b0806;--text:#f1e5cb;--muted:#b9a888;--ink:#2b1d15;--parch:#efe0bf;--parch2:#d9c194;--brass:#b88a45;--gold:#e8b85a;--monster:#9b2f25;--weapon:#2f5a8a;--potion:#2c7a4f;--revive:#a07a10;--belt:#7a5230;--p1:#2bb3a3;--p2:#e08a2c;--cw:136px;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{background:var(--bg);height:100%;color:var(--text);font:19px/1.4 var(--font-ui);margin:0;overflow:hidden}h1,h2,h3{font-family:var(--font-title);margin:0;font-weight:400}button{font:inherit;color:var(--text);cursor:pointer;background:linear-gradient(#3a2617,#24170d);border:1px solid #6e5232;border-radius:8px;padding:7px 16px;box-shadow:inset 0 1px #ffdca026,0 3px 8px #00000073}button:hover:not(:disabled){border-color:var(--gold)}button:disabled{opacity:.45;cursor:default}button.primary{border-color:var(--brass);background:linear-gradient(#7a5326,#4d3216)}:focus-visible{outline:3px solid var(--gold);outline-offset:2px}input,select{font:inherit}.scene{background:var(--bg);position:fixed;inset:0;overflow:hidden}.card-face{border-radius:calc(var(--cw) * .075);color:var(--ink);background:radial-gradient(ellipse at 30% 20%, #fffae866, transparent 60%), var(--tex-parchment) center / 220px;box-shadow:inset 0 0 0 1px #3c230f73, inset 0 0 calc(var(--cw) * .16) #78501e66;display:block;position:absolute;inset:0;overflow:hidden}.card-face .window{background:color-mix(in srgb, var(--accent) 14%, transparent);position:absolute;inset:17% 13% 20%}.card-face.monster .window{clip-path:polygon(0 10%,12% 0,24% 10%,37% 0,50% 10%,63% 0,76% 10%,88% 0,100% 10%,100% 100%,0 100%);background:radial-gradient(circle at 50% 62%, color-mix(in srgb, var(--monster) calc(var(--menace) * 70%), transparent), transparent 72%), color-mix(in srgb, var(--accent) 10%, transparent)}.card-face.weapon .window{clip-path:polygon(50% 0,100% 14%,100% 100%,0 100%,0 14%)}.card-face.potion .window{border-radius:50% 50% 10% 10%/34% 34% 8% 8%}.card-face.revive .window{border-radius:50%;inset:22% 10% 26%}.card-face.belt .window{outline:2px dashed color-mix(in srgb, var(--accent) 55%, transparent);outline-offset:-5px}.card-face .frame{inset:calc(var(--cw) * .045);border:1.5px solid color-mix(in srgb, var(--accent) 70%, transparent);border-radius:calc(var(--cw) * .05);position:absolute}.card-face .art{aspect-ratio:1;width:72%;translate:-50% -50%;scale:var(--art-scale);position:absolute;top:52%;left:50%}.card-face .art img{width:100%;height:100%;display:block}.card-face .num{font-family:var(--font-ui);font-weight:900;font-size:calc(var(--cw) * .29);color:var(--accent);justify-items:center;gap:2px;line-height:1;display:grid;position:absolute}.card-face .num.tl{top:4%;left:6%}.card-face .num.br{bottom:4%;right:6%;rotate:180deg}.card-face .pip{width:calc(var(--cw) * .085);height:calc(var(--cw) * .085);background:var(--accent)}.card-face.monster .pip{clip-path:polygon(50% 0,100% 100%,0 100%)}.card-face.weapon .pip{clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%)}.card-face.potion .pip{border-radius:50%/60% 60% 40% 40%}.card-face.revive .pip{clip-path:polygon(35% 0,65% 0,65% 35%,100% 35%,100% 65%,65% 65%,65% 100%,35% 100%,35% 65%,0 65%,0 35%,35% 35%)}.card-face .name{text-align:center;font-size:calc(var(--cw) * .1);color:color-mix(in srgb, var(--ink) 80%, transparent);white-space:nowrap;text-overflow:ellipsis;padding:0 18%;font-weight:600;position:absolute;bottom:6%;left:0;right:0;overflow:hidden}.card-face .light{pointer-events:none;background:linear-gradient(#ffd69624,#190a001f);position:absolute;inset:0}.card-face.overflow .art:before,.card-face.overflow .art:after{content:"";aspect-ratio:1;border:1.5px solid var(--potion);border-radius:50%;width:9%;animation:1.6s ease-out infinite bubble;position:absolute;top:6%;left:46%}.card-face.overflow .art:after{width:6%;animation-delay:.7s;left:58%}@keyframes bubble{0%{opacity:.9;transform:translateY(0)}to{transform:translateY(calc(var(--cw) * -.32));opacity:0}}.table-layer{pointer-events:none;position:absolute;inset:0;overflow:hidden}.layer-table{transform-origin:0 0;width:1600px;height:1000px;transform-style:preserve-3d;position:absolute;top:50%;left:50%}.card-hit{outline:none;position:absolute}.card-hit.playable{pointer-events:auto;cursor:pointer}.table-layer .mat,.table-layer .token,.table-layer .plaques,.table-layer .camp-nav,.table-layer .camp-medallion,.table-layer .camp-bank,.pile-hit{opacity:0}.table-layer .camp-bank{position:absolute;top:0;left:0}.table-layer .camp-medallion{pointer-events:auto;border-radius:50%;padding:0;position:absolute}.pile-hit{background:0 0;border:none;padding:0;position:absolute}button.pile-hit{pointer-events:auto}.table-layer .plaques,.table-layer .camp-nav{transform-style:preserve-3d;pointer-events:auto;transform-origin:50% 100%;transform:translateZ(var(--lift)) rotateX(calc(var(--tilt) * -1));display:block;position:absolute}.table-layer .plaque{min-width:0;padding:0;position:absolute}.table-layer .mat,.table-layer .token{position:absolute}.table-layer .token{pointer-events:auto;border-radius:50%;padding:0}.hud{pointer-events:none;text-shadow:0 2px 3px #000000e6;justify-content:space-between;gap:12px;padding:10px 16px;display:flex;position:fixed;top:0;left:0;right:0}.hud>*{pointer-events:auto;align-items:center;gap:14px;display:flex}.hud .brand{font-family:var(--font-title);color:var(--gold);font-size:24px}.hud button{padding:4px 14px}.hud .dungeon b{font-size:24px;font-weight:800}.tag{color:#ffe0d6;font-family:var(--font-title);background:#7b2018;border-radius:6px;padding:2px 10px}.banner-wrap{translate:calc(-50% + var(--banner-x)) var(--banner-y);justify-items:center;gap:var(--log-gap);pointer-events:none;width:max-content;max-width:max(240px, calc(92vw - 2 * var(--banner-x-reach)));display:grid;position:fixed;top:54px;left:50%}.banner{--banner-text:23px;--banner-pad-x:26px;--banner-pad-y:8px;zoom:var(--banner-zoom);pointer-events:auto;padding:calc(var(--banner-pad-y) * var(--banner-pad-y-scale)) calc(var(--banner-pad-x) * var(--banner-pad-x-scale));border-radius:var(--banner-radius);color:var(--ink);font-size:calc(var(--banner-text) * var(--banner-text-scale));background:linear-gradient(#fff8e459, #fff8e400), var(--tex-parchment) center / 260px;box-shadow:inset 0 0 0 1px #3c230f66, 0 8px 18px rgb(0 0 0/calc(.6 * var(--banner-shadow)));border-bottom:var(--banner-strip) solid var(--brass);align-items:center;gap:14px;font-weight:600;display:flex}.banner.turn-message{opacity:var(--banner-opacity)}.banner.banner-hidden{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}.banner.p1{border-bottom-color:var(--p1)}.banner.p2{border-bottom-color:var(--p2)}.players-1 .banner{border-bottom-color:var(--brass)}.banner button{color:var(--text)}.log{font-size:calc(18px * var(--log-text-scale));opacity:var(--log-opacity);color:#e9d6b0;text-shadow:0 2px 4px #000000f2;margin:0}.note{width:min(340px,34vw);color:var(--ink);background:linear-gradient(#fff8e44d, #fff8e400), var(--tex-parchment) center / 260px;border-radius:8px;padding:14px 18px;font-size:19px;position:fixed;top:64px;left:16px;box-shadow:inset 0 0 0 1px #3c230f66,0 10px 24px #000000b3}.note h2{color:#6b3a12;font-size:22px}.note p{margin:6px 0 10px}.note.coach{border-left:6px solid var(--gold)}.overlay{z-index:10;background:#050302ad;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.dialog{width:min(680px,100%);max-height:88vh;color:var(--ink);background:linear-gradient(#fff8e466, #fff8e41a), var(--tex-parchment,var(--parch)) center / 320px, var(--parch);border-radius:10px;padding:22px 28px;overflow:auto;box-shadow:inset 0 0 0 2px #3c230f59,inset 0 0 60px #78501e59,0 20px 50px #000c}.dialog>header{justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px;display:flex}.dialog h2{font-size:32px}.dialog h3{color:#6b3a12;margin-top:16px;font-size:23px}.dialog p,.dialog li{margin:6px 0}.dialog.end{text-align:center;width:min(480px,100%)}.dialog.end h2{font-size:54px}.dialog.end.won h2{color:#7a5310}.dialog.end.lost h2{color:#7b2018}.dialog .score{font-size:26px}.dialog .score b{font-size:46px}.dialog .new{color:#2c7a4f;font-weight:700}.dialog .run-summary{text-align:left;max-width:340px;margin:12px auto}.dialog .run-summary div{justify-content:space-between;gap:16px;padding:2px 0;display:flex}.dialog .run-summary dt{white-space:nowrap}.dialog .run-summary dd{text-align:right;margin:0;font-weight:700}.dialog .buttons{justify-content:center;gap:12px;margin-top:14px;display:flex}.daily-result{background:#3c230f1a;border-radius:8px;justify-items:center;gap:6px;padding:10px;display:grid}.daily-result code{font-family:var(--font-ui);font-weight:700}.discard-list ol{flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none;display:flex}.discard-list li{--cw:76px;width:var(--cw);height:calc(var(--cw) * 1.4);position:relative}.discard-list .card-face{transform:none}.discard-list .card-face.monster{--accent:var(--monster)}.discard-list .card-face.weapon{--accent:var(--weapon)}.discard-list .card-face.potion{--accent:var(--potion)}.discard-list .card-face.revive{--accent:var(--revive)}.discard-list .card-face.belt{--accent:var(--belt)}.discard-list .card-face .name{display:none}.fps-counter{z-index:1002;color:#fff;font-variant-numeric:tabular-nums;pointer-events:none;background:#000000bf;border-radius:4px;padding:4px 8px;font:14px monospace;position:fixed;top:12px;left:12px}.settings fieldset{border:1px solid #3c230f4d;border-radius:8px;flex-wrap:wrap;gap:16px;display:flex}.settings .row{align-items:center;gap:10px;margin:12px 0;display:flex}.settings .hint{width:100%;margin:0;font-size:16px}.keys{padding-left:18px}.tune-status{z-index:1001;color:var(--muted);background:#160d07eb;border-radius:6px;margin:0;padding:6px 10px;font-size:14px;position:fixed;bottom:12px;right:12px}.start{background:radial-gradient(ellipse 50% 40% at 50% 20%, #ffa04647, transparent 70%), linear-gradient(#0805038c, #040201eb 75%), var(--tex-wall) 0 0 / 200px;place-items:center;padding:24px 16px;display:grid;position:fixed;inset:0;overflow:auto}.start-card{background:#160d07e0;border-radius:14px;gap:16px;width:min(760px,100%);padding:28px 32px;display:grid;box-shadow:inset 0 0 0 2px #3a2414,inset 0 0 0 5px #b88a4559,0 30px 60px #000c}.start h1{text-align:center;color:var(--gold);text-shadow:0 4px 18px #ff963259;font-size:clamp(48px,8vw,84px);line-height:1}.tagline{text-align:center;color:var(--muted);margin:0;font-size:22px}.modes{border:none;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px;margin:0;padding:0;display:grid}.modes legend{font-family:var(--font-title);margin-bottom:8px;font-size:22px}.mode{cursor:pointer;background:#fff0d20a;border:2px solid #4b3220;border-radius:10px;gap:4px;padding:12px 14px;display:grid}.mode.chosen{border-color:var(--gold);background:#e8b85a1a}.mode input{opacity:0;position:absolute}.mode:has(input:focus-visible){outline:3px solid var(--gold)}.mode strong{font-family:var(--font-title);font-size:26px;font-weight:400}.mode span{color:var(--muted);font-size:17px}.start-row{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.seed{flex:1;align-items:center;gap:10px;display:flex}.seed input{min-width:0;color:var(--text);background:#140c07;border:1px solid #6e5232;border-radius:8px;flex:1;padding:7px 12px}.start-row .primary{min-width:140px;font-size:22px}.start-row.daily span{color:var(--muted);flex:1;font-size:17px}.start-row.links{justify-content:center}.error{color:#ff9a8a;margin:0}.dialog.rules{width:min(760px,100%)}.rotate-hint{display:none}@media (orientation:portrait) and (width<=700px){.rotate-hint{z-index:20;text-align:center;font-family:var(--font-title);background:#050302f0;place-items:center;margin:0;padding:24px;font-size:28px;display:grid;position:fixed;inset:0}}@media (width<=900px),(height<=520px){body{font-size:16px}.hud{padding:4px 8px}.hud .brand{display:none}.banner-wrap{top:40px}.banner{--banner-text:17px;--banner-pad-x:14px;--banner-pad-y:4px}.note{width:min(260px,40vw);padding:8px 12px;font-size:15px;top:40px}}@media (prefers-reduced-motion:reduce){.card-face.overflow .art:before,.card-face.overflow .art:after{animation:none}}
