@font-face{font-family:DM Sans;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/dm-sans-400.ttf)format("truetype")}@font-face{font-family:DM Sans;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/dm-sans-500.ttf)format("truetype")}@font-face{font-family:DM Sans;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/dm-sans-600.ttf)format("truetype")}@font-face{font-family:DM Sans;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/dm-sans-700.ttf)format("truetype")}@font-face{font-family:Libre Caslon Display;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/libre-caslon-display-400.ttf)format("truetype")}:root{color:#e7e7da;font-synthesis:none;background:#101b18;font-family:DM Sans,sans-serif;font-size:14px}*{box-sizing:border-box}body{margin:0}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}button:disabled{cursor:not-allowed;opacity:.45}button:focus-visible,a:focus-visible{outline-offset:5px;outline:2px solid #e3c88a}button{transition:background .18s,transform .18s}button:hover:not(:disabled){filter:brightness(1.09)}a{color:inherit;text-decoration:none}.app{background:radial-gradient(at 70% 35%,#24372c55,#0000 60%);flex-direction:column;min-height:100vh;padding:0 5.5%;display:flex}.site-header{border-bottom:1px solid #e8e7d51a;align-items:center;gap:25px;height:94px;display:flex}.brand{letter-spacing:2px;align-items:center;gap:4px;font-size:18px;font-weight:700;display:flex}.brand>span:last-child{color:#c2a676}.brand-mark{color:#d5bd87;margin-right:10px;font-size:39px;font-weight:400}.header-divider{background:#d9ddcd26;width:1px;height:22px}.header-title{letter-spacing:2.6px;color:#9da99e;font-size:10px}.sound-toggle{color:#b5bfb2;background:0 0;border:1px solid #b6c1b826;border-radius:5px;padding:9px 14px;font-size:12px}.rules-toggle{color:#d5bd87;background:0 0;border:0;margin-left:auto;padding:10px}.rules-panel{color:#e7e7da;background:#1d2d24;border:1px solid #b9be8e60;border-radius:12px;width:min(760px,100% - 40px);max-height:calc(100dvh - 48px);padding:30px;overflow-y:auto;box-shadow:0 20px 70px #0008}.rules-panel::backdrop{background:#07110ee6}.rules-heading{justify-content:space-between;align-items:center;gap:20px;display:flex}.rules-heading .eyebrow{margin-bottom:10px}.rules-heading h2{font-size:38px}.rules-heading button{flex-shrink:0}.rules-panel h3{color:#d5bd87;margin:24px 0 8px;font-size:16px}.rules-panel p{color:#c3cdbb;margin:8px 0;font-size:14px;line-height:1.75}.rules-panel .rules-intro{margin-top:20px}.rules-panel .rules-credit{border-top:1px solid #b9be8e40;margin-top:26px;padding-top:18px;font-size:12px}.rules-credit a{text-decoration:underline}.preference-error{color:#edc5a8;background:#60403560;border:1px solid #bd876466;border-radius:6px;flex-wrap:wrap;align-items:center;gap:16px;margin-top:16px;padding:12px 16px;display:flex}.preference-error p{flex:1;margin:0;line-height:1.6}.preference-error button{font-size:12px}.sound-toggle>span{color:#d5bd87;margin-right:6px}main{width:100%;max-width:1170px;margin:auto}.welcome{grid-template-columns:1.05fr 1fr;align-items:center;min-height:590px;padding:65px 0 30px;display:grid;position:relative}.welcome-copy{z-index:1}.eyebrow{letter-spacing:2.3px;color:#c4ae7d;align-items:center;gap:10px;margin:0 0 20px;font-size:10px;font-weight:600;display:flex}.eyebrow>span{background:#c4ae7d;width:18px;height:1px}h1,h2{letter-spacing:-1.4px;margin:0;font-family:Libre Caslon Display,Georgia,serif;font-weight:400}h1{font-size:clamp(48px,5vw,75px);line-height:1.04}h1 em{color:#c9cbb4;font-style:normal;font-weight:400}.intro{color:#a6b2a7;max-width:365px;margin:23px 0 28px;font-size:15px;line-height:1.85}.start-actions{flex-wrap:wrap;gap:12px;display:flex}.primary,.secondary{border-radius:4px;justify-content:center;align-items:center;gap:25px;min-height:49px;padding:15px 21px;display:inline-flex}.primary{color:#1b271e;background:#d9bf86;border:1px solid #d9bf86;font-weight:600}.primary>span{font-size:17px}.secondary{color:#d8dcca;background:0 0;border:1px solid #9aab983d}.save-note{color:#899a8c;margin:20px 0;font-size:11px}.save-note>span{color:#b7c19a;margin-right:7px}.welcome-art{justify-content:center;align-items:center;height:400px;display:flex;position:relative}.orbit{border:1px solid #c4ae7d1c;border-radius:50%;width:370px;height:370px;position:absolute}.orbit-two{opacity:.65;border-style:dashed;width:430px;height:430px}.art-card{border-radius:9px;flex-direction:column;width:184px;height:268px;padding:19px;display:flex;position:absolute;box-shadow:0 18px 40px #0005}.art-back{background:repeating-linear-gradient(45deg,#37483a 0 2px,#2b3b31 2px 7px);border:6px solid #7a8567;outline:1px solid #b3b390;transform:translate(-85px,8px)rotate(-22deg)}.art-back>span{color:#b8b18b;margin:auto;font-size:98px}.art-red{color:#9e5342;background:#d9d1b8;transform:translate(80px,2px)rotate(19deg)}.art-front{color:#263d30;background:#eee8d2;border:1px solid #f4e9cc;transform:translate(-4px,-18px)rotate(-6deg)}.art-rank{font-family:Georgia,serif;font-size:24px}.art-suit{text-align:center;margin-top:5px;font-size:125px;line-height:1.2}.art-caption{letter-spacing:2px;text-align:center;margin-top:12px;font-size:7px}.art-spark{color:#c1a879;font-size:30px;position:absolute}.spark-one{top:28px;left:110px}.spark-two{bottom:55px;right:48px}.welcome-facts{color:#9eac9f;letter-spacing:.2px;grid-column:1/-1;gap:50px;margin-top:50px;font-size:11px;display:flex}.welcome-facts b{color:#dfdfc9;margin-right:8px;font-family:Georgia,serif;font-size:22px;font-weight:400}.increment-banner{border-top:1px solid #c5cfb21b;align-items:center;gap:20px;margin:20px 0 25px;padding:20px 0 0;display:flex}.badge{letter-spacing:1.3px;color:#c7b17e;white-space:nowrap;border:1px solid #c6b07940;border-radius:3px;padding:7px 9px;font-size:9px}.increment-banner p{color:#8f9f91;max-width:810px;margin:0;font-size:11px;line-height:1.8}footer{color:#788b7b;border-top:1px solid #c5cfb21b;justify-content:space-between;gap:20px;padding:22px 0;font-size:10px;display:flex}.footer-dot{margin:0 10px}.encounter{padding-top:35px}.encounter-heading{justify-content:space-between;align-items:center;margin-bottom:28px;display:flex}.encounter-heading .eyebrow{margin-bottom:10px}.encounter h1{font-size:47px}.compact{min-height:38px;padding:10px 15px;font-size:11px}.table-stats{grid-template-columns:1fr 1fr 1.2fr;gap:35px;margin:0 0 20px;display:grid}.stat-label{letter-spacing:1.6px;color:#92a18f;margin-bottom:8px;font-size:9px;display:block}.table-stats strong{font-size:25px;font-weight:500;display:block}.table-stats strong>span[aria-hidden]{color:#bf866e;font-size:19px}.table-stats small{color:#91a08d;font-size:11px;font-weight:400}.table-stats .stat-text{margin-bottom:3px;font-size:17px}.health-track{background:#87937b26;width:145px;height:3px;margin-top:9px}.health-track i{background:#bf9479;height:100%;transition:width .25s;display:block}.dungeon-stat{justify-content:end;align-items:center;gap:15px;display:flex}.deck-icon{outline-offset:3px;color:#b5b38c;border:1px solid #87967880;border-radius:3px;outline:1px solid #87967840;place-items:center;width:31px;height:43px;font-size:20px;display:grid}.table{background:radial-gradient(at 50% 45%,#334b36aa,#1a2c22aa);border:1px solid #8eaa792b;border-radius:12px;flex-direction:column;justify-content:center;min-height:350px;display:flex;position:relative;overflow:hidden}.table-canvas{pointer-events:none;opacity:.85;position:absolute;inset:0}.table-canvas canvas{display:block}.table-label{text-align:center;color:#7f987b;letter-spacing:2px;z-index:1;margin:28px 0 22px;font-size:9px}.table-label>span{margin:0 10px}.room{z-index:1;grid-template-columns:repeat(4,150px);justify-content:center;gap:23px;display:grid}.playing-card{color:#314a37;background:#ece6d0;border:1px solid #e1dfc3;border-radius:7px;height:210px;padding:0;animation:.35s ease-out both deal;position:relative;box-shadow:0 8px 15px #0003}.playing-card:nth-child(2){animation-delay:50ms}.playing-card:nth-child(3){animation-delay:.1s}.playing-card:nth-child(4){animation-delay:.15s}.dealing .playing-card.dealt{animation-duration:.5s}.dealing .playing-card.carried{animation:.65s ease-out both carry}.playing-card.weapon,.playing-card.potion{color:#a45a49;background:#e7dfca}.playing-card:disabled{opacity:1}.playing-card.selected{outline-offset:5px;outline:2px solid #dfc082;transform:translateY(-8px)}.playing-card:hover:not(:disabled){transform:translateY(-6px)}.card-corner{font-family:Georgia,serif;font-size:23px;line-height:1.1;position:absolute;top:10px;left:12px}.card-corner small{font-size:17px;display:block}.card-corner.bottom{inset:auto 12px 10px auto;transform:rotate(180deg)}.card-suit{margin:24px 0 13px;font-size:66px;line-height:1;display:block}.card-kind{text-transform:uppercase;letter-spacing:1.4px;font-size:9px;display:block}.card-value{opacity:.75;margin-top:5px;font-size:10px;display:block}.empty-slot{color:#7e937768;letter-spacing:2px;border:1px dashed #b3c39a29;border-radius:7px;flex-direction:column;justify-content:center;align-items:center;gap:10px;height:210px;font-size:8px;display:flex}.empty-slot>span{font-size:35px}.table-hint{color:#91a38b;text-align:center;z-index:1;margin:23px 0;font-size:10px}.locked .table-hint{color:#dcc18b}.action-panel{border-bottom:1px solid #b2bd991c;align-items:center;gap:18px;min-height:99px;padding:22px 0;display:flex}.action-icon{color:#c4ad79;border:1px solid #b2bd9929;border-radius:50%;flex-shrink:0;place-items:center;width:47px;height:47px;font-size:27px;display:grid}.action-copy{flex:1}.action-copy p{color:#cbd4c0;margin:0;font-size:13px;line-height:1.5}.action-copy small{color:#92a18f;margin-top:6px;font-size:11px;line-height:1.5;display:block}.fight{gap:18px;min-height:43px;padding:13px 17px;font-size:12px}.fight>span{font-size:12px}.combat-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.weapon-history{margin-top:4px;display:block}.potion-allowance{margin-top:6px;display:block}@media (width<=800px){.combat-actions{justify-content:flex-start;width:100%;padding-left:65px}.combat-actions .fight{margin-left:0}}@media (width<=480px){.combat-actions{padding-left:56px}}.autosave{color:#7d937c;text-align:center;margin:16px 0 0;font-size:10px}.autosave>span:first-child{color:#9dad83;margin-right:5px;font-size:7px}.autosave-divider{color:#536b51;margin:0 10px}.increment-note{color:#c8b480;font-size:12px;line-height:1.6}.error{color:#edc5a8;background:#60403560;border:1px solid #bd876466;padding:15px;line-height:1.6}.modal-backdrop{z-index:10;background:#07110ed9;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.confirm-modal{background:#1d2d24;border:1px solid #b9be8e40;border-radius:10px;width:100%;max-width:490px;padding:35px;box-shadow:0 20px 70px #0005}.confirm-modal h2{font-size:35px}.confirm-modal>p:not(.eyebrow){color:#a5b49f;line-height:1.8}.modal-actions{justify-content:end;gap:12px;margin-top:26px;display:flex}.modal-actions button{min-height:43px;padding:12px 16px;font-size:12px}@keyframes deal{0%{opacity:0;translate:0 -12px}to{opacity:1;translate:0}}@keyframes carry{0%{translate:24px}to{translate:0}}@media (width>=1600px){main{max-width:1240px}.welcome{min-height:650px}.welcome-art{height:440px}.table{min-height:385px}}@media (width<=800px){.app{padding:0 5%}.site-header{gap:15px;height:75px}.header-title{font-size:8px}.brand{font-size:14px}.brand-mark{margin-right:3px;font-size:30px}.sound-toggle{padding:8px;font-size:10px}.welcome{grid-template-columns:1fr;padding-top:40px}.welcome-art{grid-row:2;height:330px;margin:0 -10%;transform:scale(.8)}.welcome-facts{justify-content:space-between;gap:20px;margin-top:0}.welcome-facts span{font-size:9px}.welcome-facts b{margin-right:4px;font-size:18px}.intro{max-width:420px}.increment-banner{align-items:start;gap:12px}.room{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:0 25px}.playing-card,.empty-slot{height:185px}.card-suit{font-size:55px}.card-corner{font-size:20px;left:8px}.card-corner.bottom{right:8px}.table-stats{gap:15px}.action-panel{flex-wrap:wrap}.action-copy{min-width:200px}.fight{margin-left:65px}.table-stats .stat-text{font-size:14px}footer{flex-direction:column;gap:10px}.table{min-height:325px}.encounter h1{font-size:40px}.table-stats strong{font-size:21px}.dungeon-stat{gap:10px}}@media (width<=480px){.header-divider,.header-title{display:none}.playing-card,.empty-slot{height:155px}.room{gap:8px;margin:0 18px}.card-suit{margin:27px 0 10px;font-size:42px}.card-corner{font-size:17px;top:7px;left:6px}.card-corner small{font-size:12px}.card-corner.bottom{bottom:7px;right:6px}.card-kind{letter-spacing:.4px;font-size:7px}.card-value{font-size:8px}.table-hint{padding:0 20px;font-size:9px}.table{min-height:290px}.table-stats{gap:10px}.deck-icon{display:none}.stat-label{letter-spacing:.8px;font-size:8px}.table-stats small{font-size:9px}.table-stats strong{font-size:20px}.health-track{width:90px}.welcome-facts{gap:10px}.confirm-modal{padding:25px}.modal-actions{flex-wrap:wrap}.action-copy{min-width:150px}.action-icon{width:38px;height:38px}.fight{margin-left:56px}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important}}.skip-actions{align-items:center;gap:16px;margin-top:16px;display:flex}.skip-actions small{color:#92a18f}.playthrough-result{text-align:center;padding:48px 20px 30px}.playthrough-result .eyebrow{justify-content:center}.result-symbol{color:#c7b17e;margin-top:24px;font-size:48px;display:block}.playthrough-result h1{margin:12px 0}.result-copy,.result-health,.result-score p,.result-status{color:#9eac9f;line-height:1.8}.result-score{background:#c5cfb208;border:1px solid #c6b07940;border-radius:12px;max-width:520px;margin:28px auto;padding:24px}.result-score strong{color:#dfdfc9;font-family:Libre Caslon Display,Georgia,serif;font-size:80px;display:block}.playthrough-result .primary{margin:16px auto 0}.result-status{font-size:12px}.result-arriving .result-score{animation:.65s ease-out result-reveal}@keyframes result-reveal{0%{opacity:.45;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.result-arriving .result-score{animation:none}}
