:root{color-scheme:dark;--bg:#090d16;--panel:#111824;--line:#2c3547;--gold:#e8cf98;--muted:#929cac;--ink:#e5e6e8;--patron:#e8cf98}*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 50% 35%,#1c2334 0,#090d16 75%);color:var(--ink);font:14px/1.5 system-ui,sans-serif}button,input{font:inherit}button{cursor:pointer;border:1px solid #39455b;background:#1a2434;color:var(--ink);border-radius:4px;min-height:44px;padding:8px 12px;touch-action:manipulation}button:hover{border-color:var(--gold);background:#263248}button:disabled{opacity:.4;cursor:default}button:focus-visible,input:focus-visible,summary:focus-visible{outline:2px solid var(--gold);outline-offset:3px}button.primary{background:#dbc18b;color:#111622;border-color:#f5dfb0;font-weight:700}button.quiet{background:transparent}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:Georgia,serif;font-weight:normal}h1{color:var(--gold);font-size:24px;letter-spacing:5px;margin:0}h2{font-size:24px;color:var(--gold)}h3{font-size:17px;color:var(--gold);margin-bottom:10px}.eyebrow{font-size:10px;letter-spacing:2.5px;text-transform:uppercase;color:var(--muted)}.app{height:100dvh;max-width:1800px;margin:auto;padding:16px 20px;display:flex;flex-direction:column}.masthead{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.masthead small{color:var(--muted);font-size:11px}.layout{display:grid;grid-template-columns:220px minmax(0,1fr) 270px;gap:16px;min-height:0;flex:1}.sidebar{overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable;min-height:0;padding-right:5px}.panel{background:linear-gradient(140deg,#182030aa,#101722cc);border:1px solid var(--line);padding:14px;margin-bottom:12px;border-radius:4px}.patron-mark{color:var(--patron);font-size:38px;float:right;line-height:1}.statline{display:flex;justify-content:space-between;gap:6px;font-size:12px;margin:8px 0 4px}.meter{height:5px;background:#293144;overflow:hidden;border-radius:4px}.meter span{height:100%;display:block;transition:width .15s}.hp span{background:#ad7481}.light span{background:var(--gold)}dl{display:grid;grid-template-columns:1fr auto;font-size:12px;margin:12px 0 0;gap:4px}dt{color:var(--muted)}dd{margin:0}.mission{font-size:12px;color:#b1b7c5}.view{min-width:0;min-height:0;display:flex;flex-direction:column;justify-content:center}.view-head{display:flex;justify-content:space-between;gap:8px;margin-bottom:8px;font-size:11px;letter-spacing:1px;color:var(--muted)}.viewport{position:relative;align-self:center;width:min(100%,calc((100dvh - 160px)*43/27));border:1px solid #48516b;box-shadow:0 15px 60px #0009;background:#080c13}canvas{width:100%;height:auto;display:block;image-rendering:pixelated;touch-action:none;outline:none}.view-note{font-size:11px;color:var(--muted);margin:8px 0 0;text-align:center}.seed-label{overflow-wrap:anywhere}.legend{display:grid;grid-template-columns:1fr 1fr;gap:5px;font-size:11px;color:var(--muted)}.legend span b{margin-right:5px;color:var(--gold)}.actions{display:grid;grid-template-columns:1fr 1fr;gap:6px}.actions button{padding:7px 5px;font-size:12px}.actions .power{grid-column:1/-1;border-color:var(--patron);color:var(--patron)}.pad{display:grid;grid-template-columns:repeat(3,44px);gap:5px;justify-content:center;margin:14px 0}.pad button{padding:0}.pad .north{grid-column:2}.pad .west{grid-column:1}.tools{display:grid;grid-template-columns:1fr 1fr;gap:6px}.tools button{font-size:11px;padding:6px}.log{font-size:12px;line-height:1.55;list-style:none;padding:0;margin:0}.log li{border-bottom:1px solid #293044;padding:7px 0;color:#b0b8c7}.log li:last-child{color:var(--gold);border:0}.turn{font-size:11px;color:var(--muted)}.inspect{font-size:12px;color:#c2c7d0;min-height:50px}.notice{font-size:11px;color:var(--muted);min-height:16px;margin:10px 0 0}.relic-list{list-style:none;margin:0;padding:0;font-size:11px;color:#bcc3d1}.relic-list li{padding-top:5px}.modal{width:min(850px,calc(100vw - 28px));max-height:calc(100dvh - 32px);overflow:auto;border:1px solid #68718b;background:radial-gradient(ellipse at top,#242b40,#101622 70%);color:var(--ink);padding:28px;border-radius:6px;box-shadow:0 25px 100px #000c}.modal::backdrop{background:#030610df}.modal h2{font-size:clamp(30px,5vw,48px);letter-spacing:4px;margin-bottom:8px}.modal .intro{max-width:620px;color:#b2bbcb;font-size:14px}.patrons{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:24px 0 18px}.patron-choice{min-height:220px;padding:16px 12px;text-align:left;border-color:#39445a;position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:8px}.patron-choice.selected{border-color:var(--accent);background:#283145;box-shadow:inset 0 0 0 1px var(--accent)}.patron-choice .symbol{font-size:30px;color:var(--accent)}.patron-choice b{font:22px Georgia,serif;color:var(--accent)}.patron-choice small{font-size:11px;color:#b8c0cf}.patron-choice .power-name{margin-top:auto;font-size:12px;color:var(--accent)}.seed-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:18px}.seed-row label{font-size:12px;color:var(--muted)}input[type=text]{border:1px solid #46516a;background:#080f1e;color:var(--ink);padding:10px;width:180px;border-radius:4px;min-height:44px}.modal-foot{display:flex;gap:8px;flex-wrap:wrap;margin-top:20px}.fine{font-size:11px;color:var(--muted)}[hidden]{display:none!important}.modal article{border-top:1px solid #394357;padding-top:14px;margin-top:14px}.modal article p{color:#bbc4d3}.relic-choices{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:20px 0}.relic-choices button{text-align:left;min-height:130px}.relic-choices b{color:var(--gold);display:block;margin-bottom:8px}.relic-choices small{color:#bbc4d3}.end-stats{display:flex;gap:20px;color:var(--gold);margin:18px 0}kbd{background:#293346;border:1px solid #414e64;padding:1px 4px;border-radius:3px;font-size:11px}
@media(min-width:650px){body{overflow:hidden}}
@media(min-width:650px) and (max-width:1100px){.app{padding:10px}.layout{grid-template-columns:165px minmax(0,1fr) 220px;gap:10px}.panel{padding:10px}.viewport{width:min(100%,calc((100dvh - 145px)*43/27))}.masthead small{font-size:10px}h1{font-size:20px;letter-spacing:3px}}
@media(min-width:650px) and (max-height:500px){.app{padding:6px 8px}.masthead{margin-bottom:6px}h1{font-size:16px}.masthead small{display:none}.layout{grid-template-columns:140px minmax(0,1fr) 190px;gap:8px}.panel{padding:9px;margin-bottom:8px}.viewport{width:min(100%,calc((100dvh - 100px)*43/27))}.view-head{font-size:9px}.view-note{font-size:9px}.modal{padding:18px}.patrons{margin:12px 0}.patron-choice{min-height:160px;padding:10px}.patron-choice small{font-size:10px}.patron-choice .symbol{font-size:22px}}
@media(max-width:649px){.app{height:auto;min-height:100dvh;padding:12px}.masthead{align-items:flex-start}.masthead small{max-width:90px;text-align:right}h1{font-size:18px;letter-spacing:2px}.layout{display:flex;flex-direction:column}.view{order:0;position:sticky;top:0;z-index:2;background:#0c1220;padding-top:6px;padding-bottom:8px}.left-panel{order:2}.right-panel{order:1}.sidebar{overflow:visible;padding:0}.viewport{width:100%}.right-panel{display:grid;grid-template-columns:1fr;gap:0}.patrons{grid-template-columns:1fr 1fr;margin:16px 0}.patron-choice{min-height:190px}.modal{padding:18px}.relic-choices{grid-template-columns:1fr}.relic-choices button{min-height:90px}.view-note{font-size:10px}}
/* The Fortune Teller's illustrated deck */
.fortune-modal{width:min(1060px,calc(100vw - 28px));overscroll-behavior:contain;scrollbar-gutter:stable;background:radial-gradient(ellipse at top left,#343043,#151624 65%)}
.fortune-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;border-bottom:1px solid #645574;padding-bottom:16px;margin-bottom:22px}.fortune-heading h2{font-size:clamp(27px,4vw,40px);letter-spacing:1px}.fortune-heading>span{text-align:right;max-width:140px;color:var(--gold)}
.fortune-intro{display:grid;grid-template-columns:170px 1fr;gap:28px;align-items:center}.fortune-emblem{position:relative;width:150px;height:150px;border:1px solid #bfa97a;border-radius:50%;display:grid;place-items:center;font:100px Georgia,serif;color:var(--gold);box-shadow:0 0 60px #cfa75d25,inset 0 0 30px #a1865420}.fortune-emblem:before{content:'';position:absolute;inset:12px;border:1px solid #74668c;transform:rotate(45deg)}.fortune-emblem span{font-size:30px;position:absolute;bottom:8px;right:15px}.fortune-modal blockquote{margin:12px 0 20px;font:italic clamp(19px,2.2vw,26px)/1.4 Georgia,serif;color:#ebd9b1}.fortune-intro p{max-width:650px;color:#c3bdce}.sealed-deck{display:flex;justify-content:center;gap:14px;margin:26px 0 20px}.sealed-deck span{display:grid;place-items:center;width:90px;height:125px;border:1px solid #ad936c;border-radius:5px;font:34px Georgia,serif;color:#dfc796;background:repeating-linear-gradient(45deg,#332c45 0 8px,#29233a 8px 10px);box-shadow:inset 0 0 0 6px #191b2c,inset 0 0 0 7px #716044,0 6px 15px #0005}.sealed-deck span:nth-child(2n){transform:translateY(-7px)}
.question-heading{max-width:860px;margin:auto}.question-heading h3{font-size:27px;margin:6px 0 10px}.question-heading p{font-size:15px;color:#d0c9db;line-height:1.65}.reading-options{display:grid;grid-template-columns:1fr 1fr;gap:24px;max-width:860px;margin:20px auto}.reading-option{display:grid;grid-template-columns:120px 1fr;text-align:left;padding:0;overflow:hidden;background:#171a2b;border-color:#75657e;align-items:stretch}.card-art{position:relative;overflow:hidden;background:#171321;aspect-ratio:2/3}.card-art img{display:block;width:100%;height:100%;object-fit:cover}.reading-option .card-art{height:180px;width:120px}.choice-label{padding:16px;display:flex;flex-direction:column;gap:10px}.choice-label b{font:20px/1.3 Georgia,serif;color:var(--gold)}.choice-label span{font-size:12px;line-height:1.6;color:#c4bdcf}.reading-option:hover{border-color:var(--accent);background:#28263b}.choice-note{text-align:center}.fortune-modal .patrons{grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}.patron-choice.illustrated{padding:0;gap:0;display:block;min-height:0;overflow:hidden}.illustrated .card-art{width:100%}.card-label{padding:12px}.card-label b,.card-label small{display:block}.card-label small{margin-top:6px}.card-label b{font-size:23px}.reveal-layout{display:grid;grid-template-columns:230px 1fr;gap:32px;align-items:center;margin:20px 0}.revealed-card{border:1px solid #cfb982;border-radius:5px;overflow:hidden;box-shadow:0 12px 45px #0008}.reveal-card-label{text-align:center;font:25px Georgia,serif;color:var(--gold);padding:14px;background:#202132}#revealed-name{font-size:42px;margin-bottom:6px}#revealed-meaning{color:#ccc4d5}.fortune-modal details{color:#bcb4ca;font-size:12px}.fortune-modal summary{cursor:pointer;padding:8px 0}.edition-note{border-top:1px solid #3d354e;padding-top:14px;margin-bottom:0}.fortune-modal input{width:160px}.fortune-modal .modal-foot{margin-top:16px}
@media(max-width:700px){.fortune-heading{display:block}.fortune-heading>span{display:block;max-width:none;text-align:left;margin-top:8px}.fortune-intro{grid-template-columns:1fr;gap:12px}.fortune-emblem{width:85px;height:85px;font-size:60px;margin:auto}.fortune-emblem span{font-size:18px;bottom:2px;right:5px}.sealed-deck{gap:8px}.sealed-deck span{width:49px;height:72px;font-size:22px}.reading-options{gap:12px}.reading-option{display:flex;flex-direction:column}.reading-option .card-art{width:100%;height:auto;aspect-ratio:3/4}.choice-label{padding:12px}.choice-label b{font-size:18px}.fortune-modal .patrons{grid-template-columns:repeat(2,minmax(0,1fr))}.reveal-layout{grid-template-columns:1fr;gap:20px}.revealed-card{width:190px;margin:auto}#revealed-name{font-size:32px}.fortune-modal .seed-row{gap:8px}.fortune-modal input{max-width:100%}}
@media(min-width:701px) and (max-height:650px){.fortune-heading{margin-bottom:14px;padding-bottom:10px}.fortune-intro{grid-template-columns:120px 1fr;gap:20px}.fortune-emblem{width:110px;height:110px;font-size:75px}.sealed-deck{margin:16px 0}.sealed-deck span{height:90px;width:65px}.reading-options{margin:12px auto}.reading-option .card-art{height:150px;width:100px}.reading-option{grid-template-columns:100px 1fr}.illustrated .card-art{max-height:170px}.reveal-layout{grid-template-columns:170px 1fr;margin:10px 0}.reveal-layout .card-art{max-height:215px}}
@media(min-width:701px) and (min-height:651px) and (max-height:800px){.fortune-modal{padding:22px}.fortune-heading{padding-bottom:10px;margin-bottom:16px}.sealed-deck{margin:18px 0 14px}.sealed-deck span{height:96px;width:70px}.reveal-layout{grid-template-columns:200px 1fr;gap:28px;margin:14px 0}.fortune-modal .seed-row{margin-top:14px}.fortune-modal .modal-foot{margin-top:12px}}
@media(min-width:701px) and (min-height:651px) and (max-height:800px){.illustrated .card-art{max-height:230px}}

.masthead h1{font-size:clamp(15px,2.2vw,27px);letter-spacing:2px}.masthead{flex-wrap:wrap}
@media(max-width:649px){.masthead h1{max-width:220px;font-size:19px;line-height:1.3;letter-spacing:1px}}
@media(min-width:650px) and (max-height:500px){.masthead h1{font-size:15px;letter-spacing:1px}}

/* The native action result stays in the sticky mobile game view. */
/* Gameplay presses must not become selection, iOS callouts or browser drags. */
button,button *,#canvas{user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;-webkit-user-drag:none;-webkit-tap-highlight-color:transparent}
.pad button,[data-native],[data-equip],.native-zoom button{touch-action:none}
.native-zoom{display:flex;align-items:center;justify-content:center;gap:8px;margin:8px 0}
.native-zoom output{min-width:45px;text-align:center;color:var(--gold);font-variant-numeric:tabular-nums}
.native-zoom button{min-width:44px;padding:6px 10px}
.native-zoom-label{text-align:center;font-size:11px;color:var(--muted);margin:8px 0 0}
.native-gamepad{display:grid;grid-template-columns:142px minmax(0,1fr);align-items:center;gap:12px;margin:14px 0}
.native-gamepad .pad{margin:0}
.native-face{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.native-face button{border-radius:45%;min-height:72px;padding:6px 4px;font-size:11px;line-height:1.25;overflow-wrap:anywhere}
.native-face [data-native="6"]{border-color:#c9af79;color:#f0d89e}
.native-face [data-native="12"]{border-color:#8775b4;color:#d5c5ef}
.native-face [data-native="7"]{border-color:#629582;color:#b7e1d0}
.native-face [data-native="8"]{border-color:#b27481;color:#f1bdc7}
.native-combat,.native-tools{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:10px}
.native-combat:has(>button:not([hidden])){padding-bottom:10px;border-bottom:1px solid var(--line)}
.native-combat:not(:has(>button:not([hidden]))){display:none}
@media(min-width:650px){.native-gamepad{grid-template-columns:1fr}.native-face{width:min(100%,200px);justify-self:center}}
@media(max-width:370px){.native-gamepad{gap:8px}.native-face{gap:5px}.native-face button{font-size:10px}}
@media(max-width:649px){
 .view .native-feedback{margin-top:8px;padding:8px 10px;border:1px solid var(--line);border-radius:4px;background:#151e2e;flex:none}
 .view .native-feedback .eyebrow{font-size:9px;letter-spacing:1.5px}
 .view .native-feedback .native-status{height:4.5em;min-height:0;overflow:auto;overscroll-behavior:contain;margin:3px 0 0;font-size:13px;line-height:1.5;overflow-wrap:anywhere}
 .view .viewport{width:min(100%,calc(max(80px,100dvh - 270px)*280/192))}
}

.music-controls{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 14px}.music-controls label{display:flex;align-items:center;gap:8px;font-size:12px}.music-controls input{width:100px;accent-color:#dfc17c}.music-controls button{min-height:44px}.music-controls .fine{margin:0}
